Связь веб-клиента с субд по api (Application Programming Interface)
02.07.2012
|
Автор:
admin
1) Общие сведения об api
API (Application Programming Interface) – это расширение Web-сервера запускается как многопоточная динамическая библиотека (DLL), выполняющее обработку каждого вызова сервера в обычном процессе Web-сервера, что значительно проще, чем создание отдельного процесса для каждого клиентского запроса.
Наиболее известны два API: NSAPI (NewScape API) от компании NetScape для своего Web-сервера Enterprise Server и ISAPI (Internet Server API) от компании Microsoft для своего сервера IIS. Фактически IIS предоставляет три возможных процесса для выполнения приложения с разной степенью защиты.
Рис.
Структурная схема взаимодействия
WEB-клиент с CУБД по API
Рис.
Подробное взаимодействия WEB-клиент с
CУБД по API
2) Механизм обмена данными
Обращаются к библиотеке также, как и к CGI, т.е. из форм или ссылок, созданных при помощи тэгов <FORM> и <A>. Однако, вместо чтения данных из переменных окружения, расширение ISAPI получает данные с помощью функции HttpExtensionProc, возвращающей указатель на структуру типа EXTENSION_CONTROL_BLOCK, включающую такие поля как: cbSize, IpszMethod (передает метод GET или POST), IpszQueryString, IpszPathInfo, WriteClient, ServerSupportFunction, ReadClient, GetServerVarizble и ряд других.
С помощью полей GetServerVariable и ReadClient передаются адреса одноименных функций, специально предназначенных для получения данных от браузера клиента. Для отправки ответа клиенту используются функции WriteClient, ServerSupportFunction, формирующие и передающие ответ серверу через структуру EXTENSION_CONTROL_BLOCK.
3) Достоинства api
• Клиенты, работающие через API, соединяются с сервером БД значительно быстрее, чем CGI-скрипты, так как API, являясь динамической библиотекой, после первого обращения постоянно находится в памяти, что ускоряет повторные вызовы.
• API-интерфейсы предоставляют большую функциональность, чем CGI, – можно написать дополнительные процедуры, осуществляющие контроль доступа к файлам, а также доступ к самому Web-серверу.
• IIS позволяет выделять отдельный поток из своего потокового пула для работы библиотеки, ибо в общем пуле все потоки пула могут быть заняты, и запрос к библиотеке будет отвергнут.
4) Недостатки api
• Языковая зависимость, поскольку прикладные программы должны быть написаны на языках, поддерживаемых в данном API (обычно, это С), хотя существуют версии и на других языках, включая Delphi.
• Неизолированность процесса, поскольку библиотека выполняется в адресном пространстве сервера, и ошибочные программы могут «уронить» сервер или какое-либо приложение.
• Ограниченность применения, поскольку написанные в соответствии с тем или иным API программы могут использоваться только на соответствующем Web-сервере.
• Архитектурная зависимость, поскольку API-приложения зависимы от архитектуры сервера.
• Если библиотека уже запущена, то необходимо остановить сервер для ее замены. На время отладки можно изменить значение ключа реестра для запрета кэширования библиотеки: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters\CachelExtention на 0.
