Спонсор: Microsoft
Опубликован: 24.09.2008 | Уровень: специалист | Доступ: платный | ВУЗ: Московский физико-технический институт
Лекция 13:

Средства программной инженерии

12.3. Средства спецификации объектов и компонентов в системе CORBA

Система CORBA предоставляет распределенный обмен данных между объектами через обработку запросов брокером ORB. Эта технология позволяет прикладной программе запрашивать сервисы у другой программы, вызывая методы удаленных объектов. Для реализации взаимодействия объектов и программ (клиента и сервиса) используется язык интерфейса IDL, описание в котором реализует компилятор Idltojava для генерации выходного JAVA файла. Для стороны сервера или клиента или для обеих. Со стороны клиента требуется специфическая IOR форма (Interoperable Object Reference), которая поддерживает именование сервера. Браузер CORBA просматривает имена сервисов и генерирует кода для вставки его в файл класса клиента. Для стороны сервера он дополняет код, который связывает экземпляры сервентов с именами сервисов и вставить его в файл класса сервера. IDL файл компилируется, и полученная программа запускается для выполнения [12.2, 12.3, 12.5].

В системе CORBA имеются следующие шаблоны интеграции компонентов:

  • Client class для вызова метода, который будет выполнен сервером;
  • Stub class обеспечивает конвертирование данных метода, инициирующего работу клиента в Wire формате, используемом при связывании на стороне клиента сети;
  • ORB class управляет методами передачи данных и вызовами методов между процессами;
  • Implementation class содержит деловую логику сервера, экземпляр этого класса сервент регистрируется в ORB и может использоваться клиентом для запуска другого процесса;
  • Server class создает сервент и ссылку IOR, которую он записывает в стандартный выходной файл;
  • Skeleton class конвертирует инициирующий метод с Wire форматом в формат, который может прочитать экземпляр сервента.

При реализации ПИК система CORBA используется шаблон поддержки адаптера POA (Portable Object Adapter), который порождает следующие типы объектов: пустой сервер ( Empty ), основной класс сервер ( ServerMain ), класс клиент ( ClientMain ) и простой Simple.

Для инициализации CORBA компонентов используется три параметра ( value, title, type ), каждый из которых задается переменной строкового типа, значения для мастера CORBA. Например:

<server-binding name = 'Proprietary Binder'
template-tag = 'SERVER_BINDING'>
<wizard requires-value =
/*FFJ_COBRA_TODO_SERVER_NAME*/'
title = 'Server name:' type = 'string'/>

Сервлет - это небольшая программа, которая выполняется на серверной стороне WEB, расширяет функциональные возможности WEB-сервера, облегчает доступ к ресурсам и разрешает процессу читать данные из HTTP, запрашивать WEB-сервер и записывать данные из сервера ответ в HTTP. Сервлеты выполняются в границах адресного пространства WEB-сервера и являются альтернативой CGI (Common Gateway Interface) взаимодействия процесса запроса клиента к WEB-серверу. CGI программы разрабатываются на разных ЯП и являются необходимыми при создании отдельного процесса обработки каждого запроса клиента. Сервлеты описываются на языке JAVA независимо от платформы, размещаются в разных средах и используют библиотеку классов JAVA для получения параметров инициализации, активизации и регистрации событий, а также для доступа к информации и формирования ответа клиенту. Реализацию сервлетов осуществляет инструментарий Servlet Development Kit (JSDK) с применением следующих шаблонов создания и интеграции:

  • WebModule - элемент WEB-ресурса, который разворачивается в прикладной программе, использует спецификации сервлетов и серверных страниц для поддержки их функционирования. Аналогично он поддерживают beans компоненты;
  • WebModuleGroup - шаблон для создания группы взаимодействующих WebModule на WEB сервере и создания сервлетов;
  • HTML File.

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

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

Семантика интерфейса может быть представлена с помощью контрактов, в которых определяются глобальные ограничения, которые обеспечивает компонент, т.е. инвариант.

Контракт определяет ограничения на операции, которые выполняются клиентом перед вызовом операции (предусловия) и после завершения операции (постусловия). Вместе предусловия, инвариант и постусловия образуют спецификацию поведения компонента.

Каждый интерфейс состоит из набора операций (сервисов, которые он предлагает или требует), с каждой из них связан набор предусловий и постусловий, определяющих состояния компонента. Контракты и интерфейс связаны между собой. Интерфейс отражает функциональные свойства и состоит из набора операций для спецификации сервисов, а контракт отражает семантику и описание поведения компонента, зависящее от взаимодействия с другими компонентами.

Нефункциональные свойства (надежность, доступность) задают общие черты поведения компонента, которые не могут быть выражены через стандартные интерфейсы. Эти свойства, как специальные расширения интерфейса обеспечивают сервисы компонентам, динамическое конфигурирование при взаимодействии компонентов в распределенной среде.

12.3.1. Виды интерфейсов в системе CORBA

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

Объектклиент и объектсервер обмениваются между собой с помощью запросов, каждый из которых исполняется брокером 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 ), обеспечивающий доступ к объектно-ориентированной БД.
Alex Diil
Alex Diil

Здравствуйте, прошел курс МБА Управление ИТ-проектами и направил документы на получение диплома почтой. Подскажите, сроки получения оного в бумажной форме?

:

Наталья Ра
Наталья Ра

Здравствуйте!

Большинство курсов из этой программы я изучила в бесплатном режиме и сдала экзамены. Теперь нужно будет все пересдавать?

Артур Каразанов
Артур Каразанов
Россия, Йошкар-Ола