Plataforma JEE

Anuncio
JavaEE –
Java Enterprise Edition
www.javasoft.com
¿Por qué Java en el servidor?
Ventajas
Independencia de la plataforma –
portabilidad
Gran conjunto de APIs
Reusabilidad y modularidad
Seguro en la ejecución de código
móvil
Gratis
2008-2009
DASDI
2
¿Por qué Java en el servidor?
Inconvenientes
2008-2009
Curva de aprendizaje pronunciada
En el caso de sistemas Web,
inadecuado para proyectos pequeños
que puedan construirse con una
solución simple y rápida.
DASDI
3
¿Qué es JEE?
2008-2009
Internet y WWW representan el fundamento sobre los
cuales se esta construyendo la economía de la
información.
La meta de JEE es definir un estándar que ayude a
suplir los retos tecnológicos en esta nueva era.
JEE soporta aplicaciones distribuidas que toma
ventajas de las tecnologías existentes y en desarrollo
simplificando el proceso a través de un modelo de
aplicaciones basados en componentes.
JEE soporta aplicaciones desde las C/S corporativas
hasta e-commerce con Web en Internet.
Define estándares que son implementados por distintos
proveedores y fabricantes, no fuerza a emplear
ningún producto específico.
Máxima interoperabilidad (Web services, IIOP, RMI,
etc.).
DASDI
4
Plataforma JEE
2008-2009
“Conjunto de especificaciones y prácticas
coordinadas que juntas permiten soluciones para
el desarrollo, despliegue y gestión de aplicaciones
multicapa centradas en servidor”.
Provee soporte tanto para el lado del servidor
como para el lado del cliente para aplicaciones
corporativas multi-nivel (multi-tier)
Client-tier: interface de usuario
Middle-tier (1 o más): servicios al cliente y la
lógica del negocio para la aplicación.
Backend-tier: gestión de datos
DASDI
5
Entorno JEE
2008-2009
DASDI
6
Entorno JEE: escenarios (1)
2008-2009
DASDI
7
Entorno JEE: escenarios (y 2)
2008-2009
DASDI
8
Arquitectura JEE y APIs
2008-2009
DASDI
9
APIs detalle
¿Para qué sirve
cada una?
2008-2009
DASDI
10
APIs y Especificaciones JavaEE 5
Web Services Technologies
Implementing Enterprise Web
Services (JSR 109)
Java API for XML-Based Web
Services (JAX-WS) 2.0 (JSR 224)
Java API for XML-Based RPC
(JAX-RPC) 1.1 (JSR 101)
Java Architecture for XML
Binding (JAXB) 2.0 (JSR 222)
SOAP with Attachments API for
Java (SAAJ) (JSR 67)
Streaming API for XML (JSR 173)
Web Service Metadata for the Java
Platform (JSR 181)
Web Application Technologies
Java Servlet 2.5 (JSR 154)
JavaServer Faces 1.2 (JSR 252)
JavaServer Pages 2.1 (JSR 245)
JavaServer Pages Standard Tag
Library (JSR 52)
2008-2009
DASDI
Enterprise Application Technologies
Enterprise JavaBeans 3.0 (JSR 220)
JEE Connector Architecture 1.5 (JSR
112)
Common Annotations for the Java Platform
(JSR 250)
Java Message Service API (JSR 914)
Java Persistence API (JSR 220)
Java Transaction API (JTA) (JSR 907)
JavaBeans Activation Framework (JAF) 1.1
(JSR 925)
JavaMail (JSR 919)
Management and Security
Technologies
JEE Application Deployment (JSR 88)
JEE Management (JSR 77)
Java Authorization Contract for Containers
(JSR 115)
En continua revisión y expansión
11
Tecnologías de la plataforma JEE.
Clasificación
Tres categorías:
Componentes
2008-2009
componentes
servicios
comunicaciones
Utilizados por desarrolladores para
crear partes esenciales de una
aplicación empresarial
Utilizados en la interfaz de usuario y
lógica del negocio
DASDI
12
Gestión de componentes basado en
contenedores
De la mano de un modelo basado en componentes
esta la noción de contenedor.
Un contenedor provee un ambiente estandarizado de
ejecución que provee servicios específicos a
componentes.
Por ejemplo todos los contenedores Web proveen
soporte para requerimientos de clientes, realizar un
procesamiento y retornar los resultados.
2008-2009
Ej.: Todos los contenedores EJB proveen soporte para
gestión de transacciones, ciclo de vida, localización y
otros servicios.
Los contenedores también poseen acceso a sistemas
de información empresarial (RDBMS, JDBC, etc.)
DASDI
13
Tecnologías de componentes
Componente: unidad de software de nivel
aplicación
2008-2009
Ej: Javabeans, applets, componentes web, etc.
Los componentes JEE se ejecutan dentro
de su correspondiente contenedor.
El contenedor proporciona los servicios
necesarios a los componentes en tiempo
de ejecución
Permite declarar en lugar de programar
determinados aspectos de
comportamiento de los componentes
DASDI
14
Contenedores JEE
Cuatro
aspectos:
Contrato de componentes
API de servicio del contenedor
Servicios Declarativos
Otros servicios de contenedores
2008-2009
DASDI
15
Contrato de componentes
Los componentes son gestionados
por el contenedor.
2008-2009
Deben cumplir el contrato del
contenedor
Contrato: Conjunto de métodos a
implementar por el componente y que
permiten al contenedor interactuar con
él.
Los contratos son interfaces java.
java
DASDI
16
API del servicio del contenedor
El contenedor aporta una
implementación para las APIs de
extensión de java.
Ejemplo:
Servicio de mensajería JMS (JSR 914)
Driver que cumple la especificación
2008-2009
Implementación de los interfaces JSR 914
Gestor de mensajes y colas
DASDI
17
Servicios Declarativos
Algunos de los servicios ofrecidos por el
contenedor a los componentes se
declaran en lugar de programarse.
La declaración se realiza mediante
descriptores de despliegue.
2008-2009
Por ejemplo, especificar que un método tiene
que estar inmerso en una transacción.
Descriptor de despliegue: Contrato entre
el contenedor y el componente.
DASDI
18
Otros Servicios
Gestión
del ciclo de vida del
componente
Reserva de recursos
Publicación de componentes y
otros recursos en espacio JNDI
Clustering.
Etc…
2008-2009
DASDI
19
Componentes Web
Entidades que sirven respuestas a
peticiones HTTP
Normalmente generan interfaces de
usuario basadas en Web
Dos tecnologías:
2008-2009
Servlets
JSP (Java Server Pages)
DASDI
20
Componentes Web: Servlets
2008-2009
Extienden la funcionalidad de un
servidor Web
Portables
Se ejecutan en un contenedor de
servlets.
DASDI
21
Componentes Web: JSP
Respuesta
de Sun a las ASP
de Microsoft
Cuando se compilan,
generan un servlet.
Son páginas html con
código java incrustado.
2008-2009
DASDI
22
Componentes Web
Se ejecutan en un contenedor Web
Contenedor web =
contenedor JSPs + contenedor servlets
2008-2009
Proporciona los servicios necesarios
para la ejecución de servlets y jsps,
y controla su ciclo de vida.
Escucha, decodifica y responde
peticiones HTTP/HTTPS.
DASDI
23
Servicios de un contenedor Web
Seguridad
Concurrencia
Ciclo de vida
Procesamiento de transacciones
Despliege
No estándar pero frecuentes:
2008-2009
Pool de conexiones
Administración remota
DASDI
24
Componentes Enterprise
JavaBeans
EJB:
Tecnología de servidor
para el desarrollo y despliegue
de componentes que contienen
la lógica de negocio de una
aplicación empresarial
Lo EJBs son escalables,
transaccionales y seguros en
utilización multiusuario.
2008-2009
DASDI
25
Componentes Enterprise
JavaBeans
Tres tipos:
2008-2009
De sesión, con estado y sin estado
De entidad.
Dirigidos por mensajes.
Contenedores EJB: Proporcionan los
servicios de transacciones y
persistencia y accede a las APIS de
servicios y comunicaciones de JEE.
DASDI
26
Arquitectura JEE
2008-2009
DASDI
27
Construcción de aplicaciones:
Roles
2008-2009
DASDI
28
Servicios plataforma JEE
Simplifican el desarrollo de aplicaciones poniendo
recursos a su disposición
Servicios de nombrado: Proporcionan a las
aplicaciones cliente, EJBs y componentes WEB el
acceso al entorno de nombrado JNDI. Permite
personalizar un componente sin necesidad de
acceder o cambiar su código.
Servicios de despliegue: Permiten personalizar los
componentes y aplicaciones en el momento del
empaquetamiento de despliegue.
2008-2009
Aplicación JEE = conjunto de unidades o
módulos.
Módulo = uno o más componentes JEE para el
mismo tipo de contenedor
En cada módulo, un descriptor de despliegue.
DASDI
29
Despliege: Módulos JEE
Empaquetan componentes o
aplicaciones JEE.
Tres tipos:
2008-2009
Archivos JAR (Java ARchive)
Archivos WAR (Web Application ARchive)
Archivos EAR (Enterprise Application
ARchive)
DASDI
30
Archivos JAR (Java Archive)
Permite agrupar distintos archivos java en
uno solo.
Sigue el formato ZIP
Incorporado en la versión 1.1 del JDK
Contienen:
2008-2009
Clases java
Recursos que emplean las clases
META-INF\MANIFEST.MF
Manifest-Version: 1.2
Main-Class: DiveLog
Created-By: 1.4 (Sun Microsystems Inc.)
Specification-Title: "Java Utility Classes"
Specification-Version: "1.2"
Implementation-Title: "java.util"
DASDI
31
Implementation-Version: "build57“
Archivos WAR
(Web Application ARchive)
Permiten empaquetar en una
sola unidad aplicaciones web
java completas.
Servlets y JSPs
Contenido estático
Html,
Librerias usadas por la aplicación
Otros
2008-2009
imágenes, etc.
jars.
Otros recursos web
DASDI
32
Archivos EAR
(Enterprise Application ARchive)
Archivos
desplegables en
servidores de aplicaciones JEE
Contienen
Archivos WAR
EJBs
Empaquetados
2008-2009
DASDI
en ficheros JAR
33
Servicios plataforma JEE
Servicio
de transacciones
Operaciones atómicas
Un sistema transaccional
garantiza que cada unidad o
transacción se termina
completamente sin interferencia
de otros procesos.
Commit
Rollbak
2008-2009
DASDI
34
Servicios plataforma JEE
Servicio de seguridad
Garantiza que los recursos son
accedidos por los usuarios
autorizados. Distinguimos:
Autentificación
Autorización
Técnicas
Declarativa
Programática
2008-2009
DASDI
35
Tecnologías de servicios
API JDBC
JAXP
2008-2009
Proporciona conectividad independiente
de la base de datos entre la plataforma
JEE y un amplio rango de orígenes de
datos
Soporta el procesamiento de
documentos XML mediante DOM y SAX,
y transformaciones XSLT.
DASDI
36
Tecnologías de servicios
JNDI
JCA
2008-2009
Proporciona acceso a servicio de
nombrado y directorio
Independiente de implementaciones
específicas (LDAP, NIS, etc.).
API estándar para la conexión de la
plataforma JEE a otros sistemas de
información, ej: SAP.
DASDI
37
Tecnologías de servicios
JTA (Java Transaction API)
JTS (Java Transaction Service).
2008-2009
API estándar para el acceso a los
monitores transaccionales con
independencia de implementaciones
específicas.
Especificación para la implementación
de un gestor de transacciones que
soporte JCA. Impone como debe
comunicarse un monitor transaccional
con sus clientes.
DASDI
38
Tecnologías de comunicaciones
Mecanismos de comunicación,
implementaciones de protocolos.
Protocolos de Internet
TCP/IP, HTTP, HTTPS (http + ssl)
Protocolos de invocación remota
Protocolos OMG
Java IDL
RMI-IIOP
2008-2009
DASDI
39
Tecnologías de comunicaciones
Tecnologías de mensajería.
JMS
JavaMail.
Conjunto de clases e interfaces para el
acceso a servidores de email.
Ej, POP3, SMTP, IMAP4.
2008-2009
DASDI
40
Servicios WEB
“Son aplicaciones modulares
autodescriptivas que se pueden publicar,
ubicar e invocar desde cualquier punto de
la Web o desde el interior de una red local
basada en estándares abiertos de
Internet”
2008-2009
Multiplataforma multilenguaje, tanto para el
proveedor del servicio como para el usuario del
mismo
El acceso a servicios web se realiza a través de
protocolos de Internet como HTTP o SMTP
basados en XML
DASDI
41
Servicios WEB
2008-2009
DASDI
42
Servicios Web
2008-2009
DASDI
43
Arquitectura Servicios WEB
Localización
2008-2009
UDDI (Universal Description Discovery
and integration): Medio para la
publicación de servicios web en los
registros de servicios web.
Las empresas publican en los registros
los servicios que ofrecen y la
información técnica para acceder a
ellos.
XML, HTTP, DNS, SOAP.
DASDI
44
Arquitectura Servicios WEB
Descripción
Invocación
2008-2009
WSDL (Web Services Definition Language)
Define y describe los servicios web
SOAP, XML.
SOAP (Simple Object Access Protocol)
XML
Formatos de mensajes para encapsula
invocaciones a objetos en XML
Puede emplear distintos protocolos de
Internet para el transporte (SMTP, http, etc.
DASDI
45
Descargar