一种基于制造技术

技术编号:39511158 阅读:6 留言:0更新日期:2023-11-25 18:47
本发明专利技术公开了一种基于

【技术实现步骤摘要】
一种基于P2P架构的多模块程序自动更新方法


[0001]本专利技术属于涉及程序自动更新
,特别是涉及一种基于
P2P
架构的多模块程序自动更新方法


技术介绍

[0002]互联网设备一般采用
C/S(Client/Server)
架构进行程序更新,即以服务器为中心,各客户端依靠互联网构建程序更新链路,该架构可提前把新版本程序储存在服务器或者其他中介设备中,若有更新需要的节点接入网络后,可以快速的从服务器中申请更新

许多无线网络延续使用了
C/S
架构,但对于分布式网络来说,由于无固定基础设施的支撑,在一定程度上难完成程序更新
。C/S
架构的程序更新方式依赖服务器或固定节点,在没有服务器支撑的情况下,客户端互相连接时,无法通过客户端间自主判断完成程序更新,大大降低了更新的灵活性

此外,现有的程序更新方式为单模块更新,若节点设备有多个模块需要程序更新,则采用多次单模块更新的方式完成,因此,该方式仅适用于模块程序版本不存在约束关系的简单设备


技术实现思路

[0003]本专利技术目的在于解决上述
技术介绍
中提出的问题,提供一种基于
P2P
架构的多模块程序自动更新方法,主要适用于无基础设施支撑的多模块无线网络设备

[0004]为了实现本专利技术目的,本专利技术公开了一种基于
P2P
架构的多模块程序自动更新方法,不需要预设的服务器或中介设备即可进行自动更新

令网络中节点总数为
m
,各节点中模块数量为
n
,无线网络中某一节点的更新流程包括如下步骤:
[0005]S11
,启动节点设备,检测程序更新寄存器,当寄存器状态为“重启需更新”,将寄存器状态更改为“重启不更新”,并转到步骤
S17
,否则转到步骤
S12

[0006]S12
,广播本节点版本对比包,并接收其他节点广播的各版本对比包,整理所有节点版本对比包中的信息,组成版本对照表;
[0007]S13
,根据整理的版本对照表,判断是否有模块需要更新,若没有模块需要更新,等待固定时长,转到步骤
S12
,若有模块需要更新
,
转到步骤
S14

[0008]S14
,根据版本对照表中的约束关系,计算更新策略,并向对应节点发送更新申请包;
[0009]S15
,接收对应节点发送的更新程序;
[0010]S16
,判断节点设置的更新模式,若节点当前设置的更新模式为“及时更新”,进行步骤
S17
,若节点当前设置的更新模式为“重启时更新”,转到步骤
S111

[0011]S17
,备份待更新模块中的程序,备份完成后,开始更新,等待更新完成,进行程序校验比对;
[0012]S18
,当程序比对成功,转到步骤
S19
,当程序比对不成功,转到
S110

[0013]S19
,读取节点内各模块的版本,更新版本信息,覆盖原版本信息,转到步骤
S12

[0014]S110
,根据各模块版本间的约束关系有选择的进行版本回退,回退完成后,转到步骤
S19

[0015]S111
,备份更新程序,将更新寄存器的状态更改为“重启需更新”,转到步骤
S12

[0016]进一步地,步骤
S12
中,在如下情况发送版本对比包:
[0017]S121
,当有新节点入网,新节点和原网络中的节点全部广播版本对比包;
[0018]S122
,当没有新节点入网,在全网统一时间的条件下,每隔固定时长,全部节点广播版本对比包

[0019]进一步地,步骤
S12
中,版本对比包的具体报文内容如下所示:
[0020]版本对比包中包含自身节点的唯一识别号,节点中模块个数
n
,第一个模块版本及与其他模块的约束关系,第二个模块版本及与其他模块的约束关系,直至第
n
个模块版本及与其他模块的约束关系

[0021]进一步地,步骤
S12
中,版本对照表的具体格式如下所示:
[0022]版本对照表中包含对照模块编号,各节点唯一识别号,各节点对照模块版本,各节点中其他模块与对照模块的约束关系

[0023]进一步地,步骤
S14
中,更新策略的具体计算方式如下所示:
[0024]S141
,某个待更新模块根据版本对照表中各节点中待更新模块的版本号计算更新策略,当其余节点中有多个节点的待更新模块程序版本较新,选择版本号最大的节点,向其发送更新申请包;
[0025]S142
,某个待更新模块根据版本对照表中各节点中待更新模块的版本号计算更新策略,当其余节点中有多个节点的待更新模块程序版本号一样,且版本号最大,选择唯一识别号最小的节点,向其发送更新申请包

[0026]进一步地,在步骤
S14
中,更新申请包的具体报文内容如下所示:
[0027]申请节点唯一识别号,被申请节点唯一识别号,第一个模块申请需求,第二个模块申请需求,直至第
n
个模块申请需求

[0028]进一步地,在步骤
S14
中,无线网络中节点发送更新程序的具体步骤如下:
[0029]S143
,接收到网络中其他节点发送的更新申请包;
[0030]S144
,根据更新申请包中的内容,读取对应模块的程序;
[0031]S145
,根据更新申请包中的内容,发送对应模块的程序至对应节点

[0032]进一步地,在步骤
S110
中,版本回退具体步骤如下所示:
[0033]S1101
,当某一模块校验失败,查找该节点的版本对比包,根据各模块间的约束条件判断其他模块是否回退;
[0034]S1102
,当校验失败的模块回退后的版本不在关联模块的约束条件内,则关联模块与更新失败的模块一同回退;
[0035]S1103
,当校验失败的模块回退后的版本仍在关联模块的约束条件内,则不回退该关联模块;
[0036]S1104
,当更新失败的模块与某一更新成功的模块之间没有约束条件,不回退该更新成功的模块

[0037]一种计算机设备,包括存储器

处理器及存储在存储器上并可在处理器上运行的计算机程,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种基于
P2P
架构的多模块程序自动更新方法,其特征在于,无线网络中节点的更新流程包括如下步骤:
S11
,启动节点设备,检测程序更新寄存器,当寄存器状态为“重启需更新”,将寄存器状态更改为“重启不更新”,并转到步骤
S17
,否则转到步骤
S12

S12
,广播本节点版本对比包,并接收其他节点广播的各版本对比包,整理所有节点版本对比包中的信息,组成版本对照表;
S13
,根据整理的版本对照表,判断是否有模块需要更新,若没有模块需要更新,等待固定时长,转到步骤
S12
,若有模块需要更新
,
转到步骤
S14

S14
,根据版本对照表中的约束关系,计算更新策略,并向对应节点发送更新申请包;
S15
,接收对应节点发送的更新程序;
S16
,判断节点设置的更新模式,若节点当前设置的更新模式为“及时更新”,进行步骤
S17
,若节点当前设置的更新模式为“重启时更新”,转到步骤
S111

S17
,备份待更新模块中的程序,备份完成后,开始更新,等待更新完成,进行程序校验比对;
S18
,当程序比对成功,转到步骤
S19
,当程序比对不成功,转到
S110

S19
,读取节点内各模块的版本,更新版本信息,覆盖原版本信息,转到步骤
S12

S110
,根据各模块版本间的约束关系有选择的进行版本回退,回退完成后,转到步骤
S19

S111
,备份更新程序,将更新寄存器的状态更改为“重启需更新”,转到步骤
S12。2.
根据权利要求1所述的一种基于
P2P
架构的多模块程序自动更新方法,其特征在于,步骤
S12
中,在如下情况发送版本对比包:
S121
,当有新节点入网,新节点和原网络中的节点全部广播版本对比包;
S122
,当没有新节点入网,在全网统一时间的条件下,每隔固定时长,全部节点广播版本对比包
。3.
根据权利要求1所述的一种基于
P2P
架构的多模块程序自动更新方法,其特征在于,步骤
S12
中,版本对比包的具体报文内容如下所示:版本对比包中包含自身节点的唯一识别号,节点中模块个数
n
,第一个模块版本及与其他模块的约束关系,第二个模块版本及与其他模块的约束关系,直至第
n
个模块版本及与其他模块的约束关系
。4.
根据权利要求1所述的一种基于
P2P
架构的多模块...

【专利技术属性】
技术研发人员:唐一鸣胡郑峰张晗黄镠
申请(专利权)人:中国船舶集团有限公司第七二四研究所
类型:发明
国别省市:

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

1