Differenza tra EJB2 e EJB3

Differenza tra EJB2 e EJB3
Differenza tra EJB2 e EJB3

Video: Differenza tra EJB2 e EJB3

Video: Differenza tra EJB2 e EJB3
Video: Tostapane! Come scegliere il migliore e il più adatto fra i tanti disponibili! 2024, Settembre
Anonim

EJB2 vs EJB3

EJB (Enterprise JavaBeans) è un'API Java (Application Programming Interface) che si trova all'interno della specifica Java EE (Java Platform, Enterprise Edition). EJB descrive un modello architetturale per lo sviluppo di applicazioni aziendali. Si tratta di un modello lato server gestito in grado di acquisire la logica aziendale dell'applicazione aziendale. IBM è il creatore originale di EJB che lo ha sviluppato nel 1997. Sun Microsystems lo ha adottato nel 1999.

Prima dell'introduzione di EJB, si è riscontrato che le soluzioni ai problemi riscontrati nel codice aziendale di back-end venivano spesso re-implementate dai programmatori. Di conseguenza, EJB è stato introdotto per affrontare questi problemi comuni come la persistenza, l'integrità transazionale e la sicurezza. EJB fornisce metodi standard per gestire questi problemi di back-end, specificando come il server delle applicazioni deve elaborare le transazioni, integrarsi con i servizi JPA (Java Persistence API), gestire il controllo della concorrenza, gestire gli eventi JMS (Java Message Service), risolvere i problemi di denominazione con JNDI (Java Naming and Directory Interface), sviluppare programmi sicuri con JCE (Java Cryptography Extension) e JAAS (Java Authentication and Authorization Service), distribuire componenti, comunicare in remoto con RMI-IIOP (Java Remote Method Invocation interface over the Internet Inter-Orb Protocol), sviluppare servizi Web, invocare metodi asincroni e utilizzare il servizio Timer.

EJB2

EJB2 (EJB 2.0) è stato rilasciato il 22 agosto 2001. Descrive le specifiche per lo sviluppo di applicazioni distribuite orientate agli oggetti in Java combinando strumenti sviluppati da diversi fornitori. Uno degli obiettivi principali di EJB2 era consentire ai programmatori di sviluppare applicazioni aziendali più facilmente senza dover comprendere dettagli di basso livello, come il multithreading e il pool di connessioni. Un altro obiettivo era consentire ai programmatori di scrivere un "Bean" una volta ed eseguirlo ovunque senza ricompilazione (aderendo allo slogan "scrivi una volta, corri ovunque" del linguaggio di programmazione Java). Inoltre, EJB2 intendeva consentire ai componenti sviluppati da diversi fornitori di interagire facilmente e consentire ai fornitori di scrivere estensioni per i loro prodotti in grado di supportare gli EJB.

EJB3

EJB3 (EJB 3.0) è stato rilasciato l'11 maggio 2006. EJB3 ha semplificato la vita ai programmatori consentendo loro di utilizzare le annotazioni al posto dei descrittori di distribuzione utilizzati nelle versioni precedenti. EJB3 contiene un'interfaccia aziendale e un bean di entità specifico che può implementare tale interfaccia aziendale, eliminando la necessità di utilizzare interfacce home/remote e il file ejb-jar.xml. Le prestazioni complessive di EJB3 sono molto migliorate rispetto a EJB2 e c'è un notevole aumento di configurabilità, flessibilità e portabilità in questa versione di EJB.

Qual è la differenza tra EJB2 e EJB3?

EJB3 ha un notevole miglioramento nella configurazione e nelle prestazioni rispetto a EJB2. Uno dei motivi di questo miglioramento delle prestazioni è l'uso di POJO (Plain Old Java Object) con metadati e descrittori di distribuzione XML da parte di EJB3 invece delle ricerche JNDI utilizzate in EJB2 per i riferimenti agli oggetti. La configurazione di EJB3 è molto più semplice perché il programmatore non ha bisogno di implementare interfacce Home/Remote e altre (ad es. SessionBean), il che elimina la necessità di utilizzare metodi di callback del contenitore (come ejbActivate ed ejbStore).

Inoltre, EJB3 è migliore di EJB2 nelle aree di flessibilità e portabilità. Ad esempio, è facile convertire le entità EJB3 in DAO (Data Access Object) e viceversa perché le entità EJB3 sono leggere (al contrario delle entità EJB2 pesanti, che implementano le interfacce sopra menzionate). Le query del database scritte in EJB3 sono molto flessibili perché utilizza un EJB-QL raffinato, al posto della versione precedente di EJB-QL, che aveva diverse limitazioni. EJB3 rimuove tutti i problemi di portabilità di EJB2 (che utilizza bean di entità per l'accesso al database) supportando JPA più generalizzato per tutte le transazioni di dati.

A differenza di EJB2, che necessita di un container EJB per essere eseguito, EJB3 può essere eseguito in una JVM (Java Virtual Machine) indipendente senza dover utilizzare container (questo è possibile perché non implementa interfacce standard). A differenza di EJB2, EJB3 è facilmente collegabile a provider di persistenza offerti da terze parti. Un' altra importante differenza tra EJB3 ed EJB2 è che EJB3 può utilizzare la sicurezza basata sulle annotazioni, mentre EJB2 utilizzava la sicurezza basata sui descrittori di distribuzione. Ciò significa che le attività di configurazione e configurazione sono molto più semplici in EJB3 e c'è una notevole riduzione delle spese generali delle prestazioni rispetto a EJB2.

Consigliato: