44
На самом деле концепция «клиент-сервер» значительно мощнее, чем
принято об этом думать. Идея данной концепции основана на понятии
«сервиса» - некоторого действия, совершить которое зачем-либо требуется
стороне A и которое она сама выполнять не умеет. Зато стороне B
совершение этого действия не нужно, но как раз она-то и умеет его
совершать. В таком случае сторона A каким-то образом вынуждает
сторону B совершить это действие и предоставить стороне А результат. В
таком взаимодействии сторона, которая умеет совершать действие, но не
имеет никакой инициативы его совершения, называется «сервером», а
сторона, которая состоит только из инициативы - называется «клиентом».
В этом взаимодействии «клиент» запрашивает, а «сервер» предоставляет
«сервис».
Многие привычные случаи программного взаимодействия можно
переосмыслить под этим углом, например, внутри обычной программы
«вызывающая процедура» очевидно, является клиентом, а «вызываемая» -
сервером. Просто о них не принято думать в таких терминах, хотя ничего
некорректного в этом нет. И во взаимодействии каких либо машин,
программ, объектов, когда один запрашивает у другого совершить какое-
либо действие запрашивающий - всегда клиент, а исполняющий - всегда
сервер.
Понятия клиента и сервера - динамические понятия. В диалоге
объектов, т.е. когда они вызывают друг друга попеременно, в разном
взаимодействии каждый из них попеременно будет и клиентом и сервером.
Таким образом, термин никоим образом не означает иной специализации,
чем это требуется для самого взаимодействия.
Клиент-приложение – в клиент-серверной архитектуре означает
приложение, имеющее минимум собственного исполняемого кода,
основная функциональная часть которого осуществляется на сервере.
Клиент часто служит для обеспечения взаимодействия пользователя и
сервера. Соединение клиента с сервером происходит либо по локальной
сети, либо по сети Интернет. В отдельных случаях клиентская и серверная
часть приложения могут быть расположены на одном компьютере.
Сервер-приложение – в клиент-серверной архитектуре означает
приложение, предоставляющее заложенные в нем функциональные
возможности (сервисы) приложению-клиенту. Как правило, приложение-
сервер не предназначено для общения с пользователем.
Остается открытым вопрос о том, каким же образом осуществляется
связь между клиентом и сервером. В случае использования операционной
системы Windows (начиная с версии Windows 98)в качестве механизмов
взаимодействия приложений используются технологии COM и DCOM.
Таким образом, в операционной системе Windows под клиент-
серверным приложением можно понимать распределенное приложение,