Präsentation
Short Description
Download Präsentation...
Description
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 ?
View more...
Comments