Aussonderung Stateless Session Beans in Enterprise Javabeans

Stateless Session Beans

- EJBs, die eine Aufgabe in einem einzigen Schritt durchführen - sind wohl die einfachste aller EJB-Komponenten. Sie stellen minimale Anforderungen an die EJB-Komponenten-Entwickler und werden verwendet, um sehr einfache Operationen zu implementieren. Dennoch haben Sie einige wichtige Regeln für Stateless Session Beans, die, als EJB-Entwickler, müssen Sie daran denken.

Stateless Session Beans kann schwierig sein wegen der Art, die EJBHome und EJBObject Schnittstellen definiert sind. Alle Arten von EJB-Komponenten implementieren diese beiden Schnittstellen, die genug generisch sein müssen, die Methoden benötigt von Stateless Session Beans, Stateful Session Beans und Entity Beans zu unterstützen. Da stateless Session Beans so einfach sind, haben sie nicht alle Methoden müssen, dass die EJBHome und EJBObject Schnittstellen definieren. Folglich werfen einige der Methoden in der Stateless Session Bean immer Ausnahmen, wenn sie aufgerufen sind.

Nehmen Sie eine Notiz - wenn Sie Ihre eigenen Klassen definieren, ist es eine gute Idee ist, Schnittstellen zu definieren, so dass sie Methoden verbergen, die zu einer bestimmten Implementierung irrelevant sind. Sie erreichen dies einfach, indem man zuerst die engste Schnittstelle definiert, und sich dann zusätzliche Methoden für eine breitere Schnittstelle hinzuzufügen, und so weiter, bis Sie die erforderlichen Methoden definiert alle haben. Dadurch entfällt so die Unübersichtlichkeit, die in einer Klasse führt implementierten Methoden aus, die, der sie nicht brauchen und kann sie nicht nutzen.

Stateless Session-Bean-Lebenszyklus

Stateless Session Beans sind EJB-Komponenten mit zwei einfachen Ziele im Auge:

  • Um einfache Aufgaben, die in einem einzigen Verfahrensaufruf durchgeführt werden kann.
  • Um die von vielen Kunden zur gleichen Zeit gemeinsam genutzt werden. Dies ist die Ursache für die Session Bean staatenlos zu sein.

Der Begriff staatenlos bezieht sich auf die Tatsache, dass die Stateless Session Bean keine Informationen für eine EJB-Client zwischen Methodenaufrufen für diesen Client halten kann. Der Grund stateless Session Beans staatenlos ist, weil die Bohnen in einem gemeinsamen Pool auf dem EJB-Container zwischen den einzelnen Methodenaufruf auf der Bohne, ein Prozess in 1 gezeigt gehalten werden.


Abbildung 1: Lifecycle der Stateless Session Bean.

Wenn ein Client eine Methode für eine Stateless Session Bean ruft es aus dem Pool entfernt wird, wird das Verfahren ausgeführt, und die Bohne wird sofort an den Pool zurückgegeben. Wenn Sie also zwei gleichzeitige Methoden auf einer Stateless Session Bean Variable ausgeführt, verschiedene Bohnen in der EJB-Container wahrscheinlich würde sie warten.

Ideal Fällen für die Verwendung von Stateless Session Beans sind für einfache Aufgaben, wie zum Beispiel eine Zahlungsabwicklung, eine Anzahlung zu machen, oder einen Rückzug zu machen. Diese Aufgaben haben alle zwei gemeinsame Merkmale: Sie repräsentieren Aktionen, und sie können in einem einzigen Schritt durchgeführt werden.

Während stateless Session Beans einen großen Leistungsvorteil bieten, sind sie für alle Aufgaben, die nicht die richtige Wahl. Wenn Sie Ihre Session-Bean müssen von einem Client über mehrere Methodenaufrufe gelieferten Informationen zu erinnern, dann sollten Sie Stateful Session Beans verwenden.

Wenn stateless Session Beans zu verwenden,

Angesichts der Fülle von EJB-Komponente Möglichkeiten zur Verfügung, kann es manchmal schwierig sein, zu entscheiden, ob die Stateless Session Bean das richtige Werkzeug für Ihre Aufgabe. Ein paar einfache Richtlinien können Ihnen dabei helfen, diese Entscheidung zu treffen.

  • Zunächst betrachten, wenn die Aufgabe der Anwendung benötigt, kann zur Durchführung in einem einzigen Aufruf der Methode erreicht werden. Denken Sie daran, dass ein Stateless Session Bean nicht Zustand spezifisch für einen Kunden zwischen Methodenaufrufen erinnern kann. Wenn also die Aufgabe in der Hand mehr als einen einzigen Schritt beinhaltet, ist die Stateless Session Bean nicht die richtige Wahl. Aber wenn Sie die Aufgabe, in einem einzigen Schritt durchführen können, dann verwenden Sie immer den Stateless Session Bean.
  • Zweitens bestimmen, ob der Prozess Ihre Anwendung ausführt, um mehrere Clients gleichzeitig sichtbar zu sein. Wenn die Anwendungsinformationen und Zustand zwischen mehreren Clients zu teilen muss, dann haben Sie nur eine Wahl - eine Entity-Bean.

Denken Sie daran, dass ein Stateless Session Bean erhebliche Performance-Vorteile für Ihre Anwendung zur Verfügung stellt. Im Allgemeinen, wenn Sie die Anwendung entwerfen können die Verwendung von Stateless Session Beans, Anwendungsserver zu maximieren in der Lage, schneller auf Client-Anrufungen zu reagieren.

Menü