Download 02. Introduccion a J2EE

Document related concepts
no text concepts found
Transcript
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
¿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 JEE?
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.
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 JEE
“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 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)
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
Entorno JEE
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
JEE.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 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
Contenedores JEE
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 JEE.
Arquitectura JEE
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.
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.
Módulos JEE
Empaquetan componentes o
aplicaciones JEE.
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 JEE
Contienen
Archivos WAR
EJBs (Empaquetados dentro de
ficheros JAR)
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
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
Tecnologías de servicios
API JDBC
Proporciona conectividad independiente
de la base de datos entre la plataforma
JEE 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 JEE 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.