Serviços de serialização
O Microsoft RPC dá suporte a dois métodos para codificar e decodificar dados, chamados coletivamente de serialização de dados. Serialização significa que os dados são realizados em marshaling para e nãomarshalados de buffers que você controla. Isso difere do uso tradicional de 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 de 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 são nãomarsalizados do buffer para a memória. Você pode serializar em uma base de tipo ou procedimento.
Observação
O termo pickling é comumente 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 RPC.
A serialização aproveita os mecanismos RPC para realizar marshaling e cancelar a gravação 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 (Microsoft Windows Sockets). Com a serialização RPC, seu programa pode fazer chamadas para funções que empacotam seus dados em buffers e, em seguida, transmitir esses dados usando Winsock. Quando o aplicativo recebe dados, ele pode usar o mecanismo de serialização RPC para cancelar amarscaçã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 realizar 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é mesmo usá-lo para armazenar uma representação independente de hardware e sistema operacional de dados 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
- Serialização de procedimento
- Serialização de tipo
- Identificadores de serialização