EJB2 vs EJB3
EJB (Enterprise JavaBeans) on Java API (Application Programming Interface), mis on leitud Java EE (Java Platform, Enterprise Edition) spetsifikatsioonist. EJB kirjeldab ettevõtte rakenduste arendamise arhitektuurset mudelit. See on hallatud serveripoolne mudel, mis suudab hõivata ettevõtte rakenduse äriloogikat. IBM on EJB algne looja, kes arendas selle välja 1997. aastal. Sun Microsystems võttis selle kasutusele 1999. aastal.
Enne EJB kasutuselevõttu leiti, et programmeerijad rakendasid sageli lahendusi back-end ärikoodis leiduvatele probleemidele. Selle tulemusena loodi EJB nende levinud probleemide, nagu püsivus, tehingute terviklikkus ja turvalisus, lahendamiseks. EJB pakub tavapäraseid viise nende taustaprobleemide lahendamiseks, täpsustades, kuidas rakendusserver peaks tehinguid töötlema, integreeruma JPA (Java Persistence API) teenustega, käsitsema samaaegsuse juhtimist, käsitsema JMS (Java Message Service) sündmusi, lahendama JNDI-ga nimeprobleemid (Java Naming and Directory Interface), arendage JCE-ga (Java krüptograafia laiendus) ja JAAS-ga (Java autentimis- ja autoriseerimisteenus) turvalisi programme, juurutage komponente, suhelge kaugjuhtimisega RMI-IIOP-ga (Java Remote Method Invocation liides Interneti-Inter-Orb-protokolli kaudu),arendada veebiteenuseid, kasutada asünkroonseid meetodeid ja kasutada teenust Taimer.
EJB2
EJB2 (EJB 2.0) ilmus 22. augustil 2001. Selles kirjeldatakse Java-tüüpi hajutatud objektorienteeritud rakenduste arendamise spetsifikatsioone, kombineerides erinevate tarnijate välja töötatud tööriistu. EJB2 üks peamisi eesmärke oli võimaldada programmeerijatel ettevõtte rakendusi hõlpsamalt arendada, ilma et nad peaksid mõistma madala taseme üksikasju, näiteks mitmekeermelisi ühendusi ja ühenduste ühendamist. Teine eesmärk oli lubada programmeerijatel kirjutada üks kord „Bean“ja joosta ükskõik kus ilma kompileerimiseta (järgides Java programmeerimiskeele loosungit „kirjuta üks kord, jookse kuhu iganes“). Lisaks kavatses EJB2 võimaldada erinevate tarnijate väljatöötatud komponentidel hõlpsat koostööd teha ja võimaldada müüjatel kirjutada oma toodetele laiendeid, mis toetavad EJB-sid.
EJB3
EJB3 (EJB 3.0) ilmus 11. mail 2006. EJB3 tegi programmeerijate elu väga lihtsaks, võimaldades neil eelmistes versioonides kasutatud juurutuskirjeldajate asemel kasutada märkusi. EJB3 sisaldab äriliidest ja konkreetset üksuseuba, mis suudab selle äriliidese rakendada, kaotades vajaduse kasutada kodu / kaugliideseid ja faili ejb-jar.xml. EJB3 üldine jõudlus on võrreldes EJB2-ga palju paranenud ning selles EJB-i versioonis on märkimisväärselt suurenenud seadistatavus, paindlikkus ja kaasaskantavus.
Mis vahe on EJB2 ja EJB3 vahel?
EJB3-l on konfiguratsiooni ja jõudluse märkimisväärne paranemine võrreldes EJB2-ga. Selle jõudluse paranemise üheks põhjuseks on POJO (Plain Old Java Object) kasutamine metaandmete ja XML-i juurutuskirjeldajatega EJB3 poolt EJB2-s objektiviidete jaoks kasutatud JNDI-otsingute asemel. EJB3 seadistamine on palju lihtsam, kuna programmeerija ei pea rakendama kodu / kaugliideseid ja muid (nt SessionBean), mis kaob vajadus kasutada konteinerite tagasihelistusmeetodeid (näiteks ejbActivate ja ejbStore).
Lisaks on EJB3 parem kui EJB2 paindlikkuse ja kaasaskantavuse valdkonnas. Näiteks on EJB3-üksusi lihtne 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 selles kasutatakse EJB-QL-i vanema versiooni asemel rafineeritud EJB-QL-i, millel oli mitu piirangut. EJB3 eemaldab kõik EJB2 (mis kasutab andmebaasi juurdepääsuks üksuseube) kaasaskantavuse probleemid, toetades kõigi andmetehingute jaoks üldisemat JPA-d.
Erinevalt EJB2-st, mille käivitamiseks on vaja EJB-konteinerit, saab EJB3 käivitada iseseisvas JVM-is (Java Virtual Machine) 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. Teine oluline erinevus EJB3 ja EJB2 vahel on see, et EJB3 saab kasutada märkustel põhinevat turvalisust, samas kui EJB2 kasutas juurutuskirjeldajate põhist turvalisust. See tähendab, et konfigureerimis- ja seadistustoimingud on EJB3-s palju lihtsamad ning jõudluskulud vähenevad märkimisväärselt võrreldes EJB2-ga.