Oracle Application De·elopment

lramework O·er·iew

.v Oracte !bite Paper
Decevber 2001


OracIe AppIication DeveIopment Framework Overview Page 2
Oracle Application De·elopment lramework
O·er·iew
Introduction ....................................................................................................... 3
1he J2LL (hallenge..................................................................................... 3
Oracle ADl - Making J2LL simpler......................................................... 3
1he Oracle ADl Architecture......................................................................... 5
1he Oracle ADl Lavers .............................................................................. 5
1he View Laver ............................................................................................. 6
1he (ontroller Laver.................................................................................... 6
1he Business Ser·ices Laver........................................................................ 6
1he Model Laver........................................................................................... 6
Producti·itv with (hoice ............................................................................. ¯
Visual and Declarati·e J2LL De·elopment .................................................. 8
1he Business Ser·ices laver ......................................................................... 8
1he (ontroller Laver.................................................................................... 9
1he Model Laver......................................................................................... 10
1he View laver............................................................................................. 10
(onclusion........................................................................................................ 13


OracIe AppIication DeveIopment Framework Overview Page 3
Oracle Application De·elopment lramework
O·er·iew
INTRODUCTION
The J2EE ChaIIenge
J2LL is a standard. robust. scalable. and secure platíorm that íorms the basis íor
manv oí todav`s enterprise applications. J2LL. howe·er. is just a set oí
speciíications íor building multi tier applications using the Ja·a language: it doesn`t
pro·ide tools íor building the applications. 1his creates a challenge íor de·elopers
when íirst starting J2LL de·elopment. Manv de·elopers are coníused bv the
complexitv oí the J2LL APIs - a direct result oí J2LL`s comprehensi·e nature.
O·er the vears. best practices and design patterns ha·e e·ol·ed íor the J2LL
platíorm. Implementing these best practices usuallv in·ol·es writing scores oí
inírastructure code. adding another obstacle íor de·elopers building their íirst J2LL
application.
1he wav to sol·e these obstacles is to use a íramework that abstracts the
complexitv oí the J2LL platíorm but still le·erages it`s power.

OracIe ADF - Making J2EE simpIer
Oracle JDe·eloper 10g release 2 is the latest ·ersion oí Jde·eloper 10g. which
introduced the Oracle Application De·elopment lramework - an inno·ati·e J2LL
de·elopment íramework.
Oracle Application De·elopment lramework Oracle ADl, simpliíies J2LL
de·elopment bv minimizing the need to write code that implements design patterns
and application`s inírastructure. Oracle ADl pro·ides these implementations as
part oí the íramework. Recognizing that ha·ing a set oí runtime ser·ices is not
enough. Oracle ADl is also íocused on the de·elopment experience pro·iding a
·isual and declarati·e approach to J2LL de·elopment.
Oracle ADl is an e·olution. an impro·ement. and an extension oí írameworks that
were included with pre·ious ·ersions oí JDe·eloper.
OracIe AppIication DeveIopment Framework Overview Page 4
1he kev characteristics oí Oracle ADl that make it unique among other J2LL
írameworks are:
Development Lnvironment - Manv oí the other J2LL írameworks are missing a
de·elopment tool that will make it easier to de·elop with them. Oracle JDe·eloper
pro·ides a períect tool íor building Oracle ADl-based applications using ·isual
aids and declarati·e approach to minimize coding.
Platform Independence - Other írameworks lock the de·eloper into a speciíic
soítware ·endor. 1he Oracle ADl runtime. howe·er. can be installed on anv J2LL
compliant application ser·er.
1echnology Choice - Realizing the de·elopers ha·e preíerences íor the wav thev
implement diííerent lavers oí the application. Oracle ADl supports multiple
technologies íor each oí the lavers oí the application. Oracle ADl doesn`t eníorce
a speciíic technologv on the de·eloper.
Lnd-to-Lnd Solution - Oracle ADl doesn`t íocus on just one laver oí the J2LL
architecture. Oracle ADl pro·ides a complete solution íor e·erv J2LL laver and
e·erv de·elopment liíe-cvcle phase.

OracIe AppIication DeveIopment Framework Overview Page 5
THE ORACLE ADF ARCHITECTURE
Oracle ADl is based on the Model-View-(ontroller MV(, design pattern. MV(
separates the application architecture into three lavers:
• Model - handles interaction with data-sources and runs the business logic
• View - handles the application user interíace
• (ontroller - handles the application ílow and acts as the interíace between
the Model and the View lavers
Separating applications into these three lavers simpliíies maintaining and reusing
components across applications. 1he independence oí each laver írom the others
results in a looselv coupled architecture. Oracle ADl pro·ides an easv wav to
implement the MV( architecture.

The OracIe ADF Layers

Oracle ADl a high le·el architecture

Oracle ADl is based on íour lavers:
• 1he Business Ser·ices laver - pro·ides access to data írom ·arious sources
and handles business logic.
• 1he Model laver - pro·ides an abstraction laver on top oí the Business
Ser·ices laver. enabling the View and (ontroller lavers to work with
diííerent implementations oí Business Ser·ices in a consistent wav.
• 1he (ontroller laver - pro·ides a mechanism to control the ílow oí the
\eb application.
• 1he View laver - pro·ides the user interíace to the application.
OracIe AppIication DeveIopment Framework Overview Page 6
Oracle ADl lets de·elopers choose the technologv thev preíer to use when
implementing each oí the lavers. Oracle ADl pro·ides the same ·isual and
declarati·e de·elopment experience regardless oí the technologv stack used.
The View Layer
1he View laver pro·ides the user interíace to the application. 1he ·iew laver uses
l1ML. rich Ja·a components. or XML and its ·ariations to render the user
interíace. 1he View laver can be \eb-based. client ser·er-based. or e·en a wireless
implementation.
The ControIIer Layer
1he (ontroller laver controls the application`s ílow. \eb-based applications are
composed oí multiple \eb pages with dvnamic content. 1he controller laver
manages the ílow between these pages. Diííerent models can be used when
building this laver. 1he most prominent architecture íor Ja·a-based \eb
applications relies on a ser·let that acts as the controller. 1he Apache Jakarta Struts
controller. an open source íramework controller. is the de íacto standard controller
íor Ja·a-based \eb svstems. Oracle ADl uses the Struts controller to manage the
ílow oí \eb applications.
The Business Services Layer
1he Business Ser·ices laver manages interaction with a data persistence laver. It
pro·ides such ser·ices as data persistence. object´relational mapping. transaction
management. and business logic execution.
1he Business Ser·ices laver in Oracle ADl can be implemented as simple Ja·a
classes. LJB. \eb ser·ices. 1opLink objects. or Oracle ADl Business
(omponents.
The ModeI Layer
1he Model laver connects the Business Ser·ices to the objects that use them in the
other lavers. Oracle ADl pro·ides a Model laver implementation that sits on top oí
Business Ser·ices. pro·iding a single interíace that can be used to access anv tvpe oí
Business Ser·ice. De·elopers get the same de·elopment experience when binding
anv tvpe oí Business Ser·ice laver implementation to the View and (ontroller
lavers. 1he Model laver in Oracle ADl ser·ed as the basis íor JSR-22¯ A Standard
Data Binding & Data Access lacilitv íor J2LL`.
OracIe AppIication DeveIopment Framework Overview Page 7
Productivity with Choice
De·elopers can choose diííerent technologies to implement each oí Oracle ADl s
lavers. and still get the same producti·e de·elopment experience.
1he íollowing diagram shows the ·arious options a·ailable íor de·elopers when
building Oracle ADl applications.
OracIe ADF technoIogies

1he diagram displavs components implemented bv Oracle ADl in blue. Oracle
pro·ides an easv wav to use the other components with the Oracle ADl
íramework. 1he glue that integrates the ·arious components oí J2LL applications
and makes de·elopment so ílexible is the Oracle ADl model laver. LJB. \eb
Ser·ices. Ja·aBeans. and 1opLink objects can all be used as Business Ser·ices íor
the Oracle ADl Model.
View lavers can include Swing applications as well as l1ML interíace using JSP.
ADl UIX. or JSl.
OracIe AppIication DeveIopment Framework Overview Page 8

VISUAL AND DECLARATIVE J2EE DEVELOPMENT
A (ritical aspect oí making a de·elopment íramework useíul is ha·ing a
de·elopment tool that simpliíies the creation oí applications using this íramework.
Oracle oííers ·isual and declarati·e tools íor each laver oí Oracle ADl. 1hese tools
beneíit Ja·a de·elopers e·en ií thev don`t use the runtime íeatures oí Oracle ADl.
The Business Services Iayer
Oracle JDe·eloper includes a UML class diagram that models and generates LJB.
\eb Ser·ices. 1opLink objects. Simple Ja·a classes. and Oracle ADl Business
(omponents. De·elopers can drag-and-drop tables írom the database browser
onto the diagram to generate Business Ser·ices that pro·ide Ja·a interíaces to these
tables.
EJB ModeIing using UML

Oracle JDe·eloper pro·ides declarati·e interíaces that simpliív the creation oí LJB
minimizing the code needed to implement LJB interíaces. LJB design pattern
implementations can be generated with a click oí a button.
OracIe AppIication DeveIopment Framework Overview Page 9

Oracle JDe·eloper integrates the 1opLink Mapper to help de·elopers ·isuallv map
Ja·a objects to database tables using the poweríul 1opLink persistence laver.
Oracle ADl Business (omponents is a íramework íocused on creating objects.
which implement the Business Ser·ices laver on top oí a database. in a more
declarati·e wav. It pro·ides out-oí-the-box ser·ices such as transaction
management. resource pooling. locking. declarati·e ·alidation rules. translation. and
object-relational mapping. Oracle ADl Business (omponents let de·elopers
le·erage the íull power oí SOL when building Ja·a objects that access their
databases. \ith built-in implementation oí common J2LL design patterns in the
íramework. the períormance and scalabilitv oí the application is assured.
The ControIIer Layer
Oracle JDe·eloper pro·ides a page ílow modeler íor the open-source Apache
Jakarta Struts íramework. 1his modeler pro·ides a ·isual interíace that simpliíies
the de·elopment oí the application ílow. De·elopers model their page ílows using
simple drag and drop oí Struts components onto the diagram. 1he diagram is
automaticallv svnchronized with the source in the struts-coníig.xml íile. Using the
Data (ontrol Palette. de·elopers can associate Business Ser·ices methods with
Struts actions. 1he Struts page ílow diagram pro·ides drill-down access to \eb
page editing and Struts action coding.

OracIe AppIication DeveIopment Framework Overview Page 10
Struts Page FIow ModeIer

The ModeI Layer
Oracle JDe·eloper pro·ides a ·erv easv wav to bind components írom the Business
Ser·ices laver to vour (ontroller and View lavers using an inno·ati·e
implementation oí the Model laver. De·elopers can simplv drag-and-drop data
objects and bind them to their user interíace implementation. 1he same mechanism
enables an easv binding oí controller actions to methods deíined in the Business
Ser·ices laver.
The View Iayer
Oracle JDe·eloper pro·ides a ·isual lavout editor íor both l1ML and Swing based
user interíaces. De·elopers use the component palette to add ·isual components to
the application`s user interíace. 1he component palette can be extended with anv
standard Ja·aBean or JSP 1ag Librarv. De·elopers can use the Propertv Inspector
to declarati·elv deíine the attributes oí ·isual components. 1he ·isual lavout editor
is svnchronized with the source code at all times. so de·elopers can choose their
preíerred editing mode.
VisuaI JSP editing
OracIe AppIication DeveIopment Framework Overview Page 11
OracIe AppIication DeveIopment Framework Overview Page 12
1he Data (ontrol Palette window pro·ides a ·iew into the Business Ser·ices laver.
De·eloper can bind user interíace components to Business Ser·ice with a simple
drag-and-drop írom this palette.

lor \eb applications Oracle ADl also includes ADl UIX - a large set oí UI
components that de·elopers can use to declarati·elv deíine ad·anced l1ML user
interíaces with rich íunctionalitv. ADl UIX íeatures include:
• (onsistent look and íeel based on templates
• Poweríul user interíace customization
• Lasv multi-language translation implementation
• llexible implementation as \eb or mobile interíace
• Inno·ati·e partial page rendering at runtime
• Rich set oí built-in components and íunctionalitv such as table with
column sorting. calendar. color picker. list oí ·alues. and more
• Declarati·e page deíinition
OracIe ADF - a rich set of UI components

OracIe AppIication DeveIopment Framework Overview Page 13

CONCLUSION
Oracle ADl makes J2LL de·elopment simpler bv pro·iding out oí the box
implementation oí design patterns and inírastructure code. Oracle ADl pro·ides a
choice oí de·elopment approach. technologies used. and deplovment platíorm.
(ombining the ad·ance architecture oí Oracle ADl with the ·isual de·elopment
en·ironment oí Oracle JDe·eloper 10g pro·ides a períect solution íor both no·ice
and experienced de·elopers looking to be more producti·e when de·eloping Ja·a
applications.
More resources about Oracle ADl and Oracle JDe·eloper can be íound on the
Oracle 1echnologv Network O1N,. at
http:´´www.oracle.com´technologv´products´jde·´index.html.




OracIe AppIication DeveIopment Framework Overview
December 2004
Author: Shay ShmeItzer
Contributing Authors: Regis Louis

OracIe Corporation
WorId Headquarters
500 OracIe Parkway
Redwood Shores, CA 94065
U.S.A.

WorIdwide Inquiries:
Phone: +1.650.506.7000
Fax: +1.650.506.7200
www.oracIe.com

Copyright © 2004, OracIe. AII rights reserved.
This document is provided for information purposes onIy
and the contents hereof are subject to change without notice.
This document is not warranted to be error-free, nor subject to
any other warranties or conditions, whether expressed oraIIy
or impIied in Iaw, incIuding impIied warranties and conditions of
merchantabiIity or fitness for a particuIar purpose. We specificaIIy
discIaim any IiabiIity with respect to this document and no
contractuaI obIigations are formed either directIy or indirectIy
by this document. This document may not be reproduced or
transmitted in any form or by any means, eIectronic or mechanicaI,
for any purpose, without our prior written permission.
OracIe is a registered trademark of OracIe Corporation and/or its
affiIiates. Other names may be trademarks of their respective owners.

" % ./ . .! $ % " & ( " ! * &" ( " ! & " $ % $ % "" ) $ % % "" ) $ % $ % % "$ % " # # ' ' ' ' + . ./ .

: " " 2 " " 0 " 0 " " 2 " " 2 " 9" 2 " " " " " " " " " 2 0 " 6 6 " 22 " ./ 0 8 1% : 3" 2 " 2 ." " " 0 % 2 %3" 2 "2 1 "2 1 2 " " 6 % 2 % 2 2 " % " 6 % 2 0 " "0 1 " 1 "0" " 1 0 " " 0 " ! % " 2 " 1" " " 2 2 " " " 2 * "7 " " 1 " 2 " 1 ""2 0 "4 " " 2 5 " 3 " 2 " " 2 " 1% 3" " 2 " "1 1" " " " 2 2 " " % 1" 2 " " 1 " " " 3" ./ 2 " " " " 2 .

% 2 " = " " 2 ! % 2 " < 2 71 " : 2 " 0 0 " 0 1 2 " " "2 " " 3 " 3 2 " " 4 " 2 % % 2 % " % % 2 % 2 " " " "" " " " " 2 2 2 1 " 22 "2 " 2 % " % 2 7 % " . : % " 2 2 % " 2 .

"1 " " • • • ! ) " " " "" " % !& " " ! & 7 7 7 " " ! 7& 7 7" " 8!& 9 % "= " 2 2 " " 2 " 2 " " 1 " !& "" " & " " 2 1 " % " % "" % " 2 "% % " "1 " • • ) 22 • > 1 • & % ( " ! "" ) "1 " 2 "" 7 1 % 7 7 % "= " % " 7 1" "" ) " " 2 " "" % % " " "" 2 % 2 2 2 "" ( " "" " % " % 0 & " 2( " " " .

" 2 " " % " 6 % " "" 2 % 2 " %" " " " ! " & ? !$0 2 % & % " " 2 "0 @!$ " 1 > 171 " 0 " " 71 " 0 % " " " "" # $# " " 1 2 2 " 0 " 2 71 " > 1 "%" " 2> 1 " %& ' ( % 2 2 1 " % " " " > 1 " " " " " " % 22 3" 2 > 171 " % " 2 0 " 2 ) " 1 " 71 " > 1 " ) " " " " ( " "" ) "" " 0 " % " " 1 " "" $ " "" 6 14 "" 0 14 A 1 "0 0 "" ( " "" % " ( " "" ) " % "" "0 (0 > 1 " "0 " #) ! ( " ( " % % % % " "" ) "0 "" ) % 2 ( " "" ) " ! % ( C " ( " "" ) " ! " 2 " " % " "" %2 " % 1 14 " 6 & 1 ""2 " " " " "" % % 1 ).7 + B ) 2 2 " D .

* #)& $ ( $ " $ # % "0 2 1 " " " " " 22 " " " " 6 " 1 2 2 " E" $ ## " 2 " ) & "0 % " F @0 " "% %" % " " " " " " " " 2 61 " $ 14 ) 1% " " 2 1 " 1 " ( "0 ! ) % (0 > 1 " ( " "" ) "2 2 " )*0 " ? !$ .

!' ! ! * " 22 " " 1 2 %& 2 " " ' ( 2 2 " 2 % "2 3 " 2 % " 2 2 2 " " " " 2 "2 " " > 1) "0 " $ " F!$ "" 14 "0 ) " 7 7 ( " "" ) " "" "0 1 "2 " " ( " "" 1 " 1 " 2 " (0 " 1 " % #) & " : " 1 2 ( " 2 2 1 " " 2% ( 2 " ( .

" 14 " ( " % 0 " 14 7 2 1 " " > 0 # $# $ ! 2 $ "" 1 " "" ( " 1 " " " " % % 1 2 7 2 " " 2 2 " 14 "0 "" ) " % 2 1 " 0 " 7 27 71 6 " "" " " 0 0 "0 " 0 ( " "" " " 2 )G$ 1 14 " "" 2 " " " 1 % 2 " "" " ) " % "% * " ) 0 ) " " "2 2 2) : " " 2 " 2 " " " 2 "" 2 " " 7" 2 " 2 2 2 " " " " ) " " "7 2 6 ( " "" ) " " 7 F" " "" > 1 .

'$ &$ * #" #) #) " ) 14 " % % 2 ! 2 % " % "% & 2 % 1 % " " " " " "2 % 2 7 " 7 ( " "" " 1 1 " "% 1 ) " % ! " " ( " "" " " " " "% 2 2 " 3" " ( % 2 : " " % " " 2 )* $1 % 1 " 2 " " 2 1 " "0 " ? !$ " 1 6 " * " " " ) 1 " " % " % % " ! & '* ) $ .

.

* 7 7 1 2 " " 2 " " ( " ( " "" ) "" ) " " % > 1 " 2 • • • • • • • . " " * "% 61 " "" 2 " " 2 2 " 7 2 " % " " F @2 1 " " : " F@ % 2 " = " " 2F ? !$ " "> 1 1 2 21 0 7 0 2 " 2 0 " 2 %" "0 " 1 $ #+ # # $ .

' " 2 " 2 1 2 6 " ! =AA " " 1 %H A " " " 0 2 ./ 1 2 " 1% " " 0 " 2 " % " 2 1 6 " 2 2 1 1 2 8 H90 %A "A4 A 6 .

.7 7 "( 7 (! 8 . $" ( % (/ ' & (* !( ! " (# ) (# 1 1 . . . ( ( " ! (! 8 (( . " " ! !. ( / ( %7 % % / 7 % ! .! " # $" % $" ' ! ' + ) . .. 01$1 1 + " 1 ' % . ( . . (/ . 4# 3 1 . . " ' ( 7 " / % ( 1+ ( % ( 7 7 % % 1 6" ( . .( ! % "(. ( 7 77 % ! ( (1 " ! . " % 7 . 2 .! (/ (( 1 .! . % ( 7 ! % ! % "(.1 ! 97 / 4 ( ! ! % . % " . " 6" ( .. . " ! . ( " . (( 7 " ( 1 6" ( . " . .: ( ( (1 .! #3 1 1 1 " 5 ! / ( (" ( ( 1 1 .

Sign up to vote on this title
UsefulNot useful