Det här avsnittet innehåller en sammanfattning av den distribuerade komponentarktitekturen
som definierats i arktitekturspecifikationerna för Sun Microsystems Enterprise JavaBeans (EJB).
De fullständiga Enterprise JavaBeans-specifikationerna och beskrivningar av tekniken finns på webbplatsen java.sun.com
.
Enterprise-bönor har flera fördelar för tillämpningsutvecklare.
- Med dem går det att bygga distribuerade tillämpningar genom att kombinera
komponenter som utvecklats med verktyg från olika leverantörer.
- Det gör det lätt att skriva tillämpningar. Du behöver inte ägna dig åt lågnivådetaljer
när det gäller hantering av transaktioner och satser, multitrådar, resurspooler och andra
komplicerade lågnivå-API:er. Men expertprogrammerare kan, om det behövs, fortfarande få direkt access till lågnivå-API:er.
- De kan utvecklas en gång och sedan placeras ut på flera plattformar utan omkompilering eller ändring av källkod.
- Den EJB-specifikation som styr användningen av Enterprise-bönor är kompatibel
med andra Java-API:er och CORBA. Den har också funktion för samverkan mellan
Enterprise-bönor och tillämpningar som inte är Java-tillämpningar.
- Enterprise-bönor
- En Enterprise-böna är en icke-synlig komponent för en distribuerad,
transaktionsorienterad Enterprise-tillämpning. Enterprise-bönor är vanligen
utplacerade i EJB-behållare och körs på EJB-servrar. Du kan anpassa dem genom
att ändra deras utplaceringsbeskrivningar, och du kan sätta ihop dem med andra
bönor för att skapa nya tillämpningar. Det finns tre slags Enterprise-bönor:
sessionsbönor, entitetsbönor och meddelandestyrda bönor.
- Sessionsbönor: Sessionsbönor
är icke-permanenta Enterprise-bönor. De kan vara antingen "stateful" eller
"stateless" ("med läge" och "utan läge"). I En Stateful-sessionsböna lagras
klientspecifik sessionsinformation (eller konversationslägen) mellan flera
metodanrop och transaktioner.
Den finns till för en enskild klient/server-session.
En Stateless-sessionsböna underhåller som jämförelse inte något
konversationsläge. Stateless-sessionsbönor samlas i sina behållare för att
hantera flera förfrågningar från flera klienter.
- Entitetsbönor: Entitetsbönor är Enterprise-bönor
som innehåller permanenta data och kan sparas på olika permanenta
datalagringsplatser. Varje entitetsböna har sin egen identitet. Entitetsbönor
som hanterar sin egen integritet kallas BMP-entitetsbönor (bean-managed
persistence ). Entitetsbönor som delegerar sin integritet till sin
EJB-behållare kallas CMP-entitetsbönor (container-managed persistence)..
- Meddelandestyrda bönor: Meddelandestyrda bönor är
Enterprise-bönor som tar emot och bearbetar JMS-meddelanden. Till skillnad
från sessions- och entitetsbönor har meddelandestyrda bönor inget gränssnitt.
De kan bara accessas via meddelanden och de underhåller inget konversationsläge.
Meddelandestyrda bönor tillåter asynkron kommunikation mellan kön och lyssnaren,
och håller isär meddelandebearbetning och verksamhetslogik.
- Fjärrklientvy
- Specifikationen för fjärrklientvyn blev tillgänglig från om
med EJB 1.1. Fjärrklientvyn för en Enterprise-böna är platsoberoende.
En klient som körs i samma JVM som en bönförekomst använder samma API för att
accessa bönan som en klient som körs i en annan JVM på samma eller annan
dator.
- Fjärrgränssnitt: Fjärrgränssnittet specificerar
de fjärrverksamhetsmetoder som en klient kan använda för att anropa en
Enterprise-böna.
- Fjärrhemgränssnitt: Fjärrhemgränssnittet specificerar de
metoder som används av fjärrklienter när de ska söka, skapa och ta bort
förekomster av Enterprise-bönklasser.
- Lokal klientvy
- Specifikationen för den lokal klientvyn finns i EJB 2.0 eller
senare version. Till skillnad mot fjärrklientvyn så är den lokala vyn för en
böna platsberoende. En lokal vyaccess till en Enterprise-böna kräver att både
den lokala klienten och Enterprise-bönan som tillhandahåller den lokala klientvyn
finns i samma JVM. Den lokala klientvyn tillhandahåller därför inte den
platsgenomskinlighet som tillhandahålls av fjärrklientvyn. Lokala gränssnitt och
lokala hemgränssnitt har funktion för enkel access från Enterprise-bönor som är
lokala klienter. Sessions- och entitetsbönor kan kopplas tätt till sina klienter,
vilket tillåter access utan den administrationstilläggskod som vanligen är
associerad med fjärrmetodanrop.
- Lokalt gränssnitt: Det
lokala gränssnittet är en enkel version av fjärrgränssnittet
och avsett för lokala klienter. Det innehåller verksamhetslogikmetoder
som kan anropas av en lokal klient.
- Lokala hemgränssnitt: Det lokala hemgränssnittet specificerar
de metoder som används av lokala klienter för att söka, skapa, och ta bort
Enterprise-bönklasser.
- Webbtjänstklientvy
- I EJB 2.1-specifikationen introducerade EJB-arkitekturen funktioner för
webbtjänster. En klient för en sessionsböna kan vara en webbtjänstklient.
En webbtjänstklient kan använda webbtjänsteklientvyn för en stateless-sessionsböna,
som har ett motsvarande gränssnitt för tjänsteslutpunkten.
- Tjänsteslutpunktens gränssnitt
- Tjänsteslutpunktens gränssnitt för en stateless-sessionsböna visar
sessionsbönans funktionalitet som en webbtjänstslutpunkt. WSDL-dokumentet
(webbtjänstbeskrivningsspråket) för en webbtjänst beskriver webbtjänsten som
en uppsättning slutpunkter som körs på meddelanden. Ett WSDL-dokument kan
innehålla tjänstslutpunktsgränssnittet för en stateless-sessionsböna, som
en av dess slutpunkter.
En befintlig stateless-sessionsböna kan ändras så att den inkluderar en
webbtjänstklientvy, eller så att ett tjänstslutpunktsgränssnitt kan avbildas
från en befintlig WSDL så att rätt gränssnitt tillhandahålls.
En
webbtjänstklientvy är oberoende av plats och kan accessas via fjärranrop.
- JAR-fil för EJB-klient
- En EJB-klients JAR-fil är en frivillig JAR-fil som innehåller de klientvygränssnitt
som ett klientprogram behöver för att använda klientvyerna för de Enterprise-bönor
som finns i EJB JAR-filen. Om du beslutar dig för att skapa en EJB-klient-JAR-fil
för EJB-modul kommer alla klientgränssnittsklasser att finnas i EJB JAR-filen. Arbetsmiljön
skapar som standard EJB-klient-JAR-projekt för varje motsvarande EJB-projekt.
- EJB-behållare
- En EJB-behållare är en runtime-miljö som hanterar en eller flera
Enterprise-bönor. EJB-behållaren hanterar livscyklerna för Enterprise-bönobjekt,
samordnar distribuerade transaktioner och implementerar objektsäkerhet. Normalt
tillhandahålls varje EJB-behållare av en EJB-server och innehåller en uppsättning
Enterprise-bönor som körs på servern.
- Utplaceringsbeskrivning
- En utplaceringsbeskrivning är ett XML-filpaket med Enterprise-bönorna
i en EJB JAR-fil eller en EAR-fil. Den innehåller metadata som beskriver
Enterprise-bönornas innehåll och struktur samt runtime-transaktion och
säkerhetsinformation för EJB-behållaren.
- EJB-server
- En EJB-server är en högnivåprocess eller en tillämpning som
tillhandahåller en runtime-miljö som stöd för körningen av servertillämpningar
som använder Enterprise-bönor. En EJB-server tillhandahåller en JNDI-åtkomlig
namntjänst, hanterar och koordinerar allokeringen av resurser för klienttillämpningar,
tillhandahåller access till systemresurser och tillhandahåller en transaktionstjänst. En
EJB-server kan tillhandahållas av t.ex. en databas- eller tillämpningsserver.