Модель взаимодействия типа клиент/сервер и проектирование программного обеспечения 2.1. Введение

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

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

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

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

Хотя в современной маркетинговой литературе вычисления, организованные по принципу взаимодействия типа клиент/сервер, часто называют "вычислениями по принципу приложение/сервер", мы придерживаемся первоначального термина.

2.2. Основная модель сетевого взаимодействия

Необходимость применения принципа организации взаимодействия типа клиент/сервер связана с решением проблемы согласования условий соединения. Чтобы понять, в чем состоит эта проблема, представьте себе, что перед программистом стоит задача запустить две программы на отдельных компьютерах и обеспечить взаимодействие между ними. Необходимо также учитывать, что компьютеры выполняют свои действия на несколько порядков быстрее, чем люди. После запуска первая программа приступает к выполнению и отправляет сообщение программе, с которой она должна вступить во взаимодействие. Через несколько миллисекунд она определит, что другая программа еще не запущена, поэтому выдаст сообщение об ошибке и завершит свою работу. Тем временем программист запустит вторую программу. К сожалению, после запуска на выполнение вторая программа обнаружит, что не функционирует (поскольку уже завершила свою работу) та программа, с которой она должна взаимодействовать. Но даже если эти две программы не завершат свое выполнение, а будут продолжать посылать друг другу сообщения, вероятность того, что обе они отправят сообщения друг другу своевременно и смогут их получить, является очень низкой, поскольку компьютеры имеют высокое быстродействие и при такой организации взаимодействия переходят в состояние готовности к приему данных лишь на очень короткое время.

Модель взаимодействия типа клиент/сервер предусматривает решение проблемы согласования условий соединения наиболее простым способом: она требует, чтобы для обеспечения взаимодействия любой пары приложений один из участников соединения приступал к работе заранее и ждал (в течение неопределенно долгого времени) до тех пор, пока к нему не обратится второй участник соединения. Это очень важное решение; оно позволяет упростить соответствующее программное обеспечение протокола, поскольку не требует, чтобы в нем самом было предусмотрено формирование ответов на входящие запросы по установлению связи.

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

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

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