- •Розподілені системи обробки інформації
- •Передмова
- •Розділ 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. Підсумки порівняння
- •Літературні джерела
Передмова
Навчальний посібник створено за змістом лекцій з дисципліни «Розподілені системи обробки інформації», яку викладають автори на кафедрі автоматизації проектування енергетичний процесів та систем (АПЕПС) Національного технічного університету України «КПІ», а також користуючись власним досвідом у галузі створення розподілених систем обробки інформації.
Основним предметом зазначеної дисципліни є технології розробки розподілених систем робочого стола комп’ютера. Мета дисципліни – розгляд теоретичний основ побудови розподілених програмних застосунків та технологій їх практичного застосування для систем робочого стола комп’ютера.
Дисципліна “Розподілені системи обробки інформації” входить до освітньо-професійної програми підготовки бакалавра з напрямку 6.050101 “Комп’ютерні науки” багатьох вищих навчальних закладів. Крім того, специфіка викладання цієї дисципліни залежить від трактовки проблематики розподілених систем викладачами та методистами кафедри вищого навчального закладу. Але оскільки для сучасного спеціаліста з розробки програмного забезпечення володіння технологіями розподіленої обробки інформації є необхідною складовою та забезпечує передумови для успішної роботи, вищезгадана дисципліна є важливою складовою якісної освіти.
Сучасна література з комп’ютерної тематики має тенденцію диференціації за такими ознаками як мова або середовище програмування [14, 23], технологія реалізації [15, 18] та середовище виконання (локально, локальна мережа або глобальні мережі) [24, 19]. Цілком зрозуміло, що в такому випадку зрозуміти суть розподіленої обробки даних та технологій побудови розподілених систем без орієнтації на конкретну реалізацію досить важке завдання. Зазвичай, це завдання виконує навчальна література, але й у цій сфері існують досить великі розбіжності. Так, найпоширенішими є навчальні видання, які присвячені розробці систем, що використовують розподілені бази даних [17]. Друге місце посідають навчальні видання, які розглядають проблематику розробки розподілених систем в Web-реалізації для використання у глобальних мережах [19]. І на останньому місці знаходиться навчальна література, яка розкриває суть побудови розподілених систем обробки інформації у межах одного комп’ютера або локальної мережі [20].
Описану вище картину розповсюдженості навчальної літератури можна подати у вигляді списку наступним чином:
1 місце. Навчальна література щодо систем з розподіленими базами даних.
2 місце. Навчальна література щодо розподілених систем у Web-реалізації.
3 місце. Навчальна література щодо розподілених систем робочого стола комп’ютера.
Розташовані на 3 місці розподілені системи робочого стола комп’ютера при вивченні дисципліни “Розподілені системи обробки інформації” повинні бути розглянуті найперше, адже вони дозволяють сформувати фундаментальне уявлення про розподілені об’єкти та методи їх функціонування без необхідності отримання додаткових знань в інших галузях комп’ютерних наук. Але, через брак відповідних літературних джерел, цьому питанню приділяється найменше уваги.
Розміщені на другому місці розподілені системи у Web-реалізації вже являють собою новий рівень розуміння проблематики розподілених систем, адже розробка таких систем вимагає розуміння організації самої мережі і наявності знань та умінь у галузі мережевих технологій. Таким чином, переходити до вивчення методів та засобів побудови розподілених систем для роботи у глобальній мережі необхідно після того, як студенти ознайомляться з розподіленими системами робочого стола комп’ютера та прослухають такі курси як «Комп’ютерні мережі (локальні, корпоративні, глобальні)» та «Прикладне програмування в комп'ютерних мережах» (остання дисципліна може викладатись паралельно).
Найвищий рівень, тобто 1-е місце, розповсюдженості займають системи з розподіленими базами даних і це не випадково. Питання проектування та використання розподілених баз даних складається з великої кількості теоретичних аспектів, а практична реалізація акумулює майже усі можливі технології побудови розподілених застосунків. Отже, перед авторами навчальної (і не тільки) літератури відкриваються безмежні можливості! Але не можна подолати вершину без проходження попередніх етапів, тобто вивчення дисципліни «Розподілені системи обробки інформації» не можливо починати зі знайомства з розподіленими базами даним, уникаючи перші два тематичні розділи.
Головна мета посібника полягає у формуванні практичних навичок з розробки систем «клієнт-сервер» на базі різноманітних технологій для здійсненя розподіленої обробки, а також розуміння основних загальнотеоретичних принципів, що покладені в основу розподіленої обробки інформації, а саме:
-
процес створення об’єктів, що містять оголошення функцій у вигляді інтерфейсів та їхньої реалізації;
-
формування та створення серверів як носіїв цих об’єктів;
-
реєстрація серверів та об’єктів для забезпечення можливостей звернення до них;
-
наявність технологій звернення клієнтів до серверів і використання їхньої функціональності.
Матеріал посібника є основою для опанування інших споріднених дисциплін. У посібнику розглянуті питання розробки (в середовищі Windows-операційних систем) програмних комплексів щодо розподіленої обробки інформації. Викладання базується на застосуванні поширених засобів інструментальних середовищ Delphi та Microsoft Visual Studio (мова С#). Надані необхідні теоретичні відомості щодо використання системних технологій СОМ/DCOM, Remoting та CORBA для створення прикладних розподілених систем «клієнт–сервер». Наведені приклади з реалізації подібних систем.
Вважається, що до вивчення дисципліни «Розподілені системи обробки інформації» студенти вже опанували такі курси як «Основи програмування та алгоритмічні мови», «Об’єктно-орієнтоване програмування», «Технологія програмування та створення програмних продуктів» і тому набули певного досвіду з програмування мовами високого рівня (Object Pascal, C++ та C#).
В першому розділі подано огляд компонентних технологій створення розподілених програмних систем.
В другому розділі розглянуті питання проектування систем розподіленої обробки на основі використання можливостей загальної системної технології COM/DCOM і заснованих на ній технологіях ActiveX та OLE.
В третьому розділі розглянуті питання про проектування систем розподіленої обробки в .NET платформі з технологією Remoting.
В четвертому розділі розглянуті засади проектування систем розподіленої обробки на основі використання можливостей загальної кросплатформної технології CORBA для інструментального середовища розробки програмних засобів Delphi.
Автори вдячні за слушні зауваження науковим рецензентам посібника: д.т.н. проф.. Пасічнику В.В., д.т.н. проф.. Бадаєву Ю. І., к.т.н. доц.. Зеленському К. Х., к.т.н. доц.. Коваль О. В. Окрема подяка за підтримку у підготовці цього посібника завідуючому кафедрою АПЕПС професору Лук’яненку С.О.
Посібник розраховано на студентів, які навчаються за напрямом підготовки «Комп’ютерні науки», але автори сподіваються, что посібник стане у нагоді студентам не тільки технічних спеціальностей вищих навчальних закладів.