專利名稱:軟件多版本升級(jí)的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件領(lǐng)域,尤其涉及一種軟件版本升級(jí)的方法及系統(tǒng)。
背景技術(shù):
作為軟件產(chǎn)品,每開發(fā)到一定階段、可執(zhí)行指定功能后,都需要將當(dāng)前的軟件固化下來,以版本形式作為產(chǎn)品發(fā)布。然后再在此基礎(chǔ)上繼續(xù)增加新的功能,或修改現(xiàn)有軟件中的BUG。
版本的內(nèi)容包括編譯出來的可執(zhí)行程序、編譯出來的動(dòng)態(tài)庫、用于控制軟件功能的配置文件、版本描述性文檔等等。
在軟件產(chǎn)品使用過程中,客戶針對(duì)軟件產(chǎn)品會(huì)提出很多新的需求,或者發(fā)現(xiàn)很多需要修改的地方。該軟件產(chǎn)品經(jīng)過修改完后,會(huì)有新的版本出現(xiàn),以滿足產(chǎn)品的要求,此時(shí)就要考慮版本升級(jí)的問題了。
軟件產(chǎn)品版本升級(jí)可以增強(qiáng)軟件的安全性、提高軟件產(chǎn)品的可靠性及兼容性,也可以實(shí)現(xiàn)更多的功能,以滿足更多的需求。
在軟件產(chǎn)品升級(jí)過程中,需要考慮軟件產(chǎn)品在使用過程中,已經(jīng)產(chǎn)生了很多有用的數(shù)據(jù),即便是在軟件產(chǎn)品的升級(jí)之后,能夠?qū)崿F(xiàn)更多更好的功能,也要完好地保留這些有用數(shù)據(jù),保證這些有用的數(shù)據(jù)不會(huì)被覆蓋掉。否則會(huì)為軟件產(chǎn)品的繼續(xù)使用帶來極大的不便,例如,舊版本的某軟件產(chǎn)品中,用戶設(shè)置了很多配置項(xiàng),配置文件已經(jīng)被修改,如果在升級(jí)過程中所述配置數(shù)據(jù)丟失,那么用戶修改的部分都將丟失,這是用戶所不會(huì)接受。
數(shù)據(jù)庫不會(huì)自動(dòng)升級(jí),新版本往數(shù)據(jù)庫中存儲(chǔ)數(shù)據(jù)的方式可能同舊版本不一樣了,數(shù)據(jù)表的格式可能發(fā)生了變化,如果只是簡(jiǎn)單的將新版本的可執(zhí)行文件和庫文件覆蓋舊版本的相應(yīng)文件,而數(shù)據(jù)庫的格式仍保持舊版本的樣子,那么就會(huì)發(fā)生數(shù)據(jù)庫讀寫失敗的問題。
所以說軟件產(chǎn)品版本升級(jí),必須在保證用戶現(xiàn)有勞動(dòng)成果的基礎(chǔ)上,增加新版本的功能,修改舊版本的BUG,比如對(duì)集成管理應(yīng)用平臺(tái)iMAP而言,就是要保存現(xiàn)有數(shù)據(jù)庫中的數(shù)據(jù)以及現(xiàn)有的配置文件等。
目前,被采用的軟件版本升級(jí)的方法有兩種,第一種方法就是為版本升級(jí)中需要升級(jí)的所有特性分別寫各自的升級(jí)程序,將這些升級(jí)程序放到一個(gè)目錄下;然后利用配置文件對(duì)這些升級(jí)程序進(jìn)行控制;在配置文件中,羅列了每一組可能的升級(jí),并且在后面指出該組升級(jí)需要調(diào)用哪些升級(jí)程序;用戶升級(jí)時(shí),只要提供原始版本號(hào)和新版本號(hào),升級(jí)腳本就可以從配置文件中找到需要調(diào)用的升級(jí)程序,然后對(duì)升級(jí)程序進(jìn)行調(diào)用,這種方法只適用于簡(jiǎn)單的軟件升級(jí),軟件規(guī)模越大、升級(jí)程序越多,這種方法就越難控制。第二種方法是需要針對(duì)新舊版本的特點(diǎn),為每一個(gè)版本的升級(jí)寫一個(gè)專門的升級(jí)程序,升級(jí)程序的命名方式和升級(jí)程序的存放位置不作特別規(guī)定。所述升級(jí)命令的腳本包括的功能有原軟件產(chǎn)品各個(gè)模塊數(shù)據(jù)庫格式的升級(jí)(如果數(shù)據(jù)庫格式發(fā)生變化的話)、各個(gè)模塊配置文件的升級(jí)(將用戶修改的配置項(xiàng)合入到新版本的配置文件中)等等。升級(jí)腳本是一個(gè)可執(zhí)行文件,里面存放了將舊版本升級(jí)到新版本時(shí),需要執(zhí)行的命令集合。
下面將以iMAP的版本升級(jí)過程為例,對(duì)目前的軟件產(chǎn)品升級(jí)方法二進(jìn)行詳細(xì)說明iMAP作為一種集成管理應(yīng)用平臺(tái),是一個(gè)基于CORBA標(biāo)準(zhǔn)開發(fā)的分布式系統(tǒng)。其目標(biāo)是為產(chǎn)品提供一個(gè)集中的網(wǎng)管平臺(tái)。iMAP包含故障管理、安全管理、拓?fù)涔芾?、公共組件等多個(gè)模塊,每個(gè)模塊都由專人負(fù)責(zé)開發(fā)和維護(hù)。圖1描述了iMAP版本的產(chǎn)生情況在iMAP的開發(fā)過程中,依次產(chǎn)生version1、version2、......、version7等版本,圖1中的圓點(diǎn)表示版本。iMAP利用專業(yè)的版本管理軟件(Rational Clearcase)進(jìn)行版本管理。在iMAP每個(gè)版本開發(fā)完成時(shí),通過版本管理軟件為iMAP當(dāng)前的所有代碼打一個(gè)版本標(biāo)簽,如version1、version2等。以后可以根據(jù)標(biāo)簽名從版本管理軟件中獲取對(duì)應(yīng)的iMAP版本。當(dāng)把某個(gè)iMAP版本提交給產(chǎn)品使用后,產(chǎn)品會(huì)對(duì)該版本提出許多新的需求,或者發(fā)現(xiàn)一些需要修改的問題。為了不和正在開發(fā)的主干版本相互影響,開發(fā)者會(huì)利用版本管理軟件在某個(gè)版本上創(chuàng)建一個(gè)分支,然后再在該分支上,專門針對(duì)產(chǎn)品的需求來進(jìn)行開發(fā)和維護(hù)。圖2描述了iMAP版本分支的產(chǎn)生情況。
由圖2可知,隨著iMAP的不斷開發(fā)和維護(hù),iMAP的版本和分支將越來越多、越來越復(fù)雜。
隨著iMAP用戶的不斷增多,用戶之間使用的版本差異性也就越來越大,這就造成在版本升級(jí)時(shí),新、舊版本的之間的關(guān)系十分復(fù)雜,版本升級(jí)的工作量非常大。比如說,圖2中的版本v7b1_version1發(fā)布了,而用戶目前使用的版本可能包括version1、version2、version3、v2b1_version1、v2b1_version2等等,那么需要考慮的新、舊版本升級(jí)情況可能包括version1=>v7b1_version1、version2=>v7b1_version1、version3=>v7b1_version1、v2b1_version1=>v7b1_version1、v2b1_version2=>v7b1_version1,等等。
版本升級(jí)必須在保證用戶現(xiàn)有勞動(dòng)成果的基礎(chǔ)上,對(duì)iMAP來說,就是要在現(xiàn)有數(shù)據(jù)庫中的數(shù)據(jù)和現(xiàn)有的配置文件的基礎(chǔ)上,增加新版本的功能,修改舊版本的BUG。
因此,研發(fā)人員需要針對(duì)新舊版本的特點(diǎn),寫版本升級(jí)命令的腳本,升級(jí)命令的腳本包括的功能有很多,對(duì)于iMAP來說,升級(jí)腳本至少包括的功能有各個(gè)模塊數(shù)據(jù)庫格式的升級(jí)(如果數(shù)據(jù)庫格式發(fā)生變化的話)、各個(gè)模塊配置文件的升級(jí),即將用戶修改的配置項(xiàng)合入到新版本的配置文件中。
綜合上述關(guān)于軟件版本升級(jí)的現(xiàn)有技術(shù),仍以iMAP為例,可以總結(jié)出現(xiàn)有技術(shù)存在的缺陷有1、升級(jí)腳本的存放目錄不合理。
假設(shè)iMAP版本存放在IMAP_ROOT目錄下,則升級(jí)腳本的存放目錄為IMAP_ROOT/upgrade目錄。升級(jí)的版本多時(shí),這個(gè)目錄下升級(jí)腳本文件的數(shù)量也隨之增多,達(dá)到了分不清哪個(gè)版本該使用哪些升級(jí)腳本文件的程度。
2、版本升級(jí)腳本命名混亂。
iMAP沒有一個(gè)統(tǒng)一的腳本命名方法,編寫升級(jí)腳本時(shí),各模塊的維護(hù)人員根據(jù)自己的習(xí)慣為各自模塊的升級(jí)腳本命名。升級(jí)的版本多時(shí),升級(jí)腳本文件的數(shù)量也隨之增多,升級(jí)腳本命名就顯得五花八門,令人眼花繚亂,時(shí)間長(zhǎng)了之后,維護(hù)起來非常困難。
3、重復(fù)勞動(dòng)太多。
對(duì)于不同的新舊版本升級(jí),升級(jí)內(nèi)容雖然不完全一樣,但也有相同的地方。而目前是針對(duì)每一個(gè)新舊版本的升級(jí),都寫一套獨(dú)立的升級(jí)腳本,造成了很多重復(fù)勞動(dòng)。
總之,軟件產(chǎn)品現(xiàn)有的版本升級(jí)方法開發(fā)周期長(zhǎng),軟件版本升級(jí)效率低,不易于管理、維護(hù)。
發(fā)明內(nèi)容
鑒于上述現(xiàn)有技術(shù)所存在的問題,本發(fā)明的目的是提供一種軟件多版本升級(jí)的方法及系統(tǒng),以提高軟件版本升級(jí)的效率,使得多版本升級(jí)軟件更便于管理、維護(hù)。
本發(fā)明提供的一種軟件多版本升級(jí)的方法,包括a、為不同指定版本間的升級(jí)任務(wù)分別建立不同的指定目錄,所述指定目錄用于存放與之對(duì)應(yīng)的升級(jí)腳本;
b、通過激活與指定版本間的升級(jí)任務(wù)相對(duì)應(yīng)的指定目錄下的升級(jí)腳本完成指定版本間的升級(jí)。
下述方法的技術(shù)方案為可選技術(shù)方案。
不同舊版本升級(jí)到同一新版本的各指定目錄具有相同的上級(jí)目錄,該上級(jí)目錄稱為該新版本目錄,不同新版本對(duì)應(yīng)不同的新版本目錄,不同新版本目錄具有相同的上級(jí)目錄。
所述步驟a還包括將不同升級(jí)腳本中各升級(jí)任務(wù)通用的公共資源存放在固定目錄下;且所述步驟b具體包括通過激活與指定版本間的升級(jí)任務(wù)相對(duì)應(yīng)的指定目錄下的公共組件升級(jí)腳本完成指定版本間的升級(jí)任務(wù);所述公共組件升級(jí)腳本用于存放調(diào)用所需升級(jí)腳本以及公共資源時(shí)所需要的執(zhí)行命令。
所述公共資源包括各個(gè)升級(jí)過程中都需要用到的通用工具和通用文檔。
所述通用工具和通用文檔分別設(shè)立有固定目錄。
所述步驟a還包括根據(jù)預(yù)定目標(biāo)模塊將升級(jí)腳本中執(zhí)行預(yù)定目標(biāo)模塊升級(jí)的內(nèi)容劃分成預(yù)定目標(biāo)模塊升級(jí)腳本;且所述步驟b具體包括各預(yù)定目標(biāo)模塊的升級(jí)腳本由與指定版本間的升級(jí)任務(wù)相對(duì)應(yīng)的指定目錄下的公共組件升級(jí)腳本統(tǒng)一調(diào)用,以完成指定版本間的升級(jí)。
本發(fā)明還提供有軟件多版本升級(jí)系統(tǒng),該系統(tǒng)包括一個(gè)或多個(gè)指定目錄單元,不同指定版本間的升級(jí)任務(wù)分別對(duì)應(yīng)一個(gè)指定目錄單元,各指定目錄單元均存放與之對(duì)應(yīng)的升級(jí)腳本,通過激活與指定版本間的升級(jí)任務(wù)相對(duì)應(yīng)的指定目錄單元下的升級(jí)腳本完成指定版本間的升級(jí)。
所述系統(tǒng)還包括公共資源存儲(chǔ)單元,所述公共資源存儲(chǔ)單元用于存儲(chǔ)各個(gè)升級(jí)過程中都需要用到的公共資源,由與指定目錄單元下的公共組件升級(jí)腳本調(diào)用,以完成升級(jí)任務(wù);所述公共組件升級(jí)腳本用于存放調(diào)用所需升級(jí)腳本以及公共資源時(shí)所需要的執(zhí)行命令的集合,以執(zhí)行指定版本間的升級(jí)任務(wù)。
所述公共資源存儲(chǔ)單元包括通用工具存儲(chǔ)子單元、通用文檔存儲(chǔ)子單元。
所述升級(jí)腳本根據(jù)預(yù)定目標(biāo)模塊劃分成預(yù)定目標(biāo)模塊升級(jí)腳本,由與指定版本間的升級(jí)任務(wù)相對(duì)應(yīng)的指定目錄單元下的公共組件升級(jí)腳本統(tǒng)一調(diào)用,執(zhí)行指定升級(jí)任務(wù)。
通過上述技術(shù)方案的描述可以看出,本發(fā)明通過將不同版本間的升級(jí)任務(wù)對(duì)應(yīng)的升級(jí)腳本存放在不同的指定目錄中,能夠高效、安全、快捷地實(shí)現(xiàn)多版本升級(jí)任務(wù),如可以方便的完成舊版本1、舊版本2、舊版本3等不同舊版本到同一新版本的升級(jí)任務(wù),即便在有多個(gè)舊版本到多個(gè)新版本升級(jí)等情況下,仍然可以高效、快捷、安全地完成軟件多版本升級(jí)的任務(wù),有效解決了升級(jí)腳本存放目錄不合理、版本升級(jí)腳本命名混亂的問題;本發(fā)明通過將各升級(jí)任務(wù)都會(huì)用到的公共資源存放在固定目錄下,如將通用的工具或者文檔放在固定的目錄下,避免了升級(jí)腳本的重復(fù)開發(fā)現(xiàn)象,減小了升級(jí)腳本的開發(fā)工作量;通過將升級(jí)腳本劃分成多個(gè)預(yù)定目標(biāo)模塊升級(jí)腳本,在升級(jí)任務(wù)中不涉及某個(gè)目標(biāo)模塊時(shí),則不需要維護(hù)相應(yīng)的目標(biāo)模塊升級(jí)腳本,進(jìn)一步減小了升級(jí)腳本的開發(fā)工作量,而且,使升級(jí)腳本便于管理和維護(hù)。從而通過本發(fā)明提供的技術(shù)方案實(shí)現(xiàn)了提高軟件多版本升級(jí)的工作效率、提高軟件多版本升級(jí)可維護(hù)性的目的。
圖1為iMAP版本的產(chǎn)生情況;圖2為iMAP版本分支的產(chǎn)生情況;
圖3為本發(fā)明實(shí)施例的軟件多版本升級(jí)流程圖;圖4為本發(fā)明實(shí)施例的iMAP多版本升級(jí)的目錄結(jié)構(gòu)。
具體實(shí)施例方式
本發(fā)明提供了一種方便靈活的方法來解決上述現(xiàn)有技術(shù)中存在的問題,當(dāng)軟件產(chǎn)品有新的版本需要更新、升級(jí)時(shí),只需激活與指定版本間的升級(jí)任務(wù)相對(duì)應(yīng)的指定目錄下的升級(jí)腳本,即可完成指定版本間的升級(jí)。利用本發(fā)明所提供的技術(shù)使得軟件產(chǎn)品不同版本間的升級(jí)更易于實(shí)現(xiàn),從而提高了軟件產(chǎn)品版本升級(jí)的工作效率。
本發(fā)明的核心是為不同指定版本間的升級(jí)任務(wù)分別建立不同的指定目錄,指定目錄用于存放與之對(duì)應(yīng)的升級(jí)腳本,通過激活與指定版本間的升級(jí)任務(wù)相對(duì)應(yīng)的指定目錄下的升級(jí)腳本完成指定版本間的升級(jí)。
在本發(fā)明中,不同舊版本升級(jí)到同一新版本的各指定目錄應(yīng)該是同級(jí)目錄并列關(guān)系,即不同舊版本升級(jí)到同一新版本的各指定目錄具有相同的上級(jí)目錄。這個(gè)上級(jí)目錄即為一個(gè)新版本建立的目錄,不同新版本的目錄可以具有相同的上級(jí)目錄。
為了避免升級(jí)腳本的重復(fù)開發(fā)、提供軟件版本的升級(jí)效率,本發(fā)明可以將不同升級(jí)腳本中各升級(jí)任務(wù)通用的公共資源存放在固定目錄下,還可以為各預(yù)定目標(biāo)模塊分別設(shè)置升級(jí)腳本。
具體一點(diǎn)講,本發(fā)明實(shí)現(xiàn)軟件產(chǎn)品版本升級(jí)時(shí)的設(shè)置步驟包括(1)為軟件產(chǎn)品每?jī)蓚€(gè)指定版本間的升級(jí)任務(wù)建立指定目錄,指定目錄用于存放指定版本間的升級(jí)腳本。
為了便于理解,這里仍以iMAP為例進(jìn)行說明。對(duì)于iMAP而言,如果存在version1=>v7b1_version1的升級(jí)任務(wù),那么就為這個(gè)升級(jí)任務(wù)建立指定目錄,如果不存在上述升級(jí)任務(wù),就不需要建立該指定目錄。
(2)按軟件產(chǎn)品的功能模塊即預(yù)定目標(biāo)模塊劃分升級(jí)腳本,這樣,可以對(duì)不同模塊的升級(jí)腳本分別進(jìn)行獨(dú)立的維護(hù),然后,由公共組件升級(jí)腳本來統(tǒng)一組織調(diào)用。
(3)將各個(gè)升級(jí)任務(wù)中需要用到的相對(duì)不變化的公共資源,如通用工具、通用文檔等,放到固定目錄下,由公共自己升級(jí)腳本來統(tǒng)一組織調(diào)用。這里的通用文檔如升級(jí)指導(dǎo)文檔等。通過該步驟的設(shè)置,使每個(gè)升級(jí)腳本均不需要包括公共資源部分的內(nèi)容,從而避免了升級(jí)腳本的重復(fù)開發(fā)現(xiàn)象,減小了升級(jí)腳本的開發(fā)工作量。
下面仍以iMAP為例、結(jié)合附圖3、附圖4對(duì)本發(fā)明提供的軟件版本升級(jí)方法進(jìn)行說明。
圖3中,在步驟31、為每個(gè)新版本建立一個(gè)目錄,該新版本目錄中包括多個(gè)指定目錄,不同指定目錄用于存放不同舊版本到該新版本的升級(jí)任務(wù)對(duì)應(yīng)的升級(jí)腳本,本發(fā)明應(yīng)保證一個(gè)升級(jí)任務(wù)對(duì)應(yīng)一個(gè)指定目錄。
下面以圖4為例對(duì)軟件版本升級(jí)的目錄結(jié)構(gòu)進(jìn)行說明。
圖4中,所有的升級(jí)腳本都在一個(gè)upgrade目錄中,在upgrade目錄下,為每一個(gè)新版本建立一個(gè)目錄,用于存放升級(jí)腳本,即由當(dāng)前各舊版本升級(jí)到該新版本的升級(jí)腳本。需要注意的是圖4中只為一個(gè)新版本建立了目錄,即Version_NEW目錄,如果還有其他更新的版本時(shí),比如說Version_NEW1(新版本1),則可以在upgrade目錄下為這個(gè)更新的版本建立目錄Version_NEW1。
iMAP當(dāng)前推出新版本Version_NEW時(shí),需要升級(jí)當(dāng)前的舊版本升級(jí)到Version_NEW,設(shè)定目前有三個(gè)地方在使用iMAP,相應(yīng)的版本分別是Version_OLD_ONE(舊版本1)、Version_OLD_TWO(舊版本2)、Version_OLD_THREE(舊版本3),此時(shí)需要將iMAP版本分別從Version_OLDO_NE、Version_OLD_TWO、Version_OLD_THREE升級(jí)到Version_NEW,這樣,就需要分別為Version_OLD_ONE=>Version_NEW、Version_OLD_TWO=>Version_NEW、Version_OLD_THREE=>Version_NEW,分別建立指定目錄,即在目錄Version_NEW1下分別建立三個(gè)子目錄Version_OLD_ONE子目錄、Version_OLD_TWO子目錄、Version_OLD_THREE子目錄,從而使一個(gè)升級(jí)任務(wù)對(duì)應(yīng)一個(gè)指定目錄。
到步驟32按照預(yù)定目標(biāo)模塊即功能模塊劃分升級(jí)腳本,這里的預(yù)定目標(biāo)模塊如MOSvc模塊、FaultSvc模塊、SecuritySvc模塊等。
圖4中,本發(fā)明將所有在upgrade目錄中的升級(jí)腳本按照預(yù)定目標(biāo)模塊劃分為如下三個(gè)升級(jí)腳本upgrade_MOSvc.sh、upgrade_FaultSvc.sh、upgrade_SecuritySvc.sh。這三個(gè)升級(jí)腳本分別對(duì)應(yīng)MOSvc模塊、FaultSvc模塊、SecuritySvc模塊。圖4中的upgrade.sh作為公共組件升級(jí)腳本即平臺(tái)模塊的升級(jí)腳本。如果以后iMAP添加了新的功能模塊,那么,需要在各指定目錄中為新增的功能模塊建立升級(jí)腳本。
如果某個(gè)升級(jí)任務(wù)中不需要對(duì)某個(gè)功能模塊進(jìn)行升級(jí),那么,該功能模塊的升級(jí)腳本中可以為空,即不對(duì)該功能模塊進(jìn)行任何更新升級(jí)操作。升級(jí)版本的開發(fā)過程由此變得清晰可控。
到步驟33將各個(gè)升級(jí)任務(wù)中需要用到的相對(duì)不變化的公共資源,如通用工具、通用文檔等,存放到一個(gè)固定的目錄下,以避免在每次編寫升級(jí)腳本時(shí)都需要重復(fù)進(jìn)行公共資源的編寫過程。
圖4中的公共資源目錄為在upgrade目錄下建立的Tools、Docs子目錄,Tools子目錄用于存放各個(gè)升級(jí)任務(wù)中都需要用到的通用工具,Docs子目錄用于存放各個(gè)升級(jí)任務(wù)中都需要用到的通用文檔。如果以后還有其它表現(xiàn)形式的公共資源,且該表現(xiàn)形式的公共資源放在Tools和Docs目錄下都不合適時(shí),可以在upgrade目錄下為該表現(xiàn)形式的公共資源建立新的子目錄。
到步驟34將不同版本間對(duì)應(yīng)的升級(jí)腳本存放在與之相應(yīng)的指定目錄下。
如圖4中,將與升級(jí)任務(wù)Version_OLD_ONE→Version_NEW對(duì)應(yīng)的升級(jí)腳本upgrade.sh、upgrade_MOSvc.sh、upgrade_FaultSvc.sh、upgrade_SecuritySvc.sh存放到指定目錄Version_OLD_ONE中;將與升級(jí)任務(wù)Version_OLD_TWO→Version_NEW對(duì)應(yīng)的升級(jí)腳本upgrade.sh、upgrade_MOSvc.sh、upgrade_FaultSvc.sh、upgrade_SecuritySvc.sh存放到指定目錄Version_OLD_TWO中;將與升級(jí)任務(wù)Version_OLD_THREE→Version_NEW對(duì)應(yīng)的升級(jí)腳本upgrade.sh、upgrade_MOSvc.sh、upgrade_FaultSvc.sh、upgrade_SecuritySvc.sh存放到指定目錄Version_OLD_THREE中。
到步驟35在進(jìn)行軟件版本升級(jí)時(shí),激活與指定版本間的升級(jí)任務(wù)對(duì)應(yīng)的公共組件升級(jí)腳本,執(zhí)行指定版本間的升級(jí)任務(wù)。
例如,當(dāng)用戶需要將iMAP從Version_OLD_TWO升級(jí)到Version_NEW時(shí),用戶可直接到與之相對(duì)應(yīng)的指定目錄upgrade/Version_NEW/Version_OLD_TWO/下找到upgrade.sh升級(jí)腳本,并激活upgrade.sh,執(zhí)行從Version_OLD_TWO升級(jí)到Version_NEW的升級(jí)任務(wù);用同樣的方法可以完成任意版本間的升級(jí)任務(wù)。
本發(fā)明還提供了一種軟件多版本升級(jí)的系統(tǒng),所述系統(tǒng)包括一個(gè)或多個(gè)指定目錄單元,不同指定版本間的升級(jí)任務(wù)分別對(duì)應(yīng)一個(gè)指定目錄單元,各指定目錄單元均存放與之對(duì)應(yīng)的升級(jí)腳本。
本發(fā)明中的升級(jí)腳本可以按預(yù)定目標(biāo)模塊劃分成預(yù)定目標(biāo)模塊升級(jí)腳本,由與指定版本間的升級(jí)任務(wù)相對(duì)應(yīng)的指定目錄單元下的升級(jí)腳本單元中公共組件升級(jí)腳本統(tǒng)一調(diào)用。公共組件升級(jí)腳本中存放有調(diào)用不同預(yù)定目標(biāo)模塊升級(jí)腳本時(shí)所需要的執(zhí)行命令的集合。通過激活指定目錄單元下的公共自己升級(jí)腳本可以執(zhí)行指定版本間的升級(jí)任務(wù)。執(zhí)行指定版本間的升級(jí)任務(wù)。預(yù)定目標(biāo)模塊可以為功能模塊,具體如上述方法中的說明。
本發(fā)明的系統(tǒng)還包括公共資源存儲(chǔ)單元,所述公共資源存儲(chǔ)單元用于存儲(chǔ)各個(gè)升級(jí)任務(wù)中都需要用到的公共資源。公共資源存儲(chǔ)單元中存儲(chǔ)的公共資源由與指定目錄單元下的公共組件升級(jí)腳本調(diào)用,以完成升級(jí)任務(wù)。公共組件升級(jí)腳本中存放有調(diào)用不同預(yù)定目標(biāo)模塊升級(jí)腳本以及公共資源時(shí)所需要的執(zhí)行命令的集合。通過激活指定目錄單元下的公共資源升級(jí)腳本可以執(zhí)行指定版本間的升級(jí)任務(wù)。具體如上述方法中的描述。
上述公共資源存儲(chǔ)單元可以包括通用工具存儲(chǔ)子單元、通用文檔存儲(chǔ)子單元等,以存儲(chǔ)公共資源中的通用工具、通用文檔如升級(jí)指導(dǎo)文檔等。具體如上述方法中的描述。
在上述實(shí)施例中,本發(fā)明是以iMAP為例對(duì)軟件多版本升級(jí)的方法及系統(tǒng)進(jìn)行說明的,但是本發(fā)明不只限于iMAP的軟件升級(jí),只要是通過為不同指定版本間的升級(jí)任務(wù)分別建立不同的指定目錄實(shí)現(xiàn)軟件多版本升級(jí)的技術(shù)方案均在本發(fā)明保護(hù)范圍之內(nèi)。
以上所述,僅為本發(fā)明較佳的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求書的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.一種軟件多版本升級(jí)的方法,其特征在于,所述方法包括a、為不同指定版本間的升級(jí)任務(wù)分別建立不同的指定目錄,所述指定目錄用于存放與之對(duì)應(yīng)的升級(jí)腳本;b、通過激活與指定版本間的升級(jí)任務(wù)相對(duì)應(yīng)的指定目錄下的升級(jí)腳本完成指定版本間的升級(jí)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,不同舊版本升級(jí)到同一新版本的各指定目錄具有相同的上級(jí)目錄,該上級(jí)目錄稱為該新版本目錄,不同新版本對(duì)應(yīng)不同的新版本目錄,不同新版本目錄具有相同的上級(jí)目錄。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟a還包括將不同升級(jí)腳本中各升級(jí)任務(wù)通用的公共資源存放在固定目錄下;且所述步驟b具體包括通過激活與指定版本間的升級(jí)任務(wù)相對(duì)應(yīng)的指定目錄下的公共組件升級(jí)腳本完成指定版本間的升級(jí)任務(wù);所述公共組件升級(jí)腳本用于存放調(diào)用所需升級(jí)腳本以及公共資源時(shí)所需要的執(zhí)行命令。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述公共資源包括各個(gè)升級(jí)過程中都需要用到的通用工具和通用文檔。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,為所述通用工具和通用文檔分別設(shè)立固定目錄。
6.根據(jù)權(quán)利要求1或2或3或4或5所述的方法,其特征在于,所述步驟a還包括根據(jù)預(yù)定目標(biāo)模塊將升級(jí)腳本中執(zhí)行預(yù)定目標(biāo)模塊升級(jí)的內(nèi)容劃分成預(yù)定目標(biāo)模塊升級(jí)腳本;且所述步驟b具體包括各預(yù)定目標(biāo)模塊的升級(jí)腳本由與指定版本間的升級(jí)任務(wù)相對(duì)應(yīng)的指定目錄下的公共組件升級(jí)腳本統(tǒng)一調(diào)用,以完成指定版本間的升級(jí)。
7.一種軟件多版本升級(jí)系統(tǒng),其特征在于,所述系統(tǒng)包括一個(gè)或多個(gè)指定目錄單元,不同指定版本間的升級(jí)任務(wù)分別對(duì)應(yīng)一個(gè)指定目錄單元,各指定目錄單元均存放與之對(duì)應(yīng)的升級(jí)腳本,通過激活與指定版本間的升級(jí)任務(wù)相對(duì)應(yīng)的指定目錄單元下的升級(jí)腳本完成指定版本間的升級(jí)。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括公共資源存儲(chǔ)單元,所述公共資源存儲(chǔ)單元用于存儲(chǔ)各個(gè)升級(jí)過程中都需要用到的公共資源,由與指定目錄單元下的公共組件升級(jí)腳本調(diào)用,以完成升級(jí)任務(wù);所述公共組件升級(jí)腳本用于存放調(diào)用所需升級(jí)腳本以及公共資源時(shí)所需要的執(zhí)行命令的集合,以執(zhí)行指定版本間的升級(jí)任務(wù)。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述公共資源存儲(chǔ)單元包括通用工具存儲(chǔ)子單元、通用文檔存儲(chǔ)子單元。
10.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述升級(jí)腳本根據(jù)預(yù)定目標(biāo)模塊劃分成預(yù)定目標(biāo)模塊升級(jí)腳本,由與指定版本間的升級(jí)任務(wù)相對(duì)應(yīng)的指定目錄單元下的公共組件升級(jí)腳本統(tǒng)一調(diào)用,執(zhí)行指定升級(jí)任務(wù)。
全文摘要
本發(fā)明提供了一種軟件多版本升級(jí)的方法及系統(tǒng)。本發(fā)明的核心是為不同指定版本間的升級(jí)任務(wù)分別建立不同的指定目錄,所述指定目錄用于存放與之對(duì)應(yīng)的升級(jí)腳本,通過激活與指定版本間的升級(jí)任務(wù)相對(duì)應(yīng)的指定目錄下的升級(jí)腳本完成指定版本間的升級(jí)。本發(fā)明能夠高效、安全、快捷地實(shí)現(xiàn)多版本升級(jí)任務(wù),如可以方便的完成舊版本1、舊版本2、舊版本3等不同舊版本到同一新版本的升級(jí)任務(wù),即便在有多個(gè)舊版本到多個(gè)新版本升級(jí)等情況下,仍然可以高效、快捷、安全地完成軟件多版本升級(jí)的任務(wù),有效解決了升級(jí)腳本存放目錄不合理、版本升級(jí)腳本命名混亂的問題;從而實(shí)現(xiàn)了提高多版本升級(jí)的工作效率以及提高多版本升級(jí)可維護(hù)性的目的。
文檔編號(hào)G06F9/445GK1904837SQ20061010952
公開日2007年1月31日 申請(qǐng)日期2006年8月4日 優(yōu)先權(quán)日2006年8月4日
發(fā)明者龍鴿 申請(qǐng)人:華為技術(shù)有限公司