專利名稱:基于bt技術的云平臺自動升級系統的制作方法
技術領域:
本發明涉及云計算技術領域,特別涉及一種基于BT技術的云平臺自動升級系統。
背景技術:
云計算(Cloud Computing)是網格計算(Grid Computing)、分布式計算 (Distributed Computing)、并行計算(Parallel Computing)、效用計算(Utility Computing) > N(Network Storage Technologies) ,MWAt (Virtualization) ,jji^ 均衡(Load Balance)等傳統計算機技術和網絡技術發展融合的產物。它旨在通過網絡把多個成本相對較低的計算實體整合成一個具有強大計算能力的完美系統。云計算將所有的計算資源集中起來,并由軟件實現自動管理,無需人為參與。企業只需定制相應的服務,由云服務商或云端提供需要的基礎架構、服務、軟硬件資源等,可以節約成本,不用投資購買昂貴的硬件設備,負擔頻繁地維護與升級,企業不需要建立自己的數據中心、大型機房、服務器中心等并相應減少硬軟件的運行維護費用。對于云平臺來說,為了維持平臺的正常運轉,我們經常需要對平臺進行升級,目前在對平臺升級方面的技術,通常采用的方案是基于C/S架構的升級方式,即將升級包放在 server (服務器),然后Clien(客戶端)定期去查詢server是否有新的升級包,如果有新的升級包,則從server下載升級包。這種升級方式對服務器的升級程序管理比較簡單,但在性能上比較差,當云平臺部署到一定規模時,由于在升級過程中并發訪問的量太多,就可能會出現因為帶寬和服務器性能造成升級瓶頸,例如當云平臺部署到上萬臺甚至數十萬臺時,由于服務器的性能和帶寬影響,就會造成服務器阻塞,甚至癱瘓。而且所有下載文件及所有的開銷都集中在服務器上,云平臺下載的節點越多,則下載速度越慢,升級的時間更長。綜上所述,該升級方式雖然實現和維護相對簡單,但在性能上比較差,升級的效率和性能會受服務器性能和帶寬的瓶頸的影響,容易導致服務器端的阻塞,甚至整個升級服務器崩潰。
發明內容
本發明的目的在于提供一種基于BT技術的云平臺自動升級系統,解決了基于C/S 架構的升級方式的升級效率和性能會受服務器性能和帶寬的瓶頸的影響,容易導致服務器端的阻塞,甚至整個升級服務器崩潰的問題。—種基于BT技術的云平臺自動升級系統,包括升級服務端和設置在云平臺所有的計算機上的客戶端;所述升級服務端,用于存儲升級數據包,并更新升級數據包的版本信息,根據所述升級數據包生成種子文件,收集下載升級數據級包的客戶端的地址信息并發送至所述客戶端;所述客戶端,用于檢測所述升級服務端上的版本信息,若所述版本信息被更新,則
3從所述升級服務端下載所述種子文件,根據該種子文件從所述升級服務端和/或根據所述地址信息從其它客戶端下載所述升級數據包,并根據所述升級數據包對所屬計算機上的平臺程序進行升級。與現有技術相比,本發明的技術采用基于BT(BitTorrent文件共享發布系統)技術,應用P2P技術來進行升級,結合利用了 BT技術在文件共享方面的優越性能以及云平臺的節點數量龐大的特點,將所有的升級數據包都以一個描述文件形式發布,而實際的文件可以發散在云平臺的任何節點上,云平臺的節點越多,下載速度越快,有效解決了常規C/S 架構下,由于云平臺的節點數量龐大可能帶來的下載服務的系統瓶頸和帶寬瓶頸問題,便于維護,縮短了升級所需的時間,避免了因為升級而給用戶帶來損失的情況發生,為云平臺的升級帶來了更大的方便和性能的改善。
圖1是本發明的基于BT技術的云平臺自動升級系統的結構示意圖;圖2是基于BT技術的云平臺自動升級系統的一個實施例的結構示意圖。
具體實施例方式下面結合附圖和實施例對本發明的基于BT技術的云平臺自動升級系統作詳細描述。如圖1所示,本發明的基于BT技術的云平臺自動升級系統,包括升級服務端和設置在云平臺所有的計算機上的客戶端;其工作原理是所述升級服務端,用于存儲升級數據包,并更新升級數據包的版本信息,根據所述升級數據包生成種子文件,即根據升級服務端的URL并以升級數據包作為共享的文件來創建一個種子文件,收集下載升級數據級包的客戶端的地址信息并發送至所述客戶端;所述客戶端,用于檢測所述升級服務端上的版本信息,若所述版本信息被更新,則從所述升級服務端下載所述種子文件,根據該種子文件從所述升級服務端和/或根據所述地址信息從其它客戶端下載所述升級數據包,并根據所述升級數據包對所屬計算機上的平臺程序進行升級。優選地,所述客戶端通過斷點續傳的方式從所述升級服務端和/或從其它客戶端下載升級數據包。通過斷點續傳的方式,在碰到網絡故障時,可以從已經下發的部分開始繼續下載, 而沒有必要重頭開始下載,節省時間,提高速度。優選地,所述客戶端對所屬計算機上的平臺程序進行升級后,熱啟動所述升級后的平臺程序。通過熱啟動所述升級后的平臺程序,在升級完畢后,無需先關閉原系統再重啟升級后的系統來完成更新,避免給云平臺帶來的災難的可能性。由于云平臺中所有的功能都是由JVM載入類文件來實現的,JAVA類加載的方式是只要用到該類時才加載,通過繼承加載器動態實現類文件在運行中的更新,更新相應的升級文件清單,重新載入類就可以實現系統的熱啟動。優選地,所述升級服務端對所述升級數據包進行過加密壓縮后進行存儲,所述客戶端下載所述升級數據包后,根據解密密鑰對其進行解密,若不能解密,則向升級服務端發送申請解密密鑰請求,并下載解密密鑰進行更新。考慮云平臺的特性,在必要的時候,可以通過對升級文件的加密壓縮,以實現對升級文件的安全管理。優選地,所述客戶端將升級狀態信息上傳至所述升級服務端,所述升級服務端還對升級狀態信息進行訪問管理。客戶端將升級是否成功結果上傳至升級服務端,升級服務端可以通過TOB服務器對升級狀態信息進行訪問管理,通過訪問即可查看云平臺各個計算機的升級狀態。優選地,所述升級服務端和/或客戶端的運行模式為開機自動運行模式。開機自動運行實現了系統的升級過程的全自動化,無需人工干預作為一種實施方式,所述升級服務端將所述升級數據包分成至少兩個數據塊后進行存儲;所述客戶端從所述升級服務端下載所述數據塊和/或從其它客戶端下載所述數據塊,然后將所下載的數據塊進行合并得到完整的升級數據包。假設所有的升級數據包都只放在一個或幾個服務器上,當升級數據包出現異常時,可能會導致整個平臺的升級都失敗,所以通過將所有的升級數據包分成若干數據塊后分別存儲,可以存儲在一個或多個升級服務端上,每個數據塊只是包含了所有升級數據包的一部分,客戶端可以隨機下載其中的數據塊,確保了升級的成功率。優選地,所述客戶端在下載所述數據塊后,計算所述數據塊的Hash驗證碼與所述種子文件的Hash驗證碼是否一致,若是,說明下載的數據塊為自己所需的數據塊,若否,則重新下載所述數據塊。通過采用安全性高的Hash算法,兩個相同的文件只能得到相同的Hash結果,從而確保了一旦文件被修改就可以檢測出來。為了更加清晰本發明的基于BT技術的云平臺自動升級系統,下面闡述基于BT技術的云平臺自動升級系統的一個應用實施例及其升級流程。如圖2所示,對于云平臺中每一個計算機來說,其都可以視為系統的一個升級節點,本實施例中,在每一個升級節點都部署一個客戶端的程序,升級服務端的功能主要通過所設置的WEB服務器和Tracker服務器來實現,可以部署在系統的任何節點的計算機上。其中,TOB服務器主要是進行版本信息的更新,管理各個升級節點的狀態信息和種子文件。Tracker服務器主要是收集下載者信息,并將此信息提供給下載升數據級包的客戶端的程序,使客戶端相互連接起來,相互交換傳輸數據。種子文件是文本文件,是被下載文件的“索引”,主要攜帶tracker服務器的信息和文件信息。Tracker信息主要包括Tracker 服務器的地址和針對Tracker服務器的設置信息,客戶端的程序首先下載相應的種子文件,然后根據該種子文件從其它客戶端下載升級數據包。具體的升級流程包括如下步驟SlOl 升級服務端將由經過加密壓縮的升級數據包劃分的多個數據塊進行存儲, 更新版本信息,根據升級數據包生成種子文件并發布到WEB服務器上。S102 客戶端的程序檢測所屬計算機的平臺程序的版本信息,同時定期檢索升級服務端的升級數據的版本信息。S103:若升級服務端的升級數據的版本信息與所屬計算機的平臺程序的版本信息不同,說明升級數據包已經進行更新版本信息,客戶端的程序從WEB服務器下載種子文件。S104 客戶端的程序解析種子文件,得到Tracker服務器的地址,并根據該地址發送請求與Tracker服務器建立連接。S105 =Tracker服務器回應客戶端的程序的請求,提供所有在下載中的客戶端的程序(包括升級服務端)的IP地址。S106 客戶端的程序連接升級服務端進行下載和/或連接其他在下載的客戶端, 根據種子文件,彼此交互已下載的數據塊信息,然后相互交換彼此之間還沒有下載的數據塊。具體地,例如,云平臺的一個節點A的客戶端的程序從升級服務端隨機下載了升級文件的第N號數據塊,另外一個節點B的客戶端的程序從升級服務端上隨機下載了升級文件的第M號數據塊。則這樣A的客戶端的程序可以去下載B已經下載好的第M號數據塊, 則這樣B的客戶端的程序可以去下載A已經下載好的第N號數據塊。減輕了升級服務端的負擔,而且加快了各個節點之間的下載速度,提高了效率。S107:客戶端的程序下載數據塊后,計算每個數據塊的Hash驗證碼與種子文件中的Hash驗證碼是否一致,若否,則重新從升級服務端下載數據塊。S108:根據解密密鑰對數據塊中的升級數據包進行解密,若不能解密,則向升級服務端發送申請解密密鑰請求,并下載解密密鑰進行更新。S109:客戶端的程序下載完所有的升級數據包后,根據所述升級數據包對所屬計算機上的平臺程序進行升級,然后熱啟動節點的平臺程序。SllO 客戶端將升級成功結果上傳至升級服務端,通過TOB服務器對升級狀態信息進行訪問管理。本發明的基于BT技術的云平臺自動升級系統,采用BT技術,從云平臺任何節點都能完成整體平臺的升級,所有的資源信息都以一個描述文件形式發布,而實際的文件可以發散在平臺的任何節點上,便于維護;有效解決了常規C/S架構下的下載服務的系統瓶頸和帶寬瓶頸問題,同時,BT技術在文件共享方面的優越性能,云平臺的節點越多,下載速度越快,大大縮短了整個系統升級所需的時間,減少因為升級給用戶帶來的損失。另外,系統的斷點續傳和多點備份功能,只要一個節點完成下載過一個文件拷貝, 即使原始資源提供者的節點失效,依然可以完成平臺的升級,能比較好的適應在云平臺下的各種網絡環境。再次,系統支持對JAVA開發的升級節點的熱啟動,在升級完畢后,無需先關閉原系統再重啟升級后的系統來完成更新,避免給云平臺帶來的災難的可能性。以上所述的本發明實施方式,并不構成對本發明保護范圍的限定。任何在本發明的精神和原則之內所作的修改、等同替換和改進等,均應包含在本發明的權利要求保護范圍之內。
權利要求
1.一種基于BT技術的云平臺自動升級系統,其特征在于,包括升級服務端和設置在云平臺所有的計算機上的客戶端;所述升級服務端,用于存儲升級數據包,并更新升級數據包的版本信息,根據所述升級數據包生成種子文件,收集下載升級數據級包的客戶端的地址信息并發送至所述客戶端;所述客戶端,用于檢測所述升級服務端上的版本信息,若所述版本信息被更新,則從所述升級服務端下載所述種子文件,根據該種子文件從所述升級服務端和/或根據所述地址信息從其它客戶端下載所述升級數據包,并根據所述升級數據包對所屬計算機上的平臺程序進行升級。
2.根據權利要求1所述的基于BT技術的云平臺自動升級系統,其特征在于,所述客戶端通過斷點續傳的方式從所述升級服務端和/或從其它客戶端下載升級數據包。
3.根據權利要求1所述的基于BT技術的云平臺自動升級系統,其特征在于,所述客戶端對所屬計算機上的平臺程序進行升級后,熱啟動所述升級后的平臺程序。
4.根據權利要求1所述的基于BT技術的云平臺自動升級系統,其特征在于,所述升級服務端對所述升級數據包進行過加密壓縮后進行存儲;所述客戶端下載所述升級數據包后,根據解密密鑰對其進行解密,若不能解密,則向所述升級服務端發送申請解密密鑰請求并下載解密密鑰進行更新。
5.根據權利要求1所述的基于BT技術的云平臺自動升級系統,其特征在于,所述客戶端將升級狀態信息上傳至所述升級服務端;所述升級服務端還用于對所述升級狀態信息進行訪問管理。
6.根據權利要求1所述的基于BT技術的云平臺自動升級系統,其特征在于,所述升級服務端和/或客戶端的運行模式為開機自動運行模式。
7.根據權利要求1至6任一項所述的基于BT技術的云平臺自動升級系統,其特征在于,所述升級服務端將所述升級數據包分成至少兩個數據塊后進行存儲;所述客戶端從所述升級服務端下載所述數據塊和/或從其它客戶端下載所述數據塊, 然后將所述數據塊進行合并。
8.根據權利要求7所述的基于BT技術的云平臺自動升級系統,其特征在于,所述客戶端在下載所述數據塊后,計算所述數據塊的Hash驗證碼與所述種子文件的Hash驗證碼是否一致,若否,則重新從所述升級服務端下載所述數據塊。
全文摘要
本發明提供一種基于BT技術的云平臺自動升級系統,包括升級服務端和設置在云平臺所有的計算機上的客戶端;升級服務端用于存儲升級數據包,并更新升級數據包的版本信息,根據升級數據包生成種子文件,收集下載升級數據級包的客戶端的地址信息并發送至客戶端;客戶端用于檢測所述升級服務端上的版本信息,若版本信息被更新,則從升級服務端下載種子文件,根據該種子文件從升級服務端和/或根據地址信息從其它客戶端下載升級數據包,并根據升級數據包對所屬計算機上的平臺程序進行升級。通過本發明的技術,下載服務的系統瓶頸和帶寬瓶頸問題,避免了因為升級而給用戶帶來損失的情況發生,為云平臺的升級帶來了更大的方便和性能的改善。
文檔編號H04L29/08GK102413185SQ201110380379
公開日2012年4月11日 申請日期2011年11月25日 優先權日2011年11月25日
發明者吳文青, 吳海玲, 鄧書芬 申請人:廣州杰賽科技股份有限公司