
- •2.4. Технологии распределенной обработки информации
- •2.4.1. Распределенные базы данных
- •2.4.2. Клиент-серверные архитектуры распределенной обработки данных
- •2.4.3. Архитектура сервера бд
- •2.4.4. Схемы размещения и доступа к данным в распределенных бд
- •2.4.5. Объектно-ориентированные технологии распределенной обработки
2.4.5. Объектно-ориентированные технологии распределенной обработки
2.4.5.1. OLE, COM, DCOM, ActiveX, MTS, COM+
Для передачи сообщений в среде Windows фирмой Microsoft была первоначально разработана технология DDE (Dynamic Data Exchange – динамический обмен данными), основанная на передаче системных сообщений и обратных вызовах. Первая версия технологии OLE (Object Linking and Embedding – связывание и внедрение объектов) была основана на DDE. OLE2 использует механизм LRPC (Lightweight RPC – облегченный вызов удаленных процедур). Технология использования LRPC в OLE2 была названа COM (Component Object Model – компонентная модель объектов). Первоначально основное использование OLE было сосредоточено в области связывания и внедрения объектов, созданных в одних приложениях, в документы, созданные в других. Сейчас наибольший интерес представляет обмен между приложениями, в частности удаленными, основанный на COM. В DCOM (Distributed COM) вместо LRPC используется RPC. LRPC, несмотря на название, предназначен только для локального вызова процедур.
Каждый OLE-объект имеет некоторое количество интерфейсов, через которые производится обращение к его методам. Обычно интерфейсы объекта объединяют функционально близкие методы, например, интерфейс печати, вычислительный интерфейс и т.д.
Описание интерфейсов выполняется на языке IDL (Interface Definition Language). Компиляторы IDL (например, MIDL – Microsoft IDL) выполняют генерацию на основе IDL-описания файлов, которые могут использоваться средствами разработки, в первую очередь, на C/C++:
заголовочных файлов с объявлениями типов;
библиотек типов (двоичное представление кода IDL);
исходного кода DLL-представителей и заместителей (библиотек, служащих для удаленного вызова методов и взаимодействия между процессами).
Обращение к объектам и их интерфейсам в COM производится при помощи GUID (Globally Unique Identifier –глобальных уникальных идентификаторов – 16-байтовых чисел). GUID объекта (класса) называется CLSID, GUID интерфейса – IID. При обращении к объекту Windows ищет в реестре запись, нумерованную его CLSID, и запускает сервер, указанный в поле LocalServer этой записи.
Для использования DCOM на стороне клиента должен быть установлен (зарегистрирован в реестре) агент сервера. Удаленное взаимодействие реализуется следующим образом:
Приложение-клиент вызывает через OLE приложение-сервер.
OLE получает из реестра при помощи CLSID имя приложения агента сервера и вызывает его. Клиент после этого взаимодействует с агентом как с сервером.
Агент использует механизм RPC, т.е. передает ему в унифицированном формате CLSID сервера и параметры вызова.
RPC передает все это на сторону сервера.
RPC на стороне сервера распаковывает CLSID и параметры и запускает через OLE сервер.
OLE получает из реестра при помощи CLSID имя приложения сервера и вызывает его.
|
Рисунок 7. DCOM |
2.4.5.2. Common Object Request Broker Architecture – Общая архитектура брокера объектных заявок (CORBA)
CORBA была разработана консорциумом OMG (Object Management Group). Основные принципы функционирования CORBA аналогичны технологии RPC (рисунок 8). В частности, основой CORBA является язык IDL.
Интерфейс сервера приложений реализуется на IDL и компилируется, в результате чего получаются модули заглушки клиента (Stub) и скелета сервера (Skeleton) на соответствующих языках программирования. Клиент обращается к брокеру объектных заявок (ORB - Object Request Broker) через модуль Stab или через интерфейс динамического вызова, что менее эффективно по критерию производительности. ORB упаковывает параметры вызова в сетевой пакет и передает его Smart Agent – приложению, которое может быть размещено на любой машине ЛВС. Smart Agent предназначен для управления работой однотипных серверов, находящихся в ЛВС. В ЛВС может быть несколько Smart Agent. Smart Agent отыскивает нужный сервер и передает ORB пакет заявки. ORB обращается к адаптеру объектов (Broker Object Adapter - BOA), который передает управление серверу. Сервер работает через свой модуль Skeleton. BOA предназначен для управления информацией о сервере на Smart Agent (в первую очередь для регистрации сервера).
Главная часть ORB называется ядром. Ядро брокера реализует некоторый минимальный набор функций, которые дают возможность объекту-клиенту вызывать операции объекта-сервера.
|
Рисунок 8. Структура интерфейсов брокера объектных заявок |