APP下载

SCP网元模拟器的应用设计

2012-07-01涂昀邢玉飞

电信工程技术与标准化 2012年11期
关键词:网元模拟器线程

涂昀,邢玉飞

(中国移动(深圳)有限公司,深圳 518048)

SCP网元模拟器的应用设计

涂昀,邢玉飞

(中国移动(深圳)有限公司,深圳 518048)

为满足NGBOSS规范验收本地化测试需要,同时避免因各集成商自带测评工具不兼容而造成的测评标准不统一的问题,本文提出一种基于分布式思想的SCP网元模拟器的应用设计方案,通过模拟SCP网元接口同BOSS系统之间的报文交互,验证待测系统的功能和性能指标。该方案已在实际工作中验证可行,大大降低了测试成本,有效提高测试效率。

BOSS;本地化测试;SCP模拟器;分布式

SCP(Service Control Point,业务控制点)是决定呼叫业务如何处理的智能网网元,它通过同BOSS(Business & Operation Support System,业务运营支撑系统)欠费风险控制接口间的交互,基于底层DCC协议组装和解析交互报文,实现对话音和短信业务的实时欠费风险控制。

在当前的NGBOSS规范验收测试过程中存在以下问题和难点:一、若在实际生产网上进行测试,虽然可以达到测试结果的真实性,但在进行集中测试时,会影响生产网的用户使用;二、若部署多个实体网元用于测试,则成本太高,且不易操作,需要专门的人员进行维护,造成资源的浪费;三、各集成商厂家自带的测评工具无法相互兼容,不能保证测试结果的公平公正。本文针对此现实问题提出并设计SCP网元模拟器,旨在通过模拟SCP网元接口实现同待测BOSS系统间的报文交互,以验证待测系统的功能和性能指标,从而有效支撑本地化测试,降低测试成本,提高测试效率。

1 系统整体架构

在现网生产环境中,BOSS系统通常部署在高性能的专用小型机上,考虑到SCP模拟器同BOSS系统部署环境配置上的差异,防止测试过程中的瓶颈出现在模拟器处理报文速度上,在设计阶段借鉴分布式处理的思想,通过在多台服务器上分别部署SCP模拟终端向待测BOSS系统发送请求报文产生压力,多个模拟终端通过统一的控制端进行配置和最后的测试结果统计展示,即整体上采用Controller-Agent架构,如图1所示。

2 核心功能设计

2.1 Controller端设计

将除了同BOSS系统交互外的所有功能模块抽取出来组成Controller端,包括通信配置、模板配置、报文配置、任务调度模块和结果统计等模块。

图1 SCP模拟器系统拓扑结构图

通信配置模块可配置BOSS系统的IP地址和访问端口。支持初始的网络情况验证功能,如Ping、Telnet端口验证等方式,配置完成后可检测所配主机地址是否连通。

为了方便生成测试数据,系统通过配置和选择已有报文模板快速跳转到报文内容编辑流程,在编辑报文时,报文字段包括公用字段(本次测试中所有任务该字段的值均相同)和变量字段(本次测试中该字段的值在每个任务中是可变的),支持从数据池,如CSV文件中读取大批量的报文字段数据生成批量待发送报文记录数据,以便后续统一封装生成SCP同BOSS系统交互所要求的DCC协议报文。

在任务调度模块,可配置本次测试的并发用户数、持续时间、循环次数等指标,同时,可添加测试终端,并自定义各终端的任务占比实现多终端同BOSS系统之间简单的分布式任务处理逻辑。

测试完成后,通过结果统计模块生成相关统计报表,并支持Excel等格式输出,具体如图2所示。

2.2 Agent端设计

Agent端作为SCP模拟器执行终端,承担了与BOSS系统直接交互的核心工作,也是本模拟器的核心模块。在接收到Controller端发送的任务执行指令后,各终端独立执行,读取任务配置文件,生成初始待发送报文,构造并发请求,同时存储交互过程中的中间报文数据,用于后期的数据结果统计。在保证同待测系统之间正常的报文交互前提下,为有效提高系统性能,设计出3个数据队列和4个主要处理线程协调工作的内部逻辑方案,具体如图3所示。

2.2.1 系统数据队列

待发送报文队列:缓存待发送的业务请求报文和请求响应报文;

中间报文队列:缓存接收到的BOSS侧响应报文;

数据库中间队列:缓存交互报文信息,用于批量数据存储。

2.2.2 主要处理线程

解析报文线程:作为系统队列资源的调度中心,负责DCC协议报文的封装和解析,读取任务配置文件中的报文内容封装成请求报文,同时解析BOSS侧的响应报文构造下一次交互过程中的请求报文;

发送报文线程:不断从待发送报文队列取出DCC协议报文,然后通过字节流方式发送至BOSS侧,并将交互信息提交至数据库存储队列;

图2 SCP模拟器Controller端处理流程图

图3 SCP模拟器Agent端处理流程图

接收报文线程:不断从网络层缓冲区中读取BOSS侧的响应报文,将接收报文暂存到中间报文队列的同时,通过内部处理将后续交互报文提交至待发送报文队列;

数据库处理线程:通过数据库层的批处理操作将中间报文队列信息持久化到后台数据库表中,便于后续统计分析,减少频繁的数据库I/O操作,提高性能。

上述4个后台线程完美地配合3个数据队列,各司其职,并发执行,可充分利用测试终端的主机性能,使用Socket长链接方式同待测BOSS系统交互,符合现网中的BOSS系统同外部网元间的网络连接要求,有效地进行功能和性能测试。

2.3 交互接口设计

从上述两个章节可以看出,Controller同Agent之间的数据交互主要通过任务配置文件,此文件除报文字段信息外,还需包含系统初始阶段在通信配置模块中所配置BOSS端系统的IP地址和访问端口,任务调度模块所配置本次测试的并发用户数、持续时间、循环次数等指标和测试终端信息以及任务占比。Agent端接收到此任务文件后,能够快速解析,根据各字段内容构造一定量的并发请求,并同BOSS系统建立连接,实现报文交互。为了方便理解和程序快速解析,特使用XML文件形式配置任务信息,商定有具体意义的节点元素名称记录各字段信息。

3 测试实践

同一个网段(172.16.0),配置SCP模拟器同内部现有BOSS测试系统交互,并返回响应报文。在SCP模拟器侧发送请求报文,接收响应报文,并将所有实时交互信息在数据库上进行存储。

内部现有BOSS测试系统主机配置如表1所示。

BOSS侧相关业务配置信息如表2所示。

表1 BOSS测试系统主机配置表

表2 BOSS侧业务配置表

Agent终端JVM启动参数为:-Xms512m-Xmx 1024m,设置每个报文的通话时长为180s,针对Agent端的每次请求,BOSS侧最多只能分配60s的时间片(体现实时欠费风险控制),即系统启动60s后同BOSS侧的交互报文基本趋向稳定。在此前提下,通过不断增加并发用户,监控到的SCP部署主机后台性能结果如表3所示。

表3 SCP单Agent性能测试结果

为了实现尽可能快的发送和接收报文速度,设计开发阶段把对报文的解析和存储操作交给单独的线程去处理完成,所以测试过程中监控有大量的执行线程,考虑到CPU需要保证部分资源来管理和调度大量的后台线程,则75%的CPU使用率也是比较高的。同时,也有大量线程间调度管理的原因,所以模拟器后台数据库中每秒发送和接收报文的统计数据也并不是完全准确的,仅作为参考。

综上所述,如测试场景中的配置信息描述,单Agent执行终端在存在数据库操作的情况下,最大可保证1500~2000个并发请求的要求。针对实际生产环境下在线计费并发消息为4000~6000左右,使用2~3台普通PC机即可配合完成相关的性能测试任务。

4 结束语

通过在某通信运营商2011年NGBOSS规范验收测试过程中,同多家集成商BOSS系统具体测试过程的实施(功能测试、压力测试、8h稳定性测试等),所设计开发的SCP模拟器较好地满足了在测试本地无实体网元情况下对BOSS系统功能和性能测试需求,测试结果和各统计项也在集成商能够接收的误差范围内,有效地保证了测试工作顺利开展,同时避免了因各集成商自身测评工具不兼容而造成的测评标准不统一问题,为测试结果的公平公正和合理性提供了有力支撑。

Application design of SCP simulator

TU Yun, XING Yu-fei
(China Mobile (Shenzhen) Limited, Shenzhen 518048, China)

In order to meet the needs of the localized testing for NGBOSS specif i cation and avoid the diversities testing standard caused by incompatibility between different integrators’ evaluation tools, this paper presents a method called SCP simulator which based on distributed processing. By analogizing message exchanges between the SCP nodes and BOSS, this method verified the functional and performance indexes as well. The method has already been proved to be feasible through practically verifying and seen a dramatic reduction of cost as well as increases in testing eff i ciency.

BOSS; localized testing; SCP simulator; distributed

TN929.5

A

1008-5599(2012)11-0005-04

2012-09-16

猜你喜欢

网元模拟器线程
了不起的安检模拟器
基于C#线程实验探究
盲盒模拟器
划船模拟器
基于国产化环境的线程池模型研究与实现
一种全网时钟同步管理方法
浅谈linux多线程协作
动态飞行模拟器及其发展概述
Java EE平台在综合网元管理系统中的应用研究
S1字节和SDH网络时钟保护倒换原理