一种基于默克尔树的软件版本管理方法技术

技术编号:38347733 阅读:13 留言:0更新日期:2023-08-02 09:27
本发明专利技术涉及软件版本管理技术领域,具体为一种基于默克尔树的软件版本管理方法,包括数据模块数据节点的计算;节点杂凑值二叉树的组建;最终杂凑值确定;节点杂凑值逐级比对定位差异节点;所述数据模块节点的计算为:对产品当前版本与最新版本各数据模块逐级计算数据节点。该基于默克尔树的软件版本管理方法,通过对当前软件版本与最新软件版本各模块数据节点数据进行计算,并建立杂凑值二叉树,通过对根节点杂凑值进行比对,可确定各模块版本是否存在更新,且当根节点杂凑值存在差异时,可逐级对各节点杂凑值进行比对,可方便快速的定位到软件环境版本差异的组件,而无需逐一模块进行版本比对,便于后续问题排查和版本升级。便于后续问题排查和版本升级。便于后续问题排查和版本升级。

【技术实现步骤摘要】
一种基于默克尔树的软件版本管理方法


[0001]本专利技术涉及软件版本管理
,具体为一种基于默克尔树的软件版本管理方法。

技术介绍

[0002]软件版本包含两种不同含义:一、为满足不同用户的不同使用要求,如适用于不同运行环境或不同平台的系列产品;二、软件产品投入使用以后,经过一段时间运行提出了变更的要求,需要做较大的修正或纠错,增强功能或提高性能。Alpha版本一般只在软件开发公司内部运行,不对外公开。主要是开发者自己对产品进行测试,检查产品是否存在缺陷、错误,验证产品功能与说明书、用户手册是否一致。Alpha版本的产品仍然需要完整的功能测试,而其功能亦未完善,但是可以满足一般需求。
[0003]传统单体软件产品一般有良好的版本管理方法,在软件出现异常或功能需求变动时很容易对软件对应的版本进行比对。而对于一些综合性较强的产品,如IPSec VPN、SSL VPN等产品,涉及到的软硬件模块较多,有驱动模块、应用模块、交互模块、内核模块、操作系统等等,且不同模块大多是不同部门不同专业的开发人员进行协作开发,对此类产品很难用传统的方式进行软件版本管理,产品在出现问题时需要对不同的模块组件逐一进行版本比对,工作繁琐,效率低下,为此我们提出一种基于默克尔树的软件版本管理方法以解决上述问题。

技术实现思路

[0004]针对现有技术的不足,本专利技术提供了一种基于默克尔树的软件版本管理方法,利用国密算法默克尔树对不同软件进行版本识别比对,可快速有效识别不同批次产品间的版本差异,定位差异组件,便于后续问题排查和版本升级,解决了上述
技术介绍
中提出的问题。
[0005]为实现以上目的,本专利技术通过以下技术方案予以实现:一种基于默克尔树的软件版本管理方法,包括数据模块数据节点的计算;节点杂凑值二叉树的组建;最终杂凑值确定;节点杂凑值逐级比对定位差异节点;
[0006]所述数据模块节点的计算为:对产品当前版本与最新版本各数据模块逐级计算数据节点;
[0007]所述节点杂凑值二叉树的组建为:将产品当前版本与最新版本各数据模块逐级计算数据的节点杂凑值分别组成一颗二叉树;
[0008]所述最终杂凑值确定为:二叉树的根节点为最终计算出的杂凑值;
[0009]所述节点杂凑值逐级比对定位差异节点为:若根节点的杂凑值存在差异,则表面版本存在差异,对产品当前版本与最新版本二叉树各级节点杂凑值进行比较。
[0010]优选的,所述数据模块节点的计算具体为:对产品当前版本与最新版本不同数据模块逐级计算数据节点杂凑值,如IPSec产品中有驱动模块、应用模块,驱动模块包括密码
卡驱动、网卡驱动,应用模块包括IPSec模块、加解密模块,则对各级模块逐级计算数据节点的杂凑值。
[0011]优选的,所述杂凑值是通过杂凑函数将各级模块中需要检索的项与用来检索的索引关联,生成的便于搜索的数据结构。
[0012]优选的,所述节点杂凑值二叉树的组建具体为:将产品当前版本与最新版本各数据模块逐级计算的节点杂凑值组成由叶子节点、中间节点、根节点组建的二叉树。
[0013]优选的,所述最终杂凑值确定具体为:将产品当前版本与最新版本组建的二叉树根节点杂凑值进行比较,根据根节点杂凑值确定模块是否存在更新。
[0014]优选的,所述节点杂凑值逐级比对定位差异节点具体为:若二叉树根节点杂凑值存在差异,则表面模块存在差异,对两组二叉树中间节点、根节点的杂凑值进行比较,判断存在差异的子节点,进而判断软件版本差异之处。
[0015]本专利技术提供了一种基于默克尔树的软件版本管理方法,具备以下有益效果:
[0016]1、该基于默克尔树的软件版本管理方法,通过对当前软件版本与最新软件版本各模块数据节点数据进行计算,并建立杂凑值二叉树,通过对根节点杂凑值进行比对,可确定各模块版本是否存在更新,且当根节点杂凑值存在差异时,可逐级对各节点杂凑值进行比对,可方便快速的定位到软件环境版本差异的组件,而无需逐一模块进行版本比对,便于后续问题排查和版本升级。
附图说明
[0017]图1为本专利技术根节点杂凑值相等时的示意图;
[0018]图2为本专利技术根节点杂凑值不相等时的示意图。
具体实施方式
[0019]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。
[0020]请参阅图1、2,本专利技术提供一种技术方案:一种基于默克尔树的软件版本管理方法,包括数据模块数据节点的计算;节点杂凑值二叉树的组建;最终杂凑值确定;节点杂凑值逐级比对定位差异节点;利用国密算法默克尔树对不同软件进行版本识别比对,可快速有效识别不同批次产品间的版本差异,定位差异组件,便于后续问题排查和版本升级。
[0021]数据模块节点的计算为:对产品当前版本与最新版本各数据模块逐级计算数据节点;
[0022]节点杂凑值二叉树的组建为:将产品当前版本与最新版本各数据模块逐级计算数据的节点杂凑值分别组成一颗二叉树;
[0023]最终杂凑值确定为:二叉树的根节点为最终计算出的杂凑值;
[0024]节点杂凑值逐级比对定位差异节点为:若根节点的杂凑值存在差异,则表面版本存在差异,对产品当前版本与最新版本二叉树各级节点杂凑值进行比较。
[0025]通过对当前软件版本与最新软件版本各模块数据节点数据进行计算,并建立杂凑值二叉树,通过对根节点杂凑值进行比对,可确定各模块版本是否存在更新,且当根节点杂凑值存在差异时,可逐级对各节点杂凑值进行比对,可方便快速的定位到软件环境版本差
异的组件,而无需逐一模块进行版本比对,便于后续问题排查和版本升级。
[0026]数据模块节点的计算具体为:对产品当前版本与最新版本不同数据模块逐级计算数据节点杂凑值,如IPSec产品中有驱动模块、应用模块,驱动模块包括密码卡驱动、网卡驱动,应用模块包括IPSec模块、加解密模块,则对各级模块逐级计算数据节点的杂凑值。
[0027]假设IPSec当前产品中有密码卡驱动(SC20.ko)、网卡驱动(net.ko)、IPSec模块(IPSec.bin)、加解密模块(crypto.so),则根据计算:
[0028]HASH_SM3(SC20.ko)=FD921CEEBEF2D24BF9E361C5EE51C186C5779FFC60BA 16A42F71B5069FFDA9D2;
[0029]HASH_SM3(net.ko)=27144005ABCCA17CD55EABBC9578916BA16B94F2DCB838ADD1A7481F07FB18BB;
[0030]HASH_SM3(IPSec.bin)=4C4C5D80DB81530CD640B756AEE0B885AA2CB81E782D827D0AC4ADAA616A1EAD;
[0031]HASH_SM3(crypto.so)=F本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于默克尔树的软件版本管理方法,其特征在于:包括数据模块数据节点的计算;节点杂凑值二叉树的组建;最终杂凑值确定;节点杂凑值逐级比对定位差异节点;所述数据模块节点的计算为:对产品当前版本与最新版本各数据模块逐级计算数据节点;所述节点杂凑值二叉树的组建为:将产品当前版本与最新版本各数据模块逐级计算数据的节点杂凑值分别组成一颗二叉树;所述最终杂凑值确定为:二叉树的根节点为最终计算出的杂凑值;所述节点杂凑值逐级比对定位差异节点为:若根节点的杂凑值存在差异,则表面版本存在差异,对产品当前版本与最新版本二叉树各级节点杂凑值进行比较。2.根据权利要求1所述的一种基于默克尔树的软件版本管理方法,其特征在于:所述数据模块节点的计算具体为:对产品当前版本与最新版本不同数据模块逐级计算数据节点杂凑值,如IPSec产品中有驱动模块、应用模块,驱动模块包括密码卡驱动、网卡驱动,应用模块包括IPSec模块、加解密模块,则对各级模块逐级计算数据节点的杂凑...

【专利技术属性】
技术研发人员:褚学礼刘磊
申请(专利权)人:中安云科科技发展山东有限公司
类型:发明
国别省市:

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

1