- •Розподілені системи
- •Історична довідка
- •Базові терміни та визначення
- •Телекомунікаційні мережі як елемент розподілених систем
- •Модель клієнт–сервер
- •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 основних етапів:
- •Комерційні системи обміну повідомленнями
Визначення наскрізної функціональності
Після того, як визначені рівні застосування, необхідно визначити типи функціональності, яка перетинає межі рівнів(crosscutting concerns). Зазвичай такі види функціональності включають журналирование(logging), кеширова- ние(caching), визначення коректності значень(validation), аутентифікація, і управління виключеннями. Важливо використати окремі компоненти, що відповідають за подібні види функціональності.
Бажано уникати змішування коду, який відноситься до наскрізної функціо- нальності і кода компонентів що реалізовують функції певного шару, так щоб компоненти реалізовуючі функції рівня могли поводитися з викликом до компонент що реалізовує наскрізну функціональність. Реалізація компо- нентів наскрізної функціональності повинна забезпечувати доступ до них з різних шарів застосування.
Визначення інтерфейсу між рівнями
При визначенні інтерфейсу шару головною метою явлется забезпечення слабкої зв'язності між шарами. Це означає що шар не повинен виявляти дета- лей внутрішньої структури, на які покладатиметься інший шар. Інтерфейс повинен розроблятися так щоб зменшити залежність між окремими шарами, надаючи зовнішній інтерфейс, що приховує деталі компонентів усередині шару. Це т.з. Абстракція, яка може бути реалізована по-різному, наприклад використання абстрактних інтерфейсів або обміну повідомленнями між ша- рами
Вибір стратегії реалізації і впровадження
Існує декілька загальних підходів, які демонструють структуру впроваджен- ня застосування. Для визначення найкращого рішення, сначачала має бути вибраний відповідний шаблон і потім розглядатися сценарії, вимоги і обме- ження безпеки, що базуються на цьому шаблоні
Вибір протоколів взаємодії
Протоколи, використовувані для взаємодії між рівнями і шарами грають ос- новну роль в продуктивності, безпеці і надійності застосування. Вибір прото- колу тим важливіший, якщо розглядається варіант распеределенного фізично застосування.
3. Дизайн Рівню Представлення
Рівень представлення містить компоненти, які реалізують і відображають ін- терфейс користувача і відповідають за взаємодію з користувачем.
Зазвичай рівень представлення включає наступне:
-
Компоненти інтерфейсу користувача. Це візуальні елементи застосу- вання, які відображають інформацію користувачеві і використовуються для введення користувачем даних.
-
Компоненти логіки представлення. Логіка представлення це код засто- сування, який визначає логічно поведінку і структуру застосування неза- лежно від способу реалізації інтерфейсу користувача.
Рівень представлення включає також компоненти моделі представлен- ня(Presentation Layer Model), що інкапсулюють дані бізнес - рівня у формі, зручній для використання на рівні представлення.
Дизайн рівня представлення включає наступні кроки:
-
Визначення типу клієнта. Необхідно вибрати тип клієнта, який задово- льнятиме вимогам і відповідатиме інфраструктурі і обмеженням впрова- дження у вашій організації.
-
Вибір технології рівня представлення. Необхідно визначити функціо- нальність призначеного для користувача інтерфейсу і рівня представлення загалом і вибрати таку технологію яка задовольняла б вимогам і була дос- тупна для вибраного типу клієнта. На цьому етапі, якщо доступні техно- логії не підходять для вибраного типу клієнта, то можливий перегляд ви- бору клієнта.
-
Дизайн інтерфейсу користувача. Необхідно вирішити, чи повинен інте- рфейс бути модульним, і, визначити спосіб розділення функціональності на рівні представлення. Розгляньте патерни представлення, такі як Модель представлення(Presentation Model), Модель - Представлення- контроллер(MVC)
-
Визначте стратегію перевірки даних, що вводяться. Використайте ме- тоди перевірки введення щоб захистити систему від підозрілих вхідних даних. Визначте стратегію обробки виключень і протоколювання.
-
Визначте стратегію бізнес-логіки. Виділіть бізнес логікові, щоб відо- кремити її реалізацію від коду рівня представлення. Це дозволить спрос- тити подальший супровід застосування, так щоб модифікації бізнес-логіки
не впливали на рівень представлення. Вибір способу залежить від склад- ності застосування, загальноприйнятими є наступні підходи:
-
Інтерфейс перевірки введення(UI Validation). Для випадку прос- тих застосувань, де бізнес-логіка використовується для перевірки вве- дення користувача, функціональність бізнес логіки може бути реалізо- ваний в компонентах призначеного для користувача інтерфейсу. Проте потрібно потрібно утримуватися від змішення будь-якої бізнес-логіки, яка не відноситься до перевірки введення з компонентами інтерфейсу користувача.
-
Компоненти Бізнес-процеса. Для складніших застосувань, на- приклад, застосувань, що використовують транзакції, або застосувань в яких використання бізнес-логіки виходить за рамки простої перевірки введення, бізнес-логіка повинні розташовуватися в отдельныъх компо- нентах, які сипользуются компонетами призначеного для користувача інтерфейсу.
-
Модель сфери застосування(Domain Model). Для складних кор- поративних застосувань, де бізнес-логіка спільно сипользуется безліч- чю застосувань, необхідно розглянути варіант виділення бизнес- компонетов в окремий логічний рівень. Цей підхід дозволить розмісти- ти шар бізнес-логіки на окремому фізичному рівні(physical tier) щоб поліпшити розширюваність і можливість повторного використання ін- шими застосуваннями.
-
Модуль управління бізнес-правилами(Rules Engine). У застосу- ваннях, які повинні підтримувати комплексну перевірку, управління процесами, логіку сфери застосування, бізнес-логіка може бути реалі- зована модулем управління бізнес-правилами.
-
Визначення стратегії комунікації з іншими серверами. Якщо застосу- вання складається з безлічі рівнів, таких як рівень доступу до даних і біз- нес-логіки, визначите стратегію комунікації між рівнем представлення і іншими рівнями.Якщо рівні бізнес логіки і представлення реалізовані раз- делно, то рівень представлення сполучатиметься з рівнем бізнес-логіки. Якщо бізнес-рівень відсутній, то рівень представлення сполучатиметься безпосередньо з рівнем доступу до даних. Як правило, для доступу до ін- ших рівнів використовуються наступні способи:
-
Явний виклик функцій(Direct method calls). Якщо логічний рі- вень(layer), з яким виконується обмін даними знаходиться на тому ж фізичному рівні(tier), то може використовуватися явний виклик функк- ций .
-
Web services. Якщо доступ до даних або бізнес-логіки повинен розділятися між безліччю застосувань, то має сенс використати інтер-
фейс веб - сервісів( Web service) у разі, якщо бізнес логіка і дані роз- ташовані на окремих з редставлением фізичних рівнях, або їх розді- лення грає важливо .
-
Дизайн Рівню Представлення
-
Ключові принципи дизайну рівня представлення
-
-
Вибір відповідної технології UI. Необхідно визначити, який тип клієнта буде реалізований - " товстий" клієнт(rich/smart), Web- клієнт, або інтер- нет-застосування(Rich Internet application). Рішення має бути обгрунтоване вимогами пприложения і обмеженнями - організаційними і інфраструкту- ри.
-
Використання відповідних шаблонів. Используйет готові патерни рівня представлення в якості перевірених рішень існуючих проблем.Основний патерн Роздільного Представлення(Separated Presentation), відділяє функ- ціональність, специфічну для рівня представленияw від логіки іншого за- стосування, - може бути застосований до усіх типів застосувань. Специфі- чні патерни MVC, MVP, і Упраляющий Презентер( Supervising Presenter) широко використовуються на рівні представлення застосувань що вико- ристовують " товстий" клієнт(rich client) і інтернет застосувань(RIA). Ва- ріації патернів Model - View - Controller(MVC) і Model - View - Presenter(MVP) можуть використовуватися Web - застосуваннями.
-
Розділення функціональності. Для відображення, управління даними, і обробки комунікації з користувачем повинні використовуватися специфі- чні компоненти призначені саме для цих цілей.
-
Застосування стандартів побудови призначеного для користувача інте- рфейсу. Необхідно враховувати стандарти організації по побудові призна- чених для користувача інтерфейсів, а так само рекомендації по побудові пользоваельского інтерфейсу для для вибраного типу клієнта і технології.
-
Застосування принципу дизайну, орієнтованого на користувача. Перед розробкою рівня представлення необхідно вивчити потреби користувача за допомогою опитувань, інтерв'ю і оцінки зручності використан- ня(usability study).