一种基于内容的发布订阅模型的拓扑结构优化方法

文档序号:7860169阅读:182来源:国知局
专利名称:一种基于内容的发布订阅模型的拓扑结构优化方法
技术领域
本发明属于计算机科学技术领域,更具体地,涉及一种基于内容的发布订阅模型的拓扑结构优化方法。
背景技术
基于内容的发布订阅模型(Content-Based Publish-Subscribe Model)是当今计算机科学技术领域的研究热点。发布订阅是一种消息传递模式,被称为发布者的消息发送方并不是直接将消息发送给被称为订阅者的消息接收方。不同的是,消息在被发送之前会被按照自身特点分类,而这一过程不必考虑订阅者;相似地,订阅者也会根据自身的兴趣,选择相应的分类,并只收到自己感兴趣的消息,而这一过程不必考虑发布者。由于其松散耦合以及高可扩展性等优点,发布订阅模型在企业领域以及科学研究领域,都得到了广泛的 关注,并涌现出很多优秀的研究成果和应用。根据消息过滤形式的不同,发布订阅模型可以分为两类基于主题的和基于内容的。一般地,基于内容的发布订阅系统是由基于内容的发布订阅代理组成的处于应用层的覆盖网络,而发布数据源与订阅数据接收器都以客户端的形式连接这些代理。从客户端发送的发布或订阅消息,必须在由代理所组成的拓扑结构中以特定的路径传输到另一个客户端,所以,对发布订阅模型的拓扑进行优化以降低消息传输延迟从而增加发布和订阅到效率,具有重要意义。目前对发布订阅模型拓扑的优化的研究主要集中在控制代理节点度数和优化消息传输路径两个方面。前者主要针对基于主题的发布订阅模型,在代理的拓扑建立之前,根据代理节点和客户端的分布简化它们之间的连接,最终达到减小节点度数的目的;后者则主要针对基于内容的发布订阅模型,根据已有订阅条件结合当前拓扑优化每个代理节点中的路由算法,从而减少消息传递经过的代理节点,以达到减小延迟的目的。然而,目前大多数发布订阅拓扑优化方法仅仅考虑了非环状的拓扑结构(即树形拓扑结构),所以,这些方法并没有充分利用环状拓扑结构的灵活性、应对代理失效的鲁棒性和对于引入其他协议的简易性等优点;与此同时,现有的优化方法基于的拓扑结构是相对固定的,这些方法也不能使拓扑在不同类型的结构之间进行自由的转换,缺乏灵活性。综上所述,在发布订阅系统中,动态地支持多种拓扑结构,并针对不同结构各自的优缺点进一步地对拓扑进行优化,对提高发布订阅系统中信息传递效率有着重要意义。

发明内容
针对现有技术的缺陷,本发明的目的在于提供一种基于内容的发布订阅模型的拓扑结构优化方法,其能够应用于具有环状拓扑的发布订阅系统,使系统自动检测其拓扑内代理的状态并根据当前拓扑结构和网络连接状况综合制定拓扑策略,适时地动态在环状结构和非环状结构之间进行转换,从而达到充分利用不同结构的优点,增加容错性以及减少信息分发延迟的目的。为实现上述目的,本发明提供了一种基于内容的发布订阅模型的拓扑结构优化方法,包括以下步骤(I)创建代理节点并对代理节点进行初始化操作,以得到初始拓扑结构,具体包括以下子步骤( 1-1)对参数进行初始化,参数包括代理节点添加模式、代理节点个数、客户端个数、连接性测试阀值T。、拓扑结构所用传输协议、环状拓扑结构矩阵Tm、客户端与拓扑连接矩阵、预定测试时间、初始化标准决策结果值和最终标准决策结果值,客户端与拓扑连接矩阵指定了客户端和代理节点之间的对应关系;( 1-2)将初始化后的参数加载到用于在初始化阶段管理和协同所有初始化操作的初始化程序;(1-3)将初始化程序加载到用于监控和管理拓扑结构的控制器上; (1-4)控制器根据初始化的部分参数调用初始化程序,以初始化所有的代理节占.( 1-5)初始化程序根据客户端的个数、客户端和拓扑连接矩阵初始化所有客户端,并将所有客户端连接到客户端与拓扑连接矩阵指定的代理节点;(1-6)对拓扑结构进行连接性测试,以得到连接性矩阵M。,连接性矩阵M。中的值表示两个代理节点之间的连接性;(1-7)将连接性矩阵M。传送到初始化程序,并且初始化程序根据环状拓扑结构矩阵Tm、连接性测试阀值T。和连接性矩阵M。计算决策结果Ri ;(1-8)判断决策结果Ri是否小于初始化标准决策结果值,如果是,则进入步骤(1-9),否则转入步骤(2);(1-9)初始化程序重新生成拓扑矩阵Mn,并根据拓扑矩阵Mn重置拓扑结构;(2)对初始拓扑结构进行定时检测,以得到测试结果数据集,具体包括以下子步骤(2-1)运行控制器中的检测程序,并且检测程序向每个代理节点发送检测发起信号;(2-2)每个代理节点接受到检测发起信号后定时地向相邻的代理节点发送检测信号,以使两代理节点握手;(2-3)代理节点生成检测数据并存储于信号发送节点;(2-4)当检测数据积累到了满足分析所需数量时,处于代理节点的检测数据处理程序对检测数据进行统计和分析,以得到数据集{S1; S2,…,SJ,其中η为代理节点个数,Si表示第i个节点所测得到所有数据,并将数据集发送到控制器;(3)控制器分析数据集,以得到决策结果Rr ;(4)判断决策结果&是否大于最终标准决策结果值,如果是,则初始化程序重新生成拓扑矩阵Mn’,并根据拓扑矩阵Mn’动态地调整拓扑结构,然后进入步骤(5),否则直接跳至步骤(6);(5)测试拓扑矩阵Mn’,并对拓扑矩阵Mn’中代理节点的路由表进行更新;(6)重复执行步骤(2)至(5),直到整个过程的持续时间到达预定测试时间为止。预定测试时间为30分钟,初始化标准决策结果值为1-5毫秒,最终标准决策结果值为2-10毫秒。
步骤(1-4)具体为,根据传输协议和连通性测试阀值T。指定拓扑结构中单个代理节点的公共属性值,根据初始化程序指定单个代理节点的节点ID和节点所占端口号等,根据环状拓扑结构矩阵Tm逐个地初始化代理节点,以建立拓扑结构,同时加载路由程序到每个代理节点。步骤(1-7)具体是采用以下公式S = {(x, y) V(x;y) = I, (x, y) e Tj
VvRi =,其中(X,y) e S,V’ (x,y) > Tc
Ms其中S表示环状拓扑结构矩阵Tm中值为I的坐标集合,V(x,y)表示环状拓扑结构矩阵Tm中坐标为(X,y)的值,V’(x,y)表示连接性矩阵Mc中坐标为(X,y)的值,Ms是坐标集合S中坐标的个数。步骤(1-9)具体为,初始化程序会去掉连接性矩阵M。中较大的值,并将环状拓扑结构矩阵Tm对应的坐标的值由I变0,再对环状拓扑结构矩阵Tm做微调,直至新的拓扑矩阵是非环结构,以得到拓扑矩阵Mn,然后初始化程序会根据拓扑矩阵Mn重新生成所有代理节点之间的连接。步骤(3 )具体为,控制器首先去掉数据集里每个数据项中的不合格数据,然后对每 个数据项中的所有测试数据求平均值,以得到新的平均测试数据集{kvk2,…,AJ,其中Ai为第i个节点的测试数据的平均值,然后计算平均测试数据集{A1; A2,…,AJ中大于连接
性测试阀值T。的测试数据个数Ca,最后根据如下公式得到决策结果艮/<.. = ..
/7通过本发明所构思的以上技术方案,与现有技术相比,本发明具有以下的有益效果(I)灵活高效性因为采用了步骤(1-3),所以该优化方法不仅适用于非环状的拓扑结构,而且还可以应用到环状拓扑结构;由于采用了步骤(1-9)和步骤(4),系统会根据自身的网络状态和特性自动调整其拓扑结构,使得订阅和发布消息的时间延迟尽可能的减少,同时,配合拓扑的改变适时地调整路由算法和更新路由表,也在一定程度上增加了信息传输的效率;(2)自适应性由于采用了步骤(2),使用了本拓扑优化方法的发布订阅系统可以在保证自身正常运行的同时,根据内部代理拓扑的状态和特点,自行优化和调整拓扑结构,而这一过程完全不需要人工干预。只需在初始化阶段之前制定好需要的参数(如信息传输协议、判定时间阀值、检测时间间隔等),系统便会在后来的运行过程中完成所有的检测和优化操作。


图I是本发明基于内容的发布订阅模型的拓扑结构优化方法的流程图。图2是本发明步骤(I)的细化流程图。图3是本发明步骤(2)的细化流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。如图I所示,本发明基于内容的发布订阅模型的拓扑结构优化方法包括以下步骤(I)创建代理节点并对代理节点进行初始化操作,以得到初始拓扑结构,如图2所示,具体包括以下子步骤 ( 1-1)对参数进行初始化,这些参数包括代理节点添加模式、代理节点个数、客户端个数、连接性测试阀值T。、拓扑结构所用传输协议、环状拓扑结构矩阵Tm、客户端与拓扑连接矩阵、预定测试时间、初始化标准决策结果值和最终标准决策结果值,客户端与拓扑连接矩阵指定了客户端和代理节点之间的对应关系;在本实施方式中,预定测试时间为30分钟,初始化标准决策结果值为1-5毫秒,最终标准决策结果值为2-10毫秒;(1-2)将初始化后的参数加载到用于在初始化阶段管理和协同所有初始化操作的初始化程序;( 1-3)将初始化程序加载到用于监控和管理拓扑结构的控制器上;( 1-4)控制器根据初始化的部分参数调用初始化程序,以初始化所有的代理节点;具体而言,根据初始化的部分参数(包括传输协议、连通性测试阀值T。)指定拓扑结构中单个代理节点的公共属性值,根据初始化程序指定单个代理节点的独有属性值(包括节点ID、节点所占端口号等),根据环状拓扑结构矩阵Tm逐个地初始化代理节点,以建立拓扑结构,同时加载路由程序到每个代理节点,以避免消息在拓扑结构中出现环状路径,保证消息传递的准确性;( 1-5)初始化程序根据客户端个数、客户端和拓扑连接矩阵初始化所有客户端,并将所有客户端连接到客户端与拓扑连接矩阵指定的代理节点;( 1-6)对拓扑结构进行连接性测试,以得到连接性矩阵M。,该矩阵中的值表示两个代理节点之间的连接性;( 1-7)将连接性矩阵M。传送到初始化程序,并且初始化程序根据环状拓扑结构矩阵Tm、连接性测试阀值T。和连接性矩阵Mc计算决策结果Ri ;具体而言,是采用以下公式S = {(x, y) V(x;y) = I, (x, y) e TjRi =,其中(x,y) e S,Vf (x,y) > Tc
J , S其中S表示环状拓扑结构矩阵Tm中值为I的坐标集合,V(x,y)表示环状拓扑结构矩阵Tm中坐标为(X,y)的值,V’(x,y)表示连接性矩阵Mc中坐标为(X,y)的值,Ms是坐标集合S中坐标的个数;(1-8)判断决策结果Ri是否小于初始化标准决策结果值,如果是,则进入步骤(1-9),否则转入步骤(2);(1-9)初始化程序重新生成拓扑矩阵Mn,并根据Mn重置拓扑结构,具体而言,初始化程序会去掉连接性矩阵M。中较大的值,并将环状拓扑结构矩阵Tm对应的坐标的值由I变
O,再对环状拓扑结构矩阵Tm做微调,直至新的拓扑矩阵是非环结构,便得到了拓扑矩阵Mn,然后初始化程序会根据拓扑矩阵Mn重新生成所有代理节点之间的连接;(2)对初始拓扑结构进行定时检测,以得到测试结果数据集;如图3所示,具体包括以下子步骤(2-1)运行控制器中的检测程序,并且该检测程序向每个代理节点发送检测发起
信号;
(2-2)每个代理节点接受到检测发起信号后定时地向相邻的代理节点发送检测信号,以使两代理节点握手;在本实施方式中,时间间隔为2秒;(2-3)代理节点生成检测数据并存储于信号发送节点;(2-4)当检测数据积累到了满足分析所需数量时,处于代理节点的检测数据处理程序对检测数据进行统计和分析,以得到数据集{S1; S2,…,SJ,其中η为代理节点个数,
Si表示第i个节点所测得到所有数据,并将数据集发送到控制器;(3)控制器分析数据集,以得到决策结果Rr ;控制器将得到的数据集{S1;S2,…,Sn},并利用控制器中的分析函数计算和分析数据集,以得到决策结果&,具体而言,首先去掉数据集里每个数据项中的不合格数据(如空数据、异常数据等),然后对每个数据项中的所有测试数据求平均值,得到新的平均测试数据集(A1,A2,…,AJ,其中Ai为第i个节点的测试数据的平均值,计算{A1;A2,…,AJ中大
于连接性测试阀值T。的测试数据个数Ca,则根据如下公式便可得到决策结果& Rr= — o
η(4)判断决策结果&是否大于最终标准决策结果值,如果是,则初始化程序重新生成拓扑矩阵Μη’,并根据拓扑矩阵Μη’动态地调整拓扑结构,然后进入步骤(5),否则直接跳至步骤(6);上面所说的动态调整拓扑结构与初始化阶段的重置拓扑结构的不同之处在于,整个调整过程并不将全部的代理节点和它们之间的连接直接重置和重新初始化,而是根据新生成的拓扑矩阵Μη’,有选择地动态增加和删除,以尽可能减少调整的时间;(5)测试拓扑矩阵Μη’,并对拓扑矩阵Μη’中代理节点的路由表进行更新,以适应新的拓扑结构,并保证信息的正确传输;(6)重复执行步骤(2)至(5),直到整个过程的持续时间到达预定测试时间为止。本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种基于内容的发布订阅模型的拓扑结构优化方法,其特征在于,包括以下步骤 (1)创建代理节点并对所述代理节点进行初始化操作,以得到初始拓扑结构,具体包括以下子步骤 (1-1)对所述参数进行初始化,所述参数包括代理节点添加模式、代理节点个数、客户端个数、连接性测试阀值T。、拓扑结构所用传输协议、环状拓扑结构矩阵Tm、客户端与拓扑连接矩阵、预定测试时间、初始化标准决策结果值和最终标准决策结果值,所述客户端与所述拓扑连接矩阵指定了所述客户端和所述代理节点之间的对应关系; (1-2)将初始化后的参数加载到用于在初始化阶段管理和协同所有初始化操作的初始化程序; (1-3)将所述初始化程序加载到用于监控和管理拓扑结构的控制器上; (1-4)所述控制器根据初始化的部分参数调用所述初始化程序,以初始化所有的代理节点; (1-5)所述初始化程序根据所述客户端的个数、所述客户端和所述拓扑连接矩阵初始化所有客户端,并将所有客户端连接到所述客户端与所述拓扑连接矩阵指定的代理节点; (1-6)对所述拓扑结构进行连接性测试,以得到连接性矩阵M。,所述连接性矩阵M。中的值表示两个代理节点之间的连接性; (1-7)将所述连接性矩阵M。传送到所述初始化程序,并且所述初始化程序根据所述环状拓扑结构矩阵Tm、所述连接性测试阀值T。和所述连接性矩阵M。计算决策结果Ri ; (1-8)判断决策结果Ri是否小于所述初始化标准决策结果值,如果是,则进入步骤(1-9),否则转入步骤(2); (1-9)所述初始化程序重新生成拓扑矩阵Mn,并根据所述拓扑矩阵Mn重置所述拓扑结构; (2)对所述初始拓扑结构进行定时检测,以得到测试结果数据集,具体包括以下子步骤 (2-1)运行所述控制器中的检测程序,并且所述检测程序向每个代理节点发送检测发起信号; (2-2)每个代理节点接受到检测发起信号后定时地向相邻的代理节点发送检测信号,以使两代理节点握手; (2-3)所述代理节点生成检测数据并存储于信号发送节点; (2-4)当检测数据积累到了满足分析所需数量时,处于所述代理节点的检测数据处理程序对所述检测数据进行统计和分析,以得到数据集{S1; S2,…,SJ,其中η为代理节点个数,Si表示第i个节点所测得到所有数据,并将所述数据集发送到控制器; (3)所述控制器分析所述数据集,以得到决策结果艮; (4)判断决策结果&是否大于最终标准决策结果值,如果是,则所述初始化程序重新生成拓扑矩阵Mn’,并根据拓扑矩阵Mn’动态地调整拓扑结构,然后进入步骤(5),否则直接跳至步骤(6); (5)测试拓扑矩阵Mn’,并对所述拓扑矩阵Mn’中代理节点的路由表进行更新; (6)重复执行步骤(2)至(5),直到整个过程的持续时间到达预定测试时间为止。
2.根据权利要求I所述的拓扑结构优化方法,其特征在于,所述预定测试时间为30分钟,所述初始化标准决策结果值为1-5毫秒,所述最终标准决策结果值为2-10毫秒。
3.根据权利要求I所述的拓扑结构优化方法,其特征在于,所述步骤(1-4)具体为,根据所述传输协议和所述连通性测试阀值T。指定所述拓扑结构中单个代理节点的公共属性值,根据所述初始化程序指定单个代理节点的节点ID和节点所占端口号等,根据所述环状拓扑结构矩阵Tm逐个地初始化所述代理节点,以建立拓扑结构,同时加载路由程序到每个代理节点。
4.根据权利要求I所述的拓扑结构优化方法,其特征在于,所述步骤(1-7)具体是采用以下公式S= {(x, y) V(x;y) = I, (x, y) e Tj 式=’其中(x,y) e S,V' (x,y) > Tc 皿s 其中S表示所述环状拓扑结构矩阵Tm中值为I的坐标集合,v(x,y)表示所述环状拓扑结构矩阵Tm中坐标为(X,y)的值,V’(x,y)表示所述连接性矩阵Mc中坐标为(X,y)的值,Ms是坐标集合S中坐标的个数。
5.根据权利要求I所述的拓扑结构优化方法,其特征在于,所述步骤(1-9)具体为,所述初始化程序会去掉所述连接性矩阵M。中较大的值,并将所述环状拓扑结构矩阵^对应的坐标的值由I变0,再对所述环状拓扑结构矩阵Tm做微调,直至新的拓扑矩阵是非环结构,以得到所述拓扑矩阵Mn,然后所述初始化程序会根据所述拓扑矩阵Mn重新生成所有代理节点之间的连接。
6.根据权利要求I所述的拓扑结构优化方法,其特征在于,所述步骤(3)具体为,所述控制器首先去掉所述数据集里每个数据项中的不合格数据,然后对每个数据项中的所有测试数据求平均值,以得到新的平均测试数据集“…,AJ,其中Ai为第i个节点的测试数据的平均值,然后计算所述平均测试数据集{A1;A2,…,AJ中大于所述连接性测试阀值Tc的测试数据个数Ca,最后根据如下公式得到所述决策结果& /< = , H
全文摘要
本发明公开了一种基于内容的发布订阅模型的拓扑结构优化方法,包括创建代理节点并对代理节点进行初始化操作,以得到初始拓扑结构,对初始拓扑结构进行定时检测,以得到测试结果数据集,控制器分析数据集,以得到决策结果Rr,判断决策结果Rr是否大于最终标准决策结果值,如果是,则初始化程序重新生成拓扑矩阵Mn’,并根据拓扑矩阵Mn’动态地调整拓扑结构,测试拓扑矩阵Mn’,并对拓扑矩阵Mn’中代理节点的路由表进行更新。本发明能够使发布订阅系统自动检测其拓扑内代理的状态并根据当前拓扑结构和网络连接状况综合制定拓扑策略,动态地在环状结构和非环状结构之间进行转换,从而达到充分利用不同结构的优点,增加容错性以及减少信息分发延迟的目的。
文档编号H04L29/08GK102917016SQ201210335400
公开日2013年2月6日 申请日期2012年9月12日 优先权日2012年9月12日
发明者金海 , 谢夏, 王宏光 申请人:华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1