一种支持多个协议栈的系统及方法
技术领域
本发明涉及通讯技术领域,尤其涉及一种支持多个协议栈的系统及方法。
背景技术
随着数据增值业务的迅速发展,每个局点业务管理需求不同,SMAP(业务管理接入协议)协议扩展成三种SMAP、ISMAP、BSMAP协议栈,并且每种协议栈还会有不同版本,就会存在SMAP1.0、SMAP1.2、ISMAP1.1和BSMAP1.0等等共存的协议栈。消息在接入层接入,到多个SMAP协议栈之间分发,存在如何路由的问题。
目前,现有技术的解决方案如图1所示,具体处理步骤包括:
1)系统启动时,接入层读取出当前配置的协议类型,例如SMAP、ISMAP、BSMAP;
2)外部业务使能部件向系统发送请求消息,消息中带协议版本号;
3)接入层和协议栈根据配置的协议类型和消息上报的版本号找到特定的协议栈,特定协议栈对请求解码;
4)特定协议栈将所述消息转换成内部消息;
5)发送内部消息到业务逻辑控制层;
6)业务逻辑控制层根据配置的协议类型,完成逻辑处理;
7)业务逻辑控制层返回处理应答消息;
8)接入层和协议栈根据配置的协议类型和消息上报的版本号找到特定协议栈,特定协议栈对所述应答进行编码;
9)返回应答消息给业务使能部件。
上述技术方案中,系统同时只能支持一种类型的SMAP协议,而实际运行中在有些局点,需要系统同时支持两种或多种类型的协议,因此目前的方案不能满足支持多种SMAP协议的需求。
发明内容
本发明的目的在于提供一种支持多个协议栈的系统及方法。
本发明的目的是通过以下技术方案实现的:
一种支持多个协议栈的方法,包括:
A、系统启动,接入层获取业务使能部件与协议类型的对应关系,协议栈层动态向接入层注册协议类型与协议版本及协议栈对应服务的对应关系;
B、接入层接收业务使能部件发送的登录请求消息并根据所述登录请求消息及所述获取的对应关系信息确定与所述业务使能部件对应的协议栈对应的服务;
C、根据所述确定的与所述业务使能部件对应的协议栈对应的服务对后续接收到的所述业务使能部件的业务操作请求进行处理。
所述登录请求消息包括:业务使能部件标识及版本号。
所述步骤B进一步包括:
接入层返回与业务使能部件所提供的版本号相同或相近的协议栈版本号信息给业务使能部件。
所述步骤C进一步包括:
接入层根据获取的业务使能部件与协议类型的对应关系、及业务使能部件标识、及接入层注册的协议类型与协议版本及协议栈对应服务的对应关系确定与所述业务使能部件对应的协议栈对应的服务,并保存所述对应关系信息。
所述步骤D具体包括:
接入层接收到业务使能部件业务操作请求;
调用协议栈层的解码服务,将所述请求消息转换成内部消息,之后发送到业务逻辑控制层;
业务逻辑控制层完成相应逻辑处理后,返回内部应答消息给协议栈层;
协议栈层对所述应答进行编码服务,之后将其返回给接入层;
接入层将所述应答消息返回给业务使能部件。
所述业务使能部件与协议栈的对应服务的对应关系包括:业务使能部件标识与协议类型、协议版本、协议栈对应服务的对应关系。
一种支持多个协议栈的系统,包括:
注册管理模块,用于向接入层注册当前协议类型与协议版本及协议栈的服务的对应关系;
消息维护模块,提供与所述注册管理模块的接口,用于接收注册管理模块上报的消息,维护登录后外部业务使能部件与协议栈对应服务的对应关系,并将其保存在接入层;
信息查找模块,用于根据业务使能部件标识读取系统中存储的配置文件,获取与业务使能部件对应的协议类型。
所述注册管理模块设置于协议栈层,消息维护模块及信息查找模块设置于接入层。
由上述本发明提供的技术方案可以看出,本发明通过在接入层预先设置业务使能部件与协议栈的对应关系,并采用协议栈层向接入层主动注册的方式,实现了系统接入层同时支持多个协议栈,满足了当前系统操作的需求,应用灵活,可扩展性强。
附图说明
图1为现有技术系统配置方案的处理流程图;
图2为本发明所述系统一种实施例模块示意图;
图3为本发明所述方法一种实施例操作流程图。
具体实施方式
本发明的核心思想是提供一种支持多个协议栈的系统及方法,采用协议栈层向接入层主动注册,由接入层维护并保存业务使能部件和协议栈层之间的映射关系,使系统接入层同时可以支持多种协议栈。
本发明提供一种支持多个协议栈的系统,其一种实施例模块示意图如图2所示,所述系统在协议栈层设置有注册管理模块,用于向接入层注册当前协议类型与协议版本及协议栈的服务的对应关系;所述系统在接入层设置有消息维护模块,提供与所述注册管理模块的接口,用于接收注册管理模块上报的消息,根据登录的外部业务使能部件的标识,维护所述对应关系,并将其保存在接入层;所述接入层中保存的所述对应关系可以采用如下映射表的结构:
字段 |
说明 |
外部实体标识 |
唯一区分外部业务使能部件的标识 |
协议类型 |
例如SMAP、ISMAP、BSMAP等等 |
协议版本 |
1.0 |
ServiceName |
实现具体协议栈编解码的service name |
所述接入层还设置有信息查找模块,用于在系统启动时读取系统中存储的配置文件,根据业务使能部件标识获取对应的协议栈对应协议类型。
本发明提供一种支持多个协议栈的方法,其操作流程如图3所示,具体包括如下操作:
步骤1:系统启动,接入层读取配置文件,获取所有业务使能部件和协议类型对应关系信息,如下表1中的外部实体标识与协议类型的对应关系:
外部实体标识 |
协议类型 |
SMS GW1 |
SMAP |
SMS GW2 |
ISMP |
WAP GW1 |
SMAP |
系统启动时,协议栈自动向接入层注册所述对应关系,如下表2:
协议类型 |
协议版本 |
协议栈的Servcie |
SMAP |
1.24 |
SMAPService1.24 |
ISMP |
1.1 |
ISMPService1.1 |
SMAP |
1.3 |
SMAPService1.3 |
步骤2:系统启动成功后,业务使能部件发送登录请求消息给接入层;
所述请求消息中携带有业务使能部件标识、支持的版本号等信息;
步骤3:接入层接收到所述登录请求消息后,信息查找模块根据所述请求消息中的业务使能部件标识,在上述读取的配置文件中查找对应的协议栈对应的协议类型,返回与业务使能部件请求相同或最接近的版本号;
系统此时会对接入层中保存的下表3进行维护:
外部实体标识 |
协议类型 |
协议版本 |
SMS GW1 |
SMAP |
1.24 |
SMS GW2 |
ISMP |
1.1 |
WAP GW1 |
SMAP |
1.3 |
结合表2和表3,得到一张完整的表4,保存所述外部业务使能部件与协议栈对应服务的对应关系如下表4:
外部实体标识 |
协议类型 |
协议版本 |
协议栈的Servcie |
SMS GW1 |
SMAP |
1.24 |
SMAPService1.24 |
SMS GW2 |
ISMP |
1.1 |
ISMPService1.1 |
WAP GW1 |
SMAP |
1.3 |
SMAPService1.3 |
根据上表可以找到与登录的外部业务使能部件对应的特定协议栈的服务;
步骤4:外部业务使能部件发送业务处理消息到接入层,接入层根据所述维护获得的表4,调用特定协议栈层的解码服务,请求解码,即,将所述请求消息转换成内部消息,之后发送到业务逻辑控制层;
步骤5:业务逻辑控制层接收到所述消息后,进行相应的逻辑处理;
主要是根据业务请求完成相应的业务操作处理;
步骤6:业务逻辑控制层完成相应逻辑处理后,返回内部应答消息给协议栈层,包括处理结果;
步骤7:特定协议栈层对所述应答进行编码服务,之后将其返回给接入层;
步骤8:接入层将所述应答消息返回给业务使能部件。
下面以具体实例对本发明进行说明:
假定目前有两个短信网关SMS GW1和SMS GW2,分别支持SMAP1.24和ISMP 1.1,另外有一个WAP网关WAP GW1,支持SMAP1.3,并且当前DSMP支持四种协议SMAP1.24、SMAP1.3、ISMP1.1、BSMAP1.0。
DSMP启动时,读取配置文件,获取所有业务使能部件和协议类型的对应关系信息,同时,系统支持所有协议栈向系统注册协议类型与协议版本及协议栈的服务的对应关系。当接收到有三个网关需要作为客户端连接上来时,三个网关首先发送登录消息,接入层获取三个网关的标识,及分别支持的协议类型和协议版本。DSMP需要维护外部实体到协议栈服务的映射表,获得如下表的对应关系信息:
外部实体标识 |
协议类型 |
协议版本 |
协议栈的Servcie |
SMS GW1 |
SMAP |
1.24 |
SMAPService1.24 |
SMS GW2 |
ISMP |
1.1 |
ISMPService1.1 |
WAP GW1 |
SMAP |
1.3 |
SMAPService1.3 |
当SMS GW2发送SMAP业务操作消息时,会上报外部实体标识SMSGW2,接入层可以找到协议栈层唯一的ISMP Service1.1对应,然后ISMPServcie1.1对请求消息解码,转换成内部消息,发送到业务逻辑控制层处理;业务逻辑控制层处理完后,返回处理结果给ISMP Service1.1,应答消息编码,返回给接入层,接入层把应答透传到SMS GW2。此过程为SMS GW2的消息处理过程,其他外部接入部件的操作过程同理。
综上所述,本发明通过在接入层预先设置业务使能部件与协议栈的对应关系,并采用协议栈层向接入层主动注册的方式,实现了系统接入层同时支持多个协议栈。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。