CN104239103A - 一种软件更新方法及装置 - Google Patents
一种软件更新方法及装置 Download PDFInfo
- Publication number
- CN104239103A CN104239103A CN201410476005.1A CN201410476005A CN104239103A CN 104239103 A CN104239103 A CN 104239103A CN 201410476005 A CN201410476005 A CN 201410476005A CN 104239103 A CN104239103 A CN 104239103A
- Authority
- CN
- China
- Prior art keywords
- software
- duty
- daily record
- service
- control
- 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.)
- Pending
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提供一种软件更新方法及装置,用以实现在软件切换的过程中,服务不会中断,实现软件的无缝热切换。该方法包括:在第一软件处于运行状态时,启动第二软件;读取所述第一软件的工作状态日志;控制所述第二软件根据所述第一软件的工作状态日志,将所述第二软件的工作状态同步至所述第一软件的工作状态;控制所述第一软件停止运行;其中,所述第一软件和第二软件是同一软件的不同版本;或者,所述第一软件和第二软件是同一软件的不同实例。本发明提供的上述方法,在进行软件切换的过程中,没有出现服务中断的现象,实现了软件的无缝热切换。
Description
技术领域
本发明涉及软件更新技术领域,尤其涉及一种软件更新方法及装置。
背景技术
目前商用系统中的设备软件(比如服务器设备软件),一般由研发人员完成操作,首先将升级版本安装至设备,其次停止该软件及相关软件的运行,使用升级版本的新文件修改相应配置文件,安装新软件,再根据需要重启设备,启动升级后的软件和相关软件,最后检查软件运行状态。
因为设备运行各种软件,各个软件的编程语言和实现方法多种多样,因此不同软件升级的操作步骤也各不相同。技术人员采用手工方式升级软件,花费时间长,在升级过程中需要将原来的软件程序停止运行,安装新版软件,将旧版本软件的状态同步过来后再停止旧版的软件,过程繁琐,为用户带来不必要的负担。在软件升级、切换的过程中,软件系统需要暂停服务,导致服务中断,这在许多要求高可用的场景下(如互联网服务,金融IT服务)难以接受。通常的一种解决方案是在软件系统前端设置负载均衡器,通过负载均衡器把用户请求导到已经升级的软件系统,从而对用户屏蔽因为后台系统升级导致的服务不可用状态。但后台多个需要升级的软件系统的状态如何同步,仍然是个挑战。一个软件的多个实例之间的切换也存在同样问题,多个实例之间需要同步完状态之后再切换。
发明内容
为克服相关技术中存在的问题,本发明实施例提供一种软件更新方法及装置,用以实现在软件切换的过程中,服务不会中断,实现软件的无缝热切换。
根据本发明实施例的第一方面,提供一种软件更新方法,包括:
在第一软件处于运行状态时,启动第二软件;
读取所述第一软件的工作状态日志;
控制所述第二软件根据所述第一软件的工作状态日志,将所述第二软件的工作状态同步至所述第一软件的工作状态;
控制所述第一软件停止运行;
其中,所述第一软件和第二软件是同一软件的不同版本;或者,所述第一软件和第二软件是同一软件的不同实例。
在一个实施例中,所述控制所述第一软件停止运行之前,所述方法还包括:
将与所述第一软件的数据链接切换连接至所述第二软件。
在一个实施例中,所述第一软件的版本低于所述第二软件的版本。
在一个实施例中,所述读取所述第一软件的工作状态日志,包括:
控制所述第二软件读取所述第一软件的工作状态日志。
在一个实施例中,所述方法还包括:
在第一软件处于运行状态时,持续记录所述第一软件的工作状态,生成所述第一软件的工作状态日志。
根据本发明实施例的第二方面,提供一种软件更新装置,包括:
启动模块,用于在第一软件处于运行状态时,启动第二软件;
读取模块,用于读取所述第一软件的工作状态日志;
同步模块,用于控制所述第二软件根据所述第一软件的工作状态日志,将所述第二软件的工作状态同步至所述第一软件的工作状态;
控制模块,用于控制所述第一软件停止运行;
其中,所述第一软件和第二软件是同一软件的不同版本;或者,所述第一软件和第二软件是同一软件的不同实例。
在一个实施例中,所述装置还包括:
切换模块,用于在所述控制模块控制所述第一软件停止运行之前,将与所述第一软件的数据链接切换连接至所述第二软件。
在一个实施例中,所述读取模块包括:
读取子模块,用于控制所述第二软件读取所述第一软件的工作状态日志。
在一个实施例中,所述装置还包括:
记录模块,用于在第一软件处于运行状态时,持续记录所述第一软件的工作状态,生成所述第一软件的工作状态日志。
本发明的实施例提供的技术方案可以包括以下有益效果:
本发明实施例提供的上述方法,在进行软件切换的过程中,没有出现服务中断的现象,实现了软件的无缝热切换。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是本发明实施例提供的一种软件更新方法的流程图。
图2是本发明实施例提供的另一种软件更新方法的流程图。
图3是本发明实施例提供的一种软件更新装置的结构图。
图4是本发明实施例提供的另一种软件更新装置的结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种软件更新方法的流程图,该方法适用于对终端设备中软件的更新、对商用的服务器中软件的更新等,该方法的执行主体可以为终端设备或服务器的操作系统,如图1所示,该方法包括以下步骤S101-S104:
步骤S101、在第一软件处于运行状态时,启动第二软件。
在一个实施例中,第一软件和第二软件可以是同一软件的不同版本,比如一杀毒软件,则可以将该杀毒软件的1.0版本视为第一软件,将该杀毒软件的2.0版本视为第二软件。通常,优选地,第二软件的版本比第一软件的版本高。第一软件和第二软件还可以是同一软件的不同实例,比如一智能办公软件,则可以将该智能办公软件应用于公司A的实例视为第一软件,将该智能办公软件应用于公司B的实例视为第二软件。
步骤S102、读取第一软件的工作状态日志。
在一个实施例中,第一软件的工作状态日志记录了第一软件的所有工作状态信息,比如用户在第一软件中的编辑内容、用于对第一软件的操作内容等信息,因而,根据第一软件的工作状态日志,可以分析出第一软件的当前状态。在步骤S102中,可以是系统自己读取第一软件的工作状态日志,再将读取的工作状态日志发送给第二软件,也可以是系统控制第二软件读取第一软件的工作状态日志。
步骤S103、控制第二软件根据第一软件的工作状态日志,将第二软件的工作状态同步至第一软件的工作状态。
在一个实施例中,控制第二软件对第一软件的工作状态日志进行分析,第二软件分析获得第一软件的历史工作过程和第一软件的当前状态等信息之后,控制第二软件根据分析获得的信息进行状态同步处理,将第二软件的工作状态同步至第一软件的工作状态。具体地,可以在第二软件进行状态同步处理的同时,判断第二软件的工作状态是否同步至第一软件的工作状态,由于在第二软件进行状态同步处理的同时,第一软件也是依然还在处于运行状态的,第一软件的工作状态依然还处于变化中,因而第一软件的工作状态日志亦还处于更新中,因而,第二软件的工作状态是逐渐接近第一软件的工作状态的,最终,系统可判定出第二软件的工作状态与第一软件的工作状态是否同步。
步骤S104、控制第一软件停止运行。
当第二软件的工作状态同步至第一软件的工作状态时,就可以控制第一软件停止运行了,此时,运行中的第二软件替代了原来运行中的第一软件,继续为用户服务。并且,在整个替代的过程中,一直都有软件在运行、在为用户服务,没有出现服务中断的现象,因此,实现了软件的无缝热切换。
例如,当第一软件和第二软件是同一软件的不同版本时,可以利用本发明实施例提供的方法实现对软件的版本升级或者降级(当第二软件的版本高于第一软件的版本时,实现升级;当第二软件的版本低于第一软件的版本时,实现降级),并且在版本升级或降级的过程中,没有出现服务中断的现象,实现了软件版本升级或降级的过程中的无缝热切换。
又例如,当第一软件和第二软件是同一软件的不同实例时,可以利用本发明实施例提供的方法实现对该软件的实例切换,并且在实例切换的过程中,没有出现服务中断的现象,实现了软件实例切换过程中的无缝热切换。
另外,在一个实施例中,如果第一软件是与外部软件或者外部设备有数据链接的软件,即,第一软件是与外部有数据交互的软件时,则上述方法还可以在“控制第一软件停止运行”之前,将与第一软件的数据链接切换连接至第二软件,从而使得第二软件替代第一软件之后,能完整实现第一软件的所有功能。
另外,如图2所示,上述方法还可包括以下步骤S100:在第一软件处于运行状态时,持续记录第一软件的工作状态,生成上述第一软件的工作状态日志。只要第一软件处于运行状态,就可执行该操作,因而,在上述方法执行步骤S104“控制第一软件停止运行”之前,都可以执行上述操作。由此可见,在上述步骤S103中,在第二软件进行状态同步处理的同时,第一软件也是依然还在处于运行状态的,第一软件的工作状态依然还处于变化中,因而第一软件的工作状态日志亦还处于更新中,因而,第二软件的工作状态是逐渐接近第一软件的工作状态的。
本发明实施例提供的上述方法,在进行软件切换的过程中,没有出现服务中断的现象,实现了软件的无缝热切换。
对应本发明实施例提供的上述方法,本发明实施例还提供了一种软件更新装置,如图3所示,该装置包括:
启动模块31,用于在第一软件处于运行状态时,启动第二软件;
读取模块32,用于读取第一软件的工作状态日志;
同步模块33,用于控制第二软件根据第一软件的工作状态日志,将第二软件的工作状态同步至第一软件的工作状态;
控制模块34,用于控制第一软件停止运行;
其中,第一软件和第二软件是同一软件的不同版本;或者,第一软件和第二软件是同一软件的不同实例。
在一个实施例中,如图4所示,上述装置还可包括:
切换模块41,用于在控制模块34控制第一软件停止运行之前,将与第一软件的数据链接切换连接至第二软件。
在一个实施例中,上述读取模块可包括:
读取子模块,用于控制第二软件读取第一软件的工作状态日志。
在一个实施例中,如图4所示,上述装置还可包括:
记录模块42,用于在第一软件处于运行状态时,持续记录第一软件的工作状态,生成第一软件的工作状态日志。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (9)
1.一种软件更新方法,其特征在于,包括:
在第一软件处于运行状态时,启动第二软件;
读取所述第一软件的工作状态日志;
控制所述第二软件根据所述第一软件的工作状态日志,将所述第二软件的工作状态同步至所述第一软件的工作状态;
控制所述第一软件停止运行;
其中,所述第一软件和第二软件是同一软件的不同版本;或者,所述第一软件和第二软件是同一软件的不同实例。
2.如权利要求1所述的方法,其特征在于,所述控制所述第一软件停止运行之前,所述方法还包括:
将与所述第一软件的数据链接切换连接至所述第二软件。
3.如权利要求1或2所述的方法,其特征在于,
所述第一软件的版本低于所述第二软件的版本。
4.如权利要求1或2所述的方法,其特征在于,
所述读取所述第一软件的工作状态日志,包括:
控制所述第二软件读取所述第一软件的工作状态日志。
5.如权利要求1或2所述的方法,其特征在于,所述方法还包括:
在第一软件处于运行状态时,持续记录所述第一软件的工作状态,生成所述第一软件的工作状态日志。
6.一种软件更新装置,其特征在于,包括:
启动模块,用于在第一软件处于运行状态时,启动第二软件;
读取模块,用于读取所述第一软件的工作状态日志;
同步模块,用于控制所述第二软件根据所述第一软件的工作状态日志,将所述第二软件的工作状态同步至所述第一软件的工作状态;
控制模块,用于控制所述第一软件停止运行;
其中,所述第一软件和第二软件是同一软件的不同版本;或者,所述第一软件和第二软件是同一软件的不同实例。
7.如权利要求6所述的装置,其特征在于,所述装置还包括:
切换模块,用于在所述控制模块控制所述第一软件停止运行之前,将与所述第一软件的数据链接切换连接至所述第二软件。
8.如权利要求6或7所述的装置,其特征在于,
所述读取模块包括:
读取子模块,用于控制所述第二软件读取所述第一软件的工作状态日志。
9.如权利要求6或7所述的装置,其特征在于,所述装置还包括:
记录模块,用于在第一软件处于运行状态时,持续记录所述第一软件的工作状态,生成所述第一软件的工作状态日志。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410476005.1A CN104239103A (zh) | 2014-09-17 | 2014-09-17 | 一种软件更新方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410476005.1A CN104239103A (zh) | 2014-09-17 | 2014-09-17 | 一种软件更新方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104239103A true CN104239103A (zh) | 2014-12-24 |
Family
ID=52227238
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410476005.1A Pending CN104239103A (zh) | 2014-09-17 | 2014-09-17 | 一种软件更新方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104239103A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106970806A (zh) * | 2015-10-02 | 2017-07-21 | 洛克威尔自动控制技术股份有限公司 | 用于对正在控制工业过程的控制程序进行更新的系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101078993A (zh) * | 2007-03-13 | 2007-11-28 | 中兴通讯股份有限公司 | 一种终端产品不中断业务在线升级版本的方法 |
CN101102219A (zh) * | 2007-07-30 | 2008-01-09 | 华为技术有限公司 | 软件升级系统以及软件升级方法 |
-
2014
- 2014-09-17 CN CN201410476005.1A patent/CN104239103A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101078993A (zh) * | 2007-03-13 | 2007-11-28 | 中兴通讯股份有限公司 | 一种终端产品不中断业务在线升级版本的方法 |
CN101102219A (zh) * | 2007-07-30 | 2008-01-09 | 华为技术有限公司 | 软件升级系统以及软件升级方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106970806A (zh) * | 2015-10-02 | 2017-07-21 | 洛克威尔自动控制技术股份有限公司 | 用于对正在控制工业过程的控制程序进行更新的系统 |
CN106970806B (zh) * | 2015-10-02 | 2020-04-21 | 罗克韦尔自动化技术公司 | 用于对正在控制工业过程的控制程序进行更新的系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105468717B (zh) | 数据库操作方法和装置 | |
EP3418921A1 (en) | Dynamic migration script management | |
US10037203B1 (en) | Real-time software upgrade | |
TW201512988A (zh) | 軟體相容性預先檢測方法與其系統 | |
CN104778102A (zh) | 一种主备切换方法及系统 | |
CN108459951B (zh) | 测试方法和装置 | |
CN105260209A (zh) | 一种程序热更新解决方法 | |
CN111666217B (zh) | 用于测试代码的方法和装置 | |
CN109598427B (zh) | 机器人的管理方法、装置及电子设备 | |
CN103024782A (zh) | 一种基站软件版本管理的方法和系统 | |
CN104424037A (zh) | 一种动态补丁函数的方法及装置 | |
CN108228149A (zh) | 一种可动态装配服务的app接口适配方法及装置 | |
US20120144080A1 (en) | Method and Device for Monitoring Running State of Card | |
CN104063284B (zh) | 运行应用程序的方法和装置 | |
WO2017000586A1 (zh) | 虚拟网元的升级方法、装置和计算机存储介质 | |
WO2017020460A1 (zh) | 一种集成插件的方法和装置 | |
CN104780068B (zh) | 一种机房迁移的网络切换方法、装置及系统 | |
CN104239103A (zh) | 一种软件更新方法及装置 | |
CN105528259B (zh) | 一种应用级容灾自动化切换控制设计方法 | |
CN107632899B (zh) | 一种应用服务器的快照服务方法及装置 | |
CN105279042A (zh) | 一种bsd系统的冗余备份系统及方法 | |
CN100535860C (zh) | 一种设备软件升级自动化的实现系统和方法 | |
CN108089917A (zh) | 一种应用进程控制方法及装置 | |
CN103106064A (zh) | 一种复杂时序处理队列的动态预测的方法及装置 | |
CN103167545B (zh) | 一种基站相关ip割接的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20141224 |