- Сериализация
-
Сериализация (в программировании) — процесс перевода какой-либо структуры данных в последовательность битов. Обратной к операции сериализации является операция десериализации (структуризации) — восстановление начального состояния структуры данных из битовой последовательности.
Сериализация используется для передачи объектов по сети и для сохранения их в файлы. Например, нужно создать распределённое приложение, разные части которого должны обмениваться данными со сложной структурой. В таком случае для типов данных, которые предполагается передавать, пишется код, который осуществляет сериализацию и десериализацию. Объект заполняется нужными данными, затем вызывается код сериализации, в результате получается, например, 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 … Википедия
Книги
- C# 6. 0. Справочник. Полное описание языка, Албахари Джозеф, Албахари Бен. Данное руководство, ставшее бестселлером, позволяет получить точные ответы практически на любые вопросы по C# 6. 0, CLR и основным сборкам . NET Framework. После своего появления в 2000 году… Подробнее Купить за 4322 руб
- Тюркские конвербы и сериализация. Синтаксис, семантика, грамматикализация, Гращенков Павел Валерьевич. Монография посвящена конвербам на -п и их месту в грамматической системе тюркских языков. Ставится вопрос о характере связи (сочинительная, подчинительная) между частями сложных предикаций с… Подробнее Купить за 1091 грн (только Украина)
- Тюркские конвербы и сериализация. Синтаксис, семантика, грамматикализация, Гращенков Павел Валерьевич. Монография посвящена конвербам на -п и их месту в грамматической системе тюркских языков. Ставится вопрос о характере связи (сочинительная, подчинительная) между частями сложных предикаций с… Подробнее Купить за 886 руб