- •Лекція №3
- •Розподілені сервісні системи
- •Тема 3. Процеси в розподілених сервісних системах.
- •6. Сервери.
- •7. Перенесення коду.
- •9. Програмні агенти.
- •1. Поняття процесу. Визначення і структура.
- •2. Потоки виконання. Визначення і структура.
- •3. Стан процесів та потоків виконання
- •4. Реалізація потоків виконання
- •4.1. Потоки виконання в нерозподілених системах
- •4.2. Потоки виконання в розподілених системах
- •4.3. Багатопотокові клієнти
- •4.4. Багатопотокові сервери
- •5.1. Інтерфейси користувача
- •5.2. Клієнтське програмне забезпечення і прозорість розподілу
- •6. Сервери
- •6.1. Підходи до побудови серверів прикладного програмного забезпечення
- •6.2. Сервери об’єктів
- •7. Перенесення коду
- •7.1. Підходи до перенесення коду
- •7.2. Моделі перенесення коду
- •8. Перенесення коду в гетерогенних системах
- •9. Програмні агенти
- •10.1. Програмні агенти в розподілених системах
- •10.3. Мови взаємодії агентів
- •Запитання для самоконтролю
5.1. Інтерфейси користувача
Основне завдання більшості програмних клієнтів – бути передавальною ланкою між користувачем і віддаленим сервером, у такому разі їх основною функцією є підтримка інтерфейсу, призначеного для користувача. Здебільшого інтерфейс між користувачем і віддаленим сервером порівняно простий і вбудований в апаратуру клієнта.
Приклад. Стільникові телефони крім кнопок для набору номера мають невеликий дисплей. Робота з електронною поштою може вимагати комплектації справжньою клавіатурою, електронним планшетом або пристроєм для розпізнавання мови.
5.2. Клієнтське програмне забезпечення і прозорість розподілу
Програмне забезпечення клієнта охоплює не лише призначений для користувача інтерфейс, але й здебільшого на стороні клієнта виконується частина рівнів обробки даних прикладної програми клієнт-сервер. На основі вбудованого клієнтського програмного забезпечення функціонує клас спеціалізованих пристроїв, таких як автовідповідачі, лічильники купюр, зчитувачі штрих-коду, телеприставки та ін. У таких пристроях призначений для користувача інтерфейс є невеликою частиною клієнтського програмного забезпечення порівняно із засобами локальної обробки і комунікацій.
Крім того, клієнтське програмне забезпечення містить компоненти, які забезпечують прозорість розподілу. В ідеалі клієнт не має знати про свою взаємодію з віддаленими процесами, на відміну від серверів, де інформація про розподілену роботу зазвичай не приховується для підвищення продуктивності й коректності роботи. Очевидно, що сервери, між якими виконується реплікація, мають періодично зв’язуватися один з одним для забезпечення певного порядку виконання операцій у кожній з реплік.
Прозорість доступу зазвичай забезпечується за рахунок генерації коду програми-клієнта (у вигляді заглушки клієнта) з визначенням інтерфейсу тих функцій, які має виконувати сервер. Заглушка надає такий самий інтерфейс, що і сервер, приховуючи при цьому відмінності в архітектурі і реальній взаємодії.
Розрізняють різні способи реалізації прозорості розміщення, перенесення і переміщення, для якої важливо використовувати певну систему найменування. Важливою відмінністю технології клієнт-сервер є кооперація з програмним забезпеченням клієнтської сторони. Якщо клієнт уже прив’язаний до сервера, то його потрібно повідомляти про зміну місцеперебування сервера. Проміжний рівень клієнта приховує дійсне місце розташування сервера від користувача й у разі потреби він непомітно повторить прив’язку до цього сервера. Найбільше, що може бути помічено у програмі клієнта, – це тимчасове спадання продуктивності.
Більшість розподілених систем реалізують прозорість реплікації на стороні клієнта. Розглянемо розподілену систему з віддаленими об’єктами, реплікацію яких можна здійснити через розсилання всім реплікам запиту, як показано на рис. 10. Програмний компонент на стороні сервера, який називають замісником клієнта, має зібрати всі відповіді й передати прикладній програмі клієнта одне повертаюче значення.
Рис. 10. Підхід до прозорої реплікації віддалених об’єктів з використанням клієнтського програмного забезпечення
Розглянемо прозорість до збоїв. Маскування збоїв у взаємодії з серверами зазвичай виконується за допомогою клієнтського програмного забезпечення проміжного рівня, яке можна конфігурувати так, щоб воно багаторазово намагалося зв’язатися із сервером або обирало після декількох спроб інший сервер. Можлива також ситуація, коли програмне забезпечення клієнта, якщо web-браузер не може зв’язатися із сервером, повертає дані, збережені в кеші під час попереднього сеансу зв’язку.
Прозорість паралельного виконання може забезпечуватися спеціальними проміжними серверами, або моніторами транзакцій, і потребує меншої підтримки з боку клієнтського програмного забезпечення. Прозорість збереження також реалізується серверами.
