Está en la página 1de 37

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 Enterprise Application Technologies
Implementing Enterprise Web Enterprise JavaBeans 3.0 (JSR 220)
Services (JSR 109) JEE Connector Architecture 1.5 (JSR
Java API for XML-Based Web 112)
Services (JAX-WS) 2.0 (JSR 224) Common Annotations for the Java Platform
Java API for XML-Based RPC (JSR 250)
(JAX-RPC) 1.1 (JSR 101) Java Message Service API (JSR 914)
Java Architecture for XML Java Persistence API (JSR 220)
Binding (JAXB) 2.0 (JSR 222) Java Transaction API (JTA) (JSR 907)
SOAP with Attachments API for JavaBeans Activation Framework (JAF) 1.1
Java (SAAJ) (JSR 67) (JSR 925)
Streaming API for XML (JSR 173) JavaMail (JSR 919)
Web Service Metadata for the Java Management and Security
Platform (JSR 181) Technologies
JEE Application Deployment (JSR 88)
Web Application Technologies JEE Management (JSR 77)
Java Authorization Contract for Containers
Java Servlet 2.5 (JSR 154)
(JSR 115)
JavaServer Faces 1.2 (JSR 252)
JavaServer Pages 2.1 (JSR 245)
JavaServer Pages Standard Tag En continua revisión y expansión
Library (JSR 52)
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.

También podría gustarte