EJB-arkitektur

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.

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.