CN100367216C - 事件模型中的快速事件匹配方法 - Google Patents
事件模型中的快速事件匹配方法 Download PDFInfo
- Publication number
- CN100367216C CN100367216C CNB2005100406181A CN200510040618A CN100367216C CN 100367216 C CN100367216 C CN 100367216C CN B2005100406181 A CNB2005100406181 A CN B2005100406181A CN 200510040618 A CN200510040618 A CN 200510040618A CN 100367216 C CN100367216 C CN 100367216C
- Authority
- CN
- China
- Prior art keywords
- predicate
- order
- event
- incident
- coupling
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 230000008569 process Effects 0.000 claims abstract description 18
- 238000007781 pre-processing Methods 0.000 claims abstract description 6
- 230000008878 coupling Effects 0.000 claims description 71
- 238000010168 coupling process Methods 0.000 claims description 71
- 238000005859 coupling reaction Methods 0.000 claims description 71
- 238000012360 testing method Methods 0.000 claims description 24
- 230000005540 biological transmission Effects 0.000 claims description 4
- 230000003111 delayed effect Effects 0.000 claims description 3
- 238000003780 insertion Methods 0.000 claims description 3
- 230000037431 insertion Effects 0.000 claims description 3
- 230000008707 rearrangement Effects 0.000 claims description 2
- 238000012546 transfer Methods 0.000 claims description 2
- 230000008901 benefit Effects 0.000 abstract description 5
- 238000012545 processing Methods 0.000 abstract description 2
- 238000004891 communication Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 201000003231 brachydactyly type D Diseases 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
事件模型中的快速事件匹配方法步骤如下,分为事件订购和事件匹配两大部分;事件订购:在事件匹配算法的数据结构上的事件订购处理就是事件匹配的预处理过程,当事件服务接收到新的事件订购后,需要更新谓词表、接口列表和订购列表;事件匹配:在数据结构和事件订购的预处理的基础上,只需将接收到的事件在谓词表中逐行进行匹配测试。处理订购区域与发布值的正向匹配,还处理发布区域与订购值的逆向匹配以及发布区域与订购区域的对称匹配;本发明针对分布式虚拟环境中需要动态对称事件匹配支持的要求,在现有的两类算法基础上,提出了一种改进的快速事件匹配算法,此算法综合了两类算法各自的优点,提高了匹配的速度和效率。
Description
技术领域
本发明涉及分布式虚拟环境中的通讯问题,特别涉及事件模型中的快速事件匹配方法,涉及具有异步性、动态性、多对多和匿名等特点事件模型的通讯方式。
技术背景
分布式虚拟环境(DVE)技术已经成为目前计算机领域的一个热门的学科,在军事、医学、建筑、教育及娱乐等众多领域中都得到了成功的应用[1]Singh G,Serra L.Brick Net:A Software Toolkit for Network Based Virtual Worlds(分布式虚拟环境的软件工具包),Presence,1994,3(1):pp.19-34。
事件模型(Event Model)是独立于应用的用于提供基于事件通讯的结构,事件(Event)[2]M.Haahr,R.Meier,P.Nixon,V.Cahill and E.Jul,Filtering and Scalabilityin the ECO Distributed Event Model(ECO分布式事件模型的过滤和稳定性),In 5thInternational Symposium on Software Engineering for Parallel and DistributedSystems,2000。就是这种通信模型中的基本通信机制。作为一种新型的通信模型,事件模型在分布式系统通讯中的作用日益明显,其特点和意义在于它提供了一种松耦合的通讯模式。这种通讯模式有异步通信、动态性、多对多通信方式和可匿名的特点,这些特点使其能够适应大规模分布式系统的需要,同时使得分布式虚拟环境的通讯模块和仿真模块可以分别独立进行设计开发,减少了设计开发的复杂性。
事件匹配是事件模型设计中非常重要的一个环节,是决定事件模型的事件传递的效率和准确性的关键。
在分布式虚拟环境的事件模型中,最受关注的是基于内容的对称发布/定购模型中的事件匹配。在这种模型中,事件的发布区域需要与每个订购区域进行匹配,而每个发布区域和订购区域又是由多个谓词组成,所以实际上是通过谓词之间的匹配来实现发布区域与订购区域的匹配。
当一个系统要处理大量的订购和事件时,事件匹配需要面对成千上万的谓词,所以,能否快速的进行事件匹配决定了系统的实时性能否得到满足,同时事件匹配是否准确也将影响整个事件传递的准确性,而一个低效率低准确率的事件匹配算法很大程度上会给系统带来拥塞和瓶颈。
因此,研究一种快速准确的事件匹配算法不仅在相关研究领域具有深远的意义,同时也在很大程度上是分布式虚拟环境在商业领域能否成功的应用的关键。现有主要的事件匹配算法研究都是在减少额外的谓词匹配测试方面进行优化处理,主要的算法一般分为两类[3]Walid Rjaibi,Klaus Dittrich and Dieter Jaepel.Event matching in symmetric subscription systems(对称订购系统中的事件匹配),In CASCON Conference,2002:基于谓词索引算法(Predicate Indexing Based)和基于匹配网络算法(Testing Network Based)。
基于谓词索引算法的事件匹配算法主要以订购中的谓词组织成的索引结构为基础,此类算法一般由两个阶段组成,第一阶段进行谓词匹配测试,第二阶段再使用第一阶段的测试结果进行订购匹配测试。代表算法有:计数算法(CountingAlgorithm)[4]T.W.Yan and H.Garc’ya-Molina.Index Structures for SelectiveDissemination of Information Under the Boolean Model(在布尔模型下信息选择性分发的索引结构).ACM Trans.Database Syst.,1994,.19(2):pp.332-334;汉森算法(Hanson Algorithm)[5]E.Hanson,M.Chaabouni,C.Kim and Y.Wang.A PredicateMatching Algorithm for Database Rule Systems(一种数据库规则系统中的谓词匹配算法),In SIGMOD’90,1990等。
基于匹配网络的算法的主要思想是在预处理阶段把订购组成一个图或者匹配网络的结构,事件从图的入口进入,通过各个中间节点进行过滤,直到出口判定匹配结果。代表算法有:基于匹配树(Testing Tree Based)的算法[6]M.Aguilera,R.Strom,D.Sturman,M.Astley and T.Chandra.Matching Events in A Content-basedSubscription System(基于内容的订购系统中的事件匹配),In Eighteen ACMSymposium on Principles of Distributed Computing(PODC’99),1999和基于二叉决策图(Binary Decisions Diagrams,BDDs)的算法[7]A.Campailla,S.Chaki,E.Clarke,S.Jha and H.Veith.Efficient Filtering in Publish-Subscribe Systems Using BinaryDecision Diagrams(发布/订购系统中使用二叉决策图的高效过滤),In Proceedingsof the 23th International Conference on Software Engineering,Toronto,Canada,May2001,pp.443-452。
现有的两类匹配算法都有各自的不足:如基于谓词索引的算法无法利用不同属性间的相关性辅助进行匹配,从而提高匹配效率;而基于决策网络的事件匹配算法需要静态的构建匹配树或者二叉决策图,不适应动态事件匹配的需要,难以进行动态更新,一般只适用于静态的事件模型。而在分布式虚拟环境中,事件和订购都是动态的,不仅事件需要实时高速的发送,订购也需要根据用户状态的改变而不断更新。此外,目前算法只能适应非对称的事件匹配,不能解决分布式虚拟环境中对称事件匹配的问题。
发明内容
本发明的目的是:针对分布式虚拟环境中,需要动态对称事件匹配支持的要求,在现有的两类算法基础上,提出一种改进的快速事件匹配算法,此算法能综合了两类算法各自的优点,不仅提高了匹配的速度和效率,还解决了对称事件匹配的问题。
假设订购表达式由多个谓词组成,而事件仍然是由属性对组成。
本发明的重点是数据结构部分,这也是本发明的算法优化的关键。主要数据结构如附图1所示,是由一张谓词表(Predicate Table)、一个匹配桶(MatchBucket)、订购列表(Subscription List)和接口列表(Interface List)组成。
谓词表(Predict Table):本发明中,谓词表是数据结构的核心部分,谓词表的组织结合了谓词索引算法和匹配网络算法各自数据结构的特点。所有的谓词分类成为谓词族,具有相同属性和相同操作符的谓词归入一个谓词族。所有谓词族分成等值谓词、上域值谓词和下域值谓词三类。每个谓词族对应谓词表的一行,且按序排列:“attribute<”谓词族(如附图2),上域值谓词和下域值谓词从大到小排列,反之,“attribute>”谓词族,上域值谓词和下域值谓词从小到大排序,对于等值谓词族则无论何种顺序都可以。此外,谓词表中将订购中的谓词用指针链接起来,最后都指向订购列表的具体订购。
匹配桶(Match Bucket):用于辅助谓词表进行匹配。对谓词表的匹配是逐行进行的,但不是所有的订购都对所有的谓词族进行订购,有的指针可能会跨越某些行,为了使得这样的谓词在逐行扫描中不会丢失,采用匹配桶的数据结构,用于暂时存储这些被延缓的谓词的索引。
接口列表(Interface List)和订购列表(Subscription List):接口列表和订购列表维护了接口和接口对应的订购信息。订购列表登记了所有加入到谓词表的订购的一个记录,同时有一个指向谓词表中订购的第一个谓词的指针,便于访问整个订购的所有谓词。接口代表了事件的传送方向,是事件匹配的最终目的。每个接口可能有多条订购信息,
所以用接口列表和订购列表将所有的订购组织在一起。
事件模型中的快速事件匹配方法步骤如下,分为事件订购和事件匹配两大部分:
事件订购:在事件匹配算法的数据结构上的事件订购处理就是事件匹配的预处理过程,当事件服务接收到新的事件订购后,需要更新谓词表、接口列表和订购列表;
首先,将订购加入到订购列表中,将相应接口的最后一个订购在订购列表中的最后一个条目的后续指向新加入的订购,并将接口列表中对应接口的订购数加1;如果订购数超过了限值,在这个接口的所有订购中选取两个订购进行聚集,选择的标准是两个订购的重叠部分最大;
然后,在谓词表中登记订购条目。订购的信息按照谓词表从上往下的顺序,在订购所包含的每个谓词族中通过二分查找,找到插入位置,把对应的订购值插入表中;在谓词表插入的过程中,将插入的谓词按从上至下的顺序逐一链接,最后指向订购列表中的对应位置,并向订购列表中对应表项传递订购在谓词表中第一个位置的指针。
事件匹配:在数据结构和事件订购的预处理的基础上,只需将接收到的事件在谓词表中逐行进行匹配测试,设Pi为第i行谓词族的所有谓词的集合,Pi_match表示Pi中匹配该事件的谓词集合,Smatch表示匹配的订购集合;
算法首先对匹配桶内容进行初始化。遍历订购列表,找到每个订购的第一个谓词的位置,初始化后,匹配桶中保存了所有订购的第一个谓词的索引;采用对谓词表的匹配逐行进行的匹配桶的数据结构,用于暂时存储这些被延缓的谓词的索引。
然后需要对谓词表进行逐行扫描。对于谓词表的每一行,主要进行两部分工作:找到这个谓词族中匹配该事件的所有谓词,然后根据匹配桶的内容对这些匹配的谓词逐个进行考察;将谓词表中的所有谓词分成匹配和不匹配两部分,
在对第i行进行测试时,对于非等值谓词族,由于谓词都经过排序,所以可以使用二分查找法,根据事件中对应的属性值,找到一个位置将Pi分成Pi_left和Pi_right两部分,Pi_left就对应这一行的Pi_match,表示该行的谓词中匹配该事件的集合;对于等值谓词族,则查找所有谓词值等于事件对应的属性值的谓词,放入Pi_match;如果该事件不包含此行对应的属性,则认为这一行所有的谓词都是匹配的,Pi_match包含该行的所有谓词;
在逐行测试中,设在对第i行进行测试时,匹配桶中第i行对应的谓词集合为Bi,则该行中所有真正满足匹配测试的谓词集合为Pi_match∩Bi;将这个集合中是订购最后一个节点的谓词对应的订购加入Smatch,其余的则将其后继谓词索引填入匹配桶中对应位置。对Pi_match和Bi的求交运算,只需要把Bi中每个谓词索引与这一行将谓词表Pi分为Pi_left和Pi_right两部分的分割位置进行比较,在这个位置之前就表示这个谓词属于这个求交结果,否则被剔除。
本发明的特点是:此算法综合了两类算法各自的优点,不仅提高了匹配的速度和效率,还解决了对称事件匹配的问题。
附图说明
图1是本发明的主要数据结构,是由一张谓词表(Predicate Table)、一个匹配桶(Match Bucket)、订购列表(Subscription List)和接口列表(Interface List)组成。
图2是本发明谓词表中的一行(“X<”谓词族):每个谓词族对应谓词表的一行,且按序排列。
图3是本发明算法的伪代码
具体实施方法
本发明具体方法(算法)步骤如下,主要分为事件订购和事件匹配两大部分:
事件订购:虽然本发明的设计目标是快速事件匹配算法,但是事件订购也影响了事件匹配所依赖的数据结构。在事件匹配算法的数据结构上的事件订购处理就是事件匹配的预处理过程。当事件服务接收到新的事件订购后,需要更新谓词表、接口列表和订购列表。首先,将订购加入到订购列表中,将相应接口的最后一个订购在订购列表中的最后一个条目的后续指向新加入的订购,并将接口列表中对应接口的订购数加1。如果订购数超过了限值,在这个接口的所有订购中选取两个订购进行聚集,选择的标准是两个订购的重叠部分最大。然后,在谓词表中登记订购条目。订购的信息按照谓词表从上往下的顺序,在订购所包含的每个谓词族中通过二分查找,找到插入位置,把对应的订购值插入表中。在谓词表插入的过程中,将插入的谓词按从上至下的顺序逐一链接,最后指向订购列表中的对应位置,并向订购列表中对应表项传递订购在谓词表中第一个位置的指针。
用户也可以向事件服务发送更新已有订购的请求。在分布式虚拟环境中,需要不断地更新订购。更新订购的处理步骤与加入新订购类似。在谓词表中,将对应订购的谓词逐个替换,并重新排序插入。
事件匹配:在数据结构和事件订购的预处理的基础上,只需将接收到的事件在谓词表中逐行进行匹配测试。
设Pi为第i行谓词族的所有谓词的集合,Pi_match表示Pi中匹配该事件的谓词集合。Smatch表示匹配的订购集合。
算法首先对匹配桶内容进行初始化。遍历订购列表,找到每个订购的第一个谓词的位置。如果一个订购的第一个谓词在谓词表中第i行的第j列的位置,那么在匹配桶的第i行中加入这个位置索引j。初始化后,匹配桶中保存了所有订购的第一个谓词的索引。
然后需要对谓词表进行逐行扫描。对于谓词表的每一行,主要进行两部分工作:找到这个谓词族中匹配该事件的所有谓词,然后根据匹配桶的内容对这些匹配的谓词逐个进行考察。
找到谓词族中匹配事件的所有谓词就是将谓词表中的所有谓词分成匹配和不匹配两部分。在对第i行进行测试时,对于非等值谓词族,由于谓词都经过排序,所以可以使用二分查找法,根据事件中对应的属性值,找到一个位置将Pi分成Pi_left和Pi_right两部分,Pi_left就对应这一行的Pi_match,表示该行的谓词中匹配该事件的集合。对于等值谓词族,则查找所有谓词值等于事件对应的属性值的谓词,放入Pi_match如果该事件不包含此行对应的属性,则认为这一行所有的谓词都是匹配的,Pi_match包含该行的所有谓词。
在逐行测试中,设在对第i行进行测试时,匹配桶中第i行对应的谓词集合为Bi,则该行中所有真正满足匹配测试的谓词集合为Pi_match∩Bi。将这个集合中是订购最后一个节点的谓词对应的订购加入Smatch,其余的则将其后继谓词索引填入匹配桶中对应位置。对Pi_match和Bi的求交运算,只需要把Bi中每个谓词索引与这一行将谓词表Pi分为Pi_left和Pi_right两部分的分割位置进行比较,在这个位置之前就表示这个谓词属于这个求交结果,否则被剔除。
对称事件的匹配:
本发明还能解决其它算法无法兼顾的对称事件的匹配问题。对称的事件匹配不仅需要能处理订购区域与发布值的正向匹配,还需要能处理发布区域与订购值的逆向匹配以及发布区域与订购区域的对称匹配。
对称事件匹配要处理的发布区域和订购区域都是由多个谓词组成的,实际上对称事件匹配的问题就可以分解为谓词与谓词之间的匹配。在本发明中,谓词已经根据各自限定的操作符分成三类。
对于等值谓词,不管正向、逆向还是对称的事件匹配处理都是相同的,只要属性值相等就匹配,不相等就不匹配。
上域值和下域值谓词的事件匹配则有所不同,上域值和下域值谓词一般是成对出现,一起确定一个属性的范围,因此在谓词匹配时需要谓词所包含的属性成对的匹配,这往往采用交叉的谓词匹配方法,如对于某属性谓词A,订购区域A∈(a,b),发布
区域A∈(c,d),很明显,只有当c<b或者d<a的情况下才不匹配,其他情况下两个
属性范围都有重叠,所以需要将订购的上域值谓词与发布的下域值谓词比较,订购的下域值谓词则与发布的上域值谓词比较。
交叉的谓词匹配在上述介绍的谓词表的算法结构上很容易实现,算法仍然适用。对称的算法仍然在谓词表中逐行扫描,对于等值谓词族还是一样。在测试上域值谓词族时,选取发布区域中的下域值谓词的属性值进行测试,仍然像非对称事件匹配一样进行二分查找,把一行中的谓词分成左右两部分,左半部的谓词部分是匹配的。对于下域值谓词族的测试,则取发布区域中相应的上域值谓词匹配,还是将谓词行分割后取左半部。
所以,对谓词表的扫描过程和上述的算法基本相同,改变的只是选取的测试对象,算法本身不需要改变,这就实现了对称事件的匹配。
在这样的对称的事件匹配算法中,如果要进行正向或者逆向的事件匹配,只需要把一方的订购区域中的相关属性的上域值谓词和下域值谓词取相同的值,其他处理仍然一样。
本发明提出的方法,以及据此设计实现的分布式虚拟环境中的事件模型系统有如下的优点:
匹配速度快:本发明的算法利用了谓词间的关联性和属性间的相关性,加快了匹配速度,使得基于谓词索引算法和基于匹配网络算法各自的优点都能在本发明中得到体现。
动态性:本发明的算法不需要像现有的如基于匹配网络的算法一样静态的构造匹配网络,克服了这类算法的缺点,可以动态的更新订购信息。
高效率:与基于谓词索引的算法相比,该算法也对谓词族进行了划分,并对每个谓词族用排序或者散列表的方式进行了索引,这使得在对每个谓词进行匹配时能获得很高的效率。
复杂度降低:本发明的算法的空间复杂度按照订购数量线性增长;其预处理过程即事件订购的时间复杂度比现有的基于匹配网络的事件匹配算法大大降低,匹配过程的时间复杂度与其他事件匹配算法的时间复杂度相当,因此,算法的总体时间复杂度会大幅度降低。
实现对称事件的匹配:本发明的算法不仅能高效准确的进行非对称事件的匹配,同时还适用于对称事件的匹配,这是现有其它算法所无法做到的。
当前,随着Internet的广泛使用,分布式虚拟环境及其相关的一系列应用都迫切的需要一种快速高效的事件匹配技术,而本发明的算法可以说正适应了这种需求,可以预见有着良好的市场前景。
算法的伪代码如图3所示。
实施例:应用于网络的分布式事件模型中
在基于CBT(Core-Based Tree)组播树及主动路由思想的分布式环境中,所有主机都通过主动路由器(Active Router)连接到组播树上,同时使用发布/订购的事件模型来进行通讯。其中的发布消息、订购消息或发布区域、订购区域都用多个属性的值或者值域组成的结构表示,称为一个兴趣表达式。
在第一阶段,主动路由器在接收到连接其的各主机或下游路由器发送的订购消息后,在维护虚拟接口状态的同时,创建和维护所有订购区域(兴趣表达式)构成的路由空间(Routing Space)。这个路由空间如前所述,被构造成多个链表的结构(谓词表,订购列表及接口列表),根据兴趣表达式中的属性的数目和关系来确定链表的结构。
此后,发布/订购消息不断在组播树上传播,主动路由器根据新的订购消息或者订购更新消息不停的维护路由空间的同时,需要处理接收到的发布数据,根据发布数据中的兴趣表达式来进行相应的匹配。
在实施具体匹配时,根据本发明的快速事件匹配方法:首先将发布消息中的兴趣表达式中的每个属性值域或值与对应路由空间中的链表或数组元素进行比较。由于链表是排过序的,因此从小到大的遍历链表就可以找到发布的属性值域在链表中对应的位置,也就可以知道是否和某个虚拟接口的订购区域存在交集。
此时,进行判断:如果是对第一个属性值域进行查找过程,那么把存在交集的兴趣表达式收集起来放入一个集合中,对后继属性的匹配过程将从这个结果集合中剔除不匹配的表达式。由于要求发布数据中的所有属性都要求同时满足路由空间中的某个兴趣表达式,因此上述做法是合理的,只要有一个条件不满足,就可以剔除不必要的表达式。对谓词表的扫描结束,即完成匹配后,集合中剩下的表达式就是匹配的结果。
匹配完成后,成功匹配的发布消息根据订购链表和接口链表中的内容可以找到对应的订购所在的虚拟接口,并由虚拟接口向对应的主动路由器或主机转发这个发布的数据。
上述过程不断重复,承担整个分布式环境中的通讯的进行。
本发明是提供该方法的实现思想和计算机程序, 不需要特别的生产条件、一旦研究成功成本几乎可忽略不计。
Claims (2)
1.事件模型中的快速事件匹配方法,在如下由一张谓词表(PredicateTable)、一个匹配桶(Match Bucket)、订购列表(Subscription List)和接口列表(Interface List)组成的数据结构中:
谓词表(Predict Table):谓词表是数据结构的核心部分,谓词表的组织结合了谓词索引算法和匹配网络算法各自数据结构的特点;
匹配桶(Match Bucket):用于辅助谓词表进行匹配;
接口列表(Interface List)和订购列表(Subscription List):接口列表和订购列表维护了接口和接口对应的订购信息;订购列表登记了所有加入到谓词表的订购的一个记录,同时有一个指向谓词表中订购的第一个谓词的指针,便于访问整个订购的所有谓词;接口代表了事件的传送方向,是事件匹配的最终目的;每个接口可能有多条订购信息,用接口列表和订购列表将所有的订购组织在一起:
其特征是快速事件匹配分为事件订购和事件匹配两大部分;
事件订购:在事件匹配算法的数据结构上的事件订购处理就是事件匹配的预处理过程,当事件服务接收到新的事件订购后,需要更新谓词表、接口列表和订购列表;
首先,将订购加入到订购列表中,将相应接口的最后一个订购在订购列表中的最后一个条目的后续指向新加入的订购,并将接口列表中对应接口的订购数加1;如果订购数超过了限值,在这个接口的所有订购中选取两个订购进行聚集,选择的标准是两个订购的重叠部分最大;
然后,在谓词表中登记订购条目:订购的信息按照谓词表从上往下的顺序,在订购所包含的每个谓词族中通过二分查找,找到插入位置,把对应的订购值插入表中;在谓词表插入的过程中,将插入的谓词按从上至下的顺序逐一链接,最后指向订购列表中的对应位置,并向订购列表中对应表项传递订购在谓词表中第一个位置的指针;
事件匹配:在数据结构和事件订购的预处理的基础上,只需将接收到的事件在谓词表中逐行进行匹配测试,设Pi为第i行谓词族的所有谓词的集合,Pi_match表示Pi中匹配该事件的谓词集合,Smatch表示匹配的订购集合;
算法首先对匹配桶内容进行初始化:遍历订购列表,找到每个订购的第一个谓词的位置,初始化后,匹配桶中保存了所有订购的第一个谓词的索引;采用对谓词表的匹配逐行进行的匹配桶的数据结构,用于暂时存储这些被延缓的谓词的索引;
然后需要对谓词表进行逐行扫描,对于谓词表的每一行,主要进行两部分工作:找到这个谓词族中匹配该事件的所有谓词,然后根据匹配桶的内容对这些匹配的谓词逐个进行考察;将谓词表中的所有谓词分成匹配和不匹配两部分;
在对第i行进行测试时,对于非等值谓词族,由于谓词都经过排序,所以可以使用二分查找法,根据事件中对应的属性值,找到一个位置将Pi分成Pi_left和Pi_right两部分,Pi_left就对应这一行的Pi_match,表示该行的谓词中匹配该事件的集合;对于等值谓词族,则查找所有谓词值等于事件对应的属性值的谓词,放入Pi_match;如果该事件不包含此行对应的属性,则认为这一行所有的谓词都是匹配的,Pi_match包含该行的所有谓词;
在逐行测试中,设在对第i行进行测试时,匹配桶中第i行对应的谓词集合为Bi,则该行中所有真正满足匹配测试的谓词集合为Pi_match∩Bi;将这个集合中是订购最后一个节点的谓词对应的订购加入Smatch,其余的则将其后继谓词索引填入匹配桶中对应位置;对Pi_match和Bi的求交运算,只需要把Bi中每个谓词索引与这一行将谓词表Pi分为Pi_left和Pi_right两部分的分割位置进行比较,在这个位置之前就表示这个谓词属于这个求交结果,否则被剔除。
2.由权利要求1所述的事件模型中的快速事件匹配方法,其特征是用户向事件服务发送更新已有订购的请求;在分布式虚拟环境中,需要不断地更新订购;更新订购的处理步骤与加入新订购类似;在谓词表中,将对应订购的谓词逐个替换,并重新排序插入。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100406181A CN100367216C (zh) | 2005-06-20 | 2005-06-20 | 事件模型中的快速事件匹配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100406181A CN100367216C (zh) | 2005-06-20 | 2005-06-20 | 事件模型中的快速事件匹配方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1694094A CN1694094A (zh) | 2005-11-09 |
CN100367216C true CN100367216C (zh) | 2008-02-06 |
Family
ID=35353057
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100406181A Expired - Fee Related CN100367216C (zh) | 2005-06-20 | 2005-06-20 | 事件模型中的快速事件匹配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100367216C (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103488650A (zh) * | 2012-06-14 | 2014-01-01 | 镇江华扬信息科技有限公司 | 一种事件模型中的事件匹配方法 |
CN103310350B (zh) * | 2013-06-19 | 2016-01-20 | 西北工业大学 | 一种基于谓词区分和关联的快速订阅与匹配方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003027907A1 (en) * | 2001-09-28 | 2003-04-03 | Client Dynamics,Inc. | Method and system for database queries and information delivery |
CN1452066A (zh) * | 2002-04-15 | 2003-10-29 | 微软公司 | 灵活的基于预订的事件通告 |
WO2004006124A2 (en) * | 2002-07-03 | 2004-01-15 | Word Data Corp. | Text-representation, text-matching and text-classification code, system and method |
CN1561035A (zh) * | 2004-02-19 | 2005-01-05 | 上海复旦光华信息科技股份有限公司 | 基于映射表的通用安全审计策略定制方法 |
-
2005
- 2005-06-20 CN CNB2005100406181A patent/CN100367216C/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003027907A1 (en) * | 2001-09-28 | 2003-04-03 | Client Dynamics,Inc. | Method and system for database queries and information delivery |
CN1452066A (zh) * | 2002-04-15 | 2003-10-29 | 微软公司 | 灵活的基于预订的事件通告 |
WO2004006124A2 (en) * | 2002-07-03 | 2004-01-15 | Word Data Corp. | Text-representation, text-matching and text-classification code, system and method |
CN1561035A (zh) * | 2004-02-19 | 2005-01-05 | 上海复旦光华信息科技股份有限公司 | 基于映射表的通用安全审计策略定制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1694094A (zh) | 2005-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Simitsis et al. | Optimizing ETL processes in data warehouses | |
Simitsis et al. | State-space optimization of ETL workflows | |
Motro et al. | Fusionplex: resolution of data inconsistencies in the integration of heterogeneous information sources | |
EP1738290B1 (en) | Partial query caching | |
CN101894149B (zh) | 跟踪查询单据的方法和装置 | |
CN100385880C (zh) | 分组分类装置和使用字段级特里结构的方法 | |
CN107247758B (zh) | 基于银行核心系统的数据处理方法 | |
CN107229735A (zh) | 基于自然语言处理的舆情信息分析预警方法 | |
CN108509437A (zh) | 一种ElasticSearch查询加速方法 | |
CN107256263A (zh) | 互联网热点信息自动监测方法 | |
CN106815258A (zh) | 一种数据存储方法和协调节点 | |
CN109002470A (zh) | 知识图谱构建方法及装置、客户端 | |
CN105975489A (zh) | 一种基于元数据的在线sql代码补全方法 | |
CN103914487A (zh) | 文档的采集、标识及关联的系统 | |
CN100367216C (zh) | 事件模型中的快速事件匹配方法 | |
CN101500012A (zh) | 一种报文分类方法和系统 | |
CN100485664C (zh) | 一种多关键字自动状态机查找匹配方法 | |
CN110532282A (zh) | 数据查询方法及装置 | |
Ge et al. | A cost-driven top-K queries optimization approach on federated RDF systems | |
CN103984760B (zh) | 面向内容发布订阅系统的数据结构及其混合事件匹配方法 | |
Vagena et al. | Roxsum: Leveraging data aggregation and batch processing for xml routing | |
CN103049506A (zh) | 移动设备的数据缓存方法及其系统 | |
CN103488650A (zh) | 一种事件模型中的事件匹配方法 | |
Bou et al. | An improved method of keyword search over relational data streams by aggressive candidate network consolidation | |
CN102339292A (zh) | 分布式搜索方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080206 |