亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        發(fā)布/訂閱中間件中基于過(guò)濾器的信息選擇機(jī)制

        2018-12-08 07:01:14谷曉鵬張凡石
        關(guān)鍵詞:規(guī)則信息系統(tǒng)

        ◆谷曉鵬 張凡石 王 葉

        ?

        發(fā)布/訂閱中間件中基于過(guò)濾器的信息選擇機(jī)制

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

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

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

        信息過(guò)濾;發(fā)布訂閱中間件;數(shù)據(jù)分發(fā)服務(wù);過(guò)濾器

        0 引言

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

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

        1 過(guò)濾規(guī)則語(yǔ)法定義

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

        該語(yǔ)法所支持的條件表達(dá)式有:

        1.簡(jiǎn)單比較運(yùn)算

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

        2.復(fù)雜邏輯運(yùn)算

        對(duì)簡(jiǎn)單比較運(yùn)算表達(dá)式的與、或、非操作。例如:key<10 and key>20。

        理論上該語(yǔ)法可以描述足夠復(fù)雜的訂閱表達(dá)式。

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

        2 基于過(guò)濾器的信息選擇機(jī)制

        2.1 信息選擇機(jī)制的框架

        圖1 信息選擇機(jī)制框架圖

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

        過(guò)濾規(guī)則編譯器由通用的編譯器生成工具Flex&Bison離線生成。以過(guò)濾規(guī)則語(yǔ)法及其對(duì)應(yīng)的動(dòng)作代碼為輸入,生成過(guò)濾規(guī)則編譯器源代碼,該源代碼連編到發(fā)布訂閱中間件系統(tǒng)庫(kù)文件中,供發(fā)布訂閱系統(tǒng)運(yùn)行過(guò)程中在線使用[8]。

        其中,動(dòng)作代碼是指當(dāng)生成的編譯器發(fā)現(xiàn)其輸入滿足某條語(yǔ)法規(guī)則時(shí)需要執(zhí)行的相應(yīng)語(yǔ)句,在本文中,用戶的訂閱表達(dá)式通過(guò)編譯器被表示成相應(yīng)的過(guò)濾語(yǔ)法樹(shù),因此,此處的動(dòng)作代碼對(duì)應(yīng)著過(guò)濾語(yǔ)法樹(shù)中相應(yīng)節(jié)點(diǎn)的添加[8]。

        當(dāng)訂閱者想要訂閱相關(guān)主題信息時(shí),首先需要向系統(tǒng)注冊(cè),此時(shí),訂閱者應(yīng)提供訂閱表達(dá)式(過(guò)濾規(guī)則)以表示其訂閱興趣,過(guò)濾規(guī)則編譯器接受該輸入編譯生成相應(yīng)的過(guò)濾語(yǔ)法樹(shù)。

        在數(shù)據(jù)發(fā)布訂閱階段,當(dāng)訂閱端接收到發(fā)布者發(fā)布的數(shù)據(jù)時(shí),訂閱者的過(guò)濾器將獲取該數(shù)據(jù),并根據(jù)該數(shù)據(jù)中各分量的值遍歷過(guò)濾語(yǔ)法樹(shù),計(jì)算出當(dāng)前數(shù)據(jù)是否應(yīng)該過(guò)濾,如需要過(guò)濾則丟棄,否則向上提交給用戶。

        2.2 過(guò)濾語(yǔ)法樹(shù)的生成

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

        圖 2a StockCode=AAPL

        圖2b StockCode=MSFT

        圖2 StockCode=AAPLOR StockCode=MSFT對(duì)應(yīng)樹(shù)形結(jié)構(gòu)示意圖

        編譯器生成過(guò)程中所需要的動(dòng)作代碼[7]就是基于Flex&Bison提供的規(guī)則規(guī)約處理機(jī)制,在相關(guān)語(yǔ)法規(guī)則之后添加當(dāng)輸入滿足該規(guī)則進(jìn)行規(guī)約時(shí)需要進(jìn)行的處理。以圖2a為例,子式StockCode=AAPL對(duì)應(yīng)的規(guī)則的動(dòng)作代碼就是圖2a中樹(shù)節(jié)點(diǎn)的聲明以及節(jié)點(diǎn)間關(guān)系建立。

        2.3 發(fā)布訂閱過(guò)程的過(guò)濾計(jì)算

        過(guò)濾計(jì)算是過(guò)濾器根據(jù)過(guò)濾語(yǔ)法樹(shù),提取出數(shù)據(jù)中與規(guī)則相關(guān)的數(shù)據(jù)分量,根據(jù)規(guī)則的邏輯關(guān)系進(jìn)行計(jì)算以判斷對(duì)于該數(shù)據(jù)的取舍。

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

        過(guò)濾計(jì)算過(guò)程中,首先將數(shù)據(jù)相應(yīng)分量的值代入到過(guò)濾語(yǔ)法樹(shù)中相應(yīng)節(jié)點(diǎn),然后對(duì)過(guò)濾語(yǔ)法樹(shù)進(jìn)行自葉節(jié)點(diǎn)向根的遍歷計(jì)算,遍歷完整棵樹(shù)后的計(jì)算結(jié)果即表示是否過(guò)濾。

        如圖3所示,當(dāng)?shù)竭_(dá)的數(shù)據(jù)中StockCode變量的實(shí)際值為IBM(IBM股票代碼)時(shí),圖2中過(guò)濾語(yǔ)法樹(shù)中StockCode節(jié)點(diǎn)的值被替換成IBM,過(guò)濾計(jì)算最終結(jié)果為False,表示這個(gè)數(shù)據(jù)不符合訂閱表達(dá)式,將會(huì)被過(guò)濾掉。

        圖3 過(guò)濾計(jì)算過(guò)程示意圖

        不同類型的發(fā)布訂閱系統(tǒng),過(guò)濾器的調(diào)用方式也不相同。對(duì)于有信息代理的集中式發(fā)布訂閱系統(tǒng),由信息代理進(jìn)行信息的過(guò)濾,因?yàn)榇碛?jì)算功能相對(duì)較強(qiáng)而且相關(guān)資源(計(jì)算能力,內(nèi)存)等也比較充裕,同時(shí)提高端點(diǎn)(發(fā)布端,訂閱端)的運(yùn)行效率。對(duì)于純分布式的系統(tǒng),采用在訂閱端過(guò)濾,考慮到發(fā)布端計(jì)算任務(wù)相對(duì)繁重(信息的產(chǎn)生以及發(fā)布),資源相對(duì)較少(用于信息存儲(chǔ)等),所以采取訂閱端過(guò)濾的方式,在訂閱者網(wǎng)絡(luò)層接收到數(shù)據(jù),解析線程進(jìn)行解析時(shí)過(guò)濾。但是,在某些特殊情況下,發(fā)布端過(guò)濾會(huì)有更好地收益,因?yàn)榘l(fā)布端過(guò)濾可以減少網(wǎng)絡(luò)上的數(shù)據(jù)個(gè)數(shù),節(jié)約帶寬資源,當(dāng)網(wǎng)絡(luò)帶寬資源相對(duì)較緊缺時(shí),或者大部分訂閱端有相同的訂閱表達(dá)式時(shí),可以考慮采用發(fā)布端過(guò)濾,而且發(fā)布端過(guò)濾沒(méi)有必要將表示數(shù)據(jù)結(jié)構(gòu)的typecode傳遞到訂閱端。

        3 實(shí)驗(yàn)結(jié)果及分析

        對(duì)過(guò)濾功能實(shí)現(xiàn)的相關(guān)功能測(cè)試顯示,該實(shí)現(xiàn)遵循OMG DDS規(guī)范,能夠滿足對(duì)于信息過(guò)濾的需求且具備較好的錯(cuò)誤處理能力。為進(jìn)一步驗(yàn)證實(shí)現(xiàn)方案的合理性,本文主要針對(duì)發(fā)布訂閱中間件系統(tǒng)的兩個(gè)主要性能指標(biāo):處理時(shí)延和數(shù)據(jù)吞吐量進(jìn)行性能測(cè)試。過(guò)濾器中對(duì)影響相關(guān)指標(biāo)的因素主要是過(guò)濾計(jì)算的處理時(shí)間,該處理時(shí)間受過(guò)濾規(guī)則復(fù)雜度和相關(guān)數(shù)據(jù)查詢時(shí)間影響。過(guò)濾規(guī)則復(fù)雜度越高時(shí),遍歷語(yǔ)法樹(shù)所需時(shí)間越長(zhǎng),而數(shù)據(jù)結(jié)構(gòu)越復(fù)雜,查找其中分量對(duì)應(yīng)實(shí)際數(shù)值所需時(shí)間也越長(zhǎng),因此,測(cè)試過(guò)程中選取簡(jiǎn)單和復(fù)雜兩類數(shù)據(jù)類型,按照無(wú)過(guò)濾、簡(jiǎn)單過(guò)濾表達(dá)式、復(fù)雜過(guò)濾表達(dá)式這三種過(guò)濾場(chǎng)景設(shè)計(jì)測(cè)試用例,測(cè)試不同用例下的時(shí)延和吞吐量。測(cè)試用例設(shè)計(jì)如表1所示。

        表 1 性能測(cè)試測(cè)試用例

        圖4 時(shí)延指標(biāo)測(cè)試結(jié)果

        時(shí)延測(cè)試結(jié)果如圖4所示。由圖可知:無(wú)過(guò)濾情形在所有情形中時(shí)延最短,而復(fù)雜過(guò)濾規(guī)則下時(shí)延最長(zhǎng);采用相同的過(guò)濾表達(dá)式時(shí),復(fù)雜數(shù)據(jù)類型的時(shí)延高于簡(jiǎn)單數(shù)據(jù)類型。測(cè)試結(jié)果表明:數(shù)據(jù)類型的復(fù)雜性會(huì)影響發(fā)布訂閱系統(tǒng)的時(shí)延,但相比而言,訂閱表達(dá)式的復(fù)雜程度對(duì)于時(shí)延的影響更大??紤]到本文中復(fù)雜條件情形下的規(guī)則復(fù)雜度為簡(jiǎn)單條件情形下的5倍(以過(guò)濾語(yǔ)法樹(shù)中節(jié)點(diǎn)個(gè)數(shù)計(jì)),而時(shí)延僅增長(zhǎng)15%左右,說(shuō)明過(guò)濾器在過(guò)濾規(guī)則復(fù)雜度明顯增加時(shí),具有較好的性能。

        在吞吐量測(cè)試中,由于數(shù)據(jù)大小對(duì)吞吐量測(cè)試結(jié)果有一定影響,故將簡(jiǎn)單數(shù)據(jù)類型擴(kuò)充到與復(fù)雜數(shù)據(jù)類型大小一致后再進(jìn)行測(cè)試,經(jīng)測(cè)試該擴(kuò)充不會(huì)造成原始數(shù)據(jù)獲取時(shí)間明顯增長(zhǎng)。測(cè)試結(jié)果如圖5所示。

        圖5 吞吐量指標(biāo)測(cè)試結(jié)果

        上圖中縱軸數(shù)據(jù)代表訂閱端每秒處理的數(shù)據(jù)個(gè)數(shù)(因?yàn)閿?shù)據(jù)大小相同,所以用個(gè)數(shù)來(lái)代表吞吐量)。由圖5可知:過(guò)濾規(guī)則的復(fù)雜程度及數(shù)據(jù)類型的復(fù)雜程度均會(huì)影響發(fā)布訂閱系統(tǒng)的吞吐量,相比較而言,過(guò)濾規(guī)則的復(fù)雜程度是影響該指標(biāo)的最主要因素。

        4 總結(jié)

        本文采用Flex&Bison工具,提出了一個(gè)發(fā)布訂閱中間件系統(tǒng)中基于過(guò)濾語(yǔ)法樹(shù)的過(guò)濾器實(shí)現(xiàn)方案,以實(shí)現(xiàn)發(fā)布訂閱系統(tǒng)中的信息選擇機(jī)制,并在一個(gè)已有的發(fā)布訂閱中間件原型系統(tǒng)——信息集成管理軟件的基礎(chǔ)上實(shí)現(xiàn)了該方案。測(cè)試結(jié)果表明該實(shí)現(xiàn)方案遵循OMG DDS規(guī)范,較好地實(shí)現(xiàn)了信息選擇機(jī)制,其性能也與預(yù)期相符。

        [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.陸軍譯.南京:東南大學(xué)出版社.2011.

        本文受國(guó)家自然科學(xué)基金項(xiàng)目(60903163)和航空科學(xué)基金項(xiàng)目(20101969010)資助。

        猜你喜歡
        規(guī)則信息系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        撐竿跳規(guī)則的制定
        數(shù)獨(dú)的規(guī)則和演變
        WJ-700無(wú)人機(jī)系統(tǒng)
        ZC系列無(wú)人機(jī)遙感系統(tǒng)
        讓規(guī)則不規(guī)則
        Coco薇(2017年11期)2018-01-03 20:59:57
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        訂閱信息
        中華手工(2017年2期)2017-06-06 23:00:31
        TPP反腐敗規(guī)則對(duì)我國(guó)的啟示
        展會(huì)信息
        伊人久久大香线蕉av波多野结衣| 高清无码精品一区二区三区| 国产永久免费高清在线观看视频| 久久亚洲精品中文字幕蜜潮 | 国产精品短视频| 国产在线视频网站不卡| 亚洲精品久久区二区三区蜜桃臀| 少女韩国电视剧在线观看完整| 激情久久av一区av二区av三区| 国产大片中文字幕| 日本免费影片一区二区| 伊人久久大香线蕉av色婷婷色 | 日韩A∨精品久久久久| 在线一区二区三区视频观看| av天堂手机免费在线| 大地资源在线观看官网第三页| 欧美一片二片午夜福利在线快 | 精品一区二区三区四区国产| 国产婷婷色综合av蜜臀av| 国产精品无码片在线观看| 国产自拍伦理在线观看| 无码精品国产一区二区三区免费| 成人白浆超碰人人人人| 中文字幕人成人乱码亚洲| 久久精品蜜桃美女av| 亚洲av无码乱码在线观看富二代 | 国产香港明星裸体xxxx视频| 99精品国产高清一区二区麻豆| 91青草久久久久久清纯| 亚洲国产最新免费av| 亚洲欧美一区二区成人片| 中文在线√天堂| 国产精品99久久不卡二区| 亚洲精品在线国产精品| 美丽的熟妇中文字幕| 免费在线日韩| 中文有码人妻字幕在线| 国产美女在线精品免费观看| 91精品国产免费久久久久久青草| 91精品亚洲熟妇少妇| 色视频线观看在线网站|