序列化与反序列化的通俗解释及主要序列化的方法介绍

本文介绍了序列化与反序列化的基本概念,包括将对象转换为字节序列和从字节序列恢复对象的过程。讨论了序列化组件如IDL文件、IDL编译器、Stub/Skeleton Lib等,并列举了常见的序列化方法,如XML、JSON、Avro、Thrift和Protobuf。针对不同场景,提供了选择不同序列化协议的建议。
摘要由CSDN通过智能技术生成
序列化与反序列化
  • 序列化:把对象转换为字节序列的过程。
  • 反序列化:把字节序列恢复为对象的过程。

举个例子,在JVM中,对象是以一定形式存在于内存中,然后被JVM识别从而可以以“对象”的方式是用它。那么序列化是什么呢,简单来说就是把内存中的对象的状态先以一种方式导出保存下来以便今后在某地方能够继续使用它。

序列化的组件
  • IDL(Interface description language)文件:参与通讯的各方需要对通讯的内容需要做相关的约定(Specifications)。为了建立一个与语言和平台无关的约定,这个约定需要采用与具体开发语言、平台无关的语言来进行描述。这种语言被称为接口描述语言(IDL),采用 IDL 撰写的协议约定称之为 IDL 文件。
  • IDL Compiler:IDL 文件中约定的内容为了在各语言和平台可见,需要有一个编译器,将 IDL 文件转换成各语言对应的动态库。
  • Stub/Skeleton Lib:负责序列化和反序列化的工作代码。Stub 是一段部署在分布式系统客户端的代码,一方面接收应用层的参数,并对其序列化后通过底层协议栈发送到服务端,另一方面接收服务端序列化后的结果数据,反序列化后交给客户端应用层;Skeleton 部署在服务端,其功能与 Stub 相反,从传输层接收序列化参数,反序列化后交给服务端应用层,并将应用层的执行结果序列化后最终传送给客户端 Stub。
  • Client/Server:指的是应用层程序代码,他们面对的是 IDL 所生成的特定语言的 class 或 struct。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值