消息发布与订阅的方法及装置制造方法

文档序号:7790344阅读:192来源:国知局
消息发布与订阅的方法及装置制造方法
【专利摘要】本发明提供了一种消息发布与订阅的方法及装置,涉及信息处理领域,主要通过为发布者以及订阅者在消息中间件中设置相应的虚拟主题,或者通过对发布者以及订阅者向消息中间件进行语义识别,用以提供更高的信息传输效率和更强的灵活性。
【专利说明】消息发布与订阅的方法及装置
【技术领域】
[0001]本发明涉及信息处理领域,尤其涉及一种消息发布与订阅的方法及装置。
【背景技术】
[0002]消息中间件利用高效可靠的消息传递机制进行与平台无关的数据交流,通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。
[0003]在消息中间件的消息传输模式中,发布/订阅模式是最常用的传输机制。发布者和订阅者之间通过主题交换信息:发布者把消息发布到相关主题,订阅者在该主题上注册并接收该主题上的信息,通过这种方式主题把发布者和订阅者连接起来。
[0004]传统的发布/订阅系统的消息路由方式是一种基于内容和地址相结合的路由方式,在这种路由体系下,首先根据主题内容,并结合预先收集的订阅者,来确定关于同一个主题的消息有或者没有哪些感兴趣的订阅者,以及这些订阅者的目的地服务器和接收队列,然后,再通过静态路由体系确定该消息将被分发至哪些本地接收队列和下一个路由节点。所以在这种路由体系下,发布者与订阅者之间传输的消息必须携带一个主题。
[0005]然而,主题的改变,例如主题的名称或者类别的改变,都会影响消息路由的目的地,而发布者或订阅者必须知道这些改变才能发布或订阅到正确的主题上。在大规模应用的场景下,特别是在互联网环境的情况下,这种改变会引发发布者或订阅者大的改变和不必要的网络开销。

【发明内容】

[0006]本发明的实施例提供一种消息发布与订阅的方法及装置,以提供更高的信息传输效率,和更强的灵活性。
[0007]为达到上述目的,本发明的实施例采用如下技术方案:
[0008]第一方面,本发明提供了一种消息发布的方法,包括:
[0009]获取发布者已发送至与所述发布者对应的虚拟主题的消息;
[0010]根据已存储的虚拟主题与实际主题之间的路由规则,查找以所述发布者对应的虚拟主题为起点,并且以任意一个订阅者对应的虚拟主题为终点的传输路径;其中,所述虚拟主题用于实际主题和发布者之间的消息转发或者实际主题和订阅者之间的消息转发;所述实际主题用于发布者和订阅者之间的消息转发;
[0011]当查找到以所述发布者对应的虚拟主题为起点,并且以订阅者对应的虚拟主题为终点的传输路径时,在查找到的传输路径上,传输所述消息或与所述消息对应的标识信息;
[0012]当所述消息或与所述消息对应的标识信息传输至每一条传输路径的终点时,将所述消息发送至该传输路径的终点所对应的订阅者。
[0013]结合第一方面,在第一方面的第一种可能实现方式中,还包括:
[0014]当未查找到以所述发布者对应的虚拟主题为起点,并且以订阅者对应的虚拟主题为终点的传输路径时,则对所述消息进行语义解析,得到语义解析结果,并根据所述语义解析结果,在已存储的实际主题中查找与所述语义解析结果匹配的实际主题;
[0015]若查找到与所述语义解析结果匹配的实际主题,则生成并存储所述发布者对应的虚拟主题与查找到的实际主题之间的路由规则。
[0016]结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,在所述生成并存储所述发布者对应的虚拟主题与查找到的实际主题之间的路由规则之后,还包括:
[0017]根据当前已存储的虚拟主题与实际主题之间的路由规则,查找以所述发布者对应的虚拟主题为起点,并且以任意一个订阅者对应的虚拟主题为终点的传输路径;
[0018]当查找到以所述发布者对应的虚拟主题为起点,并且以订阅者对应的虚拟主题为终点的传输路径时,在查找到的传输路径上,传输所述消息或与所述消息对应的标识信息;
[0019]当所述消息或与所述消息对应的标识信息传输至每一条传输路径的终点时,将所述消息发送至该传输路径的终点所对应的订阅者。
[0020]结合第一方面的第一种或第二种可能实现方式,在第三种可能实现方式中,还包括:
[0021]若未查找到与所述语义解析结果匹配的实际主题,则创建新的实际主题,并生成并存储所述发布者对应的虚拟主题与新创建的实际主题之间的路由规则。
[0022]结合第一方面,在第四种可能实现方式中,在根据当前已存储的虚拟主题与实际主题之间的路由规则,查找以所述发布者对应的虚拟主题为起点,并且以任意一个订阅者对应的虚拟主题为终点的传输路径之前,还包括:
[0023]判断获取的所述消息是否为控制消息,所述控制消息用于更新已存储的虚拟主题与实际主题之间的路由规则;
[0024]若获取的所述消息不是控制消息,则执行根据当前已存储的虚拟主题与实际主题之间的路由规则,查找以所述发布者对应的虚拟主题为起点,并且以任意一个订阅者对应的虚拟主题为终点的传输路径的步骤;
[0025]若确定获取的所述消息是控制消息,则根据所述控制消息,对已存储的虚拟主题与实际主题之间的路由规则进行修改;存储修改后的虚拟主题与实际主题之间的路由规则。
[0026]结合第一方面或第一方面的前四种可能实现方式中的任意一种,在第五种可能的实现方式中,在所述根据查找到的所有传输路径,传输所述消息的标识信息之前,还包括:
[0027]生成与所述消息对应的标识信息;
[0028]则当所述消息的标识信息传输至每一条传输路径的终点时,将该发布者发送的消息发送至传输路径的终点所对应的订阅者包括:
[0029]当所述消息的标识信息传输至每一条传输路径的终点时,获取与所述标识信息对应的消息,并将与所述标识信息对应的消息发送至传输路径的终点所对应的订阅者。
[0030]第二方面,本发明提供了一种消息发布的方法,包括:
[0031]获取发布者已发送的消息;
[0032]对获取到的消息进行语义解析,并根据语义解析结果,在已存储的实际主题中查找与所述语义解析结果匹配的实际主题;[0033]若查找到与所述语义解析结果匹配的实际主题,则在已存储的订阅对应关系中,查找与所述实际主题对应的订阅者;
[0034]若查找到所述实际主题对应的订阅者,则将所述获取到的消息发送至所有查找到的订阅者。
[0035]结合第二方面,在第一种可能实现方式中,还包括:
[0036]若未查找到与所述语义解析结果匹配的实际主题,则创建新的实际主题,并存储新创建的实际主题。
[0037]第三方面,本发明提供了一种消息订阅的方法,包括:
[0038]获取订阅者已发送至所述订阅者对应的虚拟主题的消息;
[0039]根据获取的所述消息,创建所述订阅者对应的虚拟主题与目的实际主题之间的路由规则,所述目的实际主题为所述订阅者当前订阅的实际主题;其中,所述虚拟主题用于实际主题和发布者之间的消息转发或者实际主题和订阅者之间的消息转发;所述目的实际主题用于订阅者对应的虚拟主题之间的消息转发。
[0040]结合第三方面,在第一种可能实现方式中,所述根据获取的所述消息,创建所述订阅者对应的虚拟主题与目的实际主题之间的路由规则包括:
[0041]当获取的所述消息为控制消息时,根据所述控制消息获取目的实际主题,所述控制消息用于更新虚拟主题与所述订阅者选择的实际主题之间的路由规则;
[0042]创建所述订阅者对应的虚拟主题与根据所述控制消息获取到的目的实际主题之间的路由规则。
[0043]结合第三方面的第一种可能的实现方式,在第二种可能的实现方式中,所述根据获取的所述消息,创建所述订阅者对应的虚拟主题与目的实际主题之间的路由规则包括:
[0044]当获取的所述消息不为控制消息时,对获取的所述消息进行语义解析,并根据语义解析结果,在已存储的实际主题中查找与所述语义解析结果匹配的实际主题;
[0045]若在已存储的实际主题中查找到与所述语义解析结果匹配的实际主题,则创建所述订阅者对应的虚拟主题与查找到的与所述语义解析结果匹配的实际主题之间的路由规则。
[0046]结合第三方面的第二种可能实现方式,在第三种可能实现方式中,还包括:
[0047]若在已存储的实际主题中未查找到与所述语义解析结果匹配的实际主题,则创建新的实际主题,并创建所述订阅者对应的虚拟主题与目的实际主题之间的路由规则。
[0048]第四方面,本发明提供了一种消息订阅的方法,包括:
[0049]获取订阅者已发送至与所述订阅者对应的虚拟主题的消息;
[0050]对获取的所述消息进行语义解析,并根据语义解析结果,在已存储的实际主题中查找与所述语义解析结果匹配的实际主题;
[0051]若在已存储的实际主题中查找到与所述语义解析结果匹配的实际主题,则创建查找到的实际主题与所述订阅者的订阅对应关系。
[0052]结合第四方面,在第一种可能实现方式中,还包括:
[0053]若在已存储的实际主题中未查找到与所述语义解析结果匹配的实际主题,则创建新的实际主题,并创建新创建的实际主题与所述订阅者的订阅对应关系。
[0054]第五方面,本发明提供了一种消息发布的装置,包括:[0055]信息处理模块,用于获取发布者已发送至与所述发布者对应的虚拟主题的信息;
[0056]主题模块,用于根据已存储的虚拟主题与实际主题之间的路由规则,查找以所述发布者对应的虚拟主题为起点,并且以任意一个订阅者对应的虚拟主题为终点的传输路径;其中,所述虚拟主题用于实际主题和发布者之间的消息转发或者实际主题和订阅者之间的消息转发;所述实际主题用于发布者和订阅者之间的消息转发;
[0057]传输模块,用于当所述主题模块查找到以所述发布者对应的虚拟主题为起点,并且以订阅者对应的虚拟主题为终点的传输路径时,在查找到的传输路径上,传输所述消息或与所述消息对应的标识信息;当所述消息或与所述消息对应的标识信息传输至每一条传输路径的终点时,将所述消息发送至该传输路径的终点所对应的订阅者。
[0058]结合第五方面,在第五方面的第一种可能实现方式中,还包括:
[0059]语义识别模块,用于当所述主题模块未查找到以所述发布者对应的虚拟主题为起点,并且以订阅者对应的虚拟主题为终点的传输路径时,对所述消息进行语义解析,得到语义解析结果,并根据所述语义解析结果,在已存储的实际主题中查找与所述语义解析结果匹配的实际主题;
[0060]所述路由规则生成模块,用于若所述语义识别模块查找到与所述语义解析结果匹配的实际主题,则生成并存储所述发布者对应的虚拟主题与查找到的实际主题之间的路由规则。
[0061]结合第一方面的第一种可能的实现方式,在第二种可能的实现方式,所述主题模块,用于根据当前所述路由规则生成模块已存储的虚拟主题与实际主题之间的路由规则,查找以所述发布者对应的虚拟主题为起点,并且以任意一个订阅者对应的虚拟主题为终点的传输路径;
[0062]所述传输模块,还用于当所述主题模块查找到以所述发布者对应的虚拟主题为起点,并且以订阅者对应的虚拟主题为终点的传输路径时,在查找到的传输路径上,传输所述消息或与所述消息对应的标识信息;当所述消息或与所述消息对应的标识信息传输至每一条传输路径的终点时,将所述消息发送至该传输路径的终点所对应的订阅者。
[0063]结合第五方面的第一种或第二种可能实现方式,在第三种可能实现方式中,所述主题模块,还用于在未查找到与所述语义解析结果匹配的实际主题时,创建新的实际主题;
[0064]所述路由规则生成模块,还用于存储所述发布者对应的虚拟主题与新创建的实际主题之间的路由规则。
[0065]结合第五方面,在第三种可能实现方式中,所述信息处理模块,还用于判断获取的所述消息是否为控制消息,所述控制消息用于更新已存储的虚拟主题与实际主题之间的路由规则;
[0066]所述主题模块,用于在所述信息处理模块确定获取的所述消息不是控制消息,则根据当前已存储的虚拟主题与实际主题之间的路由规则,查找以所述发布者对应的虚拟主题为起点,并且以任意一个订阅者对应的虚拟主题为终点的传输路径;
[0067]所述路由规则生成模块,还用于若所述信息处理模块确定获取的所述消息是控制消息,则根据所述控制消息,对已存储的虚拟主题与实际主题之间的路由规则进行修改;存储修改后的虚拟主题与实际主题之间的路由规则。[0068]结合第三方面或第三方面的前四种可能的实现方式中的任意一种,在第五种可能的实现方式中,所述信息处理模块还用于生成与所述消息对应的标识信息;
[0069]所述传输模块,还用于当所述与所述消息对应的标识信息传输至每一条传输路径的终点时,获取与所述标识信息对应的消息,并将与所述标识信息对应的消息发送至传输路径的终点所对应的订阅者。
[0070]第六方面,本发明提供了一种消息发布的装置,包括:
[0071]获取模块,用于获取发布者已发送的消息;
[0072]语义识别模块,用于对获取到的消息进行语义解析,并根据语义解析结果,在已存储的实际主题中查找与所述语义解析结果匹配的实际主题;
[0073]主题模块,用于在查找到与所述语义解析结果匹配的实际主题时,在已存储的订阅对应关系中,查找与所述实际主题对应的订阅者;
[0074]传输模块,用于在查找到所述实际主题对应的订阅者时,将所述获取到的消息发送至所有查找到的订阅者。
[0075]结合第六方面,在第一种可能实现方式中,所述主题模块,还用于在未查找到与所述语义解析结果匹配的实际主题时,创建新的实际主题,并存储新创建的实际主题。
[0076]第七方面,本发明提供了一种消息订阅的装置,包括:
[0077]获取模块,用于获取订阅者已发送至所述订阅者对应的虚拟主题的消息;
[0078]创建模块,用于根据获取的所述消息,创建所述订阅者对应的虚拟主题与目的实际主题之间的路由规则,所述目的实际主题为所述订阅者当前订阅的实际主题;其中,所述虚拟主题用于实际主题和发布者之间的消息转发或者实际主题和订阅者之间的消息转发;所述目的实际主题用于订阅者对应的虚拟主题之间的消息转发。
[0079]结合第七方面,在第一种可能实现方式中,所述创建模块包括:
[0080]第一主题子模块,用于当获取的所述消息为控制消息时,根据所述控制消息获取所述目的实际主题,所述控制消息用于更新虚拟主题与所述订阅者选择的实际主题之间的路由规则;以及用于更新所述订阅者对应的虚拟主题与根据所述控制消息获取到的目的实际主题之间的路由规则。
[0081]结合第七方面,在第二种可能实现方式中,所述创建模块包括:
[0082]语义识别子模块,用于当获取的所述消息不为控制消息时,对获取的所述消息进行语义解析,并根据语义解析结果,在已存储的实际主题中查找与所述语义解析结果匹配的实际主题;
[0083]第二主题子模块,用于在在已存储的实际主题中查找到与所述语义解析结果匹配的实际主题时,将查找到的实际主题作为目的实际主题,并创建所述订阅者对应的虚拟主题与查找到的与所述语义解析结果匹配的实际主题之间的路由规则。
[0084]结合第七方面的第二种可能实现方式,在第三种可能实现方式中,所述第二主题子模块,还用于在在已存储的实际主题中未查找到与所述语义解析结果匹配的实际主题时,创建新的实际主题,并创建所述订阅者对应的虚拟主题与目的实际主题之间的路由规则。
[0085]第八方面,本发明提供了一种消息订阅的装置,包括:
[0086]获取模块,用于获取订阅者已发送的消息;[0087]语义识别模块,用于对获取的所述消息进行语义解析,并根据语义解析结果,在已存储的实际主题中查找与所述语义解析结果匹配的实际主题;
[0088]主题模块,用于在在已存储的实际主题中查找到与所述语义解析结果匹配的实际主题时,创建查找到的实际主题与所述订阅者的订阅对应关系。
[0089]结合第八方面,在第一种可能实现方式中,所述主题模块还用于在在已存储的实际主题中未查找到与所述语义解析结果匹配的实际主题时,创建新的实际主题,并创建新创建的实际主题与所述订阅者的订阅对应关系。
[0090]本发明实施例提供的消息发布与订阅的方法,通过为发布者以及订阅者在消息中间件中设置相应的虚拟主题,或者通过对发布者以及订阅者向消息中间件进行语义识别,以保证发布者以及订阅者不需要获知实际主题的具体结构的情况下,仍然保证信息被正确地传输。相比于现有技术中,当消息中间件中的主题发生变化时,发布者以及订阅者必须要获知的变更结果并主动修改路由规则才能完成数据传输的技术方案来讲,本发明实施例提供的技术方案信息传输效率更高,灵活性更强。
【专利附图】

【附图说明】
[0091]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0092]图1为本发明实施例提供的一种消息中间件的组成框图;
[0093]图2为本发明实施例提供的另一种消息中间件的组成框图;
[0094]图3为本发明实施例提供的一种消息发布的方法流程图;
[0095]图4为本发明实施例提供的另一种消息发布的方法流程图;
[0096]图5为本发明实施例提供的另一种消息发布的方法流程图;
[0097]图6为本发明实施例提供的另一种消息发布的方法流程图;
[0098]图7为本发明实施例提供的一种消息订阅的方法流程图;
[0099]图8为本发明实施例提供的另一种消息订阅的方法流程图;
[0100]图9为本发明实施例提供的另一种消息订阅的方法流程图;
[0101]图10为本发明实施例提供的一种消息发布的方法流程图;
[0102]图11为本发明实施例提供的另一种消息发布的方法流程图;
[0103]图12为本发明实施例提供的另一种消息订阅的方法流程图;
[0104]图13为本发明实施例提供的另一种消息订阅的方法流程图;
[0105]图14为本发明实施例提供的一种消息发布的装置的组成框图;
[0106]图15为本发明实施例提供的另一种消息发布的装置的组成框图;
[0107]图16为本发明实施例提供的另一种消息发布的装置的组成框图;
[0108]图17为本发明实施例提供的另一种消息订阅的装置的组成框图;
[0109]图18为本发明实施例提供的另一种消息订阅的装置的组成框图;
[0110]图19为本发明实施例提供的另一种消息订阅的装置的组成框图;
[0111]图20为本发明实施例提供的另一种消息订阅的装置的组成框图;[0112]图21为本发明实施例提供的另一种消息中间件的组成框图;
[0113]图22为本发明实施例提供的另一种消息中间件的组成框图。
【具体实施方式】
[0114]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0115]本发明实施例提供的两种消息中间件(message broker )的组成结构图,用以实现本发明实施例提供的消息发布与订阅的方法,一般以可运行于操作系统和应用软件之间的软件形式存在,用于进行多个操作系统之间、多个应用软件之间以及操作系统和应用软件之间的信息传输。
[0116]图1为本发明实施例提供的消息中间件的一种实现方式的组成结构图,在此结构中,对应于消息中间件外的每个发布者和订阅者,都各自设置有一个虚拟主题,该虚拟主题的作用相当于发布者或订阅者在消息中间件中的映射设备,具有查找下一跳实际主题和转发消息的功能。具体的,所述虚拟主题用于实际主题和发布者之间的消息转发或者实际主题和订阅者之间的消息转发。
[0117]虚拟主题和发布者之间以及虚拟主题与订阅者之间都设置有一个信息处理模块,该信息处理模块主要用于对发布者或订阅者发送到消息中间件的消息进行识别,和生成与对发布者或订阅者发送到消息中间件的消息相对应的标识信息。
[0118]信息处理模块还连接有路由规则生成模块和存储适配模块。路由规则生成模块用于生成虚拟主题和实际主题之间的路由规则,存储适配模块用于存储发布者或订阅者发送到消息中间件的消息。
[0119]路由规则生成模块和存储适配模块都连接到路由模块,路由模块用于存储虚拟主题和实际主题之间的路由规则。
[0120]消息中间件中还设置有实际主题,该实际主题根据虚拟主题和实际主题之间的路由规则,与若干个虚拟主题建立逻辑连接关系,具有查找下一跳实际主题或下一跳虚拟主题和转发消息的功能。,具体的,所述实际主题用于发布者对应的虚拟主题和订阅者对应的虚拟主题之间的消息转发实际主题也连接到路由模块中。实际主题结构可以采用现有技术常用的树形结构,也可以使用其他的结构,本发明实施例对此不进行限制。
[0121]消息中间件中还设置有由语义解析模块和语义匹配模块组成的语义识别模块,该语义识别模块与虚拟主题、路由规则生成模块以及存储适配器相连。
[0122]图2为本发明实施例提供的消息中间件的另一种实现方式的组成结构图,该结构中,消息中间件仅具有实际主题、由语义解析模块和语义匹配模块组成的语义识别模块和存储适配器。其中,实际主题与消息中间件外部的订阅者以及语义识别模块相连,语义识别模块可以与实际主题、消息中间件外部的订阅者、消息中间件外部的发布者以及存储适配器相连。各个模块的功能与图1所示的模块功能基本相同。
[0123]基于图1所示的信息中间件,本发明实施例提供了一种消息订阅的方法,如图3所示,包括:[0124]101、获取发布者已发送至与所述发布者对应的虚拟主题的消息。
[0125]其中,发布者和后续描述的订阅者一般为手机、PC、服务器等终用户终端设备。
[0126]102、根据已存储的虚拟主题与实际主题之间的路由规则,查找以所述发布者对应的虚拟主题为起点,并且以任意一个订阅者对应的虚拟主题为终点的传输路径。
[0127]其中,已存储的虚拟主题与实际主题之间的路由规则用于表示虚拟主题和实际主题之间的消息传输关系,可以由发布者、订阅者或者网络管理员事先进行设置的,或者是在消息中间件工作时实时更新的。
[0128]103、当查找到以所述发布者对应的虚拟主题为起点,并且以订阅者对应的虚拟主题为终点的传输路径时,在查找到的传输路径上,传输所述消息或与所述消息对应的标识信息。
[0129]其中,标识信息的生成可以是消息中间件为发布者发送的消息分配的唯一的标识信息,具体的分配方法可以使用顺序排列标号、哈希计算标号等多种方法。此时发布者发送的消息一般需要存储在一个独立的存储器件中,例如,本发明实施例提供的存储适配器。该标识信息主要是用于使所述订阅者对应的虚拟主题能够根据所述标识信息获取所述消息
[0130]104、当所述消息或与所述消息对应的标识信息传输至每一条传输路径的终点时,将所述消息发送至该传输路径的终点所对应的订阅者。
[0131]本发明实施例提供了一种消息发布的方法,在该方法中,发布者可根据自身需要向消息中间件中与自身对应的虚拟主题发送消息,就可以由消息中间件根据自身内部存储的虚拟主题与实际主题之间的路由规则相应的传输路径,并将发布者发送的消息发送至相应的订阅者,从而使得当实际主题发生变化时,只需要由消息中间件的内部对存储的虚拟主题与实际主题之间的路由规则进行修改即可,发布者仍可以向与消息中间件中与自身对应的虚拟主题继续发送消息,而不用做出任何改变。与现有技术中当实际主题发生变化时,发布者必须要更改传输路径才能将消息正确传输的技术方案相比,消息传输效率更高,传输路径的灵活性更强。
[0132]进一步的,在如图3所示的方法流程的基础上,本发明实施例还提供了另一种消息发布的方法,如图4所示,执行于步骤102之后,包括:
[0133]105、当未查找到以所述发布者对应的虚拟主题为起点,并且以订阅者对应的虚拟主题为终点的传输路径时,则对所述消息进行语义解析,并根据语义解析结果,在已存储的实际主题中查找与所述语义解析结果匹配的实际主题。若查找到与所述语义解析结果匹配的实际主题,则执行步骤106。否则执行步骤110。
[0134]其中,由于实际主题就是用于连接消息发布订阅者的实际主题,其定义方式与现有技术基本相同,因此,每个实际主题一般都对应有相应的字符串、标号等可以用于文字或语义匹配的主题标识,对发布者发送的消息进行语义解析之后,会将消息解析成一系列的关键字。通过这些关键字可以与所有实际主题各自对应的主题标识进行模糊匹配,例如字符串匹配等,用以确定这个消息最可能的传输方向或路径。
[0135]106、生成并存储所述发布者对应的虚拟主题与查找到的实际主题之间的路由规则。
[0136]107、根据当前已存储的虚拟主题与实际主题之间的路由规则,查找以所述发布者对应的虚拟主题为起点,并且以任意一个订阅者对应的虚拟主题为终点的传输路径。[0137]108、当查找到以所述发布者对应的虚拟主题为起点,并且以订阅者对应的虚拟主题为终点的传输路径时,在查找到的传输路径上,传输所述消息或与所述消息对应的标识信息。
[0138]值得说明的是,若此时仍查找不到所述发布者对应的虚拟主题为起点,并且以订阅者对应的虚拟主题为终点的传输路径,则说明此时查找到的实际主题尚无人订阅,因此,直接将该发布者发送的消息进行存储即可,不需要再继续发送。
[0139]109、当所述消息或与所述消息对应的标识信息传输至每一条传输路径的终点时,将所述消息发送至该传输路径的终点所对应的订阅者。
[0140]110、创建新的实际主题,并生成并存储所述发布者对应的虚拟主题与新创建的实际主题之间的路由规则。
[0141]在执行步骤110后,不需要将消息继续进行传输,其原因为:若已存储的实际主题中并不存在发布者发送的消息对应的实际主题,说明此时还没有任何订阅者订阅了此主题。
[0142]本发明实施例进一步提供的消息发布的方法,在无法查找到相应的传输路径时,对发布者发送的消息进行语义识别,用以匹配与该消息最相近的实际主题,从而建立全新的数据传输路径,以保证消息的正常准确地发布。进一步地让发布者可以完全根据自身需要去发送消息。消息中间件都能够让消息得到正确的传输。
[0143]进一步的,为了方便发布者对消息传输路径的控制,因此,本发明一实施例为发布者提供了控制消息,用以修改和删除消息中间件内已存储的原有路由规则或添加新的路由规则。控制消息可以包括=Forward转发指令、Copy复制指令、Subscription订阅指令、Proxy代理指令。Forward指令用于控制路由规则从一个主题完全迁移到同一消息中间件内的另外一个主题,原主题不再获取任何消息。Copy指令用于在保证除了原有获取消息的主题仍获取消息以外,还将作为消息来源的主题与指令指定的其它多个主题建立路由规则。
[0144]Subscription指令用于建立实际主题与订阅者对应的虚拟主题之间的路由规则。Proxy指令用于将路由规则从一个主题完全迁移到另外一个不同的消息中间件内中的一个主题,原主题不再获取任何消息。
[0145]基于此,在执行步骤102之前,如图5所示,还包括:
[0146]111、判断获取的所述消息是否为控制消息。若确定获取的所述消息不是控制消息,则执行步骤102。否则执行步骤112。
[0147]112、根据所述控制消息,对已存储的虚拟主题与实际主题之间的路由规则进行修改。
[0148]其中,所述控制消息至少包括前述的Forward转发指令、Copy复制指令、Subscription订阅指令、Proxy代理指令四种指令。
[0149]113、存储修改后的虚拟主题与实际主题之间的路由规则。
[0150]本发明实施例进一步提供的消息发布的方法,可以为订阅者提供对消息中间件的动态控制功能,进一步保证了消息的准确传输。
[0151]为了减少消息中间件内消息传输的流量,节省传输资源。消息中间件内部可不传输发布者发送的具体消息,而是为每份具体消息生成一个标识信息,并传输该标识信息,具体参见图6所示的方法流程,包括:
[0152]S101、获取发布者已发送至与所述发布至对应的虚拟主题的消息。
[0153]S102、生成与所述消息对应的标识信息。
[0154]S103、根据已存储的虚拟主题与实际主题之间的路由规则,查找以所述发布者对应的虚拟主题为起点,并且以任意一个订阅者对应的虚拟主题为终点的传输路径。
[0155]S104、当查找到以所述发布者对应的虚拟主题为起点,并且以订阅者对应的虚拟主题为终点的传输路径时,在查找到的传输路径上,传输所述标识信息。
[0156]S105、当与所述消息对应的标识信息传输至每一条传输路径的终点时,获取与所述标识信息对应的消息。
[0157]S106、将所述消息发送至传输路径的终点对应的订阅者。
[0158]对应于如图3至图6所示的消息发布的方法流程,本发明实施例提供了相应的消息订阅方法,如图7所示,包括:
[0159]201、获取订阅者已发送至所述订阅者对应的虚拟主题的消息。
[0160]其中,所述订阅者发送的消息包括控制消息和模糊消息。控制消息是在订阅者明确知道自己想要订阅哪一个或哪些主题时向消息中间件发送的消息,而模糊消息是订阅者并不清楚自己想要订阅的内容属于哪一个或哪些主题时发送的一段文字等消息。
[0161]202、根据获取的所述消息,创建所述订阅者对应的虚拟主题与目的实际主题之间的路由规则,所述目的实际主题为所述订阅者当前订阅的实际主题。
[0162]其中,此处描述路由规则的生成与维护与前述描述的内容基本类似。
[0163]值得说明的是,针对201获取到的消息类型步骤,步骤202的具体实现方式也不同,具体包括以下两种:
[0164]如图8所示的实现方式一,包括:
[0165]A2021、当获取的所述消息为控制消息时,根据所述控制消息获取所述目的实际主题。
[0166]其中,控制消息与步骤111中描述的控制消息是同一个指令类型的不同功能。
[0167]A2022、创建所述订阅者对应的虚拟主题与根据所述控制消息获取到的目的实际主题之间的路由规则。
[0168]如图9所示的实现方式二,包括:
[0169]B2021、当获取的所述消息不为控制消息时,对获取的所述消息进行语义解析,并根据语义解析结果,在已存储的实际主题中查找与所述语义解析结果匹配的实际主题。若在已存储的实际主题中查找到与所述语义解析结果匹配的实际主题,则执行步骤B2022。否则执行步骤B2023。
[0170]B2022、创建所述订阅者对应的虚拟主题与查找到的与所述语义解析结果匹配的实际主题之间的路由规则。
[0171]B2023、创建新的实际主题,并创建所述订阅者对应的虚拟主题与所述新的实际主题之间的路由规则。
[0172]本发明实施例提供的消息订阅方法,订阅者只需要建立所述订阅者对应的虚拟主题与目的实际主题之间的路由规则即可,在后续实际主题发生变化时,只需要消息中间件进行路由规则变更即可,订阅者仍然可以从对应的虚拟主题继续接收消息,而不用做出任何改变。与现有技术中当实际主题发生变化时,订阅者必须要更改传输路径才能将正确接收到想要的消息的技术方案相比,消息传输效率更高,传输路径的灵活性更强。
[0173]并且,订阅者可以根据自身需要通过控制消息或模糊消息来进行订阅,增加了订阅者的灵活性。
[0174]基于如图2所示的信息中间件,本发明实施例提供了一种消息发布的方法,如图10所示,包括:
[0175]301、获取发布者已发送的消息。
[0176]302、对获取到的消息进行语义解析,并根据语义解析结果,在已存储的实际主题中查找与所述语义解析结果匹配的实际主题。
[0177]303、若查找到与所述语义解析结果匹配的实际主题,则在已存储的订阅对应关系中查找与所述实际主题对应的订阅者。
[0178]其中,基于语义解析结果的匹配方法可参照步骤105的有关描述。
[0179]304、若查找到所述实际主题对应的订阅者,则将所述获取到的消息发送至所有查找到的订阅者。
[0180]另外,如图11所示,在若执行步骤302后,未查找到与所述语义解析结果匹配的实际主题,则执行305、创建新的实际主题,并存储新创建的实际主题。
[0181]本发明实施例提供了一种消息发布的方法,可以在互联网中使用,特别是移动互联网某些领域,发布者或订阅者可能不会关心具体的主题什么,是否存在的场景下。该方法可以直接根据发布者发送的消息进行语义识别,来推断发布者可能想要发布的主题,使得发布者根据自己需要发布消息,进而加强了消息传输的效率和灵活性。
[0182]对应于如图10至图11所示的消息发布的方法流程,本发明实施例提供了相应的消息订阅方法,如图12所示,包括:
[0183]401、获取订阅者已发送的消息。
[0184]402、对获取的所述消息进行语义解析,并根据语义解析结果,在已存储的实际主题中查找与所述语义解析结果匹配的实际主题。
[0185]403、若在已存储的实际主题中查找到与所述语义解析结果匹配的实际主题,则创建查找到的实际主题与所述订阅者的订阅对应关系。
[0186]另外,如图13所示,在若执行步骤402后,未查找到与所述语义解析结果匹配的实际主题,则执行404、创建新的实际主题,并创建新创建的实际主题与所述订阅者的订阅对应关系。
[0187]本发明实施例提供了一种消息订阅的方法,可以在互联网中使用,特别是移动互联网某些领域,发布者或订阅者可能不会关心具体的主题什么,是否存在的场景下。该方法可以直接根据订阅者发送的消息进行语义识别,来推断订阅者可能想要订阅的主题,使得订阅者根据自己需要来订阅消息。不需要知道具体的主题是什么,进而加强了消息传输的效率和灵活性。
[0188]进一步值得说明的是,如图2所示的装置结构包含有实际主题,其设置目的在于将多种消息进行整合归类到同一主题下。而在一些特殊的应用场景中,例如微博,微信等场景,并不存在明确的发布者和订阅者的划分,每个用户端都可以是消息的发布者和获取者,并且消息发送的数量巨大很难进行分类,因此在这种场景下,不需要对消息进行整合分类,即如图2所示的装置结构可以设置一个匹配模块来替代原有的实际主题,将将用户端发送到消息中间件内的不同消息进行语义匹配,将成功匹配的多个用户端的消息互相进行传输即可。
[0189]本发明提供了一种消息发布的装置,可用于实现如图3至图6所示的消息发布的方法流程,如图14所示,包括:
[0190]信息处理模块51,用于获取发布者已发送至与所述发布者对应的虚拟主题的消
肩、O
[0191]主题模块52,用于根据已存储的虚拟主题与实际主题之间的路由规则,查找以所述发布者对应的虚拟主题为起点,并且以任意一个订阅者对应的虚拟主题为终点的传输路径;其中,所述虚拟主题用于实际主题和发布者之间的消息转发或者实际主题和订阅者之间的消息转发;所述实际主题用于发布者和订阅者之间的消息转发。
[0192]传输模块53,用于当所述主题模块52查找到以所述发布者对应的虚拟主题为起点,并且以订阅者对应的虚拟主题为终点的传输路径时,在查找到的传输路径上,传输所述消息或与所述消息对应的标识信息;当所述消息或与所述消息对应的标识信息传输至每一条传输路径的终点时,将所述消息发送至该传输路径的终点所对应的订阅者。其中,所述标识信息用于使所述订阅者对应的虚拟主题能够根据所述标识信息获取所述消息。
[0193]可选的是,如图14所示,该装置还包括:
[0194]语义识别模块54,用于所述主题模块52未查找到以所述发布者对应的虚拟主题为起点,并且以订阅者对应的虚拟主题为终点的传输路径时,对所述消息进行语义解析,得到语义解析结果,并根据所述语义解析结果,在已存储的实际主题中查找与所述语义解析结果匹配的实际主题。
[0195]路由规则生成模块55,用于若所述语义识别模块54查找到与所述语义解析结果匹配的实际主题,则生成并存储所述发布者对应的虚拟主题与查找到的实际主题之间的路由规则。
[0196]可选的是,所述主题模块52,用于根据当前所述路由规则生成模块55已存储的虚拟主题与实际主题之间的路由规则,查找以所述发布者对应的虚拟主题为起点,并且以任意一个订阅者对应的虚拟主题为终点的传输路径。
[0197]所述传输模块53,还用于当所述主题模块52查找到以所述发布者对应的虚拟主题为起点,并且以订阅者对应的虚拟主题为终点的传输路径时,在查找到的传输路径上,传输所述消息或与所述消息对应的标识信息;当所述消息或与所述消息对应的标识信息传输至每一条传输路径的终点时,将所述消息发送至该传输路径的终点所对应的订阅者。
[0198]可选的是,所述主题模块52,还用于在未查找到与所述语义解析结果匹配的实际主题时,创建新的实际主题。
[0199]所述路由规则生成模块55,还用于存储所述发布者对应的虚拟主题与新创建的实际主题之间的路由规则。
[0200]可选的是,所述信息处理模块51,还用于判断获取的所述消息是否为控制消息,所述控制消息用于更新已存储的虚拟主题与实际主题之间的路由规则。
[0201]所述主题模块52,用于在所述信息处理模块51确定获取的所述消息不是控制消息,则根据当前已存储的虚拟主题与实际主题之间的路由规则,查找以所述发布者对应的虚拟主题为起点,并且以任意一个订阅者对应的虚拟主题为终点的传输路径。
[0202]所述路由规则生成模块55,还用于在所述信息处理模块52确定获取的所述消息是控制消息,则根据所述控制消息,对已存储的虚拟主题与实际主题之间的路由规则进行修改;存储修改后的虚拟主题与实际主题之间的路由规则。
[0203]可选的是,所述信息处理模块51还用于生成与所述消息对应的标识信息。
[0204]所述传输模块53,还用于当所述与所述消息对应的标识信息传输至每一条传输路径的终点时,获取与所述标识信息对应的消息,并将与所述标识信息对应的消息发送至传输路径的终点所对应的订阅者。
[0205]本发明实施例一种消息发布的装置,可用于实现如图9-10所示的消息发布的方法流程,如图15所示,包括:
[0206]获取模块61,用于获取发布者已发送的消息。
[0207]语义识别模块62,用于对获取到的消息进行语义解析,并根据语义解析结果,在已存储的实际主题中查找与所述语义解析结果匹配的实际主题。
[0208]主题模块63,用于在查找到与所述语义解析结果匹配的实际主题时,在已存储的订阅对应关系中,查找与所述实际主题对应的订阅者。
[0209]传输模块64,用于在查找到所述实际主题对应的订阅者时,将所述获取到的消息发送至所有查找到的订阅者。
[0210]可选的是,所述主题模块63,还用于在未查找到与所述语义解析结果匹配的实际主题时,创建新的实际主题,并存储新创建的实际主题。
[0211]本发明实施例提供了一种消息订阅的装置,可用于实现如图6-8所示的消息订阅的方法流程,如图16所示,包括:
[0212]获取模块71,用于获取订阅者已发送至所述订阅者对应的虚拟主题的消息。
[0213]创建模块72,用于根据获取的所述消息,创建所述订阅者对应的虚拟主题与目的实际主题之间的路由规则,所述目的实际主题为所述订阅者当前订阅的实际主题;其中,所述虚拟主题用于实际主题和发布者之间的消息转发或者实际主题和订阅者之间的消息转发;所述目的实际主题用于订阅者对应的虚拟主题之间的消息转发。
[0214]可选的是,如图17所示,所述创建模块72包括:
[0215]第一主题子模块721,用于当获取的所述消息为控制消息时,根据所述控制消息获取所述目的实际主题,所述控制消息用于更新虚拟主题与所述订阅者选择的实际主题之间的路由规则;以及用于更新所述订阅者对应的虚拟主题与根据所述控制消息获取到的目的实际主题之间的路由规则。
[0216]可选的是,如图18所示,所述创建模块72包括:
[0217]语义识别子模块722,用于当获取的所述消息不为控制消息时,对获取的所述消息进行语义解析,并根据语义解析结果,在已存储的实际主题中查找与所述语义解析结果匹配的实际主题。
[0218]第二主题子模块723,用于在在已存储的实际主题中查找到与所述语义解析结果匹配的实际主题时,将查找到的实际主题作为目的实际主题,并创建所述订阅者对应的虚拟主题与查找到的与所述语义解析结果匹配的实际主题之间的路由规则。
[0219]可选的是,所述第二主题子模块723,还用于在在已存储的实际主题中未查找到与所述语义解析结果匹配的实际主题时,创建新的实际主题,并创建所述订阅者对应的虚拟主题与目的实际主题之间的路由规则。
[0220]本发明实施例还提供了一种消息订阅的装置,可用于实现如图11-12所示的消息订阅的方法流程,如图19所示,包括:
[0221 ] 获取模块81,用于获取订阅者已发送的消息。
[0222]语义识别模块82,用于对获取的所述消息进行语义解析,并根据语义解析结果,在已存储的实际主题中查找与所述语义解析结果匹配的实际主题。
[0223]主题模块83,用于在在已存储的实际主题中查找到与所述语义解析结果匹配的实际主题时,创建查找到的实际主题与所述订阅者的订阅对应关系。
[0224]可选的是,所述主题模块83还用于在在已存储的实际主题中未查找到与所述语义解析结果匹配的实际主题时,创建新的实际主题,并创建新创建的实际主题与所述订阅者的订阅对应关系。
[0225]本发明实施例提供的消息发布与订阅的装置,通过为发布者以及订阅者在消息中间件中设置相应的虚拟主题,或者通过对发布者以及订阅者向消息中间件进行语义识别,以保证发布者以及订阅者不需要获知实际主题的具体结构的情况下,仍然保证消息被正确地传输。相比于现有技术中,当消息中间件中的主题发生变化时,发布者以及订阅者必须要获知的变更结果并主动修改路由规则才能完成数据传输的技术方案来讲,本发明实施例提供的技术方案消息传输效率更高,灵活性更强。
[0226]本发明实施例提供了一种消息中间件,如图20所示,包括至少一个处理器91、存储器92以及输入输出电路93。所述存储器92被配置有程序代码,所述处理器91用于调用存储器92内的程序代码用以实现如图3至图8所示的消息发布与订阅的方法流程。所述存储器92和处理器91之间通过总线通信。
[0227]其中,所述输入输出电路93用于获取发布者已发送至与所述发布者对应的虚拟主题的消息;以及当查找到以所述发布者对应的虚拟主题为起点,并且以订阅者对应的虚拟主题为终点的传输路径时,在查找到的传输路径上,传输所述消息或与所述消息对应的标识信息;以及当所述消息或与所述消息对应的标识信息传输至每一条传输路径的终点时,将所述消息发送至该传输路径的终点所对应的订阅者。其中,所述标识信息用于使所述订阅者对应的虚拟主题能够根据所述标识信息获取所述消息。
[0228]处理器91用于根据已存储的虚拟主题与实际主题之间的路由规则,查找以所述发布者对应的虚拟主题为起点,并且以任意一个订阅者对应的虚拟主题为终点的传输路径;其中,所述虚拟主题用于实际主题和发布者之间的消息转发或者实际主题和订阅者之间的消息转发;所述实际主题用于发布者和订阅者之间的消息转发。
[0229]所述存储器92用于存储虚拟主题与实际主题之间的路由规则。
[0230]所述处理器91还用于当未查找到以所述发布者对应的虚拟主题为起点,并且以订阅者对应的虚拟主题为终点的传输路径时,则对所述消息进行语义解析,得到语义解析结果,并根据所述语义解析结果,在已存储的实际主题中查找与所述语义解析结果匹配的实际主题;若查找到与所述语义解析结果匹配的实际主题,则生成并存储所述发布者对应的虚拟主题与查找到的实际主题之间的路由规则。
[0231]所述处理器91还用于根据当前已存储的虚拟主题与实际主题之间的路由规则,查找以所述发布者对应的虚拟主题为起点,并且以任意一个订阅者对应的虚拟主题为终点的传输路径。
[0232]所述输入输出电路93还用于当查找到以所述发布者对应的虚拟主题为起点,并且以订阅者对应的虚拟主题为终点的传输路径时,在查找到的传输路径上,传输所述消息或与所述消息对应的标识信息;当所述消息或与所述消息对应的标识信息传输至每一条传输路径的终点时,将所述消息发送至该传输路径的终点所对应的订阅者。
[0233]所述处理器91还用于若未查找到与所述语义解析结果匹配的实际主题,则创建新的实际主题,并生成并存储所述发布者对应的虚拟主题与新创建的实际主题之间的路由规则。
[0234]所述处理器91还用于判断获取的所述消息是否为控制消息,所述控制消息用于更新已存储的虚拟主题与实际主题之间的路由规则;若获取的所述消息不是控制消息,则执行根据当前已存储的虚拟主题与实际主题之间的路由规则,查找以所述发布者对应的虚拟主题为起点,并且以任意一个订阅者对应的虚拟主题为终点的传输路径的步骤;若确定获取的所述消息是控制消息,则根据所述控制消息,对已存储的虚拟主题与实际主题之间的路由规则进行修改。
[0235]所述存储器92还用于存储修改后的虚拟主题与实际主题之间的路由规则。
[0236]所述处理器91还用于生成与所述消息对应的标识信息;根据查找到的所有传输路径,传输与所述消息对应的标识信息;当所述与所述消息对应的标识信息传输至每一条传输路径的终点时,获取与所述标识信息对应的消息,并将与所述标识信息对应的消息发送至传输路径的终点所对应的订阅者。
[0237]所述输入输出电路93还用于获取订阅者已发送至所述订阅者对应的虚拟主题的消息。
[0238]所述处理器91还用于根据获取的所述消息,创建所述订阅者对应的虚拟主题与目的实际主题之间的路由规则,所述目的实际主题为所述订阅者当前订阅的实际主题;其中,所述虚拟主题用于实际主题和发布者之间的消息转发或者实际主题和订阅者之间的消息转发;所述目的实际主题用于订阅者对应的虚拟主题之间的消息转发。
[0239]所述处理器91还用于当获取的所述消息为控制消息时,根据所述控制消息获取目的实际主题,所述控制消息用于更新虚拟主题与所述订阅者选择的实际主题之间的路由规则;创建所述订阅者对应的虚拟主题与根据所述控制消息获取到的目的实际主题之间的路由规则。
[0240]所述处理器91还用于当获取的所述消息不为控制消息时,对获取的所述消息进行语义解析,并根据语义解析结果,在已存储的实际主题中查找与所述语义解析结果匹配的实际主题;若在已存储的实际主题中查找到与所述语义解析结果匹配的实际主题,则创建所述订阅者对应的虚拟主题与查找到的与所述语义解析结果匹配的实际主题之间的路由规则。
[0241]所述处理器91还用于若在已存储的实际主题中未查找到与所述语义解析结果匹配的实际主题,则创建新的实际主题,并创建所述订阅者对应的虚拟主题与所述新的实际主题之间的路由规则。
[0242]本发明实施例还提供了一种消息中间件,如图21所示,包括至少一个处理器1001、存储器1002、输入输出电路1003。所述存储器1002被配置有程序代码,所述处理器1001用于调用存储器1002内的程序代码用以实现如图9至图12所示的消息发布与订阅的方法流程。所述存储器1002和处理器1001之间通过总线通信。
[0243]所述处理器1001用于获取发布者已发送的消息;对获取到的消息进行语义解析,并根据语义解析结果,在已存储的实际主题中查找与所述语义解析结果匹配的实际主题;若查找到与所述语义解析结果匹配的实际主题,则在已存储的订阅对应关系中,查找与所述实际主题对应的订阅者;若查找到所述实际主题对应的订阅者,则将所述获取到的消息发送至所有查找到的订阅者。
[0244]所述处理器1001还用于若未查找到与所述语义解析结果匹配的实际主题,则创建新的实际主题,并存储新创建的实际主题。
[0245]所述处理器1001还用于获取订阅者已发送的消息;对获取的所述消息进行语义解析,并根据语义解析结果,在已存储的实际主题中查找与所述语义解析结果匹配的实际主题;若在已存储的实际主题中查找到与所述语义解析结果匹配的实际主题,则创建查找到的实际主题与所述订阅者的订阅对应关系。
[0246]所述处理器1001还用于若在已存储的实际主题中未查找到与所述语义解析结果匹配的实际主题,则创建新的实际主题,并创建新创建的实际主题与所述订阅者的订阅对应关系。
[0247]通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0248]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
【权利要求】
1.一种消息发布的方法,其特征在于,包括: 获取发布者已发送至与所述发布者对应的虚拟主题的消息; 根据已存储的虚拟主题与实际主题之间的路由规则,查找以所述发布者对应的虚拟主题为起点,并且以任意一个订阅者对应的虚拟主题为终点的所有传输路径;其中,所述虚拟主题用于实际主题和发布者之间的消息转发或者实际主题和订阅者之间的消息转发;所述实际主题用于发布者和订阅者之间的消息转发; 当查找到以所述发布者对应的虚拟主题为起点,并且以任意一个订阅者对应的虚拟主题为终点的传输路径时,在查找到的传输路径上,传输所述消息或与所述消息对应的标识信息; 当所述消息或与所述消息对应的标识信息传输至每一条传输路径的终点后,将所述消息发送至该传输路径的终点所对应的订阅者。
2.根据权利要求1所述的方法,其特征在于,还包括: 当未查找到以所述发布者对应的虚拟主题为起点,并且以任意一个订阅者对应的虚拟主题为终点的传输路径时,则对所述消息进行语义解析,得到语义解析结果,并根据所述语义解析结果,在已存储的实际主题中查找与所述语义解析结果匹配的实际主题; 若查找到与所述语义解析结果匹配的实际主题,则生成并存储所述发布者对应的虚拟主题与查找到的实际主题之间的路由规则。
3.根据权利要求2所述的方法,其特征在于,在所述生成并存储所述发布者对应的虚拟主题与查找到的实际主题之间的路由规则之后,还包括: 根据当前已存储的虚拟主题与实际主题之间的路由规则,查找以所述发布者对应的虚拟主题为起点,并且以任意一个订阅者对应的虚拟主题为终点的传输路径; 当查找到以所述发布者对应的虚拟主题为起点,并且以任意一个订阅者对应的虚拟主题为终点的传输路径时,在查找到的传输路径上,传输所述消息或与所述消息对应的标识信息; 当所述消息或与所述消息对应的标识信息传输至每一条传输路径的终点时,将所述消息发送至该传输路径的终点所对应的订阅者。
4.根据权利要求2或3所述的方法,其特征在于,还包括: 若未查找到与所述语义解析结果匹配的实际主题,则创建新的实际主题,并生成并存储所述发布者对应的虚拟主题与新创建的实际主题之间的路由规则。
5.根据权利要求1所述的方法,其特征在于,还包括: 获取所述发布者发送的控制消息,所述控制消息用于更新已存储的虚拟主题与实际主题之间的路由规则; 根据所述控制消息,对当前已存储的虚拟主题与实际主题之间的路由规则进行修改,并存储修改后的路由规则。
6.根据权利要求1至5任意一项所述的方法,其特征在于,在查找到的传输路径上,传输与所述消息对应的标识信息之前,还包括: 生成与所述消息对应的标识信息; 相应地,所述当所述与所述消息对应的标识信息传输至每一条传输路径的终点时,将所述消息发送至该传输路径的终点所对应的订阅者,包括:当与所述消息对应的标识信息传输至每一条传输路径的终点时,获取与所述标识信息对应的消息,并将与所述标识信息对应的消息发送至该传输路径的终点所对应的订阅者。
7.—种消息发布的方法,其特征在于,包括: 获取发布者已发送的消息; 对获取到的消息进行语义解析,并根据语义解析结果,在已存储的实际主题中查找与所述语义解析结果匹配的实际主题; 若查找到与所述语义解析结果匹配的实际主题,则在已存储的订阅关系表中,查找与所述实际主题对应的订阅者; 若查找到所述实际主题对应的订阅者,则将所述获取到的消息发送至查找到的所有订阅者。
8.根据权利要求7所述的方法,其特征在于,还包括: 若未查找到与所述语义解析结果匹配的实际主题,则创建新的实际主题,并存储创建的所述实际主题。
9.一种消息订阅的方法,其特征在于,包括: 获取订阅者已发送至所述订阅者对应的虚拟主题的消息; 根据获取的所述消息,创建所述订阅者对应的虚拟主题与目的实际主题之间的路由规贝U,所述目的实际主题为所述订阅者当前订阅的实际主题;其中,所述虚拟主题用于实际主题和发布者之间的消息转发或者实际主题和订阅者之间的消息转发。
10.根据权利要求9所述的方法,其特征在于,所述根据获取的所述消息,创建所述订阅者对应的虚拟主题与目的实际主题之间的路由规则,包括: 当获取的所述消息为控制消息时,根据所述控制消息确定所述订阅者订阅的实际主题,并将所述订阅者订阅的实际主题作为目的实际主题,所述控制消息包含所述订阅者订阅的实际主题的消息; 创建所述订阅者对应的虚拟主题与所述目的实际主题之间的路由规则。
11.根据权利要求10所述的方法,其特征在于,还包括: 当获取的所述消息不为控制消息时,对所述消息进行语义解析,并根据语义解析结果,在已存储的实际主题中查找与所述语义解析结果匹配的实际主题; 若在已存储的实际主题中查找到与所述语义解析结果匹配的实际主题,则创建所述订阅者对应的虚拟主题与查找到的与所述语义解析结果匹配的实际主题之间的路由规则。
12.根据权利要求11所述的方法,其特征在于,还包括: 若在已存储的实际主题中未查找到与所述语义解析结果匹配的实际主题,则创建新的实际主题,并创建所述订阅者对应的虚拟主题与所述新的实际主题之间的路由规则。
13.一种消息发布的装置,其特征在于,包括: 信息处理模块, 用于获取发布者已发送至与所述发布者对应的虚拟主题的消息; 主题模块,用于根据已存储的虚拟主题与所述消息发布的装置包含的各个实际主题之间的路由规则,查找以所述发布者对应的虚拟主题为起点,并且以任意一个订阅者对应的虚拟主题为终点的所有传输路径;其中,所述虚拟主题用于实际主题和发布者之间的消息转发或者实际主题和订阅者之间的消息转发;所述实际主题用于发布者和订阅者之间的消息转发;传输模块,用于当所述主题模块查找到以所述发布者对应的虚拟主题为起点,并且以任意一个订阅者对应的虚拟主题为终点的传输路径时,在查找到的传输路径上,传输所述消息或与所述消息对应的标识信息;当所述消息或与所述消息对应的标识信息传输至每一条传输路径的终点时,将所述消息发送至该传输路径的终点所对应的订阅者。
14.根据权利要求13所述的装置,其特征在于,还包括: 语义识别模块,用于当所述主题模块未查找到以所述发布者对应的虚拟主题为起点,并且以任意一个订阅者对应的虚拟主题为终点的传输路径时,对所述消息进行语义解析,得到语义解析结果,并根据所述语义解析结果,在已存储的实际主题中查找与所述语义解析结果匹配的实际主题; 路由规则生成模块,用于若所述语义识别模块查找到与所述语义解析结果匹配的实际主题,则生成并存储所述发布者对应的虚拟主题与查找到的所述实际主题之间的路由规则。
15.根据权利要求14所述的装置,其特征在于,所述主题模块,具体用于根据当前已存储的虚拟主题与实际主题之间的路由规则,查找以所述发布者对应的虚拟主题为起点,并且以任意一个订阅者对应的虚拟主题为终点的传输路径; 所述传输模块,具体用于当所述主题模块查找到以所述发布者对应的虚拟主题为起点,并且以任意一个订阅者对应的虚拟主题为终点的传输路径时,在查找到的传输路径上或与所述消息对应的标识信息;当所述消息或与所述消息对应的标识信息传输至每一条传输路径的终点时,将所述消息发送至该传输路径的终点所对应的订阅者。
16.根据权利要求14或15所述的装置,其特征在于,所述主题模块,还用于在未查找到与所述语义解析结果匹配的实际主题时,创建新的实际主题; 所述路由规则生成模块,还用于存储所述发布者对应的虚拟主题与新创建的实际主题之间的路由规则。`
17.根据权利要求13所述的装置,其特征在于,所述信息处理模块,还用于获取发布者发送的控制消息,所述控制消息用于更新已存储的虚拟主题与实际主题之间的路由规则; 所述路由规则生成模块,还用于根据所述控制消息,对当前已存储的虚拟主题与实际主题之间的路由规则进行修改,并存储修改后的路由规则。
18.根据权利要求13至17任意一项所述的装置,其特征在于,所述信息处理模块还用于,在获取发布者发送至与所述发布者对应的虚拟主题的消息之后,生成与所述消息对应的标识信息; 所述传输模块,具体用于当所述与所述消息对应的标识信息传输至每一条传输路径的终点时,获取与所述标识信息对应的消息,并将与所述标识信息对应的消息发送至传输路径的终点所对应的订阅者。
19.一种消息发布的装置,其特征在于,包括: 获取模块,用于获取发布者发送的消息; 语义识别模块,用于对获取到的消息进行语义解析,并根据语义解析结果,在已存储的实际主题中查找与所述语义解析结果匹配的实际主题; 主题模块,用于在查找到与所述语义解析结果匹配的实际主题时,在已存储的订阅关系表中,查找与所述实际主题对应的订阅者;传输模块,用于在查找到所述实际主题对应的订阅者时,将所述获取到的消息发送至查找到的所有订阅者。
20.根据权利要求19所述的装置,其特征在于,所述主题模块,还用于在未查找到与所述语义解析结果匹配的实际主题时,创建新的实际主题,并存储创建的所述实际主题。
21.一种消息订阅的装置,其特征在于,包括: 获取模块,用于获取订阅者已发送至所述订阅者对应的虚拟主题的消息; 创建模块,用于根据获取到的订阅者发送的消息,创建所述订阅者对应的虚拟主题与目的实际主题之间的路由规则,所述目的实际主题为所述订阅者当前订阅的实际主题;其中,所述虚拟主题用于实际主题和发布者之间的消息转发或者实际主题和订阅者之间的消息转发。
22.根据权利要求21所述的装置,其特征在于,所述创建模块包括: 第一主题子模块,用于当获取到的所述消息为控制消息时,根据所述控制消息确定所述订阅者订阅的实际主题,并将所述订阅者订阅的实际主题作为所述目的实际主题,所述控制消息包含所述订阅者订阅的实际主题的消息; 路由规则模块,用于更新所述订阅者对应的虚拟主题与所述目的实际主题之间的路由规则。
23.根据权利要求22所述的装置,其特征在于,所述第一主题子模块,还用于当获取的所述消息不为控制消息时,对获取的所述消息进行语义解析,并根据语义解析结果,在已存储的实际主题中查找与所述语义解析结果匹配的实际主题,并在查找到与所述语义解析结果匹配的实际主题时,将查找到的实际主题作为目的实际主题。
24.根据权利要求23所述的装置,其特征在于,所述创建模块,还用于当所述第一主题子模块在已存储的实际主题中未查找到与所述语义解析结果匹配的实际主题时,创建新的实际主题作为目的实际主题,并创建所述订阅者对应的虚拟主题与所述新的实际主题之间的路由规则。
【文档编号】H04L12/58GK103534988SQ201380000499
【公开日】2014年1月22日 申请日期:2013年6月3日 优先权日:2013年6月3日
【发明者】方元, 唐冠军, 王云鹏 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1