Frameworks JAVA EE 5 de marzo de 2.012
Upcoming SlideShare
Loading in...5
×
 

Frameworks JAVA EE 5 de marzo de 2.012

on

  • 6,060 views

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.

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.

Statistics

Views

Total Views
6,060
Views on SlideShare
6,058
Embed Views
2

Actions

Likes
2
Downloads
181
Comments
0

1 Embed 2

http://us-w1.rockmelt.com 2

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Frameworks JAVA EE 5 de marzo de 2.012 Frameworks JAVA EE 5 de marzo de 2.012 Presentation Transcript

  • Frameworks Java EEJosé Ramón Romera05-03-2011
  • Agenda 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
  • Entorno Java EE
  • 1. Entorno Java EE • Introducción • Arquitectura2. Frameworks Java EE • Criterios de selección • Clasificación de Frameworks • Comparando Frameworks3. Metodología de proyecto • Descripción • Herramientas
  • 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
  • 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
  • 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
  • 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 (*)
  • Entorno Java EE - Arquitectura • Multicapa • Capa Cliente • Capa de negocio • Capa de persistencia
  • Entorno Java EE - Arquitectura • Capa Cliente • HTML • JavaScript • ActionScript (Adobe Flex) • Silverlight (Microsoft) HTML / JavaScript
  • Entorno Java EE - Arquitectura • Librerías JavaScript • Prototype • Script.aculo.us • Ext Core • Ext JS • Mootools • MooLego UI • JxLib • Jquery • Jquery UI • Dojo AJAX
  • Entorno Java EE - Arquitectura • Capa de negocio • Capa web • Servlets • JSP • Capa lógica de negocio • EJB • Componentes JavaBeans • Web Services
  • Entorno Java EE - Arquitectura • Capa de persistencia • JDBC • JPA (O/R Mapper) • Hibernate (Jboss) • TopLink (Oracle) • EclipseLink (Eclipse) • OpenJPA • … • MyBatis (iBatis)
  • Entorno Java EE - Arquitectura • Modelo-Vista-Controlador
  • 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.
  • Entorno Java EE - Arquitectura • Frameworks MVC • Servlet • Tapestry • Wicket • JSP / FreeMarker / Velocity • Struts 2 • Spring MVC • Stripes • JSF • Mojarra • MyFaces
  • Frameworks
  • 1. Entorno Java EE • Introducción • Arquitectura2. Frameworks Java EE • Criterios de selección • Clasificación de Frameworks • Comparando Frameworks3. Metodología de proyecto • Descripción • Herramientas
  • 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
  • Frameworks – Criterios de selección • Criterios Técnicos • Actividad/Soporte • Ajax • Escalabilidad • Testing • Documentación • Integración • Aspectos especiales
  • Frameworks - Clasificación • Clasificación • Frameworks de Aplicación • Persistencia • Hibernate • TopLink • Web Service • Axis • CXF • Aspectos • AspectJ • Plantilla • Tiles • FreeMarker • Velocity
  • Frameworks - Clasificación • Clasificación • Frameworks Arquitectónicos • Java EE • Spring • Oracle ADF • Jboss Seam
  • Frameworks - Clasificación • Clasificación • ZK • Frameworks web • ItsNat • JSF • OpenXava • Tapestry • FormEngine • Struts 2 • EclipseRAP • Wicket • WaveMaker • Stripes • Struts • Oracle ADF • Context Framework • Spring MVC • AppFuse • GWT • … • Play • Grails • Vaadin
  • Frameworks – Comparación Tapestry
  • 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
  • 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
  • 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
  • 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
  • Frameworks – Comparación Wicket
  • Frameworks – Wicket • Wicket • Framework web Java basado en componentes y plantillas XHTML • Primera release 06/2005 • Versión actual 1.5.4 – 01/2012 • Licencia Apache License 2.0 • Soporte Maven
  • Frameworks – Wicket • Wicket • Actividad/Soporte • Comunidad activa • Ajax • Integración nativa • Integración con Jquery • Escalabilidad • Alta escalabilidad, fijado como objetivo • Clustering mediante replica de sesion • Testing
  • Frameworks – Wicket • Wicket • Documentación • Excelente documentación • Libros disponibles • Integración • Spring • EJB • JPA • Aspectos especiales • Simplificación entre el enlace HTML / Java • Todo es Java
  • Frameworks – Comparación JSF
  • 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
  • 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
  • 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
  • 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
  • Frameworks – JSF • JSF • Mojarra vs MyFaces • Librerías de componentes JSF • PrimeFaces • RichFaces • ICEFaces
  • Frameworks – Comparación Oracle ADF
  • 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
  • Frameworks – Oracle ADF Desktop Browser-Based ADF Vi ew Office Mobile JSF ADF Faces JSP SwingMetadata 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
  • 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
  • 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
  • Frameworks – Comparación Spring
  • 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
  • Frameworks – Spring• Spring • Primera Release: 06/2003 • Versión actual 3.1 - 12/2011 • Licencia Apache License 2.0 • Soporte Maven
  • 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
  • Frameworks – Comparación JBoss Seam
  • 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
  • Frameworks – Comparación JPA
  • 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
  • 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)
  • 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
  • Construcción de proyectos Java EE
  • 1. Entorno Java EE • Introducción • Arquitectura2. Frameworks Java EE • Criterios de selección • Clasificación de Frameworks • Comparando Frameworks3. Metodología de proyecto • Descripción • Herramientas
  • 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
  • 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)
  • Construcción de proyectos Java EE • Metodología • Pruebas unitarias • TestNG • Junit • Selenium • Pruebas de rendimiento • Jmeter • Grinder
  • 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
  • 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