Enterprise JavaBeans - Ein Überblick

 Diese Seite drucken

Was ist eine Enterprise Bean genau?

Nochmal: Eine Enterprise Bean ist eine in Java geschriebene serverseitige Komponente, in der die eigentliche Anwendungslogik 'business logic' gekapselt ist. Mit business logic bezeichnet man den Code, der die eigentlichen Zwecke der Applikation verfolgt.
In einer Applikation zur Lagerverwaltung könnte eine Enterprise Bean beispielsweise Methoden namens pruefeBestand oder bestelleArtikel implementieren. Beim Aufruf dieser Methoden können Remote-Clients diese Dienste des Lageverwaltungsprogramms in Anspruch nehmen.

Welche Vorteile haben Enterprise Beans?

EJBs vereinfachen die Entwicklung von komplexen, verteilten Applikationen.

Zum einen sorgt der EJB-Container für Dienste auf System-Level-Ebene, so dass sich der Bean-Entwickler auf die wirklichen Probleme der Anwendungslogik konzentrieren kann. Der EJB-Container - und nicht der Bean-Entwickler - ist für Dienste wie Transaktions- und Sicherheitmanagement zuständig.

Zweitens ist im Idealfall im Client keine Anwendungslogik mehr enthalten, sondern nur noch in den Beans. Der Entwickler des Clients kann sein Interesse daher ganz auf die Präsentationsschicht im Client focussieren. Er muss beisepielsweise keine Routinen für die Umsetzung der business rules schreiben oder Code für den Datenbankzugang. Dadurch wird der Client 'dünner'; er wird zum 'thin client'. Das ist natürlich für Clients besonders wichtig, die auf kleinen Geräten wie Handys oder PDAs laufen sollen.

Drittens sind Enterprise Beans portierbare Komponenten, d.h. ein application assembler kann aus vorhandenen Beans neue Applikationen zusammenstellen, die wiederum auf jedem kompatiblen J2EE Server laufen.

Wann sollte man Enterpries Beans benutzen?

Wenn folgende Ansprüche an die Appliaktion gestellt werden:

Wie sieht eine Enterprise Bean aus?

Jede EJB hat ein Home-Interface, die Schnittstelle zum Lebenszyklus einer EJB: Erzeugen, Löschen, Finden

Die Schnittstelle zu den Geschäftsfunktionen wird vom (Remote) Component Interface der EJB dargestellt: Geschäftsmethoden

Daneben verfügt sie über die eigentliche Bean-Klasse, die das gewünschte Verhalten implementiert : Geschäftsmethoden und Call-Back-Methoden.

Aufruf von EJBs

EJBs folgen dem Design Pattern 'Abstract Factory': Clients benutzen den Namensdienst des Servers (JNDI), um ein Fabrikationobjekt zu finden, das eine Instanz der gewünschten EJB liefern kann.
Das Fabrikationsobjekt implementiert das Home-Interface der EB.
Der Client erzeugt eine Instanz der EJBHome class. Der EJBContainer erzeugt dann Instanzen der EJBObjekt class und der bean class.Der Client ruft die business methods über das remote Interface auf.
Das Fabrikationsobjekt erzeugt/lädt eine Instanz der EB uind ein Proxy-Objekt, auf dem der Client die Geschäftsmethoden der EJB aufrufen kann.
 

Das Home Interface

Das Home Interface ist die Schnittstelle zu den Lebenszyklus-Funktionen einer EJB und wird von javax.ejb.EJBHome (für die remote view) oder javax.ejb.LocalHome (für die local view) abgeleitet.
Der Client benutzt dieses Interface hauptsächlich, um Bean-Instanzen zu erzeugen, sie zu finden, oder sie zu löschen .

(remote) home interface local home interface Home Interface Methoden
für alle Beans
   

Erzeugen neuer
Bean-Instanzen

    Löschen von Bean-Instanzen
    Metadaten erhalten
    Einen Handle für das
Home Interface bekommen
(remote) home interface local home interface Home Interface Methoden
nur für Entity Beans
    Finden über den primary key


 

Das (Remote) Component Interface

Das (remote) Component Interface bietet eine Schnittstelle zu den Methoden an, die von einer Bean nach außen angeboten werden. Das Component Interface macht die geforderte Funktionalität aus der business logic nach außen sichtbar: E bietet an, 'was diese Bean ist oder macht'.
Dieses Interface wird von javax.ejb.EJBObject (für die remote view) oder javax.ejb.LocalObject (für die local view) abgeleitet.

Der Client kann nur so die Methoden aufrufen, die die Bean anbietet.


Die Enterprise Bean Class


 
Die Enterprise Bean Class sorgt für die eigentliche Implementation der Geschäftsmethoden. Wenn ein Client eine Methode am Component Interface aufruft, wird vom Container die entsprechende Geschäftsmethode in der Enterprise Bean Class aufgerufen.
Je nachdem, ob es sich um eine Entity Bean, eine Session Bean oder eine Message-Driven Bean handelt, wird die Bean Class von von javax.ejb.EntityBean, javax.ejb.SessionBean oder javax.ejb.MessageDrivenBean abgeleitet.

 

Die 3 Typen von Enterprise Beans

Typ der
Enterprise Bean
Zweck Eselsbrücke
Session Bean
Führt Aufgaben für den Client aus
'mach dies und jenes'
Entity Bean
Repräsentiert ein Objekt aus der Anwendungslogik (business entity object), das im persistenten Speicher existiert
'Ding'
Message-Driven Bean
arbeitet als Listener ('Horchdienst') für die Java Message Service API für die Verarbeitung asynchroner Messages
'wartender Bote'



18 -07-2002   Petra Haberer  Version 1.0.0