Serialisierungsdienste
Microsoft RPC unterstützt zwei Methoden zum Codieren und Decodieren von Daten, die gemeinsam als Serialisierung von Datenbezeichnet werden. Serialisierung bedeutet, dass die Daten von Puffern gemarstet und aus Puffern entmarstet werden, die Sie steuern. Dies unterscheidet sich von der herkömmlichen Verwendung von RPC, in der die Stubs und die RPC-Laufzeitbibliothek die vollständige Kontrolle über die Marshallingpuffer haben und der Prozess transparent ist. Sie können den Puffer für den Speicher auf permanenten Medien, verschlüsselung usw. verwenden. Wenn Sie Daten codieren, marshallen die RPC-Stubs die Daten in einen Puffer, und übergeben Sie den Puffer an Sie. Wenn Sie Daten decodieren, geben Sie einen Marshalingpuffer mit darin gespeicherten Daten an, und die Daten werden vom Puffer in den Arbeitsspeicher getrennt. Sie können auf Prozedur- oder Typbasis serialisieren.
Anmerkung
Der Begriff Auswahl wird häufig von Entwicklern verwendet, um die Serialisierung zu beschreiben. Tatsächlich enthält die Windows SDK-Beispiele ein Verzeichnis namens Pickle-, das die RPC-Serialisierungsbeispielprogramme bewahrt.
Die Serialisierung nutzt die RPC-Mechanismen zum Marshallen und Entmaring von Daten für andere Zwecke. Anstatt z. B. mehrere E/A-Vorgänge zum Serialisieren einer Gruppe von Objekten in einen Datenstrom zu verwenden, kann eine Anwendung die Leistung optimieren, indem mehrere Objekte verschiedener Typen in einen Puffer serialisiert und dann den gesamten Puffer in einem einzigen Vorgang geschrieben werden. Die Funktionen, die Serialisierungshandles bearbeiten, sind unabhängig vom Typ der verwendeten Serialisierung.
Ein weiteres Beispiel: Wenn Sie neben RPC einen Netzwerktransportmechanismus verwenden müssen, z. B. Microsoft Windows Sockets (Winsock). Mit der RPC-Serialisierung kann Ihr Programm Aufrufe an Funktionen durchführen, die Ihre Daten in Puffer marshallen und diese Daten dann mithilfe von Winsock übertragen. Wenn Ihre Anwendung Daten empfängt, kann sie den RPC-Serialisierungsmechanismus verwenden, um von den Winsock-Routinen gefüllte Puffer zu entmarsen. Dies bietet Ihnen viele vorteile von RPC-Stilanwendungen und ermöglicht es Ihnen gleichzeitig, Nicht-RPC-Transportmechanismen zu verwenden.
Sie können die Serialisierung auch für Zwecke verwenden, die sich nicht auf die Netzwerkkommunikation bezieht. Wenn Sie beispielsweise die RPC-Codierungsfunktionen zum Marshallen von Daten in einen Puffer verwenden, können Sie sie in einer Datei speichern, die von einer anderen Anwendung verwendet werden kann. Sie können sie auch verschlüsseln. Sie können sie sogar verwenden, um eine hardware- und betriebssystemunabhängige Darstellung von Daten in einer Datenbank zu speichern.
In den folgenden Themen wird erläutert, welche Serialisierungsdienste microsoft RPC unterstützt: