[發明專利]用于發布訂閱系統的實現歷史事件訂閱的緩存方法有效
| 申請號: | 201410075650.2 | 申請日: | 2014-03-04 |
| 公開(公告)號: | CN103888517B | 公開(公告)日: | 2017-01-18 |
| 發明(設計)人: | 曹健;于潤勝;徐錢元;許文星 | 申請(專利權)人: | 上海交通大學 |
| 主分類號: | H04L29/08 | 分類號: | H04L29/08 |
| 代理公司: | 上海漢聲知識產權代理有限公司31236 | 代理人: | 胡晶 |
| 地址: | 200240 *** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 用于 發布 訂閱 系統 實現 歷史事件 緩存 方法 | ||
技術領域
本發明涉及發布訂閱系統技術,具體涉及一種實現歷史事件訂閱的緩存方法。
背景技術
發布訂閱系統包含一個分布式的通信網絡,即事件代理網絡,和一系列相互通信的端點,即訂閱者和發布者。訂閱者和發布者之間通過事件代理網絡互聯,采用一種異步的發布-訂閱方式來完成數據交換。訂閱者通過聲明一個過濾條件表達式提交訂閱,當發布者發布了一條符合其訂閱條件的事件,該事件即經由代理網絡路由到訂閱者。在時間上,內容的訂閱與發布是異步的,而在空間上,訂閱者與發布者也不必關心對方位于何處,因此發布訂閱系統實現了通信雙方在空間、時間和控制流上完全解耦。
在傳統的發布訂閱系統中,事件通知能夠確保最終到達每個感興趣的訂閱者,但前提是每個訂閱者都處于在線狀態且各自的訂閱被整個系統所知。這一前提條件對于動態網絡環境來說則是一大限制,因為客戶端往往會頻繁地加入或離開網絡,新加入的訂閱者可能會請求一個在其加入網絡之前所發布的事件。在傳統的發布訂閱系統中,這種請求是得不到響應的,因而如何利用事件緩存機制以使新用戶能夠獲知歷史事件就成為了發布訂閱系統需要解決的一大問題。
發明內容
為了克服現有技術中存在的訂閱者無法訂閱歷史事件的缺陷,本發明提供一種實現歷史事件訂閱的緩存方法。本發明具體的技術方案如下:
一種用于發布訂閱系統的實現歷史事件訂閱的緩存方法,包括如下步驟:
路由表擴充步驟:在各代理節點的路由表中增設緩存路由信息,所述緩存路由信息用于提供能夠定位到緩存點的路由信息;
事件處理步驟:當某一代理節點發出一事件時,通過哈希函數進行計算,得到一緩存點參考值;為所述事件附加一消息頭,所述消息頭中記錄了緩存點信息以及訂閱路徑信息;所述緩存點信息中包括所述緩存點參考值;
事件發布步驟:根據所述消息頭中記錄的訂閱路徑信息,將所述事件向對應的訂閱節點進行發布;對于發布路徑中的每個代理節點,根據所述緩存點參考值判斷當前代理節點是否作為緩存點并進行緩存,同時,當前代理節點同步更新對應于所述事件的緩存路由信息;
緩存訂閱步驟:某一代理節點發出一緩存請求,所述緩存請求中包含訂閱條件;將所述訂閱條件與當前代理節點的路由表中預存的過濾條件進行匹配,確定緩存事件;所述緩存事件是指,與訂閱條件匹配成功的過濾條件對應的事件;
緩存獲取步驟:若當前代理節點的路由表中包含所述緩存事件對應的緩存路由信息,則直接根據該緩存路由信息找到所述緩存事件對應的緩存點,
將緩存請求轉發到緩存點,獲取緩存;若當前代理節點的路由表中不包含所述緩存事件對應的緩存路由信息,則根據所述緩存事件對應的訂閱路由信息,將緩存請求發送到下一個代理節點,回轉執行緩存獲取步驟。
作為優化方案,所述哈希函數如公式(1)所示:
該哈希函數的定義域為事件e的取值范圍(a,b),值域為[0,MAX_HOP];其中MAX_HOP是事件分發路徑上的代理節點到其根節點的最大距離。
計算得到的緩存點參考值為一整數值。
作為優化方案,根據所述緩存點參考值判斷當前代理節點是否作為緩存點并進行緩存具體為:
當前代理節點收到事件后先將所述緩存點參考值t減1,然后根據緩存點參考值進行判斷,若t=0,則將當前代理節點做為緩存點。
作為優化方案,所述路由表擴充步驟具體為:
在各代理節點的路由表中增加cache_nexthops字段,使得所述路由表的結構為:
<filter|sub_nexthops|cache_nexthops>
其中,filter是指過濾條件,sub_nexthops記錄了與filter匹配成功的事件向訂閱節點方向轉發的下一跳代理,cache_nexthops記錄了與filter匹配成功的緩存請求向緩存點方向轉發的下一跳代理。
作為優化方案,所述事件發布步驟中,對于事件在發布過程中的當前代理節點,其緩存路由信息的更新方法具體為:
若當前代理節點在緩存點的后方,則將緩存路由信息中的下一跳設置為前驅的代理節點;
若當前代理節點正好為緩存點,則將緩存路由信息中的下一跳設置為當前代理節點自身;
若當前代理節點在緩存點的前方,則將緩存路由信息中的下一跳設置為后繼的代理節點。
作為優化方案,所述緩存獲取步驟中,將緩存請求轉發到緩存點獲取緩存的方法具體為:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于上海交通大學,未經上海交通大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410075650.2/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種氣密閥
- 下一篇:一種單頻多路徑效應探測與緩解方法





