- •Розподілені системи
- •Історична довідка
- •Базові терміни та визначення
- •Телекомунікаційні мережі як елемент розподілених систем
- •Модель клієнт–сервер
- •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 основних етапів:
- •Комерційні системи обміну повідомленнями
Використання рівня Сервісів(Services Layer)
Рішення, грунтоване на сервісах може бути розглядатися як сукупність сервісів(послуг), кожен з яких взаємодіє з іншими за допомогою повідом- лень. Концептуально сервіси можуть розглядатися як компоненти загального рішення. Проте, внутрення структура сервісу складається з набору компо- нентів, які можуть бути згруповані в рівні представлення, бізнес-логіки і да- них. Інші застосування можуть споживати послуги, що надаються сервісами, нічого не знаючи про їх внутрішню структуру.
Якщо застосування повинне надавати послуги іншим застосуванням, загаль- ним рішенням є використання рівня сервісів, який дозволяє отримати доступ до функцій рівня бізнес-логіки застосування і надає клієнтам альтернативний спосіб доступу до функцій застосування.
У наведеному прикладі користувач може отримати доступ до застосування використовуючи рівень представлення, тоді як зовнішні клієнти можуть от- римати доступ до застосування через рівень сервісів. Це дозволяє застосу- ванню підтримувати різні типи клієнтів.
-
Дизайн рівневої структури
Стандартний набір кроків при розробці рівневої архітектури застосування наступний:
-
Вибір стратегії розбиття на рівні
-
Визначення необхідних рівнів
-
Ухвалення рішення про распрделении рівнів(Layers) і компонентів
-
Рішення про необхідність " стиснути" рівні
-
Визначення правил взаємодії між рівнями
-
Визначення наскрізної функціональності
-
Визначення інтерфейсів між рівнями
-
Вибір стратегії реалізації і впровадження
-
Вибір протоколів взаємодії
Вибір стратегії розбиття на рівні
Розбиття на рівні дозволяє розділити компоненти застосування на логічні групи, які представляють різні ролі і функціональність. Проте невдалий вибір стратегії і розбиття на рівні може ускладнити застосування і зменшити за- гальну продуктивність.
Необхідно враховувати так само чи переслідуються цілі тільки логічного розділення функціональності, або, можливого фізичного розділення компо- нентів(можливість розміщення їх на різних комп'ютерах напр.). Межі шарів є такими, що місцями впливають на продуктивність системи, оскільки. Вима- гають додавання функціональності за поданням інтерфейсу взаємодії між шарами. В той же час вони збільшують загальну гнучкість і розширюваність застосування. З метою використання переваг розбиття на шари, рекомен- дується підтримувати максимальну інкапсуляцію і слабку зв'язність між ша- рами.
У випадку якщо передбачається що різні шари можуть мати різне фізичне місце розташування, механізми комунікації між шарами повинні враховувати вірогідність затримок в доставці повідомлень і забезпечувати слабку зв'язність між шарами.
Визначення необхідних рівнів
Найбільш загальним підходом є розділення функціональності представлення, бізнес-логіки і доступу до даних в різних шарах застосування. Деякі застосу- вання включають також шари управляления, звітності і інфраструктури.
Ухвалення рішення про розподіл рівнів і компонентів
Необхідно розділяти рівні і компонеты фізично тільки у разі потреби. Питан- ня які розглядаються при цьому включають політику безпеки, фізичні обме- ження, загальну бізнес логіку і розширюваність застосування.
Ухвалення рішення про " стискування" непотрібних рівнів
В деяких випадках має сенс стиснути число використовуваних рівнів. Напри- клад у випадку якщо застосування використовує обмежене число бізнес пра- вил, або ці бізнес-правила використовуються в основному для валидации да- них, то рівні представлення і бізнес-логіки можуть бути реалізовані спільно
Визначення правил взаємодії між рівнями
При визначенні стратегиии міжрівневої комунікації вимагається визначити правила взаємодії між рівнями. Головні проблеми які повинні враховуватися це зменшення залежності між шарами і уникнення кільцевих поси- лань(circular references). Наприклад це випадок, коли з двох рівнів кожен за-
лежить від компонентів іншого рівня. Можливе використання наступних стратегій :
-
Взаємодія згори-вниз.
-
Слабозв'язана взаємодія.