專利名稱:設(shè)備升級(jí)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及設(shè)備升級(jí)技術(shù),尤其涉及一種設(shè)備升級(jí)的方法。
背景技術(shù):
為了滿足用戶不斷增長(zhǎng)的業(yè)務(wù)需求,通常需要對(duì)設(shè)備進(jìn)行升級(jí),包括硬件 升級(jí)和軟件升級(jí)。其中,軟件升級(jí)可以更靈活的實(shí)現(xiàn)比硬件升級(jí)更加豐富、強(qiáng) 大的功能?,F(xiàn)有技術(shù)常用的軟件升級(jí)方法,如圖l所示,圖l為現(xiàn)有技術(shù)中設(shè) 備升級(jí)的示意圖,控制端上安裝有業(yè)務(wù)升級(jí)邏輯控制軟件,控制端通過安全外
殼(SSH, Secure Shell)或Telnet方式遠(yuǎn)程登錄到升級(jí)設(shè)備,由用戶在控制端 上手動(dòng)輸入操作命令發(fā)送給升級(jí)設(shè)備,包括文件下載、文件拷貝、創(chuàng)建目錄、 重啟進(jìn)程等,升級(jí)設(shè)備執(zhí)行所接收的操作命令,從而實(shí)現(xiàn)設(shè)備的升級(jí)。其中, 升級(jí)服務(wù)器擁有上傳文件、下載文件、創(chuàng)建目錄、刪除目錄等操作權(quán)限,為升 級(jí)設(shè)備提供文件的下載、上傳等服務(wù)。
但是,隨著設(shè)備應(yīng)用的日益廣泛,設(shè)備的數(shù)量迅速增加,分布的場(chǎng)所越來(lái) 越復(fù)雜,使得設(shè)備升級(jí)的工作量越來(lái)越大,升級(jí)難度也越來(lái)越高,并且由于設(shè) 備升級(jí)的操作為手動(dòng)重復(fù)性操作,操作的出錯(cuò)率較高,升級(jí)風(fēng)險(xiǎn)較大,升級(jí)成 本也隨著設(shè)備的增多而上升,因此現(xiàn)有技術(shù)中的手工升級(jí)搡作無(wú)法滿足實(shí)際應(yīng) 用的需要。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種設(shè)備升級(jí)的方法,以解決現(xiàn)有 技術(shù)中設(shè)備升級(jí)工作量大、風(fēng)險(xiǎn)大、成本高的問題。
為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這^^羊?qū)崿F(xiàn)的 本發(fā)明提供了一種設(shè)備升級(jí)的方法,包括
為待升級(jí)設(shè)備分配空閑的工作線程;
所分配的工作線程根據(jù)配置的升級(jí)程序?qū)λ龃?jí)設(shè)備執(zhí)行升級(jí)操作。 其中,所述為待升級(jí)設(shè)備分配空閑的工作線程,具體包括 用戶接口 UI向管理線程發(fā)送升級(jí)請(qǐng)求消息,所述消息中包括待升級(jí)設(shè)備身 份標(biāo)識(shí)ID和操作類型,所述操作類型為開始升級(jí);
管理線程根據(jù)所述升級(jí)請(qǐng)求消息中的待升級(jí)設(shè)備ID和操作類型,查找內(nèi)存
數(shù)據(jù)中對(duì)應(yīng)所述待升級(jí)設(shè)備的當(dāng)前狀態(tài)為待升級(jí)、暫停、升級(jí)失敗和升級(jí)超時(shí) 的其中一種,確定所述;f爭(zhēng)升級(jí)設(shè)備可執(zhí)行開始升級(jí)的操作;
所述管理線程遍歷內(nèi)存中的所有設(shè)備,對(duì)當(dāng)前狀態(tài)為準(zhǔn)備升級(jí)的設(shè)備分配 空閑的工作線程;
所述管理線程向所分配的工作線程發(fā)送升級(jí)指令。 其中,所述確定開始升級(jí)操作可執(zhí)行之后,還包括 管理線程向數(shù)椐更新線程和UI更新線程發(fā)送數(shù)據(jù)更新消息,所述消息中包 括待升級(jí)設(shè)備ID和目標(biāo)狀態(tài),所述目標(biāo)狀態(tài)為準(zhǔn)備升級(jí);
所述數(shù)據(jù)更新線程才艮據(jù)數(shù)據(jù)更新消息將內(nèi)存數(shù)據(jù)中對(duì)應(yīng)所述待升級(jí)設(shè)備的 當(dāng)前狀態(tài)更新為準(zhǔn)備升級(jí),所述UI更新線程根據(jù)數(shù)據(jù)更新消息將顯示界面中對(duì) 應(yīng)所述待升級(jí)設(shè)備的狀態(tài)更新為準(zhǔn)備升級(jí);
所述數(shù)據(jù)更新線程向管理線程返回更新完畢的響應(yīng)消息。 其中,所述數(shù)椐更新線程對(duì)內(nèi)存數(shù)據(jù)進(jìn)行更新之后,還包括 所述數(shù)據(jù)更新線程通知數(shù)據(jù)同步線程進(jìn)行更新;
...........殺月器。
其中,所述為待升級(jí)設(shè)備分配空閑的工作線程,進(jìn)一步包括 所述管理線程向UI更新線程發(fā)送數(shù)據(jù)更新消息,所述消息中包括待升級(jí)設(shè)
備ID和目標(biāo)狀態(tài),所述目標(biāo)狀態(tài)為升級(jí)中;
所述UI更新線程根據(jù)數(shù)據(jù)更新消息將顯示界面中對(duì)應(yīng)所述待升級(jí)設(shè)備的
狀態(tài)更新為升級(jí)中。
其中,所述所分配的工作線程對(duì)待升級(jí)設(shè)備執(zhí)行升級(jí)操作,具體包括 所述工作線程對(duì)所接收的升級(jí)指令進(jìn)行解析,獲取所述待升級(jí)設(shè)備的網(wǎng)際
協(xié)議IP信息和升級(jí)所需進(jìn)行操作步驟的偽指令;
所述工作線程向所述待升級(jí)設(shè)備發(fā)送所述操作步驟的偽指令; 所述待升級(jí)設(shè)備根據(jù)所接收偽指令執(zhí)行相應(yīng)的操作步驟。 其中,所述工作線程對(duì)待升級(jí)設(shè)備執(zhí)行升級(jí)操作,進(jìn)一步包括 所述待升級(jí)設(shè)備在每個(gè)搡作步驟執(zhí)行完后,向所述工作線程返回步驟執(zhí)行
結(jié)果,所述步驟執(zhí)行結(jié)果為操作成功、操作失敗和操作超時(shí)的其中一種;
所述工作線程將所述步驟執(zhí)行結(jié)果發(fā)送給數(shù)據(jù)更新線程和Ul更新線程進(jìn)
行所述待升級(jí)設(shè)備狀態(tài)的更新。
其中,所述方法進(jìn)一步包括在所述待升級(jí)設(shè)備執(zhí)行升級(jí)操作過程中,將
所述升級(jí)操作暫停,具體包括
UI向管理線程發(fā)送暫停請(qǐng)求消息,所述消息中包括待升級(jí)設(shè)備身份標(biāo)識(shí)ID
和操作類型,所述4喿作類型為升級(jí)暫停;
管理線程根據(jù)所述暫停請(qǐng)求消息遍歷所有的工作線程,判斷存在執(zhí)行所述
待升級(jí)設(shè)備升級(jí)操作的工作線程,則確定所述待升級(jí)設(shè)備可執(zhí)行升級(jí)暫停的操
作,并將執(zhí)行所述待升級(jí)設(shè)備升級(jí)操作的工作線程的暫停變量修改為暫停變量值。
其中,所述判斷升級(jí)暫停操作可執(zhí)行之后,還包括 管理線程向數(shù)據(jù)更新線程和tn更新線程發(fā)送數(shù)據(jù)更新消息,所述消息中包
括待升級(jí)設(shè)備ID和目標(biāo)狀態(tài),所述目標(biāo)狀態(tài)為待暫停;
當(dāng)前狀態(tài)更新為待暫停,所述UI更新線程根據(jù)數(shù)據(jù)更新消息將顯示界面中對(duì)應(yīng) 所述待升級(jí)設(shè)備的狀態(tài)更新為待暫停;
所述數(shù)據(jù)更新線程向管理線程返回更新完畢的響應(yīng)消息。
其中,所述管理線程修改暫停變量之后,還包括
工作線程執(zhí)行升級(jí)暫停操作;如果所述升級(jí)暫停操作成功,則所述工作線程向數(shù)據(jù)更新線程和UI更新線 程發(fā)送數(shù)據(jù)更新消息進(jìn)行對(duì)應(yīng)待升級(jí)設(shè)備狀態(tài)的更新,所述消息中包括待升級(jí)
設(shè)備ID和目標(biāo)狀態(tài),所述目標(biāo)狀態(tài)為暫停;
如果所述升級(jí)暫停操作失敗或超時(shí),所述工作線程停止升級(jí)暫停操作,并 通知管理線程。
本發(fā)明的設(shè)備升級(jí)方法,在控制端上配置升級(jí)操作程序和用以實(shí)現(xiàn)特定功 能的線程,當(dāng)升級(jí)程序啟動(dòng)后,各線程之間協(xié)調(diào)工作,本發(fā)明可實(shí)現(xiàn)批量設(shè)備 的自動(dòng)升級(jí),無(wú)需用戶手工操作,提高了升級(jí)效率,降低了升級(jí)風(fēng)險(xiǎn)和成本, 而且升級(jí)過程可控制,升級(jí)進(jìn)度可顯示。
圖1為現(xiàn)有技術(shù)中設(shè)備升級(jí)的示意圖2為本發(fā)明實(shí)施例的控制端內(nèi)部各線程工作狀況示意圖3為本發(fā)明設(shè)備進(jìn)行升級(jí)操作的流程圖4為本發(fā)明設(shè)備進(jìn)行升級(jí)暫停操作的流程圖。
具體實(shí)施例方式
下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明的技術(shù)方案進(jìn)一步詳細(xì)闡迷。 本發(fā)明的設(shè)備升級(jí)方法,將對(duì)設(shè)備進(jìn)行升級(jí)的操作過程采用軟件編程,在 控制端對(duì)該軟件程序進(jìn)行存儲(chǔ),升級(jí)操作由控制端調(diào)用軟件程序自動(dòng)完成,省 去了手工搡作的麻煩。
為此,本發(fā)明的實(shí)施例對(duì)基礎(chǔ)線程進(jìn)行擴(kuò)展得到用以實(shí)現(xiàn)特定功能的各種 線程,包括管理線程、工作線程、數(shù)據(jù)更新線程、數(shù)據(jù)同步線程和用戶接口 (UI, User Interface)更新線程等。其中,管理線程負(fù)責(zé)工作線程的資源分配 和管理;工作線程負(fù)責(zé)與待升級(jí)設(shè)備之間的通信,實(shí)現(xiàn)升級(jí)操作,并返回操作 結(jié)果,工作線程根據(jù)實(shí)際需要配置多個(gè),從而可實(shí)現(xiàn)對(duì)多臺(tái)設(shè)備的升級(jí);數(shù)據(jù) 更新線程用于對(duì)升級(jí)過程中的數(shù)據(jù)進(jìn)行更新;數(shù)據(jù)間步線程用于對(duì)更新的數(shù)據(jù)
進(jìn)行保存并上傳到升級(jí)服務(wù)器進(jìn)行備份;ui更新線程用于更新軟件界面顯示, 使用戶可及時(shí)了解升級(jí)過程和操作結(jié)果的變化。當(dāng)升級(jí)的程序啟動(dòng)后,各線程 之間進(jìn)行相互通信,并協(xié)調(diào)工作,多個(gè)工作線程可實(shí)現(xiàn)對(duì)多臺(tái)設(shè)備的升級(jí),數(shù) 據(jù)更新線程使得控制端的內(nèi)存數(shù)據(jù)得到及時(shí)更新,數(shù)據(jù)同步線程使得升級(jí)服務(wù) 器中的數(shù)據(jù)與控制端的內(nèi)存數(shù)據(jù)達(dá)到同步更新,ui更新線程使得用戶界面顯示 數(shù)據(jù)得到及時(shí)更新。另外,本發(fā)明的實(shí)施例可實(shí)現(xiàn)對(duì)設(shè)備的開始升級(jí)和升級(jí)暫 停兩種操作,可對(duì)升級(jí)過程中的設(shè)備進(jìn)行升級(jí)暫停的操作,從而使得升級(jí)的過 程可控制。
本發(fā)明的實(shí)施例對(duì)設(shè)備狀態(tài)進(jìn)行了如下定義,包括待升級(jí)、準(zhǔn)備升級(jí)、
升級(jí)中、待暫停、暫停、升級(jí)成功、升級(jí)失敗和升級(jí)超時(shí)。
所謂待升級(jí)是指設(shè)備未執(zhí)行任何操作時(shí)的狀態(tài),為設(shè)備的初始狀態(tài),處于
待升級(jí)狀態(tài)的設(shè)備可進(jìn)行開始升級(jí)的操作,設(shè)備狀態(tài)由待升級(jí)轉(zhuǎn)變?yōu)闇?zhǔn)備升級(jí)。 所謂準(zhǔn)備升級(jí)是指發(fā)起升級(jí)操作,但未分配工作線程時(shí)的狀態(tài),由管理線
程進(jìn)行工作線程的分配后,該設(shè)備狀態(tài)由準(zhǔn)備升級(jí)轉(zhuǎn)變?yōu)樯?jí)中。
所謂升級(jí)中是指分配到工作線程,已開始升級(jí)操作。處于升級(jí)中的設(shè)備可
進(jìn)行升級(jí)暫停的操作,狀態(tài)由升級(jí)中轉(zhuǎn)變?yōu)榇龝和?。若升?jí)操作完成,狀態(tài)由
升級(jí)中轉(zhuǎn)變?yōu)樯?jí)成功;若升級(jí)過程中某步操作執(zhí)行失敗,則狀態(tài)轉(zhuǎn)變?yōu)樯?jí) 失??;若升級(jí)過程中某步操作超時(shí),則狀態(tài)轉(zhuǎn)變?yōu)樯?jí)超時(shí)。
所謂待暫停是指設(shè)備升級(jí)中發(fā)起暫停操作并已接收命令,等待正在執(zhí)行步 驟返回操作結(jié)果。返回操作結(jié)果后,該設(shè)備狀態(tài)由待暫停轉(zhuǎn)變?yōu)闀和!?br>
所謂暫停是指設(shè)備處于暫停狀態(tài),暫停升級(jí)的操作。處于暫停狀態(tài)的設(shè)備 可再次執(zhí)行開始升級(jí)的操作,狀態(tài)轉(zhuǎn)變?yōu)闇?zhǔn)備升級(jí)。
所謂升級(jí)成功是指所有升級(jí)操作均已成功完成,升級(jí)結(jié)束。升級(jí)成功的設(shè) 備狀態(tài)不能再改變。
所謂升級(jí)失敗是指設(shè)備升級(jí)過程中,某步驟執(zhí)行失??;升級(jí)失敗的設(shè)備可 再次執(zhí)行開始升級(jí)的操作,狀態(tài)轉(zhuǎn)變?yōu)闇?zhǔn)備升級(jí),并繼續(xù)升級(jí)步驟。
所謂升級(jí)超時(shí)是指設(shè)備某步升級(jí)操作未在預(yù)期規(guī)定時(shí)間內(nèi)返回結(jié)果;升級(jí)
超時(shí)的設(shè)備可再次執(zhí)行開始升級(jí)的操作,狀態(tài)轉(zhuǎn)變?yōu)闇?zhǔn)備升級(jí),并繼續(xù)升級(jí)步 驟。
下面結(jié)合圖2所示本發(fā)明實(shí)施例控制端內(nèi)部各線程工作狀況示意圖,對(duì)本 發(fā)明控制端對(duì)設(shè)備進(jìn)行升級(jí)操作的過程進(jìn)行描述,如圖3所示,主要包括以下 步驟
步驟301 , UI向管理線程發(fā)起升級(jí)請(qǐng)求消息。
用戶通過UI發(fā)起升級(jí)操作,并通過UI向管理線程發(fā)送升級(jí)請(qǐng)求消息,該 消息中包括待升級(jí)設(shè)備的身份標(biāo)識(shí)(ID, Identity)和操作類型等,其中,操 作類型為開始升級(jí)。
步驟302,管理線程判斷該待升級(jí)設(shè)備是否可執(zhí)行開始升級(jí)的搡作,如果 可執(zhí)行,則轉(zhuǎn)到步驟303;否則,不進(jìn)行任何#:作,結(jié)束流程。
管理線程接收到升級(jí)請(qǐng)求消息后,根據(jù)該消息中的待升級(jí)設(shè)備ID和操作類 型,分析內(nèi)存數(shù)據(jù),進(jìn)而判定該待升級(jí)設(shè)備是否可執(zhí)行開始升級(jí)的搡作。管理 檢查內(nèi)存數(shù)據(jù)中的對(duì)應(yīng)待升級(jí)設(shè)備當(dāng)前狀態(tài)是否為待升級(jí)、暫停、升級(jí)失敗和 升級(jí)超時(shí)的其中一種,如果是,則判定該待升級(jí)設(shè)備可執(zhí)行開始升級(jí)的操作, 并轉(zhuǎn)到步驟303;否則,判定該待升級(jí)設(shè)備不可執(zhí)行開始升級(jí)的操作,并結(jié)束 流程。因?yàn)?,由前迷本發(fā)明為設(shè)備定義的狀態(tài)可知,只有當(dāng)設(shè)備處于待升級(jí)、 暫停、升級(jí)失敗或升級(jí)超時(shí)的狀態(tài)時(shí),才可進(jìn)^f于開始升級(jí)的:l喿作。
步驟303,管理線程確定該待升級(jí)設(shè)備可執(zhí)行開始升級(jí)的操作后,向UI更 新線程和數(shù)據(jù)更新線程分別發(fā)送數(shù)據(jù)更新的消息。該消息中包括待升級(jí)設(shè)備ID 和目標(biāo)狀態(tài),對(duì)應(yīng)開始升級(jí)操作的目標(biāo)狀態(tài)為準(zhǔn)備升級(jí)。
步驟304, UI更新線程和數(shù)據(jù)更新線程根據(jù)所接收數(shù)椐更新消息分別進(jìn)行 數(shù)據(jù)更新。
UI更新線程根據(jù)所接收數(shù)據(jù)更新消息中的待升級(jí)設(shè)備ID和目標(biāo)狀態(tài),將 顯示界面中的對(duì)應(yīng)待升級(jí)設(shè)備狀態(tài)更新為準(zhǔn)備升級(jí),從而使得顯示界面對(duì)待升 級(jí)設(shè)備的顯示狀態(tài)及時(shí)更新。
同樣地,數(shù)據(jù)更新線程根據(jù)所接收數(shù)據(jù)更新消息中的待升級(jí)設(shè)備ID和目標(biāo)
狀態(tài),將內(nèi)存lt據(jù)中對(duì)應(yīng)待升級(jí)設(shè)備的狀態(tài)更新為準(zhǔn)備升級(jí)。另外,數(shù)據(jù)更新 線程更新完畢后,繼續(xù)通知數(shù)據(jù)同步線程進(jìn)^f亍更新,數(shù)據(jù)同步線程將更新后的
內(nèi)存數(shù)據(jù)j呆存為文本文件,并發(fā)起文件傳輸協(xié)議(FTP, File Transfer Protocol) 操作,將新生成的文件上傳至升級(jí)服務(wù)器,由升級(jí)服務(wù)器進(jìn)行存儲(chǔ)。需要指出 的是,數(shù)據(jù)更新線程每次進(jìn)行內(nèi)存數(shù)據(jù)的更新操作以后,都要通知數(shù)據(jù)同步線 程進(jìn)行更新,從而使得控制端和升級(jí)服務(wù)器的信息達(dá)到同步。 步驟305,數(shù)據(jù)更新線程向管理線程返回更新完畢的響應(yīng)。 凄t據(jù)更新線程的更新操作完成以后,向管理線程返回響應(yīng)消息,以告知管 理線程該數(shù)據(jù)更新線程的更新操作已完成,可進(jìn)行下一步的操作。 步驟306,管理線程為待升級(jí)設(shè)備分配工作線程。
管理線程接收到數(shù)據(jù)更新線程返回的響應(yīng)消息后,遍歷內(nèi)存中存儲(chǔ)的所有 設(shè)備ID,查找設(shè)備的當(dāng)前狀態(tài)。查找到狀態(tài)為準(zhǔn)備升級(jí)的設(shè)備,則表明對(duì)該設(shè) 備執(zhí)行開始升級(jí)的操作,管理線程記錄該設(shè)備的ID并為該設(shè)備分配一個(gè)空閑的 工作線程,向分配的工作線程發(fā)送升級(jí)指令,然后發(fā)送更新消息到UI更新線程, 由UI更新線程將顯示界面中對(duì)應(yīng)該設(shè)備的狀態(tài)更新為升級(jí)中。若所有的工作線 程都處于繁忙狀態(tài),則暫不進(jìn)行工作線程的分配,直到有空閑線程時(shí)再做分配。 管理線程在每次分配工作線程之前都需要遍歷內(nèi)存中存儲(chǔ)的所有設(shè)備ID,則當(dāng) 所有工作線程都處于繁忙狀態(tài)無(wú)法分配時(shí),無(wú)需對(duì)這些無(wú)法分配工作線程的設(shè) 備信息進(jìn)行再次記錄和管理,使得處理邏輯復(fù)雜的問題,并且每次分配工作線 程之前遍歷內(nèi)存中存儲(chǔ)的所有iSL備JD,使得每次分配的邏輯結(jié)構(gòu)簡(jiǎn)化,當(dāng)待升 級(jí)設(shè)備為多個(gè)時(shí)能保證最大量分配。
步驟307,工作線程接收到升級(jí)指令后,執(zhí)行相應(yīng)的升級(jí)操作。 整個(gè)的升級(jí)操怍是由一系列的操作步驟組成,并且一個(gè)工作線程根據(jù)配置 的升級(jí)程序,負(fù)責(zé)一臺(tái)設(shè)備的所有升級(jí)操作。每個(gè)設(shè)備上都存在一駐留程序, 在設(shè)備的約定端口上進(jìn)行套接字(socket)監(jiān)聽。工作線程接收到管理線程的升 級(jí)指令后,解析指令信息,得到待升級(jí)設(shè)備的網(wǎng)際協(xié)議(IP, Internet Protocol) 信息以及升級(jí)所要進(jìn)行的操作步驟的偽指令。然后,工作線程利用獲取的IP信 息與待升級(jí)設(shè)備建立socket連接,連接成功后發(fā)送偽指令到待升級(jí)設(shè)備的駐留 程序,由駐留程序根據(jù)接收的偽指令生成可執(zhí)行的外殼(shell)命令,從而執(zhí) 行相應(yīng)的操作步驟。待升級(jí)設(shè)備在每個(gè)操作步驟執(zhí)行完后,向工作線程返回結(jié) 果,從而完成一個(gè)才乘作步驟,然后斷開socket連接。當(dāng)執(zhí)行下一步操作時(shí),再 次建立socket連接,并重復(fù)執(zhí)行上述操作。直到所有的操作步驟都執(zhí)行完成, 則表明升級(jí)已完成。
待升級(jí)設(shè)備在每個(gè)操作步驟執(zhí)行完后,向工作線程返回步驟執(zhí)行結(jié)果,而 工作線程在得到每步的操作結(jié)果后,通知數(shù)據(jù)更新線程和UI更新線程進(jìn)行數(shù)據(jù) 更新,從而使得內(nèi)存數(shù)據(jù)和界面顯示信息得到及時(shí)更新。前述的步驟執(zhí)行結(jié)果 包括操作成功、操作失敗和操作超時(shí)。需要指出的是,如果待升級(jí)設(shè)備在執(zhí) 行某操作步驟時(shí)發(fā)生錯(cuò)誤,如操作失敗或操作超時(shí),則向工作線程返回操作 失敗或操作超時(shí)的結(jié)果,同時(shí)上報(bào)相應(yīng)日志說明失敗或超時(shí)的原因。工作線程 立即暫停升級(jí)操作,并通知管理線程。用戶可根據(jù)上報(bào)的日志排解問題后,重 新通過UI發(fā)起開始升級(jí)的操作,并由管理線程重新選擇空閑的工作線程繼續(xù)執(zhí) 行未完成的升級(jí)操作步驟。
步驟308,升級(jí)完成后,工作線程通知數(shù)據(jù)更新線程和UI更新線程將對(duì)應(yīng) 待升級(jí)設(shè)備的狀態(tài)更新為升級(jí)成功,管理線程將該工作線程的資源釋放。
下面再結(jié)合圖2所示本發(fā)明實(shí)施例控制端內(nèi)部各線程工作狀況示意圖,對(duì) 本發(fā)明控制端對(duì)設(shè)備進(jìn)行升級(jí)暫停操作的過程進(jìn)行描述,如圖4所示,主要包 括以下步驟
步驟401, UI向管理線程發(fā)起暫停請(qǐng)求消息。
用戶通過UI發(fā)起升級(jí)暫停操作,并通過UI向管理線程發(fā)送暫停請(qǐng)求消息, 該消息中包括待升級(jí)設(shè)備的ID和操作類型等,其中,操作類型為升級(jí)暫停。
步驟402,管理線程判斷該待升級(jí)設(shè)備是否可執(zhí)行升級(jí)暫停的操作,如果 可執(zhí)行,則轉(zhuǎn)到步驟403;否則,不進(jìn)行任何操作,結(jié)束流程。
管理線程根據(jù)所接收暫停請(qǐng)求消息,遍歷所有的工作線程,判斷是否存在 執(zhí)行對(duì)應(yīng)待升級(jí)設(shè)備升級(jí)操作的工作線程,如果存在,則判斷該升級(jí)暫停操作
可執(zhí)行;否則,判斷該升級(jí)暫停操作不可執(zhí)行。
步驟403,管理線程判定該待升級(jí)設(shè)備可執(zhí)行升級(jí)暫停的操作,向UI更新 線程和數(shù)據(jù)更新線程分別發(fā)送數(shù)據(jù)更新的消息。該消息中包括待升級(jí)設(shè)備ID和 目標(biāo)狀態(tài),對(duì)應(yīng)升級(jí)暫停操作的目標(biāo)狀態(tài)為待暫停。
步驟404, UI更新線程和數(shù)據(jù)更新線程根據(jù)所接收數(shù)據(jù)更新消息分別進(jìn)行 數(shù)據(jù)更新。
UI更新線程根據(jù)所接收數(shù)據(jù)更新消息中的待升級(jí)設(shè)備ID和目標(biāo)狀態(tài),將 顯示界面中的對(duì)應(yīng)待升級(jí)設(shè)備狀態(tài)更新為待暫停,從而使得顯示界面對(duì)待升級(jí) 設(shè)備的顯示狀態(tài)及時(shí)更新。
同樣地,數(shù)據(jù)更新線程根據(jù)所接收數(shù)據(jù)更新消息中的待升級(jí)設(shè)備ID和目標(biāo) 狀態(tài),將內(nèi)存數(shù)據(jù)中對(duì)應(yīng)待升級(jí)設(shè)備的狀態(tài)更新為待暫停。另外,數(shù)據(jù)更新線 程更新完畢后,繼續(xù)通知數(shù)據(jù)同步線程進(jìn)行更新,數(shù)據(jù)同步線程將更新后的內(nèi) 存數(shù)據(jù)保存為文本文件,并發(fā)起FTP操作,將新生成的文件上傳至升級(jí)服務(wù)器, 由升級(jí)服務(wù)器進(jìn)行存儲(chǔ)。
步驟405,數(shù)據(jù)更新線程向管理線程返回更新完畢的響應(yīng)。 數(shù)據(jù)更新線程的更新操作完成以后,向管理線程返回響應(yīng)消息,以告知管 理線程該數(shù)據(jù)更新線程的更新操作已完成,可進(jìn)行下一步的操作。 步驟406,管理線程修改待升級(jí)設(shè)備對(duì)應(yīng)工作線程的暫停變量值。 管理線程接收到凄t據(jù)更新線程返回的響應(yīng)消息后,遍歷內(nèi)存中存儲(chǔ)的所有 設(shè)備ID,查找設(shè)備的當(dāng)前狀態(tài)。查找到狀態(tài)為待暫停的設(shè)備,則表明對(duì)該設(shè)備 執(zhí)行升級(jí)暫停的操作,管理線程遍歷所有的工作線程,查找到執(zhí)行該設(shè)備升級(jí) 操作的工作線程,并對(duì)該工作線程的暫停變量進(jìn)行修改,暫停變量的初始值為 false,表示不暫停,將暫停變量修改為true,表示暫停。需要指出的是,工作 線程在執(zhí)行升級(jí)操作步驟的過程中,執(zhí)行完每步操作后,都需要對(duì)暫停變量進(jìn) 行判斷,如果判斷暫停變量值為false,則繼續(xù)下一步的升級(jí)操作;如果判斷暫 停變量值為true,則執(zhí)行升級(jí)暫停操作,停止后續(xù)的升級(jí)操作步驟,并向數(shù)據(jù) 更新線程和UI更新線程發(fā)送數(shù)據(jù)更新消息,該消息中包括待升級(jí)設(shè)備ID和目
標(biāo)狀態(tài),該目標(biāo)狀態(tài)為暫停。數(shù)據(jù)更新線程和UI更新線程分別將內(nèi)存數(shù)據(jù)和界 面信息中對(duì)應(yīng)設(shè)備的狀態(tài)更新為暫停。另外,如果工作線程執(zhí)行升級(jí)暫停操作 失敗或超時(shí),則通知管理線程,并上報(bào)相應(yīng)的日志信息。用戶可根據(jù)上報(bào)的日
志信息排解問題,然后重新通過UI發(fā)起升級(jí)暫停的操作。
以上為本發(fā)明實(shí)施例的設(shè)備升級(jí)方法的詳細(xì)描述,本發(fā)明的設(shè)備升級(jí)方法 可實(shí)現(xiàn)對(duì)批量設(shè)備的升級(jí)操作,例如網(wǎng)絡(luò)電視(IPTV, Internet Protocol Television)系統(tǒng)中的外部網(wǎng)關(guān)協(xié)議(EGP, External Gateway Protocol)服務(wù)器 升級(jí)和內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN, Content Delivery Network)代理服務(wù)器升級(jí)等。 本發(fā)明的設(shè)備升級(jí)方法在實(shí)際應(yīng)用中進(jìn)行操作之前,可先在測(cè)試環(huán)境中進(jìn)行升 級(jí)檢驗(yàn),從而可確保正式升級(jí)操作的順利進(jìn)行。
以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。
權(quán)利要求
1、一種設(shè)備升級(jí)的方法,其特征在于,包括為待升級(jí)設(shè)備分配空閑的工作線程;所分配的工作線程根據(jù)配置的升級(jí)程序?qū)λ龃?jí)設(shè)備執(zhí)行升級(jí)操作。
2、 根據(jù)權(quán)利要求1所述設(shè)備升級(jí)的方法,其特征在于,所述為待升級(jí)設(shè)備 分配空閑的工作線程,具體包括用戶接口 UI向管理線程發(fā)送升級(jí)請(qǐng)求消息,所述消息中包括待升級(jí)設(shè)備身 份標(biāo)識(shí)ID和操作類型,所述操作類型為開始升級(jí);管理線程根據(jù)所述升級(jí)請(qǐng)求消息中的待升級(jí)設(shè)備ID和操作類型,查找內(nèi)存 數(shù)據(jù)中對(duì)應(yīng)所述待升級(jí)設(shè)備的當(dāng)前狀態(tài)為待升級(jí)、暫停、升級(jí)失敗和升級(jí)超時(shí) 的其中 一種,確定所述待升級(jí)設(shè)備可執(zhí)行開始升級(jí)的操作;所述管理線程遍歷內(nèi)存中的所有設(shè)備,對(duì)當(dāng)前狀態(tài)為準(zhǔn)備升級(jí)的設(shè)備分配 空閑的工作線程;所述管理線程向所分配的工作線程發(fā)送升級(jí)指令。
3、 根據(jù)權(quán)利要求2所述設(shè)備升級(jí)的方法,其特征在于,所述確定開始升級(jí) 操作可執(zhí)行之后,還包括管理線程向數(shù)椐更新線程和UI更新線程發(fā)送數(shù)據(jù)更新消息,所述消息中包 括待升級(jí)設(shè)備ID和目標(biāo)狀態(tài),所述目標(biāo)狀態(tài)為準(zhǔn)備升級(jí);所述數(shù)據(jù)更新線程根據(jù)數(shù)據(jù)更新消息將內(nèi)存數(shù)據(jù)中對(duì)應(yīng)所述待升級(jí)設(shè)備的 當(dāng)前狀態(tài)更新為準(zhǔn)備升級(jí),所述UI更新線程根據(jù)數(shù)據(jù)更新消息將顯示界面中對(duì) 應(yīng)所述待升級(jí)設(shè)備的狀態(tài)更新為準(zhǔn)備升級(jí);所述數(shù)據(jù)更新線程向管理線程返回更新完畢的響應(yīng)消息。
4、 根據(jù)權(quán)利要求3所述設(shè)備升級(jí)的方法,其特征在于,所述數(shù)據(jù)更新線程 對(duì)內(nèi)存數(shù)據(jù)進(jìn)行更新之后,還包括所述數(shù)據(jù)更新線程通知數(shù)據(jù)同步線程進(jìn)行更新;所述數(shù)據(jù)同步線程將更新后的內(nèi)存數(shù)據(jù)保存為文本文件發(fā)送至升級(jí)服務(wù)器。
5、 根據(jù)權(quán)利要求2所述設(shè)備升級(jí)的方法,其特征在于,所述為待升級(jí)設(shè)備分配空閑的工作線程,進(jìn)一步包括所述管理線程向UI更新線程發(fā)送數(shù)據(jù)更新消息,所述消息中包括待升級(jí)設(shè) 備ID和目標(biāo)狀態(tài),所述目標(biāo)狀態(tài)為升級(jí)中;所述UI更新線程根據(jù)數(shù)據(jù)更新消息將顯示界面中對(duì)應(yīng)所述待升級(jí)設(shè)備的 狀態(tài)更新為升級(jí)中。
6、 根據(jù)權(quán)利要求1所述設(shè)備升級(jí)的方法,其特征在于,所述所分配的工作 線程對(duì)待升級(jí)設(shè)備執(zhí)行升級(jí)操作,具體包括所述工作線程對(duì)所接收的升級(jí)指令進(jìn)行解析,獲取所述待升級(jí)設(shè)備的網(wǎng)際 協(xié)議IP信息和升級(jí)所需進(jìn)行操作步驟的偽指令;所述工作線程向所述待升級(jí)設(shè)備發(fā)送所述4喿作步驟的偽指令; 所述待升級(jí)設(shè)備根據(jù)所接收偽指令執(zhí)行相應(yīng)的操作步驟。
7、 拫據(jù)權(quán)利要求6所述設(shè)備升級(jí)的方法,其特征在于,所述工作線程對(duì)待 升級(jí)設(shè)備執(zhí)行升級(jí)操作,進(jìn)一步包括所述待升級(jí)設(shè)備在每個(gè)操作步驟執(zhí)行完后,向所述工作線程返回步驟執(zhí)行 結(jié)果,所述步驟執(zhí)行結(jié)果為操作成功、操作失敗和操作超時(shí)的其中一種;所述工作線程將所述步驟執(zhí)行結(jié)果發(fā)送給數(shù)據(jù)更新線程和UI更新線程進(jìn) 行所述待升級(jí)設(shè)備狀態(tài)的更新。
8、 根據(jù)權(quán)利要求1所述設(shè)備升級(jí)的方法,其特征在于,所述方法進(jìn)一步包 括在所述待升級(jí)設(shè)備執(zhí)行升級(jí)操作過程中,將所述升級(jí)操作暫停,具體包括UI向管理線程發(fā)送暫停請(qǐng)求消息,所述消息中包括待升級(jí)設(shè)備身份標(biāo)識(shí)ID 和操作類型,所述操作類型為升級(jí)暫停;管理線程^4居所述暫停請(qǐng)求消息遍歷所有的工作線程,判斷存在執(zhí)行所述 待升級(jí)設(shè)備升級(jí)操作的工作線程,則確定所述待升級(jí)設(shè)備可執(zhí)行升級(jí)暫停的操 作,并將執(zhí)行所述待升級(jí)設(shè)備升級(jí)操作的工作線程的暫停變量修改為暫停變量 值。
9、 根據(jù)權(quán)利要求8所述設(shè)備升級(jí)的方法,其特征在于,所述判斷升級(jí)暫停 操作可執(zhí)行之后,還包括管理線程向數(shù)據(jù)更新線程和UI更新線程發(fā)送數(shù)據(jù)更新消息,所述消息中包 括待升級(jí)設(shè)備ID和目標(biāo)狀態(tài),所述目標(biāo)狀態(tài)為待暫停;所述數(shù)據(jù)更新線程根據(jù)數(shù)據(jù)更新消息將內(nèi)存數(shù)據(jù)中對(duì)應(yīng)所述待升級(jí)設(shè)備的 當(dāng)前狀態(tài)更新為待暫停,所述UI更新線程根據(jù)數(shù)據(jù)更新消息將顯示界面中對(duì)應(yīng) 所述待升級(jí)設(shè)備的狀態(tài)更新為待暫停;所述數(shù)據(jù)更新線程向管理線程返回更新完畢的響應(yīng)消息。
10、 根據(jù)權(quán)利要求9所述設(shè)備升級(jí)的方法,其特征在于,所述管理線程修 改暫停變量之后,還包括工作線程執(zhí)行升級(jí)暫停操作;如果所述升級(jí)暫停操作成功,則所述工作線程向數(shù)據(jù)更新線程和UI更新線 程發(fā)送數(shù)據(jù)更新消息進(jìn)行對(duì)應(yīng)待升級(jí)設(shè)備狀態(tài)的更新,所述消息中包括待升級(jí) 設(shè)備ID和目標(biāo)狀態(tài),所述目標(biāo)狀態(tài)為暫停;如果所述升級(jí)暫停操作失敗或超時(shí),所述工作線程停止升級(jí)暫停操作,并 通知管理線程。
全文摘要
本發(fā)明公開了一種設(shè)備升級(jí)的方法,包括為待升級(jí)設(shè)備分配空閑的工作線程;所分配的工作線程根據(jù)配置的升級(jí)程序?qū)υ摯?jí)設(shè)備執(zhí)行升級(jí)操作。本發(fā)明的設(shè)備升級(jí)方法,在控制端上配置升級(jí)操作程序和用以實(shí)現(xiàn)特定功能的線程,當(dāng)升級(jí)程序啟動(dòng)后,各線程之間協(xié)調(diào)工作,可實(shí)現(xiàn)批量設(shè)備的自動(dòng)升級(jí),無(wú)需用戶手工操作,提高了升級(jí)效率,降低了升級(jí)風(fēng)險(xiǎn)和成本,而且升級(jí)過程可控制,升級(jí)進(jìn)度可顯示。
文檔編號(hào)G06F9/50GK101178670SQ20071019503
公開日2008年5月14日 申請(qǐng)日期2007年12月10日 優(yōu)先權(quán)日2007年12月10日
發(fā)明者劉佳寧 申請(qǐng)人:中興通訊股份有限公司