oracle’s application development framework (adf) en jheadstart – tijd om de balans op te maken
DESCRIPTION
Oracle’s Application Development Framework (ADF) en JHeadstart – Tijd om de balans op te maken. Sandra Muller en Peter Ebell (Oracle) en Lucas Jellema (AMIS) AMIS Query, Donderdag 26 mei 2005. Agenda. Welkom en introductie Inleiding ADF Binding Framework ADF en WebServices - PowerPoint PPT PresentationTRANSCRIPT
1AMIS Query - Oracle ADF en JHeadstart, Tijd om de balans op te maken
Oracle’s Application Development Framework (ADF) en JHeadstart –
Tijd om de balans op te maken
Sandra Muller en Peter Ebell (Oracle) en Lucas Jellema (AMIS)
AMIS Query, Donderdag 26 mei 2005
2AMIS Query - Oracle ADF en JHeadstart, Tijd om de balans op te maken
Agenda
Welkom en introductie Inleiding ADF Binding Framework ADF en WebServices ADF UIX – Customizing the Look & Feel through
Skins ADF en JHeadstart – status en toekomst Diner (18.00 uur) Workshop (tot 20.30?)
3AMIS Query - Oracle ADF en JHeadstart, Tijd om de balans op te maken
Oracle Application Development Framework
Preview Fall 2003 Production Spring 2004
ADF label on JClient, UIX and BC4J
Core of ADF (JSR 227):DataBinding Framework
Valuable facilities: LifeCycle support in Struts and JClient Integration with IDE:
• Easy registration of DataControls• Drag and drop DataControlBinding and UI generation
4AMIS Query - Oracle ADF en JHeadstart, Tijd om de balans op te maken
JHeadstart
Toolset for Declarative Application Development Started life in 2001 within Oracle Consultancy Late 2004: 10.1.2 release – support for ADF
Generation of View and Controller based on Model and XML-based application definition Oracle 9iAS MVC Framework and Struts JSP and UIX BC4J (ADF BC) and Toplink (only in 9.0.5.x release)
Support for generation from Oracle Designer Run-time libraries
Struts enhancements; for example Multi Record DML, messages Client Side: calendar window, no changes to commit Before ADF: data binding between VC and M
5AMIS Query - Oracle ADF en JHeadstart, Tijd om de balans op te maken
JHeadstart
Next (Patch) Release – end of June Fixes and New features!
Only available through Supplement Option NOT on OTN
Do not take the software with you!
6AMIS Query - Oracle ADF en JHeadstart, Tijd om de balans op te maken
Model-View-Controller
View
Controller
Model
Business Service Business Service Business ServiceADF BC op Oracle RDBMS
POJO• TopLink op MySQL• Spring Framework
WebService op BPEL
HTML – JSP or UIX (WebApp)GUI – Swing (Java Client)SOAP/ XML (WebService)PDF, Excel, Email (Java App)
Context
Query DataManipulate Data (update, insert, delete)Invoke methods: calculations, validations,…
Business Service
•Request•Event•Call/Invocation
7AMIS Query - Oracle ADF en JHeadstart, Tijd om de balans op te maken
MVC and Role Separation
Model is View-unaware Model provides services, regardless of who will use
them View is Model-unaware
View receives data (POJO) to make use of without knowing where the data originates from
Controller is Model-implementation unaware Controller invokes Model services without needing to
know the specific technical implementation
8AMIS Query - Oracle ADF en JHeadstart, Tijd om de balans op te maken
ADF Binding Framework
Model provides DataControls that implement generic interfaces Attribute
• getValue, setValue Collection
• First, Last, Next, Previous, Next Set, Previous Set Method
• setParameters, Invoke (doIt), getResult Business Service
• Operations: Commit, Rollback ADF contains AdapterClasses that implement the
DataControl interfaces for different technologies Some or more equal than others For example: ADF BC ViewObject wrapped to implement a Set-
style DataControl
9AMIS Query - Oracle ADF en JHeadstart, Tijd om de balans op te maken
ADF Binding FrameworkRegistering DataControls for a Business Service
Model
Business Service Business Service - POJOADF BC op Oracle RDBMS
HrmService Employee
HrmService employeesraiseSalaries name job
10AMIS Query - Oracle ADF en JHeadstart, Tijd om de balans op te maken
Applications register DataControl Bindings
Applications are consumers of DataControls Application components register Usage of
DataControls (aka DataControl Bindings) In the UI Model (aka Binding Container) A bit similar to Oracle Designer’s Module Component
with table-usages and column-usages Depending on Application Technology, we will
have one UI Model per Struts Action (== JSP or UIX page) JClient Frame Java Class
11AMIS Query - Oracle ADF en JHeadstart, Tijd om de balans op te maken
ADF Binding Framework - Registering DataControl Usages – Creating UI Model
Model
HrmService employeesraiseSalaries name job
Struts + JSP JClient (Swing GUI)
SimpleClient (Java program)
12AMIS Query - Oracle ADF en JHeadstart, Tijd om de balans op te maken
ADF Binding Framework - Registering DataControl Usages – Creating UI Model
Model
HrmService employeesraiseSalaries name job
13AMIS Query - Oracle ADF en JHeadstart, Tijd om de balans op te maken
Demo – Register DataControls and Build UI Models
ADF Business Components HrmService ViewObject employees based on Table scott.EMP Method raiseSalaries()
Struts + JSP WebApplication DataControl Usage = ControlBinding (iterator binding)
for employees as Read Only Table DataControl Usage = ControlBinding (action binding)
for raiseSalaries as button• And Method Result as display text
Simple Client Java Application Iterator Binding employees + Action Binding
raiseSalaries
14AMIS Query - Oracle ADF en JHeadstart, Tijd om de balans op te maken
Switching Business Services
The application accesses generic DataControl Binding interfaces It is unaware of the business service or the actual
implementation The application only needs:
• Name of DataControl• Type of DataControl (Attribute, Collection, Action)
If an alternative Business Service provides the same set of Data Controls Same name, same type
… Then the application should without any change be able to run with the alternative service
15AMIS Query - Oracle ADF en JHeadstart, Tijd om de balans op te maken
Alternative set of HrmService DataControls – based on ADF BC Business Service
Model
Business Service – ADF Business Components
HrmService
Business Service - POJOHrmService Employee
employeesraiseSalaries name job
Application ModuleHrmService
ViewObjectEmployee
16AMIS Query - Oracle ADF en JHeadstart, Tijd om de balans op te maken
Applications running against an alternative Business Service – same set of DataControls
Model
HrmService employeesraiseSalaries name job
Business Service – ADF Business Components
Application ModuleHrmService
ViewObjectEmployee
AMIS Query - Oracle ADF en JHeadstart, Tijd om de balans op te maken
17AMIS Query - Oracle ADF en JHeadstart, Tijd om de balans op te maken
Demo – Switch Business Service
Introduce alternative HrmService, POJO based public Collection getEmployees()
• beanClass = nl.amis.hrm.Employee public Double raiseSalaries()
Publish DataControls for POJO HrmService Struts + JSP WebApp
Update UIModel• Base employees Iterator on POJO HrmService• Base raiseSalaries ActionBinding on POJO HrmService
Simple Client JClient application
18AMIS Query - Oracle ADF en JHeadstart, Tijd om de balans op te maken
Questions
How will ADF Faces and ADF Binding Framework work together?
What will happen with JSR-227 Will there be development of more (advanced)
DataControl Adapter classes For Hibernate, Spring Framework, TopLink
Will there be ADF Binding Framework (JSR-227) plugins for Eclipse?
Will the IDE be enhanced in 10.1.3? What is the take-up in the market for ADF?
19AMIS Query - Oracle ADF en JHeadstart, Tijd om de balans op te maken
Discussion and Conclusion
ADF Binding Framework effectively decouples Model from View & Controller Allowing for clear roles in development projects
ADF allows for quick first steps in application development, while respecting MVC
The typical “next steps” are still quite complex Especially for non-J2EE Web Developers
ADF can only be used with JDeveloper 10g ADF is somewhat sparse for non-BC services
Even support for Oracle TopLink is limited Integration between ADF and UIX is not always optimal ADF is part of the strategical tool-stack for Oracle Apps