Präsentation

Werbung
Ein Überblick von Oliver Hilß und Stefan Zier
Agenda - Teil 1
•
•
•
•
•
•
Sind EJBs JavaBeans?
Grundlagen für EJBs
JNDI
Distributed Transactions
Der Bean Container
Vergleich
Sind EJBs Java Beans?
• Enterprise Java Beans (EJB) und Java
Beans haben technisch keinerlei
Gemeinsamkeiten
• EJB sind ein Framework, mit dem man
schnell Enterprise Applikationen
entwickeln kann (Application Flow ist
vordefiniert)
• Java Beans sind Komponenten, aus
denen man Applikationen
zusammenbauen kann (Application
Flow muß erstellt werden)
Grundlagen für EJBs
• RMI (Remote Method Invocation)
• JNDI (Java Naming and Directory
Interface)
• Distributed Transactions
JNDI
• JNDI ist eine Standard Java Extension
• Ermöglicht den Zugriff auf Verzeichnisund Namensdienste
• Zugriff auf Dienste wie X.500, LDAP,
NIS, DNS, COS Naming, RMI Registry
uvm. über sog. Service Provider
• Bestandteil des JDK 1.2 Standard
Edition und JDK 1.2 Enterprise Edition
Distributed Transactions
• Gewährleistung der ACID-Properties
(Atomicity, Consistency, Isolation,
Durability) in verteilten Systemen
• 1 Transaktionskontext pro Transaktion
• Mehrere Teilnehmer (Ressourcen) in
einem Transaktionskontext
• Transaktionsmanager kümmert sich um
die Einhaltung des Two-Phase-Commit
Protokolls
Der Bean Container 1
• EJBs werden in einem sog. Bean
Container ausgeführt (deployment)
• Clients kommunizieren ausschl. mit
dem Container, nie direkt mit dem Bean
• 2 Interfaces zum Bean: Home Interface
für das Lifecycle Management und
Remote Interface zur Nutzung der
eigentlichen Funktionalität
Der Bean Container 2
• Container managed Security
• Container managed Multithreading und
Systemressourcen
• Container kann Beans auslagern
(passivation)
• Container managed Persistenz
• Container fungiert ggf. als Transaktionsmanager (implizites Transaktionsmanagement)
Der Bean Container 3
Home
Interface
Remote
Interface
Client
Bean Container
Enterprise
Java Bean
Remote
Interface
Enterprise
Java Bean
Der Bean Container 4
Home
Interface
Remote
Interface
Client
Bean Container
EJB
Object
Remote
Interface
EJB
Object
Enterprise
Java Bean
Enterprise
Java Bean
Vergleich
• “normale” Enterprise Applikationen sind
oft monolithisch
• Eigentliche Business Funktionalität oft
vermischt mit Transaktionshandling und
Security
• dadurch schwer zu pflegen und
erweitern
• Einsatz von TP-Monitoren zur Abhilfe
• Starke Ähnlichkeit zwischen TPMonitoren und EJBs
Agenda - Teil 2
•
•
•
•
•
•
•
Session/Entity Beans
Lifecycle Management
Ressourcen
Transaktionsmanagement
Fallbeispiel
Andere Technologien
Produkte
Session/Entity Beans
•
•
•
•
Zwei unterschiedliche Arten von EJBs
Session Beans stellen Logik dar
Entity Beans stellen Daten dar
Home Interface von Entity Beans hat
Finder-Methoden, um Beans anhand
von Suchprädikaten aufzufinden
(Materialisierung)
• stateful und stateless Session Beans
• Bei stateless Session Beans oft Load
Balancing Mechanismen
Lifecycle Management
• Starke Unterschiede zwischen Session
und Entity Beans
• Entity Beans werden in aller Regel
persistent gespeichert
• Für Entity Beans kann zur Deployment
Time ein Mapping zu einem
Datenbanksystem festgelegt werden
• Session Beans werden nicht persistent
gespeichert
Ressourcen
• Ressourcen sind bei EJBs immer
transaktional
• Beispiele: Datenbanken, Verzeichnisdienste
• EJB-Ressourcen entsprechen der von
der OSF (Open Software Foundation)
festgelegten XA Spezifikation für
verteilte Transaktionen
Transaktionsmanagement
• EJBs können unterschiedliche Modi in
Hinsicht auf Transaktionen verfolgen:
– TX_NOT_SUPPORTED
– TX_SUPPORTS
– TX_REQUIRED
– TX_REQUIRED_NEW
– TX_MANDATORY
– TX_BEAN_MANAGED
Fallbeispiel
• Überweisung eines Betrages von einem
Bankkonto auf ein Konto bei einer
anderen Bank
• Transaktionale Ressourcen:
– Kontendatenbank der eigenen Bank
– Kontendatenbank der anderen Bank
Fallbeispiel
Home
Interface
Client
Bean Container
Kontomanager
Fallbeispiel
Client
Home
Interface
Create()
Bean Container
Kontomanager
Fallbeispiel
Home
Interface
Client
Bean Container
Create()
Kontomanager
Fallbeispiel
Home
Interface
Remote
Interface
Client
Bean Container
Kontomanager
EJB
Object
Fallbeispiel
Home
Interface
Remote
Interface
Client
Bean Container
Referenz
EJB
Object
Kontomanager
Fallbeispiel
Remote
Interface
Client
Home
Interface
Referenz auf
Remote Interface
Bean Container
Kontomanager
EJB
Object
Fallbeispiel
Home
Interface
Ueberweise()
Remote
Interface
Client
Bean Container
Kontomanager
EJB
Object
Fallbeispiel
Home
Interface
Ueberweise()
Remote
Interface
Client
Bean Container
EJB
Object
Kontomanager
Fallbeispiel
Home
Interface
Remote
Interface
Client
Bean Container
Prepare()
Kontomanager
Prepare()
EJB
Object
Fallbeispiel
Home
Interface
Remote
Interface
Client
Bean Container
Kontomanager
EJB
Object
Fallbeispiel
Home
Interface
Remote
Interface
Client
Bean Container
Kontomanager
EJB
Object
return
Fallbeispiel
commit()
Home
Interface
Remote
Interface
Client
Bean Container
Kontomanager
EJB
Object
rollback()
commit()
rollback()
Fallbeispiel
Home
Interface
return
Remote
Interface
Client
Bean Container
Kontomanager
EJB
Object
Andere Technologien
• CORBA:
– mit RMI over IIOP wird es möglich, EJBs
von beliebigen Plattformen aus zu nutzen,
auf denen ein ORB zur Verfügung steht,
– ggf. auch Load Balancing zwischen
verschiedenen EJB Containern
• Java Servlets:
– einfache, nicht-transaktionale Server ohne
eingebaute Security
– werden oftmals als FrontEnd für EJBAnwendungen verwendet
Andere Technologien
• Java Messaging Service (JMS):
– API für Nachrichtenbasierte, asynchrone
Kommunikation
– wird oft für Events genutzt
– hauptsächlich zur Server-to-ServerKommunikation
Produkte
• IBM Websphere
– verschiedene umfassende E-CommerceProduktpakete, u.a. mit CORBAUnterstützung, EJB-Container, Webserver
• BEA Weblogic
– komplette Middlewarelösung inklusive
JDBC-Treibern, CORBA-Unterstützung,
EJB-Container, Servlet-Engine, uvm.
• Oracle 8i
– Datenbank- und Applikationsserver mit
EJB-Container, CORBA-Unterstützung,
RMI over IIOP
Fragen ?
Herunterladen