移动网数据库系统接口协议分析
扫描二维码
随时随地手机看文章
1 设计背景
NP是Network Processor的缩写,意为网络处理器。络处理器器件内部通常由若干个微码处理器和若干硬件协处理器组成,且多个微码处理器在NP内部并行处理,通过预先编制的微码来控制处理流程。对于某些复杂的标准操作,如内存操作、路由表查找算法、QoS的拥塞控制算法、流量调度算法等,则采用硬件协处理器来进一步提高处理性能,从而实现了业务灵活性和高性能的有机结合。
在我国开始实施的移动网间号码携带(NP:Number
Portability)现网试验,目前NP主要用于网络骨干设备和网络接入设备,用来开发从网络第2层到第7层的各种服务和应用。目前,采用NP处理分组交换的厂家,既有第一梯队的网络公司,如思科、北电和朗讯等,也有不少后起之秀,如华为、中兴、港湾等。但是,其NP用途却不尽相同:思科宽带汇聚系列产品使用了思科的并行快速转发(PXF)NP,它被业内称为“NP的鼻祖”;华为在“第五代路由器”NE80/40/20系列产品中全面采用了NP;港湾的高端路由器、核心交换机,如NetHammer G系列采用了NP相关技术;UT斯达康公司选择了Motorola的NP作为几项3G无线接入网产品的封包转发引擎。采用了一种集中数据库的方式,即在号码携带业务网络中设置一个集中的数据库,也称为集中业务管理系统(CSMS:Central Service Management System),运营商的号码携带业务节点通过此集中数据库系统进行通信,实现号码携带的业务协商及NP数据下发。此体系结构如图1所示。
图1 NP业务体系架构
本地业务管理系统(LSMS)保存本地的号码携带数据,并负责管理运营商内部的网元设备;业务受理系统(SOA)主要负责受理和处理用户提出的号码携带申请;而CSMS处理所有SOA之问的交互信息,并负责向LSMS同步号码携带数据。
2 设计原则
在开始进行CSMS接口协议设计之前,首先拟定了如下的几条设计原则,协议的具体内容也都是遵循这几条原则进行设计的。
(1)满足各种NP业务流程的需求
这一条是最基本的设计原则。由于此接口协议是直接服务于NP业务流程,因此通过协议定义的各种流程,都与实际的NP业务需求相对应。例如NP业务开展的第一步就是受理NP申请,在协议中就定义了与之对应的规范化的流程。
(2)协议有较高的可靠性
提出这点原则,是与协议的应用环境有关的。一方面,运营商侧的NP业务节点以及CSMS都是IT设备,基于TCP/IP的网络环境进行信息传输,网络可靠性并不高;另一方面此协议对于NP业务体系又至关重要,一旦出现问题会影响NP业务的正常开展,这就需要在协议可靠性方面做一些特殊的考虑。
(3)易于开发和维护
一个易于开发和维护的协议将拥有更强的生命力。CSMS接口协议虽然是一个自定义的协议,但是自定义的部分主要是在应用层,在基础承载协议还会选择现成的协议。
下面将会逐一介绍上述设计原则是如何体现在CSMS接口协议中的。3 业务流程设计
为了实现完整的NP业务,在接口协议中共定义“NP业务申请流程”、“NP业务生效流程”、“NP业务取消流程”、“NP业务注销流程”、“NP业务审计流程”、“欠费处理流程”等6大类的业务流程。而在每一个大类中,基于正常的或者可能出现异常的情况,还定义出了若干的子流程。
在CSMS接口协议业务流程中,两个主要元素就是“消息”和“定时器”。下面就以成功的NP业务申请流程为例说明CSMS接口协议中的流程设计思路,以及消息和定时器的定义方法(图2)。
图2成功的NP业务申请流程
从图2可以看到,携入方SOA首先需要将用户的申请信息发送给CSMS,CSMS响应后转发给携出方SOA,SOA验证通过后,将响应结果返回CSMS,并由CSMS告知携入SOA申请成功。
在流程图中,每一条消息(申请请求、申请响应、申请结果告知)都对应一种消息结构,用于传递相应的信息。例如,在申请响应消息中,就包含了“消息ID”、“请求消息ID”、“消息命令码”、“业务类型”、“NP号码”、“NP流程ID”、“返回代码”、“拒绝消息”等参数字段。每个参数的用法、长度、数据类型在协议中也都进行了严格的定义。比如“消息ID”是由发送方维护的流水号,用于唯一标识的消息,采用l6位的定长字符串的方式来存储和传递。
除了消息,另一种对流程影响非常大的元素就是定时器。可以说,定时器严格的限定了NP业务节点的行为方式。在图2中,Tl-1定时器是申请请求与申请响应之间最大间隔的定时器,此定时器要求CSMS在收到申请请求消息后,必须在T1-1超时之前发送申请响应消息;而携入方一旦在T1-1的时间内没有正确地收到申请响应消息,将会进行重发和告警。
4 协议高可靠性的设计
为了提高CSMS接口协议的可靠性,在设计过程中引入了以下三种机制:
·ACK快速反馈机制;
·完善的错误定义和后处理机制;
·心跳检测机制。
首先,在CSMS接口协议中,定义了一种特殊的消息,称为ACK消息。在业务节点接收到任何一条NP消息后,将首先返回一条ACK消息。ACK消息不携带任何应用层面上的信息,仅仅是告知发送方我已经接收到了你方发来的消息。有了ACK消息,发送方就能立刻确认对方是否已经正确地接收到了消息,而不是在等待对方超时仍然没有返回响应消息时才发现上一条消息对方并没有正确接收到。通过使用ACK机制,无疑是提高了协议的可靠性。
其次,在CSMS接口协议中,定义了50多种错误消息代码,并且根据实际应用情况,还有可能继续扩充。这些错误消息代码的定义,最大程度上细化了NP业务中可能出现的异常情况,而细化的结果就是针对每一种错误情况都定义了完备的后处理机制。例如当消息发送方收到的ACK消息中携带“500”(接收方服务器异常)错误代码,则发送方应在五分钟后使用新的MessageID号重发此消息。
最后,CSMS接口协议中还定义了心跳检测机制,CSMS会定期通过网络层的消息(例如Ping消息)检测对端的健康状态。一旦发现与对端之间的网络出现问题,则暂停发送消息,避免在网络故障时出现大量重发消息的堆积。5 底层承载协议的选择
CSMS接口协议是一种自定义的协议,但是自定义的部分主要是为了实现NP特有的业务流程,即自定义了各种消息和定时器。而从协议的网络模型上看,接口协议然是构建于一些底层的承载协议之上。CSMS接口协议的层次结构如图3所示。
图3 CSMS接口协议层次结构
采用以上这种协议架构,是基于CSMS接口协议的网络环境决定的。CSMS接口协议需要应用于TCP/IP的网络环境之下,在此网络环境下,HTTP协议具有最强的适应性,可以很好地解决私网穿越、防火墙隔离等问题。TCP/IP(Transmission Control Protocol/Internet Protocol)的简写,中文译名为传输控制协议/因特网互联协议,又叫网络通讯协议,这个协议是Internet最基本的协议、Internet国际互联网络的基础,简单地说,就是由网络层的IP协议和传输层的TCP协议组成的。TCP/IP 定义了电子设备(比如计算机)如何连入因特网,以及数据如何在它们之间传输的标准。TCP/IP是一个四层的分层体系结构。高层为传输控制协议,它负责聚集信息或把文件拆分成更小的包。低层是网际协议,它处理每个包的地址部分,使这些包正确的到达目的地。
而使用SOAP协议,简单对象访问协议,简单对象访问协议(SOAP)是一种轻量的、简单的、基于 XML 的协议,它被设计成在 WEB 上交换结构化的和固化的信息。 SOAP 可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议( HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)。它还支持从消息系统到远程过程调用(RPC)等大量的应用程序。
诚然,TCP/IP网络和HTTP协议在先天上都具有可靠性不够强的缺陷,但是作为主流的应用协议,基于它们进行协议开发,能够大大降低开发周期和开发难度,自然也就提高了协议的易用性和可维护性。而对于可靠性不高的问题,也可以通过各种提高可靠性的机制加以弥补。
6 结语
从内部测试和试运行的情况来看,这套协议基本达到了当初的设计目标,能够很好地支撑各种NP业务流程。