Concepts and Architecture
What is ADF?
Oracle ADF
is an end-to-end development framework, built on top of the Enterprise Java
platform, offering unparalleled productivity to application developers. The
framework provides integrated infrastructure solutions for the various layers
of the application and an easy way to develop on top of them.
ADF includes a set of over a 150
standards-based Java Server Faces (JSF) components with built-in Ajax
functionality. Oracle ADF simplifies Java EE development by minimizing the need
to write code that implements the application's infrastructure allowing the
developers to focus on the features of the actual application. Oracle ADF provides
these infrastructure implementations as part of the framework.
To recognize a set of runtime services is
not enough, Oracle ADF is also focused on the development experience to provide
a visual and declarative approach to Java EE development through the Oracle
JDeveloper 11g development tool.
What is the ADF Architecture?
The Oracle
ADF is based on the Model-View-Controller (MVC) design Pattern. The following
figure shows the bigger picture for ADF :
The architecture has four layers:
1. The Business Services layer - provides
access to data from various sources and handles business logic.
2. The Model layer - provides an
abstraction layer on top of the Business Services layer, enabling the View and
Controller layers to work with different implementations of Business Services
in a consistent way.
3. The Controller layer - provides a
mechanism to control the flow of the Web application.
4. The View layer - provides the user
interface of the application.
It's worth noting though that ADF is
actually much bigger than the above diagram depicts - it allows you to use
other technologies as well, if needed. For example you can use EJB/JPA for
persistence, Web Services as sources of data etc.
What is the MVC Architecture?
How?
An
MVC application is separated into:
1) A Model layer that handles interaction with
data-sources and runs the business logic,
2) A View layer that handles the
application user interface.
3) A Controller that manages the
application flow and acts as the interface between the Model and the View
layers.
The Oracle ADF architecture is based on
four layers:
1. The Business Services layer - provides
access to data from various sources and handles business logic.
2. The Model layer - provides an
abstraction layer on top of the Business Services layer, enabling the View and
Controller layers to work with different implementations of Business Services
in a consistent way.
3. The Controller layer - provides a
mechanism to control the flow of the Web application.
4. The View layer - provides the user
interface of the application.
Oracle ADF lets developers choose the
technology they prefer to use when implementing each of the layers. The
glue that integrates the various components of Java EE applications and makes
development so flexible is the Oracle ADF model layer. EJB, Web Services, JavaBeans,
JPA/EclipseLink/TopLink objects and many others can all be used as Business
Services for the Oracle ADF Model. View layers can include Web based interfaces
implemented with JSF, Desktop Swing applications and MS Office front ends, as
well as interfaces for mobile devices.
What are ADF UI Components?
What is ADF Faces?
The ADF UI
components are user-interface components with built-in functionality
that are configurable, reusable elements that provide user
interfaces such as a simple button or a complex data table.
ADF Faces is a large set of over a 150 UI
components built on top of the standard JSF APIs that leverage the latest
technologies, including partial page rendering and Ajax, to provide a rich, interactive
user interface.
What are ADF Business
Services/Business Components?
ADF
Business Services manages interaction with persistence data. The Business
Services layer provides access to data from various sources and handles
business logic.
The Business Services in Oracle ADF can be
implemented in any of the following options: as simple Java classes, EJB, Web
services, JPA objects, and Oracle ADF Business Components. In addition, data
can be consumed directly from files (XML or CSV) as well as REST.
ADF Business Components are
"building-blocks" that provide the most productive way to create,
deploy, and maintain a business service. ADF Business Components dramatically
simplifies the development, delivery, and customization of enterprise J2EE
business applications by providing you with a set of intelligent software
building-blocks that save development time by making many of the most typical
development task declarative. They provide a foundation of Java classes that
allow your business-tier application components to leverage the functionality
provided in the following areas ,Simplifying Data Access , Enforcing Business
Domain Validation and Business Logic, Supporting Sophisticated UIs with
Multipage Units of Work, Implementing Best Practice, High-Performance
Service-Oriented Architecture, and Streamlining Application
Customization .
What are ADF Bindings?
The ADF
binding layer can be considered as the interface between data and data access.
It provides a standard interface to the data there by giving a consistent data
access. The binding layer provides a consistent interface to the data
regardless of where it comes from there by giving freedom to the end users to
implement their UI's based on the binding layer. Oracle ADF Model
implements the two concepts that enable decoupling the user interface
technology from the business service implementation: data controls and
declarative bindings.
Data controls abstract the implementation
technology of a business service by using standard metadata interfaces to
describe the service's operations and data collections, including information
about the properties, methods, and types involved. In an application that uses
business components, a data control is automatically created when you create an
application module, and it contains all the functionality of the application
module. Developers can then use the representation of the data control
displayed in JDeveloper's Data Controls panel to create UI components that are
automatically bound to the application module. At runtime, the ADF Model layer
reads the information describing the data controls and bindings from
appropriate XML files and implements the two-way connection between the user
interface and the business service.
Declarative bindings abstract the details
of accessing data from data collections in a data control and of invoking its
operations. There are three basic kinds of declarative binding objects:
Iterator bindings: Simplify the building
of user interfaces that allow scrolling and paging through collections of data
and drilling-down from summary to detail information.
Value bindings: Used by UI components that
display data. Value bindings range from the most basic variety that work with a
simple text field to more sophisticated list and tree bindings that support the
additional needs of list, table, and tree UI controls.
Action bindings: Used by UI components
like hyperlinks or buttons to invoke built-in or custom operations on data
collections or a data control without writing code.
What
is MDS? How does ADF use it?
Oracle Metadata Services (MDS) allows the
end user to customize their Web application to tailor the UI to meet their
individual needs and desires without programing changes to the base
application.
Customization and personalization are
dynamic structure and property changes to the metadata of application documents
like views, bindings and task flow definition files. Modifications that, for
example, are applied as customization to a page or a page fragment include the
addition, removal or property changes of UI components.
An application that is customized with MDS
consists of a base application and one or many customization layers that hold
the modifications that are applied at runtime. A customization layer is defined
by a set of metadata documents that are stored in a metadata store on the file
system or the MDS database repository.
Oracle MDS for Oracle Fusion web
applications and all runtime changes of a component that are performed by the
application user, such as reordering of table columns are transient and only
last until the page is next refreshed. To configure component changes to
last longer, application developers need to enable change persistence in Oracle
ADF Faces. Change persistence is a component level framework in ADF Faces that
tracks UI changes by the application user or programmatically applied by the
application developer in response to a user action. This allows these changes
to persist for the duration of the application user session. Oracle MDS can
then be used to further extend the change persistence behavior to persist
changes across application restarts. This enhanced behavior is enabled through
a simple options dialog shown in Figure 4. Under the covers, these options make
changes to the web.xml and the adf-config.xml configuration files for the
application.
What is Partial Page Rendering
in ADF Faces?
AJAX
(Asynchronous JavaScript and XML) is a web development technique for creating
interactive web applications, where web pages appear more responsive by
exchanging small amounts of data with the server behind the scenes, without the
whole web page being rerendered. The effect is to improve a web page's
interactivity, speed, and usability.
With ADF Faces, the feature that delivers
the AJAX partial page render behavior is called partial page rendering (PPR).
PPR allows certain components on a page to be rerendered without the need to
rerender the entire page. For example, an output component can display what a
user has chosen or entered in an input component, or a command link or button
can cause another component on the page to be rerendered, without the whole
page rerendering.
What
is an Application Module?
An application module is an ADF Business
Components component that encapsulates the business service methods and
UI-aware data model for a logical unit of work related to an end-user task.
The application module is the "work
unit" container that includes instances of the reusable view objects
required for the use case in question, related through metadata to the
underlying entity objects in your reusable business domain layer whose
information the use case is presenting or modifying.
What
version of JavaServer Faces does ADF 11g require?
All other ADF 11g versions prior to 11.1.2
use JSF 1.2.
Development, Deployment and Runtime
Is there any guidance for Forms
customer migrating to ADF?
Do
I need to know Java to learn and work with ADF?
Yes, you need to have an understanding
of the basic concepts of Java. The JDeveloper declarative
development approach reduces the learning curve for developers familiar
with 4GL-style tools. You can learn and build simple applications with ADF
without an extensive knowledge of Java but more complex applications require
knowledge of Java to take advantage of all the rich capabilities provided by
ADF.
How
flexible is ADF? Can I override code in ADF?
Yes, ADF generate code can be overriden to
customize and extend it for your needs without changing the core ADF source
code. However, if you wish, you can also requested ADF source code via
Oracle support.
Can
I request the source code for ADF?
Yes, supported customers can request a
copy of the source code from Oracle Support. See Note 971256.1 How to Request
the ADF Libraries Source Code .
How
can Oracle JDeveloper enhance my ADF Development experience?
Many of the other Java EE frameworks lack
strong integrated support by development tools. Oracle JDeveloper provides
visual aids and a declarative approach to minimize the need to write framework
code, making it a perfect tool for building Oracle ADF-based applications. This
declarative development approach also reduces the learning curve for developers
familiar with 4GL-style tools.
Can
I upgrade a 10.1.3 ADF application to 11g?
Yes, upgrade from 10.1.3 production
releases to 11g is supported as a one way upgrade. Note that any usage of the
ADF Faces JSF components (10.1.3) are automatically migrated to using the
Apache MyFaces Trinidad components as part of this upgrade process. For more
information on the migration process please consult this page on OTN. Once an
application has been upgraded it can no longer be deployed to a Java Enterprise
Edition 1.4 Application server such as Oracle Application Server 10.1.3.
If
I upgrade my 10.1.3 ADF application to 11g will I get the new ADF Faces Rich
Client components?
No, upgraded ADF applications undergo a
like-for-like migration to the Apache MyFaces Trinidad components and retain
the same functionality as the application in 10.1.3. Taking advantage of new
ADF 11g features such as the Rich Client Components and ADF Task Flows requires
a degree of redesign for the application to fully exploit the new capabilities
that are present in this release.
Can
I deploy my ADF 11g application to Oracle Application Server 10.1.3 (or
earlier)?
No, Oracle AS 10.1.3 only supports version
1.4 of the Java Enterprise Edition standard. ADF 11g applications require a 1.5
compatible server such as Oracle WebLogic 10gR3. See the section on licensing
for the implications of this if you are currently not licensed for a suite that
includes WebLogic.
25. How do I install the ADF Runtime into
a stand-alone WebLogic server?
Running the JDeveloper installer on the
target application server will provide the option to install just the ADF
runtime libraries into an existing WebLogic home. You can then configure your
domain to use this library. For more information consult the install guide.
26. What Browsers are supported for
running ADF Faces Rich Client 11g applications?
The list of supported browsers is here.
Please consult the installation guide in the JDeveloper documentation set for
the latest support information.
Where
can I deploy & run my ADF Applications?
ADF 11g applications require a Java
Enterprise Edition 5 container The Application severs supported and
Certified to run ADF version 11 include weblogic 10.3.x and IBM
WebSphere 7 (Please see the certification
matrix for exact versions)
Download and Additional Resources
Where can I
download ADF?
A runtime version of ADF can be download
from the Oracle Application Development Framework page on OTN: Downloads for Oracle ADF
What
is a good place to start on learning ADF?
The Oracle Application Development
Framework page on OTN has links to ADF Insider Basics - Recorded Sessions,
Online Demos, Step-by-Step Tutorials and Oracle ADF Insider Essentials.
Are
there any code examples for ADF?
Where
can I find sample applications for ADF?
The Fusion Order Demo is a comprehensive
integrated sample that showcases many of the key features of the ADF framework
. Many other samples are also available from OTN.
How
can I stay up-to-date with ADF news?
The best places to keep up to date with
the latest news on ADF are :
·
ADF blogs from Oracle Product Management
etc :
o
ADF Unleashed, by the Oracle ADF
Community
Where
can I get help with ADF issues?
JDeveloper 11g comes with a large and
comprehensive set of documentation covering both the development environment
and the frameworks. Additionally the product includes a set of cue cards on the
product help menu which will step you through features in an interactive
manner.