4 Jhs J Developer Adf
-
Upload
pedro-gallardo -
Category
Technology
-
view
3.518 -
download
2
description
Transcript of 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
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?”
Oracle JDeveloper 10GOracle JDeveloper 10G
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
Herramientas de DesarrolloHerramientas de Desarrollo
Incrementode productividad
CódigoJava
Frameworks de Desarrollo
Automatización detareas
Oracle ADF
OracleJDeveloper
Productividad
Ciclo de Desarrollo Ciclo de Desarrollo
Diseño
Código
TuningDespliegue
Análisis
Debug y Test
Versioning
De Forms a Java ADFGuía de JDeveloper y ADF para desarrolladoresDe Forms a Java ADFGuía de JDeveloper y ADF para desarrolladores
De Forms a Java ADFGuía de JDeveloper y ADF para desarrolladoresDe Forms a Java ADFGuía de JDeveloper y ADF para desarrolladores
• 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
• 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
• 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
• 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
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
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
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
Terminología ADF Business ComponentsTerminología ADF Business Components
XMLXML Validation & TransactionalTriggers
Application Module
View Object
BusinessDataRelation
AttribAttrib AttribAttrib
View Object
AttribAttrib AttribAttrib
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
Empezamos con la capa de datos TablasEmpezamos con la capa de datos Tablas
Entity Objects Encapsulan Reglas de NegocioEntity Objects Encapsulan Reglas de Negocio
View Objects Encapsulan Queries SQLView Objects Encapsulan Queries SQL
Application ModuleApplication Module
Capa de PresentaciónCapa de Presentación
ADF Faces Components ExamplesADF Faces Components Examples
Oracle JHeadStartOracle JHeadStart
• 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?
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
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
• 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
Demostración prácticaDemostración práctica
Demostración práctica JHeadStart + ADFDemostración práctica JHeadStart + ADF
Proyectos significativosProyectos significativos
Proyectos significativosProyectos significativos
Proyectos significativosProyectos significativos
Proyectos significativosProyectos significativos
Proyectos significativosProyectos significativos
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
ADF Faces Rich Client SamplesADF Faces Rich Client Samples
ADF Faces Rich Client SamplesADF Faces Rich Client Samples
Integración Forms y ADFIntegración
Forms y 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)
ArquitecturaArquitectura
Forms Server
Application Server
APLICACIÓN
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
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
Comunicación: Jsf –Forms Forms-Jsf Comunicación: Jsf –Forms Forms-Jsf
• JavaScript• Clase applet-LiveConnect• Custom_PJC• PL/SQL Triggers
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
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/
OraFormsFacesOraFormsFaces
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
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
<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
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
ConclusiónConclusión
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.
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 !!
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.
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.
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
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.
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
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
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
Trinidad MyFacesTrinidad MyFaces
• http://wiki.apache.org/myfaces/FrontPage
• http://myfaces.apache.org/
Implemtación de ADF Faces que Oracle libera a la comunidad