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:
- Lehetővé teszik osztott alkalmazások összeépítését különböző szállítók
eszközeivel fejlesztett komponensekből.
- Egyszerű fejlesztés. Nem kell a tranzakció- és állapotkezelés, a
többszálúság, az erőforrástárazás és egyéb bonyolult alacsony szintű
felületek részleteivel bajlódni. Szükség esetén viszont továbbra is
elérhetőek az alacsony szintű alkalmazás programozási felületek.
- Egyszer kell csak megírni őket, a különböző platformokra a forrás
módosítása és újrafordítása nélkül telepíthetők.
- Az EJB specifikáció kompatibilis más
Java
alkalmazás programozási felületekkel és a CORBA architektúrával.
Biztosítja továbbá az EJB-komponensek és a nem Javában írt alkalmazások
együttműködését is.
- 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.