Enterprise Java Beans - Uni Trier: Willkommen · Aufbau des EJB-Server • Laufzeitumgebung –...

13
Application Frameworks and Componentware Wintersemester 2002/03 (c) Peter Sturm, Universität Trier 1 Enterprise Java Beans „Die hohe Kunst der aromatischen Bohnenmischung” oder „Replikator: Einmal Kaffee, Brasilia Highland Blend, Heiß” © 2000, Peter Sturm, Trier Motivation Bean = Komponente Zielgruppe Kommerzielle Anwendungen – E-Commerce Evolution früherer – Client/Server-Systeme – Transaktionsmonitore 3-Tier-Applikationen – Client Bussiness Application – Database Datenbank Clients Business Logic

Transcript of Enterprise Java Beans - Uni Trier: Willkommen · Aufbau des EJB-Server • Laufzeitumgebung –...

Page 1: Enterprise Java Beans - Uni Trier: Willkommen · Aufbau des EJB-Server • Laufzeitumgebung – Namensverwaltung – Anbindung an DB – Nachrichtenkommunikation • EJB Object =

Application Frameworks and Componentware Wintersemester 2002/03

(c) Peter Sturm, Universität Trier 1

Enterprise Java Beans

„Die hohe Kunst deraromatischen Bohnenmischung”

oder

„Replikator: Einmal Kaffee, Brasilia Highland Blend, Heiß”

© 2

000,

Pet

er S

turm

, Tr

ier

Motivation

• Bean = Komponente

• Zielgruppe– Kommerzielle Anwendungen– E-Commerce

• Evolution früherer– Client/Server-Systeme– Transaktionsmonitore

• 3-Tier-Applikationen– Client– Bussiness Application– Database

Datenbank

Clients

BusinessLogic

Page 2: Enterprise Java Beans - Uni Trier: Willkommen · Aufbau des EJB-Server • Laufzeitumgebung – Namensverwaltung – Anbindung an DB – Nachrichtenkommunikation • EJB Object =

Application Frameworks and Componentware Wintersemester 2002/03

(c) Peter Sturm, Universität Trier 2

© 2

000,

Pet

er S

turm

, Tr

ier

Business Objects

• Komponenten-basierte Anwendung

• Varianten– Eigenständige Komponenten– Wrapper für Legacy Software– Client-Transaktionen

• Laufzeitumgebung– EJB Server– vergleichbar MTS bei COM+

Datenbank

Clients

Business Logic

BusinessObjects

© 2

000,

Pet

er S

turm

, Tr

ier

Aufbau des EJB-Server

• Laufzeitumgebung– Namensverwaltung– Anbindung an DB– Nachrichtenkommunikation

• EJB Object = Bean Wrapper– Indirektionsstufe– Zugriff über Reflection

• Beantypen– Entity Bean

• Zustand, Persistent– Session Bean

• Transient• Stateless, Stateful EJB Server

EJB ObjectX

Bean

Bean

Bean

Bean

EJB Object

Bean

Page 3: Enterprise Java Beans - Uni Trier: Willkommen · Aufbau des EJB-Server • Laufzeitumgebung – Namensverwaltung – Anbindung an DB – Nachrichtenkommunikation • EJB Object =

Application Frameworks and Componentware Wintersemester 2002/03

(c) Peter Sturm, Universität Trier 3

© 2

000,

Pet

er S

turm

, Tr

ier

Aufgaben des Servers

• 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

Page 4: Enterprise Java Beans - Uni Trier: Willkommen · Aufbau des EJB-Server • Laufzeitumgebung – Namensverwaltung – Anbindung an DB – Nachrichtenkommunikation • EJB Object =

Application Frameworks and Componentware Wintersemester 2002/03

(c) Peter Sturm, Universität Trier 4

© 2

000,

Pet

er S

turm

, Tr

ier

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 ( 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 { ... };

© 2

000,

Pet

er S

turm

, Tr

ier

EntityBean: Funktionen

• ejbActivate– EJBObject-Bean-Bindung wiederhergestellt

• ejbPassivate– EJBObject-Bean-Bindung wird abgebaut

• ejbLoad– Bean wurde geladen

• ejbStore– Bean wird gespeichert

• ejbRemove

• setEntityContextunsetEntityContext– Informationen über EJBObject, Client, PK

Page 5: Enterprise Java Beans - Uni Trier: Willkommen · Aufbau des EJB-Server • Laufzeitumgebung – Namensverwaltung – Anbindung an DB – Nachrichtenkommunikation • EJB Object =

Application Frameworks and Componentware Wintersemester 2002/03

(c) Peter Sturm, Universität Trier 5

© 2

000,

Pet

er S

turm

, Tr

ier

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

• EJB-Object greift über Reflection-Mechanismus darauf zu– vgl. JavaBeans

• Beispiel „ShowClass“ aus– Java in a Nutshell

D. FlanaganO’Reilly, 2. Auflage

© 2

000,

Pet

er S

turm

, Tr

ier

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

Page 6: Enterprise Java Beans - Uni Trier: Willkommen · Aufbau des EJB-Server • Laufzeitumgebung – Namensverwaltung – Anbindung an DB – Nachrichtenkommunikation • EJB Object =

Application Frameworks and Componentware Wintersemester 2002/03

(c) Peter Sturm, Universität Trier 6

© 2

000,

Pet

er S

turm

, Tr

ier

Entity Beans:Zustands-diagramm

© 2

000,

Pet

er S

turm

, Tr

ier

Container-Managed Persistence

• Erzeugen

• Löschen

Page 7: Enterprise Java Beans - Uni Trier: Willkommen · Aufbau des EJB-Server • Laufzeitumgebung – Namensverwaltung – Anbindung an DB – Nachrichtenkommunikation • EJB Object =

Application Frameworks and Componentware Wintersemester 2002/03

(c) Peter Sturm, Universität Trier 7

© 2

000,

Pet

er S

turm

, Tr

ier

• Activation

• Synchronization

© 2

000,

Pet

er S

turm

, Tr

ier

Bean-Managed Persistence

• Erzeugen

• Löschen

Page 8: Enterprise Java Beans - Uni Trier: Willkommen · Aufbau des EJB-Server • Laufzeitumgebung – Namensverwaltung – Anbindung an DB – Nachrichtenkommunikation • EJB Object =

Application Frameworks and Componentware Wintersemester 2002/03

(c) Peter Sturm, Universität Trier 8

© 2

000,

Pet

er S

turm

, Tr

ier

• Activation

• Synchronization

Enterprise Java Beans

Session Bean

Page 9: Enterprise Java Beans - Uni Trier: Willkommen · Aufbau des EJB-Server • Laufzeitumgebung – Namensverwaltung – Anbindung an DB – Nachrichtenkommunikation • EJB Object =

Application Frameworks and Componentware Wintersemester 2002/03

(c) Peter Sturm, Universität Trier 9

© 2

000,

Pet

er S

turm

, Tr

ier

Session Beans

• Session Beans besitzen keinen persistent gespeicherten Zustand

• Zwei Varianten

• 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

© 2

000,

Pet

er S

turm

, Tr

ier

Bestandteile

• Remote Interface– Eigentlichen Interaktionsfunktionen

• Home Interface– Nur Erzeugung– Kein Auffinden über Primary Keys

• Bean-Klasse– Erweitert SessionBean

• Deployment Descriptor– XML-Dokument

• u.a. Lokalisierungsinformation benötigter Beans• Zugriffskontrolle

Page 10: Enterprise Java Beans - Uni Trier: Willkommen · Aufbau des EJB-Server • Laufzeitumgebung – Namensverwaltung – Anbindung an DB – Nachrichtenkommunikation • EJB Object =

Application Frameworks and Componentware Wintersemester 2002/03

(c) Peter Sturm, Universität Trier 10

© 2

000,

Pet

er S

turm

, Tr

ier

Session Bean:Stateless

© 2

000,

Pet

er S

turm

, Tr

ier

Stateless: create() und remove()

Page 11: Enterprise Java Beans - Uni Trier: Willkommen · Aufbau des EJB-Server • Laufzeitumgebung – Namensverwaltung – Anbindung an DB – Nachrichtenkommunikation • EJB Object =

Application Frameworks and Componentware Wintersemester 2002/03

(c) Peter Sturm, Universität Trier 11

© 2

000,

Pet

er S

turm

, Tr

ier

Session Bean: Stateful©

200

0, P

eter

Stu

rm,

Trie

r

Session Bean:StatefulwithTransactions

Page 12: Enterprise Java Beans - Uni Trier: Willkommen · Aufbau des EJB-Server • Laufzeitumgebung – Namensverwaltung – Anbindung an DB – Nachrichtenkommunikation • EJB Object =

Application Frameworks and Componentware Wintersemester 2002/03

(c) Peter Sturm, Universität Trier 12

© 2

000,

Pet

er S

turm

, Tr

ier

Stateful: create() und remove()©

200

0, P

eter

Stu

rm,

Trie

r

Stateful: Activation

Page 13: Enterprise Java Beans - Uni Trier: Willkommen · Aufbau des EJB-Server • Laufzeitumgebung – Namensverwaltung – Anbindung an DB – Nachrichtenkommunikation • EJB Object =

Application Frameworks and Componentware Wintersemester 2002/03

(c) Peter Sturm, Universität Trier 13

© 2

000,

Pet

er S

turm

, Tr

ier

Stateful: Transaction Notification©

200

0, P

eter

Stu

rm,

Trie

r

Literatur

• Richard Monson-HaefelEnterprise Java BeansO’Reilly, 2. Auflage, 2000– Quelle der gezeigten Zustands- und Interaktionsdiagramme