UNIVERSIDAD DE CHILE
FACULTAD DE CIENCIAS F´ISICAS Y MATEM ´ATICAS
DEPARTAMENTO DE CIENCIAS DE LA COMPUTACI ´ON
INVESTIGACI ´ON DE LA PLATAFORMA J2EE Y SU APLICACI ´ON PR ´ACTICA
JUAN MANUEL BARRIOS N ´U ˜NEZ
http://www.dcc.uchile.cl/~jbarrios/
[email protected]
2003
UNIVERSIDAD DE CHILE
FACULTAD DE CIENCIAS F´ISICAS Y MATEM ´ATICAS
DEPARTAMENTO DE CIENCIAS DE LA COMPUTACI ´ON
INVESTIGACI ´ON DE LA PLATAFORMA J2EE Y SU APLICACI ´ON PR ´ACTICA
JUAN MANUEL BARRIOS N ´U ˜NEZ
COMISI ´ON EXAMINADORA
CALIFICACIONES
NOTA (no)
(Letras)
FIRMA
PROFESOR GU´IA
SR. DIONISIO GONZ ´ALEZ
PROFESOR CO-GU´IA
SR. PATRICIO INOSTROZA
PROFESOR INTEGRANTE
SR. EDUARDO GODOY
:
:
:
. . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . .
NOTA FINAL EXAMEN DE T´ITULO :
. . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . .
MEMORIA PARA OPTAR AL T´ITULO DE
INGENIERO CIVIL EN COMPUTACI ´ON
SANTIAGO DE CHILE
ENERO 2003
RESUMEN DE LA MEMORIA
PARA OPTAR AL TITULO DE
INGENIERO CIVIL EN COMPUTACION
POR: JUAN MANUEL BARRIOS NU ˜NEZ
FECHA: 30/05/2003
PROF. GUIA: SR. DIONISIO GONZALEZ
INVESTIGACI ´ON DE LA PLATAFORMA J2EE Y SU APLICACI ´ON PR ´ACTICA
El presente trabajo tiene como objetivo adquirir conocimientos y experiencia te´orica y
pr´actica en el desarrollo de aplicaciones empresariales utilizando el modelo “Java 2 Platform,
Enterprise Edition” (J2EE). Este nuevo modelo ha tomado importancia por proponer una
arquitectura para desarrollar e integrar sistemas de una empresa, definiendo un servidor de
aplicaciones que consta de m´ultiples componentes y servicios. Efectuar un estudio concreto
sobre sus capacidades y elaborar metodolog´ıas de utilizaci´on es un paso necesario que permite
su aplicaci´on correcta en proyectos reales.
Para conseguir este objetivo, el trabajo fue dividido en una fase de investigaci´on y
en una fase de aplicaci´on. En la fase de investigaci´on se estudi´o la plataforma J2EE, sus
tecnolog´ıas relacionadas y los patrones de dise˜no existentes para el desarrollo. En la fase
de aplicaci´on se utilizaron los conocimientos adquiridos para el desarrollo de un proyecto
con el objetivo de encontrar una metodolog´ıa de desarrollo para aplicaciones J2EE, obtener
experiencia sobre las capacidades de esta plataforma y contar con un caso de estudio que
permita apoyar el dise˜no y construcci´on de nuevos sistemas.
El resultado final es un informe que re´une los conocimientos necesarios para el enten-
dimiento de la plataforma J2EE, su servidor de aplicaciones y sus componentes, junto con la
implementaci´on de un sistema de registro de actividades como proyecto pr´actico. Con este
proyecto se obtuvo una metodolog´ıa para abordar el desarrollo de un sistema J2EE, cuatro
patrones de dise˜no para solucionar problemas concretos en la implementaci´on de un sistema,
y un conjunto de evaluaciones y conclusiones sobre el uso y las capacidades de esta tecnolog´ıa.
J2EE es una arquitectura que ha evolucionado r´apidamente, para transformarse en una
opci´on a ser considerada para efectuar el desarrollo de aplicaciones empresariales, sin embargo
su utilizaci´on se ha visto retrasada por la falta de conocimientos reales en su desarrollo e
implementaci´on. Por esta raz´on se necesita generar conocimientos concretos que permitan
apoyar su uso correcto en aplicaciones empresariales reales, crear nuevos casos de estudio y
desarrollar nuevos patrones de dise˜no que aporten con experiencia pr´actica en su utilizaci´on.
´Indice general
1. Presentaci´on
1.1.
Introducci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2. Motivaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3. Objetivos
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2. Marco Te´orico
2.1. Plataforma Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.1. Lenguaje Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.2. M´aquina virtual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.3. Bibliotecas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.4. Ediciones de Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.5. Java 2, Standard Edition . . . . . . . . . . . . . . . . . . . . . . . . .
2.2. Java 2, Enterprise Edition . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.1. Arquitectura J2EE . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.2. Componentes de J2EE . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.3. Containers J2EE . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.4. Servicios J2EE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
i
1
1
2
3
5
5
5
6
6
6
6
7
8
9
10
11
3. Componentes de J2EE
3.1. Servlets
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.1. CGI
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.2. Container de Servlets . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.3. Ciclo de Vida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.4. Cookies y Sesiones
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.5. Filtros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.6. Clases principales . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2. JavaServer Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.1. Container JSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.2. Ciclo de vida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.3. Sintaxis
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.4. Clases importantes . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3. Enterprise JavaBeans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.1. Objetivos
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.2. Tipos de Enterprise Beans . . . . . . . . . . . . . . . . . . . . . . . .
3.3.3. Container EJB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.4. Session Beans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.5. Entity Beans
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.6. Message-Driven Beans
. . . . . . . . . . . . . . . . . . . . . . . . . .
4. Deploy
13
13
13
15
15
16
17
17
18
19
19
20
21
22
22
23
23
24
32
46
50
4.1. Definiciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
ii
4.2. M´odulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.1. Descriptores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.2. Aplicaci´on J2EE . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.3. M´odulos EJB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.4. M´odulos Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.5. M´odulos de aplicaciones cliente . . . . . . . . . . . . . . . . . . . . .
4.2.6. M´odulos de adaptadores de recursos . . . . . . . . . . . . . . . . . . .
4.3. Roles para la instalaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.1. Proveedores de componentes . . . . . . . . . . . . . . . . . . . . . . .
4.3.2. Ensambladores de aplicaciones . . . . . . . . . . . . . . . . . . . . . .
4.3.3.
Instalador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5. Tecnolog´ıas de J2EE
5.1. XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2. Servicio de Nombres
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3. CORBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3.1. Java RMI
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3.2. Comunicaci´on entre RMI y CORBA . . . . . . . . . . . . . . . . . .
5.4. Conectores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.5. Transacciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.5.1. Transacciones manejadas por el container . . . . . . . . . . . . . . . .
5.5.2. Transacciones manejadas por el bean . . . . . . . . . . . . . . . . . .
5.6. Mensajer´ıa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
iii
50
51
52
52
52
53
53
53
54
54
54
55
55
56
57
59
60
61
62
63
64
64
5.7. Seguridad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
65
6. Patrones de Dise˜no
6.1. Modelo-Vista-Controlador . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2. Data Access Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3. Session Fa¸cade
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4. Service Locator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.5. Value Object
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.6. Fast-Lane Reader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.7. Consideraciones de dise˜no . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.7.1. Session beans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.7.2. Entity beans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.7.3. Message-driven beans . . . . . . . . . . . . . . . . . . . . . . . . . . .
7. Proyecto: Sistema de Registro de Actividades
7.1. Contexto y objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.2. An´alisis
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.3. Dise˜no . . . . . . . . . . . . . . . . . . . . . . . .
Comentarios de: Investigación de la plataforma J2EE y su aplicación práctica (0)
No hay comentarios