KnigaRead.com/
KnigaRead.com » Компьютеры и Интернет » Интернет » Владимир Вуль - Электронные издания

Владимир Вуль - Электронные издания

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Владимир Вуль, "Электронные издания" бесплатно, без регистрации.
Перейти на страницу:

Технология IDC/HTX предусматривает следующую последовательность действий (рис. 10.9):

1. Активизацию пользователем в просматриваемом документе гиперссылки, указывающей на файл запроса.

2. Извлечение Web-сервером файла запроса из папки Scripts.

3. Получение из динамической библиотеки httpodbc.dll процедур, извлекающих из файла запроса имя источника внешних данных.

4. Активизацию и запуск в соответствии с источником данных нужного драйвера ODBC.

5. Соединение драйвера с базой данных и организация им выполнения запроса на языке SQL, а затем – возврат полученных результатов выбранной из библиотеки httpodbc.dll процедуре.

6. Извлечение процедурой библиотеки из файла запроса имени файла шаблона и формирование ею в соответствии с шаблоном HTML-файла.

7. Передачу этого файла Web-серверу и отсылку его пользователю.

Технология извлечения данных из удаленной БД, называемая ASP (Active Server Pages, или страницы активного сервера), отличается от IDC/HTX тем, что вместо простейшего алгоритма подстановки данных в поля шаблона используются специальные процедуры, содержащиеся в файле ASP и написанные на языке VBScript (возможно использование и JavaScript). VBScript представляет собой диалект языка Visual Basic, предназначенный для написания интерпретируемых процедур. Процедуры могут выполняться как на стороне пользователя, с помощью встроенного в браузер интерпретатора, так и на серверной стороне, где также должен быть интерпретатор, встроенный в Web-сервер или работающий совместно с ним. Файл ASP, хранимый в определенной папке на серверной стороне, содержит описание запроса к базе данных на языке SQL, описание шаблона для извлекаемых из базы данных и вложенные в это описание фрагменты на языке VBScript. Получив посредством гиперссылки запрос на ASP-файл, Web-сервер пересылает SQL-запрос СУБД, получает результат и выполняет над ним все процедуры VBScript, вложенные в текст шаблона. Таким образом, в этом случае (как и в предыдущем) никакой предварительной обработки запроса не производится, а все операции форматирования ответа должны быть заранее написаны в форме процедур VBScript. Технология разработана для работы преимущественно с СУБД фирмы Microsoft. Ее достоинства, возможно, проявятся в сложных информационных системах с архитектурой клиент-сервер при условии написания всех необходимых процедур на одном из языков программирования. В целом технологии IDC/HTX и ASP достаточно сложны в реализации и требуют использования определенных вычислительных ресурсов сервера.

Рис. 10.9. Последовательность взаимодействия пользователя с удаленной базой данных в рамках технологии IDC/HTX

Аббревиатура CGI (Common Gateway Interface) означает ту часть Webсервера, которая может взаимодействовать с другими программами, выполняющимися на том же узле. CGI обеспечивает обмен данными между webсервером и программным модулем, который обрабатывает информацию, пришедшую Web-серверу от клиента. В этом смысле CGI является шлюзом для передачи клиентских данных программам их обработки. Таким образом, CGI – это программная среда, включающая в себя набор определенных переменных и протоколы взаимодействия с другими программами, функционирующими на Web-узле, например, с СУБД.

Одно из самых главных достоинств CGI – то, что этот интерфейс не накладывает никаких ограничений ни на язык программирования, на котором пишется программный модуль, выполняющийся на сервере, ни на операционную систему, под управлением которой работает Web-сервер. Так, модулем может быть как обычный исполняемый файл, написанный на языке программирования компилирующего типа, таком как C/C++ или Pascal, так и скрипт (script), написанный на языке командного интерпретатора UNIXсистем (например, bash или csh). CGI-технологии, как правило, используются в сочетании с наиболее распространенным Web-сервером Apache, обычно работающим под управлением операционной системы семейства UNIX (например, Linux). В качестве языка, на котором пишутся модули, исполняемые на сервере, и в особенности такие, которые организуют взаимодействие Web-сервера с какой-либо СУБД, большинство разработчиков использует язык Perl. В первую очередь хочется отметить, что использование языка Perl не снижает переносимость разработанного с использованием программного обеспечения интерфейса CGI. Так же, как интерфейс CGI поддерживают все "уважающие себя" Web-серверы, интерпретаторы языка Perl написаны для всех операционных систем и платформ. Очень важно также и то, что для языка Perl написан замечательный модуль CGI.pm (автор – Линкольн Штейн), с помощью которого довольно просто писать CGI-скрипты. Этот модуль предоставляет удобный интерфейс разработчику CGI-приложений, беря на себя всю черновую работу по реализации взаимодействия при помощи CGI-интерфейса. Остается добавить, что в последних версиях языка Perl этот модуль входит в стандартный комплект поставки.

Это наиболее существенные аргументы, так сказать, общего характера. Есть еще две серьезные причины отдать предпочтение CGI/Perl в случае написания приложения для Web-сервера, обеспечивающего именно взаимодействие с СУБД.

Первая из них – наличие модулей языка Perl для обеспечения взаимодействия со всеми распространенными СУБД: Ingres, Oracle, Informix, Interbase, Postgres, SyBase. Есть даже модуль для MS Excel. Нельзя не упомянуть и очень разумную внутреннюю организацию этих модулей, позволяющую максимально унифицировать интерфейс доступа к различным СУБД. Собственно, чтобы подсоединиться к какой-либо СУБД, вам надо установить два модуля: DBI.pm, обеспечивающий абстрактный интерфейс с СУБД, и собственно драйвер для взаимодействия с ней (например, DBD-Oracle.pm, если вы хотите работать с СУБД Oracle [38]). Преимущество такого подхода одно, но более чем значимое – универсальность и переносимость. Так, если вы писали в рамках стандарта языка SQL, не используя не стандартизованные расширения, а базу данных по неизвестным причинам решили перенести, скажем, под Informix, то в вашем CGI-скрипте, работающем с базой данных, достаточно будет поменять всего лишь одну строчку кода – подключение к драйверу взаимодействия с СУБД. В нашем случае (Informix вместо Oracle) надо заменить строчку

DBI->connect('dbi:Oracle:имябазы, …);

на

DBI->connect('dbi:Informix:имябазы, …);

Наконец, язык Perl обладает весьма гибкими и мощными средствами обработки текстовой информации, в том числе при помощи разветвленной системы регулярных выражений. Возможности языка Perl в обработке текстов, поиске и замене по шаблонам с помощью регулярных выражений позволяют проводить предварительную обработку данных практически любой сложности. А обработка данных перед занесением их в БД, их упорядочение и проверка целостности – важнейший этап взаимодействия пользователя с СУБД, и то, что эту задачу берет на себя CGI-скрипт, существенно улучшает и ускоряет работу СУБД и позволяет ей оптимально размещать и хранить данные. Серьезную помощь язык Perl может оказать и при реализации поиска в БД, позволяя данные, вводимые пользователем в удобном ему формате, преобразовывать в форму, удобную для "восприятия" СУБД, и тем самым предварительно оптимизируя поиск. Таким образом, язык Perl является едва ли не идеальным языком для реализации скриптов, т. е. "прослоек" между пользователем и большим программным продуктом с нетривиальным интерфейсом, коими являются практически все системы управления базами данных.

Однако, вернемся к основной теме этого раздела. Проектирование сетевой электронной библиотеки, как представляется автору, следует начать с создания информационного хранилища электронных изданий с качественной системой их поиска и извлечения. Функции хранения и извлечения учебных пособий, по нашему мнению, следует отделить от поисковой системы, т. е. структура хранилища должна быть двухуровневой (рис. 10.10):

✓ На нижнем уровне осуществляется хранение учебных пособий в электронном виде. Структурно хранение пособий осуществляется в виде гипертекстовой базы данных или же в форме иерархической файловой системы. Второй вариант автору представляется предпочтительным по причинам, которые будут изложены далее.

✓ На верхнем уровне проектируется атрибутивная база данных, в качестве атрибутов в которой используются фамилии преподавателей, названия учебных курсов, названия и шифры специальностей, конкретный вид учебного пособия, год издания, а также год и месяц его обновления и пр. Дополнительно к этому организуется хранение ключевых слов, характеризующих каждое пособие.

Методика и технология выбора (извлечения) ключевых слов и организация поиска по ключевым словам составляет то ноу-хау, которое отличает предложенный автором вариант организации электронной библиотеки. Результат поиска в этой базе данных представляется в виде списка пособий с миниатюрами (в простейшем случае они представляют собой уменьшенную фотографию электронной обложки или титула издания). Из этого списка читатель выбирает нужное издание и, при наличии соответствующих прав доступа, издание извлекается с нижнего уровня и передается на рабочее место пользователя.

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*