Разработка INTRANET приложений

       

Использование интерфейса CGI для связи с СУБД


Первым технологическим решением, обеспечивающим создание интерактивных страниц Web, стал API-интерфейс CGI. Эта спецификация позволяет строить программы, расширяющие возможности Web-сервера, которые позволяют разработчикам обращаться к HTTP-серверам, чтобы оперативно выводить информацию в ответ на запросы пользователя. CGI-программа исполняется на сервере, обеспечивая обработку данных и запросов пользователя. Программы, поддерживающие CGI, могут осуществлять обычные операции обработки данных, включая вычисления, исполнение запросов к базе данных, обновление БД и взаимодействие с другими сетевыми приложениями. Кроме того, CGI-программы автоматически определяют, какие HTML-форма, шаблон или документ должны быть выведены на экран в ответ на запрос пользователя.

Программы, поддерживающие спецификацию CGI, можно писать на различных языках программирования, в том числе С, С++ и PERL. Они могут обращаться к реляционным БД, считывать и выводить данные, собирать информацию с других компьютеров и исполнять многие другие функции. Множество CGI-программ самого различного назначения бесплатно распространяются по Internet. По мнению аналитиков, принципиальные ограничения на функциональные возможности CGI-совместимых продуктов отсутствуют. Эти программы могут взаимодействовать практически с любой реляционной базой данных и Web-сервером. Однако CGI-продукты имеют один существенный недостаток: не поддерживают непрерывную связь между БД и Web-сервером. Они подключаются к базе данных, исполняют запрос пользователя Web-страницы, а затем отключаются от БД. При следующем запросе весь процесс подключения к БД повторяется.

На сленге Web-мастеров любая внешняя программа, запускаемая Web-сервером в соответствии со спецификациями CGI, называется CGI-скриптом. CGI-скрипт может быть написан на языке программирования (С, С++, Паскаль и т.д.) или на командном языке (языки семейства shell, perl и т. д.). CGI-скрипт, выполняющий роль посредника между Web-сервером и другими видами серверов (например, сервером баз данных), называется шлюзом (видимо, более правильно было бы использовать термин CGI-шлюз). Наличие CGI-скриптов на стороне Web-сервера позволяет, в частности, перенести часть логики приложения из клиента на сервер. CGI-шлюзы представляют собой средство для организации трехзвенной (в общем случае, многозвенной) архитектуры клиент-сервер.

В спецификациях CGI предусмотрены четыре способа взаимодействия Web-сервера и CGI-скрипта (по крайней мере, в среде ОС Unix). Первый способ состоит в использовании создаваемых сервером переменных окружения, через которые передается как общая информация, независящая от функциональных особенностей CGI-скрипта (например, имя и версия Web-сервера), так и специфические данные, определяющие поведение CGI-скрипта (скажем набор значений, введенных в форму на стороне клиента). Второй способ заключается в формировании параметров argc и argv, которые передаются функции mainCGI-скрипта (как если бы CGI-скрипт вызывался командной строкой в интерактивном режиме). Этот способ применяется для реализации ограниченного класса запросов ISINDEX. Наконец, входные параметры могут передаваться CGI-скрипту через файл стандартного ввода, а CGI-скрипт может передавать Web-серверу результирующие данные через файл стандартного вывода.



Содержание раздела