用于處理消息與訂閱信息方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及信息處理。特別地,本發(fā)明涉及處理消息與訂閱信息方法和系統(tǒng)。更 特別地,本發(fā)明涉及在物聯(lián)網(wǎng)中處理消息與訂閱信息方法和系統(tǒng)。
【背景技術(shù)】
[0002] 隨著信息技術(shù)的發(fā)展,網(wǎng)絡(luò)技術(shù)也不斷發(fā)展。當(dāng)前,存在著多種類型的網(wǎng)絡(luò),例如 因特網(wǎng)、物聯(lián)網(wǎng)、車聯(lián)網(wǎng)、等等。物聯(lián)網(wǎng)是新一代信息技術(shù)的重要組成部分,特指物物相連的 網(wǎng)絡(luò)。具體地,物聯(lián)網(wǎng)是指通過各種信息傳感設(shè)備,如傳感器、射頻識別(RFID)技術(shù)、全球 定位系統(tǒng)、紅外感應(yīng)器、激光掃描器、氣體感應(yīng)器等各種裝置與技術(shù),實時采集任何需要監(jiān) 控、連接、互動的物體或過程,采集其聲、光、熱、電、力學(xué)、化學(xué)、生物、位置等各種需要的信 息,與互聯(lián)網(wǎng)結(jié)合形成的一個巨大網(wǎng)絡(luò)。物聯(lián)網(wǎng)目的是實現(xiàn)物與物、物與人、所有的物品與 網(wǎng)絡(luò)的連接,W方便識別、管理和控制。
[0003] 圖1示出了物聯(lián)網(wǎng)的架構(gòu)示意圖,其中物聯(lián)網(wǎng)包括應(yīng)用、應(yīng)用基礎(chǔ)架構(gòu) (Application Infrast;ruc1:ure)、廣域網(wǎng)(Wide Area 化twork)、接入網(wǎng)絡(luò)(Access 化twork)和傳感網(wǎng)絡(luò)(Sensor Network),傳感網(wǎng)絡(luò)由多個傳感器設(shè)備構(gòu)成,傳感器設(shè)備 從外界收集數(shù)據(jù)信息,通過廣域網(wǎng)傳輸?shù)綉?yīng)用基礎(chǔ)架構(gòu)。應(yīng)用基礎(chǔ)架構(gòu)包括信息數(shù)據(jù) 庫和應(yīng)用網(wǎng)關(guān)(Application gateway)。信息數(shù)據(jù)庫用于存儲所獲得的信息,應(yīng)用網(wǎng)關(guān) (application gateway)用于數(shù)據(jù)的過濾和分發(fā)(發(fā)布(publish))。應(yīng)用可W向應(yīng)用網(wǎng)關(guān) 發(fā)出請求W獲取其需要的信息,即訂閱(subscribe)。送就是所謂的發(fā)布/訂閱模式(pub/ sub模式)。
[0004] 目前的發(fā)布/訂閱主要包括基于主題(Topic)的發(fā)布/訂閱W及基于內(nèi)容的發(fā)布 /訂閱。在基于主題的發(fā)布/訂閱中,消息被發(fā)布到主題或命名通道上。訂閱者將收到其訂 閱的主題上的所有消息,并且所有訂閱同一主題的訂閱者將接收到同樣的消息。在基于內(nèi) 容的系統(tǒng)中,訂閱者定義訂閱信息,即其感興趣的消息的條件(規(guī)則),只有當(dāng)消息的屬性 或內(nèi)容滿足訂閱者定義的條件(規(guī)則)時,消息才會被投遞到該訂閱者。由于基于內(nèi)容的 發(fā)布/訂閱比基于主題的更加靈活,因此基于內(nèi)容的發(fā)布/訂閱被廣泛地應(yīng)用于物聯(lián)網(wǎng)領(lǐng) 域。
[0005] 由于物聯(lián)網(wǎng)中的數(shù)據(jù)量非常大,而且每一條數(shù)據(jù)都要進(jìn)行規(guī)則集合的匹配,送對 應(yīng)用網(wǎng)關(guān)中的訂閱信息及消息的處理提出了很高的要求。此外,本領(lǐng)域技術(shù)人員能夠理解, 對于其它類型的網(wǎng)絡(luò)(例如因特網(wǎng)等),也同樣存在著發(fā)布/訂閱機(jī)制。由于網(wǎng)絡(luò)中的數(shù)據(jù) 量越來越大,對于在送些網(wǎng)絡(luò)中的訂閱信息和消息的處理也提出了越來越高的要求。
[0006] 在基于內(nèi)容的發(fā)布/訂閱中,訂閱信息中的規(guī)則可W分解成謂詞的組合。所謂謂 詞即為規(guī)則的最小可分組成單元。例如,可W定義如下的訂閱信息:
[0007] (Pressure〉30)&(Status = "st 油 le")
[0008] 其中訂閱信息中的規(guī)則是由兩條謂詞構(gòu)成的謂詞集合,其中兩條謂詞分別是:
[0009] 謂詞1 :Pressure〉3〇 (表不壓力大于3〇);
[0010] 謂詞2:Status = "St油le"(表示狀態(tài)為"穩(wěn)定的")。
[0011] 而滿足W上兩條謂詞的所有消息會被分配到特定的消息隊列中。
[0012] 例如,對于物聯(lián)網(wǎng),為了處理消息與訂閱信息,在現(xiàn)有技術(shù)中提出了一種稱為 "測試網(wǎng)"的方法(例如,參見 G. Li, S.Hou, and H.A. Jacobsen, A unified approach to routing, covering and merging in publish/subscribe systems based on modi円ed bin曰ry decision di曰grams. Proceedings of the 25th IEEE Intern曰tion曰1 Conference on Distributed Computing Systems(ICSCS'0f5))。圖 2不出了現(xiàn)有技術(shù)的。測試網(wǎng)"方 法的基本原理。在該方法中,將謂詞W及訂閱信息編譯成測試網(wǎng),即樹結(jié)構(gòu)。樹結(jié)構(gòu)中的內(nèi) 部節(jié)點(例如,testi、tests、tests)存儲要被測試的謂詞,而樹結(jié)構(gòu)的葉節(jié)點(例如subi、 sub2)表示訂閱信息。在測試網(wǎng)方法中,每個訂閱信息通過一個或多個葉節(jié)點來表示,并且 對應(yīng)于在其樹結(jié)構(gòu)中該葉節(jié)點的分支從根節(jié)點起的所有謂詞信息。對于物聯(lián)網(wǎng)中的消息, 從樹結(jié)構(gòu)的根部起開始評估,并且遍歷所有內(nèi)部節(jié)點,W找到匹配的內(nèi)部節(jié)點,從而獲得匹 配的訂閱信息。
[0013] 然而,該方法會消耗大量的存儲空間,并且在插入新的訂閱信息或更新訂閱信息 時會非常復(fù)雜,并且花費大量的成本,該方法并不適于訂閱信息快速變化的情況。然而,在 物聯(lián)網(wǎng)領(lǐng)域,應(yīng)用或移動用戶會動態(tài)地提交大量不同的訂閱信息,因而該方法很難適應(yīng)物 聯(lián)網(wǎng)技術(shù)的發(fā)展。
[0014] 此外,例如,對于物聯(lián)網(wǎng),在現(xiàn)有技術(shù)中還提出了一種稱為"兩階段"的方法 (例女口,參見 Yanlei Diao ;Fischer, P. ;Franklin, M. J. ;To, R. ;YFiIter:Efficient and sc曰lable 円Itering of xml documents, Proceedings. 18th International Conference on Data化gineering,2002.)。圖3示出了現(xiàn)有技術(shù)的"兩階段"方法的基本原理。在該方法 中,首先將來自用戶的訂閱信息分解成謂詞集合,去除重復(fù)的謂詞。然后,在第一階段,對于 每一個輸入的消息,基于謂詞集合中的每一個謂詞順序地對消息進(jìn)行評估,生成該消息的 謂詞結(jié)果向量。謂詞結(jié)果向量中的每一位分別對應(yīng)于謂詞集合中的相應(yīng)的一個謂詞。如果 所述消息命中謂詞(即滿足該謂詞),則在該謂詞結(jié)果向量中的對應(yīng)位的值取一,反之則取 零。接下來,在第二階段,針對所述謂詞結(jié)果向量逐一地檢查每個訂閱信息,即遍歷所有的 訂閱信息,W獲得匹配的訂閱信息列表。在遍歷過程中,對于一個訂閱信息,如果該訂閱信 息中的所有謂詞在消息的謂詞結(jié)果向量中的對應(yīng)位的值均為1,則表示消息滿足該訂閱信 息中的所有謂詞,即消息與該訂閱信息匹配。
[0015] "兩階段"方法能夠減少謂詞評估的時間,并共享謂詞評估的結(jié)果。然而,如果存在 大量的基于內(nèi)容的訂閱信息,由于需要評估的訂閱信息的數(shù)量大,系統(tǒng)的性能W及吞吐量 將顯著地下降。隨著系統(tǒng)吞吐量的顯著下降,將出現(xiàn)消息隊列堵塞、消息隊列堆積等現(xiàn)象, 物聯(lián)網(wǎng)中的傳感器無法根據(jù)其需要快速地發(fā)送數(shù)據(jù)。
[0016] 因此,需要有效地處理消息與訂閱信息方法和系統(tǒng)(例如,在物聯(lián)網(wǎng)中)W解決現(xiàn) 有技術(shù)中的上述問題。
【發(fā)明內(nèi)容】
[0017] 本發(fā)明的發(fā)明人提出了解決現(xiàn)有技術(shù)中的至少一個問題的一種新技術(shù)。
[0018] 根據(jù)本發(fā)明的一個方面,提供一種用于處理訂閱信息的方法,包括;獲取一條或多 條第一訂閱信息;將所述一條或多條第一訂閱信息解析為謂詞的第一集合,其中在所述第 一集合中的謂詞不重復(fù);基于所述第一集合中的謂詞命中消息的可能性,針對所述第一集 合中的謂詞W及所述第一訂閱信息構(gòu)建一個或多個樹結(jié)構(gòu),其中包括根節(jié)點在內(nèi)的所述樹 結(jié)構(gòu)中的內(nèi)部節(jié)點代表謂詞,所述樹結(jié)構(gòu)的葉節(jié)點代表所述訂閱信息,在所述樹結(jié)構(gòu)中下 一級內(nèi)部節(jié)點的謂詞命中消息的可能性高于上一級內(nèi)部節(jié)點的可能性,每個第一訂閱信息 對應(yīng)且僅對應(yīng)于一個樹結(jié)構(gòu)中的一個葉節(jié)點,每個第一訂閱信息對應(yīng)于在其樹結(jié)構(gòu)中該葉 節(jié)點的分支從根節(jié)點起的所有謂詞信息;W及存儲所述一個或多個樹結(jié)構(gòu)W用于與消息進(jìn) 行匹配。
[0019] 根據(jù)本發(fā)明的另一方面,提供一種將消息與訂閱信息匹配的方法,包括:獲取與訂 閱信息相關(guān)聯(lián)的樹結(jié)構(gòu),其中所述訂閱信息被解析為謂詞集合,在所述謂詞集合中的謂詞 不重復(fù),所述樹結(jié)構(gòu)是基于謂詞集合中的謂詞命中消息的可能性針對所述謂詞集合中的謂 詞W及所述訂閱信息來構(gòu)建的,包括根節(jié)點在內(nèi)的所述樹結(jié)構(gòu)中的內(nèi)部節(jié)點代表謂詞,所 述樹結(jié)構(gòu)的葉節(jié)點代表所述訂閱信息,在所述樹結(jié)構(gòu)中下一級內(nèi)部節(jié)點的謂詞命中消息的 可能性高于上一級內(nèi)部節(jié)點的可能性,每個訂閱信息對應(yīng)且僅對應(yīng)于一個樹結(jié)構(gòu)中的一個 葉節(jié)點,每個訂閱信息對應(yīng)于在其樹結(jié)構(gòu)中該葉節(jié)點的分支從根節(jié)點起的所有謂詞信息; 獲取消息;基于所述謂詞集合評估所述消息,W獲得謂詞結(jié)果向量,所述謂詞結(jié)果向量中的 每一元素分別對應(yīng)于謂詞集合中的相應(yīng)的一個謂詞;W及對于所述謂詞結(jié)果向量中的每一 元素遍歷樹結(jié)構(gòu),W獲得與所述消息匹配的訂閱信息。
[0020] 根據(jù)本發(fā)明的又一方面,提供一種處理消息與訂閱信息的方法,包括:獲取消息; 動態(tài)地選擇訂閱信息優(yōu)先模式W及謂詞優(yōu)先模式,W獲得與所述消息匹配的訂閱信息,其 中在所述訂閱信息優(yōu)先模式中:獲取訂閱信息;將所述訂閱信息解析為謂詞集合,其中在 所述集合中的謂詞不重復(fù);基于所生成的謂詞集合評估所述消息,W獲得謂詞結(jié)果向量,所 述謂詞結(jié)果向量中的每一元素分別對應(yīng)于謂詞集合中的相應(yīng)的一個謂詞;W及針對所述謂 詞結(jié)果向量逐一地檢查每個訂閱信息,W獲得與所述消息匹配的訂閱信息;W及在所述謂 詞優(yōu)先模式中,利用上述方法將消息與訂閱信息匹配。根據(jù)本發(fā)明的又一方面,提供一種 用于處理訂閱信息的系統(tǒng),包括:訂閱信息獲取單元,被配置為獲取一條或多條第一訂閱信 息;解析單元,被配置為將所述一條或多條第一訂閱信息解析為謂詞的第一集合,其中在 所述第一集合中的謂詞不重復(fù);樹結(jié)構(gòu)創(chuàng)建單元,被配置為基于所述第一集合中的謂詞命 中消息的可能性,針對所述第一集合中的謂詞W及所述第一訂閱信息構(gòu)建一個或多個樹結(jié) 構(gòu),其中包括根節(jié)點在內(nèi)的所述樹結(jié)構(gòu)中的內(nèi)部節(jié)點代表謂詞,所述樹結(jié)構(gòu)的葉節(jié)點代表 所述訂閱信息,在所述樹結(jié)構(gòu)中下一級內(nèi)部節(jié)點的謂詞命中可能性高于上一級內(nèi)部節(jié)點的 可能性,每個第一訂閱信息對應(yīng)且僅對應(yīng)于一個樹結(jié)構(gòu)中的一個葉節(jié)點,每個第一訂閱信 息對應(yīng)于在其樹結(jié)構(gòu)中該葉節(jié)點的分支從根節(jié)點起的所有謂詞信息;W及存儲單元,被配 置為存儲所述一個或多個樹結(jié)構(gòu)W用于與消息進(jìn)行匹配。
[0021] 根據(jù)本發(fā)明的又一方面,提供一種用于將消息與訂閱信息匹配的系統(tǒng),包括:樹結(jié) 構(gòu)獲取單元,被配置為獲取與訂閱信息相關(guān)聯(lián)的樹結(jié)構(gòu),其中所述訂閱信息被解析為謂詞 集合,在