一種系統(tǒng)調(diào)度的方法及設備的制作方法
【專利摘要】本發(fā)明實施例提供了一種系統(tǒng)調(diào)度的方法及設備,應用于通信類軟件架構(gòu)中,用以解決現(xiàn)有的通信類軟件采用串行軟件架構(gòu)的方式,各個任務間相互依賴,一個變量的改變就有可能會導致整個系統(tǒng)的不穩(wěn)定,系統(tǒng)的維護工作難以進行。本發(fā)明實施例中系統(tǒng)調(diào)度的方法,包括:設備的頂層接收到用戶輸入的控制指令后,對接收到的控制指令進行預處理得到控制消息,將控制消息下發(fā)給設備的中間層;設備的中間層根據(jù)接收到的控制消息生成至少一個工作任務,并將工作任務下發(fā)給對應的設備的至少一個底層子模塊,其中每種類型的工作任務對應一個不同的底層子模塊;底層子模塊根據(jù)接收到中間層發(fā)送的工作任務進行處理。
【專利說明】一種系統(tǒng)調(diào)度的方法及設備
【技術領域】
[0001]本發(fā)明涉及通信類軟件架構(gòu)【技術領域】,尤其涉及一種系統(tǒng)調(diào)度的方法及設備。
【背景技術】
[0002]隨著通信類產(chǎn)品的不斷發(fā)展和應用領域的不斷拓寬,各類應用場景對通信類軟件的要求也日益增多。為了滿足諸多應用場景,通信類軟件的設計日益復雜化多樣化。目前,通信類軟件通常采用串行軟件架構(gòu)的方式,而隨著軟件增加的功能越來越多,串行軟件架構(gòu)方式可能會出現(xiàn)很多交錯的功能,開啟其中一個功能時就可能會影響另外一個功能,因而這種串行軟件架構(gòu)的方式越來越難以承擔日益繁重的工作任務,同時各個任務間的相互依賴關系也使得整個系統(tǒng)架構(gòu)更加錯綜復雜,這種錯綜復雜的系統(tǒng)使維護工作更加難以開展,一個變量的改變就有可能會導致整個系統(tǒng)的不穩(wěn)定,并且難以被發(fā)現(xiàn)。
[0003]綜上所述,目前通信類軟件采用串行軟件架構(gòu)的方式,各個任務間相互依賴,一個變量的改變就有可能會導致整個系統(tǒng)的不穩(wěn)定,系統(tǒng)的維護工作難以進行。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實施例提供一種系統(tǒng)調(diào)度的方法,應用于通信類軟件架構(gòu)中,用以解決現(xiàn)有的通信類軟件架構(gòu)的方式,各個任務間相互依賴,一個變量的改變就有可能會導致整個系統(tǒng)的不穩(wěn)定,系統(tǒng)的維護工作難以進行的問題。
[0005]基于上述問題,本發(fā)明實施例提供的一種系統(tǒng)調(diào)度的方法,包括:
[0006]設備的頂層接收到用戶輸入的控制指令后,對接收到的所述控制指令進行預處理得到控制消息,將所述控制消息下發(fā)給設備的中間層;
[0007]所述設備的中間層根據(jù)接收到的所述控制消息生成至少一個工作任務,并將所述工作任務下發(fā)給對應的所述設備的至少一個底層子模塊,其中每種類型的工作任務對應一個不同的底層子模塊;
[0008]所述底層子模塊根據(jù)接收到所述中間層發(fā)送的工作任務進行處理。
[0009]由于本發(fā)明提供的系統(tǒng)調(diào)度的方法是將設備分成了頂層、中間層和底層三個層級,其中,頂層僅負責面向用戶和數(shù)據(jù)的工作,而中間層則負責解釋命令和生成任務,各底層子模塊間相互獨立,互不依賴,由中間層統(tǒng)一調(diào)度,三個層級間權責明確各司其職,這樣與現(xiàn)有技術通信類軟件采用串行軟件架構(gòu)的方式相比,提高了系統(tǒng)的穩(wěn)定性,并且降低了軟件維護工作的難度。
[0010]較佳地,所述設備的頂層將收到的所述控制指令進行預處理得到控制消息,包括:
[0011]所述設備的頂層將收到的所述控制指令以信元方式進行封裝,得到控制消息;
[0012]所述設備的中間層根據(jù)接收到的所述控制消息生成至少一個工作任務,包括:
[0013]所述設備的中間層對收到的所述控制消息進行解封裝,得到控制指令,并根據(jù)所述控制指令生成至少一個工作任務。
[0014]較佳地,所述設備的頂層接收到用戶輸入的控制指令后,還包括:
[0015]所述設備的頂層根據(jù)與數(shù)據(jù)庫交互的參數(shù)信息,形成配置文件,并將所述配置文件與所述控制消息一并下發(fā)給設備的中間層;
[0016]所述設備的中間層對收到的所述控制消息進行解封裝,得到控制指令,包括:
[0017]所述設備的中間層根據(jù)接收到的所述配置文件對收到的所述控制消息進行解封裝,得到控制指令。
[0018]較佳地,所述設備的中間層根據(jù)所述控制指令生成至少一個工作任務之前,還包括:
[0019]所述設備的中間層能夠根據(jù)解封裝得到的控制指令,對所述底層子模塊進行任務時的時間以及所述底層子模塊進行任務時所用的系統(tǒng)資源進行調(diào)度。
[0020]較佳地,所述底層子模塊根據(jù)接收到所述中間層發(fā)送的工作任務進行處理,還包括:
[0021]所述底層子模塊根據(jù)接收到所述中間層發(fā)送的工作任務進行處理的過程中,向所述設備的中間層上報自身的狀態(tài)信息;
[0022]該方法還包括:
[0023]所述設備的中間層根據(jù)收到的所述狀態(tài)信息監(jiān)測所述底層子模塊的工作狀態(tài);
[0024]所述設備在確定有異常狀態(tài)的所述底層子模塊,且異常狀態(tài)的所述底層子模塊無法自行恢復后,對異常狀態(tài)的所述底層子模塊進行恢復操作。
[0025]較佳地,所述設備的中間層在下列情況發(fā)生后,確定存在異常狀態(tài)的所述底層子模塊,且異常狀態(tài)的所述底層子模塊無法自行恢復:
[0026]所述設備的中間層在設定時長內(nèi)未收到正在處理工作任務的所述底層子模塊上報的狀態(tài)信息。
[0027]由于各個底層子模塊能夠維持自身的穩(wěn)定,修復自身的異常,同時中間層能夠監(jiān)測各個底層子模塊的工作狀態(tài),對異常無法自行恢復的底層子模塊進行恢復操作,因而有力的保障了整個軟件系統(tǒng)的穩(wěn)定性。
[0028]本發(fā)明實施例提供的一種系統(tǒng)調(diào)度的設備,應用于通信類軟件中,包括:
[0029]頂層模塊,用于接收到用戶輸入的控制指令后,對接收到的所述控制指令進行預處理得到控制消息,將所述控制消息下發(fā)給設備的中間層模塊;
[0030]中間層模塊,用于根據(jù)接收到的所述控制消息生成至少一個工作任務,并將所述工作任務下發(fā)給對應的所述設備的至少一個底層子模塊,其中每種類型的工作任務對應一個不同的底層子模塊;
[0031]底層子模塊,用于根據(jù)接收到所述中間層模塊發(fā)送的工作任務進行處理。
[0032]較佳地,所述頂層模塊具體用于:
[0033]在將收到的所述控制指令進行預處理得到控制消息時,將收到的所述控制指令以信元方式進行封裝,得到控制消息;
[0034]所述中間層模塊具體用于:
[0035]對收到的所述控制消息進行解封裝,得到控制指令,并根據(jù)所述控制指令生成至少一個工作任務。
[0036]較佳地,所述頂層模塊還用于:
[0037]在接收到用戶輸入的控制指令后,根據(jù)與數(shù)據(jù)庫交互的參數(shù)信息,形成配置文件,并將所述配置文件與所述控制消息一并下發(fā)給設備的中間層模塊;
[0038]所述中間層模塊具體用于:
[0039]根據(jù)接收到的所述配置文件對收到的所述控制消息進行解封裝,得到控制指令。
[0040]較佳地,所述中間層模塊還用于:
[0041]對收到的所述控制消息進行解封裝,得到控制指令后,能夠根據(jù)解封裝得到的控制指令,對所述底層子模塊進行任務時的時間以及所述底層子模塊進行任務時所用的系統(tǒng)資源進行調(diào)度。
[0042]較佳地,所述底層子模塊還用于:
[0043]在根據(jù)接收到所述中間層模塊發(fā)送的工作任務進行處理時,根據(jù)接收到所述中間層模塊發(fā)送的工作任務進行處理的過程中,向所述設備的中間層模塊上報自身的狀態(tài)信息;
[0044]所述中間層模塊還用于:
[0045]根據(jù)收到的所述狀態(tài)信息監(jiān)測所述底層子模塊的工作狀態(tài);在確定有異常狀態(tài)的所述底層子模塊,且異常狀態(tài)的所述底層子模塊無法自行恢復后,對異常狀態(tài)的所述底層子模塊進行恢復操作。
[0046]較佳地,所述中間層模塊還用于,在下列情況發(fā)生后,確定存在異常狀態(tài)的所述底層子模塊,且異常狀態(tài)的所述底層子模塊無法自行恢復:
[0047]在設定時長內(nèi)未收到正在處理工作任務的所述底層子模塊上報的狀態(tài)信息。
【專利附圖】
【附圖說明】
[0048]圖1為本發(fā)明實施例提供的系統(tǒng)調(diào)度的方法的三層結(jié)構(gòu)示意圖;
[0049]圖2為本發(fā)明實施例提供的系統(tǒng)調(diào)度的方法的流程圖;
[0050]圖3為本發(fā)明實施例提供的設備的頂層工作流程圖;
[0051]圖4為本發(fā)明實施例提供的設備的中間層工作流程圖;
[0052]圖5為本發(fā)明實施例提供的設備的底層工作流程圖;
[0053]圖6為本發(fā)明實施例提供的系統(tǒng)調(diào)度的方法在設備中的具體實施流程圖;
[0054]圖7為本發(fā)明實施例提供的系統(tǒng)調(diào)度的設備的結(jié)構(gòu)示意圖。
【具體實施方式】
[0055]本發(fā)明實施例中設備的頂層接收到用戶輸入的控制指令后,對接收到的控制指令進行預處理得到控制消息,將控制消息下發(fā)給設備的中間層;設備的中間層根據(jù)接收到的控制消息生成至少一個工作任務,并將工作任務下發(fā)給對應的設備的至少一個底層子模塊,其中每種類型的工作任務對應一個不同的底層子模塊;底層子模塊根據(jù)接收到中間層發(fā)送的工作任務進行處理。由于本發(fā)明提供的系統(tǒng)調(diào)度的方法是將設備分成了頂層、中間層和底層三個層級,其中,頂層僅負責面向用戶和數(shù)據(jù)的工作,而中間層則負責解釋命令和生成任務,各底層子模塊間相互獨立,互不依賴,由中間層統(tǒng)一調(diào)度,三個層級間權責明確各司其職,提高了系統(tǒng)的穩(wěn)定性,并降低了軟件維護工作的難度。
[0056]以下結(jié)合說明書附圖對本發(fā)明的優(yōu)選實施例進行說明,應當理解,此處所描述的優(yōu)選實施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。并且在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。
[0057]本發(fā)明實施例提供的系統(tǒng)調(diào)度方法,基于多進程分布式管理的理念,采用三層分級結(jié)構(gòu)實現(xiàn),如圖1所示,為本發(fā)明實施例提供的系統(tǒng)調(diào)度的方法的三層結(jié)構(gòu)示意圖。設備的頂層負責接收用戶輸入的控制指令并進行預處理得到控制消息,同時頂層與數(shù)據(jù)庫交互形成配置文件,并將配置文件與控制消息一并下發(fā)給設備的中間層;設備的中間層根據(jù)頂層下發(fā)的控制消息和配置文件生成工作任務,并將生成的工作任務分發(fā)給對應的底層子模塊;設備的底層子模塊接收并完成中間層分發(fā)的工作任務。其中,設備的底層由多個功能各異的底層子模塊構(gòu)成,且所有底層子模塊之間不存在通信機制,彼此獨立工作。在實際生產(chǎn)制造過程中,每個底層子模塊都對應管理至少一個硬件或軟件資源,底層子模塊可以根據(jù)要進行處理的工作任務選擇對應的硬件資源進行處理。
[0058]例如網(wǎng)絡接口子模塊管理各網(wǎng)絡接口 ;路由模塊管理IP層資源;無線配置模塊管理無線線路配置資源等。
[0059]下面結(jié)合附圖,用具體實施例對本發(fā)明提供的方法及設備進行詳細描述。
[0060]本發(fā)明實施例提供的一種系統(tǒng)調(diào)度的方法,如圖2所示,具體包括以下步驟:
[0061]S201、設備的頂層接收到用戶輸入的控制指令后,對接收到的控制指令進行預處理得到控制消息,將控制消息下發(fā)給設備的中間層;
[0062]S202、設備的中間層根據(jù)接收到的控制消息生成至少一個工作任務,并將工作任務下發(fā)給對應的設備的至少一個底層子模塊,其中每種類型的工作任務對應一個不同的底層子模塊;
[0063]S203、底層子模塊根據(jù)接收到中間層發(fā)送的工作任務進行處理。
[0064]本發(fā)明實施例中將設備分成了頂層、中間層和底層三個層級,其中,頂層僅負責面向用戶和數(shù)據(jù)的工作,而中間層則負責解釋命令和生成任務,各底層子模塊間相互獨立,互不依賴,由中間層統(tǒng)一調(diào)度,三個層級間權責明確各司其職,提高了系統(tǒng)的穩(wěn)定性,并且降低了軟件維護工作的難度。
[0065]本發(fā)明實施例的系統(tǒng)調(diào)度的方法應用于通信類軟件架構(gòu)中,其中通信類軟件架構(gòu)可以是WLAN軟件架構(gòu)、嵌入式控制系統(tǒng)中的軟件架構(gòu)、基站系統(tǒng)軟件中的架構(gòu)、3G/4G系統(tǒng)中的軟件架構(gòu)等。
[0066]本發(fā)明實施例中的設備可以是無線路由器、無線交換機、無線基站、3G/4G基站等。
[0067]具體的,設備的頂層將收到的控制指令進行預處理得到控制消息,包括:
[0068]設備的頂層將收到的控制指令以信元方式進行封裝,得到控制消息;
[0069]設備的中間層根據(jù)接收到的控制消息生成至少一個工作任務,包括:
[0070]設備的中間層對收到的控制消息進行解封裝,得到控制指令,并根據(jù)控制指令生成至少一個工作任務。
[0071]較佳地,設備的頂層接收到用戶輸入的控制指令后,還包括:
[0072]設備的頂層根據(jù)與數(shù)據(jù)庫交互的參數(shù)信息,形成配置文件,并將配置文件與控制消息一并下發(fā)給設備的中間層;
[0073]設備的中間層對收到的控制消息進行解封裝,得到控制指令,包括:
[0074]設備的中間層根據(jù)接收到的配置文件對收到的控制消息進行解封裝,得到控制指令。
[0075]在實施中,設備的頂層在接收到的控制指令后,以與中間層約定的數(shù)據(jù)形式將接收到的控制指令進行封裝,得到控制消息;設備的中間層在接收到控制消息后,根據(jù)與頂層約定的數(shù)據(jù)形式對接收到的控制消息進行解封裝,得到控制指令。
[0076]在實施中,設備的頂層根據(jù)與數(shù)據(jù)庫交互的參數(shù)信息包括能夠顯示給用戶的參數(shù)信息和對系統(tǒng)進行操作時的系統(tǒng)內(nèi)部參數(shù)信息,設備的頂層根據(jù)與數(shù)據(jù)庫交互的參數(shù)信息形成配置文件,并將配置文件與控制消息一并下發(fā)給設備的中間層,其中配置文件是頂層與中間層約定好的以特定的編碼格式生成的文本,設備的中間層根據(jù)與頂層約定的編碼格式識別配置文件,并根據(jù)配置文件對收到的控制消息進行解封裝,得到控制指令,根據(jù)得到的控制指令生成至少一個工作任務。例如,配置文件采用的特定編碼格式可以是頂層和中間層約定好的具有某一特定的前綴的編碼格式。
[0077]較佳地,如圖3所示,為本發(fā)明實施例提供的設備的頂層工作流程圖,具體包括以下步驟:
[0078]步驟301、設備的頂層采用面向用戶方式實現(xiàn),在接收到用戶輸入的控制指令之后,執(zhí)行步驟302和/或步驟303 ;
[0079]步驟302、設備的頂層對接收到的控制指令進行預處理,即將接收到的控制指令以信元方式封裝,得到控制消息,并執(zhí)行步驟304 ;
[0080]步驟303、設備的頂層在對指令進行預處理完成之后,通過內(nèi)存讀寫的方式向數(shù)據(jù)庫交互參數(shù)信息,然后根據(jù)與數(shù)據(jù)庫交互的參數(shù)信息形成配置文件,并執(zhí)行步驟304 ;
[0081]步驟304、設備的頂層通過消息隊列機制向中間層一并下發(fā)配置文件與控制消息。
[0082]在實施中,步驟302和步驟303可以同時執(zhí)行,也可以分別執(zhí)行,即步驟301執(zhí)行完后,可以同時執(zhí)行步驟302和步驟303,也可以分別執(zhí)行步驟302和步驟303,且順序不分先后。
[0083]在實施中,設備的頂層采用面向用戶方式實現(xiàn),也就是說設備可以展示給用戶對設備進行控制的界面,比如用戶可以選擇設備實現(xiàn)路由器的功能,用戶選擇完成后,則設備就能夠根據(jù)用戶的選擇進行相關的操作。
[0084]在實施中,本發(fā)明實施例提供的系統(tǒng)調(diào)度方法具有雙層自行恢復的功能,能夠有力的保障整個軟件系統(tǒng)的穩(wěn)定性,下面具體介紹。
[0085]具體的,底層子模塊根據(jù)接收到中間層發(fā)送的工作任務進行處理,還包括:
[0086]底層子模塊根據(jù)接收到中間層發(fā)送的工作任務進行處理的過程中,向設備的中間層上報自身的狀態(tài)信息;
[0087]該方法還包括:
[0088]設備的中間層根據(jù)收到的狀態(tài)信息監(jiān)測底層子模塊的工作狀態(tài);
[0089]設備在確定有異常狀態(tài)的底層子模塊,且異常狀態(tài)的底層子模塊無法自行恢復后,對異常狀態(tài)的底層子模塊進行恢復操作。
[0090]在實施中,設備的中間層生成的每種類型的工作任務對應一個不同的底層子模塊,中間層在生成工作任務以后,根據(jù)工作任務的類型將該工作任務發(fā)給用于完成該類型工作任務的底層子模塊。由于不同的底層子模塊接收到的中間層發(fā)送的工作任務類型不相同,所以對接收到的工作任務進行處理的方式也不相同。例如,底層子模塊接收到的工作任務是對端口進行配置,則底層子模塊會根據(jù)工作任務的內(nèi)容對相應的端口進行相應的配置;若底層子模塊接收到的工作任務是開啟第三方軟件,則底層子模塊會根據(jù)工作任務的內(nèi)容開啟對應的第三方軟件。
[0091]在實施中,底層子模塊在完成工作任務時可能需要啟動一些相應的部件,比如進行任務處理時所需要的端口等。在底層子模塊定期向設備的中間層上報自身的狀態(tài)信息時,所上報的狀態(tài)信息包括啟動的所有部件的信息,這些信息可能是各個部件的工作狀態(tài)是否正常等?目息。
[0092]例如,底層子模塊可以通過該特定的數(shù)據(jù)信息向中間層上報其工作時所啟動的某一端口的工作狀態(tài)是否正常,若該工作狀態(tài)出現(xiàn)異常,則底層子模塊在向中間層上報自身狀態(tài)信息時,會上報該端口工作異常;若底層子模塊通過自行恢復功能使該異常的端口恢復工作,貝1J底層子模塊在下次向中間層上報自身狀態(tài)信息時,會上報該端口工作狀態(tài)為正堂巾O
[0093]較佳地,設備的中間層在下列情況發(fā)生后,確定存在異常狀態(tài)的底層子模塊,且異常狀態(tài)的底層子模塊無法自行恢復:
[0094]設備的中間層在設定時長內(nèi)未收到正在處理工作任務的底層子模塊上報的狀態(tài)信息。
[0095]例如,假設底層子模塊根據(jù)接收到中間層發(fā)送的工作任務進行處理的過程中,底層子模塊每隔3秒就通過消息隊列方式向中間層上報一次自己的工作狀態(tài),若其中某個正在處理工作任務的底層子模塊超過3秒沒有向中間層上報狀態(tài),則中間層將認為該底層子模塊為工作狀態(tài)異常。
[0096]在實施中,設備底層中的每個底層子模塊,通過消息隊列的方式接收中間層下發(fā)的工作任務,實現(xiàn)某一獨立的功能,組織自己管轄的底層資源完成所接收到的工作任務,同時,多個底層子模塊并行運行,協(xié)同工作。底層子模塊在接收中間層下發(fā)的工作任務后,開始自己的生命周期,在生命周期中,完成中間層下發(fā)的工作任務,生命周期結(jié)束后,底層子模塊會自動結(jié)束工作進程,釋放內(nèi)部資源。
[0097]在實施中,底層子模塊在進行任務的期間,中間層可以根據(jù)收到的狀態(tài)信息監(jiān)測底層子模塊的工作狀態(tài),并記錄底層子模塊完成工作任務的進度,但底層子模塊可能會因為一些原因而導致其自身工作狀態(tài)異常,例如,一個底層子模塊在進行任務處理時需要用到某個端口,但此時該端口無法正常工作,進而可能會導致該工作的底層子模塊的工作狀態(tài)異常。在進行任務的期間,每個底層子模塊都能夠使用單線程監(jiān)控自身的運行,從而維持自身的穩(wěn)定性,同時中間層能夠監(jiān)控底層子模塊的狀態(tài),對異常且不能自行恢復的子模塊進行異常處理和狀態(tài)恢復,雙層自行恢復的架構(gòu)形式更有力保障整個軟件系統(tǒng)的穩(wěn)定性。
[0098]在實施中,異常的底層子模塊能夠通過重新啟動等方式自行恢復其工作狀態(tài);若異常的底層子模塊因為鎖死等原因無法自行恢復工作狀態(tài),則中間層可以幫助該異常的底層子模塊進行狀態(tài)恢復,例如,中間層可以強制異常的底層子模塊結(jié)束工作進程,并使其重新開啟進程,在異常的底層子模塊被中間層強制重新開啟進程后,會根據(jù)中間層記錄的其重新開啟進程前的工作進度繼續(xù)完成其未完成的工作任務。
[0099]較佳地,設備的中間層對收到的控制消息進行解封裝,得到控制指令后,還包括:
[0100]設備的中間層能夠根據(jù)解封裝得到的控制指令,對底層子模塊進行任務時的時間以及底層子模塊進行任務時所用的系統(tǒng)資源進行調(diào)度。
[0101]在實施中,設備的中間層對底層子模塊的調(diào)度包括,對底層子模塊任務時的時間所用的系統(tǒng)資源進行調(diào)度。設備的中間層可以通過調(diào)度信息對底層子模塊進行調(diào)度。調(diào)度信息包括時間調(diào)度信息和系統(tǒng)資源調(diào)度信息。
[0102]調(diào)度信息可以與工作任務一起發(fā)送給底層子模塊,也可以置于工作任務中發(fā)送給底層子模塊。
[0103]接收到調(diào)度信息后的底層子模塊根據(jù)調(diào)度信息中的時間調(diào)度信息確定對應的時間,以及根據(jù)調(diào)度信息中的系統(tǒng)資源調(diào)度信息確定對應的系統(tǒng)資源,并在確定的時間到達后通過確定的系統(tǒng)資源處理任務。
[0104]為了確保各個底層子模塊在進行任務處理時的生命周期內(nèi)的工作狀態(tài)和穩(wěn)定性,設備的中間層對頂層下發(fā)的控制消息進行解封裝的過程中,考慮了多個底層子模塊耦合的情況,即頂層下發(fā)的命令可能涉及多個底層子模塊,如可能存在不同時間需要對不同底層子模塊依次發(fā)起某項任務的情況;又如可能存在同一時刻需要多個底層子模塊協(xié)同工作的情況。中間層對命令進行解釋時,根據(jù)命令對各底層子模塊時序上的需求規(guī)劃各底層子模塊的任務開始時間,保證各獨立底層子模塊間的依賴關系。
[0105]例如,假設設備只有一個可用的網(wǎng)口,若底層中有兩個底層子模塊都需要用到該網(wǎng)口,則設備的中間層在產(chǎn)生工作任務時,會根據(jù)控制消息決定兩個底層子模塊用該網(wǎng)口的先后順序;假設有兩個工作任務要同時完成一件事,則設備的中間層在產(chǎn)生工作任務時,會根據(jù)控制消息告訴完成這兩個工作任務所對應的底層子模塊,這兩個工作任務啟動的順序是依次啟動,還是同時啟動。
[0106]在實施中,較佳地,本發(fā)明實施例中設備的頂層下發(fā)配置文件與控制消息后,設備的中間層負責接收、解釋頂層下發(fā)的控制消息,根據(jù)各底層子模塊間的依賴關系生成多個子任務,下發(fā)給各個功能各異的底層子模塊,下面具體介紹。
[0107]如圖4所示,為本發(fā)明實施例提供的設備的中間層工作流程圖,具體包括以下步驟:
[0108]步驟401、設備的中間層在通過消息隊列接收到頂層下發(fā)的發(fā)配置文件和控制消息之后,執(zhí)彳了步驟402 ;
[0109]步驟402、設備的中間層根據(jù)接收到的配置文件將接收到的信元形式的控制消息進行解封,得到解封后的控制指令,通過應答信元告訴設備的頂層配置文件和控制消息已經(jīng)收到,并執(zhí)行步驟403 ;
[0110]步驟403、設備的中間層根據(jù)解封得到的控制指令生成至少一個工作任務;
[0111]步驟404、設備的中間層將生成的至少一個工作任務,使用消息隊列機制分發(fā)給對應的底層子模塊。
[0112]如圖5所示,為本發(fā)明實施例提供的設備的底層工作流程圖,具體包括以下步驟:
[0113]步驟501、底層子模塊接收中間層下發(fā)的工作任務;
[0114]步驟502、底層子模塊執(zhí)行接收到的中間層下發(fā)的工作任務,并同時執(zhí)行步驟503和 504 ;
[0115]步驟503、底層子模塊在進行任務的周期內(nèi),能夠保持自鎮(zhèn)定,維護自身的穩(wěn)定性,即通過使用單獨線程監(jiān)控自身的運行,若發(fā)現(xiàn)自身出現(xiàn)異常,則修復自身異常,執(zhí)行步驟
502 ;
[0116]步驟504、底層子模塊完成中間層下發(fā)的工作任務。
[0117]較佳地,本發(fā)明實施例提供的系統(tǒng)調(diào)度的方法在設備中具體實施時,高層級能夠控制低層級,低層級不能反過控制高層級,低層級只能向高層級上報消息,例如中間層可以控制底層,底層不能控制中間層,只能向中間層上報自身的工作狀態(tài)。如圖6所示,為本發(fā)明實施例提供的系統(tǒng)調(diào)度的方法在設備中的具體實施流程圖。
[0118]基于同一發(fā)明構(gòu)思,本發(fā)明實施例還提供了一種系統(tǒng)調(diào)度的設備,由于該設備所解決問題的原理與前述系統(tǒng)調(diào)度的方法相似,因此該設備的實施可以參見前述方法的實施,重復之處不再贅述。
[0119]如圖7所示,本發(fā)明實施例提供的一種系統(tǒng)調(diào)度的設備,應用于通信類軟件中,包括:
[0120]本發(fā)明實施例提供的一種系統(tǒng)調(diào)度的設備,應用于通信類軟件中,包括:
[0121]頂層模塊701,用于接收到用戶輸入的控制指令后,對接收到的控制指令進行預處理得到控制消息,將控制消息下發(fā)給設備的中間層模塊702 ;
[0122]中間層模塊702,用于根據(jù)接收到的控制消息生成至少一個工作任務,并將工作任務下發(fā)給對應的設備的至少一個底層子模塊703,其中每種類型的工作任務對應一個不同的底層子模塊703 ;
[0123]底層子模塊703,用于根據(jù)接收到中間層模塊702發(fā)送的工作任務進行處理。
[0124]較佳地,頂層模塊701具體用于:
[0125]在將收到的控制指令進行預處理得到控制消息時,將收到的控制指令以信元方式進行封裝,得到控制消息;
[0126]中間層模塊702具體用于:
[0127]對收到的控制消息進行解封裝,得到控制指令,并根據(jù)控制指令生成至少一個工作任務。
[0128]較佳地,頂層模塊701還用于:
[0129]在接收到用戶輸入的控制指令后,根據(jù)與數(shù)據(jù)庫交互的參數(shù)信息,形成配置文件,并將配置文件與控制消息一并下發(fā)給設備的中間層模塊702 ;
[0130]中間層模塊702具體用于:
[0131]根據(jù)接收到的配置文件對收到的控制消息進行解封裝,得到控制指令。
[0132]較佳地,中間層模塊702還用于:
[0133]對收到的控制消息進行解封裝,得到控制指令后,能夠根據(jù)解封裝得到的控制指令,對底層子模塊703進行任務時的時間以及底層子模塊703進行任務時所用的系統(tǒng)資源進行調(diào)度。
[0134]較佳地,底層子模塊703還用于:
[0135]在根據(jù)接收到中間層模塊702發(fā)送的工作任務進行處理時,根據(jù)接收到中間層模塊702發(fā)送的工作任務進行處理的過程中,向設備的中間層模塊702上報自身的狀態(tài)信息;
[0136]中間層模塊702還用于:
[0137]根據(jù)收到的狀態(tài)信息監(jiān)測底層子模塊703的工作狀態(tài);在確定有異常狀態(tài)的底層子模塊703,且異常狀態(tài)的底層子模塊703無法自行恢復后,對異常狀態(tài)的底層子模塊703進行恢復操作。
[0138]較佳地,中間層模塊702還用于,在下列情況發(fā)生后,確定存在異常狀態(tài)的底層子模塊703,且異常狀態(tài)的底層子模塊703無法自行恢復:
[0139]在設定時長內(nèi)未收到正在處理工作任務的底層子模塊703上報的狀態(tài)信息。
[0140]本發(fā)明實施例中,由于提供的系統(tǒng)調(diào)度的方法是將設備分成了頂層、中間層和底層三個層級,其中,頂層僅負責面向用戶和數(shù)據(jù)的工作,而中間層則負責解釋命令和生成任務,各底層子模塊間相互獨立,互不依賴,由中間層統(tǒng)一調(diào)度,三個層級間權責明確各司其職,這樣與現(xiàn)有技術通信類軟件采用串行軟件架構(gòu)的方式相比,提高了系統(tǒng)的穩(wěn)定性,并且三個層級的結(jié)構(gòu)形式降低了軟件維護工作的難度。
[0141]通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到本發(fā)明實施例可以通過硬件實現(xiàn),也可以借助軟件加必要的通用硬件平臺的方式實現(xiàn)?;谶@樣的理解,本發(fā)明實施例的技術方案可以以軟件產(chǎn)品的形式體現(xiàn)出來,該軟件產(chǎn)品可以存儲在一個非易失性存儲介質(zhì)(可以是⑶-R0M,U盤,移動硬盤等)中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例所述的方法。
[0142]本領域技術人員可以理解附圖只是一個優(yōu)選實施例的示意圖,附圖中的模塊或流程并不一定是實施本發(fā)明所必須的。
[0143]本領域技術人員可以理解實施例中設備中的模塊可以按照實施例描述進行分布于實施例的設備中,也可以進行相應變化位于不同于本實施例的一個或多個設備中。上述實施例的模塊可以合并為一個模塊,也可以進一步拆分成多個子模塊。
[0144]上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
[0145]顯然,本領域的技術人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權利要求及其等同技術的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
【權利要求】
1.一種系統(tǒng)調(diào)度的方法,應用于通信類軟件架構(gòu)中,其特征在于,包括: 設備的頂層接收到用戶輸入的控制指令后,對接收到的所述控制指令進行預處理得到控制消息,將所述控制消息下發(fā)給設備的中間層; 所述設備的中間層根據(jù)接收到的所述控制消息生成至少一個工作任務,并將所述工作任務下發(fā)給對應的所述設備的至少一個底層子模塊,其中每種類型的工作任務對應一個不同的底層子模塊; 所述底層子模塊根據(jù)接收到所述中間層發(fā)送的工作任務進行處理。
2.如權利要求1所述的方法,其特征在于,所述設備的頂層將收到的所述控制指令進行預處理得到控制消息,包括: 所述設備的頂層將接收到的所述控制指令以信元方式進行封裝,得到所述控制消息; 所述設備的中間層根據(jù)接收到的所述控制消息生成至少一個工作任務,包括: 所述設備的中間層對收到的所述控制消息進行解封裝,得到控制指令,并根據(jù)所述控制指令生成至少一個工作任務。
3.如權利要求2所述的方法,其特征在于,所述設備的頂層接收到用戶輸入的控制指令后,還包括: 所述設備的頂層根據(jù)與數(shù)據(jù)庫交互的參數(shù)信息,形成配置文件,并將所述配置文件與所述控制消息一并下發(fā)給設備的中間層; 所述設備的中間層對收到的所述控制消息進行解封裝,得到所述控制指令,包括: 所述設備的中間層根據(jù)接收到的所述配置文件對收到的所述控制消息進行解封裝,得到所述控制指令。
4.如權利要求2所述的方法,其特征在于,所述設備的中間層對收到的所述控制消息進行解封裝,得到控制指令后,還包括: 所述設備的中間層能夠根據(jù)解封裝得到的控制指令,對所述底層子模塊進行任務時的時間以及所述底層子模塊進行任務時所用的系統(tǒng)資源進行調(diào)度。
5.如權利要求1所述的方法,其特征在于,所述底層子模塊根據(jù)接收到所述中間層發(fā)送的工作任務進行處理,還包括: 所述底層子模塊根據(jù)接收到所述中間層發(fā)送的工作任務進行處理的過程中,向所述設備的中間層上報自身的狀態(tài)信息; 該方法還包括: 所述設備的中間層根據(jù)收到的所述狀態(tài)信息監(jiān)測所述底層子模塊的工作狀態(tài); 所述設備在確定有異常狀態(tài)的所述底層子模塊,且異常狀態(tài)的所述底層子模塊無法自行恢復后,對異常狀態(tài)的所述底層子模塊進行恢復操作。
6.如權利要求5所述的方法,其特征在于,所述設備的中間層在下列情況發(fā)生后,確定存在異常狀態(tài)的所述底層子模塊,且異常狀態(tài)的所述底層子模塊無法自行恢復: 所述設備的中間層在設定時長內(nèi)未收到正在處理工作任務的所述底層子模塊上報的狀態(tài)信息。
7.一種系統(tǒng)調(diào)度的設備,應用于通信類軟件中,其特征在于,包括: 頂層模塊,用于接收到用戶輸入的控制指令后,對接收到的所述控制指令進行預處理得到控制消息,將所述控制消息下發(fā)給設備的中間層模塊; 中間層模塊,用于根據(jù)接收到的所述控制消息生成至少一個工作任務,并將所述工作任務下發(fā)給對應的所述設備的至少一個底層子模塊,其中每種類型的工作任務對應一個不同的底層子模塊; 底層子模塊,用于根據(jù)接收到所述中間層模塊發(fā)送的工作任務進行處理。
8.如權利要求7所述的設備,其特征在于,所述頂層模塊具體用于: 在將收到的所述控制指令進行預處理得到控制消息時,將收到的所述控制指令以信元方式進行封裝,得到控制消息; 所述中間層模塊具體用于: 對收到的所述控制消息進行解封裝,得到控制指令,并根據(jù)所述控制指令生成至少一個工作任務。
9.如權利要求8所述的設備,其特征在于,所述頂層模塊還用于: 在接收到用戶輸入的控制指令后,根據(jù)與數(shù)據(jù)庫交互的參數(shù)信息,形成配置文件,并將所述配置文件與所述控制消息一并下發(fā)給設備的中間層模塊; 所述中間層模塊具體用于: 根據(jù)接收到的所述配置文件對收到的所述控制消息進行解封裝,得到控制指令。
10.如權利要求9所述的設備,其特征在于,所述中間層模塊還用于: 對收到的所述控制消息進行解封裝,得到控制指令后,能夠根據(jù)解封裝得到的控制指令,對所述底層子模塊進行任務時的時間以及所述底層子模塊進行任務時所用的系統(tǒng)資源進行調(diào)度。
11.如權利要求7所述的設備,其特征在于,所述底層子模塊還用于: 在根據(jù)接收到所述中間層模塊發(fā)送的工作任務進行處理時,根據(jù)接收到所述中間層模塊發(fā)送的工作任務進行處理的過程中,向所述設備的中間層模塊上報自身的狀態(tài)信息; 所述中間層模塊還用于: 根據(jù)收到的所述狀態(tài)信息監(jiān)測所述底層子模塊的工作狀態(tài);在確定有異常狀態(tài)的所述底層子模塊,且異常狀態(tài)的所述底層子模塊無法自行恢復后,對異常狀態(tài)的所述底層子模塊進行恢復操作。
12.如權利要求11所述的設備,其特征在于,所述中間層模塊還用于,在下列情況發(fā)生后,確定存在異常狀態(tài)的所述底層子模塊,且異常狀態(tài)的所述底層子模塊無法自行恢復: 在設定時長內(nèi)未收到正在處理工作任務的所述底層子模塊上報的狀態(tài)信息。
【文檔編號】G06F9/46GK104346219SQ201410653254
【公開日】2015年2月11日 申請日期:2014年11月17日 優(yōu)先權日:2014年11月17日
【發(fā)明者】王茂斌, 左延麟, 羅晟 申請人:京信通信系統(tǒng)(中國)有限公司