首页> 中国专利> 不同版本二进制数据兼容的方法及数据版本转换系统

不同版本二进制数据兼容的方法及数据版本转换系统

摘要

本申请公开了一种不同版本二进制数据兼容的方法,该方法包括:根据不同版本的二进制数据结构体定义第一版本结构体描述表和第二版本结构体描述表,所述第一版本结构体描述表和第二版本结构体描述表都至少包括每个成员的标识和二进制数据长度;对第一版本结构体描述表和第二版本结构体描述表进行分析,得到两者之间的转换矩阵;根据所述转换矩阵,将按照第一版本结构体存储的二进制数据,转换为按照第二版本结构体存储的二进制数据。本申请还公开了一种数据版本转换系统。采用本发明能够使不同版本数据兼容。

著录项

  • 公开/公告号CN102902707A

    专利类型发明专利

  • 公开/公告日2013-01-30

    原文格式PDF

  • 申请/专利权人 杭州华三通信技术有限公司;

    申请/专利号CN201210270163.2

  • 发明设计人 宋海宾;

    申请日2012-08-01

  • 分类号G06F17/30(20060101);

  • 代理机构11018 北京德琦知识产权代理有限公司;

  • 代理人牛峥;王丽琴

  • 地址 310053 浙江省杭州市高新技术产业开发区之江科技工业园六和路310号华为杭州生产基地

  • 入库时间 2024-02-19 17:18:13

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-05-10

    专利权人的姓名或者名称、地址的变更 IPC(主分类):G06F17/30 变更前: 变更后: 申请日:20120801

    专利权人的姓名或者名称、地址的变更

  • 2016-03-30

    授权

    授权

  • 2013-04-03

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20120801

    实质审查的生效

  • 2013-01-30

    公开

    公开

说明书

技术领域

本发明涉及信息技术领域,特别涉及一种不同版本二进制数据兼容的方法及数据版本转换系统。 

背景技术

通信设备在实际使用中,经常需要涉及版本升级,而版本升级后,可能会引起配置数据和板间、设备之间通信数据格式的变化。如果通信数据和配置数据采用文本方式编码,那么版本的升级带来的数据格式变化是能够自动兼容的,但是采用文本方式的配置存在一个问题是配置信息非常大时,需要把这些配置解析成程序理解的二进制方式一定的时间,往往会导致重启时间比较长,因此该方法存在缺陷。 

后续我们就采用了更为先进的存储配置方式,直接存在二进制配置,把相应的数据使用结构体方式存储到文件中,重启时,还是按照原来的结构体进行读取。但是采用二进制方式的配置数据和通信数据,那么就不存在编解码了,处理比较简单。重启时,直接读取数据存储到结构体中即可恢复配置,而主控板只需要把该数据结构体同步给备板、接口板就可以支持板间数据通信。但是,采用二进制数据最大的问题时,当版本升级时,老配置数据同新版本的程序的数据格式兼容问题,在版本升级中,老版本设备或者板卡同新版本的设备或者板卡通信数据格式兼容问题,因此,如果在架构体中新增加数据或者删除数据、或者修改某个数据的长度,都会导致新老版本数据的不兼容。因此,如何克服上述问题成为业内关注的问题。 

发明内容

本发明实施例提供了一种不同版本二进制数据兼容的方法,能够使不同版本数据兼容。 

一种不同版本二进制数据兼容的方法,该方法包括: 

根据不同版本的二进制数据结构体定义第一版本结构体描述表和第二版本结构体描述表,所述第一版本结构体描述表和第二版本结构体描述表都至少包括每个成员的标识和二进制数据长度; 

对第一版本结构体描述表和第二版本结构体描述表进行分析,得到两者之间的转换矩阵; 

根据所述转换矩阵,将按照第一版本结构体存储的二进制数据,转换为按照第二版本结构体存储的二进制数据。 

本发明实施例提供了一种数据版本转换系统,能够使不同版本数据兼容。 

一种数据版本转换系统,所述系统包括: 

结构体描述表生成模块,用于根据不同版本的二进制数据结构体定义第一版本结构体描述表和第二版本结构体描述表; 

分析转换模块,用于对第一版本结构体描述表和第二版本结构体描述表进行分析,得到两者之间的转换矩阵;还用于输入第一版本结构体二进制数据后得到第二版本结构体二进制数据; 

第一版本结构体二进制数据存储模块,用于存储第一版本结构体二进制数据。 

从上述方案可以看出,本发明实施例分别将两个版本的结构体定义结构体描述表,并对这两个版本的结构体描述表进行分析处理得到转换矩阵,根据转换矩阵,将按照一种版本结构体存储的二进制数据,转换为按照另一种版本结构体存储的二进制数据。从而实现了不同版本通信数据和配置数据的兼容。 

附图说明

图1为本发明提供的不同版本二进制数据兼容的方法流程示意图。 

图2为本发明具体实施例中应用于上述方法的数据版本转换系统的结构示意图。 

具体实施方式

为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明作进一步详细说明。 

图1为本发明提供的不同版本二进制数据兼容的方法流程示意图。如图1所示,该方法包括: 

步骤11、根据不同版本的二进制数据结构体定义第一版本结构体描述表和第二版本结构体描述表,所述第一版本结构体描述表和第二版本结构体描述表都至少包括每个成员的名称和二进制数据长度; 

步骤12、对第一版本结构体描述表和第二版本结构体描述表进行分析,得到两者之间的转换矩阵; 

步骤13、根据所述转换矩阵,将按照第一版本结构体存储的二进制数据,转换为按照第二版本结构体存储的二进制数据。 

下面以一个实际例子进行说明。 

隧道接口的典型数据在版本1.01中的结构体如表1所示: 

表1 

针对1.01版本的结构体定义相应的结构体描述表,称为第一版本结构体描述表。 

首先介绍一下结构体描述表的定义:按照数据结构体的顺序,给每个成员元素定义一个名称标识和该元素的存储空间长度。当然,还可以根据需要定义该元素的其它附加属性,例如数据类型等。对于结构体描述表的定义如表2所示: 

表2 

因此,根据表2可以得到第一版本结构体描述表,如表3所示: 

表3 

当版本升级到1.02时,结构体如表4所示: 

表4 

从表4和表1的比较可以看出,1.02版本的结构体有4个变化:1、增加了新的变量uiMTU;2、把szSrcIFName的长度从8变成了12;3、删除了usPeriod;4、把usRetryCount变成了uiRetryCount。 

因此,针对1.02版本的结构体定义相应的结构体描述表,称为第二版本结构体描述表。结合表2可以得到第二版本结构体描述表,如表5所示: 

表5 

在版本变更后,针对1.01版本的结构体描述表和1.02版本的结构体描述表进行分析处理,即针对表3和表5,得到一个两者之间的转换矩阵,对于转换矩阵的定义如表6所示,定义第二版本结构体描述表中每个成员在第一版本结构体中的偏移位置(源成员偏移)、在第二版本结构体中的偏移位置(目的成员偏移)和需要复制的该成员的二进制数据长度(拷贝长度)。 

表6 

根据表6对转换矩阵的定义,对第一版本结构体描述表和第二版本结构体描述表进行分析,得到两者之间的转换矩阵的方法为: 

根据第二版本结构体描述表中成员的个数确定转换矩阵的行数,行元素包括该行对应的成员在第一版本结构体中的偏移位置、在第二版本结构体中的偏移位置和需要复制的该成员的二进制数据长度; 

对于其中一个成员对应的行元素,将第二版本结构体描述表中该成员之前的成员的二进制数据长度累加,作为该成员在第二版本结构体中的偏移位置; 

确定该成员是否存在于第一版本结构体描述表中,如果是,则将第一版本结构体描述表中该成员之前的所有成员的二进制数据长度累加,作为该成员在第一版本结构体中的偏移位置;如果否,该成员在第一版本结构体描述表中的二进制数据长度为零,在第一版本结构体中的偏移位置为零; 

比较该成员在第一版本结构体描述表中的长度和在第二版本结构体描述表中的长度,取两者中较小值作为需要复制的该成员的二进制数据长度。 

因此,本发明实施例得到的转换矩阵如表7所示: 

表7 

得到如表7所示的转换矩阵是本发明的关键,这样就可以根据上述转换矩阵,将按照第一版本结构体存储的二进制数据,转换为按照第二版本结构体存储的二进制数据。 

当两个通信实体之间二进制通信数据版本不一致时,例如通信实体1采用按照第一版本结构体存储的二进制通信数据,根据第一版本结构体定义第一版本结构体描述表;通信实体2根据第二版本结构体定义第二版本结构体描述表。通信实体1先接收通信实体2的第二版本结构体描述表,将自身的第一版本结构体描述表和第二版本结构体描述表进行分析处理,得到转换矩阵;然后根据所述转换矩阵,将按照第一版本结构体存储的二进制数据,转换为按照第二版本结构体存储的二进制数据。在通信实体1向通信实体2发送通信数据时,发送按照第二版本结构体存储的二进制数据。这样,通信实体2就可以兼容通信实体1的通信数据了。 

当通信设备进行升级启动时,通信设备首先读取前版本结构体描述表,和升级后版本结构体描述表进行分析处理,得到一个二进制配置数据转换矩阵;然后根据所述转换矩阵,将按照前版本结构体存储的二进制配置数据,转换为按照升级后版本结构体存储的二进制配置数据。这样通信设备就可以兼容老版本的配置数据了。后续在恢复这种格式的二进制配置数据时,先使用所述转换矩阵进行转换,就可以得到按照老版本结构体存储的二进制配置数据了。 

基于同样的发明构思,本发明还提出一种数据版本转换系统,参见图2,图2为本发明具体实施例中应用于上述方法的数据版本转换系统的结构示意图。该数据版本转换系统包括:结构体描述表生成模块201、分析转换模块 202和第一版本结构体二进制数据存储模块203; 

结构体描述表生成模块201,用于根据不同版本的二进制数据结构体定义第一版本结构体描述表和第二版本结构体描述表; 

分析转换模块202,用于对第一版本结构体描述表和第二版本结构体描述表进行分析,得到两者之间的转换矩阵;还用于输入第一版本结构体二进制数据后得到第二版本结构体二进制数据; 

第一版本结构体二进制数据存储模块203,用于存储第一版本结构体二进制数据。 

根据本发明,无论通信设备需要进行升降级处理,还是两个通信实体之间通信数据版本不一致,都可以将两个版本的结构体描述表进行分析处理,得到转换矩阵,后续这种类型的具体数据都可以采用这个转换矩阵快速处理数据。因此,后续在处理数据时,效率非常高。 

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。 

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号