in - Universität Paderborn

Werbung
Datenbanken und
Informationssysteme 2
SS 2002
Prof. Dr. Stefan Böttcher
Universität Paderborn
Datenbanken und Informationssysteme 2 - Prof. Dr. Stefan Böttcher - SS2002 – Folie EJB - 1
Gliederung / Inhaltsüberblick
1.
•
•
•
•
•
•
•
•
•
•
•
•
•
XML-Datenbanken
Cache-Management für mobile XML-Datenbanken
Enterprise Java Beans
Prädikatives Sperren und seine Übertragung auf XPath
Objekt-Relationale Datenbanken
Objektorientierte Datenbanken
DOM, SAX, …
XPath und XQuery
Prädikative Validierung und Ihre Übertragung auf XPath
JDO
XSP
Integritätskontrolle und XML Schema
SOAP
Synchronisation ( Xopen, … )
Datenbanken und Informationssysteme 2 - Prof. Dr. Stefan Böttcher - SS2002 – Folie EJB - 2
Internet-Technologie für E-Business
Prof. Dr. Stefan Böttcher
1
Warum EJB Technologie (1)?
–
–
–
–
–
–
–
–
–
Verteilte Anwendungen
Unabhängige Komponenten auf Serverseite
Lastbalancierung
Transparenter Ausfall von Komponenten
trennt Business-Logik von System-Code
Backend-Integration (Datenbank,…)
Transaktionen
Anwendungs-Zustand retten bei Ausfall
Komponenten portabel (EJB Server, Betriebssysteme)
Datenbanken und Informationssysteme 2 - Prof. Dr. Stefan Böttcher - SS2002 – Folie EJB - 3
Warum EJB Technologie (2)?
–
–
–
–
–
–
–
–
–
Sauberes Shutdown
Konfiguration zum Zeitpunkt des Deployments
Dynamisches (Re-)Deployment von Updates
Sicherheit
Logging und Auditing (z.B. für Fehlersuche)
Multi-Threading Software
Message-oriented Middleware
Resourcen Pools ( Sockets , DB-Verbindungen ,…)
Anwendungsübergreifendes Daten-Caching
Datenbanken und Informationssysteme 2 - Prof. Dr. Stefan Böttcher - SS2002 – Folie EJB - 4
Internet-Technologie für E-Business
Prof. Dr. Stefan Böttcher
2
EJBs Antwort :
Gekapselte Komponenten (Beans) für alles
– Daten (Entity Beans)
– Logik (Sessions Beans)
– Sichere Nachrichten (Message driven Beans)
Datenbanken und Informationssysteme 2 - Prof. Dr. Stefan Böttcher - SS2002 – Folie EJB - 5
Arten von Enterprise Java Beans
Enterprise Bean
Session Bean
(für Sitzungen,...)
mit / ohne Zustand
mit / ohne SessionSynchronisation
Message-driven
Bean
(für Messages)
Entity Bean
(für persistente Daten)
re-entrant (ja / nein)
Persistenzbehandlung
durch Container / Bean
Datenbanken und Informationssysteme 2 - Prof. Dr. Stefan Böttcher - SS2002 – Folie EJB - 6
Internet-Technologie für E-Business
Prof. Dr. Stefan Böttcher
3
Bestandteile von Enterprise Java Beans
Ein Komponentenmodell:
Die Enterprise Beans:
serverseitige Software-Komponenten, die Dienste anbieten
sich aber nicht um die Datenhaltung etc. kümmern müssen
Clients:
Applikationen, die die Dienste der Enterprise Beans nutzen
typisch: Oberflächen, Browser, ...
Container übernimmt Unterstützung für
Transaktionen, Verwaltung mehrerer Instanzen,
persistente Datenhaltung und Sicherheit
für Dienste des Servers (Enterprise Beans)
EJB Server bietet Low-Level-Dienste wie Netzwerkanbindung
Datenbanken und Informationssysteme 2 - Prof. Dr. Stefan Böttcher - SS2002 – Folie EJB - 7
Enterprise Java Beans (EJB)
Client
EJB Home
Interface
EJB Remote
Interface
EJB Bean
EJB Container
Vorteile:
Klare BeanSchnittstellen
EJB Server
Bean (Komponente)
verwendet Container
(z.B. für Transaktionen)
Datenbanken und Informationssysteme 2 - Prof. Dr. Stefan Böttcher - SS2002 – Folie EJB - 8
Internet-Technologie für E-Business
Prof. Dr. Stefan Böttcher
4
Schnittstellen von EJB
Schnittstellen:
Home-Interface:
damit erzeugt ein Client auf dem Server eine Enterprise Bean
oder findet eine erzeugte Bean wieder
Remote-Interface:
bietet die Business-Logik der Bean
Datenbanken und Informationssysteme 2 - Prof. Dr. Stefan Böttcher - SS2002 – Folie EJB - 9
RMI und Objektserialisierung
RMI: Aufruf von Methoden in entfernt definierten Klassen
RMI-Server
RMI-Client
RMI-Verbindung
Registrierung via rmiregistry
RMI-Compiler erzeugt aus Klassen Stubs und Skeleton-Klassen
Binden der Objekte , dann Aufruf wie bei lokalen Objekten
Serialisierung: Objekte werden als Datenstrom übertragen
Datenbanken und Informationssysteme 2 - Prof. Dr. Stefan Böttcher - SS2002 – Folie EJB - 10
Internet-Technologie für E-Business
Prof. Dr. Stefan Böttcher
5
RMI-Code (Client)
import java.rmi.*;
Entfernter Server (Typ=interface)
public class Bank {
public interface RemoteBank extends Remote {
public String conc(String s1, String s2)
throws RemoteException ;
}
// interface für Server
// was Server bietet
IP
Servicename
public static void main(String[] args)
{ try
{ // Suche Server mit Name "bankname"
RemoteBank bank = // Serverobjekt
(RemoteBank) Naming.lookup("rmi://192.168.1.101/bankname");
String ret = bank.conc(args[0], args[1]); // Aufruf an Serverobjekt
System.out.println(ret) ;
} // Fange und zeige RMI-Exceptions
catch (Exception e) { System.out.println(e); }
} // main
}
Datenbanken und Informationssysteme 2 - Prof. Dr. Stefan Böttcher - SS2002 – Folie EJB - 11
RMI-Code (Server)
import java.rmi.*;
import java.rmi.server.*;
import Bank.*;
// lade das Interface für RemoteBank
public class RemoteBankServer extends UnicastRemoteObject implements RemoteBank
{ public RemoteBankServer() throws RemoteException { super(); }
// Implementierung der Remote-Methode conc aus Interface RemoteBank
public synchronized String conc (String s1, String s2) throws RemoteException
{ System.out.println( s1 + " :: " + s2 ) ;
return s1+s2 ;
}
public static void main(String[] args) {
try { RemoteBankServer bank = new RemoteBankServer(); // erzeugt Serverobjekt
Naming.rebind("bankname", bank);
// sein Name ist "bankname"
System.out.println("bankname ist bereit.");
}
catch (Exception e) {
System.err.println(e);
}
}
}
Datenbanken und Informationssysteme 2 - Prof. Dr. Stefan Böttcher - SS2002 – Folie EJB - 12
Internet-Technologie für E-Business
Prof. Dr. Stefan Böttcher
6
Java-Archive
Zusammenfassung mehrere übersetzter Java-.class-Files
Erzeugen mit:
C:\java> jar cf sammlung.jar *.class [evtl. weitere Dateien]
Jar-File verwenden im Applet-Tag:
<Applet archive=“sammlung.jar“ code=“applet1.class“
width=“400“ height=“200“>
</Applet>
applet1.class wird gestartet
in sammlung.jar werden alle benötigten Klassen gesucht
Datenbanken und Informationssysteme 2 - Prof. Dr. Stefan Böttcher - SS2002 – Folie EJB - 13
Implizite Middleware
Eigenes EJB Objekt für Aufruf der Middleware-Funktionalität
Atomare Transaktionen, Persistenz, Security, …
Middleware verborgen
⇒ Atomare Transaktionen, Persistenz, Security, …
müssen nicht explizit programmiert werden
⇒ Einbindung externer Anbieter möglich
Middleware austauschbar
⇒ ohne Code-Änderung für Anwendungsprogrammierer
Datenbanken und Informationssysteme 2 - Prof. Dr. Stefan Böttcher - SS2002 – Folie EJB - 14
Internet-Technologie für E-Business
Prof. Dr. Stefan Böttcher
7
Das J2EE Komponenten-Modell
EJB Container
Client
method x
delegation
method x
EJB Object
result(s) method x
Bean
Instance
result(s)
Service
Interaction
TXN Service,
Security Service,
Persistence Service,
etc.
calling direction
returning direction
Datenbanken und Informationssysteme 2 - Prof. Dr. Stefan Böttcher - SS2002 – Folie EJB - 15
Das J2EE Komponenten-Modell
EJB Container
finder method
Client
ejbFinder method
Home Object
Retrieve
Home
Object
Reference
method x
delegation
EJB Object
result(s) method x
JNDI
method x
EntityBean
Instance
result(s)
Service
Interaction
Return
Home Object
Reference
Naming
Service
TXN Service,
Security Service,
Persistence Service,
etc.
Entity
Bean
Data
calling direction
returning direction
Datenbanken und Informationssysteme 2 - Prof. Dr. Stefan Böttcher - SS2002 – Folie EJB - 16
Internet-Technologie für E-Business
Prof. Dr. Stefan Böttcher
8
Das J2EE Komponenten-Modell
EJB Container
finder method
Client
ejbFinder method
Home Object
ejb object(s)
primary key(s)
ejb
object(s)
Retrieve
Home
Object
Reference
create ejb object(s)
from primary key(s)
method x
delegation
EJB Object
result(s) method x
JNDI
method x
Entity Bean
Instance
result(s)
Service
Interaction
Return
Home Object
Reference
Naming
Service
TXN Service,
Security Service,
Persistence Service,
etc.
Entity
Bean
Data
calling direction
returning direction
Datenbanken und Informationssysteme 2 - Prof. Dr. Stefan Böttcher - SS2002 – Folie EJB - 17
Das J2EE Komponenten-Modell
Datenbanken und Informationssysteme 2 - Prof. Dr. Stefan Böttcher - SS2002 – Folie EJB - 18
Internet-Technologie für E-Business
Prof. Dr. Stefan Böttcher
9
Eigenschaften aller Enterprise Beans
Enterprise Beans
Session Beans
Message-driven
Beans
Stateless Stateful Container- BeanManaged Managed
■
■
■
■
■
Entity Beans
serverseitige Software-Komponente
implementiert Remote- und Home-Interface
benutzt für Geschäftslogik
kann aus Java-Objekten bestehen
Client eines Beans kann sein:
– servlet,
– applet, etc.,
– andere Enterprise Bean
Datenbanken und Informationssysteme 2 - Prof. Dr. Stefan Böttcher - SS2002 – Folie EJB - 19
Session Beans
Enterprise Beans
Session Beans
Entity Beans
Message-driven
Beans
Stateless Stateful Container- BeanManaged Managed
– für Programme / Prozeduren / Aktivitäten
(Geschäftsprozeß)
– jeder Client hat eigene Bean
– single Threaded
– Zugriff auf Bean-lokale (nicht gemeinsam genutzte)
Daten
Datenbanken und Informationssysteme 2 - Prof. Dr. Stefan Böttcher - SS2002 – Folie EJB - 20
Internet-Technologie für E-Business
Prof. Dr. Stefan Böttcher
10
Stateless Session Bean
Enterprise Beans
Session Beans
Entity Beans
Message-driven
Beans
Stateless Stateful Container- BeanManaged Managed
– kein interner Zustand
=> weniger Server-Ressourcen
steht schneller wieder zur Verfügung
– Dienste durch Methoden realisiert
Datenbanken und Informationssysteme 2 - Prof. Dr. Stefan Böttcher - SS2002 – Folie EJB - 21
Stateful Session Bean
Enterprise Beans
Session Beans
Entity Beans
Message-driven
Beans
Stateless Stateful Container- BeanManaged Managed
– interner Zustand der Bean
– gespeichert von einem Methoden-Aufruf zum nächsten
-> für Geschäftsprozesse, die interne Zustände brauchen
(Zähler, etc., …, Workflows)
Datenbanken und Informationssysteme 2 - Prof. Dr. Stefan Böttcher - SS2002 – Folie EJB - 22
Internet-Technologie für E-Business
Prof. Dr. Stefan Böttcher
11
Entity Beans
Enterprise Beans
Session Beans
Entity Beans
Message-driven
Beans
Stateless Stateful Container- BeanManaged Managed
–
–
–
–
Komponente für persistente Daten
transparenter Zugriff auf Daten(bank)
kapselt persistente Daten
speichert Zustand extern (z.B. in relationaler Datenbank)
=>
überlebt Systemabstürze
nicht gedacht für Geschäftsprozeß-Logik
– Primärschlüssel (für Zeiger in die Datenbank)
Datenbanken und Informationssysteme 2 - Prof. Dr. Stefan Böttcher - SS2002 – Folie EJB - 23
Container-Managed Persistent Entity Bean
Enterprise Beans
Session Beans
Entity Beans
Message-driven
Beans
Stateless Stateful Container- BeanManaged Managed
Transaktionsverwaltung / Persistenz
durch Container bzw. Server
– Speichern
– Laden
– Finden von Daten / Objekten
=> keine Belastung der Anwendungslogik
=> größere Unabhängigkeit von Datenbank
Datenbanken und Informationssysteme 2 - Prof. Dr. Stefan Böttcher - SS2002 – Folie EJB - 24
Internet-Technologie für E-Business
Prof. Dr. Stefan Böttcher
12
Bean-Managed Persistent Entity Bean
Enterprise Beans
Session Beans
Entity Beans
Message-driven
Beans
Stateless Stateful Container- BeanManaged Managed
– Eigene Verwaltung persistenter Daten
=> speichern, laden, finden von Daten
muß / kann selbst implementiert werden
=> mehr Freiheiten
Datenbanken und Informationssysteme 2 - Prof. Dr. Stefan Böttcher - SS2002 – Folie EJB - 25
Message-driven Bean
Enterprise Beans
Session Beans
Entity Beans
Message-driven
Beans
Stateless Stateful Container- BeanManaged Managed
– asynchrone Messages
=> nicht warten
– Garantierte Versendung /Persistenz
=> ausfallsicher
– Viele Sender/Empfänger (Broadcast)
Datenbanken und Informationssysteme 2 - Prof. Dr. Stefan Böttcher - SS2002 – Folie EJB - 26
Internet-Technologie für E-Business
Prof. Dr. Stefan Böttcher
13
EJB-Container
Umgebung der Beans im EJB-Server
bietet den Beans Dienste an, wie
• Transaktionen (ACID),
• Sicherheit,
• Ressourcen-Verwaltung (Aktivierung/Passivierung)
• Instanzen-Pools (z.B. Connection-Pooling)
• JNDI-Umgebungskontext
• Nebenläufigkeit für Entity Beans
Dienste müssen nicht verwendet werden
Datenbanken und Informationssysteme 2 - Prof. Dr. Stefan Böttcher - SS2002 – Folie EJB - 27
Namensdienste
– Mechanismus zum Auffinden verteilter Objekte
– bietet zwei Fähigkeiten
• Binden von Objekten
• API zum Nachschlagen (z.B. JNDI)
Context ctx = new InitialContext();
TestHome home = (TestHome) ctx.lookup("MyTest");
Datenbanken und Informationssysteme 2 - Prof. Dr. Stefan Böttcher - SS2002 – Folie EJB - 28
Internet-Technologie für E-Business
Prof. Dr. Stefan Böttcher
14
Herunterladen