Технологии клиент-серверных и распределенных систем
Распределенные приложения исполняются на географически разнесенных узлах, соединенных локальной или глобальной сетью. Типичные примеры – приложения клиент-сервер, распределенные приложения сбора данных в реальном времени и распределенные приложения, занимающиеся управлением.
Клиент-серверная система логически состоит из двух компонентов: клиента, который запрашивает сервисы, и сервера, который эти сервисы предоставляет. Таким образом, сервер выступает в роли производителя, а клиент – в роли потребителя сервисов. Клиент-серверная система – это распределенное приложение, в котором клиент и сервер (или серверы) географически удалены друг от друга (рис. 7.6). Сеть, соединяющая клиентов с серверами, может быть локальной или глобальной. Клиент посылает серверу запрос по сети. Сервер выполняет этот запрос и возвращает клиенту результаты.
Технология World Wide Web
Огромная популярность Всемирной паутины (WWW), придуманной Бернер-сом-Ли из Европейской организации по ядерным исследованиям (CERN) в Женеве привела к очень быстрому росту сети Internet. Страницы WWW размещены на Web-серверах. Каждая страница обычно содержит графику и ссылки на другие страницы.
Web-страница создается с помощью языка разметки, например широко распространенного языка HTML (Hyper Text Markup Language – язык разметки гипертекста) или начавшего приобретать популярность языка XML (eXtensible Markup Language – расширяемый язык разметки). Каждая страница помечается унифицированным указателем ресурса (URL), который используется в составе любой ссылки на эту страницу. Когда пользователь хочет просмотреть страницу, браузер берет из URL адрес сервера и обращается к нему с просьбой загрузить необходимые данные
|
|
Внешний модуль, или вставка (plug-in), – это программа, которая помещается в браузер и расширяет его возможности – скажем, позволяет обрабатывать аудио- и видеоданные, посылаемые сервером. Внешний модуль может входить в дистрибутив браузера или загружаться отдельно с определенного сервера.
С появлением WWW и Web-браузеров в начале 90-х годов браузер стал распространенным пользовательским интерфейсом для распределенных приложений. Рост популярности Всемирной паутины вывел на авансцену язык программирования Java, который широко применяется для создания апплетов.
Сервисы распределенных операционных систем
Распределенная система состоит из компьютеров, соединенных коммуникационной средой, например локальной сетью. В распределенной среде желательно обеспечить независимость сервисов от местоположения. Это значит, что компонент, желающий послать сообщение другому компоненту, не обязан знать, где находится адресат. При наличии службы именования сервер имен хранит имена глобальных сервисов. Предполагается, что местоположение самого сервера имен хорошо известно. Если клиент хочет получить доступ к некоторому сервису, он запрашивает информацию о нем у сервера имен.
|
|
Пример службы имен – это система доменных имен (DNS), используемая в сети Internet.
Связывание клиентов и серверов. Термин связывание относится к ассоциации между клиентом и сервером. Статическое связывание выполняется на этапе компиляции и означает, что все обращения клиента к серверу жестко «зашиты» в код.
Динамическое связывание производится во время выполнения. Оно характеризуется большей гибкостью, чем статическое, но меньшей эффективностью. Для динамического связывания необходимо указать имя сервера, который ведет справочник имен и адресов серверов. Каждый сервер регистрирует свое местоположение и предоставляемые сервисы у сервера имен. Клиент посылает запрос серверу имен, передавая имя серверного объекта, и получает ссылку на него. Затем эта ссылка используется для доступа к удаленному серверу.
Прозрачный обмен сообщениями между распределенными задачами можно реализовать с помощью распределенного ядра распределенной операционной системы. В тех распределенных приложениях, где число задач относительно постоянно, каждое распределенное ядро также может содержать собственную копию этой таблицы. На стадии начальной загрузки системы распределенное ядро посылает запрос серверу имен с просьбой загрузить таблицу имен.
|
|
Сервисы сокетов. Сокеты – это интерфейс прикладных программ (API), предоставляемый многими операционными системами. Он определяет набор операций, доступных приложению для организации обмена данными по сети с другим приложением по заданному протоколу, например TCP/IP.
Обмен сообщениями через порты. В некоторых распределенных системах обмен сообщениями между удаленными узлами реализован с помощью портов, что позволяет максимально ослабить связанность. Компонент (процесс или поток) в одном узле посылает сообщение, не указывая явно имя получателя, а задавая выходной порт. Компонент-получатель забирает сообщения из своего входного порта.
ПО промежуточного слоя
Распределенным системам часто приходится работать в гетерогенных средах, когда в разных узлах установлено различное оборудование и операционные системы. ПО промежуточного слоя – это слой программного обеспечения, располагаемый поверх ОС с целью создания однородной платформы, на которой могут функционировать распределенные приложения. . Изначально платформы для распределенных вычислений базировались на модели клиент-сервер. Но в последнее время все большую популярность завоевывает объектная модель. В объектной модели объекты получают глобальные имена и могут вызываться непосредственно на сервере. Некоторые распределенные системы поддерживают механизм вызова удаленных процедур (RPC). Клиент в одном узле запрашивает удаленную процедуру сервера, находящегося в другом узле. Вызов удаленной процедуры аналогичен вызову локальной процедуры, поэтому тот факт, что сервер находится далеко, скрыт от клиента.
|
|
Стандарт CORBA
CORBA (Common Object Request Broker Architecture – единая архитектура брокера объектных запросов) – это стандарт открытых систем, разработанный группой Object Management Group (OMG), который обеспечивает взаимодействие между объектами на гетерогенной платформе. Брокер объектных запросов (ORB) выполняет функции ПО промежуточного слоя, поддерживающего отношения вида клиент-сервер между распределенными объектами. Серверные объекты предоставляют сервисы, которые клиенты могут запрашивать с помощью ORB. В общем случае клиенты и серверы - это всего лишь роли объектов. Таким образом, объект способен выступать в роли клиента в отношениях с одним объектом и в роли сервера – в отношениях с другим. С помощью ORB клиентский объект в состоянии вызывать операции серверного объекта, не зная, где тот находится, на какой платформе (аппаратной или программной) исполняется, какие коммуникационные протоколы нужны для связи с ним и на каком языке он написан.
Сервисы CORBA. Брокер объектных запросов позволяет клиенту прозрачно вызывать операцию серверного объекта, предоставляя службу имен. Когда создается объект CORBA, ему присваивается уникальная объектная ссылка. Получить ссылку можно с помощью просмотра каталога. Иными словами, служба имен CORBA дает ссылку на поименованный объект, а клиент затем вызывает операцию этого объекта. Служба имен включает такой сервис каталогов, который аналогичен телефонному каталогу «белые страницы».
Другой сервис, предоставляемый CORBA, – это трейдинг. Он позволяет получить ссылку на объект путем сопоставления характеристик известных объектов (например, типа обслуживания) с характеристиками, посланными клиентом. Сервис трейдинга, следовательно, сводится к сервису каталогов, аналогичному телефонным «желтым страницам».
Дата добавления: 2018-08-06; просмотров: 460; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!