- •Розподілені системи
- •Історична довідка
- •Базові терміни та визначення
- •Телекомунікаційні мережі як елемент розподілених систем
- •Модель клієнт–сервер
- •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 основних етапів:
- •Комерційні системи обміну повідомленнями
Спеціальні питання проектування
-
Аутентифікація
-
Авторизація
-
Кешування
-
Мережева взаємодія
-
Управління конфігурацією
-
Управління виключеннями
-
Протоколювання
-
Управління станом
Аутентифікація
Проектування ефективної стратегії аутентифікації має велике значення з точ- ки зору забезпечення безпеки і надійності застосування, інакше, воно буде уразливим для атак з підробкою пакетів, атак перебором по словнику, пере- хопленням сеансів і інших типів атак.
-
Визначте межі довіри і проводьте аутентифікацію користувачів і ви- кликів на межах довіри. Може знадобитися аутентифицировать виклики, як клієнта, так і сервера(взаємна аутентифікація).
-
Забезпечте використання надійних паролів або парольних фраз.
-
За наявності безлічі систем у рамках застосування, або якщо користу- вачі повинні мати можливість доступу до багатьох застосувань, викорис- товуючи одні і ті ж облікові дані, застосовуйте стратегію єдиної реєстра- ції.
-
Паролі не повинні передаватися і зберігатися у відкритому виді. Бере- жіть хеш пароля.
Авторизація
Авторизації захищає від розголошування відомостей, ушкодження або підро- бки даних і несанкціонованого отримання прав.
-
Визначте межі довіри і проводьте авторизацію користувачів і викликів на межах довіри.
-
Захистіть ресурси, проводячи авторизацію зухвалої сторони на підставі її посвідчення, груп або ролей. Забезпечте мінімальне дроблення, по мож- ливості обмежуючи кількість використовуваних ролей.
-
При авторизації на підставі ролей усі користувачі розподіляються по групах(ролям), що дозволяє задавати права доступу для ролі, а не для ко- жного користувача окремо. Це спрощує управління, оскільки адміністра- торові доводиться працювати лише з невеликим набором ролей, а не з усіма користувачами системи.
Кешування
Кешування може поліпшити продуктивність і час відгуку додатку. Поперед- нє асинхронне завантаження в кеш часто використовуваних даних або засто- сування пакетної обробки допоможуть уникнути затримок на стороні клієнта. При проектуванні стратегії кешування керуйтеся наступними рекомендація- ми:
-
Виберіть відповідне розміщення для кеша.
-
При роботі з кешем в пам'яті застосовуйте кешування даних в готовому до використання виді. Наприклад, кэшируйте не просто необроблені ці ба- зи даних, а використайте спеціалізовані об'єкти необхідні застосуванню.
-
Не кешуйте дані, що часто змінюються, і незашифровані конфіденційні дані.
-
Не покладайтеся на кешовані дані, вони можуть бути видалені. Реалі- зуйте механізм обробки збоїв кеша, можливо, шляхом повторного заван- таження елементу з джерела.
-
У разі використання безлічі потоків для забезпечення несуперечності даних переконаєтеся, що будь-який доступ до кеша являється потокобезо- пасным.
Мережева взаємодія
При проектуванні стратегії зв'язку керуйтеся наступними рекомендаціями:
-
Використайте взаємодію за допомогою обміну повідомленнями при перетині фізичних меж або меж процесу; і взаємодія об'єктів усередині процесу(при перетині тільки логічних меж).
-
Якщо порядок отримання повідомлень не має значення, і повідомлення не залежать один від одного, використайте асинхронну взаємодію. Це до- поможе уникнути блокування обробки або потоків UI.
-
Використайте механізм Message Queuing, що забезпечує розміщення повідомлень у чергу для їх відкладеної доставки у разі збою системи або розриву підключення. Message Queuing може здійснювати транзакційну доставку повідомлень і підтримує гарантовану одноразову доставку.
-
Вибирайте відповідний транспортний протокол, такий як HTTP для зв'язку через Інтернет і TCP для зв'язку по внутрішній мережі. Продумай- те відповідні схеми обміну повідомленнями, то, чи будете ви використати взаємодію зі встановленням підключення або без встановлення підклю- чення, підтримку гарантій надійності(такі як угоди на рівні сервісу) і ме- ханізм аутентифікації.
-
Забезпечте захист повідомлень і конфіденційних даних при передачі, використовуючи шифрування, цифрові сертифікати і функції безпеки ка- налів.