Está en la página 1de 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 (presentación, servicios, datos).

• Un Meta-framework ofrece un pila tecnológica certificada con la


capacidad de satisfacer la mayor parte de los requisitos y con un
ciclo de vida muy similar al de la aplicación que va a ser
desarrollada.
Frameworks Vs Meta-Frameworks

• Alcance
• Los frameworks son soluciones parciales – control de flujo de páginas, UI, acceso a base de
datos,….
• Los Meta-frameworks lo cubren todo
• Coexistencia
• Classloading, los componentes tienen que compartir la misma versión de las APIs
fundamentales,….
• Con un meta-framework toda la pila tecnológica está certificada..
• Abstracción
• Evitar fontanería
• Ocultar la complejidad técnica
• Herramientas
• Automatización tareas repetitivas ...
¿Qué objetivos persigue ADF?

• Incremento de Productividad
• Menor curva de aprendizaje
• Guerra a la complejidad
• Todo tipo de desarrolladores
• Más usabilidad
• Web 2.0
• Ajax, JSF, Multicanal.
• Desarrollo basado en estándares
• EJB 3 (JSR-220)
• JSF (JSR-127): Trinidad
• Data Binding (JSR-227)
• Portlets (JSR-168)
¿Qué es ADF?
Frameworks de desarrollo basados en estándares integrados con
Herramientas + Tecnología Web 2.0, AJAX, etc

• Herramientas RAD
ADF &
• Frameworks de Desarrollo Jdeveloper
• JEE 6

ADF Faces Rich


• Web 2.0 Client
• Portales Colaborativos.. WebCenter
JDeveloper herramienta de desarrollo de ADF y
mucho más …
ADF es el corazón de Fusión Applications
Fusion Applications – Componentes

• La Web ha evolucionado de un modelo de páginas a un modelo de


componentes.

• Tecnologías que lo hacen posible


ADF incorpora un kit de componentes pre
construido para la creación de aplicaciones
ADF implementa el patrón MVC

ADF
ADF, Arquitectura
ADF

ADF Metadata Services


ADF Swing JSP Faces JSF Vista

Struts Faces Controllador

ADF Bindings
ADF
ADF Data Control Modelo

Java EJB ADF BC Web Servicios


Beans Sessions Services Services de
Negocio
TopLink ADF BC Acceso a
Queries View
Datos
TopLink ADF BC Capa
Mapping Entity
Persistencia

Servicios de
Datos

Datos Datos XML Datos Aplicaiones


Relacionales Legacy Empaquetadas
ADF, Elección RAD (Visual IDE)
ADF

ADF Metadata Services


ADF Swing JSP Faces JSF Vista

Struts Faces Controllador

ADF Bindings ADF


ADF Data Control Modelo

Java EJB ADF BC Web Servicios


Beans Sessions Services Services de
Negocio
TopLink ADF BC Acceso a
Queries View
Datos
TopLink ADF BC Capa
Mapping Entity
Persistencia

Servicios de
Datos

Datos Datos XML Datos Aplicaiones


Relacionales Legacy Empaquetadas
ADF, Elección OO
ADF

ADF Metadata Services


ADF Swing JSP Faces JSF Vista

Struts Faces Controllador

ADF Bindings ADF


ADF Data Control Modelo

Java EJB ADF BC Web Servicios


Beans Sessions Services Services de
Negocio
TopLink ADF BC Acceso a
Queries View
Datos
TopLink ADF BC Capa
Mapping Entity
Persistencia

Servicios de
Datos

Datos Datos XML Datos Aplicaiones


Relacionales Legacy 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 creación 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


• Más de 100 tipos de componentes
• Componentes más 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…

• “There’s 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?
Estándares
Nuestros objetivos

• Incremento de Productividad
• Menor curva de aprendizaje
• Guerra a la complejidad
• Todo tipo de desarrolladores
• Más usabilidad
• Web 2.0
• Ajax, JSF, Multicanal
• Desarrollo basado en estándares
• EJB 3 (JSR-220)
• JSF (JSR-127): Trinidad
• Data Binding (JSR-227)
• Portlets (JSR-168)
Trinidad MyFaces

• Implemtación 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 tecnologías
• Multitud de frameworks dispersos
• Desarrolladores muy especializados
• Interfaz de usuario no comparable a escritorio
• Soluciones no basadas en estándares

¡...pero ahora los Frameworks JAVA y la tecnología


WEB han evolucionado !
Productividad y Herramientas

Frameworks de Desarrollo
Oracle ADF

Automatización de
Oracle tareas
JDeveloper Generar
Código
Productividad
Oracle JDeveloper 10G
JavaPolis RAD Race

• Equipos de 2 desarrolladores deben resolver un caso de la vida


real y entregar una aplicación acabada en 12 horas

• No pueden recibir ningún tipo de ayuda externa

• Sólo los mejores y más experimentados equipos con un sólido


conjunto de herramientas de desarrollo tendrán éxito

• Un jurado de especialistas independientes decide el ganador


JavaPolis RAD Race – Ganadores 2005/06

Posición Empresa Matriz Tecnológica

Logical CMG • JDeveloper 10g 10.1.2 IDE


• Struts, JSP,
• ADF Framework
• JHeadstart

Oracle • JDeveloper 10g 10.1.3 IDE


• JavaServer Faces
• ADF Framework

AXI • JDeveloper 10g 10.1.2 IDE


• Framework propio
JHeadStart incrementa de forma drástica la
productividad de ADF
• Demostración

http://www.bbr.cat/index.php?option=com_myblog&show=Demo-Creacion-de-una-aplicacion-con-
JDeveloper-y-JHeadStart-10.1.3-paso-a-paso..html&Itemid=53
Matriz comparativa
Forms vs ADF vs JHeadStart vs BBRedJav

BBRedJav

ADF

JHeadStart
Funcionalidad

Forms

Productividad
BBRedJav extiende las funcionalidades de ADF
con la productividad de JHeadStart
• Demostración
http://www.bbr.cat/presentaciones/videos/EnominaAdf/EnominaAdf.html

• Aplicación desarrollada con:


• ADF 10g
• JHeadStart 10.1.3
• BBRedJava 10.1.3
• Yahoo UI
• Mootools JS
Patrones de Diseño.
Buenas Prácticas
Patrones de diseño en ADF
…+ de 14 patrones de diseño
Patrón Funcionalidad
Model/View/Controller Cleanly separates the roles of data and presentation, allowing multiple types
of client displays to work with the same business information.
Interface / Implementation Cleanly separates the API or Interface for components from their
Separation implementation class

Service Locator Abstracts the technical details of locating a service so the client and use it
more easily
Inversion of Control 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.

Dependency Injection Simplifies application code, and increases configuration flexibility by deferring
component configuration and assembly to the container

Active Record 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.
Data Access Objects 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.
Patrones de diseño en ADF
…+ de 14 patrones de diseño
Patrón Funcionalidad
Session Facade Avoids inefficient client access of Entity Beans and inadvertent exposure of
sensitive business information by wrapping Entity Beans with a Session Bean.
Value Object Avoids unnecessary network round-trips by creating one-off "transport" objects to
group a set of related attributes needed by a client program.
Page-by-Page Iterator Avoids sending unnecessary data to the client by breaking a large collection into
page-sized "chunks" for display.
Fast-Lane Reader 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.
(Bean) Factory Allows runtime instantiation and configuration of an appropriate subclass of a
given interface or superclass based on externally-configurable information.
Entity Facade Provides a restricted view of data and behavior of one or more business entities.

Value Messenger Keeps client value object attributes in sync with the middle-tier business entity
information that they represent in a bidirectional fashion.
Continuations Gives the developer the simplicity and productivity of a stateful programming
model with the scalability of a stateless web solution
Estratégico para Oracle
Estratégico 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

• Edición Visual de JSF


• Edición Visual de JSF UI Component
• Proporciona generación del código de respaldo (doble-click)
• Mobile WYSIWYG
JSF y JDeveloper 10.1.3

• Consola de Edición de Faces Config


• Consola para Edición productiva de faces-config.xml
JSF y JDeveloper 10.1.3

• JSF Page Flow


• Edición Visual del modelo de navegación 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
Jerárquica
Conclusiones
Conclusiones

• ADF es el framework de desarrollo estratégico para Oracle.

• Framework más productivo para desarrollo web del mercado

• Construido sobre estándares

• Pensado para todo tipo de desarrollos

• Pensado para todo tipo de desarrolladores

• Existen multitud de casos de éxito


Links de Interés

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

• Comunidad hispana de desarrolladores ADF


• www.jdeveloperla.com

• Página oficial de Oracle de ADF


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

• Página 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


Telèfon 934 731 393

Av. Ramon Folch, 13, 3r, 17001 Girona


Telèfon 972 413 638
www.bbr.cat

También podría gustarte