Ноу Інти, лекція, архітектурні особливості проектування та розробки веб-додатків

5.1.5. Багаторівневий "клієнт-сервер"

Багаторівнева архітектура клієнт-сервер (Multitier architecture) - різновид архітектури клієнт-сервер, в якій функція обробки даних винесена на один або кілька окремих серверів [15]. Це дозволяє розділити функції зберігання, обробки і представлення даних для більш ефективного використання можливостей серверів і клієнтів.

Серед багаторівневої архітектури клієнт-сервер найбільш поширена трирівнева архітектура (трехзвенная архітектура. Three- tier), що припускає наявність наступних компонентів програми: клієнтську програму (зазвичай говорять "тонкий клієнт" або термінал), підключений до сервера додатків. який в свою чергу підключений до сервера бази даних [14. 17].

Схематично таку архітектуру можна уявити, як показано на рис. 5.4.


Мал. 5.4. Подання багаторівневої архітектури "клієнт-сервер"

У простій конфігурації фізично сервер додатків може бути поєднаний з сервером бази даних на одному комп'ютері, до якого по мережі підключається один або кілька терміналів.

В "правильної" (з точки зору безпеки, надійності, масштабування) конфігурації сервер бази даних знаходиться на виділеному комп'ютері (або кластері), до якого по мережі підключені один або кілька серверів додатків. до яких, в свою чергу, по мережі підключаються термінали.

  • клієнтське ПЗ не потребує адмініструванні;
  • масштабованість;
  • конфігурованість - ізольованість рівнів один від одного дозволяє швидко і простими засобами переконфігурувати систему при виникненні збоїв або при плановому обслуговуванні на одному з рівнів;
  • висока безпека;
  • висока надійність;
  • низькі вимоги до швидкості каналу (мережі) між терміналами і сервером додатків;
  • низькі вимоги до продуктивності і технічним характеристикам терміналів. як наслідок зниження їх вартості.
  • росте складність серверної частини і, як наслідок, витрати на адміністрування і обслуговування;
  • більш висока складність створення додатків;
  • складніше в розгортанні і адмініструванні;
  • високі вимоги до продуктивності серверів додатків і сервера бази даних. а, значить, і висока вартість серверного обладнання;
  • високі вимоги до швидкості каналу (мережі) між сервером бази даних і серверами додатків.
  1. подання;
  2. Рівень представлення;
  3. Рівень логіки;
  4. Рівень даних;
  5. Дані.


Мал. 5.5. П'ять рівнів многозвенной архітектури "клієнт-сервер"

До подання відноситься вся інформація, безпосередньо відображається користувачеві: згенеровані html-сторінки, таблиці стилів, зображення.

Рівень представлення охоплює всі, що має відношення до спілкування користувача з системою. До основних функцій шару уявлення відносяться відображення інформації та інтерпретація вводяться користувачем команд з перетворенням їх у відповідні операції в контексті логіки і даних.

Рівень логіки містить основні функції системи, призначені для досягнення поставленої перед ним мети. До таких функцій відносяться обчислення на основі введених і збережених даних, перевірка всіх елементів даних і обробка команд, що надходять від шару уявлення, а також передача інформації рівнем даних.

Рівень доступу до даних - це підмножина функцій, що забезпечують взаємодію зі сторонніми системами, які виконують завдання в інтересах додатки.

Дані системи зазвичай зберігаються в базі даних.

5.1.6. Архітектура розподілених систем

Такий тип систем є більш складним з точки зору організації системи. Суть распределеннойсістеми полягає в тому, щоб зберігати локальні копії важливих даних [19].

Схематично таку архітектуру можна уявити, як показано на рис. 5.6.


Мал. 5.6. Архітектура розподілених систем

Понад 95% даних, які використовуються в управлінні підприємством, можуть бути розміщені на одному персональному комп'ютері, забезпечивши можливість його незалежної роботи [16]. Потік виправлень і доповнень, що створюється на цьому комп'ютері, ніщо у порівнянні з обсягом даних, що використовуються при цьому. Тому якщо зберігати безперервно використовувані дані на самих комп'ютерах, і організувати обмін між ними виправленнями та доповненнями до даних, що зберігаються, то сумарний переданий трафік різко знизиться. Це дозволяє знизити вимоги до каналів зв'язку між комп'ютерами і частіше використовувати асинхронну зв'язок, і завдяки цьому створювати надійно функціонують розподілені інформаційні системи, що використовують для зв'язку окремих елементів нестійку зв'язок типу Інтернету, мобільний зв'язок, комерційні супутникові канали. А мінімізація трафіку між елементами зробить цілком доступною вартість експлуатації такого зв'язку. Звичайно, реалізація такої системи не елементарна, і вимагає вирішення ряду проблем, одна з яких своєчасна синхронізація даних.

Кожен АРМ незалежний, містить тільки ту інформацію, з якої повинен працювати, а актуальність даних у всій системі забезпечується завдяки безперервному обміну повідомленнями з іншими АРМамі. Обмін повідомленнями між АРМамі може бути реалізований різними способами, від відправки даних по електронній пошті до передачі даних по мережах.

Ще одним з переваг такої схеми експлуатації та архітектури системи, є забезпечення можливості персональної відповідальності за збереження даних. Так як дані, доступні на конкретному робочому місці, знаходяться тільки на цьому комп'ютері, при використанні коштів шифрування і особистих апаратних ключів виключається доступ до даних сторонніх, в тому числі і IT адміністраторів.

Така архітектура системи також дозволяє організувати розподілені обчислення між клієнтськими машинами. Наприклад, розрахунок якого-небудь завдання, що вимагає великих обчислень, можна розподілити між сусідніми АРМамі завдяки тому, що вони, як правило, володіють однією інформацією в своїх БД і, таким чином, домогтися максимальної продуктивності системи.

Розподілені системи з реплікацією

Даними між різними робочими станціями і централізованим сховищем даних. передаються репликацией [19] (рис. 5.7). При введенні інформації на робочих станціях - дані також записуються в локальну базу даних, а лише потім синхронізуються.


Мал. 5.7. Архітектура розподілених систем з реплікацією

Розподілені системи з елементами віддаленого виконання

Існують певні особливості, які неможливо якісно реалізувати на звичайній розподіленої системі репликативного типу. До цих особливостей можна віднести [19]:

  • використання даних з сутностей, які зберігаються на віддаленому сервері (вузлі);
  • використання даних з сутностей, що зберігаються на різних серверах (вузлах) частково;
  • використання відокремленого функціоналу, на виділеному сервері (вузлі).

У кожного з описаних типів використовується загальний принцип: програма клієнт або звертається до виділеного (віддаленого) сервера безпосередньо або звертається до локальної базі, яка інкапсулює в собі звернення до віддаленого сервера (рис. 5.8).


Мал. 5.8. Архітектура розподілених систем з віддаленим виконанням