公开/公告号CN105049519A
专利类型发明专利
公开/公告日2015-11-11
原文格式PDF
申请/专利权人 北京思特奇信息技术股份有限公司;
申请/专利号CN201510484642.8
发明设计人 张厚瑞;
申请日2015-08-07
分类号H04L29/08;
代理机构北京轻创知识产权代理有限公司;
代理人杨立
地址 100086 北京市海淀区中关村南大街6号中电信息大厦16层
入库时间 2023-12-18 12:06:53
法律状态公告日
法律状态信息
法律状态
2018-07-17
授权
授权
2016-01-06
实质审查的生效 IPC(主分类):H04L29/08 申请日:20150807
实质审查的生效
2015-11-11
公开
公开
技术领域
本发明涉及通信领域,特别涉及一种基于SOAP协议的消息路由方法和 系统。
背景技术
在移动通信领域中,电信运营商的BSS(BusinessSupportSystem,业 务支撑系统)系统升级项目时,考虑地区具有区域特性以及整个系统的稳定 性,系统割接方案在大多数情况下为多次割接,第一次只割接一个地区。这 时,多次割接的方案会造成同一个SOAP(SimpleObjectAccessProtocol,简 单对象访问协议)接口,BSS系统具有2个URL地址:新系统地址和老系统 地址,因此需要一个基于SOAP协议的消息路由程序,实现根据号段作为路 由关键字,进行报文分发。对于号段属于已割接地市,将报文转发至新系统; 对于号段属于未割接地市的业务,将报文转发至老系统。
发明内容
本发明所要解决的技术问题是提供一种基于SOAP协议的消息路由方法 和系统,解决对客户端来说,调用的服务端接口或服务有多个,对外发布的 URL地址有多个,并且URL地址需要通过路由关键字识别的问题。
本发明解决上述技术问题的技术方案如下:一种基于SOAP协议的消息 路由方法,包括以下步骤
步骤1,加载路由配置文件,将路由配置文件中的路由数据读入内存;
步骤2,监听并接收来自客户端的SOAP请求报文;
步骤3,在所述SOAP请求报文中定位路由关键字;
步骤4,在读入内存的路由数据中进行检索,得到路由关键字对应的目 标服务器URL;
步骤5,根据路由关键字与目标服务器URL的对应关系,建立当前服务 器与目标服务器的连接。
本发明的有益效果是:本发明对SOAP协议的路由分发与业务语义分离, 与业务无关,适用任何业务场景,实现不同SOAP通信报文分发或路由规则 可配置,路由配置灵活,支持多种路由方式。
为了解决所述技术问题,本发明还提供一种基于SOAP协议的消息路由 系统,包括配置文件加载模块,用于加载路由配置文件,将路由配置文件中 的路由数据读入内存;
监听模块,用于监听并接收来自客户端的SOAP请求报文;
关键字定位模块,用于在所述SOAP请求报文中定位路由关键字;
检索模块,用于在读入内存的路由数据中进行检索,得到路由关键字 对应的目标服务器URL;
链路连接模块,用于根据路由关键字与目标服务器URL的对应关系,建 立当前服务器与目标服务器的连接。
附图说明
图1为本发明一种基于SOAP协议的消息路由方法步骤流程图;
图2为本发明一种基于SOAP协议的消息路由系统与外部系统关系示意 图。
图3为本发明一种基于SOAP协议的消息路由系统内部模块关系示意图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本 发明,并非用于限定本发明的范围。
本技术发明是基于SOAP协议开发的,为基于HTTP协议栈之上的servlet 应用程序。
图1为本发明一种基于SOAP协议的消息路由方法步骤流程图;
如图1所示,一种基于SOAP协议的消息路由方法,包括以下步骤
步骤1,加载路由配置文件,将路由配置文件中的路由数据读入内存;
步骤2,监听并接收来自客户端的SOAP请求报文。在servlet应用程序 中,可以通过dopost方法,监听servlet请求,接收来自客户端的SOAP请 求报文。
步骤3,在所述SOAP请求报文中定位路由关键字,在servlet应用程序 中根据xmlpath定位路由关键字。
步骤4,根据定位的路由关键字,在读入内存的路由数据中进行检索, 得到路由关键字对应的目标服务器URL。
步骤5,根据路由关键字与目标服务器URL的对应关系,建立当前服务 器与目标服务器的连接,在servlet应用程序中,可以利用 HttpURLConnection建立输入输出流,从而实现建立当前服务器与目标服务 器的连接。
在步骤5之后还包括
步骤6,向目标服务器发送SOAP请求报文,并接受来自目标服务器的 应答报文;
步骤7,向客户端发送所述应答报文,并关闭连接。
所述路由配置文件记载了路由关键字与目标服务器URL的对应关系。
在步骤3之前还包括,判断接收的SOAP请求报文是否为空,如果是, 则向客户端返回默认错误报文,如果否,则执行步骤3;
在步骤5之前还包括,判断得到的目标服务器URL是否为空,如果是, 则向客户端返回默认错误报文,如果否,则执行步骤5。
在步骤5中,为每一个连接单独分配一个线程,多个线程并发执行。
在步骤5中,为每个连接的连接时间设定阈值,当连接时间超过所述阈 值时,则自动断开当前连接。
图2为本发明一种基于SOAP协议的消息路由系统与外部系统关系示意 图。如图2所示,客户端通过统一接口将SOAP请求报文发送至基于SOAP协 议的消息路由系统所在的服务器,基于SOAP协议的消息路由系统通过统一 接口接收SOAP请求报文后,根据内部定义的报文分发机制将该SOAP请求报 文分发至目标BSS系统所在的服务器中。
图3为本发明一种基于SOAP协议的消息路由系统内部模块关系示意图。 如图3所示,一种基于SOAP协议的消息路由系统,包括配置文件加载模块, 用于加载路由配置文件,将路由配置文件中的路由数据读入内存;监听模块, 用于监听并接收来自客户端的SOAP请求报文,可以通过dopost方法,监听 servlet请求,接收来自客户端的SOAP请求报文;关键字定位模块,用于在 所述SOAP请求报文中定位路由关键字,在servlet应用程序中根据xmlpath 定位路由关键字;检索模块,用于在读入内存的路由数据中进行检索,得到 路由关键字对应的目标服务器URL;链路连接模块,用于根据路由关键字与 目标服务器URL的对应关系,建立当前服务器与目标服务器的连接,在 servlet应用程序中,可以利用HttpURLConnection建立输入输出流,从而 实现建立当前服务器与目标服务器的连接。
基于SOAP协议的消息路由系统,所述路由配置文件记载了路由关键字 与目标服务器URL的对应关系。
基于SOAP协议的消息路由系统,还包括请求报文验证模块和URL验证 模块,请求报文验证模块用于判断接收的SOAP请求报文是否为空,如果是, 则向客户端返回默认错误报文,如果否,则将所述SOAP请求报文发送至关 键字定位模块;URL验证模块判断得到的目标服务器URL是否为空,如果是, 则向客户端返回默认错误报文,如果否,则将目标服务器URL发送至链路连 接模块。
基于SOAP协议的消息路由系统,链路连接模块还用于为每一个连接单 独分配一个线程,多个线程并发执行。链路连接模块还用于为每个连接的连 接时间设定阈值,当连接时间超过所述阈值时,则自动断开当前连接。
实施例一:
山东联通BSS系统升级中,由于系统割接方案为多次割接,第一次只割 接一个地市。这种割接方案,造成同一个SOAP接口,BSS系统有2个URL 地址:新系统的URL地址和老系统的URL地址。因此,需要一个基于SOAP 协议的分发程序,实现根据号段作为路由关键字,将客户端发送的URL地址 发送到目标BSS系统中,例如,对于号段属于已割接地市,将报文转发至新 BSS系统;对于号段属于未割接地市的业务,将报文转发至老BSS系统。
针对SOAP接口,在BSS系统侧的前端增加本发明所述基于SOAP协议的 消息路由系统,并配置路由数据,路由文件rt.xml样例如下:
将割接到新系统的号段,配置在<URLnew>节点下,作为节点值。其余 未配置的号段,默认是老系统的号段,号段放入map容器中。
SOAP报文的里有关键字位置为/USERSTATREQUEST/MSGBODY/MSISDN。 取号码的前7位,通过map.get是否有值,有值则表示属于新系统,否则属 于老系统。
本发明的有益效果为,对SOAP协议的路由分发与业务语义分离,与业 务无关,适用任何业务场景,实现不同SOAP通信报文分发或路由规则可配 置,路由配置灵活,支持多种路由方式,如号段路由、工号路由、业务业务 等等。使用线程池,分发效率较高。同时对连接设置超时时限,提高线程使 用率,保证线程良性运行。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明 的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发 明的保护范围之内。
机译: 用于连接regacy系统和内容提供者的基于SOAP的网关及其使用的协议改变方法
机译: 用于连接regacy系统和内容提供者的基于SOAP的网关及其使用的协议改变方法
机译: 一种用于安全数据传输的基于密码的认证和会话密钥协议的方法,一种用于安全地传输数据的方法以及一种电子数据传输系统