Historia de los EJB:
EJB 1.0: La especificación original .
EJB 1.1: La primera incluida dentro de J2EE
EJB 2.0: Incluida en J2EE 1.3, añadía las interfaces Locales y los Message-Driven beans.
EJB 2.1: Incluida en la última revisión de J2EE, la 1.4.
A continuación, veamos el proceso de creación de un EJB:
Hay 3 tipos de EJB:
Con estado (StateFul). Los beans de sesión con estado son objetos distribuidos que poseen un estado. El estado no es persistente, pero el acceso al bean se limita a un solo cliente. Para la creación de un EJB statefull se usan llamadas RMI.
- Sin estado (StateLess). Los beans de sesión sin estado son objetos distribuidos que carecen de estado asociado ( carecen de atributos o propiedades ) permitiendo por tanto que se los acceda concurrentemente. No se garantiza que los contenidos de las variables de instancia se conserven entre llamadas al método, es decir, el componente (objeto) no está asociado al usuario (sólo es creada una única instancia como máximo). Un objetos Stateless también puede usarse para modificar alguna propiedad de un objeto StateFull. Para la creación de un EJB stateless se usa pooling web services.
En el caso de JBOSS SEAM, este distingue 3 tipos de EJB de sesión con estado:
- Objeto Página: Guarda información mientras la página este activa. Se destruye cuando pasa un cierto tiempo o cuando el usuario a cambiado de página web.
- Objeto evento: Ocurre cuando el cliente modifica o actualiza algo en la ventana del navegador.
- Objeto conversación(Task): El cliente pone a próposito que inicie un servicio para conseguir su objetivo.
C) EJB dirigidos por mensaje (Message-driven EJBs(MDB)): : No explicado todavía.
Servicios que nos proporcionan los EJB
A) Messaging (Se trata de una comunicacion asíncrona).
B) Inyección de dependencias.
C) Pooling.
D) Thread-safely.
E) Mantenimiento del estado.
F) AOP-Interceptores. De esto se habla en otra entrada.
G) RMI (Remote Invocation Method).
H) Web Services.
I) Transacciones.
J) Seguridad (gracias a las anotaciones).
He aquí un esquema y su relación con las aplicaciones J2EE:
1 comentario:
solamente en la comunicación remota (no en la creación) de EJBs statefull se usan llamadas RMI.
La creación=ciclo de vida(lifecycle) de EJBS es responsabilidad del contenedor de EJB. Y más o menos es crear un objeto nuevo myEjb=new MiEjbb(), y mantenerlo interceptado para gestión/inyección de los servicios j2ee
Los comentarios sobre el seam están un poco raros... son son tipos de EJB de session diferentes, sino que gestiona de forma ligeramente diferente el ciclo de vida de los ejbs para crear nuevos ámbitos/scopes tales como conversación, pagina, longrunning conversation ...
Publicar un comentario