Oracle ADF
| Oracle ADF | |
|---|---|
| Тип | фреймворк |
| Разработчик | Oracle |
| Аппаратная платформа | Java Virtual Machine |
| Последняя версия |
|
| Лицензия | проприетарная |
| Сайт | 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.
Ссылки
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.