Serialiseringstjänster
Microsoft RPC har stöd för två metoder för kodning och avkodning av data, som tillsammans kallas serialiserande data. Serialisering innebär att data är konverterade till och omarshalerade från buffertar som du styr. Detta skiljer sig från den traditionella användningen av RPC, där stubs och RPC-körningsbiblioteket har fullständig kontroll över marshaling-buffertar och processen är transparent. Du kan använda bufferten för lagring på permanenta medier, kryptering och så vidare. När du kodar data konverterar RPC-enheterna data till en buffert och skickar bufferten till dig. När du avkodar data anger du en marshaling-buffert med data i dem, och data tas bort från bufferten till minnet. Du kan serialisera på procedur- eller typbasis.
Not
Termen används ofta bland utvecklare för att beskriva serialisering. I själva verket innehåller Windows SDK-exemplen en katalog med namnet pickle som bevarar RPC-serialiseringsexempelprogrammen.
Serialisering utnyttjar RPC-mekanismerna för att konvertera och ta bort data för andra ändamål. I stället för att till exempel använda flera I/O-åtgärder för att serialisera en grupp objekt till en dataström, kan ett program optimera prestanda genom att serialisera flera objekt av olika typer till en buffert och sedan skriva hela bufferten i en enda åtgärd. Funktionerna som manipulerar serialiseringshandtag är oberoende av vilken typ av serialisering du använder.
Som ett annat exempel, om du behöver använda en nätverkstransportmekanism förutom RPC, till exempel Microsoft Windows Sockets (Winsock). Med RPC-serialisering kan programmet göra anrop till funktioner som konverterar dina data till buffertar och sedan överför dessa data med Winsock. När ditt program tar emot data kan det använda RPC-serialiseringsmekanismen för att avmarshala data från buffertar som fylls av Winsock-rutinerna. Detta ger dig många av fördelarna med RPC-liknande program, och samtidigt kan du använda transportmekanismer som inte är RPC.
Du kan också använda serialisering för ändamål som inte är relaterade till nätverkskommunikation. När du till exempel använder RPC-kodningsfunktionerna för att konvertera data till en buffert kan du lagra dem i en fil för användning av ett annat program. Du kan också kryptera den. Du kan till och med använda den för att lagra en maskinvaru- och operativsystemsoberoende representation av data i en databas.
Följande avsnitt innehåller en diskussion om de serialiseringstjänster som Microsoft RPC stöder: