Файл: Технология CORBA (АНАЛИЗ ТЕСТОВ И ТЕХНОЛОГИЯ CORBA ).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 02.04.2023

Просмотров: 257

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

4. ORB на базе библиотек.

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

1.3 Язык определения интерфейсов

Одним из ключевых принципов архитектуры CORBA, обеспечивающим интероперабельность приложений, является независимость спецификации интерфейсов объектов от их реализации. Для решения этой задачи в комплексе стандартов CORBA предусмотрен специальный язык определения интерфейса - OMG IDL (Interface Definition Language).

Определение интерфейса объекта с помощью OMG IDL полностью характеризует все операции, которые могут быть выполнены данным объектом по запросу клиентов. Данное определение служит источником информации для разработки клиентских программ, имеющих доступ к объектам с запросами на выполнение операций, предусмотренными определениями их интерфейсов. Поскольку определение используемого клиентом интерфейса должно быть доступно для реализации, спецификации OMG IDL должны отображаться на языке реализации клиента.

Для описания синтаксиса языка в спецификациях стандарта CORBA используется нотация, аналогичная EBNF (Extended Backus-Naur Format - Расширенный формат Бэкуса-Наура).

::= - является по определению

| - или

< > - нетерминальный символ, представляемый заключенным в скобки понятием «текст» - литерал

* - возможность повторения предшествующей синтаксической конструкции нуль или более раз

+ - возможность повторения предшествующей синтаксической конструкции один или более раз

{ } - заключенные в скобки синтаксические конструкции рассматриваются как единая конструкция

[ ] - заключенная в скобки синтаксическая конструкция является необязательной.

При отображении IDL на разных языках программирования CORBA требует адекватного отображения конструкций IDL: все основные и построенные типы, ссылки на объекты и константы, определенные в IDL, вызовы операций, исключительные ситуации, доступ к атрибутам, сигнатуры операций в форме, определенной ORB (интерфейс динамического вызова). Реализация дисплея позволяет программисту получить доступ ко всем функциям ORB в удобной для соответствующего языка программирования форме. Все реализации ORB должны соответствовать стандарту OMG для конкретного языка программирования.

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


На сегодняшний день OMG определила отображения IDL в C, C++ и Smalltalk. В настоящее время завершается разработка стандарта картирования IDL для языка ада. Эта работа не из легких. Таким образом, обсуждение и принятие отображения IDL только на языке С++ заняло более двух лет напряженной работы, подтвердив важность технологии стандартизации OMG.

1.4 Сетевая и объектная модели CORBA

Интероперабельность брокеров поддерживается Универсальным Межброкерным Протоколом (General Inter-ORB Protocol, сокращенно GIOP). GIOP является универсальным, поскольку он не зависит от конкретной сетевой транспортной среды и может быть отображен в любой транспортный протокол, поддерживающий виртуальные соединения. Одно из таких отображений - отображение GIOP в протокол TCP/IP - определено CORBA 2.0 в качестве Межброкерного Протокола Internet (Internet Inter-ORB Protocol, сокращенно IIOP). Назначение протокола GIOP/IIOP заключается в том, чтобы поддержать сети брокеров в рамках Internet и за ее пределами.

Согласно GIOP, внутренняя архитектура брокеров предполагается неизвестной. Подход, который может быть выбран конкретным брокером для поддержки GIOP/IIOP, не определяется. Все, что требуется для согласованного включения брокера в компьютерную сеть, - это существование связанных с ним компонентов, способных посылать и принимать сообщения IIOP.

Спецификация GIOP включает:

1) определение Общего представления данных (Common Data Representation - CDR), являющегося, по существу, коммуникационным синтаксисом, отображающим значения типов данных OMG IDL в формат передачи данных между брокерами и межброкерными мостами (агентами);

2) форматы передаваемых между агентами сообщений GIOP, которые введены для поддержки объектных заявок, установления местоположения реализаций объектов и управления транспортными соединениями;

3) определение ограничений на допустимый сетевой транспорт GIOP.

Протокол IIOP, который можно считать специализацией GIOP, определяет дополнительно, как агенты открывают соединения TCP/IP и используют их для передачи сообщений GIOP. GIOP трактует транспортное соединение как асимметричное. Определяются две различных роли использования соединения: роль клиента и роль сервера. Клиент образует соединение и посылает объектные заявки, сервер принимает заявки и посылает ответы. Сервер не может посылать объектных заявок. Соединение может использоваться совместно многочисленными клиентами в одном брокере для посылки независимых заявок различным объектам в определенном брокере или сервере. Допускается асинхронная посылка заявок при их произвольном чередовании в соединении.


В передаваемых сообщениях допускается любой порядок байт (в зависимости от архитектуры процессора), заданный отправителем сообщения. Получатель сообщения должен изменить этот порядок по своему усмотрению. Значения основных типов IDL (char, octet, short, unsigned short, long, unsigned long, float, double, boolean, enum) выравниваются по границе естественных полей. Кодирование строящихся типов IDL (структура, соединение, массив, последовательность, строка) задается, что не налагает дополнительных требований к выравниванию по отношению к заданным для базовых типов.

Объектная модель OMG определяет общую семантику объекта для задания основных характеристик объектов стандартным, не зависящим от реализации образом.

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

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

1.5 Основные объектные службы и универсальные средства CORBA

Трехуровневая архитектура информационной системы, в соответствии со спецификациями OMG, включает в себя системы управления данными, сети взаимодействующих объектов CORBA и пользовательские интерфейсы для представления данных.

Однако очевидно, что большинство ИС требуют наличия ряда служб системных объектов, которые не зависят от предметной области и обеспечивают базовую функциональность для управления распределенными объектами. Для облегчения создания распределенных приложений консорциум OMG стандартизировал наиболее часто используемые сервисы (спецификация CORBAservices 1.0).

Сервис жизненного цикла - Life Cycle Service определяет операции создания, копирования, перемещения и удаления компонентов на шине.


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

Служба Event обеспечивает поддержку асинхронного взаимодействия между приложениями.

Сервис "Настойчивость" предоставляет набор универсальных интерфейсов для сохранения экземпляров объектов в долговременной памяти. Сервис разработан таким образом, что может быть реализован на основе объектной базы данных.

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

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

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

Сервис Externalization формирует копию объекта CORBA в виде некоторого внешнего представления - файла, элемента базы данных и т.д.

Служба сервиса запросов обеспечивает поддержку запросов на объекты. Это подмножество SQL, основанное на расширенных спецификациях SQL3 и языке запросов объектов (OQL).

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

Данный сервис поддерживает некоторую модель композиционно-неиспользуемого использования на любом этапе своего жизненного цикла.

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

Служба Time Service предоставляет интерфейс для синхронизации времени в среде распределенных объектов. Кроме того, он обеспечивает операции по определению и управлению событиями, ориентированными на время.


Security Sercice предоставляет полную структуру инфраструктуры для обеспечения безопасности распределенных объектов. Он поддерживает аутентификацию, списки контроля доступа, конфиденциальность, отказоустойчивость и делегирование прав доступа между объектами.

Торговая служба предоставляет объектам "Желтые страницы", дает возможность объектам информировать о своих услугах и размещать запросы о себе на "рынке труда".

Коллекторская служба предоставляет интерфейсы CORBA для создания и обслуживания контейнеров общего пользования.

Известно, что услуги OMG не являются независимыми друг от друга. Некоторые из них могут быть созданы на базе других сервисов. Как рекомендует OMG, на рисунке 1 приведен график зависимости одного сервиса от другого.

Универсальные средства предоставляют поддержку интерфейсов высокого уровня и делятся на два типа: горизонтальные и вертикальные.

Рис. 2. Граф зависимостей служб, специфицированных OMG

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

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

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

- информационное моделирование (определяет правила, по которым осуществляется структурирование и доступ к информации),

- хранение и извлечение информации (определяет использование баз данных и систем каталогизации),

- обмен информацией,

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

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

4) Инструменты управления задачами. Предполагается, что этот набор будет представлен четырьмя спецификациями: услуги по организации документооборота, услуги агентов, услуги по управлению объектами, услуги по автоматизации объектов.