Diferencia Entre EJB2 Y EJB3

Diferencia Entre EJB2 Y EJB3
Diferencia Entre EJB2 Y EJB3

Vídeo: Diferencia Entre EJB2 Y EJB3

Vídeo: Diferencia Entre EJB2 Y EJB3
Vídeo: Working with EJB3 (EJB Tutorial Part 2) 2024, Marzo
Anonim

EJB2 frente a EJB3

EJB (Enterprise JavaBeans) es una API de Java (Interfaz de programación de aplicaciones) que se encuentra dentro de la especificación Java EE (Java Platform, Enterprise Edition). EJB describe un modelo arquitectónico para el desarrollo de aplicaciones empresariales. Este es un modelo administrado del lado del servidor que puede capturar la lógica comercial de la aplicación empresarial. IBM es el creador original de EJB que lo desarrolló en 1997. Sun Microsystems lo adoptó en 1999.

Antes de la introducción de EJB, se descubrió que los programadores volvían a implementar con frecuencia las soluciones a los problemas encontrados en el código comercial de back-end. Como resultado, se introdujo EJB para abordar estos problemas comunes como la persistencia, la integridad transaccional y la seguridad. EJB proporciona formas estándar de manejar estos problemas de back-end, especificando cómo el servidor de aplicaciones debe procesar las transacciones, integrarse con los servicios JPA (API de persistencia de Java), manejar el control de concurrencia, manejar los eventos de JMS (Servicio de mensajes de Java), resolver problemas de nombres con JNDI (Java Naming and Directory Interface), desarrollar programas seguros con JCE (Java Cryptography Extension) y JAAS (Java Authentication and Authorization Service), implementar componentes, comunicarse de forma remota con RMI-IIOP (Java Remote Method Invocation Interface over the Internet Inter-Orb Protocol),Desarrolle servicios web, invoque métodos asincrónicos y utilice el servicio Timer.

EJB2

EJB2 (EJB 2.0) se publicó el 22 de agosto de 2001. Describe la especificación para desarrollar aplicaciones distribuidas orientadas a objetos en Java mediante la combinación de herramientas desarrolladas por diferentes proveedores. Uno de los principales objetivos de EJB2 era permitir a los programadores desarrollar aplicaciones empresariales más fácilmente sin tener que comprender detalles de bajo nivel, como multihilo y agrupación de conexiones. Otro objetivo era permitir a los programadores escribir un "Bean" una vez y ejecutarlo en cualquier lugar sin volver a compilarlo (siguiendo el lema "escribir una vez, ejecutar en cualquier lugar" del lenguaje de programación Java). Además, EJB2 tenía la intención de permitir que los componentes desarrollados por diferentes proveedores interoperen fácilmente y permitir que los proveedores escriban extensiones para sus productos que puedan admitir EJB.

EJB3

EJB3 (EJB 3.0) fue lanzado el 11 de mayo de 2006. EJB3 facilitó mucho la vida de los programadores al permitirles usar anotaciones en lugar de descriptores de implementación que se usaban en versiones anteriores. EJB3 contiene una interfaz empresarial y un bean de entidad específico que puede implementar esa interfaz empresarial, eliminando la necesidad de utilizar interfaces domésticas / remotas y el archivo ejb-jar.xml. El rendimiento general de EJB3 ha mejorado mucho en comparación con EJB2, y hay un aumento considerable en la capacidad de configuración, flexibilidad y portabilidad en esta versión de EJB.

¿Cuál es la diferencia entre EJB2 y EJB3?

EJB3 tiene una mejora notable en la configuración y el rendimiento sobre EJB2. Una razón para esta mejora del rendimiento es el uso de POJO (Plain Old Java Object) con metadatos y descriptores de implementación XML por EJB3 en lugar de las búsquedas JNDI utilizadas en EJB2 para referencias de objetos. La configuración de EJB3 es mucho más simple porque el programador no necesita implementar interfaces Home / Remote y otras (por ejemplo, SessionBean), lo que elimina la necesidad de utilizar métodos de devolución de llamada de contenedor (como ejbActivate y ejbStore).

Además, EJB3 es mejor que EJB2 en las áreas de flexibilidad y portabilidad. Por ejemplo, es fácil convertir entidades EJB3 a DAO (objeto de acceso a datos) y viceversa porque las entidades EJB3 son livianas (a diferencia de las entidades EJB2 de peso pesado, que implementan las interfaces mencionadas anteriormente). Las consultas de base de datos escritas en EJB3 son muy flexibles porque utiliza un EJB-QL refinado, en lugar de la versión anterior de EJB-QL, que tenía varias limitaciones. EJB3 elimina todos los problemas de portabilidad de EJB2 (que utiliza beans de entidad para el acceso a la base de datos) al admitir JPA más generalizado para todas las transacciones de datos.

A diferencia de EJB2, que necesita un contenedor EJB para ejecutarse, EJB3 se puede ejecutar en una JVM independiente (Java Virtual Machine) sin tener que usar contenedores (esto es posible porque no implementa interfaces estándar). A diferencia de EJB2, EJB3 se puede conectar fácilmente con proveedores de persistencia ofrecidos por terceros. Otra diferencia importante entre EJB3 y EJB2 es que EJB3 puede utilizar seguridad basada en anotaciones, mientras que EJB2 utiliza seguridad basada en descriptores de despliegue. Esto significa que las tareas de configuración y configuración son mucho más fáciles en EJB3, y hay una reducción considerable en los gastos generales de rendimiento en comparación con EJB2.

Recomendado: