一种结构化数据的序列化、反序列化方法、装置和系统制造方法及图纸

技术编号:10486999 阅读:121 留言:0更新日期:2014-10-03 16:02
本发明专利技术实施例公开了一种结构化数据的序列化、反序列化方法、装置和系统,其中,所述所示结构化数据的序列化方法包括:获取第一元数据描述文件;获取结构化数据;根据获取的所述第一元数据描述文件,对所述结构化数据进行序列化。通过获取第一元数据描述文件,根据第一元数据描述文件,对获取的结构化数据进行序列化;使得生成的序列化数据中减少了除纯粹数据外的附加数据,如对数据类型描述等描述数据的内容,降低了数据传输时消耗的资源,提高了数据传输的效率,另一方面,可以简化了通信对端在反序列化过程中确定字段带来的逻辑处理开销。

【技术实现步骤摘要】
一种结构化数据的序列化、反序列化方法、装置和系统
本专利技术涉及通信
,具体涉及一种结构化数据的序列化、反序列化方法、装置和系统。
技术介绍
在计算机和互联网领域,有大量的网络数据交换过程。在网络游戏中尤其如此,需要有大量的网络数据交互。在网络资源有限的情况下,能够有效地减少序列化数据空间,简化序列化或反序列化过程对网络应用至关重要。现有技术中结构化数据序列化技术主要是以谷歌(Google)公司的protobuf。protobuf编译器根据定义的元数据描述文件,生成消息的序列化代码,避免使用者自行实现网络编解代码导致出错。序列化是指将结构化的数据按一定的编码规范转换成指定格式的过程,反序列化是指将转成指定格式的数据解析成原始的结构化数据的过程。举例来说:Person是一个表示人的对象类型,person是一个Person类型的对象,将person存到一个对应的可扩展标记语言(XML,ExtensibleMarkupLanguage)文档中的过程就是一种序列化,而解析XML生成对应Person类型对象person的过程,就是一个反序列化的过程。在这里结构化数据指的就是Person类型的数据,一定的编码规范指的就是XML文档的规范。XML是一种简单的序列化方式,用XML序列化的好处是,XML的通用性比较,另外,XML是一种文本格式,对人阅读比较友好,但是XML方式比较占空间,效率不高。通常,比较高效的序列化都是采用二进制方式的,将要序列化的结构化数据,按照一定的编码规范,转换成一串二进制的字节流存储下来,需要用的时候再从二进制的字节流中反序列化对应的结构化的数据。经过protobuf编译器生成的代码序列化的二进制数据采用标签长度数据值(TLV,Tag+Length+Value)格式编排,其中数据中的Tag内容主要包含数据类型ID和字段域ID信息。在protobuf编译器反序列化的过程中,根据TLV格式中的字段中的Tag可以获取到数据类型和字段域ID动态确定每个字段,并反序列化对应的字段。从纯粹的数据角度来看,protobuf序列化数据中包括的Tag部分是对数据的描述内容,并非数据本身,因此,在数据传输过程需要将Tag部分也要进行传输,从而增加了序列化后的数据大小,同时,也增加了反序列化逻辑中动态确定字段域ID带来的处理开销。
技术实现思路
本专利技术实施例提供了一种结构化数据的序列化、反序列化方法、装置和系统,在数据传输过程不需要将Tag部分也要进行传输,减少了序列化后的数据大小。本专利技术实施例提供了一种结构化数据的序列化方法,所示方法包括:获取第一元数据描述文件;获取结构化数据;根据获取的所述第一元数据描述文件,对所述结构化数据进行序列化。本专利技术实施例还提供了一种反序列化方法,所述方法包括:获取第二元数据描述文件;获取序列化的数据;根据获取的所述第二元数据描述文件,对获取的所述序列化的数据执行反序列化操作。本专利技术实施例还提供了一种结构化数据的序列化装置,所述装置包括:第一获取单元,第二获取单元,和序列化单元,所述第一获取单元,用于获取第一元数据描述文件;所述第二获取单元,用于获取结构化数据;所述第三获取单元,用于根据获取的所述第一元数据描述文件,对所述结构化数据进行序列化。本专利技术实施例还提供了一种反序列化装置,所述装置包括:第三获取单元,第四获取单元,和反序列化单元,所述第三获取单元,用于获取第二元数据描述文件;所述第四获取单元,用于获取序列化的数据;所述反序列化单元,用于根据获取的所述第二元数据描述文件,对获取的所述序列化的数据执行反序列化操作。本专利技术实施例还提供了一种通信系统,包括:序列化装置和反序列化装置;所述序列化装置,用于获取第一元数据描述文件;获取结构化数据;根据获取的所述第一元数据描述文件,对所述结构化数据进行序列化;所述反序列化装置,用于获取第二元数据描述文件;获取序列化的数据;根据获取的所述第二元数据描述文件,对获取的所述序列化的数据执行反序列化操作。从以上技术方案可以看出,本专利技术实施例具有以下优点:通过获取第一元数据描述文件,根据第一元数据描述文件,对获取的结构化数据进行序列化;使得生成的序列化数据中减少了除纯粹数据外的附加数据,如对数据类型描述等描述数据的内容,降低了数据传输时消耗的资源,提高了数据传输的效率,另一方面,可以简化了通信对端在反序列化过程中确定字段带来的逻辑处理开销。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的一种结构化数据的序列化方法流程简图;图2为本专利技术实施例提供的另一种结构化数据的序列化方法流程简图;图3为本专利技术实施例提供的一种反序列化方法流程简图;图4为本专利技术实施例提供的一种反序列化方法流程简图;图5为本专利技术实施例提供的一种序列化装置示意简图;图6为本专利技术实施例提供的一种反序列化装置示意简图;图7为本专利技术实施例提供的一种通信系统示意简图;图8为本专利技术实施例提供的一种序列化装置示意简图;图9为本专利技术实施例提供的一种反序列化装置示意简图。具体实施方式本专利技术实施例提供的技术方案通过在应用层数据交互的通信双方中都存储有兼容的元数据描述文件,通信双方以兼容的元数据描述文件理解序列化过程和反序列化过程,因此,在序列化后的数据中不需要包括Tag部分数据,由元数据描述文件中便于设备理解如何序列化,以及如何反序列化。从而在数据传输过程中不必传输Tag部分,从而降低了数据传输时对网络资源的消耗,也使得反序列化的逻辑处理开销降低。如图1所示,为本专利技术实施例提供了一种结构化数据的序列化方法,该方法包括:步骤101,获取第一元数据描述文件;其中,在第一元数据描述文件可以通过XML以高可读性方式描述结构化对象。其中对结构中每个成员字段的描述中可以包括顺序,字段类型,或者字段版本号(支持协议向后兼容性)等其中任意组合。这里对第一元数据描述文件的说明仅是便于理解的说明,并非对本专利技术实施例的限制。需要理解的是,第一元数据描述文件可以是用户预先输入的,也可以是设备根据数据库中的结构化数据而获取的,将结构化数据中存储的数据类型和先后顺序等用于描述结构化数据的信息记录在第一元数据文件中。举例来说,通信双方A、B进行协议交互,A、B侧都有一份元数据描述文件metafile如下:为了描述简单,这里假设A往B发送通信协议数据,根据元数据描述文件语义,本专利技术通信装置将原始结构化数据进行序列化操作输出字节流(生成的字节流中没有T(Tag)信息),字节流经过网络传送到通信端B后,B端通信装置同样根据元数据描述文件语义来反序列化这部分字节流为一个结构化对象。注明:这里所说的通信装置指的是进行序列化和反序列化的软件设施(下面以DR表示)。整个过程可以这么理解。(1)、A端序列化过程:meta_semantics=DR.load(metafile);DR.serialize(INPUTmeta_semantics,INPUTlocal_object,OUTPUTbyte_本文档来自技高网
...
一种结构化数据的序列化、反序列化方法、装置和系统

【技术保护点】
一种结构化数据的序列化方法,其特征在于,所示方法包括:获取第一元数据描述文件;获取结构化数据;根据获取的所述第一元数据描述文件,对所述结构化数据进行序列化。

【技术特征摘要】
1.一种结构化数据的序列化方法,其特征在于,所示方法包括:获取第一元数据描述文件;获取结构化数据;根据获取的所述第一元数据描述文件,对所述结构化数据进行序列化;所述根据获取的所述第一元数据描述文件,对所述结构化数据进行序列化,具体包括:根据第一元数据描述文件中的数据类型,将结构化数据序列化为包括数据长度(Length)和数据值(Value),或者仅包括数据值(Value)的序列化数据;所述根据获取的所述第一元数据描述文件,对所述结构化数据进行序列化,具体包括:根据所述第一元数据描述文件将结构化数据中字段顺序的执行序列化;依次判断每个字段序列化是否成功;如果成功,则继续执行对下一个字段的序列化操作,如果失败,则结束。2.根据权利要求1所述的方法,其特征在于,所述获取第一元数据描述文件,具体包括:根据预置的第一元数据描述文件,从而获取所述第一元数据描述文件;或者,根据所述结构化数据,获取所述第一元数据描述文件。3.一种反序列化方法,其特征在于,所述方法包括:获取第二元数据描述文件,所述第二元数据描述文件与如权利要求1至2中任一所述的第一元数据描述文件采用相同的协议的元数据描述,或者,为兼容的协议的元数据描述;获取序列化的数据;根据获取的所述第二元数据描述文件,对获取的所述序列化的数据执行反序列化操作;所述根据获取的所述第二元数据描述文件,对获取的所述序列化的数据执行反序列化操作,具体包括:根据所述第二元数据描述文件,对所述序列化数据中每一个字段进行反序列化;依次判断每个字段反序列化是否成功,若成功,则继续执行对下一个字段的反序列化操作,若失败,则结束。4.根据权利要求3所述的方法,其特征在于,所述第二元数据描述文件至少包括:数据的类型描述。5.一种结构化数据的序列化装置,其特征在于,所述装置包括:第一获取单元,第二获取单元,和序列化单元,所述第一获取单元,用于获取第一元数据描述文件;所述第二获取单元,用于获取结构化数据;所述序列化单元,用于根据获取的所述第一元数据描述文件,对所述结构化数据进行序列化;所述序列化单元具体包括:根据第一元数据描述文件中的数据类型,将结构化数据序列化为包括数据长度(Length)和数据值(Value),或者仅包括数据值(Value)的序列化数据;所述序列化单元,具体包括:字段序列化单元和第一判断单元;所述字段序列化单元,用于根据所述第一元数据描述文件将结构化数据中字段顺序的执行序列化;所述第一判断单元,用于依次判断每个字段序列化是否成功;如果成功,则通知所述字段序...

【专利技术属性】
技术研发人员:聂志明
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1