书签 分享 收藏 举报 版权申诉 / 9

一种嵌入式设备配置文件同步比较的方法.pdf

  • 上传人:a1
  • 文档编号:6032171
  • 上传时间:2019-04-04
  • 格式:PDF
  • 页数:9
  • 大小:653.85KB
  • 摘要
    申请专利号:

    CN201610815788.0

    申请日:

    2016.09.09

    公开号:

    CN106469219A

    公开日:

    2017.03.01

    当前法律状态:

    实审

    有效性:

    审中

    法律详情:

    实质审查的生效IPC(主分类):G06F 17/30申请日:20160909|||公开

    IPC分类号:

    G06F17/30

    主分类号:

    G06F17/30

    申请人:

    武汉长光科技有限公司

    发明人:

    胡兆祥; 何金亮; 郑直; 周杰

    地址:

    430073 湖北省武汉市洪山区邮科院路88号烽火科技大厦二层

    优先权:

    专利代理机构:

    湖北武汉永嘉专利代理有限公司 42102

    代理人:

    胡建平;杨晓燕

    PDF完整版下载: PDF下载
    内容摘要

    一种嵌入式设备配置文件同步比较的方法,包括以下步骤:S1、将配置文件中按逐行配置为最小单位,多行配置的合集形成数组块;S2、通过算法分析出数组块的最大相似块单元,也即最长公共序列:在一次最长公共序列查找中,通过特定算法将两个数组块的进行比较,对于相关或者相同的部分,在内部记录中给予标记,对于未被标记的数据块,则表示其数组块对应行的配置不同;S3、通过逐次递归分析出各个相同的配置行并标记,剩余未标记的部分导出为差异性数组块。本发明适应于基于文本行配置为基础的嵌入式设备,提升算法效率,减少处理延时,以较少的资源开销和时间延时来分析配置文件的差异,方便各个主备系统或同步系统以较少的代价完成同步更新。

    权利要求书

    1.一种嵌入式设备配置文件同步比较的方法,其特征在于,包括以下步骤:
    S1、将配置文件按逐行配置为最小单位,多行配置的合集形成数组块;
    S2、通过算法分析出数组块的最大相似块单元,也即最长公共序列:在一次最长公共序
    列查找中,对一大块的数组块进行比较,对于相关或者相同的数组块,在内部记录中给予标
    记,对于未被标记的数列,则表示其数组块对应行的配置不同;
    S3、通过逐次递归,逐步分析出各个相同的数组块并标记,剩余未标记的部分导出为差
    异性数组块。
    2.根据权利要求1所述的嵌入式设备配置文件同步比较的方法,其特征在于,所述步骤
    S1中,配置文件内容按文本行模式逐行读取,并按特定算法形成数字化数组,多行文本进行
    数字化后的数组集合形成数组块。
    3.根据权利要求2所述的嵌入式设备配置文件同步比较的方法,其特征在于,所述特定
    算法是指:采用HASH算法将本行的字符HASH数字化,HASH算法具体为:设定第i行字符配置
    的HASH值为HS[i],第j行字符配置的HASH值为HS[j],以此类推,整个设备配置文件形成
    HASH数组块;多个配置文本文件,分别形成不同的HASH数组块;在完成各个配置文件的HASH
    数字化后,实际的配置文件同步比较,则变为两组HASH数组块的同步比较。
    4.根据权利要求3所述的嵌入式设备配置文件同步比较的方法,其特征在于,步骤S2
    中,最长公共序列的算法具体为:
    ①对于两个HASH数组数列x[n],y[m],分别从数列x[]、数列y[]的0开始,n++,m++循
    环,相同结果记录为L[]:
    如果x[i]==y[j],则L[i,j]=L[i-1,j-1]+1;
    如果x[i]!=y[j],则L[i,j]=max{L[i,j-1],L[i-1,j]};
    其中,i<n,j<m;
    ②第一次轮训完毕,L[i,j]中的数字就是x[n]与y[m]的最长公共序列,记录对应的i或
    者j编号,即检索到配置文件的行编号;
    ③从数列x[]和y[]中截取掉L[]后,数列x[]和y[]分别变为两段数据x1[]、x2[]和
    y1[]、y2[],再次比较x1[]和y1[],x2[]和y2[],以此类推,即可得出次级公共子序列L1
    [],L2[],…,Ln[],直至xn[]或ym[]数据为空;
    ④最后逐次完成对上述各级公共序列的分段递归,将不同的配置差异定位到具体的某
    行字符命令HASH值,最终生成差异性记录文件。

    说明书

    一种嵌入式设备配置文件同步比较的方法

    技术领域

    本发明涉嵌入式配置文件主动管理或变化分析等领域,具体涉及一种嵌入式设备
    配置文件同步比较的方法,特别适用于主备系统或者分布式同步系统,其需要实时同步或
    者多系统协作配置更新、文件实时跟踪分析。

    背景技术

    随着通信技术的不断发展和通信规模的指数级扩张,信息系统间的同步或协作更
    新变的更为重要,对某些主备构架的嵌入式系统,或者分布式实时同步嵌入式系统来说尤
    为如此。目前对于嵌入式系统的管理,绝大部分嵌入式通信设备仍然以配置文件作为设备
    信息记录、保存、备份与同步、手段分析的主要方式。嵌入式系统由于CPU处理能力较弱,对
    于较大文件的比较方法,更多蕴含对实时性的要求,因而存在算法效率低、延时长的问题。

    发明内容

    本发明要解决的技术问题是,针对现有嵌入式系统由于CPU处理能力较弱,对于较
    大文件的比较算法效率低、延时长的不足,提供一种嵌入式设备配置文件同步比较的方法,
    提升算法效率,减少处理延时方面,以较少的资源开销和时间延时来分析配置文件的差异,
    方便各个主备系统或同步系统以较少的代价完成同步更新或者感知分析。

    本发明为解决上述技术问题所采用的技术方案是:

    一种嵌入式设备配置文件同步比较的方法,包括以下步骤:

    S1、将配置文件按逐行配置为最小单位,多行配置的合集形成数组块;

    S2、通过算法分析出数组块的最大相似块单元,也即最长公共序列:在一次最长公
    共序列查找中,对一大块的数组块进行比较,对于相关或者相同的数组块(实质为对应行的
    配置相同),在内部记录中给予标记,对于未被标记的数列,则表示其数组块对应行的配置
    不同;

    S3、通过逐次递归,逐步分析出各个相同的数组块并标记,剩余未标记的部分导出
    为差异性数组块(逐次递归方法将不同的数组块差异定位到具体的某特定配置行号)。

    按上述方案,所述步骤S1中,配置文件内容按文本行模式逐行读取,并按特定算法
    形成数字化数组,多行文本进行数字化后的数组集合形成数组块。

    按上述方案,所述特定算法是指:采用HASH算法将本行的字符HASH数字化,HASH算
    法具体为:设定第i行字符配置的HASH值为HS[i],第j行字符配置的HASH值为HS[j],以此类
    推,整个设备配置文件形成HASH数组块;多个配置文本文件,分别形成不同的HASH数组块;
    在完成各个配置文件的HASH数字化后,实际的配置文件同步比较,则变为两组HASH数组块
    的同步比较(本发明选择最长公共序列方法)。

    按上述方案,步骤S2中,最长公共序列的算法具体为:

    ①对于两个HASH数组数列x[n],y[m],分别从数列x[]、数列y[]的0开始,n++,m++
    循环,相同结果记录为L[]:

    如果x[i]==y[j],则L[i,j]=L[i-1,j-1]+1;

    如果x[i]!=y[j],则L[i,j]=max{L[i,j-1],L[i-1,j]};

    其中,i<n,j<m;

    ②第一次轮训完毕,L[i,j]中的数字就是x[n]与y[m]的最长公共序列,记录对应
    的i或者j编号,即检索到配置文件的行编号;

    ③从数列x[]和y[]中截取掉L[]后,数列x[]和y[]分别变为两段数据x1[]、x2
    []和y1[]、y2[],再次比较x1[]和y1[],x2[]和y2[],以此类推,即可得出次级公共子序
    列L1[],L2[],…,Ln[],直至xn[]或ym[]数据为空;

    ④最后逐次完成对上述各级公共序列的分段递归,将不同的配置差异定位到具体
    的某行字符命令HASH值,最终生成差异性记录文件。

    本发明的工作原理:本发明适用于基于文本行配置为基础的嵌入式设备,其需要
    实时或者动态对比新旧配置文件的差异情况,或者适用于在部署了主备或分布式系统,需
    要实时同步各个系统的配置变化情况。由于主备系统或者分布式同步系统中配置文件存在
    逐步叠加的特性(排除网络规划重新设计、配置重新部署的情况),相关设备不同时间段下
    的配置文件,相似度比较高,而差异性配置较少,因此本发明分析配置文件差异,实时监控
    及对比配置文件变化,实时感知各分布式系统配置命令,同步主备配置文件,最后导入设备
    差异性配置文件,先将配置命令数字化、块状化,再分块检测相似度,逐步缩小不同块的范
    围,最终定位到具体差异性的配置命令。

    本发明产生的有益效果是:

    1、嵌入式系统由于CPU处理能力较弱,对于较大文件的比较方法,更多蕴含的对实
    时性的要求,本发明着重在于提升算法效率,减少处理延时方面,特别适用在主备或者分布
    式嵌入系统中,以配置文件的差异来协从主备系统或者各个分布系统的实时配置同步更新
    工作,以减少配置同步的代价,其效率远比一般数据库同步要减少很多的资源消耗和时间
    开销,这对其自身处理能力和内存资源就比较有限的嵌入式设备来说更为可贵;

    2、由于分布操作的特点,各系统需要保持配置的实时同步或者动态感知,以方便
    各个系统的灵活及准确协作,本发明在力求减少算法的时间复杂度和空间复杂度的情况
    下,基于最大相似块文件检查,并逐步递归检测出最小差异行,也即逐条命令行差异分析,
    以此迅速感知到各个分布端点配置的变化,协助本系统实时同步或更新,其同步比较的范
    畴包括实时同步、热备、冷备等;

    3、本发明方法也适用于处理其它需要文本分析的嵌入式系统,譬如实时告警分
    析,日志文件跟踪等;对于以导入方式为配置下发方式的设备,也可以通过本方法提高分析
    效率;对于批量配置导入类型的系统,通过本方法,可以在减少差异性配置量的情况下,降
    低系统负担,减少对业务的影响时间;也可以用于系统分析配置差异,可最少量完成差异性
    配置更新,减少对系统运行的影响。

    附图说明

    图1为本发明嵌入式设备配置文件同步比较的方法流程图;

    图2为本发明递归循环导出差异性配置文件集的结构流程图;

    图3为本发明实施例字符按照ASCII编码的代码表;

    图4为本发明实施例最长公共序列的算法思想示意图。

    具体实施方式

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

    参照图1所示,本发明所述的嵌入式设备配置文件同步比较的方法,包括以下步
    骤:

    S1、将配置文件按逐行配置为最小单位,多行命令字的合集形成数组块;

    S2、通过算法分析出数组块的最大相似块单元,也即最长公共序列:在一次最长公
    共序列查找中,对一大块的数组块进行比较,对于相关或者相同的数组块,在内部记录中给
    予标记,对于未被标记的数列,则表示为差异性数组块;

    S3、通过逐次递归,逐步分析出各个相同的数组块并标记,剩余未标记的部分则导
    出为差异性数组块(逐次递归方法可将不同的数组块差异定位到具体的某特定配置行号)

    采用HASH算法将本行的配置HASH数组化,HASH算法具体为:设定第i行配置的HASH
    值为HS[i],第j行配置的HASH值为HS[j],以此类推,一个配置文件形成HASH数组;多个配置
    文本文件,将形成不同的HASH数组。例如对本系统的配置文本HASH数组表名为HASH_1,对于
    备份端或者对端的系统配置文件HASH数组表名为HASH_2,以此类推;不同设备的配置文件
    同步比较,则变为两组HASH数组间的最长公共序列的对比过程。

    以下对HASH部分、最大公共数列、递归及分类算法分别介绍。

    HASH数列:由于常见的配置文件为文本类字符行组成,一般长度都有限,HASH数组
    化的要求必须是每行配置文件实例数组化后,其结果必须唯一且不重复。

    以通信系统为例,配置文本文件一般选用的字符按照如图3所示的ASCII编码,有
    效字符范围一般为0x1E-0x7F(十六进制),一般一条配置行的长度也不会超过1K个字符,把
    逐行配置中的字符有序输入(又叫做预映射,pre-image),通过散列算法,变换成固定长度
    的输出,该输出就是散列值HS[i]。这种转换是一种压缩映射,其算法需要保证不同的输入
    散列成不相同的输出。简单的说就是一种将任意内容的输入转换成相同长度输出的加密方
    这样,由于对应数组对应关系被实时记录下来,我们只要对比了HS[i]值,就可以快速确认
    其输入的字符序列是否一致。当然映射算法的不同,可能会导致不同的输入散列成了相同
    的输出,本方案选择了一种按位编码的方式,即按照文本字符的排序1,2.3….i,以此对本
    行命令进行编码HS[i]=str[1]+str[2]*i+str[3]*i…..+str[i]*i,其中str[3]代表对应
    ASCII字符的十进制编号。

    例如:字符串的HASH算法,char*value="hello,world";

    int key=(int)'h'+(int)'e'*2+(int)'l')*3++(int)'l')*4+(int)'o')*5+
    (int)'')*6+(int)',')*7+(int)'w')*8+(int)'o')*9+(int)'r')*10+(int)'l')*11+
    (int)'d')*12

    最长公共序列:对于两个数组数列,如果是两个或多个已知序列的子序列,且是所
    有子序列中最长的,则为最长公共序列。本文吸取其思想,在以此对比基础上改造,除可以
    最大程度上提供准确性外,更重要的是:需要检测出所有相同的子序列、相似的子序列和完
    全不同的子序列,对应到实际应用,即:保持相同的配置、修改部分配置、添加或删除新的配
    置。在实际的文件配置中,可能一份文件中不同的位置均有修改,或者同一行文件中部分字
    段修改,因此也需要算法能对配置文件的解析能给予足够的信息。

    图4介绍了一种最大公共序列,对于char x[]="abcbdacbdec",对于char y[]
    ="bdacbadec",其最大公共序列为“bdac”,次级公共序列为“dec”,其余字段均不相同,基
    本算法思想为:

    ①i和j分别从0开始,对数列x[]、数列y[]进行m++、n++循环,相同结果记录如L
    []:

    如果x[i]==y[j],则L[i,j]=L[i-1,j-1]+1;

    如果x[i]!=y[j],则L[i,j]=max{L[i,j-1],L[i-1,j]}

    ②第一次轮训完毕,L[i,l]中的数字就是最长公共子序列L[]=“bdac”,记录对应
    的i或者j编号,即可检索到配置文件的行编号;

    ③从数列x[]和y[]中截取掉L[]后,x[]和y[]会分别变为两段数据,分别为:

    x1[]=”abc”,x2[]=”bdec”

    y1[]=””,y2[]=”badec”

    再次比较x1[]和y1[],x2[]和y2[],以此类推,即可得出次级公共子序列L1[],
    L2[],…,Ln[],直至xn[]或ym[]数据为空;

    ④最后参照图2所示的递归及分类算法流程,逐次完成对上述各级公共序列的分
    段递归,以及对内部xn[]、yn[]、Ln[]各个数列集进行具体编号,将不同的配置差异定位
    到具体的某行字符命令HASH值,最终生成差异性记录文件。

    本发明并不仅仅限于说明书和实施方式中所列运用,对于本领域的技术人员来
    说,根据本发明作出各种相应的更改和变型,相应的更改和变型都属于本发明权利要求的
    保护范围。

    关 键  词:
    一种 嵌入式 设备 配置文件 同步 比较 方法
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:一种嵌入式设备配置文件同步比较的方法.pdf
    链接地址:https://www.zhuanlichaxun.net/p-6032171.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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