Oracle ADF

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Oracle ADF
Тип

Java фреймворк

Разработчики

Oracle

Написана на

Java

Операционная система

кроссплатформенная

Последняя версия

12.1.2.0 (2013-07-01)

Лицензия

Oracle-лицензия

Oracle Application Development Framework, сокращенно Oracle ADF, является коммерческим Java EE фреймворком, который ставит перед собой целью разрабатывать корпоративные Java приложения простым, наглядным и декларативным способом. ADF предлагает вместе с широким спектром компонентов и группой фреймворков (например, en:TopLink, JavaServer Faces и Struts) целостный подход, основанный на Model-View-Controller принципе. Благодаря использованию проверенных шаблонов проектирования, управляемых метаданными компонентов и визуальных инструментов обеспечивается быстрая разработка приложений.

Архитектура[править | править вики-текст]

ADF11g architecture.png

Рассмотрим архитектуру фреймворка.

На рисунке различаются четыре слоя (layers):

  • View-слой — описывает пользовательский интерфейс приложения (веб-клиент, толстый клиент или мобильный клиент).
  • Controller-слой — это блок управления для навигации в веб-приложении.
  • Model-слой — представляет собой абстракцию слоя бизнес-услуг для вышележащих слоев (View, Controller), чтобы обеспечить их согласованную работу с ним.
  • Business Services-слой — инкапсулирует доступ к данным из различных источников и бизнес-логику (Data Services)

Связывание данных для View- и Controller-слоев происходит в модельном слое. В основном, оно осуществляетя двумя видами компонентов:

  • Элементы управления данными (Data Controls)
  • Привязки данных (Data Bindings)

которые описываются метаданными.

Поддерживаемые технологии[править | править вики-текст]

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

Model[править | править вики-текст]

Controller[править | править вики-текст]

View[править | править вики-текст]

  • Excel через ADF desktop integration

Oracle JDeveloper свободная IDE обеспечивает графический интерфейс для разработки приложений с использованием ADF.

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

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

Разработка мобильных приложений[править | править вики-текст]

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

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

Компоненты[править | править вики-текст]

ADF Faces[править | править вики-текст]

Разработка пользовательского интерфейса (UI). UI-компоненты могут быть обновлены в браузере технологиями AJAX или Server Push без выполнения нового HTTP-запроса. ADF Faces библиотека компонентов расширяет Apache MyFaces Тринидад библиотеку.

ADF Faces фреймворк поддерживает:

  • Частичную загрузку страниц (Partial Page Rendering, PPR)
  • Потоковую передачу данных (Streaming)
  • ADF привязку данных (Binding)
  • Диалоги, всплывающие окна (Popup) и меню
  • Drag & Drop функции
  • Полную JavaScript API
  • Шаблоны
  • Настройку с помощью CSS
  • Многоязычие
  • Язык выражений (Expression Language)
  • Различные контейнеры Java EE

Данные хранятся на клиентской стороне как DOM, а на серверской — как дерево в памяти (In-Memory Tree). Визуализация обеспечивается для различных оконечных устройств (мобильных устройств, браузеров).

ADF Task Flow[править | править вики-текст]

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

ADF Model[править | править вики-текст]

ADF модель является ядром Oracle ADF. Она обеспечивает уровень абстракции между слоями бизнес-сервисов и пользовательского интерфейса и впервые была представлена с Oracle JDeveloper 9.0.5. Перед этим каждый разработчик был сам ответственен за связи между UI (например, Swing , JSP или JSF) и бизнес-службами (data binding). Например, нужно было использовать JSP-теги для подключения текстового поля к атрибуту бизнес-службы. Теперь разработчик подключает UI к модели и модель к бизнес-службам. Эта концепция была описана в спецификации JSR 227 и представлена для стандартизации.

Таким образом, модель ADF обеспечивает единый интерфейс программирования для различных бизнес-служб (Web Services, Enterprise JavaBeans, Java, JDBC и т. д.). При более высокой сложности эта архитектура имеет ряд преимуществ:

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

Разработчик бизнес-службы обеспечивает так называемые Data Controls (элементы управления данными). Они включают в себя все данные и методы бизнес-службы, предоставляемые для UI-слоя. Разработчик UI связывает эти DataControls с компонентами UI и, таким образом, создает так называемое привязки данных (Data Binding). Для определения Data Binding используется синтаксис JSTL языкв выражений (EL). Oracle ADF обеспечивает для распростаненных технологий бизнес-служб предопределенные реализации Data Controls.

ADF Business Components[править | править вики-текст]

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

  1. Энтитеты (Entity Objects)
  2. Представления (View Objects)
  3. Ассоциации (Association) и ссылки (Viewlink).
  4. Модули приложений (Application Modules)
  5. Тестеры бизнес-компонентов

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

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

Ассоциации описывают отношения между энтитетами и могут рассматриваться как PrimaryKey/ForeignKey связи между таблицами БД. Ссылки указывают на взаимосвязь между представлениями и определяют Join-условия, подобно тому, как это делается в SQL. Ссылки могут базироваться на атрибутах или ассоциациях. Ссылки, базирующиеся на ассоциациях имеют то же преимущество энтити-кэша.

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

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

ADF Metadata Services[править | править вики-текст]

Важным средством декларативный разработки корпоративных приложений с использованием 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 компонентами) проекту с открытым кодом en:MyFaces Trinidad.

Лицензирование[править | править вики-текст]

Детали лицензирования описаны на OTN (Oracle Technology Network).

См. также[править | править вики-текст]

Литература[править | править вики-текст]

  • 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.

Ссылки[править | править вики-текст]