Microsoft SQL Server и активный Internet
А. Шуленин, Microsoft
1. Обзор основных способов доступа
Правилом хорошего тона при написании статей, прямо
или косвенно затрагивающих тему Сети, стало введение, содержащее
философский анализ природы данного общественного явления и причин
столь взрывного роста его популярности. В силу априори ограниченного
объема пространства и времени мы позволим себе отступить от этого
правила и перейдем сразу к более прозаическим вопросам практики
создания Internet/Intranet приложений для работы с Microsoft SQL
Server.
Internet действительно неожиданно бурно ворвался
в устоявшуюся жизнь разработчиков клиент-серверных приложений.
Однако первоначальный шок довольно быстро прошел, как только наступило
осознание нехитрого в общем-то факта, что структура Интернет/интранет
приложений имеет много общего с традиционной платформой "клиент-сервер".
Правильнее говоря, World Wide Web также основывается на клиент-серверной
архитектуре. В самом деле, Web-браузер является типичным клиентским
front-end'ом, основное отличие которого от клиентских мест, построенных
с помощью Visual C++, Visual Basic, Visual FoxPro и других средств
разработки, состоит в более гибко настраиваемой функциональности,
которая может определяться даже во время выполнения программы.
При этом не требуется ни перекомпиляции, ни переустановки модулей,
что уже само по себе является нетривиальной задачей в больших
и сложных клиент-серверных системах масштаба корпорации. Правда,
первоначально браузеры использовались только как средства форматирования
статического текста. Однако активно развивающийся в Internet бизнес
вскоре перестал довольствоваться простой публикацией рекламы предприятия
и справочной информации о его деятельности. Например, клиент имел
полное право хотеть выбрать из рекламного проспекта фирмы понравившиеся
ему образцы и совершить покупку. Подобно типичному интерфейсу
клиентского приложения на VB, VFP и т.д., сценарий работы предполагал
заполнение клиентом некоторой формы, населенной, вообще говоря,
различными элементами управления, отправку соответствующего запроса
на сервер и прием результатов обработки. Таким образом, требования
бизнеса выдвинули на первый план принципы динамического взаимодействия
браузера и Web-сервера внутри сессии, что заставило задуматься
как об активной роли браузера, так и о расширении функциональности
сервера по сравнению с простым хранением и пересылкой HTML-документов.
Первым способом повышения активности Web-страниц
стали приложения Common Gateway Interface (CGI), поскольку спецификация
CGI позволяет браузеру вызвать тот или иной исполняемый модуль
или скрипт на Web-сервере, который мог обратиться с запросом к
базе данных, построить в HTML-кодах страницу результатов и передать
ее обратно Web-серверу, который же, в свою очередь, отсылал результаты
браузеру. CGI-приложения могут содержать вызовы других программных
(написанных, например, на С++) или командных (.bat, .cmd) файлов.
С помощью CGI-cкриптов, а точнее на языке PERL (Practical Extraction
and Reporting Language), построено немало интерактивных Web-приложений.
К сожалению, каждый такой скрипт исполняется как иной, нежели
Web-сервер, процесс, что быстро "съедает" ресурсы даже
достаточно "навороченной" по сегодняшним меркам машины,
особенно при большом количестве заходов на сервер.
Помимо исполнения CGI-скриптов, Microsoft Internet
Information Server (MS IIS) предоставляет разработчикам возможность
создания с помощью соответствующего API (ISAPI) приложений в виде
dll, запуск которых происходит в ответ на команду или выбор линка
на Web-странице. Каждое такое приложение выполняется в адресном
пространстве Web-сервера, что, естественно, повышает скорость
работы и существенно экономит машинные ресурсы. В зависимости
от сложности сайта и приложений, dll могут быть предзагружены
одновременно с запуском сервера, либо подгружаться/выгружаться
из памяти по мере необходимости.
Целью настоящей статьи является рассказ о способах
построения активных Web-страниц и средствах их взаимодействия
с Microsoft SQL Server. К наиболее известным средствам разработки
приложений на основе ISAPI относятся входящий в состав MS IIS
Internet Database Connector (IDC), а также свободно распространяемый
dbWeb. Кроме этого, мы рассмотрим простую, но достаточно мощную
утилиту в составе самого MS SQL Server 6.5 под названием SQL Web
Assistant. В завершение мы поговорим о развитии стратегии распределенных
вычислений, компонентном подходе к созданию распределенных приложений
и о концепции активных серверных страниц как наглядной реализации
компонент доступа к MS SQL Server через Интернет/интранет. Позиционирование
этих средств по шкале "сложность/функциональность" приводится
на рис.1.
Рис.1