4 jhs j developer adf

63
Desarrolla en Java con la misma productividad que en Forms Pedro Gallardo Delgado Responsable de Middleware Alejandro Font Consultor tecnológico

Upload: pedro-gallardo

Post on 01-Nov-2014

3.518 views

Category:

Technology


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: 4  Jhs J Developer Adf

Desarrolla en Java con la misma productividad que en Forms

Desarrolla en Java con la misma productividad que en Forms

Pedro Gallardo DelgadoResponsable de Middleware

Alejandro FontConsultor tecnológico

Page 2: 4  Jhs J Developer Adf

Típicos tópicos y preguntas frecuentes…Típicos tópicos y preguntas frecuentes…

“La tecnología Java y J2EE es muy complicada”

Cuando desarrollas una aplicación J2EE la productividad cae en picado”

“Sólo los grandes jurús de java se pueden enfrentar al desarrollo de aplicaciones empresariales”

“¿Existe un plan formativo de Oracle que facilite la transferncia de Forms a J2EE?”

Page 3: 4  Jhs J Developer Adf

Oracle JDeveloper 10GOracle JDeveloper 10G

Page 4: 4  Jhs J Developer Adf

Oracle JDeveloper 10GOracle JDeveloper 10G

• Java IDE gratis

• Herramienta para todos los desarrollos

• J2EE y XML• Portal, BPEL, BI y Wireless• Service-Oriented• Event-Driven

• Productividad con Opciones• Opciones tecnológicas• Opciones en estilos de desarrollo• Opciones en servidores de

aplicaciones

Page 5: 4  Jhs J Developer Adf

Herramientas de DesarrolloHerramientas de Desarrollo

Incrementode productividad

CódigoJava

Frameworks de Desarrollo

Automatización detareas

Oracle ADF

OracleJDeveloper

Productividad

Page 6: 4  Jhs J Developer Adf

Ciclo de Desarrollo Ciclo de Desarrollo

Diseño

Código

TuningDespliegue

Análisis

Debug y Test

Versioning

Page 7: 4  Jhs J Developer Adf

De Forms a Java ADFGuía de JDeveloper y ADF para desarrolladoresDe Forms a Java ADFGuía de JDeveloper y ADF para desarrolladores

Page 8: 4  Jhs J Developer Adf

De Forms a Java ADFGuía de JDeveloper y ADF para desarrolladoresDe Forms a Java ADFGuía de JDeveloper y ADF para desarrolladores

Page 9: 4  Jhs J Developer Adf

• Objectos de Aplicación• Form, Data Blocks, Relations• LOVs, Record Groups• Canvases, Windows

• Visual Builder• Crear and Configurar Objectos de Aplicaciones

• Event-Handler Triggers• Extiende el comportamiento por defecto con

lógica específica.

• Libraries Compartidas de Rutinas

De Forms a Java ADFEl desarrollador Forms está familiarizado con los frameworks De Forms a Java ADFEl desarrollador Forms está familiarizado con los frameworks

Page 10: 4  Jhs J Developer Adf

• Configuración de la Base de Datos• Diseño Base de Datos• Scripts de creación sql

• Componentes de Negocio• Conocido como la capa de modelo

• Componentes de la interficie de usuario• Windows, Panels, Pages.• Conocido como la capa de Presentación

• Código compartido• Personalizaciones del Framework• Rutinas de ayuda

De Forms a Java ADFJDeveloper IDE pensado por y para desarrolladores FormsDe Forms a Java ADFJDeveloper IDE pensado por y para desarrolladores Forms

Page 11: 4  Jhs J Developer Adf

• Lista plana de paquetes PL / SQL

• Los paquetes contienen Procedimientos y Funciones

De Forms a Java ADFPlataforma Común de FuncionalidadDe Forms a Java ADFPlataforma Común de Funcionalidad

Page 12: 4  Jhs J Developer Adf

• JDK presenta cientos de paquetes• Los paquetes contienen clases con funcionalidades

ya dadas

• Organización Jerárquica• java.lang.String• java.net.URL• org.w3.dom.Element

• orale.jdbc.ResultSet

• Culaquiera puede crear sus propias librerías• Enpaquetadas como archivos *.jar contenedoras de

Clases.

De Forms a Java ADFVista de paquetes en JDeveloperDe Forms a Java ADFVista de paquetes en JDeveloper

Page 13: 4  Jhs J Developer Adf

Data BlockCanvas

Mapeando Conceptos de Forms en Servicios de NegocioMapeando Conceptos de Forms en Servicios de Negocio

BusinessDataRelation

UI-Related Triggers

UI-Related Triggers

ValidationTriggersValidationTriggers

TransactionalTriggersTransactionalTriggers

ItemItem ItemItem

ItemItem ItemItem

ItemItem ItemItem

ItemItem ItemItem

Data Block

ItemItem ItemItem

Canvas

Page 14: 4  Jhs J Developer Adf

Separamos Conceptualmente la parte de DatosSeparamos Conceptualmente la parte de Datos

Validation & TransactionalTriggers

Non-UI Part of Form

Data Block

BusinessDataRelation

ItemItem ItemItem

Data Block

ItemItem ItemItem

Page 15: 4  Jhs J Developer Adf

Si queremos reusar para distintos clientes UISi queremos reusar para distintos clientes UI

XMLXML Validation & TransactionalTriggers

Non-UI Part of Form

Data Block

BusinessDataRelation

ItemItem ItemItem

Data Block

ItemItem ItemItem

Page 16: 4  Jhs J Developer Adf

Terminología ADF Business ComponentsTerminología ADF Business Components

XMLXML Validation & TransactionalTriggers

Application Module

View Object

BusinessDataRelation

AttribAttrib AttribAttrib

View Object

AttribAttrib AttribAttrib

Page 17: 4  Jhs J Developer Adf

Separamos la capa DAO (Query) de la Lógica de Negocio Separamos la capa DAO (Query) de la Lógica de Negocio

XMLXML

Application Module

BusinessData

View Link

Entity Object

AttribAttrib AttribAttrib

Validation & Transactional Methods

View Object

AttribAttrib AttribAttrib

Entity Object

AttribAttrib AttribAttrib

Validation & Transactional Methods

View Object

AttribAttrib AttribAttrib

Page 18: 4  Jhs J Developer Adf

Empezamos con la capa de datos TablasEmpezamos con la capa de datos Tablas

Page 19: 4  Jhs J Developer Adf

Entity Objects Encapsulan Reglas de NegocioEntity Objects Encapsulan Reglas de Negocio

Page 20: 4  Jhs J Developer Adf

View Objects Encapsulan Queries SQLView Objects Encapsulan Queries SQL

Page 21: 4  Jhs J Developer Adf

Application ModuleApplication Module

Page 22: 4  Jhs J Developer Adf

Capa de PresentaciónCapa de Presentación

Page 23: 4  Jhs J Developer Adf

ADF Faces Components ExamplesADF Faces Components Examples

Page 24: 4  Jhs J Developer Adf

Oracle JHeadStartOracle JHeadStart

Page 25: 4  Jhs J Developer Adf

• Entorno de Desarrollo Java altamente productivo

• Principios fundamentales:• Definición de aplicaciones al estilo 4GL.

• Totalmente basado en estándares mundialmente aceptados.

• Generación automática de código fuente Java y XML.

• Construido sobre la arquitectura Oracle ADF.

¿Qué es Oracle JHeadstart?¿Qué es Oracle JHeadstart?

Page 26: 4  Jhs J Developer Adf

ArquitecturaArquitectura

Controller Faces Faces

AD

F M

eta

data

Serv

ices

ViewADF

FacesADF

Faces JSFJSF

ADFModelADF Data ControlADF Data Control

ADF BC ServicesADF BC Services

Web ServicesWeb Services

Data Access

BusinessService

PersistenceLayer

ADF BCViewADF BCView

ADF BCEntityADF BCEntity

ADF BindingsADF Bindings

JHeadStart

Page 27: 4  Jhs J Developer Adf

Proceso de generaciónProceso de generación

ApplicationDefinition

ApplicationDefinition

ADF BCmetadataADF BCmetadata

JSF JSPADF Faces

JSF JSPADF Faces

JSFJSF

ADF MODELData BindingsData Controls

ADF MODELData BindingsData Controls

ADFBusiness

Components

JHeadStartApplication

DefinitionWizard

JHeadStartApplication

DefinitionWizard

JdeveploperADF BC Wizard

JdeveploperADF BC Wizard

ViewView

ControllerController

ModelModel

BusinessServicesBusinessServices

VelocitytemplatesVelocity

templates

JHeadStartApplicationGenerator

JHeadStartApplicationGenerator

Page 28: 4  Jhs J Developer Adf

• Orientación a la productividad.• Desarrollo declarativo.

• Prototipo iterativo.

• Bajo coste de entrada.• Requiere conocimientos limitados para empezar.

• Rápido aprendizaje.

• Reducción de costes de desarrollo y mantenimiento.• Aplicaciones consistentes.

• Permite focalizar los recursos más especializados en la Lógica de negocio de la aplicación.

VentajasVentajas

Page 29: 4  Jhs J Developer Adf

Demostración prácticaDemostración práctica

Page 30: 4  Jhs J Developer Adf

Demostración práctica JHeadStart + ADFDemostración práctica JHeadStart + ADF

Page 31: 4  Jhs J Developer Adf

Proyectos significativosProyectos significativos

Page 32: 4  Jhs J Developer Adf

Proyectos significativosProyectos significativos

Page 33: 4  Jhs J Developer Adf

Proyectos significativosProyectos significativos

Page 34: 4  Jhs J Developer Adf

Proyectos significativosProyectos significativos

Page 35: 4  Jhs J Developer Adf

Proyectos significativosProyectos significativos

Page 36: 4  Jhs J Developer Adf

DemosDemos

• Demostración de generación de aplicación J2EE con JDeveloper y JHeadStart 10.1.3.1.

http://www.bbr.cat/presentaciones/videos/DemoBBR/DemoBBR.html

• Demostración de aplicación generada con JDeveloper y JHeadStart 10.1.3 con plantillas y clases personalizadas por BBR.

http://www.bbr.cat/presentaciones/videos/Flash_GSGVIA_DEMO/Flash_GSGVIA_DEMO.html

Page 37: 4  Jhs J Developer Adf

ADF Faces Rich Client SamplesADF Faces Rich Client Samples

Page 38: 4  Jhs J Developer Adf

ADF Faces Rich Client SamplesADF Faces Rich Client Samples

Page 39: 4  Jhs J Developer Adf

Integración Forms y ADFIntegración

Forms y ADF

Page 40: 4  Jhs J Developer Adf

Integración Forms – ADF Puntos Clave

Integración Forms – ADF Puntos Clave

• Integración en la capa de presentación (View-Controller)

• Integración en la capa de Negocio (Modelo)

Page 41: 4  Jhs J Developer Adf

ArquitecturaArquitectura

Forms Server

Application Server

APLICACIÓN

Page 42: 4  Jhs J Developer Adf

Integración Forms - ADF Faces Integración del formulario en una página JSF

Integración Forms - ADF Faces Integración del formulario en una página JSF

Eventos ADF

JSF

ADF FACES

FORMS

Contexto

Page 43: 4  Jhs J Developer Adf

Integración Forms - ADF FacesPuntos Clave

Integración Forms - ADF FacesPuntos Clave

• Comunicación de JSF a Forms- Forms a JSF

• Productividad-Drag-and-Drop en Jdeveloper

• Se cede el control de la aplicación a JSF

• Jinitiator applet no -Applet,JDK

Page 44: 4  Jhs J Developer Adf

Comunicación: Jsf –Forms Forms-Jsf Comunicación: Jsf –Forms Forms-Jsf

• JavaScript• Clase applet-LiveConnect• Custom_PJC• PL/SQL Triggers

Page 45: 4  Jhs J Developer Adf

Ejemplos de Comunicación: Jsf –Forms Forms-JsfEjemplos de Comunicación: Jsf –Forms Forms-Jsf

• De JSF a Forms:• Paso de parámetros a Forms

• Parámetros de inicialización, Maestro/ Detalle

• Botónes JSF que lanzan eventos Forms

• commit_form,Up,Down

• De Forms a JSF :• ParámetroPaso de parámetros a JSF

• Parámetros de inicialización, Maestro/ Detalle

• Botónes Forms que lanzan eventos JSF

• Navegaciones,Procesos

• Lanzar metodos Javascript

• Mensajes javascript

Page 46: 4  Jhs J Developer Adf

Links de InterésLinks de Interés

• http://www.oracle.com/technology/pub/articles/wilfred-adf-forms.html

• http://www.oratransplant.nl/oracle-forms-as-web-component/

• http://www.commit-consulting.com/oraformsfaces/

Page 47: 4  Jhs J Developer Adf

OraFormsFacesOraFormsFaces

Page 48: 4  Jhs J Developer Adf

Integración Forms con SOA (Modelo)Integración Forms con SOA (Modelo)U

IM

iddl

eTie

rB

D

Web ServicesWeb Services

JinitiatorApplet

JinitiatorApplet

Forms ServerForms Server

PL / SQLPL / SQL

JPCJPC

HTMLJavascript

HTMLJavascript

Data Binding & Data ControlData Binding & Data Control

JSF & ADF FacesJSF & ADF Faces

JSFJSF

ADFBusiness Components

ADFBusiness Components

Service Layer

View

Controller

Model( JSR 227 )

Business Services

Data Source

Client

Page 49: 4  Jhs J Developer Adf

Caso de Estudio - Eurotransplant Caso de Estudio - Eurotransplant

• Migración de una aplicación cliente/servidor a web

• Necesidad de tener acceso remoto a la apliacción de una forma segura

• Necesidad de esperiencia de usuarío única

• Desarrollado usando Jdeveloper y ADF

• Required “off-line” application to run in operating theatre with no network access

• Necesidad de ejecutar aplicaciones “off-line”

• Desarrollo de aplicación Swing con JDeveloper y ADF

• Creación de una extensión de Jdeveloper por parte de Eurotransplant (OraFormsFaces).

• Reaprovechamiento de su conocimientos Forms/Database

Page 50: 4  Jhs J Developer Adf

<Insert Picture Here>

“Queremos desplegar un modelo evolutivo, no uno revolucionario.

En el pasado, la adopción de una nueva tecnología implicaba el abandono de la antigua. Con SOA y Oracle BPEL Process Manager, se demuestra que podemos hacer que nuestros sistemas existentes sean capaces de ser explotados y reusados desde las nuevas arquitecturas orientadas a servicios (SOA).”

Wilfred van der DeijlArquitecto, Eurotransplant

Page 51: 4  Jhs J Developer Adf

Más Casos de EstudioMás Casos de Estudio

• Más detalles en“Oracle Forms and SOA: The Whys and Hows for your business”

• Eurotransplant

• Migros

• TietoEnator

• Oracle Magazine• Nov/Dec 2007: “Perform with SOA”

• May/Jun 2007: “Journey to the Center of Fusion”

• We Love It (http://weloveit.nl)• Informes Gartner

Page 52: 4  Jhs J Developer Adf

ConclusiónConclusión

Page 53: 4  Jhs J Developer Adf

Típicos tópicos y preguntas frecuentes…Típicos tópicos y preguntas frecuentes…

“La tecnología Java y J2EE es muy complicada”

La curva de aprendizaje es elevada pero ahora existen frameworks, metaframeworks, herramientas declarativas al estilo de 4GL que permiten reducir la curva de aprendizaje y te da productividad desde el minuto cero.

Page 54: 4  Jhs J Developer Adf

Típicos tópicos y preguntas frecuentes…Típicos tópicos y preguntas frecuentes…

Cuando desarrollas una aplicación J2EE la productividad cae en picado”

Puedes empezar a pensar en desarrollar apliaciones empresariales J2EE con una productividad extremadamente alta. Similar a la de Forms o superior !!

Page 55: 4  Jhs J Developer Adf

Típicos tópicos y preguntas frecuentes…Típicos tópicos y preguntas frecuentes…

“Sólo los grandes gurús de java se pueden enfrentar al desarrollo de aplicaciones empresariales”

Jdeveloper nace con la vocación de ser una herramienta de desarrollo para todos. Para los grandes gurús y para los desarrolladores noveles que se inician en Java / J2EE. Te permite desarrollar siempre de dos formas. Declarativamente o codificando. Tu elijes tu estilo. Jdeveloper te ofrece libertad.

Page 56: 4  Jhs J Developer Adf

Típicos tópicos y preguntas frecuentes…Típicos tópicos y preguntas frecuentes…

“¿Existe un plan formativo de Oracle que facilite la transferncia de Forms a J2EE?”

ADF es el framework idóneo para desarrolladores Forms que quieran iniciarse en el desarrollo de aplicaciones empresariales J2EE. Existe una gran cantidad de contenido en OTN destinado a “mapear” los conocimientos de Forms a ADF.

Page 57: 4  Jhs J Developer Adf

Estrategia de Herramientas de DesarrolloEstrategia de Herramientas de Desarrollo

• Compromiso a largo plazo con Forms• Actualiza y integra

• Desarrolla pensando en servicios

• Establece una estrategia hacia SOA

• Piensa en Grande y da pequeños pasos

• Consigue en J2EE/ADF la misma productividad que en Forms• Desarrollo visual declarativo

• Reaprovecha tu inversión y conocimientos en Forms

Page 58: 4  Jhs J Developer Adf
Page 59: 4  Jhs J Developer Adf

JavaPolis RAD RaceJavaPolis 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.

    

Page 60: 4  Jhs J Developer Adf

JavaPolis RAD Race – Ganadores 2005/06JavaPolis 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

Page 61: 4  Jhs J Developer Adf

Patrones de diseño en ADFPatrones de diseño en ADF

Patrón FuncionalidadModel/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 Separation

Cleanly separates the API or Interface for components from their 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.

…+ de 14 patrones de diseño

Page 62: 4  Jhs J Developer Adf

Patrones de diseño en ADFPatrones de diseño en ADF

Patrón FuncionalidadSession 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.

…+ de 14 patrones de diseño

Page 63: 4  Jhs J Developer Adf

Trinidad MyFacesTrinidad MyFaces

• http://wiki.apache.org/myfaces/FrontPage

• http://myfaces.apache.org/

    

Implemtación de ADF Faces que Oracle libera a la comunidad