EJB2 vs EJB3
Az EJB (Enterprise JavaBeans) egy Java API (Application Programming Interface), amely a Java EE (Java Platform, Enterprise Edition) specifikációjában található. Az EJB építészeti modellt ír le a vállalati alkalmazások fejlesztésére. Ez egy felügyelt szerveroldali modell, amely képes rögzíteni a vállalati alkalmazás üzleti logikáját. Az IBM az EJB eredeti alkotója, aki 1997-ben fejlesztette ki. A Sun Microsystems 1999-ben elfogadta.
Az EJB bevezetése előtt azt találták, hogy a programozók gyakran újratelepítették a háttér-üzleti kódban talált problémák megoldásait. Ennek eredményeként bevezették az EJB-t e közös problémák, például a kitartás, a tranzakció integritása és a biztonság kezelésére. Az EJB szabványos módszereket kínál ezeknek a hátsó problémáknak a kezelésére, meghatározva, hogy az alkalmazáskiszolgálónak miként kell feldolgoznia a tranzakciókat, integrálódnia a JPA (Java Persistence API) szolgáltatásokhoz, kezelnie kell a párhuzamos vezérlést, kezelni a JMS (Java Message Service) eseményeket, meg kell oldani az elnevezési problémákat a JNDI-vel ( Java Naming és Directory Interface), biztonságos programokat fejleszthet ki a JCE-vel (Java Cryptography Extension) és a JAAS-tal (Java Authentication and Authorization Service), telepít összetevőket, távolról kommunikálhat az RMI-IIOP-tal (Java Remote Method Invocation interfész az Internet Inter-Orb Protokollján keresztül) , webszolgáltatások fejlesztése, aszinkron módszerek meghívása és az Időzítő szolgáltatás használata.
EJB2
Az EJB2 (EJB 2.0) 2001. augusztus 22-én jelent meg. Leírja a Java elosztott objektum-orientált alkalmazások fejlesztésének specifikációit, a különböző gyártók által kifejlesztett eszközök kombinálásával. Az EJB2 egyik fő célja az volt, hogy lehetővé tegye a programozók számára, hogy könnyebben fejlesszék vállalati alkalmazásokat anélkül, hogy meg kellett volna értenie az alacsony szintű részleteket, mint például a többszálú menet és a kapcsolatkészlet. További cél az volt, hogy lehetővé tegyék a programozóknak, hogy egyszer írjanak egy „babot”, és bárhol futhassanak újrafordítás nélkül (betartva a Java programozási nyelv „egyszer írj, bárhol fuss” szlogenjét). Ezenkívül az EJB2 célja, hogy lehetővé tegye a különféle gyártók által kifejlesztett összetevők könnyű együttműködését, és lehetővé tegye a gyártók számára, hogy termékeikhez kiterjesztéseket írjanak, amelyek támogatják az EJB-ket..
EJB3
Az EJB3 (EJB 3.0) kiadására 2006. május 11-én került sor. Az EJB3 nagyon egyszerűvé tette a programozók életét, lehetővé téve számuk használatát a korábbi verziókban használt telepítési leírók helyett. Az EJB3 üzleti felületet és egy speciális entitás-babot tartalmaz, amely képes megvalósítani az üzleti felületet, megszüntetve az otthoni / távoli interfészek és az ejb-jar.xml fájl használatának szükségességét. Az EJB3 általános teljesítménye sokkal javult az EJB2-hez képest, és az EJB ezen kiadása jelentősen növeli a konfigurálhatóságot, a rugalmasságot és a hordozhatóságot..
Mi a különbség az EJB2 és az EJB3 között??
Az EJB3 észrevehetően javult a konfigurációban és a teljesítményben az EJB2-hez képest. Ennek a teljesítményjavításnak az egyik oka a POJO (Plain Old Java Object) használata metaadatokkal és XML telepítési leírókkal az EJB3-nál, az EJB2-ben használt objektumhivatkozásokhoz használt JNDI-keresések helyett. Az EJB3 konfigurálása sokkal egyszerűbb, mivel a programozónak nem kell megvalósítania a Home / Remote interfészeket és másokat (például SessionBean), ami megszünteti a tároló visszahívási módszerek (például az ejbActivate és az ejbStore) használatának szükségességét..
Ezenkívül az EJB3 jobb, mint az EJB2, a rugalmasság és a hordozhatóság területén. Például könnyű az EJB3 entitásokat DAO-ra konvertálni (Data Access Object) és fordítva, mivel az EJB3 entitások könnyűek (szemben a nehézsúlyú EJB2 entitásokkal, amelyek a fent említett interfészeket valósítják meg). Az EJB3-ban írt adatbázis-lekérdezések nagyon rugalmasak, mert finomított EJB-QL-t használnak az EJB-QL régebbi verziója helyett, amely több korlátozással is rendelkezik. Az EJB3 eltávolítja az EJB2 (amely entitásbabot használ az adatbázis eléréséhez) minden hordozhatósági problémáját azáltal, hogy támogatja az általánosabb JPA-t az összes tranzakcióhoz.
Eltérően az EJB2-től, amelynek végrehajtásához EJB tárolóra van szükség, az EJB3 végrehajtható független JVM-ben (Java virtuális gépben) tárolók használata nélkül (ez azért lehetséges, mert nem valósítja meg a szabványos interfészeket). Az EJB2-vel ellentétben az EJB3 könnyen csatlakoztatható harmadik fél által kínált perzisztencia-szolgáltatókkal. Egy másik fontos különbség az EJB3 és az EJB2 között az, hogy az EJB3 képes használni a annotáció alapú biztonságot, míg az EJB2 a telepítési leíró alapú biztonságot használta. Ez azt jelenti, hogy a konfigurációs és beállítási feladatok sokkal könnyebbek az EJB3-ban, és a teljesítmény általános költségei jelentősen csökkennek az EJB2-hez képest..