EJB2 dhidi ya EJB3
EJB (Enterprise JavaBeans) ni Java API (Application Programming Interface) inayopatikana ndani ya vipimo vya Java EE (Java Platform, Enterprise Edition). EJB inaelezea mfano wa usanifu wa ukuzaji wa matumizi ya biashara. Huu ni muundo wa upande wa seva unaodhibitiwa ambao unaweza kunasa mantiki ya biashara ya programu ya biashara. IBM ndiye muundaji asili wa EJB ambaye aliitengeneza mwaka wa 1997. Sun Microsystems iliikubali mwaka wa 1999.
Kabla ya kuanzishwa kwa EJB, ilibainika kuwa masuluhisho ya matatizo yaliyopatikana katika msimbo wa biashara ya nyuma yalitekelezwa mara kwa mara na watayarishaji programu. Kwa hivyo, EJB ilianzishwa ili kushughulikia matatizo haya ya kawaida kama vile uvumilivu, uadilifu wa shughuli na usalama. EJB hutoa njia za kawaida za kushughulikia matatizo haya ya mwisho, kwa kubainisha jinsi seva ya programu inapaswa kushughulikia shughuli, kuunganishwa na huduma za JPA (Java Persistence API), kushughulikia udhibiti wa sarafu, kushughulikia Matukio ya JMS (Huduma ya Ujumbe wa Java), kutatua masuala ya kutaja na JNDI (Kutaja Java na Kiolesura cha Orodha), tengeneza programu salama na JCE (Java Cryptography Extension) na JAAS (Huduma ya Uthibitishaji na Uidhinishaji wa Java), tuma vipengee, wasiliana kwa mbali na RMI-IIOP (kiolesura cha Uombaji wa Njia ya Java ya Mbali juu ya Itifaki ya Mtandao wa Orb), tengeneza huduma za wavuti, omba mbinu zisizolingana na utumie huduma ya Kipima Muda.
EJB2
EJB2 (EJB 2.0) ilitolewa tarehe 22 Agosti, 2001. Inafafanua vipimo vya kutengeneza programu zinazolenga kitu zilizosambazwa katika Java kwa kuchanganya zana zilizotengenezwa na wachuuzi tofauti. Mojawapo ya malengo makuu ya EJB2 ilikuwa kuruhusu watayarishaji programu kuendeleza programu za biashara kwa urahisi zaidi bila kuelewa maelezo ya kiwango cha chini, kama vile uunganishaji wa nyuzi nyingi na kuunganisha. Lengo lingine lilikuwa kuruhusu waandaaji wa programu kuandika "Maharagwe" mara moja na kukimbia popote bila malipo (kuzingatia "andika mara moja, kukimbia popote" kauli mbiu ya lugha ya programu ya Java). Zaidi ya hayo, EJB2 ilinuia kuruhusu vipengee vilivyoundwa na wachuuzi tofauti kuingiliana kwa urahisi, na kuruhusu wachuuzi kuandika viendelezi vya bidhaa zao ambavyo vinaweza kutumia EJBs.
EJB3
EJB3 (EJB 3.0) ilitolewa tarehe 11 Mei, 2006. EJB3 ilirahisisha maisha ya watayarishaji programu kwa kuwaruhusu kutumia vidokezo badala ya vifafanuzi vya utumiaji ambavyo vilitumika katika matoleo ya awali. EJB3 ina kiolesura cha biashara na huluki mahususi inayoweza kutekeleza kiolesura hicho cha biashara, ikiondoa hitaji la kutumia violesura vya nyumbani/mbali na faili ya ejb-jar.xml. Utendaji wa jumla wa EJB3 umeboreshwa zaidi ikilinganishwa na EJB2, na kuna ongezeko kubwa la usanidi, kunyumbulika na kubebeka katika toleo hili la EJB.
Kuna tofauti gani kati ya EJB2 na EJB3?
EJB3 ina maboresho yanayoonekana katika usanidi na utendakazi kupitia EJB2. Sababu moja ya uboreshaji huu wa utendakazi ni matumizi ya POJO (Plain Old Java Object) yenye metadata na Vifafanuzi vya Utekelezaji vya XML na EJB3 badala ya utafutaji wa JNDI unaotumika katika EJB2 kwa marejeleo ya kitu. Usanidi wa EJB3 ni rahisi zaidi kwa sababu kipanga programu hahitaji kutekeleza violesura vya Nyumbani/Kidhibiti cha Mbali na vingine (k.m. SessionBean), ambayo huondoa hitaji la kutumia mbinu za kurejesha tena chombo (kama vile ejbActivate na ejbStore).
Zaidi ya hayo, EJB3 ni bora kuliko EJB2 katika maeneo ya kunyumbulika na kubebeka. Kwa mfano, ni rahisi kubadilisha huluki za EJB3 hadi DAO (Kitu cha Kufikia Data) na kinyume chake kwa sababu huluki za EJB3 ni nyepesi (kinyume na huluki zito za EJB2, ambazo hutekeleza violesura vilivyotajwa hapo juu). Hoja za hifadhidata zilizoandikwa katika EJB3 ni rahisi sana kwa sababu hutumia EJB-QL iliyosafishwa, badala ya toleo la zamani la EJB-QL, ambalo lilikuwa na vikwazo kadhaa. EJB3 huondoa masuala yote ya kubebeka kwa EJB2 (ambayo hutumia maharagwe ya huluki kwa ufikiaji wa hifadhidata) kwa kutumia JPA ya jumla zaidi kwa miamala yote ya data.
Tofauti na EJB2, ambayo inahitaji kontena la EJB kutekeleza, EJB3 inaweza kutekelezwa katika JVM huru (Java Virtual Machine) bila kutumia vyombo (hii inawezekana kwa sababu haitekelezi violesura vya kawaida). Tofauti na EJB2, EJB3 inaweza kuchomekwa kwa urahisi na watoa huduma wa kudumu wanaotolewa na wahusika wengine. Tofauti nyingine muhimu kati ya EJB3 na EJB2 ni kwamba EJB3 inaweza kutumia usalama wa msingi wa ufafanuzi, wakati EJB2 ilitumia vielelezo vya upelekaji kulingana na usalama. Hii inamaanisha kuwa kazi za usanidi na usanidi ni rahisi zaidi katika EJB3, na kuna upungufu mkubwa wa nyongeza za utendaji ikilinganishwa na EJB2.