EJB architektúra

Ez a témakör magasszintű áttekintést ad a Sun Microsystem által kidolgozott Enterprise JavaBeans (EJB) architektúraspecifikációban meghatározott osztott komponensarchitektúráról.

A teljes Enterprise JavaBeans specifikáció és a technológiai leírások megtalálhatók a java.sun.com webhelyen.

Az EJB-komponensek használata számos előnyt kínál az alkalmazásfejlesztők számára:

EJB-komponensek
Az EJB-komponensek az osztott, tranzakció-központú vállalati alkalmazások felhasználói felülettel nem rendelkező alkotóelemei. Általában EJB tárolókban telepítik őket és EJB kiszolgálókon futnak. Az EJB-komponensek a telepítési leíróik segítségével személyre szabhatóak és más komponensekkel összeállítva új alkalmazások hozhatók létre. Három típusuk létezik: munkamenet komponensek, entitás komponensek és üzenetvezérelt komponensek.
  • Munkamenet komponensek: A munkamenet komponensek nem állandóan létező EJB-komponensek. Lehetnek állapotőrzők vagy állapotnélküliek. Az állapotőrző munkamenet komponensek egyetlen ügyféllel szolgálnak ki és az azzal kapcsolatos munkamenet információkat - amit párbeszéd állapotának nevezünk - megőrzik metódushívásokon és tranzakciókon át. Ezek csak egy ügyfél-kiszolgáló munkamenet idejéig léteznek. Az állapotnélküli munkamenet komponensek ezzel ellentétben nem tárolnak párbeszéd állapotot. A tárolójuk ezekből a komponensekből készletet tart, így szolgálja ki a különböző ügyfelektől érkező kéréseket.
  • Entitás komponensek: Az entitás komponensek állandó adatokat tartalmazó, állandó adattárolóra menthető EJB-komponensek. Mindegyiknek saját azonossága van. Azokat a komponenseket, amik saját maguk gondoskodnak az adataik elmentéséről, komponensvezérelt mentésű (BMP) entitás komponensnek nevezik. Azokat, amelyek ezt a feladatot a tárolóra bízzák, tárolóvezérelt mentésű (CMP) entitás komponensnek nevezik.
  • Üzenetvezérelt komponensek: az üzenetvezérelt komponensek JMS üzeneteket fogadnak és dolgoznak fel. A munkamenet és entitás komponensekkel szemben az üzenetvezérelt komponenseknek nincsenek felületeik. Csak az üzenetkezelésen keresztül érhetők el és nem tárolnak párbeszéd állapotot. Az üzenetvezérelt komponensek lehetővé teszik a várakozási sor és a figyelők közötti aszinkron kommunikációt és elkülönítik az üzenetfeldolgozást az üzleti működéstől.
Távoli ügyfélnézet
A távoli ügyfélnézet specifikációja az EJB 1.1-es verziójában jelent meg. Az EJB-komponensek távoli ügyfélnézete helyfüggetlen. Az az ügyfél, amelyik ugyanazon a Java virtuális gépen fut, mint a komponens példánya, ugyanazt az alkalmazás programozási felületet használja az elérésére, mint egy másik gépen futó ügyfél.
  • Távoli felület: a távoli felület határozza meg, hogy az ügyfelek a komponensek milyen, üzleti működéssel kapcsolatos metódusait hívhatják meg.
  • Távoli alapfelület: a távoli alapfelület határozza meg, hogy az ügyfelek milyen metódusokat használhatnak az EJB-komponensek példányainak keresésére, létrehozására és eltávolítására.
Helyi ügyfélnézet
A helyi ügyfélnézet specifikációja az EJB 2.0 verziójában jelent meg. A távoli ügyfélnézettel szemben ez helyfüggő. A helyi ügyfélnézet használata csak abban az esetben lehetséges, ha az ügyfél és a nézetet adó EJB-komponens ugyanazon a Java virtuális gépen fut. A helyi ügyfélnézet így nem biztosítja azt a fajta helyi átlátszóságot, mint a távoli. A helyi felületek és a helyi alapfelületek a helyi ügyfelek számára egyszerű hozzáférést biztosítanak a komponensekhez. A munkamenet és az entitás komponenseket az ügyfeleikkel közvetlenül össze lehet kötni, így elkerülhető a távoli metódushívásokkal járó többletterhelés.
  • Helyi felület: A helyi felület a távoli felület egyszerű, helyi ügyfelek által használható változata. A helyi ügyfelek által meghívható, üzleti működéshez kapcsolódó metódusokat tartalmazza.
  • Helyi alapfelület: A helyi alapfelület az EJB-komponensosztályok példányainak keresését, létrehozását és eltávolítását végző metódusokat teszi elérhetővé a helyi ügyfelek számára.
Webszolgáltatás ügyfélnézet
Az EJB 2.1 specifikációban jelent meg a webszolgáltatások támogatása. A munkamenet komponensek ügyfelei lehetnek webszolgáltatás ügyfelek is. A webszolgáltatás ügyfelek használhatják az állapotnélküli munkamenet komponensek webszolgáltatás ügyfél nézetét, amelyhez tartozik egy szolgáltatásvégpont felület is.
Szolgáltatásvégpont felület
Az állapotnélküli munkamenet komponensek szolgáltatásvégpont felülete a komponens funkcionalitását webszolgáltatás végpont formájában teszi elérhetővé. A webszolgáltatás WSDL dokumentuma a szolgáltatást üzenetekkel működő végpontok halmazaként írja le. Az WSDL dokumentum végpontként tartalmazhatja az állapotnélküli munkamenet komponensek végpont felületét. A már meglévő állapotnélküli munkamenet komponensekhez hozzá lehetni adni a webszolgáltatás ügyfél nézetet, vagy a szolgáltatásvégpont felületet egy már létező WSDL dokumentumból le lehet képezni.

A webszolgáltatás ügyfél nézet helyfüggetlen és távoli hívásokkal lehet elérni.

EJB ügyfél JAR fájlok
Az EJB ügyfél JAR fájlok nem kötelező JAR fájlok, amik az EJB JAR fájlban lévő EJB-komponensek ügyfélnézeteinek használatához szükségesek. Ha úgy dönt, hogy nem hoz létre EJB ügyfél JAR fájlt az EJB modulhoz, akkor az ügyfélfelületi osztályok az EJB JAR fájlba kerülnek. Alapértelmezésben a munkaterület minden EJB projekthez készít EJB ügyfél JAR projektet.
EJB tároló
Az EJB tároló EJB-komponenseket kezelő futási környezet. Az EJB tároló kezeli az EJB-komponens objektumok életciklusát, összehangolja az osztott tranzakciókat és megvalósítja az objektumok biztonságát. Általában az EJB kiszolgálók biztosítják az EJB tárolókat, amik a kiszolgálón futó komponenseket tartalmazzák.
Telepítési leírók
A telepítési leíró egy, az EJB JAR vagy EAR fájlban az EJB-komponensek mellé csomagolt XML fájl. Az EJB-komponensek tartalmát és szerkezetét, valamint az EJB tárolónak szóló biztonsági információkat leíró metaadatokat tartalmaz.
EJB kiszolgáló
Az EJB kiszolgáló magasszintű folyamat vagy alkalmazás, ami biztosítja az EJB-komponenseket használó kiszolgálóalkalmazások futtatásához szükséges futási környezetet. Az EJB kiszolgáló JNDI által elérhető névszolgáltatást ad, felügyeli és összehangolja az ügyfélalkalmazások erőforrás-foglalását, hozzáférést biztosít a rendszererőforrásokhoz és tranzakciószolgáltatást nyújt. EJB kiszolgálókat például adatbázis- vagy alkalmazáskiszolgálók nyújthatnak.