Verskil tussen EJB2 en EJB3

Verskil tussen EJB2 en EJB3
Verskil tussen EJB2 en EJB3

Video: Verskil tussen EJB2 en EJB3

Video: Verskil tussen EJB2 en EJB3
Video: pabo kennisbasis, kortste routes in rooster 2024, September
Anonim

EJB2 vs EJB3

EJB (Enterprise JavaBeans) is 'n Java API (Application Programming Interface) wat binne Java EE (Java Platform, Enterprise Edition) spesifikasie gevind word. EJB beskryf 'n argitektoniese model vir die ontwikkeling van ondernemingstoepassings. Dit is 'n bestuurde bediener-kant model wat in staat is om die besigheidslogika van die ondernemingstoepassing vas te vang. IBM is EJB se oorspronklike skepper wat dit in 1997 ontwikkel het. Sun Microsystems het dit in 1999 aangeneem.

Voor die bekendstelling van EJB, is daar gevind dat oplossings vir probleme wat in agterplaasbesigheidskode gevind word, gereeld deur die programmeerders hergeïmplementeer is. As gevolg hiervan is EJB ingestel om hierdie algemene probleme soos volharding, transaksionele integriteit en sekuriteit aan te spreek. EJB bied standaard maniere om hierdie agterkantprobleme te hanteer, deur te spesifiseer hoe die toepassingbediener transaksies moet verwerk, met JPA (Java Persistence API) dienste moet integreer, gelyktydigheidsbeheer hanteer, JMS (Java Message Service) Gebeurtenisse hanteer, naamprobleme met JNDI moet oplos (Java Naming en Directory Interface), ontwikkel veilige programme met JCE (Java Cryptography Extension) en JAAS (Java Authentication and Authorization Service), ontplooi komponente, kommunikeer op afstand met RMI-IIOP (Java Remote Method Invocation-koppelvlak oor die Internet Inter-Orb Protocol), ontwikkel webdienste, roep asynchrone metodes aan en gebruik die Timer-diens.

EJB2

EJB2 (EJB 2.0) is vrygestel op 22 Augustus, 2001. Dit beskryf spesifikasie vir die ontwikkeling van verspreide objekgeoriënteerde toepassings in Java deur nutsmiddels wat deur verskillende verskaffers ontwikkel is, te kombineer. Een van die hoofdoelwitte van EJB2 was om programmeerders toe te laat om ondernemingstoepassings makliker te ontwikkel sonder om laevlakbesonderhede te verstaan, soos multi-threading en konneksiepoel. Nog 'n doelwit was om programmeerders toe te laat om 'n "Bean" een keer te skryf en enige plek te hardloop sonder hersamestelling (om te voldoen aan die "skryf een keer, hardloop enige plek" slagspreuk van die Java-programmeertaal). Verder het EJB2 bedoel om komponente wat deur verskillende verskaffers ontwikkel is toe te laat om maklik saam te werk, en verskaffers toe te laat om uitbreidings vir hul produkte te skryf wat EJB's kan ondersteun.

EJB3

EJB3 (EJB 3.0) is op 11 Mei 2006 vrygestel. EJB3 het programmeerders se lewe baie maklik gemaak deur hulle toe te laat om aantekeninge te gebruik in die plek van ontplooiingsbeskrywers wat in vorige weergawes gebruik is. EJB3 bevat 'n besigheidskoppelvlak en 'n spesifieke entiteitboon wat daardie besigheidskoppelvlak kan implementeer, wat die behoefte uitskakel vir die gebruik van tuis-/afgeleë koppelvlakke en die ejb-jar.xml-lêer. Algehele werkverrigting van EJB3 is baie verbeter in vergelyking met EJB2, en daar is 'n aansienlike toename in konfigureerbaarheid, buigsaamheid en oordraagbaarheid in hierdie vrystelling van EJB.

Wat is die verskil tussen EJB2 en EJB3?

EJB3 het 'n merkbare verbetering in konfigurasie en werkverrigting bo EJB2. Een rede vir hierdie prestasieverbetering is die gebruik van die POJO (Plain Old Java Object) met metadata en XML Deployment Descriptors deur EJB3 in plaas van JNDI-opsoeke wat in EJB2 gebruik word vir objekverwysings. Konfigurasie van EJB3 is baie eenvoudiger omdat die programmeerder nie Tuis-/Afgeleë-koppelvlakke en ander (bv. SessionBean) hoef te implementeer nie, wat die behoefte verwyder om houerterugbelmetodes (soos ejbActivate en ejbStore) te gebruik.

Verder is EJB3 beter as EJB2 op die gebied van buigsaamheid en oordraagbaarheid. Dit is byvoorbeeld maklik om EJB3-entiteite om te skakel na DAO (Data Access Object) en omgekeerd omdat EJB3-entiteite liggewig is (in teenstelling met die swaargewig EJB2-entiteite, wat bogenoemde koppelvlakke implementeer). Databasisnavrae wat in EJB3 geskryf is, is baie buigsaam omdat dit 'n verfynde EJB-QL gebruik, in die plek van die ouer weergawe van EJB-QL, wat verskeie beperkings gehad het. EJB3 verwyder al die oordraagbaarheidskwessies van EJB2 (wat entiteitsbone vir databasistoegang gebruik) deur meer algemene JPA vir alle datatransaksies te ondersteun.

Anders as EJB2, wat 'n EJB-houer nodig het om uit te voer, kan EJB3 in 'n onafhanklike JVM (Java Virtual Machine) uitgevoer word sonder om houers te gebruik (dit is moontlik omdat dit nie standaardkoppelvlakke implementeer nie). In teenstelling met EJB2, is EJB3 maklik gekoppel aan volhardingsverskaffers wat deur derde partye aangebied word. Nog 'n belangrike verskil tussen EJB3 en EJB2 is dat EJB3 annotasie-gebaseerde sekuriteit kan gebruik, terwyl EJB2 ontplooiingsbeskrywers-gebaseerde sekuriteit gebruik het. Dit beteken dat konfigurasie- en opsteltake baie makliker is in EJB3, en daar is 'n aansienlike vermindering in werkverrigtingbokoste in vergelyking met EJB2.

Aanbeveel: