EJB 3.1 permite empaquetar EJBs dentro de un archivo war Las clases pueden incluirse en el directorio WEB-INF/classeso en un archivo jar dentro de WEB-INF/lib.
2.16. API de Java EE
La Figura IX, ilustra las relaciones entre los contenedores de Java EE, para cada tipo de contenedor Java EE.
37
Figura IX: Contenedores Java EE y sus relaciones
En la siguiente Figura, se ilustran las API’s de Java EE en el contenedor Web.
Figura X: API de Java EE en el contenedor Web
38
Figura XI: API de Java EE en el contenedor EJB
Las API’s de Java EE 6 disponibles en el contenedor de Aplicaciones Cliente, se pueden visualizar en la Figura XII.
Figura XII: API de Java EE en el contenedor de Aplicaciones Cliente
En las secciones siguientes se presentará un resumen breve de las tecnologías requeridas por la plataforma Java EE y la API utilizada en las aplicaciones Java EE.
2.16.1. Tecnología de JavaBeans Empresariales
Un componente JavaBeansTM empresarial (EJB), o bean empresarial es un cuerpo de código que tiene campos y métodos para implementar módulos de lógica de negocio. Se puede pensar en un bean empresarial como un ladrillo que puede ser utilizado solo con otros beans empresariales para ejecutar lógica de negocio en el servidor Java EE.
Hay tres tipos de beans empresariales: los beans de sesión, los beans manejadores de mensajes y los singleton beans. Un SessionBean (bean de sesión) representa una conversación transitoria con un cliente. Cuando el cliente termina de ejecutarse, el bean de
39
sesión y sus datos desaparecen. Un Message-Driven Bean (bean manejador de mensajes) combina las características de un bean de sesión y un escucha (listener) de mensajes permitiendo a un componente de negocio recibir mensajes de forma asincrónica. Comúnmente, estos son mensajes JMS (Java Message Service).
En la versión 2.x de EJB existía un tercer tipo: Entity Beans, que eran objetos distribuidos para la persistencia de datos en una Base De Datos. Estos objetos fueron reemplazados en la versión 3.0 por la Java Persistence API (JPA).
En la plataforma Java EE 6, las nuevas características de los Enterprise JavaBeans son los siguientes:
• La capacidad de paquetes locales Enterprise JavaBeans en un archivo WAR.
• Singleton beans de sesión, que proporcionan un fácil acceso al estado compartido.
• Un subconjunto de funcionalidad Enterprise JavaBeans Ligero (EJB Lite) que pueden ser prestados en perfiles Java EE, tales como el perfil Java EE Web.
La especificación de interceptores, que forma parte de la especificación EJB 3.1, hace más generalizada la instalación de interceptores y se definió originalmente como parte de la especificación EJB 3.0.
2.16.2. Tecnología Java Servlet
La tecnología de servlet de Java permite definir una clase servlet específica para HTTP. Una clase servlet extiende las habilidades de los servidores que hospedan aplicaciones que son accedidas por de la forma del modelo de programación solicitud respuesta. A pesar que los servlets pueden responder a cualquier tipo de solicitud, comúnmente son utilizados para extender las aplicaciones hospedadas por servidores web.
En la plataforma Java EE 6, Java Servlet presenta nuevas tecnologías cuyas características son las siguientes:
• Anotación de apoyo. • Asincrónica apoyo.
• Facilidad de configuración. • Mejoras en las API’s existentes. • Enchufabilidad (Plugins)
40
La tecnología JavaServer Faces es un marco de trabajo de interfaz de usuario para la creación de aplicaciones web. Los principales componentes de la tecnología JavaServer Faces son los siguientes:
• Un framework de trabajo para componentes GUI.
• Un modelo flexible para la prestación de los componentes en diferentes tipos de HTML o lenguajes de marcas y tecnologías diferentes. Un objeto Renderer genera el marcado para representar el componente y convierte los datos almacenados en un modelo de objetos a los tipos que pueden
representarse en una vista.
• Un RenderKit estándar para la generación de mascas HTML/4.01. Las siguientes características soportan los componentes GUI:
• Validación de entrada. • Manejo de eventos.
• Conversión de datos entre los objetos del modelo y los componentes. • Gestión del modelo de creación de objetos.
• Página de configuración de navegación. • Expression Language (EL).
Toda esta funcionalidad está disponible utilizando las API’s estándar de Java y archivos de configuración basado en XML.
En la plataforma Java EE 6, las nuevas características de JavaServer Faces son las siguientes:
• La capacidad de usar anotaciones en lugar de un archivo de configuración para especificar la gestión de beans.
• Facelets, una tecnología de visualización que suprime JavaServer Pages (JSP) usando archivos XHTML.
• Ajax de apoyo.
• Compuesto de componentes. • Implícita de navegación.
2.16.4. Tecnología de Java Server Pages
La tecnología de JavaServer Pages TM (JSP) nos permite colocar partes del código servlet directamente en un documento de texto. Una página JSP es un documento de texto que contiene dos tipos de texto:
• Datos estáticos, que pueden ser expresados en cualquiera de los formatos basados en texto como HTML, WML y XML.
• Elementos JSP, que determinan como la página construye el contenido dinámico.
41
2.16.5. Biblioteca de Etiquetas estándar JavaServer Pages
Las Bibliotecas de Etiquetas Estándar JavaServer Pages (JSTL por sus siglas en inglés) encapsula la funcionalidad principal común a muchas aplicaciones JSP. En lugar de etiquetas mezcladas de varios vendedores en sus aplicaciones JSP, se emplea un solo, grupo estándar de etiquetas. Esta estandarización permite, desplegar sus aplicaciones en cualquier contenedor que soporte JSTL y lo hace más deseable que la implementación de etiquetas optimizada.
La JSTL tiene etiquetas para crear iteradores y condiciones para manejar flujo, etiquetas para manejar documentos XML, etiquetas de internacionalización, etiquetas para acceder a bases de datos utilizando SQL y las funciones mas comúnmente utilizadas.
2.16.6. API Java de Servicio de Mensajes (JMS)
La API del servicio de mensajes de Java (JMS) es un estándar de mensajería que permite a componentes de aplicación Java EE crear, enviar, recibir y leer mensajes. Para habilitar comunicación distribuida con bajo acoplamiento, confiable y asincrónica.
2.16.7. API Java de Transacciones
La API Java de transacciones (JTA) proporciona una interfaz estándar para distinguir transacciones. La arquitectura Java EE proporciona un commit automático para manejar commit y rollbacks. Un auto commit significa que otras aplicaciones que están viendo estos datos verán los datos actualizados luego de que cada base de datos realice la operación de lectura o escritura. Sin embargo, si su aplicación realiza dos operaciones de acceso a base de datos que dependen una de otra se deseará utilizar la API JTA para distinguir donde la transacción completa incluyendo ambas operaciones, comienza, se regresa o se completa.
2.16.8. API JavaMail
Las aplicaciones Java EE utilizan la API JavaMail para enviar notificaciones por correo electrónico. La API de JavaMail tiende dos partes:
• Una interfaz a nivel de aplicación utilizada por los componentes de la aplicación para enviar correo.
• Una interfaz de proveedor de servicio.
La plataforma Java EE incluye JavaMail con un proveedor de servicio que permite a los componentes de aplicación enviar correo por la Internet.
42