Banners System

СИСТЕМЫ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ #04/97
<< ПРЕДЫДУЩАЯ СТАТЬЯ ] [ ОГЛАВЛЕНИЕ ] [ СЛЕДУЮЩАЯ СТАТЬЯ >>

CORBA/IIOP и Java RMI. Основные возможности в сравнении

Ю. Пуха

Введение
Основные понятия
Простейшее приложение
Уровень прикладного программирования
Архитектура удаленного взаимодействия
Транспортный уровень передачи данных
Заключение

CORBA и RMI - две популярные объектные технологии для распределенных вычислений. В данной статье дается архитектурное сравнение этих технологий, с рассмотрением трех уровней абстракции: программной архитектуры приложений, архитектуры удаленного взаимодействия и архитектуры передачи данных на транспортном уровне. Предназначается статья главным образом для специалистов, знакомых с одной из рассматриваемых технологий для быстрого понимания архитектуры другой.

Введение

CORBA - технология построения распределенных объектных приложений, предложенная консорциумом OMG. Главный компонент стандарта CORBA - брокер объектных запросов (ORB), который действует как объектная шина, через которую обеспечивается прозрачное взаимодействие удаленных объектов. CORBA-объект виден внешнему миру через интерфейс, содержащий некоторое множество операций. Конкретный экземпляр CORBA-объекта идентифицируется объектной ссылкой. Удаленное приложение, являющееся клиентом CORBA-объекта, использует эту объектную ссылку для вызова нужной операции, при этом для разработчика создается впечатление, что объект находится в том же адресном пространстве. Брокер объектных запросов отвечает за поиск нужного удаленного объекта, подготавливает его для получения запроса, и обеспечивает передачу запроса к объекту. Реализация объекта взаимодействует с брокером объектных запросов через объектный адаптер или программный интерфейс ORB.

RMI - технология построения распределенных приложений, предложенная в спецификации языка Java. Объект, доступный для удаленных приложений, виден через опубликованный Java-интерфейс, содержащий некоторое множество методов. Один Java-объект может иметь несколько интерфейсов, каждый из которых характеризует определенное поведение этого объекта. Клиент взаимодействует с объектом через ссылку на один из интерфейсов, реализованных объектом. Обращение к удаленному объекту происходит аналогично обычному локальному вызову метода, т.е. прозрачно для разработчика. RMI поддерживает также передачу объектов из одного адресного пространства в другое, для чего используется технология сериализации объекта. Технология сериализации разработана специально для языка Java и обеспечивает распределение объектов по сети в реальном смысле этого слова.

Основные понятия:

Сервер объектов есть процесс, отвечающий за создание и управление экземплярами объектов;

Объект: RMI - сущность, идентифицируемая идентификатором класса;

CORBA - сущность, идентифицируемая именем интерфейса.

Метод или операция - функция, принадлежащая объекту. В терминах RMI принято употребление понятия метод. В терминах CORBA употребляется понятие операции. В дальнейшем эти два термина будут считаться взаимозаменяемыми.

Клиент есть процесс, вызывающий метод объекта.

Рассмотренные архитектуры поддерживают взаимодействие типа клиент-сервер. Для выполнения некоторого сервиса клиент вызывает метод, реализованный в удаленном объекте. Объект в этом случае выступает как сервер, модели клиент-сервер. Сервис, предоставляемый сервером, есть реализация объекта. Интерфейс, доступный для удаленного взаимодействия, описывается на языке IDL в случае CORBA, и на языке Java в случае использования RMI. Клиент взаимодействует с сервером посредством вызова методов, описанных в интерфейсе. Реализация же объекта скрыта от клиента. Используемые языки описания интерфейсов являются объектно-ориентированными и поддерживают инкапсуляцию, полиморфизм и наследование. CORBA IDL и интерфейсы на Java поддерживают множественное наследование. На уровне реализаций объектов в RMI множественное наследование классов не поддерживается, однако, объект может имплементировать несколько интерфейсов. В CORBA поддерживается множественное наследование и на этапе реализаций.

В обеих технологиях взаимодействие между клиентом и сервером объектов реализовано как вызов объектной удаленной процедуры (ORPC). Механизм работы RPC следующий (рис .1). Для вызова удаленной функции клиент обращается к клиентскому суррогату (client stub). Суррогат преобразует и упаковывает параметры, формируя сообщение запроса, которое затем передает транспортному протоколу для отправки серверу. Транспортный протокол передает сообщение серверному суррогату (server stub), который распаковывает содержимое запроса и вызывает реальный метод объекта. Во всех трех технологиях приняты разные названия для клиентского и серверного суррогатов, которые по сути означают одно и то же (proxy, stub, skeleton etc.).

Рисунок 1.
Схема взаимодействия приложений в RPC архитектуре.

В следующих разделах описывается простейший пример программы, реализованной в технологиях CORBA и RMI. Параллельно с разбором программы приводится пошаговое описание техники удаленного взаимодействия для каждой среды. Рассматриваются три уровня, по которым происходит сравнение технологий:

Ваше имя:  E-mail: 
Оценка интересности и/или полезности статьи:
интересно и/или полезно
мало интересно или полезно
вредная статья

Стиль изложения
читается легко
несколько трудна для чтения
очень трудно читать
Ваш комментарий:


 

<< ПРЕДЫДУЩАЯ СТАТЬЯ ] [ ОГЛАВЛЕНИЕ ] [ СЛЕДУЮЩАЯ СТАТЬЯ >>
Banners System