Vous êtes sur la page 1sur 10

Material bajo licencia Creative Commons

Java EE
Aplicaciones Web/Sistemas Web
Juan Pavn Mestras
Dep. Ingeniera del Software e Inteligencia Artificial
Facultad de Informtica
Universidad Complutense Madrid
Java EE
Java Platform, Enterprise Edition (Java EE)
Aplicaciones web construidas a base de componentes:
Clientes de aplicacin y applets (en el cliente)
Java Servlet, JavaServer Faces (JSF), and JavaServer Pages (JSP) (en
el servidor)
Enterprise JavaBeans (EJB) (o enterprise beans) (en el servidor)
Los componentes se despliegan y ejecutan en contenedores
especializados
Ejemplos de contenedores:
Contenedor de applets en un navegador Web
Contenedor Web Tomcat
Contenedor de EJBs
Juan Pavn - UCM 2012-13
J2EE 2
Java EE Contenedores de componentes
Juan Pavn - UCM 2012-13
J2EE 3
Figura de The Java EE 6 Tutorial (2013). Java EE Containers
http://docs.oracle.com/javaee/5/tutorial/doc/bnabo.html
Componentes vs. objetos
Un componente se caracteriza por:
Ser una unidad de despliegue independiente
Encapsula sus caractersticas constituyentes respecto a su entorno
Las terceras partes no pueden acceder a los detalles de construccin del
componente
No se implanta de manera parcial
Ser una unidad de composicin
Con componentes posiblemente desarrollados por otros
Debe ser suficientemente autocontenido
Especificaciones claras de lo que requiere y de lo que proporciona
Interacciona con su entorno a travs de interfaces bien definidas
No tener estado persistente
Un componente no se distingue de otras copias del mismo
Excepto atributos no funcionales como el nmero de serie
Por tanto, en un proceso se puede decir si hay o no un componente,
pero no varias instancias del mismo
Juan Pavn - UCM 2012-13
J2EE 4
Componentes vs. objetos
Un objeto se caracteriza por:
Ser una unidad de instanciacin; tienen una identidad nica
No se instancia de manera parcial
La identidad es nica y no cambia durante la vida del objeto
Tener un estado
Se crea con un estado inicial que evoluciona durante la ejecucin
Encapsular su estado y comportamiento
Que est definido bien por una clase o por un objeto prototipo
Juan Pavn - UCM 2012-13
J2EE 5
Interfaces
Puntos de acceso a los componentes
Permite a los clientes acceder a los servicios proporcionados por un
componente
Un componente puede tener varias interfaces
Una por cada punto de acceso: uso, administracin, configuracin, ...
Pero no conviene tener varias interfaces similares o redundantes
La especificacin de las interfaces es un contrato
El respeto de este contrato por cliente y componente asegura el xito
de la interaccin
Juan Pavn - UCM 2012-13
J2EE 6
Contenedores
Un contenedor es un proceso donde se ejecutan los componentes
Gestiona los componentes de la aplicacin
Ciclo de vida
Proporciona acceso a servicios de la plataforma
Seguridad, transacciones, persistencia, conectividad, etc.
El desarrollador tiene que especificar
Los componentes de la aplicacin
Servlets
JSPs (JavaServer Pages)
JSFs (JavaServer Faces)
EJBs (Enterprise Java Beans)
Los descriptores de despliegue (deployment)
Ficheros XML que describen los componentes de aplicacin
Juan Pavn - UCM 2012-13
J2EE 7
Arquitectura de un contenedor
Juan Pavn - UCM 2012-13
J2EE 8
Contrato del componente
S
e
r
v
i
c
i
o
s

d
e
c
l
a
r
a
t
i
v
o
s
O
t
r
o
s

s
e
r
v
i
c
i
o
s

d
e
l

c
o
n
t
e
n
d
o
r
APIs de Servicios del contenedor
Componentes
de aplicacin
Descriptor de
despliegue
Componentes
de aplicacin
Descriptor de
despliegue
Componentes
de aplicacin
Descriptor de
despliegue
Contenedor de applets
Juan Pavn - UCM 2012-13
J2EE 9
clase java.applet.Applet
Mtodos para acceder a otros APIs, p.ej. play(url)
MiApplet
Descriptor de
despliegue
Java EE Arquitectura multi-nivel (multi-tier)
Este modelo propicia aplicaciones web en 4 niveles:
Juan Pavn - UCM 2012-13
J2EE 10
servidor
BD
servidor
Java EE
mquina
cliente
Pginas (X)HTML,
applets, JS, CSS
JSP o
servlets
EJBs
Base de datos
Nivel
cliente
Nivel
web
Nivel
negocio
Nivel
sistema de
informacin
Componentes web en Java EE
Java Servlets
Clases escritas en Java que procesan peticiones HTTP y construyen
respuestas
JavaServer Pages (JSP)
Documentos basados en texto que contienen dos tipos de texto
una plantilla de datos esttica que puede expresarse en un formato
como (X)HTML o XML
elementos JSP que determinan cmo la pgina construye el
contenido dinmico
JavaServer Faces (JSF)
Componentes de interfaz de usuario para aplicaciones web
Los clientes en Java EE son
Clientes web: navegadores web, pginas web, applets
Aplicaciones de cliente
Juan Pavn - UCM 2012-13
J2EE 11
Contenedor Web
Juan Pavn - UCM 2012-13
J2EE 12
APIs de Java Servlet y JSPs
R
o
l
e
s

d
e

s
e
g
u
r
i
d
a
d

r
e
q
u
e
r
i
d
o
s
C
i
c
l
o

d
e

v
i
d
a
,

p
o
o
l
i
n
g
d
e

r
e
c
u
r
s
o
s
Acceso a servicios remotos
MiServlet
Descriptor de
despliegue
MiJSP
Descriptor de
despliegue
Componentes de negocio en Java EE
Lgica que resuelve las necesidades de un determinado dominio
de aplicacin
Enterprise beans (EJBs)
Pueden procesar datos recibidos del lado cliente y enviarlos al nivel de
sistema de informacin para su almacenamiento
Pueden recuperar datos del sistema de informacin, procesarlos y
enviarlos al cliente
Tipos de EJBs
Bean de sesin
Una conversacin con un cliente
Bean dirigido por mensajes
Permite que un componente de negocio pueda recibir mensajes
asncronamente, normalmente con el Java Message Service (JMS)
Juan Pavn - UCM 2012-13
J2EE 13
Contenedor de EJBs
Juan Pavn - UCM 2012-13
J2EE 14
javax.ejb.EJBHome, javax.ejb.EJBObject
javax.ejb.SessionBean o javax.ejb.EntityBean
T
r
a
n
s
a
c
c
i
o
n
e
s
,

s
e
g
u
r
i
d
a
d
C
i
c
l
o

d
e

v
i
d
a
,

r
e
c
u
r
s
o
s
,

g
e
s
t
i

n

d
e
l

e
s
p
a
c
i
o

d
e

n
o
m
b
r
e
s

J
N
D
I
Acceso a servicios remotos
MiEntityBean
Descriptor de
despliegue
MiSessionBean
Descriptor de
despliegue
MiMessageBean
Descriptor de
despliegue
Servicios Java EE
Cada contenedor Java EE proporciona servicios a los
componentes
Java Naming Direct Interface (JNDI)
Java Persistence API (JPA)
Java Database Connectivity API (JDBC)
Java Transaction API (JTA)
Java Message Service (JMS)
JavaMail
Java Beans Active Framework (JAF)
Java EE Connector Arquitecture
Java Authentication and Authorization Service (JAAS)
Java API for XML Procesing (JAXP)
SOAP with Attachments API for Java (SAAJ)
Servicios Web (JAX-WS)
Java API for RESTful Web Services (JAX-RS)
Juan Pavn - UCM 2012-13
J2EE 15
Ensamblado y despliegue de componentes Java EE
Los componentes se instalan en contenedores desde los que
pueden utilizar los servicios de la plataforma
El proceso de ensamblado de los componentes requiere
especificar el soporte del servidor J2EE
Seguridad: usuarios autorizados
Modelo de gestin de transacciones: relaciones entre mtodos que
constituyen una transaccin (tratados como una unidad)
Java Naming and Directory Interface (JNDI): acceso a servicios de
nombres y directorio
Conectividad remota: permite que los clientes invoquen mtodos en
los EJBs como si estuvieran en la misma mquina virtual
Juan Pavn - UCM 2012-13
J2EE 16
Composicin de mdulos en aplicaciones
Una aplicacin Java EE se puede entregar como ficheros:
Java Archive (JAR)
Web Archive (WAR) file
Enterprise Archive (EAR)
Mdulos Java EE
Descriptor de despliegue (documento XML con extensin .xml)
Juan Pavn - UCM 2012-13
J2EE 17
Figura 1-6 EAR File Structure, de The Java EE 6 Tutorial (2013).
http://docs.oracle.com/javaee/5/tutorial/doc/bnabo.html
.jar
Ficheros .class
de EJBs
.war
Ficheros .class
de servlets,
otras clases
Java, HTML,
imgenes
.jar
Aplicacin Java
.rar
Resource adapter
archive: clases y
cdigo nativo para
conector a EIS
Ciclo de vida de una aplicacin Java EE
Juan Pavn - UCM 2012-13
J2EE 18
Fuente: Sun Microsystems, Inc., J2EE Connector Architecture Specification
Frameworks Java EE
Apache Struts
Spring
JBoss Seam
GWT (Google Web Toolkit)
Aplicaciones en Java basadas en Ajax
Stripes, Tapestry, Wicket, Maverick, etc.
Ver http://www.slideshare.net/ikercanarias/frameworks-j2ee
Juan Pavn - UCM 2012-13
J2EE 19
Bibliografa
Eric Jendrock et al. The Java EE 6 Tutorial (2013).
http://docs.oracle.com/javaee/6/tutorial/doc/
Documentacin oficial
Java EE Specifications
http://www.oracle.com/technetwork/java/javaee/tech/index.html
API specification for version 6 of Java EE
http://docs.oracle.com/javaee/6/api/
API specification for GlassFish Server, including Java EE 6 platform
packages and nonplatform packages that are specific to the GlassFish
Server product
http://glassfish.java.net/nonav/docs/v3/api/
J2EE es ms eficiente que PHP:
http://www.mgrecol.com/2012/08/09/php-vs-j2ee-a-practical-approach/
Juan Pavn - UCM 2012-13
J2EE 20

Vous aimerez peut-être aussi