Publicado el 22 de Diciembre del 2018
632 visualizaciones desde el 22 de Diciembre del 2018
116,2 KB
10 paginas
Creado hace 11a (03/05/2013)
Java EE
Aplicaciones Web/Sistemas Web
Juan Pavón Mestras
Dep. Ingeniería del Software e Inteligencia Artificial
Facultad de Informática
Universidad Complutense Madrid
Material bajo licencia Creative Commons
Java EE
Java Platform, Enterprise Edition (Java EE)
Aplicaciones web construidas a base de componentes:
Clientes de aplicación 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 Pavón - UCM 2012-13
J2EE
2
Java EE – Contenedores de componentes
Figura de The Java EE 6 Tutorial (2013). Java EE Containers
http://docs.oracle.com/javaee/5/tutorial/doc/bnabo.html
Juan Pavón - UCM 2012-13
J2EE
Componentes vs. objetos
Un componente se caracteriza por:
Ser una unidad de despliegue independiente
• Encapsula sus características constituyentes respecto a su entorno
• Las terceras partes no pueden acceder a los detalles de construcción del
componente
• No se implanta de manera parcial
Ser una unidad de composición
• 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 través de interfaces bien definidas
No tener estado persistente
• Un componente no se distingue de otras copias del mismo
• Excepto atributos no funcionales como el número de serie
• Por tanto, en un proceso se puede decir si hay o no un componente,
pero no varias instancias del mismo
Juan Pavón - UCM 2012-13
J2EE
3
4
Componentes vs. objetos
Un objeto se caracteriza por:
Ser una unidad de instanciación; 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 ejecución
Encapsular su estado y comportamiento
• Que está definido bien por una clase o por un objeto prototipo
Juan Pavón - UCM 2012-13
J2EE
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, administración, configuración, ...
Pero no conviene tener varias interfaces similares o redundantes
La especificación de las interfaces es un contrato
El respeto de este contrato por cliente y componente asegura el éxito
de la interacción
Juan Pavón - UCM 2012-13
J2EE
5
6
Contenedores
Un contenedor es un proceso donde se ejecutan los componentes
Gestiona los componentes de la aplicación
• Ciclo de vida
Proporciona acceso a servicios de la plataforma
• Seguridad, transacciones, persistencia, conectividad, etc.
El desarrollador tiene que especificar
Los componentes de la aplicación
• Servlets
• JSPs (JavaServer Pages)
• JSFs (JavaServer Faces)
• EJBs (Enterprise Java Beans)
Los descriptores de despliegue (deployment)
• Ficheros XML que describen los componentes de aplicación
Juan Pavón - UCM 2012-13
J2EE
Arquitectura de un contenedor
Contrato del componente
s
o
v
i
t
a
r
a
l
c
e
d
s
o
i
c
i
v
r
e
S
Componentes
de aplicación
Descriptor de
despliegue
Componentes
de aplicación
Descriptor de
despliegue
Componentes
de aplicación
Descriptor de
despliegue
APIs de Servicios del contenedor
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
Juan Pavón - UCM 2012-13
J2EE
7
8
Contenedor de applets
clase java.applet.Applet
MiApplet
Descriptor de
despliegue
Métodos para acceder a otros APIs, p.ej. play(url)
Juan Pavón - UCM 2012-13
J2EE
9
Java EE – Arquitectura multi-nivel (multi-tier)
Este modelo propicia aplicaciones web en 4 niveles:
máquina
cliente
Nivel
cliente
Páginas (X)HTML,
applets, JS, CSS
servidor
Java EE
Nivel
web
Nivel
negocio
JSP o
servlets
EJBs
servidor
BD
Nivel
sistema de
información
Base de datos
Juan Pavón - UCM 2012-13
J2EE
10
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 estática que puede expresarse en un formato
como (X)HTML o XML
• elementos JSP que determinan cómo la página construye el
contenido dinámico
JavaServer Faces (JSF)
Componentes de interfaz de usuario para aplicaciones web
Los clientes en Java EE son
Clientes web: navegadores web, páginas web, applets
Aplicaciones de cliente
Juan Pavón - UCM 2012-13
J2EE
11
Contenedor Web
s
o
d
i
r
e
u
q
e
r
d
a
d
i
r
u
g
e
s
e
d
s
e
o
R
l
APIs de Java Servlet y JSPs
MiServlet
Descriptor de
despliegue
MiJSP
Descriptor de
despliegue
Acceso a servicios remotos
C
i
c
l
o
d
e
v
d
a
,
p
o
o
i
l
i
n
g
d
e
r
e
c
u
r
s
o
s
Juan Pavón - UCM 2012-13
J2EE
12
Componentes de negocio en Java EE
Lógica que resuelve las necesidades de un determinado dominio
de aplicación
Enterprise beans (EJBs)
Pueden procesar datos recibidos del lado cliente y enviarlos al nivel de
sistema de información para su almacenamiento
Pueden recuperar datos del sistema de información, procesarlos y
enviarlos al cliente
Tipos de EJBs
Bean de sesión
• Una conversación con un cliente
Bean dirigido por mensajes
• Permite que un componente de negocio pueda recibir mensajes
asíncronamente, normalmente con el Java Message Service (JMS)
Juan Pavón - UCM 2012-13
J2EE
13
Contenedor de EJBs
javax.ejb.EJBHome, javax.ejb.EJBObject
javax.ejb.SessionBean o javax.ejb.EntityBean
d
a
d
i
r
u
g
e
s
,
s
e
n
o
i
c
c
a
s
n
a
r
T
MiEntityBean
Descriptor de
despliegue
MiMessageBean
Descriptor de
despliegue
MiSessionBean
Descriptor de
despliegue
Acceso a servicios remotos
i
C
i
c
l
o
d
e
v
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
Juan Pavón - UCM 2012-13
J2EE
14
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 Pavón - 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 gestión de transacciones: relaciones entre métodos que
constituyen una transacción (tratados como una unidad)
Java Naming and Directory Interface (JNDI): acceso a servicios de
nombres y directorio
Conectividad remota: permite que los clientes invoquen métodos en
los EJBs como si estuvieran en la misma máquina virtual
Juan Pavón - UCM 2012-13
J2EE
16
Composición de módulos en aplicaciones
Una aplicación Java EE se puede entregar como ficheros:
Java Archive (JAR)
Web Archive (WAR) file
Enterprise Archive (EAR)
• Módulos Java EE
• Descriptor de despliegue (documento XML con extensión .xml)
.jar
Ficheros .class
de EJBs
.war
Ficheros .class
de servlets,
otras clases
Java, HTML,
imágenes
.rar
Resource adapter
archive: clases y
código nativo para
conector a EIS
.jar
Aplicación Java
Figura 1-6 EAR File Structure, de The Java EE 6 Tutorial (2013).
http://docs.oracle.com/javaee/5/tutorial/doc/bnabo.html
Juan Pavón - UCM 2012-13
J2EE
17
Ciclo de vida de una aplicación Java EE
Fuente: Sun Microsystems, Inc., J2EE Connector Architecture Specification
Juan Pavón - UCM 2012-13
J2EE
18
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 Pavón - UCM 2012-13
J2EE
19
Bibliografía
Eric Jendrock et al. The Java EE 6 Tutorial (2013).
http://docs.oracle.com/javaee/6/tutorial/doc/
Documentación 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 más eficiente que PHP:
http://www.mgrecol.com/2012/08/09/php-vs-j2ee-a-practical-approach/
Juan Pavón - UCM 2012-13
J2EE
20
Comentarios de: Java EE (0)
No hay comentarios