Enterprise JavaBeans 3

RECU-0095 (Recurso Ficha Técnica)

Descripción

Esta es la especificación de la arquitectura Enterprise JavaBeans. La arquitectura Enterprise JavaBeans es una arquitectura para el desarrollo y despliegue de aplicaciones de negocio basadas en componentes.

Las aplicaciones escritas utilizando la arquitectura Enterprise JavaBeans son escalables, transaccionales y de multiusuario seguro. Estas aplicaciones se pueden escribir una vez, y luego desplegar en cualquier plataforma de servidor que soporta la especificación de Enterprise JavaBeans.

La especificación Enterprise JavaBeans ha sido , desde su inicio, una fuente de debate dentro del mundo de desarrollo Java. 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 origina.
  • 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 Cluster 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 del api JPA.

A partir de la segunda versión, los desarrolladores decidieron abandonar el uso de EJB debido a la complejidad y las restricciones de su uso. Sin embargo, con la aparición de la nueva versión EJB 3, se ha simplificado mucho su uso.

Ventajas e inconvenientes

La arquitectura Enterprise JavaBeans 3.0 presenta una serie de mejoraras que incluyen las siguientes funcionalidades nuevas y simplificaciones a la anterior API de EJB, destinadas a facilitar el uso de Enterprise JavaBeans:

  • Definición de las anotaciones de metadatos del lenguaje Java que se pueden utilizar para anotar las aplicaciones EJB. Estas anotaciones están dirigidos a simplificar la tarea del desarrollador, a reducir el número de clases e interfaces de programa que el desarrollador está obligado a implementar y a eliminar la necesidad de que el desarrollador facilite un descriptor de despliegue de EJB.
  • Especificación de los valores por defecto de programación, incluidos los metadatos, para reducir la necesidad del desarrollador de especificar , los comportamientos comúnmente previstos y los requisitos en el contenedor EJB.
  • La encapsulación de las dependencias ambientales y el acceso JNDI mediante el uso de anotaciones, mecanismos de inyección de dependencias, y los mecanismos de búsqueda simple.
  • Simplificación de los tipos de Enterprise bean.
  • Eliminación del requerimiento de las interfaces de los componentes EJB de beans de sesión. La necesaria interfaz de negocio de un bean de sesión puede ser una simple interfaz de Java en lugar de un EJBObject, EJBLocalObject o interfaz java.rmi.Remote.
  • Eliminación del requisito de las interfaces home para los session beans.
  • Simplificación de la persistencia de entidades a traves del JPA
  • Eliminación de todos las interfaces requeridas para la persistencia de entidades.
  • Especificación , mediante anotaciones, del mapeo ORM en las entidades de persistencia.
  • Un lenguaje de consulta para la persistencia JAva que es una extensión de EJB QL , con la inclusión de operaciones join, de actualización, de borrado y añadiendo capacidad dinámica pra dar soporte a las consultas SQL nativas
  • Facilita el uso de interceptores en los beans de sesión y en los ManagedDirved Beans.
  • Reducción de los requisitos para el uso de excepciones verificadas.
  • No son necesarias las implementaciones de las interfaces de devolución de llamada.

Requisitos e incompatibilidades

Versión de Java

Servidores de aplicación

  • Websphere 6.x
  • Weblogic 9.2
  • Oracle application server 10.1.3.1.0
  • Glassfish
  • Tomcat 5.5
  • JBoss 4.2

Interacciones

  • Integración con Seam y JSF. La especificación Java EE 5 incorpora dos arquitecturas componente clave (especificaciones para la creación objetos reutilizables ) para crear aplicaciones de negocio basadas en la Web: JavaServer Faces (JSF) y Enterprise JavaBeans 3(EJB3). JSF es el marco para la presentación de la capa web que proporciona una interfaz de usuario modelo de componentes y un modelo de eventos del lado del servidor. EJB 3 es el modelo de programación estándar para la creación segura de componentes de negocio de forma escalable y del el acceso transaccional a recursos. Las arquitecturas de dos que acabamos de mencionar tienen poco semejanza, de espaldas uno frente al otro como dos caras de una moneda. Esta barrera de comunicación proyecta una sombra en el tremendo potencial de cada uno de estas tecnologías tiene. Si bien es cierto que los desarrolladores fueron capaces de obtener que trabajaran juntos, se requería una gran cantidad de código extra para hacerlas funcionar. Seam absorbe esa responsabilidad y encaja JSF y EJB 3 en conjunto, lo que lima una de las problemáticas ásperas en la especificación Java EE 5 y facilita la evolución de la plataforma Java EE
  • JPA, es la gran aportación de EJB3 para el tratamiento de la persistencia.Esta basado en gran medida en Hibernate. JPA podemos utilizarlo tanto desarrollando con JEE como con JSE, lo cual supone un gran avance con respecto a cómo se controlaba la persistencia en la versión anterior de J2EE. Cualquier programador que haya trabajado con Hibernate no tendrá ningún problema en utilizar JPA debido a su gran similitud.