JavaBean
La especificación Enterprise Java Beans es una de las múltiples Java APIs de la J2EE. La especificación detalla cómo los servidores de aplicaciones proveen objetos desde el lado del servidor conocidos como Enterprise java Beans o EJBs, con:
- comunicación remota utilizando CORBA - persistencia - transacciones - control de la concurrencia - eventos utilizando JMS (Java messaging service) - servicios de nombres y de directorio - seguridad - ubicación de componentes en un servidor de aplicaciones.
Además, la especificación de Enterprise Java Bean define los papeles jugados por el contenedor de EJB y los EJBs además de disponer los EJBs en un contenedor.
Los EJBs se disponen en un contenedor EJB dentro del servidor de aplicciones. La especificación describe cómo el EJB interactúa con su contenedor y cómo el código cliente interactúa con la combinación del EJB y el contenedor.
Cada EJB debe facilitar una clase de implementación Java y dos interfaces Java. El contenedor EJB creará instancias de la clase de implementación Java para facilitar la implementación EJB. Los interfaces Java son utilizados por el código cliente del EJB. Los dos interfaces, conocidos como interfaz "home" e interfaz remoto, especifican las signaturas de los métodos remotos del EJB. Los métodos remotos se dividen en dos grupos:
- métodos que no están ligados a una instancia específica, por ejemplo aquellos utilizados para crear una instancia EJB o para encontrar una entidad EJB existente. Estos métodos se declaran en el interfaz "home"
- métodos ligados a una instancia específica. Se ubican en el interfaz remoto
Dado que se trata simplemente de interfaces Java y no de clases concretas, el contenedor EJB es necesario para generar clases para esas interfaces que actuarán como un proxy en el cliente. el cliente invoca un método en los proxies generados que a su vez sitúa los argumentos método en un mensaje y envía dicho mensaje al servidor EJB. Los proxies usan RMI-IIOP para comunicarse con el servidor EJB.
El servidor llamará a un método corresponidente a una instancia de la clase de implementación Java para manejar la llamada del método remoto. La imagen muestra un cliente Java típico interactuando remotamenet con un EJB en su contenedor EJB utilizando llamadas al método remoto y mensajes JMS.
( NOTA: INCLUIR CUANDO SEA POSIBLE EL GRÁFICO UBICADO EN http://en.wikipedia.org/wiki/JavaBeans con sus textos adecuadamente traducidos )
Interface Home
Como indicamos anteriormente, el interface "home" permite al código cliente manipular ciertos métodos de clase del EJB, esto es, métodos que no están asociados a ninguna instancia particular.
La especificación EJB 1.1 establece el tipo de métodos de clase que se pueden definir como métodos que crean un EJB o para encontrar un EJB existente si es un "bean" de entidad.