一种基于分发思想的消息服务中间件系统的制作方法

文档序号:7816083阅读:253来源:国知局
一种基于分发思想的消息服务中间件系统的制作方法
【专利摘要】本发明提供一种基于分发思想的消息服务中间件系统,用于各类消息的分发、转发服务,旨在满足应用服务的基础上降低服务端接收消息请求任务的压力以及提高处理多个请求方不同请求任务的效率问题。系统包括:(1)消息服务订阅模块;(2)消息服务分发模块;(3)消息服务发布模块。采用该系统可以解决订阅方频繁查找不同服务的提供方地址的甚至找不到服务提供方地址的问题;可以有效降低服务端接收请求任务的次数,减小重复数据发布的概率,有效的提高数据发布效率;能够解决服务端大批量请求任务处理的瓶颈问题。
【专利说明】—种基于分发思想的消息服务中间件系统

【技术领域】
[0001]本发明涉及通信【技术领域】,在各类消息服务中,当一方向另一方请求数据或服务时,对于任务处理效率以及数据发布效率有较高的要求,该发明旨在减少服务端接收相同请求任务的概率以及减少处理相同请求的负担,提高请求任务的处理效率以及解决大批量请求任务处理在数量以及效率上的瓶颈问题。具体地说是一种基于分发思想的消息服务中间件系统。

【背景技术】
[0002]在各类消息服务中,请求任务处理的效率、数据发布的效率以及大批量请求任务的可靠稳定处理都要较高的要求,而计算机的CPU、内存等各种资源以及网络带宽资源都是有限的,为满足大批量请求任务应用的需求,消息服务必须高效、稳定。
[0003]目前各类消息服务都采用请求方向数据或服务提供方直接发送请求的方式进行,这类处理方法使得服务方频繁接收相同请求任务以及频繁发送相同的数据或提供重复的服务,在服务方有限的服务提供能力下,导致服务提供效率的降低。而且,当服务提供方在某一时刻崩溃重启后,当前消息服务处理方法无法使得数据或服务请求方及时获取数据或服务,且请求方必须重新提交请求任务后,才能重新获取数据或服务,增加了请求方以及服务提供方的负担。
[0004]当请求方需要服务提供方周期性提供服务时,当前各类消息服务处理方法要求请求方周期性的向服务提供方发送服务请求,导致网络负载随请求方数量以及请求周期成几何倍数增长,当前各类消息服务处理方法不可避免的会产生批量请求任务处理以及服务提供效率的瓶颈问题,因此,减少不必要的请求任务,将有利于整体服务效率的提升。


【发明内容】

[0005]本发明的目的是提供一种消息服务中间件系统。
[0006]本发明的目的是按以下方式实现的,系统包括I)消息服务订阅模块;2)消息服务分发模块;3)消息服务发布模块,其中:
O消息服务订阅模块
消息服务订阅模块,主要实现订阅请求的注册、发送以及订阅数据的正确回返,消息服务订阅模块数据流向为:实例化订阅请求任务后,消息服务订阅模块将服务请求任务进行注册登记,并将带有服务码以及过滤条件的请求信息发送给消息服务分发模块;消息服务订阅模块接收到回返数据后,根据服务码以及注册信息,将回返数据返回给相应的请求者,消息服务订阅模块的各类功能如下:
(1)CMsgSubscribeListMgr类:初始化运行环境并启动接收线程,管理注册信息,并分发回返数据;
(2)CMsgSubscribe类:定义消息订阅接口,其子类需要实现该类定义的方法;
(3)NewClass类及NewClass2类:消息订阅实例类,继承CMsgSubscribe类,根据具体业务需求实现CMsgSubscribe类定义的接口 ;
消息服务中间件系统,采用服务码的形式或者称为消息号区分不同的服务,服务方对每一个服务提供一个特定的服务码,订阅方以提供服务码的方式获取服务,服务码可根据具体业务需要进行自定义,消息服务订阅模块采用过滤条件的方式处理需特殊处理的订阅请求;
消息服务订阅模块支持两个订阅方互相订阅的业务;
2)消息服务分发模块
消息服务分发模块,是消息服务中间件系统的主体模块,该模块需要实现的功能包括:获取服务配置信息、消息解析、消息分发,包括订阅请求的转发和订阅数据的转发、相同请求处理、特殊订阅处理或过滤处理以及订阅信息注册及取消订阅;
消息服务分发模块具体实现流程为:
(1)初始化运行环境,获取服务配置信息,包括服务类型、服务提供方地址、采用的通信方式以及服务自动探测周期,配置信息记录到服务转发表中;
(2)消息服务分发模块接收消息;
(3)消息服务分发模块对消息进行解析,获取消息类型以及消息服务码;
(4)消息服务分发模块根据消息类型及服务码进行相应的处理,基本消息类型包括:请求消息、响应消息、取消订阅消息以及探测消息,消息类型可根据业务需要进行扩展;如果接收到的消息类型是请求消息,并且注册列表中没有该类型的请求或者请求参数不相同,则根据服务转发表将消息转发给相应的服务提供方,并将该订阅信息写入注册列表;另外,如果已有该类型的请求,但超过某个时间阀值未收到响应,消息服务分发够将将重发该订阅请求,如果是响应消息,则根据服务码以及注册列表将消息返回给相应的订阅者;数据回返时根据注册列表中的过滤条件选择回返方式,回返方式可自定义;如果是取消订阅消息,则将该订阅者从注册列表中删除,当注册列表为空时,消息服务分发模块将向该类型的消息服务提供方发送取消订阅消息;如果是探测消息,则提示服务提供方正常运行,并根据业务需求进行相关处理;
消息服务分发模块包含服务探测机制,当某个类型的请求超过某个阀值未收到响应时,消息服务分发模块将自动向服务端发送该类型的订阅请求,超时阀值可根据不同的服务需求进行独立设置;
消息服务分发模块各类功能如下:
(1)CMsgDispatchMgr类:初始化运行环境,提供服务总接口 ;
(2)CMsgParser类:消息解析,获取消息服务码等必要信息
(3)SMsgHead类:定义消息解析结构,可根据业务扩展;
(4)CMsgSubscribeMgr类:订阅请求注册及转发、响应消息分发以及其他各类型消息处理;
(5)CSubscribe类:定义订阅者注册信息格式,包括订阅者地址、过滤参数等必要信息;
(6)CMsgReqSendFactory类:订阅请求信息发送方式管理;
(7)CMsgSubResponseHandler类:定义订阅请求信息发送接口,便于自定义订阅请求消息发送方式; (8)CMsgSendHandlerO类及CMsgSendHandlerl类:实例化的订阅请求信息发送方式;
(9)CMsgReqSendFactory类:响应数据回返方式管理;
(10)CMsgSendHandle类:订阅响应消息回返方式接口,便于自定义响应信息回返方式;
(11)CDetailMsgHandlerO类及CDetailMsgHandlerl类:实例化的响应数据回返方式类;
3)消息服务发布模块
消息服务发布模块主要实现订阅请求的接收、解析以及订阅数据的回返,消息服务发布模块工作流程如下:
(O消息服务发布模块接收消息;
(2)消息服务发布模块对消息进行解析,获取该请求的服务码及消息类型;
(3)如果是订阅请求消息,消息服务发布模块根据该服务码查找本服务的订阅请求注册列表,如果已经存在该类型的请求,则不进行处理,否则将该订阅请求注册登记到订阅请求注册列表中,并将订阅请求提供给服务提供方;
(4)如果接收到探测消息,则根据消息服务码查找本服务的订阅请求注册列表,如果已经存在该类型的请求,则返回探测响应消息;否则,解析探测消息,获取订阅请求信息,并将该订阅请求注册登记到本服务的订阅请求注册列表中,并将订阅请求提供给服务提供方;
消息服务发布模块的类功能是=CPubSubServer类:实现消息接收、解析以及响应数据回返。
[0007]所述的系统,设置消息订阅接口,按照规定格式发送订阅请求,订阅请求格式规定如下:
报文头+服务码+过滤参数+消息标记
报文头为协议报文头,长度根据采用的协议进行规定;服务码可根据实际业务需求进行定义,长度根据需要设置;过滤参数用于区分同类型请求不同请求参数的订阅请求,其格式可根据实际业务进行自定义;消息标记用于区别各类消息类型及业务所需的消息标记。
[0008]所述的系统,将服务进行分类,不同请求者同一类型、相同请求参数的订阅请求条件性向服务提供方发送,默认发送条件为:
(1)没有该类型的订阅请求;
(2)有该类型的订阅请求,但请求参数不同;
(3)有该类型的同请求参数的请求,但超过预定时间阀值未收到响应消息;
发送条件可根据实际业务需要进行扩展,预定时间阀值不同服务可独立设置。
[0009]所述的系统,消息服务分发模块采用超时自动探测机制,对超过预定时间阀值未收到响应消息的服务进行探测。
[0010]所述的系统,消息服务分发模块转发、分发订阅请求及响应消息时,可采用自定义方式进行发送消息。
[0011]本发明的目的有益效果是:通过消息服务订阅模块、消息服务分发模块以及消息服务发布模块的配合工作,降低频繁订阅对订阅方以及服务提供方带来的负担以及网络负载压力,规范服务提供方式,提高大批量任务处理的稳定性及服务提供效率。

【专利附图】

【附图说明】
[0012]图1是消息服务中间件系统结构图;
图2是消息服务订阅模块功能结构示意图;
图3是消息服务订阅模块流程图;
图4是消息服务分发模块功能结构示意图图5是消息服务发布模块功能结构示意图。

【具体实施方式】
[0013]参照说明书附图对本发明的一种消息服务中间件系统作以下详细地说明。
[0014]本发明所要解决的技术问题是提供一种基于分发思想的消息服务中间件系统,该系统分类订阅各类请求任务,相同类型的请求任务在一定时间内只请求一次,以减少服务提供方对请求任务处理的压力;对服务方提供的数据或服务采用注册分发技术,使得每个数据或服务请求方都能及时获取所需数据或服务。
[0015]消息服务中间件系统结构如图1所示,其具体实现方案如下:
系统设置I)消息服务订阅模块;2)消息服务分发模块;3)消息服务发布模块,其中: O消息服务订阅模块
消息服务订阅模块主要实现订阅请求的注册、发送以及订阅数据的正确回返。消息服务订阅模块数据流向为:实例化订阅请求任务后,订阅模块将服务请求任务进行注册登记,并将带有服务码以及过滤条件的请求信息发送给消息服务分发模块;消息服务订阅模块接收到回返数据后,根据服务码以及注册信息,将回返数据返回给相应的请求者。
[0016]消息服务订阅模块类图如图2所示,各类的功能如下:
(1)CMsgSubscribeListMgr类:初始化运行环境并启动接收线程,管理注册信息,并分发回返数据;
(2)CMSgSUbScribe类:定义消息订阅接口,其子类需要实现该类定义的方法;
(3)NewClass类及NewClass2类:消息订阅实例类,继承CMsgSubscribe类,根据具体业务需求实现CMsgSubscribe类定义的接口。
[0017]消息服务中间件采用服务码的形式或者称为消息号区分不同的服务,服务方对每一个服务提供一个特定的服务码,订阅方以提供服务码的方式获取服务,服务码可根据具体业务需要进行自定义。消息服务订阅模块采用过滤条件的方式处理需特殊处理的订阅请求,比如A请求2013年济南市的雨水情况,B请求青岛市2014年的雨水情况,A和B将采用相同的服务码进行请求,但两者的请求参数将在过滤条件中进行区别。
[0018]消息服务订阅模块流程图如图3所示。
[0019]消息服务订阅模块支持两个订阅方互相订阅的业务。例如,A可提供雨水类的服务信息,B可提供粮食产量类的信息,则A可向B订阅请求粮食类的信息服务,B可向A订阅请求雨水类的信息服务。
[0020]2)消息服务分发模块
消息服务分发模块是消息服务中间件的主体模块,该模块需要实现的功能包括:获取服务配置信息、消息解析、消息分发(包括订阅请求的转发和订阅数据的转发)、相同请求处理、特殊订阅处理(过滤处理)以及订阅信息注册及取消订阅。
[0021]消息服务分发模块具体实现流程为:
(1)初始化运行环境,获取服务配置信息,包括服务类型、服务提供方地址、采用的通信方式以及服务自动探测周期,配置信息记录到服务转发表中;
(2)消息服务分发模块接收消息;
(3)消息服务分发模块对消息进行解析,获取消息类型以及消息服务码;
(4)消息服务分发模块根据消息类型及服务码进行相应的处理。基本消息类型包括:请求消息、响应消息、取消订阅消息以及探测消息,消息类型可根据业务需要进行扩展。如果接收到的消息类型是请求消息,并且注册列表中没有该类型的请求,或者请求参数不相同,则根据服务转发表将消息转发给相应的服务提供方,并将该订阅信息写入注册列表,另夕卜,如果已有该类型的请求,但超过某个时间阀值未收到响应,消息服务分发够将将重发该订阅请求。如果是响应消息,则根据服务码以及注册列表将消息返回给相应的订阅者;数据回返时根据注册列表中的过滤条件选择回返方式,回返方式可自定义。如果是取消订阅消息,则将该订阅者从注册列表中删除,当注册列表为空时,消息服务分发模块将向该类型的消息服务提供方发送取消订阅消息。如果是探测消息,则提示服务提供方正常运行,并根据业务需求进行相关处理。
[0022]消息服务分发模块包含服务探测机制,当某个类型的请求超过某个阀值未收到响应时,消息服务分发模块将自动向服务端发送该类型的订阅请求。超时阀值可根据不同的服务需求进行独立设置。
[0023]消息服务分发模块类图如图4所示,各类功能如下:
(1)CMsgDispatchMgr类:初始化运行环境,提供服务总接口 ;
(2)CMsgParser类:消息解析,获取消息服务码等必要信息
(3)SMsgHead类:定义消息解析结构,可根据业务扩展;
(4)CMsgSubscribeMgr类:订阅请求注册及转发、响应消息分发以及其他各类型消息处理;
(5)CSubscribe类:定义订阅者注册信息格式,包括订阅者地址、过滤参数等必要信息
(6)CMsgReqSendFactory类:订阅请求信息发送方式管理
(7)CMsgSubResponseHandler类:定义订阅请求信息发送接口,便于自定义订阅请求消息发送方式
(8)CMsgSendHandlerO类及CMsgSendHandlerl类:实例化的订阅请求信息发送方式
(9)CMsgReqSendFactory类:响应数据回返方式管理;
(10)CMsgSendHandle类:订阅响应消息回返方式接口,便于自定义响应信息回返方式
(11)CDetailMsgHandlerO类及CDetailMsgHandlerl类:实例化的响应数据回返方式类
3)消息服务发布模块
消息服务发布模块主要实现订阅请求的接收、解析以及订阅数据的回返。消息服务发布模块流程如下:
(O消息服务发布模块接收消息;
(2)消息服务发布模块对消息进行解析,获取该请求的服务码及消息类型;
(3)如果是订阅请求消息,消息服务发布模块根据该服务码查找本服务的订阅请求注册列表,如果已经存在该类型的请求,则不进行处理,否则将该订阅请求注册登记到订阅请求注册列表中,并将订阅请求提供给服务提供方;
(4)如果接收到探测消息,则根据消息服务码查找本服务的订阅请求注册列表,如果已经存在该类型的请求,则返回探测响应消息;否则,解析探测消息,获取订阅请求信息,并将该订阅请求注册登记到本服务的订阅请求注册列表中,并将订阅请求提供给服务提供方。
[0024]消息服务发布模块类图如图5所示,各类功能如下所示:
(I)CPubSubServer类:实现消息接收、解析以及响应数据回返。
【权利要求】
1.一种基于分发思想的消息服务中间件系统,其特征在于,系统包括I)消息服务订阅模块;2)消息服务分发模块;3)消息服务发布模块,其中: O消息服务订阅模块 消息服务订阅模块,主要实现订阅请求的注册、发送以及订阅数据的正确回返,消息服务订阅模块数据流向为:实例化订阅请求任务后,消息服务订阅模块将服务请求任务进行注册登记,并将带有服务码以及过滤条件的请求信息发送给消息服务分发模块;消息服务订阅模块接收到回返数据后,根据服务码以及注册信息,将回返数据返回给相应的请求者,消息服务订阅模块的各类功能如下: (1)CMsgSubscribeListMgr类:初始化运行环境并启动接收线程,管理注册信息,并分发回返数据; (2)CMSgSUbScribe类:定义消息订阅接口,其子类需要实现该类定义的方法; (3)NewClass类及NewClass2类:消息订阅实例类,继承CMsgSubscribe类,根据具体业务需求实现CMsgSubscribe类定义的接口 ; 消息服务中间件系统,采用服务码的形式或者称为消息号区分不同的服务,服务方对每一个服务提供一个特定的服务码,订阅方以提供服务码的方式获取服务,服务码可根据具体业务需要进行自定义,消息服务订阅模块采用过滤条件的方式处理需特殊处理的订阅请求; 消息服务订阅模块支持两个订阅方互相订阅的业务; 2)消息服务分发模块 消息服务分发模块,是消息服务中间件系统的主体模块,该模块需要实现的功能包括:获取服务配置信息、消息解析、消息分发,包括订阅请求的转发和订阅数据的转发、相同请求处理、特殊订阅处理或过滤处理以及订阅信息注册及取消订阅; 消息服务分发模块具体实现流程为: (1)初始化运行环境,获取服务配置信息,包括服务类型、服务提供方地址、采用的通信方式以及服务自动探测周期,配置信息记录到服务转发表中; (2)消息服务分发模块接收消息; (3)消息服务分发模块对消息进行解析,获取消息类型以及消息服务码; (4)消息服务分发模块根据消息类型及服务码进行相应的处理,基本消息类型包括:请求消息、响应消息、取消订阅消息以及探测消息,消息类型可根据业务需要进行扩展;如果接收到的消息类型是请求消息,并且注册列表中没有该类型的请求或者请求参数不相同,则根据服务转发表将消息转发给相应的服务提供方,并将该订阅信息写入注册列表;另外,如果已有该类型的请求,但超过某个时间阀值未收到响应,消息服务分发够将将重发该订阅请求,如果是响应消息,则根据服务码以及注册列表将消息返回给相应的订阅者;数据回返时根据注册列表中的过滤条件选择回返方式,回返方式可自定义;如果是取消订阅消息,则将该订阅者从注册列表中删除,当注册列表为空时,消息服务分发模块将向该类型的消息服务提供方发送取消订阅消息;如果是探测消息,则提示服务提供方正常运行,并根据业务需求进行相关处理; 消息服务分发模块包含服务探测机制,当某个类型的请求超过某个阀值未收到响应时,消息服务分发模块将自动向服务端发送该类型的订阅请求,超时阀值可根据不同的服务需求进行独立设置; 消息服务分发模块各类功能如下: (1)CMsgDispatchMgr类:初始化运行环境,提供服务总接口 ; (2)CMsgParser类:消息解析,获取消息服务码等必要信息 (3)SMsgHead类:定义消息解析结构,可根据业务扩展; (4)CMsgSubscribeMgr类:订阅请求注册及转发、响应消息分发以及其他各类型消息处理; (5)CSubscribe类:定义订阅者注册信息格式,包括订阅者地址、过滤参数等必要信息; (6)CMsgReqSendFactory类:订阅请求信息发送方式管理; (7)CMsgSubResponseHandler类:定义订阅请求信息发送接口,便于自定义订阅请求消息发送方式; (8)CMsgSendHandlerO类及CMsgSendHandlerl类:实例化的订阅请求信息发送方式; (9)CMsgReqSendFactory类:响应数据回返方式管理; (10)CMsgSendHandle类:订阅响应消息回返方式接口,便于自定义响应信息回返方式; (11)CDetailMsgHandlerO类及CDetailMsgHandlerl类:实例化的响应数据回返方式类; 3)消息服务发布模块 消息服务发布模块主要实现订阅请求的接收、解析以及订阅数据的回返,消息服务发布模块工作流程如下: (O消息服务发布模块接收消息; (2)消息服务发布模块对消息进行解析,获取该请求的服务码及消息类型; (3)如果是订阅请求消息,消息服务发布模块根据该服务码查找本服务的订阅请求注册列表,如果已经存在该类型的请求,则不进行处理,否则将该订阅请求注册登记到订阅请求注册列表中,并将订阅请求提供给服务提供方; (4)如果接收到探测消息,则根据消息服务码查找本服务的订阅请求注册列表,如果已经存在该类型的请求,则返回探测响应消息;否则,解析探测消息,获取订阅请求信息,并将该订阅请求注册登记到本服务的订阅请求注册列表中,并将订阅请求提供给服务提供方; 消息服务发布模块的类功能是CPubSubServer类:实现消息接收、解析以及响应数据回返。
2.根据权利要求1所述的系统,其特征是:设置消息订阅接口,按照规定格式发送订阅请求,订阅请求格式规定如下: 报文头+服务码+过滤参数+消息标记 报文头为协议报文头,长度根据采用的协议进行规定;服务码可根据实际业务需求进行定义,长度根据需要设置;过滤参数用于区分同类型请求不同请求参数的订阅请求,其格式可根据实际业务进行自定义;消息标记用于区别各类消息类型及业务所需的消息标记。
3.根据权利要求1所述的系统,其特征是:将服务进行分类,不同请求者同一类型、相同请求参数的订阅请求条件性向服务提供方发送,默认发送条件为: (1)没有该类型的订阅请求; (2)有该类型的订阅请求,但请求参数不同; (3)有该类型的同请求参数的请求,但超过预定时间阀值未收到响应消息; 发送条件可根据实际业务需要进行扩展,预定时间阀值不同服务可独立设置。
4.根据权利要求1所述的系统,其特征是:消息服务分发模块采用超时自动探测机制,对超过预定时间阀值未收到响应消息的服务进行探测。
5.根据权利要求1所述的系统,其特征是:消息服务分发模块转发、分发订阅请求及响应消息时,可采用自定义方式进行发送消息。
【文档编号】H04L29/08GK104243611SQ201410516976
【公开日】2014年12月24日 申请日期:2014年9月30日 优先权日:2014年9月30日
【发明者】马骏, 邵兵, 乔富龙 申请人:浪潮软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1