Material utilizado durante la sesión técnica sobre Frameworks Java EE desarrollada el 5 de marzo de 2012. Se trata de una sesión del Curso de Adaptación al Grado de Informática y Servicios.
5. 1. Entorno Java EE
• Introducción
• Arquitectura
2. Frameworks Java EE
• Criterios de selección
• Clasificación de Frameworks
• Comparando Frameworks
3. Metodología de proyecto
• Descripción
• Herramientas
6. Entorno Java EE - Introducción
• Conjunto de especificaciones basadas en estándares
• Implementación definida por:
• Servidor de aplicaciones Java EE
• Weblogic
• GlassFish (implementación de referencia)
• Jboss AS
• Frameworks
• JSF
• MyFaces
• JPA
• Hibernate
• TopLink / EclipseLink
7. Entorno Java EE - Historia
• J2EE 1.2 – Dec 1999
• Orientado a sistemas distribuidos
• Nacen frameworks web MVC
• Apache Struts
• Apache Tapestry
• J2EE 1.3 – Sep 2001
• EJB
• Nacen frameworks como alternativa al modelo de persistencia
• Hibernate
• J2EE 1.4 – Nov 2003
• Aumento de la complejidad
• Nacen frameworks como alternativa al modelo pesado
• Spring
8. Entorno Java EE - Historia
• Java EE 5 – May 2006
• Simplificación
• Incorporación de ideas del resto de frameworks
• POJO
• Anotaciones
• JPA
• Java EE 6 – 2009
• Evolucionando hacia la productividad
9. Entorno Java EE - Arquitectura
• Limitaciones tecnológicas
• HTTP: Protocolo sin estado
• HTML: Formato documental no orientado a componentes
• Navegador web: Cliente que “ejecuta” la aplicación. Estas aplicaciones
tiene un control limitado sobre el navegador.
• Clientes no estándar
• Tecnologías heterogéneas:
• Java/.Net/PHP/Ruby …
• HTML (*)
• CSS (*)
• Plugins: Adobe Flash / Silverlight …
• JavaScript (*)
10. Entorno Java EE - Arquitectura
• Multicapa
• Capa Cliente
• Capa de negocio
• Capa de persistencia
11. Entorno Java EE - Arquitectura
• Capa Cliente
• HTML
• JavaScript
• ActionScript (Adobe Flex)
• Silverlight (Microsoft)
HTML / JavaScript
16. Entorno Java EE - Arquitectura
• El patrón Modelo-Vista-Controlador aporta:
• División de responsabilidades
• Acoplamiento bajo entre componentes
• Fácil mantenimiento
• Estructura de aplicación en 3 capas:
• Modelo: responsable de la gestión del negocio.
• Vista: responsable de la interacción con el usuario.
• Controlador:
• Conecta las capas de Vista y Modelo.
• Controla el flujo de ejecución de la aplicación.
19. 1. Entorno Java EE
• Introducción
• Arquitectura
2. Frameworks Java EE
• Criterios de selección
• Clasificación de Frameworks
• Comparando Frameworks
3. Metodología de proyecto
• Descripción
• Herramientas
20. Frameworks – Criterios de selección
• Criterios de la organización
• Criterios de dirección/comercial
• Acuerdos corporativos
• …
• Criterios de productividad a corto plazo
• Conocimiento existente
• Madurez metodológica
• Librerías de desarrollo propias/adquiridas
26. Frameworks – Tapestry
• Tapestry
• Framework web Java orientado a componentes, basado en el API Java
Servlet.
• Primera release 06/2000
• Versión actual 5.3.2 – 02/2012
• Licencia Apache License 2.0
• Versionado cada 4-6 meses
• Soporte Maven
27. Frameworks – Tapestry
• Tapestry
• Actividad/Soporte
• Comunidad muy numerosa y amplio soporte
• Objetivo de evolucionar el framework cada 4 – 6 meses
• Ajax
• Librerías propias
• Soporte para librerías externas
• Escalabilidad
• Alta escalabilidad
• No permite varias aplicaciones en un mismo servidor
28. Frameworks – Tapestry
• Tapestry
• Testing
• Componentes propios
• Integración con herramientas
• Selenium
• TestNG/JUnit
• Documentación
• Documentación oficial completa, pero poco adaptada a problemas
reales.
• Varios libros publicados para la versión 3, 4 y 5
• Integración
• Spring
• JPA
29. Frameworks – Tapestry
• Tapestry
• Características especiales
• Configuración muy sencilla
• Facilita el diseño al basarse en plantillas HTML
• Hot Deploy
• API no compatible con versiones anteriores
35. Frameworks – JSF
• JSF
• Especificación estándar: JSR-314 (JSF v2.0)
• Diversas implementaciones de la especificación
• Mojarra (implementación de referencia)
• MyFaces (implementación de apache)
• Orientado a componentes:
• Conecta eventos generados por el cliente con el código servidor
• Construcción de interfaces mediante componentes
• Mantiene el estado de los componentes a lo largo del uso del
componente
• Soporte Maven
36. Frameworks – JSF
• JSF
• Componentes: Elementos que forman la página
• Backing Beans: Clases Java que gestionan los datos y las acciones
• Expression Language(EL): Lenguaje utilizado para enlazar los
componentes y los Backing Beans
• Facelets: Sistema de plantillas
• Ficheros de configuración XML
37. Frameworks – JSF
• JSF
• Actividad/Soporte
• Estándar Java EE
• Ajax
• Sin soporte, es necesario incluir librerías de soporte
• Escalabilidad
• Soporte del servidor de aplicaciones
• Testing
• Arquillian / JSFUnit
• Selenium
38. Frameworks – JSF
• JSF
• Documentación
• Documentación especifica de JSF
• Documentación especifica de las librerías de componentes
• Integración
• Basada en la pila tecnológica Java EE 6
• Aspectos especiales
• Implementación de extensiones con librerías de componentes
• Soporte Ajax mediante librerías de componentes
41. Frameworks – Oracle ADF
• Oracle ADF
• Framework de Oracle basado en estándares para el desarrollo de
aplicaciones Java
• Servidor WebLogic / JDeveloper
• Existen extensiones para otros servidores de aplicaciones
• Sin soporte Maven
42. Frameworks – Oracle ADF
Desktop Browser-Based
ADF Vi ew
Office Mobile JSF ADF Faces JSP
Swing
Metadata Services (MDS)
JSF ADF Controller Struts C r ol l er
ont
ADF Binding Model
Busi ness
Java EJB ADFbc BAM Web Services BPEL BI Portlets
Ser vi ces
D a
at
Ser vi ces
Database Web Services Legacy Systems Apps Unlimited
43. Frameworks – Oracle ADF
• Oracle ADF - ADF Rich Faces
• JSF
• Componentes propios ADF
• Incorporación de AJAX: Partial Page Rendering
• Validación en el cliente
• Soporte Look & Feel a través de skins
• Internacionalización
44. Frameworks – Oracle ADF
• Oracle ADF – Modelo
• Basada en componente: ADF Business Components (ADF BC)
• Entities
• ViewObjects
• ApplicationModules
• Sus elementos son una combinación de elementos declarativos y código
Java:
• La parte declarativa se gestiona a través de pantallas de
configuración
• Las clases asociadas son en parte generadas
• La parte declarativa permite liberar al programador de tareas de base
• Requiere licencia, aunque vienen como parte de Weblogic
46. Frameworks – Spring
• Spring
• Framework ligero para la construcción de aplicaciones empresariales
• Basado en diferentes patrones de diseño y “Best Practices”
• Organizado en diferentes módulos
47. Frameworks – Spring
• Spring
• Primera Release: 06/2003
• Versión actual 3.1 - 12/2011
• Licencia Apache License 2.0
• Soporte Maven
48. Frameworks – Spring
• Spring vs Java EE 6
• Spring no necesita un servidor de aplicaciones para funcionar
• Java EE 6 proporciona un nuevo mecanismo “Profiles” que hacen a los
servidores de aplicaciones más ligeros
• Spring no es un producto estándar lo que lo hace más flexible y adaptable,
permitiendo añadir nuevas funcionalidades
• Java EE 6 permite incorporar muchas de las librerías de Spring y extender
sus funcionalidades, aunque no todas
• Spring es uno de los frameworks más usuados dentro del entorno Java,
pero no puede competir con las empresas privadas detrás de la
especificación Java EE 6 y sus diferentes implementaciones
50. Frameworks – JBoss Seam
• JBoss Seam 3.0
• Framework de soporte a Java EE, basado en tecnologías como:
• AJAX
• JSF
• JPA
• EJB 3.0
• Jboss Tools, conjunto de herramientas que proporcionan un desarrollo
rápido, mediante editores WYSIWYG
• Características
• Proporciona una solución completa y extendida Java EE
• Elimina la necesidad de Backing Beans (JSF) para enlazar directamente con
EJB
• Integra Ajax utilizando RichFaces y ICEFaces
52. Frameworks – JPA
• Java Persistence API – JSR 317
• API estándar de mapeo O/R
• Primera release: 05/2006
• Versión actual: 2.0 12/2009
• Nace para estandarizar la persistencia de objetos
• Entity Beans (EJB v2.0):
• pesados y complicados
• Solo puede ejecutarse en servidores Java EE
• Estándares de facto
• Hibernate
• Diversas implementaciones de la especificación
• EclipseLink (Implementación de referencia)
• JBoss Hibernate
53. Frameworks – JPA
• Características
• Diseñada para permitir aplicaciones distribuidas
• El ciclo de vida esta gestionado por el servidor de aplicaciones
• Permite su uso fuera de Java EE
• Basada en metadatos definidos mediante anotaciones en Entities
• Entity, unidad básica de persistencia
• Mapeo entre Entity (Clase Java) y diversas tablas
• EntityManager, unidad básica de gestión de la persistencia
• persistence.xml (configuración de la conexión)
54. Frameworks – JPA
• Implementaciones
• Hibernate
• EclipseLink (Implementación de referencia)
• Hibernate vs EclipseLink
• Hibernate es más popular y extendido que EclipseLink
• EclipseLink requiere bytecode, mientras Hibernate utiliza proxies
dinámicos
• Control Lazy mejorado en EclipseLink
Ambos son una buen elección
56. 1. Entorno Java EE
• Introducción
• Arquitectura
2. Frameworks Java EE
• Criterios de selección
• Clasificación de Frameworks
• Comparando Frameworks
3. Metodología de proyecto
• Descripción
• Herramientas
57. Construcción de proyectos Java EE
• Metodología
• Selección tecnológica
• Frameworks a utilizar
• Selección IDE
• Jdeveloper
• Eclipse
• NetBeans
• IDEA
• Repositorio de código
• Subversion
• CVS
• Mercurial
58. Construcción de proyectos Java EE
• Metodología
• Herramienta de construcción
• Maven
• Ant
• Definición del entorno
• Entorno de desarrollo
• Entorno de integración
• Integración continua
• Hudson
• Jenkins
• CruiseControl
• Apache Continuum
• Bamboo (Atlassian Software Systems)
59. Construcción de proyectos Java EE
• Metodología
• Pruebas unitarias
• TestNG
• Junit
• Selenium
• Pruebas de rendimiento
• Jmeter
• Grinder
60. Construcción de proyectos Java EE
• Metodología
• Calidad del Software
• Sonar
• Métricas de código
• Código testeado en test unitarios
• Reglas de codificación
• Herramientas incluidas
• PMD/Checkstyle
• Findbugs
• Cobertura
• JaCoCo
61. Conclusiones
• Desarrollo de aplicaciones Java EE
• Estándares
• Soporte empresarial
• Tecnología Oracle
• Oracle ADF
• Tecnología JBoss
• JBoss Seam
• Otras tecnologías
• Utiliza estándares Java EE
• JSF
• EJB
• JPA