Глава 7. Использование пакета Web - Oracle -Web (WOW)Евгений Фаддеенков
7.1 Введение 7.3 Состав 7.4 Установка 7.5 Использование 7.6 Спецификация процедур пакета htp 7.1 ВведениеВ данной главе отчета описывается свободно - распространяемое программное обеспечение - пакет WOW. Для освоения этого материала необходимо знание языка SQL и его процедурного расширения PL/SQL от фирмы Oracle. Кроме этого необходимо знание основ администрирования сервера Oracle. Информацию по PL/SQL Вы можете получить из документации по серверу Oracle, книга "PL/SQL Users Guide and Reference". Информацию об основах администрирования сервера Oracle можно получить из этой же документации, книга "Oracle7 Server Administration Guide". Пакет WOW предназначен для использования под ОС Unix. 7.2 Назначение и схема работыПакет WOW предназначен для обработки запросов от WWW - сервера (Web -) к SQL - серверу Oracle (-Oracle-) с генерацией динамических HTML - документов (-Web). Разработчик приложений, использующий WOW оперирует только с родным языком Oracle - PL/SQL, являющимся процедурным расширением языка SQL. Это обуславливает высокую эффективность разработки приложений. Обработка созданных приложений непосредственно в сервере Oracle определяет высокую скорость исполнения приложений. Основная идея пакета WOW - преобразование запроса к WWW - серверу в вызов определенной процедуры PL/SQL. В качестве параметров процедуры, используются данные из запроса к WWW - серверу. Кроме этого, язык PL/SQL дополняется функциями вывода различных данных в формате HTML. Сфера технологических решений пакета приведена на рис. 7-1.
7.3 СоставСтруктурно, WOW состоит из ряда исполняемых программ, соответствующих спецификации CGI и набора пакетов PL/SQL (см. рис. 7-2).
Пакет htp содержит процедуры и функции, облегчающие формирование HTML - документа. Пакет htf содержит описание различных констант и функций, используемых при формировании HTML - документов. 7.4 УстановкаДля корректной работы пакета необходимо правильно провести процедуру установки. Пакет WOW требует около 2Mb дискового пространства. На базовом сервере должны быть установлены:
Этап IВ случае, когда пакет поставляется в виде исходных текстов, необходимо произвести компиляцию и сборку исполняемого модуля wowstub. При сборке wowstub необходимо использовать библиотеки установленного сервера Oracle или сетевого стека SQL*Net. Компиляция и сборка производится утилитой make на основании данных файла Makefile. Вам необходимо изменить ряд параметров Makefile для настройки на Вашу конфигурацию Oracle и Unix:
Этап IIНезависимо от сборки wowstub, необходимо создать ряд структур данных в БД Oracle.
Этап IIIНеобходимо поместить модуль wowstub в каталог CGI программ Вашего WWW сервера. Необходимо переопределить ряд параметров файла wow, представляющего собой скрипт sh:
В случае если Вы используете версию от ЦНИТ НГУ, необходимо отредактировать все 4 файла: wow.win, wow.iso, wow.alt, wow.koi8. Отредактированный файл wow (все 4 отредактированных файлы при использовании версии от ЦНИТ НГУ) необходимо поместить в каталог для CGI - программ Вашего WWW сервера. 7.5 ИспользованиеРассмотрим простейший пример с использованием пакета WOW. При обращении к WWW - серверу www.cnit.nsu.ru по URL: http://www.cnit.nsu.ru/cgi-bin/wow.win/example.test?answer=no происходит следующая цепочка действий (см. рис. 7-3):
URL, обращающийся к процедуре PL/SQL должен быть построен по определенным правилам и содержать ряд элементов:
Например:
http://www.cnit.nsu.ru/cgi-bin/wow.win/test Если процедура входит в состав пакета (example), созданного в схеме www, необходимо добавить имя пакета и имя процедуры: http://www.cnit.nsu.ru/cgi-bin/wow.win/example.test Когда пакет создан в другой схеме Oracle, необходимо указывать и имя схемы. Например, для схемы fancy получим: http://www.cnit.nsu.ru/cgi-bin/wow.win/fancy.example.test Пользователь www должен иметь права на исполнение этой процедуры, явно предоставленные оператором GRANT языка SQL.
<название_параметра> = <значение_параметра> между собой, различные параметры разделяются амперсандом '&': <название_параметра1>=<значение_параметра1>&<название_параметра2>= <значение_параметра2> Название параметра должно совпадать с названием параметра вызываемой процедуры. Число параметров должно в точности соответствовать числу параметров процедуры. Если хотя бы одно из этих требований не соблюдено, Вы получите сообщение об ошибке. Порядок указания параметров значения не имеет. Большие и маленькие буквы в названии параметров равнозначны. Число реально передаваемых параметров может и не совпадать с числом параметров, указанных в спецификации процедуры. В этом случае, все опускаемые параметры должны иметь значения по умолчанию.
Пример:
Исходя из описанного механизма работы пакета WOW можно сформулировать основные требования к PL/SQL - процедурам, обрабатывающим запросы от WWW - сервера.
Пример пакета example:
При этом подразумевается что в схеме WWW Oracle находится таблица примерно следующей структуры:
Create table Результаты_опроса(Фамилия
varchar2(30),
Обращаться к пакету WOW можно и из форм HTML. Ниже приведен пример обращения к тому же пакету example из простейшей формы.
<HTML>
|
7.6 Спецификация процедур пакета htp
|