Открыть сервис

Сериализация

Сериализация — в информатике это процесс преобразования структуры данных или состояния объекта в последовательную форму (обычно в виде потока байтов или строки), пригодную для сохранения в файл, передачи по сети или хранения в базе данных. Обратный процесс — восстановление объекта из последовательной формы — называется десериализацией (или демаршализацией). Сериализация позволяет сохранять и восстанавливать сложные структуры данных, передавать объекты между различными программами или компонентами системы, а также обеспечивать долговременное хранение состояния приложения.

История

Первые концепции сериализации возникли в 1960-х годах с развитием систем управления базами данных и сетевых протоколов. В ранних языках программирования, таких как COBOL и FORTRAN, данные могли записываться в файлы в виде последовательных записей фиксированной длины. Однако настоящий прорыв произошёл в 1980-х годах с появлением объектно-ориентированного программирования. Язык Smalltalk ввёл понятие «сериализация» как стандартный механизм для сохранения и восстановления объектов. В 1990-х годах сериализация стала неотъемлемой частью распределённых систем, таких как CORBA (Common Object Request Broker Architecture) и Java RMI (Remote Method Invocation). С развитием веб-технологий в 2000-х годах появились текстовые форматы сериализации, такие как JSON и XML, которые стали стандартом для обмена данными между веб-сервисами.

Цели и применение

Сериализация решает несколько ключевых задач:

Форматы сериализации

Форматы сериализации делятся на две основные категории: текстовые (человекочитаемые) и бинарные (компактные и быстрые).

Текстовые форматы

Бинарные форматы

Специфичные для языков форматы

Классификация по типам

Принципы работы

Процесс сериализации обычно включает следующие этапы:

  1. Анализ структуры: сериализатор анализирует объект или структуру данных, определяя её поля, их типы и значения.
  2. Преобразование: каждое поле преобразуется в последовательность байтов или символов в соответствии с правилами выбранного формата.
  3. Упаковка: все преобразованные части объединяются в единый поток данных, возможно, с добавлением метаданных (например, длины полей, маркеров начала/конца).
  4. Запись/передача: полученный поток данных записывается в файл, передаётся по сети или сохраняется в памяти.

Десериализация выполняет обратные действия: читает поток данных, интерпретирует его в соответствии с форматом и восстанавливает исходную структуру данных или объект.

Критика и ограничения

Примеры использования

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →