上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
3.1 什么是流化
首先,还是让我们再来看看流化的概念。相信很多读者通过对前文的学习,已经对本书所提的“流化”的含义有所了解,但是不是每个人都已经对“流化”的概念有了清晰、完整、准确的认识呢?应该并不尽然。
相信许多已经熟悉另一个常用名词“序列化”(serilization)的读者肯定会说:你说的流化不就是序列化吗?
没错,这里所讲的“流化”(streamlization)其实质与我们平常所讲的“序列化”(serilization)确实基本相同。让我们先来看看“序列化”的定义:序列化是指将一个对象的实例转换成二进制串或文本串的格式,以方便被本地保存或异地传输。而消息流化的目的也是为了形成二进制串的格式以方便网络传输,因此,从某种意义上讲,可以说“流化”就是“序列化”,两者没有本质区别。
但在本书中所讲的“流化”,还有以下几个特点。
· 一个消息实例是由多个对象实例组成的,所以本书所讲“消息的流化”是指所有这些对象实例按一定顺序与规则“流化”的过程,也可以说,是一系列的序列化过程。
· 对流消息部分的内容来讲,“消息流化”的结果一定是二进制流(串),而不是文本串(第一章原始消息设计的例子是将数字序列化成文本来传输,同时本书下一部分关于“XML消息”的内容也会涉及文本串的传输),所以,这里用“流化”一词,以便与第1章原始方法以及后面讲到的XML消息的传输格式生成有所区别。
因此,这里我们还是采用“流化”一词来表达我们的内容,并这样定义:“消息流化”是指消息各组成部分(符合消息代码表示标准的对象实例)为了方便传输,按一定规则与顺序,被转换为等价的二进制流表示的过程。
同样,正如有“反序列化”概念一样,也有“反流化”概念:它是指消息的二进制流表示被接收方按一定规则与顺序转换成符合消息代码表示标准的对象实例的过程。