Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Технологии клиент-серверных и распределенных систем
Распределенные приложения исполняются на географически разнесенных узлах, соединенных локальной или глобальной сетью. Типичные примеры – приложения клиент-сервер, распределенные приложения сбора данных в реальном времени и распределенные приложения, занимающиеся управлением. 3.5.1. Конфигурации клиент-серверных и распределенных систем. Клиент-серверная система логически состоит из двух компонентов: клиента, который запрашивает сервисы, и сервера, который эти сервисы предоставляет. Таким образом, сервер выступает в роли производителя, а клиент – в роли потребителя сервисов. Клиент-серверная система – это распределенное приложение, в котором клиент и сервер (или серверы) географически удалены друг от друга (рис. 3.6). Сеть, соединяющая клиентов с серверами, может быть локальной или глобальной. Клиент посылает серверу запрос по сети. Сервер выполняет этот запрос и возвращает клиенту результаты.
Рис. 3.6. Базовая конфигурация системы клиент-сервер
Обычно клиенты и серверы работают на разных машинах. Они могут быть реализованы на разных платформах, под разными операционными системами и в различных сетях. Клиент – это, как правило, настольный ПК или рабочая станция. Часто он поддерживает графический интерфейс пользователя (ГИП). У сервера обычно имеется большой объем памяти и дисков, мощный процессор и средства повышения надежности. Помимо управления данными, он предоставляет услуги прикладного характера. В простейшей системе клиент-сервер имеется один сервер и много клиентов. Типичный пример такого рода – приложение, которое обслуживает банкоматы, принадлежащие одному банку. Здесь банкоматы размещены на территории одного штата и обмениваются данными с центральным банковским сервером. В более сложной системе работает несколько серверов. Клиент может обращаться к различным серверам, а сами серверы – друг к другу (рис. 3.7). Если продолжить пример с банкоматами, то в качестве многосерверного приложения допустимо рассмотреть систему федерального уровня, где любой банкомат в состоянии общаться с любым банковским сервером, входящим в систему. В многоуровневых клиент-серверных системах сервер иногда выступает в роли клиента другого сервера.
Рис. 3.7. Конфигурация для распределенной обработки
В распределенном приложении помимо трафика между клиентом и сервером обычно присутствует обширный трафик между равноправными узлами на основе асинхронного обмена сообщениями. Примером такого приложения может служить система автоматизации производства. Рост числа клиент-серверных и распределенных систем вызван некоторыми тенденциями в производстве оборудования, в частности увеличением мощности процессоров настольных ПК, снижением стоимости микросхем и ростом объема памяти – как оперативной, так и дисковой. Кроме того, повышается быстродействие вычислительных сетей, стремительно развивается Internet. Что касается ПО, следует отметить широкое распространение реляционных баз данных, предоставляющих распределенный доступ к информации, графических интерфейсов и многозадачных приложений на платформе Windows, а также технологий ПО промежуточного слоя, которые упрощают соединение распределенных гетерогенных систем. На рис. 3.8 приведен пример возможной конфигурации системы клиент-сервер. В одном узле развернуто клиентское приложение с графическим интерфейсом пользователя. Оно работает под управлением стандартной ОС типа Windows и пользуется стандартным коммуникационным ПО, например TCP/IP. Поверх операционной системы и коммуникационного ПО имеется программный слой, образующий ПО промежуточного слоя (middleware). В другом узле развернуто серверное приложение, пользующееся сервисами, которые предоставляет аналогичное ПО промежуточного слоя, размещенное поверх операционной системы (UNIX или Windows NT). Для долговременного хранения информации применяется файловая система или СУБД.
Рис. 3.8. Технология клиент-сервер
3.5.2. Коммуникационные сетевые протоколы. Чаще всего в книгах по программированию упоминается эталонная многоуровневая архитектура взаимодействия открытых систем, разработанная Международной организацией по стандартизации (ISO OSI). Она является стандартом сетевых коммуникаций между открытыми системами (рис. 3.9). В модели ISO семь уровней, каждый из которых отвечает за определенный аспект сетевых коммуникаций и предоставляет интерфейс в виде набора операций уровню, расположенному непосредственно над ним. Для каждого уровня в узле-отправителе есть эквивалентный уровень в узле-получателе. В модели ISO нет специального уровня для протоколов Internet. В сети Internet наиболее широкое распространение получил набор протоколов TCP/IP. Этот стек концептуально состоит из пяти уровней, показанных на рис. 3.10. Уровни 1 и 2 – физический и интерфейсный – соответствуют модели ISO. Физический уровень имеет дело с базовым сетевым оборудованием. Интерфейсный уровень определяет, как данные группируются во фреймы и как такие фреймы передаются по сети. На третьем – межсетевом уровне определяется формат пакетов данных, передаваемых через Internet, и механизмы прохождения пакетов через цепочку маршрутизаторов от отправителя к получателю. Узел маршрутизатора на рис. 3.11 – это шлюз, соединяющий локальную сеть с глобальной. Транспортный уровень собирает пакеты в том порядке, в каком они были посланы, и формирует из них сообщение. TCP (Transmission Control Protocol) – это протокол транспортного уровня, работающий совместно с протоколом IP (Internet Protocol) межсетевого уровня. Уровень IP предоставляет ненадежный сервис отправки датаграмм, TCP должен на его основе предоставить надежный сервис. Он организует виртуальное соединение между приложениями в двух узлах, т.е. является так называемым сквозным (end-to-end) протоколом (см. рис. 3.11). Для транспорта сообщений TCP пользуется протоколом IP. Уровень 5 называется прикладным, на нем реализованы различные сетевые приложения, например передача файлов (FTP), электронная почта и WWW.
Рис. 3.9. Семиуровневая эталонная модель ISO
Рис. 3.10. Пять уровней модели TCP/IP
Рис. 3.11. Обмен данными через сеть Internet по протоколам TCP/IP
3.6. Технология World Wide Web Огромная популярность Всемирной паутины (WWW), придуманной Бернер-сом-Ли из Европейской организации по ядерным исследованиям (CERN) в Женеве, привела к очень быстрому росту сети Internet. Пользователь просматривает WWW с помощью браузера типа Netscape Communicator или Internet Explorer, работающего на машине пользователя. Страницы WWW размещены на Web-серверах. Каждая страница обычно содержит графику и ссылки на другие страницы. Web-страница создается с помощью языка разметки, например широко распространенного языка HTML (Hyper Text Markup Language – язык разметки гипертекста) или начавшего приобретать популярность языка XML (eXtensible Markup Language – расширяемый язык разметки). Каждая страница помечается унифицированным указателем ресурса (URL), который используется в составе любой ссылки на эту страницу. Когда пользователь хочет просмотреть страницу, браузер берет из URL адрес сервера и обращается к нему с просьбой загрузить необходимые данные (рис. 3.12). Затем браузер отображает полученную страницу на экране. Web-браузер и Web-сервер общаются друг с другом по протоколу HTTP (HyperText Transfer Protocol – протокол передачи гипертекстовых файлов). Web-сервер принимает запросы на страницы одновременно от многих клиентов. Внешний модуль, или вставка (plug-in), – это программа, которая помещается в браузер и расширяет его возможности – скажем, позволяет обрабатывать аудио- и видеоданные, посылаемые сервером. Внешний модуль может входить в дистрибутив браузера или загружаться отдельно с определенного сервера.
Рис. 3.12. Web-браузер и Web-сервер в приложении WWW
3.6.1. Язык Java и World Wide Web С появлением WWW и Web-браузеров в начале 90-х годов браузер стал распространенным пользовательским интерфейсом для распределенных приложений. Рост популярности Всемирной паутины вывел на авансцену язык программирования Java, который широко применяется для создания апплетов. Java-апплет – это программа на языке Java, которая загружается клиентом с сервера в виде так называемого байт-кода. Апплет работает совместно с браузером, который интерпретирует полученный код. Чтобы Web-браузер мог успешно принимать апплеты, он должен поддерживать язык Java. Интерпретатор на стороне клиента обрабатывает промежуточный байт-код и генерирует объектный код, исполняемый клиентом. Итак, Java-апплет – это объект, который загружается с Web-сервера и исполняется клиентом (рис. 3.13). Java-апплет часто используются для анимации Web-страниц. Клиентский Java-объект может также взаимодействовать с серверным объектом, расположенным на том же сервере, с которого был загружен апплет. Коммуникации между распределенными Java-объектами обычно осуществляются с помощью технологии RMI (Remote Method Invocation – вызов удаленных методов). Рис. 3.13. Java-апплет, загружаемый с Web-сервера в приложении WWW
Java-программы способны работать и на Web-сервере, тогда они называются сервлетами. Сервлеты, как и апплеты, часто тесно интегрированы с Web-сервером, чтобы удовлетворить требованиям безопасности и производительности. В наши дни, когда к сети Internet стали подключать такие нетрадиционные устройства, как телефоны и банкоматы, появилась острая нужда в сверхтонких клиентах. Такой клиент состоит из одного браузера. Объекты уровня представления пользовательского интерфейса остаются на сервере вместе с бизнес-объектами, реализованными в виде сервлетов.
Популярное:
|
Последнее изменение этой страницы: 2016-03-17; Просмотров: 788; Нарушение авторского права страницы