Serialização

Origem: Wikipédia, a enciclopédia livre.

Em ciência da computação, no contexto de armazenamento e transmissão de dados, serialização é o processo de tradução de estruturas de dados ou estado de objeto em um formato que possa ser armazenado (por exemplo, em um arquivo ou buffer de memória, ou transmitido por meio de um enlace de conexão de rede) e reconstruído posteriormente no mesmo ou em outro ambiente computacional.[1] Quando a série de bits resultante é relida de acordo com o formato de serialização, ela pode ser usada para criar um clone do objeto original idêntico semanticamente. Para muitos objetos complexos, como aqueles que fazem uso extensivo de referências, este processo não é direto. A serialização de objetos orientados a objetos não incluem qualquer de seus métodos associados com os quais eles foram previamente ligados inextricavelmente.

Este processo de serialização de um objeto também é chamado de marshalling de objeto.[2] A operação oposta, a extração de uma estrutura de dados de uma série de bytes e chamada de desserialização (também chamada de unmarshalling).

Usos[editar | editar código-fonte]

A serialização fornece algumas vantagens, tais como:

  • um método simples e robusto de tornar objetos persistentes
  • um método para a implementação de chamadas de procedimento remoto
  • um método a distribuição de objetos, tais como usados em COM e CORBA.

Para que tais funcionalidades sejam usufruídas, deve ser mantida a independência de arquitetura. Por exemplo, um computador com uma arquitetura de hardware diferente deve ser capaz de reconstruir de forma consistente o fluxo de dados seriais.

A serialização também fornece algumas desvantagens. Como a codificação é serial, para se extrair determinada informação de uma estrutura de dados deve-se reconstruir todo o objeto antes de ler a informação.

Suporte a linguagens de programação[editar | editar código-fonte]

Várias linguagens de programação orientadas a objetos suportam serialização de forma direta:

Algumas delas são:

  • Objective-C
  • Java
  • Delphi
  • C#
  • Visual Basic .NET
  • ColdFusion
  • Ocaml
  • Perl
  • Python
  • PHP
  • Ruby

Referências

  1. Marshall Cline. «C++ FAQ: "What's this "serialization" thing all about?"». Cópia arquivada em 5 de abril de 2015. It lets you take an object or group of objects, put them on a disk or send them through a wire or wireless transport mechanism, then later, perhaps on another computer, reverse the process, resurrecting the original object(s). The basic mechanisms are to flatten object(s) into a one-dimensional stream of bits, and to turn that stream of bits back into the original object(s). 
  2. How to marshal an object to a remote server by value by using Visual Basic 2005 or Visual Basic .NET […] Because the whole object is being serialized to the server (marshaling by value), the code will execute in the server's process.
Ícone de esboço Este artigo sobre ciência da computação é um esboço. Você pode ajudar a Wikipédia expandindo-o.