【】本发明涉及远程软件升级方法的,特别是基于linux系统的网关的远程软件升级方法的。
背景技术
0、
背景技术:
1、对于数据采集的网关而言,在数据采集程序存在缺陷时或者在固件、硬件驱动有更加稳定的版本时,网关之中的相关程序就需要进行升级。传统的升级方法通常为运维人员到生产现场或者远程网络连接网关以手动操作并进行升级。此外,更方便的方法则是通过程序硬编码的方式,实现远程程序自动操作升级。
2、然而,运维人员手动升级方式存在升级的时间成本较大的技术问题。对于程序硬编码升级方式而言,由于一个linux系统往往由许多程序组成,导致升级的覆盖面通常不够全。
技术实现思路
0、
技术实现要素:
1、本发明的目的就是解决现有技术中的问题,提出基于linux系统的网关的远程软件升级方法,不仅升级方式简便,还能够适应各种情况的升级需求。
2、为实现上述目的,本发明提出了基于linux系统的网关的远程软件升级方法,包括如下步骤:
3、a)用户先通过http/https协议请求上传要升级软件的升级包文件到网关管理平台,再在选中网关和升级包文件后通过http/https协议向网关管理平台发起升级请求;
4、b)网关管理平台先在接收到升级请求后通过lwm2m协议向网关升级程序下发升级指令,再在网关升级程序正常响应后更新网关升级状态为升级中并向用户返回请求成功;
5、c)网关升级程序根据升级指令中的升级包文件下载地址并通过http/https协议请求下载升级包文件到网关升级程序所在的文件夹中;
6、d)网关升级程序在解压升级包文件后生成存放升级软件资源的文件夹以及shell脚本;
7、e)网关升级程序异步执行shell脚本以完成软件的升级。
8、作为优选,在所述步骤b)中,网关管理平台在网关升级程序正常响应后同步开启升级进度检测线程以通过lwm2m协议根据预设频率定期向网关升级程序获取网关的软件版本信息;
9、在所述步骤c)中,网关升级程序在下载前更新网关的软件版本信息并将软件的升级进度设置为0%,在下载过程中每下载预设容量的文件即更新一次升级进度,在下载完成后将软件的升级进度设置为99%;
10、在所述步骤e)中,网关升级程序在升级完成后将软件的升级进度设置为100%。
11、作为优选,所述预设频率为每1~5s进行一次,所述预设容量为0.5~5kb。
12、作为优选,所述网关管理平台在升级进度为100%时更新升级状态为升级成功,在总获取时间超过升级包文件所记录的超时时间时更新升级状态为升级失败。
13、作为优选,在所述步骤e)中,网关升级程序在升级完成后删除下载的升级包文件和由升级包文件解压出来的文件。
14、作为优选,在升级过程中,用户可随时查询网关的软件版本信息。
15、作为优选,在升级过程中,若用户再次发起升级请求,则网关管理平台提示请求失败。
16、作为优选,所述升级包文件的记录格式如下列json字符串所示:
17、
18、作为优选,所述升级指令的格式如下列json字符串所示:
19、
20、作为优选,所述网关的软件版本信息格式如下列json字符串所示:
21、
22、
23、本发明的有益效果:
24、1)本发明采用固定格式的升级包文件,并使包内包含名为update.sh的shell脚本,从而使网关管理平台和网关升级程序一次对接就可升级网关的linux系统内的各种各样的shell脚本能够支持升级的软件,并且通过异步执行shell脚本的方式(另启一个shell脚本进程)令网关升级程序可实现对自身的更新(后续升级过程由shell脚本进行,网关升级程序自身可被重启);
25、2)本发明通过使网关升级程序在下载升级包文件的过程中更新升级进度为0~99%,使shell脚本在升级完成时更新升级进度为100%,又令网关管理平台在升级超时的时候更新网关升级状态为升级失败,从而形成完善的升级过程反馈机制,可对网关软件升级的各个过程形成有效监控;
26、3)本发明定义了网关的软件版本信息查看机制,能够在升级前后查看网关内的各软件的版本信息,以便准确的把握网关内软件的升级需求;
27、4)本发明使用lwm2m协议下发升级指令和查询网关的软件版本信息,能够更加适应物联网场景的弱网环境;
28、5)本发明使用http/https协议下载升级包文件,能够确保下载的稳定以及升级包文件的完整。
29、本发明的特征及优点将通过实施例结合附图进行详细说明。
1.基于linux系统的网关的远程软件升级方法,其特征在于,包括如下步骤:
2.如权利要求1所述的基于linux系统的网关的远程软件升级方法,其特征在于:
3.如权利要求2所述的基于linux系统的网关的远程软件升级方法,其特征在于:所述预设频率为每1~5s进行一次,所述预设容量为0.5~5kb。
4.如权利要求2所述的基于linux系统的网关的远程软件升级方法,其特征在于:所述网关管理平台在升级进度为100%时更新升级状态为升级成功,在总获取时间超过升级包文件所记录的超时时间时更新升级状态为升级失败。
5.如权利要求2所述的基于linux系统的网关的远程软件升级方法,其特征在于:在所述步骤e)中,网关升级程序在升级完成后删除下载的升级包文件和由升级包文件解压出来的文件。
6.如权利要求1所述的基于linux系统的网关的远程软件升级方法,其特征在于:在升级过程中,用户可随时查询网关的软件版本信息。
7.如权利要求1所述的基于linux系统的网关的远程软件升级方法,其特征在于:在升级过程中,若用户再次发起升级请求,则网关管理平台提示请求失败。
8.如权利要求1所述的基于linux系统的网关的远程软件升级方法,其特征在于,所述升级包文件的记录格式如下列json字符串所示:
9.如权利要求1所述的基于linux系统的网关的远程软件升级方法,其特征在于,所述升级指令的格式如下列json字符串所示:
10.如权利要求1所述的基于linux系统的网关的远程软件升级方法,其特征在于,所述网关的软件版本信息格式如下列json字符串所示: