Технология применения объектов COM, DCOM

Объект COM (Component Object Model) представляет собой объект (EXE или DLL‑файл) со свои­ми свойствами и ме­то­дами, который рас­прост­­раняется и встраивается (по­до­бно компоненту) в приложение. Об­ъ­екты Distributed COM (DCOM) дополнительно обеспечи­ва­ют распре­деленную обработку в сети.

При создании приложения COM используются следующие понятия.

Интерфейс COMописывает методы и свойства, доступные клиен­там че­рез ме­­ханизм публикации (регистрации в операционной системе). Ба­зовый интерфейс имеет имя Iunknown, и его характеристики насле­дуются интер­фей­сами‑потомками (имена интерфейсов начинаются с «I»). Каждый интер­­фейс имеет уникальный глобальный идентификатор длиной 16 байтов (GUID), а каждый интерфейс в объекте COM имеет идентифи­ка­тор интерфейса IID на основе GUID. Благодаря наличию стандартных ин­тер­­фейсов объект COM может быть реализован на любом языке.

Сервер COMпредставляет собой модуль (EXE или DLL) с програм­мным кодом объектов COM. При обращении к серверу передается идентифика­тор GUID класса CLSID. Сервер создает специальный объект (фаб­ри­ку клас­сов ICLassFactory), который занимается созданием и загруз­кой экзем­пляра нужного объекта COM.

Клиент COMявляется программой, обращающейся к серве­ру COM.

Пример создания объекта COM с методом умножения двух чисел

Выполним команду File/New/ActiveX/ActiveX Library. Добавим объ­ект COM командой File/New/ActiveX/COM Object и настроим создавае­мый объект (рис. 4.8.1): способ соз­дания объ­екта Multiple instance (соз­да­ние нескольких объ­ек­тов), спо­соб обращения к ин­терфей­су Apartment (для каж­дого объ­ек­та создается по­­­ток), краткое опи­сание ин­тер­­фей­са (Des­crip­tion). После на­жа­тия кноп­ки ОК фор­ми­руются ин­тер­фейс и опи­са­ние класса TMy­Object, и поя­в­ляется окно ре­дактора биб­лиотеки (рис.4.8.2).

Рис. 4.8.1. Окно настройки объекта COM

 

Окно редактора библиотеки можно вызвать и командой View/Type Library. Левая часть окна содержит дерево объектов, интерфейсов и мето­дов. Выделим строку ImyObject, нажмем кнопку New Method и введем имя соз­даваемого метода GetMulti. Перейдем на страницу Parameters и кноп­кой Add введем два параметра и укажем их имена и типы (рис. 4.8.2).

Рис. 4.8.2. Задание параметров метода GetMulti в интерфейсе объекта COM

 

 
 

Кнопкой New Property можно создать новые свойства объекта. Нажмем кнопку Refresh для обновления реализации.

Перейдем в модуль Unit1 и заполним тело метода кодом:

function TMyObject.GetMulti(X, Y: Single): Single; begin Result:=X*Y; end;

Перейдем в редактор библиотеки и нажмем кнопку Register. В результате выполняется компиляция, создается модуль Project_TLB.Pas, биб­лиоте­ка Project1.DLL и содержащийся в ней сервер COM регист­рируется в системе. Закроем проект.

 
 

Для отладки объекта COM создадим новый проект (клиент COM) в другой папке (рис. 4.8.3).

Рис. 4.8.3. Окно проверки работы метода GetMulti объекта COM MyObject

 

Откорректируем модуль Unit1. В строку Uses добавим модуль Pro­ject1_TLB с описанием интерфейса. В подразделе Public раздела Type объ­явим глобальные переменные: UkazIUnknown, UkazIMyObject : IMyObject.

Добавим процедуру создания формы для установки связи с сервером:

procedure TForm1.FormCreate(Sender: TObject);

begin // создание подкласса Co с описанием общего интерфейса IUnknown

UkazIUnknown:=CoMyObject.Create; //указатель интерфейса IUnknown

// формирование указателя на интерфейс IMyObject

UkazIUnknown.QueryInterface(IMyObject,UkazIMyObject); end;

Составим процедуру нажатия кнопки Перемножить.

procedure TForm1.Button1Click(Sender: TObject);

begin Label1.Caption:= FloatToStr (UkazIMyObject.GetMulti (StrToFloat (Edit1.Text), StrToFloat(Edit2.Text))); end;

Выполним приложение.

4.9. Распределенные двухуровневые клиент‑серверные приложения

4.9.1. Технология COM/DCOMс использованием сервера транзакций MTS

В данной технологии используется сервер транзакций MTS, который вхо­дит в поставку Web‑сервера Personal Web Server. Он позволяет орга­ни­зо­вать надежную работу серверов COM и клиентов COM (п. 4.8), выпол­няющих­ся на различных компьютерах [2; 7].

Технология CORBA

В данной технологии вместо сервера транзакций MTS используется бро­кер CORBA (Common Object Request Broker Architecture, общая архи­тек­тура брокеров объектных запросов). Брокеры объектных запросов поз­во­ляют орга­ни­зо­вать работу сер­веров COM и клиентов COM (п. 4.8), вы­пол­­няющих­ся на различных ком­пь­ютерах под управлением различных операционных систем (Windows, Unix и др.) [2; 7].








Дата добавления: 2016-03-22; просмотров: 786;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.