Interested Article - CORBA

CORBA (обычно произносится [ ко́рба ], иногда жарг. [ ко́бра ]; англ. Common Object Request Broker Architecture — общая архитектура объектных запросов; типовая архитектура опосредованных запросов к объектам) — технологический стандарт написания , продвигаемый консорциумом (рабочей группой) OMG и соответствующая ему информационная технология . CORBA обеспечивает взаимодействие между системами, работающими под разными операционными системами , написанными на разных языках программирования и запущенных на разном вычислительном оборудовании. CORBA использует объектно-ориентированную модель, хотя системы, использующие CORBA, не обязательно должны быть объектно-ориентированными. CORBA — это пример парадигмы распределенной объектной системы .

Назначение CORBA

Технология CORBA создана для поддержки разработки и развёртывания сложных объектно-ориентированных прикладных систем.

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

Общий обзор

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

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

Стандартизованы отображения для Ада , Си , C++ , Lisp , Smalltalk , Java , Кобол , Object Pascal , ПЛ/1 и Python . Также существуют нестандартные отображения на языки Perl , Visual Basic , Ruby и Tcl , реализованные средствами ORB , написанными для этих языков.

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

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

Объекты по ссылке

Ссылка на объект указывается с использованием URL (адрес объекта устанавливается аналогично поиску адресов в системе доменных имен ( DNS )) либо передается в качестве параметра метода во время вызова. Ссылки на объекты - это легковесные объекты, соответствующие интерфейсу реального объекта (удаленного или локального). Вызов метода по ссылке приводит к последующим вызовам ORB и блокировке потока в ожидании ответа, успеха или неудачи. Параметры, возвращаемые данные (если есть) и данные об исключениях маршалируются внутри ORB в соответствии с местным языком и отображением ОС.

Данные по значению

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

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

Помимо удалённых объектов в CORBA 3.0 определено понятие объект по значению. Это определение сделано совместимым с RMI-IIOP . Код методов таких объектов по умолчанию выполняется локально. Если объект по значению был получен с удалённой стороны, то необходимый код должен либо быть заранее известен обеим сторонам, либо быть динамически загружен. Чтобы это было возможно, запись, определяющая такой объект, содержит поле Code Base — список URL, откуда может быть загружен код.

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

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

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

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

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

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

GIOP (General Inter-ORB Protocol) — абстрактный протокол в стандарте CORBA, обеспечивающий интероперабельность брокеров. Стандарты, связанные с протоколом выпускает Object Management Group (OMG). Архитектура GIOP включает несколько конкретных протоколов:

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

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

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

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

Пример corbaloc :

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

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

Список брокеров (CORBA ORBs)

  • Borland Enterprise Server, VisiBroker Ed. — CORBA 2.6-совместимый коммерческий ORB от Borland , поддерживает Java и C++ .
  • — свободный ( LGPL ) ORB с поддержкой C++ .
  • — свободный ( LGPL ) ORB для C++ и Python .
  • — свободный ( LGPL ) ORB для C , C++ и Python .
  • — свободный ( LGPL ) ORB, написан на Java .
  • — , открытый ORB для C++ .
  • — коммерческий ORB для C++ , Java от .
  • Orbix — коммерческий ORB от .
  • — ORB от для языка программирования Ada . Есть как свободная, так и коммерческая версии.

См. также

Примечания

  1. 27 февраля 2007 года.
  2. . Дата обращения: 25 мая 2010. Архивировано из 26 июля 2010 года.
  3. на сайте SourceForge.net
  4. . Дата обращения: 3 марта 2007. 28 мая 2007 года.
  5. . Дата обращения: 3 марта 2007. 12 декабря 2005 года.
  6. . Дата обращения: 3 марта 2007. Архивировано из 11 июня 2007 года.
  7. . Дата обращения: 3 марта 2007. Архивировано из 20 марта 2007 года.

Ссылки

Источник —

Same as CORBA