Präsentation

January 20, 2018 | Author: Anonymous | Category: Ingenieurwissenschaften, Informatik, Java
Share Embed Donate


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

Copyright � 2017 NANOPDF Inc.
SUPPORT NANOPDF