一種軟件更新方法及裝置制造方法
【專利摘要】本發(fā)明提供一種軟件更新方法及裝置,用以實(shí)現(xiàn)在軟件切換的過程中,服務(wù)不會(huì)中斷,實(shí)現(xiàn)軟件的無縫熱切換。該方法包括:在第一軟件處于運(yùn)行狀態(tài)時(shí),啟動(dòng)第二軟件;讀取所述第一軟件的工作狀態(tài)日志;控制所述第二軟件根據(jù)所述第一軟件的工作狀態(tài)日志,將所述第二軟件的工作狀態(tài)同步至所述第一軟件的工作狀態(tài);控制所述第一軟件停止運(yùn)行;其中,所述第一軟件和第二軟件是同一軟件的不同版本;或者,所述第一軟件和第二軟件是同一軟件的不同實(shí)例。本發(fā)明提供的上述方法,在進(jìn)行軟件切換的過程中,沒有出現(xiàn)服務(wù)中斷的現(xiàn)象,實(shí)現(xiàn)了軟件的無縫熱切換。
【專利說明】一種軟件更新方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及軟件更新【技術(shù)領(lǐng)域】,尤其涉及一種軟件更新方法及裝置。
【背景技術(shù)】
[0002]目前商用系統(tǒng)中的設(shè)備軟件(比如服務(wù)器設(shè)備軟件),一般由研發(fā)人員完成操作,首先將升級(jí)版本安裝至設(shè)備,其次停止該軟件及相關(guān)軟件的運(yùn)行,使用升級(jí)版本的新文件修改相應(yīng)配置文件,安裝新軟件,再根據(jù)需要重啟設(shè)備,啟動(dòng)升級(jí)后的軟件和相關(guān)軟件,最后檢查軟件運(yùn)行狀態(tài)。
[0003]因?yàn)樵O(shè)備運(yùn)行各種軟件,各個(gè)軟件的編程語言和實(shí)現(xiàn)方法多種多樣,因此不同軟件升級(jí)的操作步驟也各不相同。技術(shù)人員采用手工方式升級(jí)軟件,花費(fèi)時(shí)間長,在升級(jí)過程中需要將原來的軟件程序停止運(yùn)行,安裝新版軟件,將舊版本軟件的狀態(tài)同步過來后再停止舊版的軟件,過程繁瑣,為用戶帶來不必要的負(fù)擔(dān)。在軟件升級(jí)、切換的過程中,軟件系統(tǒng)需要暫停服務(wù),導(dǎo)致服務(wù)中斷,這在許多要求高可用的場景下(如互聯(lián)網(wǎng)服務(wù),金融IT服務(wù))難以接受。通常的一種解決方案是在軟件系統(tǒng)前端設(shè)置負(fù)載均衡器,通過負(fù)載均衡器把用戶請(qǐng)求導(dǎo)到已經(jīng)升級(jí)的軟件系統(tǒng),從而對(duì)用戶屏蔽因?yàn)楹笈_(tái)系統(tǒng)升級(jí)導(dǎo)致的服務(wù)不可用狀態(tài)。但后臺(tái)多個(gè)需要升級(jí)的軟件系統(tǒng)的狀態(tài)如何同步,仍然是個(gè)挑戰(zhàn)。一個(gè)軟件的多個(gè)實(shí)例之間的切換也存在同樣問題,多個(gè)實(shí)例之間需要同步完?duì)顟B(tài)之后再切換。
【發(fā)明內(nèi)容】
[0004]為克服相關(guān)技術(shù)中存在的問題,本發(fā)明實(shí)施例提供一種軟件更新方法及裝置,用以實(shí)現(xiàn)在軟件切換的過程中,服務(wù)不會(huì)中斷,實(shí)現(xiàn)軟件的無縫熱切換。
[0005]根據(jù)本發(fā)明實(shí)施例的第一方面,提供一種軟件更新方法,包括:
[0006]在第一軟件處于運(yùn)行狀態(tài)時(shí),啟動(dòng)第二軟件;
[0007]讀取所述第一軟件的工作狀態(tài)日志;
[0008]控制所述第二軟件根據(jù)所述第一軟件的工作狀態(tài)日志,將所述第二軟件的工作狀態(tài)同步至所述第一軟件的工作狀態(tài);
[0009]控制所述第一軟件停止運(yùn)行;
[0010]其中,所述第一軟件和第二軟件是同一軟件的不同版本;或者,所述第一軟件和第二軟件是同一軟件的不同實(shí)例。
[0011]在一個(gè)實(shí)施例中,所述控制所述第一軟件停止運(yùn)行之前,所述方法還包括:
[0012]將與所述第一軟件的數(shù)據(jù)鏈接切換連接至所述第二軟件。
[0013]在一個(gè)實(shí)施例中,所述第一軟件的版本低于所述第二軟件的版本。
[0014]在一個(gè)實(shí)施例中,所述讀取所述第一軟件的工作狀態(tài)日志,包括:
[0015]控制所述第二軟件讀取所述第一軟件的工作狀態(tài)日志。
[0016]在一個(gè)實(shí)施例中,所述方法還包括:
[0017]在第一軟件處于運(yùn)行狀態(tài)時(shí),持續(xù)記錄所述第一軟件的工作狀態(tài),生成所述第一軟件的工作狀態(tài)日志。
[0018]根據(jù)本發(fā)明實(shí)施例的第二方面,提供一種軟件更新裝置,包括:
[0019]啟動(dòng)模塊,用于在第一軟件處于運(yùn)行狀態(tài)時(shí),啟動(dòng)第二軟件;
[0020]讀取模塊,用于讀取所述第一軟件的工作狀態(tài)日志;
[0021]同步模塊,用于控制所述第二軟件根據(jù)所述第一軟件的工作狀態(tài)日志,將所述第二軟件的工作狀態(tài)同步至所述第一軟件的工作狀態(tài);
[0022]控制模塊,用于控制所述第一軟件停止運(yùn)行;
[0023]其中,所述第一軟件和第二軟件是同一軟件的不同版本;或者,所述第一軟件和第二軟件是同一軟件的不同實(shí)例。
[0024]在一個(gè)實(shí)施例中,所述裝置還包括:
[0025]切換模塊,用于在所述控制模塊控制所述第一軟件停止運(yùn)行之前,將與所述第一軟件的數(shù)據(jù)鏈接切換連接至所述第二軟件。
[0026]在一個(gè)實(shí)施例中,所述讀取模塊包括:
[0027]讀取子模塊,用于控制所述第二軟件讀取所述第一軟件的工作狀態(tài)日志。
[0028]在一個(gè)實(shí)施例中,所述裝置還包括:
[0029]記錄模塊,用于在第一軟件處于運(yùn)行狀態(tài)時(shí),持續(xù)記錄所述第一軟件的工作狀態(tài),生成所述第一軟件的工作狀態(tài)日志。
[0030]本發(fā)明的實(shí)施例提供的技術(shù)方案可以包括以下有益效果:
[0031]本發(fā)明實(shí)施例提供的上述方法,在進(jìn)行軟件切換的過程中,沒有出現(xiàn)服務(wù)中斷的現(xiàn)象,實(shí)現(xiàn)了軟件的無縫熱切換。
[0032]應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不能限制本發(fā)明。
【專利附圖】
【附圖說明】
[0033]此處的附圖被并入說明書中并構(gòu)成本說明書的一部分,示出了符合本發(fā)明的實(shí)施例,并與說明書一起用于解釋本發(fā)明的原理。
[0034]圖1是本發(fā)明實(shí)施例提供的一種軟件更新方法的流程圖。
[0035]圖2是本發(fā)明實(shí)施例提供的另一種軟件更新方法的流程圖。
[0036]圖3是本發(fā)明實(shí)施例提供的一種軟件更新裝置的結(jié)構(gòu)圖。
[0037]圖4是本發(fā)明實(shí)施例提供的另一種軟件更新裝置的結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0038]這里將詳細(xì)地對(duì)示例性實(shí)施例進(jìn)行說明,其示例表示在附圖中。下面的描述涉及附圖時(shí),除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實(shí)施例中所描述的實(shí)施方式并不代表與本發(fā)明相一致的所有實(shí)施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本發(fā)明的一些方面相一致的裝置和方法的例子。
[0039]圖1是根據(jù)一示例性實(shí)施例示出的一種軟件更新方法的流程圖,該方法適用于對(duì)終端設(shè)備中軟件的更新、對(duì)商用的服務(wù)器中軟件的更新等,該方法的執(zhí)行主體可以為終端設(shè)備或服務(wù)器的操作系統(tǒng),如圖1所示,該方法包括以下步驟S101-S104:
[0040]步驟S101、在第一軟件處于運(yùn)行狀態(tài)時(shí),啟動(dòng)第二軟件。
[0041]在一個(gè)實(shí)施例中,第一軟件和第二軟件可以是同一軟件的不同版本,比如一殺毒軟件,則可以將該殺毒軟件的1.0版本視為第一軟件,將該殺毒軟件的2.0版本視為第二軟件。通常,優(yōu)選地,第二軟件的版本比第一軟件的版本高。第一軟件和第二軟件還可以是同一軟件的不同實(shí)例,比如一智能辦公軟件,則可以將該智能辦公軟件應(yīng)用于公司A的實(shí)例視為第一軟件,將該智能辦公軟件應(yīng)用于公司B的實(shí)例視為第二軟件。
[0042]步驟S102、讀取第一軟件的工作狀態(tài)日志。
[0043]在一個(gè)實(shí)施例中,第一軟件的工作狀態(tài)日志記錄了第一軟件的所有工作狀態(tài)信息,比如用戶在第一軟件中的編輯內(nèi)容、用于對(duì)第一軟件的操作內(nèi)容等信息,因而,根據(jù)第一軟件的工作狀態(tài)日志,可以分析出第一軟件的當(dāng)前狀態(tài)。在步驟S102中,可以是系統(tǒng)自己讀取第一軟件的工作狀態(tài)日志,再將讀取的工作狀態(tài)日志發(fā)送給第二軟件,也可以是系統(tǒng)控制第二軟件讀取第一軟件的工作狀態(tài)日志。
[0044]步驟S103、控制第二軟件根據(jù)第一軟件的工作狀態(tài)日志,將第二軟件的工作狀態(tài)同步至第一軟件的工作狀態(tài)。
[0045]在一個(gè)實(shí)施例中,控制第二軟件對(duì)第一軟件的工作狀態(tài)日志進(jìn)行分析,第二軟件分析獲得第一軟件的歷史工作過程和第一軟件的當(dāng)前狀態(tài)等信息之后,控制第二軟件根據(jù)分析獲得的信息進(jìn)行狀態(tài)同步處理,將第二軟件的工作狀態(tài)同步至第一軟件的工作狀態(tài)。具體地,可以在第二軟件進(jìn)行狀態(tài)同步處理的同時(shí),判斷第二軟件的工作狀態(tài)是否同步至第一軟件的工作狀態(tài),由于在第二軟件進(jìn)行狀態(tài)同步處理的同時(shí),第一軟件也是依然還在處于運(yùn)行狀態(tài)的,第一軟件的工作狀態(tài)依然還處于變化中,因而第一軟件的工作狀態(tài)日志亦還處于更新中,因而,第二軟件的工作狀態(tài)是逐漸接近第一軟件的工作狀態(tài)的,最終,系統(tǒng)可判定出第二軟件的工作狀態(tài)與第一軟件的工作狀態(tài)是否同步。
[0046]步驟S104、控制第一軟件停止運(yùn)行。
[0047]當(dāng)?shù)诙浖墓ぷ鳡顟B(tài)同步至第一軟件的工作狀態(tài)時(shí),就可以控制第一軟件停止運(yùn)行了,此時(shí),運(yùn)行中的第二軟件替代了原來運(yùn)行中的第一軟件,繼續(xù)為用戶服務(wù)。并且,在整個(gè)替代的過程中,一直都有軟件在運(yùn)行、在為用戶服務(wù),沒有出現(xiàn)服務(wù)中斷的現(xiàn)象,因此,實(shí)現(xiàn)了軟件的無縫熱切換。
[0048]例如,當(dāng)?shù)谝卉浖偷诙浖峭卉浖牟煌姹緯r(shí),可以利用本發(fā)明實(shí)施例提供的方法實(shí)現(xiàn)對(duì)軟件的版本升級(jí)或者降級(jí)(當(dāng)?shù)诙浖陌姹靖哂诘谝卉浖陌姹緯r(shí),實(shí)現(xiàn)升級(jí);當(dāng)?shù)诙浖陌姹镜陀诘谝卉浖陌姹緯r(shí),實(shí)現(xiàn)降級(jí)),并且在版本升級(jí)或降級(jí)的過程中,沒有出現(xiàn)服務(wù)中斷的現(xiàn)象,實(shí)現(xiàn)了軟件版本升級(jí)或降級(jí)的過程中的無縫熱切換。
[0049]又例如,當(dāng)?shù)谝卉浖偷诙浖峭卉浖牟煌瑢?shí)例時(shí),可以利用本發(fā)明實(shí)施例提供的方法實(shí)現(xiàn)對(duì)該軟件的實(shí)例切換,并且在實(shí)例切換的過程中,沒有出現(xiàn)服務(wù)中斷的現(xiàn)象,實(shí)現(xiàn)了軟件實(shí)例切換過程中的無縫熱切換。
[0050]另外,在一個(gè)實(shí)施例中,如果第一軟件是與外部軟件或者外部設(shè)備有數(shù)據(jù)鏈接的軟件,即,第一軟件是與外部有數(shù)據(jù)交互的軟件時(shí),則上述方法還可以在“控制第一軟件停止運(yùn)行”之前,將與第一軟件的數(shù)據(jù)鏈接切換連接至第二軟件,從而使得第二軟件替代第一軟件之后,能完整實(shí)現(xiàn)第一軟件的所有功能。
[0051]另外,如圖2所示,上述方法還可包括以下步驟SlOO:在第一軟件處于運(yùn)行狀態(tài)時(shí),持續(xù)記錄第一軟件的工作狀態(tài),生成上述第一軟件的工作狀態(tài)日志。只要第一軟件處于運(yùn)行狀態(tài),就可執(zhí)行該操作,因而,在上述方法執(zhí)行步驟S104 “控制第一軟件停止運(yùn)行”之前,都可以執(zhí)行上述操作。由此可見,在上述步驟S103中,在第二軟件進(jìn)行狀態(tài)同步處理的同時(shí),第一軟件也是依然還在處于運(yùn)行狀態(tài)的,第一軟件的工作狀態(tài)依然還處于變化中,因而第一軟件的工作狀態(tài)日志亦還處于更新中,因而,第二軟件的工作狀態(tài)是逐漸接近第一軟件的工作狀態(tài)的。
[0052]本發(fā)明實(shí)施例提供的上述方法,在進(jìn)行軟件切換的過程中,沒有出現(xiàn)服務(wù)中斷的現(xiàn)象,實(shí)現(xiàn)了軟件的無縫熱切換。
[0053]對(duì)應(yīng)本發(fā)明實(shí)施例提供的上述方法,本發(fā)明實(shí)施例還提供了一種軟件更新裝置,如圖3所示,該裝置包括:
[0054]啟動(dòng)模塊31,用于在第一軟件處于運(yùn)行狀態(tài)時(shí),啟動(dòng)第二軟件;
[0055]讀取模塊32,用于讀取第一軟件的工作狀態(tài)日志;
[0056]同步模塊33,用于控制第二軟件根據(jù)第一軟件的工作狀態(tài)日志,將第二軟件的工作狀態(tài)同步至第一軟件的工作狀態(tài);
[0057]控制模塊34,用于控制第一軟件停止運(yùn)行;
[0058]其中,第一軟件和第二軟件是同一軟件的不同版本;或者,第一軟件和第二軟件是同一軟件的不同實(shí)例。
[0059]在一個(gè)實(shí)施例中,如圖4所示,上述裝置還可包括:
[0060]切換模塊41,用于在控制模塊34控制第一軟件停止運(yùn)行之前,將與第一軟件的數(shù)據(jù)鏈接切換連接至第二軟件。
[0061 ] 在一個(gè)實(shí)施例中,上述讀取模塊可包括:
[0062]讀取子模塊,用于控制第二軟件讀取第一軟件的工作狀態(tài)日志。
[0063]在一個(gè)實(shí)施例中,如圖4所示,上述裝置還可包括:
[0064]記錄模塊42,用于在第一軟件處于運(yùn)行狀態(tài)時(shí),持續(xù)記錄第一軟件的工作狀態(tài),生成第一軟件的工作狀態(tài)日志。
[0065]本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器和光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
[0066]本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
[0067]這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
[0068]這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
[0069]顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
【權(quán)利要求】
1.一種軟件更新方法,其特征在于,包括: 在第一軟件處于運(yùn)行狀態(tài)時(shí),啟動(dòng)第二軟件; 讀取所述第一軟件的工作狀態(tài)日志; 控制所述第二軟件根據(jù)所述第一軟件的工作狀態(tài)日志,將所述第二軟件的工作狀態(tài)同步至所述第一軟件的工作狀態(tài); 控制所述第一軟件停止運(yùn)行; 其中,所述第一軟件和第二軟件是同一軟件的不同版本;或者,所述第一軟件和第二軟件是同一軟件的不同實(shí)例。
2.如權(quán)利要求1所述的方法,其特征在于,所述控制所述第一軟件停止運(yùn)行之前,所述方法還包括: 將與所述第一軟件的數(shù)據(jù)鏈接切換連接至所述第二軟件。
3.如權(quán)利要求1或2所述的方法,其特征在于, 所述第一軟件的版本低于所述第二軟件的版本。
4.如權(quán)利要求1或2所述的方法,其特征在于, 所述讀取所述第一軟件的工作狀態(tài)日志,包括: 控制所述第二軟件讀取所述第一軟件的工作狀態(tài)日志。
5.如權(quán)利要求1或2所述的方法,其特征在于,所述方法還包括: 在第一軟件處于運(yùn)行狀態(tài)時(shí),持續(xù)記錄所述第一軟件的工作狀態(tài),生成所述第一軟件的工作狀態(tài)日志。
6.一種軟件更新裝置,其特征在于,包括: 啟動(dòng)模塊,用于在第一軟件處于運(yùn)行狀態(tài)時(shí),啟動(dòng)第二軟件; 讀取模塊,用于讀取所述第一軟件的工作狀態(tài)日志; 同步模塊,用于控制所述第二軟件根據(jù)所述第一軟件的工作狀態(tài)日志,將所述第二軟件的工作狀態(tài)同步至所述第一軟件的工作狀態(tài); 控制模塊,用于控制所述第一軟件停止運(yùn)行; 其中,所述第一軟件和第二軟件是同一軟件的不同版本;或者,所述第一軟件和第二軟件是同一軟件的不同實(shí)例。
7.如權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括: 切換模塊,用于在所述控制模塊控制所述第一軟件停止運(yùn)行之前,將與所述第一軟件的數(shù)據(jù)鏈接切換連接至所述第二軟件。
8.如權(quán)利要求6或7所述的裝置,其特征在于, 所述讀取模塊包括: 讀取子模塊,用于控制所述第二軟件讀取所述第一軟件的工作狀態(tài)日志。
9.如權(quán)利要求6或7所述的裝置,其特征在于,所述裝置還包括: 記錄模塊,用于在第一軟件處于運(yùn)行狀態(tài)時(shí),持續(xù)記錄所述第一軟件的工作狀態(tài),生成所述第一軟件的工作狀態(tài)日志。
【文檔編號(hào)】G06F9/445GK104239103SQ201410476005
【公開日】2014年12月24日 申請(qǐng)日期:2014年9月17日 優(yōu)先權(quán)日:2014年9月17日
【發(fā)明者】陳軍, 梁玫娟 申請(qǐng)人:北京優(yōu)特捷信息技術(shù)有限公司