- •Розподілені системи
- •Історична довідка
- •Базові терміни та визначення
- •Телекомунікаційні мережі як елемент розподілених систем
- •Модель клієнт–сервер
- •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 основних етапів:
- •Комерційні системи обміну повідомленнями
Потік даних
ОС ОС
Мережа
б
Рис. 3.7. Передача потоку даних мережею між двома процесами (а), між двома пристроями (б)
-
Синхронізація потоків даних
Під синхронізацією потоків даних розуміють підтримку часових спів- відношень між ними. Розрізняють два типи синхронізації: найпростіший тип синхронізації відбувається між дискретними й безперервними потоками даних; більш складний тип синхронізації - між безперервними потоками даних.
Синхронізація проходить на рівні елементів даних, з яких складається потік, тобто можна синхронізувати два потоки тільки відносно елементів даних. Вибір елементів даних залежить від рівня абстрагування представ- лення потоку даних.
Приклад. Розглянемо аудіопоток (одноканальний) з якістю компакт- диску. За максимального ступеня деталізації потік даних подають у вигляді послідовності 16-бітних вибірок. За частоти вибірки 44100 Гц синхронізація з іншим аудіопотоком може теоретично відбуватися кожні 23 мс. Щоб одержа- ти високоякісний стереоефект, синхронізація на цьому рівні вкрай необхідна.
Механізми синхронізації. Варто розглянути два моменти: базові меха- нізми синхронізації двох потоків даних і розподіл цих механізмів у мереж- ному середовищі.
Механізми синхронізації можна розглядати з позицій різних рівнів абст- рагування: згідно з найнижчим синхронізація повністю визначається роботою з елементами даних простих потоків. Цей принцип ілюструє рис. 3.8, на якому показано процес, який здійснює операції читання й запису в декількох простих потоках даних, гарантуючи при цьому забезпечення обмежень синхронізації.
Мережа
Рис. 3.8. Принцип явної синхронізації на рівні елементів даних
Приклад. Розглянемо фільм, представлений двома вхідними потоками даних. Відеопотік містить нестиснені зображення низької якості з роздільною здатністю 320х240 пікселів, кожний з яких під час кодування потребує 1 байт, що в сумі утворює елементи відеоданих розміром 76 800 байт. При- пустімо, зображення демонструються із частотою 30 Гц, або по 33 мс на зо- браження. Вважаємо, що аудіопотік містить аудіовибірки, згруповані в еле- менти довжиною 11760 байт, кожний з яких відповідає звуку тривалістю 33 мс. Якщо процес введення забезпечує швидкість 2,5 Мбайт/с, то можна синх- ронізувати
потоки, просто чергуючи читання зображень і блоків аудіовибірок кожні 33 мс.
Однак прикладне програмне забезпечення може повністю відповідати за синхронізацію лише в тому разі, якщо воно має доступ до механізмів низько- го рівня. Отже, бажано прикладному програмному забезпеченню надати ін- терфейс, який спростив би керування потоками і пристроями.
Приклад. Стосовно передачі фільму це буде означати, що відеодисплей матиме
інтерфейс керування, за допомогою якого зможе керувати частотою відтво- рення зображень. Окрім того, інтерфейс надасть механізм реєстрації оброб- лювача дій користувача, що викликатиметься щоразу після прийому чергових k зображень, аналогічний інтерфейс буде наданий і пристрою відтворення звуку. Використовуючи ці інтерфейси керування, розробник прикладного програмного забезпечення зможе написати просту програму моніторингу, яка порівнює два заголовки відповідних потоків даних, перевіряє, чи достатня синхронізація відео- та аудіопотоків і, якщо виникає потреба, регулює часто- ту передачі відео- або аудіоелементів. Цей приклад (рис. 3.9) типовий для ба- гатьох систем мультимедіа, які використовують як прикладне програмне за- безпечення проміжного рівня.
Система контролю муль- тимедіа – це частина про- грамного забезпечення проміжного рівня
Машина приймача
Проміжний рівень програм- ного забеспечення
Прикладна програма
Вхідний потік
ОС
Прикладна про- грама повідомляє проміжному рів- ню, що робити із вхідним потоком
Мережа
Рис. 3.9. Принцип синхронізації, підтримуваний високорівневими інтерфей- сами
Одержувач комплексного потоку даних повинен мати повну локальну специфікацію синхронізації, але зазвичай ця інформація надається в неявному вигляді, за рахунок мультиплексування декількох потоків даних в один, який містить усі елементи даних, у тому числі й призначені для синхронізації.