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

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

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

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

Содержание

Применение

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

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

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

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

Сериализация массива в PHP

В PHP массив сериализируется с помощью функции serialize($array), где $array - это массив, а возвращаемое значение функции - текстовая строка. После этого строку можно заново превратить в массив с помощью функции unserialize($string), где - $string - сериализированный массив (строка), а возвращаемое значение функции - начальный массив.

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

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

См. также

Ссылки



Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Полезное


Смотреть что такое "Сериализация" в других словарях:

  • сериализация транзакций — Обеспечение режима параллельного исполнения множества конкурирующих транзакций в СУБД с мультидоступом на основе расписания, эквивалентного последовательному. При этом исполнение заданного множества транзакций приводит точно к таким же… …   Справочник технического переводчика

  • Объектно-ориентированное программирование на Питоне — С самого начала Питон проектировался как объектно ориентированный язык программирования [1]. Содержание 1 Введение 1.1 Принципы ООП …   Википедия

  • Объектно-ориентированное программирование на Python — Объектно ориентированное программирование на Python  программирование на Python с использованием парадигмы ООП: с самого начала Python проектировался как объектно ориентированный язык программирования[1]. Содержание 1 Введение 1.1 …   Википедия

  • Remote Procedure Call — Удалённый вызов процедур (или Вызов удалённых процедур) (от англ. Remote Procedure Call (RPC))  класс технологий, позволяющих компьютерным программам вызывать функции или процедуры в другом адресном пространстве (как правило, на удалённых… …   Википедия

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

  • Список глав манги Love Hina — Основная статья: Love Hina Японская обложка для 1го тома Love Hina это манга серия написанная и проиллюстрированная Кэном Акамацу. Эта серия первоначально сериализовалась в Weekl …   Википедия

  • Удалённый вызов процедур — (или Вызов удалённых процедур) (от англ. Remote Procedure Call (RPC))  класс технологий, позволяющих компьютерным программам вызывать функции или процедуры в другом адресном пространстве (как правило, на удалённых компьютерах). Обычно,… …   Википедия

  • Python — У этого термина существуют и другие значения, см. Python (значения). Python Класс языка: му …   Википедия

  • One Piece — Обложка первого тома «One Piece». ワンピース (Ван Пису) Жанр приключения, комедия …   Википедия

  • Hibernate (библиотека) — У этого термина существуют и другие значения, см. Hibernate. Hibernate Тип Object Relational Mapping Разработчик Red Hat Написана на Java …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»