¿Qué es la serialización?

Significado | Concepto | Definición:

En la programación de computadoras , la serialización es el proceso de tomar una estructura de datos almacenada en la memoria local y convertirla en un flujo de bytes que pueden transmitirse a través de una red o almacenarse en un disco para ser reensamblados y utilizados por otro programa. La serialización también se puede utilizar para guardar el estado de un objeto para que el mismo programa pueda volver a cargarlo más tarde. Un uso más complejo de esta función es invocar una llamada a procedimiento remoto (RPC) , ejecutando efectivamente un procedimiento en otra computadora a través de una red. Este mecanismo también permite la distribución de objetos de datos a través de un gran sistema en red.

Mujer haciendo el pino con una computadora

Casi todos los lenguajes informáticos modernos tienen soporte nativo para la serialización o una biblioteca disponible para agregar esta funcionalidad. Cuando se serializa un objeto, todos los campos del objeto se aplanan. Este proceso también se conoce como desinflar o clasificación. Los datos se convierten en una fila unidimensional de bytes que se pueden escribir en cualquier flujo de salida. El tipo de flujo de salida no importa y podría ser un archivo o un conector de red.

Anuncios

Una vez que los datos han sido serializados y enviados a su ubicación final, comienza el proceso de deserialización. El programa que lee el flujo de bytes restaura toda la información y la coloca en una nueva instancia del objeto original, creando un copia exacta Es importante comprender que solo se calculan los datos que contenía el objeto; el objeto y sus métodos y otros datos de implementación no lo son, lo que significa que el programa que deserializa los datos debe poder crear una instancia de la clase que se serializó originalmente.

La serialización de la estructura de datos se puede usar para una variedad de propósitos. La información del objeto se puede almacenar en medios físicos para que el estado exacto de cada objeto se pueda restaurar al punto en el que se encontraba cuando se detuvo la ejecución del programa. Se puede usar para enviar mensajes a otra computadora que hará que se ejecute un procedimiento remoto. La serialización incluso se puede utilizar para comparar de manera eficiente los cambios de estado en aplicaciones en tiempo real.

Antes de utilizar la serialización de objetos, es importante comprender algunas de las limitaciones que impone. La más importante es que, a través del proceso de conversión de un objeto en un flujo de bytes, los campos que se declaran como privados quedarán expuestos. . Durante la transmisión del flujo, estos datos se pueden capturar y decodificar, presentando un agujero de seguridad. La mayoría de los lenguajes permiten la externalización de los formatos de serialización de datos, por lo que la codificación propietaria es posible para ayudar a mitigar este riesgo.

Otro factor a tener en cuenta es que la serialización, en general, funcionará solo con objetos que sean exactamente iguales al objeto serializado. Si se agregan nuevos campos o métodos a un objeto , entonces la firma del objeto cambiará. Esto significará que el objeto almacenado causará una excepción y los datos serán irrecuperables hasta que una instancia del objeto original sin modificar intente restaurarlo.

 

Mira estos Artículos

Subir