專利名稱:一種對使用受限資源的批量操作的調度方法
技術領域:
本發明涉及網絡通信領域中的大批量消息的調度,特別涉及一種對使用受限資源的批量操作的調度方法和裝置。
背景技術:
在現有的網管系統中,可以對多個同類網元進行批量操作,對于大型網管系統來說,管理上千個網元設備也是有可能的。對于某些操作,消息簡單,可以同時對數百個網元設備進行操作,利用這種網管系統是十分方便的。但是對于一些特殊的操作功能,可能需要使用一些額外的資源,而當資源有限時,就不能滿足同時批量操作同樣個數的網元設備了。 例如,現有網管系統中的版本下載功能,是網元設備通過網管系統中的FTP(File Transfer Protocol,文件傳輸協議)服務下載版本文件的方式進行的。這里FTP服務器支持的最大連接個數和下載時使用的網絡帶寬等資源都是有限的,不可能同時支持數百個網元設備同時進行版本下載操作。同時,由于這種操作比較費時,它的執行又對其它簡單的操作產生一定的影響。目前通用的調度策略只考慮了網元設備的處理能力,而沒有考慮到網管系統的可利用資源。批量操作的消息通常在一次調度中,操作請求被全部發送。但是,對于類似網絡連接數、網絡帶寬和CPU (Central Processing Unit,中央處理器)利用率等受限資源,不可能被無限制地使用,當對需要這些受限資源的消息進行如此的調度后,會導致超過資源能力范圍的請求操作被執行,從而導致操作成功率降低。另外,目前通用的調度策略假定所有操作請求的執行時間都是大體相同的,而沒有考慮到需要受限資源的消息可能會由于資源限制占用很長時間。對于操作失敗的原因沒有具體分析是真的由于網元設備問題導致的,還是由于網管系統資源受限導致的。對于這種需要使用受限資源又很耗時的消息進行批量操作的情況,目前普遍的做法是,在界面上加以限制,使得操作人員每次只能選擇少量的網元批量操作。但是,如果這樣的話,在實際的開局或升級場景中,上千個設備需要下載版本,而每次都需要操作人員值守,需要幾百次的操作才能完成,這樣做無疑效率是低下的。
發明內容
本發明的目的在于提供一種對使用受限資源的批量操作的調度方法和裝置,用于解決系統內普通消息和受限資源消息同時存在時的調度問題。根據本發明的一個方面,提供了一種對使用受限資源的批量操作的調度方法,包括以下步驟請求接收器接收到網管客戶端發送的包括網元標識的命令消息后,把命令消息發送至命令消息分發器;命令消息分發器把命令消息分配給對應的邏輯閱讀器;邏輯閱讀器判斷命令消息是否為受限資源消息,若命令消息為受限資源消息,則邏輯閱讀器為命令消息向資源令牌池申請資源令牌并在申請成功后把命令消息發送給命令消息調度器;命令消息調度器通過命令消息發送器把命令消息發送至對應的網元設備。優選的,受限資源消息是使用網絡中有限資源的消息。優選的,命令消息分發器把命令消息分配給對應的邏輯閱讀器,包括命令消息分發器根據網元標識得到與命令消息對應的邏輯閱讀器;若邏輯閱讀器中的消息存在受限資源消息,則命令消息分配失敗,創建快速失敗的結果并存儲至操作結果存儲池;若邏輯閱讀器中的消息不存在受限資源消息,則把命令消息分配給該邏輯閱讀
ο優選的,邏輯閱讀器為命令消息向資源令牌池申請資源令牌,包括任務計時器預先設定定時時間;邏輯閱讀器每隔定時時間為命令消息在資源令牌池中申請資源令牌;邏輯閱讀器記錄申請資源令牌失敗次數,若失敗次數超過預先固定次數,則申請失敗,否則,申請成功。優選的,邏輯閱讀器向資源令牌池為命令消息申請資源令牌,若申請失敗,則不處理命令消息,創建操作超時的結果并存儲至操作結果存儲池。優選的,在命令消息分發器把命令消息分配給對應的邏輯閱讀器之后,還包括邏輯閱讀器判斷所述命令消息是否為受限資源消息,若命令消息不是受限資源消息,則所述邏輯閱讀器把所述命令消息發送給命令消息調度器;命令消息調度器通過命令消息發送器把命令消息發送至對應的網元設備。優選的,方法還包括操作結果處理器監聽發送至網元設備的消息,若發送至網元設備的消息為受限資源消息,則操作結果處理器告知資源令牌池釋放該消息占用的資源令牌。根據本發明的另一方面,提供了一種對使用受限資源的批量操作的調度裝置,包括請求接收器,用于接收并發送網管客戶端發送的包括網元標識的命令消息;命令消息分發器,用于接收命令消息,并把命令消息分配給對應的邏輯閱讀器;邏輯閱讀器,用于判斷命令消息是否為受限資源消息,并當命令消息是受限資源消息時向資源令牌池申請資源令牌;資源令牌池,用于當命令消息為受限資源消息時為命令消息分配資源令牌并在申請成功后把命令消息發送給命令消息調度器;命令消息調度器,用于控制發送命令消息;命令消息發送器,用于把命令消息發送至對應的網元設備。優選的,受限資源消息是使用網絡中有限資源的消息。優選的,裝置還包括操作結果處理器,用于監聽發送至網元設備的消息,若發送至網元設備的消息為受限資源消息,則操作結果處理器告知資源令牌池釋放該消息占用的資源令牌。與現有技術相比較,本發明的有益效果在于本發明通過把網管系統中的多種命令消息按照是否使用受限資源的原則進行分類,對不同的命令消息采用不同的調度策略, 實現了系統內的有限資源的動態管理。
圖1是本發明提供的對使用受限資源的批量操作的調度方法的流程示意圖;圖2是本發明提供的對使用受限資源的批量操作的調度裝置的框圖;圖3是本發明實施例提供的命令消息調度器的處理流程圖;圖4是本發明實施例提供的操作結果處理器的處理流程圖;圖5是本發明實施例提供的分發命令消息的工作示意圖。
具體實施例方式以下結合附圖對本發明的優選實施例進行詳細說明,應當理解,以下所說明的優選實施例僅用于說明和解釋本發明,并不用于限定本發明。圖1顯示了本發明提供的對使用受限資源的批量操作的調度方法的流程示意,如圖1所示步驟S101,請求接收器接收到網管客戶端發送的包括網元標識的命令消息后,把命令消息發送至命令消息分發器。步驟S102,命令消息分發器把命令消息分配給對應的邏輯閱讀器。命令消息分發器根據命令消息中的網元標識得到與命令消息對應的邏輯閱讀器, 若邏輯閱讀器中的當前命令消息和命令消息隊列中的消息存在受限資源消息,則命令消息分配失敗,命令消息分發器不把命令消息分配給邏輯閱讀器,命令消息調度器控制邏輯閱讀器創建快速失敗的結果并通過操作結果處理器存儲至操作結果存儲池;若邏輯閱讀器中的當前命令消息和命令消息隊列的消息不存在受限資源消息,則把命令消息分配給邏輯閱讀器。其中,受限資源消息是使用網絡中有限資源的消息。步驟S103,邏輯閱讀器判斷命令消息是否為受限資源消息,若命令消息為受限資源消息,則邏輯閱讀器為命令消息向資源令牌池申請資源令牌并在申請成功后把命令消息發送給命令消息調度器,若命令消息為受限資源消息不是受限資源消息,則邏輯閱讀器通過命令消息分發器把命令消息發送給命令消息調度器。其中,邏輯閱讀器為命令消息向資源令牌池申請資源令牌的步驟如下任務計時器預先設定定時時間,邏輯閱讀器每隔定時時間為命令消息在資源令牌池中申請資源令牌,邏輯閱讀器記錄申請資源令牌失敗次數,若失敗次數超過預先固定次數,則申請失敗, 否則,申請成功。若申請成功,則邏輯閱讀器通過命令消息分發器把命令消息發送給命令消息調度器,若申請失敗,則不處理命令消息,創建操作超時的結果并存儲至操作結果存儲池。步驟S104,命令消息調度器通過命令消息發送器把命令消息發送至對應的網元設備。此外,操作結果處理器監聽發送至網元設備的消息,若發送至網元設備的消息為受限資源消息,則操作結果處理器告知資源令牌池釋放該消息占用的資源令牌。其中,資源令牌池的令牌數量是固定的,若邏輯閱讀器為命令消息向資源令牌池申請資源令牌時,當前正在處理的命令消息中是受限資源消息的數量若已達到該固定數量,則申請失敗,否則, 申請成功。操作結果處理器會把所有的操作結果發送至操作結果存儲池,請求接收器根據網管客戶端發送的操作結果請求消息從操作結果存儲池中讀取操作結果并發送給網管客戶端。圖2顯示了本發明提供的對使用受限資源的批量操作的調度裝置的框圖,如圖2 所示,該裝置包括網管客戶端101、網管服務端111和網元設備112。網管客戶端101 —方面用于組裝包含網元標識和操作標識的命令消息給網管服務端111,另一方面網管客戶端101定時向網管服務端111請求操作結果,并顯示操作結果在圖形界面上。網管服務端111用于處理來自網管客戶端101和網元設備112的消息。網元設備112接收來自網管服務端111的命令消息,與網管系統相連,由網管系統進行操作管理。其中,網管服務端111包括請求接收器102,用于接收網管客戶端101發送的包括網元標識的命令消息,以及接收網管客戶端101發送的操作結果請求消息并返回給網管客戶端101操作結果。命令消息分發器103,維護著網管系統中邏輯閱讀器104的命令消息隊列,用于將請求接收器102收到的批量命令消息分發到不同邏輯閱讀器104的命令消息隊列中。邏輯閱讀器104,用于標識管理系統中的虛擬網元設備,對該設備的操作存儲在內部的命令消息隊列中。資源令牌池105,用于控制和管理系統內有限資源的使用。如,判斷命令消息是否為受限資源消息,當命令消息是受限資源消息時向資源令牌池申請資源令牌。命令消息調度器106,用于調度命令消息,并啟動命令消息發送器107。命令消息發送器107,用于將命令消息發送給網元設備112。操作結果處理器108,用于在產生不同類型的操作結果時,進行相應的處理并把操作結果發送給操作結果存儲池109。同時,監聽發送至網元設備的消息,若發送至網元設備的消息為受限資源消息,則告知資源令牌池105釋放該消息占用的資源令牌。操作結果存儲池109,用于存儲命令消息的操作結果。任務計時器110,用于在邏輯閱讀器104向資源令牌池105申請資源令牌時開始計時,如果到達超時時間后,就生成一個響應超時結果,并通過操作結果處理器108放入操作結果存儲池109。下面對照圖2對本發明的對使用受限資源的批量操作的調度方法進行詳細說明步驟S201,請求接收器102接收到網管客戶端101發送的命令消息列表后,將命令消息列表發送給命令消息分發器103。步驟S202,命令消息分發器103接收到請求接收器102發送的命令消息列表后,逐一解析出命令消息中包含的網元標識,根據網元標識將命令消息發送給對應的邏輯閱讀器 104。步驟S203,邏輯閱讀器104接收到命令消息分發器103發送的命令消息后,將命令消息放到命令消息隊列中,同時啟動任務計時器110,開始計時。
步驟S204,任務計時器110啟動后,計時開始,到達超時時間后,產生的操作結果交給操作結果處理器108進行邏輯處理。步驟S205,命令消息調度器106在系統啟動時開始工作,定時檢索命令消息分發器103中是否有需要發送的命令消息。步驟S206,命令消息分發器103循環遍歷邏輯閱讀器104的當前命令消息。步驟S207,邏輯閱讀器104判斷當前命令消息是否是受限資源消息,如果是則執行步驟S208,否則執行步驟S2089。步驟S208,邏輯閱讀器104向資源令牌池105申請資源并取得資源令牌。步驟S209,邏輯閱讀器104將當前命令消息返回給命令消息分發器103。步驟S210,命令消息分發器103將所有邏輯閱讀器104的命令消息返回給命令消息調度器106。步驟S211,命令消息調度器106調度邏輯閱讀器104中的命令消息,并啟動命令消息發送器107發送消息。步驟S212,命令消息發送器107接收到命令消息調度器106發送的命令消息,通過網絡向網元設備112發送命令消息。步驟S213,操作結果處理器108在收到新產生的結果時,判斷是否占用資源令牌, 如果占用資源令牌則執行步驟S214,否則執行步驟S215。步驟S214,資源令牌池105釋放該結果占用的資源令牌以便后續給其他申請者使用。步驟S215,操作結果處理器108將操作結果放入操作結果存儲池109中。步驟S216,請求接收器102定時從操作存儲池109中取出操作結果,返回給網管客戶端101顯示。圖3顯示了本發明實施例提供的命令消息調度器的處理流程,如圖3所示步驟S301,請求接收器收到網管客戶端發送命令消息后,流程開始。步驟S302,命令消息分發器根據命令消息取得邏輯閱讀器標識,判斷該邏輯閱讀器的當前命令消息和命令消息隊列中的消息是否已經存在受限資源消息,如果存在則執行步驟S315,否則執行步驟S303。步驟S303,命令消息分發器將命令消息加入到對應邏輯閱讀器的命令消息隊列中。步驟S304,命令消息分發器啟動任務定時器,開始計時。步驟S305,命令消息調度器通過命令消息分發器循環調度邏輯閱讀器內的當前命令消息。步驟S306,命令消息調度器判斷當前調度到的消息是否是受限資源消息,如果是則執行步驟S307,否則執行步驟S309。步驟S307,命令消息調度器想資源令牌池申請資源令牌。步驟S308,資源令牌池根據當前系統內剩余的受限資源的數量,判斷申請是否成功,如果是則執行步驟S309,否則執行步驟S312。步驟S309,該邏輯閱讀器的申請資源令牌失敗計數器清零。步驟S310,命令消息調度器啟動命令消息發送器,發送命令消息。
步驟S311,命令消息調度器創建發送成功的結果,流程結束。步驟S312,如果申請資源令牌失敗,該邏輯閱讀器的申請資源令牌失敗計數器加 1。步驟S313,命令消息調度器判斷該邏輯閱讀器的申請資源令牌失敗次數是否超過限制,如果是則執行步驟S314,否則返回步驟S305,等待下一輪再次被調度。步驟S314,命令消息調度器創建操作超時的結果,流程結束。步驟S315,命令消息調度器創建快速失敗的結果,流程結束。圖4顯示了本發明實施例提供的操作結果處理器的處理流程,如圖4所示步驟S401,操作結果處理器收到系統不同時機產生的不同類型的操作結果后,流程開始。步驟S402,操作結果處理器判斷該操作結果是否是由于定時器到達時間點所產生的響應超時結果,如果是則執行步驟S403,否則執行步驟S407。步驟S403,操作結果處理器調用該結果對應的邏輯閱讀器,判斷此時定時器產生的超時結果對應的是否是該邏輯閱讀器的當前命令消息,如果是則執行步驟S404,否則執行步驟S407。步驟S404,操作結果處理器判斷該結果對應的操作請求是否是受限資源消息,如果是則執行步驟S405,否則執行步驟S407。步驟S405,操作結果處理器通過調用該結果對應的邏輯閱讀器,判斷此邏輯閱讀器的申請資源令牌失敗計數器的次數是否超過限制,如果沒有超過限制則執行步驟S406, 否則執行步驟S407。步驟S406,操作結果處理器通過調用該結果對應的邏輯閱讀器,啟動新的定時器任務,如果新的定時器任務到達時間點后,開始新的一輪循環處理操作結果,循環執行步驟 S401。步驟S407,將操作結果放入操作結果存儲池中,準備返回給網管客戶端用于顯示。步驟S408,操作結果處理器通過調用資源令牌池,判斷本次結果是否占用了資源令牌,如果是則執行步驟S409,否則流程結束。步驟S409,資源令牌池釋放本次結果占用的資源令牌,以備其他受限資源消息使用。圖5顯示了本發明實施例提供的分發命令消息的工作示意,如圖5所示命令消息分發器103 所有消息進入系統的入口,由其根據消息的網元標識分配給具體處理的邏輯閱讀器104。邏輯閱讀器104 模擬真實的網元設備,與物理網元一一對應。負責管理和維護該網元上正在發送和將要發送的操作消息。其中包括兩部分結構,一個是“當前命令消息”,一個是“命令消息隊列”。命令消息隊列逐一取出隊頭的消息,放在當前命令消息的結構中,用來標識該邏輯閱讀器當前正在處理的命令消息。當產生了與當前命令消息對應的操作結果后,刪除當前命令消息,再將命令消息隊列的隊頭消息取出。資源令牌池105 管理系統內的資源數量,提供申請令牌和釋放令牌的功能。命令消息發送器107 命令消息分發器103從邏輯閱讀器104中取出的可執行操作的命令消息,通過調用命令消息發送器107發送給網元設備。
并且,本發明的邏輯閱讀器在系統運行中所處的狀態包括以下幾種可能狀態,其中邏輯閱讀器104-b中的當前命令消息、邏輯閱讀器104-c中的當前命令消息、邏輯閱讀器 104-d中的命令消息3是受限資源消息邏輯閱讀器104-a 該邏輯閱讀器的當前命令消息和命令消息隊列中均無受限資源消息。命令消息分發器103調度消息時,直接將當前命令消息通過調用命令消息發送器 107進行發送。另外,如果此時新產生了命令消息5,由于邏輯閱讀器104-a的當前命令消息和命令消息隊列中均無受限資源消息,并且命令消息隊列未滿,可以成功插入到命令消息隊列中等待發送。邏輯閱讀器104-b 該邏輯閱讀器的當前命令消息是受限資源消息。命令消息分發器103調度消息時,首先到資源令牌池中申請令牌,如果申請成功,將當前命令消息通過調用命令消息發送器107進行發送。另外,如果此時新產生了命令消息5,由于邏輯閱讀器 104-b的當前命令消息是受限資源消息,此時返回快速失敗的操作結果,提示操作人員“該網元正在執行耗時操作,請稍后再試”的提示,不再將此請求插入到命令消息隊列中。邏輯閱讀器104-c 該邏輯閱讀器的當前命令消息是受限資源消息。命令消息分發器103調度消息時,首先到資源令牌池中申請令牌,如果申請失敗,不調用命令消息發送器107進行發送,而是等待下一次調度時重新申請令牌。另外,如果此時新產生了命令消息5,由于邏輯閱讀器104-c的當前命令消息是受限資源消息,此時返回快速失敗的操作結果,提示操作人員“該網元正在執行耗時操作,請稍后再試”的提示,不再將此請求插入到命令消息隊列中。邏輯閱讀器104-d 該邏輯閱讀器的當前命令消息不是受限資源消息,但是命令消息隊列中存在受限資源消息。命令消息分發器103調度消息時,直接將當前命令消息通過調用命令消息發送器進行發送。另外,如果此時新產生了命令消息5,由于邏輯閱讀器 104-d的命令消息隊列中存在受限資源消息,此時返回快速失敗的操作結果,提示操作人員 “該網元正在執行耗時操作,請稍后再試”的提示,不再將此請求插入到命令消息隊列中。綜上所述,本發明具有以下技術效果本發明對多個同類網元的批量消息調度策略進行了改進,以操作需要使用的物理資源和時間資源多少為原則,將操作請求分為普通消息和受限資源消息兩類,并提供了相應的調度策略上的調整。本發明中提出的“受限資源”的概念和“資源令牌”、“多段式定時器”等理論創新,解決了在實際應用中單次批量操作受限資源消息數量需人為控制、批量操作受限資源消息操作成功率低和普通消息受影響普遍超時的實際問題,并且細化了操作失敗的結果類型,對于操作人員定位問題具有很好的易用性。盡管上文對本發明進行了詳細說明,但是本發明不限于此,本領域技術人員可以根據本發明的原理進行各種修改。因此,凡按照本發明原理所作的修改,都應當理解為落入本發明的保護范圍。
權利要求
1.一種對使用受限資源的批量操作的調度方法,其特征在于,包括以下步驟請求接收器接收到網管客戶端發送的包括網元標識的命令消息后,把所述命令消息發送至命令消息分發器;所述命令消息分發器把所述命令消息分配給對應的邏輯閱讀器;所述邏輯閱讀器判斷所述命令消息是否為受限資源消息,若所述命令消息為受限資源消息,則所述邏輯閱讀器為所述命令消息向資源令牌池申請資源令牌并在申請成功后把所述命令消息發送給命令消息調度器;以及所述命令消息調度器通過命令消息發送器把所述命令消息發送至對應的網元設備。
2.根據權利要求1所述的方法,其特征在于,所述受限資源消息是使用網絡中有限資源的消息。
3.根據權利要求2所述的方法,其特征在于,所述命令消息分發器把所述命令消息分配給對應的邏輯閱讀器,包括所述命令消息分發器根據所述網元標識得到與所述命令消息對應的邏輯閱讀器;若所述邏輯閱讀器中的消息存在受限資源消息,則命令消息分配失敗,創建快速失敗的結果并存儲至操作結果存儲池;以及若所述邏輯閱讀器中的消息不存在受限資源消息,則把所述命令消息分配給所述邏輯閱讀器。
4.根據權利要求3所述的方法,其特征在于,所述邏輯閱讀器為所述命令消息向資源令牌池申請資源令牌,包括任務計時器預先設定定時時間;所述邏輯閱讀器每隔所述定時時間為所述命令消息在資源令牌池中申請資源令牌;以及所述邏輯閱讀器記錄申請資源令牌失敗次數,若失敗次數超過預先固定次數,則申請失敗,否則,申請成功。
5.根據權利要求4所述的方法,其特征在于,所述邏輯閱讀器向資源令牌池為所述命令消息申請資源令牌,若申請失敗,則不處理所述命令消息,創建操作超時的結果并存儲至操作結果存儲池。
6.根據權利要求5所述的方法,其特征在于,在所述命令消息分發器把命令消息分配給對應的邏輯閱讀器之后,還包括所述邏輯閱讀器判斷所述命令消息是否為受限資源消息,若所述命令消息不是受限資源消息,則所述邏輯閱讀器把所述命令消息發送給命令消息調度器;以及所述命令消息調度器通過命令消息發送器把所述命令消息發送至對應的網元設備。
7.根據權利要求6所述的方法,其特征在于,所述方法還包括操作結果處理器監聽發送至網元設備的消息,若發送至網元設備的消息為受限資源消息,則操作結果處理器告知資源令牌池釋放該消息占用的資源令牌。
全文摘要
本發明公開了一種對使用受限資源的批量操作的調度方法和裝置,該方法包括請求接收器接收到網管客戶端發送的包括網元標識的命令消息后,把命令消息發送至命令消息分發器;命令消息分發器把命令消息分配給對應的邏輯閱讀器;邏輯閱讀器判斷命令消息是否為受限資源消息,若命令消息為受限資源消息,則邏輯閱讀器為命令消息向資源令牌池申請資源令牌并在申請成功后把命令消息發送給命令消息調度器;命令消息調度器通過命令消息發送器把命令消息發送至對應的網元設備。本發明通過把網管系統中的多種命令消息按照是否使用受限資源的原則進行分類,對不同的命令消息采用不同的調度策略,實現了系統內的有限資源的動態管理。
文檔編號H04L12/24GK102420698SQ20111037078
公開日2012年4月18日 申請日期2011年11月21日 優先權日2011年11月21日
發明者孟英 申請人:天津中興軟件有限責任公司