- •Розподілені системи
- •Історична довідка
- •Базові терміни та визначення
- •Телекомунікаційні мережі як елемент розподілених систем
- •Модель клієнт–сервер
- •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 основних етапів:
- •Комерційні системи обміну повідомленнями
-
Висновки
Розподілені системи складаються з автономних комп’ютерів, які пра- цюють спільно, створюючи уявлення про роботу в єдиній зв’язній системі. Їх перевага полягає в тому, що вони спрощують інтеграцію різних приклад- них програм, які працюють на різних комп’ютерах, у єдину систему, добре масштабуються за умови правильного проектування.
Розмір розподілених систем обмежується лише розміром базової мережі.
Розподілені системи класифікують за принципами, в основі яких лежать характеристики апаратного та програмного забезпечення.
Реалізація розподілених систем характеризується складністю про- грамного забезпечення, зниженням продуктивності й наявністю проблем із безпекою.
Розподілені операційні системи використовують для керування апарат- ним забезпеченням взаємозалежних комп’ютерних систем та сприймають у вигляді єдиної системи.
Мережні операційні системи ефективно поєднують різні комп’ютери, які працюють під керуванням своїх операційних систем, забезпечуючи користу- вачам доступ до локальних служб кожного з вузлів. Однак мережні опера-
ційні системи не створюють у користувача відчуття роботи з єдиною систе- мою, що характерно для розподілених операційних систем.
-
Запитання для самоконтролю
-
Дайте визначення поняття «розподілена система».
-
Яким є основне завдання розподіленої системи?
-
Коли та чим була зумовлена відмова від централізації?
-
Назвіть переваги розподілених систем.
-
Які недоліки мають розподілені системи?
-
Наведіть класифікацію розподілених систем відповідно до апарат- ного забезпечення.
-
Наведіть класифікацію розподілених систем відповідно до програм- ного забезпечення.
-
Які характерні риси мають розподілені системи?
-
Яким вимогам мають задовольняти розподілені системи? Коротко охарактеризуйте кожну з них.
-
Дайте визначення поняття «суперкомп’ютер».
-
Назвіть основні компоненти паралельних комп’ютерів.
-
Чому апаратура комп’ютерів розвивається у напрямку «роз- поділення»?
-
Наведіть приклади реалізації апаратури зі спільною памяттю для ПК.
-
Наведіть приклади реалізації апаратури з розділюваною пам’яттю для ПК.
-
Розподілене середовище
-
Концепції апаратних рішень
Незважаючи на те, що всі розподілені системи містять по декілька про- цесорів, є різні способи їх об’єднання в систему. Особливо це стосується варіантів їх з’єднання й організації взаємного обміну.
Розглянемо коротко апаратне забезпечення розподілених систем, зокре- ма варіанти з’єднання машин між собою. За минулі роки було запропоновано різні класифікації комп’ютерних систем з декількома процесорами, але жодна з них не стала дійсно популярною й поширеною.
Розглянемо системи, до яких входять незалежні комп’ютери, які можна поділити на дві групи. Системи, у яких комп’ютери використовують пам’ять спільно, називають мультипроцесорами (multiprocessors), а ті, що пра- цюють кожен зі своєю пам’яттю, – мультикомп’ютерами (multicomputers). Основною відмінністю є те, що мультипроцесори мають єдиний адресний простір, який спільно використовують усі процесори. У мультикомп’ютерах кожна машина використовує власну пам’ять.
Кожну із цих категорій поділяють на додаткові підкатегорії за архітек- турою мережі, яка їх з’єднує. Найчастіше використовують дві архітектури – шинну (bus) і комутовану (switched). Під шинною розуміють плату, шину, кабель або інше середовище, що з’єднує всі машини між собою. Комутовані
системи, на відміну від шинних, не мають єдиної магістралі, такої як, на- приклад, у кабельного телебачення. Замість неї від машини до машини тяг- нуться окремі канали, виконані із застосуванням різних технологій зв’язку. Повідомлення передаються каналами з узгодженням рішення про комутацію з конкретним вихідним каналом для кожного з них.
Також розподілені комп’ютерні системи поділяють на гомогенні
(homogeneous) і гетерогенні (heterogeneous). Цей поділ стосується винятково мультикомп’ютерних систем. Для гомогенних мультикомп’ютерних систем характерна одна мережа, яка з’єднує комп’ютери та використовує єдину тех- нологію. Однакові також усі процесори, які зазвичай мають доступ до одна- кових обсягів власної пам’яті. Гомогенні мультикомп’ютерні системи нерідко використовують як паралельні (працюють з одним завданням), за аналогією до мультипроцесорних.
На відміну від гомогенних, гетерогенні мультикомп’ютерні системи мо- жуть містити декілька незалежних комп’ютерів, з’єднаних різноманітними мережами.
Приклад. Розподілена комп’ютерна система може бути побудована з декількох
локальних комп’ютерних мереж, з’єднаних комутованою магістраллю FDDI або ATM.
Мультипроцесорні системи мають одну характерну рису: всі проце- сори мають прямий доступ до загальної пам’яті. Мультипроцесорні системи шинної архітектури складаються з деякої кількості процесорів, приєднаних до загальної шини, а через неї – до модулів пам’яті. Найпростіша кон- фігурація містить плату із шиною або материнською платою, у яку вста в- ляють процесори й модулі пам’яті. Проблема такої схеми полягає в тому, що у разі наявності 4 або 5 процесорів шина стає перевантаженою і проду- ктивність різко знижується. Щоб розв’язати цю проблему, потрібно
розмістити між процесором і шиною високошвидкісну кеш-пам’ять (cache memory).
На відміну від мультипроцесорів, побудувати гомогенну мульти- комп’ютерну систему порівняно нескладно. Кожний процесор прямо зв’яза- ний зі своєю локальною пам’яттю, а єдиною проблемою є взаємодія проце- сорів між собою; за таких умов необхідна схема з’єднання, але оскільки у такому разі ключовим моментом є тільки наявність зв’язку між процесорами, то обсяг трафіку буде на кілька порядків нижчим, ніж у випадку викорис- тання мережі для підтримки трафіку між процесорами й пам’яттю.
Найбільшу кількість наявних нині розподілених систем побудовано за схемою гетерогенних мультикомп’ютерних систем. Це означає, що комп’ю- тери, які є частинами цієї системи, можуть відрізнятися, наприклад, за типом процесора, розміром пам’яті й продуктивністю каналів введення-виведення. На практиці роль деяких із цих комп’ютерів можуть виконувати високопро- дуктивні паралельні системи, зокрема мультипроцесорні або гомогенні муль- тикомп’ютерні. Мережа, яка їх поєднує, може бути дуже неоднорідною. Прикладом гетерогенності є створення великих мультикомп’ютерних систем, які використовують наявні мережі й канали.
Приклад. Нині є фактом існування кампусних університетських розпо- ділених систем, що складаються з локальних мереж різних факультетів, з’єднаних між собою високошвидкісними каналами. У глобальних системах різні станції можуть, у свою чергу, з’єднуватися загальнодоступними мере- жами, наприклад мережними службами, пропонованими комерційними опе- раторами зв’язку, зокрема АТМ або Frame relay.