- •Розподілені системи
- •Історична довідка
- •Базові терміни та визначення
- •Телекомунікаційні мережі як елемент розподілених систем
- •Модель клієнт–сервер
- •1.3. Особливості розподілених систем
- •Переваги розподілених систем
- •Недоліки розподілених систем
- •Класифікація розподілених систем
- •Характеристики розподілених систем
- •Висновки
- •Запитання для самоконтролю
- •Розподілене середовище
- •Концепції апаратних рішень
- •Архітектура багатопроцесорних систем
- •Системи зі спільною пам’яттю
- •Системи з роздільною пам’яттю
- •Топології багатопроцесорних систем
- •Концепції програмних рішень
- •Та засобів проміжного рівня
- •Операційні системи й розподіленість
- •Проміжне середовище
- •2.5. Поняття розподіленого середовища
- •Розподіл прикладних програм за рівнями
- •Варіанти архітектури клієнт–сервер
- •Програмні компоненти розподілених систем
- •Основи мережної взаємодії
- •2.6. Взаємодія компонент розподіленої системи
- •Концепції взаємодії компонент розподіленої системи
- •Обмін повідомленнями
- •Віддалений виклик процедур
- •Використання віддалених об’єктів
- •Розподілені події
- •Розподілені транзакції
- •Безпека в розподілених системах
- •Опис інтерфейсу програмної компоненти
- •Мова і схеми Extensible Markup Language
- •Soap: мова повідомлень розподіленої системи
- •Wsdl: опис інтерфейсу програмної компоненти
- •Базові технології подання інформації в розподілених системах
- •Вимоги до прикладних програм серверної сторони
- •Висновки
- •Запитання для самоконтролю
- •Рівні протоколів
- •Низькорівневі протоколи
- •Транспортні протоколи
- •Протоколи верхнього рівня
- •Віддалений виклик процедур
- •Виклик локальної процедури та повернення результату
- •Звертання до віддалених об’єктів
- •Розподілені об’єкти
- •Прив’язка клієнта до об’єкта
- •Статичне й динамічне віддалене звертання до методів
- •Передача параметрів
- •1.4 Зв’язок на основі потоків даних
- •Підтримка безперервних середовищ
- •Потік даних
- •Синхронізація потоків даних
- •1.5 Протоколи проміжного рівня
- •Протокол soap
- •Сімейство протоколів xmpp
- •Протокол umsp
- •Висновки
- •Запитання для самоконтролю
- •2. Процеси
- •Потоки виконання. Визначення і структура
- •Стан процесів та потоків виконання
- •Реалізація потоків виконання
- •Потоки виконання в нерозподілених системах
- •Потоки виконання в розподілених системах
- •Багатопотокові клієнти
- •Багатопотокові сервери
- •Інтерфейси користувача
- •Клієнтське програмне забезпечення і прозорість розподілу
- •4.6 Сервери
- •Підходи до побудови серверів прикладного програмного забезпечення
- •Сервери об’єктів
- •Частина 2
- •Представлення додатка розподіленної системи
- •Рівнева організація додатку
- •Рівнева організація, застосування, виділення рівнів
- •Використання рівня Сервісів(Services Layer)
- •Дизайн рівневої структури
- •Вибір стратегії розбиття на рівні
- •Визначення наскрізної функціональності
- •Визначення інтерфейсу між рівнями
- •Вибір стратегії реалізації і впровадження
- •Вибір протоколів взаємодії
- •3. Дизайн Рівню Представлення
- •Дизайн рівня представлення включає наступні кроки:
- •Специфічні проблеми дизайну рівня представлення
- •Кешування
- •Комунікації
- •Композиція
- •Управління виключеннями
- •User Experience(Зручність Використання)
- •Інтерфейс користувача
- •Перевірка даних вводу користувача (Validation)
- •Batching(Пакетування)
- •З'єднання
- •Формат даних
- •Управління виключеннями
- •Реляційне відображення об'єктів(Object Relational Mapping)
- •Процедури, що зберігаються
- •Транзакції
- •Перевірка вводу
- •Типи бізнес-процесів
- •Загальні правила складання сміття:
- •Вибір стратегії визначення виключень
- •Стратегія протоколювання виключень
- •Стратегія повідомлення про виключення
- •Ухвалення рішення про необхідність обробки необроблених виключень
- •Спеціальні питання проектування
- •Аутентифікація
- •Авторизація
- •Кешування
- •Мережева взаємодія
- •Управління конфігурацією
- •Управління виключеннями
- •Протоколювання
- •Управління станом
- •Проблеми, які виникають при проектуванні взаємодії
- •Загальні завдання проектування стратегії зв'язку
- •Обмін файлами
- •Розподілена база даних
- •Виклик видалених процедур
- •Обмін повідомленнями
- •Процедура передачі повідомлення включає 5 основних етапів:
- •Комерційні системи обміну повідомленнями
Виклик локальної процедури та повернення результату
Час
Рис. 3.4. Схема RPC між програмами клієнта й сервера
Підведемо підсумки. У разі віддаленого виклику процедур відбуваються такі дії:
-
Процедура клієнта звичайним способом викликає клієнтську заглушку.
-
Клієнтська заглушка створює повідомлення й викликає локальну операційну систему.
-
Операційна система клієнта пересилає повідомлення віддаленій опера- ційній системі.
-
Віддалена операційна система передає повідомлення серверній заглушці.
-
Серверна заглушка вилучає з повідомлення параметри й викликає сервер.
-
Сервер виконує виклик і повертає результати заглушці.
-
Серверна заглушка запаковує результати в повідомлення й викликає свою локальну операційну систему.
-
Операційна система сервера пересилає повідомлення операційній сис- темі клієнта.
-
Операційна система клієнта приймає повідомлення й передає його клієнтській заглушці.
-
Заглушка вилучає результати з повідомлення й передає їх клієнтові. Ефекти взаємодії в мережі за допомогою цих кроків полягають у тому,
що клієнтська заглушка перетворює локальний виклик процедури клієнта в локальний виклик процедури сервера, причому ні клієнт, ні сервер нічого не знають про проміжні дії.
-
Звертання до віддалених об’єктів
Розглянемо, як реалізує RPC звертання до віддалених об’єктів, і як подібний підхід підвищує прозорість мережної взаємодії (розподілу програ- много забезпечення між вузлами мережі) порівняно з викликами віддалених процедур RPC.
-
Розподілені об’єкти
Ключова особливість об’єкта полягає в тому, що він інкапсулює стани й методи (methods): стани – дані, які інкапсулює об’єкт; методи – операції над даними, які також інкапсулює об’єкт. Доступ до методів можна одержати че- рез інтерфейс. Важливо зрозуміти, що єдино правильним способом доступу або маніпулювання станом об’єкта є використання методів, доступ до яких здійснюється через інтерфейс цього об’єкта, який може реалізовувати декі- лька інтерфейсів. Для такого опису інтерфейсу може бути кілька об’єктів, які надають його реалізацію.
Розподіл на інтерфейси й об’єкти, які реалізують інтерфейси, є дуже важливим для розподілених систем, оскільки чіткий поділ дозволяє розміщу- вати інтерфейс на одній машині за умови, що сам об’єкт перебуває на другій.
Структуру розподіленого об’єкта (distributed object) показано на рис. 3.5. Коли клієнт виконує прив’язку до розподіленого об’єкта, в адресний простір клієнта завантажується реалізація інтерфейсу об’єкта, яку називають замісни- ком (proxy). Замісник клієнта є аналогічним клієнтській заглушці в системах RPC. Єдине, для чого він призначений, – виконувати маршалінг параметрів у повідомленнях у разі звертання до методів і демаршалінг даних із повідом- лень відповіді, які містять результати звертання до методів, передаючи їх клієнтові. Самі об’єкти перебувають на сервері й надають необхідні клієнтській машині інтерфейси. Вхідний запит на звертання до методу спочатку потрапляє на серверну заглушку.
Клієнт звертається до методу
Машина клієнта
Той же інтерфейс, що й у об’єкта
Клієнт
Скелетон викликає для об’єктів цей же метод
Машина сервера
Об’єкт Стан Метод
Сервер
Інтерфейс
Мережа
Параметри виклику після маршалінга передаються мережею
Рис. 3.5. Узагальнена організація віддалених об’єктів з використанням замісника клієнта
Скелетон – серверна заглушка, яка перетворить звертання клієнта у пра- вильне звертання до методу через інтерфейс об’єкта, який перебуває на сервері. Серверна заглушка також відповідає за маршалінг параметрів у повідом- леннях-відповідях і пересилання їх замісникові клієнта.