Arquitectura EJB 2.x

Este tema proporciona una visión general de alto nivel de arquitectura de componentes distribuida definida en la especificación de arquitectura de Sun Microsystems Enterprise JavaBeans™ (EJB) versión 2.x.

Todas las especificaciones de Enterprise JavaBeans y las descripciones de tecnología están disponibles en el sitio Web java.sun.com.

Los beans de empresa proporciona varios beneficios para los desarrolladores de aplicaciones. Hacen lo siguiente:

Beans de empresa
Un bean de empresa es un componente no visual de una aplicación de empresa distribuida, orientada a transacciones. Los beans de empresa se despliegan habitualmente en contenedores EJB y se ejecutan en servidores EJB. Puede personalizarlos cambiando sus descriptores de despliegue y puede ensamblarlos con otros beans para crear aplicaciones nuevas. Hay tres tipos de beans de empresa: beans de sesión, beans de entidad y beans controlados por mensaje. Los beans de sesión y los beans controlados por mensaje son componentes de grano grueso diseñados para modelar procesos de negocio mientras que los beans de entidad se utilizan para modelar objetos de datos de grano fino.
  • Beans de sesión: los beans de sesión son beans de empresa no persistentes. Pueden ser con estado o sin estado.
    • Beans de sesión con estado: actúan en nombre de un solo cliente y mantienen información de sesión específica del cliente (llamada estado conversacional) entre varias llamadas de método y transacciones. Existen mientras dura una sola sesión de cliente/servidor.
    • Beans de sesión sin estado: no mantienen ningún estado conversacional) y se agrupan por contenedor para manejar varias peticiones de varios clientes.
  • Beans de entidad: los beans de entidad son beans de empresa que contienen datos persistentes y que pueden guardarse en varios almacenes de datos persistentes. Cada bean de entidad lleva su propia identidad. Los beans de entidad que gestionan su propia persistencia se llaman beans de entidad de persistencia controlada por bean (BMP). Los beans de entidad que delegan su persistencia en su contenedor EJB se llaman beans de entidad de persistencia controlada por contenedor (CMP).
  • Beans controlados por mensaje: los beans controlados por mensaje son beans de empresa que reciben y procesan mensajes de JMS. Al contrario que los beans de sesión o de entidad, los beans controlados por mensaje no tienen interfaces. Solo se puede acceder a ellos a través de mensajería y no mantienen ningún estado conversacional. Los beans controlados por mensaje permiten la comunicación asíncrona entre la cola y el escucha y proporcionan separación entre el proceso de mensajes y la lógica de negocio.
Vista de cliente remoto
La especificación de vista de cliente remoto empezó a estar disponible con EJB 1.1. La vista de cliente remoto de un bean de empresa es independiente de la ubicación. Un cliente que esté ejecutándose en la misma JVM que una instancia de bean utiliza la misma API para acceder al bean que un cliente que esté ejecutándose en una JVM distinto en el mismo sistema o en otro. La vista de cliente remoto consta de dos interfaces
  • Interfaz remota: la interfaz remota especifica los métodos de negocio remotos que puede llamar un cliente en un bean de empresa.
  • Interfaz inicial remota: la interfaz inicial remota especifica los métodos utilizados por clientes remotos para buscar, crear y eliminar instancias de clases de bean de empresa.
Vista de cliente local
La especificación de vista de cliente local está disponible en EJB 2.0 o versiones posteriores. Al contrario que la vista de cliente remoto, la vista de cliente local de un bean depende de la ubicación. Para el acceso de la vista de cliente local a un bean de empresa es necesario que el cliente local y el bean de empresa que proporciona la vista de cliente local estén en la misma JVM. Por lo tanto, la vista de cliente local no proporciona la transparencia de ubicación proporcionada por la vista de cliente remoto. Las interfaces locales y las interfaces iniciales locales proporcionan soporte para el acceso ligero de beans de empresa que sean clientes locales. Los beans de sesión y de entidad pueden acoplarse estrechamente con sus clientes, permitiendo el acceso sin la actividad general asociada normalmente a las llamadas de método remotas. La vista de cliente local consta de dos interfaces:
  • Interfaz local: la interfaz local es una versión ligera de la interfaz remota pero para clientes locales. Incluye métodos de lógica de negocio que puede llamar un cliente local.
  • Interfaz inicial local: la interfaz inicial local especifica los métodos utilizados por clientes locales para localizar, crear y eliminar instancias de clases de bean de empresa.
Vista de clientes de servicio Web
En la especificación EJB 2.1, la arquitectura EJB introdujo el soporte de servicios Web. Un cliente para un bean de sesión puede ser un cliente de servicio Web. Un cliente de servicio Web puede utilizar la vista de clientes de servicio Web de un bean de sesión sin estado que tiene una correspondiente interfaz de punto final de servicio.
Interfaz de punto final de servicio
La interfaz de punto final de servicio para un bean de sesión sin estado expone la funcionalidad del bean de sesión como punto final de servicio Web. El documento WSDL (Lenguaje de descripción de servicios Web) para un servicio Web describe el servicio Web como un conjunto de puntos finales que funcionan sobre mensajes. Un documento WSDL puede incluir la interfaz de punto final de servicio de un bean de sesión sin estado como uno de sus puntos finales. Un bean de sesión sin estado puede modificarse para incluir una vista de cliente de servicio Web o puede correlacionarse una interfaz de punto final de servicio de un WSDL existente para proporcionar la interfaz correcta.

Una vista de cliente de servicio Web es independiente de la ubicación y puede accederse a ella a través de llamadas remotas.

Archivo JAR de cliente EJB
Un archivo JAR de cliente EJB es un archivo JAR opcional que puede contener las interfaces de cliente que necesita un programa para utilizar las vistas de cliente de los beans de empresa contenidos en el archivo JAR de EJB. Si decide no crear un archivo JAR de cliente EJB para un módulo EJB, todas las clases de interfaz de cliente estarán en el archivo JAR de EJB. Por omisión, el entorno de trabajo crea los proyectos JAR de cliente EJB para cada proyecto EJB correspondiente.
contenedor EJB
Un contenedor EJB es un entorno de tiempo de ejecución que gestiona uno o varios beans de empresa. El contenedor EJB gestiona los ciclos de vida de objetos de bean de empresa, coordina transacciones distribuidas e implementa la seguridad de objetos. Generalmente, a cada contenedor EJB se le proporciona un servidor EJB y contiene un conjunto de beans de empresa que se ejecutan en el servidor.
Descriptor de despliegue
Un descriptor de despliegue es un archivo XML empaquetado con los beans de empresa en un archivo JAR de EJB o en un archivo EAR. Contiene metadatos que describen el contenido y la estructura de los beans de empresa e información de seguridad y transacción de tiempo de ejecución para el contenedor de EJB.
Servidor EJB
Un servidor EJB es un proceso o una aplicación de alto nivel que proporciona un entorno de tiempo de ejecución para soportar la ejecución de aplicaciones de servidor que utilizan beans de empresa. Un servidor EJB proporciona un servicio de denominación accesible para JNDI, gestiona y coordina la asignación de recursos a aplicaciones de cliente, proporciona acceso a recursos del sistema y proporciona un servicio de transacción. Un servidor de EJB pueden proporcionarlo por ejemplo, un servidor de base de datos o de aplicación.