Осенью 1990 года консорциум Object Management Group впервые опубликовал Руководство по Архитектуре Управления Объектами (Object Management Architecture Guide - OMA Guide). В этом руководстве OMG определил четыре важнейших компонента инфраструктуры распределенных объектных систем:

  • Брокер Объектных Запросов (Object Request Broker - ORB), определяющий объектную шину CORBA;
  • Сервисы CORBA (CORBAservices), определяющие системный уровень объектной инфраструктуры, которая расширяет шину ORB;
  • Общие Средства CORBA (CORBAfacilities), определяющие «горизонтальный» и «вертикальный» базисы приложений, которые непосредственно используется бизнес-объектами;
  • Application Objects, представляющие прикладные объекты и приложения, то есть конечных потребителей инфраструктуры CORBA.

9 сентября 1998 года в рамках выставки Comdex Enterprise?98/Object World Conference Консорциум OMG анонсировал CORBA 3.0. Учитывая, что в качестве участников OMG на сегодняшний день выступает более 800 компаний, организаций и научных центров, спецификации и идеи OMA и CORBA действительно начинают играть определяющую роль в развитии современных технологий построения распределенных систем.

Основные нововведения CORBA 3.0 сконцентрированы на следующих направлениях:

  • Поддержка распределенных компонентов:
  • компоненты CORBA (CORBA Component Model) - переносимые «plug-and-play» объекты CORBA (часто встречается название CORBABeans);
  • CORBA Interoperable Naming Service - предназначен для обеспечения прозрачного поиска, нахождения и вызова объектов CORBA (вне зависимости от используемых реализаций ORB);
  • CORBA Scripting Language - язык сценариев, позволяющий манипулировать объектами CORBA;
  • Object-by-Value - передача объектов по значению;
  • Multiple Interfaces - возможность описания набора интерфейсов в рамках одного объекта;
  • CORBA Persistent State Service (PSS) - замена существующей службы CORBA Persistence Service; базируется на переносимом POA - Portable Object Adapter.

  • Интеграция поддержки Java, Internet и унаследованных систем:
  • Новая спецификация отображения Java / IDL (учитывает нововведения платформы Java 2, ранее известной под именем JDK 1.2);
  • Интеграция с XML;
  • Спецификация Firewall определяет интерфейсы для IIOP-обмена через межсетевой экран, включая опции фильтрации и поддержку proxy;
  • DCE/CORBA Internetworking - обеспечивает прозрачную интеграцию унаследованных DCE-систем в инфраструктуру CORBA;

  • Качество обслуживания CORBA;
  • Minimum CORBA - предназначена для пользователей, нуждающихся во встроенных системах с поддержкой CORBA;
  • Realtime CORBA 1.0 - службы, предназначенные для построения распределенных систем реального времени;
  • Asynchronous Messaging - служба асинхронного обмена сообщениями (в настоящее время на уровне спецификаций CORBA 2.x поддерживаются синхронный и отсроченный обмен сообщениями, а также нотификация - односторонняя рассылка сообщений);
  • Asynchronous Method Invocation (AMI) - определяет возможности и способы асинхронных вызовов методов в соответствии с предусмотренным качеством обслуживания.

Рассмотрим более подробно те возможности, которые следует ожидать в CORBA 3.0.

Лучше оценить значимость планируемых нововведений CORBA 3.0 поможет краткая характеристика предыдущих версий спецификаций CORBA.:

CORBA 1.0 (Октябрь 1991)

  • описание объектной модели (CORBA Object model);
  • язык определения интерфейсов - Interface Definition Language (IDL);
  • базовый набор прикладных программных интерфейсов (Application Programming Interfaces - API) для управления динамическими вызовами в рамках DII (Dynamic Invocation Interface);
  • репозитарий интерфейсов - Interface Repository;
  • отображение языков C и IDL.

CORBA 1.1 (Февраль 1992)

Первая широко опубликованная версия спецификации CORBA.

  • пересмотрены некоторые положения версии 1.0
  • добавлены интерфейсы для Basic Object Adapter и управления памятью
  • уточнены роль и интерфесы Interface Repository
  • уточнены неясности в определении объектной модели

CORBA 1.2 (Декабрь 1993)

  • уточнены неясности в вопросах управления памятью и сравнения объектных ссылок (object reference)

CORBA 2.0 (Август 1996)

  • пересмотр некоторых положений объектной модели CORBA
  • dynamic skeleton interface
  • расширения Interface Repository
  • архитектура интероперабельности: протоколы GIOP, IIOP, DCE ESIOP
  • поддержка слоя обеспечения безопасности
  • служба транзакций
  • расширенная поддержка типов данных COBOL
  • поддержка Unicode для обеспечения многоязыковой среды
  • определение взаимодействия объектов CORBA с OLE/COM
  • отображения IDL для языков C++ и Smalltalk

CORBA 2.1 (Август 1997)

  • дополнительные возможности интеграции со средствами обеспечения безопасности (secure IIOP и IIOP «поверх» SSL)
  • отображения IDL для языков COBOL и Ada
  • расширенная поддержка типов в существующих отображениях IDL

CORBA 2.2 (Февраль 1998)

  • Новый (переносимый) тип объектных адаптеров - POA (Portable Object Adapter)
  • Взаимодействие с DCOM
  • Спецификация отображения IDL/JAVA

CORBA 2.3 ( Лето 1998)

Обновление спецификаций IDL/Java language mapping, ORB portability IDL/Java, COM/CORBA Part A & B, C/C++, CORBA Core, ORB Interoperability, Security 1.2 .

Аббревиатуры

OMA - Object Management Architecture

CORBA - Common Object Request Broker Architecture

IDL - Interface Definition Language

GIOP - General Inter-ORB Protocol (базовый протокол взаимодействия между ORB)

IIOP - Internet Inter-ORB Protocol (протокол, ориентированный на работу по TCP/IP)

ESIOP - Environment Specific Inter-ORB Protocol (DCE ESIOP ориентирован на поддержку DCE)

SSL - Secure Socket Layer

Источники информации

Web: Сервер OMG - http://www.omg.org

Текущие спецификации и документы OMG (формат .pdf) - http://www.omg.org/library/downinst.html

Анонс CORBA 3.0 - http://www.omg.org/news/pr98/9_9.html

Статьи на русском языке:

Симфония CORBA, Марина Аншина, Открытые Системы, #3/98

Лидеры CORBA, Дмитрий Рамодин, Мир ПК, #1/99

Журналы СУБД 1995-1998

Об авторe

Сергей Орлик — менеджер по продуктам московского офиса компании Inprise. С ним можно связаться по электронной почте по адресу: sorlik@inprise.ru.

Литература

[1] Instant CORBA Robert Orfali, Dan Harkey, Jeri Edwards John Wiley & Sons (Wiley Computer Publishing ) ISBN: 0471183334

[2] Client/Server Programming With Java and CORBA, Second Edition Robert Orfali and Dan Harkey John Wiley & Sons (Wiley Computer Publishing) ISBN: 047124578

[3] Java Programming With CORBA Alan Pope John Wiley & Sons (Wiley Computer Publishing ) ISBN: 020163386

[4] Java Programming With CORBA Andreas Vogel and Keith Duddy John Wiley & Sons (Wiley Computer Publishing ) ISBN: 0471179868

[5] Programming with VisiBroker, A Developer?s Guide to VisiBroker for Java Doug Pedrick, Jonathan Weedon, Jon Goldberg, and Erik John Wiley & Sons (Wiley Computer Publishing ) ISBN: 0471239011

[6] CORBA Design Patterns Thomas J. Mowbray, Raphael C. Malveau John Wiley & Sons (Wiley Computer Publishing ) ISBN: 0471158828


CORBA 3.0 - предварительный вариант (осень 1998), коммерческий релиз (первая половина 1999)

Компоненты обеспечивают «сборную» архитектуру приложений и систем. Спецификация CORBA Components будет включать механизмначению (ранее была описана только передача по ссылке).

СпецификацияФункциональностьТехнологические преимуществаПреимущества с точки зрения бизнеса
Multiple InterfacesПозволяет описывать в рамках одного компонента набор (более одного) IDL-интерфейсов, то есть определять "композицию" интерфейсов.Предоставляет средства логического разделения групп функций объектов на основе определения набора поддерживаемых интерфейсов. Контроль видимости и/или доступа к отдельным интерфейсам, методам и событиям компонент по заданным критериям.Увеличивает эффективность разработки, а также поддержку и обновление программных систем.
Objects-by-ValueОбеспечивает передачу CORBA-объектов по назначению (ранее была описана только передача по ссылке).В большинстве случаев передача обектов по значению более прозрачна, эффективна и контролируема, чем по ссылке.Обеспечивает лучшее соответствие CORBA современным языкам программирования, что приводит к большей продуктивности труда разработчиков.
CORBA Component ModelСпецифицирует интерфейсы и механизмы компонентной модели CORBA; обеспечивает отображение компонент CORBA в другие компонентные модели, включая JavaBeans.Обеспечивает более полный механизм выражения сущности объектно-ориентированного подхода при разработки приложений. В перспективе позволит «собирать» распределенные приложения и системы из готовых компонент. CORBA component model обеспечивает прозрачное взаимодействие и интеграцию CORBA с существующими системами на базе JavaBeans и ActiveX.Обеспечивает более плотную интеграцию CORBA с платформой Java и другими компонентно-ориентированными.
CORBA Scripting LanguageЯзык сценариев, для манипулирования объектами CORBA, а также обеспечения встраивания компонент CORBA в приложения.Сценарные языки легки в понимании и более доступны широкой аудитории. Они не требуют стадии компиляции, а потому применимы в «пользовательском» мире. Сценарные языки позволяют опробывать новую функциональность или реализации объектов без необходимости «глубокого» программирования.Ускоряет разработку и, в особенности, прототипирование прикладных систем.

Качество обслуживания

СпецификацияФункциональностьТехнологические преимуществаПреимущества с точки зрения бизнеса
Minimum CORBAАдресуется тем разработчикам, перед которыми стоит задача обеспечения совместимости с CORBA во встроенных (embedded) системах и приложениях.Встроенные технологии используются в специальных программно-аппаратных решениях и тиражируемых системах. Оба вида систем расширяют возможности применения CORBA в качестве единой системной инфраструктуры приложений.Расширяет возможности интеграции разноплановых систем в единое информационное пространство.
Realtime CORBA 1.0Устанавливает фундаментальный набор технологий CORBA для систем реального времени.См. Minimum CORBA.См. Minimum CORBA + лучший контроль объектов и ресурсов самой шины ORB.
Asynchronous MessagingУправляет асинхронным обменом сообщений в распределенных объектных системах.Расширяет возможности обмена сообщениями в распределенных объектных средах.Обеспечивает реальные шаги по стандартизации распределененых систем на основе технологии обмена сообщениями.

Другие технологии

СпецификацияФункциональностьТехнологические преимуществаПреимущества с точки зрения бизнеса
Java to IDL MappingСпецификация для автоматической генерации описаний OMG IDL на основе Java.Java to IDL mapping позволяет разработчикам строить распределенные системы непосредственно на Java и автоматически генерировать все необходимые описания на OMG IDL (основывается на широко применяемой в настоящее время технологии VisiBroker Caffeine - Java2IIOP).Более эффективная и прозрачная интеграция с системами и приложениями на платформе Java.
FirewallОбеспечвает IIOP-обмен через брандмауерКонтролирует доступ и сетевой трафик IIOP-обмена при работе через Internet с CORBA-ориентированными приложениями.Обеспечивает использование CORBA в Internet-системах. Увеличивает уровень безопасности систем.
DCE/CORBA InterworkingСпецификация средств интеграции унаследованных DCE-приложений в среду CORBA.Предоставляет средства взаимодействия инфраструктур CORBA и DCE.Обеспечивает плавную миграцию организаций, использующих DCE, на современный технологический уровень. Предоставляет функционально богатые достижения объектно-ориентированного подхода.