CORBA - что это такое

Технология CORBA (Common Object Request Broker Architecture — общая архитектура брокера объектных запросов) - создана для поддержки разработки и развёртывания сложных (в том числе - распределённых) объектно-ориентированных прикладных систем.

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

Общий обзор

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

Готовые объекты могут вызываться из других программ (или объектов спецификации CORBA), расположенных в сети.

Спецификация CORBA использует язык описания интерфейсов (OMG IDL) для определения интерфейсов взаимодействия объектов с внешним миром, она описывает правила отображения из IDL в язык, используемый разработчиком CORBA-объекта.

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

  1. Ада,
  2. Си,
  3. C++,
  4. Lisp,
  5. Smalltalk,
  6. Java,
  7. Кобол,
  8. Object Pascal,
  9. ПЛ/1
  10. и Python.

Также существуют нестандартные отображения на языки Perl, Visual Basic, Ruby и Tcl, реализованные средствами ORB, написанными для этих языков.

Ключевые понятия технологии

Объекты по значению

Помимо удалённых объектов в CORBA 3.0 определено понятие объект по значению.
Код методов таких объектов по умолчанию выполняется локально. Если объект по значению был получен с удалённой стороны, то необходимый код должен либо быть заранее известен обеим сторонам, либо быть динамически загружен.

Чтобы это было возможно, запись, определяющая такой объект, содержит поле Code Base — список URL, откуда может быть загружен код.

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

Компонентная модель CORBA (CCM)

Компонентная модель CORBA (CCM) — недавнее дополнение к семейству определений CORBA.

CCM была введена начиная с CORBA 3.0 и описывает стандартный каркас приложения для компонент CORBA. CCM построено под сильным влиянием Enterprise JavaBeans (EJB) и фактически является его независимым от языка расширением. CCM предоставляет абстракцию сущностей, которые могут предоставлять и получать сервисы через чётко определённые именованные интерфейсы, порты.

Модель CCM предоставляет контейнер компонентов, в котором могут поставляться программные компоненты. Контейнер предоставляет набор служб, которые может использовать компонент.

Эти службы включают (но не ограничены)=

  1. службу уведомления
  2. авторизации
  3. персистентности
  4. и управления транзакциями.

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

Общий протокол межброкерного взаимодействия (GIOP)


GIOP (General Inter-ORB Protocol)
— абстрактный протокол в стандарте CORBA, обеспечивающий интероперабельность брокеров.

Архитектура GIOP включает несколько конкретных протоколов:

  • Internet InterORB Protocol (IIOP) (Межброкерный протокол для Интернет) — протокол для организации взаимодействия между различными брокерами, опубликованный консорциумом OMG. IIOP используется GIOP в среде интернет, и обеспечивает отображение сообщений между GIOP и слоем TCP/IP.
  • SSL InterORB Protocol (SSLIOP) — IIOP поверх SSL, поддерживаются шифрование и аутентификация.
  • HyperText InterORB Protocol (HTIOP) — IIOP поверх HTTP.

Ссылка на объект (Corba Location)


CorbaLoc (англ. Corba Location) — является строковой ссылкой на объект технологии CORBA, подобной URL.

Все реализации CORBA должны поддерживать как минимум два варианта OMG URL:

  1. corbaloc:
  2. и corbaname:

Их назначение в том, чтобы предоставить человеку способ читать и править ссылку, посредством которой можно получить ссылку на объект CORBA.

Пример corbaloc:

    corbaloc::160.45.110.41:38693/StandardNS/NameServer-POA/_root

Реализация CORBA может предоставлять поддержку форматов «http:», «ftp:» и «file:». Назначение этих форматов в том, чтобы указать способ, откуда взять строковое представление ссылки на объект CORBA.