一种基于内容的混合路由方法及其装置制造方法

文档序号:6521088阅读:320来源:国知局
一种基于内容的混合路由方法及其装置制造方法
【专利摘要】本发明公开了一种基于内容的混合路由方法及其装置,用于包括发布方、订阅方及中介网络的发布/订阅系统,通过订阅路由表和路标路由表的混合路由将事件P发送至相匹配的订阅方,该方法包括:路标路由表建立步骤、订阅路由表建立步骤和路由表匹配步骤;路标路由表建立步骤为通过在网络中代理结点Bi发布用于建立路标路由表的广播消息,建立代理结点Bi之间的路径的路标路由表;订阅路由表建立步骤为通过订阅方发布订阅S,代理结点Bi根据订阅S建立订阅路由表;路由表匹配步骤为依据订阅路由表,在发布方的代理结点基于内容匹配发布事件P,在中介网络中将事件P依据路标路由表逐跳基于路标路由到订阅方的代理结点,并在订阅方的代理结点依据订阅路由表,基于内容匹配接收事件P。
【专利说明】一种基于内容的混合路由方法及其装置
【技术领域】
[0001]本发明基于发布/订阅中间件系统,特别涉及到发布/订阅系统中基于内容的匹配和路由领域。
【背景技术】
[0002]发布/订阅是一种由消息内容驱动的通信机制。发布方(Publisher)、订阅方(Subscriber)和中介网络是构成发布/订阅系统的三个部分。订阅方只需要通过提交订阅来描述信息消费的兴趣,而中介网络中的代理结点则对发布的信息与订阅之间在频道、主题乃至内容上的匹配关系进行计算,并根据匹配结果进行选择性路由,一步步将事件信息分发给感兴趣的订阅方,如此周而复始,实现一个事件驱动的、松耦合的分布式环境。由于这些特点,发布/订阅已经成为构建大规模分布式系统的消息通信范型之一。
[0003]目前,有三种基本的发布/订阅系统的实现方式:基于频道模式、基于主题模式和基于内容模式。在基于频道或主题的发布/订阅系统中,订阅被划分为相应的频道或主题,订阅方按照频道或主题来进行订阅。消息在进行分发时需要按照频道或主题进行划分,然后在目标结点再次进行匹配,以确认消息的内容是否满足订阅方的兴趣。这样消息在中间结点匹配和路由的速度固然很快,但却可能将订阅方并不感兴趣的消息发送到目标结点,造成冗余消息的传输开销。基于内容的发布/订阅系统则更为灵活和高效,订阅方可以在事件的内容上指定约束条件更细粒度地表达他们的兴趣,避免了冗余消息的获取,提高了网络的利用率。
[0004]在大规模的发布/订阅系统中,由于匹配和路由计算给事件代理带来了巨大的计算和通信负载,因此匹配和路由方法是发布/订阅系统的核心问题。下面将介绍发布/订阅系统中基于内容的匹配和路由。
[0005]1.基于内容的匹配:
[0006]在基于内容的发布/订阅系统中,订阅方给出的订阅被存储在其经过的路径上,作为基于内容寻址的依据。基于内容的匹配方法负责高效地找到与给定事件相匹配的订阅条件。
[0007]“属性-值”对(Attribute-Value Pair)模型是最常用的支持内容匹配和过滤的模型,包括事件模型和过滤器模型两个部分。事件由属性/值对(a,val)的集合构成,过滤器则是由逻辑谓词连接的属性/值对(a,op,val)集合组成。订阅是最常见的一种过滤器。属性-值对(ai,vali)与谓词约束(aj,op,valj)相匹配,当且仅当属性名称ai和aj相同,且op对属性值vali和val j操作(vali,op, val j)结果为True。事件e与订阅s相匹配,当且仅当s中的每一个谓词在e中都存在与之匹配的属性-值对。例如,[class, movie],[price,60], [location, Beijing]表示发布方发布了一条位于北京且票价为60元的电影事件,而如果[class, eq, move], [price, <, 100], [location, eq, Beijing]是某一用户发布的过滤条件,则事件和该过滤条件是相匹配的。
[0008]无论如何对属性-值对匹配方法进行优化,基于内容的匹配方法和订阅数目以及订阅中属性-值对的数目均有关。目前发布/订阅系统中事件匹配技术将单条事件匹配时间控制在毫秒级别。然而随着系统参与者数量的显著增加,必然要求系统具有处理海量消息的能力,内容发布/订阅系统的匹配和路由能力面临着巨大的挑战。
[0009]基于内容的路由:
[0010]发布/订阅系统的路由即在代理网络中根据事件的内容进行过滤,寻找恰当的事件传播路径,并将过滤后的事件转发给感兴趣的订阅方,且满足开销、效率可靠及安全的约束。传统的网络路由是按目的地址进行寻址,而基于内容的发布/订阅系统则是以事件的内容作为寻址和路由的依据,事件的内容中隐含了路由的目的地。
[0011]基于内容的路由方法按照路由的准确性可以分为非精确型和精确型两大类。非精确型路由方法采用洪泛的方式把事件广播给所有的消费者,该方案虽然能够避免匹配计算开销,却会导致大量的垃圾消息。精确型路由方法只把事件发给有匹配的订阅条件的订阅方,旨在降低各事件代理之间的消息转发数量,但同时也增加了维护订阅路由表的成本和事件匹配开销等。逆向路径转发是一种被广泛采用的精确型基于内容的路由方法。
[0012]逆向路径转发的具体过程如图1所示,该模型首先将所有订阅(比如图中的SI和S2)洪泛到整个网络中,收到订阅的代理结点在自己的路由表中记录{S,U},其中S为订阅代表的过滤条件,U为订阅的上一站。当新的事件产生后,每个接收到事件的代理结点将检查自己的路由表中是否存在与事件匹配的订阅S,如果存在,将事件转发给订阅S的上一站U。如此迭代,事件将一步步转发到订阅方所连接的代理结点,并由该代理结点将信息发送给订阅方。
[0013]如图1所示,精确型基于内容的路由方法的优势在于能够最大程度的通过过滤条件去除不相关的事件消息,减少网络中传递的消息数量,但是这种方案同时要求每个结点都记录所有的订阅消息,并且需要在每个结点都执行匹配计算。因此方法具有极大的存储和计算开销,不适合大规模的应用系统。
[0014]从前文可以看出,内容发布/订阅技术核心的匹配方法和路由方法的开销都不容忽视。由于发布/订阅技术采用订阅作为事件的过滤器,因此所有的订阅都需要保留在对应的结点中,即使采用广告方式来减少订阅的数目,一旦订阅数目巨大,必然导致巨大的路由表项,而基于内容的匹配方式,必然导致消息的传输时延。因此在OMG的数据分发服务DDS (Data-Distribution Service)中,发布/订阅系统仍然执行基于渠道的方式,只是在消息到达订阅方所在SHB (Subscribe Host Broker,订阅方代理结点)时,才进行基于内容的匹配,从而模拟内容发布/订阅协议,但是这种方式会导致大量的垃圾消息。

【发明内容】

[0015]本发明所要解决的技术问题在于提供一种内容发布/订阅系统中的混合路由方法,可以有效避免现有方法中事件必须在每个结点进行基于内容匹配的问题,有效提高了基于内容发布/订阅系统中事件路由的效率。
[0016]为实现上述目的,本发明提供了一种基于内容的混合路由方法,用于包括发布方、订阅方及中介网络的发布/订阅系统,其特征在于,通过订阅路由表和路标路由表的混合路由将事件P发送至相匹配的订阅方,所述方法,包括:
[0017]路标路由表建立步骤:用于通过在网络中代理结点Bi发布用于建立所述路标路由表的广播消息,建立所述代理结点Bi之间的路径的路标路由表;
[0018]订阅路由表建立步骤:用于通过所述订阅方发布所述订阅S,所述代理结点Bi根据所述订阅S建立订阅路由表;
[0019]路由表匹配步骤:用于依据所述订阅路由表,在所述发布方的代理结点PHB基于内容匹配发布所述事件P,在所述中介网络中将所述事件P依据所述路标路由表逐跳基于路标路由到所述订阅方的代理结点SHB,并在所述订阅方的代理结点SHB依据所述订阅路由表,基于内容匹配接收所述事件P。
[0020]上述基于内容的混合路由方法,其特征在于,所述代理结点Bi的路标路由表的结构为二元组< Bj,NextHopij >的集合,其中Bj e B且i关j,B为所述代理结点集合,B= {BI, B2......Bn},NextHopij为从Bi到达Bj路径中Bi的下一跳。
[0021]上述基于内容的混合路由方法,其特征在于,所述发布方的代理结点PHB为所述发布方发布所述事件P后,所述事件P到达的第一个代理结点。
[0022]上述基于内容的混合路由方法,其特征在于,所述订阅方的代理结点SHB为订阅方发布所述订阅S后,所述订阅S到达的第一个代理结点。
[0023]上述基于内容的混合路由方法,其特征在于,所述广播消息由二元组< Root,LastHop >构成,Root为发布所述广播消息的所述代理结点Bi的ID, LastHop为发布所述广播消息的代理结点Bi到达接收所述广播消息代理结点Bj的路径中Bi的上一跳的ID。
[0024]上述基于内容的混合路由方法,其特征在于,所述订阅路由表建立步骤,还包括:
[0025]订阅转换步骤:所述订阅S被转变为二元组结构< S,SHB⑶ >,其中SHB⑶为所述订阅方代理结点的ID。
[0026]上述基于内容的混合路由方法,其特征在于,所述路由表匹配步骤,还包括:
[0027]发布方代理结点事件匹配步骤:当所述事件P到达所述PHB时,根据所述订阅路由表将所述事件P与所述订阅S进行内容匹配,将所述事件P形成事件二元组< P,$Z >,所述$2为所述SHB⑶的集合;
[0028]中介网络路标路由步骤:当中介网络所述代理结点Bi接收到所述事件二元组< P,$Z >,查询所述路标路由表,根据查询结果,将所述事件二元组< P,$Z >生成新的事件二元组< P,$z* >,并将所述< P,$Z* >发送到中介网络所述代理结点Bi的下一跳,其中所述$Z*为所述$Z的子集合;
[0029]订阅方代理结点事件匹配步骤:当所述< P,$2*>到达所述SHB后,基于所述订阅路由表,进行所述事件P与所述订阅S基于内容的匹配,将事件P发送给所述订阅方。
[0030]本发明还提供一种基于内容的混合路由装置采用所述基于内容的混合路由方法,用于包括发布方、订阅方及中介网络的发布/订阅系统,其特征在于,通过订阅路由表和路标路由表的混合路由将事件P发送至相匹配的订阅方,所述基于内容的混合路由装置,包括:
[0031]路标路由表建立模块:用于通过在网络中代理结点Bi发布用于建立所述路标路由表广播消息,建立所述代理结点Bi之间的路径的路标路由表;
[0032]订阅路由表建立模块:用于通过所述订阅方发布所述订阅S,所述代理结点Bi根据所述订阅S建立订阅路由表;
[0033]路由表匹配模块:用于依据所述订阅路由表,在所述发布方的代理结点PHB基于内容匹配发布所述事件P,在所述中介网络中将所述事件P依据所述路标路由表逐跳基于路标路由到所述订阅方的代理结点SHB,并在所述订阅方的代理结点SHB依据所述订阅路由表,基于内容匹配接收所述事件P。
[0034]上述基于内容的混合路由装置,其特征在于,所述代理结点Bi的路标路由表的结构为二元组< Bj,NextHopij >的集合,其中Bj e B且i关j,B为所述代理结点集合,B= {BI, B2......Bn},NextHopij为从Bi到达Bj路径中Bi的下一跳。
[0035]上述基于内容的混合路由装置,其特征在于,所述发布方的代理结点为所述发布方发布所述事件P后,所述事件P到达的第一个代理结点。
[0036]上述基于内容的混合路由装置,其特征在于,所述订阅方的代理结点为订阅方发布所述订阅S后,所述订阅S到达的第一个代理结点。
[0037]上述基于内容的混合路由装置,其特征在于,所述广播消息由二元组< Root,LastHop >构成,Root为发布所述广播消息的所述代理结点Bi的ID, LastHop为发布所述广播消息的代理结点Bi到达接收所述广播消息代理结点Bj的路径中Bi的上一跳的ID。
[0038]上述基于内容的混合路由装置,其特征在于,所述订阅路由表建立模块,还包括:
[0039]订阅转换模块:所述订阅S被转变为二元组结构< S,SHB (S) >,其中SHB (,S)为所述订阅方代理结点的ID。
[0040]上述基于内容的混合路由装置,其特征在于,所述路由表匹配模块,还包括:
[0041]发布方代理结点事件匹配模块:当所述事件P到达所述PHB时,根据所述订阅路由表将所述事件P与所述订阅S进行内容匹配,将所述事件P形成事件二元组< P,$z >,所述$2为所述SHB⑶的集合;
[0042]中介网络路标路由模块:当中介网络所述代理结点Bi接收到所述事件二元组
<P,$Z >,查询所述路标路由表,根据查询结果,将所述事件二元组< P,$Z >生成新的事件二元组< P,$z* >,并将所述< P,$Z* >发送到中介网络所述代理结点Bi的下一跳,其中所述$Z*为所述$Z的子集合;
[0043]订阅方代理结点事件匹配模块:当所述<?,$2*>到达所述SHB后,基于所述订阅路由表,进行所述事件P与所述订阅S基于内容的匹配,将事件P发送给所述订阅方。
[0044]与现有技术相比,本发明的有益效果在于,本发明改变了基于内容发布/订阅事件路由过程中路由表,将匹配由与订阅数目相关变为与代理结点数目相关,准确的说,事件只在PHB和SHB与订阅路由表进行基于内容的匹配,在普通结点只用和路标路由表进行匹配即可。由于一般情况下,订阅数目远远超过系统中代理结点的数目,因此在本发明下事件的匹配和路由效率得以大大增加。具体而言,本发明有以下特点:
[0045]系统吞吐量高。系统吞吐量指结点每秒能够处理事件的能力。由于本发明中事件在结点中匹配时间小,因此系统吞吐率会大大提高。
[0046]事件传输时间短。由于本发明中事件的匹配和路由效率大大提高,因此事件从发布方传输到订阅方的事件会大大减小。
[0047]支持大规模系统。订阅数目越大,路标路由表相对于订阅路由表的优势就越大,因此本发明能够支持更大规模的系统。
【专利附图】

【附图说明】[0048]图1为现有技术的基于订阅的路由表建立不意图;[0049]图2为本发明的路标路由表的建立过程示意图;
[0050]图3为本发明的结点7路标路由表不意图;
[0051]图4为本发明的基于内容的混合路由方法的流程示意图;
[0052]图5为本发明实施例的发布/订阅系统结构示意图;
[0053]图6为本发明的基于内容的混合路由装置的结构示意图。
[0054]其中,附图标记:
[0055]I路标路由表建立模块2订阅路由表建立模块
[0056]3路标路由表匹配模块
[0057]21订阅转换模块
[0058]31发布方代理结点事件匹配模块 32中介网络路标路由模块
[0059]33订阅方代理结点事件匹配模块
[0060]SI~S3、S31~S33、S21:本发明各实施例的施行步骤
【具体实施方式】
[0061]以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
[0062]下面结合附图和【具体实施方式】,对本发明做进一步的说明。
[0063]本发明所要解决的技术问题是提供本发明提供了一种快速的基于内容的发布/订阅路由方法及系统,解决了现有技术中事件必须在路径中的每个结点上进行基于内容匹配的问题。该发明以多伦多大学开源的内容发布/订阅系统PADRES为基础,在原有系统之上进行扩展,使其能够以更高的效率支持基于内容的发布/订阅事件路由。本发明的关键点在于通过路标路由表将中介网络中事件P与订阅S的逐跳匹配转化为对路标路由表的查询。
[0064]首先介绍一下系统中的结点的术语名称。
[0065]发布方代理结点PHB(Publisher Host Broker):发布方所在的代理结点,即发布方发布事件后事件到达的第一个代理结点。
[0066]订阅方代理结点SHB (Subscriber Host Broker):订阅方所在的代理结点,即订阅方发布订阅后订阅到达的第一个代理结点。
[0067]普通结点:除PHB和SHB外的结点称为普通结点。
[0068]需要注意的是,这三类结点是逻辑上的划分,在真实的系统中,任何一个代理结点都可以同时兼具三者的角色。比如说同时与订阅方A和发布方B相连的代理结点就即可以是SHB也可以是PHB。
[0069]下面我们将对发明提出的方法进行介绍。和原有的逆向路径转发方法相比,本发明提出的方法在结点中存储的路由表、订阅结构以及事件结构上有所改变。
[0070]结点中路由表
[0071]在逆向路径转发方法中,订阅S每转发到一个代理结点,就会被存储以作为事件基于内容寻址的依据。代理结点中的路由表项为{S,U},其中U代表订阅的上一站。我们称这一路由表为订阅路由表。订阅路由表的作用在于确定订阅的上一跳结点。
[0072]本发明提出的方法在保留订阅路由表的基础上,在每个结点新增加了路标路由表。当前系统中代理结点集合B= {BI,B2......Bn},则路标路由表的定义如下:
[0073]路标路由表:结点Bi中,路标路由表表项为二元组< Bj,NextHopij >的集合,其中Bj e B且i古J7NextHopij为以Bi为根的结点树中Bj的父结点,即从Bi到Bj路径中Bi的下一跳。
[0074]下面将介绍在系统构建路标路由表的方法。每当新的代理结点加入发布订阅系统时,新的代理结点将广播一条消息来申明自己的存在。这样,即形成了一个以新结点为根的广播树。广播消息由一个二元组组成,即< Root, LastHop >, Root为新的代理结点的ID,LastHop为广播消息上一跳的ID。收到消息的结点将< Root,LastHop >插入路由表中,更新广播消息中的LastHop,然后反向向Root结点发送一条消息。
[0075]如图2和图3所不,反映了在系统中加入结点7后路标路由表的变化。如图2所示的即为在系统中加入结点7后其他结点新增的路标路由表项,如图3所示的即为结点7自身的路标路由表项。
[0076]路标路由表是避免事件在路径中每个结点逐次进行基于内容匹配的关键。
[0077]2.订阅结构
[0078]如果采用订阅作为首层过滤器,那么和逆向路径方法相同,本发明中的订阅仍然需要洪范到网络,并在各结点的订阅路由表中记录。不同之处在于,当订阅S发送至其SHB结点时,会将SHB的ID号加入到订阅信息中,此时订阅变为一个二元组< S,SHB (S) >。也就是说,各结点订阅路由表中记录的订阅内容中包含了其SHB的ID号。
[0079]事件结构
[0080]本发明中,当PHB收到新的事件P时,P和PHB中订阅路由表中的订阅进行匹配,如果订阅S和事件P匹配,则将SHB⑶加入到集合$Z中。最后,将集合$2加入到事件P的内容中,此时事件变为一个二元组< P,$Z >。
[0081]如图4所示,本发明提供的一种基于内容的混合路由方法,用于包括发布方、订阅方及中介网络的发布/订阅系统,通过订阅路由表和路标路由表的混合路由将事件P发送至相匹配的订阅方,具体步骤包括:
[0082]路标路由表建立步骤S1:用于通过在网络中代理结点Bi发布用于建立所述路标路由表的广播消息,建立所述代理结点Bi之间的路径的路标路由表;
[0083]每当新的代理结点加入发布订阅系统时,新的代理结点将广播一条消息来申明自己的存在。这样,即形成了一个以新结点为根的广播树。广播消息由一个二元组组成,即
<Root, LastHop >,Root为发布广播消息的代理结点Bi的ID,LastHop为发布广播消息的代理结点Bi到达接收广播消息代理结点Bj的路径中Bi的上一跳的ID。收到消息的结点Bj将< Root, LastHop >插入路由表中,更新广播消息中的LastHop,然后反向向Root结点(Bi结点)发送一条消息。
[0084]订阅路由表建立步骤S2:用于通过订阅方发布订阅S,代理结点Bi根据订阅S建立订阅路由表;
[0085]如果采用订阅为首层过滤器,订阅仍然需要洪泛到网络中的所有结点处,并且插入到各结点的订阅路由表之中。发布订阅系统很重要的特点是松耦合,所以订阅者不知道获得的内容是谁发布的,发布者也不知道信息发布给了谁,所以需要在中介网络的入口和出口,即PHB和SHB进行基于内容的匹配。[0086]路由表匹配步骤S3:用于依据订阅路由表,在发布方的代理结点基于内容匹配发布事件P,在中介网络中将事件P依据路标路由表逐跳基于路标路由到订阅方的代理结点,并在订阅方的代理结点依据订阅路由表,基于内容匹配接收事件P。
[0087]其中,订阅路由表建立步骤S2,还包括:
[0088]订阅转换步骤S21:所述订阅S被转变为二元组结构< S,SHB (S) >,其中SHB(S)为订阅方代理结点的ID。
[0089]与逆向路径转发方法不同的是,当订阅S发送至其SHB结点时,如前所述,其结构将变为二元组< S,SHB (S) >。
[0090]其中,路由表匹配步骤S3,还包括:
[0091]发布方代理结点事件匹配步骤S31:当事件P到达PHB时,根据订阅路由表将事件P与订阅S进行内容匹配,将事件P形成事件二元组< P,$Z >,$Z为SHB(S)的集合;
[0092]当新事件P到达PHB时,仍要和PHB订阅路由表中存储的订阅进行基于内容的匹配。不同的是,如事件结构一节所述,此时事件变为一个二元组<p,$z>。如前所述,其中$冗为SHB(S)的集合。
[0093]中介网络路标路由步骤S32:当中介网络代理结点Bi接收到事件二元组< P,$Z>,查询路标路由表,根据查询结果,将事件二元组< P,$z >生成新的事件二元组< P,$Z*>,并将< P,$z* >发送到中介网络代理结点Bi的下一跳,其中$Z*为$Z的子集合;
[0094]我们采用结点中的路标路由表将事件从PHB路由到SHB。当结点B接收到事件<?,$Z >时,将对$Z进行分裂。对$2中的所有的元素SHBi,根据查询路标路由表NextHop (B, SHBi)结果的不同,我们将其划分到不同的集合中。对于划分每个集合$Z*,假定Q是事件P在$Z*中的查询结果,则P将产生一个新的副本,并将< P,$Z* >发送至Q。
[0095]例如,在图2中,结点3收到事件{P,$Z},其中$Z={5,6,7},则结点3将分离出事件{P,{5,6}}发送给结点4,将事件{P,{7}}发送给结点7。
[0096]订阅方代理结点事件匹配步骤S33:当< P,$Z* >到达SHB后,基于订阅路由表,进行事件P与订阅S基于内容的匹配,将事件P发送给订阅方。
[0097]事件能够顺利发往所有匹配订阅所在的SHB后,只需与SHB中订阅路由表进行一次基于内容的匹配,就能够确定所匹配订阅的上一站U,即订阅的发布方,从而将事件发往满足条件的订阅方。
[0098]如附图5所示,为本发明的较佳实施例,以下结合图5具体实施例对本发明作详细的说明。
[0099] 图5展示的是发布/订阅系统的结构图。可以看到,整个中介网络有7个结点,其中结点I和一个发布方相连接,结点4、5、6分别和一个订阅方相连接。
[0100]首先,和结点4、5、6相连接的订阅方分别发布各自的订阅,在结点4、5、6,这些订阅分别记录下SHB的ID号然后洪泛至网络中,各个结点的订阅路由表会记录下这些订阅。
[0101]和结点I相连接的发布方发布一个事件P,在事件路由至结点I后,与结点I中的订阅路由表进行匹配,并记录下和事件相匹配订阅内容中的SHB的ID号,假设匹配结束后事件 P 变为{P,{4,5,6}}。
[0102]P在结点I中和路标路由表进行匹配,由于结点I到结点4、5、6的路径中下一结点均为结点3,故将{P,{4,5,6}}路由至结点3。[0103]在结点3,P和路标路由表进行匹配,由于结点3到结点5、6路径中的下一结点为结点5,到结点4路径中下一结点为结点4,故P产生两个副本,一个变为{P,{5,6}}并路由至结点5,一个变为{P,{4}}并路由至结点4。
[0104]路由至结点4的事件{P,{4}},发现4包含在SHB的ID号的集合中,于是和结点4中的订阅路由表进行匹配,找到匹配成功的订阅项,将P发送至这些订阅的上一站U,P成功发送给和结点4相连的目标订阅方。
[0105]路由至结点5的事件{P,{5,6}},发现5包含在SHB的ID号的集合中,于是和结点5中的订阅路由表进行匹配,找到匹配成功的订阅项,将P发送至这些订阅的上一站U,P成功发送给和结点5相连的目标订阅方。同时,到达结点6路径中的下一结点为结点6,于是将{P,{6}}路由至结点6。
[0106]路由至结点6的事件{P,{6}},发现6包含在SHB的ID号的集合中,于是和结点6中的订阅路由表进行匹配,找到匹配成功的订阅项,将P发送至这些订阅的上一站U,P成功发送给和结点6相连的目标订阅方。
[0107]至此,事件P已经发送给所有的目标订阅方。
[0108]如图6所示,本发明提供的基于内容的混合路由装置,用于包括发布方、订阅方及中介网络的发布/订阅系统,该装置具体包括以下模块:路标路由表建立模块1、订阅路由表建立模块2和路由表匹配模块3 ;路标路由表建立模块I用于通过在网络中每个代理结点Bi发布广播消息,建立每个代理结点Bi之间路径的路标路由表;订阅路由表建立模块2用于通过订阅方发布订阅S,每个代理结点Bi根据订阅S建立订阅路由表;路由表匹配模块3用于依据订阅路由表,在发布方的代理结点PHB基于内容匹配发布事件P,在中介网络中将事件P依据路标路由表逐跳基于路标路由到订阅方的代理结点SHB,并在订阅方的代理结点SHB依据订阅路由表,基于内容匹配接收事件P。
[0109]其中,订阅路由表建立模块2,还包括:
[0110]订阅转换模块21:订阅S被转变为二元组结构< S,SHB(S) >,其中SHB(S)为所述订阅方代理结点的ID。
[0111]其中,路由表匹配模块3,还包括:
[0112]发布方代理结点事件匹配模块31:当事件P到达PHB时,根据订阅路由表将事件P与订阅S进行内容匹配,将事件P形成事件二元组< P,$Z > ;
[0113]中介网络路标路由模块32:当中介网络代理结点Bi接收到事件二元组< P,$Z>,查询路标路由表,根据查询结果,将事件二元组< P,$z >生成新的事件二元组< P,$Z*>,并将< P,$z* >发送到中介网络代理结点Bi的下一跳;
[0114]订阅方代理结点事件匹配模块33:当< P,$Z* >到达SHB后,基于订阅路由表,进行事件P与订阅S基于内容的匹配,将事件P发送给订阅方。
[0115]当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
【权利要求】
1.一种基于内容的混合路由方法,用于包括发布方、订阅方及中介网络的发布/订阅系统,其特征在于,通过订阅路由表和路标路由表的混合路由将事件P发送至相匹配的订阅方,所述方法,包括: 路标路由表建立步骤:用于通过在网络中代理结点Bi发布用于建立所述路标路由表的广播消息,建立所述代理结点Bi之间的路径的路标路由表; 订阅路由表建立步骤:用于通过所述订阅方发布所述订阅S,所述代理结点Bi根据所述订阅S建立订阅路由表; 路由表匹配步骤:用于依据所述订阅路由表,在所述发布方的代理结点PHB基于内容匹配发布所述事件P,在所述中介网络中将所述事件P依据所述路标路由表逐跳基于路标路由到所述订阅方的代理结点SHB,并在所述订阅方的代理结点SHB依据所述订阅路由表,基于内容匹配接收所述事件P。
2.根据权利要求1所述的基于内容的混合路由方法,其特征在于,所述代理结点Bi的路标路由表的结构为二元组< Bj,NextHopij >的集合,其中Bj e B且i关j,B为所述代理结点集合,B= {BI, B2......Bn},NextHopij为从Bi到达Bj路径中Bi的下一跳。
3.根据权利要求1所述的基于内容的混合路由方法,其特征在于,所述发布方的代理结点PHB为所述发布方发布所述事件P后,所述事件P到达的第一个代理结点。
4.根据权利要求1所述的基于内容的混合路由方法,其特征在于,所述订阅方的代理结点SHB为订阅方发布所述订阅S后,所述订阅S到达的第一个代理结点。
5.根据权利要求1所述的基于内容的混合路由方法,其特征在于,所述广播消息由二元组< Root,LastHop >构 成,Root为发布所述广播消息的所述代理结点Bi的ID,LastHop为发布所述广播消息的代理结点Bi到达接收所述广播消息代理结点Bj的路径中Bi的上一跳的ID。
6.根据权利要求4所述的基于内容的混合路由方法,其特征在于,所述订阅路由表建立步骤,还包括: 订阅转换步骤:所述订阅S被转变为二元组结构< S,SHB (S) >,其中SHB(S)为所述订阅方代理结点的ID。
7.根据权利要求3或4所述的基于内容的混合路由方法,其特征在于,所述路由表匹配步骤,还包括: 发布方代理结点事件匹配步骤:当所述事件P到达所述PHB时,根据所述订阅路由表将所述事件P与所述订阅S进行内容匹配,将所述事件P形成事件二元组< P,$Z >,所述$Z为所述SHB (S)的集合; 中介网络路标路由步骤:当中介网络所述代理结点Bi接收到所述事件二元组< P,$Z>,查询所述路标路由表,根据查询结果,将所述事件二元组< P,$Z >生成新的事件二元组< P,$Z* >,并将所述< P,$Z* >发送到中介网络所述代理结点Bi的下一跳,其中所述$Z*为所述$Z的子集合; 订阅方代理结点事件匹配步骤:当所述<?,$2*>到达所述SHB后,基于所述订阅路由表,进行所述事件P与所述订阅S基于内容的匹配,将事件P发送给所述订阅方。
8.一种基于内容的混合路由装置,采用如权利要求1-7中任一项所述基于内容的混合路由方法,用于包括发布方、订阅方及中介网络的发布/订阅系统,其特征在于,通过订阅路由表和路标路由表的混合路由将事件P发送至相匹配的订阅方,所述基于内容的混合路由装置,包括: 路标路由表建立模块:用于通过在网络中代理结点Bi发布用于建立所述路标路由表广播消息,建立所述代理结点Bi之间的路径的路标路由表; 订阅路由表建立模块:用于通过所述订阅方发布所述订阅S,所述代理结点Bi根据所述订阅S建立订阅路由表; 路由表匹配模块:用于依据所述订阅路由表,在所述发布方的代理结点PHB基于内容匹配发布所述事件P,在所述中介网络中将所述事件P依据所述路标路由表逐跳基于路标路由到所述订阅方的代理结点SHB,并在所述订阅方的代理结点SHB依据所述订阅路由表,基于内容匹配接收所述事件P。
9.根据权利要求8所述的基于内容的混合路由装置,其特征在于,所述代理结点Bi的路标路由表的结构为二元组< Bj,NextHopij >的集合,其中Bj e B且i关j,B为所述代理结点集合,B= {BI, B2......Bn},NextHopij为从Bi到达Bj路径中Bi的下一跳。
10.根据权利要求8所述的基于内容的混合路由装置,其特征在于,所述发布方的代理结点PHB为所述发布方发布所述事件P后,所述事件P到达的第一个代理结点。
11.根据权利要求8所述的基于内容的混合路由装置,其特征在于,所述订阅方的代理结点SHB为订阅方发布所述订阅S后,所述订阅S到达的第一个代理结点。
12.根据权利要求8所述的基于内容的混合路由装置,其特征在于,所述广播消息由二元组< Root,LastHop >构成,Root为发布所述广播消息的所述代理结点Bi的ID,LastHop为发布所述广播消息的代理结点Bi到达接收所述广播消息代理结点Bj的路径中Bi的上一跳的ID。
13.根据权利要求8所述的基于内容的混合路由装置,其特征在于,所述订阅路由表建立模块,还包括: 订阅转换模块:所述订阅S被转变为二元组结构< S,SHB (S) >,其中SHB(S)为所述订阅方代理结点的ID。
14. 根据权利要求10或11所述的基于内容的混合路由装置,其特征在于,所述路由表匹配模块,还包括: 发布方代理结点事件匹配模块:当所述事件P到达所述PHB时,根据所述订阅路由表将所述事件P与所述订阅S进行内容匹配,将所述事件P形成事件二元组< P,$Z >,所述$Z为所述SHB (S)的集合; 中介网络路标路由模块:当中介网络所述代理结点Bi接收到所述事件二元组< P,$Z>,查询所述路标路由表,根据查询结果,将所述事件二元组< P,$Z >生成新的事件二元组< P,$Z* >,并将所述< P,$Z* >发送到中介网络所述代理结点Bi的下一跳,其中所述$Z*为所述$Z的子集合; 订阅方代理结点事件匹配模块:当所述<?,$2*>到达所述SHB后,基于所述订阅路由表,进行所述事件P与所述订阅S基于内容的匹配,将事件P发送给所述订阅方。
【文档编号】G06F17/30GK103685013SQ201310618625
【公开日】2014年3月26日 申请日期:2013年11月29日 优先权日:2013年11月29日
【发明者】王越, 虎嵩林, 陈明文, 陈建, 吴凯锋, 王志强, 洪建光, 张春光, 裴旭斌, 衡星辰, 裘炜浩, 崔蔚 申请人:中国科学院计算技术研究所, 国网浙江省电力公司信息通信分公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1