李俊良,李定主,韓 夑,熊風(fēng)光
(1.中北大學(xué) 計(jì)算機(jī)與自動(dòng)控制學(xué)院,山西 太原030051;2.北方自動(dòng)控制技術(shù)研究所,山西 太原030051)
近些年來(lái),信息分發(fā)服務(wù)的應(yīng)用范圍逐漸廣泛,在各個(gè)國(guó)家都有了快速的發(fā)展[1]。文獻(xiàn) [2,3]中采用基于主題的分發(fā)模型,能夠?qū)⑿畔粗黝}分發(fā)給相關(guān)的訂閱者,但模糊性較大、準(zhǔn)確性較低,以至于使訂閱者獲得無(wú)用信息數(shù)量過(guò)大;文獻(xiàn) [4]則是存在所獲的信息相關(guān)性較低的問(wèn)題,使得無(wú)用信息過(guò)多而導(dǎo)致信息提取與利用的效率降低。為此本文采用了基于信息屬性的分發(fā)模型,依據(jù)信息的緊急性與時(shí)效性,制定優(yōu)先級(jí),使信息排隊(duì)更加合理,提高信息的存活率與分發(fā)速率?;谛畔傩缘男畔⒎职l(fā)模型,將信息各屬性封裝于xml文檔,通過(guò)對(duì)xml文檔中的各屬性進(jìn)行檢索匹配,可以更加精準(zhǔn)地匹配出訂閱者所需的信息,從而提高模型的匹配精確性。在信息各屬性封裝成消息入隊(duì)時(shí),基于優(yōu)先級(jí)的百分比算法,依據(jù)隊(duì)列中的消息和將被插入的消息之間優(yōu)先級(jí)的百分比關(guān)系,在一定程度上減少了查找比較的次數(shù),更快地定位出消息在有序隊(duì)列當(dāng)中的位置并進(jìn)行插入,從而提高消息的插入效率,減少消息的夭折率。
消息中間件 MOM[5](message oriented middleware),是基于信息屬性分發(fā)模型的核心部分,主要包括消息中心、控制中心、通信管理器等幾個(gè)主要部分。其中,控制中心各部分與通信管理器在文獻(xiàn) [6]中已經(jīng)做了詳細(xì)的配置部署,不做改變。主要著手于提高消息中心的工作效率和精確性。MOM體系結(jié)構(gòu)如圖1所示。
圖1 MOM體系結(jié)構(gòu)
發(fā)布者將信息及屬性封裝成XML文檔,傳輸?shù)組OM,由消息中心對(duì)信息屬性進(jìn)行解析,根據(jù)信息屬性,制定優(yōu)先級(jí),封裝成消息,以優(yōu)先級(jí)百分比算法插入隊(duì)列等待發(fā)送。出隊(duì)基于XML文檔結(jié)構(gòu)進(jìn)行匹配,將消息發(fā)送給對(duì)應(yīng)的訂閱者。
由于信息具有種類繁多,時(shí)效性差距大等特點(diǎn),想要更高效,更高質(zhì)量的將信息分發(fā)出去,則必須對(duì)信息的屬性進(jìn)行研究。
信息屬性包括:文件的類型,緊急度,時(shí)效性,時(shí)效時(shí)間,時(shí)效密度,截止期,搶斷性,當(dāng)然也可能會(huì)有其他屬性,這里只研究以上幾項(xiàng)屬性。
緊急度:定義請(qǐng)參見(jiàn)文獻(xiàn) [1]。緊急度越高,信息的優(yōu)先級(jí)也隨之增加。
時(shí)效性:在信息的生存周期之內(nèi)所能達(dá)到的影響程度,是信息價(jià)值的體現(xiàn)。時(shí)效性越大,信息的優(yōu)先級(jí)也越高。
時(shí)效時(shí)間:信息發(fā)布后具有時(shí)效性的持續(xù)時(shí)間 (為時(shí)間段)。
時(shí)效密度:信息發(fā)出后,時(shí)效時(shí)間內(nèi)可確定信息的時(shí)效密度。
截止期:信息具有時(shí)效性結(jié)束的最終時(shí)間點(diǎn)。
搶斷性:有些信息關(guān)系到整個(gè)戰(zhàn)局的走向,地區(qū)的生死存亡或事情成敗的先決條件,此類信息具有最高的優(yōu)先級(jí),搶斷其他一切資源,最先發(fā)送。
當(dāng)信息封裝成消息進(jìn)入隊(duì)列后,希望所有的消息都能夠及時(shí)發(fā)送出去,但是在某一時(shí)刻隊(duì)列中的消息可能會(huì)積累很多,為了將重要的消息先發(fā)送出去,對(duì)消息附加優(yōu)先級(jí)。
實(shí)時(shí)性是信息分發(fā)服務(wù)最首要的目的與要求,緊急的信息應(yīng)該最大限度的被優(yōu)先傳輸,在傳輸時(shí)限內(nèi),最大可能的保證信息分發(fā)全部完成。但是緊急度高的信息時(shí)效性不一定強(qiáng),緊急度低的信息可能擁有很大的時(shí)效性。所以在計(jì)算優(yōu)先級(jí)的過(guò)程中,必須同時(shí)考慮信息緊急度和時(shí)效性兩個(gè)方面,從而保證高質(zhì)量的信息分發(fā)服務(wù)。
普通信息的優(yōu)先級(jí)的計(jì)算會(huì)用到信息的一些屬性:信息的緊急度用U表示,時(shí)效性用T表示,時(shí)效密度用dn表示。時(shí)效時(shí)間用C表示,D表示絕對(duì)截止期 (為某一時(shí)間點(diǎn))。
信息產(chǎn)生時(shí)有效密度如下式所示
因?yàn)橛械男畔⒖赡軙r(shí)效性并不大但是緊迫度卻很大,所以如果僅僅靠時(shí)效密度來(lái)判斷的話,這類消息很容易夭折,而且信息不僅僅具有時(shí)效性,緊迫度也是信息的一個(gè)重要屬性,因此需要一個(gè)緊迫度的公式。
引入緊迫性系數(shù)τ,通過(guò)與時(shí)效時(shí)間共同判斷信息的緊迫性,假設(shè)φ為信息的緊迫性,則
若緊急性對(duì)信息緊急度的影響參數(shù)q>1,則有信息緊急度公式
由于時(shí)效密度和緊急度都是信息的屬性,因此,綜合考慮兩方面的因素,結(jié)合時(shí)效密度與緊急度兩方面因素,推出一種基于信息屬性的優(yōu)先級(jí)公式
式中:a——時(shí)效性對(duì)優(yōu)先級(jí)的影響因子,b——緊急度對(duì)優(yōu)先級(jí)的影響因子,由于實(shí)時(shí)性仍然是信息分發(fā)的第一目的,即越緊急的信息盡量越早發(fā)送,因此取a<b且a+b=1。
普通的信息可以通過(guò)優(yōu)先級(jí)來(lái)比較,但是當(dāng)有重大命令或者戰(zhàn)報(bào)等高級(jí)信息時(shí),信息便擁有了搶斷一切資源的特殊優(yōu)先級(jí)S,擁有該優(yōu)先級(jí)的信息分發(fā)任務(wù)由專門提供的一個(gè)搶斷信息隊(duì)列搶斷一切資源優(yōu)先發(fā)送。當(dāng)搶斷信息發(fā)送完畢之后才開(kāi)始普通信息分發(fā)。
綜上,將高等級(jí)信息與普通信息結(jié)合在一起有:信息具有搶斷性時(shí)g=1,不具有搶斷性時(shí)g=0。當(dāng)信息具有搶斷性時(shí),優(yōu)先級(jí)為最高優(yōu)先級(jí)S。因此信息的優(yōu)先級(jí)P為
消息的定義請(qǐng)參見(jiàn)文獻(xiàn) [7]。已有信息及其屬性必須被封裝成消息,之后方可發(fā)送[8]。消息中間件采用基于XML的消息格式。
信息產(chǎn)生后,通過(guò)JDOM技術(shù)將其封裝基于XML的消息,其中封裝了信息的大部分屬性,以便提高后期匹配的精確性。封裝的信息屬性有:信息的主題ID、信息關(guān)鍵字、信息產(chǎn)生時(shí)間、信息產(chǎn)生地點(diǎn)、信息的事件、信息的時(shí)效時(shí)間、信息的截止期、信息的搶斷性、信息的緊急度、信息的優(yōu)先級(jí)、信息的發(fā)布者、信息的訂閱者、信息的長(zhǎng)度、信息的具體內(nèi)容等,其封裝格式如下所示:
將信息封裝成消息之后,根據(jù)搶斷性,分別進(jìn)入搶斷隊(duì)列和普通消息分發(fā)隊(duì)列。在普通消息分發(fā)隊(duì)列當(dāng)中,為了消息能夠及時(shí)的發(fā)送出去,將優(yōu)先級(jí)大的消息放到一個(gè)有序隊(duì)列的最前面,優(yōu)先發(fā)送出去,可以很大程度減少發(fā)送等待時(shí)間。
當(dāng)消息進(jìn)入隊(duì)列時(shí)是依靠?jī)?yōu)先級(jí)對(duì)其進(jìn)行排序,因此采用一種基于對(duì)二分法研究的新算法百分比隊(duì)列插入排序算法,簡(jiǎn) 稱 PIS (percentage of queue insertion sort algorithm)。
對(duì)r[1~n]中的n個(gè)數(shù)據(jù)按照PIS隊(duì)列排序步驟如下:
步驟1 初始化插入位置pos、隊(duì)列尾指針low、隊(duì)列頭指針high的值和消息的最大優(yōu)先級(jí)maxPriority。pos←0,low←0,high←隊(duì)列的長(zhǎng)度-1,maxPriority的值可以通過(guò)讀配置文件中的值給出。隊(duì)列形式如圖2所示。
圖2 消息隊(duì)列
其中,優(yōu)先級(jí)Pmax>Pn-1>……>P2>P1的消息所對(duì)應(yīng)的隊(duì)列位置為0,1……n-2,n-1。
步驟2 判斷隊(duì)列的長(zhǎng)度是否為0,如果判斷為真則表示當(dāng)前隊(duì)列為空,將帶插入的消息直接放入隊(duì)列中,算法返回值為0。如果判斷為假則向下執(zhí)行。
步驟3 判斷當(dāng)前要插入消息的優(yōu)先級(jí)的大小是否小于等于隊(duì)中最后一個(gè)消息的優(yōu)先級(jí),如果判斷為真,則將要插入的消息放入隊(duì)列的最后,算法返回值為隊(duì)列的長(zhǎng)度,并且判斷要插入消息的優(yōu)先級(jí)的大小是否大于隊(duì)中第一個(gè)消息的優(yōu)先級(jí),如果為真,則將消息直接插到隊(duì)列最前端,返回0。當(dāng)優(yōu)先級(jí)小于等于隊(duì)列頭的消息的優(yōu)先級(jí),并大于隊(duì)列末的消息優(yōu)先級(jí)的情況下,向下執(zhí)行。
步驟4 如果low<high,說(shuō)明已經(jīng)存在消息隊(duì)列,則進(jìn)入while循環(huán),首先根據(jù)當(dāng)前要插入消息的優(yōu)先級(jí)的大小m和maxPriority的比值計(jì)算出一個(gè)pos的值。然后繼續(xù)在while循環(huán)內(nèi)部進(jìn)行判斷,其計(jì)算方法為
(1)判斷pos與low是否相等并且m值的大小是否等于low處消息的優(yōu)先級(jí)的大小,判斷為真則算法返回值為low+1,為假則轉(zhuǎn)入 (2)。
(2)判斷m值的大小是否大于等于隊(duì)列中pos處消息的優(yōu)先級(jí)的大小和m值的大小是否小于等于隊(duì)列中pos-1處消息的優(yōu)先級(jí)的大小。如果判斷為真則說(shuō)明找到了pos的值,算法返回pos的值,如果判斷為假則轉(zhuǎn)入 (3)。
(3)判斷m值的大小是否大于pos-1處消息優(yōu)先級(jí)的大小,如果判斷為真則重置high的值,high=pos-1,轉(zhuǎn)入步驟4執(zhí)行,如果判斷為假則轉(zhuǎn)入 (4)。
(4)重置low的值,low=pos,轉(zhuǎn)向步驟4執(zhí)行,直到算法返回。
消息從有序隊(duì)列發(fā)送出來(lái)之后,通過(guò)與訂閱信息表進(jìn)行匹配,然后發(fā)送給對(duì)應(yīng)的訂閱者。由于XML文檔的半結(jié)構(gòu)化,因此其既能表達(dá)信息的內(nèi)容,又可以表達(dá)出信息的結(jié)構(gòu)關(guān)系[9],因此基于屬性的信息分發(fā)模型選擇基于XML數(shù)據(jù)。訂閱者提出自己想要訂閱何種屬性的信息,這些屬性可以采用查詢表達(dá)式的形式表示。在匹配的過(guò)程中,匹配策略將訂閱者所訂閱的屬性轉(zhuǎn)化為一種可以被高效執(zhí)行和存儲(chǔ)的格式[10]。在基于XML的匹配方法中,訂閱者所訂閱的屬性是利用XPath查詢表達(dá)式表現(xiàn)出來(lái)的。檢驗(yàn)出隊(duì)并進(jìn)入匹配策略的XML文檔是否含有滿足訂閱信息的結(jié)果,假設(shè)有的話則將此XML文檔傳遞給提出這個(gè)訂閱的訂閱者?;赬ML的匹配策略可以被視為XPath表達(dá)式檢索問(wèn)題:給定一個(gè)XPath表達(dá)式集合,其中包含了用戶提出的所有的查詢模式,一個(gè)XML文檔,在表達(dá)式中找到在文檔中包含匹配結(jié)果的訂閱,并將該文檔發(fā)送給提出該訂閱的訂閱者。基于XML匹配策略結(jié)構(gòu)如圖3所示。
圖3 基于XML匹配策略結(jié)構(gòu)
軟件環(huán)境:Windows XP操作系統(tǒng)以及基于信息屬性的信息分發(fā)系統(tǒng) (簡(jiǎn)稱為:屬性 MOM);Windows XP操作系統(tǒng)以及基于主題信息分發(fā)系統(tǒng) (簡(jiǎn)稱為:主題MOM)。
硬件環(huán)境:7臺(tái)計(jì)算機(jī),基本配置為AMD Athlon(tm)Quad Core2 2.7GHz,內(nèi)存為2G。l臺(tái)服務(wù)器作為基于信息屬性的消息中間件服務(wù)器,1臺(tái)作為基于主題的消息中間件服務(wù)器。另外5臺(tái)分別仿真?zhèn)刹椴筷?duì)、戰(zhàn)斗部隊(duì)、裝甲作戰(zhàn)部隊(duì)、空中打擊部隊(duì)、地面指揮控制平臺(tái)。
在這相同的環(huán)境條件下分別做了五組不同的測(cè)試,每組測(cè)試進(jìn)行2次,每2次取一次平均值,最后算總的平均值。時(shí)間單位為:毫秒,測(cè)試結(jié)果見(jiàn)表1,結(jié)果反映如圖4所示,其中:X軸是測(cè)試消息數(shù)量,單位為:條;Y軸是分發(fā)所用時(shí)間,單位為:毫秒。
表1 兩種信息分發(fā)模型測(cè)試對(duì)比
圖4 測(cè)試消息量-MOM分發(fā)平均用時(shí)
為了測(cè)試MOM模型的分發(fā)精確性,在這相同的環(huán)境條件下分別發(fā)送1000條信息,其中其主題均為毀傷信息,但是各信息的屬性卻不相同,通過(guò)訂閱不同屬性,查看獲得信息數(shù)量可以測(cè)試出系統(tǒng)的精確性。1000條信息分成5部分,每部分的200條信息的屬性是一樣的,屬性表見(jiàn)表2;對(duì)1000條信息分別進(jìn)行不同的訂閱,之后與主題MOM進(jìn)行對(duì)比如圖5所示。
表2 1000條信息屬性
從表1可以看出,基于信息屬性的信息分發(fā)模型,隨著消息數(shù)量的增加,優(yōu)勢(shì)隨之提高,所用時(shí)間相比傳統(tǒng)主題分發(fā)模型用的更少,效率更高;從圖4所示的情況可以看出,當(dāng)測(cè)試量逐漸加大時(shí),兩種方法時(shí)間差也逐漸加大,與算法分析中預(yù)測(cè)的結(jié)果相同,即在考慮插入消息和隊(duì)列中已有消息之間的百分比關(guān)系之后,插入排序的速度得到提高,這在實(shí)時(shí)性要求很高的環(huán)境中尤為重要;通過(guò)表2和圖5的對(duì)比可以看出,訂閱信息越詳細(xì),用到屬性種類越多,基于信息屬性的信息分發(fā)模型的信息分發(fā)精確性越高,冗余性越低,從而提高了信息的提取與利用效率,這在信息量巨大的現(xiàn)代社會(huì)極為重要。
圖5 訂閱精確性結(jié)果對(duì)比
本文對(duì)信息屬性進(jìn)行了研究,對(duì)MOM消息中心進(jìn)行改進(jìn),并根據(jù)信息屬性制定合理的優(yōu)先級(jí),采用基于優(yōu)先級(jí)百分比插入算法,減少排隊(duì)的查找比較次數(shù),提高消息的入隊(duì)效率;同時(shí)使用基于XML的數(shù)據(jù)格式,通過(guò)XPath過(guò)濾方式,檢索xml文檔中的各信息屬性,更加準(zhǔn)確地匹配出符合訂閱者訂閱需求的消息,使得匹配的精確性提高,冗余性降低,提高了信息的提取與利用的效率。實(shí)驗(yàn)結(jié)果表明,基于信息屬性的信息分發(fā)模型能夠完成對(duì)信息分發(fā)效率和匹配精確性的提高,不論在生活中還是在戰(zhàn)場(chǎng)上都具有很強(qiáng)的實(shí)用性和適用性。
[1]FAN Hongchen.Information distribution scheduling research considering the information of attribute [D].Wuhan:Huazhong University of Science and Technology,2009 (in Chinese).[范虹辰.考慮信息屬性的信息分發(fā)調(diào)度研究 [D].武漢:華中科技大學(xué),2009.]
[2]ZHOU Jiajun, WANG Feng, MA Ruixing,et al.Apply events broker to realize intelligence distribution based on subject in P2Pnetwork [J].Application Research of Computers,2011,28 (5):1835-1838 (in Chinese).[周佳駿,王峰,馬瑞興,等.對(duì)等網(wǎng)絡(luò)中應(yīng)用事件代理實(shí)現(xiàn)基于主題的情報(bào)分發(fā) [J].計(jì)算機(jī)應(yīng)用研究,2011,28 (5):1835-1838.]
[3]PAN Guowei,SONG Wei.Research on the application of message oriented middleware in electric dispatching automatination system [J].Electrical Applications,2008,27 (10):61-64(in Chinese).[潘國(guó)偉,宋瑋.消息中間件在電力調(diào)度自動(dòng)化系統(tǒng)中的應(yīng)用 [J].電氣應(yīng)用,2008,27 (10):61-64.]
[4]LI Haiwen,LIN Fuliang.A design of the publish-subscribe middleware [J].Modern Computer,2013,11 (22):61-64(in Chinese).[李海聞,林福良.一種發(fā)布訂閱中間件的設(shè)計(jì)[J].現(xiàn)代計(jì)算機(jī),2013,11 (22):61-64.]
[5]LI Lu,RONG Mei,ZHANG Guangquan.The application of multi-dimension QoS in QoS management model based on MOM[J].Computer Application and Software,2009,26 (8):56-58(in Chinese). [李璐,戎玫,張廣泉.多維QoS在基于MOM的QoS管理模型中的應(yīng)用 [J].計(jì)算機(jī)應(yīng)用與軟件,2009,26 (8):56-58.]
[6]ZHANG Yuan,HAN Xie.Research and design of middleware in network test system [J].Computer Enginerring and Design,2009,30 (22):5279-5283 (in Chinese). [張?jiān)?,韓燮.網(wǎng)絡(luò)化測(cè)試系統(tǒng)中間件的研究與設(shè)計(jì) [J].計(jì)算機(jī)工程與設(shè)計(jì),2009,30 (22):5279-5283.]
[7]XUE Wei.Information flow based on message oriented middleware [D].Tianjin:Tianjin Normal University,2007 (in Chinese).[薛微.基于消息中間件信息流的研究 [D].天津:天津師范大學(xué),2007.]
[8]LI Jianfeng,XU Shuren,MA Jiangang. Message-oriented middleware design and implement for large-scale data integration [J].Computer Enginerring and Design,2008,29 (1):51-55(in Chinese).[李建峰,許舒人,馬建剛.面向大規(guī)模數(shù)據(jù)集成消息中間件系統(tǒng)設(shè)計(jì)實(shí)現(xiàn) [J].計(jì)算機(jī)工程與設(shè)計(jì),2008,29 (1):51-55.]
[9]SHAO Feng.Research on structural query techniques for XML data management[D].Hangzhou:Zhejiang University,2008(in Chinese).[邵峰.XML數(shù)據(jù)管理中的結(jié)構(gòu)查詢技術(shù)研究[D].杭州:浙江大學(xué),2008.]
[10]NING Bo.Research on XML query pattern matching and document filtering [D].Shenyang:Northeastern University,2009 (in Chinese). [寧博.XML查詢模式匹配及文檔過(guò)濾技術(shù)研究 [D].沈陽(yáng):東北大學(xué),2009.]