Технологии клиент-серверных и распределенных систем



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

Клиент-серверная система логически состоит из двух компонентов: клиента, который запрашивает сервисы, и сервера, который эти сервисы предоставляет. Таким образом, сервер выступает в роли производителя, а клиент – в роли потре­бителя сервисов. Клиент-серверная система – это распределенное приложение, в котором клиент и сервер (или серверы) географически удалены друг от друга (рис. 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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!