Технологии CORBA

Архитектура распределенной системы CORBA. Технология уда­ленного доступа к базам данных CORBA (Common Object Regust Broker Architecture — общая архитектура объектных заявок) пред­ставляет собой промежуточное программное обеспечение, уста­навливающее отношения клиент – сервер между объектами в рас­пределенной компьютерной среде.

Типовая архитектура распределенной системы CORBA, которая включает в себя следующие компо­ненты:

• ORB (Object Request Broker) — брокер объектных запросов (заявок), включающий в себя язык IDL;

• IDL (Interface Definition Language) — язык определения ин­терфейсов;

• РОА (Portable Object Adapter) — адаптер объектов;

• Stub — заглушка;

• Skeleton — основа;

• Smart Agent — «умный» агент.

Брокер объектных запросов. ORB устанавливает отношения кли­ент—сервер между объектами. В данной технологии роли клиента и сервера не постоянно приписаны компонентам, а устанавливаются только на один запрос.

Схему работы ORB можно представить следующим образом:

• клиент (объект-отправитель) вызывает операцию (метод) на адресате, идентифицируемом ссылкой, и передает запрос ORB;

• посредник по ссылке находит сервер, содержащий объект-адресат (в терминологии CORBA этот сервер иногда называют object implementation — реализация объекта), и активизирует его. Затем доставляет запрос к объекту-адресату, передает адресату парамет­ры, вызывает соответствующую операцию и возвращает результат клиенту после выполнения операции.

В одном запросе могут быть указаны несколько адресатов, кото­рые могут располагаться как на одном, так и на разных серверах.

Система CORBA позволяет организовывать различные архи­тектурные схемы ORB, однако каждая из них должна реализовывать три категории операций:

· одинаковые для всех реализаций ORB;

· специфичные для конкретного объектного типа;

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

схемы брокера объектных запросов;

· ORB, включаемый в клиентское и серверное приложения;

· ORB, выполненный в виде сервера;

· ORB, реализованный как часть операционной системы;

· ORB, основанный на библиотеках.

· ORB, включаемый в клиентское и серверное приложения, форми­руется в виде набора

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

ORB, выполненный в виде сервера, реализуется в виде отдельного приложения, что позволяет обеспечить централизованную обра­ботку информации.

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

На сервере базы данных MS SQL хранится информация в виде реляционных таблиц — дискретных (параметрических) характе­ристик карт местности (поверхностей). Доступ к информации, хранящейся на этом сервере, осуществляется по технологии ADO.

На сервере базы данных CORBA-сервер хранятся карты мест­ности в виде отдельных графических файлов, доступ к которым осуществляется по технологии CORBA.

ORB, реализованный как часть операционной системы, использу­ется для повышения надежности, защиты данных и достижения лучшей производительности. В этом случае возможно применение различных методов оптимизации обработки данных, например отмены кодирования и декодирования данных, если клиентская и серверная части находятся на одном компьютере.

ORB, основанный на библиотеках, используется, если код объек­та занимает небольшой объем и не требует никаких дополнитель­ных средств.

Язык определения интерфейсов. IDL — это специальный язык для описания ORB и других компонентов системы CORBA, кото­рый не содержит присваиваний, операторов if или while, функ­ций и логических переходов. IDL представляет собой процедуры описания, декларации, пассивные определения атрибутов, роди­тельских классов, типов поддерживаемых событий, методов (вклю­чая входные и выходные данные), основные и составные типы данных, исключительные ситуации для обработки ошибок.

IDL описывает интерфейсы аналогично классам в С++ или в Smalltalk, интерфейсы в Java, пакеты в Ada95. Каждый интерфейс определяет операции, которые могут быть вызваны клиентами. Синтаксически IDL является подмножеством С++с дополнитель­ными ключевыми словами. Существуют компиляторы IDL в С++, Java, Ada, Smalltalk, COBOL, OLE (Visual Basic, PowerBuilder, Delphi).

Одна из задач IDL — обеспечение взаимодействия через ORB всех приложений клиент —сервер.

В связи с этим систему CORBA называют стандартом для раз­работки промежуточного программного обеспечения, которое поддерживает работу с удаленными базами данных.

Адаптер объектов. РОА (в первых версиях CORBA — BOA — Basic Object Adapter) — это первичный путь для обеспечения сер­виса конкретной реализацией объекта. Предполагается, что име­ется несколько адаптеров объектов, каждый из которых обеспе­чивает доступ к объектам определенного вида.

Сервисы, которые обеспечиваются ORB посредством адапте­ров объектов, часто включают в себя: генерацию и интерпрета­цию ссылок на объекты, вызов методов, активацию и деактива­цию реализаций объектов, а также регистрацию конкретных ре­ализаций и отображение объектных ссылок и реализаций.

Интерфейс должен быть либо определен в хранилище описа­ний, либо иметь соответствующее IDL-описание, на основании которого компилятор создает исходный код для объекта-заглуш­ки, находящегося у клиента, и для основы реализации объекта.

Информация, которая находится в каждом из хранилищ, мо­жет быть произвольно изменена в любой момент времени с помо­щью методов, обеспечиваемых реализацией ORB. Однако неосто­рожное изменение, сделанное во время работы, может привести к нарушению целостности информации, находящейся в каждом из хранилищ, и сделать невозможным дальнейшее функциониро­вание ORB.

Заглушка. Stub связывает клиентские приложения с ORB. На­писанные на языке IDL сервисы после компиляции на язык про­граммирования клиентского приложения и компоновки с ним ста­новятся абсолютно прозрачны для клиента и выполняют функции обращения к удаленному объекту — серверу. Заглушка осуществля­ет передачу запроса и обычно оптимизирована для выполнения конкретного ORB. Если клиентам доступно более одного ORB, то у них может быть различное внутреннее представление заглушек.

Основа. Skeleton аналогично Stub связывает ORB и серверные приложения. Создается после компиляции языка IDL. Интерфейс динамического вызова — DU (Dynamic Invocation Interface) — позволяет объекту создавать запрос в реальном времени. Структу­ра запроса, его параметры и атрибуты и даже сама ссылка на объект-адресат генерируются в Dil либо на основе запроса к объек­ту и анализа отклика.

«Умный» агент» - это динамический сервис, моделирующий сетевой каталог, в котором зарегистрированы известные ему сер­веры объектов как в локальной сети, так и в сети Интернет. Он отыскивает - требуемый сетевой адрес сервера и передает ему зап­рос ORB.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: