Det här avsnittet innehåller en sammanfattning av den distribuerade komponentarktitekturen
som definierats i arktitekturspecifikationerna för Sun Microsystems Enterprise JavaBeans (EJB)
version 2.x.
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. De innebär följande:
- Du kan bygga distribuerade tillämpningar genom att kombinera
komponenter som utvecklats med verktyg från olika leverantörer.
- Göra 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å-APIer. Men expertprogrammerare kan, om det behövs, fortfarande få direkt åtkomst till lågnivå-APIer.
- De kan utvecklas en gång och sedan placeras ut på flera plattformar utan omkompilering eller ändring av källkod.
- De erbjuder kompatibilitet mellan den EJB-specifikation som styr användningen av användningen av Enterprise-bönor och andra
Java APIer och CORBA. Det innebär också att
Enterprise-bönor kan samverka med 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 och meddelandestyrda bönor är grovmalna komponenter som är konstruerade att forma affärsprocesser medan entitetsbönor används till att forma finmalna dataobjekt.
- Sessionsbönor: Sessionsbönor
är icke-permanenta Enterprise-bönor.
De kan vara antingen "stateful" eller
"stateless" ("med läge" och "utan läge").
- Stateful-sessionsbönor: Lagrar
klientspecifik sessionsinformation (eller konversationslägen) mellan flera
metodanrop och transaktioner. De finns till för en enskild klient/server-session.
- Stateless-sessionsbönor: Underhåller inget konversationsläge och 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. Du kan bara få åtkomst till dem 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
få åtkomst till bönan som en klient som körs i en annan JVM på samma eller annan
dator.
Fjärrklientvyn har två gränssnitt
- 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 lokala 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 vyåtkomst 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 åtkomst från Enterprise-bönor som är
lokala klienter. Sessions- och entitetsbönor kan kopplas tätt till sina klienter,
vilket tillåter åtkomst utan den administrationstilläggskod som vanligen är
associerad med fjärrmetodanrop. Den lokala klientvyn har två gränssnitt:
- 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änstklientvyn 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 nås 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 använda och 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ö 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 åtkomst till systemresurser och tillhandahåller en transaktionstjänst. En
EJB-server kan tillhandahållas av t.ex. en databas- eller tillämpningsserver.