serialization - 序列化和编码(marshal)处理有什么区别?

标签 serialization terminology marshalling rpc

我知道就几种分布式技术(例如 RPC)而言,使用了术语“编码”,但不明白它与序列化有何不同。它们不是都将对象转换为一系列位吗?

相关:

What is Serialization?

What is Object Marshalling?

最佳答案

编码和序列化在远程过程调用的上下文中松散是同义词,但在语义上是不同的。

特别是,编码是关于从这里到那里获取参数,而序列化是关于将结构化数据复制到原始形式(例如字节流)或从原始形式(例如字节流)复制结构化数据。从这个意义上说,序列化是执行编码的一种方法,通常实现按值传递语义。

对象也可以通过引用进行编码,在这种情况下,“在线”数据只是原始对象的位置信息。然而,这样的对象可能仍然适合值序列化。

正如 @Bill 提到的,可能还有其他元数据,例如代码库位置甚至对象实现代码。

关于serialization - 序列化和编码(marshal)处理有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/770474/

相关文章:

mysql - 无法使用 JSON 解析 MySql 时间戳

c# - 在 SerializationInfo 中获取具有值的成员

c++ - 接口(interface),绝对就是纯虚函数,或者...?

python - 如何将上下文传递给 Marshmallow 中的嵌套序列化程序?

objective-c - 如何在 objective-c 中比较两个具有很多属性的对象

java - 如何使用Protocol Buffers在内存中序列化数据?

class - "monolithic"是什么意思?

swift - 什么是 Objective C 运行时特性?

serialization - 当通过远程 EJB 从数据库加载数据时,Java Web Start 应用程序会出现 MARSHAL 异常

c# - 将引用类型从 C++ 编码到 C#