- •Розподілені системи обробки інформації
- •Передмова
- •Розділ 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. Підсумки порівняння
- •Літературні джерела
Розділ 1. Огляд компонентних технологій створення розподілених програмних систем
1.1. Узагальнена архітектура і механізм функціонування об'єктних розподілених систем
Розвиток прикладних програмних систем та ускладнення їхньої функціональності з одночасною певною типізацією функціональності призвів до появи ідеї про створення розподіленої компонентної архітектури «клієнт-сервер». Суть цієї ідеї полягає в тому, щоб створювати конкретні програмні застосунки, збираючи їх із готових компонентів. Використовуючи стандарти на інтерфейси програмних компонентів (маються на увазі інтерфейси взаємодії, тобто набори стандартних функцій, а не інтерфейси користувача), розробники програмного забезпечення можуть вільно підключати необхідні компоненти або замінювати їх іншими. Доволі часто різні компоненти програмної системи потребують реалізації різними мовами програмування для різних апаратних платформ. Конкретна реалізація компонента іноді визначається як функціональний об’єкт, використання ж функціональних об’єктів потребує забезпечення взаємодії об’єктів та наявності засобів їхньої інтеграції до єдиної системи. Об’єднання засобів створення та використання розподілених функціональних об’єктів розглядається як архітектура проміжного рівня. Для забезпечення широкого використання розподілених об’єктів вона має відповідати наступним базовим вимогам:
-
незалежність від місця знаходження об'єктів;
-
незалежність від платформи;
-
незалежність від мови реалізації об'єкта.
Типову архітектуру розподіленої системи зображено на рис. 1.1.
Вузли є обчислювальними пристроями, на яких функціонують частини розподіленої програмної системи, позначені як "Об'єкт 1", "Об'єкт 2" і "Об'єкт 3". Кожна з частин розподіленої системи може виконувати роль як клієнта, так і сервера. Наприклад, якщо "Об'єкт 1" викликає методи "Об'єкта 2", то в такому випадку "Об'єкт 1" є клієнтом, а "Об'єкт 2" – сервером. Сукупність розподілених об'єктів, що функціонують як єдина програмна система, називається розподіленим об'єктним застосунком.
Для забезпечення взаємодії між частинами розподіленої системи потрібні певні механізми. Частини розподіленої системи не обов'язково мають розташовуватися на різних обчислювальних вузлах, але потенційно вони можуть функціонувати на різних обчислювальних вузлах.
Існує кілька промислових технологій створення подібних систем. Це CORBA (Common Object Request Broker Architecture) від консорціуму OMG (Object Management Group), СОМ/DCOM (Distributed Component Object Model) від компанії Microsoft і RMI (Remote Method Invocation) від компанії Sun Microsystems.
В основі усіх технологій лежить той самий механізм віддаленого виклику об'єктних процедур (Object Remote Procedure Call – ORPC), схему роботи якого подано на рис. 1.2.
Пакує
виклик методу та параметри
Рис. 1.2. Схема роботи механізму ORPC
Для виклику віддаленої функції клієнт звертається до клієнтського сурогату (stub або proxy). Сурогат виконує потрібне перетворення типів даних, здійснює пакування параметрів і формує повідомлення запиту. Сформоване повідомлення потім передається транспортному протоколові для відправлення серверу. Цей процес називається маршалінгом (marshaling). Транспортний протокол, використовуючи мережеві з’єднання, передає повідомлення серверному сурогату (в одних технологіях він називається skeleton, в інших – stub (заглушка)), який розпаковує вміст запиту і викликає реальний метод об'єкта. Процес розпаковування вмісту запиту називають демаршалінгом (unmarshaling). Серверний об’єкт виконує запит, звертаючись у разі необхідності до баз даних і формує потрібний результат виконання. Одержаний результат через аналогічну процедуру, що вже тепер виконується на стороні сервера, повертається клієнтові.