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

Поделись знанием:
Перейти к: навигация, поиск

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

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





Применение

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

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

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

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

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

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

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

См. также

Напишите отзыв о статье "Сериализация"

Ссылки

  • [wiki.shelek.ru/index.php/C%2B%2B_%D1%81%D0%B5%D1%80%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85 Сериализация данных в C++.]
  • [www.xakep.ru/post/51883/ Сериализация PHP-объектов глазами хакера]


Отрывок, характеризующий Сериализация

– Надень твое белое платье, я люблю его, – говорил он.
Поняв эти слова, княжна Марья зарыдала еще громче, и доктор, взяв ее под руку, вывел ее из комнаты на террасу, уговаривая ее успокоиться и заняться приготовлениями к отъезду. После того как княжна Марья вышла от князя, он опять заговорил о сыне, о войне, о государе, задергал сердито бровями, стал возвышать хриплый голос, и с ним сделался второй и последний удар.
Княжна Марья остановилась на террасе. День разгулялся, было солнечно и жарко. Она не могла ничего понимать, ни о чем думать и ничего чувствовать, кроме своей страстной любви к отцу, любви, которой, ей казалось, она не знала до этой минуты. Она выбежала в сад и, рыдая, побежала вниз к пруду по молодым, засаженным князем Андреем, липовым дорожкам.
– Да… я… я… я. Я желала его смерти. Да, я желала, чтобы скорее кончилось… Я хотела успокоиться… А что ж будет со мной? На что мне спокойствие, когда его не будет, – бормотала вслух княжна Марья, быстрыми шагами ходя по саду и руками давя грудь, из которой судорожно вырывались рыдания. Обойдя по саду круг, который привел ее опять к дому, она увидала идущих к ней навстречу m lle Bourienne (которая оставалась в Богучарове и не хотела оттуда уехать) и незнакомого мужчину. Это был предводитель уезда, сам приехавший к княжне с тем, чтобы представить ей всю необходимость скорого отъезда. Княжна Марья слушала и не понимала его; она ввела его в дом, предложила ему завтракать и села с ним. Потом, извинившись перед предводителем, она подошла к двери старого князя. Доктор с встревоженным лицом вышел к ней и сказал, что нельзя.
– Идите, княжна, идите, идите!
Княжна Марья пошла опять в сад и под горой у пруда, в том месте, где никто не мог видеть, села на траву. Она не знала, как долго она пробыла там. Чьи то бегущие женские шаги по дорожке заставили ее очнуться. Она поднялась и увидала, что Дуняша, ее горничная, очевидно, бежавшая за нею, вдруг, как бы испугавшись вида своей барышни, остановилась.
– Пожалуйте, княжна… князь… – сказала Дуняша сорвавшимся голосом.
– Сейчас, иду, иду, – поспешно заговорила княжна, не давая времени Дуняше договорить ей то, что она имела сказать, и, стараясь не видеть Дуняши, побежала к дому.
– Княжна, воля божья совершается, вы должны быть на все готовы, – сказал предводитель, встречая ее у входной двери.
– Оставьте меня. Это неправда! – злобно крикнула она на него. Доктор хотел остановить ее. Она оттолкнула его и подбежала к двери. «И к чему эти люди с испуганными лицами останавливают меня? Мне никого не нужно! И что они тут делают? – Она отворила дверь, и яркий дневной свет в этой прежде полутемной комнате ужаснул ее. В комнате были женщины и няня. Они все отстранились от кровати, давая ей дорогу. Он лежал все так же на кровати; но строгий вид его спокойного лица остановил княжну Марью на пороге комнаты.
«Нет, он не умер, это не может быть! – сказала себе княжна Марья, подошла к нему и, преодолевая ужас, охвативший ее, прижала к щеке его свои губы. Но она тотчас же отстранилась от него. Мгновенно вся сила нежности к нему, которую она чувствовала в себе, исчезла и заменилась чувством ужаса к тому, что было перед нею. «Нет, нет его больше! Его нет, а есть тут же, на том же месте, где был он, что то чуждое и враждебное, какая то страшная, ужасающая и отталкивающая тайна… – И, закрыв лицо руками, княжна Марья упала на руки доктора, поддержавшего ее.
В присутствии Тихона и доктора женщины обмыли то, что был он, повязали платком голову, чтобы не закостенел открытый рот, и связали другим платком расходившиеся ноги. Потом они одели в мундир с орденами и положили на стол маленькое ссохшееся тело. Бог знает, кто и когда позаботился об этом, но все сделалось как бы само собой. К ночи кругом гроба горели свечи, на гробу был покров, на полу был посыпан можжевельник, под мертвую ссохшуюся голову была положена печатная молитва, а в углу сидел дьячок, читая псалтырь.