一种大规模发布订阅系统的语义匹配算法的制作方法

文档序号:6460493阅读:223来源:国知局

专利名称::一种大规模发布订阅系统的语义匹配算法的制作方法
技术领域
:本发明涉及Web服务
技术领域
,尤其是指一种大规模发布订阅系统的语义匹配算法。
背景技术
:发布订阅是新一代的网络计算,是一种以大规模、分散控制、动态性、自治性和松耦合为主要特征的分布式计算。已成为分布式计算领域的重要支撑平台,进入人们的生活、工作、科研等领域,是现代计算和应用的研究热点。支持复杂网络的大规模发布/订阅系统,可以预见的应用场景更是包括面向服务的计算、无线传感器网络、移动计算、普适计算、协同环境、企业应用集成等。如图1所示,发布/订阅模型一般由信息生产者(发布者)、信息消费者(订阅者)和事件通知服务组成。其流程为信息消费者向事件通知服务注册订阅,表达对特定信息的兴趣;信息生产者以事件形式发送信息到事件通知服务,然后事件通知服务路由匹配的事件到相应的信息消费者。发布/订阅系统的核心机制之一就是匹配算法。匹配算法负责高效地找到与给定事件相匹配的所有订阅条件,其设计目标主要包括匹配的时间效率、匹配的空间效率和订阅维护的效率。数据模型是匹配算法的基础,不同数据模型的发布/订阅系统的匹配算法都不一样。基于Map的发布订阅系统匹配算法,时间复杂度较低,速度很快,但其空间复杂度为指数级。同时,该算法的订阅维护的成本很高,每当客户增加订阅或取消订阅时,系统难以对该搜索树进行修改以反映订阅的变化,而必须要重建搜索树。基于XML的发布/订阅系统,其表达能力比基于M即的系统有了很大的提高。虽然XML具有很强的表达能力,但是订阅者必须预先知道被发布的XML文档所遵从的XMLSchema,才能根据该Schema定义出相应的订阅条件。以上发布订阅系统的事件/订阅匹配属于精确匹配,而语义匹配算法是一种支持模糊匹配的方法,即在没有特定订阅和发布的精确知识,用户发布或订阅采用的是不精确词汇的情况下,发布和订阅之间仍然能够得到有效匹配的算法。
发明内容针对上述匹配算法的时间效率低、空间复杂度高及维护复杂的问题。本发明提供了一种空间复杂度低,时间复杂度低的大规模发布订阅系统的语义匹配算法。一种大规模发布订阅系统的语义匹配算法,包括如下步骤-1)为订阅图建立索引;2)转化事件到特定的数据结构;3)把事件图的数据结构提交给事件匹配器;4)事件匹配器进行事件图同订阅图模式的匹配运算,找出匹配的订阅,由系统把事件分发给匹配的订阅者。进一步的,所述步骤1)为节点以订阅总图的方式保存订阅,每个订阅要被合并到订阅总图中,过滤不相关的订阅条件,同时维护订阅的插入和删除。进一步的,所述步骤2)为为直接从事件的原始格式生成事件的数据结构,或先把事件的原始格式转换成RDF事件图的结构,然后对图进行深度或宽度优先搜索遍历来生成事件的数据结构。更进一步的,所述RDF事件图有三类节点空节点、类型节点和文本节点。进一步的,所述步骤2)中所述特定的数据结构由包含由属性和节点对名的PartA和表示资源节点的类型PartB两部分组成。进一步的,所述步骤4)中事件图同订阅图模式的匹配运算为三个阶段第一个阶段根据订阅索引结构过滤不相关的订阅;第二个阶段根据匹配服务器内核体系结构设置并行方案;第三阶段对过滤后的订阅进行匹配,以发现匹配成功的订阅。本发明的有益效果为降低事件与订阅匹配的时间,提高事件匹配效率,使得随着订阅和发布事件数目的增加,事件匹配效率不会受到严重的影响,系统性能不会恶化。同时,根据匹配服务器的内核体系结构自适应调整匹配算法,充分利用多核技术提高匹配效率。具体本发明具有以下优点首先,空间复杂度低。节点的空间资源主要消耗在单个订阅图和合并订阅图的存储上。假定单个订阅图的总数为n,图索引结构中的节点对数目为k,则所有单个订阅图的空间复杂度为O(n*k)。假定合并订阅图中的结点对数目为1,每个结点对所连接的订阅列表的平均长度为m,则合并订阅图的空间复杂度为0(1+1*m)。因此总体空间复杂度为O(n*k+1+1*m)。考虑到当插入订阅S到合并订阅图时,要么把S的结点对名(NPN)加入合并订阅图,然后再把S加入到订阅列表,或者在NPN已经存在的情况下,直接把S加入到订阅列表中,因此n伞k是小于等于lHcm的。而1*m的大小取决与订阅之间的重叠率。重叠率越高,1*m就越小并趋近于n*k。当重叠率为零时,即任意两个订阅图之间没有同样的连接,1*m=2n*k。而k远远小于n,因此总体空间复杂度可表示为O(n),说明内存的消耗基本上同订阅的个数成线性关系。其次,时间复杂度低。订阅插入算法的时间复杂度为0(k),只简单依赖于订阅S的结点对数目。事件转换算法的时间复杂度也只取决于事件的三元组个数,假定三元组的个数为t,即时间复杂度为O(t)。匹配算法的时间开销主要是结点对匹配。假设i是事件数据结构中属性映射表的大小同每个属性相关的结点对的平均个数的乘积,j是合并订阅图中每个属性下面的平均结点对数目,则时间复杂度是O(i*j*m)。同时考虑到利用多核体系结构,消耗时间将会更低。图1发布/订阅系统模型图图2RDF事件图图3订阅S1和S2的图模式图4订阅图的索引结构图5合并订阅图的索引结构图6事件图的数据结构具体实施例方式为使本发明的目的、技术方案和优点更加清楚,以下举实例对本发明进一步详细说明。在本系统中,发布者发布以RDF/XML语法表示的事件后,系统把事件转化为RDF图的数据结构。本发明的RDF事件图有三类节点空节点、类型节点和文本节点。图2展示了一个RDF事件图,它们的具体实现如下描述空节点没有URI引用或者不需要URI引用,只是作为RDF事件图中的"过渡"节点。空节点在RDF事件图中很常见,因为很多资源可以使用丰富的属性来说明,因此不需要URI引用;同时很多资源本身可能没有URI引用。当RDF事件图表示为三元组时,空节点的表示使用"一:name"形式的标识符,其中name是由系统任意产生的能唯一标识一个空节点的名字。把RDF事件图序列化成XML格式时,使用rdf:nodeID属性来引用空节点,其属性值也为系统任意产生的能唯一标志一个空节点的标识符,但不必以"」"开头。空节点标识符仅仅是在把RDF图表示成三元组或者RDF/XML的时候,用来表示和区分RDF图中的空节点。类型节点至少有一个rdf:type属性声明它是某个特定类型或类的实例。允许一个类型节点有多个rdf:type属性,说明该类型节点同时是多个类的实例。把RDF事件图表示为XML格式时,RDF/XML提供了一种特殊的简略形式以描述这些类型节点。在简略形式中,rdf:type属性及其值被移去,而节点对应的rdf:Description元素被替换为一个QName(QualifiedN謙)元素。一个QName包括一个代表命名空间的前缀,其后是一个冒号,然后是该命名空间内的一个词汇名(或者称为局部名)。文本节点,包括普通文本节点和类型文本节点。例如,以"notebook"和"new"为标签的节点是普通文本节点,其隐含的类型为字符串,说明一个拍卖项的物品名称为笔记本,其质量较新。以"2008-2-29'、sd:date"为标签的节点是类型文本节点,其中上标符号指出文本的类型为日期型。由于系统把事件表示为RDF图,所以订阅被描述为创建在RDF图语法之上的有向图模式(directedgraphpatterns),图模式规定了RDF事件图的形状以及对某些节点和弧的约束。订阅图模式如图3所示,订阅图中除了rdf:type属性以外,所有其他的属性均以'》'"代替。每个空节点被分配一个独一无二的标识符,形如"-^"7。」'"。URI引用和文本分别被表示为""^e/」'"和""^"U"。所有的z'都满足Ql。每个变量节点的标签均以"一打头,表示这个节点是个变量,其后紧跟变量名"7/"。在系统中,规定变量名必须以""为前缀,其后为字符串。字符串由数字、下划线和英文字母组成,不允许出现其他字符。用户在作订阅条件时,可以按照上述规则给变量取任意的名字。每个变量资源节点都有一个rdf:type属性指出变量所要满足的类型。文本节点在其变量名之后跟随变量约束的布尔表达式。发布订阅通知服务首先为订阅图建立了索引。节点以订阅总图的方式保存订阅,每个订阅要被合并到订阅总图中,从而过滤不相关的订阅条件。同时维护订阅的插入和删除。订阅图合并的特点是充分利用大规模发布订阅系统订阅的重复性,减少匹配次数。系统采用了RDF/XML格式表示事件,它既可以直接从事件的原始格式生成事件的数据结构,也可以先把它转换成RDF图的结构,然后对图进行深度(或宽度)优先搜索遍历来生成事件的数据结构。由于事件的交换格式是RDF/XML,因此首先要把事件转换成相应的数据结构。当RDF事件图的数据结构创建好后,把它提交给事件匹配器。事件匹配器进行事件图同订阅图模式的匹配运算,找出匹配的订阅,然后由系统把事件分发给匹配的订阅者。图模式匹配过程包括1.为订阅图建立索引,并不断合并订阅图,以维持一个没有冗余信息的订阅总图。2.当事件到达时,把事件转化为适合匹配的特定数据结构。3.在订阅和事件都已建立特定数据结构后,根据三元组成功匹配的数量,并利用多核体系结构,进行具体匹配运算。本发明在匹配订阅计算中,充分利用了多核体系结构。发布订阅通知服务在获取内核体系结构信息后,自适应调节匹配算法,达到并行匹配计算的目的。本发明构建在语义Web上,利用RDF图和多核技术实现发布订阅系统匹配的可靠性和快速性。这种图模式匹配过程描述如下首先,为订阅图建立索引。节点以订阅总图的方式保存订阅,每个订阅要被合并到订阅总图中,订阅总图称为合并订阅图(mergedsubscriptionsgraph)。为合并订阅图建立索引以过滤不相关的订阅条件。订阅图的索引结构的数据结构由三部分组成VT:具有两列的变量绑定表,字段名为订阅中的变量名、URI引用或者文本;H丽PN:节点对哈希表(hashmap),映射结点对名NPN(nodepairname)到VTs对象,其中NPN是两个节点标签的连接字符串,主体节点标签在前,客体节点标签在后,中间以连字符"_"隔开,VTs是包含至少一个变量表VT的对象。注意,对于变量节点,只取标签中的"*"号生成NPN。HMProp:属性哈希表,映射属性名到H丽PN,属性名为属性的URIref。当订阅到达时,根据上述三元组生成索引结构。接着,这个订阅被插入到合并订阅图中。订阅图及其合并订阅图数据结构如图4、图5所示。对于到达订阅图中的每个属性P,首先根据属性P的名字从合并订阅图的属性映射表HMProp中得到结点对哈希表HMNPN。如果H,PN为空,说明属性P是第一次出现在合并订阅图中,因此创建一个新的H丽PN,把(P,H丽PN)放入合并订阅图的HMProp中。接着对到达订阅图中该属性P下的每个结点对名NPN,根据NPN从H,PN属性映射表中得到对象SC。如果SC为空,同样创建一个新的SC对象,并把(NPN,SC)放入HMNPN映射表。SC有两个重要的字段变量绑定表BT(variablebindingstable)和订阅列表SL。然后从SC中得到订阅列表SL,如果SL不包含订阅S,则把SC中的变量绑定表BT的引用赋值给对应的VTs中的BT,并把订阅S加入订阅列表SL。然后,转化事件到特定的数据结构。把以RDF/XML格式表示的事件(或者RDF事件图)转化为适合匹配的特定数据结构。事件的数据结构由PartA和PartB两部分组成。图6显示了事件图的数据结构。PartA包含属性和节点对名,对应于三元组或者"节点-弧-节点"的连接。PartA的结构与订阅的索引结构相似,也包含属性映射表HMProp,但映射值是节点对名向量集VCNPN,向量集中可能包含多个节点对名。事件数据结构中的结点对名NPN必须和订阅数据结构中的NPN结构一致,即它是两个节点标签的连接字符串,主体节点标签在前,客体节点标签在后,中间以连字符"-"隔开。注意,HMPrcDp中的属性不包括rdf:type属性。PartB表示资源节点的类型,对应于包含rdf:type属性的三元组。PartB是一个资源节点的类型映射表HMResourceType,其键为资源节点的标签,值为包含资源节点类型(类)URI引用列表URIList。使用URI引用列表的原因是一个资源节点可能具有多个类型。系统采用了RDF/XML格式表示事件,它既可以直接从事件的原始格式生成事件的数据结构,也可以先把它转换成RDF图的结构,然后对图进行深度(或宽度)优先搜索遍历来生成事件的数据结构。本专利对事件的转换是先从RDF/XML文档中读入事件并转化为RDF图模型RDFModel,然后从RDFModel中得到声明列表StmtList。接着对StmtList中的每个声明Stmt,分别获取它们的主体Subject、属性Property和客体Object做以下处理如果Property是"rdf:type",说明这是一个类型声明,则根据Subject从事件数据结构的资源类型映射表HMResourceType中得到URI引用列表URIList。对为空的URIList做处理后,把代表资源节点类型的URI引用Object加入URIList;如果Property不是"rdf:type",则根据概念模型中的属性关系计算出Property的等价属性和袓先属性,并把Property、等价属性和祖先属性一同加入属性集Props。然后对Props中的每个属性Prop,根据Prop从事件数据结构的属性映射表HMProp中得到结点对名向量集合VCNPN。对为空的VCNPN做处理后,把由Subject和Object连接而成的结点对名加入VCNPN,从而完成事件的转换。最后根据事件图的数据结构,从合并订阅图的索引中找到相关的订阅条件进行匹配,发现所有过滤条件被满足的订阅。事件匹配算法分为三个阶段第一个阶段根据订阅索引结构过滤不相关的订阅;第二个阶段根据匹配服务器内核体系结构设置并行方案;第三阶段对过滤后的订阅进行匹配,以发现匹配成功的订阅。在匹配的第一个阶段,对事件图的每个属性P,根据P从合并订阅图的属性映射表丽Prop中得到结点对名映射表H丽PN。如果H丽PN不为空,从事件图的属性映射表HMProp中得到结点对名向量集合VCNPN,并把VCNPN中的每个NPN同H丽PN中的NPN进行比较。如果HMNPN的NPN匹配VCNPN的NPN,则从H丽PN中得到相应的订阅集合对象SCs。对SCs中的每个对象SC,把事件图中的节点标识符追加到其变量绑定表中。接着对SC的订阅列表SL中的每个订阅S做处理先增加S的计数器Counter,然后把S加入到订阅集合SubSet中。订阅计数器Counter的增加量是对应结点对名下的变量表数目。订阅集合SubSet中的每个订阅至少有一个三元组在这个阶段的匹配中被覆盖到。在比较订阅的节点标识符是否与事件的节点标识符匹配时,如果订阅中的节点标识符是"*"号,则它与事件的任意节点标识符匹配,如果订阅的节点标识符是URI引用或者文本,则事件的节点标识符必须是相同的URI引用或者文本才能匹配。对订阅集合SubSet中的每个订阅S,检査S的计数器值是否大于等于订阅S的三元组个数。如果计数器值小于三元组的个数,说明订阅S中至少存在一个三元组没有被匹配,订阅必然不与该事件匹配,不必继续检査订阅的约束是否被满足,订阅过滤成功。在匹配的第二阶段,根据内核体系结构动态地决定并行度,以及进行匹配任务分割。当内核数量只有一个时,匹配从订阅索引结构的头部开始。否则,根据内核数量PRCNum决定任务分割,可以分为两种情况情况一是PRCNum为奇数,把订阅索引结构长度IndexLT分成PRCNum部分,每个内核从分割索引结构的起始部分开始执行比较,直到该部分比较完成;情况二是PRCNum为偶数,把订阅索引结构长度IndexLT分成PRCNum/2部分,每个分割索引结构的起始部分和结尾部分都有一个内核负责执行,直到前后方向执行的内核任务相遇。在匹配的第三阶段,按照第二阶段所述的并行策略进行比较。每个订阅都有一个匹配成功计数器CounterSec,初始值为0。当成功进行一组属性匹配时,该订阅对应的CounterSec值加1。最后比较匹配成功计数器CounterSec和第一阶段中的计数器Counter,如果相等,说明事件符合订阅条件;否则,一定有属性未满足订阅条件。权利要求1.一种大规模发布订阅系统的语义匹配算法,包括如下步骤1)为订阅图建立索引;2)转化事件到特定的数据结构;3)把事件图的数据结构提交给事件匹配器;4)事件匹配器进行事件图同订阅图模式的匹配运算,找出匹配的订阅,由系统把事件分发给匹配的订阅者。2.根据权利要求1所述的大规模发布订阅系统的语义匹配算法,其特征在于所述步骤1)为节点以订阅总图的方式保存订阅,每个订阅要被合并到订阅总图中,过滤不相关的订阅条件,同时维护订阅的插入和删除。3.根据权利要求1所述的大规模发布订阅系统的语义匹配算法,其特征在于所述步骤2)为直接从事件的原始格式生成事件的数据结构,或先把事件的原始格式转换成RDF事件图的结构,然后对图进行深度或宽度优先搜索遍历来生成事件的数据结构。4.根据权利要求3所述的大规模发布订阅系统的语义匹配算法,其特征在于-所述RDF事件图有三类节点空节点、类型节点和文本节点。5.根据权利要求1所述的大规模发布订阅系统的语义匹配算法,其特征在于所述步骤2)中所述特定的数据结构由包含由属性和节点对名的PartA和表示资源节点的类型PartB两部分组成。6.根据权利要求1所述的大规模发布订阅系统的语义匹配算法,其特征在于所述步骤4)中事件图同订阅图模式的匹配运算为三个阶段第一个阶段根据订阅索引结构过滤不相关的订阅;第二个阶段根据匹配服务器内核体系结构设置并行方案;第三阶段对过滤后的订阅进行匹配,以发现匹配成功的订阅。全文摘要本发明涉及Web服务
技术领域
,尤其是指一种大规模发布订阅系统的语义匹配算法。一种大规模发布订阅系统的语义匹配算法,包括如下步骤1)为订阅图建立索引;2)转化事件到特定的数据结构;3)把事件图的数据结构提交给事件匹配器;4)事件匹配器进行事件图同订阅图模式的匹配运算,找出匹配的订阅,由系统把事件分发给匹配的订阅者。本发明降低事件与订阅匹配的时间,提高事件匹配效率,使得随着订阅和发布事件数目的增加,事件匹配效率不会受到严重的影响,系统性能不会恶化。同时,根据匹配服务器的内核体系结构自适应调整匹配算法,充分利用多核技术提高匹配效率。文档编号G06F17/30GK101295311SQ20081006226公开日2008年10月29日申请日期2008年6月17日优先权日2008年6月17日发明者吕春旭,健吴,吴朝晖,尹建伟,莹李,邓水光申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1