发明名称 一种基于分发思想的消息服务中间件系统
摘要 本发明提供一种基于分发思想的消息服务中间件系统,用于各类消息的分发、转发服务,旨在满足应用服务的基础上降低服务端接收消息请求任务的压力以及提高处理多个请求方不同请求任务的效率问题。系统包括:(1)消息服务订阅模块;(2)消息服务分发模块;(3)消息服务发布模块。采用该系统可以解决订阅方频繁查找不同服务的提供方地址的甚至找不到服务提供方地址的问题;可以有效降低服务端接收请求任务的次数,减小重复数据发布的概率,有效的提高数据发布效率;能够解决服务端大批量请求任务处理的瓶颈问题。
申请公布号 CN104243611A 申请公布日期 2014.12.24
申请号 CN201410516976.4 申请日期 2014.09.30
申请人 浪潮软件股份有限公司 发明人 马骏;邵兵;乔富龙
分类号 H04L29/08(2006.01)I 主分类号 H04L29/08(2006.01)I
代理机构 济南信达专利事务所有限公司 37100 代理人 姜明
主权项 一种基于分发思想的消息服务中间件系统, 其特征在于,系统包括1)消息服务订阅模块;2)消息服务分发模块; 3)消息服务发布模块,其中: 1)消息服务订阅模块消息服务订阅模块,主要实现订阅请求的注册、发送以及订阅数据的正确回返,消息服务订阅模块数据流向为:实例化订阅请求任务后,消息服务订阅模块将服务请求任务进行注册登记,并将带有服务码以及过滤条件的请求信息发送给消息服务分发模块;消息服务订阅模块接收到回返数据后,根据服务码以及注册信息,将回返数据返回给相应的请求者,消息服务订阅模块的各类功能如下:(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)CMsgSendHandler0类及CMsgSendHandler1类:实例化的订阅请求信息发送方式;(9)CMsgReqSendFactory类:响应数据回返方式管理;(10)CMsgSendHandle类:订阅响应消息回返方式接口,便于自定义响应信息回返方式;(11)CDetailMsgHandler0类及CDetailMsgHandler1类:实例化的响应数据回返方式类;3)消息服务发布模块消息服务发布模块主要实现订阅请求的接收、解析以及订阅数据的回返,消息服务发布模块工作流程如下:(1)消息服务发布模块接收消息;(2)消息服务发布模块对消息进行解析,获取该请求的服务码及消息类型;(3)如果是订阅请求消息,消息服务发布模块根据该服务码查找本服务的订阅请求注册列表,如果已经存在该类型的请求,则不进行处理,否则将该订阅请求注册登记到订阅请求注册列表中,并将订阅请求提供给服务提供方;(4)如果接收到探测消息,则根据消息服务码查找本服务的订阅请求注册列表,如果已经存在该类型的请求,则返回探测响应消息;否则,解析探测消息,获取订阅请求信息,并将该订阅请求注册登记到本服务的订阅请求注册列表中,并将订阅请求提供给服务提供方;消息服务发布模块的类功能是CPubSubServer类:实现消息接收、解析以及响应数据回返。
地址 250100 山东省济南市高新区浪潮路1036号