Você está na página 1de 31

ADF Application Development Framework

Framework dOracle basat en estndards per al desenvolupament daplicacions en Java s lliure (no open-source) Implementa el patr de disseny MVC Permet focalitzar els esforos en laplicaci en comptes de en la connexi entre els diferents elements Es desenvolupa naturalment en JDeveloper, per es pot installar en qualsevol servidor J2EE

ADF Arquitectures possibles

ADF Metadata Services

JSP JSP

ADF UIX ADF UIX

ADF ADF Faces Faces

JSF JSF

View

Struts Struts

Faces Faces

Controller

ADF Bindings ADF Bindings ADF Data Control ADF Data Control Java Java Beans Beans EJB EJB Session Session TopLink TopLink Queries Queries TopLink TopLink Mapping Mapping ADF BC ADF BC Services Services Web Web Services Services

ADF Model

Business Service Data Access Persistence Layer

jdbc jdbc

EJB EJB Finders Finders EJB EJB Entity Entity

ADF BC ADF BC View View ADF BC ADF BC Entity Entity

ADF Arquitectura escollida

ADF Metadata Services

ADF ADF Faces Faces

JSF JSF

View

Faces
ADF Bindings ADF Bindings ADF Data Control ADF Data Control
ADF BC ADF BC Services Services Web Web Services Services

Controller

ADF Model

Business Service Data Access Persistence Layer

ADF BC ADF BC View View ADF BC ADF BC Entity Entity

ADF La capa de Model

Basada en components: ADF Business Components (ADF BC)


Entities ViewObjects ApplicationModules

Els seus elements sn una combinaci delements declaratius i codi Java:


La part declarativa es gestiona a travs de pantalles de configuraci Les classes associades sn en part generades

La part declarativa allibera al programador de determinades funcionalitats base

ADF - Entities

Les entities sn elements que:


representen una taula o una font de dades controlen la manipulaci i integritat de les dades encapsulen la lgica de validaci datributs i registres

Una entity Entitat est formada per el segent conjunt de fitxers:


Entitat.xml: el fitxer de meta-data que cont la descripci de lentitat. El JDeveloper en treu linformaci per als seus wizards EntitatImpl.java: classe que es correspon a una fila de lentitat. Cont els getters/setters dels atributs EntitatDefImpl.java: classe que cont la descripci de lentitat

La generaci de les classes Java s opcional

ADF Entities - Validacions

Es poden afegir declaracions associades als atributs o al registre. ADF Inclou un conjunt de validacions declaratives predefinides associades a atributs:
compareValidator: validacions per comparaci listValidator: valida que latribut sigui (o no) un valor de la llista rangeValidator: valida que latribut estigui en un rang de valors lengthValidator: valida la longitud del camp regularExpressionValidator: valida que un atribut complexi una expressi regular donada. methodValidator: permet programar o assignar un mtode que realitza una comprovaci

Per a un registre s possible establir aquest darrer tipus de validaci

ADF Entities Aspectes visuals

s possible establir alguns parmetres de visualitzaci dels atributs en aquest nivell

ADF Entities Atributs

ADF BC Diagrama de fluxe


[delete] [insert] [update]

lock remove
[yes] More entities? [no]

create setAttribute

setAttribute before
Record locked? [yes] [yes] More attributes? [yes] More entities? [no] [yes] More attributes? [yes] More entities? [yes] [no]

lock

setAttribute after super..

[no] [no]

validateEntity

[no]

[no]

More entities?

postChanges before super doDML postChanges after super


[yes] [no] More entities?

validateEntity
[yes] [no] More entities?

postChanges before super


First time?

doDML
[no] [yes]

beforeCommit
[yes] More entities? [no]

postChanges after super


still invalid? [no] [yes]

Commit afterCommit afterRemove


[yes] [stop] More entities? [no] More entities?

[yes]

ADF - Associations

Una association s un enlla que relaciona dos entitats. Ha destablir-se entre camps de base de dades Ens permeten accedir duna entitat a una altra Sutilitzen per construir les joins en els ViewObjects

ADF - ViewObjects

Els ViewObjects sn els objectes que accedeixen a dades:


Filtratge Ordenaci Joins

Formen una capa per damunt de les Entities Tenim dos tipus de ViewObjects:
Manipulables: Shan de basar en una Entitat Read-only: Es basen directament en una sentncia SQL

Un ViewObject VO est format per el segent conjunt de fitxers:


VO.xml: el fitxer de meta-data que cont la descripci de lobjecte. El JDeveloper en treu linformaci per als seus wizards VORowImpl.java: classe que es correspon a una fila del ViewObject. Cont els getters/setters dels atributs VOImpl.java: classe que representa el ViewObject

ADF ViewObjects - Atributs

Els atributs dun ViewObject poden ser de 3 tipus:


Persistent: es corresponen a un camp de base de dades Ex: SELECT A FROM TABLE; Calculat: es correspon a una operaci feta a nivell de SQL Ex: SELECT NOM || || COGNOMS NOM_COMPLET FROM TABLE Transient: es declara a lentitat i el seu valor es calcula en la classe java associada Els atributs transient no sn consultables (no estan a la query)

ADF ViewObjects Manipulaci SQL

ADF ViewObjects - Tuning

s possible establir alguns parmetres de tuning per fer ms eficients les consultes

ADF - ViewLinks

Un ViewLink s un enlla a nivell de ViewObjects. Ens estableixen les relacions mestre-detall necessries per a la creaci de les pantalles Permeten laccs des dun ViewObject a laltre

ADF ApplicationModule

LApplicationModule s lobjecte que actua com a servei accessible des de la capa de ViewController Estableix la jerarquia de ViewObjects accessibles des de la capa de ViewController s lobjecte encarregat de controlar la transacci Realitza la gesti de les connexions Permet la publicaci de mtodes accessibles des de ViewController Estableix el tipus de bloqueig de registres (jbo.locking.mode)
optimistic: Bloquejem abans de fer el commit pessimistic: Bloquejem en accedir el registre

ADF ApplicationModule Dades accessibles

ADF ApplicationModule Mtodes accessibles

ApplicationModule - Tester

Lentorn de JDeveloper ofereix un sistema per testejar la nostra definici del model
Seleccionem un ApplicationModule En el men contextual escollim la opci Test

Facilitar la detecci preco derrors Comprovar la validesa del model sense necessitat de generar la vista

ADF El pool dApplicationModules

ADF permet establir un pool dAplicationModules per gestionar les peticions Sencarrega de gestionar lestat del ApplicationModule entre les diferents peticions

Pool dAMs
Sollicitem ApplicationModule Passivar AM

Request Request

AM

AM
Retorna ApplicationModule Activar AM

Response Response

AM

ADF Arquitectura escollida

ADF Metadata Services

ADF ADF Faces Faces

JSF JSF

View

Faces
ADF Bindings ADF Bindings ADF Data Control ADF Data Control
ADF BC ADF BC Services Services Web Web Services Services

Controller

ADF Model

Business Service Data Access Persistence Layer

ADF BC ADF BC View View ADF BC ADF BC Entity Entity

ADF La capa ViewController

ADF Data Controls ADF Data Bindings ADF Faces

ADF Data Controls

Actuen com a embolcall abstracte dels serveis de negoci


Descriuen la interfcie pblica dun servei de negoci Desacoblen la Vista de les tecnologies utilitzades a model

Un Data Control cont:


Colleccions de dades Atributs Operacions predefinides Mtodes

ADF Data Bindings

Defineixen la interacci entre la vista i el Data Control Tipus de bindings:


IteratorBinding: emmagatzema quina s la fila actual duna collecci de dades ValueBinding: connecta els components visuals amb atributs duna collecci de dades Attribute Binding, Tree Binding, List Binding, Table Binding ActionBinding: invoca un mtode o una operaci predefinida

Els Data Bindings es creen automticament en arrastrar elements dels Data Control a la pgina s possible crear-los manualment a travs de lestructura de la pgina de definici

ADF Data Bindings Fitxers relacionats

Fitxer de definici del context dels bindings: DataBindings.cpx


Cont el mapeig entre les pgines i la seva pgina de definici Declara la utilitzaci dels Data Controls Es correspon a lexpressi EL #{data}

Fitxers de pgina de definici: xxxPageDef.xml


Defineix tots els bindings associats a una pgina s possible accedir-hi directament des de la pgina mitjanant la opci Go to Page Definition Es correspon a lexpressi EL #{data.xxxPageDef} Els enllaos de la pgina actual sobtenen de lexpressi EL #{bindings}

ADF Faces

JSF Nous components ADF Incorporaci dAJAX: Partial Page Rendering Validaci en el client Suport al canvi de Look & Feel a travs de skins Creaci de finestres de dileg modals Suport de pujada de fitxer integrat com un component ms Suport a la internacionalitzaci

ADF Faces - Components

ADF Faces Cicle de Vida


If validation fails

Request Request
After

Restore view Initialize context Apply request values Prepare model Process validations
If validation fails After

Update model values


After

Validate model updates Metadata commit

Invoke application

Before, if a navigation case exists

Initialize context

Prepare model Render response


Before, if NO navigation case exists

Prepare render

Response Response

ADF Faces Cicle de Vida - Les noves fases

Initialize Context: es construeix lobjecte bindings a partir de la pgina de definici Prepare Model: seteja els parmetres de la pgina de definici i executa aquells mtodes que ho necessitin Validate Model Updates: sexecuten els mtodes de validaci establerts a la capa de model Metadata Commit: aquesta fase no t s actualment, per ha de desar els canvis que shagin realitzat en temps dexecuci a les metadades associades a laplicaci Prepare Render o Render Model: sactualitzen els bindings per obtenir qualsevol modificaci que shagi produt en les fases precedents

ADF Personalitzant els components

Per personalitzar els estils dels components ADF, sutilitza una tcnica basada en skins.
Al fitxer adf-faces-config.xml afegir la lnia
<skin-family>nomSkin</skin-family>

Crear un fitxer adf-faces-skins.xml:


<?xml version=1.0 encoding=ISO-8859-1?> <skins xmlns=http://xmlns.oracle.com/adf/view/faces/skin> <skin> <id>nomFamily.desktop</id> <family>nomFamily</family> <render-kit-id>oracle.adf.desktop</render-kit-id> <style-sheet-name>fitxerSkin.css</style-sheet-name> <skin> </skins>

Definir un fitxer css amb les propietats del skin Pgina amb la llista de propietats modificables amb skins:
http://otn.oracle.com/products/jdev/htdocs/partners/addins/exchange/jsf/doc/sk in-selectors.html

ADF - Links
Forum de JDeveloper: http://forums.oracle.com/forums/forum.jspa?forumID=83 Documentaci dADF: http://www.oracle.com/technology/documentation/jdev.html Portal JDeveloperLA: http://www.jdeveloperla.com Blog de Frank Nimphius: http://thepeninsulasedge.com/frank_nimphius/ Blog de Steve Muench: http://radio.weblogs.com/0118231/ Blog tecnolgic dAmis: http://technology.amis.nl/blog/