Diferența dintre EJB2 și EJB3

Anonim

EJB2 vs EJB3

EJB (Enterprise JavaBeans) (Java Platform, Enterprise Edition). EJB descrie un model arhitectural pentru dezvoltarea de aplicații pentru întreprinderi. Acesta este un model gestionat de server, capabil să capteze logica de afaceri a aplicației enterprise. IBM este creatorul original al EJB care la dezvoltat în 1997. Sun Microsystems la adoptat în 1999.

Înainte de introducerea EJB, sa constatat că soluțiile la problemele întâlnite în codul de business back-end au fost re-implementate frecvent de către programatori. Ca rezultat, EJB a fost introdus pentru a aborda aceste probleme comune, cum ar fi persistența, integritatea tranzacțiilor și securitatea. EJB oferă modalități standard de a gestiona aceste probleme de back-end, specificând modul în care serverul de aplicații ar trebui să proceseze tranzacțiile, să integreze serviciile JPA (Java Persistence API), să gestioneze controlul concurenței, să gestioneze evenimentele JMS (Message Service) Java Naming and Interface Directory), să dezvolte programe securizate cu JCE (Java Cryptography Extension) și JAAS (Java Authentication and Authorization Service), să implementeze componente, să comunice de la distanță cu RMI-IIOP (Java Remote Method Invocation interfață pe Internet Inter-Orb Protocol), să dezvolte servicii web, să invocă metode asincrone și să utilizeze serviciul Timer.

EJB2 (EJB2.0) a fost lansat pe 22 august 2001. Acesta descrie specificațiile pentru dezvoltarea aplicațiilor distribuite în Java, prin combinarea instrumentelor dezvoltate de diferiți furnizori. Unul dintre obiectivele majore ale programului EJB2 a fost acela de a permite programatorilor să dezvolte mai ușor aplicații pentru întreprinderi fără a fi nevoiți să înțeleagă detaliile de nivel inferior, precum multi-threading și pooling-ul conexiunilor. Un alt obiectiv a fost să permită programatorilor să scrie o dată o "Bean" și să ruleze oriunde fără recompilare (aderând la sloganul "scrie o dată, alerga oriunde" din limbajul de programare Java). Mai mult, EJB2 intenționa să permită componentelor dezvoltate de diferiți furnizori să interacționeze cu ușurință și să permită vânzătorilor să scrie extensii pentru produsele lor care pot sprijini EJB-urile.

EJB3 (EJB 3 0) a fost lansat pe 11 mai 2006. EJB3 a făcut programatorii o viață foarte ușoară, permițându-i să folosească adnotări în locul descriptorilor de implementare care au fost folosiți în antecedente versiuni. EJB3 conține o interfață de afaceri și o entitate specifică de fasole care poate implementa interfața de afaceri, eliminând necesitatea utilizării interfețelor de acasă / la distanță și ejb-jar. xml fișier. Performanța generală a EJB3 este mult îmbunătățită comparativ 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 semnificativă a configurației și performanțelor față de EJB2. Unul dintre motivele acestei îmbunătățiri a performanței este utilizarea POJO (obiectul simplu Java obișnuit) cu metadate și descriptorii de implementare XML de către EJB3 în loc de căutările JNDI utilizate în EJB2 pentru referințe de obiecte. Configurarea EJB3 este mult mai simplă, deoarece programatorul nu are nevoie să implementeze interfețe de acasă / la distanță și altele (de exemplu, SessionBean), care elimină nevoia de a folosi metode de returnare a apelurilor din container (cum ar fi ejbActivate și ejbStore).

În plus, EJB3 este mai bun decât EJB2 în ceea ce privește flexibilitatea și portabilitatea. De exemplu, este ușor să convertiți entitățile EJB3 la DAO (Data Access Object) și invers, deoarece entitățile EJB3 sunt ușoare (spre deosebire de entitățile EJB2 grea, care implementează interfețele menționate mai sus). Interogările bazelor de date scrise în EJB3 sunt foarte flexibile, deoarece utilizează un EJB-QL rafinat, în locul versiunii mai vechi a EJB-QL, care a avut mai multe limitări. EJB3 elimină toate problemele legate de portabilitate ale EJB2 (care utilizează fasolea entității pentru accesarea bazei de date), prin sprijinirea APP mai generalizată pentru toate tranzacțiile de date.

Spre deosebire de EJB2, care are nevoie de un container EJB pentru a executa, EJB3 poate fi executat într-un JVM independent (Java Virtual Machine) fără a fi nevoie să folosească containerele (acest lucru este posibil deoarece nu implementează interfețe standard). Spre deosebire de EJB2, EJB3 este ușor de conectat cu furnizorii de persistență oferite de terți. O altă diferență importantă între EJB3 și EJB2 este faptul că EJB3 poate utiliza securitatea bazată pe adnotări, în timp ce EJB2 utilizează securitatea bazată pe descriptorii de implementare. Acest lucru înseamnă că sarcini de configurare și de configurare sunt mult mai ușor în EJB3, și există o reducere considerabilă a cheltuielilor de performanță în comparație cu EJB2.