Enterprise Java Beans

Werbung
Application Frameworks and Componentware
Wintersemester 2002/03
Enterprise Java Beans
„Die hohe Kunst der
aromatischen Bohnenmischung”
oder
„Replikator: Einmal Kaffee, Brasilia Highland Blend, Heiß”
Motivation
© 2000, Peter Sturm, Trier
Datenbank
•
Bean = Komponente
•
Zielgruppe
– Kommerzielle Anwendungen
– E-Commerce
•
Evolution früherer
– Client/Server-Systeme
– Transaktionsmonitore
•
3-Tier-Applikationen
– Client
– Bussiness Application
– Database
Business
Logic
Clients
(c) Peter Sturm, Universität Trier
1
Application Frameworks and Componentware
Wintersemester 2002/03
Business Objects
Datenbank
Komponenten-basierte
Anwendung
•
Varianten
– Eigenständige Komponenten
– Wrapper für Legacy Software
– Client-Transaktionen
•
Laufzeitumgebung
– EJB Server
– vergleichbar MTS bei COM+
© 2000, Peter Sturm, Trier
•
Business
Objects
Business Logic
Clients
Aufbau des EJB-Server
•
© 2000, Peter Sturm, Trier
•
•
Laufzeitumgebung
– Namensverwaltung
– Anbindung an DB
– Nachrichtenkommunikation
EJB Object = Bean Wrapper
– Indirektionsstufe
– Zugriff über Reflection
Beantypen
– Entity Bean
• Zustand, Persistent
– Session Bean
• Transient
• Stateless, Stateful
(c) Peter Sturm, Universität Trier
Bean
Bean
Bean
X
Bean
EJB Object
Bean
EJB Object
EJB Server
2
Application Frameworks and Componentware
Wintersemester 2002/03
Aufgaben des Servers
© 2000, Peter Sturm, Trier
• Resource Management
– Instance Pooling: Beans vorinstanziiert
– Instance Swapping: Wechsel der EJB-Object-Bindung
– Activation: Stilllegen und Reaktivieren von Beans
• Primary Services
– Concurrency: Single-Threaded Bean-Implementierung
– Transactions: ACID-Prinzip
– Persistence: Container-Managed, Bean-Managed
– Distribution: RMI over JRMP oder RMI-IIOP
– Naming: JNDI unterstützt LDAP, NIS+, DNS, ...
– Security: Methodenbasierte Zugriffskontrolle
Enterprise Java Beans
Entity Bean
(c) Peter Sturm, Universität Trier
3
Application Frameworks and Componentware
Wintersemester 2002/03
Bean-Struktur
• Remote Interface
– Die eigentlichen Zugriffsfunktionen der Bean
• Setters und Getters :-)
– public interface X extends javax.ejb.EJBObject { ... };
• Home Interface
– Bean-Erzeugung: public X create ( ... )
– Beans wiederfinden: public X findByPrimaryKey
© 2000, Peter Sturm, Trier
( key )
– public interface XHome extends java.ejb.EJBHome { ... };
• Primary Key
– Speichern und Auffinden der Bean in Datenbank
– public class XPK implements java.io.Serializable { ... };
• Bean Class
– public class XBean implements javax.ejb.EntityBean { ... };
EntityBean: Funktionen
• ejbActivate
– EJBObject-Bean-Bindung wiederhergestellt
• ejbPassivate
– EJBObject-Bean-Bindung wird abgebaut
© 2000, Peter Sturm, Trier
• ejbLoad
– Bean wurde geladen
• ejbStore
– Bean wird gespeichert
• ejbRemove
• setEntityContext
unsetEntityContext
– Informationen über EJBObject, Client, PK
(c) Peter Sturm, Universität Trier
4
Application Frameworks and Componentware
Wintersemester 2002/03
Exkurs: Reflection
• Bean-Klasse implementiert weder Remote- noch Home-Interface
– keine direkte Bindung zum Client vorhanden
• Bean-Klasse muß aber Methoden mit identischer Signatur enthalten
© 2000, Peter Sturm, Trier
• EJB-Object greift über ReflectionMechanismus darauf zu
– vgl. JavaBeans
• Beispiel „ShowClass“ aus
– Java in a Nutshell
D. Flanagan
O’Reilly, 2. Auflage
© 2000, Peter Sturm, Trier
Deployment Descriptor
• XML-Dokument (EJB Version 1.1)
– Bean-Beschreibung
• Namen der Interfaces
• Klassenname
• Persistenztyp (Container oder Bean)
• Welche Bean-Attribute werden persistent gespeichert
– Zugriffsrollen von Clients beim Bean-Zugriff
– Zugriffskontrolle auf Methoden
• Welche Rollen dürfen zugreifen
– Transaktionen
• Bean = jar-File bestehend aus XML-DD und *.class Dateien
(c) Peter Sturm, Universität Trier
5
Application Frameworks and Componentware
Wintersemester 2002/03
© 2000, Peter Sturm, Trier
Entity Beans:
Zustandsdiagramm
Container-Managed Persistence
• Erzeugen
© 2000, Peter Sturm, Trier
• Löschen
(c) Peter Sturm, Universität Trier
6
Application Frameworks and Componentware
Wintersemester 2002/03
• Activation
© 2000, Peter Sturm, Trier
• Synchronization
Bean-Managed Persistence
• Erzeugen
© 2000, Peter Sturm, Trier
• Löschen
(c) Peter Sturm, Universität Trier
7
Application Frameworks and Componentware
Wintersemester 2002/03
• Activation
© 2000, Peter Sturm, Trier
• Synchronization
Enterprise Java Beans
Session Bean
(c) Peter Sturm, Universität Trier
8
Application Frameworks and Componentware
Wintersemester 2002/03
Session Beans
• Session Beans besitzen keinen persistent gespeicherten Zustand
• Zwei Varianten
© 2000, Peter Sturm, Trier
• Stateless Session Bean
– Kein sichtbarer Zustand zwischen Methodenaufrufen
– Pooling und Swapping möglich
• Stateful Session Bean
– Feste Bindung zu einem Client
– Conversational State zwischen Methodenaufrufen
– Swapping nicht möglich
Bestandteile
• Remote Interface
– Eigentlichen Interaktionsfunktionen
© 2000, Peter Sturm, Trier
• Home Interface
– Nur Erzeugung
– Kein Auffinden über Primary Keys
• Bean-Klasse
– Erweitert SessionBean
• Deployment Descriptor
– XML-Dokument
• u.a. Lokalisierungsinformation benötigter Beans
• Zugriffskontrolle
(c) Peter Sturm, Universität Trier
9
Application Frameworks and Componentware
Wintersemester 2002/03
© 2000, Peter Sturm, Trier
Session Bean:
Stateless
© 2000, Peter Sturm, Trier
Stateless: create() und remove()
(c) Peter Sturm, Universität Trier
10
Application Frameworks and Componentware
Wintersemester 2002/03
© 2000, Peter Sturm, Trier
Session Bean: Stateful
© 2000, Peter Sturm, Trier
Session Bean:
Stateful
with
Transactions
(c) Peter Sturm, Universität Trier
11
Application Frameworks and Componentware
Wintersemester 2002/03
© 2000, Peter Sturm, Trier
Stateful: create() und remove()
© 2000, Peter Sturm, Trier
Stateful: Activation
(c) Peter Sturm, Universität Trier
12
Application Frameworks and Componentware
Wintersemester 2002/03
© 2000, Peter Sturm, Trier
Stateful: Transaction Notification
Literatur
• Richard Monson-Haefel
Enterprise Java Beans
© 2000, Peter Sturm, Trier
O’Reilly, 2. Auflage, 2000
– Quelle der gezeigten Zustands- und Interaktionsdiagramme
(c) Peter Sturm, Universität Trier
13
Herunterladen