клієнт/сервер.
Припустимо, що по мірі накопичення, дані починають цікавити і інші підрозділи вашої організації. В цих підрозділах необхідно створити свої додаткові програми. Це, швидше всього, потребує перемістити інформацію на сервер бази даних, і цим самим це дозволить зробити їх доступними більш широкому колу користувачів. З часом інтерес до інформації виростає в масштабах всієї організації в цілому. Вона зацікавлює створювачів програмного забезпечення для підтримки прийняття рішень, і тепер важливо, щоб використовувана архітектура забезпечувала не тільки швидкий доступ до даних, але й дозволяла викликати дані в необхідному для даних програм виді [4].
Глобальна доступність подібних даних приводить до появлення деяких проблем, успадкованих від класичної архітектури доступу до даних в мережах персональних комп’ютерів з локальними базами даних. Одні з найважливіших з них – надзвичайне мережеве навантаження і захист даних.
Наведений вище приклад, хоч і дуже спрощений, але ілюструє ситуацію, в якій з’являється реальна необхідність використання рішень клієнт/сервер.
Таке рішення має ряд привілеїв.—
Допускає незалежний груповий доступ до даних, що дозволяє окремим підрозділам обробляти тільки ту частину даних, за яку вони відповідальні.—
Забезпечує ефективний доступ до даних особам, відповідальних за прийняття рішень, дозволяє використовувати інформацію в найбільш зручному вигляді.—
Збільшує можливості централізованого управління багаторівневою моделлю з метою забезпечення цілісності даних, що дозволяє зменшити гостроту проблеми централізованого контролю і аналізу використання даних.—
Встановлює правила цілісності даних для всієї бази даних.—
Забезпечує більш високий рівень поділу праці між клієнтом і сервером (кожний виконує задачі, для розв’язку яких він найбільш пристосований).—
Дозволяє використовувати поліпшенні засоби підтримки цілісності даних, які пропонуються більшістю типів серверів баз даних.—
Зменшує навантаження на мережу, оскільки клієнту повертаються підмножини даних, а не цілком всі таблиці, як у випадку локальних баз даних [4].
Цей список можна було б продовжити.
Слід зазначити, що використання технології клієнт/сервер не завжди буває оправданим. Розробник повинен провести повний аналіз потреб до системи, перед тим як вирішити, чи є технологія клієнт/сервер дійсно тим засобом, який необхідний для вирішення потрібних завдань. Крім того, слід врахувати, що системи клієнт/сервер значно дорогі. В їхню вартість входить мережеве програмне забезпечення, серверна операційна система, сервер бази даних і апаратні засоби, які відповідають програмному забезпеченню цього рівня. Не слід забувати і про затрати часу і засобів на вивчення користувачами роботи з серверною операційною системою і програмним забезпеченням баз даних.
Типова архітектура клієнт/сервер передбачає наявність кінцевого користувача (клієнта), який має доступ і можливість обробляти дані, які зберігаються на віддаленому комп’ютері – сервері. Не існує ніякого стандартного визначення того, що таке клієнт і чим займається сервер. Однак можна з впевненістю казати, що сервер пропонує деякий сервіс, а клієнт запитує його у нього. До одного і того ж сервера можуть звертатися декілька клієнтів з вимогою запропонувати їм деякий сервіс, і тільки сервер вирішує, як обробити подібні запити. Крім цього в системі клієнт/сервер може існувати ще й третій елемент.
В середовищі клієнт/сервер останній відіграє набагато важливішу роль, ніж роль простого розподільника даних. Фактично сервер виконує основну частину роботи системи. Він управляє тим, як клієнт буде діставати доступ і обробляти дані. Реально клієнтське програмне забезпечення є лише засобом для представлення даних користувачу і передачу їх серверу.
Клієнти являють собою програму, яка забезпечує графічний або не графічний інтерфейс з користувачем. Клієнтське програмне забезпечення забезпечує користувачу інтерфейс для управління даними на сервері. Тільки через клієнтську програму користувач дістає доступ до функціональних можливостей сервера.
Прикладом дій клієнта щодо сервера можуть бути додаток запису в існуючу базу даних, формування різного роду запиту і т.п. В цьому випадку клієнт просто відсилає запит і дає серверу необхідні для його виконання дані (умови запиту). Сервер несе відповідальність за обробку запиту. Це не означає, що клієнт не може виконувати якихось логічних дій самостійно. Цілком можливо, що клієнт реалізує більшу частину (якщо не всю) підтримки бізнес-логіки програми. Така програма називається товстим клієнтом.
Сервер пропонує сервіс клієнту. Він чекає поки клієнт зробить запит, а потім обробляє цей запит. Сервер повинен володіти можливістю обробляти запити від декількох клієнтів, а також вміти розподіляти запити по пріоритетам. Частіше всього серверна програма працює постійно забезпечуючи безперервний доступ до її послуг.
Клієнт і сервер не обов’язково повинні розташовуватися на різних комп’ютерах. Часто фонові задачі обробки даних для клієнтів виконуються на тому ж комп’ютері, де працює сервер.
Бізнес-правила – це процедури управління, які визначають, як клієнт повинен діставати доступ до даних на сервері. Ці правила реалізуються програмним текстом клієнта, сервера або обома. На стороні сервера бізнес-правила реалізуються у вигляді зберігаючих процедур SQL, тригерів і інших об’єктів, притаманних серверам баз даних. В трирівневій моделі бізнес-правила можуть бути реалізовані на середньому рівні.
2.2 Аналіз існуючих засобів і технологій
2.2.1 Опис існуючих Internet технологій
Базова технологія доступу до web досить проста. Два агенти – Web-клієнт і Web-сервер – повинні встановити між собою зв’язок для обміну інформації. Клієнт дає запит на деяку інформацію, а сервер її йому надає. Звичайно, що клієнт і сервер повинні "домовитися" про характер зв’язку і про те, в якій формі буде передаватися інформація. У Web-середовищі всі дії реалізуються у вигляді потоків ASCII-байтів.
Клієнт відсилає текстовий запит і дістає назад текстову відповідь. Web-клієнт дуже мало знає про те, що відбувається на сервері. Подібна простота взаємодії дозволяє організувати міжплатформений зв’язок (тобто зв’язок між комп’ютерами різної архітектури і, які працюють під управлінням зовсім