- •Розподілені системи обробки інформації
- •Передмова
- •Розділ 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. Підсумки порівняння
- •Літературні джерела
4.4. Порівняльний аналіз технологій сом і соrва
4.4.1. Основні принципи об'єктних моделей
CORBA і COM багато в чому різні, однак подібні тим, яким чином у них досягається реалізація принципів архітектури проміжного рівня. Це клієнт-серверні технології, у яких функціональність об’єкту надається клієнту за допомогою звертання до абстрактних інтерфейсів. Інтерфейс визначає набір методів, що реалізують функції, притаманні певному класу об'єктів. Інтерфейс дає клієнту можливість тільки викликати той чи інший метод, ховаючи від нього всі деталі його реалізації. Це означає, що реальні дії виконуються в адресному просторі об’єкту, можливо, віддаленого від процесу клієнта. Приховання деталей реалізації дозволяє домогтися злагодженої взаємодії компонентів незалежно від того, де і на якій платформі вони реалізовані і яка мова програмування для цього використовувалася.
В обох технологіях взаємодія між клієнтським процесом і сервером об’єкту, тобто процесом, що породжує й обслуговує екземпляри об’єкту, використовує механізм викликання віддаленої процедури (RPC, remote procedure call). Механізм RPC реалізує схему передавання повідомлень, відповідно до якої в розподіленому клієнт-серверному застосунку процедура-клієнт передає спеціальне повідомлення з параметрами виклику мережею у віддалену серверну процедуру, а результати її виконання повертаються в іншому повідомленні клієнтському процесу.
Щоб реалізувати цю схему, на стороні клієнта і на стороні сервера підтримуються спеціальні компоненти, що мають назву клієнтський і серверний сурогати (client stub і server stub). Щоб викликати ту чи іншу функцію, клієнт звертається до клієнтського сурогату, який упаковує аргументи в повідомлення-запит і передає їх на транспортний рівень з'єднання. Серверний сурогат розпаковує отримане повідомлення і відповідно до переданих аргументів викликає потрібну функцію або потрібний метод об’єкту, якщо мова йде про об'єктний варіант RPC. У СОМ клієнтський сурогат називається proxy, а серверний — stub. У CORBA клієнтський сурогат не має спеціальної назви, а серверний позначають терміном skeleton.
Параметри виклику можуть формуватися у відмінному від серверного мовному й операційному середовищі, тому на клієнтський і серверний сурогати покладаються функції перетворення аргументів і результатів в універсальне, що не залежить від конкретної архітектури, представлення. Тим самим досягається можливість взаємодії клієнта і сервера на різних платформах.
Вихідна модель СОМ була презентована фірмою Мicrosoft у 1993 році як інтеграційна схема для підтримки OLE, технології побудови складних документів в ОС Windows 3.1. Спочатку інфраструктура СОМ дозволяла реалізовувати компоненти, які взаємодіють у рамках одного адресного простору або між процесами на одному комп'ютері, і являла собою фактично засіб динамічної інтеграції двійкових компонентів. Крім OLE, модель СОМ послужила основою таких технологій Microsoft, як монітор транзакцій Microsoft Transaction Server і архітектура інтеграції прикладних компонентів Active.
На відміну від СОМ, архітектура CORBA із самого початку створювалася для розподілених об'єктних систем. Її автором є не окремо взята фірма, а консорціум Object Management Group (зараз у нього входять понад 800 компаній, наприклад, IBM, DEC, HP), що поставила за мету розробити стандартну архітектуру для взаємодії об'єктів у неоднорідному мережевому середовищі.
Ядром архітектури CORBA є брокер об'єктних запитів (Object Request Broker, ORB). Це об'єктна шина, якою у стилі, що нагадує класичний механізм RPC, відбувається взаємодія локальних і віддалених об'єктів. На відміну від СОМ, ORB не спирається безпосередньо на механізм RPC, але працює за тими самим принципами. Крім самого викликання методу віддаленого об’єкту, ORB відповідає за пошук реалізації об’єкту, його підготовку до одержання й оброблення запиту, передаваня запиту і доставку результатів клієнту.
Крім того, CORBA містить у собі кілька груп реалізацій об'єктів, а саме прикладні об'єкти, об'єктні служби, загальні засоби і домени. Прикладні об'єкти (Application Objects) являють собою реалізації об'єктів для конкретних користувацьких застосунків, наприклад, об'єкти для підтримки специфічних бізнесів-процесів. Реалізації об'єктів, що надають загальні для будь-якого обєктно-оріентованного середовища можливості, входять у категорію об'єктних служб (CORBA services): служба імен, служба подій, служба збереження в довгостроковій пам'яті, служба транзакцій і т.ін. Загальні засоби (CORBA facilities) — це реалізації об'єктів, необхідні для великої кількості застосунків, наприклад, підтримка складених документів, потоків завдань і ін. У CORBA є також поняття домена; реалізації об'єктів домена (CORBAdomains) призначені для застосунків вертикальних структур — охорони здоров'я, страхування, фінансового ринку, виробничих галузей і т.ін.