EJB (Enterprise Java Beans)

EJB (Enterprise Java Beans)

Copyright © Shutterstock/Tashatuvango

Was ist EJB?

Einfach ausgedrückt sind EJB (Enterprise Java Beans) Java Beans, die in einer Enterprise-Umgebung funktionieren. Eine Java Bean ist ein Pojo (Plan Old Java Object), das gemäß den Normen der Java Bean Spezifikation entwickelt wurde. Eine EJB-Klasse wird durch den Java Specification Request (JSR) 345 definiert und eingesetzt, um in einem Enterprise Framework (Unternehmensframework) zu arbeiten.

Obwohl die Implementierung von EJB in einer Enterprise Umgebung aufgrund der Vielfalt der auf den unteren Ebenen der Umsetzung eingesetzten Technologien sehr komplex ist, ist die Grundidee recht einfach. Da EJB mit dem Paradigma der Unternehmensentwicklung (Enterprise Development) verbunden ist, ist es jedoch sehr wichtig, die Komplexität der Java Enterprise Umgebung (JEE) und die Rolle, die EJB dabei spielt, zu verstehen.

Arten von EJB (Enterprise Java Beans)

Die Entwicklung und Unterstützung von EJB wird vom Java Community Process (JCP) als Java Specification Request (JSR) verwaltet. Die aktuelle Release-Version EJB 3.2 ist durch JSR 345 definiert. Vor EJB 3.0 waren persistente Komponenten Teil des EJB-Modells. Später entstand JPA (Java Persistence API) als separate Komponente, die von einem eigenen JSR verwaltet wurde. Sie ergänzen sich jedoch gegenseitig und finden oft gemeinsam Verwendung bei der Entwicklung von Unternehmensanwendungen. Das Komponentenmodell von EJB umfasst drei Arten von Objekten:

  • Session-Beans, die zustandsbehaftet (stateful), zustandslos (stateless) oder Singleton sein können. Session-Beans führen speziell Business-Service-Tasks für den Client aus. Sie sind im Allgemeinen so konfiguriert, dass sie im Kontext von verteilten Transaktionen und Zugriffskontrolle arbeiten. Session-Beans funktionieren auch als Web-Service-Endpunkte, zum Beispiel als Referenz zwischen Client- und Server-Endpunkten.
  • Message-driven Beans werden in Verbindung mit einem Dienst verwendet, der eine asynchrone Antwort auf externe Events bereitstellt. Die asynchronen Endpunkte “konsumieren” Nachrichtenobjekte aus der Message Queue (Nachrichtenwarteschlange)
  • Wie bereits erwähnt, wurden die Entity-Beans, konzeptionell grundsätzlich durch JPA ersetzt, bieten jedoch einen Persistenzdienst, der die EJB-Komponentenmodellarchitektur ergänzt. Entity-Beans sind Objekte, die beständige Geschäftsdaten darstellen. Da Entity-Beans separat vom Persistenz Provider einer JEE und nicht vom EJB-Container verwaltet werden, gelten sie jedoch nicht unbedingt als Enterprise-Beans.

EJB (Enterprise Java Beans) in einem Java Enterprise Environment (JEE)

JEE kann nominell als dreistufige Architektur betrachtet werden: Web-Container für die Lebenszyklusverwaltung von Java-Servlets, JSP und Managed Beans; EJB-Container für das Life-Cycle-Management von Enterprise Java Beans; und die Persistenzschicht zum Bereitstellen des JPA-Dienstes für das Enterprise System. Ein EJB-Container beinhaltet die Basis-Umgebung für Enterprise-Beans.

Die Dienste, die von der Umgebung bereitgestellt werden, sind zum Beispiel Lebenszyklus von Komponenten, Sicherheitsdienst, Transaktionsdienst, Pooling und Caching von Ressourcen. Die Geschäftslogik, welche in EJB codiert ist, definiert den Typ des Dienstes, den sie verwenden möchte. Die codierte Logik verwendet EJB-spezifische Metadaten, die vom Container interpretiert werden, und definiert das Verhalten der EJB zur Laufzeit oder während der Bereitstellung.


Sie haben noch Fragen?

Kontaktieren Sie uns

Kostenloser SEO-Check der OSG


Weitere Inhalte