Триярусна архітектура
У комп'ютерних технологіях трирівнева архітектура, синонім триланкова архітектура (англ. three-tier або Multitier architecture) передбачає наявність наступних компонент програми: клієнтський застосунок (зазвичай говорять «тонкий клієнт» або термінал), підключений до сервера застосунків, який в свою чергу підключений до серверу бази даних.
Огляд архітектури
- Клієнт — це інтерфейсний (зазвичай графічний) компонент, який представляє перший рівень, власне застосунок для кінцевого користувача. Перший рівень не повинен мати прямих зв'язків з базою даних (за вимогами безпеки), не повинен бути навантаженим основною бізнес-логікою (за вимогами масштабованості) і зберігати стан програми (за вимогами надійності). На перший рівень може бути винесена і зазвичай виноситься найпростіша бізнес-логіка: інтерфейс авторизації, алгоритми шифрування, перевірка значень, що вводяться, на допустимість і відповідність формату, нескладні операції (сортування, групування, підрахунок значень) з даними, вже завантаженими на термінал.
- Сервер застосунків розташовується на другому рівні. На другому рівні зосереджена більша частина бізнес-логіки. Поза ним залишаються фрагменти, що експортуються на термінали (див. вище), а також розміщені в третьому рівні збережені процедури і тригери.
- Сервер бази даних забезпечує зберігання даних і виноситься на третій рівень. Зазвичай це стандартна реляційна або об'єктно-орієнтована СУБД. Якщо третій рівень являє собою базу даних разом з збереженими процедурами, тригерами і схемою, яка описує застосунок в термінах реляційної моделі, то другий рівень будується як програмний інтерфейс, що зв'язує клієнтські компоненти з прикладною логікою бази даних.
У простій конфігурації фізично сервер застосунків може бути поєднаний з сервером бази даних на одному комп'ютері, до якого по мережі підключається один або декілька терміналів.
У «правильної» (з точки зору безпеки, надійності, масштабування) конфігурації сервер бази даних міститься на виділеному комп'ютері (або кластері), до якого по мережі підключені один або кілька серверів застосунків, до яких, в свою чергу, по мережі підключаються термінали.
Переваги
У порівнянні з клієнт-серверною або файл-серверною архітектурою можна виділити такі переваги трирівневої архітектури:
- масштабованість
- конфігурованість — ізольованість рівнів один від одного дозволяє (при правильному розгортанні архітектури) швидко і простими засобами переконфігурувати систему при виникненні збоїв або при плановому обслуговуванні на одному з рівнів
- високий рівень безпеки
- висока надійність
- низькі вимоги до швидкості каналу (мережі) між терміналами і сервером застосунків
- низькі вимоги до продуктивності і технічних характеристик терміналів, як наслідок зниження їхньої вартості. Терміналом може виступати не тільки комп'ютер, але і, наприклад, мобільний телефон.
Недоліки
Недоліки випливають з переваг. У порівнянні c клієнт-серверною або файл-серверною архітектурою можна виділити наступні недоліки трирівневої архітектури:
- вища складність створення застосунків
- складніша у розгортанні і адмініструванні
- високі вимоги до продуктивності серверів застосунків і сервера бази даних, а, отже, і висока вартість серверного обладнання
- високі вимоги до швидкості каналу (мережі) між сервером бази даних і серверами застосунків.
Приклад триланкової архітектури клієнт-сервер
Компоненти триланкової архітектури, з точки зору програмного забезпечення реалізують певні сервери БД, веб-сервери і браузери. Місце кожної з цих компонент може зайняти програмне забезпечення будь-якого виробника. Нижче представлено опис взаємодії компонентів трирівневої архітектури клієнт-серверного застосунку. Сервер БД представлений MySQL-сервером; сервер застосунків технологіями: ADO.NET, ASP.NET і веб-сервером IIS; роль клієнта виконує будь-який веб-браузер.
Браузер клієнта 1 -> Сервер IIS 2 -> Середовище виконання ASP.NET 2.0 3 -> Провайдер даних ADO.NET 2.0 4 -> Сервер MySQL 5 -> Провайдер даних ADO.NET 2.0 6 -> Середовище виконання ASP.NET 2.0 7 - > Сервер IIS 8 -> Браузер клієнта
- 1 — браузер клієнта відправляє HTTP-запит;
- 2 — на стороні сервера служба Web Internet Information Services (web-сервер IIS) визначає тип запитуваного ресурсу, і для випадку запиту *. aspx (розширення файлів сторінок ASP.NET) завантажує відповідну йому (вимогу) розширення Internet Server Aplication Programming Interface (ISAPI). Для сторінок aspx це розширення isapi_aspnet.dll. IIS також здійснює ідентифікацію та авторизацію користувача від якого надійшов запит. У свою чергу розширення isapi_aspnet.dll завантажує фабрику обробників ASP.NET. Далі, фабрика обробників створює об'єктну модель запитуваної сторінки і обробляє дії користувача;
- 3 — в ході генерації відповіді застосунком ASP.NET може знадобитися звернення до БД, в цьому випадку використовуючи бібліотеки класів провайдера даних ADO.NET 2.0, середовище виконання звертається до сервера БД;
- 4 — провайдер даних ADO.NET 2.0 передає запит на операцію з БД сервера MySQL;
- 5 — сервер MySQL здійснює обробку запиту, виконуючи відповідні операції з БД;
- 6 — провайдер даних ADO.NET 2.0 передає результати запиту об'єкту сторінки;
- 7 — об'єкт сторінки з урахуванням отриманих даних здійснює рендеринг графічного інтерфейсу сторінки і направляє результати в вихідний потік;
- 8 — сервер IIS відправляє вміст згенерованої сторінки клієнтському браузеру.