
- •Л.С. Глоба
- •Розподілені системи
- •Історична довідка
- •Базові терміни та визначення
- •Комп'ютерні мережі, як частковий випадок розподілених систем
- •Модель клієнт-сервер.
- •Особливості розподілених систем
- •Переваги розподілених систем
- •Недоліки розподілених систем
- •Класифікація розподілених систем
- •Характеристики розподілених систем
- •Висновки
- •Питання для самоконтролю
- •Поняття розподіленого середовища
- •Концепції апаратних рішень
- •Архітектура багатопроцесорних систем
- •Системи із спільною пам'яттю
- •Системи з роздільною пам'яттю
- •Представники систем з роздільною пам'яттю
- •Топології багатопроцесорних систем
- •Концепції програмних рішень
- •Таблиця 2.1. Короткий опис розподілених і мережних операційних систем, а також засобів проміжного рівня
- •Операційні системи й розподіленість
- •Проміжне середовище
- •Поняття розподіленого середовища
- •Розподіл прикладних програм по рівнях
- •Варіанти архітектури клієнт-сервер
- •Де ік – інтерфейс користувача, лп – логіка прикладних програм, дд – доступ до даних, бд – база даних
- •Де ік – інтерфейс користувача, лп – логіка прикладних програм, дд – доступ до даних, бд – база даних
- •Програмні компоненти розподілених систем
- •Основи мережної взаємодії
- •Де ік – інтерфейс користувача, лп – логіка прикладних програм, дд – доступ до даних, бд – база даних
- •Взаємодія компонент розподіленої системи
- •Концепції взаємодії компонент розподіленої системи
- •Обмін повідомленнями
- •Віддалений виклик процедур
- •Використання віддалених об'єктів
- •Розподілені події
- •Розподілені транзакції
- •Безпека в розподілених системах
- •Опис інтерфейсу програмної компоненти
- •Мова xml і схеми xml
- •Soap: мова повідомлень розподіленої системи
- •Wsdl: опис інтерфейсу програмної компоненти
- •Серіалізація об'єктів
- •Базові технології представлення інформації в розподілених системах
- •Вимоги до прикладних програм серверної сторони
- •Огляд базових технологій
- •Таблиця 2.1 Основні оціночні характеристики платформ
- •Технологія ria
- •Таблиця 2.2 Порівняння даних профілізації традиційної веб-прикладної програма і ria
- •Таблиця 2.4 Порівняння технологій створення ria -прикладних програм
- •Дескриптор розгортання web-прикладних програм та компонент
- •Висновки
- •Питання для самоконтролю
- •Зв'язок
- •Рівні протоколів
- •Низькорівневі протоколи
- •Транспортні протоколи
- •Протоколи верхнього рівня
- •Віддалений виклик процедур
- •Звертання до віддалених об'єктів
- •Розподілені об'єкти
- •Прив'язка клієнта до об'єкта
- •Статичне й динамічне віддалене звернення до методів
- •Invoke(fobject, id(append). Int).
- •Передача параметрів
- •Зв’язок на основі потоків даних
- •Підтримка безперервних середовищ
- •Потоки даних й якість обслуговування
- •Таблиця 3.1 Характеристики технологій якості обслуговування
- •Синхронізація потоків даних
- •Протоколи проміжного рівня
- •Протокол soap
- •Родина протоколів xmpp
- •Протокол umsp
- •Висновки
- •Питання для самоконтролю
- •Процеси
- •Поняття процесу. Визначення та структура
- •Потоки виконання. Визначення та структура
- •Стан процесів та потоків виконання
- •Реалізація потоків виконання
- •Потоки виконання в нерозподілених системах
- •Потоки виконання в розподілених системах
- •Багатопотокові клієнти
- •Багатопотокові сервери
- •Таблиця 4.1 Три способи побудови сервера
- •Клієнти
- •Інтерфейси користувача
- •Клієнтське програмне забезпечення, яке забезпечує прозорість розподілу
- •Сервери
- •Загальні питання розробки серверів прикладного програмного забезпечення
- •Сервери об'єктів
- •Перенесення коду
- •Підходи до перенесення коду
- •Моделі перенесення коду
- •Перенесення і локальні ресурси
- •Перенесення коду в гетерогенних системах
- •Огляд перенесення коду в d'Agent
- •Питання реалізації
- •Програмні агенти
- •Програмні агенти в розподілених системах
- •Таблиця 4.2 Деякі важливі властивості агентів
- •Технологія агентів
- •Мови взаємодії агентів
- •Висновки
- •Питання для самоконтролю
- •Іменування
- •Іменовані сутності
- •Імена, ідентифікатори й адреси
- •Простір імен
- •Реалізація просторів імен
- •Покращене керування даними.
- •Допомагає організувати потоковий процес роботи.
- •Єдиний репозиторій і пошукової механізм для прикладного програмного забезпезпечення і сервісів.
- •Розміщення мобільних сутностей
- •Іменування й локалізація сутностей
- •Прості рішення
- •Підходи на основі базової точки
- •Ієрархічні підходи
- •Видалення сутностей, на які немає посилань
- •Проблема об'єктів, на які немає посилань
- •Підрахунок посилань
- •Організація списку посилань
- •Ідентифікація сутностей, на які немає посилань
- •Висновки
- •Фізичні годинники
- •Алгоритми синхронізації часу
- •Використання синхронізованих годин
- •Логічні годинники
- •Оцінка часу Лампорта (відмітки часу)
- •Векторна оцінка часу
- •Глобальний стан
- •Між записом свого стану й одержанням маркера процесQне приймав повідомлень по жодному зі своїх вхідних каналів.
- •Алгоритми голосування
- •Алгоритм «забіяки»
- •Кільцевий алгоритм
- •Взаємне виключення
- •Централізований алгоритм
- •Розподілений алгоритм
- •Алгоритм маркерного кільця
- •Порівняння трьох алгоритмів
- •Розподілені транзакції
- •Модель транзакцій
- •Таблиця 6.1 Деякі примітиви, використовувані в транзакціях
- •Класифікація транзакцій
- •Рівні ізольованості транзакцій
- •Таблиця 6.2 Рівні ізольованості та проблеми, які вони допускають
- •Реалізація розподілених транзакцій
- •Керування паралельним виконанням транзакцій
- •Компоненти розподілених транзакцій
- •Висновки
- •Список літератури
Таблиця 6.1 Деякі примітиви, використовувані в транзакціях
Примітив |
Опис |
BEGIN_TRANSACTION |
Позначити початок транзакції |
END_TRANSACTION |
Припинити транзакцію й спробувати завершити її |
ABORT_TRANSACTION |
Перервати транзакцію й відновити колишні значення |
READ |
Уважати дані з файлу, таблиці або іншого джерела |
WRITE |
Записати дані у файл, таблицю або інший приймач |
Для обмеження області дії транзакції використаються примітиви BEGIN_TRANSACTIONйEND_TRANSACTION. Операції, розташовані між ними, формують тіло транзакції. Всі ці операції або виконуються, або не виконуються. Це можуть бути системні виклики, бібліотечні процедури або інструкції мовою реалізації.
Властивість транзакцій «все або нічого» – це лише одне з характерних властивостей транзакції. Говорячи більш конкретно, транзакції мають наступні властивості:
атомарні (atomic) – для навколишнього світу транзакція неподільна;
несуперечливі (consistent) – транзакція не порушує інваріантів системи;
ізольовані (isolated) – одночасно, що відбуваються транзакції, не впливають одна на одну;
довговічні (durable) – після завершення транзакції внесені нею зміни стають постійними.
На ці властивості часто посилаються по їхніх перших буквах – ACID.
Перша ключова властивість, що проявляється у всіх транзакціях, – атомарність. Ця властивість гарантує, що всяка транзакція або повністю виконується, або повністю не виконується, причому якщо вона виконується, то виконується як одна неподільна одночасна операція. Поки транзакція перебуває в процесі виконання, інші процеси (незалежно від того, залучені вони в транзакцію чи ні) не можуть спостерігати яких-небудь проміжних станів.
Представимо, наприклад, що транзакція починається для того, щоб додати дані в якийсь файл із початковою довжиною 10 байт. Якщо цей файл у ході транзакції побажає прочитати інший процес, він побачить тільки вихідні 10 байт незалежно від того, скільки байт було додано у файл у ході транзакції. Якщо транзакція завершиться успішно, файл миттєво виросте до нового розміру,якщо ні – то до розміру на момент завершення без проміжних станів незалежно від того, скільки операцій усередині транзакції привело до його збільшення.
Друга властивість – це несуперечність. Це значить, що якщо в системи до початку транзакції були якісь інваріанти, які вона постійно повинна зберігати, вони будуть зберігатися й після її завершення. Так, наприклад, у банківській системі ключовим інваріантом є закон збереження грошей. Після будь-яких внутрішніх перекладів кількість грошей у банку повинне зберігатися таким же, яким воно було до перекладу, хоча на короткий момент у ході транзакції цей інваріант і може порушуватися, але таке порушення не буде помітно ззовні.
Третя властивість – це ізольованість. У тому випадку, якщо дві або більше транзакції відбуваються одночасно, для кожної з них і для інших процесів підсумковий результат виглядає так само, як якби всі транзакції виконувалися послідовно в якомусь (що залежить від системи) порядку.
Четверта властивість говорить, що транзакції довговічні. Ця властивість відбиває той факт, що після завершення транзакцій наступні дії не мають ніякого значення, транзакція закінчена, її результати незмінні. Ніякі збої після завершення транзакції не можуть привести до скасування результатів транзакції або їхній втраті.