Kap. 3 Verteilte Objektverwaltung

Werbung
Kap. 3 Verteilte Objektverwaltung
‰
3.1 Einführung in die verteilte Objektverwaltung
(Distributed Object Management, DOM)
•
•
‰
‰
Anforderungen
Kurzübersicht
– Java RMI
– Microsoft COM+
– CORBA
3.2 Der CORBA-Standard
3.3 Iona’s Orbix als Beispiel einer kommerziellen
CORBA-Implementierung
Objektverwaltung höherer Ordnung (OHO) – SS 2002
Kapitel 3: Vorlesung Verteilte Objekte – 1
Verteilte Objekte
‰
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)
‰
Voraussetzung: Geeignete Infrastruktur-Unterstützung zur
Entwicklung und zum Zusammenführen verteilter Objekte:
« Verteilte Objektverwaltung
Objektverwaltung höherer Ordnung (OHO) – SS 2002
Kapitel 3: Vorlesung Verteilte Objekte – 2
Begriffswelt
‰
Objekt
•
•
‰
‰
‰
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
Client
Objekt-Bus
Account
Finance
ESQL/C
Client
•
Software-Einheit, die Methoden eines Objekts aufruft
Server
•
Software-Einheit, die Objektimplementationen anbietet
Objekte können also sowohl die Rolle von Clients als
auch die Rolle von Servern übernehmen
Objektverwaltung höherer Ordnung (OHO) – SS 2002
SQL
DBMS
Account
Kapitel 3: Vorlesung Verteilte Objekte – 3
Unterschied zwischen RPC und Objekt-Bus
Code
Client
akjdkfjdksjfkdjkfjdksfkjasd
kdjfkdjfkjdkjfkdkfjd
kfjdkfjkd
kfjdkjfkdjkfjkdjfkd
kfjkdjkfjdkfkdkfkd
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 2002
Kapitel 3: Vorlesung Verteilte Objekte – 4
Anforderungen an die verteilte Objektverwaltung
‰
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 2002
Kapitel 3: Vorlesung Verteilte Objekte – 5
Java RMI — Übersicht
‰
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 2002
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)
(Verwendung von java.rmi.Naming
zur Lokalisation von Remote-Objekten;
Aufruf von Remote-Objekt-Methoden
über Client Stub)
javac
myServer.class
download
Verwendung
Client
Client
Stub
javac
RMI
Registry
myClient.class
Client
Stub
rmic
(Stub-Compiler)
(.class)
Server
Class
Server
Skeleton
(.class)
RMI Registry starten
Server-Objekte instanziieren
Remote
Server
Object
Server-Objekt-Instanz registrieren
(java.rmi.Naming)
Objektverwaltung höherer Ordnung (OHO) – SS 2002
Kapitel 3: Vorlesung Verteilte Objekte – 7
Java RMI — Zusammenfassung
‰
Verteilungstransparenz
•
•
Methodenaufrufe in entfernten VMs möglich
RMI Registry als Naming Service
‰ Plattformunabhängigkeit
•
‰
Sprachunabhängigkeit
•
‰
‰
Ist gegeben, da jeweils lediglich eine Java VM für Client bzw. Server
vorausgesetzt wird
Beschränkung auf Java, keine andere Sprachanbindung möglich
Keine dynamischen Methodenaufrufe
Keine Transaktionen
Objektverwaltung höherer Ordnung (OHO) – SS 2002
Kapitel 3: Vorlesung Verteilte Objekte – 8
Microsoft COM+ — Übersicht
‰
‰
Kein separater Standard, sondern Teil von MS Windows 2000
Basierend auf
•
•
•
‰
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 2002
MS
Transaction
Server
(MTS)
Kapitel 3: Vorlesung Verteilte Objekte – 9
Microsoft COM+ — Zusammenfassung
‰
‰
Verteilungstransparenz
Plattformunabhängigkeit
•
Ist nicht gegeben durch Beschränkung auf die Microsoft-Welt
‰ Sprachunabhängigkeit
•
•
‰
‰
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 2002
Kapitel 3: Vorlesung Verteilte Objekte – 10
CORBA — Übersicht
‰
Standard der OMG (= Object Management Group)
•
‰
CORBA = Common Object Request Broker Architecture
•
•
‰
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 2002
Kapitel 3: Vorlesung Verteilte Objekte – 11
CORBA — Zusammenfassung
‰ Verteilungstransparenz
‰ Plattformunabhängigkeit
•
•
Basis-Funktionalität des ORBs; zusätzlich:
Durch IIOP (Internet Inter-Orb Protokoll) ist Kommunikation zwischen
verschiedenen ORBs möglich
‰ Sprachunabhängigkeit
•
•
•
‰
‰
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 2002
Kapitel 3: Vorlesung Verteilte Objekte – 12
Schöne neue DOM-Welt?
‰
‰
Verteilungstransparenz klingt gut, aber man sollte
hinterfragen, inwieweit sie wirklich erreichbar ist…
Oft übersehene Probleme:
•
Latency
Zugriff auf entfernte Objekte um Grössenordnungen langsamer
•
Memory Access
Zeiger auf lokale Daten sind ungültig; grosse Fehlerquelle!
•
Partial Failure
Statt dem ganzen Programm können nur einzelne Teile ausfallen…
•
Concurrency
Verteilte Objekte müssen nebenläufige Aufrufe verkraften können
‰
Die wahre Herausforderung ist das gute Design eines
verteilten Informationssystems!
Objektverwaltung höherer Ordnung (OHO) – SS 2002
Kapitel 3: Vorlesung Verteilte Objekte – 13
Herunterladen