SlideShare una empresa de Scribd logo
FRAMEWORKS
   J2EE
Framework

Conceptos básicos
 Framework: Conjunto estandarizado de conceptos,
prácticas y criterios para enfocar un tipo de
problemática particular, que sirve como referencia para
enfrentar y resolver nuevos problemas de índole
similar. (wikipedia)
 Soporte de programas, bibliotecas y un lenguaje
interpretado, etc. para ayudar a desarrollar y unir los
diferentes componentes de un proyecto.
 Estructura y una metodología de trabajo.
Framework

MVC - Modelo, vistas y controlador
     Arquitectura que separa los datos de una aplicación,
    la interfaz de usuario, y la lógica de control:
        • Vista: JSPs, HTML, etc.
        • Modelo: Sistema de Gestión de Base de Datos,
        la lógica de negocio, etc.
        • Controlador: Responsable de recibir los
        eventos de entrada desde la vista.
Framework

Entorno de desarrollo integrado
    IDE: Conjunto de herramientas de programación.
    IDE: Es un entorno de programación:
        • Un editor de texto.
        • Un compilador/intérprete.
        • Un depurador.
        • Sistema de control de versiones.
        • Ayuda para interfaces de usuario.
        • Automatizar tareas: (ANT, Maven, etc.)
    Ejemplos IDE: Eclipse, NetBeans, etc.
Framework

Frameworks J2EE destacados
    JSF (Java Server Faces)
    Struts (1.x y 2.x)
    Spring
    J BOSS SEAM
    GWT (Google Web Toolkit)
    Stripes, Tapestry, Wicket, Maverick, etc.
JSF
(Java Server Faces)
JSF

Conceptos básicos
    J ava Server Faces: especificación desarrollada por
   la J ava Community Process como J SR 127.
    Tecnología y framework para aplicaciones web Java
   que simplifica el desarrollo de interfaces de usuario.
    Usa JavaServer Pages (JSP) para desplegar
   páginas.
    Puede ser integrado con las bibliotecas de
   componentes JSF JBoss RichFaces o ICEFaces.
JSF

Incluye
    APIs para componentes de una interfaz de usuario y
   administrar su estado, manejar eventos, validar
   entrada, definir un esquema de navegación de las
   páginas y dar soporte para internacionalización y
   accesibilidad.
    Conjunto por defecto de componentes para la
   interfaz de usuario.
    Dos bibliotecas de etiquetas personalizadas para
   JavaServer Pages que permiten expresar una interfaz
   JavaServer Faces dentro de una página JSP.
JSF

Incluye
    Un modelo de eventos en el lado del servidor.
    Administración de estados.
    Beans administrados.
JSF

Implementaciones
    Sun Microsystems: JSF Reference Implementation.
    MyFaces: royecto de Apache Software Foundation.
    Rich Faces: http://www.jboss.org/richfaces
    ICEFaces: http://www.icefaces.org/main/home/
    jQuery4jsf: Basados en uno de los más populares
   framework javascript → jQuery.
    PrimeFaces
JSF

Implementaciones – PrimeFaces
    Más de 100 componentes Ajax de fácil uso.
    Soporta JSF 2.0.
    No requiere una complicada configuraciones.
    Showcase de Ejemplo para descarga.
    Documentación (pdf con 411 pg.).
    Temas preconfigurados (Ahorra maquetación)
               http://www.primefaces.org/
JSF

Ventajas
    Java EE Standard.
    Muchos componentes.
    Muchas librerías y herramientas.
    Buen soporte por varios IDEs.
    Alta demanda laboral.
    Rápido y fácil para empezar a desarrollar.
    El código JavaScript se incrusta como parte de
   componentes.
JSF

Desventajas
    Pesado, tanto en CPU como en memoria.
    Cuando algo no funciona como se espera, es difícil
   de depurar.
    Seguir estándares hace que la evolución de JSF no
   sea tan rápida como otros frameworks.
JSF

Facelets
    Framework para plantillas centrado en JSF.
    Permite trabajar con JSF de una forma más natural.
    Curva de aprendizaje corta.
    Ayuda a integrar JSP con JSF.
    Óptimo manejo de mensajes de error, que ahora
   reportan informes efectivos. En JSF, no se indica qué
   componente y en qué línea se produce un error.
JSF



EJEMPLOS JSF
STRUTS 1.x
Apache Struts 1.x

Conceptos básicos
    Framework Open Source para el desarrollo de
   aplicaciones Web bajo el patrón MVC (Modelo, vistas
   y controlador) y J2EE.
    Permite reducir el tiempo de desarrollo.
    Extremadamente popular y extendido.
    Basado en el patrón MVC.
    El componente primario de Struts es un Servlet.
    Muy usada actualmente :(
             http://struts.apache.org/
Apache Struts 1.x

Arquitectura
               HTTPServlet




              ActionServlet           ApplicationConfig   struts-config.xml




     Action                  RequestProcessor




                ActionForm
Apache Struts 1.x

Características básicas
    Un sólo archivo de configuración (struts-config.xml),
   aunque se podrían tener varios.
    Cada acción se modela como un Action.
    Cada formulario se modela como un ActionForm.
    Cada pantalla (JSP) debe utilizar tags de Struts.
    Es posible (y conveniente) utilizar archivos de
   propiedades para I18N.
Apache Struts 1.x

Ventajas
    Versión muy extendida.
    Actualmente mucha demanda laboral. En empresa
   privada y sobre todo en administración.
    Estable: muy consolidado y probado.
    Mucha documentación, ejemplos, libros, etc.
Apache Struts 1.x

Desventajas
    Si no está soportado por el IDE, puede resultar
   tedioso mantener la configuración.
    Para una sola pantalla debemos crear por lo menos
   2 clases (ActionForm y Action).
    El manejo de Actions como hilos de ejecución
   pueden generar problemas.
    Obsoleto: actualmente hay mejores alternativas.
Apache Struts 1.x



EJEMPLOS STRUTS 1.x
STRUTS 2.x
Apache Struts 2.x

Conceptos básicos
    Basado en el patrón MVC.
    Struts 2 no se basa en Struts 1.x, se basa en otro
   framework llamado WebWork.
    Más simple y mucho más completo que Struts 1,x.
    Permite reducir el tiempo de desarrollo.
    Todas las ventajas de usar un Framework:
   desarrollo más controlado y homogéneo.
Apache Struts 2.x

Ventajas
    Formularios POJO (Plain Old Java Objects), ya no
   se utilizan los ActionForm.
    Acciones POJO, no hace falta extender de Action.
    Mejoras en los tags.
    Archivo de configuración opcional y con posibilidad
   de dividirlo en paquetes.
    Soporte para AJAX.
    Integración de herramientas debbuging y profiling.
Apache Struts 2.x

Desventajas
    La documentación no está muy bien organizada.
    No hay feedback para las propiedades que no se
   han especificado o las expresiones OGNL no válidas.
    Los resultados de Struts 1.x en Google "molestan".
Apache Struts 2.x

Arquitectura
Apache Struts 2.x

Arquitectura simplificada
Apache Struts 2.x



EJEMPLOS STRUTS 2
SPRING
SPRING

Conceptos básicos
    Basado en el patrón MVC.
    Versión para la plataforma .NET → Spring .NET
    Soporte completo de Java 5.
    Spring Expression Language.
    Soporte excelente par aplicaciones REST.
    Mejorado el soporte de Ajax.
    Agregado soporte para JAX-RS.
SPRING

Conceptos básicos
    Motivación -> Facilitar el desarrollo de aplicaciones
   J2EE, promoviendo buenas prácticas de diseño y
   programación. (patrones de diseño como Factory,
   Abstract Factory, Decorator, Service Locator, etc).
    Es código abierto.
    Modularidad, usar módulos sin comprometerse con
   el uso del resto.
    Puede actuar como "pegamento" de integración
   entre diferentes APIs (JDBC, JNDI, etc.) y frameworks
   (por ejemplo entre Struts e iBatis).
SPRING

Ventajas
    Controllers, Models (JavaBeans) y Views.
    Muy flexible -> implementación mediante interfaces
   (Struts obliga a heredar de clases concretas).
    No obliga a utilizar JSP. Permite usar XLST,
   Velocity, FreeMaker o implemtar tu propio lenguaje.
    Los controllers se configuran mediante IoC como los
   demás objetos → fácilmente testeables e integrables.
SPRING

Ventajas
    Ofrece un framework para todas las capas de la
   aplicación.
    No existen ActionForms se enlaza directamente con
   los beans de negocio.
    Cantidad de código testeable, las validaciones no
   dependen de la Api de servlets.
SPRING

Principales módulos
    Spring Core (Inversión del control (IoC) / Inyección
   de dependencias (DI))
    Spring AOP (Programación orientada a aspectos)
    Spring JDBC (Acceso a datos)
    Spring MVC (Desarrollo Web según el patrón MVC)
    Spring Remoting (Distribución)
    Spring Transaction Abstraction (Transacciones)
    Otros: Spring TestContext, Spring JMX, Spring
   Security , Spring Web Flow
SPRING

Principales módulos
JBOSS SEAM
JBOSS SEAM

Conceptos básicos
    Framework desarrollado por JBoss.
    Combina a los 2 frameworks EJB3 y JSF.
    Desarrollo WYSIWYG facilitado a través del uso de
   las JBoss Tools.
    Jboss Tools: Conjunto de plug-ins diseñados para el
   entorno integrado de desarrollo Eclipse.
    Libro recomendado aquí
       http://www.seamframework.org/Home
JBOSS SEAM

Conceptos básicos
JBOSS SEAM

Ventajas
    Integración con Gestores de Contenido y Workflow:
       • JBoss Portal.
       • Alfresco ECM, que se presenta como una
       excelente propuesta Open Source para el manejo
       de contenido empresarial.
    Seam elimina la barrera existente entre JSF y EJB,
   permitiendo usar EJBs directamente como "backing
   beans" de JSF y lanzar o escuchar eventos web.
GWT
GWT

Conceptos básicos
    Google Web Toolkit (GWT) es un entorno open
   source para el desarrollo de aplicaciones amigables
   en Java basadas en AJAX.
    El código se escribe en Java. El compilador GWT lo
   convierte en JavaScript y HTML compatible con
   cualquier navegador.
    Colección de componentes de interfaz de usuario
   (widgets) dinámicas y reusables.
    Licencia Apache 2.0.
GWT

Arquitectura
GWT

Ciclo de vida del desarrollo
    1. Escribir y depurar la aplicación en Java usando
   GWT.
    2. Usar el compilador Java-to-JavaScript de GWT
   para generar JavaScript y HTML.
    3. Comprobar funcionamiento en los navegadores.
GWT

GWT y RPC
   GWT usa RPC como mecanismo para interactuar
  con el servidor. (ej. obtener datos de BD).
   Permite pasar objetos Java entre cliente y servidor.
   Usado correctamente permite mover gran parte de
  la lógica de la interfaz al lado del cliente, obteniendo
  mejor rendimiento, menor consumo de ancho de
  banda e interfaces más amigables.
GWT

GWT y RPC
GWT

Ventajas
    Programar en Java permite utilizar IDEs como
   Eclipse o NetBeans, así como sus herramientas de
   depuración..
    Código javascript generado por el compilador:
       • Más eficiente que el escrito a mano.
       • Usa técnicas de compresión y ofuscación.
       • Permite inlining: En la llamada a un método
       javascript, el compilador puede colocar el cuerpo.
GWT

Ventajas
    No se necesita mucho conocimiento de otros
   lenguajes (JavaScript).
    Los errores comunes JavaScripts (types, type
   mismatches) son capturados por el programador
   durante compilación.
    Se evitan incompatibilidades de los navegadores.
    Integración con JUnit.
    Internacionalización.
GWT

Desventajas
    La generación automática de HTML podría dificultar
   el uso de herramientas estándar de HTML y CSS.
    Sólo para desarrolladores Java.
    Muchos entornos Ajax permiten elegir el lenguaje en
   el servidor. GWT sólo permite Java.
    Enfoque Inusual:
       • Evaluación y administración más difícil.
       • Desconfianza.
EJEMPLO DE ARQ

Propuesta de arquitectura

 Ejemplo aquí:


 (http://www.adictosaltrabajo.com/tutoriales/tutoriales.php
 ?pagina=EjemploArquitecturaPropuestaAutentia)
Frameworks J2EE


      FIN
                          Iker Canarias
              iker.canarias@gmail.com

Más contenido relacionado

La actualidad más candente

Middleware
MiddlewareMiddleware
Middleware
Matias Yima
 
Documentación base de datos
Documentación base de datos  Documentación base de datos
Documentación base de datos
Mario De La Cruz
 
Administración de Transacciones - del tema 1 al 4
Administración de Transacciones - del tema 1 al 4Administración de Transacciones - del tema 1 al 4
Administración de Transacciones - del tema 1 al 4
Mayito Pdg
 
Aplicaciones Distribuidas
Aplicaciones DistribuidasAplicaciones Distribuidas
Aplicaciones Distribuidas
Sorey García
 
Caracteristicas de los Sistemas Distribuidos
Caracteristicas de los Sistemas DistribuidosCaracteristicas de los Sistemas Distribuidos
Caracteristicas de los Sistemas Distribuidos
Jorge Guerra
 
Sistema distribuido
Sistema distribuidoSistema distribuido
Sistema distribuido
Bonita Vm
 
Ingeniería de software II- Parte 3.2
Ingeniería de software II- Parte 3.2Ingeniería de software II- Parte 3.2
Ingeniería de software II- Parte 3.2
Marta Silvia Tabares
 
Patrones GOF
Patrones GOFPatrones GOF
Monitores-sistemas operativos
Monitores-sistemas operativosMonitores-sistemas operativos
Monitores-sistemas operativos
Daniel Vargas
 
Middleware en los sistemas distribuidos
Middleware en los sistemas distribuidosMiddleware en los sistemas distribuidos
Middleware en los sistemas distribuidos
JC Alca Arequi
 
Arquitectura distribuida
Arquitectura distribuidaArquitectura distribuida
Arquitectura distribuida
Gustavo Dueñas Hernandez
 
Sistemas Operativos Gestión de memoria
Sistemas Operativos Gestión de memoriaSistemas Operativos Gestión de memoria
Sistemas Operativos Gestión de memoria
Ricardo Joel Robinson Gonzalez
 
Servidores web o http
Servidores web o httpServidores web o http
Servidores web o http
Jesús Baltan Ramírez
 
Ventajas y desventajas de los servidores apache y IIS
Ventajas y desventajas de los servidores apache y IISVentajas y desventajas de los servidores apache y IIS
Ventajas y desventajas de los servidores apache y IIS
elianaespinoza
 
Modelo de prototipo
Modelo de prototipoModelo de prototipo
Modelo de prototipo
yanezcabrera
 
Modelo 4+1
Modelo 4+1Modelo 4+1
Modelo 4+1
Israel Rey
 
Herramientas case
Herramientas caseHerramientas case
Herramientas case
Leidy Galindo
 
Metodologia omt
Metodologia omtMetodologia omt
Metodologia omt
Wilfredy Inciarte
 
Arquitectura Rest
Arquitectura RestArquitectura Rest
Arquitectura Rest
Israel Rey
 
Preguntas JAVA.docx
Preguntas JAVA.docxPreguntas JAVA.docx
Preguntas JAVA.docx
CarlosNishimura1
 

La actualidad más candente (20)

Middleware
MiddlewareMiddleware
Middleware
 
Documentación base de datos
Documentación base de datos  Documentación base de datos
Documentación base de datos
 
Administración de Transacciones - del tema 1 al 4
Administración de Transacciones - del tema 1 al 4Administración de Transacciones - del tema 1 al 4
Administración de Transacciones - del tema 1 al 4
 
Aplicaciones Distribuidas
Aplicaciones DistribuidasAplicaciones Distribuidas
Aplicaciones Distribuidas
 
Caracteristicas de los Sistemas Distribuidos
Caracteristicas de los Sistemas DistribuidosCaracteristicas de los Sistemas Distribuidos
Caracteristicas de los Sistemas Distribuidos
 
Sistema distribuido
Sistema distribuidoSistema distribuido
Sistema distribuido
 
Ingeniería de software II- Parte 3.2
Ingeniería de software II- Parte 3.2Ingeniería de software II- Parte 3.2
Ingeniería de software II- Parte 3.2
 
Patrones GOF
Patrones GOFPatrones GOF
Patrones GOF
 
Monitores-sistemas operativos
Monitores-sistemas operativosMonitores-sistemas operativos
Monitores-sistemas operativos
 
Middleware en los sistemas distribuidos
Middleware en los sistemas distribuidosMiddleware en los sistemas distribuidos
Middleware en los sistemas distribuidos
 
Arquitectura distribuida
Arquitectura distribuidaArquitectura distribuida
Arquitectura distribuida
 
Sistemas Operativos Gestión de memoria
Sistemas Operativos Gestión de memoriaSistemas Operativos Gestión de memoria
Sistemas Operativos Gestión de memoria
 
Servidores web o http
Servidores web o httpServidores web o http
Servidores web o http
 
Ventajas y desventajas de los servidores apache y IIS
Ventajas y desventajas de los servidores apache y IISVentajas y desventajas de los servidores apache y IIS
Ventajas y desventajas de los servidores apache y IIS
 
Modelo de prototipo
Modelo de prototipoModelo de prototipo
Modelo de prototipo
 
Modelo 4+1
Modelo 4+1Modelo 4+1
Modelo 4+1
 
Herramientas case
Herramientas caseHerramientas case
Herramientas case
 
Metodologia omt
Metodologia omtMetodologia omt
Metodologia omt
 
Arquitectura Rest
Arquitectura RestArquitectura Rest
Arquitectura Rest
 
Preguntas JAVA.docx
Preguntas JAVA.docxPreguntas JAVA.docx
Preguntas JAVA.docx
 

Destacado

Desarrollo de aplicaciones empresariales con Java EE
Desarrollo de aplicaciones empresariales con Java EEDesarrollo de aplicaciones empresariales con Java EE
Desarrollo de aplicaciones empresariales con Java EE
Fernando Montaño
 
Introducción a java EE 7
Introducción a java EE 7Introducción a java EE 7
Introducción a java EE 7
Carlos Camacho
 
Arquitectura y diseño de aplicaciones Java EE
Arquitectura y diseño de aplicaciones Java EEArquitectura y diseño de aplicaciones Java EE
Arquitectura y diseño de aplicaciones Java EE
Carlos Gavidia-Calderon
 
Introducción a JEE
Introducción a JEEIntroducción a JEE
Introducción a JEE
Iker Canarias
 
Curso Java Avanzado 5 Ejb
Curso Java Avanzado   5 EjbCurso Java Avanzado   5 Ejb
Curso Java Avanzado 5 Ejb
Emilio Aviles Avila
 
Java Server Faces
Java Server FacesJava Server Faces
Java Server Faces
Paco_1994
 
Pki
PkiPki
Spring framework - J2EE S Lidskou Tvari
Spring framework - J2EE S Lidskou TvariSpring framework - J2EE S Lidskou Tvari
Spring framework - J2EE S Lidskou Tvari
Roman Pichlík
 
JAVA 2 EE
JAVA 2 EEJAVA 2 EE
Innovaciones tecnológicas
Innovaciones tecnológicasInnovaciones tecnológicas
Innovaciones tecnológicas
alejandrapaez1102
 
1 curso javaserverfaces-presentacion_clase_1
1 curso javaserverfaces-presentacion_clase_11 curso javaserverfaces-presentacion_clase_1
1 curso javaserverfaces-presentacion_clase_1
josezapana
 
Sesion05
Sesion05Sesion05
Sesion05
verito1234567
 
Modulo 1 java ee platform
Modulo 1   java ee platformModulo 1   java ee platform
Modulo 1 java ee platform
Roberto Marchena
 
Servlets exposicion
Servlets exposicionServlets exposicion
Servlets exposicion
Flashnet S.A
 
Jsp(java server pages)
Jsp(java server pages)Jsp(java server pages)
Jsp(java server pages)
diegob1098
 
Apache Tomcat + Java EE = Apache TomEE
Apache Tomcat + Java EE = Apache TomEEApache Tomcat + Java EE = Apache TomEE
Apache Tomcat + Java EE = Apache TomEE
Jacek Laskowski
 
Lenguaje de Programación Ruby
Lenguaje de Programación RubyLenguaje de Programación Ruby
Lenguaje de Programación Ruby
Alexander Echeverría
 
Java EE 7: Developing for the Cloud at Geecon, JEEConf, Johannesburg
Java EE 7: Developing for the Cloud at Geecon, JEEConf, JohannesburgJava EE 7: Developing for the Cloud at Geecon, JEEConf, Johannesburg
Java EE 7: Developing for the Cloud at Geecon, JEEConf, Johannesburg
Arun Gupta
 
XML
XMLXML
Ud4 Seguridad del hardware
Ud4 Seguridad del hardwareUd4 Seguridad del hardware
Ud4 Seguridad del hardware
carmenrico14
 

Destacado (20)

Desarrollo de aplicaciones empresariales con Java EE
Desarrollo de aplicaciones empresariales con Java EEDesarrollo de aplicaciones empresariales con Java EE
Desarrollo de aplicaciones empresariales con Java EE
 
Introducción a java EE 7
Introducción a java EE 7Introducción a java EE 7
Introducción a java EE 7
 
Arquitectura y diseño de aplicaciones Java EE
Arquitectura y diseño de aplicaciones Java EEArquitectura y diseño de aplicaciones Java EE
Arquitectura y diseño de aplicaciones Java EE
 
Introducción a JEE
Introducción a JEEIntroducción a JEE
Introducción a JEE
 
Curso Java Avanzado 5 Ejb
Curso Java Avanzado   5 EjbCurso Java Avanzado   5 Ejb
Curso Java Avanzado 5 Ejb
 
Java Server Faces
Java Server FacesJava Server Faces
Java Server Faces
 
Pki
PkiPki
Pki
 
Spring framework - J2EE S Lidskou Tvari
Spring framework - J2EE S Lidskou TvariSpring framework - J2EE S Lidskou Tvari
Spring framework - J2EE S Lidskou Tvari
 
JAVA 2 EE
JAVA 2 EEJAVA 2 EE
JAVA 2 EE
 
Innovaciones tecnológicas
Innovaciones tecnológicasInnovaciones tecnológicas
Innovaciones tecnológicas
 
1 curso javaserverfaces-presentacion_clase_1
1 curso javaserverfaces-presentacion_clase_11 curso javaserverfaces-presentacion_clase_1
1 curso javaserverfaces-presentacion_clase_1
 
Sesion05
Sesion05Sesion05
Sesion05
 
Modulo 1 java ee platform
Modulo 1   java ee platformModulo 1   java ee platform
Modulo 1 java ee platform
 
Servlets exposicion
Servlets exposicionServlets exposicion
Servlets exposicion
 
Jsp(java server pages)
Jsp(java server pages)Jsp(java server pages)
Jsp(java server pages)
 
Apache Tomcat + Java EE = Apache TomEE
Apache Tomcat + Java EE = Apache TomEEApache Tomcat + Java EE = Apache TomEE
Apache Tomcat + Java EE = Apache TomEE
 
Lenguaje de Programación Ruby
Lenguaje de Programación RubyLenguaje de Programación Ruby
Lenguaje de Programación Ruby
 
Java EE 7: Developing for the Cloud at Geecon, JEEConf, Johannesburg
Java EE 7: Developing for the Cloud at Geecon, JEEConf, JohannesburgJava EE 7: Developing for the Cloud at Geecon, JEEConf, Johannesburg
Java EE 7: Developing for the Cloud at Geecon, JEEConf, Johannesburg
 
XML
XMLXML
XML
 
Ud4 Seguridad del hardware
Ud4 Seguridad del hardwareUd4 Seguridad del hardware
Ud4 Seguridad del hardware
 

Similar a Frameworks J2EE

9 tecnologías v1.1
9 tecnologías v1.19 tecnologías v1.1
9 tecnologías v1.1
UTN
 
Introducción Spring Framework
Introducción Spring FrameworkIntroducción Spring Framework
Introducción Spring Framework
econtinua
 
Plataforma de programación Java
Plataforma de programación JavaPlataforma de programación Java
Plataforma de programación Java
Antonio Contreras
 
spring
springspring
spring
Angel Ruiz
 
Aplicaciones web con jakarta struts - Javier Oliver Fulguera
Aplicaciones web con jakarta struts  - Javier Oliver FulgueraAplicaciones web con jakarta struts  - Javier Oliver Fulguera
Aplicaciones web con jakarta struts - Javier Oliver Fulguera
Javier Oliver Fulguera
 
Presentacion mvc orm
Presentacion mvc ormPresentacion mvc orm
Presentacion mvc orm
Alejandro Pérez
 
Jsf Java Server Faces
Jsf   Java Server FacesJsf   Java Server Faces
Jsf Java Server Faces
cok12v
 
DISEÑO DE APLICACIONES WEB (INTRODUCCION)
DISEÑO DE APLICACIONES WEB (INTRODUCCION)DISEÑO DE APLICACIONES WEB (INTRODUCCION)
DISEÑO DE APLICACIONES WEB (INTRODUCCION)
René Pilataxi
 
Intro jsf
Intro jsfIntro jsf
Intro jsf
René Pilataxi
 
Frameworks Java
Frameworks JavaFrameworks Java
Frameworks Java
Jose Luis Bugarin Peche
 
FMK Capa de Presentacion
FMK Capa de PresentacionFMK Capa de Presentacion
FMK Capa de Presentacion
kaolong
 
Seminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring InsightSeminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring Insight
Paradigma Digital
 
Manual 2014 i 04 lenguaje de programación ii (0870)
Manual 2014 i 04 lenguaje de programación ii (0870)Manual 2014 i 04 lenguaje de programación ii (0870)
Manual 2014 i 04 lenguaje de programación ii (0870)
Robert Rayco Quiroz
 
Java Web - Struts
Java Web - StrutsJava Web - Struts
Java Web - Struts
Luis Miguel De Bello
 
Seminario de programación Java, con Apache Maven, J2EE, JPA, Primefaces
Seminario de programación Java, con Apache Maven, J2EE, JPA, PrimefacesSeminario de programación Java, con Apache Maven, J2EE, JPA, Primefaces
Seminario de programación Java, con Apache Maven, J2EE, JPA, Primefaces
Alejandro Bolaños Ussa
 
Patronmvc 090816170431-phpapp02
Patronmvc 090816170431-phpapp02Patronmvc 090816170431-phpapp02
Patronmvc 090816170431-phpapp02
Felipe Villamizar
 
Patron Mvc Struts 1 y 2
Patron Mvc Struts 1 y 2Patron Mvc Struts 1 y 2
Patron Mvc Struts 1 y 2
mundojava
 
01.springframework.pptx
01.springframework.pptx01.springframework.pptx
01.springframework.pptx
johann
 
Spring
SpringSpring
Introducción a Java y BEA (2008)
Introducción a Java y BEA (2008)Introducción a Java y BEA (2008)
Introducción a Java y BEA (2008)
Isidro José López Martínez
 

Similar a Frameworks J2EE (20)

9 tecnologías v1.1
9 tecnologías v1.19 tecnologías v1.1
9 tecnologías v1.1
 
Introducción Spring Framework
Introducción Spring FrameworkIntroducción Spring Framework
Introducción Spring Framework
 
Plataforma de programación Java
Plataforma de programación JavaPlataforma de programación Java
Plataforma de programación Java
 
spring
springspring
spring
 
Aplicaciones web con jakarta struts - Javier Oliver Fulguera
Aplicaciones web con jakarta struts  - Javier Oliver FulgueraAplicaciones web con jakarta struts  - Javier Oliver Fulguera
Aplicaciones web con jakarta struts - Javier Oliver Fulguera
 
Presentacion mvc orm
Presentacion mvc ormPresentacion mvc orm
Presentacion mvc orm
 
Jsf Java Server Faces
Jsf   Java Server FacesJsf   Java Server Faces
Jsf Java Server Faces
 
DISEÑO DE APLICACIONES WEB (INTRODUCCION)
DISEÑO DE APLICACIONES WEB (INTRODUCCION)DISEÑO DE APLICACIONES WEB (INTRODUCCION)
DISEÑO DE APLICACIONES WEB (INTRODUCCION)
 
Intro jsf
Intro jsfIntro jsf
Intro jsf
 
Frameworks Java
Frameworks JavaFrameworks Java
Frameworks Java
 
FMK Capa de Presentacion
FMK Capa de PresentacionFMK Capa de Presentacion
FMK Capa de Presentacion
 
Seminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring InsightSeminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring Insight
 
Manual 2014 i 04 lenguaje de programación ii (0870)
Manual 2014 i 04 lenguaje de programación ii (0870)Manual 2014 i 04 lenguaje de programación ii (0870)
Manual 2014 i 04 lenguaje de programación ii (0870)
 
Java Web - Struts
Java Web - StrutsJava Web - Struts
Java Web - Struts
 
Seminario de programación Java, con Apache Maven, J2EE, JPA, Primefaces
Seminario de programación Java, con Apache Maven, J2EE, JPA, PrimefacesSeminario de programación Java, con Apache Maven, J2EE, JPA, Primefaces
Seminario de programación Java, con Apache Maven, J2EE, JPA, Primefaces
 
Patronmvc 090816170431-phpapp02
Patronmvc 090816170431-phpapp02Patronmvc 090816170431-phpapp02
Patronmvc 090816170431-phpapp02
 
Patron Mvc Struts 1 y 2
Patron Mvc Struts 1 y 2Patron Mvc Struts 1 y 2
Patron Mvc Struts 1 y 2
 
01.springframework.pptx
01.springframework.pptx01.springframework.pptx
01.springframework.pptx
 
Spring
SpringSpring
Spring
 
Introducción a Java y BEA (2008)
Introducción a Java y BEA (2008)Introducción a Java y BEA (2008)
Introducción a Java y BEA (2008)
 

Más de Iker Canarias

Patrones de diseño de software
Patrones de diseño de softwarePatrones de diseño de software
Patrones de diseño de software
Iker Canarias
 
Subversion - buenas prácticas
Subversion - buenas prácticasSubversion - buenas prácticas
Subversion - buenas prácticas
Iker Canarias
 
Breve introducción a Apache Ant
Breve introducción a Apache AntBreve introducción a Apache Ant
Breve introducción a Apache Ant
Iker Canarias
 
Introducción a JUnit
Introducción a JUnitIntroducción a JUnit
Introducción a JUnit
Iker Canarias
 
Integración de aplicaciones Java
Integración de aplicaciones JavaIntegración de aplicaciones Java
Integración de aplicaciones Java
Iker Canarias
 
Persistencia de datos en Java
Persistencia de datos en JavaPersistencia de datos en Java
Persistencia de datos en Java
Iker Canarias
 
Introducción a Tomcat
Introducción a TomcatIntroducción a Tomcat
Introducción a Tomcat
Iker Canarias
 
Introducción a JBoss
Introducción a JBossIntroducción a JBoss
Introducción a JBoss
Iker Canarias
 
Buenas prácticas para la construcción de software
Buenas prácticas para la construcción de softwareBuenas prácticas para la construcción de software
Buenas prácticas para la construcción de software
Iker Canarias
 
Introducción a Servidor HTTP Apache
Introducción a Servidor HTTP ApacheIntroducción a Servidor HTTP Apache
Introducción a Servidor HTTP Apache
Iker Canarias
 

Más de Iker Canarias (10)

Patrones de diseño de software
Patrones de diseño de softwarePatrones de diseño de software
Patrones de diseño de software
 
Subversion - buenas prácticas
Subversion - buenas prácticasSubversion - buenas prácticas
Subversion - buenas prácticas
 
Breve introducción a Apache Ant
Breve introducción a Apache AntBreve introducción a Apache Ant
Breve introducción a Apache Ant
 
Introducción a JUnit
Introducción a JUnitIntroducción a JUnit
Introducción a JUnit
 
Integración de aplicaciones Java
Integración de aplicaciones JavaIntegración de aplicaciones Java
Integración de aplicaciones Java
 
Persistencia de datos en Java
Persistencia de datos en JavaPersistencia de datos en Java
Persistencia de datos en Java
 
Introducción a Tomcat
Introducción a TomcatIntroducción a Tomcat
Introducción a Tomcat
 
Introducción a JBoss
Introducción a JBossIntroducción a JBoss
Introducción a JBoss
 
Buenas prácticas para la construcción de software
Buenas prácticas para la construcción de softwareBuenas prácticas para la construcción de software
Buenas prácticas para la construcción de software
 
Introducción a Servidor HTTP Apache
Introducción a Servidor HTTP ApacheIntroducción a Servidor HTTP Apache
Introducción a Servidor HTTP Apache
 

Frameworks J2EE

  • 1. FRAMEWORKS J2EE
  • 2. Framework Conceptos básicos  Framework: Conjunto estandarizado de conceptos, prácticas y criterios para enfocar un tipo de problemática particular, que sirve como referencia para enfrentar y resolver nuevos problemas de índole similar. (wikipedia)  Soporte de programas, bibliotecas y un lenguaje interpretado, etc. para ayudar a desarrollar y unir los diferentes componentes de un proyecto.  Estructura y una metodología de trabajo.
  • 3. Framework MVC - Modelo, vistas y controlador  Arquitectura que separa los datos de una aplicación, la interfaz de usuario, y la lógica de control: • Vista: JSPs, HTML, etc. • Modelo: Sistema de Gestión de Base de Datos, la lógica de negocio, etc. • Controlador: Responsable de recibir los eventos de entrada desde la vista.
  • 4. Framework Entorno de desarrollo integrado  IDE: Conjunto de herramientas de programación.  IDE: Es un entorno de programación: • Un editor de texto. • Un compilador/intérprete. • Un depurador. • Sistema de control de versiones. • Ayuda para interfaces de usuario. • Automatizar tareas: (ANT, Maven, etc.)  Ejemplos IDE: Eclipse, NetBeans, etc.
  • 5. Framework Frameworks J2EE destacados  JSF (Java Server Faces)  Struts (1.x y 2.x)  Spring  J BOSS SEAM  GWT (Google Web Toolkit)  Stripes, Tapestry, Wicket, Maverick, etc.
  • 7. JSF Conceptos básicos  J ava Server Faces: especificación desarrollada por la J ava Community Process como J SR 127.  Tecnología y framework para aplicaciones web Java que simplifica el desarrollo de interfaces de usuario.  Usa JavaServer Pages (JSP) para desplegar páginas.  Puede ser integrado con las bibliotecas de componentes JSF JBoss RichFaces o ICEFaces.
  • 8. JSF Incluye  APIs para componentes de una interfaz de usuario y administrar su estado, manejar eventos, validar entrada, definir un esquema de navegación de las páginas y dar soporte para internacionalización y accesibilidad.  Conjunto por defecto de componentes para la interfaz de usuario.  Dos bibliotecas de etiquetas personalizadas para JavaServer Pages que permiten expresar una interfaz JavaServer Faces dentro de una página JSP.
  • 9. JSF Incluye  Un modelo de eventos en el lado del servidor.  Administración de estados.  Beans administrados.
  • 10. JSF Implementaciones  Sun Microsystems: JSF Reference Implementation.  MyFaces: royecto de Apache Software Foundation.  Rich Faces: http://www.jboss.org/richfaces  ICEFaces: http://www.icefaces.org/main/home/  jQuery4jsf: Basados en uno de los más populares framework javascript → jQuery.  PrimeFaces
  • 11. JSF Implementaciones – PrimeFaces  Más de 100 componentes Ajax de fácil uso.  Soporta JSF 2.0.  No requiere una complicada configuraciones.  Showcase de Ejemplo para descarga.  Documentación (pdf con 411 pg.).  Temas preconfigurados (Ahorra maquetación) http://www.primefaces.org/
  • 12. JSF Ventajas  Java EE Standard.  Muchos componentes.  Muchas librerías y herramientas.  Buen soporte por varios IDEs.  Alta demanda laboral.  Rápido y fácil para empezar a desarrollar.  El código JavaScript se incrusta como parte de componentes.
  • 13. JSF Desventajas  Pesado, tanto en CPU como en memoria.  Cuando algo no funciona como se espera, es difícil de depurar.  Seguir estándares hace que la evolución de JSF no sea tan rápida como otros frameworks.
  • 14. JSF Facelets  Framework para plantillas centrado en JSF.  Permite trabajar con JSF de una forma más natural.  Curva de aprendizaje corta.  Ayuda a integrar JSP con JSF.  Óptimo manejo de mensajes de error, que ahora reportan informes efectivos. En JSF, no se indica qué componente y en qué línea se produce un error.
  • 17. Apache Struts 1.x Conceptos básicos  Framework Open Source para el desarrollo de aplicaciones Web bajo el patrón MVC (Modelo, vistas y controlador) y J2EE.  Permite reducir el tiempo de desarrollo.  Extremadamente popular y extendido.  Basado en el patrón MVC.  El componente primario de Struts es un Servlet.  Muy usada actualmente :( http://struts.apache.org/
  • 18. Apache Struts 1.x Arquitectura HTTPServlet ActionServlet ApplicationConfig struts-config.xml Action RequestProcessor ActionForm
  • 19. Apache Struts 1.x Características básicas  Un sólo archivo de configuración (struts-config.xml), aunque se podrían tener varios.  Cada acción se modela como un Action.  Cada formulario se modela como un ActionForm.  Cada pantalla (JSP) debe utilizar tags de Struts.  Es posible (y conveniente) utilizar archivos de propiedades para I18N.
  • 20. Apache Struts 1.x Ventajas  Versión muy extendida.  Actualmente mucha demanda laboral. En empresa privada y sobre todo en administración.  Estable: muy consolidado y probado.  Mucha documentación, ejemplos, libros, etc.
  • 21. Apache Struts 1.x Desventajas  Si no está soportado por el IDE, puede resultar tedioso mantener la configuración.  Para una sola pantalla debemos crear por lo menos 2 clases (ActionForm y Action).  El manejo de Actions como hilos de ejecución pueden generar problemas.  Obsoleto: actualmente hay mejores alternativas.
  • 24. Apache Struts 2.x Conceptos básicos  Basado en el patrón MVC.  Struts 2 no se basa en Struts 1.x, se basa en otro framework llamado WebWork.  Más simple y mucho más completo que Struts 1,x.  Permite reducir el tiempo de desarrollo.  Todas las ventajas de usar un Framework: desarrollo más controlado y homogéneo.
  • 25. Apache Struts 2.x Ventajas  Formularios POJO (Plain Old Java Objects), ya no se utilizan los ActionForm.  Acciones POJO, no hace falta extender de Action.  Mejoras en los tags.  Archivo de configuración opcional y con posibilidad de dividirlo en paquetes.  Soporte para AJAX.  Integración de herramientas debbuging y profiling.
  • 26. Apache Struts 2.x Desventajas  La documentación no está muy bien organizada.  No hay feedback para las propiedades que no se han especificado o las expresiones OGNL no válidas.  Los resultados de Struts 1.x en Google "molestan".
  • 31. SPRING Conceptos básicos  Basado en el patrón MVC.  Versión para la plataforma .NET → Spring .NET  Soporte completo de Java 5.  Spring Expression Language.  Soporte excelente par aplicaciones REST.  Mejorado el soporte de Ajax.  Agregado soporte para JAX-RS.
  • 32. SPRING Conceptos básicos  Motivación -> Facilitar el desarrollo de aplicaciones J2EE, promoviendo buenas prácticas de diseño y programación. (patrones de diseño como Factory, Abstract Factory, Decorator, Service Locator, etc).  Es código abierto.  Modularidad, usar módulos sin comprometerse con el uso del resto.  Puede actuar como "pegamento" de integración entre diferentes APIs (JDBC, JNDI, etc.) y frameworks (por ejemplo entre Struts e iBatis).
  • 33. SPRING Ventajas  Controllers, Models (JavaBeans) y Views.  Muy flexible -> implementación mediante interfaces (Struts obliga a heredar de clases concretas).  No obliga a utilizar JSP. Permite usar XLST, Velocity, FreeMaker o implemtar tu propio lenguaje.  Los controllers se configuran mediante IoC como los demás objetos → fácilmente testeables e integrables.
  • 34. SPRING Ventajas  Ofrece un framework para todas las capas de la aplicación.  No existen ActionForms se enlaza directamente con los beans de negocio.  Cantidad de código testeable, las validaciones no dependen de la Api de servlets.
  • 35. SPRING Principales módulos  Spring Core (Inversión del control (IoC) / Inyección de dependencias (DI))  Spring AOP (Programación orientada a aspectos)  Spring JDBC (Acceso a datos)  Spring MVC (Desarrollo Web según el patrón MVC)  Spring Remoting (Distribución)  Spring Transaction Abstraction (Transacciones)  Otros: Spring TestContext, Spring JMX, Spring Security , Spring Web Flow
  • 38. JBOSS SEAM Conceptos básicos  Framework desarrollado por JBoss.  Combina a los 2 frameworks EJB3 y JSF.  Desarrollo WYSIWYG facilitado a través del uso de las JBoss Tools.  Jboss Tools: Conjunto de plug-ins diseñados para el entorno integrado de desarrollo Eclipse.  Libro recomendado aquí http://www.seamframework.org/Home
  • 40. JBOSS SEAM Ventajas  Integración con Gestores de Contenido y Workflow: • JBoss Portal. • Alfresco ECM, que se presenta como una excelente propuesta Open Source para el manejo de contenido empresarial.  Seam elimina la barrera existente entre JSF y EJB, permitiendo usar EJBs directamente como "backing beans" de JSF y lanzar o escuchar eventos web.
  • 41. GWT
  • 42. GWT Conceptos básicos  Google Web Toolkit (GWT) es un entorno open source para el desarrollo de aplicaciones amigables en Java basadas en AJAX.  El código se escribe en Java. El compilador GWT lo convierte en JavaScript y HTML compatible con cualquier navegador.  Colección de componentes de interfaz de usuario (widgets) dinámicas y reusables.  Licencia Apache 2.0.
  • 44. GWT Ciclo de vida del desarrollo 1. Escribir y depurar la aplicación en Java usando GWT. 2. Usar el compilador Java-to-JavaScript de GWT para generar JavaScript y HTML. 3. Comprobar funcionamiento en los navegadores.
  • 45. GWT GWT y RPC  GWT usa RPC como mecanismo para interactuar con el servidor. (ej. obtener datos de BD).  Permite pasar objetos Java entre cliente y servidor.  Usado correctamente permite mover gran parte de la lógica de la interfaz al lado del cliente, obteniendo mejor rendimiento, menor consumo de ancho de banda e interfaces más amigables.
  • 47. GWT Ventajas  Programar en Java permite utilizar IDEs como Eclipse o NetBeans, así como sus herramientas de depuración..  Código javascript generado por el compilador: • Más eficiente que el escrito a mano. • Usa técnicas de compresión y ofuscación. • Permite inlining: En la llamada a un método javascript, el compilador puede colocar el cuerpo.
  • 48. GWT Ventajas  No se necesita mucho conocimiento de otros lenguajes (JavaScript).  Los errores comunes JavaScripts (types, type mismatches) son capturados por el programador durante compilación.  Se evitan incompatibilidades de los navegadores.  Integración con JUnit.  Internacionalización.
  • 49. GWT Desventajas  La generación automática de HTML podría dificultar el uso de herramientas estándar de HTML y CSS.  Sólo para desarrolladores Java.  Muchos entornos Ajax permiten elegir el lenguaje en el servidor. GWT sólo permite Java.  Enfoque Inusual: • Evaluación y administración más difícil. • Desconfianza.
  • 50. EJEMPLO DE ARQ Propuesta de arquitectura Ejemplo aquí: (http://www.adictosaltrabajo.com/tutoriales/tutoriales.php ?pagina=EjemploArquitecturaPropuestaAutentia)
  • 51. Frameworks J2EE FIN Iker Canarias iker.canarias@gmail.com