Frameworks Java EEJosé Ramón Romera05-03-2011
Agenda         1. Entorno Java EE            • Introducción            • Arquitectura         2. Frameworks Java EE       ...
Entorno Java EE
1.   Entorno Java EE     • Introducción     • Arquitectura2.   Frameworks Java EE     • Criterios de selección     • Clasi...
Entorno Java EE - Introducción • Conjunto de especificaciones basadas en estándares • Implementación definida por:     • S...
Entorno Java EE - Historia • J2EE 1.2 – Dec 1999     • Orientado a sistemas distribuidos     • Nacen frameworks web MVC   ...
Entorno Java EE - Historia • Java EE 5 – May 2006     • Simplificación     • Incorporación de ideas del resto de framework...
Entorno Java EE - Arquitectura • Limitaciones tecnológicas     • HTTP: Protocolo sin estado     • HTML: Formato documental...
Entorno Java EE - Arquitectura • Multicapa     • Capa Cliente     • Capa de negocio     • Capa de persistencia
Entorno Java EE - Arquitectura • Capa Cliente     • HTML     • JavaScript     • ActionScript (Adobe Flex)     • Silverligh...
Entorno Java EE - Arquitectura • Librerías JavaScript     • Prototype     • Script.aculo.us     • Ext Core          • Ext ...
Entorno Java EE - Arquitectura • Capa de negocio     • Capa web          • Servlets          • JSP     • Capa lógica de ne...
Entorno Java EE - Arquitectura • Capa de persistencia     • JDBC     • JPA (O/R Mapper)          • Hibernate (Jboss)      ...
Entorno Java EE - Arquitectura • Modelo-Vista-Controlador
Entorno Java EE - Arquitectura • El patrón Modelo-Vista-Controlador aporta:     • División de responsabilidades     • Acop...
Entorno Java EE - Arquitectura • Frameworks MVC    • Servlet            • Tapestry            • Wicket    • JSP / FreeMark...
Frameworks
1.   Entorno Java EE     • Introducción     • Arquitectura2.   Frameworks Java EE     • Criterios de selección     • Clasi...
Frameworks – Criterios de selección • Criterios de la organización     • Criterios de dirección/comercial     • Acuerdos c...
Frameworks – Criterios de selección • Criterios Técnicos     • Actividad/Soporte     • Ajax     • Escalabilidad     • Test...
Frameworks - Clasificación • Clasificación     • Frameworks de Aplicación          • Persistencia              • Hibernate...
Frameworks - Clasificación • Clasificación     • Frameworks Arquitectónicos          • Java EE          • Spring          ...
Frameworks - Clasificación • Clasificación             • ZK     • Frameworks web        • ItsNat          • JSF           ...
Frameworks – Comparación               Tapestry
Frameworks – Tapestry • Tapestry     • Framework web Java orientado a componentes, basado en el API Java       Servlet.   ...
Frameworks – Tapestry • Tapestry     • Actividad/Soporte          • Comunidad muy numerosa y amplio soporte          • Obj...
Frameworks – Tapestry • Tapestry     • Testing          • Componentes propios          • Integración con herramientas     ...
Frameworks – Tapestry • Tapestry     • Características especiales          • Configuración muy sencilla          • Facilit...
Frameworks – Comparación                Wicket
Frameworks – Wicket • Wicket     • Framework web Java basado en componentes y plantillas XHTML     • Primera release 06/20...
Frameworks – Wicket • Wicket     • Actividad/Soporte            • Comunidad activa     • Ajax            • Integración nat...
Frameworks – Wicket • Wicket     • Documentación            • Excelente documentación            • Libros disponibles     ...
Frameworks – Comparación                  JSF
Frameworks – JSF • JSF     • Especificación estándar: JSR-314 (JSF v2.0)     • Diversas implementaciones de la especificac...
Frameworks – JSF • JSF     • Componentes: Elementos que forman la página     • Backing Beans: Clases Java que gestionan lo...
Frameworks – JSF • JSF     • Actividad/Soporte          • Estándar Java EE     • Ajax          • Sin soporte, es necesario...
Frameworks – JSF • JSF     • Documentación          • Documentación especifica de JSF          • Documentación especifica ...
Frameworks – JSF • JSF     • Mojarra vs MyFaces • Librerías de componentes JSF     • PrimeFaces     • RichFaces     • ICEF...
Frameworks – Comparación              Oracle ADF
Frameworks – Oracle ADF • Oracle ADF     • Framework de Oracle basado en estándares para el desarrollo de       aplicacion...
Frameworks – Oracle ADF                              Desktop                                         Browser-Based        ...
Frameworks – Oracle ADF • Oracle ADF - ADF Rich Faces     • JSF     • Componentes propios ADF     • Incorporación de AJAX:...
Frameworks – Oracle ADF • Oracle ADF – Modelo    • Basada en componente: ADF Business Components (ADF BC)         • Entiti...
Frameworks – Comparación                Spring
Frameworks – Spring • Spring     • Framework ligero para la construcción de aplicaciones empresariales     • Basado en dif...
Frameworks – Spring• Spring    • Primera Release: 06/2003    • Versión actual 3.1 - 12/2011    • Licencia Apache License 2...
Frameworks – Spring• Spring vs Java EE 6    • Spring no necesita un servidor de aplicaciones para funcionar    • Java EE 6...
Frameworks – Comparación              JBoss Seam
Frameworks – JBoss Seam• JBoss Seam 3.0    • Framework de soporte a Java EE, basado en tecnologías como:         • AJAX   ...
Frameworks – Comparación                  JPA
Frameworks – JPA• Java Persistence API – JSR 317    • API estándar de mapeo O/R    • Primera release: 05/2006    • Versión...
Frameworks – JPA• Características    • Diseñada para permitir aplicaciones distribuidas    • El ciclo de vida esta gestion...
Frameworks – JPA• Implementaciones    • Hibernate    • EclipseLink (Implementación de referencia)• Hibernate vs EclipseLin...
Construcción de proyectos         Java EE
1.   Entorno Java EE     • Introducción     • Arquitectura2.   Frameworks Java EE     • Criterios de selección     • Clasi...
Construcción de proyectos Java EE • Metodología    • Selección tecnológica         • Frameworks a utilizar    • Selección ...
Construcción de proyectos Java EE • Metodología    • Herramienta de construcción         • Maven         • Ant    • Defini...
Construcción de proyectos Java EE • Metodología    • Pruebas unitarias         • TestNG         • Junit         • Selenium...
Construcción de proyectos Java EE • Metodología    • Calidad del Software         • Sonar             • Métricas de código...
Conclusiones• Desarrollo de aplicaciones Java EE    • Estándares    • Soporte empresarial    • Tecnología Oracle        • ...
Frameworks JAVA EE 5 de marzo de 2.012
Próxima SlideShare
Cargando en…5
×

Frameworks JAVA EE 5 de marzo de 2.012

6.214 visualizaciones

Publicado el

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.

Publicado en: Tecnología
0 comentarios
2 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

Sin descargas
Visualizaciones
Visualizaciones totales
6.214
En SlideShare
0
De insertados
0
Número de insertados
27
Acciones
Compartido
0
Descargas
210
Comentarios
0
Recomendaciones
2
Insertados 0
No insertados

No hay notas en la diapositiva.

Frameworks JAVA EE 5 de marzo de 2.012

  1. 1. Frameworks Java EEJosé Ramón Romera05-03-2011
  2. 2. 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
  3. 3. Entorno Java EE
  4. 4. 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
  5. 5. 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
  6. 6. 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
  7. 7. 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
  8. 8. 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 (*)
  9. 9. Entorno Java EE - Arquitectura • Multicapa • Capa Cliente • Capa de negocio • Capa de persistencia
  10. 10. Entorno Java EE - Arquitectura • Capa Cliente • HTML • JavaScript • ActionScript (Adobe Flex) • Silverlight (Microsoft) HTML / JavaScript
  11. 11. Entorno Java EE - Arquitectura • Librerías JavaScript • Prototype • Script.aculo.us • Ext Core • Ext JS • Mootools • MooLego UI • JxLib • Jquery • Jquery UI • Dojo AJAX
  12. 12. Entorno Java EE - Arquitectura • Capa de negocio • Capa web • Servlets • JSP • Capa lógica de negocio • EJB • Componentes JavaBeans • Web Services
  13. 13. Entorno Java EE - Arquitectura • Capa de persistencia • JDBC • JPA (O/R Mapper) • Hibernate (Jboss) • TopLink (Oracle) • EclipseLink (Eclipse) • OpenJPA • … • MyBatis (iBatis)
  14. 14. Entorno Java EE - Arquitectura • Modelo-Vista-Controlador
  15. 15. 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.
  16. 16. Entorno Java EE - Arquitectura • Frameworks MVC • Servlet • Tapestry • Wicket • JSP / FreeMarker / Velocity • Struts 2 • Spring MVC • Stripes • JSF • Mojarra • MyFaces
  17. 17. Frameworks
  18. 18. 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
  19. 19. 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
  20. 20. Frameworks – Criterios de selección • Criterios Técnicos • Actividad/Soporte • Ajax • Escalabilidad • Testing • Documentación • Integración • Aspectos especiales
  21. 21. Frameworks - Clasificación • Clasificación • Frameworks de Aplicación • Persistencia • Hibernate • TopLink • Web Service • Axis • CXF • Aspectos • AspectJ • Plantilla • Tiles • FreeMarker • Velocity
  22. 22. Frameworks - Clasificación • Clasificación • Frameworks Arquitectónicos • Java EE • Spring • Oracle ADF • Jboss Seam
  23. 23. 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
  24. 24. Frameworks – Comparación Tapestry
  25. 25. 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
  26. 26. 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
  27. 27. 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
  28. 28. 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
  29. 29. Frameworks – Comparación Wicket
  30. 30. 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
  31. 31. 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
  32. 32. 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
  33. 33. Frameworks – Comparación JSF
  34. 34. 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
  35. 35. 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
  36. 36. 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
  37. 37. 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
  38. 38. Frameworks – JSF • JSF • Mojarra vs MyFaces • Librerías de componentes JSF • PrimeFaces • RichFaces • ICEFaces
  39. 39. Frameworks – Comparación Oracle ADF
  40. 40. 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
  41. 41. 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
  42. 42. 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
  43. 43. 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
  44. 44. Frameworks – Comparación Spring
  45. 45. 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
  46. 46. Frameworks – Spring• Spring • Primera Release: 06/2003 • Versión actual 3.1 - 12/2011 • Licencia Apache License 2.0 • Soporte Maven
  47. 47. 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
  48. 48. Frameworks – Comparación JBoss Seam
  49. 49. 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
  50. 50. Frameworks – Comparación JPA
  51. 51. 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
  52. 52. 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)
  53. 53. 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
  54. 54. Construcción de proyectos Java EE
  55. 55. 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
  56. 56. 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
  57. 57. 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)
  58. 58. Construcción de proyectos Java EE • Metodología • Pruebas unitarias • TestNG • Junit • Selenium • Pruebas de rendimiento • Jmeter • Grinder
  59. 59. 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
  60. 60. 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

×