999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

發布/訂閱中間件中基于過濾器的信息選擇機制

2018-12-08 07:01:14谷曉鵬張凡石
網絡安全技術與應用 2018年12期
關鍵詞:規則信息系統

◆谷曉鵬 張凡石 王 葉

?

發布/訂閱中間件中基于過濾器的信息選擇機制

◆谷曉鵬1張凡石2王 葉1

(1.海軍指揮所 北京 100841;2.中國電科集團28所 江蘇 210007)

發布訂閱中間件因其松耦合的特性得到廣泛的關注和應用。在某些應用場景中訂閱方僅對所訂閱主題中的部分信息感興趣,因此需要提供信息選擇機制以滿足這種應用需求。本文提出了一種發布訂閱中間件中基于過濾器的信息選擇機制,并在發布訂閱中間件原型系統中實現了該機制。該機制遵循OMG DDS規范,采用Flex&Bison工具生成編譯器,將遵循類SQL語法的訂閱表達式解析生成過濾語法樹,通過對接收數據的解析和對過濾語法樹的遍歷作出是否過濾接收數據的決定。對原型系統的測試驗證了該信息選擇機制的正確性和合理性。

信息過濾;發布訂閱中間件;數據分發服務;過濾器

0 引言

發布訂閱系統是一種以發布訂閱機制實現參與者之間交互的分布式系統,該系統參與者之間松耦合的特性正使其獲得越來越多的關注[1]。在發布訂閱機制中,訂閱者專注于獲取信息,發布者專注于發布信息,系統通過一定的方法完成相互的匹配,從而進行信息傳輸。這樣的處理方式使得發布者和訂閱者在時間、空間、同步方面實現了解耦,大大增加相關應用程序的靈活性和可擴展性[2,3]。OMG組織制定了實時系統數據分發服務規范(Data Distribution Service for Real-time Systems, DDS),已成為信息分發發布訂閱系統的工業標準, RTI DDS等業界領先的發布訂閱系統均遵循該規范[4,5,6,7]。

在基于主題的發布訂閱系統的實際應用中,訂閱者往往只對該主題下的部分信息感興趣,如何使得這些訂閱者更好,更快地“捕捉到”自己感興趣的信息就成為了發布訂閱中間件系統提高服務質量的一大重點。例如:一個股票信息集成管理系統中發布和訂閱的信息為股票名稱及其價格,而訂閱者往往只關心某幾只股票的情況。如果不加過濾地將全部幾千只股票的信息全部提交給用戶,那么無關信息將占用用戶大量的處理時間,因此發布訂閱中間件需要向用戶提供信息過濾的功能。OMG DDS規范中提出了ContentFilteredTopic機制以提供該功能[2],目前主要的發布訂閱中間件產品中均實現了這種功能[4,5]。本文在現有信息集成管理軟件(基于OMG DDS規范的發布訂閱原型系統)的基礎上,遵循OMG DDS規范中ContentFilteredTopic機制的相關接口,通過應用Flex&Bison等工具構建過濾語法樹,并與信息發布訂閱處理流程相集成實現了信息過濾功能。

1 過濾規則語法定義

過濾規則也稱為訂閱表達式,用于描述對信息相關數據的要求,表示用戶的“興趣”。OMG DDS規范中采用類SQL語法作為其語法定義。類SQL語法具體是指SQL語句中where從句部分的語法,該從句用于描述所查詢數據應滿足的條件[2,6]。

該語法所支持的條件表達式有:

1.簡單比較運算

用于比較主題信息中某個字段的值是否等于(不等于、大于、小于)某個設定值,或者落在某個設定的取值區間,例如:key=10,key>20,key between 10 and 20等。

2.復雜邏輯運算

對簡單比較運算表達式的與、或、非操作。例如:key<10 and key>20。

理論上該語法可以描述足夠復雜的訂閱表達式。

除OMG DDS規范定義的語法規則外,本文還加入了支持字符串型數據模糊過濾的strlike運算符,該運算符根據編輯距離的概念(即將一個字符串修改為另一個字符串所需改動的字符個數),判斷兩個字符串是否相似。

2 基于過濾器的信息選擇機制

2.1 信息選擇機制的框架

圖1 信息選擇機制框架圖

圖1所示為信息選擇機制的框架和處理流程,其核心部分為過濾規則編譯器和過濾器。

過濾規則編譯器由通用的編譯器生成工具Flex&Bison離線生成。以過濾規則語法及其對應的動作代碼為輸入,生成過濾規則編譯器源代碼,該源代碼連編到發布訂閱中間件系統庫文件中,供發布訂閱系統運行過程中在線使用[8]。

其中,動作代碼是指當生成的編譯器發現其輸入滿足某條語法規則時需要執行的相應語句,在本文中,用戶的訂閱表達式通過編譯器被表示成相應的過濾語法樹,因此,此處的動作代碼對應著過濾語法樹中相應節點的添加[8]。

當訂閱者想要訂閱相關主題信息時,首先需要向系統注冊,此時,訂閱者應提供訂閱表達式(過濾規則)以表示其訂閱興趣,過濾規則編譯器接受該輸入編譯生成相應的過濾語法樹。

在數據發布訂閱階段,當訂閱端接收到發布者發布的數據時,訂閱者的過濾器將獲取該數據,并根據該數據中各分量的值遍歷過濾語法樹,計算出當前數據是否應該過濾,如需要過濾則丟棄,否則向上提交給用戶。

2.2 過濾語法樹的生成

文中選擇樹形數據結構作為訂閱表達式的表示方式,該結構能夠比較直觀地表達訂閱表達式各部分之間的邏輯關系,并且便于過濾計算過程中的使用,例如:對于股票信息訂閱表達式StockCode=AAPL(蘋果股票) OR StockCode=MSFT(微軟股票)解析過程如圖2所示。當過濾規則編譯器對一個滿足規約條件的表達式進行規約時,會生成和這個表達式對應的語法樹,圖2中首先是對于子式StockCode=AAPL進行規約,然后是對子式StockCode=MSFT進行規約,完成前面兩個規約之后,此時滿足了OR連詞表達式的規約條件,通過規約的相應動作將剛才生成的兩棵子樹以OR操作符對應的節點為根節點,形成一棵新的語法樹。

圖 2a StockCode=AAPL

圖2b StockCode=MSFT

圖2 StockCode=AAPLOR StockCode=MSFT對應樹形結構示意圖

編譯器生成過程中所需要的動作代碼[7]就是基于Flex&Bison提供的規則規約處理機制,在相關語法規則之后添加當輸入滿足該規則進行規約時需要進行的處理。以圖2a為例,子式StockCode=AAPL對應的規則的動作代碼就是圖2a中樹節點的聲明以及節點間關系建立。

2.3 發布訂閱過程的過濾計算

過濾計算是過濾器根據過濾語法樹,提取出數據中與規則相關的數據分量,根據規則的邏輯關系進行計算以判斷對于該數據的取舍。

在語義樹中主要存在三類與數據有關的節點:(1)確定值對應的節點。該類節點是由用戶定義規則中明確的數值經過編譯生成的,數據的類型以及值的信息均存儲于節點結構中。(2)參數對應的節點,該類節點由輸入規則中‘%n’形式表示的參數編譯生成,其中n表示該參數對應參數值在參數存儲隊列中的索引位置,在過濾計算過程中根據索引信息查詢到對應數值,參數的設計主要是為了提供過濾的靈活性,通過修改參數值就可以影響過濾的結果,不必重構過濾表達式。(3)變量對應的節點,該類節點需要過濾器在原始數據中查詢到變量對應的實際值。

過濾計算過程中,首先將數據相應分量的值代入到過濾語法樹中相應節點,然后對過濾語法樹進行自葉節點向根的遍歷計算,遍歷完整棵樹后的計算結果即表示是否過濾。

如圖3所示,當到達的數據中StockCode變量的實際值為IBM(IBM股票代碼)時,圖2中過濾語法樹中StockCode節點的值被替換成IBM,過濾計算最終結果為False,表示這個數據不符合訂閱表達式,將會被過濾掉。

圖3 過濾計算過程示意圖

不同類型的發布訂閱系統,過濾器的調用方式也不相同。對于有信息代理的集中式發布訂閱系統,由信息代理進行信息的過濾,因為代理計算功能相對較強而且相關資源(計算能力,內存)等也比較充裕,同時提高端點(發布端,訂閱端)的運行效率。對于純分布式的系統,采用在訂閱端過濾,考慮到發布端計算任務相對繁重(信息的產生以及發布),資源相對較少(用于信息存儲等),所以采取訂閱端過濾的方式,在訂閱者網絡層接收到數據,解析線程進行解析時過濾。但是,在某些特殊情況下,發布端過濾會有更好地收益,因為發布端過濾可以減少網絡上的數據個數,節約帶寬資源,當網絡帶寬資源相對較緊缺時,或者大部分訂閱端有相同的訂閱表達式時,可以考慮采用發布端過濾,而且發布端過濾沒有必要將表示數據結構的typecode傳遞到訂閱端。

3 實驗結果及分析

對過濾功能實現的相關功能測試顯示,該實現遵循OMG DDS規范,能夠滿足對于信息過濾的需求且具備較好的錯誤處理能力。為進一步驗證實現方案的合理性,本文主要針對發布訂閱中間件系統的兩個主要性能指標:處理時延和數據吞吐量進行性能測試。過濾器中對影響相關指標的因素主要是過濾計算的處理時間,該處理時間受過濾規則復雜度和相關數據查詢時間影響。過濾規則復雜度越高時,遍歷語法樹所需時間越長,而數據結構越復雜,查找其中分量對應實際數值所需時間也越長,因此,測試過程中選取簡單和復雜兩類數據類型,按照無過濾、簡單過濾表達式、復雜過濾表達式這三種過濾場景設計測試用例,測試不同用例下的時延和吞吐量。測試用例設計如表1所示。

表 1 性能測試測試用例

圖4 時延指標測試結果

時延測試結果如圖4所示。由圖可知:無過濾情形在所有情形中時延最短,而復雜過濾規則下時延最長;采用相同的過濾表達式時,復雜數據類型的時延高于簡單數據類型。測試結果表明:數據類型的復雜性會影響發布訂閱系統的時延,但相比而言,訂閱表達式的復雜程度對于時延的影響更大。考慮到本文中復雜條件情形下的規則復雜度為簡單條件情形下的5倍(以過濾語法樹中節點個數計),而時延僅增長15%左右,說明過濾器在過濾規則復雜度明顯增加時,具有較好的性能。

在吞吐量測試中,由于數據大小對吞吐量測試結果有一定影響,故將簡單數據類型擴充到與復雜數據類型大小一致后再進行測試,經測試該擴充不會造成原始數據獲取時間明顯增長。測試結果如圖5所示。

圖5 吞吐量指標測試結果

上圖中縱軸數據代表訂閱端每秒處理的數據個數(因為數據大小相同,所以用個數來代表吞吐量)。由圖5可知:過濾規則的復雜程度及數據類型的復雜程度均會影響發布訂閱系統的吞吐量,相比較而言,過濾規則的復雜程度是影響該指標的最主要因素。

4 總結

本文采用Flex&Bison工具,提出了一個發布訂閱中間件系統中基于過濾語法樹的過濾器實現方案,以實現發布訂閱系統中的信息選擇機制,并在一個已有的發布訂閱中間件原型系統——信息集成管理軟件的基礎上實現了該方案。測試結果表明該實現方案遵循OMG DDS規范,較好地實現了信息選擇機制,其性能也與預期相符。

[1]Patrick TH. Eugster, Pascal A. Felber,Rachid Guerraoui, Anne-Marie Kermarrec, The Many Faces of Publish/Subscribe, ACM Computing Surveys, Vol. 35, No. 2, June 2003, pp. 114–131.

[2]Object Management Group, Data Distribution Service for Real-time Systems Specification,Version1.1, Nov.2005

[3] Object Management Group, The Real-time Publish/Subs cribe Wire Protocol DDS Interoperability Wire Protocol Specification .Version 2.1 2009.

[4] Gerardo P C. OMG Data-Distribution Service (DDS): Architectural Update. 2004 IEEE Military Communications Conference, 2004.

[5] Schneider S, Farabaugh B, Using the DDS Standard for High Reliability Applications. Real-Time Innovations.Inc, 2004.

[6] Real-Time Innovations. The Real-Time Publish/Subsc ribe Middleware User's Manual. Version 4.5C. 2010

[7] Object Computing, Inc. OpenDDS Developer’s Guide. Version 2.3,2007.

[8] Jobn Levine. flex與bison.陸軍譯.南京:東南大學出版社.2011.

本文受國家自然科學基金項目(60903163)和航空科學基金項目(20101969010)資助。

猜你喜歡
規則信息系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
撐竿跳規則的制定
數獨的規則和演變
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
讓規則不規則
Coco薇(2017年11期)2018-01-03 20:59:57
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
TPP反腐敗規則對我國的啟示
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
主站蜘蛛池模板: 美女国内精品自产拍在线播放| 国产不卡在线看| www亚洲精品| 久久成人免费| 免费A级毛片无码无遮挡| 亚洲黄色高清| 日本国产在线| 久一在线视频| 波多野衣结在线精品二区| 五月激情综合网| 成人精品视频一区二区在线| 中文成人无码国产亚洲| 久久精品视频一| 香蕉精品在线| 114级毛片免费观看| 老司机精品99在线播放| 亚洲高清日韩heyzo| 热久久综合这里只有精品电影| 日韩精品一区二区三区视频免费看| 成年人视频一区二区| 国产精品成人观看视频国产 | 亚洲九九视频| 国产9191精品免费观看| 国产麻豆va精品视频| 尤物国产在线| 国产精品深爱在线| 中文纯内无码H| 少妇人妻无码首页| 美女国内精品自产拍在线播放| 欧美日韩另类在线| 一级毛片基地| 国产无人区一区二区三区| 精品成人一区二区三区电影 | 国产高清国内精品福利| 韩国v欧美v亚洲v日本v| 国产精品网拍在线| 久久精品亚洲专区| 制服丝袜亚洲| 日本精品视频一区二区| 久久中文字幕2021精品| 在线播放精品一区二区啪视频| 91精品啪在线观看国产91九色| 91成人在线观看视频| 欧美精品亚洲二区| 中国国产A一级毛片| 久久久久久高潮白浆| 2021国产乱人伦在线播放| 国产一级特黄aa级特黄裸毛片| 最新国产精品第1页| 国产成人一区在线播放| 少妇被粗大的猛烈进出免费视频| 亚洲精品人成网线在线| 91视频免费观看网站| 国产在线啪| 日韩高清一区 | 免费A级毛片无码免费视频| 超碰91免费人妻| 国产性精品| 香蕉伊思人视频| 精品1区2区3区| 午夜性爽视频男人的天堂| 国产欧美日韩综合在线第一| 幺女国产一级毛片| 成人日韩精品| 亚洲最大看欧美片网站地址| 人妻精品久久久无码区色视| 欧美三级视频在线播放| 欧美h在线观看| 最新国语自产精品视频在| 亚洲性一区| 亚洲人网站| 91精品国产情侣高潮露脸| 亚洲综合第一区| 亚洲第一在线播放| 无码一区二区三区视频在线播放| 日韩在线视频网| 欧美午夜视频在线| 久久精品国产在热久久2019| 色综合a怡红院怡红院首页| 中文字幕2区| 久久免费看片| 国产一级无码不卡视频|