Главная    Почта    Новости    Каталог    Одноклассники    Погода    Работа    Игры     Рефераты     Карты
  
по Казнету new!
по каталогу
в рефератах

Обзор технологии CORBA

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



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


       Один  из  ключевых  принципов   архитектуры   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 в язык Ada.  Эта
работа не проста. Так, только обсуждение и принятие отображения  IDL  в  С++
заняло более двух лет напряженной работы, подтвердившей важность  технологии
принятия стандартов, используемой OMG [10].



                           3 Сетевая модель 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  (struct,  union,  array,  sequence,  string),  не
накладывающее дополнительных требований выравнивания  по  отношению  к  тем,
которые установлены для базовых типов [9].


Объектная модель CORBA

       Объектная  модель  OMG  определяет  общую  объектную  семантику   для
спецификации базовых  характеристик  объектов  стандартным,  независимым  от
реализации образом.
       Объектная модель OMG определяется в  виде  объектной  модели  -  ядра
(Core Object Model - COM) и  совокупности  расширений.  Объектная  модель  -
ядро - специфицирует некоторый набор базовых понятий. Примерами понятий  COM
являются  объекты,  операции,  типы,  отношение  тип/подтип,   наследование,
интерфейс типа.  Каждое  расширение  вводит  дополнительный  набор  понятий.
Расширяться  может  либо  COM,  либо  уже   существующие   и   согласованные
расширения. При этом вводится  понятие  профиля,  как  некоторой  комбинации
COM, и одного или нескольких расширений, вместе поддерживающих  определенную
целевую архитектуру [3].
        Объектная модель CORBA определяет взаимодействие между  клиентами  и
серверами.  Клиенты  -  это   приложения,   которые   запрашивают   сервисы,
предоставляемые  серверами.   Объекты-серверы   содержат   набор   сервисов,
разделяемых  между  многими  клиентами.  Операция  указывает   запрашиваемый
сервис. Интерфейсы объектов  описывают  множество  операций,  которые  могут
быть вызваны клиентами определенного  объекта.  Реализации  объектов  -  это
приложения, исполняющие сервисы, запрашиваемые клиентами [10].


Клиенты и серверы CORBA

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



                             4 Стабы и скелетоны


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


                      5 Основные объектные службы CORBA


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

Обзор технологии CORBA

 

Отправка СМС бесплатно

На правах рекламы


ZERO.kz
 
Модератор сайта RESURS.KZ