Методы и средства инженерии программного обеспечения

Язык описания интерфейсов в системе CORBA


Для задания взаимодействия объектов в системе  CORBA используется язык описания интерфейсов IDL, который независим от языка описания самого объекта, а именно С, С++, Паскаль и др. Интерфейсы объектов в IDL-языке запоминаются в репозитории интрфейсов (Interface Repository),  а реализации объектов -- в репозитории реализаций (Implementation Repository). Независимость интерфейсов от реализаций объектов  позволяет их использовать статически и динамически разными приложениями.

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

Интерфейс клиента (Сlient Interface) обеспечивает взаимодействие  с объектом-сервером с помощью ORB и  состоит из трех  интерфейсов:

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

 – интерфейса динамического вызова  (Dynamic Invocation Interface – DII) объекта, определяемого во время выполнения программы клиента посредством поиска описания интерфейса  в репозитории интерфейсов или в  репозитории реализаций;

– интерфейса сервисов ORB (ORB Services Interface), содержащего набор сервисных функций, которые клиент запрашивает у сервера через брокера.

Stub-интерфейс  – клиентский интерфейс, обеспечивает взаимосвязь клиента с ORB. Прикладная программа клиента через посредника stub – статической части программы клиента  посылает в запросе параметры, которым сопоставляются соответствующие описания  из репозитория интерфейсов.

Интефейс DII  обеспечивает доступ (извлечение) объектов  и их интерфейсов во время выполнения. Этот  интерфейс становится известным во время выполнения и  доступен благодаря вызова  брокера ORB. В  каждом вызове указывается тип объекта,  тип запроса  и параметры.  Такую  информацию посылает прикладная  программа либо она извлекается из репозитория интерфейсов или репозитория реализаций.

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

– базовый адаптер  (Basic Object Adapter -- BOA), который может обеспечивать выполнение объектов независимо от брокера;

– библиотечный адаптер (Library Adapter), обеспечивающий выполнение объектов, хранящихся в библиотеке объектов и вызываемых из прикладной программы клиента; 

– адаптер БД (Database Adapter), обеспечивающий доступ к объектно-ориентированным БД.



Содержание раздела