Download componentes

Document related concepts
no text concepts found
Transcript
J2EE – Java 2 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

¿Por qué Java en el servidor?

Inconvenientes


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.
¿Qué es J2EE?






Internet y WWW representan el fundamento sobre los
cuales se esta construyendo la economía de la
información.
La meta de J2EE es definir un estándar que ayude a
suplir los retos tecnológicos en esta nueva era.
J2EE 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.
J2EE soporta aplicaciones desde las C/S corporativas
hasta e-commerce con Web en Internet.
Defines 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.).
Plataforma J2EE





“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
APIs y Especificaciones J2EE (1.4)









EJBs 2.1 (3.0)  JAXP 1.2
JDBC 3.0
 JCA 1.0
Servlets 2.4
 JAAS 1.0
JSPs 2.0
 XML-RPC
JMS 1.1
 Web Services
JNDI 1.2.1
 JMX (Java Management
Extensions)
JTA 1.0.1B/JTS
1.0
 Java IDL, etc.
JavaMail 1.3
En continua revisión y
expansión
JAF 1.0.2
Entorno J2EE
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.


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.)
Tecnologías de la plataforma
J2EE.Clasificación

Tres categorías:





componentes
servicios
comunicaciones
Componentes: utilizados por
desarrolladores para crear partes
esenciales de una aplicación
empresarial
Utilizados en la interfaz de usuario y
lógica del negocio
Tecnologías de componentes

Componente: unidad de software de nivel
aplicación




Ej: Javabeans, applets, componentes web, etc.
Los componentes J2EE 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
Contenedores J2EE
 Cuatro
aspectos:
Contrato de componentes
 API de servicio del contenedor
 Servicios Declarativos
 Otros servicios de contenedores

Contrato de componentes



Los componentes son gestionados
por el contenedor.
Para eso, deben cumplir el contrato
del contenedor para el tipo de
componentes en concreto: conjunto
de métodos a implementar por el
componente y que permiten al
contenedor interactuar con él.
Los contratos son interfaces java.
API del servicio del contenedor
El contenedor aporta una
implementación para las APIs de
extensión de java.
Ejemplo:
 Implementa el servicio de JMS
ofreciendo al desarrollador



un driver que cumple la especificación
Gestores de colas y apartados
Servicios Declarativos



Algunos de los servicios ofrecidos por el
contenedor a los componentes se
declaran en lugar de programarse.
La declaración (por ejemplo, especificar
que un método tiene que estar inmerso
en una transacción) se realiza mediante
descriptores de despliegue.
Descriptor de despliegue: Contrato entre
el contenedor y el componente.
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.
Componentes Web



Entidades que sirven respuestas a
peticiones http
Normalmente generan interfaces de
usuario basadas en Web
Servlets:



Extienden la funcionalidad de un
servidor Web
Portables
Se ejecutan en un contenedor de
servlets.
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.
Componentes Web




Se ejecutan en un contenedor Web:
Contenedor web = contenedor JSPs
+ contenedor servlets
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.
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.
Componentes Enterprise
JavaBeans

Tres tipos:




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 J2EE.
Arquitectura J2EE
Servicios plataforma J2ee

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.



Aplicación J2EE = conjunto de unidades o
módulos.
Módulo = uno o más componentes J2EE para el
mismo tipo de contenedor
En cada módulo, un descriptor de despliegue.
Módulos J2EE


Empaquetan componentes o
aplicaciones J2EE.
Tres tipos:



Archivos JAR (Java ARchive)
Archivos WAR (Web Application ARchive)
Archivos EAR (Enterprise Application
ARchive)
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:



Clases java
Recursos que emplean las clases
Es el empleado para empaquetar
componentes EJBs, respetando una
estructura de directorios
Archivos WAR (Web Application
ARchive)

Permiten empaquetar en una
sola unidad aplicaciones web
java completas.
Servlets y JSPs
 Contenido estático

 Html
 Imágenes
 etc.)

Otros recursos web
Archivos EAR (Enterprise Application
ARchive)
 Archivos
desplegables en
servidores de aplicaciones J2EE
 Contienen
Archivos WAR
 EJBs (Empaquetados dentro de
ficheros JAR)

Servicios plataforma J2ee
 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
Servicios plataforma J2ee
 Servicio

de seguridad
Garantiza que los recursos son
accedidos por los usuarios
autorizados. Distinguimos:
 Autentificación
 Autorización

Técnicas
 Declarativa
 Programática
Tecnologías de servicios

API JDBC


Proporciona conectividad independiente
de la base de datos entre la plataforma
J2EE y un amplio rango de orígenes de
datos
JAXP

Soporta el procesamiento de
documentos XML mediante DOM y SAX,
y transformaciones XSLT.
Tecnologías de servicios

JNDI



Proporciona acceso a servicio de
nombrado y directorio
Independiente de implementaciones
específicas (LDAP, NIS, etc.).
JCA

API estándar para la conexión de la
plataforma J2EE a otros sistemas de
información, ej: SAP.
Tecnologías de servicios

JTA (Java Transaction API)


API estándar para el acceso a los
monitores transaccionales con
independencia de implementaciones
específicas.
JTS (Java Transaction Service).

Especificación para la implementación
de un gestor de transacciones que
soporte JCA. Impone como debe
comunicarse un monitor transaccional
con sus clientes.
Tecnologías de comunicaciones

Mecanismos de comunicación,
implementaciones de protocolos.

Protocolos de Internet



TCP/IP, http, SSL
Protocolos de invocación remota
Protocolos OMG
Java IDL
 RMI-IIOP

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.
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”


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
Servicios WEB
Arquitectura Servicios WEB

Localización



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.
Arquitectura Servicios WEB

Descripción


WSDL (Web Services Definition Languge)
 Define y describe los servicios web
 SOAP, XML.
Invocación

SOAP (Simple Object Acceso Protocol)
 XML
 Formatos de mensajes para encapsula
invocaciones a objetos en XML
 Puede emplear distintos protocolos de
Internet para el transporte (SMTP, http, etc.