La lecture en ligne est gratuite
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Partagez cette publication

Vous aimerez aussi

Tutorial
“Desarrollo de aplicaciones
Web empleando el modelo
J2EE”
Dr. Gabriel López Morteo
M.C. Jorge Ibarra Esquer
Universidad Autónoma de Baja California
Mexicali, B.C., México
8o Encuentro Internacional de Ciencias de la Computación
Morelia, Michoacán, septiembre del 2007
UABC. Instituto y Facultad de Ingeniería. 2007 1/73
Arquitectura Cliente-Servidor
• 1 sola capa
– 1 cliente
Servidor
– 1 servidor
Cliente
UABC. Instituto y Facultad de Ingeniería. 2007 2/73
Arquitecturas de sistemas
distribuídos: 2-tier
• Dos divisiones (2-tier)
– Usualmente dividido en presentación y datos
– El cliente realiza todo el trabajo de cómputo
mientras el servidor provee los datos
– Emplea mucho ancho de banda
– Requiere múltiples llamadas al servidor para
operaciones simples
– Corre el riesgo de saturar de conexiones al
servidor
– El mantenimiento de la aplicación y su
actualización es muy difícil
UABC. Instituto y Facultad de Ingeniería. 2007 3/73
12 capas
UABC. Instituto y Facultad de Ingeniería. 2007 4/73
2 capas con acceso de datos en capa lógica
UABC. Instituto y Facultad de Ingeniería. 2007 5/73
Arquitecturas de sistemas
distribuídos: 3-tier
• Tres divisiones (3-tier)
– Cada capa está separada del resto
– La interacción se realiza mediante interfases bien
denifidas
– Comunmente se compone de
• Despliegue (presentation layer)
• Lógica de la aplicación (bussiness layer)
• Datos (data layer)
– Facilita el mantenimiento al tener separados los
componentes del sistema
– El origen de los datos es independiente del cliente
UABC. Instituto y Facultad de Ingeniería. 2007 6/73
23 capas
UABC. Instituto y Facultad de Ingeniería. 2007 7/73
3 capas y seguridad
UABC. Instituto y Facultad de Ingeniería. 2007 8/73
Arquitecturas de sistemas
distribuídos: n-tier
• N divisiones (n-tier)
– No tiene un esquema único
– Se compone de:
• Interfaz de usuarios
• Lógica de presentación
• Lógica del negocio
• Infraestructura de servicios
• Capa de datos
– La capa lógica se divide por funciones más que
físicamente
– Pueden estar involucrados más de un servidor
para cada componente
UABC. Instituto y Facultad de Ingeniería. 2007 9/73
3Optimización de recursos
UABC. Instituto y Facultad de Ingeniería. 2007 10/73
¿Porqué usar componentes?
• Fomentan la reutilización de código
• Optimiza recursos.
• Accede a recursos distribuídos
• Facilita el acceso a sistemas legados.
• Permite desarrollar soluciones para una variedad
grande de clientes
UABC. Instituto y Facultad de Ingeniería. 2007 11/73
UABC. Instituto y Facultad de Ingeniería. 2007 12/73
4Componente en e-commerce
UABC. Instituto y Facultad de Ingeniería. 2007 13/73
Relación entre un componente y
su interfaz
UABC. Instituto y Facultad de Ingeniería. 2007 14/73
Patrones de diseño
• Patrón de diseño Modelo-Vista-Controlador
(MVC)
– Uno de los más socorridos en el modelo J2EE
– Separa la presentación, la manipulación de los
datos y la introducción de información
• Modelo (Modelo). Se encarga de la lógica de la
aplicación y la manipulación de datos
• Vista (View). Se encarga del despliegue y la
actualización de los elementos que la componen
• Controlador (Controller). Se encarga de la
introducción de datos a la aplicación, por lo general de
parte del usuario
UABC. Instituto y Facultad de Ingeniería. 2007 15/73
5Modelo MVC
UABC. Instituto y Facultad de Ingeniería. 2007 16/73
Espacios de ejecución de un sistema distribuído
UABC. Instituto y Facultad de Ingeniería. 2007 17/73
Requerimientos del J2EE
• Independencia de la plataforma
– Especialmente del lado del cliente
• Reusabilidad
• Modularidad
• Escalabilidad
• Facilidad de administración y mantenimiento
La idea detrás del J2EE es la de proveer un
estandar simple y unificado para
aplicaciones distribuídas a través de
modelos de aplicación basado en
UABC. Instituto y Facultad de Ingeniería. 2007 18/73componentes.
6La plataforma J2EE
• Es en escencia un ambiente de servicios
de aplicaciones distribuídas
• Se compone de:
– Una infraestructura de ejecución para el
hospedaje de aplicaciones (runtime hosting
applications)
– Una familia de APIs para construir
aplicaciones
UABC. Instituto y Facultad de Ingeniería. 2007 19/73
J2EE APIs
• Java Database Connectivity (jdbc)
• Remote Method Invocation Inter-ORB protocol (RMI-
IIOP)
• Enterprise Java Beans (EJB)
• Java Servlets 2.2
• Java Server Pages 1.1 (jsp)
• Java Message Service (JMS)
• Java Naming and Directory Interface (JNDI)
• Java Transaction API
• Java Mail
• Standard Java API
UABC. Instituto y Facultad de Ingeniería. 2007 20/73
Arquitectura de J2EE
• Contenedores
– La arquitectura se compone de cuatro contenedores
• Un contenedor de WEB. Para hospedar Java servlets y
páginas JSP.
• Un contenedor de EJB. Para hospedar componentes
JavaBeans
• Un contenedor de Applets. Para ejecutar applets.
• Un contenedor de aplicaciones clientes. Para ejecutar
aplicaciones clientes de consola.
– Un contenedor es un ejecutor (runtime) Java 1.2
Standar Edition para componentes de aplicaciones
UABC. Instituto y Facultad de Ingeniería. 2007 21/73
7Arquitectura de un contenedor
• Componentes de aplicaciones (application
components).
– Incluye servlets, jsp, ejb, etc. Pueden ser
empaquetados en archivos.
• Definidores del despliegue e iniciación
(deployment descriptors).
– Un archivo en XML que describe los componentes
de la aplicación.
– Incluye también información adicional para la
administración efectiva de componentes de la
aplicación.
UABC. Instituto y Facultad de Ingeniería. 2007 22/73
Partes de la arquitectura de un
contenedor
• Contratos de componentes
– Definidos por la JVM
– Para el contenedor WEB el contrato es para seguir los APIs de Servlets
y JSP
• APIs de servicios del contenedor
– Un contenedor provee una vista global a varios APIs corporativos
especificados en la plataforma J2EE
– Accesibles via JNDI
• Servicios declarativos
– Son servicios o aciones que se llevan a cabo por el contenedor en el
que se encuentra una aplicación via una invocación específica en los
deployment descriptors
• Otros servicios del contenedor
– Recolección de basura
– Colecciones de recursos (resource pooling)
UABC. Instituto y Facultad de Ingeniería. 2007 23/73
Tecnologías en J2EE
• Tecnologías de componentes
– Contienen la lógica de la aplicación
• Servlets, JSP, EJB
• Tecnologías de servicio
– Servicios de soporte para los componentes de aplicaciones
• JDBC, JNDI, JTA
• Tecnologías de comunicación
– Proveen los mecanismos de comunicación entre las diferentes
partes de la aplicación, ya sean locales o remotas
• HTTP, TCP/IP, SSL, RMI, RMI-IIOP,JMS,JavaMail
UABC. Instituto y Facultad de Ingeniería. 2007 24/73
8UABC. Instituto y Facultad de Ingeniería. 2007 25/73
Desarrollando aplicaciones
J2EE
1. Desarrollo del componente de la aplicación
• Se modelas las lógica del sistema en la forma de
componentes de aplicaciones
2. Composición de los componentes de la aplicación en
módulos
• Los componentes de la aplicación se empaquetan en
módulos. Se proveen deployment descriptors para cada
módulo
3. Composición de módulos en la aplicación
• Integración de múltiples módulos en aplicaciones J2EE
proveyendo sus deployment descriptors
4. Despliegue de la aplicación
• Se despliega e instala la aplicación empaquetada en un
servidor J2EE
UABC. Instituto y Facultad de Ingeniería. 2007 26/73
Estructura de despliegue de una
aplicación J2EE
• Se distribuye en un solo archivo .WAR
• Cada directorio a nivel raíz del servidor se
considera un contenedor de aplicaciones
• Cada aplicación WEB debe contener:
– Directorio WEB-INF en donde se coloca el material
no visible para el cliente
• Archivo web.xml, que es el deployment descriptor para cada
aplicación WEB
• Directorio lib, se colocan todas las librerias en archivos .jar
(opcional)
• Directorio classes, se colocan todas las clases en java
manteniendo la estructura jerarquica de sus paquetes
UABC. Instituto y Facultad de Ingeniería. 2007 27/73
9SERVLETS
UABC. Instituto y Facultad de Ingeniería. 2007 28/73
¿Qué es un Servlet?
• Es un programa JAVA que se ejecuta en el marco de un servicio
de red, como por ejemplo un servidor web, y que recibe
peticiones de un cliente y responde a ellas.
“Los servlets son a los servidores lo que los applets son a los browsers”
El Ciclo de Vida
• Los Servlets al igual que los Applets poseen un Ciclo de Vida
perfectamente definido controlado por un contenedor.
• La interfaz que se utiliza para implementarlos define una serie
de métodos para cada una de sus etapas. Es el contenedor el
que se encarga de invocarlos.
UABC. Instituto y Facultad de Ingeniería. 2007 29/73
Servlets
• Extienden la funcionalidad de un servidor
• Se hospedan en un contenedor de servlets
• Reciben solicitudes de un cliente y generan
una respuesta HTML o XML
• El API indica como:
– Inicializar y finalizar un servlet
– Acceder al entorno del contenedor
– Recibir solicitudes y enviar respuestas
– Mantener información sobre la sesión
– Interactuar con otros servidores
UABC. Instituto y Facultad de Ingeniería. 2007 30/73
10