13.4. Архитектура

13.4.1. Архитектура

Application Express использует веб-браузер на компьютере пользователей через Web listener в Oracle Database. Нет клиентского программного обеспечения, кроме браузера, который требуется для разработки, развертывания и выполнения. Application Express страницы отображаются с использованием HTML в браузере. Страница запросов и представлений отправляются на движок Application Express в Oracle Database.

Рисунок 13.5. Архитектура APEX

Архитектура APEX

13.4.1.1. Управляемые метаданные

Oracle Application Express является интегрированной функцией базы данных Oracle.

Oracle Application Express (APEX) позволяет генерировать из данных, хранящихся в БД Oracle, динамические страницы программ и обрабатывать их в режиме реального времени. При создании или расширении программ, написанных в APEX, метаданные, которые хранятся в таблицах БД Oracle, модифицируются. Во время работы программы APEX считывает метаданные и отображает программу в браузере. Образно говоря, APEX «живет» в вашей БД Oracle и представляет собой набор данных, структурированных в таблицах с большим количеством PL/SQL кода (примерно 215 таблиц и 200 PL/SQL объектов, которые содержат более 300 тысяч строк кода).

Application Express в процессе работы:

– управляет состояниями сессии;

– выполняет аутентификацию и авторизацию сервисов;

– осуществляет контроль выполнения приложений;

– выполняет проверку состояния обработок запросов;

– генерирует и обрабатывает страницы.

Минимизация потребления ресурсов процессора во время работы достигается при помощи асинхронной архитектуры управления сессией. URL запрос после отправления браузером транслируется в соответствующий PL/SQL вызов, который обрабатывается. Результаты обработки вызова передаются обратно в браузер в виде HTML страницы. Благодаря тому, что управление сессией осуществляется в базе данных, необходимость в дополнительном программном обеспечении для организации связи отпадает. Показ новой страницы сопровождается появлением новой сессии базы данных, благодаря чему достигается экономия ресурсов сервера так, как они используются лишь во время запроса к Application Express, генерации и обработке страниц.

Поскольку доступ ко всем программам, написанным в Application Express, выполняется посредством веб-браузера, для его реализации предварительно необходимо провести конфигурацию Oracle HTTP Server (Apache), в котором содержится плагин mod_plsql. Этот плагин выполняет функции коммуникатора, обеспечивающего связь веб-сервера с объектами APEX в БД Oracle, и перенаправляет в режиме реального времени запросы браузера к хранимым в БД процедурам (рисунок 1).

Рисунок 13.6. Архитектура APEX

Архитектура APEX

Архитектура БД Oracle 11g, Oracle HTTP Server (Apache) и mod_plsql может быть эквивалентно заменена архитектурой со встроенным PL/SQL шлюзом (Embedded PL/SQL Gateway – EPG). Наличие встроенного шлюза позволяет БД Oracle выполнять создание динамических приложений посредством веб-сервера и вспомогательной инфраструктуры. Шлюз работает в XML Database HTTP Server, части БД Oracle, и включает в себя основные возможности mod_plsql, но не требует отдельного веб-сервера (Oracle HTTP Server) под управлением Apache. Бесплатная версия баз данных Oracle Database 10g Express Edition (XE) также использует встроенный шлюз EPG.

Рисунок 13.7. Архитектура APEX

Архитектура APEX

13.4.1.2. Понимание архитектуры

Oracle Application Express полностью размещается в базе данных, он включает данные в таблицах и PL/SQL код. В не зависимости от того запускаете ли вы среду разработки или уже готовое приложение, созданное в Oracle Application Express, выполняются одни и те же процессы. Ваш браузер посылает URL-запрос, который преобразуется в соответствующий вызов Application Express PL/SQL. База данных обрабатывает PL/SQL запрос и отправляет результат обратно в браузер в виде HTML. Эти операции выполняются всегда при запросе или получении страницы. Состояние сессии приложения хранится в базе данных под управлением Application Express. Особое специальное соединение не используется. Вместо этого, каждый запрос делается в новой сессии базы данных, затрачивая минимум ресурсов CPU.

Использованы материалы http://www.smartyit.ru/oracle/42