多层级消息中间件系统及其消息转发控制方法和装置的制作方法

文档序号:7776892阅读:362来源:国知局
专利名称:多层级消息中间件系统及其消息转发控制方法和装置的制作方法
技术领域
本发明涉及计算机通信技术,尤其涉及多层级消息中间件系统中消息转发控制的方法和装置。
背景技术
随着信息化建设的日益深入,越来越多的企业开始进入深度应用的阶段。而计算机和网络技术的发展,使得分布式信息系统越来越得到广泛关注,并逐渐应用到各行业各企业的软件系统中。消息中间件在许多行业的关键应用中扮演着至关重要的角色,如在政务行业省、市、县多级数据传递交换汇总;金融行业,中国人民银行的全国票交影像交换系统和小额支付系统;在交通行业,海事局的船舶与船员管理系统;在能源行业,国家电网公司信息化工程一体化企业级信息集成平台。
由于很多行业和领域的分布式系统搭建在非常复杂的网络环境中,消息传输的安全和可靠必须得到很好的保证。
现有的消息中间件技术中,大多直接以IP地址或其他唯一标识来进行中间件或客户端的地址编码,能够描述节点在系统中的唯一属性即可。在消息中间件的路由表中需要记录每一个地址的路由信息。当转发消息时,消息中间件根据路由表中的路由信息进行消息的转发。
当系统逐渐扩大,节点数量增加时,采用现有技术的方法在消息中间件转发消息, 则需要消息中间件保存庞大的路由表,以便记录这些唯一标识对应的消息路由。这需要占用消息中间件大量的空间资源。
而且,现有技术的采用路由表的转发方法不能灵活实现转发控制。例如,针对IP 地址,只能控制某个IP地址或某段IP地址的消息禁止转发或允许转发,其对消息转发的控制方式少、不灵活,控制力度也不大。发明内容
本发明实施例提供了一种多层级消息中间件系统及其消息转发控制方法及装置, 用以节约消息中间件的系统资源。
一种多层级消息中间件系统的消息转发控制方法,包括消息中间件接收到消息后,从该消息的源/目的地址中解析出层级信息和域信息;所述消息中间件根据解析出的域信息和层级信息、以及预先设定的转发控制规则来控制该消息的转发。
所述消息中间件根据解析出的域信息和层级信息、以及预先设定的转发控制规则来控制该消息的转发包括所述消息中间件若根据该消息的目的地址中的域信息和层级信息,确定出所述目的地址与本消息中间件的地址同层级不同域,则向位于上层级的消息中间件转发该消息。
所述消息中间件根据解析出的域地址以及预先设定的转发控制规则,控制该消息的转发还包括若所述消息中间件根据该消息的目的地址中的域信息和层级信息,确定出所述目的地址为本消息中间件所在层级的下一层级地址,则向位于下层级的消息中间件转发该消息。
所述消息中间件根据解析出的域地址信息以及预先设定的转发控制规则来控制该消息的转发包括若所述消息中间件根据该消息的源/目的地址中的域信息和层级信息,确定在所述转发控制规则中源/目的地址所处层级和域的消息被设定为禁止转发,则丢弃该消息。
所述消息中间件根据解析出的域地址信息以及预先设定的转发控制规则来控制该消息的转发还包括若所述消息中间件根据该消息的源/目的地址中的域信息和层级信息,确定在所述转发控制规则中源/目的地址所处层级和域的消息被设定为允许转发,则转发该消息。
所述源/目的地址具体包括域地址和节点标识;所述域地址的编码方式为以分隔符分隔不同层级中的域标识,分隔符的个数表示所述源/目的地址所在层级的层级数, 最左边的域标识为所述源/目的地址所在域的域标识,分隔符右边的域标识所标识出的域为分隔符左边的域标识所标识出的域的上层级的域,且两域的消息中间件相连。
一种多层级消息中间件系统的消息转发控制装置,所述装置位于消息中间件内, 包括消息接收模块,用于接收消息;地址解析模块,用于从所述消息接收模块接收的消息的源/目的地址中解析出层级信息和域信息;转发控制模块,用于根据所述地址解析模块解析出的域信息和层级信息,以及预先设定的转发控制规则,控制该消息的转发。
一种多层级消息中间件系统,包括至少两个消息中间件,位于所述系统的不同层级中;一个消息中间件和与之相连的客户端组成的域,该域的消息中间件与同层级中其它消息中间件相连,与相邻层级中相邻的消息中间件相连;所述系统中的消息中间件用于在接收到消息后,从该消息的源/目的地址中解析出层级信息和域信息;并根据解析出的域信息和层级信息,以及预先设定的转发控制规则,控制该消息的转发。
本发明实施例由于在消息的源/目的地址中携带有层级信息和域信息,可以确认出源/目的地址的层级和域,再通过设定的转发规则,来判定对该消息的转发,从而实现根据消息的来源地址或者目的地址所在的层级、域来控制消息的转发。比如,当判断出目的地址所在层级,就可以将该消息传送到相应层级的消息中间件。例如,若判断出目的地址在本消息中间件所在层级的上层级,就将该消息传送到上层级的消息中间件;若判断出目的地址在本消息中间件所在层级的下层级,就将该消息传送到下层级的消息中间件;若判断出目的地址与本消息中间件同层级,既可以将该消息传送到同层级的消息中间件,也可以将该消息传送到上层级的消息中间件。这样,在进行消息转发时就不必在消息中间件中建有路由表,依靠路由表中保存的路由信息进行转发了。而路由表通常比较庞大,本发明实施例的技术方案不依靠路由表进行转发,节约了消息中间件大量的空间资源和系统资源。
而且,在判断出源地址(或目的地址)中携带的层级信息和域信息后,更有利于针对某个层级、或某个域的消息的转发进行控制,大大增加了控制消息转发方式的灵活性和控制力度。


图1为本发明实施例的多层级消息中间件系统示意图;CN 102546461 A
图加为本发明实施例的控制消息转发的方法流程图2b为本发明实施例的转发规则列表示意图3为本发明实施例的控制消息转发的装置的结构示意图。
具体实施方式
本发明实施例的多层级消息中间件系统分为多个层级,例如,可以分为两个层级, 或者三个层级,或者四个层级等。每个层级分布有消息中间件和客户端。每个层级中又划分有至少一个域。一个消息中间件与相邻的若干个客户端直接相连组成一个域,该域内的每个客户端都通过其域内的消息中间件接入到系统中,实现与系统中其它客户端的通信。消息中间件与同一层级、其它域内的消息中间件相连、与相邻层级中相邻的消息中间件相连。
例如,如图1所示的多层级消息中间件系统中,分有三个层级。第一层级中有一个域,第二层级有两个域,第三层级有四个域。消息中间件和客户端为该系统网络中的节点, 其中,消息中间件以M标识,客户端以C标识。标识下标的数字表示层级,标识下标的字母标示出同一层级不同的客户端或消息中间件。例如,1%表示的是第三层级中的消息中间件。 第二层级中有两个消息中间件Mh*Ma。第二层级中的消息中间件与同层级的消息中间件M2b相连,与相邻层级第三层级中的相邻消息中间件M3a和M3b相连,与相邻层级第一层级中的相邻消息中间件Mla相连。
本发明实施例针对上述的多层级消息中间件系统,提供了一种携带层级信息和域信息的地址编码方式。例如,一种具体的编码方式为
节点标识@域地址编码,即IdentityODomainID
其中,@为分隔符,用以分隔节点标识和域地址编码的,显然,也可采用其它分隔符。
DomainID为域地址编码,DomainID域地址编码中携带有层级信息和域信息。例如,一种具体方式可以是以点分制形式字符串“.”来分隔层级信息和域信息。“.”后面的数字表示层级,“.”前面的标识表示该层级中域的标识,如“zj. 2”表示第二层级的标识为 zj的域。
Identity为消息中间件或客户端在域中的节点标识,用以唯一标识出该域中的节点,如Ma、Q。等。同一域中的节点的Identity不相同,用以唯一标识该域中的节点;而不同域中的节点标识可以相同。
另一种DomainID域地址编码携带层级信息和域信息的方法可以是以分隔符分隔不同层级中的域标识,分隔符的个数表示节点的地址(可以是源地址也可以是目的地址)所在层级的层级数(如第1层级、第3层级),最左边的域标识为节点地址所在域的域标识,分隔符右边的域标识所标识出的域为分隔符左边的域标识所标识出的域的上层级的域,且两域的消息中间件相连。具体的,以点分制形式字符串表示的分隔符“.”将域地址分成几段,按倒序(从左至右的顺序)各段分别表示由低到高各层级的域标识,如D3。. D2b. Dla 表示消息中间件M3e所在的域地址编码为M3e所在层级第三层级中的域标识,Da为第二层级中与A。相邻的域的标识,Dla为第一层级中与与Da相邻的域的标识,依此类推。也就是说,根据DomainID中“.”的个数便可确定层级信息。例如,DomainID有1个“.”,如D2b. Dla,则确定其标识的是第二层级的域。该方法中不但标示出节点地址所在的层级和域,而且,还表示出该节点所处域在其上层级中与之直接相连的域Q,还可以表示出在Q域所处层级的更上层级中,与Q域相连的域。如D3。. D2b. Dla,不但表示出该节点位于第三层级中的D3。 域,还表示出。域的消息中间件与第二层级中的Da域的消息中间件相连,第二层级中的 D2b域的消息中间件与第一层级中的Dla域的消息中间件相连。
上述的域地址编码中可以使用具有代表意义的字符串,如全国范围的第一层级域编码为cn、浙江域可以用zj. cn表示、杭州域可以使用hz. zj. cn表示。从而这样的地址编码,通过域地址编码DomainID携带了消息中间件和客户端在全网络中的层级信息和域信肩、ο
通过该编码方式,可以唯一标识出消息中间件和客户端节点在系统网络中的位置,而且,还携带了该节点在系统网络中所处的层级和域的信息。显然,本领域技术人员还可以采用其它的编码方式。例如,以其他特殊字符代替“.”分割字符串(如D3c:D21;Dla)、或按正序排列组合各层级域编码等,均符合本发明实施例的编码方法既唯一标识中间件和客户端节点在全系统网络中的位置、又携带有节点的层级信息和域信息。在不脱离本发明原理的前提下,本领域技术人员采用的其它编码方式也应视为本发明的保护范围。
本发明实施例提供的在多层级消息中间件系统中,消息中间件控制消息转发的方法,流程图如图加所示,包括如下具体步骤。
在步骤S201中,消息中间件接收到客户端或其它消息中间件发送的消息。
在步骤S202中,消息中间件解析接收的消息的源地址或者目的地址,得到层级信息和域信息。在实际应用中,既可以是对消息的源地址进行解析,得到源地址中携带的层级信息和域信息;也可以是对消息的目的地址进行解析,得到目的地址中携带的层级信息和域信息。从地址中解析出携带的层级信息和域信息为本领域技术人员所熟知的,此处不赘述。
在步骤S203中,消息中间件根据解析出的层级信息和域信息,以及预先设置的转发规则,控制该消息的转发。
例如,在XX银行的某个分布式多层级消息中间件系统中,有一类广播消息需要发送到全国的各个节点,但由于浙江杭州地区的节点已经处理过该类消息不需要重复处理, 所以需要将发往杭州地区节点的消息禁止,如图2b所示的列表中的第一条转发规则可以实现此需求,表示目的方所在域地址编码符合规则“*. hz. zj. cn”的消息被“禁止”,即该消息不被继续转发,其中*为通配符。当消息中间件确定出,在步骤S202中解析出的目的地址携带的层级信息和域信息为该目的地址所处层级为第四层级,且与该目的地址所处域的消息中间件直接相连的第三层级的消息中间件所处域为hz,与hz域的消息中间件直接相连的第二层级的消息中间件所处域为zj,与zj域的消息中间件直接相连的第一层级的消息中间件所处域为cn时,禁止转发该消息,将消息丢弃。即若消息中间件根据该消息的源/目的地址中的域信息和层级信息,确定在所述转发控制规则中源/目的地址所处层级和域的消息被设定为禁止转发,则丢弃该消息。
再如,有一类广播消息需要发送到北京地区的所有节点,如图2b所示的列表中的第二条转发规则表示域地址编码符合规则“*. bj. cn”的消息被“允许”,即允许该消息转发。 那么,对于在步骤S202中解析出的目的地址携带的层级信息和域信息,若确定为该目的地址所处层级为第三层级,且与该目的地址所处域的消息中间件直接相连的第二层级的消息中间件所处域为bj,与bj域的消息中间件直接相连的第一层级的消息中间件所处域为 cn时,允许转发该消息。即若消息中间件根据该消息的源/目的地址中的域信息和层级信息,确定在所述转发控制规则中源/目的地址所处层级和域的消息被设定为允许转发,则转发该消息。
假设允许转发该消息,那么,对消息转发还可以进一步控制转发方向,即控制消息向哪个域的消息中间件进行转发。
譬如,为了提高转发速度和效率,可以设置如下转发规则
若消息中间件根据该消息的目的地址中的域信息和层级信息,确定出该目的地址与本消息中间件的地址同层级不同域,或者,该目的地址为本消息中间件所在层级的上层级地址,则向位于上层级的消息中间件转发该消息;较优的,可以是向位于上层级与本消息中间件直接相连的消息中间件转发该消息。
若消息中间件根据该消息的目的地址中的域信息和层级信息,确定出该目的地址为本消息中间件所在层级的下层级地址,则向位于下层级的消息中间件转发该消息;较优的,可以是向位于下层级与本消息中间件直接相连的消息中间件转发该消息。
通过设置这种转发方向的规则,可以选择较为快捷的路径让消息到达目的端,提高消息的转发速度和效率。
如果,为了实现对消息进行监控操作,那么还可以规定某个域的消息都需要经过某个消息中间件进行转发假设,hz的XZ域中发送的消息都要经过消息中间件W进行监控后再转发,在如图2b所示的列表中的第三条转发规则中表示源地址的域地址编码符合规则“xz. hz. zj. cn”的消息被定向转发到W。
显然,上述对目的地址解析出层级信息和域信息,根据转发规则来控制转发的方法,也适用于对源地址解析出层级信息和域信息,根据转发规则来控制转发的方法,此处不再赘述。本领域技术人员可以根据本发明实施例公开的技术方案,以及实际需求制定各种转发规则,来实现对消息的各种转发控制需求,此处不再一一列举。
本发明实施例还提供了一种在多层级消息中间件系统中控制消息转发的装置,位于消息中间件内,其结构框图如图3所示,包括消息接收模块301、地址解析模块302、转发控制模块303。
消息接收模块301用于接收消息;
地址解析模块302用于从消息接收模块301接收的消息的源/目的地址中解析出层级信息和域信息;
转发控制模块303用于根据地址解析模块302解析出的域信息和层级信息,以及预先设定的转发控制规则,控制该消息的转发。
具体的,转发控制模块303控制转发的过程,可以如步骤S203中所述。
转发控制模块303具体用于根据地址解析模块302解析出的域信息和层级信息, 若确定出所述目的地址与本消息中间件的地址同层级不同域,则向位于上层级的消息中间件转发该消息。
转发控制模块303还用于根据地址解析模块302解析出的域信息和层级信息,若确定出所述目的地址为本消息中间件所在层级的下一层级地址,则向位于下层级的消息中间件转发该消息。
转发控制模块303具体用于根据地址解析模块302解析出的域信息和层级信息, 若确定在所述转发控制规则中源/目的地址所处层级和域的消息被设定为禁止转发,则丢弃该消息。
转发控制模块303具体用于根据地址解析模块302解析出的域信息和层级信息, 若确定在所述转发控制规则中源/目的地址所处层级和域的消息被设定为允许转发,则转发该消息。
本发明实施例由于在消息的源/目的地址中携带有层级信息和域信息,可以确认出源/目的地址的层级和域,再通过设定的转发规则,来判定对该消息的转发,从而实现根据消息的来源地址或者目的地址所在的层级、域来控制消息的转发。比如,当判断出目的地址所在层级,就可以将该消息传送到相应层级的消息中间件。例如,若判断出目的地址在本消息中间件所在层级的上层级,就将该消息传送到上层级的消息中间件;若判断出目的地址在本消息中间件所在层级的下层级,就将该消息传送到下层级的消息中间件;若判断出目的地址与本消息中间件同层级,既可以将该消息传送到同层级的消息中间件,也可以将该消息传送到上层级的消息中间件。这样,在进行消息转发时就不必在消息中间件中建有路由表,依靠路由表中保存的路由信息进行转发了。而路由表通常比较庞大,本发明实施例的技术方案不依靠路由表进行转发,节约了消息中间件大量的空间资源和系统资源。
而且,在判断出源地址(或目的地址)中携带的层级信息和域信息后,更有利于针对某个层级、或某个域的消息的转发进行控制,大大增加了控制消息转发方式的灵活性和控制力度。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读取存储介质中,如 ROM/RAM、磁碟、光盘等。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。9
权利要求
1.一种多层级消息中间件系统的消息转发控制方法,包括消息中间件接收到消息后,从该消息的源/目的地址中解析出层级信息和域信息;所述消息中间件根据解析出的域信息和层级信息、以及预先设定的转发控制规则来控制该消息的转发。
2.如权利要求1所述的方法,所述消息中间件根据解析出的域信息和层级信息、以及预先设定的转发控制规则来控制该消息的转发包括如果所述消息中间件根据所述消息的目的地址中的域信息和层级信息,确定出所述目的地址与本消息中间件的地址同层级不同域,则向位于上层级的消息中间件转发该消息。
3.如权利要求2所述的方法,所述消息中间件根据解析出的域信息和层级信息、以及预先设定的转发控制规则来控制该消息的转发还包括若所述消息中间件根据所述消息的目的地址中的域信息和层级信息,确定出所述目的地址为本消息中间件所在层级的下一层级地址,则向位于下层级的消息中间件转发所述消肩、ο
4.如权利要求1所述的方法,所述消息中间件根据解析出的域地址信息和层级信息以及预先设定的转发控制规则来控制该消息的转发包括若所述消息中间件根据所述消息的源/目的地址中的域信息和层级信息,确定在所述转发控制规则中源/目的地址所处层级和域的消息被设定为禁止转发,则丢弃所述消息。
5.如权利要求1所述的方法,所述消息中间件根据解析出的域信息和层级信息、以及预先设定的转发控制规则来控制该消息的转发还包括若所述消息中间件根据该消息的源/目的地址中的域信息和层级信息,确定在所述转发控制规则中源/目的地址所处层级和域的消息被设定为允许转发,则转发该消息。
6.如权利要求1-5所述的方法,所述源/目的地址包括域地址和节点标识;所述域地址的编码方式为以分隔符分隔不同层级中的域标识,分隔符的个数表示所述源/目的地址所在层级的层级数,最左边的域标识为所述源/目的地址所在域的域标识, 分隔符右边的域标识所标识出的域为分隔符左边的域标识所标识出的域的上层级的域,且两域的消息中间件相连。
7.一种多层级消息中间件系统的消息转发控制装置,所述装置位于消息中间件内,包括消息接收模块,用于接收消息;地址解析模块,用于从所述消息接收模块接收的消息的源/目的地址中解析出层级信息和域信息;转发控制模块,用于根据所述地址解析模块解析出的域信息和层级信息,以及预先设定的转发控制规则,控制所述消息的转发。
8.如权利要求7所述的装置,其特征在于,所述转发控制模块根据所述地址解析模块解析出的域信息和层级信息,若确定出所述目的地址与本消息中间件的地址同层级不同域,则向位于上层级的消息中间件转发所述消肩、ο
9.如权利要求8所述的装置,其特征在于,所述转发控制模块根据所述地址解析模块解析出的域信息和层级信息,若确定出所述目的地址为本消息中间件所在层级的下一层级地址,则向位于下层级的消息中间件转发所述消息。
10.如权利要求7所述的装置,其特征在于,所述转发控制模块根据所述地址解析模块解析出的域信息和层级信息,若确定在所述转发控制规则中源/目的地址所处层级和域的消息被设定为禁止转发,则丢弃所述消息。
11.如权利要求7所述的装置,其特征在于,所述转发控制模块根据所述地址解析模块解析出的域信息和层级信息,若确定在所述转发控制规则中源/目的地址所处层级和域的消息被设定为允许转发,则转发所述消息。
12.—种多层级消息中间件系统,包括至少两个消息中间件,位于所述系统的不同层级中;一个消息中间件和与之相连的客户端组成的域,所述域的消息中间件与同层级中其它消息中间件相连,与相邻层级中相邻的消息中间件相连;所述系统中的消息中间件在接收到消息后,从所述消息的源/目的地址中解析出层级信息和域信息,并根据解析出的域信息和层级信息、以及预先设定的转发控制规则来控制所述消息的转发。
全文摘要
本发明公开了一种多层级消息中间件系统及其消息转发控制方法及装置。所述方法包括消息中间件接收到消息后,从该消息的源/目的地址中解析出层级信息和域信息;根据解析出的域信息和层级信息,以及预先设定的转发控制规则,控制该消息的转发。由于在消息的源/目的地址中携带有层级信息和域信息,可以确认出源/目的地址的层级和域,再通过设定的转发规则,来实现对该消息的转发,不必在消息中间件中建有路由表,节约了消息中间件大量的空间资源和系统资源。
文档编号H04L12/58GK102546461SQ201110415780
公开日2012年7月4日 申请日期2011年12月13日 优先权日2011年12月13日
发明者丰国炳, 傅永财, 吴瑜, 张勇, 李淑惠, 王非, 贾晓霞, 郑扬飞, 郭红钰, 金辉 申请人:中国电子科技集团公司第十五研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1