CN103019752B - 应用程序的升级方法及装置 - Google Patents
应用程序的升级方法及装置 Download PDFInfo
- Publication number
- CN103019752B CN103019752B CN201110279972.5A CN201110279972A CN103019752B CN 103019752 B CN103019752 B CN 103019752B CN 201110279972 A CN201110279972 A CN 201110279972A CN 103019752 B CN103019752 B CN 103019752B
- Authority
- CN
- China
- Prior art keywords
- application program
- virtual environment
- operating system
- upgrading
- environment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Stored Programmes (AREA)
Abstract
一种应用程序的升级方法,包括如下步骤:对应用程序所在的操作系统进行克隆得到与所述操作系统相对应的虚拟环境;在所述虚拟环境中升级所述应用程序;将所述应用程序的访问环境由所述操作系统切换为升级后的虚拟环境。上述应用程序的升级方法及装置对应用程序所在的操作系统进行克隆,在不破坏操作系统环境的前提下通过与操作系统完全一样的虚拟环境实现应用程序的升级,进而将应用程序的访问环境由操作系统切换为升级后的虚拟环境,在升级的过程中操作系统并未发生任何变化,保留了升级之前的环境,即使升级过程中发生了错误也能够回到升级之前操作系统的环境,提高了稳定性。
Description
【技术领域】
本发明涉及计算机处理技术,特别是涉及一种应用程序的升级方法及装置。
【背景技术】
应用程序常常为了满足各种各样需求进行升级,传统的升级方式大致包括了直接在本机中升级以及通过另一服务器进行升级后替换原有的服务器。对于直接在本机中升级的应用程序升级方式,在手动或者自动发起升级请求后将升级程序下载并安装于本机中;若通过另一服务器进行升级后替换原有环境则需要在该服务器上部署应用程序的升级版本,升级后的应用程序正常运行后,将这一服务器替换原有的服务器,实现应用程序的升级。
然而,直接在本机中升级的方式若升级失败本机将无法回到升级前的状态,而通过另一服务器进行升级后替换原有的服务器的方式由于难以保证该服务器与原服务器中环境的一致性,应用程序升级出错的情况也时有发生。因此,无论是通过直接在本机中升级还是通过另一服务器进行升级后替换原有的服务器来实现应用程序的升级,都存在着缺乏稳定性的缺陷。
【发明内容】
基于此,有必要提供一种能提高稳定性的应用程序的升级方法。
此外,还有必要提供一种能提高稳定性的应用程序的升级装置。
一种应用程序的升级方法,包括如下步骤:
对应用程序所在的操作系统进行克隆得到与所述操作系统相对应的虚拟环境;
在所述虚拟环境中升级所述应用程序;
将所述应用程序的访问环境由所述操作系统切换为升级后的虚拟环境。
优选地,所述在所述虚拟环境中升级所述应用程序的过程为:
在所述虚拟环境中下载所述应用程序的升级数据;
安装所述下载得到的升级数据。
优选地,所述在所述虚拟环境中下载所述应用程序的升级数据的步骤之前还包括:
隔离所述克隆得到的虚拟环境。
优选地,所述将所述应用程序的访问环境由所述操作系统切换为升级后的虚拟环境的步骤之后还包括:
测试所述升级后的虚拟环境是否正常,若否,则
将所述应用程序的访问环境由所述升级后的虚拟环境切换为所述操作系统。
一种应用程序的升级装置,包括:
克隆模块,用于对应用程序所在的操作系统进行克隆得到与所述操作系统相对应的虚拟环境;
升级模块,用于在所述虚拟环境中升级所述应用程序;
切换模块,用于将所述应用程序的访问环境由所述操作系统切换为升级后的虚拟环境。
优选地,所述升级模块包括:
下载单元,用于在所述虚拟环境中下载所述应用程序的升级数据;
安装单元,用于安装所述下载得到的升级数据。
优选地,所述升级模块还包括:
隔离单元,用于隔离所述克隆得到的虚拟环境。
优选地,还包括:
测试模块,用于测试所述升级后的虚拟环境是否正常,若否,则通知所述切换模块;
所述切换模块还用于将所述应用程序的访问环境由所述升级后的虚拟环境切换为所述操作系统。
上述应用程序的升级方法及装置对应用程序所在的操作系统进行克隆,在不破坏所述操作系统环境的前提下通过与所述操作系统完全一样的虚拟环境实现应用程序的升级,进而将应用程序的访问环境由所述操作系统切换为升级后的虚拟环境,在升级的过程中所述操作系统并未发生任何变化,保留了升级之前的环境,即使升级过程中发生了错误也能够回到升级之前操作系统的环境,提高了稳定性。
【附图说明】
图1为一个实施例中应用程序的升级方法的流程图;
图2为图1中在虚拟环境中升级应用程序的方法流程图;
图3为另一个实施例中应用程序的升级方法的流程图;
图4为一个实施例中应用程序的升级装置的结构示意图;
图5为一个实施例中升级模块的结构示意图;
图6为另一个实施例中升级模块的结构示意图。
【具体实施方式】
图1示出了一个实施例中应用程序的升级方法,包括如下步骤:
步骤S110,对应用程序所在的操作系统进行克隆得到与所述操作系统相对应的虚拟环境。
本实施例中,应用程序安装于操作系统中,该操作系统可以设置于物理服务器或者虚拟机中,用户通过与操作系统建立连接访问该应用程序。
在接收到自动升级指令或者管理员发起的升级指令时,以应用程序所在的操作系统为目标进行克隆,产生与操作系统一模一样的虚拟环境。例如,在VMwarevsphere这一虚拟化平台中,通过WebServiceAPI这一接口连接虚拟化平台中的虚拟机管理程序(VMMVirtualMachineManager,VMM),通过虚拟机管理程序调用克隆方法(如VirtualMachine.CloneVM_Task),以启动操作系统的克隆,而克隆的参数通过VirtualMachineCloneSpec来指定;在完成操作系统的克隆后,产生对应的虚拟环境,并将向虚拟机管理程序返回克隆成功的消息,此时,虚拟化平台中的升级管理程序与虚拟环境中的升级管理程序建立连接并通讯,虚拟环境中的升级管理程序接管应用程序的升级。
步骤S130,在虚拟环境中升级应用程序。
本实施例中,虚拟环境中的升级管理程序接管应用程序的升级之后,通过虚拟环境进行应用程序的升级。
在一个实施例中,如图2所示,上述步骤S130的具体过程为:
步骤S131,在虚拟环境中下载应用程序的升级数据。
本实施例中,通过虚拟环境进行升级数据的下载,而操作系统将不进行应用程序的升级数据下载,以使得操作系统中的环境并不会因为应用程序的升级而发生改变,防止升级过程中发生错误时能够回滚到升级之前的环境。
步骤S133,安装下载得到的升级数据。
本实施例中,下载完成后,在虚拟环境中安装下载得到的升级数据,以实现虚拟环境中应用程序的升级。
在另一个实施例中,上述步骤S131之前还包括了隔离克隆得到的虚拟环境的步骤。
本实施例中,在下载升级数据之前,禁止外界对虚拟环境进行访问,隔离克隆得到的虚拟环境,以保证不会受到外界的干扰。具体地,对虚拟环境的隔离可通过网络设置实现,例如,将虚拟环境设置于网络中某一个独立的隔离的虚拟局域网中(VirtualLocalAreaNetwork,简称VLAN)。
步骤S150,将应用程序的访问环境由操作系统切换升级后的虚拟环境。
本实施例中,在通过虚拟环境所实现的应用程序升级完成之后,向虚拟环境中的升级管理程序发出环境切换指令,并调用接口将访问环境由操作系统切换为升级后的虚拟环境。环境切换指令包括了更改访问地址及相关设置的命令,例如,访问地址可以是对应的TCP/IP协议地址,即IP地址。
访问环境的切换过程是将用户原本访问的操作系统切换为虚拟环境,此时,用户不再访问操作系统,而是对虚拟环境进行访问,进而实现对升级后的应用程序的访问。例如,若操作系统的访问地址为192.168.1.100/24,虚拟环境隔离于另一个虚拟局域网中,对应的访问地址为192.168.2.100/24,此时访问环境的切换通过对调操作系统和虚拟环境中的访问地址即可实现。
通过切换访问环境使得用户访问的应用程序是升级后的应用程序,且切换访问环境所花费的时间极短,几乎不会产生停机时间,即使处于正在升级的状态也不会影响用户对应用程序的正常访问。
在另一个实施例中,如图3所示,应用程序的升级方法的步骤S150之后还包括了如下步骤:
步骤S301,测试升级后的虚拟环境是否正常,若否,则进入步骤S303,若是,则结束。
本实施例中,虚拟环境中完成应用程序的升级之后,还需要对升级后的虚拟环境进行测试,判断升级后的虚拟环境是否处于正常状态,若否,则需要回滚到升级之前的状态,即进入步骤S303,若通过检测得知升级后的虚拟环境是正常的,虚拟环境中的应用程序在升级之后是可用的,将结束整个应用程序的升级过程。
步骤S303,将应用程序的访问环境由升级后的虚拟环境切换为操作系统。
本实施例中,在测试到升级后的虚拟环境可能发生了错误之后,应当将应用程序的访问环境由升级后的虚拟环境切换为操作系统,以保证用户能够访问应用程序。
图4示出了一个实施例中应用程序的升级装置,包括克隆模块10、升级模块30以及切换模块50。
克隆模块10,用于对应用程序所在的操作系统进行克隆得到与操作系统相对应的虚拟环境。
本实施例中,应用程序安装于操作系统中,该操作系统通常设置于物理服务器或者虚拟机中,用户通过与操作系统建立连接访问该应用程序。克隆模块10在接收到自动升级指令或者管理员发起的升级指令时,以应用程序所在的操作系统为目标进行克隆,产生与操作系统一模一样的虚拟环境。
例如,在VMwarevsphere这一虚拟化平台中,克隆模块10通过WebServiceAPI这一接口连接虚拟化平台中的虚拟机管理程序,并通过虚拟机管理程序调用克隆方法(如VirtualMachine.CloneVM_Task),以启动操作系统的克隆,而克隆的参数通过VirtualMachineCloneSpec来指定;在完成操作系统的克隆后,产生对应的虚拟环境,并将向虚拟机管理程序返回克隆成功的消息,此时,虚拟化平台中的升级管理程序与虚拟环境中的升级管理程序建立连接并通讯,虚拟环境中的升级管理程序接管应用程序的升级。
升级模块30,用于在虚拟环境中升级应用程序。
本实施例中,虚拟环境中的升级管理程序接管应用程序的升级之后,升级模块30通过虚拟环境进行应用程序的升级。
在一个实施例中,如图5所示,升级模块30包括下载单元310以及安装单元330。
下载单元310,用于在虚拟环境中下载应用程序的升级数据。
本实施例中,下载单元310通过虚拟环境进行升级数据的下载,而操作系统将不进行应用程序的升级数据下载,以使得操作系统中的环境并不会因为应用程序的升级而发生改变,可有效防止升级过程中发生错误时能够回滚到升级之前的环境。
安装单元330,用于安装下载得到的升级数据。
本实施例中,下载完成后,安装单元330在虚拟环境中安装下载得到的升级数据,以实现虚拟环境中应用程序的升级。
在另一个实施例中,如图6所示,上述升级模块30还包括了隔离单元350。
隔离单元350,用于隔离克隆得到的虚拟环境。
本实施例中,在下载升级数据之前,禁止外界对虚拟环境进行访问,隔离单元350隔离克隆得到的虚拟环境,以保证不会受到外界的干扰。具体地,隔离单元350对虚拟环境的隔离可通过网络设置实现,例如,将虚拟环境设置于网络中某一个独立的隔离的虚拟局域网中。
切换模块50,用于将应用程序的访问环境由操作系统切换为升级后的虚拟环境。
本实施例中,在通过虚拟环境所实现的应用程序升级完成之后,切换模块50向虚拟环境中的升级管理程序发出环境切换指令,并调用接口将访问环境由操作系统切换为升级后的虚拟环境。环境切换指令包括了更改访问地址及相关设置的命令,例如,访问地址可以是对应的TCP/IP协议地址,即IP地址。
切换模块50将用户原本访问的操作系统切换为虚拟环境,此时,用户不再访问操作系统,而是对虚拟环境进行访问,进而实现对升级后的应用程序的访问。例如,若操作系统的访问地址为192.168.1.100/24,虚拟环境隔离于另一个虚拟局域网中,对应的访问地址为192.168.2.100/24,此时切换模块50对调操作系统和虚拟环境中的访问地址。
切换模块50使得用户访问的应用程序是升级后的应用程序,且切换访问环境所花费的时间极短,几乎不会产生停机时间,即使处于正在升级的状态也不会影响用户对应用程序的正常访问。
在另一个实施例中,上述应用程序的升级装置还包括测试模块,该测试模块用于测试升级后的虚拟环境是否正常,若否,则通知切换模块50。
本实施例中,虚拟环境中完成应用程序的升级之后,还需要测试模块对升级后的虚拟环境进行测试,判断升级后的虚拟环境是否处于正常状态,若否,则需要回滚到升级之前的状态,即进入步骤S303,若通过检测得知升级后的虚拟环境是正常的,虚拟环境中的应用程序在升级之后是可用的,将结束整个应用程序的升级过程。
切换模块50还用于将应用程序的访问环境由升级后的虚拟环境切换为操作系统。
本实施例中,在测试到升级后的虚拟环境可能发生了错误之后,切换模块50应当将应用程序的访问环境由升级后的虚拟环境切换为操作系统,以保证用户能够访问应用程序。
上述应用程序的升级装置是通过虚拟机实现的,以保证应用程序的快速升级及其稳定性。在传统的应用程序升级过程中应用程序的升级将使得原版本的应用程序补充卸载或覆盖,如果安装的新版本出现问题将导致整个应用程序被破坏,无法使用。而上述应用程序的升级方法及装置通过虚拟机来进行应用程序的升级,而操作系统中的应用程序不发生改变,在升级发生了错误时仍然能够回滚到升级之间的环境,即操作系统中的应用程序,保证了稳定性。
上述应用程序的升级方法及装置对应用程序所在的操作系统进行克隆,在不破坏操作系统环境的前提下通过与操作系统完全一样的虚拟环境实现应用程序的升级,进而将应用程序的访问环境由操作系统切换为升级后的虚拟环境,在升级的过程中操作系统并未发生任何变化,保留了升级之前的环境,即使升级过程中发生了错误也能够回到升级之前操作系统的环境,提高了稳定性。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (8)
1.一种应用程序的升级方法,包括如下步骤:
对应用程序所在的操作系统进行克隆得到与所述操作系统相对应的虚拟环境,所述操作系统设置于物理服务器或者虚拟机中,用户通过与所述操作系统建立连接访问该应用程序;
在所述虚拟环境中升级所述应用程序;
将所述应用程序的访问环境由所述操作系统切换为升级后的虚拟环境;所述由操作系统切换为升级后的虚拟环境的具体过程包括:向虚拟环境中的升级管理程序发出环境切换指令,并调用接口将访问环境由操作系统切换为升级后的虚拟环境,所述环境切换指令包括更改访问地址的命令。
2.根据权利要求1所述的应用程序的升级方法,其特征在于,所述在所述虚拟环境中升级所述应用程序的过程为:
在所述虚拟环境中下载所述应用程序的升级数据;
安装所述下载得到的升级数据。
3.根据权利要求2所述的应用程序的升级方法,其特征在于,所述在所述虚拟环境中下载所述应用程序的升级数据的步骤之前还包括:
隔离所述克隆得到的虚拟环境。
4.根据权利要求1所述的应用程序的升级方法,其特征在于,所述将所述应用程序的访问环境由所述操作系统切换为升级后的虚拟环境的步骤之后还包括:
测试所述升级后的虚拟环境是否正常,若否,则
将所述应用程序的访问环境由所述升级后的虚拟环境切换为所述操作系统。
5.一种应用程序的升级装置,其特征在于,包括:
克隆模块,用于对应用程序所在的操作系统进行克隆得到与所述操作系统相对应的虚拟环境,所述操作系统设置于物理服务器或者虚拟机中,用户通过与所述操作系统建立连接访问该应用程序;
升级模块,用于在所述虚拟环境中升级所述应用程序;
切换模块,用于将所述应用程序的访问环境由所述操作系统切换为升级后的虚拟环境;所述由操作系统切换为升级后的虚拟环境的具体过程包括:向虚拟环境中的升级管理程序发出环境切换指令,并调用接口将访问环境由操作系统切换为升级后的虚拟环境,所述环境切换指令包括了更改访问地址及相关设置的命令。
6.根据权利要求5所述的应用程序的升级装置,其特征在于,所述升级模块包括:
下载单元,用于在所述虚拟环境中下载所述应用程序的升级数据;
安装单元,用于安装所述下载得到的升级数据。
7.根据权利要求6所述的应用程序的升级装置,其特征在于,所述升级模块还包括:
隔离单元,用于隔离所述克隆得到的虚拟环境。
8.根据权利要求5所述的应用程序的升级装置,其特征在于,还包括:
测试模块,用于测试所述升级后的虚拟环境是否正常,若否,则通知所述切换模块;
所述切换模块还用于将所述应用程序的访问环境由所述升级后的虚拟环境切换为所述操作系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110279972.5A CN103019752B (zh) | 2011-09-20 | 2011-09-20 | 应用程序的升级方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110279972.5A CN103019752B (zh) | 2011-09-20 | 2011-09-20 | 应用程序的升级方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103019752A CN103019752A (zh) | 2013-04-03 |
CN103019752B true CN103019752B (zh) | 2016-08-03 |
Family
ID=47968390
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110279972.5A Active CN103019752B (zh) | 2011-09-20 | 2011-09-20 | 应用程序的升级方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103019752B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103701924A (zh) * | 2013-12-31 | 2014-04-02 | 曙光云计算技术有限公司 | Paas平台的运行应用时改变配置的方法和系统 |
CN105653338B (zh) * | 2015-12-30 | 2019-02-12 | Oppo广东移动通信有限公司 | 一种应用的更新方法及装置 |
CN106648671B (zh) * | 2016-12-27 | 2020-05-19 | 宇龙计算机通信科技(深圳)有限公司 | 一种应用升级方法及终端 |
CN106933618B (zh) * | 2017-01-25 | 2020-03-27 | 上海蔚来汽车有限公司 | 基于系统参数相关系数的系统升级评估方法 |
CN107291490A (zh) * | 2017-05-03 | 2017-10-24 | 上海上讯信息技术股份有限公司 | 一种系统升级的方法及设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1858704A (zh) * | 2006-02-07 | 2006-11-08 | 华为技术有限公司 | 升级程序的方法 |
CN101334825A (zh) * | 2007-06-29 | 2008-12-31 | 联想(北京)有限公司 | 应用程序管理和运行系统及方法 |
CN101408856A (zh) * | 2008-11-21 | 2009-04-15 | 清华大学 | 一种用于容灾备份的系统和方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7000229B2 (en) * | 2002-07-24 | 2006-02-14 | Sun Microsystems, Inc. | Method and system for live operating environment upgrades |
CN101217401B (zh) * | 2008-01-10 | 2010-11-10 | 华为技术有限公司 | 一种基站控制器的升级、备份方法及装置 |
CN101583147B (zh) * | 2009-06-17 | 2011-01-05 | 哈尔滨工业大学 | 一种应用于话务量预测的分段在线支持向量回归方法 |
CN102081540B (zh) * | 2011-01-18 | 2014-04-16 | 杭州华三通信技术有限公司 | 一种分布式双主控网络设备软件升级方法和装置 |
-
2011
- 2011-09-20 CN CN201110279972.5A patent/CN103019752B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1858704A (zh) * | 2006-02-07 | 2006-11-08 | 华为技术有限公司 | 升级程序的方法 |
CN101334825A (zh) * | 2007-06-29 | 2008-12-31 | 联想(北京)有限公司 | 应用程序管理和运行系统及方法 |
CN101408856A (zh) * | 2008-11-21 | 2009-04-15 | 清华大学 | 一种用于容灾备份的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103019752A (zh) | 2013-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103019752B (zh) | 应用程序的升级方法及装置 | |
US7007077B1 (en) | Remote maintenance method of an information processing apparatus | |
CN103488498B (zh) | 一种计算机启动方法及计算机 | |
CN107291516A (zh) | 一种固件升级方法和系统 | |
CN103377094A (zh) | 异常监测方法和装置 | |
CN109491698A (zh) | 基于热补丁的系统更新方法及装置 | |
JP2003288226A (ja) | 遠隔家電機器アップデート方法及びシステム | |
CN102238093A (zh) | 防止业务中断的方法和装置 | |
CN104750515A (zh) | 固件版本升级的方法及系统 | |
CN105426213B (zh) | 软件更新方法和系统 | |
CN108536464A (zh) | 一种应用程序的热修复方法及装置 | |
CN106303709A (zh) | 一种机顶盒及其应用程序升级方法、系统 | |
CN113050960A (zh) | Ota升级方法、装置、车载终端及存储介质 | |
CN107656765A (zh) | 一种设备初始化的方法、系统及终端设备 | |
CN111769966B (zh) | 一种克隆升级方法、系统和应用 | |
CN109002305A (zh) | 一种设备程序的更新方法及其系统 | |
CN104780408B (zh) | 一种基于智能终端的智能电视控制方法及系统 | |
CN107396185B (zh) | 升级方法及系统 | |
CN106028142A (zh) | 一种播放设备的升级控制方法和装置 | |
EP3043262A1 (en) | Method and device for remote base station version installation | |
CN109905389A (zh) | 移动终端控制方法、装置及计算机可读存储介质 | |
JP2006113754A (ja) | ソフトウェア更新装置及び方法 | |
CN101022636A (zh) | 设备升级方法及硬件设备 | |
CN102169445A (zh) | 一种BootRom的安全升级方法 | |
JP2012029294A (ja) | 情報伝送制御方法およびプロジェクタ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |