Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Что такое API.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
162.37 Кб
Скачать

Связь веб-клиента с субд по 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.