Персональный Web-сервер на базе Windows 95
В настоящее время web-сервера являются в Интернет наиболее распространенным инструментом для хранения и предоставления информации. Это могут быть тексты, графические изображения (фотографии, рисунки, графики, диаграммы), музыкальные отрывки, трехмерные сцены, различные бинарные файлы (например, программы или архивы), просто данные и многое другое. Следует отметить также, что все вышеуказанные части, как правило, объединяются на странице в Интернет в нечто большее, чем отдельные компоненты, образуя нечто среднее между газетой, книгой, справочным бюро. Следует отметить также, что указанные материалы относятся к разряду статических, то есть представленных на сервере в виде реально существующих файлов.
В некотором смысле альтернативой им являются так называемые динамические материалы, то есть некие данные, которые изначально в готовом виде нигде не представлены, но которые тем или иным программным способом формируются именно в тот момент, когда посетитель изъявляет желание их получить. Примером могут служить счетчики на первых страницах сайтов, отсчитывающие количество посетителей.
Соответственно, web-сервер представляет собой некий компьютер, работающий под управлением какой-либо операционной системы, способной поддерживать работу в сети. Это может быть Windows 95, Windows NT или, к примеру, различные версии UNIX. Основное требование – постоянное подключение к Интернет. Иными словами, данный компьютер в любой час дня и ночи должен быть доступен для посетителей, работающих в каком-либо месте Интернет и желающих получить информацию с данного сервера. Очевидно, что на роль Web-сервера не годятся компьютеры, не включенные в течении всего рабочего дня в локальную организации, если речь идет о предоставлении информации сотрудникам, или связывающиеся с Интернет по модему, если речь идет о предоставлении информации за пределами организации. (Решением последней проблемы является либо размещение web-сервера на территории провайдера, либо размещение самой информации на web-сервере каком-либо компании, специализирующейся на такого рода услугах, то есть создании представительств в Интернет).
Другим условием является наличие на этом компьютере специальной программы, которая постоянно ждет запросов из сети и способна автоматически высылать запрашиваемую информацию, не мешая выполнению других заданий на этом компьютере. Особенно это относится к работе программы на Windows 95. В стандартной конфигурации запросы на предоставление информации осуществляются по сетевому протоколу TCP/IP через порт 80. Следовательно, необходимым условием работы web-сервера является его подключение к сети, поддерживающей указанный протокол. К счастью, операционная система Windows 95 способна одновременно подерживать работу нескольких протоколов, например TCP/IP и IPX/SPX.
Стандартным сетевым протоколом работы с web-серверами является http, хотя в принципе получение информации возможно также по протоколам ftp, gopher и некоторым другим. Следует отметить, что указанные протоколы относятся к разряду открытых, то есть информация в них передается по сети в обычном виде. Хотя для большинства случаев этот вариант оказывается вполне приемлимым, бывают случаи, когда необходимо передавать информацию по Интернет таким образом, чтобы полностью исключить возможность ее получения посторонними лицами. Примером такой задачи может служить проведение по Интернет финансовых операций (оплата услуг, проверка счета и т.д.). В этом случае передача данных с web-сервера осуществляется с помощью специального протокола shttp, выполняющего помимо обычных операций еще шифрование информации при передаче ее в сеть и, соответственно, при получении.
Помимо указанной программы на нашем компьютере должен находиться некий набор файлов с теми материалами, которые будут предоставляться по пользователям. Большая часть их представляет собой обычный текст, дополненный специальными значками разметки (тэгами). Хотя существует множество различных языков разметки страниц для Интернет, наибольшее распространение получил язык HTML. Следует отметить, что последняя версия этого языка – 4.0 – довольно сложна и ее изучение займет много времени. К счастью, в нашем распоряжении имеется множество инструментов, позволяющих преобразовывать документы в формат HTML без необходимости осваивать этот язык в полном объеме. Самые простые из них – это процедуры преобразования в HTML, встроенные в программы MS Word, Excel, Access, Power Point. Среди инструментов для профессионалов следует выделить Front Page 98 компании Microsoft. В НИЦ ПЭУ есть коллектив профессионалов, в совершенстве владеющих указанными средствами. Хотя наличие текстов является необходимым условием работы web-сервера, этого недостаточно. Вторым важным условием является приведение представленных материалов к некому единому стандарту: обеспечение согласованности как по части оформления, так и по смыслу. Помимо прочего, это сводится к созданию специальных "титульных" страниц для каждого раздела и так называемой первой страницы сайта.
Далее для работы большинства современных web-серверов помимо простого набора файлов с текстами необходимо специальное программное обеспечение, обеспечивающее обслуживание специальных запросов читателей. Эти программ должны отличаться от тех, с которыми нам приходится сталкиваться ежедневно, двумя свойствами. Во-первых, эти программы должны выполняться сравнительно быстро и при этом в минимальной степени загружать компьютер и операционную системы. С другой стороны, необходимо иметь возможность с минимальными затратами разрабатывать эти программы, адаптировать их к тем или требованиям. В среде UNIX подобное программное обеспечение разрабатывается, как правило, на языке Perl, компиляторы для которого имеются практически на всех современных операционных системах. То есть, программа, составленная на этом языке, практически безо всяких переделок можно переносить на любой из ныне существующих Web-серверов. Единственное чисто формальное ограничение заключается в том, что такая программа должна удовлетворять определенным правилам - спецификации CGI (Common Gateway Protocol). Другой подход к решению проблемы демонстрирует компания Microsoft – разработанный ею персональный Web-сервер тесно интегрирован с операционной системой Windows95/NT, что позволяет для динамической компоновки страниц использовать практически любое программное обеспечение. В частности, одним из мощных современных средств системы Windows, пригодных для этой цели, являются механизм OLE и универсальные драйверы доступа к данным ODBC.
Механизм OLE (Object Load & Embedded) позволяет любой программе обращаться к любому типу данных, имеющихся на жестком диске персонального компьютера. В частности, не составляет большого труда при получении запроса от пользователя организовать извлечение любых данных из имеющихся документов в формате Word, Excel, Access или Power Point и тут же их них динамически сформировать HTML-страницу в необходимом формате. В действительности происходит следующее: для предоставления в сети (или в Интернет) данных из какой-либо имеющейся на жестком диске компьютера таблицы в формате Excel в соответствующем каталоге web-сервера устанавливается очень простая программа, в задачу которой сперва входит генерирование запроса операционной системе на получение необходимых данных, а затем формирование из этих данных необходимой страницы. Главная особенность этой программы состоит в том, что она "не знает" формата таблиц Excel, она даже "не знает" в какова версия Excel использовалась при создании этой таблицы. Операционная система, получив запрос на извлечение данных из указанной таблицы, не делает ничего иного, как просто вызывает имеющуюся у нее в распоряжении программу Excel и передает ей запрос на извлечение необходимых данных. Если запрос оформлен правильно, то программа Excel осуществляет обработку, не появляясь на экране, то есть практически не вмешиваясь в нормальный ход работы компьютера.
Механизм универсальных драйверов ODBC использует несколько иной принцип работы. В состав операционной системы Windows 95/NT входит набор библиотек, позволяющих производить обработку универсальных SQL-запросов к базам данных. Структура этих запросов будет рассмотрена подробно в следующем разделе. Сейчас нам важно отметить, что посредством ODBC-драйверов операционная система может представить в виде полноценной базы данных информацию, хранящуюся в текстах, файлах Excel, Access, dBase, FoxPro, Paradox, а кроме того транслировать полученные запросы на внешние SQL-сервера. Таким образом, опять же простая программа, помещенная в соответствующий каталог web-сервера, может обращаться непосредственно к операционной системе с SQL-запросом практически любой сложности. Операционная система в свою очередь не только извлекает указанные данные, но и может производить над ними указанные в SQL-запросе, порой довольно сложные манипуляции. Из полученных таким образом результатов затем точно так же, как и в случае с OLE, формируется HTML-страница.
Программа, реализующая описанное выше взаимодействие web-сервера с драйверами ODBC, называется Internet Database Connector (IDC). Программы, выполняющие обслуживание механизма IDC, помещены в программу httpdodbc.dll, входящую в состав поставки web-сервера. В общем случае в организации процесса взаимодействия с ODBC драйвером участвует три типа файлов: HTML, IDC и HTX.
Файл HTML представляет собой html-документ, который используется браузером клиента, чтобы сформировать запрос на получение необходимых данных. Фактически, происходит обращение к соответствующему файлу с расширением .idc, расположенному в соответствующем каталоге сервера.
Файл с расширением .idc представляет собой специальным образом отформатированный текст и в обязательном порядке содержит три вида информации: указатель на определенную базу данных, доступную через драйвер ODBC, так называемый файл шаблона, функции которого будут описаны чуть ниже, и наконец собственно SQL-запрос к указанной базе данных. В общем случае файл idc выглядит следующим образом:
Datasource: имя_источника_данных Template: имя_файла_htx SQLStatement: команда_sql [Password: необязательный_пароль] [Username: необязательное_имя_пользователя]
Указанный в idc файл с расширением .htx, как уже говорилось, представляет собой некий шаблон. В действительности он выполняет две функции: обрабатывает результаты запроса idc к базе данных или указанной процедуры. С другой стороны, производит форматирование этих результатов, объединяя в случае необходимости со статической разметкой HTML таким образом, чтобы их можно было послать на браузер читателя. Аббревиатура htx расшифровывается как "расширение HTML", и действительно содержимое этого файла представляет собой просто обычную полнофункциональную разметку HTML, дополненную такими элементами, как операторы цикла по результатом запроса, логика if/then/else и возможность работать с переменными. Помимо этого здесь содержатся специальные указатели, поясняющие, где именно размещать данные, получаемые от Впрочем разборка всех этих "расширений" осуществляется самим сервером и к читателю уходят данные, отформатированные обычными командами HTML.
Извлечение данных из базы данных происходит следующим образом: