Объектные технологии: а теперь — CORBAтый!

Некоторые специалисты считают, что последнее десятилетие прошло под флагом распределенной обработки данных (distributed computing). В результате мы получили возможность создавать сети, совместно использующие ресурсы, как данные, так и процессорное время. Это означает,что вы можете для решения своих задач обращаться за помощью к базе данных компании или общему принтеру вместо того, чтобы занимать место на своем диске и покупать лишний принтер. Кроме того, объединенная мощь десяти компьютеров иногда бывает производительнее одного.

Взаимодействие между распределенными ресурсами осуществляется с помощью ПО промежуточного слоя (Middleware). Это ПО играет в распределенных вычислениях главную роль — оно обеспечивает связь между программами, выполняющимися на разных компьютерах. Различают пять видов Middleware: связь с базами данных (database connectivity), системы распространения сообщений (Message-oriented Middleware), мониторы обработки транзакций (Transaction Processing monitor), системы удаленного вызова (Remote Procedure Call), брокеры объектных запросов (Object Request Broker, ORB).

Технология брокеров объектных запросов находится пока в стадии становления, но ее широкие возможности заставляют проявлять к ней интерес многих производителей ПО. Суть ее в том, что ORB позволяет объектам, распределенным в неоднородной сети (сети, связывающей компьютеры на различных платформах), обращаться с запросами к другим объектам, независимо от платформы и языка программирования. Неискушенный читатель спросит — а чем же отличается взаимодействие объектов от обычной распределенной обработки? Отвечу: древняя мудрость гласит, что объекты позволяют перевести на абстрактный уровень решение таких задач распределенной обработки, как преобразование имен, описание интерфейса, транспортные протоколы и т.п., что считается упрощением программирования самой распределенной обработки.

Основой для создания брокеров объектных запросов послужила спецификация CORBA (Common ORB Architecture), утвержденная консорциумом OMG (Object Management Group). CORBA описывает структуру таких стандартов OMG как Object Services и Common Facilities.

Object Services включает в себя 13 объектных служб: управление одновременным доступом (Concurrency Control), события (Events), экспорт (Externalization), интерфейсы, лицензирование, жизненный цикл объектов (Lifecicle), именование (Naming), сохранение состояния объекта между сеансами использования (Persistance), запросы (Query), связи (Relationship), тиражирование (Replication), обеспечение безопасности (Security), обработка транзакций. Впрочем, в большинстве брокеров ORB реализованы пока только службы именования, событий и жизненного цикла, в ближайшее время ожидается также реализация служб транзакций и безопасности. Дай-то Бог освоить хотя бы это.

В Common Facilities определяются высокоуровневые объекты, обеспечивающие печать, электронную почту, запросы к базам данных и т.п.

Объектная модель OMG основывается на механизме сообщений: клиенты посылают запросы серверам, последние идентифицируют объект и параметры. Интерфейс отделен от реализации, следовательно, не зависит от языка реализации. Объектная модель выражается в терминах IDL, языка описания интерфейсов (API, а не интерфейсов пользователя), IDL-описание отображается в нужный язык реализации. IDL CORBA аналогичен C++, написание интерфейсов на нем напоминает описание классов C++.

На случай, если интерфейс объекта неизвестен на этапе компиляции, CORBA предлагает Dynamic Invocation Interface — интерфейс динамического вызова. С помощью механизма DII можно определить запросы к ORB во время выполнения. При наличии библиотеки Intterface Repository клиент может найти неизвестный объект и запросить информацию об его интерфейсе.

Возможности ПО ORB определяются совместимостью со спецификацией CORBA 2.0, поддерживающей взаимодействие объектов от различных производителей, что делает перспективы ORB многообещающими. Компании Sun и IBM даже собираются встроить брокеры объектных запросов в свои операционные системы.

Дмитрий БОРОДАЕНКО

Версия для печатиВерсия для печати

Номер: 

11 за 1997 год

Рубрика: 

Software
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!