Inhaltsverzeichnis
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
- Große Anzahl von Benutzern die zeitgleich zugreifen → Skalierung auf viele Benutzer
- Viele Beans enthalten gleiche, allgemeine Funktionen für Fragen der Sicherheit, Adressierung, Nebenläufigeit, usw. → Nutzung vorgefertigter Beans (Wiederverwendung)
- Unterschiedliche Aufteilung der zu erledigenden Entwicklungsarbeiten entsprechend der Kenntnisse der Entwickler → bessere Arbeitsteilung
Vorteile des Einsatzes von EJB
- Wiederverwendbarkeit fachlicher Komponenten, unabhängig von technischen Aspekten
- Unabhängige Komponenten mit standardisierten Schnittstellen
- EJB Server und EJB Container können von verschiedenen Firmen hergestellt werden
Nachteile des Einsatzes von EJB
- EJB sind nicht allein, d.h. ohne ihre Umgebung lauffähig
- 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