Serialisierungsdienste
Microsoft RPC unterstützt zwei Methoden zum Codieren und Decodieren von Daten, die zusammen als Serialisierung von Daten bezeichnet werden. Serialisierung bedeutet, dass die Daten in die von Ihnen kontrollierten Puffer gemarshallt und aus diesen nicht synchronisiert werden. Dies unterscheidet sich von der herkömmlichen Verwendung von RPC, bei der die Stubs und die RPC-Laufzeitbibliothek die volle Kontrolle über die Marshallingpuffer haben und der Prozess transparent ist. Sie können den Puffer für die Speicherung auf permanenten Medien, verschlüsselung usw. verwenden. Wenn Sie Daten codieren, marshallen die RPC-Stubs die Daten in einen Puffer und übergeben den Puffer an Sie. Wenn Sie Daten decodieren, stellen Sie einen Marshallingpuffer mit Daten bereit, und die Daten werden vom Puffer in den Arbeitsspeicher getrennt. Sie können die Serialisierung auf Prozedur- oder Typbasis durchführen.
Hinweis
Der Begriff Pickling wird häufig unter Entwicklern verwendet, um die Serialisierung zu beschreiben. Tatsächlich enthalten die Windows SDK-Beispiele ein Verzeichnis namens pickle , in dem die RPC-Serialisierungsbeispielprogramme beibehalten werden.
Bei der Serialisierung werden die RPC-Mechanismen zum Marshallen und Aufheben der Datenmarstierung für andere Zwecke genutzt. Anstatt beispielsweise mehrere E/A-Vorgänge zum Serialisieren einer Gruppe von Objekten in einen Stream zu verwenden, kann eine Anwendung die Leistung optimieren, indem sie mehrere Objekte unterschiedlicher Typen in einen Puffer serialisiert und dann den gesamten Puffer in einem einzelnen Vorgang schreibt. Die Funktionen, die Serialisierungshandles bearbeiten, sind unabhängig von der Art der Serialisierung, die Sie verwenden.
Ein weiteres Beispiel ist, wenn Sie einen Netzwerktransportmechanismus neben RPC verwenden müssen, z. B. Microsoft Windows Sockets (Winsock). Mit der RPC-Serialisierung kann Ihr Programm Funktionen aufrufen, 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 Daten aus Puffern aufzuheben, die von den Winsock-Routinen gefüllt werden. Dies bietet Viele der Vorteile von Anwendungen im RPC-Stil, und gleichzeitig ermöglicht es Ihnen, Nicht-RPC-Transportmechanismen zu verwenden.
Sie können die Serialisierung auch für Zwecke verwenden, die nichts mit der Netzwerkkommunikation zu tun haben. Wenn Sie beispielsweise die RPC-Codierungsfunktionen verwendet haben, um Daten in einen Puffer zu marshallen, können Sie sie zur Verwendung durch eine andere Anwendung in einer Datei speichern. Sie können sie auch verschlüsseln. Sie können es sogar verwenden, um eine hardware- und betriebssystemunabhängige Darstellung von Daten in einer Datenbank zu speichern.
In den folgenden Themen werden die Von Microsoft RPC unterstützten Serialisierungsdienste erläutert:
- Verwenden von Serialisierungsdiensten
- Prozedurserialisierung
- Typserialisierung
- Serialisierungshandles