数据序列化方案

序列化的定义

序列化:把对象转化为可传输的字节序列过程称为序列化。
反序列化:把字节序列还原为对象的过程称为反序列化。

序列化方案

一些比较通用的序列化方案JSON、XML、Thrift、Protostuff、Hessian。

  • JSON
    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成。
    json使用方便,序列化过程的数据也非常便于开发者阅读,缺点是当数据量很大的时候,性能不太好

  • Google Protocol Buffer
    优点:
    数据更小、解析更快、也更简单。
    “向后”兼容性好
    Protobuf 语义更清晰,无需类似 XML 解析器的东西
    Protobuf 的编程模式比较友好,简单易学
    缺点:
    功能简单,无法用来表示复杂的概念。
    通用性相对较差

  • XML
    XML 指可扩展标记语言(EXtensible Markup Language)。 是一种标记语言,很类似 HTML
    XML 序列化和反序列化是目前效率最低的,但可承载数据类型和数据量是最大的

  • thrift
    解决facebook系统中各系统间大数据量的传 输通信以及系统之间语言环境不同需要跨平台的特性。
    所以thrift可以支持多种程序语言,例如: C++, C#, Cocoa, Erlang, Haskell, Java, Ocami, Perl, PHP, Python, Ruby, Smalltalk.
    在多种不同的语言之间通信thrift可以作为二进制的高性能的通讯中间件,支持数据(对象)序列化和多种类型的RPC服务。

优点,大量语言都支持thrift,传输支持文本图片视频,性能很好,反序列化和序列化都非常高效,数据量大也不会有太大影响,thrift还提供RPC功能
缺点,对用于程序对程序静态的数据交换,需要先确定好他的数据结构,他是完全静态化的当数据结构发生变化时,必须重新编辑IDL文件,代码生成,再编译载入的流程。

你可能感兴趣的:(物联网,物联网)