EJB 2.x-arkitektur

Dette emne indeholder en oversigt i store træk af den distribuerede komponentarkitektur, der er defineret i specifikationen for Sun Microsystems Enterprise JavaBeans™ (EJB) version 2.x-arkitekturen.

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

Enterprise-beans giver programudviklere flere fordele. De gør følgende:

Enterprise-beans
En Enterprise-bean er en ikke-visuel komponent i et distribueret, transaktionsorienteret Enterprise-program. Enterprise-beans distribueres typisk til EJB-opbevaringssteder og udføres på EJB-servere. De kan tilpasses, ved at deres distributionsdeskriptorer ændres, og de kan oversættes sammen med andre beans og dermed indgå i nye programmer. Der findes tre typer Enterprise-beans: sessions-beans, entitets-beans og meddelelsesstyrede beans. Sessions-beans og meddelelsesstyrede beans er grovkornede komponenter, som har til formål at modellere virksomhedsprocesser, mens entitets-beans bruges til at modellere finkornede dataobjekter.
  • Sessions-beans: Sessions-beans er ikke-persistente Enterprise-beans. De kan have en tilstand eller være tilstandsløse (Stateful/Stateless).
    • Sessions-beans af typen Stateful: Arbejder på vegne af en enkelt klient og opretholder klientspecifikke sessionsoplysninger (kaldes konversationstilstand) på tværs af metodekald og transaktioner. De eksisterer i en enkelt klient/serversessions løbetid.
    • Sessions-beans af typen Stateless: Opretholder ikke en konversationstilstand og placeres i en pulje af deres opbevaringssted, så de kan håndtere anmodninger fra flere klienter.
  • Entitets-beans Entity-beans er Enterprise-beans, der indeholder vedvarende data, og som kan gemmes i diverse vedvarende datalagre. Hver entitets-bean har sin egen identitet. Entitets-beans, der administrerer deres egen persistens kaldes entitets-beans med bean-administreret persistens (BMP - bean-managed persistence). Entitets-beans, der delegerer deres persistens til deres EJB-opbevaringssted, kaldes CMP-entitets-beans (container-managed persistence).
  • Meddelelsesstyrede beans: Meddelelsesstyrede beans er Enterprise-beans, der modtager og behandler JMS-meddelelser. I modsætning til sessions- eller entitets-beans har meddelelsesstyrede beans ikke nogen grænseflader. Der er kun adgang til dem via meddelelsesfunktionen, og de opretholder ikke nogen konversationstilstand. Meddelelsesstyrede beans tillader asynkron kommunikation mellem køen og lytteren og adskiller meddelelsesbehandling og forretningslogik.
Ekstern klientoversigt
Specifikationen af den eksterne klientoversigt blev tilgængelig fra og med EJB 1.1. En Enterprise-beans eksterne klientoversigt er uafhængig af placeringen. En klient, der udføres i samme JVM som en bean-forekomst, bruger samme API til at få adgang til bean'en som en klient, der udføres i en anden JVM på samme maskine eller en anden maskine. Den eksterne klientoversigt består af to grænseflader
  • Ekstern grænseflade: Den eksterne grænseflade angiver de eksterne virksomhedsmetoder, som en klient kan kalde på en Enterprise-bean.
  • Ekstern privat grænseflade: Den eksterne private grænseflade angiver de metoder, som eksterne klienter anvender til at finde, oprette og fjerne forekomster af Enterprise-bean-klasser.
Lokal klientoversigt
Specifikationen af den lokale klientoversigt er tilgængelig i EJB 2.0 og nyere. 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 enkel adgang fra Enterprise-beans, der er lokale klienter. Sessions- og entitets-beans kan forbindes tæt med deres klienter og tillade adgang uden det ekstra forbrug, der ofte er forbundet med eksterne metodekald. Den lokale klientoversigt består af to grænseflader:
  • Lokal grænseflade: Den lokale grænseflade er en slank udgave 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 angiver 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 sessions-beans oversigt over webserviceprogramklienter, som har en tilsvarende grænseflade til serviceprogramslutpunktet.
Grænseflade til serviceprogramslutpunkt
Grænsefladen til serviceprogramslutpunktet for en tilstandsløs sessions-bean udbyder funktionaliteten for sessions-bean'en som slutpunktet for et webserviceprogram. 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 sessions-beans grænseflade til serviceprogramslutpunkter som et af dens slutpunkter. En eksisterende tilstandsløs sessions-bean kan revideres, så den indeholder 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, og klientoversigterne for de Enterprise-beans, som er indeholdt i EJB JAR-filen. Hvis du vælger ikke at oprette en EJB klient-JAR-fil til et EJB-modul, vil alle klientgrænsefladeklasserne være indeholdt i EJB JAR-filen. Arbejdsbænken opretter som standard 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 sammen med Enterprise-beans i en EJB JAR-fil eller en EAR-fil. Den indeholder metadata, der beskriver indhold og struktur for disse Enterprise-beans, og runtime-transaktioner og sikkerhedsoplysninger til EJB-opbevaringsstedet.
EJB-server
En EJB-server er en proces eller et program på højt niveau, som stiller et runtime-miljø til rådighed for udførelse af serverprogrammer, der bruger Enterprise-beans. En EJB-server stiller en navnefunktion til rådighed, som JNDI har adgang til, administrerer og koordinerer tildeling af ressourcer til klientprogrammer, giver adgang til systemressourcer og udfører transaktionsfunktioner. En EJB-server kan f.eks. leveres af en database eller en programserver.