En los tiempos que vivimos, de la red 2.0, la programación de elementos aislados comienza a ser cada vez menos frecuente, mientras que el desarrollo para la web, para Internet, de aplicaciones que sean escalables, redundantes y tolerantes a fallos, se incrementa de forma vertiginosa.
En ese aspecto, los programas deben de sincronizar sus datos, lo que procesan, con otros elementos de un mismo sistema o copias del mismo (a modo de redundancia).
El envío de datos estructurados en forma de vector, matriz, estructuras heterogéneas o incluso objetos, a través de la red, se complica, puesto que se debe de realizar a través de un sistema que permita su perfecto encapsulado para que al realizar la acción contraria, los datos mantenga su forma íntegramente.
Esta vertiente se ve cada vez más patente en el diseño web con usos de elementos como AJAX, que solicita un paso de información entre servidor y cliente para el proceso en la parte del cliente de todas las acciones de interacción con el usuario.
En este sentido, en el envío de datos de forma plana entre elementos de un mismo sistema, o incluso sistemas distintos, se usa la serialización.
La serialización es un sistema que permite convertir a un formato específico, totalmente de texto, de modo que pueda ser transmitido de forma fácil a través de la red y para cualquier lenguaje de programación. Hay muchos tipos se serialización:
- XML: consiste en convertir a una estructura de XML toda la información estructurada que se encuentre en el sistema y se quiera transmitir.
- JSON: es un formato en el que se pueden escribir las estructuras de datos de forma reconocible por los programadores y asequibles para lenguajes como JavaScript.
- YAML: es otro meta-lenguaje como JSON que propone la forma de escribir los datos, sus estructuras y organización de forma que sea mejor vista por los programadores, e incluso los que no son programadores, al mismo modo que constituye un formato simple y compacto para la transmisión de datos.
Dentro de cada lenguaje, de forma específica, también puede haber otros mecanismos de serialización, como es el caso de PHP, que usa unas funciones de serialización (serialize, unserialize) para tareas como guardar la información en las sesiones, o incluso usarlas para guardar información en memcached.


