- Wieder verwendbare Software Komponenten
- EJBs Kapseln Anwendungslogik
- Verfügen über keine Darstellungskomponente
- Der Einsatz von EJBs lohnt sich erst ab mittelgroßen Systemen bei der verschieden Applikation auf die gleiche Businesslogik zugreifen.
- EJB-Container ist notwendig
Aufgaben eines EJB-Containers
- Überwachung des Lebenszyklus von EJBs
- Instanzen-Pooling
- Namens- und Verzeichnisdienst
- Transaktionsdienst
- Nachrichtendienst (Message Service)
- Persistenz
Beans
- In sich geschlossene Software-Komponente
JavaBeans
- Eine JavaBean inst eine wiederverwendbare Software-Komponente, die mit einem Builder-Tool visuell manipuliert werden kann.
- JavaBeans ist nichts anderes, als eine Sammlung von Eigenschaften einer (grafischen) Komponente.
- Datencontainer mit bestimmten Eigenschaften eines Objekts.
- Erlaubt diese Eigenschafte auch dynamisch zu erkennen und per Reflection zu manipulieren.
- Konzentriert sich im Wesentlichen auf die Persistenz dieser Eigenschaften.
Enterprise JavaBeans (EJB)
- Die EJB-Spezifikation beschreibt nun ein Framework, dass die verteilte Verarbeitung von transaktionsorientierter Geschäftslogik ermöglicht.
- Bleiben für den Benutzer stehts verborgen.
- Werden im Wesentlichen durch die APIs und Services definiert.
- Kern der EJB-Technologie ist der Methoden-Fernaufruf (RMI).
- Stub, Skeleton, Broker
- Restriktionen siehe J2EE Codebook Seite 604
Entity Beans
- Schnittstelle zur Datenbank oder anderen persistenten Speichermedien.
- Repräsentieren ein Objekt der Business Logic.
- Bean Managed Persistence vs Container Managed Persistence
- Muss immer einen Primary Key besitzen.
- Lebenszyklus siehe J2EE Codebook Seite 605
Session-Beans
- Implementieren Geschäftsprozesse (e.g. Überweisung zwischen Konten)
- Session-Beans operieren auf Entity-Beans
- Stateful-/Stateless Session-Beans
- Stateful Session-Bean: Für die gesamte Dauer des Session dem Client zugeordnet
- Stateless Session-Bean: können auch unbemerkt innerhalb einer Session ausgetausht werden (vom Client unbemerkt).
Stateless Session-Beans
- Diese vergessen, nachdem eine Operation abgeschlossen ist, den Client augenblicklich und können zu keinem Zeitpunkt entscheiden, ob sie mit dem aktuellen Client schon einmal verbunden waren.
- Werden vom Container über einen Pool verwaltet.
- Es ist nicht möglich Werte in einer Instanzvariable zu speichern.
- Von ihnen bereitgestellten Methoden ähneln damit statischen Klassenmethoden.
Stateful Session-Beans
- Können ihren Zustand in Instanzvariablen speichern. => Koversationsgedächtnis.
- Client arbeitet stets mit der gleichen Instanz.
- Verfügen über einen inneren Zustand, der häufig den Zustand und Fortschritt eines bestimmten Geschäftsprozesses darstellt.
Message Driven Beans
- Ermöglichen ansynchrone Kommunikation von EJB-Komponenten über den Java Message Service (JMS).
- Sind im Grunde erweiterte Stateless Session-Beans bei denen die Partner nicht mehr aufeinander warten müssen und parallel weiterarbeiten können.
- Hinterlassen eine Nachricht (mit gewünschter Operation) im MessageQueue des Empfängers und schauen von Zeit zu Zeit in Ihrem Eingang, ob eine Antwort vorliegt.
- Client kommuniziert nur über eine MessageQueue mit MDB.
- Besitzen keinen inneren Zustand.
Bestandteile einer EJB
- In der Regel besteht eine EJB aus mehreren Java-Klassen.
- Home-Interface dient dazu, die Bean zu erzeugen.
- Home-Interface muss von EJBHome abgeleitet werden.
- Über das Remote-Interface kommuniziert der Client mit der entfernten EJB.
- Dieses deklariert alle Methoden die der Client auf dem Objekt aufrufen kann.
- EJB-Implementierung bildet den Kern der EJB-Anwendung und nimmt die gewünschte Geschäftslogik auf, implementiert die Methoden des Remote- und des Home-Interface, die erforderliche interne Repräsentation der Daten sowie Methoden, über die der EJB-Container die Bean verwaltet.
Eine Session-Bean erstellen
- TODO
No comments:
Post a Comment