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