将数据进行二进制序列化的方法和系统技术方案

技术编号:18763883 阅读:25 留言:0更新日期:2018-08-25 10:32
本发明专利技术公开了一种将数据进行二进制序列化的方法和系统,涉及数据序列化领域。该方法的步骤为:创建数据块的通用序列化格式,将需要进行序列化的业务数据块,作为格式转换数据块;格式转换数据块中不存在子数据块时,按照通用序列化格式,对格式转换数据块进行转换,得到通用序列化数据块;将通用序列化数据块与母数据块中对应的子数据块进行替换,当母数据块中的所有子数据块均替换为通用序列化数据块。本发明专利技术能够不重新生成业务数据的情况下,对发生改变后的业务数据进行序列化;本发明专利技术的工作效率较高,便于人们使用。

【技术实现步骤摘要】
将数据进行二进制序列化的方法和系统
本专利技术涉及数据序列化领域,具体涉及一种将数据进行二进制序列化的方法和系统。
技术介绍
在电信业务的管理过程中,需要将业务数据进行序列化,以实现业务数据的持久化存储或网络间传输。业务数据发生改变时(例如增减数据中的字段),由于改变后的数据格式与原数据格式不同,因此对发生改变的业务数据进行序列化时,会因无法识别格式不同的业务数据而无法进行。此时只有将整个业务数据采用统一个格式重新生成,才能进行序列化,而重新生成整个业务数据的工作效率较低,不便于人们使用。
技术实现思路
针对现有技术中存在的缺陷,本专利技术解决的技术问题为:如何在不重新生成业务数据的情况下,对发生改变后的业务数据进行序列化;本专利技术的工作效率较高,便于人们使用。为达到以上目的,本专利技术提供的将数据进行二进制序列化的方法,包括以下步骤:S1:创建数据块的通用序列化格式,转到S2;S2:将需要进行序列化的业务数据块,作为格式转换数据块,转到S3;S3:判断格式转换数据块中是否存在子数据块,若是,转到S4;否则转到S5;S4:遍历格式转换数据块中的所有子数据块,将遍历到的子数据块作为格式转换数据块后,继续执行S3;S5:按照S1中的通用序列化格式,对格式转换数据块进行转换,得到通用序列化数据块,转到S6;S6:判断是否存在通用序列化数据块的母数据块,若是,转到S7,否则确认业务数据块的格式转换完毕;S7:将通用序列化数据块与母数据块中对应的子数据块进行替换,当母数据块中的所有子数据块均替换为通用序列化数据块后,将当前母数据块作为通用序列化数据块,继续执行S6。在上述技术方案的基础上,S1中所述通用序列化格式包括数据块长度、字段个数、字段掩码和数据块中的数据。在上述技术方案的基础上,所述数据块长度位于数据块的表头,字段个数占一个字节,字段掩码表示对应字段是否有效。在上述技术方案的基础上,S5的流程包括:获取格式转换数据块的数据块长度、字段个数、字段掩码和数据块中的数据,将数据块长度写入数据块头部,在数据块长度后依次写入字段个数、字段掩码和数据块中的数据。在上述技术方案的基础上,S6中所述确认业务数据块的格式转换完毕之后,还包括以下步骤:对业务数据块进行序列化。本专利技术提供的实现上述方法的将数据进行二进制序列化的系统,包括通用序列化格式创建模块和数据块格式转换模块;通用序列化格式创建模块用于:创建数据块的通用序列化格式;数据块格式转换模块用于:数据块格式转换01:将需要进行序列化的业务数据块,作为格式转换数据块,进入数据块格式转换01流程;数据块格式转换02:判断格式转换数据块中是否存在子数据块,若是,进入数据块格式转换03流程;否则进入数据块格式转换04流程;数据块格式转换03:遍历格式转换数据块中的所有子数据块,将遍历到的子数据块作为格式转换数据块后,继续执行数据块格式转换02流程;数据块格式转换04:按照通用序列化格式创建模块创建的通用序列化格式,对格式转换数据块进行转换,得到通用序列化数据块,执行数据块格式转换05流程;数据块格式转换05:判断是否存在通用序列化数据块的母数据块,若是,执行数据块格式转换06流程,否则确认业务数据块的格式转换完毕;执行数据块格式转换06:将通用序列化数据块与母数据块中对应的子数据块进行替换,当母数据块中的所有子数据块均替换为通用序列化数据块后,将当前母数据块作为通用序列化数据块,继续执行数据块格式转换05流程。在上述技术方案的基础上,所述通用序列化格式创建模块创建的通用序列化格式,包括数据块长度、字段个数、字段掩码和数据块中的数据。在上述技术方案的基础上,所述数据块长度位于数据块的表头,字段个数占一个字节,字段掩码表示对应字段是否有效。在上述技术方案的基础上,数据块格式转换04的流程包括:获取格式转换数据块的数据块长度、字段个数、字段掩码和数据块中的数据,将数据块长度写入数据块头部,在数据块长度后依次写入字段个数、字段掩码和数据块中的数据。在上述技术方案的基础上,该系统还包括数据块序列化模块,其用于:在数据块格式转换模块确认业务数据块的格式转换完毕后,对业务数据块进行序列化。与现有技术相比,本专利技术的优点在于:本专利技术能够为需要进行序列化的业务数据块,创建统一的通用序列化格式,在此基础上,本专利技术能够将业务数据块中所有嵌套的子数据块,根据通用序列化格式转化为格式统一的可识别数据块,嵌套的层次数目没有限制。与现有技术中序列化时无法识别格式不同的业务数据,本专利技术的可识别数据块的格式统一,能够在序列化时被识别。因此,本专利技术能够不重新生成业务数据的情况下,对发生改变后的业务数据进行序列化,进而显著提高了工作效率,便于人们使用。附图说明图1为本专利技术实施例中的通用序列化格式示意图;图2为本专利技术实施例中的将数据进行二进制序列化的方法的流程图;图3为本专利技术实施例中嵌套有子数据块的树型结构示意图。具体实施方式以下结合附图及实施例对本专利技术作进一步详细说明。参见图1所示,本专利技术实施例中的数据包括至少1个数据块,数据块还可以为嵌套结构,即1个数据块中又含有子数据块,依次类推。在此基础上,参见图2所示,本专利技术实施例中的将数据进行二进制序列化的方法,包括以下步骤:S1:创建数据块的通用序列化格式,通用序列化格式包括数据块长度、字段个数、字段掩码和数据块中的数据,转到S2。参见图1所示,S1通用序列化格式中的数据块长度位于数据块的表头,字段个数占一个字节,因此最多支持255个字段;字段掩码用一位表示一个字段,表示该字段是否有效,废弃的字段仍占用字段掩码位置,掩码标0表示无效,标1标识有效。为了便于扩展,通用序列化格式的尾部还包括扩展掩码,进而使得字段扩展往后追加,而不可往前插入,扩展掩码预留位数默认2字节即支持16个字段,如字段超过16个,会扩展掩码字节,追加到数据块的尾部。S2:将需要进行序列化的业务数据块,作为格式转换数据块,转到S3。S3:判断格式转换数据块中是否存在子数据块(即数据块为嵌套结构,下层有嵌套有子数据块),若是,则证明该数据块中存在需要转化格式才能进行序列化的子数据块,转到S4;否则证明该数据块的字段都是基础字段,该数据块不需要转化格式即可进行序列化,此时转到S5。S3中不需要对都是基础字段的数据块转化格式即可进行序列化的原因为:无论业务数据是否发生改变,都不会改变基础字段的格式,因此不需要对基础字段进行处理,本领域普通技术人员根据业务数据的类型,即可得知哪些字段为基础字段。S4:遍历格式转换数据块中的所有子数据块,将遍历到的子数据块作为格式转换数据块后,继续执行S3。S5:按照S1中的通用序列化格式,对格式转换数据块进行转换,得到通用序列化数据块,转到S6。参见图1所示,S5的流程包括:获取格式转换数据块的数据块长度、字段个数、字段掩码和数据块中的数据,将数据块长度写入数据块头部,在数据块长度后依次写入字段个数、字段掩码和数据块中的数据。S6:判断是否存在通用序列化数据块的母数据块(即上层数据块),若是,转到S7,否则确认业务数据块的格式转换完毕,转到S8。S7:将通用序列化数据块与母数据块中对应的子数据块进行替换,当母数据块中的所有子数据块均替换为通用序列化数据块后,将当前母数据块作为通本文档来自技高网...

【技术保护点】
1.一种将数据进行二进制序列化的方法,其特征在于,该方法包括以下步骤:S1:创建数据块的通用序列化格式,转到S2;S2:将需要进行序列化的业务数据块,作为格式转换数据块,转到S3;S3:判断格式转换数据块中是否存在子数据块,若是,转到S4;否则转到S5;S4:遍历格式转换数据块中的所有子数据块,将遍历到的子数据块作为格式转换数据块后,继续执行S3;S5:按照S1中的通用序列化格式,对格式转换数据块进行转换,得到通用序列化数据块,转到S6;S6:判断是否存在通用序列化数据块的母数据块,若是,转到S7,否则确认业务数据块的格式转换完毕;S7:将通用序列化数据块与母数据块中对应的子数据块进行替换,当母数据块中的所有子数据块均替换为通用序列化数据块后,将当前母数据块作为通用序列化数据块,继续执行S6。

【技术特征摘要】
1.一种将数据进行二进制序列化的方法,其特征在于,该方法包括以下步骤:S1:创建数据块的通用序列化格式,转到S2;S2:将需要进行序列化的业务数据块,作为格式转换数据块,转到S3;S3:判断格式转换数据块中是否存在子数据块,若是,转到S4;否则转到S5;S4:遍历格式转换数据块中的所有子数据块,将遍历到的子数据块作为格式转换数据块后,继续执行S3;S5:按照S1中的通用序列化格式,对格式转换数据块进行转换,得到通用序列化数据块,转到S6;S6:判断是否存在通用序列化数据块的母数据块,若是,转到S7,否则确认业务数据块的格式转换完毕;S7:将通用序列化数据块与母数据块中对应的子数据块进行替换,当母数据块中的所有子数据块均替换为通用序列化数据块后,将当前母数据块作为通用序列化数据块,继续执行S6。2.如权利要求1所述的将数据进行二进制序列化的方法,其特征在于:S1中所述通用序列化格式包括数据块长度、字段个数、字段掩码和数据块中的数据。3.如权利要求2所述的将数据进行二进制序列化的方法,其特征在于:所述数据块长度位于数据块的表头,字段个数占一个字节,字段掩码表示对应字段是否有效。4.如权利要求2所述的将数据进行二进制序列化的方法,其特征在于:S5的流程包括:获取格式转换数据块的数据块长度、字段个数、字段掩码和数据块中的数据,将数据块长度写入数据块头部,在数据块长度后依次写入字段个数、字段掩码和数据块中的数据。5.如权利要求1至4任一项所述的将数据进行二进制序列化的方法,其特征在于:S6中所述确认业务数据块的格式转换完毕之后,还包括以下步骤:对业务数据块进行序列化。6.一种实现权利要求1至5任一项所述方法的将数据进行二进制序列化的系统,其特征在于:该系统包括通用序列化格式创建模块和数据块格式转换模块;通用序列化格式创建模块用于:创建数据块的通用序列化格式;数据块格式...

【专利技术属性】
技术研发人员:李澍万金利
申请(专利权)人:烽火通信科技股份有限公司
类型:发明
国别省市:湖北,42

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

1