李俊良,李定主,韩 夑,熊风光
(1.中北大学 计算机与自动控制学院,山西 太原030051;2.北方自动控制技术研究所,山西 太原030051)
近些年来,信息分发服务的应用范围逐渐广泛,在各个国家都有了快速的发展[1]。文献 [2,3]中采用基于主题的分发模型,能够将信息按主题分发给相关的订阅者,但模糊性较大、准确性较低,以至于使订阅者获得无用信息数量过大;文献 [4]则是存在所获的信息相关性较低的问题,使得无用信息过多而导致信息提取与利用的效率降低。为此本文采用了基于信息属性的分发模型,依据信息的紧急性与时效性,制定优先级,使信息排队更加合理,提高信息的存活率与分发速率。基于信息属性的信息分发模型,将信息各属性封装于xml文档,通过对xml文档中的各属性进行检索匹配,可以更加精准地匹配出订阅者所需的信息,从而提高模型的匹配精确性。在信息各属性封装成消息入队时,基于优先级的百分比算法,依据队列中的消息和将被插入的消息之间优先级的百分比关系,在一定程度上减少了查找比较的次数,更快地定位出消息在有序队列当中的位置并进行插入,从而提高消息的插入效率,减少消息的夭折率。
消息中间件 MOM[5](message oriented middleware),是基于信息属性分发模型的核心部分,主要包括消息中心、控制中心、通信管理器等几个主要部分。其中,控制中心各部分与通信管理器在文献 [6]中已经做了详细的配置部署,不做改变。主要着手于提高消息中心的工作效率和精确性。MOM体系结构如图1所示。
图1 MOM体系结构
发布者将信息及属性封装成XML文档,传输到MOM,由消息中心对信息属性进行解析,根据信息属性,制定优先级,封装成消息,以优先级百分比算法插入队列等待发送。出队基于XML文档结构进行匹配,将消息发送给对应的订阅者。
由于信息具有种类繁多,时效性差距大等特点,想要更高效,更高质量的将信息分发出去,则必须对信息的属性进行研究。
信息属性包括:文件的类型,紧急度,时效性,时效时间,时效密度,截止期,抢断性,当然也可能会有其他属性,这里只研究以上几项属性。
紧急度:定义请参见文献 [1]。紧急度越高,信息的优先级也随之增加。
时效性:在信息的生存周期之内所能达到的影响程度,是信息价值的体现。时效性越大,信息的优先级也越高。
时效时间:信息发布后具有时效性的持续时间 (为时间段)。
时效密度:信息发出后,时效时间内可确定信息的时效密度。
截止期:信息具有时效性结束的最终时间点。
抢断性:有些信息关系到整个战局的走向,地区的生死存亡或事情成败的先决条件,此类信息具有最高的优先级,抢断其他一切资源,最先发送。
当信息封装成消息进入队列后,希望所有的消息都能够及时发送出去,但是在某一时刻队列中的消息可能会积累很多,为了将重要的消息先发送出去,对消息附加优先级。
实时性是信息分发服务最首要的目的与要求,紧急的信息应该最大限度的被优先传输,在传输时限内,最大可能的保证信息分发全部完成。但是紧急度高的信息时效性不一定强,紧急度低的信息可能拥有很大的时效性。所以在计算优先级的过程中,必须同时考虑信息紧急度和时效性两个方面,从而保证高质量的信息分发服务。
普通信息的优先级的计算会用到信息的一些属性:信息的紧急度用U表示,时效性用T表示,时效密度用dn表示。时效时间用C表示,D表示绝对截止期 (为某一时间点)。
信息产生时有效密度如下式所示
因为有的信息可能时效性并不大但是紧迫度却很大,所以如果仅仅靠时效密度来判断的话,这类消息很容易夭折,而且信息不仅仅具有时效性,紧迫度也是信息的一个重要属性,因此需要一个紧迫度的公式。
引入紧迫性系数τ,通过与时效时间共同判断信息的紧迫性,假设φ为信息的紧迫性,则
若紧急性对信息紧急度的影响参数q>1,则有信息紧急度公式
由于时效密度和紧急度都是信息的属性,因此,综合考虑两方面的因素,结合时效密度与紧急度两方面因素,推出一种基于信息属性的优先级公式
式中:a——时效性对优先级的影响因子,b——紧急度对优先级的影响因子,由于实时性仍然是信息分发的第一目的,即越紧急的信息尽量越早发送,因此取a<b且a+b=1。
普通的信息可以通过优先级来比较,但是当有重大命令或者战报等高级信息时,信息便拥有了抢断一切资源的特殊优先级S,拥有该优先级的信息分发任务由专门提供的一个抢断信息队列抢断一切资源优先发送。当抢断信息发送完毕之后才开始普通信息分发。
综上,将高等级信息与普通信息结合在一起有:信息具有抢断性时g=1,不具有抢断性时g=0。当信息具有抢断性时,优先级为最高优先级S。因此信息的优先级P为
消息的定义请参见文献 [7]。已有信息及其属性必须被封装成消息,之后方可发送[8]。消息中间件采用基于XML的消息格式。
信息产生后,通过JDOM技术将其封装基于XML的消息,其中封装了信息的大部分属性,以便提高后期匹配的精确性。封装的信息属性有:信息的主题ID、信息关键字、信息产生时间、信息产生地点、信息的事件、信息的时效时间、信息的截止期、信息的抢断性、信息的紧急度、信息的优先级、信息的发布者、信息的订阅者、信息的长度、信息的具体内容等,其封装格式如下所示:
将信息封装成消息之后,根据抢断性,分别进入抢断队列和普通消息分发队列。在普通消息分发队列当中,为了消息能够及时的发送出去,将优先级大的消息放到一个有序队列的最前面,优先发送出去,可以很大程度减少发送等待时间。
当消息进入队列时是依靠优先级对其进行排序,因此采用一种基于对二分法研究的新算法百分比队列插入排序算法,简 称 PIS (percentage of queue insertion sort algorithm)。
对r[1~n]中的n个数据按照PIS队列排序步骤如下:
步骤1 初始化插入位置pos、队列尾指针low、队列头指针high的值和消息的最大优先级maxPriority。pos←0,low←0,high←队列的长度-1,maxPriority的值可以通过读配置文件中的值给出。队列形式如图2所示。
图2 消息队列
其中,优先级Pmax>Pn-1>……>P2>P1的消息所对应的队列位置为0,1……n-2,n-1。
步骤2 判断队列的长度是否为0,如果判断为真则表示当前队列为空,将带插入的消息直接放入队列中,算法返回值为0。如果判断为假则向下执行。
步骤3 判断当前要插入消息的优先级的大小是否小于等于队中最后一个消息的优先级,如果判断为真,则将要插入的消息放入队列的最后,算法返回值为队列的长度,并且判断要插入消息的优先级的大小是否大于队中第一个消息的优先级,如果为真,则将消息直接插到队列最前端,返回0。当优先级小于等于队列头的消息的优先级,并大于队列末的消息优先级的情况下,向下执行。
步骤4 如果low<high,说明已经存在消息队列,则进入while循环,首先根据当前要插入消息的优先级的大小m和maxPriority的比值计算出一个pos的值。然后继续在while循环内部进行判断,其计算方法为
(1)判断pos与low是否相等并且m值的大小是否等于low处消息的优先级的大小,判断为真则算法返回值为low+1,为假则转入 (2)。
(2)判断m值的大小是否大于等于队列中pos处消息的优先级的大小和m值的大小是否小于等于队列中pos-1处消息的优先级的大小。如果判断为真则说明找到了pos的值,算法返回pos的值,如果判断为假则转入 (3)。
(3)判断m值的大小是否大于pos-1处消息优先级的大小,如果判断为真则重置high的值,high=pos-1,转入步骤4执行,如果判断为假则转入 (4)。
(4)重置low的值,low=pos,转向步骤4执行,直到算法返回。
消息从有序队列发送出来之后,通过与订阅信息表进行匹配,然后发送给对应的订阅者。由于XML文档的半结构化,因此其既能表达信息的内容,又可以表达出信息的结构关系[9],因此基于属性的信息分发模型选择基于XML数据。订阅者提出自己想要订阅何种属性的信息,这些属性可以采用查询表达式的形式表示。在匹配的过程中,匹配策略将订阅者所订阅的属性转化为一种可以被高效执行和存储的格式[10]。在基于XML的匹配方法中,订阅者所订阅的属性是利用XPath查询表达式表现出来的。检验出队并进入匹配策略的XML文档是否含有满足订阅信息的结果,假设有的话则将此XML文档传递给提出这个订阅的订阅者。基于XML的匹配策略可以被视为XPath表达式检索问题:给定一个XPath表达式集合,其中包含了用户提出的所有的查询模式,一个XML文档,在表达式中找到在文档中包含匹配结果的订阅,并将该文档发送给提出该订阅的订阅者。基于XML匹配策略结构如图3所示。
图3 基于XML匹配策略结构
软件环境:Windows XP操作系统以及基于信息属性的信息分发系统 (简称为:属性 MOM);Windows XP操作系统以及基于主题信息分发系统 (简称为:主题MOM)。
硬件环境:7台计算机,基本配置为AMD Athlon(tm)Quad Core2 2.7GHz,内存为2G。l台服务器作为基于信息属性的消息中间件服务器,1台作为基于主题的消息中间件服务器。另外5台分别仿真侦查部队、战斗部队、装甲作战部队、空中打击部队、地面指挥控制平台。
在这相同的环境条件下分别做了五组不同的测试,每组测试进行2次,每2次取一次平均值,最后算总的平均值。时间单位为:毫秒,测试结果见表1,结果反映如图4所示,其中:X轴是测试消息数量,单位为:条;Y轴是分发所用时间,单位为:毫秒。
表1 两种信息分发模型测试对比
图4 测试消息量-MOM分发平均用时
为了测试MOM模型的分发精确性,在这相同的环境条件下分别发送1000条信息,其中其主题均为毁伤信息,但是各信息的属性却不相同,通过订阅不同属性,查看获得信息数量可以测试出系统的精确性。1000条信息分成5部分,每部分的200条信息的属性是一样的,属性表见表2;对1000条信息分别进行不同的订阅,之后与主题MOM进行对比如图5所示。
表2 1000条信息属性
从表1可以看出,基于信息属性的信息分发模型,随着消息数量的增加,优势随之提高,所用时间相比传统主题分发模型用的更少,效率更高;从图4所示的情况可以看出,当测试量逐渐加大时,两种方法时间差也逐渐加大,与算法分析中预测的结果相同,即在考虑插入消息和队列中已有消息之间的百分比关系之后,插入排序的速度得到提高,这在实时性要求很高的环境中尤为重要;通过表2和图5的对比可以看出,订阅信息越详细,用到属性种类越多,基于信息属性的信息分发模型的信息分发精确性越高,冗余性越低,从而提高了信息的提取与利用效率,这在信息量巨大的现代社会极为重要。
图5 订阅精确性结果对比
本文对信息属性进行了研究,对MOM消息中心进行改进,并根据信息属性制定合理的优先级,采用基于优先级百分比插入算法,减少排队的查找比较次数,提高消息的入队效率;同时使用基于XML的数据格式,通过XPath过滤方式,检索xml文档中的各信息属性,更加准确地匹配出符合订阅者订阅需求的消息,使得匹配的精确性提高,冗余性降低,提高了信息的提取与利用的效率。实验结果表明,基于信息属性的信息分发模型能够完成对信息分发效率和匹配精确性的提高,不论在生活中还是在战场上都具有很强的实用性和适用性。
[1]FAN Hongchen.Information distribution scheduling research considering the information of attribute [D].Wuhan:Huazhong University of Science and Technology,2009 (in Chinese).[范虹辰.考虑信息属性的信息分发调度研究 [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).[周佳骏,王峰,马瑞兴,等.对等网络中应用事件代理实现基于主题的情报分发 [J].计算机应用研究,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).[潘国伟,宋玮.消息中间件在电力调度自动化系统中的应用 [J].电气应用,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).[李海闻,林福良.一种发布订阅中间件的设计[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管理模型中的应用 [J].计算机应用与软件,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). [张元,韩燮.网络化测试系统中间件的研究与设计 [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].天津:天津师范大学,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).[李建峰,许舒人,马建刚.面向大规模数据集成消息中间件系统设计实现 [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数据管理中的结构查询技术研究[D].杭州:浙江大学,2008.]
[10]NING Bo.Research on XML query pattern matching and document filtering [D].Shenyang:Northeastern University,2009 (in Chinese). [宁博.XML查询模式匹配及文档过滤技术研究 [D].沈阳:东北大学,2009.]