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
A serialização fornece algumas vantagens, tais como:
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
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