Title: J2EE
1J2EE Java 2 Enterprise Edition
2Por 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
3Por 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.
4Qué 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.).
5Plataforma 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
6APIs y Especificaciones J2EE (1.4)
- EJBs 2.1 (3.0)
- JDBC 3.0
- Servlets 2.4
- JSPs 2.0
- JMS 1.1
- JNDI 1.2.1
- JTA 1.0.1B/JTS 1.0
- JavaMail 1.3
- JAF 1.0.2
- JAXP 1.2
- JCA 1.0
- JAAS 1.0
- XML-RPC
- Web Services
- JMX (Java Management Extensions)
- Java IDL, etc.
- En continua revisión y expansión
7Entorno J2EE
8Gestió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.)
9Tecnologí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
10Tecnologí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
11Contenedores J2EE
- Cuatro aspectos
- Contrato de componentes
- API de servicio del contenedor
- Servicios Declarativos
- Otros servicios de contenedores
12Contrato 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.
13API 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
14Servicios 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.
15Otros Servicios
- Gestión del ciclo de vida del componente
- Reserva de recursos
- Publicación de componentes y otros recursos en
espacio JNDI - Clustering.
- Etc.
16Componentes 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.
17Componentes 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.
18Componentes 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.
19Componentes 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.
20Componentes 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.
21Arquitectura J2EE
22Servicios 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.
23Módulos J2EE
- Empaquetan componentes o aplicaciones J2EE.
- Tres tipos
- Archivos JAR (Java ARchive)
- Archivos WAR (Web Application ARchive)
- Archivos EAR (Enterprise Application ARchive)
24Archivos 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
25Archivos 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
26Archivos EAR (Enterprise Application ARchive)
- Archivos desplegables en servidores de
aplicaciones J2EE - Contienen
- Archivos WAR
- EJBs (Empaquetados dentro de ficheros JAR)
27Servicios 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
28Servicios 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
29Tecnologí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.
30Tecnologí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.
31Tecnologí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.
32Tecnologí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
33Tecnologí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.
34Servicios 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
35Servicios WEB
36 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.
37Arquitectura 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.