Vous êtes sur la page 1sur 82

ADF: El Framework de desarrollo de Fusion

Pedro Gallardo
Responsable rea Middleware

Agenda
Qu es ADF? Por qu escoger ADF?

Qu es ADF?

ADF es un Meta-framework (Framework de frameworks)


No hay duda de que en el mundo JEE hay muchos frameworks y soluciones puntuales de gran calidad, pero son solo islas de funcionalidad (presentacin, servicios, datos). Un Meta-framework ofrece un pila tecnolgica certificada con la capacidad de satisfacer la mayor parte de los requisitos y con un ciclo de vida muy similar al de la aplicacin que va a ser desarrollada.

Frameworks Vs Meta-Frameworks
Alcance
Los frameworks son soluciones parciales control de flujo de pginas, UI, acceso a base de datos,. Los Meta-frameworks lo cubren todo

Coexistencia
Classloading, los componentes tienen que compartir la misma versin de las APIs fundamentales,. Con un meta-framework toda la pila tecnolgica est certificada..

Abstraccin
Evitar fontanera Ocultar la complejidad tcnica

Herramientas
Automatizacin tareas repetitivas ...

Qu objetivos persigue ADF?

Incremento de Productividad
Menor curva de aprendizaje Guerra a la complejidad Todo tipo de desarrolladores

Ms usabilidad
Web 2.0 Ajax, JSF, Multicanal.

Desarrollo basado en estndares


EJB 3 (JSR-220) JSF (JSR-127): Trinidad Data Binding (JSR-227) Portlets (JSR-168)

Qu es ADF?
Frameworks de desarrollo basados en estndares integrados con Herramientas + Tecnologa Web 2.0, AJAX, etc

Herramientas RAD Frameworks de Desarrollo JEE 6

ADF & Jdeveloper

Web 2.0 Portales Colaborativos..

ADF Faces Rich Client WebCenter

JDeveloper herramienta de desarrollo de ADF y mucho ms

ADF es el corazn de Fusin Applications

Fusion Applications Componentes


La Web ha evolucionado de un modelo de pginas a un modelo de componentes.

Tecnologas que lo hacen posible

ADF incorpora un kit de componentes pre construido para la creacin de aplicaciones

ADF implementa el patrn MVC

ADF

ADF, Arquitectura

ADF Metadata Services

ADF Swing

JSP

ADF Faces

JSF

Vista

Struts
ADF Bindings ADF Data Control
Java Beans EJB Sessions TopLink Queries TopLink Mapping ADF BC Services

Faces

Controllador

ADF Modelo
Web Services

Servicios de Negocio Acceso a Datos Capa Persistencia

ADF BC View ADF BC Entity

Servicios de Datos
Datos Relacionales Datos XML Datos Legacy Aplicaiones Empaquetadas

ADF, Eleccin RAD (Visual IDE)

ADF Metadata Services

ADF Swing

JSP

ADF Faces

JSF

Vista

Struts
ADF Bindings ADF Data Control
Java Beans EJB Sessions TopLink Queries TopLink Mapping ADF BC Services

Faces

Controllador

ADF Modelo
Web Services

Servicios de Negocio Acceso a Datos Capa Persistencia

ADF BC View ADF BC Entity

Servicios de Datos
Datos Relacionales Datos XML Datos Legacy Aplicaiones Empaquetadas

ADF, Eleccin OO

ADF Metadata Services

ADF Swing

JSP

ADF Faces

JSF

Vista

Struts
ADF Bindings ADF Data Control
Java Beans EJB Sessions TopLink Queries TopLink Mapping ADF BC Services

Faces

Controllador

ADF Modelo
Web Services

Servicios de Negocio Acceso a Datos Capa Persistencia

ADF BC View ADF BC Entity

Servicios de Datos
Datos Relacionales Datos XML Datos Legacy Aplicaiones Empaquetadas

ADF Faces construido sobre JSF

Que es JSF? Java Server Faces


Desarrollado en la Java Community Process (JCP) como la JSR-127 Nickname: Faces Objetivo: Simplificar la creacin de GUIs Java y dar soporte a un modelo basado en componentes Inicio: Mayo del 2001 Primera release oficial: Marzo del 2004 Oracle es un primary contributor

Pensamiento sobre JSF

The real problem is that the existing standard components are simply too basic to offer any real benefit to users

Rething JSF The Real Problem (www.theserverside.com April 2007)

Qu aporta ADF Faces vs JSF?


Conjunto de Componetes mayor
Ms de 100 tipos de componentes

Componentes ms avanzados
Partial-page rendering, etc Distintos kits de rendering Aplicaciones Ask

Funcionalidades para
Personalizar aplicaciones, look-and-feel Validaciones en el cliente ADF Faces RIA (Rich Internet Architecture)

Soporte a ADF model out-of-the-box

Nos lleva a

Theres one company that deserves praise for actually pushing JSF in the right direction: Oracle. ADF Faces is a fantastic set of widgets with drop-in funtionality.

Rething JSF The Real Problem (www.theserverside.com April 2007)

Por qu escoger ADF?

Estndares

Nuestros objetivos

Incremento de Productividad
Menor curva de aprendizaje Guerra a la complejidad Todo tipo de desarrolladores

Ms usabilidad
Web 2.0 Ajax, JSF, Multicanal

Desarrollo basado en estndares


EJB 3 (JSR-220) JSF (JSR-127): Trinidad Data Binding (JSR-227) Portlets (JSR-168)

Trinidad MyFaces
Implemtacin de ADF Faces que Oracle libera a la comunidad
http://wiki.apache.org/myfaces/FrontPage http://myfaces.apache.org/

Productividad

Contexto tradicional en desarrollo de aplicaciones WEB


Menor Productividad Mayor Complejidad
Diferentes arquitecturas Diferentes tecnologas Multitud de frameworks dispersos

Desarrolladores muy especializados Interfaz de usuario no comparable a escritorio Soluciones no basadas en estndares
...pero ahora los Frameworks JAVA y la tecnologa WEB han evolucionado !

Productividad y Herramientas

Oracle ADF

Frameworks de Desarrollo Automatizacin de tareas Generar Cdigo Productividad

Oracle JDeveloper

Oracle JDeveloper 10G

JavaPolis RAD Race


Equipos de 2 desarrolladores deben resolver un caso de la vida real y entregar una aplicacin acabada en 12 horas No pueden recibir ningn tipo de ayuda externa Slo los mejores y ms experimentados equipos con un slido conjunto de herramientas de desarrollo tendrn xito Un jurado de especialistas independientes decide el ganador

JavaPolis RAD Race Ganadores 2005/06

Posicin

Empresa Logical CMG

Matriz Tecnolgica
JDeveloper 10g 10.1.2 IDE Struts, JSP, ADF Framework JHeadstart JDeveloper 10g 10.1.3 IDE JavaServer Faces ADF Framework

Oracle

AXI

JDeveloper 10g 10.1.2 IDE


Framework propio

JHeadStart incrementa de forma drstica la productividad de ADF


Demostracin
http://www.bbr.cat/index.php?option=com_myblog&show=Demo-Creacion-de-una-aplicacion-conJDeveloper-y-JHeadStart-10.1.3-paso-a-paso..html&Itemid=53

Matriz comparativa Forms vs ADF vs JHeadStart vs BBRedJav


BBRedJav ADF Funcionalidad JHeadStart

Forms

Productividad

BBRedJav extiende las funcionalidades de ADF con la productividad de JHeadStart


Demostracin
http://www.bbr.cat/presentaciones/videos/EnominaAdf/EnominaAdf.html

Aplicacin desarrollada con:


ADF 10g JHeadStart 10.1.3 BBRedJava 10.1.3 Yahoo UI Mootools JS

Patrones de Diseo. Buenas Prcticas

Patrones de diseo en ADF


+ de 14 patrones de diseo Patrn
Model/View/Controller Interface / Implementation Separation Service Locator Inversion of Control

Funcionalidad
Cleanly separates the roles of data and presentation, allowing multiple types of client displays to work with the same business information. Cleanly separates the API or Interface for components from their implementation class Abstracts the technical details of locating a service so the client and use it more easily A containing component orchestrates the lifecycle of the components it contains, invoking specific methods that the developer can overrides at the appropriate times so the developer can focus more on what the code should do instead when it should get executed. Simplifies application code, and increases configuration flexibility by deferring component configuration and assembly to the container Avoids the complexity of "anything to anything" object/relational mapping, by providing an object that wraps a row in a database table or view, encapsulates the database access, and adds domain logic on that data. Avoids unnecessary marshalling overhead by implementing dependent objects as lightweight, persistent classes instead of each as an Enterprise Bean. Isolates persistence details into a single, easy to maintain class.

Dependency Injection Active Record

Data Access Objects

Patrones de diseo en ADF


+ de 14 patrones de diseo Patrn
Session Facade Value Object Page-by-Page Iterator Fast-Lane Reader

Funcionalidad
Avoids inefficient client access of Entity Beans and inadvertent exposure of sensitive business information by wrapping Entity Beans with a Session Bean. Avoids unnecessary network round-trips by creating one-off "transport" objects to group a set of related attributes needed by a client program. Avoids sending unnecessary data to the client by breaking a large collection into page-sized "chunks" for display. Avoids unnecessary overhead for read-only data by accessing JDBC API's directly. This allows an application to retrieve only the attributes that need to be displayed, instead of finding all of the attributes by primary key when only a few attributes are required by the client. Typically, implementations of this pattern sacrifice data consistency for performance, since queries performed at the raw JDBC level do not "see" pending changes made to business information represented by Enterprise Beans. Allows runtime instantiation and configuration of an appropriate subclass of a given interface or superclass based on externally-configurable information. Provides a restricted view of data and behavior of one or more business entities. Keeps client value object attributes in sync with the middle-tier business entity information that they represent in a bidirectional fashion. Gives the developer the simplicity and productivity of a stateful programming model with the scalability of a stateless web solution

(Bean) Factory Entity Facade Value Messenger Continuations

Estratgico para Oracle

Estratgico para

Estrategia de producto

Estrategia de producto

Para todo tipo de desarrollos

Desarrollo de aplicaciones Web de FrontOffice

Desarrollo de aplicaciones Web de FrontOffice

Desarrollo de aplicaciones Web de FrontOffice

Demo ENomina

Desarrollo de aplicaciones Web de FrontOffice

Demo ENomina

Desarrollo de aplicaciones Web de FrontOffice

Demo ENomina

Desarrollo de aplicaciones de BackOffice

Desarrollo de aplicaciones de BackOffice

Demo Outis

Desarrollo de aplicaciones de BackOffice

Demo Outis

Desarrollo de aplicaciones de BackOffice

Desarrollo de aplicaciones de BackOffice

Desarrollo de aplicaciones Mixtas ADF & Forms

Demo Forms y ADF

Desarrollo de aplicaciones SOA

Las tareas son ejecutadas y gestionadas desde el WorkList Application

Para todo tipo de desarrolladores

Escoge tu estilo de desarrollo

Desarrollo JSF Visual

JSF y JDeveloper 10.1.3


Edicin Visual de JSF
Edicin Visual de JSF UI Component Proporciona generacin del cdigo de respaldo (doble-click) Mobile WYSIWYG

JSF y JDeveloper 10.1.3


Consola de Edicin de Faces Config
Consola para Edicin productiva de faces-config.xml

JSF y JDeveloper 10.1.3


JSF Page Flow
Edicin Visual del modelo de navegacin de Faces

ADF Faces Components Examples

Multicanal

Desarrollo Multicanal

Desarrollo Multicanal

Desarrollo Multicanal

Es el framework que Oracle utiliza para el desarrollo de sus aplicaciones

Fusion Applications - HCM

Fusion Applications - CRM

Fusion Applications - Projects

ADF Faces RC 11g Data Visualization

Fusion Applications Data Visualization Graph

Fusion Applications Data Visualization Gauge

Fusion Applications Data Visualization Geographic Map

Fusion Applications Data Visualization Pivot Table

Fusion Applications Data Visualization Gantt Chart

Fusion Applications Data Visualization Vista Jerrquica

Conclusiones

Conclusiones
ADF es el framework de desarrollo estratgico para Oracle. Framework ms productivo para desarrollo web del mercado Construido sobre estndares Pensado para todo tipo de desarrollos Pensado para todo tipo de desarrolladores Existen multitud de casos de xito

Links de Inters
Blog de BBR
www.bbr.cat/index.php?option=com_myblog&Itemid=53

Comunidad hispana de desarrolladores ADF


www.jdeveloperla.com

Pgina oficial de Oracle de ADF


www.oracle.com/technology/products/adf/index.htmlhttp://www.oracle.com/te chnology/products/adf/index.html

Pgina oficial de Oracle de ADF Faces RC


www.oracle.com/technology/products/adf/adffaces/index.html

pedro.gallardo@bbr.cat C/ Arag, 182, 4t, 08011 Barcelona Telfon 934 731 393 Av. Ramon Folch, 13, 3r, 17001 Girona Telfon 972 413 638 www.bbr.cat

Vous aimerez peut-être aussi