Дипломы, курсовые, рефераты, контрольные...
Срочная помощь в учёбе

Стандарт CORBA. 
Технологии параллельных и распределенных систем

РефератПомощь в написанииУзнать стоимостьмоей работы

Статическое и динамическое связывание. В случае статического вызова заглушки и каркасы заранее скомпонованы с исполняемыми файлами. Статические интерфейсы определены в IDL-описаниях, созданных разработчиком. Эти описания транслируются в код заглушек, каркасов и заголовочных файлов, как определено в правилах отображения на конкретный язык. Такой подход проиллюстрирован на рис. 7.17. Программная… Читать ещё >

Стандарт CORBA. Технологии параллельных и распределенных систем (реферат, курсовая, диплом, контрольная)

CORBA (Common Object Request Broker Architecture — единая архитектура брокера объектных запросов) — это стандарт открытых систем, разработанный группой Object Management Group (OMG), который обеспечивает взаимодействие между объектами на гетерогенной платформе. Брокер объектных запросов (ORB) выполняет функции ПО промежуточного слоя, поддерживающего отношения вида клиент-сервер между распределенными объектами. Серверные объекты предоставляют сервисы, которые клиенты могут запрашивать с помощью ORB. В общем случае клиенты и серверы — это всего лишь роли объектов. Таким образом, объект способен выступать в роли клиента в отношениях с одним объектом и в роли сервера — в отношениях с другим. С помощью ORB клиентский объект в состоянии вызывать операции серверного объекта, не зная, где тот находится, на какой платформе (аппаратной или программной) исполняется, какие коммуникационные протоколы нужны для связи с ним и на каком языке он написан.

Брокер объектных запросов. Клиент, имеющий ссылку на серверный объект, может вызывать любые сервисы (операции интерфейса), поддерживаемые этим объектом, через посредство ORB. ORB обладает следующими достоинствами:

  • — прозрачностью местоположения. ORB определяет местоположение объекта по ссылке на него;
  • — прозрачностью реализации. Клиент не должен знать, как реализован серверный объект, на каком языке он написан, на какой аппаратной и программной платформе исполняется;
  • — прозрачностью состояния выполнения объекта. Если серверный объект неактивен, то ORB активизирует его перед доставкой запроса;
  • — прозрачностью коммуникационного механизма. Клиент не знает, какой протокол будет использовать ORB.

Язык определения интерфейса в СОRВА. Интерфейс серверного объекта описывается на языке определения интерфейсов (Interface Definition Language — IDL), не зависящем от конкретных языков программирования. Интерфейс определяется независимо от реализации. Спецификации, записанные на IDL, затем переводятся на язык реализации. Реализация объекта кодируется сразу на целевом языке. Группа OMG разработала стандартные отображения IDL на различные языки программирования, в том числе С, C++, Ada 95 и Java. Компиляторы IDL генерируют клиентские заглушки и серверные каркасы, аналогичные описанным выше клиентским и серверным заместителям. Клиентская заглушка создает запрос и передает его от имени клиента. Серверный каркас получает запрос и доставляет его объекту, реализация которого должна удовлетворять правилам CORBA. Функциональность, обеспечиваемая заглушками и каркасами в CORBA, похожа на заглушки, применяемые в RPC.

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

Статическое и динамическое связывание. В случае статического вызова заглушки и каркасы заранее скомпонованы с исполняемыми файлами. Статические интерфейсы определены в IDL-описаниях, созданных разработчиком. Эти описания транслируются в код заглушек, каркасов и заголовочных файлов, как определено в правилах отображения на конкретный язык. Такой подход проиллюстрирован на рис. 7.17.

Большую гибкость обеспечивает динамическое связывание. В этом случае клиентский объект во время выполнения решает, с каким серверным объектом он будет общаться. Сервер регистрирует IDL-описания в репозитарии интерфейсов, который можно опрашивать во время выполнения.

Архитектура CORBA.

Рис. 17. Архитектура CORBA

Клиент пользуется интерфейсом динамического вызова (см. рис, 7.17), который представляет собой обобщенную заглушку, не зависящую от IDL-описания интерфейса вызываемого объекта. Подобный подход позволяет клиенту обращаться к объекту во время выполнения, ничего не зная о его интерфейсе на стадии компиляции.

CORBA поддерживает также интерфейс динамического каркаса на стороне сервера, то есть механизм динамического связывания для серверов, которые должны обрабатывать входящие запросы на обслуживание от объектов, не имеющих скомпилированных из IDL-описаний каркасов. Это полезно для общения с такими внешними объектами, как шлюзы или браузеры.

Сервисы CORBA. Брокер объектных запросов позволяет клиенту прозрачно вызывать операцию серверного объекта, предоставляя службу имен. Когда создается объект CORBA, ему присваивается уникальная объектная ссылка. Получить ссылку можно с помощью просмотра каталога. Иными словами, служба имен CORBA дает ссылку на поименованный объект, а клиент затем вызывает операцию этого объекта. Служба имен включает такой сервис каталогов, который аналогичен телефонному каталогу «белые страницы».

Другой сервис, предоставляемый CORBA, — это трейдинг. Он позволяет получить ссылку на объект путем сопоставления характеристик известных объектов (например, типа обслуживания) с характеристиками, посланными клиентом. Сервис трейдинга, следовательно, сводится к сервису каталогов, аналогичному телефонным «желтым страницам».

Интеграция унаследованных приложений в каркас распределенных объектов. Многие унаследованные приложения достаточно сложно интегрировать в каркас, состоящий из распределенных объектов. Один из применяемых для этой цели методов состоит в написании объектов-оберток (wrappers). Объект-обертка — это объект распределенного приложения, который обрабатывает запросы клиентов к унаследованной программе. Обертки регистрируют свои сервисы в службе имен, поэтому в состоянии получать запросы от клиентов.

Большинство унаследованных приложений создавались как автономные программы. В некоторых случаях унаследованный код допустимо модифицировать, чтобы объекты-обертки могли получить доступ к нему. Однако часто это неприемлемо, так как документации практически нет, а разработчики уже недоступны. Поэтому обертки обычно общаются с унаследованным кодом при помощи таких грубых механизмов, как файлы — последовательные или индексированные. Обертывающий объект должен читать и модифицировать файлы, создаваемые унаследованным приложением. Если унаследованное приложение пользуется базой данных, то к ней легко обратиться с помощью оберток, скрывающих детали доступа. Например, в случае реляционной базы данных обертка способна содержать предложения на языке SQL для доступа к базе. Возможен и такой вариант, когда обертка имитирует ввод с клавиатуры или переадресует на себя вывод, направленный на экран или принтер.

Показать весь текст
Заполнить форму текущей работой