2. Oracle ADF
Motivation – Challenges building J2EE apps
Building J2EE applications can be complex.
Development time can be extensive.
Choosing and implementing appropriate design
patterns can be overwhelming.
“Do it yourself” applications often repeat existing
application code.
A large portion of “do it yourself” code is dedicated to
common tasks.
The more code you write, the greater the chance of
errors.
An application framework is needed.
3. Oracle ADF
Introduction
Reduces the complexity of J2EE development by
providing visual and declarative development
Increases development productivity
– Less coding, more reuse
– Focus on the application, not the “plumbing”
Provides a flexible and extensible environment by
allowing multiple technology choices and
development styles
Encourages J2EE best practices by implementing
standard J2EE design patterns
4. Oracle ADF
End-to-end J2EE Framework
Implements standard J2EE best practices
Model-View-Controller (MVC) design pattern
Rich Clients Web and Wireless Clients
Controller
Model
Business Services
Focus on the application, not the “plumbing”
Consolidation and evolution of previous frameworks
6. Oracle ADF
J2EE Architecture (Simplified)
Enterprise
JavaBeans
ADF Business
Components
Web Services
Java Objects
Clients Business Services Database
7. Oracle ADF
No Standard API for Client Binding
Enterprise
JavaBeans
ADF Business
Components
? JDBC
Web Services
Java Objects
Clients Business Services Database
8. Oracle ADF
ADF Model
Data Controls
Data Binding
JSR-227: “A Standard Data Binding & Data
Access Facility for J2EE” Business
Component
Web
Service
TopLink
Model
EJB
Java
Class
9. Oracle ADF
ADF Model Architecture
Data control: describes the values and
actions defined by the business service
Bindings: define how UI
components use the Client
values and actions in
the data model Bindings
Data Control
Business Service
10. Oracle ADF
ADF Model Architecture
Decouples client and business service layers
Client code contains no references to the
business service
– Better design practice
– Code is more maintainable
Architecture can be extended to add more
types of business services
11. ADF Business Components
Simplifies and
optimizes
O/R mapping
Simplifies and
optimizes
binding of
View to logic
Deployed
either as a
Local Model or
as a remote
Session Facade
Flexible Deployment
12. ADF BC High-level architecture
HTML, Java, and Task-Based Data Presentation Business
XML Interfaces App Service & Manipulation Logic
L
XM Application View Entity
Payment SlowPaying Customer
Plan Mgmt Customers
Bill
Late
Payments
Payment
13. ADF BC Application
View Objects Entity Objects
Top Customer
Customers
Customer
Pending
Order Ord
Orders Database
Application Module
18. UI works with the
application module as
backend business
service
19. As you build new
applications, underlying
components are reusable
20. ADF – Productivity With Choice
Rich Client Web / Wireless
JSF/ADF
Swing / JClient JSP ADF UIX FACES View
Struts/JSF Controller
ADF Bindings
ADF Data Control
Model
ADF Metadata Services
Java
EJB ADF Business Web Business
Session
Classes
Beans
Components
Service Object
Services Services
ADF Business
TopLink EJB Data
JDBC Components
Queries Finders Access
Query Object
ADF Business Persistent
Java Classes EJB Entity Beans Business
Components
TopLink Mapping Entity Object Objects
21. ADF Faces
Built on top of JSF APIs
A large component set >100 different components
Far more advanced and interesting components
– Partial-page rendering, etc.
ADF model support out-of-the-box
ADF Faces skins (Look and Feel)
ADF Databinding (JSR 227)
Open Source per January 2006
– http://www.oracle.com/technology/products/jdev/ht
docs/faq_adffaces_apache.html
23. ADF Faces
ADF Faces also includes many of the framework
features most needed by JSF developers today:
– File upload support is integrated at a component
level
– Client-side validation is automatically derived from
Validators and Converters for an improved user
experience
– A pageFlow scope makes it easier to pass values
from one page to another
– A new hybrid state saving strategy gives developers
the best of both client and server-side state saving
24. JSF Architecture Renderer
with ADF UI Component Expr. Language
EL accesses “bindings” object
to value bind UI components JSF Page
ADF “bindings” Object
ADF “bindings” object is set
through ADF Filter in web.xml ADF Binding
Bindings object accesses ADF
ADF DataControl
Binding container, which then
accesses DataControl
Business Services provide Business Business Business
access to various data sources Service 1 Service 2 Service 3
XML
RDBMS URL
WS
25. Demonstration
Develop a more complex Web Application
based on ADF Faces
1. Create ADF Business Components model
2. Layout flow
3. Make Edit page
4. Optional: Make Create page
Editor's Notes
The UIX components that you use to create your user interfaces can be broadly divided into three groups: Simple components Layout components Composite components Simple components define visible objects like text and images, and objects that map to standard HTML controls on a page. Examples include Button, Image, and Text components. Layout components do not map to visible objects but define the appearance, behavior, and position of other visible objects. Examples include TableLayout, PageLayout, and StackLayout components. Composite components define more complex visible objects that have greater interactive usage. Examples include Shuttle, HideShow, and Tree components.