- •Розподілені системи
- •Історична довідка
- •Базові терміни та визначення
- •Телекомунікаційні мережі як елемент розподілених систем
- •Модель клієнт–сервер
- •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 основних етапів:
- •Комерційні системи обміну повідомленнями
-
Інтерфейси користувача
Основне завдання більшості програмних клієнтів – бути передавальною ланкою між користувачем і віддаленим сервером, у такому разі їх основною функцією є підтримка інтерфейсу, призначеного для користувача. Здебільшо-
го інтерфейс між користувачем та віддаленим сервером порівняно простий і вбудований в апаратуру клієнта.
Приклад. Стільникові телефони крім кнопок для набору номера ма- ють невеликий дисплей. Робота з електронною поштою може вимагати ком- плектації справжньою клавіатурою, електронним планшетом або пристроєм для розпізнавання мови.
-
Клієнтське програмне забезпечення і прозорість розподілу
Програмне забезпечення клієнта охоплює призначений для користува- ча інтерфейс, і здебільшого на стороні клієнта виконується частина рівнів обробки даних прикладної програми «клієнт-сервер». На основі вбудованого клієнтського програмного забезпечення функціонує клас спеціалізованих пристроїв, таких як автовідповідачі, лічильники купюр, зчитувачі штрих- коду, телеприставки та ін. У таких пристроях призначений для користувача інтерфейс є невеликою частиною клієнтського програмного забезпечення по- рівняно із засобами локальної обробки і комунікацій.
Крім того, клієнтське програмне забезпечення містить компоненти, які забезпечують прозорість розподілу. В ідеалі клієнт не має знати про свою взаємодію з віддаленими процесами, на відміну від серверів, де інформація про розподілену роботу зазвичай не приховується для підвищення продукти- вності й коректності роботи. Очевидно, що сервери, між якими виконується реплікація, мають періодично зв’язуватися один з одним для забезпечення пе- вного порядку виконання операцій у кожній з реплік.
Прозорість доступу зазвичай забезпечується за рахунок генерації коду програми-клієнта (у вигляді заглушки клієнта) з визначенням інтерфейсу тих функцій, які має виконувати сервер. Заглушка надає такий самий інтерфейс, що і сервер, приховуючи при цьому відмінності в архітектурі і реальній взаємодії.
Розрізняють різні способи реалізації прозорості розміщення, перенесення та переміщення, для якої важливо використовувати певну систему наймену- вання. Важливою відмінністю технології «клієнт–сервер» є кооперація з про-
грамним забезпеченням клієнтської сторони. Якщо клієнт уже прив’язаний до сервера, то його потрібно повідомляти про зміну місцеперебування сервера. Проміжний рівень клієнта приховує дійсне місце розташування сервера від користувача й у разі потреби рівень непомітно повторить прив’язку до цього сервера. Найбільше, що може бути помічено у програмі клієнта, – це тимча- сове спадання продуктивності.
Більшість розподілених систем реалізують прозорість реплікації на стороні клієнта. Розглянемо розподілену систему з віддаленими об’єктами, реплікацію яких можна здійснити через розсилання всім реплікам запиту, як показано на рис. 4.10. Програмний компонент на стороні сервера, який нази- вають замісником клієнта, має зібрати всі відповіді й передати прикладній програмі клієнта одне повертане значення.
Всі репліки отримують однакові звертання
Рис. 4.10. Можливий підхід до прозорої реплікації віддалених об’єктів з використанням клієнтського програмного забезпечення
Розглянемо прозорість до збоїв. Маскування збоїв у взаємодії з серверами зазвичай виконується за допомогою клієнтського програмного забезпечення проміжного рівня, яке можна конфігурувати так, щоб воно багаторазово намагалося зв’язатися із сервером або обирало після декількох спроб інший сервер. Можлива також ситуація, коли програмне забезпечення клієнта, якщо web-браузер не може зв’язатися із сервером, повертає дані, збережені в кеші під час попереднього сеансу зв’язку.
Прозорість паралельного виконання може забезпечуватися спеціальними проміжними серверами, або моніторами транзакцій, і потребує меншої під- тримки з боку клієнтського програмного забезпечення. Прозорість збере- ження також реалізується серверами.