Технологии сетевого взаимодействия клиент/сервер
Клиент-сервер (англ. Clientserver) — вычислительная или сетевая архитектура, в которой задания или сетевая нагрузка распределены между поставщиками услуг, называемыми серверами, и заказчиками услуг, называемыми клиентами. Нередко клиенты и серверы взаимодействуют через компьютерную сеть и могут быть как различными физическими устройствами, так и программным обеспечением.
Архитектура клиент-сервер основана на распределении функций между двумя типами независимых и автономных процессов: серверами и клиентами. Сеть связывает воедино серверы и клиенты, предоставляя средства связи.
Преимущества u u u Отсутствие дублирования кода программысервера программами-клиентами. Так как все вычисления выполняются на сервере, то требования к компьютерам на которых установлен клиент снижаются. Все данные хранятся на сервере, который, как правило, защищён гораздо лучше большинства клиентов. На сервере проще обеспечить контроль полномочий, чтобы разрешать доступ к данным только клиентам с соответствующими правами доступа. Позволяет объединить различные клиенты. Использовать ресурсы одного сервера часто могут клиенты с разными аппаратными платформами, операционными системами и т. п. Позволяет разгрузить сети за счёт того, что между сервером и клиентом передаются небольшие порции данных.
Недостатки u u u Неработоспособность сервера может сделать неработоспособной всю вычислительную сеть. Неработоспособным сервером следует считать сервер, производительности которого не хватает на обслуживание всех клиентов, а так же сервер, находящийся на ремонте, профилактике и т. п. Поддержка работы данной системы требует отдельного специалиста — системного администратора. Высокая стоимость оборудования.
Архитектура клиент-сервер включает в себя три основных компонента:
1. Клиенты. Клиент представляет собой любой процесс компьютера, который запрашивает сервис от сервера. Клиент также называется интерфейсным приложением.
2. Серверы. Сервер — это компьютерный процесс, предоставляющий сервис клиентам. Сервер также называют серверным приложением. Серверный процесс характеризуется независимостью от местоположения, оптимизацией использования ресурсов, масштабируемостью и способностью к взаимодействию с другими системами.
3. Коммуникационное промежуточное программное обеспечение передачи данных (ППО). Представляет собой любой компьютерный процесс, посредством которого клиенты и серверы взаимодействуют друг с другом. Это ПО называют еще уровнем коммуникаций. ППО обычно привязано к сети. Все клиентские запросы и ответы сервера передаются по сети в форме сообщений, в которых содержатся управляющая информация и данные.
Связь между компонентами осуществляется по определенным правилам, которые называют "протокол взаимодействия": Клиентский процесс запрашивает сервисы у серверного приложения. Клиентский процесс и серверный процесс взаимодействуют при помощи промежуточного программного обеспечения (ППО). ППО гарантирует, что сообщения между клиентами и серверами будут правильно маршрутизоваться и доставляться по нужному адресу.