Kap. 3 Verteilte Objektverwaltung 3.1 Einführung in die verteilte

Werbung
Kap. 3 Verteilte Objektverwaltung
G
3.1Einführung in die verteilte Objektverwaltung
(Distributed Object Management, DOM)
•
•
G
G
Anforderungen
Kurzübersicht
– Java RMI
– Microsoft COM+
– CORBA
3.2Der CORBA-Standard
3.3Iona’s Orbix als Beispiel einer kommerziellen
CORBA-Implementierung
Objektverwaltung höherer Ordnung (OHO) – SS 2001
Kapitel 3: Vorlesung Verteilte Objekte – 1
3.1 Einführung in die verteilte Objektverwaltung
G
Moderne verteilte Informationssysteme sind gekennzeichnet
durch die modulare Kapselung von Anwendungslogik (zusammen
mit den zugehörigen Daten) in Form von Objekten
•
•
Die Entwicklung von Informationssystemen entspricht dann dem
konsistenten Zusammensetzen dieser verteilten Objekte (bzw.
Komponenten)
– Wiederverwendbare Software-Einheiten
“Just as databases were at the center of the design of the
applications of the ‘70s and ‘80s, components are at the center of the
applications of the ‘90s and the next century”
(David Vaskevitch, Microsoft)
G
Voraussetzung: Geeignete Infrastruktur-Unterstützung zur
Entwicklung und zum Zusammenführen verteilter Objekte:
➜ Verteilte Objektverwaltung
Objektverwaltung höherer Ordnung (OHO) – SS 2001
Kapitel 3: Vorlesung Verteilte Objekte – 2
Begriffswelt
G
Objekt
•
•
G
G
G
Client
Anwendungsobjekt als abstrakter Datentyp, verfügt über
– Schnittstelle (Methoden und Attribute)
– Objektreferenz (eindeutig, intern)
Designvarianten: Zustand
– Explizit: Zustand der persistenten Daten aus der
Datenbank explizit in Form von Attributen im Objekt
materialisiert
– Implizit: Zustand ist nicht im Objekt materialisiert,
sondern wird über Methoden, die auf die DB
zugreifen, sichtbar gemacht
Objekt-Bus
Account
Finance
ESQL/C
SQL
Client
•
Software-Einheit, die Methoden eines Objekts aufruft
DBMS
Server
•
Software-Einheit, die Objektimplementationen anbietet
Account
Objekte können also sowohl die Rolle von Clients als
auch die Rolle von Servern übernehmen
Objektverwaltung höherer Ordnung (OHO) – SS 2001
Kapitel 3: Vorlesung Verteilte Objekte – 3
Unterschied zwischen RPC und Objekt-Bus
Code
Client
akjdkfjdksjf kdjkfjdks fkja sd
kdjfkdjfkjdkjfkdk fjd
kfjdkfjkd
kfjdkjfkdjkfjkdjfkd
kfjkdjkfjdkfkd kfkd
ddddddddddddddddddddd
dddddddddddddddddddd
ddddddddd
ddddddddddddddd
d
d
dddddddd
ddddddddddd
dddddddd
dd
Call foo
RPC
Server
Data
Execute foo
RPC Mechanismus
Client
Objekt-Bus
(ORB)
Invoke
foo on
Object
X
Invoke
foo on
Object
Y
Object X Object Y
foo
Server
foo
Objekt-Bus
Objektverwaltung höherer Ordnung (OHO) – SS 2001
Kapitel 3: Vorlesung Verteilte Objekte – 4
Anforderungen an die verteilte Objektverwaltung
G
G
G
G
G
G
G
G
G
Orts- bzw. Verteilungstransparenz
•
Aufruf von Server-Methoden unabhängig von der physischen Platzierung des
Server-Objektes
➜ Möglichkeit des Methodenaufrufs über Prozess- und Rechnergrenzen hinweg
Plattformunabhängigkeit
•
Hardware- und Betriebssystemunabhängigkeit für
Client- und Server-Objekte, d.h. Koexistenz mehrerer Plattformen
➜ Interoperabilität ist gefordert
Sprachunabhängigkeit
•
•
Einbettung in bestehende Programmiersprachen, aber:
Unabhängigkeit der Client- bzw. Server-Implementierungen von einer
speziellen Programmiersprachenumgebung
– Trennung von Interface und Implementierung
Statische und dynamische Methodenaufrufe
Transaktionen
Selbstbeschreibung
Polymorphismus
Sicherheit
Unterstützung sogenannter “Legacy”-Systeme
Objektverwaltung höherer Ordnung (OHO) – SS 2001
Kapitel 3: Vorlesung Verteilte Objekte – 5
Java RMI — Übersicht
G
RMI: Remote Method Invocation
•
•
•
•
Aufruf von Objektmethoden in entfernten Java VMs
Server-Objekt besitzt Proxy (Client Stub) als Stellvertreter in der Client VM
– Client Stub wird zur Laufzeit in die Client-VM geladen und
– Übernimmt das Marshaling von Aufträgen
Aufträge gehen an Server-Skeleton in der Remote VM
– Unmarshaling
– Methoden-Aufruf des Server-Objektes
Registry als Verzeichnis-Dienst für Remote-Aufrufe
Client
Object
use
Client
Stub
download
register
RMI Registry
(Naming
Service)
marshaling
Virtual Machine
Objektverwaltung höherer Ordnung (OHO) – SS 2001
Client
Stub
Server
Skeleton
unmarshaling
call
Server
Object
(“remote
object”)
Virtual Machine
Kapitel 3: Vorlesung Verteilte Objekte – 6
Java RMI — Verwendung
Client-Entwicklung
Server-Entwicklung
Remote-Interface von „MyServer“ definieren
(java.rmi.Remote Interface erweitern)
Remote-Interface von „MyServer“ implementieren
Client Code „MyClient“ implementieren
(Java-Server-Klasse von
java.rmi.UnicastRemoteObject ableiten)
javac
(Verwendung von java.rmi.Naming
zur Lokalisation von Remote-Objekten;
Aufruf von Remote-Objekt-Methoden
über Client Stub)
myServer.class
Client
Stub
javac
download
Verwendung
Client
Client
Stub
RMI
Registry
myClient.class
rmic
(Stub-Compiler)
(.class)
Server
Class
Server
Skeleton
(.class)
RMI Registry starten
Remote
Server-Objekte instanziieren
Server
Object
Server-Objekt-Instanz registrieren
(java.rmi.Naming)
Objektverwaltung höherer Ordnung (OHO) – SS 2001
Kapitel 3: Vorlesung Verteilte Objekte – 7
Java RMI — Zusammenfassung
G
✔
G
✔
Verteilungstransparenz
•
•
Plattformunabhängigkeit
•
G
Ist gegeben, da jeweils lediglich eine Java VM für Client bzw. Server
vorausgesetzt wird
Sprachunabhängigkeit
•
G
G
Methodenaufrufe in entfernten VMs möglich
RMI Registry als Naming Service
Beschränkung auf Java, keine andere Sprachanbindung möglich
Keine dynamischen Methodenaufrufe
Keine Transaktionen
Objektverwaltung höherer Ordnung (OHO) – SS 2001
Kapitel 3: Vorlesung Verteilte Objekte – 8
Microsoft COM+ — Übersicht
G
G
Kein separater Standard, sondern Teil von MS Windows 2000
Basierend auf
•
•
G
•
COM (Component Object Model)
– COM-Server: Binärcode (.dll oder .exe), stellt via Interface veröffentlichte
Funktionalität (Methoden) bereit
DCOM (Distributed COM), bereits in MS Windows 98 / NT integriert
– Aufruf der im Interface veröffentlichten Methoden eines COM-Servers
(mit Hilfe lokaler Proxy-Objekte über Rechnergrenzen hinweg)
Zusätzlich: weitere Services zur Unterstützung von Transaktionssemantik
Mehr zu COM+ in Kapitel 4 „Objekt-Transaktions-Monitore“
COM+
MS
Message
Queue
(MSMQ)
DCOM
COM
Objektverwaltung höherer Ordnung (OHO) – SS 2001
MS
Transaction
Server
(MTS)
Kapitel 3: Vorlesung Verteilte Objekte – 9
Microsoft COM+ — Zusammenfassung
G
✔
G
Verteilungstransparenz
Plattformunabhängigkeit
•
G
✔
Sprachunabhängigkeit
•
•
G
G
Ist nicht gegeben durch Beschränkung auf die Microsoft-Welt
Beschreibung der Schnittstellen der Objektklassen durch IDL
(Interface Definition Language)
– IDL-Beschreibung (Interface) unabhängig von der jeweiligen
Implementierung
Anbindung an mehrere Programmiersprachen existiert
(z.B. in den diversen Entwicklungsumgebungen von Microsoft)
Unterstützt sowohl statische als auch dynamische Aufrufe
Transaktionssemantik wird durch MTS bereitgestellt
Objektverwaltung höherer Ordnung (OHO) – SS 2001
Kapitel 3: Vorlesung Verteilte Objekte – 10
CORBA — Übersicht
G
G
Standard der OMG (= Object Management Group)
•
CORBA = Common Object Request Broker Architecture
•
•
G
Eines der weltgrössten Software-Konsortien, bestehend aus ca. 800 SoftwareHerstellern (u.a. Sun, IBM, HP, Oracle, Microsoft)
Offener Interoperabilitäts-Standard für heterogene, verteilte, objektorientierte
Systeme
Erste Version bereits 1991 veröffentlicht (Standard wurde also definiert, bevor
Produkte, d.h. CORBA-Implementierungen, auf dem Markt waren)
Kernkomponente ist der ORB (Object Request Broker),
der Objekt-Bus von CORBA
•
•
Gemeinsame Kommunikationsplattform für verteilte Objekte
Interaktion zwischen verteilten Objekten wieder über lokale Stellvertreter
entfernter Objekte (Client IDL Stubs), die über server-seitige Skeletons die
eigentliche Methodenimplementierung aufrufen
– Jeder entfernte Aufruf erscheint dem Client wie ein lokaler Methodenaufruf
– Client IDL Stubs verbergen die Sprache der Server-Implementierung
Objektverwaltung höherer Ordnung (OHO) – SS 2001
Kapitel 3: Vorlesung Verteilte Objekte – 11
CORBA — Zusammenfassung
G
✔
G
✔
Verteilungstransparenz
Plattformunabhängigkeit
•
•
✔
G
Sprachunabhängigkeit
•
•
•
G
G
Basis-Funktionalität des ORBs; zusätzlich:
Durch IIOP (Internet Inter-Orb Protokoll) ist Kommunikation zwischen
verschiedenen ORBs möglich
Strikte Trennung von Interface und Implementierung
Sprachunabhängige Beschreibung der Schnittstellen von Objekten
durch IDL (ist allerdings NICHT identisch mit der IDL von COM+)
Anbindungen zu diversen Programmiersprachen existieren
(C, C++, Smalltalk, Ada, Java, PL/1, …)
Unterstützt sowohl statische als auch dynamische Methodenaufrufe
OTS: Methodenaufrufe in Transaktionskontext möglich
Objektverwaltung höherer Ordnung (OHO) – SS 2001
Kapitel 3: Vorlesung Verteilte Objekte – 12
Herunterladen