專利名稱:一種基于內(nèi)容的發(fā)布訂閱模型的拓撲結(jié)構(gòu)優(yōu)化方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計算機科學(xué)技術(shù)領(lǐng)域,更具體地,涉及一種基于內(nèi)容的發(fā)布訂閱模型的拓撲結(jié)構(gòu)優(yōu)化方法。
背景技術(shù):
基于內(nèi)容的發(fā)布訂閱模型(Content-Based Publish-Subscribe Model)是當今計算機科學(xué)技術(shù)領(lǐng)域的研究熱點。發(fā)布訂閱是一種消息傳遞模式,被稱為發(fā)布者的消息發(fā)送方并不是直接將消息發(fā)送給被稱為訂閱者的消息接收方。不同的是,消息在被發(fā)送之前會被按照自身特點分類,而這一過程不必考慮訂閱者;相似地,訂閱者也會根據(jù)自身的興趣,選擇相應(yīng)的分類,并只收到自己感興趣的消息,而這一過程不必考慮發(fā)布者。由于其松散耦合以及高可擴展性等優(yōu)點,發(fā)布訂閱模型在企業(yè)領(lǐng)域以及科學(xué)研究領(lǐng)域,都得到了廣泛的 關(guān)注,并涌現(xiàn)出很多優(yōu)秀的研究成果和應(yīng)用。根據(jù)消息過濾形式的不同,發(fā)布訂閱模型可以分為兩類基于主題的和基于內(nèi)容的。一般地,基于內(nèi)容的發(fā)布訂閱系統(tǒng)是由基于內(nèi)容的發(fā)布訂閱代理組成的處于應(yīng)用層的覆蓋網(wǎng)絡(luò),而發(fā)布數(shù)據(jù)源與訂閱數(shù)據(jù)接收器都以客戶端的形式連接這些代理。從客戶端發(fā)送的發(fā)布或訂閱消息,必須在由代理所組成的拓撲結(jié)構(gòu)中以特定的路徑傳輸?shù)搅硪粋€客戶端,所以,對發(fā)布訂閱模型的拓撲進行優(yōu)化以降低消息傳輸延遲從而增加發(fā)布和訂閱到效率,具有重要意義。目前對發(fā)布訂閱模型拓撲的優(yōu)化的研究主要集中在控制代理節(jié)點度數(shù)和優(yōu)化消息傳輸路徑兩個方面。前者主要針對基于主題的發(fā)布訂閱模型,在代理的拓撲建立之前,根據(jù)代理節(jié)點和客戶端的分布簡化它們之間的連接,最終達到減小節(jié)點度數(shù)的目的;后者則主要針對基于內(nèi)容的發(fā)布訂閱模型,根據(jù)已有訂閱條件結(jié)合當前拓撲優(yōu)化每個代理節(jié)點中的路由算法,從而減少消息傳遞經(jīng)過的代理節(jié)點,以達到減小延遲的目的。然而,目前大多數(shù)發(fā)布訂閱拓撲優(yōu)化方法僅僅考慮了非環(huán)狀的拓撲結(jié)構(gòu)(即樹形拓撲結(jié)構(gòu)),所以,這些方法并沒有充分利用環(huán)狀拓撲結(jié)構(gòu)的靈活性、應(yīng)對代理失效的魯棒性和對于引入其他協(xié)議的簡易性等優(yōu)點;與此同時,現(xiàn)有的優(yōu)化方法基于的拓撲結(jié)構(gòu)是相對固定的,這些方法也不能使拓撲在不同類型的結(jié)構(gòu)之間進行自由的轉(zhuǎn)換,缺乏靈活性。綜上所述,在發(fā)布訂閱系統(tǒng)中,動態(tài)地支持多種拓撲結(jié)構(gòu),并針對不同結(jié)構(gòu)各自的優(yōu)缺點進一步地對拓撲進行優(yōu)化,對提高發(fā)布訂閱系統(tǒng)中信息傳遞效率有著重要意義。
發(fā)明內(nèi)容
針對現(xiàn)有技術(shù)的缺陷,本發(fā)明的目的在于提供一種基于內(nèi)容的發(fā)布訂閱模型的拓撲結(jié)構(gòu)優(yōu)化方法,其能夠應(yīng)用于具有環(huán)狀拓撲的發(fā)布訂閱系統(tǒng),使系統(tǒng)自動檢測其拓撲內(nèi)代理的狀態(tài)并根據(jù)當前拓撲結(jié)構(gòu)和網(wǎng)絡(luò)連接狀況綜合制定拓撲策略,適時地動態(tài)在環(huán)狀結(jié)構(gòu)和非環(huán)狀結(jié)構(gòu)之間進行轉(zhuǎn)換,從而達到充分利用不同結(jié)構(gòu)的優(yōu)點,增加容錯性以及減少信息分發(fā)延遲的目的。為實現(xiàn)上述目的,本發(fā)明提供了一種基于內(nèi)容的發(fā)布訂閱模型的拓撲結(jié)構(gòu)優(yōu)化方法,包括以下步驟(I)創(chuàng)建代理節(jié)點并對代理節(jié)點進行初始化操作,以得到初始拓撲結(jié)構(gòu),具體包括以下子步驟( 1-1)對參數(shù)進行初始化,參數(shù)包括代理節(jié)點添加模式、代理節(jié)點個數(shù)、客戶端個數(shù)、連接性測試閥值T。、拓撲結(jié)構(gòu)所用傳輸協(xié)議、環(huán)狀拓撲結(jié)構(gòu)矩陣Tm、客戶端與拓撲連接矩陣、預(yù)定測試時間、初始化標準決策結(jié)果值和最終標準決策結(jié)果值,客戶端與拓撲連接矩陣指定了客戶端和代理節(jié)點之間的對應(yīng)關(guān)系;( 1-2)將初始化后的參數(shù)加載到用于在初始化階段管理和協(xié)同所有初始化操作的初始化程序;(1-3)將初始化程序加載到用于監(jiān)控和管理拓撲結(jié)構(gòu)的控制器上; (1-4)控制器根據(jù)初始化的部分參數(shù)調(diào)用初始化程序,以初始化所有的代理節(jié)占.( 1-5)初始化程序根據(jù)客戶端的個數(shù)、客戶端和拓撲連接矩陣初始化所有客戶端,并將所有客戶端連接到客戶端與拓撲連接矩陣指定的代理節(jié)點;(1-6)對拓撲結(jié)構(gòu)進行連接性測試,以得到連接性矩陣M。,連接性矩陣M。中的值表示兩個代理節(jié)點之間的連接性;(1-7)將連接性矩陣M。傳送到初始化程序,并且初始化程序根據(jù)環(huán)狀拓撲結(jié)構(gòu)矩陣Tm、連接性測試閥值T。和連接性矩陣M。計算決策結(jié)果Ri ;(1-8)判斷決策結(jié)果Ri是否小于初始化標準決策結(jié)果值,如果是,則進入步驟(1-9),否則轉(zhuǎn)入步驟(2);(1-9)初始化程序重新生成拓撲矩陣Mn,并根據(jù)拓撲矩陣Mn重置拓撲結(jié)構(gòu);(2)對初始拓撲結(jié)構(gòu)進行定時檢測,以得到測試結(jié)果數(shù)據(jù)集,具體包括以下子步驟(2-1)運行控制器中的檢測程序,并且檢測程序向每個代理節(jié)點發(fā)送檢測發(fā)起信號;(2-2)每個代理節(jié)點接受到檢測發(fā)起信號后定時地向相鄰的代理節(jié)點發(fā)送檢測信號,以使兩代理節(jié)點握手;(2-3)代理節(jié)點生成檢測數(shù)據(jù)并存儲于信號發(fā)送節(jié)點;(2-4)當檢測數(shù)據(jù)積累到了滿足分析所需數(shù)量時,處于代理節(jié)點的檢測數(shù)據(jù)處理程序?qū)z測數(shù)據(jù)進行統(tǒng)計和分析,以得到數(shù)據(jù)集{S1; S2,…,SJ,其中η為代理節(jié)點個數(shù),Si表示第i個節(jié)點所測得到所有數(shù)據(jù),并將數(shù)據(jù)集發(fā)送到控制器;(3)控制器分析數(shù)據(jù)集,以得到?jīng)Q策結(jié)果Rr ;(4)判斷決策結(jié)果&是否大于最終標準決策結(jié)果值,如果是,則初始化程序重新生成拓撲矩陣Mn’,并根據(jù)拓撲矩陣Mn’動態(tài)地調(diào)整拓撲結(jié)構(gòu),然后進入步驟(5),否則直接跳至步驟(6);(5)測試拓撲矩陣Mn’,并對拓撲矩陣Mn’中代理節(jié)點的路由表進行更新;(6)重復(fù)執(zhí)行步驟(2)至(5),直到整個過程的持續(xù)時間到達預(yù)定測試時間為止。預(yù)定測試時間為30分鐘,初始化標準決策結(jié)果值為1-5毫秒,最終標準決策結(jié)果值為2-10毫秒。
步驟(1-4)具體為,根據(jù)傳輸協(xié)議和連通性測試閥值T。指定拓撲結(jié)構(gòu)中單個代理節(jié)點的公共屬性值,根據(jù)初始化程序指定單個代理節(jié)點的節(jié)點ID和節(jié)點所占端口號等,根據(jù)環(huán)狀拓撲結(jié)構(gòu)矩陣Tm逐個地初始化代理節(jié)點,以建立拓撲結(jié)構(gòu),同時加載路由程序到每個代理節(jié)點。步驟(1-7)具體是采用以下公式S = {(x, y) V(x;y) = I, (x, y) e Tj
VvRi =,其中(X,y) e S,V’ (x,y) > Tc
Ms其中S表示環(huán)狀拓撲結(jié)構(gòu)矩陣Tm中值為I的坐標集合,V(x,y)表示環(huán)狀拓撲結(jié)構(gòu)矩陣Tm中坐標為(X,y)的值,V’(x,y)表示連接性矩陣Mc中坐標為(X,y)的值,Ms是坐標集合S中坐標的個數(shù)。步驟(1-9)具體為,初始化程序會去掉連接性矩陣M。中較大的值,并將環(huán)狀拓撲結(jié)構(gòu)矩陣Tm對應(yīng)的坐標的值由I變0,再對環(huán)狀拓撲結(jié)構(gòu)矩陣Tm做微調(diào),直至新的拓撲矩陣是非環(huán)結(jié)構(gòu),以得到拓撲矩陣Mn,然后初始化程序會根據(jù)拓撲矩陣Mn重新生成所有代理節(jié)點之間的連接。步驟(3 )具體為,控制器首先去掉數(shù)據(jù)集里每個數(shù)據(jù)項中的不合格數(shù)據(jù),然后對每 個數(shù)據(jù)項中的所有測試數(shù)據(jù)求平均值,以得到新的平均測試數(shù)據(jù)集{kvk2,…,AJ,其中Ai為第i個節(jié)點的測試數(shù)據(jù)的平均值,然后計算平均測試數(shù)據(jù)集{A1; A2,…,AJ中大于連接
性測試閥值T。的測試數(shù)據(jù)個數(shù)Ca,最后根據(jù)如下公式得到?jīng)Q策結(jié)果艮/<.. = ..
/7通過本發(fā)明所構(gòu)思的以上技術(shù)方案,與現(xiàn)有技術(shù)相比,本發(fā)明具有以下的有益效果(I)靈活高效性因為采用了步驟(1-3),所以該優(yōu)化方法不僅適用于非環(huán)狀的拓撲結(jié)構(gòu),而且還可以應(yīng)用到環(huán)狀拓撲結(jié)構(gòu);由于采用了步驟(1-9)和步驟(4),系統(tǒng)會根據(jù)自身的網(wǎng)絡(luò)狀態(tài)和特性自動調(diào)整其拓撲結(jié)構(gòu),使得訂閱和發(fā)布消息的時間延遲盡可能的減少,同時,配合拓撲的改變適時地調(diào)整路由算法和更新路由表,也在一定程度上增加了信息傳輸?shù)男剩?2)自適應(yīng)性由于采用了步驟(2),使用了本拓撲優(yōu)化方法的發(fā)布訂閱系統(tǒng)可以在保證自身正常運行的同時,根據(jù)內(nèi)部代理拓撲的狀態(tài)和特點,自行優(yōu)化和調(diào)整拓撲結(jié)構(gòu),而這一過程完全不需要人工干預(yù)。只需在初始化階段之前制定好需要的參數(shù)(如信息傳輸協(xié)議、判定時間閥值、檢測時間間隔等),系統(tǒng)便會在后來的運行過程中完成所有的檢測和優(yōu)化操作。
圖I是本發(fā)明基于內(nèi)容的發(fā)布訂閱模型的拓撲結(jié)構(gòu)優(yōu)化方法的流程圖。圖2是本發(fā)明步驟(I)的細化流程圖。圖3是本發(fā)明步驟(2)的細化流程圖。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應(yīng)當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。如圖I所示,本發(fā)明基于內(nèi)容的發(fā)布訂閱模型的拓撲結(jié)構(gòu)優(yōu)化方法包括以下步驟(I)創(chuàng)建代理節(jié)點并對代理節(jié)點進行初始化操作,以得到初始拓撲結(jié)構(gòu),如圖2所示,具體包括以下子步驟 ( 1-1)對參數(shù)進行初始化,這些參數(shù)包括代理節(jié)點添加模式、代理節(jié)點個數(shù)、客戶端個數(shù)、連接性測試閥值T。、拓撲結(jié)構(gòu)所用傳輸協(xié)議、環(huán)狀拓撲結(jié)構(gòu)矩陣Tm、客戶端與拓撲連接矩陣、預(yù)定測試時間、初始化標準決策結(jié)果值和最終標準決策結(jié)果值,客戶端與拓撲連接矩陣指定了客戶端和代理節(jié)點之間的對應(yīng)關(guān)系;在本實施方式中,預(yù)定測試時間為30分鐘,初始化標準決策結(jié)果值為1-5毫秒,最終標準決策結(jié)果值為2-10毫秒;(1-2)將初始化后的參數(shù)加載到用于在初始化階段管理和協(xié)同所有初始化操作的初始化程序;( 1-3)將初始化程序加載到用于監(jiān)控和管理拓撲結(jié)構(gòu)的控制器上;( 1-4)控制器根據(jù)初始化的部分參數(shù)調(diào)用初始化程序,以初始化所有的代理節(jié)點;具體而言,根據(jù)初始化的部分參數(shù)(包括傳輸協(xié)議、連通性測試閥值T。)指定拓撲結(jié)構(gòu)中單個代理節(jié)點的公共屬性值,根據(jù)初始化程序指定單個代理節(jié)點的獨有屬性值(包括節(jié)點ID、節(jié)點所占端口號等),根據(jù)環(huán)狀拓撲結(jié)構(gòu)矩陣Tm逐個地初始化代理節(jié)點,以建立拓撲結(jié)構(gòu),同時加載路由程序到每個代理節(jié)點,以避免消息在拓撲結(jié)構(gòu)中出現(xiàn)環(huán)狀路徑,保證消息傳遞的準確性;( 1-5)初始化程序根據(jù)客戶端個數(shù)、客戶端和拓撲連接矩陣初始化所有客戶端,并將所有客戶端連接到客戶端與拓撲連接矩陣指定的代理節(jié)點;( 1-6)對拓撲結(jié)構(gòu)進行連接性測試,以得到連接性矩陣M。,該矩陣中的值表示兩個代理節(jié)點之間的連接性;( 1-7)將連接性矩陣M。傳送到初始化程序,并且初始化程序根據(jù)環(huán)狀拓撲結(jié)構(gòu)矩陣Tm、連接性測試閥值T。和連接性矩陣Mc計算決策結(jié)果Ri ;具體而言,是采用以下公式S = {(x, y) V(x;y) = I, (x, y) e TjRi =,其中(x,y) e S,Vf (x,y) > Tc
J , S其中S表示環(huán)狀拓撲結(jié)構(gòu)矩陣Tm中值為I的坐標集合,V(x,y)表示環(huán)狀拓撲結(jié)構(gòu)矩陣Tm中坐標為(X,y)的值,V’(x,y)表示連接性矩陣Mc中坐標為(X,y)的值,Ms是坐標集合S中坐標的個數(shù);(1-8)判斷決策結(jié)果Ri是否小于初始化標準決策結(jié)果值,如果是,則進入步驟(1-9),否則轉(zhuǎn)入步驟(2);(1-9)初始化程序重新生成拓撲矩陣Mn,并根據(jù)Mn重置拓撲結(jié)構(gòu),具體而言,初始化程序會去掉連接性矩陣M。中較大的值,并將環(huán)狀拓撲結(jié)構(gòu)矩陣Tm對應(yīng)的坐標的值由I變
O,再對環(huán)狀拓撲結(jié)構(gòu)矩陣Tm做微調(diào),直至新的拓撲矩陣是非環(huán)結(jié)構(gòu),便得到了拓撲矩陣Mn,然后初始化程序會根據(jù)拓撲矩陣Mn重新生成所有代理節(jié)點之間的連接;(2)對初始拓撲結(jié)構(gòu)進行定時檢測,以得到測試結(jié)果數(shù)據(jù)集;如圖3所示,具體包括以下子步驟(2-1)運行控制器中的檢測程序,并且該檢測程序向每個代理節(jié)點發(fā)送檢測發(fā)起
信號;
(2-2)每個代理節(jié)點接受到檢測發(fā)起信號后定時地向相鄰的代理節(jié)點發(fā)送檢測信號,以使兩代理節(jié)點握手;在本實施方式中,時間間隔為2秒;(2-3)代理節(jié)點生成檢測數(shù)據(jù)并存儲于信號發(fā)送節(jié)點;(2-4)當檢測數(shù)據(jù)積累到了滿足分析所需數(shù)量時,處于代理節(jié)點的檢測數(shù)據(jù)處理程序?qū)z測數(shù)據(jù)進行統(tǒng)計和分析,以得到數(shù)據(jù)集{S1; S2,…,SJ,其中η為代理節(jié)點個數(shù),
Si表示第i個節(jié)點所測得到所有數(shù)據(jù),并將數(shù)據(jù)集發(fā)送到控制器;(3)控制器分析數(shù)據(jù)集,以得到?jīng)Q策結(jié)果Rr ;控制器將得到的數(shù)據(jù)集{S1;S2,…,Sn},并利用控制器中的分析函數(shù)計算和分析數(shù)據(jù)集,以得到?jīng)Q策結(jié)果&,具體而言,首先去掉數(shù)據(jù)集里每個數(shù)據(jù)項中的不合格數(shù)據(jù)(如空數(shù)據(jù)、異常數(shù)據(jù)等),然后對每個數(shù)據(jù)項中的所有測試數(shù)據(jù)求平均值,得到新的平均測試數(shù)據(jù)集(A1,A2,…,AJ,其中Ai為第i個節(jié)點的測試數(shù)據(jù)的平均值,計算{A1;A2,…,AJ中大
于連接性測試閥值T。的測試數(shù)據(jù)個數(shù)Ca,則根據(jù)如下公式便可得到?jīng)Q策結(jié)果& Rr= — o
η(4)判斷決策結(jié)果&是否大于最終標準決策結(jié)果值,如果是,則初始化程序重新生成拓撲矩陣Μη’,并根據(jù)拓撲矩陣Μη’動態(tài)地調(diào)整拓撲結(jié)構(gòu),然后進入步驟(5),否則直接跳至步驟(6);上面所說的動態(tài)調(diào)整拓撲結(jié)構(gòu)與初始化階段的重置拓撲結(jié)構(gòu)的不同之處在于,整個調(diào)整過程并不將全部的代理節(jié)點和它們之間的連接直接重置和重新初始化,而是根據(jù)新生成的拓撲矩陣Μη’,有選擇地動態(tài)增加和刪除,以盡可能減少調(diào)整的時間;(5)測試拓撲矩陣Μη’,并對拓撲矩陣Μη’中代理節(jié)點的路由表進行更新,以適應(yīng)新的拓撲結(jié)構(gòu),并保證信息的正確傳輸;(6)重復(fù)執(zhí)行步驟(2)至(5),直到整個過程的持續(xù)時間到達預(yù)定測試時間為止。本領(lǐng)域的技術(shù)人員容易理解,以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種基于內(nèi)容的發(fā)布訂閱模型的拓撲結(jié)構(gòu)優(yōu)化方法,其特征在于,包括以下步驟 (1)創(chuàng)建代理節(jié)點并對所述代理節(jié)點進行初始化操作,以得到初始拓撲結(jié)構(gòu),具體包括以下子步驟 (1-1)對所述參數(shù)進行初始化,所述參數(shù)包括代理節(jié)點添加模式、代理節(jié)點個數(shù)、客戶端個數(shù)、連接性測試閥值T。、拓撲結(jié)構(gòu)所用傳輸協(xié)議、環(huán)狀拓撲結(jié)構(gòu)矩陣Tm、客戶端與拓撲連接矩陣、預(yù)定測試時間、初始化標準決策結(jié)果值和最終標準決策結(jié)果值,所述客戶端與所述拓撲連接矩陣指定了所述客戶端和所述代理節(jié)點之間的對應(yīng)關(guān)系; (1-2)將初始化后的參數(shù)加載到用于在初始化階段管理和協(xié)同所有初始化操作的初始化程序; (1-3)將所述初始化程序加載到用于監(jiān)控和管理拓撲結(jié)構(gòu)的控制器上; (1-4)所述控制器根據(jù)初始化的部分參數(shù)調(diào)用所述初始化程序,以初始化所有的代理節(jié)點; (1-5)所述初始化程序根據(jù)所述客戶端的個數(shù)、所述客戶端和所述拓撲連接矩陣初始化所有客戶端,并將所有客戶端連接到所述客戶端與所述拓撲連接矩陣指定的代理節(jié)點; (1-6)對所述拓撲結(jié)構(gòu)進行連接性測試,以得到連接性矩陣M。,所述連接性矩陣M。中的值表示兩個代理節(jié)點之間的連接性; (1-7)將所述連接性矩陣M。傳送到所述初始化程序,并且所述初始化程序根據(jù)所述環(huán)狀拓撲結(jié)構(gòu)矩陣Tm、所述連接性測試閥值T。和所述連接性矩陣M。計算決策結(jié)果Ri ; (1-8)判斷決策結(jié)果Ri是否小于所述初始化標準決策結(jié)果值,如果是,則進入步驟(1-9),否則轉(zhuǎn)入步驟(2); (1-9)所述初始化程序重新生成拓撲矩陣Mn,并根據(jù)所述拓撲矩陣Mn重置所述拓撲結(jié)構(gòu); (2)對所述初始拓撲結(jié)構(gòu)進行定時檢測,以得到測試結(jié)果數(shù)據(jù)集,具體包括以下子步驟 (2-1)運行所述控制器中的檢測程序,并且所述檢測程序向每個代理節(jié)點發(fā)送檢測發(fā)起信號; (2-2)每個代理節(jié)點接受到檢測發(fā)起信號后定時地向相鄰的代理節(jié)點發(fā)送檢測信號,以使兩代理節(jié)點握手; (2-3)所述代理節(jié)點生成檢測數(shù)據(jù)并存儲于信號發(fā)送節(jié)點; (2-4)當檢測數(shù)據(jù)積累到了滿足分析所需數(shù)量時,處于所述代理節(jié)點的檢測數(shù)據(jù)處理程序?qū)λ鰴z測數(shù)據(jù)進行統(tǒng)計和分析,以得到數(shù)據(jù)集{S1; S2,…,SJ,其中η為代理節(jié)點個數(shù),Si表示第i個節(jié)點所測得到所有數(shù)據(jù),并將所述數(shù)據(jù)集發(fā)送到控制器; (3)所述控制器分析所述數(shù)據(jù)集,以得到?jīng)Q策結(jié)果艮; (4)判斷決策結(jié)果&是否大于最終標準決策結(jié)果值,如果是,則所述初始化程序重新生成拓撲矩陣Mn’,并根據(jù)拓撲矩陣Mn’動態(tài)地調(diào)整拓撲結(jié)構(gòu),然后進入步驟(5),否則直接跳至步驟(6); (5)測試拓撲矩陣Mn’,并對所述拓撲矩陣Mn’中代理節(jié)點的路由表進行更新; (6)重復(fù)執(zhí)行步驟(2)至(5),直到整個過程的持續(xù)時間到達預(yù)定測試時間為止。
2.根據(jù)權(quán)利要求I所述的拓撲結(jié)構(gòu)優(yōu)化方法,其特征在于,所述預(yù)定測試時間為30分鐘,所述初始化標準決策結(jié)果值為1-5毫秒,所述最終標準決策結(jié)果值為2-10毫秒。
3.根據(jù)權(quán)利要求I所述的拓撲結(jié)構(gòu)優(yōu)化方法,其特征在于,所述步驟(1-4)具體為,根據(jù)所述傳輸協(xié)議和所述連通性測試閥值T。指定所述拓撲結(jié)構(gòu)中單個代理節(jié)點的公共屬性值,根據(jù)所述初始化程序指定單個代理節(jié)點的節(jié)點ID和節(jié)點所占端口號等,根據(jù)所述環(huán)狀拓撲結(jié)構(gòu)矩陣Tm逐個地初始化所述代理節(jié)點,以建立拓撲結(jié)構(gòu),同時加載路由程序到每個代理節(jié)點。
4.根據(jù)權(quán)利要求I所述的拓撲結(jié)構(gòu)優(yōu)化方法,其特征在于,所述步驟(1-7)具體是采用以下公式S= {(x, y) V(x;y) = I, (x, y) e Tj 式=’其中(x,y) e S,V' (x,y) > Tc 皿s 其中S表示所述環(huán)狀拓撲結(jié)構(gòu)矩陣Tm中值為I的坐標集合,v(x,y)表示所述環(huán)狀拓撲結(jié)構(gòu)矩陣Tm中坐標為(X,y)的值,V’(x,y)表示所述連接性矩陣Mc中坐標為(X,y)的值,Ms是坐標集合S中坐標的個數(shù)。
5.根據(jù)權(quán)利要求I所述的拓撲結(jié)構(gòu)優(yōu)化方法,其特征在于,所述步驟(1-9)具體為,所述初始化程序會去掉所述連接性矩陣M。中較大的值,并將所述環(huán)狀拓撲結(jié)構(gòu)矩陣^對應(yīng)的坐標的值由I變0,再對所述環(huán)狀拓撲結(jié)構(gòu)矩陣Tm做微調(diào),直至新的拓撲矩陣是非環(huán)結(jié)構(gòu),以得到所述拓撲矩陣Mn,然后所述初始化程序會根據(jù)所述拓撲矩陣Mn重新生成所有代理節(jié)點之間的連接。
6.根據(jù)權(quán)利要求I所述的拓撲結(jié)構(gòu)優(yōu)化方法,其特征在于,所述步驟(3)具體為,所述控制器首先去掉所述數(shù)據(jù)集里每個數(shù)據(jù)項中的不合格數(shù)據(jù),然后對每個數(shù)據(jù)項中的所有測試數(shù)據(jù)求平均值,以得到新的平均測試數(shù)據(jù)集“…,AJ,其中Ai為第i個節(jié)點的測試數(shù)據(jù)的平均值,然后計算所述平均測試數(shù)據(jù)集{A1;A2,…,AJ中大于所述連接性測試閥值Tc的測試數(shù)據(jù)個數(shù)Ca,最后根據(jù)如下公式得到所述決策結(jié)果& /< = , H
全文摘要
本發(fā)明公開了一種基于內(nèi)容的發(fā)布訂閱模型的拓撲結(jié)構(gòu)優(yōu)化方法,包括創(chuàng)建代理節(jié)點并對代理節(jié)點進行初始化操作,以得到初始拓撲結(jié)構(gòu),對初始拓撲結(jié)構(gòu)進行定時檢測,以得到測試結(jié)果數(shù)據(jù)集,控制器分析數(shù)據(jù)集,以得到?jīng)Q策結(jié)果Rr,判斷決策結(jié)果Rr是否大于最終標準決策結(jié)果值,如果是,則初始化程序重新生成拓撲矩陣Mn’,并根據(jù)拓撲矩陣Mn’動態(tài)地調(diào)整拓撲結(jié)構(gòu),測試拓撲矩陣Mn’,并對拓撲矩陣Mn’中代理節(jié)點的路由表進行更新。本發(fā)明能夠使發(fā)布訂閱系統(tǒng)自動檢測其拓撲內(nèi)代理的狀態(tài)并根據(jù)當前拓撲結(jié)構(gòu)和網(wǎng)絡(luò)連接狀況綜合制定拓撲策略,動態(tài)地在環(huán)狀結(jié)構(gòu)和非環(huán)狀結(jié)構(gòu)之間進行轉(zhuǎn)換,從而達到充分利用不同結(jié)構(gòu)的優(yōu)點,增加容錯性以及減少信息分發(fā)延遲的目的。
文檔編號H04L29/08GK102917016SQ201210335400
公開日2013年2月6日 申請日期2012年9月12日 優(yōu)先權(quán)日2012年9月12日
發(fā)明者金海 , 謝夏, 王宏光 申請人:華中科技大學(xué)