- •Розподілені системи
- •Історична довідка
- •Базові терміни та визначення
- •Телекомунікаційні мережі як елемент розподілених систем
- •Модель клієнт–сервер
- •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 основних етапів:
- •Комерційні системи обміну повідомленнями
-
Базові технології подання інформації в розподілених системах
-
Вимоги до прикладних програм серверної сторони
Розглядаючи платформи для створення прикладних програм серверної сторони, необхідно виокремити такі основні підходи: безпосередня обробка запитів і формування відповідей; вбудовування програмного коду в шаблони HTML-сторінок.
Перший підхід надає найбільші можливості з керування обробкою і підвищенням продуктивності, оскільки він передбачає передачу всіх даних про запит безпосередньо виконуваного коду, який може як сформувати відповідь зі сторінкою для користувача, так і відкрити процес передачі потоку бітів, наприклад для передачі зображення. Однак за такого підходу всі дані для передачі формуються програмно, що вповільнює розробку простих сторінок і ускладнює взаємодію між розробником дизайну сторінки і програ- містом. Прикладами цього підходу є технології CGI (Common Gateway Interface), Java Servlets.
Другий підхід використовує шаблони сторінок користувача, оформлені таким чином, щоб дозволити вставляти в них ділянки програмного коду. Цей підхід особливо ефективний під час створення простих прикладних програм, основна інформація в яких статична, а динамічна інформація може бути ге- нерована простими програмними конструкціями. У процесі розробки склад- них програмних систем цей варіант ускладнює взаємодію між компонентами
і реалізацію складної архітектури, а також він менш ефективний за продукти- вністю й обмежує можливості з реалізації складних сторінок. Прикладами цього підходу є найпоширеніші нині технології Personal Home Page (PHP), Active Server Pages (ASP), Java Server Pages (JSP).
Крім різних підходів до генерації сторінок, сучасні платформи розробки складних Web-систем мають задовольняти вимогам, дотримання яких робить систему зручною у використанні:
-
платформна незалежність;
-
мова реалізації;
-
продуктивність;
-
масштабованість;
-
можливість розширення й інтеграції;
-
простота використання, наявність засобів розробки;
-
наявність необхідних програмних бібліотек.
-
Висновки
-
Для створення відкритої розподіленої системи необхідне використан- ня загальноприйнятих мов опису інтерфейсу програмної компоненти.
-
На сьогодні наявна низка апробованих на практиці стандартів для пере- дачі даних у гетерогенних розподілених системах: XML, XSD, SOAP і WSDL.
-
Використання стандартів дозволяє створювати розподілені системи, не прив’язані жорстко до засобу розробки програм або транспортного протоколу.
-
Відкритий характер специфікації SOAP допускає як реалізацію деякої додаткової функціональності, що застосовується у проміжному середовищі, так і прийняття нових стандартів і розширень, які використовують заголовки SOAP.
-
Разом з тим, це може зумовити певні труднощі у разі взаємодії, засно- ваних на WSDL і SOAP програмних компонентів різних розробників.
-
Платформи розглянуто з погляду побудови на них складних гетеро- генних Web-систем, тому деякі з популярних технологій не наведено в дета- льному огляді через неможливість або недоцільність їх використання як
базової платформи. З розглянутого можна виокремити такі основні підходи до побудови архітектури серверних прикладних програм:
окреме виконання запитів, коли під час кожного запиту динамічного вміс- ту запускається окрема програма для обробки запитів, яка генерує вміст, що передається клієнтові. Цей підхід використовують у класичних CGI-скриптах;
накопичення виконуваних процесів, підхід аналогічний попередньому, але, якщо запит виконується повторно, то заново програма не запускається, а обробка передається існуючому процесу. Такий підхід застосовують у техно- логіях Java Servlets, Fast CGI;
шаблони сторінок, коли під час запиту шаблони заповнюють динаміч- ним вмістом, який інтерпретується мовою сценаріїв, але не завжди створений у обчислювальному процесі. Підхід застосовують у технологіях ASP, JSP, PHP;
розширення Web-сервера, коли Web-сервер використовує особливі роз- ширення для обробки динамічного змісту, специфічні для Web-сервера. Цей підхід використовують в IS API, NSAPI, mod_perl.
-
Rich Internet Application – це прикладна програма, доступна через Internet, збагачена функціональністю традиційних настільних прикладних про- грам, не підтримується браузерами безпосередньо. У RIA значна частина функ- ціонала винесена у клієнтську частину, тобто виконується на стороні клієнта.
-
Основні механізми дескрипторів розгортання Web-орієнтованих при- кладних програм на платформі J2EE реалізують такі компоненти платформи як EJB-контейнер та Web-контейнер. Наявні безліч способів, якими можливо реалізовувати специфічний набір бізнес-вимог, логічну модель і описувати рішення, що задовольняють поставленим вимогам. Ураховуючи ці вимоги, складають різноманітні сценарії функціонування прикладних програм, серед яких можна назвати сценарій трирівневої Web-прикладної програми, який дозволяє не застосовувати EJB-контейнер, тобто використовувати менше ре- сурсів та витрачати менше часу і процесорної пам’яті.