Differenza tra EJB2 e EJB3

Anonim

EJB2 vs EJB3

EJB (Enterprise JavaBeans) è un Java API (Application Programming Interface) (Java Platform, Enterprise Edition). EJB descrive un modello architettonico per lo sviluppo delle applicazioni aziendali. Questo è un modello lato server gestito che è in grado di catturare la logica aziendale dell'applicazione aziendale. IBM è il creatore originale di EJB che lo ha sviluppato nel 1997. Sun Microsystems l'ha adottata nel 1999.

Prima dell'introduzione di EJB, si è scoperto che le soluzioni ai problemi trovate nel codice di business back-end sono state spesso reimpostate dai programmatori. Di conseguenza, EJB è stato introdotto per affrontare questi problemi comuni come la persistenza, l'integrità transazionale e la sicurezza. EJB fornisce i modi standard per gestire questi problemi di back end, specificando come il server applicazioni deve elaborare le transazioni, integrarsi con i servizi JPA (Java Persistence API), gestire il controllo di concorrenza, gestire gli eventi JMS (Java Message Service), risolvere problemi di denominazione con JNDI (Java Naming e Directory Interface), sviluppare programmi protetti con JCE (Java Cryptography Extension) e JAAS (Java Authentication and Authorization Service), distribuire componenti, comunicare in remoto con RMI-IIOP (Java Remote Method Invocation interfaccia sul Internet Inter-Orb Protocol), sviluppare servizi web, richiamare 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 a oggetti in Java combinando strumenti sviluppati da diversi fornitori. Uno degli obiettivi principali di EJB2 è stato quello di consentire ai programmatori di sviluppare le applicazioni aziendali più facilmente senza dover comprendere dettagli di basso livello, come il multi-threading e il pool di connessioni. Un altro obiettivo era quello di permettere ai programmatori di scrivere un "Bean" una volta e eseguire ovunque senza ricompilare (aderendo al slogan di "write once, run anywhere" del linguaggio di programmazione Java). Inoltre, EJB2 intende permettere ai componenti sviluppati da diversi fornitori di interagire facilmente e consentire ai fornitori di scrivere estensioni per i loro prodotti in grado di supportare EJB.

EJB3 (EJB 3. 0) è stato rilasciato l'11 maggio 2006. EJB3 ha reso molto facile la vita dei programmatori permettendo loro di utilizzare annotazioni in luogo dei descrittori di distribuzione utilizzati nei precedenti versioni. EJB3 contiene un'interfaccia aziendale e un bean di entità specifico che può implementare l'interfaccia aziendale, eliminando la necessità di utilizzare le interfacce home / remote e l'ejb-jar. file xml. La performance complessiva di EJB3 è molto migliorata rispetto a EJB2 e vi è un notevole aumento della configurabilità, della flessibilità e della 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. Una delle ragioni di questo miglioramento delle prestazioni è l'utilizzo del POJO (semplice vecchio oggetto Java) con metadati e descrittori di distribuzione XML da parte di EJB3 anziché di ricerca di JNDI utilizzati in EJB2 per riferimenti agli oggetti. La configurazione di EJB3 è molto più semplice perché il programmatore non ha bisogno di implementare interfacce Home / Remote e altri (ad esempio SessionBean), che elimina la necessità di utilizzare metodi di callback dei container (ad esempio ejbActivate e ejbStore).

Inoltre, EJB3 è migliore di EJB2 nelle aree di flessibilità e portabilità. Ad esempio, è facile convertire entità EJB3 in DAO (Data Access Object) e viceversa poiché le entità EJB3 sono leggere (a differenza delle entità EJB2 dei pesi massimi che implementano le interfacce sopra citate). Le query di database scritte in EJB3 sono molto flessibili perché utilizzano un raffinato EJB-QL, al posto della versione precedente di EJB-QL, che aveva diverse limitazioni. EJB3 rimuove tutti i problemi di portabilità di EJB2 (che usano i fagiali di entità per l'accesso al database), sostenendo il JPA più generalizzato per tutte le transazioni di dati.

A differenza di EJB2, che necessita di un contenitore EJB da eseguire, EJB3 può essere eseguito in un JVM indipendente (Java Virtual Machine) senza dover utilizzare i contenitori (questo è possibile perché non implementa interfacce standard). A differenza di EJB2, EJB3 è facilmente inseribile con i fornitori di persistenza offerti da terzi. Un'altra differenza importante tra EJB3 e EJB2 è che EJB3 può utilizzare la sicurezza basata su annotazioni, mentre EJB2 ha utilizzato la sicurezza basata sui descrittori di implementazione. Ciò significa che le operazioni di configurazione e di configurazione sono molto più facili in EJB3 e vi è una notevole riduzione dei costi generali di prestazioni rispetto a EJB2.