Откуда происходит термин «сериализация»? - PullRequest
5 голосов
/ 13 июля 2009

Я знаю, что сериализация является , но для меня это один термин, который не описывает, что он означает.

Почему мы называем сериализацию сериализацией ? Что такого в преобразовании объектов в необработанные данные (и в этом случае в раздувание / десериализацию) пригодно для всего, что связано с термином «серийный»? Кто придумал этот термин и почему?

Ответы [ 6 ]

10 голосов
/ 13 июля 2009

Это, вероятно, из сетей и коммуникаций, где необходимо преобразовывать данные в последовательный поток единиц и нулей.

Википедия говорит:

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


Я также вспомнил вчера вечером, что в первом сетевом проекте, над которым я работал (1983), использовался термин «сериализатор» для части кода, которая переводила сообщения из структур в C в серию байтов, которые должны быть записаны в сеть транспорт. Он должен был взять структуру, которая логически представляла сообщение, и вывести его каждый байт, следующий за следующим , на провод.

Авторы этого кода пришли из BB & N, так что это дает вам направление, в котором нужно искать историю.

4 голосов
/ 13 июля 2009

Я думаю, что Джон Сондерс на правильном пути, тот факт, что данные отправляются на диск или по сети в виде «потока», почти наверняка является источником этого термина.

Однако другой способ думать об этом так: состояние программы распространяется по всей памяти, а указатели / ссылки указывают повсюду. У вас есть массивы, списки, деревья, стеки вызовов, кучи выделенной памяти и т. Д. В произвольном порядке.

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

Чтобы сохранить какое-то состояние, вы должны «привести свои дела в порядок» таким образом, чтобы сохраняемая информация была только той частью, которая будет актуальна позже.

4 голосов
/ 13 июля 2009

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

3 голосов
/ 13 июля 2009

Последовательный означает один за другим. Следовательно, это становится одним длинным потоком байтов.

1 голос
/ 13 июля 2009

По сути, это просто набор предметов, размещенных в порядке. Слово сериализовано также когда-то в литературе.

0 голосов
/ 11 июня 2017

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

...