- •Розподілені системи
- •Історична довідка
- •Базові терміни та визначення
- •Телекомунікаційні мережі як елемент розподілених систем
- •Модель клієнт–сервер
- •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 основних етапів:
- •Комерційні системи обміну повідомленнями
-
Розподілені системи
-
Історична довідка
Швидкість підвищення продуктивності, що спостерігалася в комп’ютерних технологіях в останні півстоліття, – значна. Розвиток пройшов від машин, що коштували 100 млн. дол. та виконували одну команду за секунду, до машин, які коштують 1 тис. дол. і виконують 10 млн. команд за секунду. Різниця у співвідношенні «ціна/продуктивність» досягла порядку 1012. Темпи підви- щення продуктивності розподілених систем і технології, за допомогою яких це було досягнуто, показано на рис. 1.1.
1970 1980 1990
1Гбит/с
10 Мбит/с 1Мбит/с
10 Кбит/с
2000
2010
Рис. 1.1. Підвищення продуктивності в комп’ютерних мережах
Загальна тенденція відмови від централізації почала виникати із середини вісімдесятих років, коли американська фірма «Intel» запропонувала замість інтегрального модуля із твердою логікою розробити стандартний логічний блок, конкретне призначення якого можна сформулювати після його вигото- влення, тобто створити програмовану інтегральну схему. Так з’явився мікро- процесор – багатофункціональний цифровий мікроелектронний модуль з програмованою логікою, який став революційним кроком в електроніці й те- хніці обробки інформації.
Важливим є й факт винаходу високошвидкісних комп’ютерних мереж. Локальні мережі (Local-Area Networks, LAN) стали з’єднувати сотні комп’ю- терів, дозволяти їм обмінюватися невеликими порціями інформації за кілька мікросекунд. Великі масиви даних почали передаватися з машини на машину зі швидкістю від 10 до 1000 Мбіт/с.
Відмову від централізації зумовлено такими тенденціями розвитку. В останні десятиліття XX століття продуктивність мікропроцесорів стрімко подвоїлася, а потужність керувальних чипів збільшувалася в чотири рази кож- ні три роки. Безупинно зростаюча продуктивність за умови зменшення цін і габаритів утворювала основу для того, щоб усе більше комп’ютерів могли працювати зі складнішим програмним забезпеченням.
Локальні мережі даних стали економічною передумовою для того, щоб поєднати персональні комп’ютери. Впровадження Ethernet-технології в сімде- сяті роки можна розглядати як першу технологію, яка дозволила побудувати розподілену систему, що працює під керуванням програмного забезпечення, яке надавало можливість доступу до різних апаратних і програмних ресурсів.
Слід звернути увагу на суттєвий прогрес в останні десятиліття у сфері програмних технологій. Введення в мовах програмування таких концепцій, як процедура, модуль та інтерфейс стало передумовою для створення основ- них механізмів розподілених систем, результатом чого було розроблено технології віддаленого виклику прикладних програм RPC (Remote Procedure Call) і об’єктно-орієнтоване проектування розподілених систем.
Швидке проникнення інформаційних технологій у комерцію, банківську справу, освіту, зв’язок і сферу послуг разом з потужністю комп’ютерів і об’ємом пристроїв зберігання даних, які постійно зростають, висуває суворі вимоги до мереж зв’язку.
Локальні мережі вже сформували глобальні мережі (Wide-Area Networks, WAN), які дозволяють мільйонам машин у всьому світі обмінюва- тися інформацією зі швидкостями, що варіюються від 64 кбіт/с до декількох гігабіт за секунду.
У результаті розвитку мережних технологій можна побудувати систему, що складається з низки комп’ютерів й інших пристроїв, з’єднаних високош-
видкісною мережею, яку називають інформаційною або розподіленою систе- мою (distributed system), на відміну від попередніх центра-лізованих (centralized systems) або однопроцесорних (single-processor systems) систем, тобто систем, які складалися з одного комп’ютера, його периферії й, можливо, декількох віддалених терміналів.
Досить багато підходів, характерних для розподілених інформаційних систем, є аналогічними для побудови апаратного забезпечення звичайних персональних комп’ютерів. Особливо це стосується багатопроцесорних материнських плат, багатоядерних процесорів і, найбільше, сучасних відео- карт. У відеокартах використання одного потужного спеціалізованого проце- сора виявилося значно дорожчим рішенням, ніж поєднання раніше створених, більш простих спеціалізованих процесорів. Використання групи спеціалізо- ваних процесорів дозволило підвищити надійність апаратури, полегшити тепловідведення.