J2EE (una introducción para seres humanos) Ing. Pablo Frias http:// mundojava.blogspot.com – 2009 –
J2EE(una introducción para seres humanos)
Ing. Pablo Friashttp://mundojava.blogspot.com
– 2009 –
Agenda
Introducción a las aplicaciones J2EE. Tecnologías propuestas por J2EE. Trabajo con páginas web (Servlets - JSP). Todo lo demás
Java Enterprise Edition
Es una especificación creada por Sun Microsystems™.
Es un modelo para el desarrollo de aplicaciones distribuidas y multitier.
Está basado en componentes, contenedores y servicios de plataforma.
Ventajas de J2EE Libertad de elección. Productividad en el desarrollo de herramientas
de arquitectura. Aplicaciones de servidor multiplataforma. Uso de tecnologías estándar (HTTP, XML,
Servicios Web, etc.).
Arquitectura Multicapa
¿Qué es una capa? ¿Por qué multicapa?
Ejemplos: Arquitectura de dos capas: en una de ellas habrá
interfaces y lógica de negocio y en otra objetos reutilizables (muy inestable).
Arquitectura de tres capas: En una capa se ubican las interfaces, en otra la lógica de negocio y en la última todos los componentes reutilizables.
Capas J2EE
CAPA CLIENTE
CAPA WEB
CAPA EJB (Enterprise JavaBeans)
CAPA EIS (EnterpriseInformation System)
Interfaces,componentes de
presentación - Applets
Componentes deNegocio
DBMS
JSP-Servlets
Capas Cliente - Web
En esta capa se agrupan todos las aplicaciones, paquetes y applets que serán utilizados en forma remota por todos los “usuarios” de nuestro sistema. Todo lo que contendrá serán archivos JAR.
En esta capa se agrupan todos las aplicaciones que interactuarán con los usuarios del sistema, pero vía web.Los componentes definidos por J2EE en esta capas son las Java Server Pages y los Java Servlets, HTML, XML. Generalmente los agrupamos en archivos WAR
CAPA CLIENTE
CAPA WEB
Capas EJB - EIS
En esta capa se agrupan todos los componentes que manejan la lógica de negocio en nuestro sistema. Estarán empaquetados en archivos JAR. Esta capa brinda servicios de Seguridad, pooling de conexiones, hilos, protocolos de objetos distribuidos y Persistencia.
Esta capa es la encargada de manejar sistemas de soporte e incluye sistemas de planificación de recursos, manejo de transacciones en mainframe, sistemas legacy y por supuesto, acceso a bases de datos.
CAPA EJB (Enterprise JavaBeans)
CAPA EIS (EnterpriseInformation System)
Elementos de J2EE
Componentes Contenedores Servicios
J2SE
Application Clients
Applets
Servlets, JSP, filtros, webevent listeners
Enterprise Java Beans
HTTP, HTTPS
Java Transaction API (JTA)
RMI, IDL
JDBC
Java Message Service(JMS)
Java Naming and DirectoryInterface (JNDI)
Java Mail, JavaBeansActivation Framework
(JAF)
JAXP, Web Services
Seguridad
Los componentesinteractúan entres sí a
través de contenedores
Soporte en tiempo deejecución a loscomponentes
Interfaz entre componentey bajo nivel
¿Por qué tantas cosas?
Acerca de los contenedores
Son la interfaz entre un componente y una funcionalidad de bajo nivel y específica de una plataforma.
Proveen soporte en tiempo de ejecución de los componentes.
Los componentes interactúan entre sí sólo a través de contenedores.
El soporte que provee en tiempo de ejecución se llama servicios.
Algunos servicios que brindan
HTTP, HTTPS Java Transaction API (JTA) RMI, IDL JDBC API Java Message Service (JMS) Java Naming and Directory Interface (JNDI) Java Mail, JavaBeans Activation Framework (JAF) Procesamiento de XML, Web Services Seguridad
Ciclo de Vida de Aplicaciones Web
Aplicación J2EE
Servlet JSPHTML
Clases de Negocio
Apache Tomcat
Clientes ServidorRed
Petición HTTP
Respuesta HTTP
• El cliente envía una petición de servicio a la aplicación por medio de una red con protocolo HTTP.
• El Servidor de aplicaciones verifica la procedencia y la existencia de la aplicación. Si existe, le pasa la responsabilidad de manejar la petición.
• La aplicación retorna un resultado en formato HTTP por medio del Servidor.
Algunos Escenarios
Algunos Escenarios
Algunos Escenarios
La Capa Web - Servlets
• Es una unidad ejecutable de recursos web. • Puede contener imágenes, html, servlets, JSP,
JavaBeans, clases de negocio, applets, clases de acceso a bases de datos, etc.
• Tiene una estructura de directorios específica cuya raíz se denomina document root.
• El módulo puede desplegarse con su estructura de directorios o en un archivo WAR.
Módulo Web
Estructura de directorios
Document root: contiene JSPs, HTML, imágenes, applets, flash, etc.
web.xml: es un descriptor de despliegue. Sirve para que el contenedor pueda “desplegar” la aplicación.
classes: en el se almacenan los servlets, clases de utilidad, JavaBeans con sus respectivas estructuras de directorios simbolizando paquetes.
lib: todos los archivos JAR que necesitemos, como por ejemplo Log4J, drivers JDBC, JARs de negocio, etc.
tags: todos los archivos de etiquetas utilizados en JSPs.
• Son clases de Java que se escriben con el propósito de utilizar las capacidades de servidores de aplicaciones.
• Estas clases deben implementar la interfaz javax.servlet.Servlet
• Si bien no están pensados para un único protocolo, el más usado es HTTP. (clase javax.servlet.http.HttpServlet)
• Su ciclo de vida es controlado por el contenedor.• Son multihilo.
Servlets
Ciclo de vida¿Existe unainstancia del
Servlet?
Se carga laclase delServlet
Se instanciael Servlet
Se inicializallamando a
init()
Se invoca el método deservicio, pasando los objetos
request y response
NO
SI
Contenedor
Peticion HTTP
Respuesta HTTP
<servlet>
<description>
</description>
<display-name>ServletName</display-name>
<servlet-name>ServletName</servlet-name>
<servlet-class>paquete.MiServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ServletName</servlet-name>
<url-pattern>/ServletName</url-pattern>
</servlet-mapping>
Configuración del Servlet
Comunicación con un Servlet
Servlet
Req u est
Resp o n se
La Capa WebJava Server Pages (JSP)
Razón de su existencia
Simple
¿Se imaginan escribir páginas web reales usando out.write( “...” ); ?
SERVLET
Ciclo de vidaRecib ir Petición
¿Existe el Servlet del JSP?
Ciclo d e vida de Servlet
Procesar JSP
Generar Servlet
Com pilar servlet
Enviar Respuesta
SI
NO
Hasta ahora:• Servlets• JSP
DirectivasExpresionesScriptlets
• Expression Language• JSTL (Java Standard Tags Library)
¿Cómo encaro una aplicación web?
Co ntro lad or M o d eloVista
Aplicación
Applet
jsp
Servlet
Action
Action
Action
Action
Action
O bjeto de N egocio
O bjeto de N egocio
O bjeto de N egocio
O bjeto de N egocio
O bjeto de N egocio
Frameworks - Templates - Herramientas
M o d elo V ista Co n tro lad o r
Stru ts
Sp rin g
JSF
T em p lates
T iles Velo city
F reeM aker
Persisten cia
JPA IBatis
Hib ern ate
¿Todavía hay más cosas?
• EJB• JMS• Web Services• XML• Transactions• Connectors• AJAX
¿Preguntas?
Fuentes
http://www.java.sun.comJavaDocsThe Java TutorialThe JEE Tutorial
http://www.apache.orghttp://www.theserverside.comUn buen libro de patrones de desarrollo