图1给出软交换机的4个关键性的子系统:协议栈子系统,协议转换子系统,通用协议子系统和通用模型子系统。通用模型子系统与5个呼叫相关的通用协议子系统通信,这5个通用协议子系统分别对应5个协议组。这5个子系统分别是通用呼叫控制协议子系统,通用业务控制协议子系统,通用呼叫承载控制协议子系统,通用移动性管理协议子系统和通用AAA(Authentication,Authorization,Accounting)协议子系统。协议转换子系统将每种特定的协议转换成相应的通用协议。协议栈子系统根据不同的通信协议可进一步划分为特定协议栈的子系统,这些特定协议栈子系统也可以大致划分为5类。
图2给出通用协议的PDU(Protocol DataUnit)格式来达到统一性,适用于各种通用协议。其中翻译与封装并用的思想借鉴了SIP-T(Session Initiation Protocol for Telephony)协议。协议数据单元的设计以翻译为主,封装为辅。翻译保证了大部分有用的需要转换的参数可以方便地获取,实现高效性,封装则保证了信息的完整性,以备特殊参数的需求,实现可扩展性。
设计通用协议的好处主要有以下几点:
可以实现软交换机核心的协议无关性,软交换机的通用模型子系统只需处理五种通用的协议即可,不需要关心与外部功能实体实际采用的是何种协议;
可以实现软交换机的协议组件性,如果需要添加或删除某个外部协议,只需要通过对系统的配置增加或去掉相应的协议栈子系统和协议转换子系统;
降低了软交换通用模型子系统的设计难度;
协议转换,协议协作和协议配合是软交换机中的关键技术,在协议数量众多的情况下,采用通用协议作中介可以大大减少协议转换,协议协作和协议配合的数量。
在智能网体系中,SSF中的IN-SSM(Intelligent Network Service Switching Model)实现了一个业务控制模型,软交换中的通用业务控制模型可以参照该模型来实现。通用呼叫控制模型可以在Q.931协议中的网络侧的outgoing procedure和incoming procedure的状态机和INAP(Intelligent Network Application Part) CS-2 (Capability Set 2)BCSM(Basic Call State Model)的基础上进行设计。通用呼叫承载控制模型可以根据目前仅有的两种呼叫承载控制协议H.248和MGCP(Media Gateway Control Protocol)来设计。
根据软交换中协议关系定理,在呼叫控制协议组内存在协议转换关系,在呼叫承载控制协议组内存在协议协作关系,而在业务控制协议组,移动性管理协议组及AAA协议组内都存在协议独立关系。对协议组内的协议关系处理体现在通用协议子系统中,即通用协议PDU的翻译信息单元部分。对于协议独立关系,无需任何处理,即相应的通用协议PDU中的翻译信息单元为空。对于协议协作关系,在通用呼叫承载控制协议子系统中应该将需要在两种协议间传递的信息翻译为通用呼叫承载控制协议PDU中的翻译信息单元。对于协议转换关系,应该根据原子协议功能确定将哪些必需的信息翻译为通用呼叫控制协议PDU中的翻译信息单元。值得注意的是,以上有关协议关系的论述都是从系统外部的角度来看的,而从系统内部的角度来说,由于在目标系统中普遍采用了通用协议作为中介,每种特定的协议都需要与相应的通用协议进行协议转换。
根据软交换中协议关系定理,在业务控制协议组,移动性管理协议组,AAA协议组这三个协议组与呼叫控制协议组间存在协议协作关系,在呼叫承载控制协议组与呼叫控制协议组间也存在协议协作关系,在业务控制协议组,移动性管理协议组,AAA协议组这三个协议组与呼叫承载控制协议组间存在协议独立关系,而在业务控制协议组,移动性管理协议组,AAA协议组这三个协议组之间存在协议协作关系。对于这些协议组间的协议独立关系和协议协作关系的处理体现在通用模型子系统中,即各通用模型间消息的交互中。
具有良好的可扩展性是软交换机成功的关键,以下几点可以确保目标系统具有良好的协议可扩展性。
在呼叫控制协议组中采用间接协议转换而不是直接协议转换,便于今后新协议的加入;
同样还在其他协议组中采用间接协议协作或者间接协议配合,便于今后新协议的加入;
在协议栈子系统中删除一种特定的协议时,只需要删除相应的协议转换子系统,不会影响通用协议子系统和通用模型子系统。但如果这个即将被删除的特定的协议是本协议组内唯一的协议,则对应的通用协议子系统和通用模型子系统都需要删除;
在协议栈子系统中增加一种特定的协议时,如果该协议可以归属于现有的5类协议组中的一个组,则只需要同时增加相应的协议转换子系统而不需增加通用协议子系统和通用模型子系统,否则需增加相应的协议转换子系统,通用协议子系统和通用模型子系统;
通用PDU中的公共信息单元部分实现了通用协议的可扩展性;
通用PDU中的封装信息单元部分包含了被封装协议的原始PDU,当通用模型子系统需要处理未在翻译信息单元中出现的协议内容时,可以从这个原始PDU中提取,保证了尽量少地改动系统并尽快提供新的功能。
具有高可用性是对电信系统的一个基本要求,以下几点确保了目标系统能达到一个令人满意的可用性。
采用多进程方式,同样功能的进程间采用负荷分担的方式工作;
采用多机系统,同样的,物理设备之间也采用负荷分担的方式工作;
采用过载控制机制,防止在大话务量冲击下系统崩溃;
采用守护子系统对其他各个子系统进行守护,实现软件容错。