Serviços de serialização
O Microsoft RPC dá suporte a dois métodos para codificar e decodificar dados, chamados coletivamente serializando dados. Serialização significa que os dados são marshalados e não armazenados em buffers que você controla. Isso difere do uso tradicional do RPC, no qual os stubs e a biblioteca de tempo de execução RPC têm controle total dos buffers de marshaling e o processo é transparente. Você pode usar o buffer para armazenamento em mídia permanente, criptografia e assim por diante. Quando você codifica dados, os stubs RPC empacotam os dados em um buffer e passam o buffer para você. Ao decodificar dados, você fornece um buffer de marshaling com dados nele e os dados não são armazenados do buffer para a memória. Você pode serializar em uma base de tipo ou procedimento.
Nota
O termo de seleção geralmente é usado entre desenvolvedores para descrever a serialização. Na verdade, os exemplos do SDK do Windows contêm um diretório chamado pickle que preserva os programas de exemplo de serialização do RPC.
A serialização aproveita os mecanismos RPC para marshaling e unmarshaling de dados para outras finalidades. Por exemplo, em vez de usar várias operações de E/S para serializar um grupo de objetos em um fluxo, um aplicativo pode otimizar o desempenho serializando vários objetos de diferentes tipos em um buffer e gravando todo o buffer em uma única operação. As funções que manipulam identificadores de serialização são independentes do tipo de serialização que você está usando.
Como outro exemplo, se você precisar usar um mecanismo de transporte de rede além do RPC, como o Winsock (Soquetes do Microsoft Windows). Com a serialização RPC, seu programa pode fazer chamadas para funções que empacotam seus dados em buffers e transmitem esses dados usando Winsock. Quando o aplicativo recebe dados, ele pode usar o mecanismo de serialização RPC para cancelar amarsalização de dados de buffers preenchidos pelas rotinas do Winsock. Isso oferece muitas das vantagens dos aplicativos no estilo RPC e, ao mesmo tempo, permite que você use mecanismos de transporte não RPC.
Você também pode usar a serialização para fins não relacionados às comunicações de rede. Por exemplo, depois de usar as funções de codificação RPC para fazer marshaling de dados em um buffer, você poderá armazená-los em um arquivo para uso por outro aplicativo. Você também pode criptografá-lo. Você pode até usá-lo para armazenar uma representação de dados independente do sistema operacional e de hardware em um banco de dados.
Os tópicos a seguir apresentam uma discussão sobre os serviços de serialização aos quais o Microsoft RPC dá suporte:
- usando serviços de serialização
- de serialização de procedimento
- de serialização de tipo
- identificadores de serialização