Diferencia entre EJB2 y EJB3

Diferencia entre EJB2 y EJB3
Diferencia entre EJB2 y EJB3

Video: Diferencia entre EJB2 y EJB3

Video: Diferencia entre EJB2 y EJB3
Video: Funciones del Grill y Horno - INDURAMA 2024, Septiembre
Anonim

EJB2 frente a EJB3

EJB (Enterprise JavaBeans) es una API (Interfaz de programación de aplicaciones) de Java 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 transacciones, integrarse con servicios JPA (API de persistencia de Java), manejar el control de concurrencia, manejar eventos JMS (Java Message Service), resolver problemas de nombres con JNDI (Java Naming and Directory Interface), desarrolle programas seguros con JCE (Java Cryptography Extension) y JAAS (Java Authentication and Authorization Service), implemente componentes, comuníquese de forma remota con RMI-IIOP (Java Remote Method Invocation interface over the Internet Inter-Orb Protocol), desarrollar servicios web, invocar métodos asincrónicos y utilizar 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 los detalles de bajo nivel, como los subprocesos múltiples y la 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 eslogan "escribir una vez, ejecutar en cualquier lugar" del lenguaje de programación Java). Además, EJB2 pretendía permitir que los componentes desarrollados por diferentes proveedores interoperaran fácilmente y permitir a los proveedores escribir extensiones para sus productos que admitieran EJB.

EJB3

EJB3 (EJB 3.0) se lanzó el 11 de mayo de 2006. EJB3 facilitó mucho la vida de los programadores al permitirles usar anotaciones en lugar de los descriptores de implementación que se usaban en versiones anteriores. EJB3 contiene una interfaz comercial y un bean de entidad específico que puede implementar esa interfaz comercial, eliminando la necesidad de usar 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 con respecto a EJB2. Una de las razones de esta mejora del rendimiento es el uso de POJO (Plain Old Java Object) con metadatos y descriptores de implementación XML por parte de 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 contenedores (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 pesadas, 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 acceder 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 puede ejecutarse en una JVM (Java Virtual Machine) independiente sin tener que usar contenedores (esto es posible porque no implementa interfaces estándar). A diferencia de EJB2, EJB3 se conecta fácilmente con proveedores de persistencia ofrecidos por terceros. Otra diferencia importante entre EJB3 y EJB2 es que EJB3 puede usar seguridad basada en anotaciones, mientras que EJB2 usaba seguridad basada en descriptores de implementación. Esto significa que las tareas de configuración y configuración son mucho más sencillas en EJB3 y hay una reducción considerable en los gastos generales de rendimiento en comparación con EJB2.

Recomendado: