Database Programming & Design

       

CORBA: Masterminds Object Management


Warren Keuffel, software engineer and technology journalist

E-mail:

В 1989 г. группа компаний-производителей и пользователей, которые

считали перспективным применение объектно-ориентированного

подхода для разработки программного обеспечения, образовали

коалицию с целью навести порядок в хаотичном мире объектов.

Коалиция получила название Object Management Group (OMG). CORBA

является наиболее важным продуктом OMG. CORBA (Common Object

Request Broker Architecture - Общая архитектура брокера объектных

заявок) представляет собой спецификацию объектно-ориентированного

"универсального программного обеспечения промежуточного уровня"

("universal middleware"), позволяющего программистам без

потребности знания того, как и где реализованы объекты, написать

код новых объектов, взаимодействующих с существующими. OMG

специфицирует два базовых средства, предназначенных для

проектировщиков и разработчиков объектных систем, - IDL и ORB.



IDL (Inrerface Definition Language) в объектном мире играет роль,

аналогичную роли английского языка в международном сообществе

программистов, т.е. дает возможность объектам понимать друг

друга. Однако IDL только частично решает проблему обеспечения

возможности взаимодействия объектов. Требуется программное

обеспечение, которое доставляет заявки на вызов методов объектов.

В терминах OMG такое программное обеспечение называется ORB

(Object Request Broker). Как видно, акроним CORBA получается из

ORB путем добавления "C" ("Common") в начало и "A"

("Architecture") в конец. Тем самым, CORBA является архитектурой

(или спецификацией), определяющей общие свойства, которыми должны

обладать все реализации брокеров объектных заявок,

соответствующие спецификации. На самом деле, OMG не создавала

спецификацию CORBA и тем более программные продукты. OMG

запрашивает у представителей сообщества разработчиков

программного обеспечения предложения по поводу технологических

спецификаций.
Собранные предложения анализируются и оцениваются

членами OMG, и общая спецификация принимается на основе общего

согласия. Результирующая спецификация носит настолько же

политический как и технологический характер, во многом отражая

маркетинговую стратегию компаний, доминирующих в OMG (например,

IBM). Процесс принятия спецификаций в OMG носит демократический

характер; учитываются (хотя и не всегда принимаются во внимание)

многие точки зрения. По этой причине спецификация OMG более

надежна, но медленнее проникает на рынок, чем конкурирующая

архитектура компании Microsoft DCOM (Distributed Component Object

Model). Microsoft пользуется собственной технологической моделью,

не обращая внимание на наличие других точек зрения.

С точки зрения программиста, связанного с базами данных, наиболее

интересной частью CORBA является спецификация OTS (Object

Transaction Service), в которой определяется, каким образом

атомарные транзакции могут быть распределены над множеством

объектов и брокеров объектных заявок. Спецификация OTS была

разработана под большим влиянием компании Transarc Corp., одной

из двух компаний, играющих основную роль в бизнесе мониторов

транзакций. Технология монитора транзакций Encina, в частности,

была внедрена в общий технологический пакет DCE (Distributed

Computing Environment). Другой наиболее важный монитор транзакций

Tixedo (BEA/Novell) был использован в спецификации мониторов

распределенной обработки транзакций X/Open. Спецификация OTS была

разработана таким образом, чтобы обеспечить интероперабельность с

мониторами транзакций, соответствующим спецификации X/Open.

Комитеты OMG, занимавшиеся OTS, понимали, что они должны

обеспечить безопасный и надежный переход к новым технологиям для

тех компаний, которые вложили большие средства в необъектную

технологию управления транзакциями. Поэтому OTS обеспечивает

возможности одновременного взаимодействия механизмов управления

транзакциями, основанных как на ORB, так и на традиционных



мониторных транзакционных службах. Кроме того, OTS предполагает

возможность поддержки восстанавливаемых вложенных транзакций

(если угодно, в неоднородной среде) с полным следованиям

принципам ACID (Atomicy, Consistency, Isolation, Durability) и

двухфазным протоколам фиксации.

Эффективность обработки транзакций частично связана с наличием

хорошего управления параллельным выполнением транзакций. Для этих

целей CORBA содержит отдельную спецификацию, называемую CCS

(Concurrency Control Service). Определен набор возможных

блокировок, от традиционных блокировок по чтению и записи и

заканчивая условными блокировками (intention locks). Изменяемые

блокировки (upgrade locks) позволяют программистам избегать

синхронизационных тупиков (такие блокировки могут быть как

транзакционными, так и нетранзакционными).

Работа OTS делится между клиентами и серверами. Клиенты

запрашивают транзакционные услуги, которые выполняются серверами

транзакций. В OTS определены четыре важных интерфейса: Current,

Coordinator, Resource и SubtransactionAwareResource. Интерфейс

Current позволяет программисту установить контекст транзакции; по

мере создания и уничтожения объектов в пределах жизни транзакции

контекст связывается с каждым из объектов, что позволяет брокеру

объектных заявок передавать заявки от сервисов клиента серверам,

управляющим ресурсами. Когда ORB получает ответ от

объекта-сервера, он поддерживает контекст заявки и может вернуть

данные исходному клиенту. Интерфейс Resource относится к

объектам, поддерживающим протокол двухфазной фиксации. В

транзакции может участвовать несколько объектов с интерфейсом

Resource, но каждый Resource голосует по поводу своей возможности

выполнить полученную им заявку. Если хотя бы один объект

Resource голосует против, транзакция откатывается или

затормаживается в зависимости от кода, указанного в сообщении

клиента. Для повышения эффективности в средах с одним объектом

Resource в интерфейсе Current имеется возможность использовать



сообщение commit_one_phase, посылка которого позволяет отказаться

от расходов, связанных с двухфазной фиксацией.

До появления версии спецификации CORBA 2.0 после установки ORB от

некоторого производителя программисты оказывались полностью

привязанными к этой реализации. Было невозможно запустить два

брокера объектных заявок от разных производителей с гарантией,

что один из них поймет сообщения, посылаемые другим. В декабре

1994 г. была выпущена спецификация CORBA 2.0. В ней

предполагается, что транспортный механизм межброкерных

взаимодействий должен основываться на стеке протоколов TCP/IP.

Возможность межброкерных взаимодействий на основе TCP/IP

исключительно важна для всех неоднородных сред, в частности, среды

World Wide Web. 4Поэтому компания 0Netscape Communications Corp.

стала одним из наиболее активных сторонников CORBA. В среде

Netscape ONE (Open Network Environment) предполагается

использование межброкерного обмена сообщениями IIOP (Internet

Inter-ORB Protocol) вместо ориентированного на передачу файлов

протокола HTTP, применяемого в настоящее время. Этот переход

принесет существенную пользу, поскольку накладные расходы IIOP

намного меньше тех, которые требуются HTTP.

Несколько компаний-производителей предлагают сервисы OTS для

своих ORB-продуктов. Одна из наиболее известных компаний, Iona,

объявила о партнерстве с компанией Transarc с целью включения

сервисов Encina OTS в ORB Orbix. Поскольку Transarc также

поставляет монитор обработки транзакций для встраивания в DCE,

новое партнерство приведет к тому, что технология Encina будет

использоваться в обеих средах. Кроме того, за счет наличия

протокола IIOP можно использовать DCE в среде CORBA, поскольку в

CORBA 2.0 определен протокол GIOP (General Inter-ORB Protocol);

обеспечивается отображение сообщений GIOP в сообщения протокола

DCE CIOP (Common InterORB Protocol). Другой компанией,

предлагающей брокер объектных заявок, совместимый с CORBA 2.0,

является Visigenic Software Inc.


Продукт этой компании VisiBroker

for C++ ( раньше назывался ORBeline) является полной реализацией

ORB в соответствии со спецификацией CORBA 2.0 с поддержкой IIOP.

Возможно взаимодействие VisiBroker с другим продуктом компании,

VisiBroker for Java (раньше назывался Black Widow). Последний из

упомянутых продуктов целиком написан на языке Java и предназначен

для построения распределенных Java-приложений. Продукт, который

может заинтересовать программистов, желающих интегрировать CORBA

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

Persistence Software Inc. Центральной концепцией компании

Persistence является объектный кэш, поддерживающей возможности

долговременного хранения объектов. Компания имеет партнерские

связи с компанией Iona, результатом чего явилась возможность

отображения реляционных баз данных в объекты на основе

использования языка IDL.

Координаты компаний:

BEA Systems Inc.:

Black & White Software Inc.:

Gemstone Systems Inc.:

Iona Technologies Inc.:

Object Management Group Inc.:

Persistence Software Inc.:

Transarc Corp.:

Visigenic Software Inc.:


Содержание раздела