软交换INAP业务适配系统的设计实现

2010-05-15 00:29张建中
无线电通信技术 2010年3期
关键词:原语状态机智能网

张建中

(河北远东哈里斯通信有限公司,河北 石家庄 050081)

0 引言

在软交换技术推出之前,电信网上的智能业务很多都是由智能网(IN)提供的。随着公众电话网络(PSTN)向下一代网络(NGN)的逐渐演进,软交换设备正在逐渐替换原有时分复用(TDM)制式的交换设备。智能网做为电信运营商前期大量投入的投资不可能因为软交换的推出而一下子全部推翻不用,因此,软交换设备必须能够与原有智能网进行互通,并继承智能网原有的业务,从而最大程度保护运营商的前期投资。

软交换智能网应用规程(INAP)业务适配系统即软交换系统内用于与智能网通过INAP协议进行互通的子系统。通过INAP业务适配系统,软交换域内的各类用户仍旧可以使用智能网的各类语音业务,智能网内的业务控制点(SCP)设备仍旧可以对软交换域内的用户进行业务控制。

1 INAP业务适配系统工作原理

软交换系统在智能网的概念模型中,其地位相当于业务交换点(SSP),而业务逻辑则位于SCP。INAP是国际电信联盟的电信标准化局(ITU-T)制定的用于智能网各功能实体之间进行标准化通信的协议。INAP业务适配系统属于SSP内的一个功能实体,其目的是向SCP暴露标准业务接口。图1给出了INAP业务适配系统在SCP和SSP通信过程中所处的位置及其功能。

CS2A、SF、TCAPES是分别对INAP业务适配系统、呼叫控制系统、事务处理能力应用部分(TCAP)协议栈应用程序实例化的一个称谓。

CS2A是一个独立运行的程序,在运行时它需要与软交换系统的其他模块进行消息交互,共同配合完成与智能网的互通功能。与CS2A进行消息交互的2个关键进程是SF和承载INAP协议的TCAPES。SF相当于智能网中的SSF实体,TCAPES是7号信令网络的上层协议承载者。CS2A与SF通过私有协议进行通信,与TCAPES使用符合TCAP协议规范的TCAP原语进行通信,其中INAP协议信息单元包含于TCAP原语的参数之中。CS2A的主要功能即是负责将私有协议与INAP协议进行相互转换和映射。

图1 CS2A在SSP和SCP通信中的位置

SF负责将触发的业务信息上报给CS2A,CS2A将该消息转换为标准的INAP消息并通过TCAPES送达信令连接控制部分(SCCP)、消息传递部分(MTP)各层协议栈,直至到达SCP端的TCAP用户。反之,SCP端的TCAP用户发来的INAP消息经由CS2A转换为私有协议再传递给SF。

2 CS2A总体设计

2.1 系统设计要求

CS2A的设计除了要完成私有协议和INAP的准确映射外,还需考虑如下方面的内容:

①软件的模块化设计。要求软件必须进行合理的模块划分,模块内部的结构清晰易懂,各模块之间相对独立。这样便于检查错误,节省开发时间,可以提高软件系统的可修改性和重用性;

②软件的效率问题。为了能够满足大呼叫量的要求,软件必须提高运行效率。为了更好地提高软件的性能,在软件设计上,可以考虑采取内存审计、多线程,流水线等技术;

③软件的健壮性问题。为了保证软件能够健壮稳定的运行,需要采取TRACE(跟踪)处理、告警处理、呼叫统计、拥塞控制等措施;

④软件的可靠性问题。为了提高系统的可靠性,需要考虑软件的热冗余问题。

2.2 软件总体结构

图2给出了CS2A的软件结构以及与其相关的外部其他进程的关系。

图2 CS2A软件结构

CS2A分为3个子模块:核心模块(CORE)、远程业务接入管理模块(RSAM)和TCAP接口管理模块(TIM),其中CORE模块又划分为4个子模块:SF适配(SFA)、软交换管理进程(SSM)适配(SSMA)、命令及数据配置进程(CLH)适配(CLHA)、错误及日志管理进程(FM)适配(FMA)。

SFA负责把SF发来的私有消息转换成INAP消息,把RSAM发来的INAP消息转换成私有消息,完成对INAP消息的编解码处理,同RSAM一起维护一个存储业务对话相关信息的业务上下文块结构,维护资源连接状态机的状态。

SSMA负责处理来自于SSM的health_ping等管理消息。

CLHA负责处理来自数据配置管理系统CLH的数据消息。

FMA负责将TRACE信息、告警信息、统计信息等内容输出到错误管理系统FM。

RSAM负责将CORE发来的INAP消息单元承载到TCAP原语上,将TIM发来的TCAP消息中的INAP信息单元分离出来;同CORE模块一起维护一个存储业务对话相关信息的业务上下文块结构;负责向复制管理系统(RPM)发送主边信令点状态和系统冗余状态信息。

TIM负责系统向TCAPES进行注册;对TCAPES发来的消息的第一次解包处理、对RSAM发来的消息的最后一次装包处理;维护SF同SCP的对话状态机;负责处理定时器进程发来的时超消息。

3 关键功能及模块的实现

3.1 系统初始化

CS2A进程启动后在接收SF和TCAPES的消息之前需要做一系列的初始化工作。这些初始化工作主要包括:

①依据程序启动时传入的内存池参数创建内存池。内存池参数的设定是依据整个软交换系统的规模及业务量计算得出的;

②创建全局变量,并从内存数据库中读取程序运行必需的数据;

③初始化消息队列;

④从SSM获取其他相关模块的IP地址和端口信息;

⑤向TCAPES发送注册消息。

3.2 消息处理

ss_cs2a_process_msg_entry函数作为CS2A进程的消息处理主函数,负责对CS2A的外部消息和内部消息进行分拣(RPM进程发来的消息由于优先级较高,不进入该函数,直接调用其对应的处理函数进行处理)。

CS2A对外部消息按照其来源模块的不同,调用相应模块处理函数进行处理;

CS2A对内部消息按照其来源模块和目的模块的不同调用相应模块处理函数进行处理;

CS2A完成消息分拣后就进入各模块进行消息处理。各模块完成对消息的处理后,对消息进行发送,对内部消息的发送调用函数ss_cs2a_put_msg_in_q完成;对外部消息的发送调用函数mgc_send完成。

CS2A对各种消息的接收、分拣、处理和发送过程如图3所示。

图3 CS2A消息处理

3.3 CORE模块实现

CORE模块又由SFA、SSMA、FMA、CLHA 4个逻辑子模块构成,其中SSMA、FMA、CLHA 3个模块相较于CS2A进行私有消息和INAP消息转换的首要功能而言起到的是辅助的功能,因此,对其介绍较为简单。

(1)SFA模块的实现

在接收自SF的消息中,已经包含了一次业务交互需要的全部信息,此时SFA需要做的就是按照《YD 1226-2002智能网能力集2(CS-2)智能网应用规程(INAP)》中规定的编码要求进行信息编码。信息编码采用的是 ITU-T X.209建议中给出的BER(Basic Encode Rule)编码规则,该规则是依据抽象语法标记(Abstract Syntax Notation One,ASN.1)标准定义的一种传送文法。在ASN.1的编解码处理上,采用了Objective System,inc的ASN.1编译器工具,该工具提供的函数库可以被继承到系统内,通过调用其提供的编码函数可以把私有协议信息内容编译成为INAP标准格式,通过调用解码函数可以把RSAM发来的INAP消息解码后将其内容取出再转换为私有协议信息内容。

SFA使用业务上下文块结构来记录SF和SCP之间一次业务交互的相关信息,一个业务上下文块唯一对应一次业务事务交互。业务上下文块的维护是由RSAM和CORE共同完成的。事务ID是SF同SCP之间一次业务对话的唯一标识。事务ID的生成、存在和销毁过程如下:

①事务ID的生成。当SCP发起一次业务交互请求时,该消息传到RSAM,RSAM会生成一个事务ID来标识这次业务对话。另外,当SF发起一次业务交互请求时,SFA使用SF生成的一个唯一的事务ID来标识这次业务交互;

②事务ID的生存期。在SF和SCP的一次业务对话过程中,事务ID始终有效;

③事务ID的销毁。事务ID随着业务对话的结束而销毁。

在SF和SCP的一次业务对话过程中,可能同时存在多个资源连接状态机,一个资源连接状态机唯一对应一个业务上下文块中的cs2a ctx blk st类型的状态机上下文块。当SFA收到SCP的连接到资源的操作请求时,新建一个资源连接状态机,当销毁一个状态机时,同时销毁该资源连接状态机的上下文块。

(2)SSMA模块的实现

SSMA模块对来自于SSM的其他模块IP及端口消息、状态设置消息、健康查询消息、系统监控消息进行处理和回复。在CS2A初始化过程中,会收到SSM发来的其他模块的IP地址和消息接收端口的信息,SSMA会把这些信息写入全局变量中备用。在CS2A初始化完成后会向SSM发送初始化完成的消息,此时SSM回复将CS2A置为ACTIVE或者PASSIVE的消息,或者当CS2A运行在PASSIVE状态下时,也可能会收到将其置为ACTIVE状态的消息。SSMA每隔若干时间会收到SSM发来的health_ping消息,此时SSMA会回复OK的消息,同时触发一次内存审计检查操作,根据一定的算法来判断某些内存数据包是否已经不再使用但是并没有被释放,进而释放这些内存。当SSM发现系统发生拥塞时,会发系统监控消息给SSMA,此时SSMA会采取一定的算法来舍弃一些连接请求,并发送告警信息。

(3)FMA模块的实现

FMA模块提供一个统一入口函数,该函数负责将收集到的CS2A内的TRACE信息、告警信息、统计信息上报给FM模块。

(4)CLHA模块的实现

CLHA模块接收CS2A初始化时CLH发来的内存数据库加载完毕的消息,并在之后去进行数据读取;或者在CS2A运行期间,接收CLH发来的一些设置指令,例如打开关闭TRACE、对告警级别进行控制等。

3.4 RSAM模块实现

远程业务接入管理(RSAM)模块的功能是通过生成TCAP协议消息和远端SCP进行通信,转换TCAP原语消息、INAP消息,维护对话的状态,其处理方法如下:

①接受TIM发送的消息,该消息以TCAP原语形式表示,实际是SCP通过TCAP协议传送来的消息,此消息分为对话处理原语和成分处理原语。RSAM接受对话处理原语,维护对话;转换成分处理原语,将其转换为INAP的操作消息;

②接受CORE发送的消息,将其转换为成分处理原语,再根据消息的内容生成对话处理原语,向远端SCP发送;

RSAM到CORE的消息是INAP消息类型(实质为成分处理原语内容),RSAM到TIM为TCAP原语消息(包括成分处理原语和对话处理原语)。RSAM负责将CORE传来的内部消息转化为TCAP原语消息,将TIM传来的TCAP原语消息转化为内部消息;

RSAM和CORE模块共同维护全局变量哈希表,该哈希表中记载了事务ID和业务上下文块的指针。

RSAM模块同时负责将CS2A系统的处于稳态的会话和事务相关的数据包发送到RPM系统,并由RPM系统负责向高可用系统HA进行冗余数据的处理和向备边的CS2A发送。

3.5 TIM模块实现

CS2A在使用TCAPES提供的服务前必须向TCAPES注册,如果注册成功TCAPES会返回一个值唯一的log_user_id。

TIM和TCAPES之间的通信使用消息头+消息体的消息格式,其中消息头中包含了目的、源、消息长度、会话ID、log_user_id、call_id等信息,消息体部分是符合TCAP协议规范的消息内容。来自RSAM的消息在TIM模块进行最后一次装包处理,填充诸如目的地址、源地址、消息长度等信息,并进行消息的发送处理;对接收自TCAPES的消息,依据消息头中的信息将消息体部分解出,并对消息进行分发处理。

TIM还负责维护会话状态机。一个会话状态机唯一对应SF和SCP之间的一次业务对话,也唯一对应一个对话块。状态机随着对话块的创建而创建,随着对话块的销毁而销毁。状态机的状态信息记录在对话块的tdsm_state成员中,当新建一个对话块时,状态机初始状态为IDLE;当销毁一个对话块时,会检查状态机状态,如果不是IDLE则报错。状态机的状态变迁反映了对话从请求、建立到销毁的过程。

TIM对每个会话专门分配了一个定时器池,用以对这个会话范畴内的消息发送进行定时守护,如果等待回复消息的定时器时超,则做错误处理。

4 结束语

利用上述设计思想和实现思路,已经在某软交换系统的研发项目中将之进行了具体实现。经过反复测试,该系统符合《YD1435-2007软交换设备测试方法》中关于INAP的测试要求。该系统采用C语言和商用ASN.1工具完成,同时该系统的设计充分考虑了系统的模块化设计、运行效率、健壮性、可靠性等问题。该设计思想对于同类项目的研发具有很高的参考价值。

[1]YD 1226-2002,智能网能力集2(CS-2)智能网应用规程(INAP)[S].

[2]YD 1435-2007,软交换设备测试方法[S].

[3]王柏.智能网教程[M].北京:北京邮电大学出版社,2000:55-62.

[4]糜正琨,陈锡生.七号共路信令系统[M].北京:人民邮电出版社,1994:195-226.

猜你喜欢
原语状态机智能网
5G赋能智能网联汽车
基于有限状态机的交会对接飞行任务规划方法
智能网联硬实力趋强
迎战智能网联大爆发
密码消息原语通信协议介绍及安全分析
浅谈旅游翻译中文化差异的处理
基于SJA1000的CAN总线智能网桥设计
基于ZigBee协议栈的PHY服务研究
双口RAM读写正确性自动测试的有限状态机控制器设计方法
基于原语自动生成的安全协议组合设计策略及应用研究