EJB2 vs EJB3
EJB (Enterprise JavaBeans) este un Java API (Application Programming Interface) găsit în specificațiile Java EE (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 business back-end au fost frecvent re-implementate 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 (EJB 2.0) a fost lansat pe 22 august 2001. Acesta descrie caietul de sarcini pentru dezvoltarea de aplicații distribuite orientate pe obiecte î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 trebui să înțeleagă detaliile de nivel inferior, cum ar fi multi-threading și pooling-ul conexiunilor. Un alt scop a fost acela de a permite programatorilor să scrie o dată o "Bean" și să ruleze oriunde fără recompilare (aderând la sloganul "scrie odată, 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
EJB3 (EJB 3.0) a fost lansat pe 11 mai 2006. EJB3 a făcut programatorii viața foarte ușoară, permițându-i să folosească adnotări în locul descriptorilor de implementare folosiți în versiunile anterioare. 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 a fișierului ejb-jar.xml. 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 a performanței 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 utiliza metode de returnare a apelurilor (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 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 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 descriptori 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 generale față de EJB2.