本发明的目的是为了克服现有联机计费装置存在的缺陷,把计费装置的大部分功能从MSC中分离出来,由计费服务器来完成,以减轻前端MSC业务主处理机的负担,增强计费功能的可扩充性、系统配置的灵活性,提高联机计费装置的稳定性,
本发明所述联机计费装置的结构采用硬件与软件相结合的方式,把计费功能从MSC业务主处理机分离出来,由相对于MSC业务主处理机而言独立的计费服务器来完成。
所述联机计费装置包括:移动交换中心(MSC)的业务主处理机和计费服务器1和计费服务器2,以及路由器;
所述计费服务器1和计费服务器2通过基于TCP/IP协议的局域网(LAN)与业务主处理机连接;
所述计费服务器1和计费服务器2之间通过心跳线相互连接,并且计费服务器1和计费服务器2各自分别与磁盘阵列连接;
移动交换中心(MSC)的业务主处理机包括受控于主控制单元(CP)的计费话单采集部件(BIAS),所述计费话单采集部件(BIAS)的输出通过基于TCP/IP协议的局域网(LAN)分别与两计费服务器相连;
所述计费服务器1包括依次相连的计费话单存储部件(BFSS)、计费话单数据接收部件(CDRR)、计费话单数据编码部件(CDRC)和文件传输访问管理部件(FTAM),所述文件传输访问管理部件(FTAM)的输出,通过局域网(LAN),由所述路由器送往计费中心,所述计费服务器2与计费服务器1结构相同。
如上所述移动通信网的联机计费装置,还包括与计费话单采集部件(BIAS)相连的冗余容错文件部件(RFTFS)。
如上所述移动通信网的联机计费装置,还包括直接与局域网(LAN)相连的告警服务器。
一种使用本发明所述移动通信网的联机计费装置的方法,其处理步骤如下:
(1)移动交换中心(MSC)业务主处理机的计费话单采集部件(BIAS)采集原始计费话单数据;
(2)移动交换中心(MSC)业务主处理机的计费话单采集部件(BIAS)和联机计费服务器(PC-SEVER)的计费话单数据接收部件(CDRR)之间采用消息方式传送计费话单数据,并采用带CRC校验的停等应答机制来保证网络传送不丢失、不重复、不错码;
(3)联机计费服务器(PC-SEVER)的计费话单数据接收部件(CDRR)接收来自BIAS的计费话单数据,完成对计费话单数据的分拣、有效性验证;然后将此数据送至计费话单数据编码部件(CDRC),计费话单数据编码部件(CDRC)将计费话单数据(CDR)按照既定的编码规则生成二进制码流送至BFSS;
(4)联机计费服务器(PC-SEVER)通过DDN专线或PSPDN线路将计费话单处理部件(BFSS)的计费话单数据编码文件上报计费中心。
所述联机计费方法在话单数据的处理步骤(2)中,当BIAS与CDRR之间消息传送发生障碍时,BIAS便把计费话单数据写入冗余容错文件部件(RFTFS),待BIAS与BFSS之间消息传送恢复正常时,再由业务主处理机将RFTFS中存放的计费话单数据读出,传送给CDRR。
联机计费服务器还包括管理所有计费服务器上运行的计费应用进程的监控步骤:
计费服务器正常启动后,首先通过配置文件读取应用进程的名字和其它属性,然后逐一启动这些进程,启动完成后,进入运行状态;
定时向各个应用发握手消息,如果等待一定时间仍未收到应答,就认为该应用进程已陷入死锁状态,向其发送WM_CLOSE消息令其关闭,关闭成功后再将其调起,若应用程序内部发生异常,则通过应用程序自身截获该异常,将该进程重启,以防止出现更进一步的异常。
本发明所述移动通信网的联机计费装置及方法,采用硬件与软件相结合的方式,克服了现有技术的缺陷,把计费功能从MSC业务主处理机分离出来,由相对于MSC业务主处理机而言独立的计算机服务器来完成,减轻了MSC业务主处理机的负担,可以方便地在计算机服务器上实现计费功能的扩充,增强了系统配置的灵活性;计费装置在业务主处理机上的BIAS部件和计费服务器上的CDRC部件之间的原始计费话单数据采取消息方式传送,采用带CRC校验的停等应答机制来保证网络消息传送不丢失、不重复、不错码。而计费服务器的硬件结构采用了廉价磁盘冗余阵列(RAID)技术和集群(CLUSTER)技术,采取双机在线守候的工作方式,大大提高了计费装置的稳定性。
下面结合附图,通过具体的实施例对所述联机计费装置作进一步详细描述。
一种采用所述装置及方法的移动通信网的联机计费系统如图4所示,它是一个省级移动通信网的联机计费系统结构图。MSC产生的计费话单数据通过局域网传送至计费服务器,传送采用基于TCP/IP协议的消息停等应答机制。在MSC中,配置一定容量的磁盘以提供RFTFS的物理介质,如2.1G。通过将Disk Array配置为RAID5,提高磁盘系统的容错性。计费服务器上运行双机软件和计费应用进程以及进程监控程序SerApp Manager,通过它们来实现服务器系统的容错性。告警服务器能够监控计费双机的运行状况,对发生异常而引起的倒换立即告警,对磁盘空间不足时立即告警,还可以通过人机接口发出倒换命令,同时通过Q3接口和上一级网管中心(OMC)连接。
下面对各部分的功能分别加以描述:
图1是移动通信网联机计费装置MSC侧结构图。省级计费中心负责从全省所有MSC中采集计费话单数据,采集协议使用标准的文件传输访问管理协议(FTAM),对MSC的采集周期≤15分钟。省计费中心与MSC之间的通信链路一般采用DDN专线。MSC所完成的计费功能是如下两点:
(1)产生计费话单数据,并在本地以文件方式存储;
(2)提供FTAM接口用于传送计费信息。
在呼叫处理部件所在的主处理机模块上,主要进行业务处理,将系统相对复杂、特别是存储需求庞大的BFSS独立成为另一个处理模块——计费服务器,从而减轻了主处理机的负担。而BIAS部件由于其与呼叫处理联系紧密,故将其归置于主处理机模块;这样BIAS在设计上可做到尽量简化,它只完成信息采集、转发和必要的容错功能。
另外还采用了冗余容错文件部件(RFTFS),它用于提供一种后备话单文件存储部件。当业务主处理机与计费服务器间的传输链路发生中断时,BIAS部件采集的计费信息被送至RFTFS暂时存储,待链路恢复,由BIAS将存储的文件再发往计费服务器。
计费服务器上的计费话单数据接收部件(CDRR)是与BIAS的接口部件,主要完成对计费信息记录的分拣、有效性验证。它的输出被送至计费话单数据编码部件(CDRC),CDRC将CDR按照一定的编码规则生成二进制码流,输出至BFSS。这种编码规则比较规范,符合ASN.1(抽象语法描述)的基本编码规则(BER)。BFSS是计费装置稳定性的核心,存储MSC侧计费装置的最终结果,通过FTAM部件的访问与计费中心进行文件数据交换,实现计费信息的上报。计费服务器的硬件一般采用PC SERVER级平台,操作系统可以采用UNIX或WINDOWS NT。
因为业务主处理机和计费服务器采用基于LAN的TCP/IP协议,就不能不考虑网络传输带来的传送阻断、拥塞和差错。如果对其不加以特别处理,就会导致话单丢失、话单错漏,严重的还可能导致业务主处理机系统崩溃。对此,采取如下措施:
(1)主处理机上的RFTFS被设计用来提供后援存储空间,当BIAS部件检测到发送缓冲区已满(可能是由于网络阻断或传输流量过大造成的拥塞)而CP部件仍有原始计费话单数据产生时,BIAS会调用RFTFS的访问接口,将这些原始计费话单数据保存到RFTFS中,当网络恢复正常时(当BIAS检测到发送缓冲区为空),BIAS会向RFTFS查询有无呼叫记录存储,如有,则将其读出到发送缓冲区中等待发送。这即解决了由于传输链路不畅造成的话单数据丢失,又不会使话单长期驻留在RFTFS而延误计费。如果网络长时间阻断,造成RFTFS占用超过80%(可设置),业务主处理机会产生告警信号提醒用户(局方)及时检查通信链路情况。
(2)业务主处理机上的BIAS部件和计费服务器上的CDRC部件之间的计费话单数据传送采取消息方式传送,采用带CRC校验的停等应答机制来保证网络消息传送不丢失、不重复、不错码。
上述停等应答机制的工作过程如下(在以下描述中,将BIAS称做发端,CDRC称做收端):
(1)发端保留一发送流水号,在将计费话单数据包发出时,该流水号附加于数据包中用以标明发送数据包。
(2)收端相应于每个发端(如果MSC有多个业务主处理机,属于多发端,单收端的情形)保留三种流水号:
ExpSeq[] 期待流水号
PrevSeq[] 最近一次收到的数据包流水号
UnExpSeq[] 意外收到的流水号
收到数据包后,依次进行下列处理:
a)将数据包中发送流水号与收端程序中保存的PrevSeq[Module]相比较。若相等,则认为该数据包是重发包,收端程序已收到过该包,只发应答消息,不再接收此包;若不相等,则继续检查。
b)将数据包中发送流水号与收端程序中保存的ExpSeq[Module]相比较。若相等,则认为该数据包是正确的,于是接收该包,并更新ExpSeq[Module]、PrevSeq[Module],发应答消息;若不相等,则进一步处理。
c)将数据包中意外发送流水号赋给收端程序中的UnExpSeq[Module]。收端于是向发端发送一个带UnExpSeq[Module]的要求确认意外包是否是正在发送的数据包的消息。发端收到要求确认的消息后,再向收端发送确认意外包正确与否的消息,收端若收到确认为正确的消息后则接收该包,并更新ExpSeq[Module]、PrevSeq[Module],发应答消息;反之,不更新ExpSeq[Module]、PrevSeq[Module],直接发应答消息(应答流水号为UnExpSeq[Module])。
(3)发端收到应答消息后,将应答消息中所带流水号与本程序中所保存的发送流水号相比较。若相等,则认为该包已为收端接收到,可以继续发送下一数据包,于是更新发送流水号,即循环累加流水号(0~32767);若不相等,则认为收端未接收该数据包(有可能是因为CRC错,序号错等原因),需要重发。发端对所有的重发包,都打上重发标记。
(4)下面讨论几种异常情况:
a)若数据包在到达收端之前丢失,收端未接收到数据包,将不会发出确认消息,则发端将超时重发此话单数据包,流水号不变。重发成功后,收端将根据流水号接收该包。
b)若收端已收到数据包,并发出确认消息,但确认消息在途中丢失,则发端将超时重发此数据包,收端将根据流水号判别该重发包,只发应答消息,并不再次接收该包.
c)发端重启(指重新启动)时,在内存中尚未向收端发送的数据将无法恢复。此时,它向收端发送的第一个数据包肯定是收端从未接收过的。因此,发端重启时把流水号初始化为-1。收端收到流水号为-1的数据包总是接收,并更新ExpSeq[Module]、PrevSeq[Module],发应答消息。
d)收端重启前,可能发端未向收端发新数据包(不重发)、也可能发端已经向收端发了数据包但收端没有收到(重发)、也可能收端已经收到了但还没有发送应答消息(重发)、也可能发了应答消息但丢失了使发端收不到到应答消息(重发),因此收端重启后,收到的第一个数据包如果是重发包,则是可疑的。对于收端重启的可疑话单数据包,分两种情况来处理:
(i)重启前为正常退出(如发现停电、UPS告警等紧急情况时,维护人员及时退出应用程序、退出操作系统),此时,收端把重启前的流水号保存在文件里。重启后读出,与前台的发送话单比较,根据带流水号的停等应答机制,决定是否接收话单;
(ii)重启前为非正常退出(如未退出程序和操作系统就突然关机),这时,由于操作系统(UNIX,WINDOWS NT)采用缓冲区存文件,正在存储的一些话单必然会丢失,对重启后的可疑话单文件(重发包)采取直接丢弃的处理方式。这样做,主要考虑了处理器处理速度问题,即流水号只在程序开始和结束时分别读写一次。而对于后台突然掉电丢话单,用户应该能理解。
e)发端主备倒换后,原主机的数据包将通过新机转发到收端。原主机将尚未发送的计费话单数据发给新主机。新主机收到原主机的数据包后,不拆包,保持模块号、重发标记等信息不变,直接转发到收端。收端收到原主机发来的数据包后,回应答消息也通过新主机向原主机转发。即新主机收到应答消息后,必须先判别该应答消息是发给自己还是发给原主机的,若是后者,则转发给原主机。这样,不管各发端如何主备倒换,对停等应答机制来说都可按单发端单收端的情况来处理。
图2是计费服务器的硬件结构图,采用了廉价磁盘冗余阵列(RAID)技术和集群(CLUSTER)技术。
磁盘阵列配置3块9G硬盘,支持热插拔,做成RAID5,实际数据空间为3×9×2/3=18G,用作话单文件的存储池。每台计费服务器上有各自的系统磁盘,系统软件安装在各自的主机上。
这项技术实现了在标准计算机系统上组建双机容错系统,从而大大降低系统数据丢失和停机的概率,提高系统运行的稳定性。
双机系统采用在线守候方式工作,工作状态下一台机器上运行计费服务器所有的应用,包括CDRR、CDRC、FTAM等部件,控制BFSS,称作主机。另一台机器则处于等待状态,没有任何计费应用在运行,只保持和主机必要的状态信息联络,称作备机。主备机上均运行双机监控软件,通过心跳线(如RS232口)负责双机状态监测与互通以及必要时的倒换控制。当下列情况发生时,双机监控软件会触发主备机系统倒换(Switch):
(1)系统软件或应用软件造成服务器系统宕机
(2)SCSI卡损坏,造成服务器对磁盘阵列无法存取资料
(3)服务器内硬件损坏,造成服务器宕机
(4)服务器不正常关机
(5)以太网卡损坏或网线断路造成网络通信异常倒换后,由原备机接管原主机的所有应用,而成为主机。原主机变为备机。
这样,通过RAID技术,提高了磁盘的容错能力,一旦某块硬盘发生损坏,数据不会丢失,由于RAID5硬盘均支持热插拔,可以实现在线更换;通过CLUSTER集群技术,提高了计算机系统的容错能力,无论是软件系统还是硬件系统发生故障,均可以通过主备倒换来实现不停机运行。
RAID5只有在二块以上硬盘同时损坏时才会导致数据丢失,而统计测试表明,现在一般硬盘的MTBF均达到180000小时以上,由此可以看出,RAID+CLUSTER集群技术的计费双机系统其稳定性是相当高的。
另外,在CLUSTER集群系统自身应用程序中存在死锁问题,例如,在计费服务器上存在的应用中,当计费话单接收程序出现死锁时(注意,此时服务器不一定宕机,CLUSTER软件也就无法感知),CLUSTER系统无法发起倒换。这样,业务主处理机上的BIAS不断产生原始话单数据,而服务器端的CDRC无法接收处理,也就容易造成话单数据不能及时传递到上级计费中心,极端情况当RFTFS系统空间耗尽时,还会出现丢失话单的严重局面。
为解决这一问题,专门设计了计费服务器监控程序SerApp Manager,其处理流程图如图3所示。
该程序管理所有计费服务器上运行的计费应用进程,当发现这些应用进程无法响应消息或出现进程内部异常时,SerApp Manager会发消息让应用进程重启。这样就解决了由于应用程序死锁而造成的系统隐患。
以WINDOWS NT系统举例如下:计费服务器正常启动后,SerApp Manager首先通过配置文件读取由它监控的应用进程的名字和其它属性,然后逐一启动这些进程,启动完成后,进入运行状态,SerApp Manager每隔一定时间(如3秒)向各个应用发握手消息,如果等待一定时间(如15秒)仍未收到应答的话,监控程序认为该应用进程已陷入死锁状态,会向其发送WM_CLOSE消息令其关闭(若关闭不成功则直接发Application Terminate消息),关闭成功后再将其调起。若应用程序内部发生异常,则通过应用程序自身截获该异常,将发生异常的信息在与SerApp Manager的握手消息应答中通知SerApp Manager,SerApp Manager也会将该进程重启,以防止出现更进一步的异常。
为了提高联机计费装置的稳定性,对整个联机计费装置还采用了监控技术。由MSC本地操作维护的告警系统监控,一旦发生故障,立即发出各种可视、可闻的声光信号。告警级别分为通知、一级告警、二级告警、三级告警、四级告警。
(1)当BFFS出现空间不足时,产生告警信号。根据所剩空间的大小(200M,100M,50M,可以设置),产生不同级别的告警信号。例如当空间<50M时(可以设置),产生一级告警,通过专用告警设备(告警箱)发出持续告警音。
(2)一旦业务主处理机与计费服务器之间通信链路发生中断,立即告警。
(3)通过操作维护台,可以由操作员发起命令,控制CLUSTER的倒换。其最大好处在于操作员或工程人员在更换计费服务器软件版本或检测设备时,实现系统不停机。
(4)当计费服务器由于种种异常原因而倒换时,会通知告警模块,告警模块也会产生告警信号,提示用户某台服务器可能出现故障。
在计费传输上采用双网技术。由计费服务器通过FTAM协议向计费中心实时传送话单。计费服务器与计费中心链路采用双备份,其一是通过DDN传输;其二是当DDN链路发生故障时,启动PSPDN传输。当然,也可以根据用户的要求全部采用DDN传输或者PSPDN传输。
由此可见,整个系统结构从软件到硬件都考虑了容错机制,从而最终保证计费装置的高可靠性、高稳定性要求。由于业务主处理机和计费服务器的分离,保证系统具有良好的可扩充性,满足运营商一些特殊计费要求,例如增加支持热计费(Hot Billing)的CMIP协议等等只需在计费服务器上增加一个CMIP软件模块即可,而业务主处理机无需作任何修改。英文缩略语注释:BER: 基本编码规则BIAS: 计费话单采集部件BFSS: 计费话单存储部件CMIP: 公共管理信息协议CDRR: 由计费话单数据接收部件CDRC: 计费话单数据编码部件FTAM: 文件传输访问管理协议RFTFS: 冗余容错文件部件MSC: 移动交换中心OMC: 网管中心PC-SERVER: 联机计费服务器RAID: 廉价磁盘冗余阵列RFTFS: 冗余容错文件部件