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