Разработка PL/SQL WEB-приложений
Разработка PL/SQL WEB-приложений
Статья написана на основе официальной документации фирмы Oracle.
Oracle® Database Advanced Application Developer's Guide
11g Release 1 (11.1)
Part Number B28424-02
v:1.0 2007.10.16
Обзор PL/SQL Web-приложений.
Обычно, Web-приложение это набор хранимых PL/SQL процедур, которые взаимодействуют с Web-бразузерами через протокол HTTP. Обработка потока PL/SQL Web-приложения похожа на обработку CGI PERL скрипта. Разработчики часто используют CGI скрипты для создания динамических страниц, однако в большинстве случаев такие скрипты не оптимально работают с базой данных Oracle. Технология PL/SQL приложений предоставляет эффективный и гибкий механизм работы с данными. Например, Вы можете использовать DML, динамический SQL, и курсоры.
-
Рисунок иллюстрирует следующие шаги:
- Пользователь открывает Web-страницу, следуя гиперссылке, или вводит данные в форму. Обрабатывая эти действия, браузер отправляет HTTP запрос серверу. Запрос содержит требуемый URL.
- В соответствии с полученным URL, HTTP-сервер вызывает хранимую в базе данных процедуру. Данные из формы передаются в процедуру.
- Хранимая процедура запускает подпрограмму из PL/SQL Web Toolkit. Обычно, подпрограммы, такие как HTP.Print, генерируют Web-страницы динамически. Генерация страницы зависит от данных базы данных и входных параметров.
- Подпрограммы передают динамическую страницу Web-серверу.
- Web-сервер передает страницу клиенту.
Реализация PL/SQL Web-приложений
-
Web-приложение может быть полностью написано на PL/SQL с использованием следующих компонентов базы данных Oracle:
- PL/SQL Gateway
- PL/SQL Web Toolkit
PL/SQL Gateway
PL/SQL Gateway обеспечивает возможность браузера выполнять хранимые процедуры, используя HTTP listener (прослушиватель). Gateway - это платформа,
на которой разработчик создает и развертывает приложение.
mod_plsql
mod_plsql - это реализация PL/SQL gateway. Этот модуль является плагином (plug-in) для Oracle HTTP Server и позволяет Web-браузерам вызывать хранимые
процедуры PL/SQL. Oracle HTTP Server входит в состав Oracle Application Server и Oracle database.
Модуль mod_plsql позволяет использовать процедуры на PL/SQL для обработки HTTP -запросов и генерации ответов. В этом контексте HTTP-запрос это URL, который содержит значение параметра, который должен быть передан процедуре. PL/SQL Gateway передает процедуре параметр из URL и возвращает клиенту полученный от процедуры ответ (чаще всего HTML).
-
Некоторые преимущества использования mod_plsql в сравнении с embedded (встроенным) PL/SQL gateway.
- Вы можете использовать mod_plsql в следующей системе: Oracle HTTP Server и Oracle database запущены на разных хостах, разделенных брандмауэрами (firewall). В случае embedded PL/SQL gateway такая конфигурация не возможна.
- Embedded PL/SQL gateway не поддерживает некоторые возможности mod_plsql, например, кэширование динамического HTML, системный мониторинг и логирование в Common Log Format.
Embedded PL/SQL Gateway
Вы можете использовать встроенную версию PL/SQL gateway. Embedded PL/SQL gateway работает с XML DB HTTP Listener в Oracle Database, предоставляет
основные возможности mod_plsql и не требует наличия Oracle HTTP сервера. Embedded PL/SQL gateway конфигурируется в пакедже DBMS_EPG, который входит в
состав PL/SQL Web Toolkit.
- Некоторые преимущества использования embedded gateway в сравнении с mod_plsql.
- Вы можете использовать PL/SQL Web приложения, например, Application Express, без установки сервера Oracle HTTP, таким образом упрощается инсталляция, конфигурирование и использование PL/SQL Web-приложений.
- Вы используете тот же подход конфигурирования, что и при передаче ответа Oracle XML DB на FTP или HTTP-запрос.
PL/SQL Web Toolkit
PL/SQL Web Toolkit - это интерфейс, который позволяет выполнять хранимые PL/SQL процедуры, используя mod_plsql.
В ответ на запрос браузера в соответствии с командой пользователя процедура PL/SQL обновляет или получает данные из базы. PL/SQL Web Toolkit формирует
HTML-ответ для браузера, обычно в формате файла загрузки или HTML для отображения. Web Toolkit API позволяет хранимой процедуре выполнять следующие
действия:
- Получить информацию о HTTP-запросе.
- Генерировать HTML-заголовки content-type и mime-type.
- Устанавливать cookies браузера.
- Генерировать HTML - страницы.
Как Embedded PL/SQL Gateway обрабатывает запросы клиентов.
На рисунке показано как Embedded PL/SQL Gateway обрабатывает HTTP-запросы клиентов.
-
Последовательность шагов.
- От клиентского браузера Oracle XML DB HTTP Listener получает запрос на выполнение PL/SQL процедуры. Процедура может быть написана непосредственно на PL/SQL или неявно сгенерирована во время загрузки PL/SQL Server Page в базу и последующей компиляции.
- XML DB HTTP Listener перенаправляет запрос в embedded PL/SQL gateway. Этот процесс описывается в virtual-path mapping (маршрутизация виртуальных путей) конфигурации.
- Используя информацию из запроса и в соответствии с конфигурацией, embedded gateway определяет какую пользовательскую запись базы данных использовать для идентификации.
- Embedded gateway готовит входные параметры и запускает PL/SQL процедуру приложения.
- Процедура PL/SQL генерирует HTML страницу и заполняет ее данными.
- Приложение отправляет страницу в embedded gateway.
- Embedded gateway пересылает страницу в XML DB HTTP Listener.
- XML DB HTTP Listener пересылает страницу клиентскому браузеру.
В отличии от mod_plsql, для обработки HTTP-запроса embedded gateway требует наличия Oracle XML DB Listener. Listener (слушатель) - это серверный процесс, похожий на Oracle Net Listener, который поддерживает Oracle Net Services, HTTP и FTP. Для конфигурирования XML DB Listener можно использовать Oracle Enterprise Manager или просто файл xdbconfig.xml.
Петрелевич Сергей
petrelevich@yandex.ru
Внимание.
Комментировать могут только зарегистрированные пользователи.
Возможно использование следующих HTML тегов: <a>, <b>, <i>, <br>.