17.04.2023

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


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

Сериализация используется для передачи объектов по сети и для сохранения их в файлы. Например, нужно создать распределённое приложение, разные части которого должны обмениваться данными со сложной структурой. В таком случае для типов данных, которые предполагается передавать, пишется код, который осуществляет сериализацию и десериализацию. Объект заполняется нужными данными, затем вызывается код сериализации, в результате получается, например, XML-документ. Результат сериализации передаётся принимающей стороне по, скажем, электронной почте или HTTP. Приложение-получатель создаёт объект того же типа и вызывает код десериализации, в результате получая объект с теми же данными, что были в объекте приложения-отправителя. По такой схеме работает, например, сериализация объектов через SOAP в Microsoft .NET.

Применение

Любой из схем сериализации присуще то, что кодирование данных последовательно по определению, и извлечение любой части сериализованной структуры данных требует, чтобы весь объект был считан от начала до конца и воссоздан. Во многих приложениях такая линейность полезна, потому что позволяет использовать простые интерфейсы ввода-вывода общего назначения для сохранения и передачи состояния объекта. В приложениях, где важна высокая производительность, может иметь смысл использовать более сложную, нелинейную, организацию хранения данных.

Сериализация предоставляет несколько полезных возможностей:

  • метод реализации сохраняемости объектов, который более удобен, чем запись их свойств в текстовый файл на диск и повторная сборка объектов чтением файлов;
  • метод осуществления удалённых вызовов процедур, как, например, в SOAP;
  • метод распространения объектов, особенно в технологиях компонентно-ориентированного программирования, таких как COM и CORBA;
  • метод обнаружения изменений в данных, изменяющихся со временем.

Для наиболее эффективного использования этих возможностей необходимо поддерживать независимость от архитектуры. Например, необходимо иметь возможность надёжно воссоздавать сериализованный поток данных независимо от порядка байтов, использующегося в данной архитектуре. Это значит, что наиболее простая и быстрая процедура прямого копирования участка памяти, в котором размещается структура данных, не может работать надёжно для всех архитектур. Сериализация структур данных в архитектурно-независимый формат означает, что не должно возникать проблем из-за различного порядка следования байт, механизмов распределения памяти или различий представления структур данных в языках программирования.

Недостатки

Сериализация нарушает непрозрачность абстрактного типа данных, потенциально раскрывая частные детали реализации. Тривиальные реализации, которые сериализуют все элементы данных, могут нарушать инкапсуляцию.

Чтобы озадачить конкурентов в плане создания аналогичных продуктов, разработчики патентованного программного обеспечения часто держат детали форматов сериализации своих программ в секрете. Некоторые намеренно запутывают или даже шифруют сериализованные данные. Тем не менее, совместимость требует, чтобы приложения могли понимать форматы сериализации друг друга. Поэтому архитектуры удаленного вызова методов, такие как CORBA, детально задают свои форматы сериализации.

Сериализация научных данных

Для научных наборов данных, имеющих большой объём, таких как данные, получаемые от спутников, или численные модели климата, погоды и океанов, были разработаны специальные бинарные стандарты сериализации, например HDF, netCDF и более старый GRIB.


Похожие новости:

Сетевое кодирование

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

EXPRESS (язык моделирования данных)

EXPRESS (язык моделирования данных)
EXPRESS — стандартный язык моделирования данных для данных о производстве. EXPRESS оформляется в соответствии со стандартом ISO для обмена товара модель STEP (ИСО 10303), и стандартизирован как ISO

Протокол передачи данных

Протокол передачи данных
Протокол передачи данных — набор соглашений интерфейса логического уровня, которые определяют обмен данными между различными программами. Эти соглашения задают единообразный способ передачи сообщений

Структура (язык Си)

Структура (язык Си)
В языке Си, структура (struct) — композитный тип данных, инкапсулирующий без сокрытия набор значений различных типов. Порядок размещения значений в памяти задаётся при определении типа и сохраняется
Комментариев пока еще нет. Вы можете стать первым!

Добавить комментарий!

Ваше Имя:
Ваш E-Mail:
Введите два слова, показанных на изображении: *
Популярные новости
ЖК А ПЛЮС: гармония комфорта и стиля в новостройке от застройщика
ЖК А ПЛЮС: гармония комфорта и стиля в новостройке от застройщика
На сегодняшний день при выборе жилья все больше людей обращают внимание на новостройки, которые...
Подвесные люстры: великолепие и элегантность освещения
Подвесные люстры: великолепие и элегантность освещения
Освещение играет важную роль в создании атмосферы в любом помещении. Оно способно влиять на...
Каркасный дом в Санкт-Петербурге: комфортное жилье с безупречным качеством от КАРСИККО
Каркасный дом в Санкт-Петербурге: комфортное жилье с безупречным качеством от КАРСИККО
При выборе жилья каждый ищет комфорт, надежность и качество. Одним из популярных вариантов...
Все новости