logo

¿Qué es EJB?

EJB es un acrónimo de frijol java empresarial . Es una especificación proporcionada por Sun Microsystems para desarrollar aplicaciones distribuidas seguras, robustas y escalables.

Para obtener información sobre aplicaciones distribuidas, visite Tutorial RMI primero.

Para ejecutar la aplicación EJB, necesita un servidor de aplicaciones (Contenedor EJB) como Jboss, Glassfish, Weblogic, Websphere etc. Realiza:

  1. Gestión del ciclo de vida,
  2. seguridad,
  3. gestión de transacciones y
  4. agrupación de objetos.

La aplicación EJB se implementa en el servidor, por lo que también se denomina componente del lado del servidor.

EJB es como COM ( Modelo de objetos componentes ) proporcionado por Microsoft. Pero es diferente de Java Bean, RMI y Web Services.


¿Cuándo utilizar Enterprise Java Bean?

  1. La aplicación necesita acceso remoto . En otras palabras, se distribuye.
  2. La aplicación debe ser escalable . Las aplicaciones EJB admiten equilibrio de carga, agrupación en clústeres y conmutación por error.
  3. La aplicación necesita lógica empresarial encapsulada . La aplicación EJB está separada de la capa de presentación y persistente.

Tipos de Java Bean empresarial

Hay 3 tipos de Enterprise Bean en Java.

frijol de sesión

El bean de sesión contiene lógica empresarial que puede ser invocada por un cliente de servicio web, remoto o local.

Bean controlado por mensajes

Al igual que Session Bean, contiene la lógica empresarial pero se invoca pasando un mensaje.

Bean de entidad

Encapsula el estado que puede persistir en la base de datos. Está en desuso. Ahora ha sido reemplazado por JPA (Java Persistent API).


Diferencia entre RMI y EJB

Tanto RMI como EJB proporcionan servicios para acceder a un objeto que se ejecuta en otra JVM (conocido como objeto remoto) desde otra JVM. Las diferencias entre RMI y EJB se detallan a continuación:

RMIEJB
En RMI, los servicios de middleware como seguridad, gestión de transacciones, agrupación de objetos, etc. deben ser realizados por el programador de Java.En EJB, los servicios de middleware los proporciona EJB Container automáticamente.
RMI no es un componente del lado del servidor. No es necesario implementarlo en el servidor.EJB es un componente del lado del servidor y debe implementarse en el servidor.
RMI se basa en la programación de sockets.La tecnología EJB se basa en RMI.

EJB y servicio web

En EJB, tanto el componente bean como el cliente bean deben estar escritos en lenguaje Java.

Si el cliente bean necesita estar escrito en otro idioma, como .neto , PHP etc, tenemos que ir con servicios web (JABÓN o DESCANSO). Entonces EJB con servicio web será una mejor opción.


Desventajas de EJB

  1. Requiere servidor de aplicaciones
  2. Requiere sólo cliente java. Para un cliente en otro idioma, debe optar por el servicio web.
  3. Complejo para entender y desarrollar aplicaciones ejb.