Страницы

четверг, 16 апреля 2015 г.

Разработка веб приложений

Введение в 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
    В разных версиях базы данных Oracle URL преобразуется по разному.
  • Версии младше Oracle Database 11.1 требуют Oracle HTTP Server (Apache) с плагином mod_plsql. Следующий рисунок иллюстрирует эту архитектуру.
    Архитектура на основе Oracle HTTP Server (Apache)
  • В версии новее Oracle Database 11.1 или Oracle Database 10g Express Edition вы можете заменить Apache на Embedded PL/SQL gateway. Следующий рисунок иллюстрирует эту идею.
    Архитектура на основе 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 Application Express









Разработка 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, и курсоры.
    Рисунок иллюстрирует следующие шаги:
  1. Пользователь открывает Web-страницу, следуя гиперссылке, или вводит данные в форму. Обрабатывая эти действия, браузер отправляет HTTP запрос серверу. Запрос содержит требуемый URL.
  2. В соответствии с полученным URL, HTTP-сервер вызывает хранимую в базе данных процедуру. Данные из формы передаются в процедуру.
  3. Хранимая процедура запускает подпрограмму из PL/SQL Web Toolkit. Обычно, подпрограммы, такие как HTP.Print, генерируют Web-страницы динамически. Генерация страницы зависит от данных базы данных и входных параметров.
  4. Подпрограммы передают динамическую страницу Web-серверу.
  5. Web-сервер передает страницу клиенту.
PL/SQL 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-запросы клиентов.Embedded PL/SQL Gateway обрабатывает клиентский запрос
    Последовательность шагов.
  1. От клиентского браузера Oracle XML DB HTTP Listener получает запрос на выполнение PL/SQL процедуры. Процедура может быть написана непосредственно на PL/SQL или неявно сгенерирована во время загрузки PL/SQL Server Page в базу и последующей компиляции.
  2. XML DB HTTP Listener перенаправляет запрос в embedded PL/SQL gateway. Этот процесс описывается в virtual-path mapping (маршрутизация виртуальных путей) конфигурации.
  3. Используя информацию из запроса и в соответствии с конфигурацией, embedded gateway определяет какую пользовательскую запись базы данных использовать для идентификации.
  4. Embedded gateway готовит входные параметры и запускает PL/SQL процедуру приложения.
  5. Процедура PL/SQL генерирует HTML страницу и заполняет ее данными.
  6. Приложение отправляет страницу в embedded gateway.
  7. Embedded gateway пересылает страницу в XML DB HTTP Listener.
  8. 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.

Комментариев нет:

Отправить комментарий