Enterprise JavaBeans

Definition

Akronym: EJB

Enterprise Java Beans sind Komponenten, die für ein spezielles Framework (+ zugehörige Ablaufumgebung) programmiert wurden und nur in dieser Umgebung (z.B: J2EE) lauffähig sind.

  • Ihnen liegt ein standardisiertes serverseitiges Komponentenmodell für Komponententransaktionsmonitore zugrunde
  • EJB sind verteilte Objekte, daher eher Komponenten als Objekte
  • EJB sind unabhängig von Java Beans!
  • Sie besitzen keinerlei grafische Funktionalität (im Gegensatz zu Java Beans)
  • Sie dienen der Entwicklung und Distribution von serverseitigen Java-Methoden
  • Sie benötigen ein spezielles Laufzeitsystem und spezielle Tools zu ihrer Entwicklung

Rollen bei einer EJB-Spezifikation

  • Enterprise Bean Provider
    • Entwicklung von Geschäftsobjekten und dazugehörigen Interfaces und Klassen
  • Application Assembler
    • Anwendungsentwickler, der vorgefertigte Komponenten zusammenfügt um eine komplexe Anwendungen zu erstellen
    • Implementiert Client-Anwendungen unter Zuhilfenahme fertiger Komponenten
  • Deployer
    • Sorgt für die Installation, Modifizierung und Konfiguration von EJB-Komponenten
    • Stellt sie der operationalen Zielumgebung zur Verfügung
  • EJB Server Provider
    • Stellt EJB-Server zur Verfügung
    • Dient als EJB-Laufzeitumgebung für den EJB Container
    • Transaktionskontrolle, Verwaltung, Konsistenz
  • EJB Container Provider
    • Stellt EJB Container zur Verfügung und konfiguriert diesen
    • Container dient als Laufzeitumgebung der EJB-Komponenten-Instanzen
    • Schirmt damit EJB-Komponenten vor den komplexeren Schnittstellen des EJB Servers ab
  • System Administrator
    • Überwacht einen laufenden EJB Server

Einsatz von EJBs

Ziele des Einsatzes von EJB

  1. Große Anzahl von Benutzern die zeitgleich zugreifen → Skalierung auf viele Benutzer
  2. Viele Beans enthalten gleiche, allgemeine Funktionen für Fragen der Sicherheit, Adressierung, Nebenläufigeit, usw. → Nutzung vorgefertigter Beans (Wiederverwendung)
  3. Unterschiedliche Aufteilung der zu erledigenden Entwicklungsarbeiten entsprechend der Kenntnisse der Entwickler → bessere Arbeitsteilung

Vorteile des Einsatzes von EJB

  1. Wiederverwendbarkeit fachlicher Komponenten, unabhängig von technischen Aspekten
  2. Unabhängige Komponenten mit standardisierten Schnittstellen
  3. EJB Server und EJB Container können von verschiedenen Firmen hergestellt werden

Nachteile des Einsatzes von EJB

  1. EJB sind nicht allein, d.h. ohne ihre Umgebung lauffähig
  2. Hoher Programmierungsaufwand

EJB Architektur

  • EJB Server
    • Stellt eine Infrastruktur für einen oder mehrere EJB Container bereit und verwaltet diese
  • EJB Container
    • Stellen eine Umgebung für die EJBs bereit und bieten zudem spezielle technische Belange zur Erhaltung der Persistenz, Speicherverwaltung, usw.
  • Client (Komponente / Objekt)
  • Laufzeitumgebung

EJB Typen

Session Beans

  • Repräsentieren Anwendungsfälle; Lebensdauer beschränkt sich auf die Dauer der Durchführung des Anwendungsfalls
  • Stellen interaktive Verbindungen zwischen Clients und anderen Beans her, um bestimmte Aufgaben zu realisieren
  • Repräsentieren nicht den Zugriff auf eine Datenbank
  • Man unterscheidet zwei Arten:
    • Zustandsbehaftete Session Beans
      • Bleiben zwischen 2 Methodenaufrufen erhalten und können einen Zustand behalten
      • Zwischenspeichern von Daten möglich
      • Bleiben während der gesamten Laufzeit bei einem Client bzw. EJB-Objekt
    • Zustandslose Session Beans
      • Sind nur für einen Methodenaufruf dem Client zugeordnet
      • Keine Zustandsspeicherung zwischen zwei Aufrufen
      • Schneller, da sie den Zustand nicht halten müssen/können
      • Eine Instanz = ein Client

Entity-Beans

  • Repräsentieren Geschäftsobjekte mit längerer Lebensdauer ! persistente Speicherung
  • Besitzen einen Primärschlüssel und stellen einen Datensatz dar
  • Können von mehreren Clients gleichzeitig verwendet werden
  • Unterscheidung von 2 Typen
    • Bean-Managed Persistence (enthalten selbst SQL-Anweisungen)
    • Container-Managed Persistence (Attribute werden nur deklariert, der EJB Container generiert die Zugriffsmethoden)
  • Normalerweise werden Session Beans und Entity Beans als Kombination verwendet
  • Ab EJB Version 3 wird nicht mehr zwischen beiden Typen unterschieden

Bestandteile/Eigenschaften

EJB Version 2.1

  • Remote Interface: Deklaration von Methoden, die außerhalb des Rechners verfügbar sein sollen
  • Home Interface: betrachtet den Lebenszyklus von Beans und ist in der Lage, Bean-Instanzen zu erzeugen
  • Bean-Klasse: realisiert das Remote Interface (?)
  • Deployment Descriptor: realisiert die Anpassung der Beans an verschiedene Maschinen
  • Eigenschaft von Entity Beans: jede Tabelle der DB wurde über ein Entity Bean realisiert, ab EJB Version 3 ist diese Beschränkung nicht mehr vorhanden

EJB Version 3.0

  • Die Entwicklung von EJB unter Version 2.1 war sehr kompliziert, weswegen die Verwendung von EJB ab Version 3 vereinfacht wurde
  • Einige Methoden unter Version 2.1 werden nicht mehr benötigt, sind jedoch immer noch verfügbar
  • Es gibt keine Deskriptoren mehr
  • Abhängigkeiten können gekapselt werden
  • Das Home Interface fällt weg
  • Es gibt keine Exception-Deklarationen mehr (alle Fehlermeldungen werden vom System generiert)
  • Entity Beans lassen sich Objektorientiert programmieren, d.h. sie werden vererbbar
Basiert komplett auf der Vorlesung Software Engineering, Dr. Kirsten

Kontext

Weiterführende Beiträge


Navigation

Alphabetischer Index
Akronyme