【问题标题】:Where does the term "serialization" come from?“序列化”一词从何而来?
【发布时间】:2010-11-10 04:45:41
【问题描述】:

我知道什么是序列化,但对我来说,这是一个无法描述其含义的术语。

为什么我们叫序列化序列化?将对象转换为原始数据(以及膨胀/反序列化,就此而言)适用于与“串行”一词相关的任何事情是什么?谁创造了这个词,为什么?

【问题讨论】:

  • +1 所有答案 - 谢谢。他们很有帮助。

标签: serialization history


【解决方案1】:

它可能来自网络和通信,需要将数据转换为 1 和 0 的串行流。

Wikipedia 说:

在计算机科学中,在 数据存储和传输, 序列化是一个过程 将对象转换为序列 位,以便它可以持续存在 存储介质(例如文件或 内存缓冲区)或跨传输 网络连接链接。当。。。的时候 重新读取产生的一系列位 根据序列化格式, 它可以用来创建一个 语义相同的克隆 原始对象。对于许多复杂的 对象,例如那些使 广泛使用参考文献,这 过程并不简单。


我还记得昨晚我参与的第一个网络项目(1983 年)使用术语“序列化器”来表示将消息从 C 中的结构转换为一系列字节以写入网络的代码部分运输。它必须获取逻辑上表示消息的结构,并将其在下一个字节之后的每个字节输出到线路上。

此代码的作者来自 BB&N,因此为您提供了寻找历史的方向。

【讨论】:

  • 阅读,但没有立即在“位系列”位上建立连接。谢谢。
【解决方案2】:

我认为 John Saunders 走在正确的轨道上,数据作为“流”发送到磁盘或通过网络这一事实几乎可以肯定是该术语的起源。

然而,另一种思考方式是这样的:程序的状态分布在整个内存中,指针/链接指向各处。你有数组、列表、树、调用堆栈、分配的内存堆等,没有特定的顺序。

当你想保存一些状态时,你不能在你的程序中使用很多信息。例如,任何指针值或堆栈偏移量(无论是直接使用还是由语言运行时内部使用等)都可能在下次程序运行时无效,因为堆将用于分配稍微不同的内存块系列.保存这些指针值是没有用的。

要保存某些状态,您必须“整理事务”,以便保存的信息只是稍后将相关的部分。

【讨论】:

    【解决方案3】:

    序列化使用数据结构和指针将内存中的数据转换为一系列字节,这些字节旨在保存在顺序媒体(如硬盘)上或通过类似串行连接的方式传输。

    【讨论】:

      【解决方案4】:

      连续的意思是一个接一个。因此,它变成了一个长字节流。

      【讨论】:

        【解决方案5】:

        它基本上只是表示按顺序排列的一系列项目。序列化这个词有时也用在文学作品中。

        【讨论】:

          【解决方案6】:

          在早期,我们将数据保存到磁带等介质,然后是软盘,每次只能读取/写入一个位,而存储的本质是磁介质以相对于读取的一定速率移动/写头。所以数据的物理布局是 1 和 0,从媒体上的某个点开始,到另一个点结束。因此,数据实际上是以串行方式传输到存储的。

          【讨论】:

            猜你喜欢
            • 2015-01-12
            • 2011-01-27
            • 2011-02-14
            • 2015-02-11
            • 2019-10-28
            • 2011-08-09
            • 2017-10-12
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多