-
“虚实结合”的虚拟试验系统往往采用分布式的子系统部署[1]。实际工作过程中,子系统之间通讯的高效和稳定是整个虚拟试验系统的关键。发布/订阅模型是属于分布式环境中应用程序之间通信模型的一种,能够适应动态多变的分布式系统的需求[2]。此模型让分布式系统中各程序发生交互时使用其特有的发布/订阅的方式。从订阅语言的角度来看,可以将发布/订阅系统分为基于主题的和基于内容两类[3]。在内容发布/订阅系统中,约束条件通过事件内容来体现,以增强订阅的灵活性。当用户发布一个事件时,需要系统将每个约束条件与对应的事件进行匹配。但由于系统中每个订阅都需要较大数目的约束条件,所以事件匹配效率也需要有所提高[4]。目前主流的基于内容的发布订阅匹配算法中,对于匹配过程的精简算法主要有两种方法:以匹配网络等数据结构为代表的剪枝法和以索引列表为代表的精确定位法[5]。这两种方法在特定情形下表现都不稳定,无法满足变化多端的应用环境需求。
目前主要的匹配算法都可以归为两个类别:基于索引的和基于树的[6]。这些算法可进一步按照是否基于关键字进行分类,基于关键字代表选择一组谓词作为表达式的表示符。索引方法的主要目的是通过对所有分离的谓词构建逆序的索引顺序,以尽量减少谓词的评估数量[7]。基于树的匹配方法的主要目的则是通过树形结构对订阅条件建立索引,从而提高匹配效率。而针对这些匹配算法在匹配过程中进行的优化方式主要有以下两个特性。
1)利用订阅间存在的覆盖关系形成偏序树结构,当遇到不匹配的订阅时,可知其覆盖的所有订阅都不符合匹配规则,从而对其进行剪枝操作,以达到减少订阅规模的目的。如Siena[6]系统中的偏序树匹配算法,这种方法对订阅之间的关系要求较高,如果订阅之间存在大量的覆盖关系,则效果较好;如果订阅间很少存在覆盖关系或几乎不存在覆盖关系,例如存在大量事件属性,则会退化为暴力匹配的方式,严重影响匹配性能。还有一种对偏序树结构进行剪枝的方式是对特定属性部分剪枝,这种方式将订阅组织为匹配网络,保留匹配过程中的所有信息,能够充分利用谓词间的相关性,匹配时利用过往匹配信息进行大量的迅速的剪枝,匹配效率较高,但结构较复杂,难以支持动态订阅变更[8]。文献[5]提到了一种基于树的匹配算法,在原本树的结构上添加了一条额外的出边,该边可以检测出与该节点谓词测试结果无关的订阅,并且使用该方法后匹配事件的复杂度与订阅数线性相关。但是由于其取消和添加订阅的处理方式是以改变量为主,因此当用户更新订阅时得不到及时的反馈。
2)将订阅的属性分离,利用哈希算法迅速定位属性位置,再利用区间树、有序表等方式较快地查找到匹配属性。这样做可以大量减少无关属性的检测,并且由于属性的分离特性,对原订阅的结构无要求,当事件属性数目增加时,匹配速度由于属性的查找是哈希的原因,反而会提高。但订阅属性的分离也破坏了订阅之间的关系信息,从而无法利用订阅之间的覆盖关系来进行匹配优化,并且由于订阅和属性之间失去关联,会造成大量的无意义匹配[9]。在谓词索引方面,对于等值谓词,可以使用哈希表的存储方式达到高效率的查找,对于区间谓词,可以考虑使用区间树或有序表的方式加以存储[10]。而对谓词进行索引的相关算法的主要代表有计数算法:对所有谓词进行测试,建立一个映射表,该表包含的两个元素分别是谓词和订阅,开始进行匹配时,将表中的该订阅所对应的谓词数与该订阅原本含有的谓词数进行比较,相等即可得出事件与订阅相匹配。汉森算法通过测试淘汰一部分订阅,接着从剩下的这些订阅中测试,这样可以让效率进一步提高。CEEM算法[5]以构建谓词表对谓词族进行划分,其索引的构建方式采用的是排序或哈希表,能够以更高的效率对谓词进行匹配;并且可以依靠谓词之间所具有的关联性进一步提高匹配速度。这类算法虽然能够支持动态订阅,但只考虑了谓词间的关联关系,不能高效地完成事件匹配[11]。
还有一些算法欲将这两个特性相结合,如BE-Tree和PRBT-Tree[12]。BE-Tree用属性来进行聚类集合,用值进行分类集合,通过划分小集团的方法来提高匹配效率,当属性维度较高且订阅之间相关性较小时表现较好[13]。PRBT-Tree利用谓词的区间性质建立同时存在覆盖和偏序关系的树结构,但由于仍然无法避免属性分离的限制,最终只是单属性查找时的剪枝而不是大粒度的整体剪枝[14]。由于订阅覆盖和属性分离在本质上是矛盾的,因此,这些方法最终沦落为在分离的属性上进行覆盖检测的方式。
综上所述,考虑到订阅匹配时的不同特性,如果能够将具备不同特性的订阅有效地分离开,分别使用不同的适合其特性的匹配方法,便可以大大地提高匹配效率。本文在对已有事件匹配算法进行分析的基础上,提出了一种基于匹配特性融合的内容网络匹配算法(hybrid matching algorithm for content-based delivery,HMACD),提供了高效的匹配性能,并通过实验和性能分析验证了该匹配算法的优越性。
-
为了对比混合匹配算法、基于索引的匹配算法和基于树结构的匹配算法的效率差异,本文选取了以Poset为基础的Siena匹配方法以及基于索引的counting算法进行对比。实验环境方面选取1台路由服务器和9台主机,其中服务器用于运行各匹配算法,3台主机用于发布,6台主机用于订阅。以某武器系统的对抗试验在HLA仿真系统中测试为例,定义其订阅实体和发布实体分别为战术雷达和战斗机。并采用以下数据产生规则。
数据类型(value type):int float bool string
属性名称(value name):数据属性的名称,首先随机生成若干长度为5的字符串,属性名在其中随机选取。
操作符(operator):对于int float而言,支持 >, <, =, ≤, ≥这5种操作符。对于bool string而言,支持=操作符。具体实验数据如表1所示。
-
实验中,根据表1中的两组参数,设置实验样本数为50000,取样间隔设置为5000,记录下每次取样后订阅插入以及匹配200个事件的时间损耗。
表 1 实验的参数设置
参数 实验1 实验2 属性数/个 13 15 订阅中的谓词族数/个 1~6 3~8 等值谓词比例/% 10 20 两组实验结果如图3和图4所示。可以看出,在事件匹配的效率比较方面,随着订阅数量不断增加,其匹配时间也随之线性增长,这在3种算法中都得到了体现。但是由于HMACD算法订阅中不同的匹配特性采取了不同的匹配策略,其斜率远远小于另外两种算法,即在订阅数量一致时,与另外两种匹配算法相比,HMACD算法的匹配效率更加出色。以两图中订阅数量为10000时的匹配时间为例,HMACD算法的匹配时间耗时仅为基于Poset的Siena算法和Couting算法的54%和45%。并且在事件匹配总体效果方面,通常情况下,随着订阅数目的增加,Poset的偏序关系越发明显,匹配效果也会变好,而Counting算法随着订阅数目的增加,单个属性谓词的查找效率会降低,因而匹配效果越来越差。HMACD算法综合了两种算法的优点,匹配效果始终维持在一个相对不错的水准。
可见,相对于其他算法,HMACD算法在保持不错的匹配效果的情况下有效的提高了事件匹配的效率。
Event Matching Algorithm Based on Joint Characteristics for Content-Based Publish/Subscribe System in Virtual Experiment
-
摘要: 在应用广泛的基于Map的内容发布/订阅系统中,系统会让订阅中的每个约束条件与对应事件进行匹配,但由于系统中每个订阅都有着较大数目的约束条件,从而需要较高的事件匹配效率。在分析匹配网络中的覆盖剪枝和具有精确定位特性的谓词索引基础上,该文提出一种基于匹配特性融合的内容网络匹配算法。给出了算法的数据结构、订阅处理流程及匹配处理流程。理论分析及典型实验对比表明,相比于单纯的覆盖算法及索引算法,该算法可以提供更高效的匹配。Abstract: In the widely-used map-based content publishing/subscription systems (CPS), the system always match each constraint in the subscription with the corresponding event. However, the large number of constraints in each subscription of the system call for higher efficiency of event matching. Based on the coverage pruning and predicate index with precise location properties in the matching network algorithm, this paper proposes a matching algorithm based on matching feature fusion. The data structure, subscription processing flow and matching processing flow of the algorithm are given. Theoretical analysis and typical experimental comparisons show that the algorithm can provide more efficient matching compared with the simple coverage algorithm and indexing algorithm.
-
表 1 实验的参数设置
参数 实验1 实验2 属性数/个 13 15 订阅中的谓词族数/个 1~6 3~8 等值谓词比例/% 10 20 -
[1] EUGSTER P T, FELBER P A, GUERRAOUI R, et al. The many faces of publish/subscribe[J]. ACM Computing Surveys, 2003, 35(2): 114-131. doi: 10.1145/857076.857078 [2] CAPPS M, MCGREGOR D, BRUTZMAN D, et al. Npsnet-v: A new beginning for dynamically extensible virtual environments[J]. IEEE Computer Graphics and Applications, 2003, 20(5): 12-15. [3] ASHAYER G, LEUNG H K Y, JACOBSEN H A. Predicate matching and subscription matching in publish/subscribe systems[C]//The 22nd International Conference on Distributed Computing Systems Workshops. Vienna: [s. n.], 2002: 22-27. [4] AGUILERA M K, STROM R E, STURMAN D C. Matching events in a content-based subscription system[C]//The 18th ACM Symposium on Principles of Distributed Computing. Atlanta: [s. n.], 1999: 3-7. [5] 陈继明, 鞠时光, 潘金贵, 等. 基于内容的快速事件匹配算法[J]. 通信学报, 2011, 32(6): 78-85. doi: 10.3969/j.issn.1000-436X.2011.06.011 CHEN J M, JU S G, PAN J G, et al. Content-based effective event matching algorithm[J]. Journal of Communications, 2011, 32(6): 78-85. doi: 10.3969/j.issn.1000-436X.2011.06.011 [6] CARZANIGA A, ROSENBLUM D S, WOLF A L. Design and evaluation of a wide-area event notification service[J]. ACM Transaction on Computer Systems, 2001, 19(3): 332-383. doi: 10.1145/380749.380767 [7] RAN Z, ZHENG D, LAI Y, et al. Applying stack bidirectional LSTM model to intrusion detection[J]. CMC-Computers, Materials & Continua, 2020, 65(1): 309-320. [8] 郝玫, 马建峰. 基于特征观点对语义匹配的产品评论可信度研究[J]. 现代情报, 2019, 39(6): 102-110. doi: 10.3969/j.issn.1008-0821.2019.06.011 HAO M, MA J F. Research on product reviews credibility based on semantic matching of feature opinion pairs[J]. Journal of Modern Information, 2019, 39(6): 102-110. doi: 10.3969/j.issn.1008-0821.2019.06.011 [9] 秦婕. 信息分发系统中基于多维度内容的事件匹配技术研究[D]. 北京: 北京邮电大学, 2019. QIN J. Research on event matching based on multidumensional content in information distribution system[D]. Beijing: Beijing University of Posts and Telecommunications, 2019. [10] 张澧枫, 殷铭, 袁平. 一种改进的多维度并行匹配发布与订阅算法[J]. 现代计算机, 2020, 61(4): 11-15. doi: 10.3969/j.issn.1007-1423.2020.04.003 ZHANG L F, YIN M, YUAN P. An improved multi-dimensional parallel matching publish and subscribe algorithm[J]. Modern Computer, 2020, 61(4): 11-15. doi: 10.3969/j.issn.1007-1423.2020.04.003 [11] 汪锦岭, 金蓓弘, 李京, 等. 基于本体的发布/订阅系统的数据模型和匹配算法[J]. 软件学报, 2005, 25(9): 18-26. WANG J L, JIN B H, LI J, et al. Data model and matching algorithm in an ontology-based publish/subscribe system[J]. Journal of Software, 2005, 25(9): 18-26. [12] 薛涛, 冯博琴, 李波, 等. 基于内容的发布订阅系统中快速匹配算法的研究[J]. 小型微型计算机系统, 2006, 27(3): 529-533. doi: 10.3969/j.issn.1000-1220.2006.03.031 XUE T, FENG B Q, LI B, et al. Efficient matching for content-based publish-subscribe systems[J]. Journal of Chinese Computer Systems, 2006, 27(3): 529-533. doi: 10.3969/j.issn.1000-1220.2006.03.031 [13] 吴雯君, 沈卓炜, 曹玖新. 基于频繁项集挖掘的发布/订阅 分布式系统运行模式识别[J]. 网络空间安全, 2020, 11(8): 9-12. WU W J, SHEN Z W, CAO J X. Running modes recognition of publish/subscribe distributed system based on frequent itemsets mining[J]. Information Security and Technology, 2020, 11(8): 9-12. [14] 黄思猛, 程良伦, 王涛. 基于双数组trie树的多模式复杂事件检测方法[J]. 计算机工程与应用, 2019, 25(4): 91-95. doi: 10.3778/j.issn.1002-8331.1711-0415 HUANG S M, CHENG L L, WANG T. Multi-pattern complex event detection method based on double-array trie-tree[J]. Computer Engineering and Applications, 2019, 25(4): 91-95. doi: 10.3778/j.issn.1002-8331.1711-0415 [15] 罗韶杰, 张立臣. 信息物理融合系统体系结构研究[J]. 计算机应用与软件, 2019, 22(2): 8-12. LUO S J, ZHANG L C. Architecture of cyber-physical system[J]. Computer Applications and Software, 2019, 22(2): 8-12. [16] 李娜, 陈福, 朱建明, 等. MQTT数据交换协议的分析与优化[J]. 网络空间安全, 2020, 10(9): 1-4. doi: 10.3969/j.issn.1674-9456.2020.09.001 LI N, CHEN F, ZHU J M, et al. Analysis and optimization of MQTT data exchange protocol[J]. Information Security and Technology, 2020, 10(9): 1-4. doi: 10.3969/j.issn.1674-9456.2020.09.001 [17] 张根涛. 基于匹配树的发布订阅中快速匹配算法研究[D]. 开封: 河南大学, 2018. ZHANG G T. Research on fast matching algorithm based on matching tree's publishing subscription[D]. Kaifeng: Henan University, 2018. [18] 丁建立, 罗云生, 王家亮, 等. 基于 B+ 树的发布/订阅并行匹配算法[J]. 计算机工程与设计, 2018, 39(1): 66-71. DING J L, LUO Y S, WANG J L, et al. Parallel matching algorithm based on B+ tree in publish/subscribe system[J]. Computer Engineering and Design, 2018, 39(1): 66-71. [19] CAO G. An event matching algorithm of attribute value domain division for content-based publish/subscribe system[C]//2018 IEEE 4th International Conference on Big Data Security on Cloud (Big Data Security), IEEE International Conference on High Performance and Smart Computing, (HPSC) and IEEE International Conference on Intelligent Data and Security (IDS). [S. l.]: IEEE, 2018: 177-182. [20] ALHAKBANI N, HASSAN M M, YKHLEF M, et al. An efficient event matching system for semantic smart data in the internet of things (IoT) environment[J]. Future Generation Computer Systems, 2019, 95(2): 163-174. [21] CHEN L, SHANG S. Approximate spatio-temporal top-k publish/subscribe[J]. World Wide Web, 2019, 22(5): 2153-2175. doi: 10.1007/s11280-018-0564-3