Download 02. Introducción a J2EE

Document related concepts
no text concepts found
Transcript
J2EE – Java 2 Enterprise Edition
www.javasoft.com
Daniel Fernández Lanvin
Aquitectura WEB
www.dflanvin.com/docencia/arquitectura
¿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
Daniel Fernández Lanvin
¿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.
Daniel Fernández Lanvin
¿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.).
Daniel Fernández Lanvin
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
Daniel Fernández Lanvin
APIs y Especificaciones J2EE









EJBs 2.1
JDBC 2.0
Servlets 2.3
JSPs 1.2
JMS 1.0
JNDI 1.2
JTA 1.0
JavaMail 2.0
JAF 1.0
Daniel Fernández Lanvin







JAXP 1.1
JCA 1.0
JAAS 1.0
XML-RPC
Web Services
JMX (Java
Management
Extensions)
Etc.
En continua revisión y
Entorno J2EE
Daniel Fernández Lanvin
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.)
Daniel Fernández Lanvin
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
Daniel Fernández Lanvin
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
Daniel Fernández Lanvin
Contenedores J2EE

Cuatro aspectos:




Contrato de componentes
API de servicio del contenedor
Servicios Declarativos
Otros servicios de contenedores
Daniel Fernández Lanvin
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 se materializan en interfaces
java.
Daniel Fernández Lanvin
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
Daniel Fernández Lanvin
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.
Daniel Fernández Lanvin
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.
Daniel Fernández Lanvin
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.
Daniel Fernández Lanvin
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.
Daniel Fernández Lanvin
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.
Daniel Fernández Lanvin
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.
Daniel Fernández Lanvin
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.
Daniel Fernández Lanvin
Arquitectura J2EE
Daniel Fernández Lanvin
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.
Daniel Fernández Lanvin
Módulos J2EE


Empaquetan componentes o aplicaciones
J2EE.
Tres tipos:



Archivos JAR (Java ARchive)
Archivos WAR (Web Application ARchive)
Archivos EAR (Enterprise Application ARchive)
Daniel Fernández Lanvin
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
Daniel Fernández Lanvin
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
Daniel Fernández Lanvin
Archivos EAR (Enterprise Application
ARchive)


Archivos desplegables en servidores de
aplicaciones J2EE
Contienen


Archivos WAR
EJBs (Empaquetados dentro de ficheros JAR)
Daniel Fernández Lanvin
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
Daniel Fernández Lanvin
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
Daniel Fernández Lanvin
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.
Daniel Fernández Lanvin
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.
Daniel Fernández Lanvin
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.
Daniel Fernández Lanvin
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
Daniel Fernández Lanvin
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.
Daniel Fernández Lanvin
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
Daniel Fernández Lanvin
Servicios WEB
Daniel Fernández Lanvin
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.
Daniel Fernández Lanvin
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.
Daniel Fernández Lanvin