两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

基于構(gòu)件的可擴展路由器任務(wù)分派方法

文檔序號:7780838閱讀:201來源:國知局
基于構(gòu)件的可擴展路由器任務(wù)分派方法
【專利摘要】本發(fā)明提出一種基于構(gòu)件的可擴展路由器任務(wù)分派方法,包括如下步驟:S1:從構(gòu)件庫中選擇需要啟動的構(gòu)件,生成構(gòu)件連接拓撲結(jié)構(gòu),測試每個構(gòu)件的任務(wù)量;S2:從所有主控中選舉超級主控和備份超級主控,對所述構(gòu)件進行分派,生成任務(wù)分派表并構(gòu)造任務(wù)更新消息;S3:非超級主控接收超級主控的任務(wù)更新消息,啟動需要啟動的構(gòu)件并向構(gòu)件管理器注冊。本發(fā)明把路由器的軟件模塊作為組件,把組件進一步劃分成粒度更小的構(gòu)件,對構(gòu)件進行連接實現(xiàn)組件的功能,通過對粒度更小的構(gòu)件進行任務(wù)分散管理,可以實現(xiàn)各個路由器處理器占用平均,在對級聯(lián)路由器進行任務(wù)分派的過程中,具有分派均勻、路由器處理效率高、穩(wěn)定性好的優(yōu)點。
【專利說明】基于構(gòu)件的可擴展路由器任務(wù)分派方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于可擴展路由器研究領(lǐng)域,涉及一種基于構(gòu)件的可擴展路由器任務(wù)分派方法。
【背景技術(shù)】
[0002]可擴展路由器是由多個可獨立運行的路由節(jié)點,通過某種互連結(jié)構(gòu)連接而成性能、功能可擴展的單映像路由器,它具有多方面的可擴展性:規(guī)??蓴U展性、路由計算可擴展性、功能可擴展性,因此,可擴展路由器體系結(jié)構(gòu)將是路由器未來的發(fā)展方向。
[0003]基于級聯(lián)的可擴展路由器對外部來說,是一臺高端路由器,可以在運行狀態(tài)下加入子路由器或刪除子路由器,級聯(lián)方案如圖1所示。級聯(lián)路由器的任務(wù)是分散管理,把計算量較大的軟件模塊(如OSPF、BGP、路由管理等)分別安排在不同的主控節(jié)點中完成,從而提高效率。但是,不同軟件模塊的任務(wù)量區(qū)別較大,直接對這些大粒度軟件模塊進行任務(wù)分派很難做到分派均勻,如何把大粒度的軟件模塊劃分成粒度更小的構(gòu)件,然后對這些構(gòu)件進行分派,實現(xiàn)更加均勻的劃分是亟需解決的技術(shù)問題。

【發(fā)明內(nèi)容】

[0004]本發(fā)明旨在至少解決現(xiàn)有技術(shù)中存在的技術(shù)問題,特別創(chuàng)新地提出了一種基于構(gòu)件的可擴展路由器任務(wù)分派方法。
[0005]為了實現(xiàn)本發(fā)明的上述目的,本發(fā)明提供了一種基于構(gòu)件的可擴展路由器任務(wù)分派方法,其包括如下步驟:
[0006]S1:從構(gòu)件庫中選擇需要啟動的構(gòu)件,生成構(gòu)件連接拓撲結(jié)構(gòu),測試每個構(gòu)件的任
務(wù)量;
[0007]S2:從所有主控中選舉超級主控和備份超級主控,對所述構(gòu)件進行分派,根據(jù)動態(tài)構(gòu)件分配算法生成任務(wù)分派表并構(gòu)造任務(wù)更新消息;
[0008]S3:非超級主控接收超級主控的任務(wù)更新消息,啟動需要啟動的構(gòu)件并向構(gòu)件管理器注冊。
[0009]本發(fā)明的基于構(gòu)件的可擴展路由器任務(wù)分派方法把路由器的軟件模塊作為組件,把組件進一步劃分成粒度更小的構(gòu)件,對構(gòu)件進行連接實現(xiàn)組件的功能,通過對粒度更小的構(gòu)件進行任務(wù)分散管理,可以實現(xiàn)各個路由器處理器占用平均,在對級聯(lián)路由器進行任務(wù)分派的過程中,具有分派均勻、路由器處理效率高、穩(wěn)定性好的優(yōu)點。
[0010]本發(fā)明的附加方面和優(yōu)點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實踐了解到。
【專利附圖】

【附圖說明】
[0011]本發(fā)明的上述和/或附加的方面和優(yōu)點從結(jié)合下面附圖對實施例的描述中將變得明顯和容易理解,其中:[0012]圖1是現(xiàn)有技術(shù)中可擴展路由器級聯(lián)方案圖;
[0013]圖2是本發(fā)明基于構(gòu)件的可擴展路由器任務(wù)分派方法的流程圖;
[0014]圖3是本發(fā)明中一種優(yōu)選實施方式的構(gòu)件交互流程圖;
[0015]圖4是本發(fā)明中構(gòu)件動態(tài)分配技術(shù)部署的體系結(jié)構(gòu)圖。
【具體實施方式】
[0016]下面詳細描述本發(fā)明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,僅用于解釋本發(fā)明,而不能理解為對本發(fā)明的限制。
[0017]圖2是本發(fā)明基于構(gòu)件的可擴展路由器任務(wù)分派方法的流程圖,從圖中可見,該圖像集合匹配方法包括如下步驟:
[0018]S1:從構(gòu)件庫中選擇需要啟動的構(gòu)件,生成構(gòu)件連接拓撲結(jié)構(gòu),測試每個構(gòu)件的任
務(wù)量;
[0019]S2:從所有主控中選舉超級主控和備份超級主控,對所述構(gòu)件進行分派,根據(jù)構(gòu)件動態(tài)分配算法生成任務(wù)分派表并構(gòu)造任務(wù)更新消息;
[0020]S3:非超級主控接收超級主控的任務(wù)更新消息,啟動需要啟動的構(gòu)件并向構(gòu)件管理器注冊。
[0021]在本發(fā)明的一種優(yōu)選實施方式中,該基于構(gòu)件的可擴展路由器任務(wù)分派方法的具體步驟是:
[0022]第一步:從構(gòu)件庫中選擇需要啟動的構(gòu)件,生成構(gòu)件連接拓撲結(jié)構(gòu),測試每個構(gòu)件的任務(wù)量,本發(fā)明測試每個構(gòu)件的任務(wù)量的方法是在一臺測試路由器上啟動要運行的構(gòu)件,調(diào)用操作系統(tǒng)提供的工具查看各個構(gòu)件運行占用處理器的情況并記錄。
[0023]在本發(fā)明中,組件是路由器軟件中具有獨立功能的消息處理模塊,如BGP組件、RIP組件等。構(gòu)件是組件的組成單位,是具有獨立功能的軟件模塊,組件由相關(guān)構(gòu)件連接而成,通過若干構(gòu)件之間的連接和交互組成了組件,不同的組件可共用同一個構(gòu)件,可以實現(xiàn)特定消息的處理功能,例如,BGP組件和0SPF組件都可以由三個構(gòu)件組成:協(xié)議報文處理構(gòu)件,鄰居管理構(gòu)件,路由計算構(gòu)件??梢栽O(shè)計出協(xié)議無關(guān)的構(gòu)件,在本發(fā)明中,不同的組件共用同一個構(gòu)件,提高開發(fā)效率,提高軟件的重用率。構(gòu)件管理器是管理構(gòu)件的注冊、注銷和信息存儲,維護各構(gòu)件連接的拓撲結(jié)構(gòu),并且負責管理構(gòu)件運行和動態(tài)變化,比如構(gòu)件增刪、修改、替換等。在本發(fā)明的優(yōu)選實施方式中,構(gòu)件管理器也可以看成是一個構(gòu)件。構(gòu)件管理器客戶端是構(gòu)件間的通信接口,提供構(gòu)件和構(gòu)件、構(gòu)件和構(gòu)件管理器之間通信的功能,為構(gòu)件屏蔽了具體操作系統(tǒng)底層的通信細節(jié),實現(xiàn)了支持異構(gòu)系統(tǒng),在本發(fā)明一種優(yōu)選實施方式中構(gòu)件交互流程圖如圖3所示。
[0024]在本發(fā)明的一種優(yōu)選實施方式中,假設(shè)要在級聯(lián)路由器中啟動BGP和0SPF路由協(xié)議組件,則從構(gòu)件庫中選擇BGP協(xié)議報文處理構(gòu)件,BGP鄰居管理構(gòu)件,BGP路由計算構(gòu)件,0SPF協(xié)議報文處理構(gòu)件,0SPF鄰居管理構(gòu)件,0SPF路由計算構(gòu)件,生成構(gòu)件連接拓撲結(jié)構(gòu),存入XML文件;然后在一臺測試路由器上啟動這六個構(gòu)件,調(diào)用linux的top命令查看各個構(gòu)件運行時占用cpu的情況記為Loadl—Load6。
[0025]第二步:從所有主控中選舉超級主控和備份超級主控,對構(gòu)件進行分派,根據(jù)構(gòu)件動態(tài)分配算法生成任務(wù)分派表并構(gòu)造任務(wù)更新消息。
[0026]在本實施方式中,把加入級聯(lián)路由器的一臺路由器稱為一個節(jié)點,在本發(fā)明另外的優(yōu)選實施方式中,把一個機框稱為一個節(jié)點。超級主控是級聯(lián)路由器中唯一的總控節(jié)點,主要負責節(jié)點管理,任務(wù)分派,信息匯總等功能,超級主控需要維護一個構(gòu)件和主板對應(yīng)表。備份超級主控是超級主控的備份,擁有超級主控的管理的鏡像,一旦超級主控失效,備份超級主控充當超級主控。備份超級主控失效,則將選舉新的備份超級主控,備份超級主控學習超級主控中的總控信息。
[0027]首先,利用節(jié)點管理模塊選舉出超級主控和備份超級主控。啟動級聯(lián)路由器中的每個主控,當一個主控X啟動并與一個或多個相鄰路由器之間的雙向通信建立起來之后,對每個相鄰路由器發(fā)送來的Hello包中的優(yōu)先級、超級主控域和備份超級主控域進行檢查,列出所有能夠參加選舉的主控,即優(yōu)先級高于0并且鄰居狀態(tài)至少為“雙向”的主控,根據(jù)這個主控列表,執(zhí)行的步驟包括:
[0028]11):如果網(wǎng)絡(luò)上有當前超級主控和備份超級主控,記錄網(wǎng)絡(luò)上當前的超級主控和備份超級主控的數(shù)值,以用于以后的比較。
[0029]12):計算網(wǎng)絡(luò)上的備份超級主控,計算方法為:列表上的主控中,只有那些不宣告自己為超級主控的才可能成為備份超級主控,考慮列表中所有宣告自己是備份超級主控且不是超級主控的主控,即接口地址置于Hello包的備份超級主控域中且不在超級主控域中的主控,選擇其中擁有最高路由器優(yōu)先級的成為備份超級主控;如果優(yōu)先級相同,選擇擁有最大ID的主控。如果沒有主控宣告自己為備份超級主控,則排除宣告自己為超級主控的路由器,選擇列表中擁有最高路由器優(yōu)先級的成為備份超級主控,沒有主控宣告自己為備份超級主控的情況下,如果路由器優(yōu)先級相同,選擇擁有最大ID的主控。
[0030]13):計算網(wǎng)絡(luò)上的超級主控,計算方法為:如果有一臺或多臺主控宣告自己為超級主控,即將它們的接口地址置于Hello包的超級主控域中,則選擇其中擁有最高路由器優(yōu)先級的成為超級主控;如果優(yōu)先級相同,選擇擁有最大ID的主控。如果沒有路由器宣告自己為超級主控,將新選舉出的備份超級主控設(shè)定為超級主控。
[0031]14):如果啟動的進行計算的主控X是新選舉出來的超級主控或備份超級主控,或者不再是超級主控或備份超級主控,則重復步驟2)和步驟3),計算網(wǎng)絡(luò)上的備份超級主控和超級主控。
[0032]然后:選舉成功后所述節(jié)點管理模塊發(fā)布告知消息,在告知消息中包括節(jié)點列表,列表指明了超級主控和備份超級主控的節(jié)點ID及所有普通主控ID。
[0033]最后:超級主控收到所述節(jié)點管理模塊發(fā)來的告知消息,告知自身被選舉成為超級主控,任務(wù)分散管理模塊進行任務(wù)分派,生成任務(wù)分派表并構(gòu)造任務(wù)更新消息,具體包括如下步驟:
[0034]21):超級主控查看節(jié)點管理模塊發(fā)來的告知消息中指定的超級主控是否是自己,如果是其他節(jié)點,則打印錯誤信息并返回;
[0035]22):啟動構(gòu)件管理器并進行初始化,讀取構(gòu)件連接拓撲結(jié)構(gòu)XML文件并保存,調(diào)用操作系統(tǒng)提供的函數(shù),初始化通信模塊,具體可以為但不限于開啟Socket服務(wù),綁定地址監(jiān)聽 Socket ;
[0036]23):對構(gòu)件連接拓撲結(jié)構(gòu)中的所有構(gòu)件根據(jù)構(gòu)件動態(tài)分配算法進行分派,生成任務(wù)分派表,任務(wù)分派表的內(nèi)容是各個構(gòu)件和所在主控節(jié)點id的對應(yīng)關(guān)系。
[0037]在超級王控中,部署如圖4所不的系統(tǒng)架構(gòu),其中,負載感知層用于感知系統(tǒng)各端當前負責情況,并上報核心控制層。核心控制層中,分配方案生成模塊部署動態(tài)分配算法,根據(jù)各模塊提供的系統(tǒng)信息,計算當前優(yōu)化分配方案并發(fā)送給系統(tǒng)資源及構(gòu)件分布管理器;組、構(gòu)件平均負責信息管理模塊負責統(tǒng)計各組、構(gòu)件的平均運行負載,以供分配方案生成模塊運行動態(tài)分配算法時調(diào)用;組件重構(gòu)信息管理器負責管理當前系統(tǒng)中各組件的組成、連接以及重構(gòu)信息,供動態(tài)分配算法調(diào)用。系統(tǒng)資源及構(gòu)件分布管理器接收優(yōu)化后的動態(tài)構(gòu)件分配方案,并按此方案調(diào)整系統(tǒng)端各組、構(gòu)件的分布和連接關(guān)系。
[0038]圖G=(V,E)描述網(wǎng)絡(luò)拓撲環(huán)境,其中V是表示網(wǎng)絡(luò)環(huán)境中各設(shè)備端的節(jié)點集合,E是邊集合,每條邊表示相連通信設(shè)備的一個數(shù)據(jù)連接。對于任意一條邊e(u,v) eE都有一個連接開銷Cost,表示選擇在設(shè)備u和v之間建立連接的相應(yīng)成本,同時,對于任意一個節(jié)點v e V都有一個負載指數(shù)Load。
[0039]整體的優(yōu)化為了到達兩個目標,其一是使得系統(tǒng)的整體通信開銷盡可能的?。涣硪粋€是使得系統(tǒng)的整體負載盡可能的均衡。根據(jù)這兩個優(yōu)化目標,我們設(shè)函數(shù)F為全局優(yōu)化目標函數(shù),即全局優(yōu)化目為找到一個全網(wǎng)構(gòu)件分布和連接狀態(tài)S,使得下式取得最小值:
[0040]F(S)= Σ eeEaR(e)V(e)+Num(S)-^ {(1+Φ) Lmax ⑶-(1_ Φ) Lmin ⑶ _2 Φ Lavg(S)}[0041]其中α和β為Cost和Load的計算權(quán)重,可根據(jù)系統(tǒng)部署的具體環(huán)境,動態(tài)測試調(diào)整。對于任意i e E,該鏈路的連接開銷記為Cost (i)。對于全局連接狀態(tài)S,記某一連接i e E的通信頻度為R(i),平均數(shù)據(jù)量為V(i),并設(shè)此時系統(tǒng)設(shè)備間的連接數(shù)為Num(S)。記狀態(tài)S下,系統(tǒng)所有設(shè)備端中的最高負載指數(shù)為Loadmax,最低負載指數(shù)為Loadmin,平均負載為Loadavg, Φ為調(diào)整參數(shù)。
[0042]算法描述如下:
[0043]Stepl.對當前系統(tǒng)各設(shè)備端按照負載高低降序排列,取負載最高節(jié)點至最接近平均負載的節(jié)點之間的所有節(jié)點組成集合;
[0044]Step2.對集合Vt()p中每一個節(jié)點做Step3至Step8的循環(huán)處理;
[0045]Step3.檢查當前系統(tǒng)設(shè)備端所有節(jié)點的集合F = 0是否成立,若成立則跳轉(zhuǎn)Step2;不成立,則記錄當前系統(tǒng)狀態(tài)的優(yōu)化函數(shù)值F(S),查找當前系統(tǒng)中負載最高的節(jié)點V-和最小的節(jié)點Vfflin ;
[0046]Step4.分析Vmax節(jié)點上的組、構(gòu)件運行情況,對所有組、構(gòu)件按照平均負載高低降序排序,記此集合為List_p;
[0047]Step5.對Listramp中的所有節(jié)點進行Step至Step的循環(huán)處理;
[0048]Step6.查找出其中平均占用資源最多的組、構(gòu)件Compmax,若<^?ριη?ΙΧ (60,則跳轉(zhuǎn)Step x2 ;否則,從Vtop中剔除當前最高負載節(jié)點,跳轉(zhuǎn)Step2 ;
[0049]Step7.根據(jù)組、構(gòu)件平均負載數(shù)據(jù),判斷Vmin節(jié)點上是否有足夠資源運行Compmax,若支持運行,則跳轉(zhuǎn)St印8 ;
[0050]Step8.計算將Compmax分配至Vmin節(jié)點后,系統(tǒng)此時狀態(tài)的函數(shù)值F(S '),若F(S' )<F(S)成立,則將Compmax分配至Vmin節(jié)點計入分配方案Plan, Listcomp中剔除Compmax,跳轉(zhuǎn)St印5 ;若F(S' ) <F(S)不成立,則分析Compmax是否為組件級,若為組件級,查詢其組成信息,將其中包含的平均負載最大的構(gòu)件記為Compmax,跳轉(zhuǎn)Step7 ;若為構(gòu)件級,則將節(jié)點vmin剔除出設(shè)備端集合V,跳轉(zhuǎn)St印3 ;
[0051]Step9.輸出Plan,即為所要求的優(yōu)化分配方案。
[0052]24):構(gòu)造任務(wù)更新消息將步驟23)生成的任務(wù)分派表發(fā)給所有主控。
[0053]第三步:非超級主控收超級主控的任務(wù)更新消息,啟動需要啟動的構(gòu)件并向構(gòu)件管理器注冊,具體包括如下步驟:
[0054]31):檢查消息源頭的id是否為所述非超級主控所知的超級主控的id,如果是,則進行步驟32),如果不是,則退出;
[0055]32):保存任務(wù)分派表;
[0056]33):將任務(wù)分派表中分派給非超級主控應(yīng)該啟動的構(gòu)件與非超級主控已經(jīng)啟動了的構(gòu)件相比對,將分派給非超級主控但還未啟動的構(gòu)件啟動起來并向構(gòu)件管理器注冊,具體啟動構(gòu)件的步驟如下:
[0057]331):構(gòu)件進行初始化;
[0058]332):構(gòu)件管理器客戶端獲取所在主控節(jié)點的IP和socket監(jiān)聽端口號,構(gòu)造注冊消息向構(gòu)件管理器注冊,注冊消息包括構(gòu)件ID、所在的節(jié)點ID、IP地址和socket監(jiān)聽端口號;構(gòu)件通過通信接口構(gòu)件管理器客戶端向構(gòu)件管理器注冊,通知構(gòu)件ID、所在的節(jié)點ID、自身IP地址和監(jiān)聽端口號。構(gòu)件管理器收到注冊消息后更新數(shù)據(jù)庫,維護構(gòu)件和其所在節(jié)點ID的對應(yīng)信息。構(gòu)件管理器查詢構(gòu)件連接拓撲結(jié)構(gòu),向新注冊構(gòu)件的關(guān)聯(lián)構(gòu)件,即需要向新注冊構(gòu)件發(fā)送消息的構(gòu)件以及需要接收新注冊構(gòu)件消息的構(gòu)件,轉(zhuǎn)發(fā)新注冊構(gòu)件的注冊信息包括通信地址。
[0059]在本實施方式中,還提供了對超級主控以外的主控和備份超級主控以外的主控進行刪除的方法,以及對超級主控進行刪除和加主控的方法。還提供了刪除構(gòu)件、增加構(gòu)件和重啟構(gòu)件的方法,具體描述如下:
[0060]對超級主控以外的主控和備份超級主控以外的主控進行刪除包括如下步驟:
[0061]41):刪除主控向所有主控節(jié)點發(fā)送刪除消息;
[0062]42):收到刪除消息的主控先核實自身是否為超級主控或備份超級主控,,如果不是超級主控或備份超級主控,則打印錯誤信息并返回;
[0063]43):超級主控的構(gòu)件管理器遍歷要刪除的主控上運行的所有構(gòu)件,對于每一個構(gòu)件,應(yīng)通知和它關(guān)聯(lián)的構(gòu)件,關(guān)聯(lián)構(gòu)件得知后要做解除關(guān)聯(lián)的處理;
[0064]44):超級主控將要刪除的主控上運行的構(gòu)件重新分派到其他主控上,更新任務(wù)分派表;
[0065]45):超級主控構(gòu)造任務(wù)更新消息并將步驟44)中更新的任務(wù)分派表發(fā)送到全部主控;
[0066]46 ):除超級主控或備份超級主控以外的所有其他主控按步驟33 )的方法更新自身的構(gòu)件。其他主控保存新任務(wù)分派表,對表中分派為自身所應(yīng)該啟動的構(gòu)件與自身已經(jīng)啟動了的構(gòu)件相比對,將被分派給自己但還未啟動的構(gòu)件按照構(gòu)件啟動步驟啟動起來。
[0067]對超級主控進行刪除包括如下步驟:
[0068]51):超級主控向所有主控節(jié)點發(fā)送刪除消息;
[0069]52):收到超級主控刪除消息的主控核實自身是否為備份超級主控,如果非備份超級主控,則打印錯誤信息并返回;[0070]53):備份超級主控的任務(wù)分散管理模塊將任務(wù)分派表中超級主控的欄目刪除,將超級主控的構(gòu)件重新分派到其他主控上,構(gòu)造新的任務(wù)分派表,備份超級主控啟動構(gòu)件管理器,讀取構(gòu)件連接拓撲結(jié)構(gòu)并保存;
[0071]54):備份超級主控構(gòu)造任務(wù)更新消息將步驟53)中更新的任務(wù)分派表發(fā)送到全部主控;
[0072]55):除備份超級主控以外的其他所有主控按步驟33)的方法更新自身的構(gòu)件。其他主控保存新任務(wù)分派表,對表中分派為自身所應(yīng)該啟動的構(gòu)件與自身已經(jīng)啟動了的構(gòu)件相比對,將被分派給自己但還未啟動的構(gòu)件按照構(gòu)件啟動步驟啟動起來。
[0073]增加主控的方法包括如下步驟:
[0074]61):將增加主控的信息告知超級主控和備份超級主控的任務(wù)分散管理模塊;
[0075]62):超級主控和備份超級主控的任務(wù)分散管理模塊把新增主控信息存入主控鏈表。
[0076]刪除構(gòu)件的方法包括如下步驟:
[0077]71):待刪除構(gòu)件向構(gòu)件管理器發(fā)送注銷信息,構(gòu)件管理器通知待刪除構(gòu)件的關(guān)聯(lián)構(gòu)件,關(guān)聯(lián)構(gòu)件得知后要做解除關(guān)聯(lián)的處理,構(gòu)件管理器更新構(gòu)件連接拓撲結(jié)構(gòu)的數(shù)據(jù)庫;
[0078]72):具有刪除功能的構(gòu)件所在的主控調(diào)用操作系統(tǒng)提供的函數(shù)刪除所述待刪除構(gòu)件。
[0079]增加構(gòu)件的方法包括如下步驟:
[0080]81):在構(gòu)件連接拓撲結(jié)構(gòu)XML文件中增加需要增加的構(gòu)件及其連接關(guān)系;
[0081]82):查詢每個路由器當前的處理器占用情況,在一臺測試路由器上啟動要增加的構(gòu)件,查看該構(gòu)件運行占用處理器的情況;
[0082]83):測試路由器給超級主控發(fā)送消息,超級主控綜合考慮增加構(gòu)件占用處理器的多少和增加構(gòu)件和其關(guān)聯(lián)構(gòu)件的通信開銷為增加構(gòu)件分派主控節(jié)點,原則是使得增加構(gòu)件啟動后各主控的處理器占用情況平均,同時不會大幅增加主控節(jié)點間的控制報文流量,按照步驟23)到步驟24)的任務(wù)分派方法得到新的任務(wù)分派表并發(fā)送給所有主控;
[0083]84):啟動構(gòu)件并向構(gòu)件管理器注冊,新的任務(wù)分派表中對應(yīng)增加構(gòu)件的主控節(jié)點啟動增加的構(gòu)件,并要做如下處理:通過構(gòu)件管理器客戶端向構(gòu)件管理器注冊,通知構(gòu)件ID、所在節(jié)點ID、自身IP地址和監(jiān)聽端口號;構(gòu)件管理器更新數(shù)據(jù)庫,添加新增構(gòu)件和其所在節(jié)點ID的對應(yīng)信息;構(gòu)件管理器查詢構(gòu)件連接拓撲結(jié)構(gòu),向新增構(gòu)件的關(guān)聯(lián)構(gòu)件轉(zhuǎn)發(fā)新注冊構(gòu)件的注冊信息包括通信地址。
[0084]重啟構(gòu)件的步驟如下:
[0085]91):按照步驟71)至步驟72)中刪除構(gòu)件的方法刪除構(gòu)件;
[0086]92):按照步驟81)至步驟82)中增加構(gòu)件的方法增加構(gòu)件,啟動構(gòu)件,重新獲取需要的配置信息。
[0087]本發(fā)明的基于構(gòu)件的可擴展路由器任務(wù)分派方法把路由器的軟件模塊作為組件,把組件進一步劃分成粒度更小的構(gòu)件,如路由協(xié)議處理構(gòu)件、鄰居管理構(gòu)件等,對構(gòu)件進行連接實現(xiàn)組件的功能,通過對粒度更小的構(gòu)件進行任務(wù)分散管理,實現(xiàn)各個路由器處理器占用平均,在對級聯(lián)路由器進行任務(wù)分派的過程中,具有分派均勻、路由器處理效率高、穩(wěn)定性好的優(yōu)點。
[0088]在本說明書的描述中,參考術(shù)語“一個實施例”、“一些實施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點包含于本發(fā)明的至少一個實施例或示例中。在本說明書中,對上述術(shù)語的示意性表述不一定指的是相同的實施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點可以在任何的一個或多個實施例或示例中以合適的方式結(jié)合。
[0089]盡管已經(jīng)示出和描述了本發(fā)明的實施例,本領(lǐng)域的普通技術(shù)人員可以理解:在不脫離本發(fā)明的原理和宗旨的情況下可以對這些實施例進行多種變化、修改、替換和變型,本發(fā)明的范圍由權(quán)利要求及其等同物限定。
【權(quán)利要求】
1.一種基于構(gòu)件的可擴展路由器任務(wù)分派方法,其特征在于,包括如下步驟:S1:從構(gòu)件庫中選擇需要啟動的構(gòu)件,生成構(gòu)件連接拓撲結(jié)構(gòu),測試每個構(gòu)件的任務(wù)量;S2:從所有主控中選舉超級主控和備份超級主控,對所述構(gòu)件進行分派,生成任務(wù)分派表并構(gòu)造任務(wù)更新消息;S3:非超級主控接收超級主控的任務(wù)更新消息,啟動需要啟動的構(gòu)件并向構(gòu)件管理器注冊。
2.如權(quán)利要求1所述的基于構(gòu)件的可擴展路由器任務(wù)分派方法,其特征在于,所述步驟S2包括如下步驟:S21:利用節(jié)點管理模塊選舉出超級主控和備份超級主控;S22:選舉成功后所述節(jié)點管理模塊發(fā)布告知消息,在所述告知消息中包括節(jié)點列表;S23:超級主控收到所述節(jié)點管理模塊發(fā)來的告知消息,系統(tǒng)資源及構(gòu)件分布管理器進行任務(wù)分派,生成任務(wù)分派表并構(gòu)造任務(wù)更新消息。
3.如權(quán)利要求2所述的基于構(gòu)件的可擴展路由器任務(wù)分派方法,其特征在于,所述步驟S21中,當一個主控啟動并與相鄰路由器之間建立起雙向通信之后,對每個相鄰路由器發(fā)送來的Hello包中的優(yōu)先級、超級主控域和備份超級主控域進行檢查,列出所有能夠參加選舉的主控,形成主控列表,根據(jù)這個主控列表,執(zhí)行的步驟包括:S211:記錄網(wǎng)絡(luò)上當前的超級主控和備份超級主控的數(shù)值;S212:計算網(wǎng)絡(luò)上的備份超級主控;S213:計算網(wǎng)絡(luò)上的超級主控;S214:如果啟動的主控是新選舉出來的超級主控或備份超級主控,或者不再是超級主控或備份超級主控,則重復步驟S212至步驟S213。
4.如權(quán)利要求2所述的基于構(gòu)件的可擴展路由器任務(wù)分派方法,其特征在于,所述步驟S23中,包括如下步驟:S231:超級主控查看所述節(jié)點管理模塊發(fā)來的告知消息中指定的超級主控是否是自己,如果是其他節(jié)點,則打印錯誤信息并返回;S232:啟動構(gòu)件管理器并進行初始化,讀取構(gòu)件連接拓撲結(jié)構(gòu)并保存,初始化通信模塊;S233:對構(gòu)件連接拓撲結(jié)構(gòu)中的所有構(gòu)件進行分派,運行動態(tài)構(gòu)件分配算法生成任務(wù)分派表;S234:構(gòu)造任務(wù)更新消息所述任務(wù)分派表發(fā)給所有主控。
5.如權(quán)利要求4所述的基于構(gòu)件的可擴展路由器任務(wù)分派方法,其特征在于,所述步驟S233中,包括如下步驟:S2331對當前系統(tǒng)各設(shè)備端按照負載高低降序排列,取負載最高節(jié)點至最接近平均負載的節(jié)點之間的所有節(jié)點組成集合ν_ ;S2332.對集合Vt()p中每一個節(jié)點做S2333至S2338的循環(huán)處理;S2333.檢查當前系統(tǒng)設(shè)備端所有節(jié)點的集合F= 0是否成立,若成立則跳轉(zhuǎn)Step2 ;不成立,則記錄當前系統(tǒng)狀態(tài)的優(yōu)化函數(shù)值F(S),查找當前系統(tǒng)中負載最高的節(jié)點Vmax和最小的節(jié)點Vmin ;S2334.分析Vmax節(jié)點上的組、構(gòu)件運行情況,對所有組、構(gòu)件按照平均負載高低降序排序,記此集合為List_p ;S2335.對List_p中的所有節(jié)點進行St印至St印的循環(huán)處理;S2336.查找出其中平均占用資源最多的組、構(gòu)件Compmax,若(60,則跳轉(zhuǎn)St印x2 ;否則,從V_中剔除當前最高負載節(jié)點,跳轉(zhuǎn)St印2 ;S2337.根據(jù)組、構(gòu)件平均負載數(shù)據(jù),判斷Vmin節(jié)點上是否有足夠資源運行Compmax,若支持運行,則跳轉(zhuǎn)St印8 ;S2338.計算將Compmax分配至Vmin節(jié)點后,系統(tǒng)此時狀態(tài)的函數(shù)值F(S'),若F(S' )<F(S)成立,則將Compmax分配至Vmin節(jié)點計入分配方案Plan, Listcomp中剔除Compmax,跳轉(zhuǎn)St印5 ;若F(S' ) <F(S)不成立,則分析Compmax是否為組件級,若為組件級,查詢其組成信息,將其中包含的平均負載最大的構(gòu)件記為Compmax,跳轉(zhuǎn)Step7 ;若為構(gòu)件級,則將節(jié)點Vmin剔除出設(shè)備端集合V,跳轉(zhuǎn)St印3 ;S2339.輸出Plan,即為所要求的優(yōu)化分配方案;其中,優(yōu)化目標函數(shù)F(S)的定義如下:F(S)= Σ eeEaR(e)V(e) +Num ⑶ _ β {(1+ Φ) Lmax (S) - (1_ Φ) Lmin (S) _2 Φ Lavg (S)},圖G=(V,E)描述網(wǎng)絡(luò)拓撲環(huán)境,其中V是表示網(wǎng)絡(luò)環(huán)境中各設(shè)備端的節(jié)點集合,E是邊集合,每條邊表示相連通信設(shè)備的一個數(shù)據(jù)連接;對于任意i e E,該鏈路的連接開銷記為Cost(i);對于全局連接狀態(tài)S,記某一連接i e E的通信頻度為R(i),平均數(shù)據(jù)量為V(i),并設(shè)此時系統(tǒng)設(shè)備間的連接數(shù)為Num(S);記狀態(tài)S下,系統(tǒng)所有設(shè)備端中的最高負載指數(shù)為Loadmax,最低負載指數(shù)為Loadmin,平均負載為Loadavg, Φ為調(diào)整參數(shù),其中α和β為Cost和Load的計算權(quán)重,可根據(jù)系統(tǒng)部署的具體環(huán)境,動態(tài)測試調(diào)整。
6.如權(quán)利要求1所述的基于構(gòu)件的可擴展路由器任務(wù)分派方法,其特征在于,步驟S3包括如下步驟:S31:檢查消息源頭的id是否為所述非超級主控所知的超級主控的id,如果是,則進行步驟S32,如果不是,則退出;S32:保存任務(wù)分派表;S33:將任務(wù)分派表中分派給所述非超級主控應(yīng)該啟動的構(gòu)件與所述非超級主控已經(jīng)啟動了的構(gòu)件相比對,將分派給所述非超級主控但還未啟動的構(gòu)件啟動起來并向構(gòu)件管理器注冊。
7.如權(quán)利要求1所述的基于構(gòu)件的可擴展路由器任務(wù)分派方法,其特征在于,對所述超級主控以外的主控和備份超級主控以外的主控進行刪除包括如下步驟:S61:刪除主控向所有主控節(jié)點發(fā)送刪除消息;S62:收到刪除消息的主控核實自身是否為超級主控或備份超級主控,如果不是超級主控或備份超級主控,則打印錯誤信息并返回;S63:超級主控的構(gòu)件管理器遍歷要刪除的主控上運行的所有構(gòu)件;S64:超級主控將要刪除的主控上運行的構(gòu)件重新分派到其他主控上,更新任務(wù)分派表;S65:超級主控構(gòu)造任務(wù)更新消息并將步驟S63中更新的任務(wù)分派表發(fā)送到全部主控;S66:除超級主控或備份超級主控以外的所有主控更新自身構(gòu)件。
8.如權(quán)利要求1-5任一項所述的基于構(gòu)件的可擴展路由器任務(wù)分派方法,其特征在于,對所述超級主控進行刪除包括如下步驟:S71:超級主控向所有主控節(jié)點發(fā)送刪除消息;S72:核實收到超級主控刪除消息的主控是否為備份超級主控,如果非備份超級主控,則打印錯誤信息并返回;S73:備份超級主控的任務(wù)分散管理模塊將任務(wù)分派表中超級主控的欄目刪除,將超級主控的構(gòu)件重新分派到其他主控上,構(gòu)造新的任務(wù)分派表,啟動構(gòu)件管理器,讀取構(gòu)件連接拓撲結(jié)構(gòu)并保存;S74:備份超級主控構(gòu)造任務(wù)更新消息將步驟S72中更新的任務(wù)分派表發(fā)送到全部主控;S75:除備份超級主控以外的所有主控更新自身構(gòu)件。
9.如權(quán)利要求1所述的基于構(gòu)件的可擴展路由器任務(wù)分派方法,其特征在于,增加所述主控的方法包括如下步驟:S81:將增加主控的信息告知超級主控和備份超級主控的任務(wù)分散管理模塊;S82:超級主控和備份超級主控的任務(wù)分散管理模塊把新增主控信息存入主控鏈表。
10.如權(quán)利要求1所述的基于構(gòu)件的可擴展路由器任務(wù)分派方法,其特征在于,刪除所述構(gòu)件的方法包括如下步驟:S91:待刪除構(gòu)件向構(gòu)件管理器發(fā)送注銷信息,構(gòu)件管理器通知所述待刪除構(gòu)件的關(guān)聯(lián)構(gòu)件,構(gòu)件管理器更新構(gòu)件連接拓撲結(jié)構(gòu)的數(shù)據(jù)庫;S92:刪除構(gòu)件所在的主控刪除所述待刪除構(gòu)件。
11.如權(quán)利要求1所述的基于構(gòu)件的可擴展路由器任務(wù)分派方法,其特征在于,增加所述構(gòu)件的方法包括如下步驟:S101:在構(gòu)件連接拓撲結(jié)構(gòu)文件中增加需要增加的構(gòu)件及其連接關(guān)系;S102:查詢每個路由器當前的處理器占用情況,在一臺測試路由器上啟動要增加的構(gòu)件,查看所述構(gòu)件運行占用處理器的情況;S103:所述測試路由器給所述超級主控發(fā)送消息,所述超級主控得到新的任務(wù)分派表并發(fā)送給所有主控;S104:啟動所述構(gòu)件并向構(gòu)件管理器注冊。
【文檔編號】H04L12/721GK103685015SQ201310693523
【公開日】2014年3月26日 申請日期:2013年12月17日 優(yōu)先權(quán)日:2013年12月17日
【發(fā)明者】徐恪, 王曉亮, 朱敏, 馬東超 申請人:清華大學
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
姚安县| 舞钢市| 镇江市| 冷水江市| 黄陵县| 冀州市| 阳东县| 苏尼特左旗| 鲁山县| 奉化市| 伊川县| 仙游县| 汉寿县| 黄石市| 社旗县| 五莲县| 新邵县| 丹棱县| 祁连县| 乡城县| 米脂县| 青川县| 五华县| 枣阳市| 金寨县| 凤台县| 抚松县| 元朗区| 定日县| 茶陵县| 桦南县| 浪卡子县| 杂多县| 海丰县| 专栏| 横山县| 万全县| 巫山县| 镇宁| 长丰县| 岑巩县|