[0001]
本发明涉及数据处理技术领域,尤其涉及一种应用在线升级方法、装置、设备及计算机可读存储介质。
背景技术:[0002]
近年来,人类的生活与物联网的关系越来越密切。从目前市场的发展形势上看,物联网中诸多如arm linux等中的应用程序,都是用户很难或无法操作访问的。现代软件快速的生命周期就要求物联网软件有一套完善的在线升级系统。
[0003]
目前市场上已经出现部分物联网在线升级产品,一般都以接口的形式向客户提供服务,支持多种下载和安装策略,有较强的数据加密能力,提供断点续传、断电保护等异常处理机制,但仍然存在缺点。一方面,这些产品以接口形式提供服务,就要求客户在拿到产品后,需要首先理解接口文档,然后根据自身应用需求和服务器需求进行升级程序开发,这样一来就会浪费了大量的时间和精力;另一方面,这些产品过分注重升级过程中的异常处理,在应用升级后的稳定性测试上支持较少,增加了升级后设备变砖的可能。因此,上述种种情况均反映出现有的物联网应用的在线升级方法的可靠性不佳的问题。
技术实现要素:[0004]
本发明的主要目的在于提供一种应用在线升级方法、装置、设备及计算机可读存储介质,旨在解决现有的物联网应用的在线升级方法的可靠性不佳的技术问题。
[0005]
为实现上述目的,本发明提供一种应用在线升级方法,所述方法应用于客户端,包括以下步骤:
[0006]
接收所述客户端上目标应用的升级文件与可扩展标记语言格式的安装配置文件,并对所述升级文件进行校验;
[0007]
在所述升级文件通过校验时,根据所述安装配置文件将所述升级文件在所述客户端上进行本地安装,以在线升级所述目标应用,以在线升级所述目标应用;
[0008]
对在线升级后的目标应用进行稳定性测试。
[0009]
可选地,所述接收所述客户端上目标应用的升级文件与可扩展标记语言格式的安装配置文件之前,还包括:
[0010]
获取所述目标应用的设备应用信息,并向升级服务器发送包含所述设备应用信息的升级需求检查请求,以供所述升级服务器根据所述升级需求请求确定所述目标应用的升级需求并根据所述升级需求对预设的可扩展标记语言格式的原始配置文件进行更改,以作为所述安装配置文件;
[0011]
所述接收所述客户端上目标应用的升级文件与可扩展标记语言格式的安装配置文件包括:
[0012]
接收由所述升级服务器发送的所述安装配置文件,并基于所述安装配置文件向所述升级服务器请求所述升级文件,以在所述升级服务器发送所述升级文件时进行接收,其
中,所述安装配置文件中包含下载策略、安装策略、下载地址和/或升级包校验码。
[0013]
可选地,所述获取所述目标应用的设备应用信息之前,还包括:
[0014]
在接收到在线升级指令时,基于所述在线升级指令确定所述目标应用,并向所述升级服务器发送与所述目标应用相关的请求信息问询指令;
[0015]
获取所述升级服务器对于所述请求信息问询指令的应答信息,以基于所述应答信息创建所述升级需求检查请求,其中,所述应答信息包括请求访问地址、请求访问端口号和/或请求访问参数。
[0016]
可选地,所述对所述升级文件进行校验包括:
[0017]
根据所述目标应用生成本地校验码,并获取所述安装配置文件中的升级包校验码,其中,所述本地校验码存储于区块链中;
[0018]
判断所述升级包校验码与所述本地校验码是否匹配;
[0019]
若所述升级包校验码与所述本地校验码匹配,则判定所述升级文件通过校验;
[0020]
若升级包校验码与所述本地校验码不匹配,则判定所述升级文件未通过检验。
[0021]
可选地,所述若升级包校验码与所述本地校验码不匹配,则判定所述升级文件未通过检验之后,还包括:
[0022]
将所述升级包校验码与所述本地校验码不匹配的事件记为一次丢失;
[0023]
在检测到累计的丢失次数超出预设次数阈值时,退出当前在线升级过程,生成并显示校验失败消息。
[0024]
可选地,所述对在线升级后的目标应用进行稳定性测试包括:
[0025]
在预设时长内循环执行所述在线升级后的目标应用的应用功能,并记录所述应用功能的执行状态;
[0026]
判断所述应用功能的执行状态是否出现异常;
[0027]
若所述应用功能的执行状态出现异常,则判定所述在线升级后的目标应用未通过稳定性测试;
[0028]
若所述应用功能的执行状态未出现异常,则判定所述在线升级后的目标应用通过稳定性测试。
[0029]
可选地,所述若所述应用功能的执行状态出现异常,则判定所述在线升级后的目标应用未通过稳定性测试之后,还包括:
[0030]
生成并显示应用测试失败信息;
[0031]
确定所述升级文件的下载策略,以根据所述下载策略删除所述目标应用的升级包,或回退至旧版本的目标应用。
[0032]
此外,为实现上述目的,本发明还提供一种应用在线升级装置,所述应用在线升级装置包括:
[0033]
文件校验模块,用于接收所述客户端上目标应用的升级文件与可扩展标记语言格式的安装配置文件,并对所述升级文件进行校验;
[0034]
在线升级模块,用于在所述升级文件通过校验时,根据所述安装配置文件将所述升级文件在所述客户端上进行本地安装,以在线升级所述目标应用,以在线升级所述目标应用;
[0035]
应用测试模块,用于对在线升级后的目标应用进行稳定性测试。
[0036]
可选地,所述接收所述客户端上目标应用的升级文件与可扩展标记语言格式的安装配置文件之前,还包括:
[0037]
获取所述目标应用的设备应用信息,并向升级服务器发送包含所述设备应用信息的升级需求检查请求,以供所述升级服务器根据所述升级需求请求确定所述目标应用的升级需求并根据所述升级需求对预设的可扩展标记语言格式的原始配置文件进行更改,以作为所述安装配置文件;
[0038]
所述接收所述客户端上目标应用的升级文件与可扩展标记语言格式的安装配置文件的步骤包括:
[0039]
接收由所述升级服务器发送的所述安装配置文件,并基于所述安装配置文件向所述升级服务器请求所述升级文件,以在所述升级服务器发送所述升级文件时进行接收,其中,所述安装配置文件中包含下载策略、安装策略、下载地址和/或升级包校验码。
[0040]
可选地,所述获取所述目标应用的设备应用信息之前,还包括:
[0041]
在接收到在线升级指令时,基于所述在线升级指令确定所述目标应用,并向所述升级服务器发送与所述目标应用相关的请求信息问询指令;
[0042]
获取所述升级服务器对于所述请求信息问询指令的应答信息,以基于所述应答信息创建所述升级需求检查请求,其中,所述应答信息包括请求访问地址、请求访问端口号和/或请求访问参数。
[0043]
可选地,所述对所述升级文件进行校验包括:
[0044]
根据所述目标应用生成本地校验码,并获取所述安装配置文件中的升级包校验码,其中,所述本地校验码存储于区块链中;
[0045]
判断所述升级包校验码与所述本地校验码是否匹配;
[0046]
若所述升级包校验码与所述本地校验码匹配,则判定所述升级文件通过校验;
[0047]
若升级包校验码与所述本地校验码不匹配,则判定所述升级文件未通过检验。
[0048]
可选地,所述若升级包校验码与所述本地校验码不匹配,则判定所述升级文件未通过检验之后,还包括:
[0049]
将所述升级包校验码与所述本地校验码不匹配的事件记为一次丢失;
[0050]
在检测到累计的丢失次数超出预设次数阈值时,退出当前在线升级过程,生成并显示校验失败消息。
[0051]
可选地,所述对在线升级后的目标应用进行稳定性测试包括:
[0052]
在预设时长内循环执行所述在线升级后的目标应用的应用功能,并记录所述应用功能的执行状态;
[0053]
判断所述应用功能的执行状态是否出现异常;
[0054]
若所述应用功能的执行状态出现异常,则判定所述在线升级后的目标应用未通过稳定性测试;
[0055]
若所述应用功能的执行状态未出现异常,则判定所述在线升级后的目标应用通过稳定性测试。
[0056]
可选地,所述若所述应用功能的执行状态出现异常,则判定所述在线升级后的目标应用未通过稳定性测试之后,还包括:
[0057]
生成并显示应用测试失败信息;
[0058]
确定所述升级文件的下载策略,以根据所述下载策略删除所述目标应用的升级包,或回退至旧版本的目标应用。
[0059]
此外,为实现上述目的,本发明还提供一种应用在线升级设备,所述应用在线升级设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的应用在线升级程序,其中所述应用在线升级程序被所述处理器执行时,实现如上述的应用在线升级方法的步骤。
[0060]
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有应用在线升级程序,其中所述应用在线升级程序被处理器执行时,实现如上述的应用在线升级方法的步骤。
[0061]
本发明提供一种应用在线升级方法、装置、设备及计算机可读存储介质,所述应用在线升级方法通过对目标应用的升级文件进行校验,并在校验通过时才会进入后续升级流程,从而保证了升级文件的安全性与正确性;根据xml格式的安装配置文件来对目标应用进行在线升级,避免了用户根据接口文档进行升级程序开发的繁琐过程;通过在升级之后还对目标应用进行稳定性测试,并仅在目标应用通过稳定性测试后才可判定在线升级完成,弥补了目前市场上的物联网在线升级系统对升级成功的定义仅仅在于升级过程是否顺利,并没有对升级后的应用进行实地测试的缺陷,保证了目标应用升级后的可用性,减少了升级后设备变砖的可能,从而解决了现有的物联网应用的在线升级方法的可靠性不佳的技术问题。
附图说明
[0062]
图1为本发明实施例方案中涉及的应用在线升级设备的硬件结构示意图;
[0063]
图2为本发明应用在线升级方法第一实施例的流程示意图;
[0064]
图3为本发明应用在线升级装置的功能模块示意图。
[0065]
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
[0066]
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0067]
本发明实施例涉及的应用在线升级方法主要应用于应用在线升级设备,该应用在线升级设备可以是pc、便携计算机、移动终端等具有显示和处理功能的设备。
[0068]
参照图1,图1为本发明实施例方案中涉及的应用在线升级设备的硬件结构示意图。本发明实施例中,应用在线升级设备可以包括处理器1001(例如cpu),通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信;用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard);网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口);存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器,存储器1005可选的还可以是独立于前述处理器1001的存储装置。
[0069]
本领域技术人员可以理解,图1中示出的硬件结构并不构成对应用在线升级设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0070]
继续参照图1,图1中作为一种计算机可读存储介质的存储器1005可以包括操作系
统、网络通信模块以及应用在线升级程序。
[0071]
在图1中,网络通信模块主要用于连接服务器,与服务器进行数据通信;而处理器1001可以调用存储器1005中存储的应用在线升级程序,并执行本发明实施例提供的应用在线升级方法。
[0072]
基于上述硬件结构,提出本发明应用在线升级方法的各个实施例。
[0073]
近年来,人类的生活与物联网的关系越来越密切。从目前市场的发展形势上看,物联网中诸多如arm linux等中的应用程序,都是用户很难或无法操作访问的。现代软件快速的生命周期就要求物联网软件有一套完善的在线升级系统。
[0074]
目前市场上已经出现部分物联网在线升级产品,一般都以接口的形式向客户提供服务,支持多种下载和安装策略,有较强的数据加密能力,提供断点续传、断电保护等异常处理机制,但仍然存在缺点。一方面,这些产品以接口形式提供服务,就要求客户在拿到产品后,需要首先理解接口文档,然后根据自身应用需求和服务器需求进行升级程序开发,这样一来就会浪费了大量的时间和精力;另一方面,这些产品过分注重升级过程中的异常处理,在应用升级后的稳定性测试上支持较少,增加了升级后设备变砖的可能。因此,上述种种情况均反映出现有的物联网应用的在线升级方法的可靠性不佳的问题。
[0075]
为解决上述问题,本发明提供一种应用在线升级方法,即通过对目标应用的升级文件进行校验,并在校验通过时才会进入后续升级流程,从而保证了升级文件的安全性与正确性;根据xml格式的安装配置文件来对目标应用进行在线升级,使得避免了用户根据接口文档进行升级程序开发的繁琐过程;通过在升级之后还对目标应用进行稳定性测试,并仅在目标应用通过稳定性测试后才可判定在线升级完成,弥补了目前市场上的物联网在线升级系统对升级成功的定义仅仅在于升级过程是否顺利,并没有对升级后的应用进行实地测试的缺陷,保证了目标应用升级后的可用性,减少了应用升级后设备变砖的可能,从而解决了现有的物联网应用的在线升级方法的可靠性不佳的技术问题。
[0076]
参照图2,图2为本发明应用在线升级方法第一实施例的流程示意图。
[0077]
本发明第一实施例提供一种应用在线升级方法,所述应用在线升级方法包括以下步骤:
[0078]
步骤s10,接收所述客户端上目标应用的升级文件与可扩展标记语言格式的安装配置文件,并对所述升级文件进行校验;
[0079]
在本实施例中,本方法应用于客户端,客户端上装有需要在线升级的应用软件。升级服务器用于对客户端上的应用软件进行在线升级。升级文件通常为包含有安装包以及其它下载安装相关信息的文件。xml安装配置文件为可扩展标记语言(xml,extensible markup language)文件格式的配置文件。需要说明的是,目前市场上的物联网软件的在线升级系统大多以接口形式提供给用户,用户需要根据接口文档进行升级程序开发,过程十分繁琐。本方法则提供给用户完成的升级服务器端与客户端,用户在升级程序部署和针对某一次具体升级的部署时都只需要进行xml配置文件的修改即可,与应用程序编程接口(api,application programming interface)相比较,理解与使用都会方便得多。针对升级程序的部署需要以下步骤:客户端需要部署升级需求检查请求的访问地址、端口号、访问参数,存放临时文件的路径等。服务器端需要配置升级需求检查应答的数据项如是否需要升级、下载和安装策略、下载地址等。针对某一次具体升级需要以下步骤:服务器端只需要部
署最新版本的应用路径和可选的升级设备群即可。
[0080]
具体地,若用户此时需要对客户端上的某一物联网应用程序进行在线升级,向客户端发出的在线升级该应用程序的指令,客户端则需要先从升级服务器端获取到该应用程序的升级文件与xml文件格式的安装配置文件,再对升级文件进行校验,以验证该升级文件的正确性与可用性。
[0081]
步骤s20,在所述升级文件通过校验时,根据所述安装配置文件将所述升级文件在所述客户端上进行本地安装,以在线升级所述目标应用,以在线升级所述目标应用;
[0082]
步骤s30,对在线升级后的目标应用进行稳定性测试。
[0083]
在本实施例中,xml安装配置文件中通常都包含有下载策略、安装策略与下载地址等信息,客户端在进行应用在线升级时,需要安装这些信息来进行升级文件的安装。在客户端安装完成目标应用的升级文件之后,还需在对升级后的目标应用进行稳定性测试,真正运行目标应用并对其运行状态做记录,以最大限度保证升级后的应用是可使用的。只有在升级后的目标应用通过了稳定性测试时,才可判定目标应用的在线升级顺利完成。
[0084]
作为一具体实施例,物联网应用程序的在线升级按照以下步骤进行。
[0085]
第一步,升级服务器发布最新版本应用。本步骤需要部署应用最新版本路径和可选的升级设备群。
[0086]
第二步,客户端发送升级需求检查请求。客户端根据本地配置文件采集当前应用信息以及其它相关信息发送给服务器。
[0087]
第三步,升级服务器计算升级需求。升级服务器端接收到客户端的升级需求检查请求后,对比设备应用信息和最新版本应用信息,结合客户端群组信息进行升级需求检查,判断当前的客户端是否在可选的升级设备群内,以及是否需要对目标应用进行版本更新。在判定需要对客户端上的目标应用进行在线升级后,升级服务器还需要计算下载和安装策略、下载地址与升级包校验码等信息。
[0088]
第四步,升级服务器应答客户端升级需求。升级服务器将升级需求检查结果返回给客户端,若需要升级,还笑将下载和安装策略、下载地址、升级包校验码等信息一并下发。
[0089]
第五步,客户端判断是否需要对目标应用进行升级。客户端若判定需要对目标应用进行升级,则进行下载流程;若否,则退出升级程序。
[0090]
第六步,客户端请求升级文件。客户端根据下载策略向服务器氢气升级文件,下载策略可能是整包下载或差分下载。
[0091]
第七步,升级服务器下发升级文件。升级服务器根据上一步请求向客户端提供升级文件。
[0092]
第八步,客户端校验升级文件。客户端在完成对升级文件的下载后,本地计算校验码并将其与升级服务器所计算出的校验码进行比较,验证不通过则重新下载。
[0093]
第九步,升级文件安装。客户端根据安装策略安装升级文件。安装策略可选的有立即安装、定时安装、重启安装、闲暇时安装等。安装时首先解压下载的升级文件,然后根据xml安装配置文件对其进行安装。xml安装配置文件是升级服务器在下发升级文件前自动计算生成的。
[0094]
第十步,应用测试。测试升级后的应用是否可以正常运行是防止物联网设备变砖的重要方法。应用测试时如果一段时间后未发现异常,则在升级配置中记录下来;如果应用
未正常运行指定时间时就崩溃,则不会记录。
[0095]
第十一步,向升级服务器发送升级结果。升级服务器访问应用测试配置项后会获得测试结果,若应用正常运行,客户端则回复升级服务器升级完毕;若应用运行异常,客户端则回复升级服务器升级失败。
[0096]
第十二步,升级服务器接收升级结果。升级服务器接收客户端发送的升级结果,若升级成功则更新客户端的目标应用信息。
[0097]
在本实施例中,本发明通过接收所述客户端上目标应用的升级文件与可扩展标记语言格式的安装配置文件,并对所述升级文件进行校验;在所述升级文件通过校验时,根据所述安装配置文件将所述升级文件在所述客户端上进行本地安装,以在线升级所述目标应用,以在线升级所述目标应用;对在线升级后的目标应用进行稳定性测试。通过上述方式,本发明通过对目标应用的升级文件进行校验,并在校验通过时才会进入后续升级流程,从而保证了升级文件的安全性与正确性;根据xml格式的安装配置文件来对目标应用进行在线升级,使得避免了用户根据接口文档进行升级程序开发的繁琐过程;通过在升级之后还对目标应用进行稳定性测试,并仅在目标应用通过稳定性测试后才可判定在线升级完成,弥补了目前市场上的物联网在线升级系统对升级成功的定义仅仅在于升级过程是否顺利,并没有对升级后的应用进行实地测试的缺陷,保证了目标应用升级后的可用性,减少了应用升级后设备变砖的可能,从而解决了现有的物联网应用的在线升级方法的可靠性不佳的技术问题。
[0098]
进一步地,基于上述图2所示的第一实施例,提出本发明应用在线升级方法的第二实施例。本实施例中,所述接收所述客户端上目标应用的升级文件与可扩展标记语言格式的安装配置文件之前,还包括:
[0099]
获取所述目标应用的设备应用信息,并向升级服务器发送包含所述设备应用信息的升级需求检查请求,以供所述升级服务器根据所述升级需求请求确定所述目标应用的升级需求并根据所述升级需求对预设的可扩展标记语言格式的原始配置文件进行更改,以作为所述安装配置文件;
[0100]
所述接收所述客户端上目标应用的升级文件与可扩展标记语言格式的安装配置文件的步骤包括:
[0101]
接收由所述升级服务器发送的所述安装配置文件,并基于所述安装配置文件向所述升级服务器请求所述升级文件,以在所述升级服务器发送所述升级文件时进行接收,其中,所述安装配置文件中包含下载策略、安装策略、下载地址和/或升级包校验码。
[0102]
在本实施例中,需要说明的是,客户端在部署升级程序时,需要部署升级需求检查请求的访问地址、端口号、访问参数、存放临时文件的路径等信息;升级服务器端需要配置升级需求检查应答的数据项是否需要升级、下载和安装策略、下载地址等。原始xml配置文件为包含有默认下载策略、安装策略等安装配置信息的配置文件。
[0103]
客户端需要根据本地配置文件采集设备应用信息如应用名称、当前版本等信息,将该设备应用信息作为升级需求检查请求的主体信息发送至升级客户端。升级客户端在接收到该请求后,可通过判断目标应用是否属于预设可选的升级设备群中,若目标应用在当前可选的升级设备群中,则进一步判断客户端当前所安装的目标应用的版本是否较之最新版本为旧版本,若升级服务器判定客户端当前所安装的目标应用的版本为旧版本,则确定
客户端需要对目标应用在线升级,并确定出本次升级任务中的下载策略、安装策略、下载地址、升级包校验码等,使用其对预设的xml安装配置文件进行更改,得到目标xml安装配置文件,其中,下载策略可包括整包下载与差分下载,安装策略可包括立即安装、定时安装、重启安装与闲暇时安装,升级服务器在得到最新的目标xml安装配置文件后,则可将其发送给客户端;若升级服务器判定目标应用不在当前可选的升级设备群中,或是目标应用虽然在当前可选的升级设备群中,但是客户端当前所安装的版本已经是最新版本,则退出当前升级过程,生成并输出无需升级信息。
[0104]
进一步地,所述获取所述目标应用的设备应用信息之前,还包括:
[0105]
在接收到在线升级指令时,基于所述在线升级指令确定所述目标应用,并向所述升级服务器发送与所述目标应用相关的请求信息问询指令;
[0106]
获取所述升级服务器对于所述请求信息问询指令的应答信息,以基于所述应答信息创建所述升级需求检查请求,其中,所述应答信息包括请求访问地址、请求访问端口号和/或请求访问参数。
[0107]
在本实施例中,在线升级指令即可以是人为发起,也可以是客户端根据预设程序自行发起,本实施例对此不做限定。具体地,用户在客户端上发起针对某一物联网应用程序的在线升级指令,客户端接收到这一指令,确定出当前需要升级的目标应用。客户端在确定当前需要对目标应用进行在线升级时,向升级客户端发送用于询问升级需求检查请求相关信息的请求信息问询指令。升级服务器在接收到此问询指令后,针对当前的目标应用确定客户端需要部署升级需求检查请求的默认访问地址、端口号、访问参数、存放临时文件路径等信息,并以此回复给客户端。
[0108]
另外,用户也可根据实际需求对访问地址、端口号、访问参数与存放临时文件路径等信息在xml文件中进行更改,以完成对客户端升级程序的配置,而不采用升级客户端所发送的默认信息。
[0109]
进一步地,所述对所述升级文件进行校验包括:
[0110]
根据所述目标应用生成本地校验码,并获取所述安装配置文件中的升级包校验码,其中,所述本地校验码存储于区块链中;
[0111]
判断所述升级包校验码与所述本地校验码是否匹配;
[0112]
若所述升级包校验码与所述本地校验码匹配,则判定所述升级文件通过校验;
[0113]
若升级包校验码与所述本地校验码不匹配,则判定所述升级文件未通过检验。
[0114]
在本实施例中,本地校验码由客户端根据目标应用自动生成,升级包校验码由升级客户端根据目标应用自动生成。客户端在自动计算生成本地校验码后,将其与升级客户端所发送的升级包校验码进行匹配。若客户端判定升级包校验码与本地校验码匹配,则判定当前的升级文件通过校验;若客户端判定升级包校验码与本地校验码不匹配,则判定当前的升级文件未通过校验,不可以此升级文件对目标应用进行升级,在实际应用中可进行单次匹配,也可进行多次匹配。
[0115]
需要强调的是,为进一步保证上述本地校验码的私密和安全性,上述本地校验码还可以存储于一区块链的节点中。
[0116]
进一步地,所述若升级包校验码与所述本地校验码不匹配,则判定所述升级文件未通过检验之后,还包括:
[0117]
将所述升级包校验码与所述本地校验码不匹配的事件记为一次丢失;
[0118]
在检测到累计的丢失次数超出预设次数阈值时,退出当前在线升级过程,生成并显示校验失败消息。
[0119]
在本实施例中,对升级包校验码与本地校验码进行多次匹配,本地校验码即可以在一次匹配不成功时由客户端重新生成,也可多次匹配均采用同一本地校验码。客户端将每一次升级包校验码与本地校验码不匹配的事件记为一次丢失,一次不成功便进行下一次匹配。直至累计的丢失次数超出预设的次数阈值,则直接退出当前升级过程,生成并显示校验失败信息以提示用户。预设次数阈值可根据实际需求灵活设置,本实施例对此不做具体限定。
[0120]
进一步地,由于目前市场上的物联网软件在线升级系统大多以接口形式提供给客户,用户需要根据接口文档进行升级程序开发,过程繁琐,而本方法通过自动对原始xml配置文件进行适应性修改,并依照修改后的xml配置文件进行安装,使得减轻了用户在升级时的工作量。另外,xml格式的文件理解难度比较低,用户也可根据实际需求对xml文件进行更改,简单易用;通过匹配客户端与升级服务器端分别生成的校验码,使得能够快速便捷地对升级文件进行校验;通过累计不匹配次数,直至其满足相应标准时退出当前升级过程,使得无需在失败的升级过程中耗费时间。
[0121]
进一步地,基于上述图2所示的第一实施例,提出本发明应用在线升级方法的第三实施例。本实施例中,所述对在线升级后的目标应用进行稳定性测试包括:
[0122]
在预设时长内循环执行所述在线升级后的目标应用的应用功能,并记录所述应用功能的执行状态;
[0123]
判断所述应用功能的执行状态是否出现异常;
[0124]
若所述应用功能的执行状态出现异常,则判定所述在线升级后的目标应用未通过稳定性测试;
[0125]
若所述应用功能的执行状态未出现异常,则判定所述在线升级后的目标应用通过稳定性测试。
[0126]
在本实施例中,预设时长可根据实际需求灵活设置,本实施例对此不做具体限定。测试升级后的应用是否可以正常运行是防止物联网设备变砖的重要方法。物联网设备中的程序一般都是通过循环在执行某些个功能。客户端在预设时长内循环执行在线升级后的目标应用的应用功能,记录下每一次的执行状态,判断预设时长内所记录的执行状态信息是否出现异常。若客户端检测到执行状态出现异常,则判定在线升级后的目标应用未通过稳定测试;若客户端检测到执行状态没有出现异常,则判定在线升级后的目标应用通过稳定测试,当前对于目标应用的在线升级顺利结束。
[0127]
进一步地,所述若所述应用功能的执行状态出现异常,则判定所述在线升级后的目标应用未通过稳定性测试之后,还包括:
[0128]
生成并显示应用测试失败信息;
[0129]
确定所述升级文件的下载策略,以根据所述下载策略删除所述目标应用的升级包,或回退至旧版本的目标应用。
[0130]
在本实施例中,客户端在判定在线升级后的目标应用未通过稳定性测试后,则生成应用测试失败的提示信息并显示,以提示用户升级后的目标应用未通过稳定性测试,并
根据先前的下载策略选择对应的还原操作。具体地,若先前下载升级文件采用的是整包下载方式,则此时应删除新安装的应用;若先前下载升级文件采用的是差分下载方式,则此时应回退到旧版本的目标应用。
[0131]
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
[0132]
进一步地,通过目前市场上的物联网在线升级系统对升级成功的定义仅仅在于升级过程是否顺利,并没有对升级后的应用进行实地测试。本发明在确保升级过程完整的基础上,增加了测试应用这一流程,能更切身实地得说明升级后应用的可用性,减少了设备变砖的可能。
[0133]
此外,如图3所示,为实现上述目的,本发明还提供一种应用在线升级装置,所述应用在线升级装置包括:
[0134]
文件校验模块10,用于接收所述客户端上目标应用的升级文件与可扩展标记语言格式的安装配置文件,并对所述升级文件进行校验;
[0135]
在线升级模块20,用于在所述升级文件通过校验时,根据所述安装配置文件将所述升级文件在所述客户端上进行本地安装,以在线升级所述目标应用,以在线升级所述目标应用;
[0136]
应用测试模块30,用于对在线升级后的目标应用进行稳定性测试。
[0137]
可选地,所述应用在线升级装置还包括:
[0138]
请求发送模块,用于获取所述目标应用的设备应用信息,并向升级服务器发送包含所述设备应用信息的升级需求检查请求,以供所述升级服务器根据所述升级需求请求确定所述目标应用的升级需求并根据所述升级需求对预设的可扩展标记语言格式的原始配置文件进行更改,以作为所述安装配置文件;
[0139]
所述文件校验模块10包括:
[0140]
配置文件接收单元,用于接收由所述升级服务器发送的所述安装配置文件,并基于所述安装配置文件向所述升级服务器请求所述升级文件,以在所述升级服务器发送所述升级文件时进行接收,其中,所述安装配置文件中包含下载策略、安装策略、下载地址和/或升级包校验码。
[0141]
可选地,所述应用在线升级装置还包括:
[0142]
问询发送模块,用于在接收到在线升级指令时,基于所述在线升级指令确定所述目标应用,并向所述升级服务器发送与所述目标应用相关的请求信息问询指令;
[0143]
应答信息获取模块,用于获取所述升级服务器对于所述请求信息问询指令的应答信息,以基于所述应答信息创建所述升级需求检查请求,其中,所述应答信息包括请求访问地址、请求访问端口号和/或请求访问参数。
[0144]
可选地,所述文件校验模块10还包括:
[0145]
校验码获取单元,用于根据所述目标应用生成本地校验码,并获取所述安装配置文件中的升级包校验码,其中,所述本地校验码存储于区块链中;
[0146]
匹配判断单元,用于判断所述升级包校验码与所述本地校验码是否匹配;
[0147]
第一匹配单元,用于若所述升级包校验码与所述本地校验码匹配,则判定所述升级文件通过校验;
[0148]
第二匹配单元,用于若升级包校验码与所述本地校验码不匹配,则判定所述升级文件未通过检验。
[0149]
可选地,所述第二匹配单元还用于:
[0150]
将所述升级包校验码与所述本地校验码不匹配的事件记为一次丢失;
[0151]
在检测到累计的丢失次数超出预设次数阈值时,退出当前在线升级过程,生成并显示校验失败消息。
[0152]
可选地,所述应用测试模块30包括:
[0153]
状态记录单元,用于在预设时长内循环执行所述在线升级后的目标应用的应用功能,并记录所述应用功能的执行状态;
[0154]
异常判断单元,用于判断所述应用功能的执行状态是否出现异常;
[0155]
第一异常单元,用于若所述应用功能的执行状态出现异常,则判定所述在线升级后的目标应用未通过稳定性测试;
[0156]
第二异常单元,用于若所述应用功能的执行状态未出现异常,则判定所述在线升级后的目标应用通过稳定性测试。
[0157]
可选地,所述应用测试模块30还包括:
[0158]
测试信息显示单元,用于生成并显示应用测试失败信息;
[0159]
下载还原单元,用于确定所述升级文件的下载策略,以根据所述下载策略删除所述目标应用的升级包,或回退至旧版本的目标应用。
[0160]
本发明还提供一种应用在线升级设备。
[0161]
所述应用在线升级设备包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的应用在线升级程序,其中所述应用在线升级程序被所述处理器执行时,实现如上所述的应用在线升级方法的步骤。
[0162]
其中,所述应用在线升级程序被执行时所实现的方法可参照本发明应用在线升级方法的各个实施例,此处不再赘述。
[0163]
此外,本发明实施例还提供一种计算机可读存储介质。
[0164]
本发明计算机可读存储介质上存储有应用在线升级程序,其中所述应用在线升级程序被处理器执行时,实现如上述的应用在线升级方法的步骤。
[0165]
其中,应用在线升级程序被执行时所实现的方法可参照本发明应用在线升级方法的各个实施例,此处不再赘述。
[0166]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
[0167]
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0168]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方
法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
[0169]
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。