- •Розподілені системи
- •Історична довідка
- •Базові терміни та визначення
- •Телекомунікаційні мережі як елемент розподілених систем
- •Модель клієнт–сервер
- •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 основних етапів:
- •Комерційні системи обміну повідомленнями
-
Безпека в розподілених системах
Для гарантування безпеки розподіленої системи проміжне середовище має забезпечувати функціонування трьох загальновідомих функцій, необхід- них для створення безпечних систем:
-
Перевірка того, що користувач сервісів компоненти розподіленої систе- ми дійсно є користувачем, якому дозволено мати доступ до сервісів та даних системи (аутентифікація
http://www.intuit.ru/department/se/msfdev/2/footnote.5.1.htm). Така перевірка може бути однобічною, коли тільки сервер переконується в тому, що клієнту дозволено мати доступ, або двобічною, коли клієнт теж переконується в тому, що цей сервер надає саме ті сервіси, які йому потрібні.
-
Обмеження доступу до сервісів компонента залежно від результатів аутентифікації (авторизація). Для вирішення такого завдання проміжне сере- довище має підтримувати обмеження доступу, в основу якого покладено ролі (role based security). Оскільки немає можливості позначити рівні доступу через конкретних користувачів або груп користувачів системи, то слід викорис- товувати деякі абстрактні ролі, які у процесі розгортання компоненти пов’язуються адміністратором системи з обліковими записами користувачів системи.
-
Захист даних, переданих між компонентами системи, від перегляду і змінювання третіми сторонами потребує, щоб передані між компонентами повідомлення візувалися електронним підписом та шифрувалися як клієнтом, так і сервером.
Функції безпеки можна забезпечувати транспортним протоколом, який використовується проміжним середовищем, самим середовищем або ними обома одночасно.
-
Опис інтерфейсу програмної компоненти
-
Мова і схеми Extensible Markup Language
Мова XML нині набула низки різноманітних застосувань і є основою для великої кількості загальноприйнятих специфікацій, які використовують у ро- зподілених системах (зокрема у мовах XML, XSD, SOAP, WSDL) основні з яких подано на рис. 2.48.
Рис. 2.48. Специфікації, які мають в основі XML-формат
Мова XML – це мова розмітки текстового документа, поданого у вигляді сукупності іменованих, деревоподібних вкладених елементів, кожний з яких може мати деяке текстове значення й набір атрибутів, у яких є ім’я і просте значення (рядок). Мова XML є абстрактною мовою розмітки, яка не визначає ніякого змісту елементів документа. Документи XML добре читають як люди, так і численні програмні аналізатори. У разі природного підходу до імен елементів і атрибутів вона є мовою, яка самодокументується. Перед деревоподібною структурою елементів, що мають єдиний корінь, можуть пере- бувати окремі елементи з метаінформацією, яка свідчить, зокрема, про коду- вання документа й версію мови.
Основними недоліками XML з погляду обміну повідомленнями є незру- чне, через його деревоподібну структуру, подання відносин «багато до багатьох», а також більші витрати часу на передачу й обробку повідомлень мовою XML порівняно з двійковим представленням аналогічних даних.
Оскільки властиве XML відкрите подання інформації не завжди зручне з погляду безпеки, то наявні специфікації XML-DigitalSignature і XML-Encrypton, призначені для передачі в XML-форматі конфіденційної інформації. Перша специфікація дозволяє додати до XML-документа цифровий підпис, друга – зашифрувати XML-документ або окремі його елементи.
Однією з переваг XML є наявність мов специфікацій, що визначають пра- вильний XML-документ. Спочатку цю функцію виконував DTD (Document
Type Definition), однак нині загальноприйнятим стандартом є специфікація схем XML (XML Schema Definition, XSD). Файл з описом схеми XML визна- чає такі параметри: словник документа (імена елементів і атрибутів); синтак- сис коректного документа; складні типи даних.