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: Java EE 123: EJB 1: Что такое EJB 2024, Marzo
Anonim

EJB2 contro EJB3

EJB (Enterprise JavaBeans) è un'API Java (Application Programming Interface) che si trova nella specifica Java EE (Java Platform, Enterprise Edition). EJB descrive un modello di architettura per lo sviluppo di applicazioni aziendali. Si tratta di un modello lato server gestito in grado di acquisire la logica di business 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 reimplementate dai programmatori. Di conseguenza, EJB è stato introdotto per risolvere questi problemi comuni come la persistenza, l'integrità delle transazioni 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 multi-threading e il pool di connessioni. Un altro obiettivo era quello di consentire ai programmatori di scrivere un "Bean" una sola volta ed eseguirlo ovunque senza ricompilazione (aderendo allo slogan "scrivi una volta, esegui 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 EJB.

EJB3

EJB3 (EJB 3.0) è stato rilasciato l'11 maggio 2006. EJB3 ha reso la vita dei programmatori molto facile consentendo loro di utilizzare le annotazioni al posto dei descrittori di distribuzione utilizzati nelle versioni precedenti. EJB3 contiene un'interfaccia aziendale e un bean 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 notevolmente migliorate rispetto a EJB2 e in questa versione di EJB si registra un notevole aumento di configurabilità, flessibilità e portabilità.

Qual è la differenza tra EJB2 e EJB3?

EJB3 presenta un notevole miglioramento nella configurazione e nelle prestazioni rispetto a EJB2. Una ragione per questo miglioramento delle prestazioni è l'uso di POJO (Plain Old Java Object) con metadati e descrittori di distribuzione XML da EJB3 invece delle ricerche JNDI utilizzate in EJB2 per riferimenti a oggetti. La configurazione di EJB3 è molto più semplice perché il programmatore non ha bisogno di implementare interfacce Home / Remote e altre (es. SessionBean), il che elimina la necessità di utilizzare metodi di callback del contenitore (come 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 perché le entità EJB3 sono leggere (al contrario delle entità EJB2 pesanti, che implementano le interfacce sopra menzionate). Le query al 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 i bean di entità per l'accesso al database) supportando un JPA più generalizzato per tutte le transazioni di dati.

A differenza di EJB2, che necessita di un contenitore EJB per essere eseguito, EJB3 può essere eseguito in una JVM (Java Virtual Machine) indipendente senza dover utilizzare contenitori (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 e EJB2 è che EJB3 può utilizzare la sicurezza basata sull'annotazione, mentre EJB2 utilizza la sicurezza basata sui descrittori di distribuzione. Ciò significa che le attività di configurazione e impostazione sono molto più semplici in EJB3 e vi è una notevole riduzione dei costi generali delle prestazioni rispetto a EJB2.

Raccomandato: