¿Cuándo usar stateless, stateful o singleton en un bean de sesión?

Los beans de sesión se mantienen a lo largo de la sesión del cliente con la finalidad de dar representar flujo de trabajo, estado de aplicación, lógica y utilidades de empresa. No obstante, no es persistente, puesto que los datos no se almacenan en un repositorio y por tanto, los datos de la sesión no sobreviviría a una caída del servidor, por ejemplo.Un bean de sesión con estado (stateful) puede mantener datos entre las diferentes peticiones de un cliente, pero no ocurre así con un bean de sesión sin estado (stateless).

Se recomienda el uso de stateful cuando se cumpla una de las siguientes situaciones:

  • El estado del bean representa la interacción entre el bean y un cliente específico.
  • El bean necesita mantener información acerca del cliente a lo largo de varias invocaciones de métodos.
  • El bean es mediador entre el cliente y los otros componentes de la aplicación, presentando una vista simplificada para el cliente.

Tras bambalinas, el bean maneja el control de flujo de muchos otros enterprise beans. Para incrementar el rendimiento, se podrían utilizar stateless session bean en alguna de las siguientes situaciones:

  • El estado del bean no tiene datos para un cliente en específico.
  • En un único método de invocación, el bean realiza una tarea genérica para todos los clientes. Por ejemplo, se podría utilizar un stateless session bean para mandar un email que confirme una compra online.
  • El bean implementa un servicio web.

Los singleton session bean son apropiados en las siguientes circunstancias:

  • El estado necesita ser compartido a través de la aplicación.
  • Un único enterprise bean necesita ser accedido por múltiples hebras concurrentemente.

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *