Сервер инициирует соединение




В классической архитектуре "клиент-сервер" инициатором диалога всегда выступает клиент. Можно, однако, представить и другую ситуацию - диалог инициирует сервер, "проталкивая" информацию на клиента. Роль клиента в таком случае сводится к реакции (просмотру) на сообщения сервера. Типичным примером является работа "по подписке". Представим себе, что сервер получает какие-то события из внешнего источника. События имеют тип. Клиент, заинтересованный в получении события определенного типа, сообщает о своей заинтересованности серверу. Сервер, получив очередное событие, передает его всем заинтересованным в нем клиентам. Приведенный алгоритм является упрощенным описанием работы очень часто используемой службы событий (подобная служба есть практически во всех современных middleware).

Мобильные агенты

Идея рассматриваемой модели (рис. 2.4) состоит в том, что зачастую, как это ни парадоксально, клиент сам в состоянии выполнить ту задачу, решение которой он запросил у сервера, более того, данные, необходимые для решения этой задачи, располагаются на клиенте. В таком случае для разгрузки сервера (и очень часто - для снижения сетевого трафика) целесообразно решать эту задачу на клиенте. Но как это сделать, если у клиента нет соответствующего программного модуля, содержащего необходимую функциональность? Ответ таков - этот модуль нужно клиенту отправить. Клиент, получив модуль (этот модуль называется мобильным агентом), может выполнить его локально, решив таким образом задачу. В качестве примера можно рассмотреть взаимодействие браузера и


Рис. 2.4. Мобильные агенты

веб-сервера, возвращающего страницу, которая содержит апплет. Апплет также передается клиенту и выполняется в браузере (т.е. на клиенте), выполняя какие-то значимые для пользователя действия. Основная проблема для такого подхода состоит в сложности реализации механизма передачи и выполнения мобильных агентов, а также контроля безопасности3. Однако, современные средства middleware (Java, например) такими возможностями обладают.

Тонкий клиент

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

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


Рис. 2.5. Тонкий клиент

Решить эту проблему можно, используя технологию "тонкого клиента" (рис. 2.5). Суть этой технологии состоит в том, что клиент выполняет очень ограниченную по функционалу задачу (очень часто - только прием ввода с клавиатуры и других устройств и обработка команд рисования). Схема работы подобных систем в простейшем случае следующая. Клиентская программа передает весь ввод пользователя (нажатия клавиш, движение мыши и т.д.) по сети серверу. Сервер разбирает и обрабатывает этот ввод и передает клиенту готовые экраны, которые тот просто отображает4. Этот принцип используется в системах типа X-Windows уже очень давно. Таким образом, сервер фактически берет на себя не только задачу управления данными, но и вообще все задачи по логике клиентского интерфейса.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-27 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: