Serialisatieservices
Microsoft RPC ondersteunt twee methoden voor het coderen en decoderen van gegevens, gezamenlijk serialiseren van gegevens. Serialisatie betekent dat de gegevens worden marshaled naar en niet-gemarhaleerd van buffers die u beheert. Dit verschilt van het traditionele gebruik van RPC, waarin de stubs en de RPC-runtimebibliotheek volledige controle hebben over de marshalingbuffers en het proces transparant is. U kunt de buffer gebruiken voor opslag op permanente media, versleuteling, enzovoort. Wanneer u gegevens coderen, versleutelt de RPC de gegevens naar een buffer en geeft u de buffer door. Wanneer u gegevens decodert, levert u een marshalingbuffer met daarin gegevens en worden de gegevens niet van de buffer naar het geheugen gemarhaleerd. U kunt serialiseren op basis van een procedure of type.
Notitie
De term wordt vaak gebruikt door ontwikkelaars om serialisatie te beschrijven. In feite bevat de Windows SDK-voorbeelden een map met de naam pickle die de RPC-serialisatievoorbeeldprogramma's behoudt.
Serialisatie maakt gebruik van de RPC-mechanismen voor marshaling en unmarshaling-gegevens voor andere doeleinden. In plaats van verschillende I/O-bewerkingen te gebruiken om een groep objecten naar een stroom te serialiseren, kan een toepassing de prestaties optimaliseren door verschillende objecten van verschillende typen in een buffer te serialiseren en vervolgens de volledige buffer in één bewerking te schrijven. De functies waarmee serialisatiegrepen worden bewerkt, zijn onafhankelijk van het type serialisatie dat u gebruikt.
Een ander voorbeeld: als u een netwerktransportmechanisme naast RPC moet gebruiken, zoals Microsoft Windows Sockets (Winsock). Met RPC-serialisatie kan uw programma aanroepen uitvoeren naar functies die uw gegevens in buffers plaatsen en deze gegevens vervolgens verzenden met winsock. Wanneer uw toepassing gegevens ontvangt, kan het RPC-serialisatiemechanisme worden gebruikt om niet-gemarkeerde gegevens te verwijderen uit buffers die zijn gevuld met de Winsock-routines. Dit biedt u veel van de voordelen van RPC-toepassingen, en tegelijkertijd kunt u hiermee niet-RPC-transportmechanismen gebruiken.
U kunt serialisatie ook gebruiken voor doeleinden die niet zijn gerelateerd aan netwerkcommunicatie. Zodra u bijvoorbeeld de RPC-coderingsfuncties gebruikt om gegevens naar een buffer te marshalen, kunt u deze opslaan in een bestand voor gebruik door een andere toepassing. U kunt deze ook versleutelen. U kunt deze zelfs gebruiken om een hardware- en besturingssysteemonafhankelijke weergave van gegevens in een database op te slaan.
De volgende onderwerpen bevatten een bespreking van de serialisatieservices die door Microsoft RPC worden ondersteund: