本發(fā)明申請的技術屬于計算機網(wǎng)絡通訊方法領域,特別是涉及在由多終端構成的網(wǎng)絡環(huán)境中實現(xiàn)軟件并行下載升級的方法。
背景技術:
隨著網(wǎng)絡技術的不斷發(fā)展,越來越多的用戶開始通過移動網(wǎng)與互聯(lián)網(wǎng)連接獲取自己需要的信息。用戶的客戶端軟件實現(xiàn)了與互聯(lián)網(wǎng)之間多平臺跨網(wǎng)絡無縫溝通。
現(xiàn)有技術中的交互式網(wǎng)絡通信主要包括:(1)B/S(Browse/Server,瀏覽器/服務器)方式;(2)C/S(client/server,客戶端/服務器)網(wǎng)絡;(3)P2P(peer to peer,對等)網(wǎng)絡三種。上述三種網(wǎng)絡通訊的本質均為一方為相對的一方提供服務。
對于B/S網(wǎng)絡通訊是一種通過瀏覽器與服務器進行信息交互的網(wǎng)絡,最為常見就是WEB服務;C/S網(wǎng)絡是一種用戶通過客戶端側安裝的客戶端軟件與服務器進行交互信息溝通的網(wǎng)絡傳輸方式;P2P同樣也需要在用戶端安裝客戶端軟件與其他客戶端/服務器進行信息交換。上述三種網(wǎng)絡通訊方式中,C/S和P2P網(wǎng)絡都需要在客戶終端安裝相應的客戶端軟件,通過客戶端軟件,終端用戶能夠在用戶設備及服務器之間相互進行信息傳送(包括文字信息、語音信息、圖像信息)。這些客戶端軟件保證了用戶設備、服務器之間數(shù)據(jù)傳輸?shù)母咚?、穩(wěn)定。但隨著信息傳送功能的增強及業(yè)務發(fā)展需求,客戶端軟件也相應需要進行版本升級。傳統(tǒng)的客戶端軟件升級方式是在服務器上發(fā)布最新客戶端軟件版本,然后通知各個客戶端開始從服務器下載并升級,但當全網(wǎng)絡區(qū)域內的客戶終端數(shù)目過大時,所有終端同時執(zhí)行版本下載、升級操作,從服務器下載新版本軟件會占用較大的服務器資源,嚴重時甚至影響服務器正常的業(yè)務運行,而且該方式還可能導致部分終端版本升級失敗,從而導致全網(wǎng)絡區(qū)域的終端軟件版本不一致,帶來難以預 知的業(yè)務風險。采用何種網(wǎng)絡數(shù)據(jù)傳輸方式來保證客戶終端進行客戶端軟件下載升級對服務器的影響最小,傳送效率最高是網(wǎng)絡通訊發(fā)展的重要技術問題。
技術實現(xiàn)要素:
本申請的技術方案就是為了解決上述問題,提出一種多網(wǎng)絡區(qū)域多終端下的軟件并行下載升級方法,該方法結合傳統(tǒng)文件下載與P2P文件分發(fā)技術,實現(xiàn)快速、穩(wěn)定、安全的多終端文件下載升級,系統(tǒng)判斷接入服務器的下載負荷過大時,及時在完成下載的終端中選擇、啟用“種子服務器”,充當本區(qū)域終端的文件下載服務器,從而支撐全網(wǎng)終端快速完成文件下載,進而完成全網(wǎng)終端的版本快速升級。
實現(xiàn)上述發(fā)明目的的多終端軟件并行下載升級方法采用如下技術方案:一種多終端軟件并行下載升級方法,該方法包括如下步驟:(1)新的客戶端軟件上傳至管理服務器;(2)管理服務器判斷是否啟用終端作為“種子服務器”;(3)當上步的判斷結果為需要啟動“種子服務器”時,管理服務器在不同區(qū)域中選擇已完成客戶端軟件下載的終端作為“種子服務器”;(4)各區(qū)域終端從其區(qū)域內的“種子服務器”上下載新的客戶端軟件。上述方法中,核心是通過服務器對下載狀態(tài)的監(jiān)測判斷、選擇特定的終端作為“種子服務器”,從而使本區(qū)域內的其他終端再進行客戶端軟件下載升級時不再通過管理服務器進行數(shù)據(jù)傳送,減少了管理服務器的數(shù)據(jù)交換負擔,保證了服務器安全、穩(wěn)定、高效的運行。
上述步驟(3)中,管理服務器判斷是否啟用終端作為“種子服務器”的條件是:(a)全網(wǎng)絡區(qū)域進行客戶端軟件升級的終端是否超過終端總數(shù)的30%;(b)所有客戶端下載帶寬之和是否超過了管理服務器的物理帶寬的50%;(c)下載客戶端軟件的終端是否處于不同的區(qū)域中;上3個條件滿足任何一種情況時,啟用“種子服務器”終端。一旦選擇確定了該區(qū)域的“種子服務器”,則其數(shù)據(jù)傳輸?shù)膶ο缶途窒拊诒緟^(qū)域內的 終端,實現(xiàn)數(shù)據(jù)在區(qū)域內部的傳輸。實際上,服務器選擇某個終端作為服務器是具備一定的標準和要求,這里服務器按照下述3個條件進行優(yōu)先級排序選擇:(i)各區(qū)域中網(wǎng)絡下載速率最快的終端充當“種子服務器”;(ii)各區(qū)域中物理帶寬負荷最輕的終端充當“種子服務器”;(iii)各區(qū)域中CPU負荷最輕的終端充當“種子服務器”。通過上述3個標準的“種子服務器”選擇,可以保證作為“種子服務器”的終端在網(wǎng)絡傳輸上具有最高的效率和穩(wěn)定性,從而實現(xiàn)了其他各終端在客戶端軟件下載升級中的高效性能。由于“種子服務器”的選擇和建立僅是在需要進行客戶端軟件下載升級中建立的區(qū)域服務器,因此,在各區(qū)域終端從其區(qū)域內的“種子服務器”上完成下載客戶端軟件后,管理平臺關閉“種子服務器”的文件下載服務,原先作為“種子服務器”的終端將作為普通終端使用。
由于各區(qū)域終端所下載和升級的軟件是從“種子服務器”獲取的,很有可能會產(chǎn)生新安裝的軟件不能正常運行的情況,為此,各區(qū)域終端完成客戶端軟件下載后與管理服務器建立心跳連接并進行客戶端軟件驗證過程;如果驗證不通過,終端卸載本次升級下載的軟件,并從備份目錄中恢復操作前的軟件版本;同時進行客戶端軟件驗證過程,其具體是在終端與管理服務器建立心跳連接后,從服務器下載測試策略并執(zhí)行,將測試策略執(zhí)行結果上報服務器,服務器判斷終端上報的結果是否正常,若測試策略執(zhí)行結果正常,則終端本次升級操作正常完成,流程結束。上述驗證、測試過程,保證了各終端雖然從不同“種子服務器”中下載升級了軟件,但其最終的效果是同管理服務器軟件下載升級是一致的。
采用多線程并行運行方式目前已經(jīng)成為網(wǎng)絡通訊的常用手段,這種方式可以大大提高數(shù)據(jù)傳輸?shù)男?。為此,本技術方案中,終端從“種子服務器”下載客戶端軟件、終端驗證客戶端軟件的正確性均采用平行方式,及各個區(qū)域中的終端與各自區(qū)域內的“種子服務器”是同時進行數(shù)據(jù)信息交換。
具體實施方式
為更清楚說明本發(fā)明技術方案,下面借助一種具體的實施方式進行介紹,首先是終端軟件的下載和升級過程;其步驟是(1)管理員上傳最新的客戶端軟件到管理服務器;(2)終端端在通過心跳鏈接從管理服務器中獲取當前系統(tǒng)支持的最新客戶端軟件版本號;(3)終端進行版本號比對,發(fā)現(xiàn)系統(tǒng)存在新版本,發(fā)起客戶端版本下載更新流程;(4)終端端將自己的系統(tǒng)類型、IP地址、準備下載的軟件版本信息告知服務器;(5)服務器進行是否建立“種子服務器”的判斷并確定各“種子服務器”的IP地址和下載口令告知各終端;(6)各終端向對應的“種子服務器”發(fā)起下載請求,并進行口令認證;(7)終端通過口令認證后,完成新版本下載;(8)下載完成后,終端校驗軟件是否有效;(9)完成校驗后,終端安裝新版本軟件,完成版本升級操作。
終端版本驗證的過程如下:(1)終端在完成新版本軟件下載安裝后,建立到服務器的心跳連接;(2)若心跳連接建立失敗,終端檢查與服務器的連通性,若連通性不存在問題,則再次嘗試建立心跳連接,若仍然失敗,則判定客戶端新版本存在問題,則轉入版本回退流程;(3)終端建立心跳連接后,從服務器下載測試策略并執(zhí)行,將測試策略執(zhí)行結果上報服務器;(4)服務器判斷終端上報的結果是否正常,并將結果返回;(5)若測試策略執(zhí)行結果正常,則終端本次升級操作正常完成,流程結束;(6)若測試策略執(zhí)行結果異常,則客戶端本次升級操作失敗,轉入版本回退流程。
終端版本回退流程如下:(1)終端卸載本次升級下載的新版本軟件;(2)終端從備份目錄中恢復升級操作前的軟件版本;(3)軟件版本恢復后,終端重新建立到服務器的心跳連接;(3)心跳建立后,終端上報當前系統(tǒng)版本號及版本回退記錄及原因。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明實質內容上所作的任何修改、等同替換和簡單改進等,均應包含在本發(fā)明的保護范圍之內。