Интерфейс Internet Server Application Program Interface (ISAPI) предназначен для программирования приложения (API) информационных служб интернета (IIS). ISAPI состоит из классов поддержки и структур, участвующих в программной эксплуатации IIS. Веб-приложения, использующие ISAPI для взаимодействия с IIS, реализуют это взаимодействие на веб-сервере Windows наиболее эффективным образом. При работе с ISAPI уровень программного обеспечения поддержки или интерфейсов между IIS и веб-приложением сильно снижается. Все программное обеспечение веб-приложений Microsoft прямо или косвенно использует технологию ISAPI. Технологии Microsoft Application Server Pages (ASP) и .NET Framework построены как приложения ISAPI.
Изначально ISAPI распространялся среди разработчиков CGI как альтернатива программам CGI или как обновление исполняемого файла CGI. Многие исполняемые файлы CGI написаны на C++ или C, поэтому интеграция существующего веб-приложения CGI не очень сложна. Преобразование веб-приложения CGI для использования ISAPI увеличивает производительность веб-приложения. CGI при каждом HTTP-запросе создает новый процесс, что занимает много ресурсов несущего сервера. Расширения ISAPI загружаются в пространство процесса IIS, поэтому узлу не нужно создавать новый процесс при каждом HTTP-запросе. Поскольку Windows загружает динамически подключаемую библиотеку в пространство памяти один раз при первом вызове функции в DLL и хранит ее там неопределенный промежуток времени, расширение ISAPI остается загруженным и не удаляется, до тех пор пока сервер IIS не будет выключен или не будет выгружен экземпляр или виртуальная память. Таким образом, компания Microsoft дает программистам основание использовать ISAPI вместо CGI и легко обновлять ПО, созданное при помощи CGI.
ISAPI рекомендуется для программистов, создающих (или уже создавших) приложение на языке C++, предназначенное для продажи на рынке ПО. Если важным фактором является производительность, и на разработку выделяется больше времени, чем на создание обычного сценария для интернета, рассмотрите вариант использования ISAPI. Кроме всего прочего, ISAPI выполняет на несущем узле некоторые задачи, которые нельзя выполнить при помощи других технологий. Программное обеспечение ISAPI создано таким образом, что при его выполнении другие веб-приложения, написанные на языках сценариев с использованием других расширений ISAPI (например, .NET Framework или ASP.DLL), не рассматривают задачи, выполняемые расширением ISAPI.
К недостаткам рассматриваемой технологии относится сложность ISAPI в работе и в отладке. Отладка кода в интегрированной среде разработки (Integrated Design Environment, IDE) Visual Studio .NET довольно сложна, и, поскольку IIS представляет собой процесс с несколькими нитями, результаты отладки могут быть непредсказуемыми. Малейшая ошибка в приложении ISAPI катастрофически сказывается на производительности IIS. По сравнению со другими средами разработки ISAPI весьма чувствительна к ошибкам при построении веб-приложения.
Кроме всего прочего, код ISAPI создается с помощью неконтролируемого кода C++. Новые возможности, предлагаемые Visual Studio .NET для управляемого кода C++ в технологии .NET Framework, нельзя использовать в проекте ISAPI.
Примечание. Если программа создается с помощью контролируемого кода, то в этом случае реализуется технология.NET Framework. Эта технология используется языками C# и Visual Basic. Термин "контролируемый" означает, что технология .NET Framework контролирует очистку памяти, отведение памяти и другие процессы управления ресурсами низкого уровня. Программа на C++ не сможет работать с технологией .NET Framework, если не применяются Managed Extensions (Контролируемые расширения) для C++. Контролируемый C++ означает использование технологии .NET Framework и контролируемых расширений C++. Код C++, созданный без использования контролируемых расширений C++, является неконтролируемым кодом C++.
Обзор архитектуры ISAPI
Приложения ISAPI представляют собой библиотеки DLL, напрямую взаимодействующие с IIS API. Программное обеспечение ISAPI – это расширение или фильтр. Расширения ISAPI являются библиотеками DLL, вызываемыми посредством квалифицированного запроса в IIS. Фильтры ISAPI вызываются независимо от других запросов IIS. Запросы HTTP передаются напрямую расширению ISAPI с помощью ссылки URL или данных, отправляемых из формы HTML. Расширение ISAPI может вызываться косвенно посредством связывания файла с определенным расширением ISAPI в IIS. При установке связей файлов выполняются действия, аналогичные ассоциированию файлов ответа сервера (SRF) с конкретным расширением ISAPI в ATL Server (см. лекцию 4). Можно настроить реагирование фильтров ISAPI на запросы согласно приоритету; это отличает их от других фильтров, загружаемых в IIS. Фильтры используются в специализированных приложениях, связанных с IIS, и обычно выполняют следующие задачи:
шифрование;
ведение журналов;
аутентификация;
сжатие данных.
Расширения ISAPI – наиболее частый способ применения ISAPI. Фильтры ISAPI довольно сложны в создании, и сфера их использования ограничена. Данная тема выходит за рамки книги и рассматриваться не будет.
ISAPI и NSAPI
Ведущие поставщики, такие как Netscape, BorlandInternational, Microsoft и Sun, устраняют недостатки, присущие спецификации CGI, используя вместо нее собственные API-интерфейсы. Netscape предлагае
Наверняка у вас есть товары или услуги, продажа которых приносит вам максимальную прибыль. Для быстрого старта в сети вам необходимо создание посадочной страницы (одностраничного сайта), на которой будет размещена информация о маржинальных товарах/услугах интернет магазина. За 8 лет опыта разработки конверсионных страниц мы выработали оптимальную структуру, которая позволит привлекать через landing page больше продаж. На такую структуру «одевается» ваш контент — фирменный стиль, тексты, фотографии, уникальные торговые предложения, после чего страница выходит в свет. Разработка лендинга и запуск в сети — до 7 рабочих дней. Стоит отметить, что в разработку самой посадочной страницы входит и написание копирайтером продающих текстов для вашего бизнеса, чтобы каждый посетитель страницы захотел совершить покупку именно у вас. Результат: качественно разработаная продающая посадочная страница, которая готова приносить вам новых клиентов.