Осенью 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, на современный технологический уровень. Предоставляет функционально богатые достижения объектно-ориентированного подхода. |