Atšķirība starp EJB2 un EJB3

EJB2 pret EJB3

EJB (Enterprise JavaBeans) ir Java API (lietojumprogrammu saskarne), kas atrodama Java EE (Java platforma, Enterprise Edition) specifikācijā. EJB apraksta arhitektūras modeli uzņēmuma lietojumprogrammu izstrādei. Šis ir pārvaldīts servera puses modelis, kas spēj uztvert uzņēmuma lietojumprogrammas biznesa loģiku. IBM ir EJB sākotnējais radītājs, kurš to izstrādāja 1997. gadā. Sun Microsystems to pieņēma 1999. gadā.

Pirms EJB ieviešanas tika atklāts, ka programmētāji bieži atkārtoti īsteno biznesa modeļa atrasto problēmu risinājumus. Tā rezultātā EJB tika ieviesta, lai risinātu šīs kopīgās problēmas, piemēram, noturību, darījumu integritāti un drošību. EJB nodrošina standarta veidus, kā rīkoties ar šīm aizmugures problēmām, norādot, kā lietojumprogrammu serverim jāapstrādā darījumi, jāintegrējas ar JPA (Java Persistence API) pakalpojumiem, jāapstrādā vienlaikus valūtas kontrole, jātiek galā ar JMS (Java Message Service) notikumiem, jāatrisina nosaukšanas problēmas ar JNDI ( Java nosaukšana un direktoriju saskarne), izstrādājiet drošas programmas ar JCE (Java kriptogrāfijas paplašināšana) un JAAS (Java autentifikācijas un autorizācijas pakalpojums), izvietojiet komponentus, attāli sazinieties ar RMI-IIOP (Java attālo metožu izsaukšanas interfeisu, izmantojot interneta Inter-Orb protokolu). , izstrādājiet tīmekļa pakalpojumus, izmantojiet asinhronās metodes un izmantojiet taimera pakalpojumu.

EJB2

EJB2 (EJB 2.0) tika izlaists 2001. gada 22. augustā. Tas apraksta specifikāciju izplatītu objektorientētu lietojumprogrammu izstrādei Java, apvienojot dažādu pārdevēju izstrādātus rīkus. Viens no galvenajiem EJB2 mērķiem bija ļaut programmētājiem vieglāk izstrādāt uzņēmuma lietojumprogrammas, neizprotot zema līmeņa detaļas, piemēram, vairāku pavedienu izveidošanu un savienojumu apvienošanu. Vēl viens mērķis bija ļaut programmētājiem vienreiz rakstīt “Pupiņu” un palaist jebkur bez atkārtotas sastādīšanas (ievērojot Java programmēšanas valodas saukli “Vienreiz rakstīt, palaist jebkur”). Turklāt EJB2 bija paredzēts, lai dažādu pārdevēju izstrādātie komponenti varētu viegli mijiedarboties, un ļautu pārdevējiem rakstīt savu produktu paplašinājumus, kas var atbalstīt EJB.

EJB3

EJB3 (EJB 3.0) tika izlaists 2006. gada 11. maijā. EJB3 ļoti atviegloja programmētāju dzīvi, ļaujot viņiem izmantot anotācijas izvietošanas deskriptoru vietā, kas tika izmantoti iepriekšējās versijās. EJB3 satur biznesa saskarni un īpašu entītijas pupu, kas var ieviest šo biznesa saskarni, novēršot nepieciešamību izmantot mājas / attālos interfeisus un failu ejb-jar.xml. Kopējais EJB3 veiktspēja ir daudz uzlabojusies salīdzinājumā ar EJB2, un šajā EJB laidienā ir ievērojami palielināta konfigurējamība, elastība un pārnesamība..

Kāda ir atšķirība starp EJB2 un EJB3?

EJB3 ir manāms uzlabojums konfigurācijā un veiktspējā salīdzinājumā ar EJB2. Viens no šī veiktspējas uzlabojuma iemesliem ir POJO (Plain Old Java Object) izmantošana ar metadatiem un XML izvietošanas aprakstiem, ko veicis EJB3, nevis JNDI uzmeklējumi, ko EJB2 izmanto objekta atsaucēm. EJB3 konfigurēšana ir daudz vienkāršāka, jo programmētājam nav jāievieš mājas / attālie interfeisi un citi (piem., SessionBean), kas novērš nepieciešamību izmantot konteineru atzvanīšanas metodes (piemēram, ejbActivate un ejbStore)..

Turklāt EJB3 ir labāks par EJB2 elastības un pārnesamības jomā. Piemēram, EJB3 entītijas ir viegli pārveidot par DAO (Data Access Object) un otrādi, jo EJB3 entītijas ir vieglas (pretstatā EJB2 lielgabarīta entītijām, kuras ievieš iepriekšminētās saskarnes). EJB3 rakstītie datu bāzes vaicājumi ir ļoti elastīgi, jo EJB-QL vecākas versijas vietā tiek izmantots pilnveidots EJB-QL, kuram bija vairāki ierobežojumi. EJB3 novērš visas EJB2 (kas izmanto entītijas pupas datu bāzes piekļuvei) pārnesamības problēmas, atbalstot vispārīgāku JPA visiem datu darījumiem.

Atšķirībā no EJB2, kura izpildei ir nepieciešams EJB konteiners, EJB3 var izpildīt neatkarīgā JVM (Java Virtual Machine), neizmantojot konteinerus (tas ir iespējams, jo tas neīsteno standarta saskarnes). Atšķirībā no EJB2, EJB3 ir viegli savienojams ar noturības nodrošinātājiem, kurus piedāvā trešās puses. Vēl viena būtiska atšķirība starp EJB3 un EJB2 ir tā, ka EJB3 var izmantot uz anotācijām balstītu drošību, savukārt EJB2 izmantoja izvietošanas aprakstos balstītu drošību. Tas nozīmē, ka EJB3 konfigurācijas un iestatīšanas uzdevumi ir daudz vieglāk, un salīdzinājumā ar EJB2 ir ievērojami samazinātas veiktspējas pieskaitāmās izmaksas..