基于內容的WInternet管道通信協議路由算法
【專利摘要】本發明涉及物聯網通信協議的路由算法。一種基于內容的WInternet管道通信協議路由算法,其特征在于,根據消息內容和訂閱條件之間的覆蓋關系,依托消息分發樹來路由分發消息,并且能夠支持節點的動態加入和退出,以及失效節點的處理。方法為:1)建立一種多級索引結構的過濾器模型,為判斷覆蓋關系提供理論基礎。2)根據訂閱條件之間的覆蓋關系,建立訂閱樹。3)根據訂閱樹和路由表,構建虛擬的消息分發樹。4)消息沿著這棵消息分發樹自上而下分發。5)當節點加入和退出WInternet網絡,以及處理失效節點時,調整消息分發樹,重構路由。作為整個WInternet的通用傳輸協議,本發明使該協議對數據傳輸具有實時性,隱私性,高效性,以及實現整個WInternet網絡的負載均衡。
【專利說明】基于內容的Wlnternet管道通信協議路由算法
【技術領域】
[0001 ] 本發明涉及物聯網通信協議的路由算法。
【背景技術】
[0002]物聯網技術出現后,在各個領域也得到了高度的重視,許多的物聯網示范應用被提出和建設,也取得了一定的成果。但同時,我們也可以看到當前物聯網的發展有著和互聯網前的電子網絡類似的特點,特別是“垂直集成”和“專用協議”。當前許多物聯網系統是為解決某一領域或區域的特定需求搭建,相互之間獨立。“物一機”相連的“物網”發展成為相連眾多“物網”的“開放大網”應是物聯網的發展趨勢,基于這個趨勢和需求,本申請發明人們已提出了一個雙層網絡架構,命名為WInternet。WInternet的設計以水平互聯,通用協議,雙層結構為基本思路,以Internet為底層,提供支撐通信服務,在Internet上構建物聯服務層面向各類物聯網應用提供通用的通信、計算和安全保障服務。
[0003]WInternet的協議主要包括3個部分:管道通信協議、網件計算協議、命名及搜索協議。管道通信協議運行于互聯網的TCP/IP協議棧之上,依托TCP/IP提供網絡通信功能。當前的管道通信協議未提供路由轉發機制,可能會導致不必要的消息過濾,引擎負載不均衡等問題。作為整個WInternet的通用傳輸協議,該協議對數據傳輸實時性,隱私性,高效性,以及實現整個WInternet網絡的負載均衡等方面提出了很高的要求。因此一個高效的管道通信協議必須要解決以上問題。
【發明內容】
[0004]本發明所要解決的技術問題是:針對WInternet標準數據模型,建立一種過濾器模型來判斷過濾器之間的覆蓋關系。根據InGate的訂閱條件之間的覆蓋關系,構建消息分發樹。考慮WInternet網絡的動態變化,路由算法要解決引擎節點的動態加入和退出時的分發樹的重構問題,并且要處理樹形網絡中的失效節點。
[0005]為解決以上技術問題,本發明采用如下的技術方案:
[0006]一種基于內容的WInternet管道通信協議路由算法,其特征在于根據消息內容和訂閱條件之間的覆蓋關系,依托消息分發樹來路由分發消息,并且能夠支持節點的動態加入和退出,以及失效節點的處理,該方法包括如下步驟:
[0007](I)針對WInternet管道的標準數據格式,建立一種基于多級索引結構的過濾器模型。該模型分為Object, Measurement, Operator, Parameter四級索引,它為判斷過濾器之間的覆蓋關系提供了理論基礎。
[0008](2)將復合過濾器分解為屬性過濾器,利用多級索引結構模型來判斷屬性過濾器之間的關系,進而判斷復合過濾器之間的關系。在該模型中,通過比較第四級索引塊中的值,來判斷兩個屬性過濾器之間的關系。
[0009](3)將訂閱同一個OutGate的InGate協同起來,根據訂閱條件之間的覆蓋關系,為每個OutGate建立一棵以過濾器關鍵字為節點的訂閱樹和一張路由表。訂閱樹的父節點代表的過濾器覆蓋其孩子節點所代表的過濾器。路由表的一條路由表項對應一個過濾器,其下一跳是通過該過濾器后的消息到達的引擎節點的集合。
[0010](4)根據訂閱樹和路由表,為每個OutGate建立一棵虛擬的消息分發樹。分發樹以引擎為節點,每條路徑都有一個過濾器,消息沿著這個分發樹,自上而下分發,只有內容與過濾器匹配的消息才能到達其后續節點,從而減少不必要的消息過濾和轉發。
[0011](5)考慮WInternet網絡的動態變化,當新的引擎節點加入或退出分發樹,以及分發樹的某個節點失效時,我們要為受影響的節點尋找父節點,以加入到樹形網絡中,并且重構路由。
[0012]本發明的創新點體現在:
[0013]I)為判斷過濾器之間的覆蓋關系,建立了一種基于多級索引結構的過濾器模型。
[0014]2)根據訂閱條件之間的覆蓋關系,構建訂閱樹和路由表,進而為WInternet網絡建立虛擬的消息分發樹。
[0015]3)考慮WInternet網絡的動態變化,該路由算法支持引擎節點的動態加入和退出,并且支持失效節點的處理。
[0016]作為整個WInternet的通用傳輸協議,本發明使該協議對數據傳輸具有實時性,隱私性,高效性,以及實現整個WInternet網絡的負載均衡。
【專利附圖】
【附圖說明】
[0017]圖1是WInternet節點、引擎、網件、管道及閥口關系示意圖。
[0018]圖2是基于多級索引結構的過濾器模型。
[0019]圖3是一棵訂閱樹的例子。
[0020]圖4是消息分發樹抽象模型。
[0021]圖5節點加入WInternet網絡時的幾種情況討論示意圖。
【具體實施方式】
[0022]以下結合附圖對本發明技術方案作進一步說明。
[0023]原理:本發明提出一種基于內容的WInternet管道通信協議路由算法,它根據訂閱條件之間的覆蓋關系,建立訂閱樹和路由表,進而構建虛擬的消息分發樹。考慮WInternet網絡的動態變化,它根據物理層網絡的連通狀況,在保證準確路由的前提下,支持引擎節點的動態加入和退出,以及失效節點的處理。
[0024]圖1是WInternet節點、引擎、網件、管道及閥口關系示意圖。WInternet是一個由節點(Node)組成的網絡,一個節點上運行著一個或多個WInternet引擎(WInternetEngine),在引擎上可以注冊多個網件(Netlet),網件有多個輸入/輸出閥口(InGate/OutGate)。管道(Pipe)是連接一個網件的輸出閥口和另外一個網件輸入閥口的單向邏輯通道。
[0025]圖2是基于多級索引結構的過濾器模型圖。在WInternet中,消息的過濾是基于XML實現的。假設有三個過濾器F1,F2,F3,它們對應的XML編碼如圖2所示。根據XML格式文件的特點,將這三個過濾器表示成一種多級索引結構。第一級索引是Object (obj),第二級是Measurement (mea),分別對應WInternet標準數據模型中的Object和Measurement。第三級是Operator,即過濾器中的操作符,第四級索引表示參數值。每個參數值指向若干過濾器,指向同一個過濾器的索引經過AND運算后,就可以表示該過濾器。判斷兩個過濾器之間的關系,只需比較第四級索引塊中值。例如,要判斷Fl和F2之間的關系,只需比較65和68即可,因為它們的symbol值相等。
[0026]圖2中的三個過濾器均是復合過濾器(依賴多個屬性的過濾器)。每個復合過濾器都可以分解為若干個屬性過濾器(僅依賴一個屬性的過濾器),每個屬性過濾器分別與另外一個復合過濾器的對應的屬性過濾器比較,如果它們都對應存在覆蓋關系,則兩個復合過濾器也存在覆蓋關系。
[0027]圖3是訂閱樹的一個示例。InGate發來的每個訂閱條件,可以被認為是一個過濾器。根據過濾器之間的覆蓋關系,我們為每個OutGate構建了一棵以過濾器關鍵字為節點的訂閱樹,樹的根節點是OutGate ID,父節點(除了根節點)所代表的過濾器覆蓋其孩子節點所代表的過濾器。圖中右邊的表格是訂閱樹中過濾器的多級索引結構信息。
[0028]圖4是路由算法中消息分發樹的抽象模型。消息分發樹是根據OutGate對應的訂閱樹和路由表虛擬構建的,實際并不存在。只有內容與過濾器條件匹配的消息才能到達其后續節點,從而避免不必要的消息過濾及轉發。在這棵分發樹中,每個節點代表WInternet網絡中的引擎,節點分支上的過濾器是由該節點上的引擎來維護的,從而將以前全部在消息源端進行的消息過濾工作分散到各個參與節點,有效均衡了節點負載。
[0029]圖5是WInternet節點加入網絡時,重構消息分發樹的幾種情況。如圖5(a)所示,新加入的節點4對應的過濾器與訂閱樹中的0.0恒等,而且節點4與其可能的父節點O也能連通,那么就將該節點添加到對應的過濾器(0.0)的下一跳集合中。如圖5(b)所示,新加入的節點3的插入位置是葉子節點。首先向上探測節點集合{1,2},發送HELLO消息到節點I和2,先收到哪個節點的應答消息(HA),就選擇那個節點作為節點3的父節點。如果都無法連通,則繼續向上探測節點0,用這樣一種逐級尋父的策略為新節點尋找父節點。圖5(c)與(a)類似,節點5的過濾器與0.1恒等,但是5與I無法連通,那么就在I的兄弟節點{2,3}中尋找父節點,如果還找不到,就再探測節點O。圖5(d)中,新加入的節點4的插入位置是非葉子節點,導致原來的樹形網絡被分割,首先用同樣的策略為4尋找父節點。因為節點3被分割,需要為其從節點4開始重新尋找父節點。與加入網路類似,在節點退出網絡,以及處理失效節點時,主要過程也是為受影響的節點尋找父節點。用這樣的方法,該路由算法可以支持節點的動態加入和退出,并且支持對失效節點的處理。
[0030]綜上所述,整個實現流程概括為:
[0031]I)建立一種多級索引結構的過濾器模型,為判斷覆蓋關系提供理論基礎。
[0032]2)根據訂閱條件之間的覆蓋關系,建立訂閱樹。
[0033]3)根據訂閱樹和路由表,構建虛擬的消息分發樹。
[0034]4)消息沿著這棵消息分發樹自上而下分發。
[0035]5)當節點加入和退出WInternet網絡,以及處理失效節點時,調整消息分發樹,重構路由。
【權利要求】
1.一種基于內容的WInternet管道通信協議路由算法,其特征在于,根據消息內容和訂閱條件之間的覆蓋關系,依托消息分發樹來路由分發消息,并且能夠支持節點的動態加入和退出,以及失效節點的處理,該方法包括如下步驟: (1)針對WInternet管道的標準數據格式,建立一種基于多級索引結構的過濾器模型;該模型分為Object, Measurement, Operator, Parameter四級索引,為判斷過濾器之間的覆蓋關系提供了理論基礎; (2)將復合過濾器分解為屬性過濾器,利用多級索引結構模型來判斷屬性過濾器之間的關系,進而判斷復合過濾器之間的關系;在該模型中,通過比較第四級索引塊中的值,來判斷兩個屬性過濾器之間的關系; (3)將訂閱同一個OutGate的InGate協同起來,根據訂閱條件之間的覆蓋關系,為每個OutGate建立一棵以過濾器關鍵字為節點的訂閱樹和一張路由表;訂閱樹的父節點代表的過濾器覆蓋其孩子節點所代表的過濾器;路由表的一條路由表項對應一個過濾器,其下一跳是通過該過濾器后的消息到達的引擎節點的集合; (4)根據訂閱樹和路由表,為每個OutGate建立一棵虛擬的消息分發樹;分發樹以引擎為節點,每條路徑都有一個過濾器,消息沿著這個分發樹,自上而下分發,只有內容與過濾器匹配的消息才能到達其后續節點,從而減少不必要的消息過濾和轉發; (5)考慮WInternet網絡的動態變化,當新的引擎節點加入或退出分發樹,以及分發樹的某個節點失效時,要為受影響的節點尋找父節點,以加入到樹形網絡中,并且重構路由。
【文檔編號】H04L12/703GK104283792SQ201410489962
【公開日】2015年1月14日 申請日期:2014年9月23日 優先權日:2014年9月23日
【發明者】蔣昌俊, 閆春鋼, 陳閎中, 葉晨, 支海邦 申請人:同濟大學