EJB2 vs EJB3
EJB (Enterprise JavaBeans) je Java API (aplikacijsko programsko sučelje) koji se nalazi unutar specifikacije Java EE (Java Platform, Enterprise Edition). EJB opisuje arhitektonski model razvoja poslovnih aplikacija. Ovo je upravljani model na strani poslužitelja koji može uhvatiti poslovnu logiku poslovne aplikacije. IBM je originalni tvorac EJB-a koji ga je razvio 1997. Sun Microsystems usvojio je 1999. godine.
Prije uvođenja EJB, otkriveno je da programeri često ponavljaju rješenja za probleme pronađene u poslovnom kodu. Kao rezultat toga, EJB je uveden za rješavanje ovih uobičajenih problema kao što su upornost, transakcijski integritet i sigurnost. EJB pruža standardne načine rješavanja ovih problema na kraju, specificirajući kako aplikacijski poslužitelj treba obraditi transakcije, integrirati se s JPA (Java Persistent API) uslugama, upravljati kontrolom istodobnosti, upravljati JMS (Java Message Service) događajima, rješavati probleme s imenovanjem JNDI ( Java Nameing i imenik sučelje), razvijte sigurne programe s JCE (Java Cryptography Extension) i JAAS (Java Authentication and Autization Service), razmjestite komponente, komunicirajte na daljinu s RMI-IIOP (Java Remote Method Invocation sučelje preko internetskog protokola Inter-Orb) , razvijanje web usluga, pozivanje asinkronih metoda i korištenje usluge Timer.
EJB2
EJB2 (EJB 2.0) objavljen je 22. kolovoza 2001. godine. Opisuje specifikacije za razvoj distribuiranih objektno orijentiranih aplikacija na Javi kombiniranjem alata razvijenih od strane različitih dobavljača. Jedan od glavnih ciljeva EJB2 bio je omogućiti programerima da lakše razvijaju poslovne aplikacije bez potrebe za razumijevanjem detalja na niskoj razini, poput multi-navoja i spajanja veza. Drugi je cilj bio omogućiti programerima da jednom napišu "Bean" i pokrenu se bilo gdje bez ponovne kompilacije (pridržavajući se slogana "napisati jednom, trči bilo gdje" Java programskog jezika). Nadalje, EJB2 je namjeravao omogućiti komponentama koje su razvili drugi dobavljači da lako djeluju, a dobavljačima omogućiti pisanje ekstenzija za svoje proizvode koji podržavaju EJB.
EJB3
EJB3 (EJB 3.0) objavljen je 11. svibnja 2006. EJB3 je život programera vrlo olakšao omogućujući im da koriste napomene umjesto deskriptora razmještaja koji su korišteni u prethodnim verzijama. EJB3 sadrži poslovno sučelje i specifičan entitet koji može implementirati to poslovno sučelje, uklanjajući potrebu za korištenjem kućnih / udaljenih sučelja i datoteke ejb-jar.xml. Ukupni učinak EJB3 znatno je poboljšan u usporedbi s EJB2, a značajno je povećanje konfigurabilnosti, fleksibilnosti i prenosivosti u ovom izdanju EJB-a.
Koja je razlika između EJB2 i EJB3?
EJB3 ima primjetno poboljšanje u konfiguraciji i performansama u odnosu na EJB2. Jedan od razloga za ovo poboljšanje performansi je uporaba POJO (Običan stari objekt Java) s metapodacima i XML deskriptorima implementacije od strane EJB3, umjesto JNDI lookupa koji se koriste u EJB2 za reference predmeta. Konfiguracija EJB3 je puno jednostavnija, jer programer ne treba implementirati kućna / udaljena sučelja i druge (npr. SessionBean), što uklanja potrebu za korištenjem povratnih poziva spremnika (poput ejbActivate i ejbStore).
Nadalje, EJB3 je bolji od EJB2 u područjima fleksibilnosti i prenosivosti. Na primjer, pretvaranje entiteta EJB3 u DAO (Data Access Object) je jednostavno, i obrnuto, jer su entiteti EJB3 lagani (za razliku od teških EJB2 entiteta, koji implementiraju spomenuta sučelja). Upiti do baze podataka napisani u EJB3 vrlo su fleksibilni jer koristi rafinirani EJB-QL, umjesto starije verzije EJB-QL, koja je imala nekoliko ograničenja. EJB3 uklanja sve probleme prenosivosti EJB2 (koji koristi entitetski grah za pristup bazi podataka) podržavajući općenitiji JPA za sve podatkovne transakcije.
Za razliku od EJB2, za koji je potreban spremnik EJB, EJB3 se može izvršiti u neovisnom JVM (Java Virtual Machine) bez upotrebe spremnika (ovo je moguće jer ne implementira standardna sučelja). Za razliku od EJB2, EJB3 je moguće jednostavno priključiti na usluge upornosti koje nude treće strane. Druga važna razlika između EJB3 i EJB2 je ta što EJB3 može koristiti sigurnost temeljenu na napomenama, dok se EJB2 koristio sigurnosti utemeljene na deskriptorskim deskriptorima. To znači da su zadaci konfiguracije i postavljanja u EJB3 mnogo lakši, a znatno je smanjenje režijskih troškova u odnosu na EJB2.