Преобразование объекта в поток байтов для хранения или передачи
Техническая операция, при которой сложная структура данных (объект, список, дерево) преобразуется в линейную последовательность символов или байтов. Это необходимо, потому что объекты существуют только внутри оперативной памяти конкретной программы и не могут быть напрямую сохранены на жесткий диск или отправлены по сети без перевода в универсальный текстовый или бинарный формат.
Близкие слова
- упаковка данныхчасто используется как синоним в контексте подготовки данных к передаче или хранению, но может также подразумевать сжатие.
Для отправки профиля пользователя на сервер клиент выполняет сериализацию объекта в формат JSON.
Программа сохраняет настройки приложения, используя сериализацию данных в XML-файл.
Обеспечение совместимости между разными системами
Способ сделать данные понятными для разных языков программирования или платформ. Поскольку каждый язык имеет свои внутренние представления объектов, сериализация в стандартные форматы (JSON, Protocol Buffers, YAML) позволяет программе на Python прочитать данные, созданные программой на Java.
Близкие слова
- кодирование данныхболее широкое понятие, включающее также изменение кодировки символов (например, UTF-8), тогда как сериализация меняет структуру.
Микросервисная архитектура полагается на сериализацию сообщений между компонентами, написанными на разных языках.
API веб-сервиса использует сериализацию ответов в JSON для обеспечения совместимости с мобильными приложениями.
Чем сериализация отличается от архивирования
Часто эти понятия путают, но они решают разные задачи. Сериализация меняет структуру представления данных (из объекта в строку), сохраняя их логическую целостность и типизацию для последующего восстановления. Архивирование же (например, ZIP или GZIP) направлено на сжатие объема файлов без изменения их внутренней структуры. Можно сериализовать объект, а затем заархивировать полученный файл, но одно не заменяет другое.
Популярные форматы и протоколы
Для сериализации используются различные форматы. JSON и XML удобны для человека и хорошо поддерживаются веб-технологиями, но занимают больше места и медленнее обрабатываются машиной. Бинарные форматы, такие как Protocol Buffers или Apache Avro, не читаемы человеком напрямую, но значительно быстрее сериализуются и десериализуются, экономя трафик и процессорное время. Выбор формата зависит от требований к скорости, размеру данных и необходимости чтения логов вручную.
