EJB2 vs 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 del lado del servidor administrado que puede capturar la lógica empresarial 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 las soluciones a los problemas encontrados en el código de negocios de back-end eran frecuentemente implementadas nuevamente por los programadores. Como resultado, se introdujo EJB para abordar estos problemas comunes como la persistencia, la integridad transaccional y la seguridad. EJB proporciona formas estándar para manejar estos problemas de back-end, especificando cómo el servidor de aplicaciones debe procesar las transacciones, integrarse con los servicios JPA (Java Persistence API), manejar el control de concurrencia, manejar eventos JMS (Java Message Service), resolver problemas de nombres con JNDI ( Java Naming and Directory Interface), desarrolla programas seguros con JCE (Java Cryptography Extension) y JAAS (Java Autenticación y Servicio de Autorización), implementa componentes, se comunica de forma remota con RMI-IIOP (interfaz de Invocación de Método Remoto Java a través del Protocolo Inter-Orb de Internet) , desarrolle servicios web, invoque métodos asíncronos y use el servicio Timer.
EJB2
EJB2 (EJB 2.0) se lanzó el 22 de agosto de 2001. Describe las especificaciones para desarrollar aplicaciones orientadas a objetos distribuidos 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 con mayor facilidad sin tener que entender los detalles de bajo nivel, como los subprocesos múltiples y la agrupación de conexiones. Otro objetivo era permitir que los programadores escribieran un "Bean" una vez y lo ejecutaran en cualquier lugar sin recompilación (siguiendo el eslogan "escribe una vez, corre en cualquier parte" del lenguaje de programación Java). Además, EJB2 pretende permitir que los componentes desarrollados por diferentes proveedores interactúen fácilmente, y permiten que los proveedores escriban extensiones para sus productos que puedan soportar EJBs..
EJB3
EJB3 (EJB 3.0) se lanzó el 11 de mayo de 2006. EJB3 hizo que la vida de los programadores fuera muy sencilla al permitirles usar anotaciones en lugar de los descriptores de implementación que se usaron en versiones anteriores. EJB3 contiene una interfaz de negocios y un bean de entidad específico que puede implementar esa interfaz de negocios, eliminando la necesidad de usar interfaces de inicio / 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 de rendimiento es el uso de POJO (objeto Java antiguo llano) con metadatos y descriptores de implementación XML por EJB3 en lugar de búsquedas JNDI usadas en EJB2 para referencias de objetos. La configuración de EJB3 es mucho más sencilla porque el programador no necesita implementar interfaces Home / Remote y otras (por ejemplo, SessionBean), lo que elimina la necesidad de usar métodos de devolución de llamada del 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 las entidades EJB3 a DAO (objeto de acceso a datos) y viceversa porque las entidades EJB3 son ligeras (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 el acceso a la base de datos) al admitir una APP más generalizada 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 es fácilmente conectable 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 utilizó descriptores de implementación basados en seguridad. 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.