30.01.2013 Aufrufe

Grundlagen: Rechnernetze und Verteilte Systeme - Lehrstuhl für ...

Grundlagen: Rechnernetze und Verteilte Systeme - Lehrstuhl für ...

Grundlagen: Rechnernetze und Verteilte Systeme - Lehrstuhl für ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Remote Procedure Call (RPC)<br />

� parameter marshalling (aufreihen, zusammenstellen)<br />

� Verpacken von Parametern einschließlich Konversion in<br />

Standarddarstellung<br />

� unmarshalling (oder demarshalling)<br />

� Auspacken einschließlich Konversion in lokale Darstellung<br />

� Server-Loop kann ebenfalls automatisch generiert werden.<br />

� Server ruft in Schleife den Server-stub immer wieder auf <strong>und</strong> bearbeitet so<br />

einen Auftragg nach dem andern<br />

<strong>Gr<strong>und</strong>lagen</strong>: <strong>Rechnernetze</strong> <strong>und</strong> <strong>Verteilte</strong> <strong>Systeme</strong> – IN0010, SS 2010, Kapitel 9 533<br />

Schema des Parameter Marshalling<br />

� Beispiel: Multiplikation zweier Zahlen über RPC<br />

client process<br />

Stub<br />

f<br />

1<br />

2<br />

User<br />

server process<br />

Stub<br />

r=f(1,2) f(a,b)<br />

{return<br />

a*b;}<br />

Kernel<br />

<strong>Gr<strong>und</strong>lagen</strong>: <strong>Rechnernetze</strong> <strong>und</strong> <strong>Verteilte</strong> <strong>Systeme</strong> – IN0010, SS 2010, Kapitel 9 534<br />

f<br />

1<br />

2<br />

Remote Procedure Call (RPC)<br />

� Gr<strong>und</strong>-Annahme: Heterogenität<br />

� Client <strong>und</strong> Server können gr<strong>und</strong>verschieden sein<br />

verschiedene Prozessoren<br />

verschiedene Betriebssysteme<br />

verschiedene Programmiersprachen<br />

� Keine Codeübertragung<br />

keine Übertragung von Objekten als Parameter<br />

� Daten müssen in einer Standardrepräsentation verschickt werden<br />

XDR - eXternal Data Representation<br />

� Schnittstellendefiniton<br />

� Sprach-unabhängige Datendefinitionssprache (IDL)<br />

Für jede Programmiersprache erzeugt ein IDL-Compiler Sprach-spezifische<br />

Stubs<br />

<strong>Gr<strong>und</strong>lagen</strong>: <strong>Rechnernetze</strong> <strong>und</strong> <strong>Verteilte</strong> <strong>Systeme</strong> – IN0010, SS 2010, Kapitel 9 535<br />

RPC – Dynamisches Binden<br />

� Durch die RPC-Methode sind Aufrufer <strong>und</strong> gerufene Prozedur entkoppelt:<br />

� nicht in einem gemeinsamen Programm vereinigt<br />

� können zu verschiedenen Zeiten gestartet werden<br />

� dynamisches Binden (dynamic binding)<br />

� Beispiel: statisch: mobject.add(int)<br />

dynamisch: invoke(mobject, “add“, int)<br />

� Programmbeginn: Client-stub kennt Partner-Adresse noch nicht<br />

� Bei Aufruf von Client-stub: Anfrage an zentralen Binder nach Server, der die<br />

Prozedur in der benötigten g Version zur Verfügung g g stellt.<br />

� Server melden sich beim Binder betriebsbereit unter Angabe von Name, Versions-<br />

Nr. <strong>und</strong> Adresse + evtl. id, falls Name nicht eindeutig.<br />

� Zur Laufzeit: Binder reicht dem Client die Server-Information weiter, <strong>und</strong> der Clientstub<br />

wendet sich danach direkt an den Server.<br />

<strong>Gr<strong>und</strong>lagen</strong>: <strong>Rechnernetze</strong> <strong>und</strong> <strong>Verteilte</strong> <strong>Systeme</strong> – IN0010, SS 2010, Kapitel 9 536

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!