При написанні програми шлюзу (яка може конвертувати введення з однієї системи в іншу) CGI дозволяє використовувати майже будь-яку мову програмування. Здатність використовувати при написанні програми шлюзу будь-яку мову, навіть мову сценаріїв, надзвичайно важлива. Найпопулярнішими мовами є shell, Perl, C і С + +. Сценарієм традиційно називають програму, яка виконується з допомогою інтерпретатора, виконуючого кожен рядок програми по мірі її зчитування.
Послідовність дій при взаємодії клієнта з програмою запущеної на Web-сервері можна сформулювати як наступна послідовність кроків.
1. Браузер приймає введену користувачем інформацію, як правило за допомогою фори.
2. Браузер поміщає введену користувачем інформацію в URL, що вказує ім'я та місце розташування сценарію CGI, який потрібно ввести в дію.
архітектура клієнт сервер інтранет
3. Браузер підключається до сервера Web і запитує URL. Сервер визначає, що URL повинен ввести в дію сценарій CGI, і запускає вказаний сценарій.
4. Сценарій CGI виконується, обробляючи всі передані йому дані.
5. Сценарій CGI динамічно формує Web-сторінку і повертає результат сервера.
6. Сервер повертає результат клієнтові.
7. Браузер відображає результат користувачеві
Це є спрощеною схемою взаємодії між браузером, сервером і сценарієм CGI. Найбільшу популярність CGI - сценарії знайшли при використанні в якості обробників форм, засоби доступу до баз даних, засоби здійснення локального і глобального пошуку, шлюзових протоколів.
Найбільшою міццю в реалізації клієнтського програмного забезпечення володіють аплети - програми написані на мові JAVA. У вузькому сенсі слова Java - це об'єктно-орієнтована мова, що нагадує C + +, але більш простий для освоєння і використання. У більш широкому сенсі Java - це ціла технологія програмування, спочатку розрахована на інтеграцію з Web-сервісом, тобто на використання в мережевому середовищі. Оскільки Web-навігатори існують практично для всіх апаратно-програмних платформ, Java-середу повинна бути як можна більш мобільної, в ідеалі повністю незалежною від платформи.
З метою вирішення перелічених проблем були прийняті, крім інтеграції з Web-навігатором, два інших найважливіших постулату.
1. Була специфікована віртуальна Java-машина (JVM), на якій повинні виконуватися (Інтерпретуватися) Java-програми. Визначено архітектура, подання елементів даних і система команд Java-машини. Вихідні Java-тексти транслюються в коди цієї машини. Тим самим, при появі нової апаратно-програмної платформи в портировании потребуватиме тільки Java-машина; всі програми, написані на Java, підуть без змін.
2. Визначено, що при редагуванні зовнішніх зв'язків Java-програми та при роботі Web-навігатора прозорим для користувача чином може здійснюватися пошук необхідних об'єктів не тільки на локальній машині, але і на інших комп'ютерах, доступних по мережі (зокрема, на WWW-сервері). Знайдені об'єкти завантажуються, а їх методи виконуються потім на машині користувача.
Безсумнівно, між двома сформульованими положеннями існує тісний зв'язок. В модульна середовищі важко абстрагуватися від апаратних особливостей комп'ютера, як важко (хоча і можна) реалізувати прозору динамічну завантаження по мережі. З іншого боку, прийом об'єктів ззовні вимагає підвищеної обережності при роботі з ними, а, значить, і з усіма Java-програмами. Вживати необхідних заходів безпеки найпростіше в интерпретируемой, а не модульна середовищі. Взагалі, мобільність, динамізм і безпека - супутники інтерпретатора, а не компілятора.
Прийняті рішення роблять Java-середу ідеальним засобом розробки інтерактивних клієнтських компонентів (аплетів) Web-систем. Особливо відзначимо прозору для користувача динамічне завантаження об'єктів по мережі. З цього випливає таке найважливіше гідність, як нульова вартість адміністрування клієнтських систем, написаних на Java. Досить оновити версію об'єкта на сервері, після чого клієнт автоматично отримає саме її, а не старий варіант. Без цього реальна робота з розвиненою мережевою інфраструктурою практично неможлива.
Рис.7. Java технології при реалізації АІС.
Стандартний реляційний доступ до даних дуже важливий для програм на Java, тому що Java-аплети по природі своїй не є монолітними, самодостатніми програмами. Будучи модульними, аплети повинні отримувати інформацію зі сховищ даних, обробляти її і записувати назад для подальшої обробки іншими апплетами. Монолітні програми можуть собі дозволити мати власні схеми обробки даних, але Java-аплети, що перетинають кордони операційних систем і комп'ютерних мереж, потребують опублікуванні відкритих схем доступу до даних.
Інтерфейс JDBC (Java Database Connectivity - зв'язаність баз даних Java) є першою спробою реалізації доступу до даних з програм Java, не залежного від платформи і бази даних. У версії JDK 1.1 JDBC є складовою частиною основного Java API.
JDBC - Це набір реляційних об'єктів і методів взаємодії з джерелами даних. Програма на мові Java відкриває зв'язок з таблицею, створює об'єкт оператор, передає через нього оператори SQL системі управління базою даних отримує результати і службову інформацію про них. У типовому випадку файли. Class JDBC і аплет/додаток на мові Java знаходяться на комп'ютері клієнті. Хоча вони можуть бути завантажені з мережі, для мінімізації затримок під час виконання краще мати класи JDBC у клієнта. Система управління базою даних (CУБД) і джерело даних зазвичай розташовані на віддаленому сервері.
На малюнку 8 показані різні варіанти реалізацій зв'язку JDBC з базою даних. Аплет/додаток взаємодіє з JDBC в системі клієнта, драйвер відповідає за обмін інформацією з базою даних через мережу.
Класи JDBC знаходяться в пакеті java.sql. *. Всі програми Java використовують об'єкти і методи з цього пакету для читання і запису в джерело даних. Програмі, що використовує JDBC, потрібен драйвер до джерела даних, з яким вона буде взаємодіяти. Цей драйвер може бути написаний на іншому (не Java) мовою програмування, або він може бути програмою на мові Java, яка спілкується з сервером, використовуючи RPC (Remote Procedure Call) - віддалений виклик процедур або HTTP. Обидві схеми наведені на рис.19. Драйвер JDBC може бути бібліотекою на іншому (не Java), як програма сполучення ODBC - JDBC, або класом Java, який спілкується через мережу з сервером бази даних, використовуючи RPC або HTTP. Допускається, що додаток буде мати справу з декількома джерелами даних, можливо, з неоднорідними. З цієї причини у JDBC є диспетчер драйверів, чиї обов'язок полягають в управлінні драйверами і надання програмі списку завантажених драйверів.
Хоча словосполучення "База даних" входить в розшифровку абревіатури JDBC, форма, зміст і розташування даних не цікавлять програму Java, використовує JDBC, оскільки існує драйвер до цих даних.
Рис.8 Варіанти реалізації зв'язку JDBC з базою даних
Сполучення JDBC - ODBC
В якості складової частини JDBC поставляється драйвер для доступу з JDBC до джерел даних ODBC (Open Database Connectivity), і називається "Програма сполучення JDBC - ODBC". Ця програма сполучення реалізована у вигляді JdbcOdbc.class і є бібліотекою для доступу до драйвера ODBC.
Оскільки JDBC конструктивно близький до ODBC, програма сполучення є нескладною надбудовою над JDBC. На внутрішньому рівні цей драйвер відображає методи Java у виклики ODBC і тим самим взаємодіє з будь-яким ODBC - драйвером. Гідність такої програми сполучення полягає в тому, що JDBC має доступ до будь-яких баз даних, оскільки ODBC - драйвери поширені дуже широко.
В Відповідно до правил Internet JDBC ідентифікує базу даних за допомогою URL, який має форму:
jdbc: <субпротокол>: <ім'я, пов'язане з СУБД або Протоколом>
У баз даних в Internet/intranet "ім'я" може містити мере...