You are on page 1of 7

ADF Application Development Framework

Oracle Application Development Framework (Oracle ADF) is an end-to-end application


framework that builds on Java EE standards and open-source technologies to simplify and
accelerate implementing enterprise applications. Oracle ADF is suitable for enterprise developers
who want to create applications that search, display, create, modify, and validate data using web,
mobile, and desktop interfaces.
You can use the whole Oracle ADF framework to create an application, or you can use
parts of the framework in combination with other technologies.
1. Oracle ADF Key Concept
Oracle ADF is based on the following concepts:
Rich component sets for web, mobile, and desktop clients
Declarative and reusable business logic and validation
Declarative data binding
Separation of UI-related and data-related elements (MVC architecture)
Enhanced page flow functionality, including modular and reusable task flows
Declarative security on ADF resources
Customer level and developer level customization through metadata.
2. What is Model-View-Controller?
It is a popular design pattern used by ADF. Design patterns are simply a convenient way
of reusing object-oriented concepts between applications and developers. The main idea
behind design patterns is to document and catalog common behavior patterns between
objects so that developers can then make use of these patterns rather than re-create them.
The model manages the data of the application domain, responds to requests for
information about its state (usually from the view), and responds to instructions to
change state (usually from the controller).
The view manages the presentation of the application output (UI) to the user
The controller interprets the mouse and keyboard inputs from the user,
commanding the model and/or the view to change as requested.
3. Oracle ADF Key Components
Provides a synopsis of the central high-level components in the ADF stack,
including some of the underlying technologies such as Java Server Faces (JSF) as
well as other business and data services that are commonly part of an application.

ADF Architecture

ADF Model
ADF Model is a central part of Oracle ADF, enabling you to create ADF applications
based on different types of business services. ADF Model implements data controls and data
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 Oracle JDeveloper, developers can view that information as icons that they can
easily drag and drop onto a page. When the developer drags the representation of the service
onto the page, Oracle JDeveloper automatically creates the bindings from the page to the
services. At runtime, the ADF Model layer reads the information describing the application's

data controls and data bindings from appropriate XML files and implements the two-way
connection between the user interface and the application's business services.
Oracle ADF provides ready-to-use data control implementations for common
business service technologies, such as the following:

ADF Business Components

Enterprise JavaBeans (EJB) session beans and JPA Persistence API entities

JavaBeans components

Web services (SOAP and REST)

ADF Business Components


Oracle ADF Business Components (ADF BC) provides building blocks that help you
to create the business services part of your application. That is, it governs interaction between
the rest of the application and the data stored in the data source, providing validation, specific
servies.
ADF Business Components are implemented in metadata that you write by using
wizards and that you edit declaratively.
It is based on standard Java and XML.
It implements all the popular Java EE design patterns, such as
Model/View/Controller, Interface/Implementation Separation, and Session
Faade.
It organizes components into packages.
Most of the classes and interfaces comprising the ADF BC prebuilt codes are in the
oracle.jbo or the oracle.jbo.server packages.
ADF Controller
In the controller layer of MVC applications, ADF Controller provides an enhanced
navigation and state management model on top of JSF's controller layer. Using JDeveloper,
you can declaratively create task flows that can manage application control between different
types of activities, such as pages, methods on managed beans, declarative case statements, or

calls to other task flows. In addition, you can create bounded task flows, which are reusable
task flow segments that can be called from an overall task flow.
ADF Faces
ADF Faces provides the view layer for ADF applications. ADF Faces is a complete
view framework that consists of over 150 Ajax-enabled Java Server Faces (JSF) components,
all built on top of the JSF standard. ADF Faces also can be used as a standalone component
set that works with other non-ADF controller and model technologies.
ADF Mobile Browser
ADF Mobile browser enables you to create application views that are optimized for
browsers on small devices.
ADF Desktop Integration
ADF Desktop Integration enables developers to extend Fusion web applications so
that end users can work with them using Microsoft Excel workbooks as a client.
ADF Swing
ADF Swing is a framework for developing data bound Java clients that use ADF
Model to access business services. You can use ADF Swing to work with a number of
business services on the back end, including ADF Business Components, Enterprise
JavaBeans components, and web services.
ADF Security
The ADF Security framework uses and extends the Oracle Platform Security Services
(OPSS) architecture to simplify the securing of ADF applications and enables fine-grained
access control for ADF resources such as bounded task flows.
Oracle Metadata Services
The Oracle Metadata Services (MDS) framework allows you to create applications
that your customers can further customize for their users or customers and which the end
users can also customize without touching the source code or affecting the ability of the
application to be patched or updated.
4. What are the types of ADF BC?
Entity objects: represent objects in the data source (usually tables, views, and synonyms
in a database)

Associations: represent relationships between Entity objects (such as foreign key


relationships).
View objects: collect data from the data source, usually by a SQL query.
View links: represent relationships (such as master-detail relationships) between view
object result sets.
Application modules: provide a single point of access to the view objects and view
links.

5. What is ADF BC Tester?


JDeveloper provides a way to test the data model without creating a client
application. You can perform this testing by using the Business Component Browser,
sometimes also referred to as the Business Component Tester or the BC Tester. To use the
Business Component Browser to test the data model, you right-click the application
module in the Application Navigator and select Run from the context menu .
6. What is ADF Data Controls?
ADF Model implements service abstraction called the data control which provides
data control implementations for the most common business service technologiesEJB,
Web services, Top Link, Java classes, and ADF Business Components. Whichever
implementation you choose, JDeveloper and ADF work together to provide you a
declarative, drag-and-drop data binding experience as you build the user interface for
your application. When you create an ADF BC application module, it is automatically
exposed as a data control, including all the view object and view link instances that it
contains.

7. What are the types of View Objects?


Updatable View through Entity Objects: Using entity object references enables view
object instances to update data, use validation and other business rules from the entity
object definition, and immediately synchronize data with other view object instances.
Read-only Access View: SQL-only view objects bypass entity cache population and are
faster for many applications. Note that view objects of this type save changes in memory
only, and are not persisted in the database.
8. What will happen if I change the database table or view on which my Entity Object
is based?
If you alter a table or view for which you have already created an entity object,
the existing entity is not disturbed by the presence of additional attributes in its
underlying table. However, if you want to access the new table column in your
application, you first need to synchronize the entity object with the database table. To

perform this synchronization from JDeveloper, right-click the entity object in question
and choose Synchronize with Database from the context menu.
9. Creating and Using Managed Beans
Managed beans are Java classes that you register with the application using
various configuration files. When the JSF application starts up, it parses these
configuration files and the beans are made available and can be referenced in an EL
expression, allowing access to the beans' properties and methods. Whenever a managed
bean is referenced for the first time and it does not already exist, the Managed Bean
Creation Facility instantiates the bean by calling the default constructor method on the
bean. If any properties are also declared, they are populated with the declared default
values.
Often, managed beans handle events or some manipulation of data that is best
handled at the front end.
10. Introduction to ADF Task Flows
ADF task flows provide a modular approach for defining control flow in an
application. Instead of representing an application as a single large JSF page flow, you
can break it up into a collection of reusable task flows. Each task flow contains a portion
of the application's navigational graph. The nodes in the task flows are activities.
An activity node represents a simple logical operation such as displaying a page,
executing application logic, or calling another task flow. The transactions between the
activities are called control flow cases.
Task flows can invoke managed beans.
Task Flow Advantages
ADF task flows offer significant advantages over standard JSF page flows, as
described in Table 14-1.
JSF Page Flow

ADF Task Flow

The entire application must be represented


in a single page navigation file (facesconfig.xml). Although you can have
multiple copies offaces-config.xml in a
project, the application loads these files as
one at runtime.

The application can be broken up into a


series of modular flows that call one
another.

All nodes within a JSF page flow must be JSF You can add to the task flow diagram
pages. No other types of objects can exist
nodes such as views, method calls, and
within the JSF page flow.
calls to other task flows.
Navigation is only between pages.

Navigation is between pages as well as

JSF Page Flow

ADF Task Flow


other activities, including routers.

Application fragments cannot be reused.

ADF task flows are reusable within the


same or an entirely different application.
After you break up your application into
task flows, you may decide to reuse task
flows containing common functionality..

There is no shared memory scope between


multiple requests except for session scope.

Shared memory scope (for example,


page flow scope) enables data to be
passed between activities within the
task flow. Page flow scope defines a
unique storage area for each instance of
an ADFBT

You might also like