Модель взаимодействия клиент/сервер

В предыдущих главах были описаны детали технологии TCP/IP, протоколы, обеспечивающие работу основных служб сети, структура системы маршрутизации и объяснена необходимость обмена маршрутной информацией. Теперь, когда понятны основополагающие принципы, можно перейти к рассмотрению прикладных программ, работа которых тесно связана с функционированием объединенной сети TCP/IP. Несмотря на то что рассматриваемые в этой главе примеры приложений представляют практическую ценность и интересны сами по себе, основное внимание уделяется не им, а моделям взаимодействия между обменивающимися информацией прикладными программами. В основу модели взаимодействия между "сотрудничающими" приложениями положен принцип клиент/сервер1. Взаимодействие по принципу клиент/сервер положено в основу работы большинства сетей передачи данных. Оно является фундаментальным, потому что позволяет понять суть алгоритмов работы распределенных систем. В этой главе в общих чертах рассмотрена модель взаимодействия между клиентом и сервером, а в следующих главах изложение материала будет расширено за счет рассмотрения конкретных примеров.

Модель взаимодействия клиент/сервер

Под термином сервер мы будем понимать любую программу, в которой реализована служба, доступная через сеть. Сервер принимает запрос по сети, выполняет необходимую обработку и возвращает результат отославшей запрос программе. В простейшем случае каждый запрос доставляется на сервер в виде одной IP-дейтаграммы, а сервер возвращает ответ в другой дейтаграмме.

Выполняющаяся программа становится клиентом, когда она посылает запрос на сервер и ожидает от него ответа. Поскольку модель клиент/сервер является удобным и естественным средством расширения возможностей межпроцессного взаимодействия на одной машине, на ее основе легко создавать программы, обменивающиеся данными друг с другом.

Задачи, выполняемые серверами, могут быть как очень простыми, так и невероятно сложными. Например, сервер текущего времени просто возвращает текущую дату и время всякий раз, когда клиент посылает ему запрос. Web-сервер по лучает запросы от броузера на доставку содержимого той или иной Web-страницы. Затем сервер получает копию файла этой страницы и возвращает ее броузеру.

Обычно серверы реализуются в виде прикладных программ2. Преимущество такого подхода заключается в том, что прикладные программы могут выполняться в любой вычислительной системе, которая поддерживает взаимодействие по протоколу TCP/IP. Таким образом, сервер для конкретной службы может выполняться как в системе, работающей в режиме разделения времени наряду с другими программами, так и на персональном компьютере. Одна и та же служба может быть реализована в виде нескольких серверов, которые могут быть запущены как на одной, так и на разных машинах. Чаще всего системные администраторы запускают копии одного сервера на разных компьютерах, чтобы повысить надежность системы или улучшить ее производительность. Если для работы программы-сервера выделяется целый компьютер, то под термином "сервер" может также подразумеваться и этот компьютер. Поэтому нередко можно услышать: "Машина А — это наш файловый сервер".

Похожие статьи Меню Опрос Фото Популярное