Marshaling

Eintrag zuletzt aktualisiert am: 28.01.2007

Marshaling ist das Verpacken eines Programmcodeaufrufs in eine Nachricht, sodass ein Aufruf zwischen zwei Programmen möglich ist, die keinen gemeinsamen Speicher besitzen.

Um einen RPC/LRPC auszuführen, ist es notwendig, den Funktionsnamen und die Parameter in eine Nachricht (Paket) zu verpacken, die über das Netzwerk dem entfernten System bzw. dem anderen Prozess zugestellt wird. Ebenso müssen die Rückgabewerte nach Ende der Prozedur an den Aufrufer zurückgegeben werden. Eine besondere Herausforderung sind dabei Zeiger. Hier müssen Speicherbereiche übergeben werden, da eine Übergabe eines Zeigers zwischen Prozess- und Systemgrenzen hinweg sinnlos wäre. Der Vorgang der Parameterübergabe wird als Marshalling bezeichnet und findet im sogenannten Proxy statt. Auf der Gegenseite erfolgt im Stub ein DeMarshalling. Das Format, in dem die Daten übertragen werden, heißt Network Data Representation (NDR).