- Процес розробки Web-додатків досить складний і однією з найбільш важливих завдань є рішення про те, як функціональність програми повинна бути розподілена між клієнтської і серверної частиною.
Мережа Інтернет організована за схемою клієнт-сервер. У класичному випадку дана схема функціонує наступним чином:
- клієнт формує і посилає запит на сервер баз даних;
Цикл повторюється, поки користувач не закінчить роботу з сервером.
У сервісі WWW для передачі інформації застосовується протокол НТТР (HyperText Transmition Protocol).
Основні транзакцій HTTP:
- Браузер декодує першу частину URL (Universal Resource Locator) і встановлює з'єднання з сервером.
При даних транзакціях сервер не має ніякої інформації про стан браузера, тобто HTTP можна вважати "односпрямованим" протоколом, і взаємодіяти з сервером можливо тільки через механізм URL, це створює труднощі при реалізації клієнтської частини.
- Основне завдання клієнтського додатка - це забезпечення інтерфейсу з користувачем, т. Е. Введення даних і представлення результатів у зручному для користувача вигляді, і управління сценаріями роботи програми.
- Архітектура "товстий клієнт - тонкий сервер": велика частина функцій програми вирішувалася клієнтом, сервер займався тільки обробкою SQL-запитів.
Архітектура "товстий" клієнт має такі недоліки:
- Архітектура "тонкий клієнт - товстий сервер": використання на сервері процедур (stored procedure - відкомпілювалися програми з внутрішньою логікою роботи), призвело до тенденції переносити все більшу частину функцій на сервер. Збережені процедури реалізовували частина бізнес-логіки і гарантували виконання операції в рамках єдиної транзакції. Таке рішення має очевидні переваги, наприклад його легше підтримувати, т. К. Все зміни потрібно вносити тільки в одному місці - на сервері.
Архітектура "товстий" сервер має такі недоліки:
Для вирішення перерахованих проблем використовуються багаторівневі (три і більше рівнів) архітектури клієнт-сервер.
- Триланкового і многозвенная архітектури "клієнт-сервер": виконання прикладних завдань і бізнес-правил здійснюється окремим компонентом програми (або декількох компонентів), які можуть працювати на спеціально виділеному комп'ютері - сервері додатків.
- Будь-яка інформаційна система, побудована на основі клієнт-серверних технологій, повинна містити наступні компоненти:
Менеджери транзакцій дозволяють одного сервера додатків одночасно обмінюватися даними з декількома серверами баз даних.
Хоча сервери Oracle мають механізм виконання розподілених транзакцій, але якщо користувач зберігає частину інформації в БД Oracle, частина в БД Informix, а частина в текстових файлах, то без менеджера транзакцій не обійтися.
МТ використовується для управління розподіленими різнорідними операціями і узгодження дій різних компонентів інформаційної системи.
Перші менеджери транзакцій з'явилися на початку 70-х рр. (Наприклад, CICS); з тих пір вони незначно змінилися ідеологічно, але має велике значення - технологічно.
Найбільші ідеологічні зміни відбулися в комунікаційному менеджері, так як в цій області з'явилися нові об'єктно-орієнтовані технології (CORBA, DCOM і т.д.).
Менеджер транзакцій - це програма або комплекс програм, за допомогою яких можна узгодити роботу різних компонентів інформаційної системи.
Логічно MT ділиться на кілька частин:
- комунікаційний менеджер (Communication Manager) - контролює обмін повідомленнями між компонентами інформаційної системи;
- Розподілена інформаційна система представляється у вигляді трьох-чотирирівневої структури з розмежуванням функцій на кожному рівні і фіксацією протоколів межуровневого потоку даних.
Рівень 1.Собственно дані представляють собою звичайні файли даних в форматі, необхідному для роботи сервера БД. Дані зберігаються у вигляді набору файлів в окремому каталозі для кожної БД. Крім власне даних, каталог може включати інформацію про зумовлених форматах для відображення даних і файл заголовка для розширеного назви БД.
Рівень 2.Сервер баз даних реалізує основні функції вибірки інформації з БД. Для публічної інформаційної системи ці функції зводяться до наступних:
- отримання запиту з рівня 3;
Відповідно до цього сервер БД обробляє наступні запити.
Словниковий - запит на список ключових слів з параметрами. У вхідному потоці - ідентифікатор БД, шаблон ключового слова, порядковий номер ключового слова, кількість слів у вихідному буфері, в вихідному - список затребуваних ключових слів і їх частота.
Форматний - запит на надання списку визначених форматів виводу даних. У вхідному потоці - ідентифікатор БД, в вихідному - пронумерований список визначених форматів для даної БД.
Основний - запит на надання даних в необхідному форматі з параметрами. У вхідному потоці - ідентифікатор БД, рядок запиту, номер запису початку виведення, кількість записів для виведення, ідентифікатор формату, в вихідному - Форматована вибірка з БД.
Службовий - запит на номер версії сервера БД. У вихідному потоці - номер версії поточного сервера БД, пронумерований список доступних БД, ідентифікатор внутрішньої кодування сервера БД.
Рівень 3. "клієнт-сервер" Сервер WWW з модулем управління серверами БД - диспетчер БД - призначений для обробки запитів користувачів, формування запитів до серверів БД і повернення клієнтам отриманої інформації по протоколу HTTP і специфікаціям HTML. Оптимальним варіантом є Windows NT + IIS з підтримкою JAVA і ASP (Active Server Pages) з огляду на тісну інтеграцію IIS з операційною системою і можливістю організації багатопотокової обробки даних порівняно простими і дешевими засобами. Керуючий модуль (диспетчер БД) може бути реалізований у вигляді динамічної бібліотеки і (або) набору об'єктів ASP.
Диспетчер БД виконує наступні функції:
- зберігання та надання користувачам поточної інформації про доступні БД;
Для організації повнофункціональної системи досить перерахованих трьох рівнів. Однак при побудові територіально розподіленої системи з яскраво вираженими районами і ненадійними лініями зв'язку між ними бажано локалізувати всі три рівня в кожному районі з інтеграцією останніх на рівні 4.
Рівень 4.Головними диспетчер (ГД) інформаційної системи являє собою сервер WWW, функціонально ідентичний сервера рівня 3, але наділений додатковою функцією зберігання інформації про всієї інформаційної системи в цілому. В ідеальному випадку кожен з серверів рівня 3 повинен бути готовий взяти на себе роль головного диспетчера. Основне завдання ГД - отримати інформацію про конфігурацію кожного сервера рівня 3 і розтиражувати її по всіх серверів.
Таким чином, загальна схема розподіленої інформаційної системи складається з чотирьох логічних рівнів.