с модулями расширения серверной части




Архитектура Web-приложений с модулями расширения сервера (рис. 19.3) мо­жет включать в себя стандартные модули расширения — DLL-библиотеки, реа­лизующие, например, технологии ASP, IDC/HTX, объекты ActiveX и пр. Кроме того, допускается подключение дополнительных модулей, разработанных с ис­пользованием интерфейсов CGI, ISAPI и др.

В этом случае в функции Web-сервера входят обработка запросов Web-обозревателей пользователей сети, вызов (загрузка) соответствующего модуля расширения сервера и передача ему параметров запроса. В результате обработки запроса модулями расширения сервера формируется Web-документ с использова­нием различных HTML-шаблонов. Готовый Web-документ Web-сервера отсылает­ся обратно Web-обозревателю в формате протокола HTTP.

Как отмечалось, различают пассивное и активное состояние Web-сервера. Так, Web-сервер находится в пассивном состоянии, если формируемый им документ содержит статическую информацию, т. е. на Web-странице отсутствуют средства ввода и обработки запросов к серверу.


512


Часть IV. Базы данных и Интернет


Если Web-документ динамически создается в ответ на запрос пользователя (рис. 19.3) или если в обозреватель загружены различные интерактивные визу­альные элементы управления, то сервер является активным. Для публикации БД интерес представляет активный Web-сервер, реализуемый с помощью модулей расширения.

Для создания модулей расширения Web-сервера используются интерфейсы CGI, WinCGI или API.

Интерфейс СС/является стандартным протоколом взаимодействия между Web-сервером и модулями расширения, которые могут применяться для выполнения дополнительных функций, не поддерживаемых сервером. Напомним, что ин­терфейсу CGI соответствуют обычные консольные приложения операционной системы DOS. Для написания CGI-программ подходит практически любой язык программирования, обеспечивающий доступ к переменным среды и ввод/вывод через стандартные потоки STDIN и STDOUT. В частности, для написания CGI-программ подходит среда Delphi.

Для запуска CGI-модуля обозреватель должен сформировать запрос к серверу с указанием адреса URL этого модуля. Это можно сделать следующими способами:

□ задать URL модуля CGI в адресной строке обозревателя;

□ послать серверу запрос на выполнение CGI-модуля путем выбора ссылки, атрибут href которой содержит адрес этого модуля;

□ нажать в форме кнопку типа Submit, у которой атрибут Action содержит URL-адрес CGI-модуля.


Глава 19. Web-приложения и интерфейсы


513


После передачи запроса обозревателя CGI-приложению сервер передает ему также данные из командной строки запроса. CGI-приложение формирует ответ и помещает его в выходной поток (на стандартном устройстве вывода), затем сервер посылает этот ответ с использованием протокола HTTP обратно обозре­вателю.

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

В некоторых операционных системах, в частности, в UNIX, могут повторно ис­пользоваться уже загруженные программные коды модуля CGI первого процесса с созданием для каждого нового обращения только своего экземпляра данных.

Интерфейс WinCGI (протокол) отличается от интерфейса CGI тем, что управ­ляющие параметры передаются через INI-файл, а входной и выходной потоки данных перенаправлены в специальные файлы. Этот интерфейс является реализа­цией интерфейса CGI для операционной системы Windows 3.1.

Более перспективными интерфейсами для разработки дополнительных модулей расширения Web-сервера являются интерфейсы ISAPI/NSAPI. При использова­нии этих интерфейсов модули расширения реализуются в виде библиотек DLL. Такой механизм обеспечивает экономию ресурсов сервера и увеличение скоро­сти обработки запросов.

Интерфейс ISAPI может применяться также для создания ISAPI-фильтров, ко­торые, в отличие от модулей ISAPI, используются для контроля всего потока данных между сервером и обозревателем на уровне протокола HTTP. ISAPI-фильтры можно применять для динамической перекодировки, шифрования, сбора статистической информации о работе сервера.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: