EJB2 vs EJB3
 

EJB (Enterprise JavaBeans) on Java API (rakenduse programmeerimisliides), mis asub Java EE (Java Platform, Enterprise Edition) spetsifikatsioonis. EJB kirjeldab arhitektuurimudelit ettevõtte rakenduste arendamiseks. See on hallatav serveripoolne mudel, mis suudab hõivata ettevõtte rakenduse äriloogikat. IBM on EJB algne looja, kes töötas selle välja 1997. aastal. Sun Microsystems võttis selle kasutusele 1999. aastal.

Enne EJB kasutuselevõttu leiti, et programmeerijad rakendasid sageli ärikoodist leitud probleemidele lahendusi. Selle tulemusel loodi EJB selliste levinud probleemide lahendamiseks nagu püsivus, tehingute terviklikkus ja turvalisus. EJB pakub standardseid viise nende tagapõhja probleemide lahendamiseks, täpsustades, kuidas rakendusserver peaks tehinguid töötlema, integreeruma JPA (Java Persistence API) teenustega, käsitsema samaaegsuse kontrolli, käsitlema JMS (Java Message Service) sündmusi, lahendama nimega seotud probleeme JNDI-ga ( Java nimetamine ja kataloogiliides), turvaliste programmide väljatöötamine koos JCE (Java krüptograafia laiendusega) ja JAAS-iga (Java autentimis- ja autoriseerimisteenus), komponentide juurutamine, RMI-IIOP-iga (Java Remote Method Invocation interface - Internet Inter-Orb Protocol) kaugühendus , veebiteenuste arendamine, asünkroonsete meetodite kasutamine ja Timer-teenuse kasutamine.

EJB2

EJB2 (EJB 2.0) ilmus 22. augustil 2001. Selles kirjeldatakse spetsifikatsioone hajutatud objektorienteeritud rakenduste arendamiseks Java-s, ühendades erinevate müüjate väljatöötatud tööriistad. EJB2 üks peamisi eesmärke oli võimaldada programmeerijatel hõlpsamini ettevõtte rakendusi arendada, ilma et nad peaksid mõistma madala taseme üksikasju, nagu mitme keermestamine ja ühenduste ühendamine. Teine eesmärk oli lubada programmeerijatel kirjutada üks kord “Bean” ja joosta ükskõik kuhu ilma kompileerimiseta (järgides Java programmeerimiskeele loosungit “kirjuta üks kord, jookse ükskõik kuhu”). Lisaks oli EJB2 eesmärk võimaldada erinevate müüjate väljatöötatud komponentidel hõlpsasti koostalitlusvõimet ning lubada müüjatel kirjutada oma toodete jaoks laiendusi, mis toetavad EJB-sid.

EJB3

EJB3 (EJB 3.0) vabastati 11. mail 2006. EJB3 muutis programmeerijate elu väga lihtsaks, võimaldades neil eelmistes versioonides kasutatud juurutuskirjelduste asemel kasutada märkusi. EJB3 sisaldab äriliidest ja konkreetset üksuseuba, mis suudab seda äriliidest rakendada, eemaldades vajaduse kodu- / kaugliideste ja faili ejb-jar.xml kasutamiseks. EJB3 üldine jõudlus on võrreldes EJB2-ga palju paranenud ning EJB selle väljalaske konfiguratsioon, paindlikkus ja kaasaskantavus on märkimisväärselt paranenud.

Mis vahe on EJB2 ja EJB3 vahel?

EJB3 on konfiguratsioonis ja toimivuses märgatavalt paranenud võrreldes EJB2-ga. Selle jõudluse paranemise üks põhjus on EJB3 poolt POJO (tavaline vana Java objekt) koos metaandmete ja XML-i juurutamiskirjelditega kasutamise kasutamine EJB2-s objektide viidete jaoks kasutatud JNDI otsingute asemel. EJB3 konfigureerimine on palju lihtsam, kuna programmeerija ei pea rakendama kodu- / kaugliideseid ja muid (nt SessionBean), mis eemaldab vajaduse kasutada konteineri tagasihelistamise meetodeid (näiteks ejbActivate ja ejbStore).

Lisaks on EJB3 paindlikkuse ja teisaldatavuse osas parem kui EJB2. Näiteks on lihtne EJB3 üksusi teisendada DAO-ks (Data Access Object) ja vastupidi, kuna EJB3 üksused on kerged (erinevalt raskekaalulistest EJB2 üksustest, mis rakendavad ülalnimetatud liideseid). EJB3-s kirjutatud andmebaasipäringud on väga paindlikud, kuna see kasutab EJB-QL vanema versiooni asemel täpsustatud EJB-QL, millel oli mitmeid piiranguid. EJB3 eemaldab kõik EJB2 (mis kasutab andmebaasidele juurdepääsuks olemi obe) kaasaskantavusega seotud probleemid, toetades kõigi andmetehingute jaoks üldisemat JPA-d.

Erinevalt EJB2-st, mille täitmiseks on vaja EJB-konteinerit, saab EJB3-d käivitada sõltumatus JVM-is (Java virtuaalmasinas) ilma konteinereid kasutamata (see on võimalik, kuna see ei rakenda standardseid liideseid). Erinevalt EJB2-st on EJB3 hõlpsasti ühendatav kolmandate osapoolte pakutavate püsivuse pakkujatega. Veel üks oluline erinevus EJB3 ja EJB2 vahel on see, et EJB3 saab kasutada annotatsioonipõhist turvalisust, samal ajal kui EJB2 kasutas juurutuskirjeldustel põhinevat turvalisust. See tähendab, et konfigureerimise ja seadistamise ülesanded on EJB3-s palju lihtsamad ja jõudluse üldkulud on EJB2-ga võrreldes märkimisväärselt vähenenud.