- •Розподілені системи
- •Історична довідка
- •Базові терміни та визначення
- •Телекомунікаційні мережі як елемент розподілених систем
- •Модель клієнт–сервер
- •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 основних етапів:
- •Комерційні системи обміну повідомленнями
Частина 2
-
Представлення додатка розподіленної системи
При побудові архітектури необхідно створити представлення того як додаток виглядатиме після завершення розробки. Це дозволяє прив'язати архітектуру до обмежень і рішень реального світу.
Для створення представлення виконуються наступні дії:
-
Визначення типу додатка. Чи є це застосування мобільним застосуван- ням, rich client("товстий" клієнт), Internet додатком, сервісом, Web- додат- ком, або комбінацією декількох типів?
-
Визначення обмеження впровадження. При розробці додатка повинні братися до уваги корпоративні практики і процедури, а також інфрастру- ктура на базі якої передбачається впровадження додатка. Якщо цільове середовище негнучке і незмінне, то додаток повинен відбивати обмежен- ня, існуючі в цьому середовищі. Так само повинні враховуватися атрибути якості обслуговування(Quality - of - Service(QoS)), такі як безпеку і надій- ність. Іноді необхідно вибирати компромісні рішення, наприклад із-за об- межень що накладаються мережевою топологією і використовуваними протоколами.
-
Визначення важливих архітектурних шаблонів. Наприклад широко по- ширеними архітектурними стилями є Service Oriented Architecture(SOA), client/server, рівнева(layered), шина обміну повідомленнями(message - bus). Часто використовується комбінація різних стилів.
-
Визначення відповідних технологій. Вибір відповідних технологій ба- зується на виборі типу додатка і обмежень. Вибір технологій може дикту- ватися політикою організації, обмеженнями інфраструктури, знаннями і досвідом розробників і так далі.
-
Рівнева організація додатку
Відмінність між поняттями рівня(tier) і шару(layer) в архітектурі ПО. Шар використовується для логічного угрупування функціональності і компонентів застосування, тоді як рівень показує фізичний розподіл функціональності і компонентів застосування на різних серверах, мережах, і так далі Одинь рі- вень(tier) розташований на одному сервері може включати функціональність, що міститься в декількох шарах(layers) застосування.
Термін " рівень" використовується в контексті шаблонів(патернів) фізичного розподілу застосування, таких як 2-х рівнева(2х-звенная), 3-х рівнева, n- рів- нева архітектура.
-
Рівнева організація, застосування, виділення рівнів
Представлення(Presentation), Бізнес(Business), і Даних(Data)
Незалежно від типу застосування, що розробляється, і наявності наявності або відсутності призначеного для користувача інтерфейсу, в процесі дизайну виділяються окремі логічно пов'язані групи компонентів. Ці логічні групи називають шарами(layers). Шари визначаються видами завдань, які вирішу- ються певним набором компонентів. Застосування шарів спрощує мож- ливість повторного використання компонентів. Кожен логічний шар, може, у свою чергу, бути розбитий на под-уровни(sub layers), компоненти яких вико- нують специфічні види завдань
Функціональність представлена цими шарами може розташовуватися як на одному, так і на різних фізичних рівнях. Якщо функціональність розташо- вується на рівнях розділених фізично, дизайн повинен відбивати це. Загаль- ноприйнято наступне розбиття функціональності на шари:
-
Рівень представлення(Presentation layer) Цей рівень містить функції, які відповідають за взаємодію користувача і системи, і, компонентів, які на-
дають доступ до базової функціональності застосування, системи, що знаходиться в рівні бізнес-логіки.
-
Рівень бізнес-логіки(Business layer). На цьому рівні реалізована базова функціональність системи. Компоненти цього рівня можуть надавати інтерфейс для використання сервісів цього рівня.
-
Рівень даних(Data layer). Цей рівень надає доступ до даних, які збері- гаються системою, і до даних доступ до яких надається іншими систе- мами видалено(можливо у вигляді сервісів). Рівень даних надає інтер- фейс доступу компонентам рівня бізнес-логіки.