Создаем плагин региона для Oracle Application Express. Создание интерактивного отчёта в Oracle Apex. Что необходимо для этого сделать

Создаем плагин региона для Oracle Application Express. Создание интерактивного отчёта в Oracle Apex. Что необходимо для этого сделать

11.04.2019

Введение

Oracle Application Express (APEX) – это средство быстрой разработки Веб-приложений на основе БД Oracle. Oracle APEX позволяет создавать приложения с использованием веб-браузера (среда разработки представляет собой веб-приложение) и не требует от разработчика большого опыта программирования. Со стороны конечного пользователя приложения требуется только браузер и доступ к БД Oracle, на которой запущен APEX.

Oracle APEX инсталлируется в БД Oracle и представляет собой набор таблиц с данными и PL/SQL код. Запуск приложения, построенного с помощью APEX, аналогичен запуску самой среды разработки APEX и представляет собой следующий процесс: браузер посылает URL запрос, который транслируется в соответствующий PL/SQL-вызов APEX. После того, как БД выполнит PL/SQL код, результаты возвращаются обратно в браузер в виде HTML.

Возможны два варианта архитектуры Oracle APEX, зависящие от версии сервера Oracle:

· Версии до 11.1 требуют установки Oracle HTTP Server (Apache) с mod_plsql:

https://pandia.ru/text/78/193/images/image002_220.gif" width="276 height=118" height="118">

Встроенный PL/SQL шлюз выполняет функции веб-сервера и обеспечивает необходимую инфраструктуру для создания динамических веб-приложений. Использование такого шлюза упрощает архитектуру и устраняет промежуточный слой.

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

В Oracle Application Express выделяются следующие роли пользователей:

· Администраторы рабочих областей (Workspace administrators) – пользователи, которые выполняют задачи, специфичные для управления рабочими областями – управление учетными записями пользователей, мониторинг активности, просмотр лог-файлов.

· Разработчики – пользователи, которые создают и редактируют приложения. Разработчики могут иметь отдельные рабочие области или разделять общие.

· Конечные пользователи – не имеют привилегий разработчиков.

· Администраторы Oracle Application Express – это суперпользователи, которые управляют всеми ресурсами экземпляра Oracle Application Express с помощью сервисов Application Express Administration Services.

ü Object Browser – позволяет просматривать, создавать, изменять, читать содержимое и удалять объекты БД.

ü SQL Commands – позволяет запускать команды SQL и PL/SQL, скрипты и сохраненные запросы.

ü SQL Scripts – позволяет создавать, редактировать, просматривать, запускать и удалять файлы скриптов, а также загружать файлы скриптов из и в локальную файловую систему.

ü Query Builder – позволяет искать и отфильтровывать объекты БД, выбирать объекты и столбцы, создавать связи между объектами, просматривать отформатированные результаты запросов, сохранять запросы. Графический интерфейс построителя позволяет делать это, обладая минимальными знаниями SQL.

· Utilities позволяет импортировать и экспортировать данные из БД, генерировать DDL-код, просматривать отчеты, восстанавливать удаленные объекты БД и выполнять другие задачи.

Каждое приложение в APEX представляет собой коллекцию страниц (page), связанных друг с другом при помощи вкладок (tabs), кнопок (buttons) или гипертекстовых ссылок (hypertext links). Страница – это основной строительный блок приложения. Страницы также содержат элементы пользовательского интерфейса – вкладки, списки (lists), кнопки, элементы (items) и области (regions).

2. Щелкните по иконке Application Builder .

3. Щелкните по кнопке Create > . Появится мастер создания приложения (Create Application Wizard).

Обратите внимание на последовательность блоков в левой части страницы мастера, которая отображает последовательность шагов. Выделенный блок показывает шаг, который в данный момент выполняется.

4. На шаге Method оставьте Create Application и щелкните по кнопке Next .

5. На шаге Name :

а. Name – введите имя компании.

б. Application – оставьте автоматически сгенерированное значение (это уникальный идентификатор приложения).

в. Create Application – оставьте From scratch (с нуля).

г. Schema – выберите схему БД, содержащую объекты, с которыми будет работать приложение (уточните у преподавателя).

6. На шаге Pages установите следующее в секции Add Page :

а. Select Page Type – оставьте значение по умолчанию – Blank

Обратите внимание на пояснения опций, которые появляются в правой части страницы.

б. Page Name – введите Главная.

в. Щелкните по кнопке Add Page .

Созданная страница появилась в списке страниц приложения в верхней секции (Create Application ). Обратите внимание, что область Add Page по-прежнему отображается, так что Вы можете продолжать добавлять страницы в приложение.

Затем добавьте страницу с отчетом о подразделениях, основанном на таблице OEHR_DEPARTMENTS.

7. В секции Add Page установите следующее:

а. Select Page Type – выберите Report

б. Subordinate to Page – выберите Главная (это необходимо для определения иерархии страниц в приложении).

в. Page Source – оставьте значение Table .

г. Table Name – выберите OEHR_DEPARTMENTS.

В списке отображаются все таблицы и представления схемы, с которой ассоциировано приложение.

д. Implementation – выберите Classic.

е. Include Analysis Pages – оставьте окошко пустым.

Если установить флажок, то мастер попросит ввести данные о дополнительных сводных отчетах и диаграммах, которые Вы можете добавить к этой странице.

ж. Щелкните Add Page .

Обратите внимание, что страницы, перечисленные в секции Create Application, отображают иерархию страниц в приложении.

и. В секции Page Definition измените Page Name на Подразделения.

к. Щелкните Apply Changes .

л. В секции Create Application щелкните по кнопке Next > .

После добавления страниц необходимо определить некоторые параметры уровня приложения.

8. На шаге Tabs выберите No Tabs и щелкните Next. Это означает, что в приложении не будет автоматически создано навигации на основе вкладок (однако вкладки можно добавить позже вручную).

9. На шаге Shared Components оставьте No и щелкните Next .

10. На шаге Attributes:

а. Authentication Scheme оставьте Application Express .

б. Language – выберите Russian (ru) .

в. Date Format – введите маску DD. MM. YYYY

г. щелкните Next .

11. На шаге User Interface выберите тему Theme 18 и щелкните Next .

12. На шаге Confirm проверьте введенные данные и щелкните Create .

Две страницы, которые Вы создали – Главная и Подразделения – по умолчанию отображаются в виде иконок на странице приложения в Application Builder. Обратите внимание, что Oracle Application Express автоматически добавил в приложение страницу Login.

Для того, чтобы просмотреть приложение, необходимо запустить его. Вы можете запустить отдельно каждую страницу или приложение целиком. Когда Вы запускаете страницу или приложение, Application Express на основе данных, сохраненных в БД, динамически визуализирует его в виде HTML страниц.

Запустить приложение можно, щелкнув по иконке Run Application :

Запустить отдельную страницу можно, щелкнув по иконке Run Page :

13. На домашней странице приложения щелкните Run Application .

14. На появившейся странице регистрации введите название Вашей рабочей области, имя пользователя и пароль.

Появится главная страница Вашего приложения.

Также обратите внимание на панель инструментов разработчика внизу страницы. Данные ссылки появляются, когда приложение запускается в среде разработки.

Появится страница Подразделения.

Обратите внимание, что приложение содержит элементы и свойства, которые позволяют быстро выполнять определенные задачи:

· Breadcrumbs – отображают иерархию и путь страницы в виде ссылок. Щелкая по ссылкам, можно перемещаться по иерархии:

https://pandia.ru/text/78/193/images/image014_50.jpg" width="97" height="43">.

16. Изучите возможности Вашего приложения, выступая в роли пользователя.

Теперь необходимо изменить запрос, на котором основан отчет о подразделениях так, чтобы он включал данные из таблицы OEHR_EMPLOYEES, а затем создать отчет о работниках и форму для редактирования данных о работнике.

Для того чтобы изменить отчет Подразделения:

17. Откройте определение страницы (Page Definition) Подразделения:

Страница – это основной строительный блок приложения. Страницы содержат элементы пользовательского интерфейса – вкладки, списки (lists), кнопки, элементы (items) и области (regions).

Обратите внимание на секцию Items . В ней перечислены элементы управления, содержащиеся на странице.

18. В разделе Page Rendering найдите секцию Regions и щелкните по ссылке Подразделения.

19. Найдите секцию Source и изучите запрос в поле Region Source . Обратите внимание на параметр:P2_REPORT_SEARCH – это ссылка на значение, содержащееся в одноименном текстовом поле. Благодаря ему запрос возвращает записи только о тех подразделениях, в названиях которых содержится искомая подстрока (если подстрока непустая).

20. Замените текст запроса в текстовом поле Region Source на следующий:

SELECT d. department_id "Department ID",

d. department_name "Department Name",

count("x") "Number of Employees",

substr(e. first_name,1,1)||". "|| e. last_name "Manager Name",

c. country_name "Location"

FROM oehr_departments d,

oehr_employees e,

oehr_locations l,

oehr_countries c,

oehr_employees e2

WHERE d. manager_id = e. employee_id

AND d. location_id = l. location_id

AND d. department_id = e2.department_id

AND l. country_id = c. country_id

AND instr(upper(d. department_name),upper(nvl(:P2_REPORT_SEARCH, d.department_name))) > 0

GROUP BY d. department_id, d. department_name,

substr(e. first_name,1,1)||". "||e. last_name, c. country_name

21. Изучите текст нового запроса. Обратите внимание на использование групповой функции count() и предложение GROUP BY.

22. Щелкните по кнопке Apply Changes .

23. Запустите страницу, щелкнув по иконке . Отобразится видоизмененный отчет о подразделениях:

Обратите внимание на 3 новых столбца: Number Of Employees, Manager Name (вместо идентификатора теперь отображается первая буква имени и фамилия) и Location.

Теперь необходимо создать отчет, который будет отображать данные о работниках, и форму, позволяющую создавать, изменять и удалять записи о работниках.

24. Перейдите на домашнюю страницу приложения в Application Builder.

25. Щелкните по кнопке Create Page > .

26. На шаге Page :

а. Выберите Form и щелкните Next > .

б. Выберите Form on a Table with Report и щелкните Next > .

Эта опция создает две страницы: отчет и форму, основанные на одной таблице или представлении.

27. На шаге Identify Table or View :

а. В поле Table/View Owner оставьте значение по умолчанию и щелкните Next > .

б. В поле Table / View Name выберите OEHR_EMPLOYEES и щелкните Next > .

28. На шаге Define Report Page :

а. Implementation – выберите Classic.

б. Breadcrumb – выберите Breadcrumb. Появится секция Create Breadcrumb Entry .

в. В Select Parent Entry выберите ссылку на страницу Главная.

г. В полях Entry Name , Page Name и Region Title измените значение на Работники.

д. щелкните Next > .

29. На шаге Define Report Page :

а. В Tab Options оставьте опцию Do not use tabs и щелкните Next > .

б. В списке Select Column (s ) , нажав и удерживая клавишу Ctrl выберите следующие столбцы:

· COMMISSION_PCT

Выбранные столбцы появятся на странице отчета.

Щелкните Next > .

в. В Edit Link Image оставьте иконку, выбранную по умолчанию, и щелкните Next > .

г. В полях Page Name , Region Title и Entry Name введите Создать/Редактировать Работника. Щелкните Next > .

д. В поле Primary Key оставьте значение по умолчанию (EMPLOYEE_ID) и щелкните Next > .

е. В Define the source for the primary key columns выберите Existing Sequence , а в появившемся внизу поле Sequence выберите OEHR_EMPLOYEES_SEQ.

OEHR_EMPLOYEES_SEQ – это объект БД «сиквенс» (последовательность), предназначенный для генерации уникальных числовых значений, которые используются в качестве значений суррогатных идентификаторов.

Щелкните Next > .

ж. В списке Select Column (s ) выберите все столбцы и щелкните Next > .

Эти столбцы появятся в форме Создать/Редактировать Работника.

з. В блоке Identify Process Options оставьте все как есть (значения Yes для операций Insert , Update и Delete ) и щелкните Next > .

Это позволит пользователям добавлять, изменять и удалять записи о работниках.

30. На шаге Confirm проверьте выбранные Вами атрибуты страниц формы и отчета и щелкните по кнопке Finish .

31. Запустите созданную страницу, щелкнув по иконке Run Page. Отобразится отчет Работники:

· Иконка редактирования, которую Вы выбрали, появляется в каждой записи. Иконка представляет собой ссылку, щелчок по которой приводит к переходу на страницу формы Создать/Редактировать Работника, в которой Вы можете изменить запись о работнике.

· В правом верхнем углу мастером была создана кнопка Create , щелчок по которой также приводит к переходу на страницу формы Создать/Редактировать Работника, на которой Вы можете создать запись о новом работнике в таблице OEHR_EMPLOYEES.

· Отчет Работники включает в себя те столбцы, которые Вы выбрали. Oracle Application Express на основе Вашего выбора создал соответствующий SQL-запрос, который возвращает эти данные.

32. Для того чтобы просмотреть форму для редактирования, которая была создана вместе с отчетом, щелкните по иконке редактирования в какой-либо записи отчета Работники. Появится форма Создать/Редактировать Работника:

Обратите внимание на следующие моменты:

· Форма содержит кнопки Cancel , Delete и Apply Changes (при создании записи отображаются кнопки Cancel и Create ).

· Обязательные столбцы (на которые в БД наложено ограничение целостности Not Null ) выделены цветом.

· Рядом с полем Hire Date отображается иконка календаря , т. к. тип данных соответствующего столбца – DATE. Щелчок по этой иконке приводит к появлению окна с календарем.

Далее Вы создадите PL/SQL функцию, которая вычисляет зарплату работника. Затем добавите столбец «Зарплата/Год» для отображения результатов этих вычислений в отчете о работниках, восстановите в столбце иконку редактирования и ссылку на страницу
Создать/Редактировать Работника, назначите всем столбцам русскоязычные заголовки и измените формат вывода числовых столбцов.

33. Щелкните по иконке SQL Workshop , а затем SQL Commands .

Появится окно, в котором Вы можете запускать SQL и PL/SQL код в БД.

34. Введите следующий скрипт:

CREATE OR REPLACE FUNCTION calc_remuneration(

salary IN number, commission_pct IN number) RETURN NUMBER IS

RETURN ((salary*12) + (salary * 12 * nvl(commission_pct,0)));

Этот PL/SQL код создает функцию calc_remuneration, принимающую входные (IN) числовые (number) параметры salary (размер месячного оклада) и commission_pct (комиссионный процент) и возвращающую число. Функция вычисляет размер годового вознаграждения работника с учетом процентов.

Обратите внимание на функцию nvl, которая проверяет значение первого параметра на null и в случае, если первый параметр равен null, возвращает значение второго параметра. Это важно в данном случае, т. к. результатом любых арифметических операций со значением null является null. А в данном случае, используя nvl, мы интерпретируем неопределенное значение комиссионного процента (отсутствие комиссионного процента у работника) как значение = 0.

35. Щелкните по кнопке Run . В окне Results отобразится сообщение «Function created.»

Теперь добавьте столбец, который будет отображать результат вычислений годовой зарплаты. Для этого:

36. Откройте страницу Page Defifnition для страницы 3 (Работники):

37. В секции Regions щелкните по ссылке Работники.

DIV_ADBLOCK26">

select "EMPLOYEE_ID",

"COMMISSION_PCT"

from "#OWNER#"." OEHR_EMPLOYEES"

Обратите внимание на следующие моменты:

· В запрос включены столбцы, которые Вы выбрали при создании отчета с помощью мастера.

· #OWNER# – подстановочная строка (substitution string), представляющая имя схемы, с которой ассоциировано приложение и в которой содержатся необходимые таблицы.

39. Замените код запроса на следующий:

SELECT "EMPLOYEE_ID" "Emp_Id",

"COMMISSION_PCT",

calc_remuneration(salary, commission_pct) "Зарплата/год"

FROM "#OWNER#"." OEHR_EMPLOYEES"

Обратите внимание на следующие моменты:

· Для столбца EMPLOYEE_ID и столбца с функцией calc_remuneration установлены синонимы.

40. Щелкните Apply Changes .

41. Чтобы просмотреть новую страницу отчета Работники, щелкните иконку Run Page в правом верхнем углу.

Обратите внимание на следующие моменты:

· Появился новый столбец Зарплата/год.

· Пропала иконка со ссылкой на страницу Создать/Редактировать Работника. Это произошло потому, что изменилось название столбца, с которым была ассоциирована ссылка на страницу редактирования записи о работнике (мы установили синоним Emp_Id для столбца EMPLOYEE_ID).

· Столбцы отчета имеют англоязычные названия (кроме Зарплата/Год, которому мы установили русскоязычный синоним в запросе).

· Столбец со значением идентификатора работника отображается предпоследним в отчете.

Теперь восстановим в столбце Emp_Id иконку и ссылку на страницу
Создать/Редактировать Работника, назначим всем столбцам русскоязычные заголовки и изменим формат вывода числовых столбцов.

42. На странице определения страницы 3 в секции Regions щелкните по ссылке Report

Отобразится страница Report Attributes

43. В секции Column Attributes найдите атрибут Emp_Id и с помощью кнопки переместите его в начало списка.

44. У атрибута Emp_Id щелкните по иконке слева.

Откроется страница редактирования атрибута-столбца Emp_Id.

45. В секции Column Link :

а. В поле Link Text установите текст, представляющий собой html-тэг для отображения необходимой иконки (щелкните по ссылке ):

б. В поле Page из выпадающего списка выберите страницу Создать/Редактировать Работника. Соответствующий номер страницы автоматически установится в поле:

Значение P4_EMPLOYEE_ID – это имя скрытого поля (item) на странице 4 Создать/Редактировать Работника, представляющего идентификатор работника.

Значение #Emp_Id# – это подстановочная строка, вместо которой APEX подставит выбранное пользователем значение столбца Emp_Id (в котором содержится идентификатор работника) из отчета Работники.

46. Щелкните по кнопке Apply Changes в верхней части страницы.

Вы вернетесь на страницу Report Attributes . Обратите внимание, что в списке столбцов отчета у столбца Emp_Id появилась пометка Link , которая говорит о том, что с этим столбцом ассоциирована ссылка:

47. Установите для каждого столбца в поле Heading русскоязычные названия:

Теперь изменим формат вывода числовых столбцов:

48. В Column Alignment установите right для столбцов SALARY, COMMISSION_PCT и Зарплата/год.

49. Для того, чтобы отредактировать формат столбца SALARY:

а. Щелкните по иконке слева от него.

б. На странице редактирования атрибута-столбца SALARY найдите секцию Column Formating и в поле Number/Date Format выберите из списка р .5 234,10 . Соответствующая форматная маска будет подставлена в поле:

в. Щелкните по кнопке Apply Changes .

50. Повторите предыдущий шаг для столбца Зарплата/Год.

51. Примените изменения.

52. Запустите страницу отчета.

Обратите внимание на следующие моменты:

· Все столбцы отчета имеют русскоязычные заголовки.

· Столбцы Оклад/Месяц и Зарплата/Год отображаются в денежном формате.

53. Установите русскоязычные названия столбцов (в поле Heading ) для страницы Подразделение.

54. По умолчанию в каждой рабочей области установлено тестовое приложение (Sample Application), демонстрирующее основные возможности Oracle Application Express. Запустите его и ознакомьтесь с его возможностями (логин = demo, пароль = apex_stud). Вы можете использовать это приложение как образец для более глубокого изучения APEX.

Контрольные вопросы:

1. Каковы основные компоненты среды разработки Oracle Application Express?

2. Что такое «рабочая область» (workspace)?

3. Что представляет собой приложение в APEX с точки зрения пользователя и с точки зрения внутренней организации?

4. Как из среды разработки запустить приложение? Отдельную страницу приложения?

5. Для чего предназначен элемент «Breadcrumbs»?

6. Что является основным строительным блоком приложения в APEX?

7. Чем определяется состав столбцов отчета?

9. Каким образом можно динамически указывать, какую запись следует отображать на форме редактирования в приложении?

Oracle® Application Express Application Builder User’s Guide Oracle® Database 2 Day + Application Express Developer’s Guide Oracle® Application Express Advanced Tutorials

Лабораторные задания основаны на материалах Oracle® Database 2 Day + Application Express Developer’s Guide и Oracle® Application Express Advanced Tutorials.

Введение в 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.
Следующий рисунок показывает, как множество пользователей с различными ролями работают со средой разработки, административными сервисами и пользовательскими приложениями.

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 отсутствуют встроенные механизмы версионности. Единственный способ - постоянно делать экспорт приложения или отдельных страниц и хранить их в файлах. Однако, таким способом можно при необходимости откатить изменения, но нельзя сравнивать код.



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows