- •Розподілені системи
- •Історична довідка
- •Базові терміни та визначення
- •Телекомунікаційні мережі як елемент розподілених систем
- •Модель клієнт–сервер
- •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 основних етапів:
- •Комерційні системи обміну повідомленнями
-
Протокол umsp
Протокол UMSP (Unified Memory Space Protocol) відповідає проміжному рівню моделі OSI, призначений для реалізації в широкому класі систем: від прос- тих пристроїв на основі спеціалізованих процесорів до універсальних комп’ю- терів та кластерів. Для обміну даними протокол використовує сервіс транспорт- ного рівня з гарантованою доставкою, а для передачі даних не потрібні підтвер- дження, тому використання протоколу не забезпечує гарантованої доставки.
Головна функція протоколу UMSP – створення мережного середовища для організації 128-розрядного адресного простору пам’яті, розподіленого між вузлами Internet, тобто протокол регламентує механізм установлення з’єднання і формат переданих інструкцій, але не здійснює безпосереднього керування локальною пам’яттю на вузлі.
На відміну від традиційних мережних протоколів, в яких під час додавання користувача на різних вузлах здійснюється взаємодія за допомогою обміну ме- режними примітивами або роботи з потоками даних, в даному протоколі взає- модія здійснюється за допомогою безпосереднього читання/ запису даних або передачі керування коду у віртуальній пам’яті віддаленого вузла. Користувач, якого додали, може нічого не знати про наявність протоколу в мережі, а просто користуватися інструкціями з 128-розрядними адресами.
Протокол UMSP, передусім, використовують у системах на основі вір- туальних машин (VM), які обробляють псевдокод, однак його можна засто- совувати в системах, що безпосередньо виконують код процесора, напри- клад, у кластерах або в універсальних операційних системах для організації розподіленого віртуального адресного простору. Крім того, мінімальний профіль протоколу можна використати у простих пристроях, що не мають операційної системи.
Протокол надає гнучкі ресурси для створення параметрів з’єднань і до- зволяє будувати системи з високим рівнем захисту без негативного впливу на функціональні можливості прикладного програмного забезпечення, може істотно спростити процес розробки розподілених систем, а також поєднує не тільки інформаційні, але й обчислювальні ресурси великої кількості різноти- пних комп’ютерів без значних витрат на стандартизацію і розробку програм- ного забезпечення.
-
Висновки
-
Наявність потужних і гнучких механізмів взаємодії між процесами є важливою для будь-якої розподіленої системи. У традиційних мережних при- кладних програмах зв’язок часто грунтується на низькорівневих примітивах передачі повідомлень, які надаються транспортним рівнем. Важливою осо- бливістю систем проміжного рівня є надаваний ними високий ступінь абст- ракції, завдяки якому опис взаємодії між процесами на проміжному рівні значно спрощується. Такий підхід є більш ефективним, ніж якщо обмежитися лише інтерфейсами транспортного рівня.
-
Щоб спростити роботу зі значною кількістю рівнів і понять, викори- стовуваних під час передачі даних, Міжнародна організація стандартизації ISO розробила еталонну модель, яка чітко визначає рівні абстракції, дає їм стандартні імена і зазначає, який рівень за що відповідає. Цю модель названо Еталонною моделлю взаємодії відкритих систем OSI та розроблено для того, щоб надати відкритим системам можливість взаємодіяти.
-
Однією з найбільш широко використовуваних абстракцій є віддале- ний виклик процедур RPC. Сутність RPC полягає у реалізації будь-якої служби за допомогою виклику процедури, тіло якої виконується на сервері. Клієнт надає тільки сигнатуру процедури, тобто її ім’я та параметри.
-
Механізм орієнтований на забезпечення прозорості доступу, однак він порівняно слабко підтримує передачу посилань. З цього погляду віддале- ні об’єкти більш прозорі. Звертання до віддалених методів RMI нагадує RPC, але враховує специфіку віддалених об’єктів. Основна відмінність між мето-
дами полягає в тому, що RMI дозволяє використати як параметри посилання на об’єкти системи.
-
Процедури RPC і RMI надають механізми синхронного зв’язку, в разі якого клієнт блокується до одержання відповіді від сервера.
-
У моделях передачі повідомлень неважливо, чи є зв’язок збереженим або синхронним. Суть збереженого зв’язку полягає в тому, що повідомлення, яке надсилається, зберігається в комунікаційній системі доти, доки не буде доставлено за призначенням. У разі нерезидентного зв’язку механізмів збері- гання не передбачено, а тому одержувач має бути готовий прийняти повідо- млення у будь-який момент.
-
У разі асинхронного зв’язку відправник може продовжувати роботу відразу після того, як повідомлення поставлено в чергу на відправлення, можливо, ще до того, як його буде відправлено. У разі синхронного зв’язку відправник блокується до моменту одержання повідомлення.
-
Моделі обміну повідомленнями проміжного рівня зазвичай надають збережений асинхронний зв’язок і використовуються там, де застосування механізмів RPC і RMI не виправдано, передусім у разі інтеграції наборів баз даних (сильно розподілених) у великих інформаційних системах. Інші області їх застосування є електронна пошта й робочі потоки.
-
Абсолютно інший зв’язок використовують для потоків даних, про- блема яких полягає в тому, що будь-які два послідовні повідомлення вза- ємозалежні за часом. У безперервних потоках даних затримка доставки для кожного повідомлення є максимальною, а під час синхронізації безперер в- них потоків даних повідомлення має мати певну мінімальну затримку доставки. Типовими прикладами безперервних потоків даних є аудіо- і ві- деопотоки. Ускладнюючим фактором є роль джиттера (максимальне й мі- німальне значення його параметрів). Навіть якщо середня продуктивність є досяжною, то серйозні коливання часу доставки можуть призвести до не- прийнятної продуктивності.
-
До сучасних протоколів проміжного рівня належать протокол SOAP, родина протоколів XMPP, протокол UMSP та інші. Протокол SOAP визначає формат повідомлень, які пересилаються за допомогою деякого транспортного
протоколу, наприклад HTTP, TCP, іноді SMTP. Родину протоколів XMPP було розроблено як родину стандартів миттєвого обміну повідомленнями й технологію присутності, а протокол UMSP розроблено для організації обміну повідомлень у 128-розрядному адресному просторі пам’яті.