PDF Dokument

Werbung
Enterprise JavaBeans
Überblick
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Überblick Komponententechnologien
Einführung
Enterprise JavaBeans Architektur
Ressourcen Management und Primäre Services
Java Persistence: Entity Manager
Objekt-Relationales Mapping
Entity Bean Beziehungen
Test-Driven Development
Architektur der Web-Schicht
Queries
Value Objects
Session Facade
Transaktionen und Concurrency
Ergänzungen zu Entity Beans 2
UML Modellierung und EJBs
Session Beans
© Prof. Dr. Björn Dreher
Liste V – Enterprise JavaBeans
392
Enterprise JavaBeans
Überblick: 12. Session Facade
12.1
12.2
12.3
Einleitung
Problem
Lösung
© Prof. Dr. Björn Dreher
Liste V – Enterprise JavaBeans
393
1
12. Session Facade
12.1 Einleitung
„
Ein Use Case
‰
‰
EJB Client möchte möglichst effektiv Methoden von mehreren Entity
Beans aufrufen
Vielleicht ist auch noch eine Session Bean beteiligt
„
Möglichst nur ein Netzwerk-Transfer
Möglichst eine Transaktion
„
Viele einzelne Zugriffe auf verschiedene Beans
„
‰
‰
‰
Netzwerk-Overhead
Geschäftslogik im Client
Transaktionssteuerung im Client
© Prof. Dr. Björn Dreher
Liste V – Enterprise JavaBeans
394
Enterprise JavaBeans
Überblick: 12. Session Facade
12.1
12.2
12.3
Einleitung
Problem
Lösung
© Prof. Dr. Björn Dreher
Liste V – Enterprise JavaBeans
395
2
12. Session Facade
12.2 Problem
„
Banken-Szenario (EJB 2.1)
‰
Überweisung zwischen zwei Konten
Objekt1
UserHome
User
AccountHome
Account1
Account2
findByPrimaryKey(pk)
isAuthorized()
findByPrimaryKey(acc1Pk)
findByPrimaryKey(acc2Pk)
withdrawMoney(amount)
depositMoney(amount)
© Prof. Dr. Björn Dreher
Liste V – Enterprise JavaBeans
396
12. Session Facade
12.2 Problem
„
Banken-Szenario
‰
‰
‰
Keine gute Skalierung unter hoher Last
6 Netzwerk-Calls
„
3 um entsprechende Beans zu finden
„
3 für den tatsächlichen Geldtransfer
Client könnte im selben Server sein
„
Local Interfaces könnten benutzt werden
„
Entity Beans unterliegen Transaktionen
„
Client müsste sich um Transaktionssteuerung kümmern
© Prof. Dr. Björn Dreher
Liste V – Enterprise JavaBeans
397
3
12. Session Facade
12.2 Problem
„
Nachteile
‰
‰
‰
‰
‰
Hohe Netzwerkbelastung
Schlechte Concurrency
„
Möglicherweise lange Transaktionszeiten (Client weit weg)
Hohe Kopplung
„
zwischen Client und Entity Beans
Schlechte Wiederverwendbarkeit
„
Geschäftslogik im Client
„
Andere Clients können sie nicht wiederverwenden
Schlechte Wartbarkeit
„
Transaktionssteuerung im Client (Java Transaction API)
„
Besser: Deklarative Transaktionssteuerung
© Prof. Dr. Björn Dreher
Liste V – Enterprise JavaBeans
398
Enterprise JavaBeans
Überblick: 12. Session Facade
12.1
12.2
12.3
Einleitung
Problem
Lösung
© Prof. Dr. Björn Dreher
Liste V – Enterprise JavaBeans
399
4
12. Session Facade
12.3 Lösung
„
Umhülle Entity Beans mit einer oder mehreren Session Beans
‰
‰
‰
‰
In EJB 3.0 sowieso nötig
Jede Session Bean enthält Geschäftslogik, um Use Cases zu
implementieren
Umfangreichere Operationen mit mehreren Entity Beans aufgrund einer
Anforderung des Klienten
Klienten sollten nur zu Session Beans Zugang haben, nicht zu Entity
Beans
© Prof. Dr. Björn Dreher
400
Liste V – Enterprise JavaBeans
12. Session Facade
12.3 Lösung
„
Vorheriges Beispiel
Servlet
SessionBean
EntityManager
User
Account1
Account2
transferMoney(userPk, acc1Pk, acc2Pk, amount)
find(User.class,pk)
isAuthorized()
Netzwerk
find(Account.class,acc1Pk)
find(Account.class,acc2Pk)
withdrawMoney(amount)
depositMoney(amount)
© Prof. Dr. Björn Dreher
Liste V – Enterprise JavaBeans
401
5
12. Session Facade
12.3 Lösung
„
Vorteile
‰
‰
‰
‰
Geringer Netzwerkverkehr
„
Eine Schicht mehr durch Session Bean
„
Aber fast nur lokaler Verkehr
Bessere Concurrency
„
Session Bean ist auch Transaktions-Fassade
„
Transaktion auf Server-Seite beschränkt
Geringe Kopplung
„
Änderungen an Entity Beans werden durch Session Bean verborgen
Gute Wiederverwendbarkeit
„
Jeder Klient kann Logik in Session Bean benutzen
© Prof. Dr. Björn Dreher
Liste V – Enterprise JavaBeans
402
12. Session Facade
12.3 Lösung
„
Vorteile (fortgesetzt)
‰
‰
Gute Wartbarkeit
„
Deklarative Transaktionssteuerung in Session Bean
„
Auf Server-Seite beschränkt
Saubere Architektur
„
Session Bean realisiert die Geschäftslogik des Use Cases
„
Entity Beans realisieren die Geschäftsobjekte
„
„Verb-Noun Separation“
‰
„
Session Bean – Entity Bean
Für asynchrone Use Cases:
‰
Message Facade Pattern
© Prof. Dr. Björn Dreher
Liste V – Enterprise JavaBeans
403
6
Herunterladen