本發(fā)明涉及服務器集群領域,尤其涉及一種軟件版本管理系統(tǒng)。
背景技術:
隨著系統(tǒng)中處理數(shù)據(jù)的體量越來越大,提供的服務越來越復雜,并發(fā)性實時性的需求越來越高,整個系統(tǒng)的往往由一個復雜的分布式集群構(gòu)成。分布式集群的服務組件類型眾多,服務組件的宿主硬件服務器分多層集群,在空間和地域上可能廣泛分布,系統(tǒng)內(nèi)各組件存在復雜的網(wǎng)關服務關系,且一個硬件服務器中可能存在多個組件,一個組件一般運行在多個硬件服務器中,而不同的組件之間由不同的開發(fā)團隊進行維護。
在一個分布式系統(tǒng)中,不同的組件之間需要緊密配合進行工作,此時需要對各組件的軟件版本進行維護,目前,由于組件的分布式特點,可以通過運維人員去不同的現(xiàn)場對組件進行維護操作,使得組件的軟件版本維護操作麻煩,并且,由于需要人為檢測組件的軟件版本對不同組件的軟件版本進行配合,將可能由于人工檢測失誤而造成系統(tǒng)的不穩(wěn)定性。
技術實現(xiàn)要素:
本發(fā)明實施例提供了一種軟件版本管理系統(tǒng),能快速準確實現(xiàn)各組件的版本之間的升級和回溯,帶寬需求低,同時提高軟件版本管理系統(tǒng)的魯棒性。
本發(fā)明實施例第一方面公開了一種軟件版本管理系統(tǒng),所述軟件版本管理系統(tǒng)適用于分布式集群系統(tǒng),所述系統(tǒng)包括:
版本數(shù)據(jù)庫,用于分層次存儲所述軟件版本管理系統(tǒng)對所述網(wǎng)絡節(jié)點進行軟件版本管理過程中所使用到的版本元信息以及版本數(shù)據(jù);
版本元信息傳播模塊,用于基于所述版本數(shù)據(jù)庫在所述軟件版本管理系統(tǒng)所管理的網(wǎng)絡節(jié)點中傳播版本元信息;
版本數(shù)據(jù)傳輸模塊,用于基于所述版本數(shù)據(jù)庫在所述軟件版本管理系統(tǒng)所管理的網(wǎng)絡節(jié)點中傳播版本數(shù)據(jù);
以及版本升級回溯模塊,用于基于所述版本數(shù)據(jù)庫對所述網(wǎng)絡節(jié)點的軟件版本進行升級或回溯。
與現(xiàn)有技術相比,本發(fā)明實施例具備以下有益效果:
本發(fā)明實施例中,通過統(tǒng)一的軟件版本管理系統(tǒng),分層次存儲版本數(shù)據(jù),以及網(wǎng)絡節(jié)點間的版本數(shù)據(jù)以及元信息的協(xié)同傳輸機制,能快速準確實現(xiàn)各組件的版本之間的升級和回溯,帶寬需求低,同時提高軟件版本管理系統(tǒng)的魯棒性。
附圖說明
為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明實施例公開的一種軟件版本管理系統(tǒng);
圖2是本發(fā)明實施例提供的一種版本數(shù)據(jù)庫的結(jié)構(gòu)示意圖;
圖3是本發(fā)明實施例提供的一種版本元信息數(shù)據(jù)存儲模塊的結(jié)構(gòu)示意圖;
圖4是本發(fā)明實施例提供的一種版本文件數(shù)據(jù)存儲模塊的結(jié)構(gòu)示意圖;
圖5是本發(fā)明實施例提供的一種版本統(tǒng)一結(jié)構(gòu)規(guī)范存儲模塊的結(jié)構(gòu)示意圖;
圖6是本發(fā)明實施例提供的一種版本兼容性檢測用例庫存儲模塊的結(jié)構(gòu)示意圖;
圖7是本發(fā)明實施例提供的一種版本回溯信息數(shù)據(jù)庫存儲模塊的結(jié)構(gòu)示意圖;
圖8-a是本發(fā)明實施例提供的一種版本元信息傳播模塊的結(jié)構(gòu)示意圖;
圖8-b是本發(fā)明實施例提供一種版本元信息傳播格式示意圖;
圖9是本發(fā)明實施例提供的一種版本數(shù)據(jù)傳輸模塊的結(jié)構(gòu)示意圖;
圖10是本發(fā)明實施例提供的一種版本升級回溯模塊的結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
本發(fā)明的說明書和權利要求書及上述附圖中的術語“包括”和“具有”以及它們?nèi)魏巫冃?,意圖在于覆蓋不排他的包含。例如包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設備沒有限定于已列出的步驟或單元,而是可選地還包括沒有列出的步驟或單元,或可選地還包括對于這些過程、方法、產(chǎn)品或設備固有的其它步驟或單元。
本發(fā)明實施例提供了一種軟件版本管理系統(tǒng),能快速準確實現(xiàn)各組件的版本之間的升級和回溯,帶寬需求低,同時提高軟件版本管理系統(tǒng)的魯棒性。
請參閱圖1,圖1是本發(fā)明實施例公開的一種軟件版本管理系統(tǒng)。如圖1所示,所述軟件版本管理系統(tǒng)100適用于分布式集群系統(tǒng),所述軟件版本管理系統(tǒng)包括:
版本數(shù)據(jù)庫110,用于分層次存儲所述軟件版本管理系統(tǒng)對所述網(wǎng)絡節(jié)點進行軟件版本管理過程中所使用到的版本元信息以及版本數(shù)據(jù)。
在本發(fā)明實施例中,通過分層次存儲各組件各版本的版本元信息以及版本數(shù)據(jù),從而可以實現(xiàn)對網(wǎng)絡中的各組件版本的版本元信息以及版本數(shù)據(jù)進行統(tǒng)一管理,以在版本升級與回溯時,通過調(diào)用該版本數(shù)據(jù)庫110中的數(shù)據(jù),高效準確地進行版本升級與回溯。
可選地,參見圖2,圖2是本發(fā)明實施例提供的一種版本數(shù)據(jù)庫的結(jié)構(gòu)示意圖。如圖2所示,在本發(fā)明的一個實施例中,所述版本數(shù)據(jù)庫110包括以下至少一種:
版本元信息數(shù)據(jù)存儲模塊111,用于存儲所述多個網(wǎng)絡節(jié)點的所述版本元信息。
可選地,在本發(fā)明的一個實施例中,所述版本元信息數(shù)據(jù)庫模塊111通過分層映射結(jié)構(gòu)存儲版本元信息,所述分層映射結(jié)構(gòu)包括大版本元信息存儲單元和組件版本元信息存儲單元,所述大版本由組件構(gòu)成,所述大版本元信息存儲所述組件版本元信息的鏈接,所述組件版本元信息存儲單元用于存儲所述組件的元信息。
具體地,參見圖3,圖3是本發(fā)明實施例提供的一種版本元信息數(shù)據(jù)存儲模塊的結(jié)構(gòu)示意圖。如圖3所示,該版本元信息數(shù)據(jù)存儲模塊分層存儲版本元信息,其中版本分為大版本和組件版本,大版本由組件版本構(gòu)成。
其中,大版本元信息存儲組件版本元信息的鏈接,以保持數(shù)據(jù)的一致性和節(jié)省存儲空間。
其中,每個大版本與各組件版本之間存在網(wǎng)狀映射關系,具體地,同一個組件版本可由多個大版本共享,每個大版本中的組件版本可來自于批次版本組件版本。大版本與組件版本之間,通過元信息映射組成靈活的版本組合。
版本文件數(shù)據(jù)存儲模塊112,用于存儲所述多個網(wǎng)絡節(jié)點的版本文件數(shù)據(jù)。
可選地,在本發(fā)明的一個實施例中,所述版本文件數(shù)據(jù)存儲模塊112用于通過版本元信息格式存儲所述組件版本元信息,所述組件版本元信息格式包括版本序列號,版本唯一標識號以及與所述組件版本元信息對應的版本數(shù)據(jù)的存儲路徑。
具體地,參見圖4,圖4是本發(fā)明實施例提供的一種版本文件數(shù)據(jù)存儲模塊112的結(jié)構(gòu)示意圖。該示意圖中示出了版本元信息的格式與數(shù)據(jù)映射關系。
其中,組件版本元信息中的版本序列號隨著發(fā)布的進行依次遞增的版本號。包括構(gòu)建的日期及構(gòu)建功能版本等信息,從而可以通過版本序列號判斷出兩個版本之間的更新關系。
其中,版本唯一標識號由唯一標識生成算法生成,例如可以由通用識別碼(Universally Unique Identifier,UUID)生成算法來生成。
其中,版本數(shù)據(jù)的存儲路徑可能是本地文件系統(tǒng),也可能是網(wǎng)絡地址。
在本發(fā)明實施例中,當版本數(shù)據(jù)存儲在其它服務器時,版本數(shù)據(jù)的存儲路徑的所有在本發(fā)明中的版本元信息傳播模塊描述的版本元信息的傳輸機制得到的互聯(lián)網(wǎng)協(xié)議(Internet Protocol,IP)地址列表。
版本統(tǒng)一結(jié)構(gòu)規(guī)范存儲模塊113,用于存儲所述多個網(wǎng)絡節(jié)點在進行版本升級時所使用的數(shù)據(jù)格式規(guī)范。
可選地,在本發(fā)明的一個實施例中,所述版本統(tǒng)一結(jié)構(gòu)規(guī)范存儲模塊113用于通過統(tǒng)一結(jié)構(gòu)規(guī)范存儲版本數(shù)據(jù),所述統(tǒng)一結(jié)構(gòu)規(guī)范包括以下部分中的至少一種:
統(tǒng)一配置文件格式、統(tǒng)一配置文件合并準則、統(tǒng)一升級腳本、統(tǒng)一部署腳本、統(tǒng)一版本兼容性信息庫以及統(tǒng)一版本數(shù)據(jù)文件。
參見圖5,圖5示出了本發(fā)明實施例提供的一種版本統(tǒng)一結(jié)構(gòu)規(guī)范存儲模塊的結(jié)構(gòu)示意圖。在該版本統(tǒng)一結(jié)構(gòu)規(guī)范存儲模塊中,規(guī)定了版本數(shù)據(jù)的統(tǒng)一性結(jié)構(gòu)規(guī)范,規(guī)定不管是組件版本還是大版本的格式標準。為了能夠按統(tǒng)一的框架和流程來執(zhí)行版本的部署,升級,統(tǒng)一規(guī)定所有組件版本必需按如圖5所示的格式構(gòu)成。
其中,圖5中,統(tǒng)一版本數(shù)據(jù)文件包括可執(zhí)行文件,動態(tài)庫,數(shù)據(jù)模型等。
其中,統(tǒng)一版本兼容性信息庫提供以下兩個方面的信息:
本組件向其它組件提供的接口服務;
本組件依賴于其它組件的接口和服務。
本發(fā)明實施例中,通過版本統(tǒng)一結(jié)構(gòu)規(guī)范來存儲各版本數(shù)據(jù),以實現(xiàn)對各組件的版本進行統(tǒng)一管理。
版本兼容性檢測用例庫存儲模塊114,用于存儲所述多個網(wǎng)絡節(jié)點的不同組件間的兼容性信息。
可選地,在本發(fā)明的一個實施例中,所述版本兼容性檢測用例庫存儲模塊114用于通過兼容性信息條目遍歷不同組件之間的兼容性信息并存儲,所述兼容性信息條目包括當前組件號、目標組件號以及目標組件接口號,所述兼容性信息條目存儲在多重有向圖結(jié)構(gòu)中,所述多重有向圖結(jié)構(gòu)的邊結(jié)構(gòu)存儲了以下至少一種:兼容性信息條件、用例具體內(nèi)容,所述用例具體內(nèi)容包括輸入、輸出以及驗證準則。
具體地,參見圖6,圖6是本發(fā)明實施例提供的一種版本兼容性檢測用例庫存儲模塊114的結(jié)構(gòu)示意圖。用于實現(xiàn)自動的版本兼容性檢查,以實現(xiàn)自動化的版本升級、回溯的驗證等。其中,在圖6中,每一個節(jié)點為系統(tǒng)中的一個組件類型,每一個組件類型在這個多重有向圖中的都存在一個節(jié)點。
在本發(fā)明實施例中,為了管理各個版本的功能關系對驗證這些各組件關系所對應的用例,提出一種兼容性檢測用例涉及以下三個元素:調(diào)用發(fā)起組件、調(diào)用接收組件、調(diào)用的輸入/輸出?;趫D6所示的版本兼容性檢測用例庫存儲模塊,通過下述步驟獲取組件版本兼容性信息。
步驟1、由于每個組件在版本構(gòu)建的過程中,都存儲了兼容性信息,統(tǒng)計版本庫中的組件類型總數(shù),每一個組件類型構(gòu)造一個有向圖的頂點節(jié)點。
步驟2、遍歷每一個組件中兼容性信息,對于一個組件,遍歷讀取兼容性信息條目。
具體地,讀取兼容性信息條目的信息,得到當前組件號、目標組件號以及目標組件接口號,創(chuàng)建一條由當前組件網(wǎng)絡節(jié)點指向目標組件網(wǎng)絡節(jié)點的邊;然后再繼續(xù)讀取兼容性檢測用例的輸入,輸出,驗證準則等,作為額外的信息存儲的邊結(jié)構(gòu)中,從而基于上述信息用于確定進行兼容性檢測的組件,具體地,在圖6中,TestCase8(3,2,1),即用于表示組件3通過接口1調(diào)用組件2時的兼容性檢測?;谏鲜鲂畔Λ@取該兼容性信息條目對應的兼容性信息并存儲。重復進行上述步驟直到獲取到當前組件所有兼容性信息為止。然后對每個組件再基于上述步驟獲取到各個組件的所有兼容性信息為止。最后得到所有組件的所有兼容性信息進行存儲。
在本發(fā)明實施例中,當獲取到各組件間的兼容性信息并統(tǒng)一存儲在版本兼容性檢測用例庫存儲模塊,則可以在進行版本升級和回溯時通過基于該兼容性信息進行版本的升級和回溯,使得能對組件版本升級和回溯進行統(tǒng)一管理。
版本回溯信息數(shù)據(jù)庫存儲模塊115,用于存儲所述多個網(wǎng)絡節(jié)點的軟件版本的回溯信息。
可選地,在本發(fā)明的一個實施例中,所述版本回溯信息數(shù)據(jù)庫存儲模塊115用于通過二級哈希Hash表結(jié)構(gòu)存儲版本回溯信息,所述二級Hash表結(jié)構(gòu)包括第一級Hash表以及第二級Hash表,所述第一級Hash表用于存儲組件之間的組件識別符號對,所述第二級Hash表用于存儲所述可兼容組件對對應的兼容性檢測結(jié)果。
具體地,參見圖7,圖7是本發(fā)明實施例提供的一種版本回溯信息數(shù)據(jù)庫存儲模塊115的結(jié)構(gòu)示意圖。參見圖7,在第一級Hash表結(jié)構(gòu)中,其鍵值為組件標識,從而每一個節(jié)點對應于一對組件識別符號對,假設在系統(tǒng)中,某兩個組件的標識號為ID(x),ID(y),則在第一級Hash表中存在鍵值為Key(ID(x),ID(y))的Hash表項。如果不存在,在第一級Hash表中創(chuàng)建該鍵值。
第二級Hash表結(jié)構(gòu)為某兩個組件的兩兩之間的兼容性檢測結(jié)果。組件ID(x)有某個版本Version(m),組件ID(y)有某個版本Version(n),則在第一級Hash表中,鍵值為Key(ID(x),ID(y))的第二級子Map有鍵值為Key(m,n)的子Hash表項,子Hash表項存儲的內(nèi)容為組件ID(x)的版本Version(m)和組件ID(y)的版本Version(n)兼容性檢測結(jié)果。
可以理解,通過上述二級Hash表結(jié)構(gòu),可以存儲各個組件之間兼容性檢測結(jié)果,從而當某個組件需要進行版本回溯回退的時候,可以快速的得到關聯(lián)組件的回溯信息,即關聯(lián)的組件的版本是否需要進行回溯及回溯到哪個版本,提高軟件版本管理效率。
版本元信息傳播模塊120,用于基于所述版本數(shù)據(jù)庫在所述軟件版本管理系統(tǒng)所管理的網(wǎng)絡節(jié)點中傳播版本元信息。
可選地,在本發(fā)明的一個實施例中,參見圖8-a和圖8-b,圖8-a是本發(fā)明實施例提供的一種版本元信息傳播模塊的結(jié)構(gòu)示意圖,圖8-b是本發(fā)明實施例提供一種版本元信息傳播格式示意圖。如圖8-a所示,該版本元信息傳播模塊120,包括:
接收單元121,用于接收其它網(wǎng)絡節(jié)點發(fā)送的版本號消息,所述版本號消息包括所述其它網(wǎng)絡節(jié)點的組件號、版本號以及存活時間(Time to Live,TTL);
存儲單元122,用于當所述版本號消息在所述網(wǎng)絡節(jié)點的版本數(shù)據(jù)庫不存在時,保存所述版本號消息。
在本發(fā)明實施例中,通過該版本元信息傳播模塊,從而可以實現(xiàn)在快速高效地在網(wǎng)絡中傳遞版本元信息,使網(wǎng)絡中的每一個網(wǎng)絡節(jié)點都掌握當前最新版本信息。
具體地,在本發(fā)明的一個實施例中,為了實現(xiàn)網(wǎng)絡中的各網(wǎng)絡節(jié)點都獲取版本元信息,可以首先由版本發(fā)布者把新的版本的元信息及其相關的數(shù)據(jù)文件和其它必要的信息形成版本號消息,例如版本元信息數(shù)據(jù)、版本文件數(shù)據(jù)以及版本統(tǒng)一結(jié)構(gòu)規(guī)范等部分的內(nèi)容,設這些被注入版本號信息的節(jié)點為源節(jié)點;然后源節(jié)點在自己所有網(wǎng)絡接口上廣播新的版本號消息,從而各中間節(jié)點將接收到該版本號信息,以獲取到新的版本的元信息。當中間節(jié)點通過接收單元121接收到該版本號信息時,則通過檢查該中間節(jié)點中是否存儲有該版本號信息中的內(nèi)容,若未存儲,則保存。從而實現(xiàn)將新的版本的元信息在各網(wǎng)絡節(jié)點中的傳播。
可選地,在本發(fā)明的一個實施例中,為了盡可以節(jié)約帶寬,在開始階段,源節(jié)點僅抽取版本號消息中的版本號向外開始廣播傳遞過程。
更進一步,具體地,在本發(fā)明的一個實施例中,中間節(jié)點判斷如果曾經(jīng)收到過該版本號消息消息,也即版本號消息中的組件號和版本號相同,直接結(jié)束,如果沒有收到過,則首先會在自己的版本元信息數(shù)據(jù)存儲模塊記錄該版本號消息中的內(nèi)容,然后再把該版本元消息中的TTL減1,如果結(jié)果為0,則不時行轉(zhuǎn)發(fā),直接結(jié)束,如果TTL不為0,則中間節(jié)點向這條版本元消息進入的網(wǎng)絡接口以外的網(wǎng)絡接口進行轉(zhuǎn)發(fā),消息按該機制在網(wǎng)絡是傳播,直到所有節(jié)點都收到或消息的TTL減為0為止。從而使得網(wǎng)絡中的每個節(jié)點都知道當集群中,每個軟件的組件的最新版本是什么,及節(jié)點自己是否有這些版本的本地拷貝。
更進一步,可選地,各網(wǎng)絡節(jié)點將會以比較低的頻度,向網(wǎng)絡中其它網(wǎng)絡節(jié)點廣播自己掌握有的所有的組件的版本號信息,該版本號信息包括最新和歷史的版本號,消息的傳輸過程與新注入的版本的信息的傳輸過程基本一致。不再詳細敘述通過這個通過,可以達到兩個作用:
可以理解,通過上述過程,可以使得在網(wǎng)絡中的每個結(jié)點,都掌握了所有在網(wǎng)絡內(nèi)存在的各組件的版本號信息;以及使得新加入網(wǎng)絡中的節(jié)點,通過一段時間的監(jiān)聽后,也可以掌握在網(wǎng)絡中存在的組件版本信息,以實現(xiàn)對各組件版本元信息的傳播。以進一步實現(xiàn)對各組件的軟件版本的統(tǒng)一管理。
其中,版本數(shù)據(jù)傳輸模塊130,用于基于所述版本數(shù)據(jù)庫在所述軟件版本管理系統(tǒng)所管理的網(wǎng)絡節(jié)點中傳播版本數(shù)據(jù)。
可選地,在本發(fā)明的一個實施例中,參見圖9,圖9是本發(fā)明實施例提供的一種版本數(shù)據(jù)傳輸模塊130的結(jié)構(gòu)示意圖。如圖9所示,該版本數(shù)據(jù)傳輸模塊130包括:
接收單元131,用于接收其它網(wǎng)絡節(jié)點發(fā)送的版本數(shù)據(jù)傳輸請求,所述版本數(shù)據(jù)傳輸請求包括版本號標識,所述版本數(shù)據(jù)傳輸請求用于所述其它網(wǎng)絡節(jié)點向所述網(wǎng)絡節(jié)點請求傳輸與所述版本號標識對應的版本數(shù)據(jù),所述版本號標識包括組件標識和版本標識;
發(fā)送單元132,用于在所述網(wǎng)絡節(jié)點包括與所述版本號標識對應的版本數(shù)據(jù)時,向所述其它網(wǎng)絡節(jié)點發(fā)送所述版本數(shù)據(jù)。
具體地,1、網(wǎng)絡中的每個網(wǎng)絡節(jié)點根據(jù)自己掌握的版本元信息數(shù)據(jù)、版本文件數(shù)據(jù)以及版本統(tǒng)一結(jié)構(gòu)規(guī)范,向網(wǎng)絡中其它網(wǎng)絡節(jié)點發(fā)起某組件某版本數(shù)據(jù)傳輸請求,以實現(xiàn)對版本數(shù)據(jù)的共享,在該版本數(shù)據(jù)傳輸請求中可設置所傳輸?shù)臄?shù)據(jù)格式為Data(Model(x)Version(y)),其中,Model(x)用于表示某組件,Version(y)用于表示某版本。
2、網(wǎng)絡節(jié)點將按統(tǒng)一約定的規(guī)則,例如按固定大小切塊的規(guī)則,對Data(Model(x)Version(y))進行切塊,設得到的塊數(shù)為(1,m),并將(1,m)進行批次劃分,設為(1,n),則每批次為m*n塊數(shù)據(jù)。
3、網(wǎng)絡節(jié)點將根據(jù)上述分塊按批次發(fā)起傳輸,它一次把當前批次m*n塊同時向外發(fā)送請求,請求有這些數(shù)據(jù)塊的網(wǎng)絡節(jié)點回應它的請求。具體地,網(wǎng)絡節(jié)點發(fā)起請求前,根據(jù)版本元信息傳播模塊中掌握的信息,根據(jù)一次的時間的退避,也即TTL減1。
可選地,上述過程中,由于只有少數(shù)節(jié)點擁有Data(Model(x)Version(y))的本地版本,所以大部分節(jié)點都會發(fā)起傳輸?shù)恼埱蟛僮鳌?/p>
當某個網(wǎng)絡節(jié)點通過接收單元131接收到版本數(shù)據(jù)傳輸請求后,將檢查自己是否掌握有相關的數(shù)據(jù)塊,如果掌握,則通過發(fā)送單元132向發(fā)送該版本數(shù)據(jù)傳輸請求的網(wǎng)絡節(jié)點源請求節(jié)點回復自己愿意提供數(shù)據(jù)傳輸服務的響應消息,同時該網(wǎng)絡節(jié)點向遠離消息源節(jié)點的方向轉(zhuǎn)發(fā)此版本數(shù)據(jù)傳輸請求。如果該網(wǎng)絡節(jié)點沒有這樣的方向,則不轉(zhuǎn)發(fā)此消息。從而實現(xiàn)網(wǎng)絡中各網(wǎng)絡節(jié)點都擁有升級版本的版本數(shù)據(jù)。同時,通過上述機制,可以節(jié)約帶寬。
可選地,在本發(fā)明的一個實施例中,當發(fā)起版本數(shù)據(jù)傳輸請求的網(wǎng)絡節(jié)點收到多個響應請求時,會根據(jù)TTL時延選擇最佳的網(wǎng)絡節(jié)點請求版本數(shù)據(jù)。以減少無用的版本數(shù)據(jù)傳輸。
可以理解,通過上述過程,每個網(wǎng)絡節(jié)點都可以掌握最新版本的版本數(shù)據(jù),以實現(xiàn)對各組件的軟件版本的統(tǒng)一管理。
其中,版本升級回溯模塊140,用于基于所述版本數(shù)據(jù)庫對所述網(wǎng)絡節(jié)點的軟件版本進行升級或回溯。
可選地,在本發(fā)明的一個實施例中,參見圖10,圖10是本發(fā)明實施例提供的一種版本升級回溯模塊140的結(jié)構(gòu)示意圖。如圖10所示,該版本升級回溯模塊140包括:
檢測單元141,用于確定待升級版本或待回溯版本的組件號、版本號,并基于所述版本兼容性檢測用例庫存儲模塊進行兼容性測試;
升級回溯單元142,用于在所述兼容性測試通過時,對所述網(wǎng)絡節(jié)點升級至待升級版本或回溯至待回溯版本。
具體地,在本發(fā)明實施例中,由于每個網(wǎng)絡節(jié)點都記錄了每個組件每個版本的版本兼容性檢測用例庫及版本回溯信息數(shù)據(jù)庫,所以可具體通過以下過程進行版本升級:
1、網(wǎng)絡節(jié)點通過檢測單元141檢測當前網(wǎng)絡節(jié)點所有的組件的待升級的版本,確定當前次升級所涉及的組件版本及具體的版本號;
2、通過版本元信息數(shù)據(jù)存儲模塊維護版本的元數(shù)據(jù)信息,創(chuàng)建一個新的大版本號,生成大版本號的一個唯一的標識號,根據(jù)待升級組件的版本號,不升級組件的版本號等信息,維護當前在版本號的組件版本映射信息。參見本發(fā)明專利A1所描述的的元信息存儲結(jié)構(gòu)。
3、網(wǎng)絡節(jié)點再進行備份部署,將待升級的版本通過版本中的config/update/deloy等標準化腳本部署為一個與當前運行的版本并行運行的一個復制運行實例。
4、網(wǎng)絡節(jié)點在這個復制的運行實現(xiàn)上利用版本兼容性檢測用例庫存儲模塊檢測兼容性檢測用例庫。
5、可選地,在本發(fā)明的一個實施例中,如果通過兼容性檢測,則進行版本的實際熱切換,使當前的版本實際上線。同時在版本回溯信息數(shù)據(jù)庫存儲模塊所描述的回溯信息數(shù)據(jù)庫中記錄已經(jīng)完成的兼容性檢測信息。
6、可選地,在本發(fā)明的另一個實施例中,如果沒有通過兼容性檢測,則中止此次升級,并清除掉復制兼容性檢測環(huán)境的所有組件實例。并行相關的記錄和報錯。
可以理解,通過上述步驟,可以實現(xiàn)對版本的升級與回溯。
可以看出,本發(fā)明實施例提供的技術方案中,通過統(tǒng)一的軟件版本管理系統(tǒng),分層次存儲版本數(shù)據(jù),以及網(wǎng)絡節(jié)點間的版本數(shù)據(jù)以及元信息的協(xié)同傳輸機制,能快速準確實現(xiàn)各組件的版本之間的升級和回溯,帶寬需求低,同時提高軟件版本管理系統(tǒng)的魯棒性。
需要說明的是,對于前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本發(fā)明并不受所描述的動作順序的限制,因為依據(jù)本發(fā)明,某些步驟可以采用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作和模塊并不一定是本發(fā)明所必須的。
在上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關描述。
在本申請所提供的幾個實施例中,應該理解到,所揭露的裝置,可通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性或其它的形式。
作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。
集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲器中?;谶@樣的理解,本發(fā)明的技術方案本質(zhì)上或者說對現(xiàn)有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲器中,包括若干指令用以使得一臺計算機設備(可為個人計算機、服務器或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例方法的全部或部分步驟。而前述的存儲器包括:U盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、移動硬盤、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
本領域普通技術人員可以理解上述實施例的各種方法中的全部或部分步驟是可以通過程序來指令相關的硬件來完成,該程序可以存儲于一計算機可讀存儲器中,存儲器可以包括:閃存盤、只讀存儲器(英文:Read-Only Memory,簡稱:ROM)、隨機存取器(英文:Random Access Memory,簡稱:RAM)、磁盤或光盤等。
以上對本發(fā)明實施例進行了詳細介紹,本文中應用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領域的一般技術人員,依據(jù)本發(fā)明的思想,在具體實施方式及應用范圍上均會有改變之處,綜上上述,本說明書內(nèi)容不應理解為對本發(fā)明的限制。