Services de sérialisation

Microsoft RPC prend en charge deux méthodes d’encodage et de décodage des données, collectivement appelées sérialisation des données. La sérialisation signifie que les données sont marshalées et nonmarshalées à partir des mémoires tampons que vous contrôlez. Cela diffère de l’utilisation traditionnelle de RPC, dans laquelle les stubs et la bibliothèque d’exécution RPC ont un contrôle total des mémoires tampons de marshaling, et le processus est transparent. Vous pouvez utiliser la mémoire tampon pour le stockage sur un média permanent, le chiffrement, etc. Lorsque vous encodez des données, les stubs RPC marshalent les données dans une mémoire tampon et vous passent la mémoire tampon. Lorsque vous décodez des données, vous fournissez une mémoire tampon de marshaling avec les données qu’elle contient, et les données sont démarshalées de la mémoire tampon en mémoire. Vous pouvez sérialiser en fonction d’une procédure ou d’un type.

Notes

Le terme pickling est couramment utilisé par les développeurs pour décrire la sérialisation. En fait, les exemples du SDK Windows contiennent un répertoire appelé pickle qui conserve les exemples de programmes de sérialisation RPC.

 

La sérialisation tire parti des mécanismes RPC pour marshaler et démarshaler les données à d’autres fins. Par exemple, au lieu d’utiliser plusieurs opérations d’E/S pour sérialiser un groupe d’objets dans un flux, une application peut optimiser les performances en sérialisant plusieurs objets de différents types dans une mémoire tampon, puis en écrivant la mémoire tampon entière en une seule opération. Les fonctions qui manipulent les handles de sérialisation sont indépendantes du type de sérialisation que vous utilisez.

Autre exemple, si vous devez utiliser un mécanisme de transport réseau en plus de RPC, tel que Microsoft Windows Sockets (Winsock). Avec la sérialisation RPC, votre programme peut effectuer des appels à des fonctions qui marshalent vos données dans des mémoires tampons, puis transmettent ces données à l’aide de Winsock. Lorsque votre application reçoit des données, elle peut utiliser le mécanisme de sérialisation RPC pour démarshaler les données des mémoires tampons remplies par les routines Winsock. Cela vous offre un grand nombre des avantages des applications de style RPC, tout en vous permettant d’utiliser des mécanismes de transport non-RPC.

Vous pouvez également utiliser la sérialisation à des fins non liées aux communications réseau. Par exemple, une fois que vous utilisez les fonctions d’encodage RPC pour marshaler des données dans une mémoire tampon, vous pouvez les stocker dans un fichier pour une utilisation par une autre application. Vous pouvez également le chiffrer. Vous pouvez même l’utiliser pour stocker une représentation indépendante du matériel et du système d’exploitation des données dans une base de données.

Les rubriques suivantes présentent une présentation des services de sérialisation pris en charge par Microsoft RPC :