EJB-arkitektur

Dette emne indeholder en højniveauoversigt over den distribuerede komponentarkitektur, der er defineret i EJB-arkikteturspecifikationen (Sun Microsystems Enterprise JavaBeans™).

De samlede Enterprise JavaBeans-specifikationer og beskrivelser af teknologien er tilgængelige fra webstedet java.sun.com.

Enterprise-beans stiller flere fordele til rådighed for programudviklere:

Enterprise-beans
En Enterprise-bean er en ikke-synlig komponent i en distribueret, transaktionsorienteret Enterprise Application. Enterprise-beans distribueres typisk til EJB-opbevaringssteder og udføres på EJB-servere. Du kan tilpasse dem ved at ændre deres distributionsdeskriptorer, og du kan sætte dem sammen med andre beans for at oprette nye programmer. Der er tre typer Enterprise-beans: sessions-beans, entitets-beans og meddelelsesstyrede beans.
  • Sessions-beans: Sessions-beans er ikke-vedvarende Enterprise-beans. De kan have en tilstand (Stateful) eller være tilstandsløse (Stateless). En sessions-bean med tilstand arbejder på en enkelt klients vegne og opretholder klientspecifikke sessionsoplysninger på tværs af flere metodekald og transaktioner. En sessions-bean eksisterer lige så længe, som en enkelt klient/serversession varer. En tilstandsløs sessions-bean (Stateless) opretholder derimod ikke nogen konversationstilstand (Conversational). Tilstandsløse (Stateless) sessions-beans lægges i en pulje pr. opbevaringssted og håndterer flere anmodninger fra flere klienter.
  • Entitets-beans: Entitets-beans er Enterprise-beans, der indeholder vedvarende data, og som kan gemmes i diverse vedvarende datalagre. Hver enkelt entitets-bean har sin egen identitet. Entitets-beans, som administrerer deres egen vedvarenhed, kaldes BMP-entitets-beans (bean-managed persistence). Entitets-beans, der uddelegerer deres vedvarenhed til deres EJB-opbevaringssted, kaldes CMP-entitets-beans (container-managed persistence).
  • Meddelelsesstyrede beans: Meddelelsesstyrede beans er Enterprise-beans, som modtager og behandler JMS-meddelelser. Til forskel fra sessions- eller entitets-beans, har meddelelsesstyrede beans ingen grænseflader. Der er kun adgang til dem via meddelelser, og de kan ikke oprette konversationstilstand (Conversational). Meddelelsesstyrede beans tillader synkron kommunikation mellem kø og lytter, og de sørger for adskillelse mellem meddelelsesbehandling og forretningslogik.
Oversigt over eksterne klienter
Specifikationen ekstern klientoversigt blev tilgængelig samtidig med EJB 1.1. En Enterprise-beans eksterne klientoversigt er uafhængig af placeringen. En klient, der kører i den samme JVM som en bean-forekomst, bruger det samme API til at få adgang til bean'en som en klient, der udføres i en anden JVM på den samme eller en anden maskine.
  • Ekstern grænseflade: Den eksterne grænseflade specificerer de eksterne virksomhedsmetoder, som en klient kan kalde for en Enterprise-bean.
  • Ekstern privat grænseflade: Den eksterne private grænseflade specificerer de metoder, som eksterne klienter anvender til at finde, oprette og fjerne forekomster af Enterprise-bean-klasser.
Lokal klientoversigt
Specifikationen lokal klientoversigt er tilgængelig i EJB 2.0 og senere. I modsætning til den eksterne klientoversigt er en beans lokale klientoversigt afhængig af placeringen. Adgang via en lokal klientoversigt til en Enterprise-bean kræver, at både den lokale klient og den Enterprise-bean, som stiller den lokale klientoversigt til rådighed, findes i samme JVM. Den lokale klientoversigt er derfor i modsætning til den eksterne klientoversigt afhængig af placeringen. Lokale grænseflader og lokale private grænseflader understøtter letvægtsadgang fra Enterprise-beans, der er lokale klienter. Der kan være en fast tilknytning mellem sessions- og entitets-beans og deres klienter, så de kan bruges uden det ekstra ressourceforbrug, der ofte er forbundet med eksterne metodekald.
  • Lokal grænseflade: Den lokale grænseflade er en letvægtsversion af den eksterne grænseflade, men til lokale klienter. Den inkluderer forretningslogikmetoder, der kan kaldes af en lokal klient.
  • Lokal privat grænseflade: Den lokale private grænseflade specificerer de metoder, som lokale klienter anvender til at finde, oprette og fjerne forekomster af Enterprise-bean-klasser.
Oversigt over webserviceprogramklienter
I EJB 2.1-specifikationen blev der indført understøttelse af webserviceprogrammer i EJB-arkitekturen. En klient for en sessions-bean kan være en webserviceprogramklient. En webserviceprogramklient kan udnytte en tilstandsløs (Stateless) sessions-beans oversigt over webserviceprogramklienter, som har en tilsvarende grænseflade til serviceprogramslutpunktet.
  • Grænseflade til serviceprogramslutpunkt: En tilstandsløs (Stateless) sessions-beans grænseflade til serviceprogramslutpunkt stiller sessions-bean'ens funktionalitet til rådighed som et webserviceprogramslutpunkt. WSDL-dokumentet (Web Service Description Language) til et webserviceprogram beskriver webserviceprogrammet som et sæt slutpunkter, der behandler meddelelser. Et WSDL-dokument kan inkludere en tilstandsløs (Stateless) sessions-beans grænseflade til serviceprogramslutpunkter som et af dens slutpunkter. En eksisterende tilstandsløs (Stateless) sessions-bean kan revideres, så den inkluderer en oversigt over webserviceprogramklienter, eller en grænseflade til serviceprogramslutpunkter kan tilknyttes vha. mapping fra et eksisterende WSDL, så den angiver den korrekte grænseflade.

    En oversigt over webserviceprogramklienter er uafhængig af placeringen og kan benyttes via eksterne kald.

EJB klient-JAR-fil
En EJB klient-JAR-fil er en valgfri JAR-fil, der kan indeholde de klientgrænseflader, som et klientprogram skal bruge for at kunne benytte klientoversigter over de Enterprise-beans, der findes i EJB JAR-filen. Hvis du beslutter ikke at oprette en EJB klient-JAR-fil til et EJB-modul, vil alle klientgrænsefladeklasserne være indeholdt i EJB JAR-filen. Som standard opretter arbejdsbænken EJB klient-JAR-projekter for hvert tilsvarende EJB-projekt.
EJB-opbevaringssted
Et EJB-opbevaringssted er et runtime-miljø, der administrerer en eller flere Enterprise-beans. EJB-opbevaringsstedet administrerer Enterprise-bean-objekternes livscyklus, koordinerer distribuerede transaktioner og implementerer objektsikkerhed. Hvert EJB-opbevaringssted stilles normalt til rådighed af en EJB-server og indeholder et sæt Enterprise-beans, der udføres på serveren.
Distributionsdeskriptor
En distributionsdeskriptor er en XML-fil, der er pakket med Enterprise-beans i en EJB JAR-fil eller en EAR-fil. Den indeholder metadata, der beskriver indholdet af og strukturen på Enterprise beans og runtime-transaktions- og sikkerhedsoplysninger for EJB-opbevaringsstedet.
EJB-server
En EJB-server er en proces eller et program på højt niveau, der stiller et runtime-miljø til rådighed for at understøtte udførelsen af serverprogrammer, der anvender Enterprise-beans. En EJB-server stiller et navngivningsserviceprogram til rådighed via JNDI, administrerer og koordinerer allokering af ressourcer til klientprogrammer, sørger for adgang til systemressourcer og stiller et transaktionsserviceprogram til rådighed. En database eller programserver kunne f.eks. stille en EJB-server til rådighed.

(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.