Sunday, September 02, 2007

Enterprise Java Beans

  • 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: