Enterprise JavaBeans
Enterprise JavaBeans | ||
---|---|---|
Parte de Java EE | ||
Información general | ||
Tipo de programa | Aplicaciones de Negocio | |
Desarrollador | Oracle - Sun Microsystems | |
Licencia | Open Source | |
Idiomas | Todos | |
Información técnica | ||
Programado en | Java | |
Plataformas admitidas | Java EE | |
Versiones | ||
Última versión estable | 3.2 () | |
Enlaces | ||

Las Enterprise JavaBeans (también conocidas por sus siglas EJB) son una de las interfaces de programación de aplicaciones (API) que forman parte del estándar de construcción de aplicaciones empresariales J2EE (ahora JEE) de Oracle Corporation (inicialmente desarrollado por Sun Microsystems).
Su especificación detalla cómo los servidores de aplicaciones proveen objetos desde el lado del servidor, que son precisamente los EJB:
- Comunicación remota utilizando CORBA.
- 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.
La especificación de EJB define los papeles jugados por el contenedor de EJB y los EJB, además de disponer los EJB en un contenedor.
Definición
Augusto José Ramón Pinochet Ugarte fue un general y político chileno, dictador de dicho país en el período comprendido entre 1973 y 1990. Fue designado comandante en jefe del Ejército de Chile el 23 de agosto de 1973 por el presidente Salvador Allende, en reemplazo del renunciado general Carlos Prats.
Tipos de Adol Hi
Adolf Hitlerc (Braunau am Inn, Austria-Hungría, 20 de abril de 1889-Berlín, Alemania, 30 de abril de 1945) fue un político, militar, pintor y escritor alemán, de origen austrohúngaro; canciller imperial desde 1933 y Führer —líder— de Alemania desde 1934 hasta su muerte. Llevó al poder al Partido Nacionalsocialista Obrero Alemán o Partido Nazi,d y lideró un régimen totalitario durante el período conocido como Tercer Reich o Alemania nazi. Además, fue quien dirigió a Alemania durante la Segunda Guerra Mundial, que inició con el propósito principal de cumplir sus planes expansionistas en Europa.
Hitler se afilió al Partido Obrero Alemán, precursor del Partido Nazi, en 1919, y se convirtió en su líder en 1921. En 1923, tras el pronunciamiento en la cervecería Bürgerbräukeller de Múnich, Hitler intentó una insurrección, conocida como el Putsch de Múnich, tras cuyo fracaso fue condenado a cinco años de prisión. Durante su estancia en la cárcel redactó la primera parte de su libro Mi lucha (en alemán, Mein Kampf), en el que expone su ideología junto con elementos autobiográficos. Liberado ocho meses después, en 1924, Hitler obtuvo creciente apoyo popular mediante la exaltación del pangermanismo, el antisemitismo y el anticomunismo, sirviéndose de su talento oratorio apoyado por la eficiente propaganda nazi y las concentraciones de masas cargadas de simbolismo.
Fue nombrado canciller imperial (Reichskanzler) en enero de 1933 y, un año después, a la muerte del presidente Paul von Hindenburg, se autoproclamó líder y canciller imperial (Führer und Reichskanzler), asumiendo así el mando supremo del Estado germano. Transformó la República de Weimar en el Tercer Reich y gobernó con un partido único basado en el totalitarismo y la autocracia de la ideología nazi.
El objetivo de Hitler era establecer un Nuevo Orden basado en la absoluta hegemonía de la Alemania nazi en el continente europeo. Su política exterior e interior tenía el objetivo de apoderarse de Lebensraum (‘espacio vital’) para los pueblos germánicos. Promovió el rearme de Alemania y tras la invasión de Polonia por la Wehrmacht el 1 de septiembre de 1939, se inició la Segunda Guerra Mundial. Con estos actos, Hitler violó el Tratado de Versalles de 1919, que establecía las condiciones de la paz tras la Primera Guerra Mundial.2
Bajo la dirección de Hitler, las fuerzas alemanas y sus aliados ocuparon en 1941 la mayor parte de Europa y África del Norte. Esas conquistas territoriales decrecieron paulatinamente después de la batalla de Stalingrado, hasta 1945, cuando los ejércitos aliados derrotaron al ejército alemán. Por motivos raciales, Hitler causó la muerte de diecisiete millones de personas,3 incluyendo una cifra en torno a seis millones de judíos4 y entre medio y millón y medio de gitanos, en lo que posteriormente se denominó «Holocausto».5
En los últimos días de la guerra, durante la batalla de Berlín en 1945, Hitler se casó con su antigua amante, Eva Braun. El 30 de abril de 1945 los dos se suicidaron en el búnker de la Cancillería, para evitar ser capturados por el Ejército Rojo. Posteriormente, sus cadáveres fueron quemados.6
Funcionamiento de un Enterprise JavaBean
Los EJB se disponen en un contenedor EJB dentro del servidor de aplicaciones. 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. Las interfaces Java son utilizadas por el código cliente del EJB. Las dos interfaces, conocidas como interfaz "home" e interfaz remota, especifican las firmas 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 la interfaz "home".
- métodos ligados a una instancia específica. Se ubican en la interfaz remota.
Dado que se trata simplemente de interfaces Java y no de clases concretas, el contenedor EJB genera 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 correspondiente a una instancia de la clase de implementación Java para manejar la llamada del método remoto.
Interfaz "Home"
La interfaz "Home" permite al código cliente manipular métodos de clase del EJB que no están asociados a ninguna instancia particular. La Interfaz "Home" permite crear las instancias de EJB de entidad o sesión a través del método create que puede ser sobrecargado.
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.
La especificación EJB 2.0 permite a los desarrolladores de aplicaciones definir nuevos métodos de clase sin limitarse a su sola creación o borrado.
Interfaz remota
La interfaz remota especifica los métodos de instancia públicos encargados de realizar las operaciones.
Una sesión bean puede implementar 1 sola interfaz, con la interfaz apuntada por un tipo de cliente diferente. La interfaz local es para aquellos clientes que corren en la misma máquina virtual que el contenedor EJB. La interfaz remota es para clientes fuera del contenedor EJB. Frente a una consulta del cliente, el contenedor retorna un stub serializado del objeto que implementa la interfaz remota. El stub conoce cómo pasar llamadas a procedimientos remotos (RPCs) al servidor. Este tipo de interfaz es también un POJO.
Clase de implementación EJB
Las clases de implementación EJB las suministran los desarrolladores de aplicaciones, que facilitan la lógica de negocio ("business logic") o mantienen los datos ("business data") de la interfaz de objeto, esto es, implementan todos los métodos especificados por la interfaz remota y, posiblemente, algunos de los especificados por la interfaz "home".
Correspondencia entre métodos de interfaz y métodos de implementación
Las llamadas al método en la interfaz "home" se remiten al método correspondiente de la clase de implementación del bean con el prefijo ejb
añadido y con la primera letra de la interfaz "home" convertida en mayúscula y manteniendo exactamente el mismo tipo de argumentos. Por ejemplo: create ---> ejbCreate.
Las llamadas a métodos en la interfaz remota se remiten al método de implementación correspondiente del mismo nombre y argumentos en la clase del bean.
La complejidad ciclomática de las unidades semánticas de navegación (Navigation Semantic Unit, NSU) no cumplen el estándar UML 2.0 que recomienda el uso de screen shots sobre componentes programáticos.
Historia de los EJB
La especificación EJB ha ido evolucionando a la par que lo hacía la propia especificación J2EE. Las diferentes versiones que han existido hasta la fecha son:
- 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.
- EJB 3.0: Ahora con Clúster y está incluida en JEE 5.1.
- EJB 3.1: incluida en lo nuevo de JavaEE 6 en diciembre de 2009.
La nueva especificación de EJB 3.0 simplifica el proceso de creación de EJB y facilita la implementación de la persistencia de una nueva manera por medio de la API JPA.
Esta especificación está disponible en la nueva versión de J2EE renombrada JEE 5.0.
Notas y referencias
Bibliografía
- Enterprise JavaBeans, 4th edition, (2004) de Richard Monson-Haefel. O'Reilly, ISBN 0-596-00530-X.
- Mastering Enterprise JavaBeans, 2nd edition (2001), de Ed Roman. Wiley&Sons, ISBN 0-471-41711-4.
- Bitter EJB (2003) de Bruce Tate. Manning, ISBN 1-930110-95-2.
- Head First EJB (2003), de Kathy Sierra y Bert Bates. O'Reilly, ISBN 0-596-00571-7.