Title: ADF
1Web Application Development Using ADF Faces
Karsten Schulz Senior Principal Consultant Oracle
Denmark
2Agenda
- Application Developer Framework (ADF)
introduction - Java Server Faces (JSF) introduction
- Short on ADF Faces
- Using JSF/ADF Faces in a development case
- Q/A
3Challenges Faced when Building J2EE Applications
- 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.
4Oracle Application Development Framework
- 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
5Oracle ADFEnd-to-end J2EE Framework
- Implements standard J2EE best practices
- Model-View-Controller (MVC) design pattern
- Focus on the application, not the plumbing
- Consolidation and evolution of previous frameworks
6Oracle ADFVisual and Declarative Development
- End-to-end Application Development
- J2EE Services
- Visual
- WYSIWYG editors
- UML modelers
- Structure pane
- Declarative
- Structure pane
- Property inspector
- Code View/Design View Synchronization
- No separate generation step - always synchronized
- Underlying code always accessible
7J2EE Architecture (Simplified)
EnterpriseJavaBeans
ADF Business Components
Web Services
Java Objects
Business Services
Clients
Database
8No Standard API for Client Binding
EnterpriseJavaBeans
ADF Business Components
?
JDBC
Web Services
Java Objects
Business Services
Clients
Database
9ADF Model
- Data Controls
- Data Binding
- JSR-227 A Standard Data Binding Data Access
Facility for J2EE
BusinessComponent
Web Service
TopLink
Model
EJB
JavaClass
10ADF Model Architecture
- Data control describes the values and actions
defined by the business service
- Bindings define how UI components use the values
and actions in the data model
Client
Bindings
Data Control
Business Service
11ADF 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
12Drag-and-Drop Binding
- Data Control Palette
- Expose any business service
- Available to any client
13ADF Productivity With Choice
Rich Client
Web / Wireless
View
JSF/ADF FACES
ADF UIX
Swing / JClient
Swing / JClient
JSP
ADF UIX
Controller
Struts/JSF
ADF Bindings
ADF Bindings
Model
ADF Data Control
ADF Data Control
BusinessServices
ADF Business ComponentsService Object
JavaClasses
EJBSessionBeans
WebServices
ADF Metadata Services
ADF Metadata Services
ADF Business ComponentsQuery Object
JDBC
TopLinkQueries
EJBFinders
DataAccess
ADF Business ComponentsEntity Object
PersistentBusinessObjects
Java Classes
EJB Entity Beans
TopLink Mapping
14JavaServer Faces (JSF)Overview
- Developed through Java Community Process as JSR
127 - Nickname Faces
- Goal Simplify creation of Java Server GUIs
- Started May 2001
- First relase March 2004
- Oracle is a primary contributor
15JavaServer Faces (JSF)Overview - Why JSF?
- So whats all the fuss about?
- What makes JSF so compelling?
- Why are IBM, Sun and Oracle devoting serious
resources to JSF? - Why another framework?
16JavaServer Faces (JSF)Overview - Here is why!
JSF brings backing of a standard specification
JSR 127
17JavaServer Faces (JSF)Overview
- JSF is a natural evolution of J2EE Web development
Again, too low level
Finally, a comprehensive, standard API for J2EE
Web applications!
Not standard
Easier butscriptlets
Too low level
18JSF Architecture
Front Controller
BackendCode
HTML render kit
WML render kit
19JSF Architecture
Renderer
UI Component
Expr. Language
- UIComponent is rendered through Renderer class
- Expression Language Value Binding is used to
access managed bean also know as a "backing bean" - Managed bean accesses J2EE persistence layer
Managed bean
JSF Page
J2EE Persistence Layer / JDBC
RDBMS
20JavaServer Faces (JSF)Oracle ADF Faces
- Built on top of JSF APIs
- A large component set gt100 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/htd
ocs/faq_adffaces_apache.html
21JavaServer Faces (JSF)Oracle ADF Faces
22JavaServer Faces (JSF)Oracle 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
23JSF Architecture with ADF
Renderer
UI Component
Expr. Language
- EL accesses bindings object to value bind UI
components - ADF bindings object is set through ADF Filter
in web.xml - Bindings object accesses ADF Binding container,
which then accesses DataControl - Business Services provide access to various data
sources
ADF bindings Object
JSF Page
ADF Binding
ADF DataControl
BusinessService 3
BusinessService 2
BusinessService 1
XML
URL
RDBMS
WS
24JavaServer Faces (JSF)Oracle ADF Faces Extend
the JSF life cycle
Happens through a registered phase- listener