序列化服務

Microsoft RPC 支援編碼和解碼資料的兩種方法,統稱為 序列化資料。 序列化表示資料會封送處理至您所控制的緩衝區,並從中解除封送處理。 這與 RPC 的傳統用法不同,其中存根和 RPC 執行時間程式庫具有封送處理緩衝區的完整控制權,而且進程是透明的。 您可以將緩衝區用於永久媒體、加密等儲存體。 當您將資料編碼時,RPC 存根會將資料封送處理至緩衝區,並將緩衝區傳遞給您。 當您解碼資料時,您會提供一個封送處理緩衝區,其中含有資料,而且資料會從緩衝區取消封送處理到記憶體。 您可以依程式或型別序列化。

注意

開發人員通常會使用 挑選 一詞來描述序列化。 事實上,Windows SDK 範例包含名為 pickle 的目錄,可保留 RPC 序列化範例程式。

 

序列化會利用 RPC 機制來封送處理和取消封送處理資料以供其他用途使用。 例如,除了使用數個 I/O 作業將物件群組序列化至資料流程,應用程式可以將數個不同類型的物件序列化為緩衝區,然後在單一作業中寫入整個緩衝區,來優化效能。 操作序列化控制碼的函式與您使用的序列化類型無關。

另一個範例是,如果您需要使用 RPC 以外的網路傳輸機制,例如 Microsoft Windows Sockets (Winsock) 。 透過 RPC 序列化,您的程式可以呼叫函式,以將資料封送處理至緩衝區,然後使用 Winsock 傳輸此資料。 當應用程式收到資料時,它可以使用 RPC 序列化機制,從 Winsock 常式填滿的緩衝區取消封存資料。 這提供 RPC 樣式應用程式的許多優點,同時可讓您使用非 RPC 傳輸機制。

您也可以將序列化用於與網路通訊無關的用途。 例如,一旦您使用 RPC 編碼函式將資料封送處理至緩衝區,就可以將它儲存在檔案中供另一個應用程式使用。 您也可以將其加密。 您甚至可以使用它來儲存資料庫中與硬體和作業系統無關的資料標記法。

下列主題將討論 Microsoft RPC 支援的序列化服務: