Oracle APEX (Application Express) - средство разработки и выполнения web-приложений. Позволяет очень быстро проходить весь процесс разработки web-приложения. С помощью APEX можно создавать как небольшие приложения с ограниченным количеством пользователей, так и масштабные приложения корпоративного уровня с тысячами пользователей. Данная среда разработки сама по себе добавляет лишь 0.04 секунды к каждому запросу к HTTP-серверу; поэтому насколько хорошо будет масштабироваться приложение зависит, в большей степени, от грамотности и эффективности SQL-запросов, написанных разработчиком приложения.

Oracle Application Express состоит из двух составляющих:

  • репозиторий метаданных, который хранит описание приложений (описание страниц, элементов управления и т.д.);
  • «движок», который отражает и обрабатывает страницы.

Репозиторий метаданных располагается непосредственно в базе данных Oracle и физически состоит из набора таблиц и некоторого количества PL/SQL кода. При установке APEX создается отдельный Oracle пользователь/схема - FLOWS_<версия_apex>.

В «обязанности» движка Application Express входят следующие функции:

  • управление состоянием сессии;
  • аутентификация;
  • авторизация;
  • управление страницами;
  • обработка валидаций.

Движок Application Express реализован на PL/SQL и доступен через web-браузер. Приложения «собираются» в режиме реального времени из репозитория метаданных. Создание новых или расширение имеющихся приложений не вызывает необходимости в дополнительном коде. Вместо этого создаются новые или изменяются имеющиеся метаданные, хранимые в таблицах Oracle.

Для доступа к приложениям/движку используется Oracle HTTP Server (Apache) и mod_plsql.

Управление состоянием сессии выполняется асинхронно непосредственно в базе данных, что гарантирует:

  • минимальное использование ресурсов CPU сервера;
  • не использование Dedicated соединения.

Кроме того, каждая страница выводит результаты в отдельной сессии базы данных, что минимизирует использование ресурсов, так как они необходимы только при «сборке» страницы из метаданных движком Application Express.

Oracle Apex следует использовать, если

  • Необходимо разработать приложение под БД Oracle;
  • Есть PL/SQL разработчики (они смогут быстро освоить данную технологию);
  • Разрабатываемое приложение достаточно линейно. В том смысле, что не нужно будет реализовывать механизмы такого рода, как, например, повторное использование кода;
  • Для разрабатываемого приложения снижение нагрузки на сервер важнее, чем быстродействие пользовательского интерфейса. Хотя и в быстродействии интерфейса можно добиться существенных результатов при использовании JavaScript (но тогда пункт быстро и просто для pl/sql разработчиков теряет свою актуальность).

Из недостатков: в Oracle Apex отсутствуют встроенные механизмы версионности. Единственный способ - постоянно делать экспорт приложения или отдельных страниц и хранить их в файлах. Однако, таким способом можно при необходимости откатить изменения, но нельзя сравнивать код.

Введение в Oracle Application Express

Статья написана на основе официальной документации фирмы Oracle.
Oracle® Database 2 Day + Application Express Developer"s Guide
Release 3.0
Part Number B32470-01

v:1.0 2007.11.13

Oracle Application Express (Apex) - это инструмент ускоренной разработки Web приложений для базы данных Oracle. С Apex Вы можете создавать профессиональные приложения, даже с небольшим опытом программирования, Вам необходим только Web-браузер.

    Ускоренная разработка обеспечивается за счет встроенных в Apex средств:
  • темы пользовательского интерфейса;
  • управление навигацией;
  • управление формами;
  • гибкие отчеты;

Понимание архитектуры Oracle Application Express

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

Apache и Embedded PL/SQL Gateway

Embedded PL/SQL gateway выполняет функции Web-сервера и обеспечивает инфраструктуру, необходимую для создания динамических приложений. Embedded PL/SQL gateway содержит основные функции mod_plsql и не требует Oracle HTTP Server. Использование embedded PL/SQL gateway упрощает архитектуру и полностью исключает промежуточное звено.

Ядро Application Express

    Ядро Application Express обрабатывает страницы и выполняет следующие задачи:
  • управление состоянием сессии;
  • сервис идентификации;
  • сервис авторизации;
  • управление потоком страниц;
  • проверка достоверности;

Окружение Oracle Application Express

Все пользователи Oracle Application Express работают с одной общей базой данных. Для доступа к базе достаточно Web-браузера, дополнительное программное обеспечение не требуется.

Workspaces (рабочее пространство)

Область, где вы разрабатываете приложения называется workspace (рабочее пространство). Workspace - это виртуальная частная база данных, позволяющая множеству пользователей работать с одной инстанцией Oracle Application Express, скрывая при этом свои объекты, данные и приложения.

В типовой среде разработки вы можете создать одно рабочее пространство для совместного использования всеми разработчиками. Однако, Вы можете создать персональное рабочее пространство для каждого разработчика или проекта. Персональное рабочее пространство будет доступно только тем пользователям, которые к нему прикреплены.
Следующий рисунок иллюстрирует взаимосвязь между пользователями/разработчиками, рабочими пространствами и схемами базы данных.

При создании рабочего пространства необходимо указать в какой схеме оно будет располагаться, можно выбрать существующую или создать новую. Схема - это логический контейнер для объектов базы данных, таких как таблицы, представления и хранимые процедуры. Одна схема может быть связана с одним или несколькими рабочими пространствами.

Роли пользователей в Application Express

При установке Application Express в большой организации каждому пользователю надо назначить роль и определить привилегии.

    В Application Express существуют следующие роли:
  • Workspace administrator - это пользователи, которые выполняют административные задачи рабочих пространств. Например, управление пользовательскими учетными записями, мониторинг активности, просмотр лог-файлов.
  • Developers (разработчики) - это пользователи, которые создают и изменяют приложения.
  • End users (конечные пользователи) - это пользователи, которые имеют доступ к приложениям без использования внешних идентификационных схем.
  • Oracle Application Express administrators - это суперпользователи, которые управляют всей инстанцией, используя приложение Application Express Administration Services.
Следующий рисунок показывает, как множество пользователей с различными ролями работают со средой разработки, административными сервисами и пользовательскими приложениями.