fbpx
Wikipedia

Enterprise JavaBeans

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).

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
Sitio web oficial
Repositorio de código
Arquitectura básica de EJB2.

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

Los EJB proporcionan un modelo de componentes distribuido estándar del lado del servidor. El objetivo de los EJB es dotar al programador de un modelo que le permita abstraerse de los problemas generales de una aplicación empresarial (concurrencia, transacciones, persistencia, seguridad, etc.) para centrarse en el desarrollo de la lógica de negocio en sí. El hecho de estar basado en componentes permite que éstos sean flexibles y sobre todo reutilizables.

No hay que confundir los Enterprise JavaBeans con los JavaBeans. Los JavaBeans también son un modelo de componentes creado por Oracle - Sun Microsystems para la construcción de aplicaciones, pero no pueden utilizarse en entornos de objetos distribuidos al no soportar nativamente la invocación remota (RMI).

Tipos de EJB

Existen tres tipos de EJB:

  1. EJB de Entidad (Entity EJB): su objetivo es encapsular los objetos del lado del servidor que almacena los datos. Los EJB de entidad presentan la característica fundamental de la persistencia: (nota: en la documentación de Java para JEE 5.0, los entity beans desaparecen, porque son remplazados por Java Persistence API o JPA)[1]
    • Persistencia gestionada por el contenedor (CMP): el contenedor se encarga de almacenar y recuperar los datos del objeto de entidad mediante el mapeo o vinculación de las columnas de una tabla de la base de datos con los atributos del objeto.
    • Persistencia gestionada por el bean (BMP): el propio objeto entidad se encarga, mediante una base de datos u otro mecanismo, de almacenar y recuperar los datos a los que se refiere, por lo cual la responsabilidad de implementar los mecanismos de persistencia es del programador.
  2. EJB de Sesión (Session EJB): gestionan el flujo de la información en el servidor. Generalmente sirven a los clientes como una fachada de los servicios proporcionados por otros componentes disponibles en el servidor. Puede haber dos tipos:
    • Con estado (stateful): en un bean de sesión con estado, las variables de instancia del bean almacenan datos específicos obtenidos durante la conexión con el cliente. Cada bean de sesión con estado, por tanto, almacena el estado conversacional de un cliente que interactúa con el bean. Este estado conversacional se modifica conforme el cliente va realizando llamadas a los métodos de negocio del bean. El estado conversacional no se guarda cuando el cliente termina la sesión.
    • Sin estado (stateless): los beans de sesión sin estado son objetos distribuidos que carecen de estado asociado 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.
  3. EJB Dirigidos por Mensajes (Message-driven EJB): son los únicos beans con funcionamiento asíncrono. Usando el Java Messaging System (JMS), se suscriben a un tema (topic) o a una cola (queue) y se activan al recibir un mensaje dirigido a dicho tema o cola. No requieren de su instanciación por parte del cliente.

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

  1. Java Sun Documentación JEE 5.0 (en inglés).

Bibliografía

Véase también

Enlaces externos

  • Página de Sun sobre EJB
  • Ejemplo sencillo de EJB
  • Página sobre EJB2 en Español
  • Tutorial de introducción a EJB 3.1
  •   Datos: Q742961

enterprise, javabeans, debe, confundirse, javabeans, también, conocidas, siglas, interfaces, programación, aplicaciones, forman, parte, estándar, construcción, aplicaciones, empresariales, j2ee, ahora, oracle, corporation, inicialmente, desarrollado, microsyst. No debe confundirse con JavaBeans Las Enterprise JavaBeans tambien conocidas por sus siglas EJB son una de las interfaces de programacion de aplicaciones API que forman parte del estandar de construccion de aplicaciones empresariales J2EE ahora JEE de Oracle Corporation inicialmente desarrollado por Sun Microsystems Enterprise JavaBeansParte de Java EEInformacion generalTipo de programaAplicaciones de NegocioDesarrolladorOracle Sun MicrosystemsLicenciaOpen SourceIdiomasTodosInformacion tecnicaProgramado enJavaPlataformas admitidasJava EEVersionesUltima version estable3 2 EnlacesSitio web oficial Repositorio de codigo editar datos en Wikidata Arquitectura basica de EJB2 Su especificacion detalla como los servidores de aplicaciones proveen objetos desde el lado del servidor que son precisamente los EJB Comunicacion remota utilizando CORBA Transacciones Control de la concurrencia Eventos utilizando JMS Java Messaging Service Servicios de nombres y de directorio Seguridad Ubicacion de componentes en un servidor de aplicaciones La especificacion de EJB define los papeles jugados por el contenedor de EJB y los EJB ademas de disponer los EJB en un contenedor Indice 1 Definicion 2 Tipos de EJB 3 Funcionamiento de un Enterprise JavaBean 3 1 Interfaz Home 3 2 Interfaz remota 3 3 Clase de implementacion EJB 3 3 1 Correspondencia entre metodos de interfaz y metodos de implementacion 4 Historia de los EJB 5 Notas y referencias 6 Bibliografia 7 Vease tambien 8 Enlaces externosDefinicion EditarLos EJB proporcionan un modelo de componentes distribuido estandar del lado del servidor El objetivo de los EJB es dotar al programador de un modelo que le permita abstraerse de los problemas generales de una aplicacion empresarial concurrencia transacciones persistencia seguridad etc para centrarse en el desarrollo de la logica de negocio en si El hecho de estar basado en componentes permite que estos sean flexibles y sobre todo reutilizables No hay que confundir los Enterprise JavaBeans con los JavaBeans Los JavaBeans tambien son un modelo de componentes creado por Oracle Sun Microsystems para la construccion de aplicaciones pero no pueden utilizarse en entornos de objetos distribuidos al no soportar nativamente la invocacion remota RMI Tipos de EJB EditarExisten tres tipos de EJB EJB de Entidad Entity EJB su objetivo es encapsular los objetos del lado del servidor que almacena los datos Los EJB de entidad presentan la caracteristica fundamental de la persistencia nota en la documentacion de Java para JEE 5 0 los entity beans desaparecen porque son remplazados por Java Persistence API o JPA 1 Persistencia gestionada por el contenedor CMP el contenedor se encarga de almacenar y recuperar los datos del objeto de entidad mediante el mapeo o vinculacion de las columnas de una tabla de la base de datos con los atributos del objeto Persistencia gestionada por el bean BMP el propio objeto entidad se encarga mediante una base de datos u otro mecanismo de almacenar y recuperar los datos a los que se refiere por lo cual la responsabilidad de implementar los mecanismos de persistencia es del programador EJB de Sesion Session EJB gestionan el flujo de la informacion en el servidor Generalmente sirven a los clientes como una fachada de los servicios proporcionados por otros componentes disponibles en el servidor Puede haber dos tipos Con estado stateful en un bean de sesion con estado las variables de instancia del bean almacenan datos especificos obtenidos durante la conexion con el cliente Cada bean de sesion con estado por tanto almacena el estado conversacional de un cliente que interactua con el bean Este estado conversacional se modifica conforme el cliente va realizando llamadas a los metodos de negocio del bean El estado conversacional no se guarda cuando el cliente termina la sesion Sin estado stateless los beans de sesion sin estado son objetos distribuidos que carecen de estado asociado permitiendo por tanto que se los acceda concurrentemente No se garantiza que los contenidos de las variables de instancia se conserven entre llamadas al metodo EJB Dirigidos por Mensajes Message driven EJB son los unicos beans con funcionamiento asincrono Usando el Java Messaging System JMS se suscriben a un tema topic o a una cola queue y se activan al recibir un mensaje dirigido a dicho tema o cola No requieren de su instanciacion por parte del cliente Funcionamiento de un Enterprise JavaBean EditarLos EJB se disponen en un contenedor EJB dentro del servidor de aplicaciones La especificacion describe como el EJB interactua con su contenedor y como el codigo cliente interactua con la combinacion del EJB y el contenedor Cada EJB debe facilitar una clase de implementacion Java y dos interfaces Java El contenedor EJB creara instancias de la clase de implementacion Java para facilitar la implementacion EJB Las interfaces Java son utilizadas por el codigo cliente del EJB Las dos interfaces conocidas como interfaz home e interfaz remota especifican las firmas de los metodos remotos del EJB Los metodos remotos se dividen en dos grupos metodos que no estan ligados a una instancia especifica por ejemplo aquellos utilizados para crear una instancia EJB o para encontrar una entidad EJB existente Estos metodos se declaran en la interfaz home metodos ligados a una instancia especifica 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 actuaran como un proxy en el cliente El cliente invoca un metodo en los proxies generados que a su vez situa los argumentos metodo en un mensaje y envia dicho mensaje al servidor EJB Los proxies usan RMI IIOP para comunicarse con el servidor EJB El servidor llamara a un metodo correspondiente a una instancia de la clase de implementacion Java para manejar la llamada del metodo remoto Interfaz Home Editar La interfaz Home permite al codigo cliente manipular metodos de clase del EJB que no estan asociados a ninguna instancia particular La Interfaz Home permite crear las instancias de EJB de entidad o sesion a traves del metodo create que puede ser sobrecargado La especificacion EJB 1 1 establece el tipo de metodos de clase que se pueden definir como metodos que crean un EJB o para encontrar un EJB existente si es un bean de entidad La especificacion EJB 2 0 permite a los desarrolladores de aplicaciones definir nuevos metodos de clase sin limitarse a su sola creacion o borrado Interfaz remota Editar La interfaz remota especifica los metodos de instancia publicos encargados de realizar las operaciones Una sesion 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 maquina 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 como pasar llamadas a procedimientos remotos RPCs al servidor Este tipo de interfaz es tambien un POJO Clase de implementacion EJB Editar Las clases de implementacion EJB las suministran los desarrolladores de aplicaciones que facilitan la logica de negocio business logic o mantienen los datos business data de la interfaz de objeto esto es implementan todos los metodos especificados por la interfaz remota y posiblemente algunos de los especificados por la interfaz home Correspondencia entre metodos de interfaz y metodos de implementacion Editar Las llamadas al metodo en la interfaz home se remiten al metodo correspondiente de la clase de implementacion del bean con el prefijo ejb anadido y con la primera letra de la interfaz home convertida en mayuscula y manteniendo exactamente el mismo tipo de argumentos Por ejemplo create gt ejbCreate Las llamadas a metodos en la interfaz remota se remiten al metodo de implementacion correspondiente del mismo nombre y argumentos en la clase del bean La complejidad ciclomatica de las unidades semanticas de navegacion Navigation Semantic Unit NSU no cumplen el estandar UML 2 0 que recomienda el uso de screen shots sobre componentes programaticos Historia de los EJB EditarLa especificacion EJB ha ido evolucionando a la par que lo hacia la propia especificacion J2EE Las diferentes versiones que han existido hasta la fecha son EJB 1 0 la especificacion original EJB 1 1 la primera incluida dentro de J2EE EJB 2 0 incluida en J2EE 1 3 anadia las interfaces locales y los Message Driven beans EJB 2 1 incluida en la ultima revision de J2EE la 1 4 EJB 3 0 Ahora con Cluster y esta incluida en JEE 5 1 EJB 3 1 incluida en lo nuevo de JavaEE 6 en diciembre de 2009 La nueva especificacion de EJB 3 0 simplifica el proceso de creacion de EJB y facilita la implementacion de la persistencia de una nueva manera por medio de la API JPA Esta especificacion esta disponible en la nueva version de J2EE renombrada JEE 5 0 Notas y referencias Editar Java Sun Documentacion JEE 5 0 en ingles Bibliografia EditarEnterprise 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 amp 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 Vease tambien EditarPersistencia informatica Persistencia de objetosEnlaces externos EditarPagina de Sun sobre EJB Pagina de JBoss sobre EJB3 Ejemplo sencillo de EJB Pagina sobre EJB2 en Espanol Tutorial de introduccion a EJB 3 1 Datos Q742961 Obtenido de https es wikipedia org w index php title Enterprise JavaBeans amp oldid 138186387, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos