一种实现软件跨版本交互的方法及装置.pdf

上传人:a*** 文档编号:1088048 上传时间:2018-03-30 格式:PDF 页数:14 大小:593.14KB
返回 下载 相关 举报
摘要
申请专利号:

CN200910086674.7

申请日:

2009.06.17

公开号:

CN101594355A

公开日:

2009.12.02

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效|||公开

IPC分类号:

H04L29/06

主分类号:

H04L29/06

申请人:

华为技术有限公司

发明人:

孙 昊; 何建成; 岳常智; 郑明华

地址:

518129广东省深圳市龙岗区坂田华为总部办公楼

优先权:

专利代理机构:

北京凯特来知识产权代理有限公司

代理人:

郑立明

PDF下载: PDF下载
内容摘要

本发明实施例涉及通信领域一种实现软件跨版本交互的方法,包括:接收版本、长度、增量VLA格式的数据包;所述VLA格式的数据包包括一个升级前旧版本数据字段和至少一个升级后新版本的版本信息、长度信息和更改增量信息;所述升级前旧版本数据字段包括:旧版本业务数据以及该旧版本业务数据对应的版本信息及长度信息;根据所述旧版本业务数据以及新版本的版本信息、长度信息和更改增量信息对新版本中与接收端使用的软件版本匹配的数据字段进行处理。本发明实施例还提供一种实现软件跨版本交互的装置。本发明实施例解决了不同软件版本的通信兼容的问题,同时减少了资源浪费,提高了通信效率。

权利要求书

1、  一种实现软件跨版本交互的方法,其特征在于,包括:
接收版本、长度、增量VLA格式的数据包;所述VLA格式的数据包包括一个升级前旧版本数据字段和至少一个升级后新版本的版本信息、长度信息和更改增量信息;所述升级前旧版本数据字段包括:旧版本业务数据以及该旧版本业务数据对应的版本信息及长度信息;
根据所述旧版本业务数据以及新版本的版本信息、长度信息和更改增量信息对新版本中与接收端使用的软件版本匹配的数据字段进行处理。

2、
  如权利要求1所述的方法,其特征在于,所述根据所述旧版本业务数据以及新版本的版本信息、长度信息和更改增量信息对新版本中与接收端使用的软件版本匹配的数据字段进行处理具体包括:
根据所述新版本的版本信息确定数据字段是否与接收端使用的软件版本匹配;
若匹配,则根据长度信息找到更改增量信息,根据更改增量信息确定新版本业务数据对旧版本业务数据的更改信息;
根据所述旧版本业务数据以及新版本业务数据对旧版本业务数据的更改信息得到新版本业务数据,对该新版本业务数据进行处理。

3、
  如权利要求1或2所述的方法,其特征在于,还包括:
对与接收端使用的软件版本不匹配的数据字段不进行处理。

4、
  如权利要求1或2所述的方法,其特征在于,所述更改增量信息包括更改后的数据。

5、
  如权利要求4所述的方法,其特征在于,所述更改增量信息还包括:数据更改类型和数据更改位置。

6、
  如权利要求5所述的方法,其特征在于,所述数据更改类型包括:增加、删除或修改。

7、
  一种实现软件跨版本交互的装置,其特征在于,包括:
接收单元,用于接收版本、长度、增量VLA格式的数据包;所述VLA格式的数据包包括一个升级前旧版本数据字段和至少一个升级后新版本的版本信息、长度信息和更改增量信息;所述升级前旧版本数据字段包括:旧版本业务数据以及该旧版本业务数据对应的版本信息及长度信息;
数据处理单元,用于根据所述旧版本业务数据以及新版本的版本信息、长度信息和更改增量信息对新版本中与接收端使用的软件版本匹配的数据字段进行处理。

8、
  如权利要求7所述的装置,其特征在于,所述更改增量信息包括更改后的数据。

9、
  如权利要求8所述的装置,其特征在于,所述更改增量信息还包括:数据更改类型和数据更改位置。

10、
  如权利要求9所述的装置,其特征在于,所述更改类型包括:增加、删除或修改。

说明书

一种实现软件跨版本交互的方法及装置
技术领域
本发明涉及通信技术领域,尤其涉及一种实现软件跨版本交互的方法及装置。
背景技术
在现今,伴随着信息产业的高速发展,软件和硬件的更新速度越来越快,为了提高性能或增加功能往往会不断地对软件进行升级以推出新版本。而对于通信网络来说,一个网络中往往会运行有各个时期的设备,所应用的软件以及设备之间的通信协议在不断的更新升级。因此,常常会出现通信双方版本不一致的问题,即双方对通信数据包的读写、处理存在差异。如果没有办法处理或屏蔽掉这些差异,就会造成双方无法正常通信,也就是不同版本之间存在通信兼容问题。
例如,某设备A上面运行的通信协议是1.0版本,而与它通信的B设备运行的协议是2.0版本,1.0版本的通信数据包格式如下:

  message header  data_M  data_N  data_O

而2.0版本的数据包出于某种原因,将原来的data_O字段数据改成了data_P数据,而且数据表示的内容已经完全不同。如果设计时不考虑通信兼容问题,那么2.0版本的数据包可能被直接设计成如下格式:
  message header  data_M  data_N  data_P

由于设备A依旧按照1.0版本协议的方法去提取数据,因此在接收到2.0版本数据包后,它就会将data_P当成data_O去处理,这样的处理显然是不正确的。
为解决上述通信兼容问题,现有技术一提供的技术方案如下:
使用类型长度值(TLV,Type Length Value),即在数据包中添加类型和长度标识,能够有效的标明数据包的数据结构。按照TLV方法,一般会将两个版本的数据包设计为如下格式:
1.0版本的数据包:
  message header  T(V1.0)  L(12)  data_M  data_N  data_O

2.0版本的数据包
  message  header  T(V1.0) L(12)  data_M  data_N  data_O  T(V2.0) L(12)  data_M  data_N  data_P

如上所示,TLV数据包在普通数据包的基础上增加了几个字段。在每个要传输的数据之前增加了T和L两个字段,T即为type,其数值用来标识后面数据的版本类型,而L是length,用来表示对应类型下的业务数据长度,L后面的字段为业务数据。T+L+业务数据(如后面的data_M、data_N、date_O,即value)合起来称为一个TLV字段。
通过上述方法,任何版本的通信数据包都表示成由多个TLV字段组合而成。在数据接收侧提取数据时,首先找到第一个TLV字段的T数据,根据T数据标识的版本号来与本侧的软件进行匹配,将匹配的数据取出,从而实现了通信的兼容。
例如,使用TLV,设备B给设备A发送了一个2.0版本的数据包,设备A在收到该数据包后的处理过程如图1所示,包括:首先查找到第一个TLV字段的T数据,根据T(V1.0)数据,设备A确认该TLV是一个1.0版本的TLV,于是,设备A根据L的值,即12个字节的长度取出了data_M和data_N、data_O,并进行正确处理;根据L的值向后偏移12个字节,设备A找到了下一个TLV字段,仍然需要先判断T的值,根据T(V2.0),设备A确认该TLV字段是2.0版本,由于设备A本身不支持对其他版本数据的处理,因此设备A会选择将T(V2.0)对应的TLV字段的数据抛弃,不做处理。
而对于设备B,假如收到上述同样格式的2.0版本的数据包,根据TLV中的T字段,设备B发现第一个TLV字段与本身版本不匹配,因此不做处理,第二个TLV字段的版本是2.0版本,与自身的版本信息匹配,因此从第二个TLV字段中提取数据进行处理。
发明人在实践中发现,现有技术一至少存在如下缺点:
由于TLV方案的数据包必须包含多个版本的全部数据,因此导致了报文数据过长,且存在数据冗余,传输效率低下,造成资源浪费,对于较大的数据包资源浪费问题尤为明显。
发明内容
本发明实施例提供一种实现软件跨版本交互的方法及装置,实现软件版本兼容的同时,减少报文数据过长导致的资源浪费问题。
本发明实施例是通过以下技术方案实现的:
本发明实施例提供一种实现软件跨版本交互的方法,包括:
接收版本、长度、增量VLA格式的数据包;所述VLA格式的数据包包括一个升级前旧版本数据字段和至少一个升级后新版本的版本信息、长度信息和更改增量信息;所述升级前旧版本数据字段包括:旧版本业务数据以及该旧版本业务数据对应的版本信息及长度信息;
根据所述旧版本业务数据以及新版本的版本信息、长度信息和更改增量信息对新版本中与接收端使用的软件版本匹配的数据字段进行处理。
本发明实施例提供一种实现软件跨版本交互的装置,包括:
接收单元,用于接收版本、长度、增量VLA格式的数据包;所述VLA格式的数据包包括一个升级前旧版本数据字段和至少一个升级后新版本的版本信息、长度信息和更改增量信息;所述升级前旧版本数据字段包括:旧版本业务数据以及该旧版本业务数据对应的版本信息及长度信息;
数据处理单元,用于根据所述旧版本业务数据以及新版本的版本信息、长度信息和更改增量信息对新版本中与接收端使用的软件版本匹配的数据字段进行处理。
由上述本发明实施例提供的技术方案可以看出,本发明实施例解决了不同软件版本的通信兼容的问题,同时减少了资源浪费,提高了通信效率。
附图说明
图1为现有技术软件升级前设备接收到升级后的版本数据包的处理示意图;
图2为本发明实施例实现软件跨版本交互的方法流程图;
图3为本发明实例一新版本数据包格式;
图4为本发明实例二新版本数据包格式;
图5为本发明实施例实现软件跨版本交互的装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,可以理解的是,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种实现软件跨版本交互的方法,包括:
接收版本、长度、增量(VLA,Version Length Addition)格式的数据包;所述VLA格式的数据包包括一个升级前旧版本数据字段和至少一个升级后新版本的版本信息、长度信息和更改增量信息;所述升级前旧版本数据字段包括:旧版本业务数据以及该旧版本业务数据对应的版本信息及长度信息;
根据所述旧版本业务数据以及新版本的版本信息、长度信息和更改增量信息对新版本中与接收端使用的软件版本匹配的数据字段进行处理。
本发明实施例解决了不同软件版本的通信兼容的问题,同时减少了资源浪费,提高了通信效率。
本发明又一实施例提供一种实现软件版本兼容的方法,以图2中所示为例,包括如下步骤:
步骤20:接收VLA格式的数据包;所述VLA格式的数据包包括一个升级前旧版本数据字段和至少一个升级后新版本的版本信息、长度信息和更改增量信息;
所述升级前旧版本数据字段包括:旧版本业务数据以及该旧版本业务数据对应的版本信息及长度信息;
所述新版本的更改增量信息包括更改后的数据,还可以进一步包括:数据更改类型和数据更改位置。所述数据更改类型包括但不限于:增加、删除或修改等。
步骤21:根据所述旧版本数据以及新版本的版本信息、长度信息和更改增量信息对新版本中与接收端使用的软件版本匹配的数据字段进行处理。
对与本身版本匹配的数据字段进行处理前,可以将所述VLA格式的数据包转换为与本身版本匹配的格式,即,以旧版本数据字段为基础,结合与本身版本匹配的数据字段包含的更改增量信息,得到与本身版本匹配的VLA格式的完整数据包,这样对于升级后的设备的主程序可以无须关注版本间通信兼容的问题,简化了处理流程。具体转换过程包括:
根据所述新版本的版本信息确定数据字段是否与接收端使用的软件版本匹配;
若匹配,则根据长度信息找到更改增量信息,根据更改增量信息确定新版本业务数据对旧版本业务数据的更改信息;
根据所述旧版本业务数据以及新版本业务数据对旧版本业务数据的更改信息得到新版本业务数据,对该新版本业务数据进行处理。
对与接收端使用的软件版本不匹配的数据字段不进行处理。
本发明实施例通过VLA方案解决了不同软件版本的通信兼容的问题,由于不必将每个版本的全部数据都发出,而是发送更改增量信息,减少了资源浪费,提高了通信效率,对于较大的数据包的减少的资源浪费效果更加明显。
为进一步理解本发明,下面以具体实例对本发明进行详细介绍。
实例一
假设设备A运行的是旧版本(V1.0)的通信协议,设备B运行的为新版本(V2.0)的通信协议,根据本发明实施例提供的VLA方案,新版本数据包的格式如图3所示,其中,V字段用来标识版本信息,L为length,表示业务数据的长度,L后面的字段中包含有新版本更改后的数据data_P(4个字节),而不是新版本的完整数据(12个字节)。
若设备A接收到图3所示VLA格式的数据包,其处理过程为:查找到第一个VLA字段V后面的数据V1.0,通过分析V值,确认与自身版本匹配后,将data_M、data_N和data_O提取出来进行处理。然后设备A分析后面的第二个VLA字段,发现V的值是2.0,与自身版本不匹配,即设备A不支持2.0版本,故不做处理,将该第二个VLA字段丢弃。
若设备B接收到如图3所示VLA格式的数据包,其处理过程为:扫描数据包,设备B首先发现1.0版本的数据内容,即data_M、data_N、data_O,保留该数据内容,暂不处理,继续分析后面的第二个VLA字段,发现该VLA的V值为2.0,与自身版本匹配,因此需要对该VLA字段进行处理,由于设备B支持该版本,因此设备B侧了解已经将data_O的值替换为data_P,因此设备B不再使用data_O,而提取data_P进行处理,即设备B以旧版本数据为基础,结合更改增量信息得到完整的新版本数据data_M、data_N、data_P。
本实例所述方案减小了数据包的大小,提高了资源利用效率。
实例二
假设设备A运行的是旧版本(V1.0)的通信协议,设备B运行的为新版本(V2.0)的通信协议为例,根据本发明实施例提供的VLA方案,新版本数据包的格式如图4所示,其中V字段用来标识版本信息,L为length,表示业务数据的长度,L后面的字段为更改增量信息Addition部分,所述Addition部分中包含有更改类型Oper字段(1个字节)和数据更改位置offset+len字段(4个字节),以及更改后的数据data_P(4个字节)字段,而不是新版本的完整数据(12个字节)。
所述Oper字段长度为1个字节,为操作符,表示对旧版本数据所做的更改的更改类型,可以包括以下三种操作类型:
Add:描述在旧版本数据基础上增加数据;
Del:描述将旧版本中的某个数据删除,不再使用;
Modify:描述在旧版本数据的基础上进行修改;
可以理解的是本发明实施例所述的更改类型并不局限于此。
另外,Addition中的offset+len字段描述变更发生的位置,在本实例中,修改的数据是data_O,也就是从data_M的起始位置向后偏移8个字节,所以offset+len的值是8。
data_P为更改后的内容。
若设备A接收到图4所示VLA格式的数据包,其处理过程为:查找到第一个VLA字段V后面的数据V1.0,通过分析V值,确认与自身版本匹配后,将data_M、data_N和data_O提取出来进行处理。然后设备A分析后面的第二个VLA字段,发现V的值是2.0,与自身版本不匹配,即设备A不支持2.0版本,故不做处理,将该第二个VLA字段丢弃。
若设备B接收到如图4所示VLA格式的数据包,其处理过程为:扫描数据包,设备B首先发现1.0版本的数据内容,即data_M、data_N、data_O,保留该数据内容,暂不处理,继续分析后面的第二个VLA字段,发现该VLA的V值为2.0,与自身版本匹配,因此需要对该VLA字段进行处理,根据Oper(Modify)以及offset+len(8)了解到在从data_M的起始位置向后偏移8个字节处被修改,且修改后的内容为data_P,设备B获得完整的新版本数据data_M、data_N、data_P进行处理。或者设备B将所述VLA格式的数据包转换为V2.0版本的格式,即解析为如下格式:
  V(V2.0) L(12)  data_M  data_N  data_P

这样,设备B的主程序无须关注通信兼容问题,简化后续处理流程。
本实例所述方案通过更改增量信息准确描述了版本升级而发生的变更,消除了冗余信息,解决了通信兼容问题,且提高了资源利用效率,减少了资源浪费。
本发明实施例还提供一种实现软件版本兼容的装置,以图5中所示为例,包括:
接收单元50,用于接收版本、长度、增量VLA格式的数据包;所述VLA格式的数据包包括一个升级前旧版本数据字段和至少一个升级后新版本的版本信息、长度信息和更改增量信息;所述升级前旧版本数据字段包括:旧版本业务数据以及该旧版本业务数据对应的版本信息及长度信息;
数据处理单元51,用于根据所述旧版本业务数据以及新版本的版本信息、长度信息和更改增量信息对新版本中与接收端使用的软件版本匹配的数据字段进行处理。
本发明实施例解决了不同软件版本的通信兼容的问题,同时减少了资源浪费,提高了通信效率。
综上所述,本发明实施例解决了不同软件版本的通信兼容的问题,同时减少了资源浪费,提高了通信效率。
本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一计算机可读存储介质中。该可读存储介质例如只读存储器(简称ROM)、随机存取存储器(简称RAM)、磁盘、光盘等。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

一种实现软件跨版本交互的方法及装置.pdf_第1页
第1页 / 共14页
一种实现软件跨版本交互的方法及装置.pdf_第2页
第2页 / 共14页
一种实现软件跨版本交互的方法及装置.pdf_第3页
第3页 / 共14页
点击查看更多>>
资源描述

《一种实现软件跨版本交互的方法及装置.pdf》由会员分享,可在线阅读,更多相关《一种实现软件跨版本交互的方法及装置.pdf(14页珍藏版)》请在专利查询网上搜索。

本发明实施例涉及通信领域一种实现软件跨版本交互的方法,包括:接收版本、长度、增量VLA格式的数据包;所述VLA格式的数据包包括一个升级前旧版本数据字段和至少一个升级后新版本的版本信息、长度信息和更改增量信息;所述升级前旧版本数据字段包括:旧版本业务数据以及该旧版本业务数据对应的版本信息及长度信息;根据所述旧版本业务数据以及新版本的版本信息、长度信息和更改增量信息对新版本中与接收端使用的软件版本匹配。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1