Oracle ADF

Oracle ADF
Тип фреймворк
Разработчик Oracle
Аппаратная платформа Java Virtual Machine
Последняя версия
  • 12.2.1.4.0 (сентябрь 2019)
Лицензия проприетарная
Сайт oracle.com/technetwork/d…

Oracle Application Development Framework (Oracle ADF) — коммерческий J2EE-фреймворк для разработки Java-приложений в декларативном стиле. Содержит широкий спектр компонентов и визуальных инструментов для быстрой разработки приложений, поддерживает TopLink[англ.], JavaServer Faces и Struts, в интеграции с которыми обеспечивает целостный MVC-подход к разработке.

Архитектура

Слои фреймворка:

  • слой представления (view) — описывает пользовательский интерфейс приложения (веб-клиент, толстый клиент или мобильный клиент);
  • слой управления (controller) — блок управления для навигации в веб-приложении;
  • слой модели (model) — реализует модель данных для обеспечения согласованной работы с данными для слоёв управления и представления;
  • Business Services-слой — инкапсулирует доступ к данным из различных источников и бизнес-логику (data services).

Связывание данных для слоёв представления и управления происходит в модельном слое. В основном оно осуществляется двумя видами компонентов — элементами управления данными (data controls) и элементами привязки данных (data bindings), которые описываются метаданными.

Поддерживаемые технологии

Базируясь на MVC-архитектуре, Oracle ADF может поддерживать любую комбинацию следующих технологий:

Открытая интегрированная среда разработки JDeveloper обеспечивает графический интерфейс для разработки приложений с использованием ADF. Oracle также предлагает Eclipse-базированный инструментарий для ADF в Oracle Enterprise Pack For Eclipse.

Разработчики могут развёртывать ADF-приложения на Java-EE-совместимых веб-контейнерах.

Разработка мобильных приложений

Oracle ADF Mobile — гибридный фреймворк для мобильной разработки, обеспечивает создание приложений как для iOS-, так и для Android-устройств. Кодирование выполняется на языке Java. UI-слой может быть разработан с использованием набора компонентов (AMX), которые генерируют HTML5-интерфейс пользователя. Кроме того, Oracle ADF Mobile может включать локальные HTML5-страницы и удалённый HTML-контент, созданный на других серверах.

Oracle ADF Mobile включает в себя слой контроллера на основе ADF-TaskFlow-концепций, а также поддержку ADF-связывания (binding) для доступа из пользовательского интерфейса к любым сервисам. Oracle ADF Mobile поддерживает взаимодействие с функциями мобильных устройств, как GPS, адресная книга, SMS и многое другое.

Компоненты

ADF Faces — библиотека компонентов графического интерфейса, созданная как расширение Apache MyFaces Trinidad. Компоненты пользовательского интерфейса могут быть обновлены в браузере технологиями AJAX или Server Push без выполнения нового HTTP-запроса. ADF-Faces-фреймворк поддерживает частичную загрузку страниц (partial page rendering, PPR), потоковую передачу данных (streaming), ADF-привязку данных (binding), серию оконных элементов управления (диалоги, всплывающие окна, меню), drag-and-drop-функции. Реализовано полное JavaScript API. Также поддерживаются шаблоны, настройка посредством CSS, специализированный язык выражений (expression language). Компоненты могут быть развёрнуты в любых Java-EE-совместимых сервлет-контейнерах. Данные хранятся на клиентской стороне в DOM, а на серверсной — как дерево в памяти (in-memory tree). Визуализация обеспечивается для различных оконечных устройств (мобильных устройств, браузеров).

ADF Task Flow — компонент слоя управления, расширяющий контроллер JSF многократно используемыми компонентами управления (task flow components).

ADF Model — ядро Oracle ADF, обеспечивающее абстракцию между слоями бизнес-сервисов и пользовательского интерфейса. Впервые была представлена с Oracle JDeveloper 9.0.5 (до этого разработчик был сам ответственен за связи между уровнем представления и бизнес-службами, например, нужно было использовать JSP-теги для подключения текстового поля к атрибуту бизнес-службы). Основано на спецификации JSR 227. ADF Model обеспечивает единый интерфейс программирования для различных бизнес-служб — веб-сервисов, Enterprise JavaBeans, Java, JDBC и других. При более высокой внутренней сложности эта архитектура имеет ряд преимуществ:

  • разработчики представления могут сосредоточиться на разработке пользовательского интерфейса, не зная особенностей бизнес-служб;
  • бизнес-сервис может быть заменён независимо от графического интерфейса — необходимы только соответствующие коррективы в ADF Model;
  • все приложения используют один и тот же интерфейс прикладного программирования (API) и один тот же формат метаданных для описания привязки данных.

Разработчик бизнес-сервиса реализует так называемые элементы управления данными (data controls), в которых реализуются необходимые методы, предоставляемые для слоёв представления и управления. Разработчик представления связывает эти элементы с компонентами графического интерфейса и, таким образом, создаёт так называемые привязки данных (data binding). Для определения привязок используется синтаксис JSTL специализированного языка выражений. Oracle ADF обеспечивает для распространённых технологий бизнес-служб предопределённые реализации.

ADF Business Components (ADF BC) — интерфейс доступа к данным реляционной базы данных (persistence layer) с соответствующими транзакционными и блокировочными механизмами. Кроме того, данные компоненты обеспечивают возможность реализации управляемой событиями модели (event-driven model). ADF-BC-объекты содержат опорные точки (hook points) для инъекции пользовательского Java-кода. ADF BC предоставляют переписываемые методы, которые могут изменить поведение приложения, например, до и после выполнения операции доступа к данным, commit, создания новой записи. К наиболее важным типам ADF BC относятся:

  • сущности (entity objects);
  • представления (view objects);
  • ассоциации (association) и ссылки (viewlink);
  • модули приложений (application modules);
  • тестеры бизнес-компонентов.

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

Представление можно понимать как некоторую структуру данных, связанную с одной или несколькими сущностями. Представление может быть основано на сущности (подмножестве её атрибутов) или SQL-запросе. Хотя некоторые возможности проверки корректности доступны для представлений, на практике рекомендуется инкапсулировать всю логику проверки в сущностях, потому что эта логика кешируется внутри сущности для всех представлений на её основе (это похоже на нормализацию на уровне базы данных).

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

Модуль приложения объединяет набор представлений и служит как средство управления транзакциями; с точки зрения конечного пользователя возможности транзакций поставляются именно модулями приложения.

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

Важным средством декларативной разработки корпоративных приложений с использованием ADF являются службы метаданных (Metadata Services, MDS). С их помощью приложения приобретают свойство мультиарендности и приспосабливаемости к индивидуальным параметрам (пользователю, его роли). Метаданные для каждого значения параметра могут храниться в файлах или в СУБД. Адаптация возможна вниз лишь до уровня ADF-компонентов. Обычно создается базовый набор метаданных (базовый документ) в XML-представлении. Этот базовый документ может быть заменен для каждого частного случая новым документом, также находящимся в хранилище.

История

Некоторые компоненты Oracle ADF были опубликованы уже в 1999 году, как, например, ADF Business Components — сначала под названием «JBO» (Java Business Objects), а затем — «BC4J» (Бизнес-компоненты для Java). Современный слой связывания (binding) данных был введен в составе JDeveloper 9.0.5.

В июне 2006 года Oracle передал большую часть библиотеки компонентов ADF Faces (JSF реализация Oracle, с более чем 100 компонентами) в проект с открытым кодом MyFaces Trinidad[англ.].

Литература

  • Frank Nimphius und Lynn Munsinger: Oracle Fusion Developer Guide, ISBN 0-07-162254-3.
  • Duncan Mills, Peter Koletzke , Avrom Roy-Faderman: Oracle JDeveloper 11g Handbook — A Guide to Oracle Fusion Web Development, ISBN 0-07-160238-0.
  • Ronald Grant: Quick Start Guide to Oracle Fusion Development, ISBN 0-07-174428-2.
  • Sten E. Vesterli: Oracle ADF Enterprise Application Development — Made Simple, ISBN 1-84968-188-0.
  • Nick Haralabidis: Oracle JDeveloper 11g R2 Cookbook, ISBN 1-84968-476-6.

Ссылки