本發(fā)明屬于計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種應(yīng)用于應(yīng)用系統(tǒng)遷移的升級(jí)控制方法及升級(jí)控制設(shè)備。
背景技術(shù):
現(xiàn)代計(jì)算機(jī)技術(shù)在虛擬化和大型機(jī)硬件性能上得到了不斷地提高,這也很大程度上提升了大量應(yīng)用程序運(yùn)行在少量集中式服務(wù)器和云計(jì)算平臺(tái)上的能力。因此,在很多情況下,能夠?qū)⒛硞€(gè)應(yīng)用系統(tǒng)遷移或者重建到新興的計(jì)算平臺(tái)上(如大型數(shù)據(jù)中心或者云計(jì)算平臺(tái)等)的能力是用戶(hù)所迫切需求的。
為了適應(yīng)應(yīng)用系統(tǒng)環(huán)境的變化,使得遷移以后的應(yīng)用系統(tǒng)能夠達(dá)到預(yù)期的效果。在應(yīng)用系統(tǒng)遷移過(guò)程中,通常需要對(duì)源應(yīng)用系統(tǒng)(為便于表述,后續(xù)將遷移前的應(yīng)用系統(tǒng)描述為源應(yīng)用系統(tǒng))中的程序(例如應(yīng)用程序、系統(tǒng)程序等)進(jìn)行升級(jí)。更為復(fù)雜的是,這些程序一般都有著一定的相互依賴(lài)關(guān)系,這是遷移和升級(jí)中必須考慮且不能違反的基本準(zhǔn)則。
傳統(tǒng)方案中,每次在應(yīng)用系統(tǒng)遷移時(shí)都需要由工程人員依賴(lài)自身的經(jīng)驗(yàn)對(duì)源應(yīng)用系統(tǒng)中的程序進(jìn)行升級(jí),升級(jí)效率低下。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種應(yīng)用于應(yīng)用系統(tǒng)遷移的升級(jí)控制方法及升級(jí)控制設(shè)備,用于提高應(yīng)用系統(tǒng)遷移場(chǎng)景下的升級(jí)效率。
本發(fā)明第一方面提供一種應(yīng)用于應(yīng)用系統(tǒng)遷移的升級(jí)控制方法,包括:
獲取當(dāng)前待遷移的應(yīng)用系統(tǒng)的系統(tǒng)信息,其中,所述系統(tǒng)信息包括:用以指示所述應(yīng)用系統(tǒng)中待升級(jí)的各個(gè)程序的信息;
基于獲取的所述系統(tǒng)信息,在預(yù)設(shè)的模板數(shù)據(jù)庫(kù)中查找與所述系統(tǒng)信息匹配的升級(jí)模板,其中,所述模板數(shù)據(jù)庫(kù)中存儲(chǔ)兩個(gè)以上升級(jí)模板,每個(gè)升級(jí)模板包括:與一個(gè)或兩個(gè)以上程序相關(guān)的升級(jí)方案;
若查找到與所述系統(tǒng)信息匹配的升級(jí)模板,則根據(jù)所述升級(jí)模板對(duì)所述應(yīng)用系統(tǒng)中待升級(jí)的程序進(jìn)行升級(jí)處理。
基于本發(fā)明第一方面,在第一種可能的實(shí)現(xiàn)方式中,所述系統(tǒng)信息還包括:用以指示待升級(jí)的各個(gè)程序之間的依賴(lài)關(guān)系的信息,并且,所述系統(tǒng)信息以圖形表示,所述升級(jí)模板還包括:以圖形表示的一個(gè)或兩個(gè)以上程序的依賴(lài)關(guān)系;
所述基于獲取的所述系統(tǒng)信息,在預(yù)設(shè)的模板數(shù)據(jù)庫(kù)中查找與所述系統(tǒng)信息匹配的升級(jí)模板,為:
基于圖像相似度算法和獲取的所述系統(tǒng)信息,在預(yù)設(shè)的模板數(shù)據(jù)庫(kù)中查找與所述系統(tǒng)信息匹配的升級(jí)模板。
基于本發(fā)明第一方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述基于圖像相似度算法和獲取的所述系統(tǒng)信息,在預(yù)設(shè)的模板數(shù)據(jù)庫(kù)中查找與所述系統(tǒng)信息匹配的升級(jí)模板,包括:
將表示所述系統(tǒng)信息的圖形通過(guò)聚類(lèi)算法分割為兩個(gè)以上子圖;
針對(duì)每個(gè)子圖,基于圖像相似度算法在預(yù)設(shè)的模板數(shù)據(jù)庫(kù)中查找與各個(gè)子圖匹配的升級(jí)模板。
基于本發(fā)明第一方面,或者本發(fā)明第一方面的第一種可能的實(shí)現(xiàn)方式,或者本發(fā)明第一方面的第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,每個(gè)升級(jí)模板還包括:至少一個(gè)危險(xiǎn)指數(shù),其中,所述危險(xiǎn)指數(shù)用以量化相應(yīng)升級(jí)模板所包括的升級(jí)方案在至少一個(gè)應(yīng)用系統(tǒng)中執(zhí)行的潛在風(fēng)險(xiǎn),所述危險(xiǎn)指數(shù)與所述潛在風(fēng)險(xiǎn)成正相關(guān);
所述若查找到與所述系統(tǒng)信息匹配的升級(jí)模板,則根據(jù)所述升級(jí)模板對(duì)所述應(yīng)用系統(tǒng)中待升級(jí)的程序進(jìn)行升級(jí)處理,包括:
若查找到與所述系統(tǒng)信息匹配且與相同程序相關(guān)的兩個(gè)以上升級(jí)模板,則根據(jù)所述兩個(gè)以上升級(jí)模板中危險(xiǎn)指數(shù)最低的升級(jí)模板對(duì)所述應(yīng)用系統(tǒng)中的所述相同程序進(jìn)行升級(jí)處理。
基于本發(fā)明第一方面,或者本發(fā)明第一方面的第一種可能的實(shí)現(xiàn)方式,或者本發(fā)明第一方面的第二種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,所述基于獲取的所述系統(tǒng)信息,在預(yù)設(shè)的模板數(shù)據(jù)庫(kù)中查找與所述系統(tǒng)信息匹配的升級(jí)模板,之后包括:
若查找不到與所述系統(tǒng)信息匹配的升級(jí)模板,則確定所述應(yīng)用系統(tǒng)中待升級(jí)的各個(gè)程序之間的依賴(lài)關(guān)系;
根據(jù)所述應(yīng)用系統(tǒng)中待升級(jí)的各個(gè)程序之間的依賴(lài)關(guān)系,生成與所述應(yīng)用系統(tǒng)中待升級(jí)的程序相關(guān)的升級(jí)方案;
以升級(jí)模板的形式存儲(chǔ)生成的升級(jí)方案,以便后續(xù)調(diào)用存儲(chǔ)的升級(jí)方案。
本發(fā)明第二方面提供一種應(yīng)用于應(yīng)用系統(tǒng)遷移的升級(jí)控制設(shè)備,包括:
系統(tǒng)信息獲取單元,用于獲取當(dāng)前待遷移的應(yīng)用系統(tǒng)的系統(tǒng)信息,其中,所述系統(tǒng)信息包括:用以指示所述應(yīng)用系統(tǒng)中待升級(jí)的各個(gè)程序的信息;
查找單元,用于基于所述系統(tǒng)信息獲取單元獲取的所述系統(tǒng)信息,在預(yù)設(shè)的模板數(shù)據(jù)庫(kù)中查找與所述系統(tǒng)信息匹配的升級(jí)模板,其中,所述模板數(shù)據(jù)庫(kù)中存儲(chǔ)兩個(gè)以上升級(jí)模板,每個(gè)升級(jí)模板包括:與一個(gè)或兩個(gè)以上程序相關(guān)的升級(jí)方案;
執(zhí)行單元,用于當(dāng)所述查找單元查找到與所述系統(tǒng)信息匹配的升級(jí)模板時(shí),根據(jù)所述升級(jí)模板對(duì)所述應(yīng)用系統(tǒng)中待升級(jí)的程序進(jìn)行升級(jí)處理。
基于本發(fā)明第二方面,在第一種可能的實(shí)現(xiàn)方式中,所述系統(tǒng)信息還包括:用以指示待升級(jí)的各個(gè)程序之間的依賴(lài)關(guān)系的信息,并且,所述系統(tǒng)信息以圖形表示,所述升級(jí)模板還包括:以圖形表示的一個(gè)或兩個(gè)以上程序的依賴(lài)關(guān)系;
所述查找單元具體用于:基于圖像相似度算法和所述系統(tǒng)信息獲取單元獲取的所述系統(tǒng)信息,在預(yù)設(shè)的模板數(shù)據(jù)庫(kù)中查找與所述系統(tǒng)信息匹配的升級(jí)模板。
基于本發(fā)明第二方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述查找單元包括:
分割單元,用于將表示所述系統(tǒng)信息的圖形通過(guò)聚類(lèi)算法分割為兩個(gè)以上子圖;
子查找單元,用于針對(duì)每個(gè)子圖,基于圖像相似度算法在預(yù)設(shè)的模板數(shù)據(jù)庫(kù)中查找與各個(gè)子圖匹配的升級(jí)模板。
本發(fā)明第三方面提供另一種應(yīng)用于應(yīng)用系統(tǒng)遷移的升級(jí)控制設(shè)備,上述升級(jí)控制設(shè)備包括:存儲(chǔ)器、處理器及存儲(chǔ)在上述存儲(chǔ)器上并可在上述處理器上運(yùn)行的計(jì)算機(jī)程序,上述處理器執(zhí)行上述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)如本發(fā)明第一方面或者本發(fā)明第一方面的任一可能實(shí)現(xiàn)方式中的升級(jí)控制方法。
本發(fā)明第四方面提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),上述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)程序,上述計(jì)算機(jī)程序被至少一個(gè)處理器執(zhí)行時(shí),實(shí)現(xiàn)如本發(fā)明第一方面或者本發(fā)明第一方面的任一可能實(shí)現(xiàn)方式中的升級(jí)控制方法。
由上可見(jiàn),本發(fā)明方案中預(yù)先設(shè)定好與程序相關(guān)的升級(jí)方案,針對(duì)待遷移的應(yīng)用系統(tǒng),獲取該應(yīng)用系統(tǒng)的系統(tǒng)信息,基于該系統(tǒng)信息在預(yù)設(shè)的模板數(shù)據(jù)庫(kù)中查找與該系統(tǒng)信息匹配的升級(jí)模板,當(dāng)查找到與該系統(tǒng)信息匹配的升級(jí)模板時(shí),根據(jù)查找到的升級(jí)模板對(duì)該應(yīng)用系統(tǒng)中待升級(jí)的程序進(jìn)行升級(jí)處理。本發(fā)明方案通過(guò)在模板數(shù)據(jù)庫(kù)中預(yù)設(shè)升級(jí)模板,使得在應(yīng)用系統(tǒng)需要遷移時(shí),可以復(fù)用模板數(shù)據(jù)庫(kù)中匹配的升級(jí)模板,而無(wú)需工程人員每次都依賴(lài)自身的經(jīng)驗(yàn)對(duì)應(yīng)用系統(tǒng)中的程序進(jìn)行升級(jí),在一定程度上能夠提高應(yīng)用系統(tǒng)遷移場(chǎng)景下的升級(jí)效率。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明提供的升級(jí)控制方法一個(gè)實(shí)施例流程示意圖;
圖2為本發(fā)明提供的一種應(yīng)用圖1所示的升級(jí)控制方法的遷移控制系統(tǒng)的系統(tǒng)架構(gòu)示意圖;
圖3為本發(fā)明提供的升級(jí)控制設(shè)備一個(gè)實(shí)施例結(jié)構(gòu)示意圖;
圖4為本發(fā)明提供的升級(jí)控制設(shè)備另一個(gè)實(shí)施例結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使得本發(fā)明的發(fā)明目的、特征、優(yōu)點(diǎn)能夠更加的明顯和易懂,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而非全部實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
實(shí)施例一
本發(fā)明實(shí)施例對(duì)一種應(yīng)用于應(yīng)用系統(tǒng)遷移的升級(jí)控制方法進(jìn)行描述,請(qǐng)參閱圖1,上述升級(jí)控制方法包括:
步驟101、獲取當(dāng)前待遷移的應(yīng)用系統(tǒng)的系統(tǒng)信息;
其中,上述系統(tǒng)信息包括:用以指示上述應(yīng)用系統(tǒng)中待升級(jí)的各個(gè)程序的信息。需要說(shuō)明的是,本發(fā)明實(shí)施例中的程序包括但不限于系統(tǒng)程序和應(yīng)用程序,本發(fā)明實(shí)施例提及的“升級(jí)”是指包含程序升級(jí)、打補(bǔ)丁、插件更新等一系列與程序相關(guān)的更新操作。
本發(fā)明實(shí)施例中,應(yīng)用系統(tǒng)由硬件系統(tǒng)、系統(tǒng)程序、應(yīng)用程序組成。其中,硬件系統(tǒng)由運(yùn)算器和控制器、存儲(chǔ)器、外圍接口和外圍設(shè)備組成。系統(tǒng)程序包括操作系統(tǒng)、編譯程序、數(shù)據(jù)庫(kù)管理系統(tǒng)、各種高級(jí)語(yǔ)言等。應(yīng)用程序由通用支援軟件和各種應(yīng)用軟件包組成??蛇x的,本發(fā)明實(shí)施例中的應(yīng)用系統(tǒng)也可以特指云系統(tǒng)(在某些場(chǎng)景下,云系統(tǒng)也被稱(chēng)為云計(jì)算操作系統(tǒng)、云計(jì)算中心操作系統(tǒng))。
在步驟101中,通過(guò)對(duì)應(yīng)用系統(tǒng)進(jìn)行全局遍歷,可以獲知該應(yīng)用系統(tǒng)的狀況(例如哪些程序需要升級(jí),各個(gè)程序?qū)ο到y(tǒng)資源的情況、各個(gè)程序之間的依賴(lài)關(guān)系等),進(jìn)而獲得包含上述用以指示上述應(yīng)用系統(tǒng)中待升級(jí)的各個(gè)程序的信息的系統(tǒng)信息。進(jìn)一步,上述系統(tǒng)信息還可以包括如下任一項(xiàng)或多項(xiàng)信息:待升級(jí)的各個(gè)程序?qū)ο到y(tǒng)資源的占用情況(例如待升級(jí)的各個(gè)程序占用的系統(tǒng)資源的比例)、待升級(jí)的各個(gè)程序之間的依賴(lài)關(guān)系。其中,各個(gè)程序之間的依賴(lài)關(guān)系決定了各個(gè)程序之間的升級(jí)順序,例如,tomcat(tomcat為免費(fèi)開(kāi)源的servlet容器,且具有傳統(tǒng)的web服務(wù)器的功能)與mysql(mysql是一個(gè)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng))之間的依賴(lài)關(guān)系決定了tomcat不能在mysql升級(jí)之前被升級(jí)。具體地,各個(gè)程序之間的依賴(lài)關(guān)系可預(yù)先標(biāo)準(zhǔn)化在各個(gè)程序中安裝包或配置文件中,通過(guò)分析各個(gè)程序的安裝包或配置文件可獲得各個(gè)程序之間的依賴(lài)關(guān)系。
步驟102、基于獲取的上述系統(tǒng)信息,在預(yù)設(shè)的模板數(shù)據(jù)庫(kù)中查找與上述系統(tǒng)信息匹配的升級(jí)模板;
其中,上述模板數(shù)據(jù)庫(kù)中存儲(chǔ)兩個(gè)以上升級(jí)模板,每個(gè)升級(jí)模板包括:與一個(gè)或兩個(gè)以上程序相關(guān)的升級(jí)方案。
本發(fā)明實(shí)施例中,可以預(yù)先基于應(yīng)用系統(tǒng)遷移的歷史經(jīng)驗(yàn)和/或?qū)Ω鱾€(gè)應(yīng)用系統(tǒng)的系統(tǒng)信息的收集分析,生成各種升級(jí)模板并存儲(chǔ)于模板數(shù)據(jù)庫(kù)中。其中,每個(gè)升級(jí)模板包括:與一個(gè)或兩個(gè)以上程序相關(guān)的升級(jí)方案。該升級(jí)方案可用以指引相應(yīng)的一個(gè)或兩個(gè)以上程序的升級(jí)過(guò)程(例如何時(shí)進(jìn)行升級(jí)、如何升級(jí)等)。
在步驟102中,由于系統(tǒng)信息包括待升級(jí)的各個(gè)程序的信息,而升級(jí)模板包括與一個(gè)或兩個(gè)以上程序相關(guān)的升級(jí)方案,因此,通過(guò)步驟101獲取的系統(tǒng)信息,即可從上述模板數(shù)據(jù)庫(kù)中查找與上述系統(tǒng)匹配的升級(jí)模板。例如,根據(jù)步驟101獲取的系統(tǒng)信息中包括的指示待升級(jí)的各個(gè)程序的信息,可從上述模板數(shù)據(jù)庫(kù)中查找包括與相應(yīng)程序相關(guān)的升級(jí)方案的升級(jí)模板。
在一種應(yīng)用場(chǎng)景中,上述系統(tǒng)信息還包括:用以指示待升級(jí)的各個(gè)程序之間的依賴(lài)關(guān)系的信息,并且,上述系統(tǒng)信息以圖形表示,上述升級(jí)模板還包括:以圖形表示的一個(gè)或兩個(gè)以上程序的依賴(lài)關(guān)系。步驟102可表現(xiàn)為:基于圖像相似度算法和獲取的上述系統(tǒng)信息(即步驟101獲取的系統(tǒng)信息),在預(yù)設(shè)的模板數(shù)據(jù)庫(kù)中查找與上述系統(tǒng)信息匹配的升級(jí)模板。
進(jìn)一步,考慮到一個(gè)應(yīng)用系統(tǒng)包含的待升級(jí)的程序可能較多,因此,可預(yù)先通過(guò)聚類(lèi)算法將存在依賴(lài)關(guān)系的程序進(jìn)行聚類(lèi)。具體地,上述基于圖像相似度算法和獲取的上述系統(tǒng)信息,在預(yù)設(shè)的模板數(shù)據(jù)庫(kù)中查找與上述系統(tǒng)信息匹配的升級(jí)模板包括:將表示上述系統(tǒng)信息的圖形通過(guò)聚類(lèi)算法分割為兩個(gè)以上子圖;針對(duì)每個(gè)子圖,基于圖像相似度算法在預(yù)設(shè)的模板數(shù)據(jù)庫(kù)中查找與各個(gè)子圖匹配的升級(jí)模板。其中,上述聚類(lèi)算法例如可以是min-cut算法、lda算法或其它聚類(lèi)算法,此處不做限定。
步驟103、若查找到與上述系統(tǒng)信息匹配的升級(jí)模板,則根據(jù)上述升級(jí)模板對(duì)上述應(yīng)用系統(tǒng)中待升級(jí)的程序進(jìn)行升級(jí)處理;
由于升級(jí)模板包含與一個(gè)或兩個(gè)以上程序相關(guān)的升級(jí)方案,而該升級(jí)方案可用以指引相應(yīng)的一個(gè)或兩個(gè)以上程序的升級(jí)過(guò)程(例如何時(shí)進(jìn)行升級(jí)、如何升級(jí)等)。因此,當(dāng)步驟102查找到與上述系統(tǒng)信息匹配的升級(jí)模板時(shí),便可根據(jù)上述升級(jí)模板對(duì)上述應(yīng)用系統(tǒng)中待升級(jí)的程序進(jìn)行相應(yīng)的升級(jí)處理。
進(jìn)一步,在步驟103中的升級(jí)處理過(guò)程中,還可自動(dòng)發(fā)現(xiàn)并解決潛在的升級(jí)沖突,以針對(duì)同一程序至多進(jìn)行一次升級(jí)。具體地,本發(fā)明實(shí)施例中的升級(jí)控制方法還包括:當(dāng)同一程序存在多個(gè)可升級(jí)的版本時(shí),遍歷所述同一程序與當(dāng)前待升級(jí)的其它程序之間的依賴(lài)關(guān)系,以升級(jí)次數(shù)最小化為準(zhǔn)則從上述同一程序的多個(gè)可升級(jí)的版本確定一目標(biāo)版本,基于該目標(biāo)版本對(duì)上述同一程序進(jìn)行升級(jí)。舉例說(shuō)明,當(dāng)程序libxml存在2.5.0和2.6.0這兩個(gè)可升級(jí)的版本時(shí),遍歷版程序libxml與當(dāng)前待升級(jí)的其它程序之間的依賴(lài)關(guān)系,若遍歷到升級(jí)程序apache之前需要將libxml的版本升級(jí)到2.5.0或者更高版,而升級(jí)程序php之前需要將libxml的版本升級(jí)到2.6.0或者更高版,則以升級(jí)次數(shù)最小化為準(zhǔn)則從上述同一程序的多個(gè)可升級(jí)的版本確定版本2.6.0作為libxml當(dāng)前的目標(biāo)版本,以兼顧php5.5.8和apache軟件的升級(jí),之后基于版本2.6.0升級(jí)libxml。
可選的,每個(gè)升級(jí)模板還包括:至少一個(gè)危險(xiǎn)指數(shù),其中,上述危險(xiǎn)指數(shù)用以量化相應(yīng)升級(jí)模板所包括的升級(jí)方案在至少一個(gè)應(yīng)用系統(tǒng)中執(zhí)行的潛在風(fēng)險(xiǎn),上述危險(xiǎn)指數(shù)與所述潛在風(fēng)險(xiǎn)成正相關(guān),也即,上述危險(xiǎn)指數(shù)越大,基于相應(yīng)升級(jí)方案進(jìn)行升級(jí)處理的現(xiàn)在風(fēng)險(xiǎn)越大。具體地,上述危害指數(shù)可以依據(jù)工程師的經(jīng)驗(yàn)賦予,或者預(yù)先通過(guò)在虛擬機(jī)上進(jìn)行升級(jí)實(shí)驗(yàn)后評(píng)估確定,或者上述危險(xiǎn)指數(shù)也可由已知的統(tǒng)計(jì)模型(例如正態(tài)分布模型等)導(dǎo)出,此處不作限定。其中,同一升級(jí)模板在不同的應(yīng)用系統(tǒng)中的危險(xiǎn)指數(shù)可能不同。,不是本專(zhuān)利討論的重點(diǎn)。在步驟103中,若查找到與上述系統(tǒng)信息匹配且與相同程序相關(guān)的兩個(gè)以上升級(jí)模板,則根據(jù)上述兩個(gè)以上升級(jí)模板中危險(xiǎn)指數(shù)最低的升級(jí)模板對(duì)上述應(yīng)用系統(tǒng)中的所述相同程序進(jìn)行升級(jí)處理,也即,若查找到與上述系統(tǒng)信息匹配的兩個(gè)以上升級(jí)模板,且這兩個(gè)以上升級(jí)模板所包含的升級(jí)方案針對(duì)的程序是相同的,那么,從這兩個(gè)以上升級(jí)模板中,選取危險(xiǎn)指數(shù)最低的升級(jí)模板對(duì)上述應(yīng)用系統(tǒng)中的程序進(jìn)行升級(jí)處理。
可選的,若查找到與上述系統(tǒng)信息匹配的升級(jí)模板,也可以輸出查找到的升級(jí)模板和相應(yīng)的危險(xiǎn)指數(shù),以便相關(guān)人員對(duì)查找到的升級(jí)模板進(jìn)行篩選并確定是否基于查找到的升級(jí)模板進(jìn)行升級(jí)處理,在接收到確定升級(jí)指令時(shí),在該升級(jí)指令的指示下,基于查找到的升級(jí)模板或選定的升級(jí)模板進(jìn)行升級(jí)處理。
進(jìn)一步,若在步驟102查找不到與上述系統(tǒng)信息匹配的升級(jí)模板,則可以自動(dòng)生成相應(yīng)的升級(jí)模板并將生成的升級(jí)模板存儲(chǔ)在上述模板數(shù)據(jù)庫(kù)中,以便后續(xù)復(fù)用。具體地,本發(fā)明實(shí)施例中的升級(jí)控制方法還可以包括:確定上述應(yīng)用系統(tǒng)中待升級(jí)的各個(gè)程序之間的依賴(lài)關(guān)系;根據(jù)上述應(yīng)用系統(tǒng)中待升級(jí)的各個(gè)程序之間的依賴(lài)關(guān)系,生成與所述應(yīng)用系統(tǒng)中待升級(jí)的程序相關(guān)的升級(jí)方案;以升級(jí)模板的形式存儲(chǔ)生成的升級(jí)方案,以便后續(xù)調(diào)用存儲(chǔ)的升級(jí)方案。
當(dāng)然,在其它實(shí)施例中,當(dāng)在步驟102查找不到與上述系統(tǒng)信息匹配的升級(jí)模板時(shí),也可以輸出提示信息,以提示相關(guān)人員介入處理。
需要說(shuō)明的是,本發(fā)明實(shí)施例中的升級(jí)控制方法可以由升級(jí)控制設(shè)備實(shí)現(xiàn),該升級(jí)控制設(shè)備可以為獨(dú)立的設(shè)備,也可以集成在諸如遷移管理設(shè)備(例如遷移管理服務(wù)器)中,此處不作限定。
應(yīng)理解,上述實(shí)施例中各步驟的序號(hào)的大小并不意味著執(zhí)行順序的先后,各過(guò)程的執(zhí)行順序應(yīng)以其功能和內(nèi)在邏輯確定,而不應(yīng)對(duì)本發(fā)明實(shí)施例的實(shí)施過(guò)程構(gòu)成任何限定。
由上可見(jiàn),本發(fā)明實(shí)施例中預(yù)先設(shè)定好與程序相關(guān)的升級(jí)方案,針對(duì)待遷移的應(yīng)用系統(tǒng),獲取該應(yīng)用系統(tǒng)的系統(tǒng)信息,基于該系統(tǒng)信息在預(yù)設(shè)的模板數(shù)據(jù)庫(kù)中查找與該系統(tǒng)信息匹配的升級(jí)模板,當(dāng)查找到與該系統(tǒng)信息匹配的升級(jí)模板時(shí),根據(jù)查找到的升級(jí)模板對(duì)該應(yīng)用系統(tǒng)中待升級(jí)的程序進(jìn)行升級(jí)處理。本發(fā)明方案通過(guò)在模板數(shù)據(jù)庫(kù)中預(yù)設(shè)升級(jí)模板,使得在應(yīng)用系統(tǒng)需要遷移時(shí),可以復(fù)用模板數(shù)據(jù)庫(kù)中匹配的升級(jí)模板,而無(wú)需工程人員每次都依賴(lài)自身的經(jīng)驗(yàn)對(duì)應(yīng)用系統(tǒng)中的程序進(jìn)行升級(jí),在一定程度上能夠提高應(yīng)用系統(tǒng)遷移場(chǎng)景下的升級(jí)效率。
下面以一具體應(yīng)用場(chǎng)景,對(duì)一種應(yīng)用于圖1所示實(shí)施例中的升級(jí)控制方法的遷移控制系統(tǒng)進(jìn)行描述。請(qǐng)參閱圖2所示的遷移控制系統(tǒng)的系統(tǒng)架構(gòu),該升級(jí)系統(tǒng)包括:
云數(shù)據(jù)中心21、數(shù)據(jù)中心22、遷移管理服務(wù)器23、公用數(shù)據(jù)存儲(chǔ)單元24和模板數(shù)據(jù)庫(kù)25。
其中,云數(shù)據(jù)中心21可以由一個(gè)或多個(gè)虛擬服務(wù)器組成的云存儲(chǔ)設(shè)備。對(duì)于需要將數(shù)據(jù)存儲(chǔ)在企業(yè)設(shè)備以外環(huán)境的用戶(hù)和需要更大容量存儲(chǔ)空間的用戶(hù)來(lái)說(shuō),云存儲(chǔ)設(shè)備是最佳的存儲(chǔ)途徑。
數(shù)據(jù)中心22為集中式的數(shù)據(jù)處理設(shè)備,對(duì)來(lái)自不同用戶(hù)的不同類(lèi)型的系統(tǒng)信息進(jìn)行管理,數(shù)據(jù)中心22可以由多個(gè)服務(wù)器組成,包括萬(wàn)維網(wǎng)服務(wù)器、網(wǎng)絡(luò)服務(wù)器、文件服務(wù)器、打印服務(wù)器。
遷移管理服務(wù)器23包括但不限于:遷移引擎、管理服務(wù)器、web服務(wù)器和其它可以用來(lái)傳送和接受的設(shè)備。遷移引擎可以訪問(wèn)模板數(shù)據(jù)庫(kù)25,以從中接收或獲取所需要的模板(例如前述的升級(jí)模版),遷移引擎可實(shí)現(xiàn)圖1所示實(shí)施例的升級(jí)控制方法。
實(shí)施例二
本發(fā)明提供一種應(yīng)用于應(yīng)用系統(tǒng)遷移的升級(jí)控制設(shè)備。如圖3所示,上述升級(jí)控制設(shè)備包括:
系統(tǒng)信息獲取單元31,用于獲取當(dāng)前待遷移的應(yīng)用系統(tǒng)的系統(tǒng)信息,其中,所述系統(tǒng)信息包括:用以指示所述應(yīng)用系統(tǒng)中待升級(jí)的各個(gè)程序的信息;
查找單元32,用于基于系統(tǒng)信息獲取單元31獲取的所述系統(tǒng)信息,在預(yù)設(shè)的模板數(shù)據(jù)庫(kù)中查找與所述系統(tǒng)信息匹配的升級(jí)模板,其中,所述模板數(shù)據(jù)庫(kù)中存儲(chǔ)兩個(gè)以上升級(jí)模板,每個(gè)升級(jí)模板包括:與一個(gè)或兩個(gè)以上程序相關(guān)的升級(jí)方案;
執(zhí)行單元33,用于當(dāng)查找單元32查找到與所述系統(tǒng)信息匹配的升級(jí)模板時(shí),根據(jù)所述升級(jí)模板對(duì)所述應(yīng)用系統(tǒng)中待升級(jí)的程序進(jìn)行升級(jí)處理。
可選的,所述系統(tǒng)信息還包括:用以指示待升級(jí)的各個(gè)程序之間的依賴(lài)關(guān)系的信息,并且,所述系統(tǒng)信息以圖形表示,所述升級(jí)模板還包括:以圖形表示的一個(gè)或兩個(gè)以上程序的依賴(lài)關(guān)系;
查找單元32具體用于:基于圖像相似度算法和所述系統(tǒng)信息獲取單元獲取的所述系統(tǒng)信息,在預(yù)設(shè)的模板數(shù)據(jù)庫(kù)中查找與所述系統(tǒng)信息匹配的升級(jí)模板。
進(jìn)一步,查找單元32包括:分割單元,用于將表示所述系統(tǒng)信息的圖形通過(guò)聚類(lèi)算法分割為兩個(gè)以上子圖;子查找單元,用于針對(duì)每個(gè)子圖,基于圖像相似度算法在預(yù)設(shè)的模板數(shù)據(jù)庫(kù)中查找與各個(gè)子圖匹配的升級(jí)模板。
可選的,每個(gè)升級(jí)模板還包括:至少一個(gè)危險(xiǎn)指數(shù),其中,所述危險(xiǎn)指數(shù)用以量化相應(yīng)升級(jí)模板所包括的升級(jí)方案在至少一個(gè)應(yīng)用系統(tǒng)中執(zhí)行的潛在風(fēng)險(xiǎn),所述危險(xiǎn)指數(shù)與所述潛在風(fēng)險(xiǎn)成正相關(guān)。執(zhí)行單元33還用于:當(dāng)查找單元32查找到與所述系統(tǒng)信息匹配且與相同程序相關(guān)的兩個(gè)以上升級(jí)模板時(shí),根據(jù)所述兩個(gè)以上升級(jí)模板中危險(xiǎn)指數(shù)最低的升級(jí)模板對(duì)所述應(yīng)用系統(tǒng)中的所述相同程序進(jìn)行升級(jí)處理。
可選的,本發(fā)明實(shí)施例中的升級(jí)控制設(shè)備還包括:確定單元,用于當(dāng)查找單元32查找不到與所述系統(tǒng)信息匹配的升級(jí)模板時(shí),確定所述應(yīng)用系統(tǒng)中待升級(jí)的各個(gè)程序之間的依賴(lài)關(guān)系;生成單元,用于根據(jù)所述應(yīng)用系統(tǒng)中待升級(jí)的各個(gè)程序之間的依賴(lài)關(guān)系,生成與所述應(yīng)用系統(tǒng)中待升級(jí)的程序相關(guān)的升級(jí)方案;存儲(chǔ)單元,用于以升級(jí)模板的形式存儲(chǔ)生成的升級(jí)方案,以便后續(xù)調(diào)用存儲(chǔ)的升級(jí)方案。
需要說(shuō)明的是,本發(fā)明實(shí)施例中的升級(jí)控制設(shè)備可以為獨(dú)立的設(shè)備,也可以集成在諸如遷移管理設(shè)備(例如遷移管理服務(wù)器)中,此處不作限定。
應(yīng)理解,本發(fā)明實(shí)施例中的升級(jí)控制設(shè)備可以用于實(shí)現(xiàn)上述方法實(shí)施例中的全部技術(shù)方案,其各個(gè)功能模塊的功能可以根據(jù)上述方法實(shí)施例中的方法具體實(shí)現(xiàn),其具體實(shí)現(xiàn)過(guò)程可參照上述實(shí)施例中的相關(guān)描述,此處不再贅述。
由上可見(jiàn),本發(fā)明實(shí)施例中預(yù)先設(shè)定好與程序相關(guān)的升級(jí)方案,針對(duì)待遷移的應(yīng)用系統(tǒng),獲取該應(yīng)用系統(tǒng)的系統(tǒng)信息,基于該系統(tǒng)信息在預(yù)設(shè)的模板數(shù)據(jù)庫(kù)中查找與該系統(tǒng)信息匹配的升級(jí)模板,當(dāng)查找到與該系統(tǒng)信息匹配的升級(jí)模板時(shí),根據(jù)查找到的升級(jí)模板對(duì)該應(yīng)用系統(tǒng)中待升級(jí)的程序進(jìn)行升級(jí)處理。本發(fā)明方案通過(guò)在模板數(shù)據(jù)庫(kù)中預(yù)設(shè)升級(jí)模板,使得在應(yīng)用系統(tǒng)需要遷移時(shí),可以復(fù)用模板數(shù)據(jù)庫(kù)中匹配的升級(jí)模板,而無(wú)需工程人員每次都依賴(lài)自身的經(jīng)驗(yàn)對(duì)應(yīng)用系統(tǒng)中的程序進(jìn)行升級(jí),在一定程度上能夠提高應(yīng)用系統(tǒng)遷移場(chǎng)景下的升級(jí)效率。
實(shí)施例三
圖4是本發(fā)明一實(shí)施例提供的應(yīng)用于應(yīng)用系統(tǒng)遷移的升級(jí)控制設(shè)備的示意圖。如圖4所示,該實(shí)施例的升級(jí)控制設(shè)備4包括:處理器40、存儲(chǔ)器41以及存儲(chǔ)在存儲(chǔ)器41中并可在處理器40上運(yùn)行的計(jì)算機(jī)程序42,例如升級(jí)控制程序。處理器40執(zhí)行計(jì)算機(jī)程序42時(shí)實(shí)現(xiàn)上述各個(gè)方法實(shí)施例中的升級(jí)控制方法,例如圖1所示的步驟101~103?;蛘撸?jì)算機(jī)程序42可以被分割成一個(gè)或多個(gè)模塊/單元,上述一個(gè)或者多個(gè)模塊/單元被存儲(chǔ)在存儲(chǔ)器41中,并由處理器40執(zhí)行,以完成本發(fā)明。上述一個(gè)或多個(gè)模塊/單元可以是能夠完成特定功能的一系列計(jì)算機(jī)程序指令段,該指令段用于描述計(jì)算機(jī)程序42在升級(jí)控制設(shè)備4中的執(zhí)行過(guò)程。例如,計(jì)算機(jī)程序42可以被分割成如圖3所示的系統(tǒng)信息獲取單元31、查找單元32和執(zhí)行單元33,系統(tǒng)信息獲取單元31、查找單元32和執(zhí)行單元33的功能可以參照?qǐng)D3所示實(shí)施例中的描述,此處不再贅述。
升級(jí)控制設(shè)備4可包括,但不僅限于處理器40、存儲(chǔ)器41。本領(lǐng)域技術(shù)人員可以理解,圖4僅僅是升級(jí)控制設(shè)備4的示例,并不構(gòu)成對(duì)升級(jí)控制設(shè)備4的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件,例如升級(jí)控制設(shè)備4還可以包括輸入輸出設(shè)備、網(wǎng)絡(luò)接入設(shè)備、總線等。
所稱(chēng)處理器40可以是中央處理單元(centralprocessingunit,cpu),還可以是其他通用處理器、數(shù)字信號(hào)處理器(digitalsignalprocessor,dsp)、專(zhuān)用集成電路(applicationspecificintegratedcircuit,asic)、現(xiàn)成可編程門(mén)陣列(field-programmablegatearray,fpga)或者其他可編程邏輯器件、分立門(mén)或者晶體管邏輯器件、分立硬件組件等。通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器等。
上述存儲(chǔ)器41可以是升級(jí)控制設(shè)備4的內(nèi)部存儲(chǔ)單元,例如升級(jí)控制設(shè)備4的硬盤(pán)或內(nèi)存。上述存儲(chǔ)器41也可以是升級(jí)控制設(shè)備4的外部存儲(chǔ)設(shè)備,例如升級(jí)控制設(shè)備4上配備的插接式硬盤(pán),智能存儲(chǔ)卡(smartmediacard,smc),安全數(shù)字(securedigital,sd)卡,閃存卡(flashcard)等。進(jìn)一步地,上述存儲(chǔ)器41還可以既包括升級(jí)控制設(shè)備4的內(nèi)部存儲(chǔ)單元也包括外部存儲(chǔ)設(shè)備。存儲(chǔ)器41用于存儲(chǔ)上述計(jì)算機(jī)程序以及升級(jí)控制設(shè)備4所需的其他程序和數(shù)據(jù)。存儲(chǔ)器41還可以用于暫時(shí)地存儲(chǔ)已經(jīng)輸出或者將要輸出的數(shù)據(jù)。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為了描述的方便和簡(jiǎn)潔,僅以上述各功能單元、模塊的劃分進(jìn)行舉例說(shuō)明,實(shí)際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能單元、模塊完成,即將所述設(shè)備的內(nèi)部結(jié)構(gòu)劃分成不同的功能單元或模塊,以完成以上描述的全部或者部分功能。實(shí)施例中的各功能單元、模塊可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以?xún)蓚€(gè)或兩個(gè)以上單元集成在一個(gè)單元中,上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。另外,各功能單元、模塊的具體名稱(chēng)也只是為了便于相互區(qū)分,并不用于限制本申請(qǐng)的保護(hù)范圍。
在上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒(méi)有詳述或記載的部分,可以參見(jiàn)其它實(shí)施例的相關(guān)描述。
本領(lǐng)域普通技術(shù)人員可以意識(shí)到,結(jié)合本文中所公開(kāi)的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、或者計(jì)算機(jī)軟件和電子硬件的結(jié)合來(lái)實(shí)現(xiàn)。這些功能究竟以硬件還是軟件方式來(lái)執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專(zhuān)業(yè)技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來(lái)使用不同方法來(lái)實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
在本發(fā)明所提供的實(shí)施例中,應(yīng)該理解到,所揭露的設(shè)備和方法,可以通過(guò)其它的方式實(shí)現(xiàn)。例如,以上所描述的設(shè)備實(shí)施例僅僅是示意性的,例如,所述模塊或單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通訊連接可以是通過(guò)一些接口,裝置或單元的間接耦合或通訊連接,可以是電性,機(jī)械或其它的形式。
所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。
所述集成的模塊/單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷(xiāo)售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,也可以通過(guò)計(jì)算機(jī)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的計(jì)算機(jī)程序可存儲(chǔ)于一計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,該計(jì)算機(jī)程序在被處理器執(zhí)行時(shí),可實(shí)現(xiàn)上述各個(gè)方法實(shí)施例的步驟。其中,所述計(jì)算機(jī)程序包括計(jì)算機(jī)程序代碼,所述計(jì)算機(jī)程序代碼可以為源代碼形式、對(duì)象代碼形式、可執(zhí)行文件或某些中間形式等。所述計(jì)算機(jī)可讀介質(zhì)可以包括:能夠攜帶所述計(jì)算機(jī)程序代碼的任何實(shí)體或裝置、記錄介質(zhì)、u盤(pán)、移動(dòng)硬盤(pán)、磁碟、光盤(pán)、計(jì)算機(jī)存儲(chǔ)器、只讀存儲(chǔ)器(rom,read-onlymemory)、隨機(jī)存取存儲(chǔ)器(ram,randomaccessmemory)、電載波信號(hào)、電信信號(hào)以及軟件分發(fā)介質(zhì)等。需要說(shuō)明的是,所述計(jì)算機(jī)可讀介質(zhì)包含的內(nèi)容可以根據(jù)司法管轄區(qū)內(nèi)立法和專(zhuān)利實(shí)踐的要求進(jìn)行適當(dāng)?shù)脑鰷p,例如在某些司法管轄區(qū),根據(jù)立法和專(zhuān)利實(shí)踐,計(jì)算機(jī)可讀介質(zhì)不包括是電載波信號(hào)和電信信號(hào)。
以上所述實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。