| Arquitrectura de los Servidores Java EE (Contenedor EJB) |
| |
Esta es la arquitectura de un Servidor Java EE

Contenedor EJB
El Contenedor EJB contiene tres tipos dferentes de EJBs (Enterprise JavaBeans o Enterprise Beans)
- Session Bean
- representa a un solo cliente dentro del Servidor Java EE
- es decir, no puede ser compartido por otros Clientes
- no es persistente
- es decir, su información no se guarda en una Base de Datos
- se subdivide en dos tipos diferentes
- Stateless Session Bean
- Stateful Session Bean
- Entity Bean
- representa a un objeto de negocio que puede ser compartido entre múltiples usuarios
- es persistente
- es decir, su información se guarda en una Base de Datos
- Message-Driven Bean
- son Enterprise Beans que son utilizados por los Clientes de forma asíncrona
- es decir, funciona como un sistema batch que el Cliente lanza una serie de ordenes pero no espera una respuesta inmediata del Message-Driven Bean
- las peticiones se almacenan en una cola y el Message-Driven Bean las va ejecutando una a una
Stateless Session Bean
- cuando un cliente invoca a un método de un Stateless Session Bean, las variables de instancia de este EJB pueden contener un estado, pero los valores de las variables de instancia sólo se mantienen durante esa petición (request)
- por tanto no mantiene un estado de conversación para un cliente en particular
- excepto durante la invocación de un método, todas las instancias son equivalentes permitiendo que el Contenedor EJB pueda tener un Pool de Statelss Session Beans ya instanciadas para agilizar la asignación de una de estas instancias al cliente
- se utiliza
cuando en una sola invocación, el EJB realiza un trabajo genérico para todos los clientes
- por ejemplo buscar en una Base de Datos un conjunto de datos de sólo lectura
Stateful Session Bean
- cuando un cliente invoca a un método de un Stateful Session Bean, las variables de instancia de este EJB contienen un estado, y éste se mantiene durante diferentes invocaciones
- por tanto mantiene un estado de conversación para un cliente en particular
- este estado se mantiene mientras la sesión cliente-EJB se mantiene
- debido a que tienen estado, las instancias son diferentes para cada cliente.
- se utiliza cuando
el EJB hace de intermediario entre el cliente y los otros componentes de la aplicación
- de esta forma el cliente tiene una vista simplificada de la aplicación
Entity Bean
La persitencia de los datos se puede realizar de dos formas distintas
- BMP (bean-managed persistance)
- el desarrollador implementa todos los mecanismos para crear la persistencia del estado del EJB
- CMP (container-managed persistance)
- el desarrollador especifica el mapeo necesario entre los atributos del EJB y el almacenamiento persistente y deja al Contenedor EJB que realize el resto del trabajo