- •Розподілені системи обробки інформації
- •Передмова
- •Розділ 1. Огляд компонентних технологій створення розподілених програмних систем
- •1.1. Узагальнена архітектура і механізм функціонування об'єктних розподілених систем
- •1.2. Основні приклади технологій створення розподілених систем
- •1.3. Переваги використання розподілених технологій
- •Розділ 2. Розроблення розподілених систем на основі модели com/dcom у Delphi
- •2.1. Використання dll у Delphi
- •2.1.1. Поняття dll
- •2.1.2. Створення dll у середовищі Delphi (експорт)
- •2.1.3. Використання dll у Delphi (імпорт)
- •2.1.4. Створення динамічних бібліотек для редагування ресурсів
- •2.2. Основи сом-технології
- •2.2.1. Загальний опис
- •2.2.2. Базові поняття
- •2.2.3. Бібліотека сом
- •2.2.4. Бібліотека типів
- •2.3.2. Сервер сом у Delphi
- •2.3.3. Бібліотека типів у delphі
- •2.4. Створення системи клієнт-сервер на основі базового com-об’єкту у складі внутрішнього сервера
- •2.4.1. Створення сом-сервера
- •2.4.2. Створення сом-клієнта
- •2.4.3. Використання сом-об’єкту в клієнтській програмі
- •2.5. Механізм міжпроцесного обміну
- •2.6. Створення систем клієнт-сервер на основі зовнішнього базового сом-об’єкту
- •2.6.1. Основні поняття
- •2.6.2. Засоби організації потокової взаємодії клієнта і сервера
- •2.6.3. Методи формування екземпляра сом-об’єкту
- •2.6.4. Формування екземпляра зовнішнього сом-об’єкту
- •2.6.5. Створення сом-сервера
- •2.6.6. Створення сом-клієнта
- •2.7. Автоматизація
- •Створення сервера автоматизації;
- •2.7.1. Базові поняття
- •2.7.2. Сервер автоматизації
- •2.7.3. Контролер автоматизації
- •2.8. Створення системи клієнт-сервер на основі внутрішнього сервера автоматизації
- •2.8.1. Об'єкт автоматизації. Клас tAutoObject
- •2.8.2. Вбудований сервер автоматизації
- •2.8.3. Створення клієнта автоматизації
- •2.9. Зовнішній сервер автоматизації
- •2.9.1. Основні визначення
- •2.9.2. Виконання маршалінгу з рядками, шрифтами і зображеннями
- •2.9.3. Перетворення наявного застосунка в сом-сервер автоматизації
- •2.9.4. Створення клієнта автоматизації
- •2.10. Події в сом і зворотні виклики на основі інтерфейсів диспетчирування
- •2.10.1. Створення сервера автоматизації
- •3. Формування бібліотеки типів
- •4. Формування методів
- •5. Реєстрація сервера
- •2.10.2. Створення клієнтського застосунка
- •2.10.3. Підключення множини клієнтів до сервера
- •2.11. Інтерфейси зі зворотним викликом
- •2.11.1. Створення сервера
- •2.11.2. Створення клієнтського застосунка
- •2.12. Технологія ActiveХ
- •2.12.1. Використання готових елементів АctiveХ
- •2.12.2. Розроблення власних елементів АctiveХ
- •2.12.3. Поширення елементів керування ActiveХ і форм ActiveХForm у Web-середовище
- •2.14. Dcom технологія
- •2.14.1. Загальна схема взаємодії сом-клієнта і сом-сервера
- •2.14.2. Розроблення системи «клієнт-віддалений сом-сервер»
- •Розділ 3. Проектування розподілених систем на платформі Microsoft .Net
- •3.1.1. Здійсненя викликань з типів .Net до типів сом
- •3.1.2. Звернення клієнта сом до збірки .Net
- •3.2. Об’єктно-орієнтована архітектура .Net Remotіng – основа створення розподілених систем Mіcrosoft .Net.
- •3.2.1. Створення системи клієнт-сервер на основі технології Remoting
- •Розділ 4. Створення системи "клієнт - сервер" на основі технології corba
- •4.1. Загальні теоретичні відомості
- •4.2. Створення серверного застосунка
- •1. Створення файла опису інтерфейсу
- •Викликання конструктора створення corba сервера
- •Формуємо модуль Unit1
- •Формуємо реалізацію методу
- •4.3. Створення клієнтського застосунка
- •Викликання конструктора corba-клієнта
- •2. Формування форми
- •3. Запуск застосунка
- •Приклад програмних кодів сервера
- •4.4. Порівняльний аналіз технологій сом і соrва
- •4.4.1. Основні принципи об'єктних моделей
- •4.4.2. Об'єктні моделі
- •4.4.3. Підтримка операційних систем
- •4.4.4. Формальний опис архітектури і проблеми реалізації
- •4.4.5. Підсумки порівняння
- •Літературні джерела
2.6.5. Створення сом-сервера
1. Створення нового застосунка (File->New->Application) – контейнера COM-об’єкту.
2. Додавання в проект COM-об’єкту (File->New->ActiveX->COM Object).
При цьому автоматично до складу проекту додаються:
-
модуль, що містить текст СОМ-об’єкту, точніше текст Со-класу, який закінчується викликом фабрики класів для генерування СОМ-об’єкту;
-
модуль бібліотеки типів, що містить опис СОМ-об'єктів, їхніх інтерфейсів, функцій, властивостей.
Автоматично до складу СОМ-об’єкту (SimpleCOM) включається один інтерфейс з ім'ям I+ім'я_СОМ-об’єкту (ІSimpleCOM), для якого батьківським є інтерфейс ІUnknown. Однак цей інтерфейс ще не містить жодного методу.
3. Створення методів інтерфейсу.
За допомогою редактора бібліотеки типів створюємо необхідні інтерфейси (ISimpleCOM1) та наповнюємо їх функціональними методами (наприклад, linear2x та linear5x).
4. За допомогою кнопки Refresh редактора бібліотеки типів здійснюємо генерування скелетів коду для методів, визначених розробником.
5. Здійснюємо реалізацію методів, визначених в інтерфейсі.
6. Виконуємо компіляцію проекту.
Ланцюжок: Project -> Compile.
7. Здійснюємо реєстрацію СОМ-сервера.
Для реєстрації СОМ-сервера достатньо викликати на виконання СОМ-сервер.
2.6.6. Створення сом-клієнта
Для створення СОМ-клієнта необхідно виконати таку послідовність дій:
1) створити новий проект;
2) додати в проект клієнта файл бібліотеки типів;
3) оголосити інтерфейси;
У секції Public форми MainClient оголошуємо дві змінні, типи яких – інтерфейси, що містяться в СОМ-об’єкті:
Interface1:ISimpleCom;5
Interface2:ISimpleCom2;
4) створити СОМ-об’єкт із клієнтського застосунка.
Створення СОМ-об’єкту досягається за рахунок звернення до фабрики класу СОМ-об’єкту (метод Create Со-класу), наприклад, у процедурі обробки події OnActivate головної форми клієнтського застосунка.
Метод повертає вказівник на інтерфейс за замовчуванням. Для отримання вказівника на другий інтерфейс використовуємо відповідний метод базового інтерфейсу
QueryInterface (<ім'я_інтерфейсу>, <змінна інтерфейсного типу>);
procedure TForm1.FormActivate(Sender: TObject);
begin
Interface1 := CoSimpleCom.Create;
Interface1.QueryInterface(ISimpleCom2, Interface2) ;
end;
5. Використати методи інтерфейсів для отримання необхідних програмі-клієнту результатів. Наприклад:
procedure TForm1.Button1Click(Sender: TObject);
begin
label2.Caption:=
IntToStr(Interface1.linear2x(SpinEdit1.Value));
label4.Caption:=
IntToStr(Interface1.linear5x(SpinEdit1.Value));
end;
Контрольні запитання та завдання:
-
Що таке сервер СОМ, назвіть види серверів?
-
Охарактеризуйте наявні засоби організації потокової взаємодії клієнта і сервера.
-
Що визначає параметр Instancing при створені СОМ-об’єкту?
-
Які значення може приймати параметр Instancing?
-
Опишіть методику формування екземпляра зовнішнього СОМ-об’єкту?
-
Опишіть процес створення клієнт-серверної системи на основі зовнішнього базового СОМ-об’єкту?
2.7. Автоматизація
На основі моделі COM розроблені і використовуються багато технологій. Одна з них – автоматизація (Automation).
Ця технологія забезпечує використання функцій одних застосунків з інших застосунків. Взаємодія між ними здійснюється за рахунок використання набору спеціально створених інтерфейсів. Основним є інтерфейс IDispatch.
Автоматизацію підтримують такі широко розповсюджені програми, як Word, Excel, Internet Explorer. Наприклад, будь-яка програма-користувач, що має інформацію про функції, надані інтерфейсом автоматизації MS Word, одержує доступ до великих можливостей редагування текстів.
З погляду програміста створення застосунків, що використовують автоматизацію, мало чим відрізняється від методики для базових об’єктів COM. У цьому розділі розглядаються особливості програмування в Delphi з використанням автоматизації. Серед них виділимо такі питання: