Diferența dintre EJB2 și EJB3

Diferența dintre EJB2 și EJB3
Diferența dintre EJB2 și EJB3

Video: Diferența dintre EJB2 și EJB3

Video: Diferența dintre EJB2 și EJB3
Video: Grătar, cuptor și plită 2024, Septembrie
Anonim

EJB2 vs EJB3

EJB (Enterprise JavaBeans) este un Java API (Application Programming Interface) care se găsește în specificația Java EE (Java Platform, Enterprise Edition). EJB descrie un model arhitectural pentru dezvoltarea aplicațiilor de întreprindere. Acesta este un model administrat pe partea de server care este capabil să surprindă logica de afaceri a aplicației de întreprindere. IBM este creatorul original al EJB, care l-a dezvoltat în 1997. Sun Microsystems l-a adoptat în 1999.

Înainte de introducerea EJB, s-a constatat că soluțiile la problemele găsite în codul de afaceri back-end erau adesea reimplementate de programatori. Ca rezultat, EJB a fost introdus pentru a aborda aceste probleme comune, cum ar fi persistența, integritatea tranzacțională și securitatea. EJB oferă modalități standard de a gestiona aceste probleme de back-end, prin specificarea modului în care serverul de aplicații ar trebui să proceseze tranzacțiile, să se integreze cu serviciile JPA (Java Persistence API), să gestioneze controlul concurenței, să gestioneze evenimentele JMS (Java Message Service), să rezolve problemele de denumire cu JNDI (Java Naming and Directory Interface), dezvoltați programe securizate cu JCE (Java Cryptography Extension) și JAAS (Java Authentication and Authorization Service), implementați componente, comunicați de la distanță cu RMI-IIOP (Java Remote Method Invocation interface over the Internet Inter-Orb Protocol), dezvoltați servicii web, invocați metode asincrone și utilizați serviciul Timer.

EJB2

EJB2 (EJB 2.0) a fost lansat pe 22 august 2001. Descrie specificațiile pentru dezvoltarea aplicațiilor distribuite orientate pe obiecte în Java prin combinarea instrumentelor dezvoltate de diferiți furnizori. Unul dintre obiectivele majore ale EJB2 a fost acela de a permite programatorilor să dezvolte mai ușor aplicații de întreprindere, fără a fi nevoie să înțeleagă detalii de nivel scăzut, cum ar fi multi-threading și pooling de conexiuni. Un alt obiectiv a fost acela de a permite programatorilor să scrie un „Bean” o dată și să ruleze oriunde fără recompilare (aderând la sloganul „scrie o dată, rulează oriunde” al limbajului de programare Java). În plus, EJB2 a intenționat să permită componentelor dezvoltate de diferiți furnizori să interopere cu ușurință și să permită furnizorilor să scrie extensii pentru produsele lor care pot accepta EJB-uri.

EJB3

EJB3 (EJB 3.0) a fost lansat pe 11 mai 2006. EJB3 a făcut viața programatorilor foarte ușoară, permițându-le să folosească adnotări în locul descriptorilor de implementare care au fost utilizați în versiunile anterioare. EJB3 conține o interfață de afaceri și un bean specific de entitate care poate implementa acea interfață de afaceri, eliminând necesitatea utilizării interfețelor de acasă/la distanță și a fișierului ejb-jar.xml. Performanța generală a EJB3 este mult îmbunătățită în comparație cu EJB2 și există o creștere considerabilă a configurabilității, flexibilității și portabilității în această versiune a EJB.

Care este diferența dintre EJB2 și EJB3?

EJB3 are o îmbunătățire vizibilă în configurație și performanță față de EJB2. Un motiv pentru această îmbunătățire a performanței este utilizarea POJO (Plain Old Java Object) cu metadate și descriptori de implementare XML de către EJB3 în loc de căutări JNDI utilizate în EJB2 pentru referințe la obiecte. Configurarea lui EJB3 este mult mai simplă, deoarece programatorul nu trebuie să implementeze interfețe Home/Remote și altele (de exemplu, SessionBean), ceea ce elimină nevoia de a utiliza metode de apel invers în container (cum ar fi ejbActivate și ejbStore).

În plus, EJB3 este mai bun decât EJB2 în domeniile flexibilității și portabilității. De exemplu, este ușor să convertiți entitățile EJB3 în DAO (Data Access Object) și invers, deoarece entitățile EJB3 sunt ușoare (spre deosebire de entitățile grele EJB2, care implementează interfețele menționate mai sus). Interogările bazei de date scrise în EJB3 sunt foarte flexibile deoarece utilizează un EJB-QL rafinat, în locul versiunii mai vechi de EJB-QL, care avea câteva limitări. EJB3 elimină toate problemele de portabilitate ale EJB2 (care folosește bean-uri entități pentru accesul la baza de date) prin sprijinirea JPA mai generalizată pentru toate tranzacțiile de date.

Spre deosebire de EJB2, care are nevoie de un container EJB pentru a fi executat, EJB3 poate fi executat într-o JVM independentă (Java Virtual Machine) fără a fi nevoie să folosească containere (acest lucru este posibil deoarece nu implementează interfețe standard). Spre deosebire de EJB2, EJB3 este ușor de conectat cu furnizorii de persistență oferiți de terți. O altă diferență importantă între EJB3 și EJB2 este că EJB3 poate folosi securitatea bazată pe adnotări, în timp ce EJB2 a folosit securitatea bazată pe descriptori de implementare. Aceasta înseamnă că sarcinile de configurare și setare sunt mult mai ușoare în EJB3 și există o reducere considerabilă a costurilor generale de performanță în comparație cu EJB2.

Recomandat: