- •Розподілені системи обробки інформації
- •Передмова
- •Розділ 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. Підсумки порівняння
- •Літературні джерела
Розділ 3. Проектування розподілених систем на платформі Microsoft .Net
3.1. Взаємодія Microsoft.NET та СОМ
Microsoft.NET — системне середовище для розроблення та виконання розподілених систем обробки інформації, заcноване на використанні компонентних об’єктів, які працюють під керівництвом операційної системи Windows.
Примітка. Детальний огляд принципів використання Microsoft.NET виходить за межі цього посібника. Вважається, що читаті знайомі з данною технологією.
Незважаючи на те, що між об’єктами .NET та СОМ існує суттєва різниця, виникає багато ситуацій, коли необхідно забезпечити їх взаємодію.
Платформа .NET підтримує такі види сумісності з успадкованим кодом (тобто таким, що створений раніше за допомогою інших технологій):
-
звертання з об’єктів .NET безпосередньо до системних (звернення до Win32 API) та користувацьких бібліотек DLL, що створені на С;
-
здійсненя викликів з об’єктів .NET до об’єктів СОМ;
-
здійснення викликів з об’єктів СОМ до об’єктів .NET.
Із перелічених можливостей для розроблення розподілених систем доцільно докладно розглянути останні дві. Розгляд здійснено з використанням мови програмування C#.
При використанні можливостей .NET для взаємодії з успадкованим кодом ми будемо явно або опосередковано працювати з типами, визначеними у просторі імен System.Runtime.InteropServices. Найважливіші типи цього простору імен подані в таблиці 3.1.
Усі перераховані в таблиці 3.1 типи — це атрибути, які використовуються для керуванням процесами передавання даних від об'єктів .NET об’єктум СОМ (і навпаки). Звичайно, в просторі імен System.Runtime.InteropServices визначене також безліч інтерфейсів, перерахувань і структур. Але ми розглядатимемо їх не списком, а в міру опису їх застосування.
Таблиця 3.1
Деякі типи простору імен System.Runtime.InteropServices
|
Тип |
Опис |
|
1 |
2 |
|
ClassInterfaceAttribute |
Використовується для керування способом надання об'єктом .NET своїх відкритих членів клієнтам СОМ |
|
ComRegisterFunctionAttribute ComUnregisterFunctionAttribute |
Визначають виклик методу при реєстрації (або видаленні реєстрації) збірки .NET для використання в середовищі СОМ. Можуть бути пов'язані з призначеними для користувача методами |
Таблиця 3.1 (закінчення)
|
1 |
2 |
|
ComSourceInterfacesAttribute |
Визначає список інтерфейсів, які є джерелами подій для класу |
|
DispIdAttribute |
Призначений для користувача атрибут, що визначає DISPID (диспетчерський ідентифікатор технології СОМ) методу, відкритої змінної або властивості |
|
DllImportAttribute |
Використовується PInvoke (Platform Invocation Services — службами активізації платформ при роботі з DLL) |
|
GuidAttribute |
Використовується для визначення GUID для класу, інтерфейсу або бібліотеки типів |
|
IDispatchImplAttribute |
Визначає, яку реалізацію IDispatch має використовувати середовище CLR при виявленні подвійних інтерфейсів |
|
InterfaceTypeAttribute |
Визначає, як саме інтерфейс .NET буде відкритий для клієнтів СОМ (як похідний від IDispatch чи похідний від IUnknown) |
|
OutAttributeInAttribute |
Використовується для параметра або поля. Визначає, в якому напрямку мають бути передані дані — від того, що викликається, до того, що викликає, або від того, що викликає, до того, що викликається |
|
ProgIdAttribute
|
Призначений для користувача атрибут, який дозволяє задавати PROGID для обєкту .NET |
