Enterprise JavaBeans Überblick 1. Überblick Java EE 5 und Komponententechnologien 3. Enterprise JavaBeans Architektur 4. Ressourcen Management und Primäre Services 5. Java Persistence: Entity Manager 6. Objekt-Relationales Mapping 7. Entity Bean Beziehungen 8. Find- und Select Methoden 9. Value Objects 10. Session Facade 11. Ergänzungen zu Entity Beans Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 47 Enterprise JavaBeans Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 48
Aktuelle Version von Sun s Enterprise JavaBeans: Version 3.0 Wesentliche Unterschiede zur Version 2.1 sind u.a. Massive Vereinfachung der Entwicklung von Enterprise JavaBeans Komponenten durch den Einsatz der Java SE 5 Annotationen Vielfache Defaults Nur Abweichungen davon müssen explizit programmiert werden Ausgliederung der Implementierung der sog. container managed persistence (CMP) von Entity Beans in die neue Java Persistence Specification Entity Beans sind POJOs (plain old Java objects), die von einem Persistenz-Framework auf eine relationale Datenbank abgebildet werden Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 49 Applikations-Server Relativ neuer Begriff für Software, die Geschäfts-Software in einer Internet-Umgebung unterstützt. Ein Applikations-Server kann spezialisiert sein oder auch mehrere Technologien gleichzeitig unterstützen: Web-Server ORB MOM (message-oriented middleware) Datenbanken Naming Service etc Bei Enterprise JavaBeans geht es in der Hauptsache um verteilte Objekte. Beispiele solcher Technologie sind CORBA, Java RMI oder DCOM. Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 50
ORB (Object Request Brokers) Einfacher Mechanismus zur Verbindung von Klienten-Anwendungen mit verteilten Objekten. Klienten können verteilte Objekte auffinden und mit ihnen kommunizieren. ORBs unterstützen die Komponenten auf der Serverseite jedoch nicht bei Transaktionen, Nebenläufigkeit, Persistenz und anderen low-level Aktivitäten. Dies alles muss vom Entwickler zusätzlich bedacht und realisiert werden. Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 51 CTM 1999 wurde der Begriff Component Transaction Monitor (CTM) zum ersten Mal verwendet, um den am höchsten entwickelten Anwendungs- Server zu beschreiben: Robustes server-seitiges Komponentenmodell Infrastruktur zur Unterstützung von Transaktionen Verteilung von Objekten Nebenläufigkeit Sicherheit Persistenz Ressourcen Management Massenverarbeitung Geschäftskritische Anwendungen Leicht zu benutzen Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 52
Enterprise JavaBeans Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 53 Architektur verteilter Objekte Alle Protokolle für Verteilte Objekte verwenden dieselbe grundlegende Architektur. Ziel: Ein Objekt in einem anderen Computer sieht aus, als läge es auf diesem Computer. Erreicht durch drei Bestandsteile: Das eigentliche Geschäftsobjekt, das wir hier aus Gründen, die sofort ersichtlich werden, Objektserver nennen wollen. Es liegt in der mittleren Schicht einer 3-Schichten-Architektur (Geschäftslogik). Zwei weitere Klassen, Stub und Skeleton, gehören zu jedem Objektserver. dienen dazu, den Anschein zu erwecken, dass der Objektserver, der tatsächlich in der mittleren Schicht liegt, lokal auf der Klientenschicht läuft. Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 54
Architektur verteilter Objekte Eine Geschäftsklasse Person hätte also noch zwei zugehörige Klasse Person_Stub und Person_Skeleton Skeleton liegt auch in der mittleren Schicht, Stub in der Klientenschicht. Die Kommunikation geschieht über ein RMI-Protokoll (remote method invocation). Die genannten Komponentenwelten CORBA, Java und DCOM verwenden alle ihre eigenen Protokolle dafür. Bei Java heißt das Protokoll Java RMI. Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 55 Architektur verteilter Objekte 1 Klient ruft Methode 2 Übertrage auf aufgerufene Methode Stub RMI Loop Skeleton Object Server 5 Gib Ergebnis zurück 4 Übertrage Ergebnis 3 Rufe Methode auf Server auf Client Tier Netzwerk Middle Tier Jedes Geschäftsobjekt in der Mittelschicht ist von einer Instanz der zugehörigen Skeleton-Klasse eingepackt. Diese übernimmt die Kommunikation über einen Port und IP-Adresse und wartet auf Anforderungen vom Stub. Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 56
Architektur verteilter Objekte 1 Klient ruft Methode 2 Übertrage auf Stub aufgerufene Methode RMI Loop Skeleton Object Server 5 Gib Ergebnis zurück 4 Übertrage Ergebnis 3 Rufe Methode auf Server auf Der Stub Client Tier Netzwerk Middle Tier liegt in der Klientenschicht und ist über das Netzwerk mit dem Skeleton verbunden. Er ist ein Surrogat des Geschäftsobjekts für den Klienten. Implementiert Schnittstelle mit denselben Geschäftsmethoden wie das Geschäftsobjekt selbst, jedoch ohne die eigentliche Geschäftslogik. Stattdessen wird Aufruf mit allen Aufrufsparametern über das Netzwerk an das Skeleton weitergegeben. Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 57 Architektur verteilter Objekte Mögliche Ergebnisse werden auf dem umgekehrten Weg vom Geschäftsobjekt über das Skeleton an den Stub und weiter an den Klienten zurückgegeben. 1 Klient ruft Methode 2 Übertrage auf aufgerufene Methode Stub RMI Loop Skeleton Object Server 5 Gib Ergebnis zurück 4 Übertrage Ergebnis 3 Rufe Methode auf Server auf Client Tier Netzwerk Middle Tier Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 58
Enterprise JavaBeans Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 59 JavaBeans vs. Enterprise JavaBeans Zwei voneinander unabhängige Komponentenmodelle. JavaBeans wurden hauptsächlich für den intra-process Einsatz entwickelt, nicht für verteilte Objekte (obwohl man das mit Hilfe von Java RMI erreichen kann). Hauptanwendungsfeld liegt auf der Klientenseite mit visuellen und nicht-visuellen Komponenten. Package java.beans. Enterprise JavaBeans wurden für den inter-process Einsatz entwickelt. Bauen nicht auf JavaBeans auf. Package javax.ejb. Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 60
Enterprise JavaBeans Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 61 Die Reederei Titan Cruises. Schiffe, Kabinen, Ausflüge, Reisebüros, Zahlung durchführen, Buchen. Zugriff von Reederei, Reisebüros. Prof. Dr. Björn Dreher Liste V Enterprise JavaBeans 62