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

文档序号:7700825阅读:201来源:国知局

专利名称::一种实现软件跨版本交互的方法及装置的制作方法
技术领域
:本发明涉及通信
技术领域
,尤其涉及一种实现软件跨版本交互的方法及装置。
背景技术
:在现今,伴随着信息产业的高速发展,软件和硬件的更新速度越来越快,为了提高性能或增加功能往往会不断地对软件进行升级以推出新版本。而对于通信网络来说,一个网络中往往会运行有各个时期的设备,所应用的软件以及设备之间的通信协议在不断的更新升级。因此,常常会出现通信双方版本不一致的问题,即双方对通信数据包的读写、处理存在差异。如果没有办法处理或屏蔽掉这些差异,就会造成双方无法正常通信,也就是不同版本之间存在通信兼容问题。例如,某设备A上面运行的通信协议是1.0版本,而与它通信的B设备运行的协议是2.0版本,l.O版本的通信数据包格式如下messageheaderdata一Mdata—Ndata一O而2.0版本的数据包出于某种原因,将原来的data—O字段数据改成了data—P数据,而且数据表示的内容已经完全不同。如果设计时不考虑通信兼容问题,那么2.0版本的数据包可能被直接设计成如下格式messagehsadsrdata一Mdata一Ndata—P由于设备A依旧按照1.O版本协议的方法去提取数据,因此在接收到2.0版本数据包后,它就会将data—P当成dataJ3去处理,这样的处理显然是不正确4的。为解决上述通信兼容问题,现有技术一提供的技术方案如下使用类型长度值(TLV,TypeLengthValue),即在数据包中添加类型和长度标识,能够有效的标明数据包的数据结构。按照TLV方法,一般会将两个版本的数据包设计为如下格式l.O版本的数据包<table>tableseeoriginaldocumentpage5</column></row><table>如上所示,TLV数据包在普通数据包的基础上增加了几个字段。在每个要传输的数据之前增加了T和L两个字段,T即为type,其数值用来标识后面数据的版本类型,而L是length,用来表示对应类型下的业务数据长度,L后面的字4更为业务数据。T+L+业务数据(如后面的data—M、data—N、date_0,即value)合起来称为一个TLV字段。通过上述方法,任何版本的通信数据包都表示成由多个TLV字段组合而成。在数据接收侧提取数据时,首先找到第一个TLV字段的T数据,根据T数据标识的版本号来与本侧的软件进行匹配,将匹配的数据取出,从而实现了通信的兼容。例如,使用TLV,设备B给设备A发送了一个2.0版本的数据包,设备A在收到该数据包后的处理过程如图l所示,包括首先查找到第一个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,VersionLengthAddition)格式的数据包;所述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后面的数据Vl.O,通过分析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支持该9版本,因此设备B侧了解已经将data—0的值替换为data—P,因此设备B不再使用dataJD,而提取data一P进行处理,即设备B以旧版本数据为基础,结合更改增量信息得到完整的新版本数据data—M、data一N、data—P。本实例所述方案减小了数据包的大小,提高了资源利用效率。实例二假设设备A运行的是旧版本(V1.0)的通信协议,设备B运行的为新版本(V2.0)的通信协议为例,根据本发明实施例提供的VLA方案,新版本数据包的格式如图4所示,其中V字段用来标识版本信息,L为length,表示业务数据的长度,L后面的字段为更改增量信息AddMon部分,所述Addition部分中包含有更改类型Oper字段(l个字节)和数据更改位置offset+len字段(4个字节),以及更改后的数据data—一P(4个字节)字段,而不是新版本的完整数据(12个字节)。所述Oper字段长度为l个字节,为操作符,表示对旧版本数据所做的更改的更改类型,可以包括以下三种操作类型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和dataJD提取出来进行处理。然后设备A分析后面的第二个VLA字段,发现V的值是2.0,与自身版本不匹配,即设备A不支持2.0版本,故不做处理,将该第二个VLA字段丢弃。若设备B接收到如图4所示VLA格式的数据包,其处理过程为扫描数据包,设备B首先发现1.0版本的数据内容,即data—M、data—N、dataJ3,保留该数据内容,暂不处理,继续分析后面的第二个VLA字段,发现该VLA的V值为2.0,与自身版本匹配,因此需要对该VLA字段进行处理,根据Oper(Modify)以及offset+len(8)了解到在从dat^M的起始位置向后偏移8个字节处被修改,且修改后的内容为data一P,设备B获得完整的新版本数据data一M、data_N、data—P进行处理。或者设备B将所述VLA格式的数据包转换为V2.0版本的格式,即解析为如下格式<table>tableseeoriginaldocumentpage11</column></row><table>这样,设备B的主程序无须关注通信兼容问题,简化后续处理流程。本实例所述方案通过更改增量信息准确描述了版本升级而发生的变更,消除了冗余信息,解决了通信兼容问题,且提高了资源利用效率,减少了资源浪费。本发明实施例还提供一种实现软件版本兼容的装置,以图5中所示为例,包括接收单元50,用于接收版本、长度、增量VLA格式的数据包;所述VLA格式的数据包包括一个升级前旧版本数据字段和至少一个升级后新版本的版本信息、长度信息和更改增量信息;所述升级前旧版本数据字段包括旧版本业务数据以及该旧版本业务数据对应的版本信息及长度信息;数据处理单元51,用于根据所述旧版本业务数据以及新版本的版本信息、长度信息和更改增量信息对新版本中与接收端使用的软件版本匹配的数据字段进行处理。本发明实施例解决了不同软件版本的通信兼容的问题,同时减少了资源浪费,提高了通信效率。综上所述,本发明实施例解决了不同软件版本的通信兼容的问题,同时减少了资源浪费,提高了通信效率。本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一计算机可读存储介质中。该可读存储介质例如只读存储器(简称ROM)、随机存取存储器(简称RAM)、磁盘、光盘等。以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。权利要求1、一种实现软件跨版本交互的方法,其特征在于,包括接收版本、长度、增量VLA格式的数据包;所述VLA格式的数据包包括一个升级前旧版本数据字段和至少一个升级后新版本的版本信息、长度信息和更改增量信息;所述升级前旧版本数据字段包括旧版本业务数据以及该旧版本业务数据对应的版本信息及长度信息;根据所述旧版本业务数据以及新版本的版本信息、长度信息和更改增量信息对新版本中与接收端使用的软件版本匹配的数据字段进行处理。2、如权利要求l所述的方法,其特征在于,所述根据所述旧版本业务数据以及新版本的版本信息、长度信息和更改增量信息对新版本中与接收端使用的软件版本匹配的数据字段进行处理具体包括根据所述新版本的版本信息确定数据字段是否与接收端使用的软件版本匹配;若匹配,则根据长度信息找到更改增量信息,根据更改增量信息确定新版本业务数据对旧版本业务数据的更改信息;根据所述旧版本业务数据以及新版本业务数据对旧版本业务数据的更改信息得到新版本业务数据,对该新版本业务数据进行处理。3、如权利要求1或2所述的方法,其特征在于,还包括对与接收端使用的软件版本不匹配的数据字段不进行处理。4、如权利要求1或2所述的方法,其特征在于,所述更改增量信息包括更改后的数据。5、如权利要求4所述的方法,其特征在于,所述更改增量信息还包括数据更改类型和数据更改位置。6、如权利要求5所述的方法,其特征在于,所述数据更改类型包括增加、删除或^f奮改。7、一种实现软件跨版本交互的装置,其特征在于,包括接收单元,用于接收版本、长度、增量VLA格式的数据包;所述VLA格式的数据包包括一个升级前旧版本数据字段和至少一个升级后新版本的版本信息、长度信息和更改增量信息;所述升级前旧版本数据字段包括旧版本业务数据以及该旧版本业务数据对应的版本信息及长度信息;数据处理单元,用于根据所述旧版本业务数据以及新版本的版本信息、长度信息和更改增量信息对新版本中与接收端使用的软件版本匹配的数据字段进行处理。8、如权利要求7所述的装置,其特征在于,所述更改增量信息包括更改后的数据。9、如权利要求8所述的装置,其特征在于,所述更改增量信息还包括数据更改类型和数据更改位置。10、如权利要求9所述的装置,其特征在于,所述更改类型包括增加、删除或修改。全文摘要本发明实施例涉及通信领域一种实现软件跨版本交互的方法,包括接收版本、长度、增量VLA格式的数据包;所述VLA格式的数据包包括一个升级前旧版本数据字段和至少一个升级后新版本的版本信息、长度信息和更改增量信息;所述升级前旧版本数据字段包括旧版本业务数据以及该旧版本业务数据对应的版本信息及长度信息;根据所述旧版本业务数据以及新版本的版本信息、长度信息和更改增量信息对新版本中与接收端使用的软件版本匹配的数据字段进行处理。本发明实施例还提供一种实现软件跨版本交互的装置。本发明实施例解决了不同软件版本的通信兼容的问题,同时减少了资源浪费,提高了通信效率。文档编号H04L29/06GK101594355SQ20091008667公开日2009年12月2日申请日期2009年6月17日优先权日2009年6月17日发明者何建成,昊孙,岳常智,郑明华申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1