应用升级方法、装置、计算机设备以及存储介质与流程

文档序号:18301031发布日期:2019-07-31 10:07阅读:178来源:国知局
应用升级方法、装置、计算机设备以及存储介质与流程

本申请涉及应用测试技术领域,尤其涉及一种应用升级方法、装置、计算机设备以及存储介质。



背景技术:

在计算机设备中的应用存在版本更新时,计算机设备需要从服务器端获取更新该应用的版本更新数据(如,补丁包或者新版本的安装包等),并利用该版本更新数据更新应用的版本,以完成应用的升级。

然而,计算机设备在对应用进行升级的过程中,经常会由于版本更新数据存在漏洞或者其他原因,而导致应用升级失败,而计算机设备中的应用一旦升级失败,计算机设备就可能无法正常运行应用,从而使得计算机设备升级应用的稳定性和可靠性较差。



技术实现要素:

有鉴于此,本申请提供了一种应用升级方法、装置、计算机设备以及存储介质,以提高应用升级的稳定性和可靠性,并降低由于应用升级失败,而导致应用无法正常运行的情况。

为实现上述目的,一方面,本申请提供了一种应用升级方法,应用于计算机设备,所述计算机设备中运行有至少一个应用,所述应用具有主进程和升级进程,所述主进程用于实现所述应用所提供的服务,所述方法包括:

当满足所述应用的升级条件时,所述应用的升级进程从所述版本升级服务器获取所述主进程的新版本数据,所述主进程的新版本数据为用于升级所述主进程的数据;

所述升级进程利用所述主进程的新版本数据,升级所述主进程;

当升级进程检测到所述主进程升级结束时,重启所述主进程,以维持所述主进程的运行,其中,所述主进程升级结束包括:主进程升级完成或者主进程出现升级异常。

在一种可能的实现方式中,在所述应用的升级进程从所述版本升级服务器获取所述主进程的新版本数据之前,还可以包括:

所述主进程检测所述版本升级服务器中是否存在所述升级进程的新版本数据;

当所述版本升级服务器中存在所述升级进程的新版本数据时,所述主进程从所述版本升级服务器中获取所述升级进程的新版本数据;

所述主进程利用所述升级进程的新版本数据,升级所述升级进程;

当主进程检测到所述升级进程升级结束时,重启所述升级进程,以维持所述升级进程的运行,其中,所述升级进程升级结束包括:升级进程升级完成或者升级进程出现升级异常;

所述应用的升级进程从所述版本升级服务器获取所述主进程的新版本数据,包括:

当所述版本升级服务器中不存在所述主进程的新版本数据或者所述升级进程升级结束,所述升级进程从所述版本升级服务器获取所述主进程的新版本数据。

在一种可能的实现方式中,该方法还可以包括:

当不满足所述应用的升级条件时,在所述应用运行过程中,所述主进程监控所述升级进程的运行状态,且所述升级进程监控所述主进程的运行状态;

当所述主进程检测到所述升级进程未处于运行状态时,启动所述升级进程,以维持所述升级进程的运行;

当所述升级进程检测到所述主进程未处于运行状态时,启动所述主进程,以维持所述主进程的运行。

又一方面,本申请还提供了一种应用升级装置,应用于计算机设备,所述计算机设备中运行有至少一个应用,所述应用具有主进程和升级进程,所述主进程用于实现所述应用所提供的服务,所述装置包括:

第一获取单元,用于当满足所述应用的升级条件时,通过所述应用的升级进程从所述版本升级服务器获取所述主进程的新版本数据,所述主进程的新版本数据为用于升级所述主进程的数据;

第一升级单元,用于通过所述升级进程利用所述主进程的新版本数据,升级所述主进程;

第一重启单元,用于当升级进程检测到所述主进程升级结束时,重启所述主进程,以维持所述主进程的运行,其中,所述主进程升级结束包括:主进程升级完成或者主进程出现升级异常。

又一方面,本申请还提供了一种计算机设备,所述计算机设备中运行有至少一个应用,所述应用具有主进程和升级进程,所述主进程用于实现所述应用所提供的服务,所述计算机设备包括:

处理器和存储器;

其中,所述处理器用于执行所述存储器中存储的程序;

所述存储器用于存储程序,所述程序至少用于:

当满足所述应用的升级条件时,所述应用的升级进程从所述版本升级服务器获取所述主进程的新版本数据,所述主进程的新版本数据为用于升级所述主进程的数据;

所述升级进程利用所述主进程的新版本数据,升级所述主进程;

当升级进程检测到所述主进程升级结束时,重启所述主进程,以维持所述主进程的运行,其中,所述主进程升级结束包括:主进程升级完成或者主进程出现升级异常。

又一方面,本申请还提供了一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,实现如上所述的应用升级方法。

可见,在本申请实施例中,计算机设备中运行有的应用除了具有实现应用所提供的服务的主进程之外,还具有用于控制主进程升级的升级进程,这样,当满足应用的升级条件时,应用的升级进程会从版本升级服务器获取该主进程的新版本数据,并利用主进程的新版本数据,升级该主进程;而当升级进程检测到主进程升级完成或者主进程出现升级异常,升级进程会重启主进程,以维持主进程的运行,从而可以减少由于应用升级失败,而导致应用无法正常运行的情况,提高了应用升级的稳定性和可靠性。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面

描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1示出了本申请实施例中一种应用升级方法的一种应用场景的组成结构示意图;

图2示出了本申请实施例中一种应用升级方法所适用的计算机设备的一种组成结构示意图;

图3示出了本申请实施例中一种应用升级方法的一种流程示意图;

图4示出了本申请实施例中一种应用升级方法的又一种流程示意图;

图5示出了本申请实施例中一种应用升级装置一个实施例的组成结构示意图;

图6示出了本申请实施例中一种应用升级装置又一个实施例的组成结构示意图。

具体实施方式

本申请的应用升级方法可以应用于对计算机设备中的应用进行升级,以提高应用升级的可靠性和稳定性。

为了便于理解,先对本申请实施例的应用升级方法所适用的应用场景进行介绍。如图1,在图1所示的应用场景中可以包括:计算机设备101以及版本升级服务器102。

其中,该版本升级服务器102,用于存储一个或多个应用升级所需的版本升级数据;接收计算机设备发送的版本升级请求,并向计算机设备返回该版本升级请求所请求的新版本数据。

其中,考虑到应用升级的方式可以包括全量升级和增量升级等,该版本升级服务器102中存储的应用的新版本数据可以为升级应用所需的应用安装包,也可以是应用升级所需的补丁包(如,增量补丁包等)等。

其中,该计算机设备102可以从版本升级服务器获取升级应用所需的新版本数据,如,该新版本数据可以应用的新版本安装包,或者是应用的增量安装包等。

该计算机设备101可以为平板电脑、台式电脑。考虑到对于一些服务器等计算机设备中应用一旦升级失败,则该计算机设备有可能无法正常向外提供服务器,比如,云主机(也可以称为云服务器)等一旦存在应用的升级失败,则可能无法正常运行相应的应用,进而无法提供存储或者计算等服务,因此,本申请实施例的方案尤其适用于云主机等服务器。

在本申请实施例中,该计算机设备运行有至少一个应用,且该应用中具有主进程和升级进程,主进程用于实现该应用所提供的服务,升级进程可以维护主进程的运行状态,并实现对主进程的升级。

为了便于理解,参见图2,其示出了本申请实施例的应用升级方法所适用的计算机设备的一种组成结构示意图。在图2中,该计算机设备200可以包括:处理器201、存储器202、通信接口203、输入单元204和显示器205和通信总线206。

处理器201、存储器202、通信接口203、输入单元204、显示器205、均通过通信总线206完成相互间的通信。

在本申请实施例中,该处理器201,可以为中央处理器(centralprocessingunit,cpu),特定应用集成电路(application-specificintegratedcircuit,asic),数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件等。

该处理器可以调用存储器202中存储的程序,具体的,可以处理器可以执行以下图3以及图4中计算机设备侧所执行的操作。

存储器202中用于存放一个或者一个以上程序,程序可以包括程序代码,所述程序代码包括计算机操作指令,在本申请实施例中,该存储器中至少存储有用于实现以下功能的程序:

当满足所述应用的升级条件时,所述应用的升级进程从所述版本升级服务器获取所述主进程的新版本数据,所述主进程的新版本数据为用于升级所述主进程的数据;

所述升级进程利用所述主进程的新版本数据,升级所述主进程;

当升级进程检测到所述主进程升级结束时,重启所述主进程,以维持所述主进程的运行,其中,所述主进程升级结束包括:主进程升级完成或者主进程出现升级异常。

在一种可能的实现方式中,该存储器202可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、以及至少一个功能(比如声音播放功能、图像播放功能等)所需的应用程序等;存储数据区可存储根据计算机的使用过程中所创建的数据,比如,用户数据、用户访问数据以及音频数据等等。

此外,存储器202可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

该通信接口203可以为通信模块的接口,如gsm模块的接口。

本申请还可以包括显示器204和输入单元205,该显示器204包括显示面板,如触摸显示面板等;该输入单元可以触摸感应单元、键盘等等。

当然,图2所示的计算机设备结构并不构成对本申请实施例中计算机设备的限定,在实际应用中计算机设备可以包括比图2所示的更多或更少的部件,或者组合某些部件。

结合以上共性,对本申请实施例的一种应用升级方法进行详细介绍。

如,参见图3,其示出了本申请一种应用升级方法一个实施例的流程示意图,本实施例的方法可以包括:

s301,计算机设备运行应用中的主进程和升级进程。

在本申请实施例中,应用除了具备执行该应用所提供的功能或者服务的主进程之外,还包括一个用于对该主进程进行升级的升级进程。

具体的,在应用的程序文件包中包括该主进程的程序文件和该升级进程的程序文件,这样,应用启动时,会运行主进程的程序文件中的程序代码,以使得主进程处于运行状态;同时,应用会运行该升级进程的程序文件中的程序代码,以使得升级进程处于运行状态。

在本申请实施例中,在应用运行过程中,主进程和升级进行会相互监控对方的运行状态,并在对方出现运行异常时,则会重新唤醒对方,以使得主进程和升级进程一直处于稳定的运行状态。具体的,在应用运行过程中,主进程用于监控升级进程的运行状态,并当检测到升级进程未处于运行状态时,启动该升级进程;相应的,升级进程用于监控主进程的运行状态,并当检测到主进程未处于运行状态时,启动该主进程。

需要说明的是,主进程和升级进程之间的相互监控的关系不适用于应用升级的过程。

其中,该步骤s301并不属于应用升级的过程,该步骤s301目的是为了便于清楚完整的理解应用运行以及升级的整个过程,在应用升级时,无需执行该步骤s301。

s302,当满足应用的升级条件时,主进程检测版本升级服务器中是否存在该升级进程的新版本数据,如果是,则执行步骤s303;如果否,则执行步骤s307。

其中,升级进程的新版本数据为用于升级该升级进程的数据,如,该新版本数据可以为升级进程最新版本的安装包,或者是,升级进程的当前版本与该新版本安装包的差分包等。

如果该版本升级服务器中存在升级进程的新版本数据,则说明当前存在新版本的升级进程,该升级进程可以被升级。

其中,满足应用升级条件的情况可以有多种,如,在一种可能的情况中,可以预先设定升级检测周期,当主进程按照该升级检测周期,确定出当前到达升级检测时刻时,则确定当前满足应用升级条件,这样,主进程会查询版本升级服务器中是否存在升级进程的新版本数据。

又如,在又一种可能的情况中,考虑到计算机设备中安装的应用需要与该应用对应的应用服务器进行数据交互,因此,用户可向该应用对应的应用服务器发出对该应用的升级请求,并由该应用服务器向该计算机设备发送对该应用的升级请求,相应的,在应用接收到升级请求时,则确定满足应用升级条件。

当然,在实际应用中,满足应用升级条件的情况还可以有其他可能,在本申请不加以限制。

s303,主进程结束该升级进程的运行。

其中,主进程结束该升级进程的运行也就是俗称的关闭该升级进程,以使得升级进程处于未运行状态。

可以理解的是,为了保证升级进程的可靠升级,在对升级进程升级之前,主进程会结束该升级进程的运行,以使得升级进程未处于运行状态。

需要说明的是,在应用运行过程中,如果应用不存在升级需求,则主进程和升级进程相互监控对方的运行,以使得主进程和升级进程之间具有相互守护的关系;但是在应用升级时,需要解除主进程和升级进程之间的守护关系。因此,在需要对升级进程升级时,主进程会关闭升级进程,以解除了升级进程对主进程的守护关系,在该种情况下,升级进程不会监控主进程的运行状态。

其中,为了能够区分出当前主进程和升级进程之间是否具有守护关系,在主进程确定出需要对升级进程升级时,如,检测到版本升级服务器中存在该升级进程的新版本数据时,主进程可以标注自身的状态为升级状态,在该种情况下,升级进程不会在监控主进程的运行状态,而主进程关闭升级进程之后,主进程会执行对该升级进程的升级。

可以理解的是,为了使得主进程能够更可靠的升级该升级进程之前,作为一种可选方式,主进程需要关闭该升级进程的运行。

s304,主进程从该版本升级服务器获取该升级进程的新版本数据。

如,根据该升级进程当前的版本标识,获取该升级进程的新版本对应的新版本数据。

需要说明的是,以上步骤s303和步骤s304的顺序并不限于图3所示,在实际应用中,也可以互换这两个步骤的顺序。

s305,主进程利用该升级进程的新版本数据,升级该升级进程。

如,新版本数据为升级进程的新版本的安装包时,主进程控制该新版本的安装包的安装,以升级该升级进程。

又如,该新版本数据为升级进程的新版本的差分包时,则根据该差分包以及计算机设备中该升级进程的当前版本的安装包,合成升级进程的新版本安装包,并利用新版本安装包升级该升级进程。

当然,主进程根据该升级进程的新版本数据升级该升级进程的方式还可以有其他可能,本申请对于升级进程的新版本数据升级该升级进程的具体过程不加以限制。

s306,当主进程完成该升级进程的升级或者检测到升级进程升级失败时,主进程启动该升级进程。

其中,完成升级进程的升级以及检测到升级进程升级失败均可以认为是升级进程的升级结束。

可以理解的是,为了后续能够对主进程进行升级,并使得升级进程可以守护该主进程,以维护主进程的可靠运行,在升级进程升级完成后,该主进程会重新启动升级后的该进程。

同时,如果由于升级进程的新版本数据存在漏洞等原因,而导致升级进程失败的情况中,主进程检测到升级进程升级失败,会通过回滚等方式,重新启动该升级进程,如,主进程存储升级进程升级前的运行状态数据,并利用升级前的运行状态数据,对升级进程进行回滚,以恢复升级进程升级前的运行状态。

s307,在主进程结束对升级进程的升级或者版本升级服务器中不存在升级进程的新版本数据时,升级进程检测版本升级服务器中是否存在该主进程的新版本数据,如果是,则执行步骤s308;如果否,则结束升级。

如,主进程重启升级进程之后,可以通知升级进程执行对主进程的升级流程;又如,升级进程检测到自身完成升级或者升级失败而被重启之后,可以执行对主进程的升级。

其中,主进程结束对升级进程的升级包括:主进程对升级进程升级成功,或者由于其他原因导致升级进程升级失败而结束升级等情况。

其中,主进程的新版本数据为用于升级该主进程的数据,如,主进程的新版本数据可以为主进程最新版本的安装包,或者是,主进程的当前版本与该新版本安装包的差分包等。

如果该版本升级服务器中存在主进程的新版本数据,则说明当前存在新版本的主进程,该主进程可以被升级。

s308,升级进程结束该主进程的运行。

其中,升级进程结束主进程的运行也就是俗称的关闭该主进程,以使得主进程处于未运行状态,从而保证主进程的可靠升级。

与步骤s303相似,在应用升级时,升级进程结束该主进程的运行,实际上就解除了主进程对升级进程的守护关系,在该种情况下,主进程不会监控升级进程的运行状态。

s309,升级进程从版本升级服务器获取该主进程的新版本数据。

s310,升级进程利用该主进程的新版本数据,升级该主进程。

如,主进程的新版本数据为主进程的新版本的安装包时,升级进程控制该新版本的安装包的安装,以升级该主进程。

当然,升级进程升级该主进程的方式可以有多种可能,本申请对此不加以限制。

s311,当升级进程完成该主进程的升级或者检测到主进程升级失败时,升级进程启动该主进程。

其中,完成主进程的升级以及检测到主进程升级失败均可以认为是主进程升级结束。其中,主进程完成升级时,升级进程可以直接启动主进程;而主进程升级失败时名,主进程可以利用升级进程升级前的数据,通过回滚等方式,重新启动该升级进程,以恢复升级进程升级前的运行状态。

其中,升级进程对主进程的升级过程,与主进程对升级进程升级的过程相似,因此,对升级进程对主进程的升级过程的介绍较为简单,具体可以参见主进程升级该升级进程的过程。

可以理解的是,为了使得计算机设备中的应用可以稳定运行,以实现该应用对应的功能,升级进程需要维护主进程的可靠运行,因此,在升级进程升级完成后,该主进程会重新启动升级后的该进程。同时,如果主进程升级失败,升级进程需要通过回滚等方式,重新启动该主进程,以保持应用的可靠运行,减少由于升级失败而导致应用无法正常运行的情况。

需要说明的是,本申请实施例是以先对升级进程进行升级为例,其目的是为了提高升级进程的可靠性,以便升级进程能够实现对主进程的可靠升级。但是可以理解的是,在升级主进程之前,也可以先检测是否需要对主进程进行升级,并主进程不需要升级或者完成主进程的升级之后,通过主进程对升级进程升级。

可见,在本申请实施例中,计算机设备的应用中除了包括主进程之外,还包括用于维护主进程升级的升级进程,这样,主进程和升级进程可以相互维护各自的运行状态,以保证主进程和升级进程均处于运行状态。

而且,在满足应用升级条件时,可以通过主进程和升级进程分别控制对方的升级,这样,在主进程升级完成以及主进程升级失败时,也可以通过升级进程重新启动该主进程的运行,从而可以保证应用的主进程处于稳定的运行状态,减少了由于升级失败等原因,而导致主进程无法正常运行等问题,保证了应用稳定、可靠的提供服务。

可以理解的是,考虑到计算机设备与版本升级服务器进行数据交互的过程中,如果计算机设备中应用的数据被篡改,或版本升级服务器返回的数据被窃取或者篡改等,就可能会影响计算机设备中应用的正常升级,甚至可能会导致应用无法正常运行,从而无法正常向外提供服务。如,以计算机设备为云主机为例,如果云主机中的应用的进程被恶意注入代码,则云主机从版本升级服务器获取到的新版本数据就可以会被窃取,甚至可能会在升级过程中,对云主机中存储的数据造成安全威胁。

为了降低计算机设备升级应用的过程中,由于计算机设备中应用的数据被篡改而出现的数据安全风险,本申请实施例中,在对计算机设备中应用进行升级之前,需要验证应用对应的程序数据是否存在篡改。具体的,应用的主进程对应用的升级进程升级之前,主进程需要验证升级进程的程序文件是否被篡改;相应的,升级进程升级主进程之前,升级进程也会验证主进程的程序文件是否被篡改。

同时,为了保证计算机设备与版本升级服务器之间数据交互的安全性,版本服务器与计算机设备传输的数据也会被加密。

下面以计算机设备为云主机为例,对本申请实施例的应用升级方法进行介绍。但是可以理解的是,对于计算机设备为云主机之外的情况,也同样适用于本实施例。如,参见图4,其示出了本申请一种应用升级方法一个实施例的流程示意图,本实施例的方法可以包括:

s401,云主机启动应用,运行应用中的主进程和升级进程。

s402,在应用运行过程中,主进程监控升级进程的运行状态,并当检测到升级进程未处于运行状态时,启动该升级进程。

s403,在应用运行过程中,升级进程监控主进程的运行状态,并当检测到主进程未处于运行状态时,启动该主进程。

其中,步骤s402和步骤s403仅仅是为了便于理解主进程和升级进程之间的守护关系,即相互监控并维护对方运行状态的关系。与前面图3实施例相似,这两个步骤仅仅是在应用升级之前会执行,而在应用升级过程中,主进程与升级进程之间的守护关系会解除。

可以理解的是,以上步骤s401到步骤s403并不属于应用升级过程,而仅仅是为了便于理解应用的升级而进行的介绍。

s404,当主进程按照预设的升级检测周期,确定当前到达升级检测时刻时,主进程从该应用的版本升级服务器中查询是否存在升级进程的新版本数据,如果是,则执行步骤s405,如果否,则返回执行该步骤s411。

可以理解的是,主进程按照预设升级检测周期触发升级检测仅仅是应用升级条件的一种方式,当应用升级条件为其他可能情况也同样适用于本实施例,具体可以参见前面实施例的相关介绍,在此不再赘述。

可以理解的是,为了保证版本升级服务器中数据的安全性,在云主机中该应用的主进程查询版本升级服务器是否存在该升级进程的新版本数据之前,该主进程还需要检测云主机是否已经登录该版本升级服务器。如果云主机尚未登录该版本升级服务器,则该主进程会向版本升级服务器发送登录请求,登录请求可以携带登录用的验证信息,如,该登录请求可以携带云主机的地址等标识信息。当版本升级服务器验证该登录请求携带的验证信息为有效信息时,则云主机可以登录该版本升级服务器。

在一种可能的实现方式中为了保证版本升级服务器中数据的安全性,该版本升级服务器还连接有鉴权服务器,如图1中示出的该鉴权服务器103。相应的,主进程请求登录版本升级服务器,可以是向版本升级服务器102相连的鉴权服务器103发送登录请求,而鉴权服务器103可以在接收到该登录请求之后,可以查询版本升级服务器中是否存在有该验证信息,如果是,则向主进程返回登录成功的响应,以完成主进程的登录。

可以理解的是,在云主机登录该版本升级服务器之后,为了保证后续数据交互的安全性,该版本升级服务器可以直接或者是通过该鉴权服务器向云主机发送一个客户端密钥,相应的,版本升级服务器会保存一个与该客户端密钥对应的服务器密钥。其中,该客户端密钥和服务器密钥可以互为一对数据加解密密钥,因此,该客户端密钥也可以称为解密密钥,而服务器密钥可以称为加密密钥。这样,版本升级服务器按照服务器密钥对数据加密后传输给云主机,而云主机可以按照该客户端密钥解密该版本升级服务器传输的加密数据。

进一步的,为了保证加解密密钥的安全性,在云主机登录版本升级服务器之后,在云主机与版本升级服务器建立连接的过程中,版本升级服务器可以每隔预设时长,定时更新加密密钥以及解密密钥,并将更新后的解密密钥发送给云主机。

s405,主进程关闭升级进程。

s406,主进程查询升级进程对应的第一程序文件的数据签名是否完整。

s407,当该第一程序文件的数据签名完整时,主进程从版本升级服务器获取经过加密的该升级进程的新版本数据。

其中,程序文件的数字签名用于验证程序文件是否被篡改,如果该程序文件的数字签名完整,则说明程序文件没有被篡改,在该种情况下,则说明该程序文件对应的进程中不存在恶意注入的代码,这样,对该程序文件的进程进行升级,不会存在升级数据被窃取等其他安全风险。

可以理解的是,为了便于与主进程的程序文件进行区分,在本实施例中,将升级进程的程序文件称为第一程序文件,并将主进程的程序文件称为第二程序文件。

可以理解的是,在实际应用中,还可以有其他检测该升级进程的程序文件是否被篡改的方式,对于其他方式也同样适用于本实施例,在此不加以限制。

可以理解的是,当该第一程序文件的数据签名不完整时,主进程可以结束对升级程序的升级。同时,为了保证升级进程的正常运行,主进程会重启该升级进程。当然,为了版本升级服务器获取到该升级进程的异常状态,该主进程还可以向该版本升级服务器上报异常通知。

s408,主进程依据升级版本服务器预先返回的解密密钥,对经过加密的升级进程的新版本数据进行解密,得到解密出的该升级进程的新版本数据。

该解密密钥为云主机登录该升级版本服务器之后,升级版本服务器为该云主机返回的密钥。具体可以参见步骤s404中的相关介绍,在此不再赘述。

s409,主进程利用解密出的该升级进程的新版本数据,对升级进程进行升级。

s410,当主进程完成该升级进程的升级或者升级进程存在升级异常时,则主进程重新启动该升级进程的运行。

其中,升级进程的升级异常可以包括升级进程的数据被篡改,而使得主进程中止对升级进程的升级,或者由于其他原因导致的升级进程升级失败等情况。

如,升级进程存在升级异常时,可以回滚该升级进程,以运行该升级进程;如,升级进程升级成功,则可以启动升级后的该升级进程。

s411,在主进程完成对升级进程的升级或者版本升级服务器中不存在升级进程的新版本数据时,升级进程检测版本升级服务器中是否存在该主进程的新版本数据,如果是,则执行步骤s412;如果否,则结束升级。

s412,升级进程关闭该主进程。

s413,升级进程检测主进程对应的第二程序文件的数据签名是否完整。

s414,当该第二程序文件的数据签名完整时,升级进程从版本升级服务器获取经过加密的该主进程的新版本数据。

s415,升级进程依据升级版本服务器预先返回的解密密钥,对经过加密的主进程的新版本数据进行解密,得到解密出的该主进程的新版本数据。

s416,升级进程利用解密出的该主进程的新版本数据,对主进程进行升级。

s417,当升级进程完成该主进程的升级或者主进程存在升级异常时,则重新启动该主进程的运行。

升级进程对主进程的升级过程可以参见主进程对该升级进程升级的相关介绍,在此不再赘述。

另一方面,本申请还提供了一种应用升级装置。

如,参见图5,其示出了本申请一种应用升级装置一个实施例的组成结构示意图,本实施例的装置可以应用于计算机设备,该计算机设备中运行有至少一个应用,且该应用具有主进程和升级进程,所述主进程用于实现所述应用所提供的服务,其中,该计算机设备的组成可以参见前面的相关介绍。

本实施例的装置可以包括:

第一获取单元501,用于当满足所述应用的升级条件时,通过所述应用的升级进程从所述版本升级服务器获取所述主进程的新版本数据,所述主进程的新版本数据为用于升级所述主进程的数据;

第一升级单元502,用于通过所述升级进程利用所述主进程的新版本数据,升级所述主进程;

第一重启单元503,用于当升级进程检测到所述主进程升级结束时,重启所述主进程,以维持所述主进程的运行,其中,所述主进程升级结束包括:主进程升级完成或者主进程出现升级异常。

在一种可能的实现方式中,所述第一获取单元,包括:

第二获取子单元,用于当满足应用升级条件时,通过所述应用的升级进程从所述版本服务器获取经过加密的主进程的新版本数据;

所述第一升级单元,包括:

第一升级子单元,用于通过所述升级进程获取预先存储的所述解密密钥,并利用所述解密密钥解密所述经过加密的主进程的新版本数据,得到所述主进程的新版本数据,其中,所述解密密钥为所述计算机设备登录所述版本升级服务器之后,由所述版本升级服务器返回的密钥。

在一种可能的实现方式中,该应用升级装置还包括:

完整性检测单元,用于在所述第一获取单元获取所述主进程的新版本数据之前,通过所述升级进程查询所述主进程的程序文件中的数据签名是否完整,并当所述主进程的程序文件中的数据签名完整时,触发执行所述第一获取单元的操作。

参见图6,其示出了本申请一种应用升级装置又一个实施例的组成结构示意图,本实施例的装置与图5的不同之处在于:

该装置还可以包括:

第一检测单元504,用于当满足所述应用的升级条件时,且在所述第一获取单元获取所述主进程的新版本数据之前,通过所述主进程检测所述版本升级服务器中是否存在所述升级进程的新版本数据;

第二获取单元505,用于当所述版本升级服务器中存在所述升级进程的新版本数据时,通过所述主进程从所述版本升级服务器中获取所述升级进程的新版本数据;

第二升级单元506,用于通过所述主进程利用所述升级进程的新版本数据,升级所述升级进程;

第二重启单元507,用于当主进程检测到所述升级进程升级结束时,重启所述升级进程,以维持所述升级进程的运行,其中,所述升级进程升级结束包括:升级进程升级完成或者升级进程出现升级异常;

相应的,所述第一获取单元501,包括:

第一获取子单元,用于当所述版本升级服务器中不存在所述主进程的新版本数据或者所述升级进程升级结束,所述升级进程从所述版本升级服务器获取所述主进程的新版本数据。

在一种可能的情况中,所述装置还包括:

第一关闭单元,用于在第一获取单元获取所述主进程的新版本数据之前,通过所述升级进程关闭所述主进程,以结束所述主进程的运行;

第二关闭单元,用于在第二获取单元在获取所述升级进程的新版本数据之前,通过所述主进程关闭所述升级进程,以结束所述升级进程的运行。

在一种可能的实现方式中,在以上装置的任意一个实施例中,该装置还可以包括:

状态监控单元,用于当不满足所述应用的升级条件时,在所述应用运行过程中,通过所述主进程监控所述升级进程的运行状态,且通过所述升级进程监控所述主进程的运行状态;

第一状态维护单元,用于当所述主进程检测到所述升级进程未处于运行状态时,通过所述主进程启动所述升级进程,以维持所述升级进程的运行;

第二状态维护单元,用于当所述升级进程检测到所述主进程未处于运行状态时,通过所述升级进程启动所述主进程,以维持所述主进程的运行。

另一方面,本申请还提供了一种存储介质,该存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,实现如上任意一个实施例中所描述的应用升级方法。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

以上仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1