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