Download 2. Tecnologia j2ee

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
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
expansión
Entorno J2EE
Daniel Fernández Lanvin
Modelo basado en Componentes.
Concepto de contenedor



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.
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 son 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
¿Tipos de componentes?

Los que nos van a interesar:
Componentes WEB
 Componentes EJB.

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
¿Qué Módulos aporta 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, descripción e invoación:
 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