Architecture Net

       

Архитектура приложения, использующего ATL server


Как и динамически подключаемые библиотеки (DLL) традиционных расширений интерфейса прикладного программирования Internet-сервера (ISAPI), динамически подключаемые библиотеки (DLL) расширений интерфейса прикладного программирования Internet-сервера (ISAPI) на основе библиотеки шаблонных классов ATL экспортируют функции GetExtensionVersion (получить версию расширения), HttpExtension-Proc (процедура HTTP-расширения) и TerminateExtension (завершить расширение). Кроме того, следуя традиционной манере, информационный сервер Internet (IIS) создает для каждого HTTP-запроса структуру EXTENSION_CONTROL_BLOCK (управляющий блок расширения). Она в качестве параметра передается в HttpExtensionProc. Эта структура обеспечивает доступ как к информации HTTP-заголовка, так и к потокам данных. Доступ к тому и другому нужен для поддержки связи с HTTP-клиентом.


Главной точкой входа для расширения интерфейса прикладного программирования Internet-сервера (ISAPI) является функция HttpExtensionProc. Она автоматически вызывается информационным сервером Internet (П5), если нужно обработать HTTP-запрос, который предназначен для расширения интерфейса прикладного программирования Internet-сервера (ISAPI) (ISAPI Extension). Для чтения клиентских данных и соответствующего реагирования HttpExtensionProc использует функции обратного вызова, предоставляемые параметром EXTENSION_CONTROL_BLOCK. На рис. 12.1 показана общая схема использования интерфейса прикладного программирования Internet-сервера (ISAPI) в Web-приложении, основанном на ATL Server.

Архитектура приложения, использующего ATL server


Рис. 12.1. Архитектура приложения, основанного на ATL Server

На рис. 12.1 показана только одна динамически подключаемая библиотека (DLL) расширения интерфейса прикладного программирования Internet-сервера (ISAPI). Это сделано потому, что в каждом виртуальном каталоге-информационного сервера Internet (IIS) может быть только одна такая библиотека. Еще ла рисунке видно, что в виртуальном каталоге может быть несколько динамически подключаемых библиотек (DLL) Web-приложения и несколько . srf-файлов. И хотя код в динамически подключаемой библиотеке (DLL) расширения интерфейса прикладного программирования Internet-сервера (ISAPI) можно настраивать, все же это обычно делается в динамически подключаемых библиотеках (DLL) Web-приложений, потому что именно в этих библиотеках реализуются обработчики запросов.

CompEbook.ru Железо, дизайн, обучение и другие



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