Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Distrib.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
662.53 Кб
Скачать

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 на стороне клиента должен быть установлен (зарегистрирован в реестре) агент сервера. Удаленное взаимодействие реализуется следующим образом:

  1. Приложение-клиент вызывает через OLE приложение-сервер.

  2. OLE получает из реестра при помощи CLSID имя приложения агента сервера и вызывает его. Клиент после этого взаимодействует с агентом как с сервером.

  3. Агент использует механизм RPC, т.е. передает ему в унифицированном формате CLSID сервера и параметры вызова.

  4. RPC передает все это на сторону сервера.

  5. RPC на стороне сервера распаковывает CLSID и параметры и запускает через OLE сервер.

  6. 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. Структура интерфейсов брокера объектных заявок

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]