毕业设计,毕业论文代写。专业水平。钻石水准,黄金品质。

计算机专业毕业设计,论文,设计代写。电邮:elevenor@gmail.com。专业水平,质优价廉。

原创 平台短信通道子系统设计收藏

新一篇: 经典算法设计方法大杂烩 | 旧一篇: Unix文件系统模拟实验报告+源代码+代码注释与分析

平台短信通道子系统设计


目 录

1.引言 1
1.1编写目的 1
1.2项目背景 1
1.3定义 2
1.4参考资料 2
2.系统功能概要 3
2.1系统拓扑图 3
2.2基本功能 3
2.2.1接口通信 3
2.2.2协议转换 4
2.2.3测试消息发送 4
2.2.4输出消息数据内存块 5
2.2.5跟踪显示单个手机号的信息 5
3.系统硬件配置需求 5
4.系统软件配置需求 5
4.1操作系统 5
4.2数据库 6
4.3开发语言 6
5. 系统结构及详细模块设计 6
5.1系统结构图 6
5.2内部模块详细设计 8
5.2.1 SOCKET通信基类 8
5.2.2接口通信管理类 9
5.2.3短信中心/网关协议管理类 11
5.2.4应用代理子系统Unidata协议管理类 13
5.2.5网关/短信中心通信socket实体 14
5.2.6应用代理子系统Unidata通信socket实体 15
5.2.7程序界面设计 16
5.2.8测试消息模块设计 18
6.系统INI配置文件设计 19
6.1系统INI配置文件逻辑结构 19
6.1.1网关/短信中心属性配置 19
6.1.2网关/短信中心连接参数配置 19
6.1.2短信通道属性配置 20
6.1.3应用代理连接参数配置 20
6.1.4监控中心连接参数配置 20
6.1.5软件狗属性配置 20
6.2系统INI配置文件物理结构 20
7.系统接口设计 21
7.1外部接口设计 21
7.1.1与网关/短信中心的接口 21
7.1.2与应用代理子系统的接口 21
7.1.3连接端口号规划: 21
7.2内部接口设计 21
7.3安全性设计 22
8. 系统故障的处理 22
8.1系统故障 22
8.2故障预防 22
8.3系统恢复方法 22
9. 工作量评估 22
10.短信通道子系统与应用代理子系统的通信协议:UNIDATA协议 23
9.1基本数据类型: 24
9.2消息结构 24
9.3消息头格式 24
9.4消息体格式 24
9.4.1 CTKP_CONNECT 24
9.4.2 CTKP_CONNECT_RSP 25
9.4.3 CTKP_DELIVERY 25
9.4.4 CTKP_MSG_REPORT 25
9.4.5 CTKP_SUBMIT 26
9.4.6 CTKP_SUBMIT_RSP 27
9.4.7 RECV_CONFIRM 27
9.4.8 CTKP_UNIDATA_ACK 27
9.4.9 CTKP_QUERY 28
9.4.10 TKP_QUERY_RSP 28
9.4.11 TKP_LINKTEST 28
9.4.12 TKP_LINKTEST_RSP 28
9.4.13 TKP_DISC 28
9.4.14 TKP_DISC_RSP 29
9.4.15 RROR_REPORT 29
 
1.引言
1.1编写目的
本文档是无线数据增值业务平台项目软件的短信通道子系统设计说明书,其目的在于建立短信通道子系统的整体结构;设计规划系统的逻辑结构;并规划短信通道子系统与电信网关或短信中心的通信协议处理以及与平台内部应用代理子系统的协议处理。
本文档是无线数据增值业务平台项目软件设计文档的一个组成部分。它是系统详细设计及编码工作的指南,是软件编程以及测试工作的依据。
本文档由无线数据增值业务平台软件系统短信通道子系统程序设计工程师编写,技术部领导和QA审阅。本文档的读者为无线数据增值业务平台项目的相关设计、编程和测试人员。

1.2项目背景
本短信通道子系统的研制是为无线数据增值业务平台提供一个高扩展性的,高可靠度的网关/短信中心通信产品。本短信通道是无线数据增值业务平台的一个重要组成部分,为整个应用平台系统提供通信协议处理服务,为平台到网关/短信中心的数据传输提供通道。短信通道系统的研制需要不断的升级,以适应网关/短信中心的通信协议的变化,以及平台内部及各无线增值业务应用体系对通信通道的最新要求。
无线数据增值业务平台要求本短信通道子系统具有高扩展性,高适应性,可应用于使用各种通信协议的各种不同的网关/短信中心。在现阶段,本短信通道可支持GSM3.4SMPP协议,中国移动CMPP协议,各个网关使用的专用协议,使用API的网关。
现阶段可支持的API有:东大诺基亚CMPP_API,亚信CMPP_API。
本系统将不断的更新,以支持更多的网关和短信中心。满足平台的需要,以及满足无线数据增值业务不断增长的业务需求。
1.3定义
在本短信通道子系统的开发过程中,通用术语按GB/T 11457 -《 中华人民共和国国家标准:软件工程术语》[02]。
下面列出短信通道子系统软件的专用术语。本项目人员在编写软件文档、程序和数据时,均以此为准。
//
// 以下列出短信通道子系统软件的专用术语。
//
网络:
操作系统:
配置文件:
Socket:
多线程:
应用协议:
协议接口实现:
SMPP协议:短消息点对点协议
CMPP协议:中国移动点对点协议
UNIDATA协议:无线数据增值业务平台内部通信协议。
短信中心:SMC,处理短消息与GSM网络的接口
电信网关:连接短信中心与接入实体的Internet网关。
1.4参考资料
[01] 中华人民共和国国家标准:信息技术 -- 软件生存期过程,GB/T 8566。
[02] 中华人民共和国国家标准:软件工程术语,GB/T 11457。
[03] 中华人民共和国国家标准 :计算机软件产品开发文件编制指南,GB 8567-88 。
[04] 无线数据增值业务平台v2.1:系统概要设计说明书。
2.系统功能概要
2.1系统拓扑图
下图显示短信通道子系统在整个无线数据增值业务平台系统中的位置。

 

图示结构中,虚线内部的部分为无线数据增值业务平台。从图中清晰的看出,短信通道作为平台应用代理子系统与网关/短信中心通信通道的功能。
2.2基本功能
本短信通道子系统主要实现平台与各种电信网关/短信中心的接入,完成从应用到平台再到电信网关或短信中心的通信,达到本无线数据增值业务平台统一电信资源、统一业务接入完成应用与电信网络通信的目的。
对不同的网关和短信中心使用与其协议对应的短信通道。现在可提供的对应协议有SMPP协议、CMPP协议、CMPP API等,短信通道提供对上述协议网关的可靠连接与可靠通信。
在使用时可以对流过本短信通道系统的消息进行SIM卡号跟踪。可以通过本软件人工模拟应用系统直接向移动端发送短消息。

2.2.1接口通信
本通道系统位于平台与电信GSM网络交互的最前端,主要完成无线数据增值业务平台与电信GSM网络的通信功能。
在平台的运行过程中短信通道子系统将应用代理子系统从应用端接收来的数据传送给电信网关或短信中心。同理,也将电信网关或短信中心向应用发送的数据传送给应用代理子系统,并由应用代理子系统分发给各个接入的应用,完成整个平台的通信功能。
在这个接口通信过程中,短信通道子系统完成双向数据透传功能,不直接处理网关或是应用代理子系统交给通道的数据。
2.2.2协议转换
由于本系统的主要功能是实现接口通信,因此,必须要实现的功能就是协议转换。本系统与电信网关或是短信中心使用同样的通信协议,系统将应用代理系统从应用接收到的数据进行协议转换,转换成网关或是短信中心可以识别的数据,即转换成网关和短信中心使用的通信协议,在这里主要是GSM网络的SMPP或CMPP协议,然后将数据发送给网关或短信中心。
同样,系统也将从网关或是短信中心下发的数据转换成平台可以识别的数据,并解析数据包,提取相关的数据组成平台内部使用的unidata协议包发送给应用代理系统,再由应用代理系统将数据分发给各个相关的应用系统。
2.2.3测试消息发送
本短信通道系统与电信网络的短信中心或网关直接连接,因此可直接通过短信中心发送测试短消息到移动终端。在界面上弹出数据输入对话框,要求用户输入要发送的测试消息体、发送目标对象手机号,短信通道子系统的测试消息发送子模块把要发送的消息转换成网关/短信中心需要的格式发送给网关/短信中心,再到移动终端。
测试消息发送功能可用于系统测试,也可用于直接向移动终端发送短消息。和消息跟踪功能联合使用查看无线数据增值业务平台短信通道系统是否正常连接电信网关/短信中心。
该功能的详细设计参照内部模块详细设计测试消息发送部分。
2.2.4输出消息数据内存块
本功能主要用于系统调试及运营过程中,察看短信通道接收和发送的数据在内存中的详细内容。此功能需要与短信通道专配的内存察看工具配合使用。提供确定系统是否正常运行的手段和调试过程中网关/短信中心下发数据的正确性验证。
短信通道专配的内存查看工具为一个单独的执行程序。该工具的设计说明不在本设计说明书范围之内。
2.2.5跟踪显示单个手机号的信息
本短信通道系统在使用过程中,可选择跟踪显示单个手机号的信息,本功能使用时其他手机号的信息均不输出,只输出错误消息、系统信息和本跟踪的手机号的相关信息。
此功能可在系统运营过程中随机察看通过本系统的手机号的信息,也可用于与测试消息功能一起使用,供运营维护人员掌握系统处理的实际情况。
3.系统硬件配置需求
本系统对硬件要求如下:
本短信通道程序需要在功能较强的服务器运行,需要保证一定的处理速度,因此CPU要求奔腾Ⅲ以上处理器,256M内存,保证系统缓存队列的长度,和足够的系统冗余度,使系统能够在长时间、大数据流量的情况下稳定、长期的工作。
本系统需要同其他子系统:应用代理子系统以及电信网关、短信中心通信,所以需要加装网卡以连通网络。网卡速度最好是100M bps,这样能够保证大量的数据在网上稳定、正确地传送。
4.系统软件配置需求
4.1操作系统
操作系统建议使用Windows 2000 Server,由于Windows 2000继承了Windows98和NT4的优点,并增加了系统安全性设计,尤其是域用户管理系统、身份验证、角色设置等一系列措施使得系统的稳定性和安全性有了一个很大的提高。而信息点播系统需要提供Internet接口,因此安全性也尤其值得重视。
4.2数据库
本系统使用配置文件不需要使用数据库。
4.3开发语言
开发语言使用 Visual C++ 6.0。Visual C++ 6.0以其强大的功能(如:线程启动方便等),方便的编程环境,健全的调试环境、高效的最终执行代码赢得了大多数开发人员的青睐。Visual C++ 6.0具有一个很好的编译器,它生成的编码比其它任何编译器生成的编码都简洁,执行效率高。平台系统需要很高处理速度,因此选用Visual C++ 6.0集成编译环境开发本系统。
5. 系统结构及详细模块设计
5.1系统结构图
系统结构使用分布式结构,面向对象设计,集中式调度处理。
系统结构如下图所示:
本系统结构主要是通信系统本身的逻辑结构,不含界面结构。由于本系统的主要功能是完成应用代理子系统与网关/短信中心的通信功能,因此在设计时将通信部分与框架界面剥离开来。界面设计部分由本设计说明书后面的系统详细模块设计程序界面部分来说明。
在本结构中,SOCKET通信实体负责与网关、应用代理子系统的连接以及通信,接口通信管理类负责管理接口通信的初始化、调度以及卸载。两个协议管理类负责相应的协议转化,并使用对应的SOCKET实体完成发送和接收数据包。
他们所有的数据输出都交给主框架窗口来处理。
 

 

5.2内部模块详细设计
内部模块的设计使用面向对象设计方法,按照不同的功能和应用将短信通道系统程序分成各个相对独立的模块来设计。同时封装通信socket类,其他通信接口类在这个socket基类上派生,完成不同的接口通信功能。封装通信接口管理类,提供类操作接口,系统中的协议管理类可在基类上派生,以完成实际的接口通信管理功能。
5.2.1 SOCKET通信基类
1、 功能说明:
封装SOCKET 通信接口,概括网关/短信中心通信SOCKET和应代理子系统通信协议Unidata SOCKET的一些共同的操作属性。其他通信实体类在此基础上派生,以完成各个不同的接口通信处理功能。
2、 设计思想:
由于本类需要完成的功能为封装SOCKET通信接口,为实现具体的接口通信提供SOCKET通信的共性,因此在设计上主要在本类完成SOCKET实体的创建,初始化,发送和接收数据流以及关闭SOCKET。并在连接断开后启动重连结线程,重新建立连结。同时提供相关的操作虚函数供继承类重载实现不同的方法。
3、 通信基类的属性设计:
SOCKET通信实体在通信中的角色:SOCKET CLIENT,本短信通道系统在SOCKET通信结构中对电信网关/短信中心来讲是作为通信客户端,在平台内部对应用代理子系统也是作为客户端程序。因此,在设计上,本SOCKET基类在初始化时是作为CLIENT初始化的。
本SOCKET使用Winsock 2.2类库。
本SOCKET使用TCP协议,传送数据流。初始化时参数:SOCK_STREAM。
4、 类接口设计:
 BOOL InitClientSocket(char* pServerIp,int nPort):初始化客户端的SOCKET,需要服务端的IP地址和端口。
 BOOL    CloseSocket(BOOL bNotClose=FALSE):关闭SOCKET。
 BOOL    SendMsg(char Buff[],int BufLen):发送消息函数,参数为数据包以及长度。 
以上函数接口为基类的操作函数,不需重载实现,继承类可直接使用这些接口实现继承类的功能。
 virtual BOOL ReceiveMsg(char Buff[],UINT BufLen):接收消息函数,传入得参数为缓冲区地址和数据包长度。
 virtual BOOL OnDisconnect():断开消息。
 virtual void OnReConnected():重新连接以后的事件。
 virtual void OnConnected():连接上以后的事件。
以上函数接口为SOCKET基类提供的虚函数接口,继承类需要重载这些函数,以实现不同的类方法完成不同的数据处理过程。
5、 异常处理流程:
与电信网关或短信中心连接异常中断后自动重新连接网关/短信中心。
5.2.2接口通信管理类
1、 功能说明:
统一管理所有的通信接口类以及通信接口类的相互调度。允许根据不同的网关/短信中心以及应用代理子系统根据情况进行重载此类的实现方法达到通信接口的统一调度、管理。
2、 设计思想:
本类的主要功能是统一管理通信接口对象实体,包括整个通信接口对象的创建、初始化、登陆连接以及关闭连接等相关操作。管理操作有网关/短信中心发送消息数据到应用代理子系统,以及应用代理子系统发送消息到网关/短信中心。
3、 类属性设计:
 BOOL m_bComActive:通信管理器的激活状态。

 CMSCRecvSocket*  m_pMSCRecvSocket:接收链路SOCKET通信类的类对象。
 CMSCTransSocket* m_pMSCTransSocket:发送链路SOCKET通信类对象。
 CUnidataSocket*  m_pUnidataSocket:应用代理SOCKET通信类对象。

 BOOL m_bAppAgentSocketInit:应用代理子系统的连接初始化状态。
 BOOL m_bSMCTransSocketInit:网关发送链路的初始化状态。
 BOOL m_bSMCRecvSocketInit:网关接收链路的初始化状态。

4、 类接口设计:通过函数接口与各通信实体通信。
 virtual BOOL InintCom():初始化通信管理器在默认的情况下,初始化两条链路。
 virtual void UnInitCom():释放通信管理器的资源,程序中止前调用。
 virtual BOOL InitUnidataAppAgentSocket():释放通信管理器的资源,程序中止前调用。
 virtual BOOL InitMSCTranSocket():初始化网关的发送链路。
 virtual BOOL InitMSCRecvSocket():初始化网关的接收链路。
 virtual BOOL LoginSmc():登录网关/短信中心。
 virtual BOOL LogOutSmc():断开网关/短信中心的连接。
 virtual BOOL SendMsgToMSC(char buf[],int nbuflen):从发送链路发送消息到网关(非应答消息 submit,cancel,query,connect 等等)以及应答消息等。
 virtual BOOL SendMsgFromRecvToMSC(char buf[],int nbuflen):从接收链路发送消息道网关,主要用于发送接收链路的Active Test消息的应答消息、Deliver的应答消息等。
 virtual BOOL SendMsgToSysModule(char buf[],int nbuflen):发送消息到应用代理子系统。
 virtual void SendNetResumeMsgToSysModule():发送网关/短信中心 正常连接数据包给应用代理子系统。
 virtual void SendNetDownMsgToSysModule():发送网关/短信中心断开消息数据包给应用代理子系统。
以上接口函数为虚函数,可根据情况重载本通信管理类,以实现不同的功能。

BOOL   CreateMemFile():创建内存共享文件。
    BOOL  UnLoadMemFile():释放内存共享句柄。
int WriteMemFile(enum MEMFILEFLAG memFileFlag,char* buf,UINT nbufLen): 写入内存文件。
以上操作与通信无关,仅为实现内存察看功能所用。
5、异常处理流程:

5.2.3短信中心/网关协议管理类
1、 功能说明:
处理网关下发的消息。将电信网关/短信中心的SMPP、CMPP等协议转换成无线数据增值业务平台内部的UNIDATA协议。
2、 设计思想:
在本类中统一管理网关/短信中心的协议处理,即需要将网关/短信中心使用的协议转换成平台内部使用的UNIDATA协议。因此在设计此类时需要考虑面对不同类型的网关通信协议。在本次设计时按照标准SMPP和CMPP协议处理。
本类中需要特别注意的是短信通道系统收到网关的数据时应该将网关返回的命令响应状态值、状态报告值以及查询回应状态值统一为平台内部定义的状态值,交给应用代理子系统作统一处理。
3、 类属性设计:
 CComManager* m_pComManager:接口通信管理类对象。所有操作均由接口通信管理类对象来统一管理。
4、 类接口设计:
以下接口函数为处理标准CMPP下发的消息处理函数接口,所有函数均为虚函数,可重载实现特定的功能。
 virtual BOOL  CMPP_SubmitRep(void* buf,UINT nBufLen):短信提交应答消息。
 virtual BOOL  CMPP_ConnectRep(void* buf,UINT nBufLen):连接请求应答消息。
 virtual BOOL  CMPP_Deliver(void* buf,UINT nBufLen):短信下发消息。
 virtual BOOL  CMPP_QueryRep(void* buf,UINT nBufLen):短信查询应答消息。
 virtual BOOL  CMPP_CancelRep(void* buf,UINT nBufLen):短信删除应答消息。
 virtual BOOL  CMPP_ActiveTest(void* buf,UINT nBufLen):链路激活测试消息。
 virtual BOOL  CMPP_ActiveTestRep(void* buf,UINT nBufLen):链路激活测试应答消息。
 virtual BOOL  CMPP_Terminate(void* buf,UINT nBufLen):链路断开消息。
 virtual BOOL  CMPP_TerminateRep(void* buf,UINT nBufLen):链路断开应答消息

以下接口函数为处理标准SMPP下发的消息函数接口。所有函数均为虚函数,可重载实现特定的功能。
 virtual BOOL SMPP_BindTransRep(void* buf,UINT nBufLen):发送链路的连接应答消息。
 virtual BOOL SMPP_BindRecvRep(void* buf,UINT nBufLen):接收链路的连接应答消息。
 virtual BOOL SMPP_UnBindRep(void* buf,UINT nBufLen):链路断开的应答消息。
 virtual BOOL SMPP_SubmitRep(void* buf,UINT nBufLen):短信提交的应答消息。
 virtual BOOL SMPP_Deliver(void* buf,UINT nBufLen):短信下发消息。
 virtual BOOL SMPP_QueryRep(void* buf,UINT nBufLen):短信查询应答消息。
 virtual BOOL SMPP_CancelRep(void* buf,UINT nBufLen):短信删除应答消息。
 virtual BOOL SMPP_ReplaceRep(void* buf,UINT nBufLen):短信替换应答消息。
 virtual BOOL SMPP_EnquireLinkRep(void* buf,UINT nBufLen):短信激活测试消息响应。
 virtual BOOL SMPP_Generic_nak(void* buf,UINT nBufLen):短信消息头有错误的消息。
5、异常处理流程:


5.2.4应用代理子系统Unidata协议管理类
1、 功能说明:
处理从应用代理子系统提交的短消息。将UNIDATA协议包数据转换为网关/短信中心使用的SMPP或CMPP协议数据包,并将数据包交给网关/短信中心SOCKET实体处理。
2、 设计思想:
在本类中管理平台内部的UNIDATA协议处理,即需要将平台内部使用的协议转换成电信网关、短信中心使用的标准SMPP、CMPP协议。因此在设计此类时需要考虑面对不同类型的网关/短信中心通信协议。在本次设计时按照标准SMPP和CMPP协议处理。
在协议转换时需注意网关的协议字段的长度是定长或是变长。变长字段的数据流需要特别的打包程序将数据流压入缓冲区。
3、 类属性设计:
CComManager* m_pComManager:接口通信管理类对象。所有操作均由接口通信管理类对象来统一管理。
4、 类接口设计:
 virtual DWORD ProcessNetState(char buf[],UINT nMsgLen):处理网络连接状况。
 virtual BOOL  UD_REQ_Submit(char buf[],UINT nbufLen):短消息提交数据包。
 virtual BOOL  UD_REQ_Query(char buf[],UINT nbufLen):短消息查询数据包。
 virtual BOOL  UD_REQ_ActiveTest(char buf[],UINT nbufLen):链路激活测试数据包。
以上函数接口为虚函数,可重载实现不同的处理功能。

 DWORD ProcessInput(char buf[],UINT nMsgLen):UNIDATA 数据包传入处理函数。在这里实现数据处理分支。
 UINT MakeSMPPBuf(char* OutBuf,void* InputStruct,UINT nCommandId):把SMPP数据结构组成SMPP数据包。本函数实现打包操作,实际发送到网关/短信中心的数据包由本函数组包。
BOOL ProcessChannelConnectRsp(char* buf,int nMsgLen):处理短信通道子系统连接到应用代理子系统的响应。
 BYTE strToByte(char szTemp[]):将PDU字符串转换成字节。
 void convPDUToBin(char *buf, WORD *sm_length):将PDU 字符串转换成二进制码。
 void convCToUnicode(char *buf, unsigned char *sm_length):将字符串转换成UNICODE编码。

5、异常处理流程:

5.2.5网关/短信中心通信socket实体
1、 功能说明:
实现接收及发送链路的SOCKET通信接口。在这里分两种情况,一种是双链路接口的网关和短信中心通信,一种是单链路的网关/短信中心通信。如果是双链路的通信,则分为发送链路通信socket实体,和接收链路通信socket实体。本设计说明书以双链路连接通信为例。
2、 设计思想:
本类为系统与电信网关/短信中心的SOCKET通信实体,此类从SOCKET通信基类派生,继承基类的相关操作属性,同时需要重载基类的相关函数以实现特定的与网关通信的操作。另外,在通信实体中需要创建链接检测线程,以完成与网关的活性测试。
3、 类属性设计:
 BOOL    m_bActive:是否处于连接状态。
4、 类接口设计:
 virtual BOOL ReceiveMsg(char Buff[],UINT BufLen):接收数据的事件。
 virtual DWORD ProcessInput(char buf[],UINT nMsgLen):处理数据的入口函数,所有数据均由此函数入口处理。
 virtual BOOL  SendActiveTestMsg():测试激活测试发送程序。
 virtual BOOL CreateActiveTestThread():创建测试连接线程。
以上函数为虚函数,可以继承实现不同功能。
virtual void OnConnected():连接上以后的操作。
virtual BOOL OnDisconnect():断开连接。
以上函数继承自基类的函数,完成连接与断开的操作。
5、异常处理流程:

5.2.6应用代理子系统Unidata通信socket实体
1、 功能说明:
实现短信通道与平台应用代理子系统的通信链路的SOCKET通信接口。通道系统与应用代理子系统的通信均为单链路的连接通信。
2、 设计思想:
本类为短信通道子系统与应用代理子系统的SOCKET通信实体,此类从SOCKET通信基类派生,继承基类的相关操作属性,同时需要重载基类的相关函数以实现特定的通信操作。另外,在通信实体中需要创建链接检测线程,以完成与应用代理子系统的活性测试。考虑到应用代理子系统需要和应用通信,需要知道整个平台与网关的连接状况,因此在设计时将短信通道子系统与网关的连接状况转化为平台内部定义的网络连接状态在连接测试消息中将状态发送给应用代理子系统。
3、 类属性设计:
 BOOL    m_bActive:是否处于连接状态。
4、 类接口设计:
 virtual BOOL ReceiveMsg(char Buff[],UINT BufLen):接收数据的事件。
 virtual DWORD ProcessInput(char buf[],UINT nMsgLen):处理数据的入口函数,所有数据均由此函数入口处理。
 virtual BOOL  SendActiveTestMsg():测试激活测试发送程序。
 virtual BOOL CreateActiveTestThread():创建测试连接线程。
以上函数为虚函数,可以继承实现不同功能。

virtual void OnConnected():连接上以后的操作。
virtual BOOL OnDisconnect():断开连接。
以上函数继承自基类的函数,完成连接与断开的操作。

5、异常处理流程:
5.2.7程序界面设计
1、功能说明:
实现短信通道子系统的程序框架以及界面实现。包括整个程序的加载,卸出,界面数据输出等。
5、 设计思想:
本短信通道子系统为平台系统与网关/短信中心的通信通道,因此其主要的任务是完成通信功能,淡化其他的功能。在设计程序时主要考虑的是系统在运行时的效率及可靠性,在界面设计上做到尽量不影响系统的主要功能实现。为此,设计了简单、易用的图形化用户界面。
本短信通道子系统使用MFC编程实现界面操作。整体框架使用MFC提供的程序界面框架。由于所有的数据输出都在主框架中实现,因此在设计中在程序启动后将主框架对象保存为全局对象,以便在系统的各个部分使用主框架实现数据输出。
3、系统模块结构图:

 

5、 模块接口描述:系统使用C++语言的内部接口。
 void PrintToEdit(char* szText,enum enMsgTYPE emtype):数据输出打印到视图区,按行显示数据,并将每次打印的时间输出在每行的后面。
 void ModifyChannelState(char* szText,BOOL bErrorMsg=FALSE):修改通道连接的状态。
 void ModifySysModuleState(char* szText,BOOL bErrorMsg=FALSE):修改应用代理子系统的连接状态。
 void AddMtCount():添加一条MT消息,MT计数器数值加一。
 void AddMoCount():添加一条MO消息,MO计数器数值加一。

5、异常处理流程:
5.2.8测试消息模块设计
1、 功能说明:
实现测试消息发送功能。本测试发送功能使用平台内部UNIDATA数据协议并包含CMPP12协议。
2、设计思想:
本测试消息模块为为相对独立的模块。在设计上模拟应用代理子系统发送到短信通道子系统的数据包,因此需要有和应用代理子系统类似的打包操作。打包操作分两个部分,第一步将从界面上获得的数据组成CMPP12协议的小包,再组成UNIDATA协议的大包,然后将组成的数据包交给应用代理子系统UNIDATA协议管理类处理。
2、 数据成员:
由于需要从界面上获取数据,数据成员
3、 模块接口描述:
 void SendMsg2SMC(unsigned long CtkUnidataReqLen,char *CtkUnidataReq):发送数据到网关/短信中心,在系统内部,本操作实质上是将数据交给UNIDATA协议管理类处理。
 void Make_CTKP_UNIDATA_REQ(unsigned long * BufLen,char *Buf, STRUCT_SUBMIT_HEADER* content,char *CMPP_Packet):将数据组成UNIDATA协议大包,内部包含CMPP12协议数据包。
 void Make_CMPP_Submit(char *Buf, STRUCT_CMPP12_SUBMIT* content):将数据组成CMPP12协议小包。
5、异常处理流程:
在处理界面数据输入时,由于输入的数据对组成数据包有直接的影响,因此需要在界面输入时要求有出错处理,对于不合理的数据输入应要求操作人员作正确的数据输入,以保证发送到网关的数据正确无误。
在本程序中,如果操作人员输入的数据部队,系统将提示数据输入错误,重新输入正确地数据,否则不予通过,及保证如果数据输入错误的话将不被打包也不被发送到网关。
6.系统INI配置文件设计

6.1系统INI配置文件逻辑结构
6.1.1网关/短信中心属性配置
功能:用于列出短信中心/网关的相关属性。
说明:
SMCREMARK:通道名称,如:联通820
INTERFACE_VERSION:接口版本号,如:0
SERVICENUMBER:特服号,如:820,为电信运行商提供的服务号码。
6.1.2网关/短信中心连接参数配置
发送链路:
SMC_TRANS_IP:发送链路短信中心IP地址,如:192.168.10.155
SMC_TRANS_PORT:发送链路短信中心端口,如:2010
SMC_TRANS_ICPID:企业代码,如:ctk1
SMC_TRANS_PAS:密码,如:ctk1
接收链路:
SMC_RECV_IP:接收链路短信中心IP地址,如:192.168.10.155
SMC_RECV_PORT:接收链路短信中心端口,如:2010
SMC_RECV_ICPID:企业代码,如:ctk1
SMC_RECV_PAS:密码,如:ctk1

6.1.2短信通道属性配置
功能:用于标识本平台系统连接的各个功能模块系统。

说明:
CHANNELNAME:通道名称,如:BJS。
PASSWORD:通道密码,如:BJS。
CHANNELPROTOCOL:通道协议,CMPP 1,SMPP 2,如:2。
CHANNELTYPE:通道类型,移动1,联通2,如:2。
BSPCHANNEL:是否为专用通道0 非专用通道 1专用通道,如:0。
MOPACKET:附加的包头,在MO时添加到消息体的最前面。
6.1.3应用代理连接参数配置
SYSMODULE_IP:应用代理系统的IP地址,如:192.168.10.162
SYSMODULE_PORT:应用代理系统开放的端口,如:7100
6.1.4监控中心连接参数配置
WATCHHOSTIP:监控中心IP地址,如:192.168.3.233
WATCHPORT:监控中心端口,如:5301

6.1.5软件狗属性配置
EventName:事件名称,如:CTKSMPP1-2001

6.2系统INI配置文件物理结构
本配置文件在物理上使用“.ini”文件,系统在加载时读取配置文件的内容写入系统定义的数据结构中供程序调用,修改配置文件后需要系统重新启动,以使修改后的配置在系统执行时有效。

 
7.系统接口设计
7.1外部接口设计
本系统与外部的通信主要有两个部分,一为系统与网关/短信中心的通信接口,一为系统与应用代理子系统的通信接口。
7.1.1与网关/短信中心的接口
短信通道系统与网关/短信中心的通信采用Socket的通信方式,短信通道系统作为网关/短信中心的Socket Client,具体通信协议参见“GSM3.4标准SMPP协议”,以及“中国移动通信信息资源站实体与互联网短消息网关接口协议(V1.2)”。
7.1.2与应用代理子系统的接口
短信通道系统与应用代理子系统的通信采用Socket的通信方式,短信通道系统作为应用代理子系统的Socket Client,具体通信协议参见《短信通道子系统与应用代理子系统的通信协议》。
7.1.3连接端口号规划:
短信通道系统使用本机IP地址,端口号为系统初始化CLIENT SOCKET时自动获得。
短信中心端口:7890长连接,7900短连接。系统一般使用长连接。
应用代理子系统:开放端口7100
7.2内部接口设计
描述系统软件配置项之间的通信协议和数据交换格式
本短信通道系统使用VC++开发,采用C的结构化数据接口。

7.3安全性设计


8. 系统故障的处理
8.1系统故障
a. 硬盘空间耗尽。
b. 内存空间耗尽。
c. 无线数据增值业务平台的连接链路断开。
d. 数据量过大造成系统阻塞或系统资源耗尽。
8.2故障预防
1、定时更换磁盘。
2、遵循使用说明安装和设置系统和配置系统配置文件。具体参见《平台短信通道子系统使用明书》。
8.3系统恢复方法
1. 自动恢复环境。
其中包括系统监测参数,数据流量参数,系统设置参数,模块工作状态等等。这些数据在系统出现故障时都应有所纪录。
2. 自动重连电信网关
重新读入系统配置文件内容设置,按照系统设置重新连接电信网关,并在系统日志中记录此操作。

9. 工作量评估
短信通道子系统的开发任务工作量主要集中在以下几个方面:

10.短信通道子系统与应用代理子系统的通信协议:UNIDATA协议
在本协议中字节采用在网络中通用的网络序。本协议为无线数据增值业务平台内部的通信协议。有平台开发人员确定、使用。本协议的解释权由平台开发小组所有。
短信通道系统和应用代理子系统之间流通的消息:
CTKP_CONNECT:应用向应用程序通讯代理模块发起建立连接的请求
CTKP_CONNECT_RSP:应用程序通讯代理模块回应应用建立连接的请求
CTKP_DISC:应用或应用程序代理模块向对方发送此消息用于断开连接
CTKP_DISC_RSP:应用或应用程序代理模块回应对方断开连接的请求
CTKP_LINKTEST:应用或应用程序代理模块向对方发送此消息,用于检测连接
CTKP_LINKTEST_RSP:应用或应用程序代理模块回应检测连接的消息
CTKP_DELIVERY:应用平台向应用下发消息
CTKP_MSG_REPORT:应用平台向应用提交消息的状态报告
CTKP_SUBMIT:应用向短消息中心提交消息
CTKP_SUBMIT_RSP:应用平台回应应用提交的消息
CTKP_RECV_CONFIRM:应用向应用平台证实收到SUBMIT_RSP或MSG_REPORT
CTKP_UNIDATA_ACK:短消息中心向应用平台回应的消息
CTKP_ERROR_REPORT:应用异常时,应用平台向应用回应的消息
CTKP_QUERY:应用向应用平台查询一条消息的状态
CTKP_QUERY_RSP:应用平台回应应用一条消息的状态
CTKP_NETREPORT:网络状态报告
CTKP_PROTOCOLCONNECT_REQ:应用代理连接通讯协议模块
CTKP_PROTOCOLCONNECT_ACK:AGENT连接功能模块的回应
CTKP_NETTEST:通道连接测试
CTKP_CHANNEL_CONNECT_RSP:通道连接响应
CTKP_CHANNEL_CONNECT:通道连接
9.1基本数据类型:
Integer   无符号整数
Octet String 定长字符串,位数不足时,右补二进制0

9.2消息结构
项目 说明
Message Header 消息头(所有消息公共包头)
Message Body 消息体
9.3消息头格式
字段名 字节数 类型 描述
Total_Length  4 Integer 消息总长度(含消息头及消息体)
Command_Type 4 Integer 命令或响应类型
Sequence_ID 4 Integer 消息流水号,顺序累加,步长为1,循环使用
9.4消息体格式
9.4.1 CTKP_CONNECT
应用向应用程序通讯代理模块发起建立连接的请求
字段名 字节数 类型 描述
App_ID 2 Integer 应用平台ID
App_Name 16 OctetString 应用平台名称
Password 16 OctetString 应用平台密码
Interface_Version 4 Integer 接口版本号
9.4.2 CTKP_CONNECT_RSP
应用程序通讯代理模块回应应用建立连接的请求,消息体为空
9.4.3 CTKP_DELIVERY
短消息中心向应用下发消息
字段名 字节数 类型 描述
App_ID 2 Integer 应用ID
ReDelivery_Count 1 Integer 重发计数
TNO 1 Integer 电信网络运营商
Channel_Protocol 1 Integer 通道协议类型
Service_ChannelID 1 Integer 服务通道ID
Service_Number 6 OctetString 特服号
Originate_Plat 1 Integer 发起平台ID
Service_Plat 1 Integer 服务平台ID(与应用连接)
Protocol_Type 1 Integer 协议类型
Protocol_Length 2 Integer 协议包长度
Protocol_Data Protocol
_Length OctetString 协议包内容
9.4.4 CTKP_MSG_REPORT
为对应CMPP_Submit的状态报告
注:最后三个字段不发送给应用

TNO 1 Integer 电信网络运营商
Channel_Protocol 1 Integer 通道协议类型
Service_ChannelID 1 Integer 服务通道ID
Service_Number 6 OctetString 特服号
Service_Plat 1 Integer 服务平台ID
Request_Plat 1 Integer 请求平台ID
MsgID_Type 1 Integer MsgID类型
MsgID_Length 1 Integer MsgID长度
MsgID MsgID_Length MsgID_Type 消息ID

9.4.5 CTKP_SUBMIT
应用向短消息中心提交消息

字段名 字节数 类型 描述
App_ID 2 Integer 应用ID
ReSubmit_Count 1 Integer 重发消息计数
TNO 1 Integer 电信网络运营商
Channel_Protocol 1 Integer 通道协议类型
Service_ChannelID 1 Integer 服务通道ID
Service_Number 6 OctetString 特服号
Service_Plat 1 Integer 服务平台ID
Request_Plat 1 Integer 请求平台ID
Priority_Flag 1 Integer 优先级标志
TimeOut 1 Integer 超时时间长(以10秒为单位)
Credibility_Transmit 1 Integer 可靠性传输
SaveForTransmit 1 Integer 存储转发功能
Protocol_Type 1 Integer 协议类型
Protocol_Length 2 Integer 协议包长度
Protocol_Data Protocol
_Length OctetString 协议包内容

9.4.6 CTKP_SUBMIT_RSP
应用平台向应用回应接收信息
字段名 字节数 类型 描述
AppID 2 Integer 应用ID
Plat_MsgID 4 Integer 应用平台的MsgID

9.4.7 RECV_CONFIRM
应用接收CTKP_SUBMIT_RSP或CTKP_MSG_REPORT后的回应信息
字段名 字节数 类型 描述
AppID 2 Integer 应用ID
Confirm_Flag 1 Integer 收到SUBMIT_RSP或MSG_REPORT应答信息

9.4.8 CTKP_UNIDATA_ACK
短消息中心回应应用提交的消息
字段名 字节数 类型 描述
App_ID 2 Integer 应用ID
TNO 1 Integer 电信网络运营商
Channel_Protocol 1 Integer 通道协议类型
Service_ChannelID 1 Integer 服务通道ID
Service_Number 6 OctetString 特服号
Service_Plat 1 Integer 服务平台ID
Request_Plat 1 Integer 请求平台ID
MsgID_Type 1 Integer MsgID类型
MsgID_Length 1 Integer MsgID长度
Msg_ID MsgID
_Length MsgID
_Type 消息ID

9.4.9 CTKP_QUERY
应用向应用平台查询一条消息的状态
字段名 字节数 类型 描述
Plat_MsgID 4 Integer 应用平台通过SUBMIT_RSP传回的Plat_MsgID

9.4.10 TKP_QUERY_RSP
应用平台回应应用一条消息的状态,消息体为空

9.4.11 TKP_LINKTEST
应用或应用程序代理模块向对方发送此消息,消息体为空

9.4.12 TKP_LINKTEST_RSP
应用或应用程序代理模块回应检测连接的消息,消息体为空

9.4.13 TKP_DISC
应用向应用程序代理模块发送此消息,用于建立连接,消息体为空

9.4.14 TKP_DISC_RSP
应用向应用程序代理模块发送此消息,用于断开连接,消息体为空

9.4.15 RROR_REPORT
应用平台向应用发送错误标志信息
字段名 字节数 类型 描述
Error_Message 40 OctetString 错误描述信息

注:
Protocol_Data中的Msg_Length字段的长度更改为2字节(Msg_Content的长度可以突破256字节)。
此数据类型协议采用网络字节顺序(大于1字节的Integer类型数据需要高低字节转换)。

 

11.短信平台主要数据流说明
   内主要数据流程
1. 短信提交数据流程
 
①②:数据从应用API流向业务接入模块,对于短信提交命令业务接入模块对数据的处理流程为:数据包验证分析应用级的第二级流量控制(应用API本身有第一级流量控制)路由选择通道级第三级流量控制②。
②③:数据从业务接入模块流向系统模块,系统模块对数据的处理流程为:优先级调度发送频率控制③。
③④:数据从系统模块流向通讯模块,通讯模块把CTK_UNIDATA_REQ包替换为相应的网关协议数据包(CMPP/SMPP等数据包),然后发送到④。
④⑤:网关对通讯模块提交的数据的应答。
⑤⑥:通讯模块把网关应答数据包替换为CTK_UNIDATA_ACK应答数据包然后发送给系统模块。
⑥⑦:系统模块根据通讯模块提交的CTK_UNIDATA_ACK验证发送状态,然后生成话单。
⑦⑧:业务接入模块根据CTK_UNIDATA_ACK数据包的应用号确定源应用,然后把此应答数据返回应用。

 

2. 短信查询、删除数据流程
 

①②:基本与短信提交数据流程的①②阶段相同,不过在此流程中,不对数据包进行路由选择。
②③:短信查询分两种情况:单条查询(SMPP)和批量查询(CMPP),其处理流程均与短信提交数据流程的②③阶段相同。
③⑧:流程基本与短信提交数据流程的③⑧阶段相同,所不同的是⑥⑦阶段中并不生成话单。

短信删除流程与查询的流程相同。④⑤处命令为:Cancel 和Cancel_REP.
3. 短信状态下发数据流程
 

①->③:通讯模块接收到网关下发信息后产生回应信息并将其发送给网关(流程②)。通讯模块对网关下发信息进行打包处理,形成CTKP_UNIDATA_IND信息包,然后将此信息包发送给系统模块,形成流程③。

③->④:网关下发信息有两种类型,状态信息和短消息,所以系统模块对下发信息有两种处理流程。对于状态信息,系统模块在恢复应用信息序列号后直接将其发送给业务接入模块,进入流程④;对于网关下发的短消息,系统模块针对此消息生成计费记录,写入话单文件,然后将消息发送给业务接入模块,进入流程④。

④->⑤:业务接入模块接收到网关下发信息后进行分析。对于短信状态报告,根据应用号直接将状态报告发送给应用系统;对于下发信息,则根据特定的包头来查找应用,然后将信息发送给应用系统。进入流程⑤
4. 短信下发数据流程
与短信状态下发数据流程
5. 手机互发数据流程
 

①->③:网关下发消息到达通讯模块后,由通讯模块产生相应的回应信息并发送给网关(流程②)。通讯模块对下发信息进行打包处理,形成CTKP_UNIDATA_IND信息包,然后发送给系统模块,形成流程③.

③->④:系统模块接收到CTKP_UNIDATA_IND信息包后,形成计费记录,写入话单文件,然后将该信息包发送给应用接入模块,形成流程④

④->⑤:应用接入模块接收到CTKP_UNIDATA_IND信息包后,根据特定包头对信息包进行识别、处理,形成一个CTKP_UNIDATA_REQ信息包,发送给系统模块,进入流程⑤

⑤->⑩:此处流程同短信提交流程,请参考短信提交流程

6. 应用互发数据流程
 

①②:#1应用向业务接入模块提交CTK_TOAPP_IND数据包,业务接入模块分析数据包的合法性,然后直接发送到#2应用。
注意:此消息不经过系统模块,直接由业务接入模块转发给应用,转发过程为直接转发,而没有进入发送缓冲队列。
②③:应用收到数据包后向业务接入模块发送应答消息。
③④:业务接入模块向源应用发送应答消息。

附录:
一. 测试文档

1 范围
 此规范描述了无线增值业务平台以及路由中心计费系统测试项目以及测试方法,可以作为模块稳定测试时的依据,也可作为验收测试的依据。
2 引用标准
1. 900/1800MHz TDMA数字蜂窝移动通信网扩展短消息实体到短消息服务中心的连接协议规范
2. 国移动通信信息资源站实体与互联网短消息网关接口协议(V1.2)
3 缩略语
1.  话单 计费系统管理的主要对象,对应于一条短信
2.  话单类型 SMO:00
SMT:01
SMC:02
SMA:03
SMF:
10:SMO
11:SMT
12:SMC
13:SMA
3.  服务代码 特服号
4.  计费用户号码 
5.  应用代码 接入平台的应用的代码
6.  业务代码 信息平台所能提供的业务类型的代码
7.  资费类别 00:SMO
01:免费
02:单条
03:包月
04:封顶
05:SP
8.  电信网络运营商 01:移动
02:联通

4 测试方法
4.1 测试结构
 平台本地计费系统测试结构图如下图所示:
 
 
 
路由中心计费系统测试结构图如下图所示:
 
4.2 测试环境
1. 基本环境:路由通信测试环境
2. 路由测试特殊要求:
3台安装SQL_SERVER的计算机

5 平台本地计费测试内容
5.1话单传输与控制
5.1.1
测试编号:5.1.1
测试项目:话单传输与控制
测试分项目:ODBC传输中,文件步进和记录步进
预置条件:
1.平台本地计费系统安装完毕,并且正确初始化
2.话单传输与控制安装完毕,并且正确初始化
3.清空dbCDR的smpiecesource表
测试步骤:
1.从第一文件的第一记录测试步进动作
设置LoadProcessStep.ini中的fileno=1
设置LoadProcessStep.ini中的recordpos=0
启动Load线程

2.从中间文件的中间记录测试步进动作
设置LoadProcessStep.ini中的fileno=n1
在n1导入过程中中断Load线程,然后再重新启动Load线程
预期结果:
1.查看smpiecesource表,相应话单正确导入数据库
2.重新启动Load线程后可以顺利继续导入工作
测试结果:

 

 

 

 

 

 

5.1.2
测试编号:5.1.2
测试项目:话单传输与控制
测试分项目:ODBC传输中,文件同步悬停以及再次步进
预置条件:
1.平台本地计费系统安装完毕,并且正确初始化
2.话单传输与控制安装完毕,并且正确初始化

测试步骤:
1.从第一文件的第一记录测试步进动作
设置LoadProcessStep.ini中的fileno=1
设置LoadProcessStep.ini中的recordpos=0
启动Load线程,连续导入所有话单文件

2.重新命名备用文件到导入序列
启动Load线程
预期结果:
1.前后文件之间自动切换
2.最后文件传输完毕,自动悬停,最新文件生成后,又可以自动前进
测试结果:

 

 

 

 

 

 

 

 

 

 

5.1.3
测试编号:5.1.3
测试项目:话单传输与控制
测试分项目:FTP传输中,文件步进、文件同步悬停以及再次步进
预置条件:
1.平台本地计费系统安装完毕,并且正确初始化
2.FTP服务器安装、配置话单传输通道
3.话单传输与控制安装完毕,并且正确初始化

测试步骤:
1.从第一文件测试步进动作
设置FtpProcessStep.ini中的fileno=0
启动FTP线程,连续下载所有话单文件

2. 重新命名备用文件
启动FTP线程
预期结果:
1.前后文件之间自动切换
2.最后文件传输完毕,自动悬停,最新文件生成后,又可以自动前进
测试结果:

 

 

 

 

 

 

 

 

 

 


5.1.4
测试编号:5.1.4
测试项目:话单传输与控制
测试分项目:ODBC和FTP之间的衔接
预置条件:
1.平台本地计费系统安装完毕,并且正确初始化
2.FTP服务器安装、配置话单传输通道
3.话单传输与控制安装完毕,并且正确初始化

测试步骤:
预备一个长的话单文件序列(>=100),启动ODBC传输和FTP传输,对全过程进行观察。从话单最终传输结果和传输状态的界面显示两个方面考查同步情况
设置LoadProcessStep.ini中的fileno=0
设置LoadProcessStep.ini中的recordpos=0
设置FtpProcessStep.ini中的fileno=0

预期结果:
1.话单文件全部下载到本地
2.话单全部导入数据库中
测试结果:

 

 

 

 

 

 

 

 

 

 


5.1.5
测试编号:5.1.5
测试项目:话单传输与控制
测试分项目:话单传输与控制界面
预置条件:
1.平台本地计费系统安装完毕,并且正确初始化
2.FTP服务器安装、配置话单传输通道
3.话单传输与控制安装完毕,并且正确初始化

测试步骤:
随机测试

预期结果:
界面响应正确
测试结果:

 

 

 

 

 

 

 

 

 

 

 

 



5.2数据库内部费用计算
5.2.1
测试编号:5.2.1
测试项目:数据库内部费用计算
测试分项目:话单提取
预置条件:
1.平台本地计费系统安装完毕,并且正确初始化
2.清空计费数据库dbMobile、dbUnicom
3.在dbCDR中置入含有不同电信供应商不同结算区间的话单
测试步骤:
执行费用计算
预期结果:
区分不同电信供应商,分解话单
区分限定结算区间内,分解话单
测试结果:

 

 

 

 

 

 

 

 

 

 

 

 
5.2.2
测试编号:5.2.2
测试项目:数据库内部费用计算
测试分项目:明细费用级别话单流向
预置条件:
1.平台本地计费系统安装完毕,并且正确初始化
2.清空计费数据库dbMobile、dbUnicom
3.在dbCDR中置入含有不同电信供应商不同结算区间的话单
测试步骤:
执行费用计算
预期结果:
在明细费用级别的所有分配点上,相应的话单或转化形式是正确的
测试结果:

 

 

 

 

 

 

 

 

 

 

 

 

 


 
5.2.3
测试编号:5.2.3
测试项目:数据库内部费用计算
测试分项目:统一费用级别话单流向
预置条件:
1.平台本地计费系统安装完毕,并且正确初始化
2.清空计费数据库dbMobile、dbUnicom
3.在dbCDR中置入含有不同电信供应商不同结算区间的话单
测试步骤:
执行费用计算
预期结果:
在统一费用级别的所有分配点上,相应的话单或转化形式是正确的
测试结果:

 

 

 

 

 

 

 

 

 

 

 

 

 


 
5.2.4
测试编号:5.2.4
测试项目:数据库内部费用计算
测试分项目:聚合费用级别的聚合路径上的话单流向
预置条件:
1.平台本地计费系统安装完毕,并且正确初始化
2.清空计费数据库dbMobile、dbUnicom
3.在dbCDR中置入含有不同电信供应商不同结算区间的话单
测试步骤:
执行费用计算
预期结果:
在聚合费用级别的所有聚合路径上,相应的话单或转化形式是正确的
测试结果:

 

 

 

 

 

 

 

 

 

 

 

 

 


 
5.2.5
测试编号:5.2.5
测试项目:数据库内部费用计算
测试分项目:明细费用级别费用
预置条件:
1.平台本地计费系统安装完毕,并且正确初始化
2.清空计费数据库dbMobile、dbUnicom
3.在dbCDR中置入含有不同电信供应商不同结算区间的话单
测试步骤:
执行费用计算
预期结果:
在明细费用级别的所有分配点上,相应的费用是正确的
测试结果:

 

 

 

 

 

 

 

 

 

 

 

 

 


 
5.2.6
测试编号:5.2.6
测试项目:数据库内部费用计算
测试分项目:统一费用级别费用
预置条件:
1.平台本地计费系统安装完毕,并且正确初始化
2.清空计费数据库dbMobile、dbUnicom
3.在dbCDR中置入含有不同电信供应商不同结算区间的话单
测试步骤:
执行费用计算
预期结果:
在统一费用级别的所有分配点上,相应的费用是正确的
测试结果:

 

 

 

 

 

 

 

 

 

 

 

 

 


 
5.2.7
测试编号:5.2.7
测试项目:数据库内部费用计算
测试分项目:聚合费用级别的聚合路径上的费用
预置条件:
1.平台本地计费系统安装完毕,并且正确初始化
2.清空计费数据库dbMobile、dbUnicom
3.在dbCDR中置入含有不同电信供应商不同结算区间的话单
测试步骤:
执行费用计算
预期结果:
在聚合费用级别的所有分配点上,相应的费用是正确的
测试结果:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5.3计费主控程序界面
5.3.1
测试编号:5.3.1
测试项目:计费主控程序界面
测试分项目:系统登录
预置条件:
1.平台本地计费系统安装完毕,并且正确初始化

测试步骤:
1.启动主控程序
2.通过“建立连结”进入登录画面
3.“关闭连结”
4.多次执行2、3
预期结果:
1.正确识别身份,处理登录
2.登录和退出时正确处理主控程序的菜单系统
测试结果:

 

 

 

 

 

 

 

 

 

 

 

 
5.3.2
测试编号:5.3.2
测试项目:计费主控程序界面
测试分项目:移动费用计算
预置条件:
1.平台本地计费系统安装完毕,并且正确初始化

测试步骤:
1.启动主控程序
2.通过“月度结算”的“中国移动”进入
3.指定条件,执行计算
预期结果:
1.正确计算未结算月份的费用
2.避免计算已结算月份的费用
测试结果:

 

 

 

 

 

 

 

 

 

 

 

 

 


 
5.3.3
测试编号:5.3.3
测试项目:计费主控程序界面
测试分项目:联通费用计算
预置条件:
1.平台本地计费系统安装完毕,并且正确初始化

测试步骤:
1.启动主控程序
2.通过“月度结算”的“中国联通”进入
3.指定条件,执行计算
预期结果:
1.正确计算未结算月份的费用
2.避免计算已结算月份的费用
测试结果:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5.3.4
测试编号:5.3.4
测试项目:计费主控程序界面
测试分项目:移动费用输出
预置条件:
1.平台本地计费系统安装完毕,并且正确初始化

测试步骤:
1.启动主控程序
2.通过“文件管理”的“中国移动文件组”进入
3.指定条件,执行
预期结果:
1.正确输出指定结算月份的费用文件
测试结果:

 

 

 

 

 

 

 

 

 

 

 

 

 


 
5.3.5
测试编号:5.3.5
测试项目:计费主控程序界面
测试分项目:联通费用输出
预置条件:
1.平台本地计费系统安装完毕,并且正确初始化

测试步骤:
1.启动主控程序
2.通过“文件管理”的“中国联通文件组”进入
3.指定条件,执行
预期结果:
1.正确输出指定结算月份的费用文件
测试结果:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 
5.3.6
测试编号:5.3.6
测试项目:计费主控程序界面
测试分项目:个人费用输出
预置条件:
1.平台本地计费系统安装完毕,并且正确初始化

测试步骤:
1.启动主控程序
2.通过“文件管理”的“个人文件组”进入
3.指定条件,执行
预期结果:
1.正确输出指定结算月份的费用文件
测试结果:

 

 

 

 

 

 

 

 

 

 

 

 

 

 


5.4平台信息自动获取
5.4.1
测试编号:5.4.1
测试项目:平台信息自动获取
测试分项目: 通道信息
预置条件:
1.平台本地计费系统安装完毕,并且正确初始化
2.安装了可选的计费维护对象
3.已经完成对移动和联通的多次计费

测试步骤:
1.从“平台信息”的 “通道信息”进入
预期结果:
正确收集了通道信息
测试结果:

 

 

 

 

 

 

 

 

 

 

 


 
5.4.2
测试编号:5.4.2
测试项目:平台信息自动获取
测试分项目:应用信息
预置条件:
1.平台本地计费系统安装完毕,并且正确初始化
2.安装了可选的计费维护对象
3.已经完成对移动和联通的多次计费

测试步骤:
1.从“平台信息”的 “应用信息”进入
预期结果:
正确收集了应用信息
测试结果:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 
5.4.3
测试编号:5.4.3
测试项目:平台信息自动获取
测试分项目:业务信息
预置条件:
1.平台本地计费系统安装完毕,并且正确初始化
2.安装了可选的计费维护对象
3.已经完成对移动和联通的多次计费

测试步骤:
1.从“平台信息”的 “业务信息”进入
预期结果:
正确收集了业务信息
测试结果:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 
5.4.4
测试编号:5.4.4
测试项目:平台信息自动获取
测试分项目:应用业务关联信息
预置条件:
1.平台本地计费系统安装完毕,并且正确初始化
2.安装了可选的计费维护对象
3.已经完成对移动和联通的多次计费

测试步骤:
1.从“平台信息”的 “应用业务关联信息”进入
预期结果:
正确收集了应用业务关联信息
测试结果:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 
5.4.5
测试编号:5.4.5
测试项目:平台信息自动获取
测试分项目:移动有效计费信息
预置条件:
1.平台本地计费系统安装完毕,并且正确初始化
2.安装了可选的计费维护对象
3.已经完成对移动和联通的多次计费

测试步骤:
1.从“平台信息”的 “移动有效计费信息”进入
预期结果:
正确收集了移动有效计费信息
测试结果:

 

 

 

 

 

 

 

 

 

 

 

 

 


 
5.4.6
测试编号:5.4.6
测试项目:平台信息自动获取
测试分项目:联通有效计费信息
预置条件:
1.平台本地计费系统安装完毕,并且正确初始化
2.安装了可选的计费维护对象
3.已经完成对移动和联通的多次计费

测试步骤:
1.从“平台信息”的 “联通有效计费信息”进入
预期结果:
正确收集了联通有效计费信息
测试结果:

 

 

 

 

 

 

 

 

 

 

 

 

 

 


5.5话务查询

5.5.1
测试编号:5.5.1
测试项目:话务查询
测试分项目:通道话务查询
预置条件:
1.平台本地计费系统安装完毕,并且正确初始化
2.已经完成对移动和联通的多次计费
3.安装查询构造器(平台)
测试步骤:
1.启动查询构造器,进入固定模式查询
2.限定查询时间区间
3.限定查询路径为“通道”
4.对其他选项采用组合方式
5.将构造结果放到SQLSERVER工具中运行
预期结果:
查询结果准确
测试结果:

 

 

 

 

 

 

 

 

 


 
5.5.2
测试编号:5.5.2
测试项目:话务查询
测试分项目:应用话务查询
预置条件:
1.平台本地计费系统安装完毕,并且正确初始化
2.已经完成对移动和联通的多次计费
3.安装查询构造器(平台)
测试步骤:
1.启动查询构造器,进入固定模式查询
2.限定查询时间区间
3.限定查询路径为“应用”
4.对其他选项采用组合方式
5.将构造结果放到SQLSERVER工具中运行
预期结果:
查询结果准确
测试结果:

 

 

 

 

 

 

 

 

 

 

 

 


 
5.5.3
测试编号:5.5.3
测试项目:话务查询
测试分项目:应用业务话务查询
预置条件:
1.平台本地计费系统安装完毕,并且正确初始化
2.已经完成对移动和联通的多次计费
3.安装查询构造器(平台)
测试步骤:
1.启动查询构造器,进入固定模式查询
2.限定查询时间区间
3.限定查询路径为“应用业务”
4.对其他选项采用组合方式
5.将构造结果放到SQLSERVER工具中运行
预期结果:
查询结果准确
测试结果:

 

 

 

 

 

 

 

 

 

 

 

 


6 路由中心计费测试内容
6.1全网应用话单导出&汇总(导入)
6.1.1
测试编号:6.1.1
测试项目:全网应用话单导出&汇总(导入)
测试分项目:全网应用话单导出
预置条件:
1.平台本地计费系统安装完毕,并且正确初始化(两个)
2.路由中心计费系统安装完毕,并且正确初始化
3.平台本地计费系统已经完成对移动和联通的多次计费
4.平台本地计费系统含有全网应用话单
测试步骤:
在两个平台本地计费系统上分别做以下工作
1.将全网应用话单导出功能模版实例化,定位到正确的全网应用上
2.执行导出操作
预期结果:
在Access数据库中得到相应平台上全网应用话单的路由计费话单集合
测试结果:

 

 

 

 

 

 

 

 



6.1.2
测试编号:6.1.2
测试项目:全网应用话单导出&汇总(导入)
测试分项目:全网应用话单汇总(导入)
预置条件:
1.平台本地计费系统安装完毕,并且正确初始化(两个)
2.路由中心计费系统安装完毕,并且正确初始化
3.平台本地计费系统已经完成对移动和联通的多次计费
4.平台本地计费系统含有全网应用话单
5.得到不同平台上的全网应用话单的路由计费话单集合(由导出产生)
测试步骤:
对多个Access数据库(路由计费话单集合)执行导入操作
预期结果:
在SQLSERVER数据库中得到路由计费话单
测试结果:

 

 

 

 

 

 

 

 

 

 

 

 



6.2数据库内部费用计算
6.2.1
测试编号:6.2.1
测试项目:数据库内部费用计算
测试分项目:话单提取
预置条件:
1.路由中心计费系统安装完毕,并且正确初始化
2.清空计费数据库RoutedbMobile、RoutedbUnicom
3.在RoutedbCDR中置入含有不同电信供应商不同结算区间的话单
测试步骤:
执行费用计算
预期结果:
区分不同电信供应商,分解话单
区分限定结算区间内,分解话单
测试结果:

 

 

 

 

 

 

 

 

 

 

 
6.2.2
测试编号:6.2.2
测试项目:数据库内部费用计算
测试分项目:明细费用级别话单流向
预置条件:
1.路由中心计费系统安装完毕,并且正确初始化
2.清空计费数据库RoutedbMobile、RoutedbUnicom
3.在RoutedbCDR中置入含有不同电信供应商不同结算区间的话单
测试步骤:
执行费用计算
预期结果:
在明细费用级别的所有分配点上,相应的话单或转化形式是正确的
测试结果:

 

 

 

 

 

 

 

 

 

 

 

 

 

 
6.2.3
测试编号:6.2.3
测试项目:数据库内部费用计算
测试分项目:统一费用级别话单流向
预置条件:
1.路由中心计费系统安装完毕,并且正确初始化
2.清空计费数据库RoutedbMobile、RoutedbUnicom
3.在RoutedbCDR中置入含有不同电信供应商不同结算区间的话单
测试步骤:
执行费用计算
预期结果:
在统一费用级别的所有分配点上,相应的话单或转化形式是正确的
测试结果:

 

 

 

 

 

 

 

 

 

 

 

 

 

 
6.2.4
测试编号:6.2.4
测试项目:数据库内部费用计算
测试分项目:聚合费用级别的聚合路径上的话单流向
预置条件:
1.路由中心计费系统安装完毕,并且正确初始化
2.清空计费数据库RoutedbMobile、RoutedbUnicom
3.在RoutedbCDR中置入含有不同电信供应商不同结算区间的话单
测试步骤:
执行费用计算
预期结果:
在聚合费用级别的所有聚合路径上,相应的话单或转化形式是正确的
测试结果:

 

 

 

 

 

 

 

 

 

 

 

 

 


 
6.2.5
测试编号:6.2.5
测试项目:数据库内部费用计算
测试分项目:明细费用级别费用
预置条件:
1.路由中心计费系统安装完毕,并且正确初始化
2.清空计费数据库RoutedbMobile、RoutedbUnicom
3.在RoutedbCDR中置入含有不同电信供应商不同结算区间的话单
测试步骤:
执行费用计算
预期结果:
在明细费用级别的所有分配点上,相应的费用是正确的
测试结果:

 

 

 

 

 

 

 

 

 

 

 

 

 

 
6.2.6
测试编号:6.2.6
测试项目:数据库内部费用计算
测试分项目:统一费用级别费用
预置条件:
1.路由中心计费系统安装完毕,并且正确初始化
2.清空计费数据库RoutedbMobile、RoutedbUnicom
3.在RoutedbCDR中置入含有不同电信供应商不同结算区间的话单
测试步骤:
执行费用计算
预期结果:
在统一费用级别的所有分配点上,相应的费用是正确的
测试结果:

 

 

 

 

 

 

 

 

 

 

 

 

 

 
6.2.7
测试编号:6.2.7
测试项目:数据库内部费用计算
测试分项目:聚合费用级别的聚合路径上的费用
预置条件:
1.路由中心计费系统安装完毕,并且正确初始化
2.清空计费数据库RoutedbMobile、RoutedbUnicom
3.在RoutedbCDR中置入含有不同电信供应商不同结算区间的话单
测试步骤:
执行费用计算
预期结果:
在聚合费用级别的所有分配点上,相应的费用是正确的
测试结果:

 

 

 

 

 

 

 

 

 

 

 

 

 


6.3计费主控程序界面
6.3.1
测试编号:6.3.1
测试项目:计费主控程序界面
测试分项目:系统登录
预置条件:
1.路由中心计费系统安装完毕,并且正确初始化

测试步骤:
1.启动主控程序
2.通过“建立连结”进入登录画面
3.“关闭连结”
4.多次执行2、3
预期结果:
1.正确识别身份,处理登录
2.登录和退出时正确处理主控程序的菜单系统
测试结果:

 

 

 

 

 

 

 

 

 

 


 
6.3.2
测试编号:6.3.2
测试项目:计费主控程序界面
测试分项目:移动费用计算
预置条件:
1. 路由中心计费系统安装完毕,并且正确初始化

测试步骤:
1.启动主控程序
2.通过“月度结算”的“中国移动”进入
3.指定条件,执行计算
预期结果:
1.正确计算未结算月份的费用
2.避免计算已结算月份的费用
测试结果:

 

 

 

 

 

 

 

 

 

 

 

 

 

 
6.3.3
测试编号:6.3.3
测试项目:计费主控程序界面
测试分项目:联通费用计算
预置条件:
1. 路由中心计费系统安装完毕,并且正确初始化

测试步骤:
1.启动主控程序
2.通过“月度结算”的“中国联通”进入
3.指定条件,执行计算
预期结果:
1.正确计算未结算月份的费用
2.避免计算已结算月份的费用
测试结果:

 

 

 

 

 

 

 

 

 

 

 

 

 

 
6.3.4
测试编号:6.3.4
测试项目:计费主控程序界面
测试分项目:移动费用输出
预置条件:
1. 路由中心计费系统安装完毕,并且正确初始化

测试步骤:
1.启动主控程序
2.通过“文件管理”的“中国移动文件组”进入
3.指定条件,执行
预期结果:
1.正确输出指定结算月份的费用文件
测试结果:

 

 

 

 

 

 

 

 

 

 

 

 

 


 
6.3.5
测试编号:6.3.5
测试项目:计费主控程序界面
测试分项目:联通费用输出
预置条件:
1. 路由中心计费系统安装完毕,并且正确初始化

测试步骤:
1.启动主控程序
2.通过“文件管理”的“中国联通文件组”进入
3.指定条件,执行
预期结果:
1.正确输出指定结算月份的费用文件
测试结果:

 

 

 

 

 

 

 

 

 

 

 

 

 


 
6.3.6
测试编号:6.3.6
测试项目:计费主控程序界面
测试分项目:个人费用输出
预置条件:
1. 路由中心计费系统安装完毕,并且正确初始化

测试步骤:
1.启动主控程序
2.通过“文件管理”的“个人文件组”进入
3.指定条件,执行
预期结果:
1.正确输出指定结算月份的费用文件
测试结果:

 

 

 

 

 

 

 

 

 

 

 

 

 


6.4平台信息自动获取
6.4.1
测试编号:6.4.1
测试项目:平台信息自动获取
测试分项目: 通道信息
预置条件:
1.路由中心计费系统安装完毕,并且正确初始化
2.安装了可选的计费维护对象
3.已经完成对移动和联通的多次计费

测试步骤:
1.从“平台信息”的 “通道信息”进入
预期结果:
正确收集了通道信息
测试结果:

 

 

 

 

 

 

 

 

 

 

 

 
6.4.2
测试编号:6.4.2
测试项目:平台信息自动获取
测试分项目:应用信息
预置条件:
1.路由中心计费系统安装完毕,并且正确初始化
2.安装了可选的计费维护对象
3.已经完成对移动和联通的多次计费

测试步骤:
1.从“平台信息”的 “应用信息”进入
预期结果:
正确收集了应用信息
测试结果:

 

 

 

 

 

 

 

 

 

 

 

 

 


 
6.4.3
测试编号:6.4.3
测试项目:平台信息自动获取
测试分项目:业务信息
预置条件:
1.路由中心计费系统安装完毕,并且正确初始化
2.安装了可选的计费维护对象
3.已经完成对移动和联通的多次计费

测试步骤:
1.从“平台信息”的 “业务信息”进入
预期结果:
正确收集了业务信息
测试结果:

 

 

 

 

 

 

 

 

 

 

 

 

 


 
6.4.4
测试编号:6.4.4
测试项目:平台信息自动获取
测试分项目:应用业务关联信息
预置条件:
1.路由中心计费系统安装完毕,并且正确初始化
2.安装了可选的计费维护对象
3.已经完成对移动和联通的多次计费

测试步骤:
1.从“平台信息”的 “应用业务关联信息”进入
预期结果:
正确收集了应用业务关联信息
测试结果:

 

 

 

 

 

 

 

 

 

 

 

 

 


 
6.4.5
测试编号:6.4.5
测试项目:平台信息自动获取
测试分项目:移动有效计费信息
预置条件:
1.路由中心计费系统安装完毕,并且正确初始化
2.安装了可选的计费维护对象
3.已经完成对移动和联通的多次计费

测试步骤:
1.从“平台信息”的 “移动有效计费信息”进入
预期结果:
正确收集了移动有效计费信息
测试结果:

 

 

 

 

 

 

 

 

 

 

 

 

 


 
6.4.6
测试编号:6.4.6
测试项目:平台信息自动获取
测试分项目:联通有效计费信息
预置条件:
1.路由中心计费系统安装完毕,并且正确初始化
2.安装了可选的计费维护对象
3.已经完成对移动和联通的多次计费

测试步骤:
1.从“平台信息”的 “联通有效计费信息”进入
预期结果:
正确收集了联通有效计费信息
测试结果:

 

 

 

 

 

 

 

 

 

 

 

 

 



6.4.7
测试编号:6.4.7
测试项目:平台信息自动获取
测试分项目:平台信息
预置条件:
1.路由中心计费系统安装完毕,并且正确初始化
2.安装了可选的计费维护对象
3.已经完成对移动和联通的多次计费

测试步骤:
1.从“平台信息”的 “平台信息”进入
预期结果:
正确收集了平台信息
测试结果:

 

 

 

 

 

 

 

 

 

 

 

 

 


6.5话务查询
6.5.1
测试编号:6.5.1
测试项目:话务查询
测试分项目:平台话务查询
预置条件:
1.路由中心计费系统安装完毕,并且正确初始化
2.已经完成对移动和联通的多次计费
3.安装查询构造器(路由中心)
测试步骤:
1.启动查询构造器,进入固定模式查询
2.限定查询时间区间
3.限定查询路径为“平台”
4.对其他选项采用组合方式
5.将构造结果放到SQLSERVER工具中运行
预期结果:
查询结果准确
测试结果:

 

 

 

 

 

 

 

 

 



6.5.2
测试编号:6.5.2
测试项目:话务查询
测试分项目:通道话务查询
预置条件:
1.路由中心计费系统安装完毕,并且正确初始化
2.已经完成对移动和联通的多次计费
3.安装查询构造器(路由中心)
测试步骤:
1.启动查询构造器,进入固定模式查询
2.限定查询时间区间
3.限定查询路径为“通道”
4.对其他选项采用组合方式
5.将构造结果放到SQLSERVER工具中运行
预期结果:
查询结果准确
测试结果:

 

 

 

 

 

 

 

 

 

 

 

 
6.5.3
测试编号:6.5.3
测试项目:话务查询
测试分项目:应用话务查询
预置条件:
1.路由中心计费系统安装完毕,并且正确初始化
2.已经完成对移动和联通的多次计费
3.安装查询构造器(路由中心)
测试步骤:
1.启动查询构造器,进入固定模式查询
2.限定查询时间区间
3.限定查询路径为“应用”
4.对其他选项采用组合方式
5.将构造结果放到SQLSERVER工具中运行
预期结果:
查询结果准确
测试结果:

 

 

 

 

 

 

 

 

 

 

 

 


二.参考资料
[01] 中华人民共和国国家标准:信息技术 -- 软件生存期过程,GB/T 8566。
[02] 中华人民共和国国家标准:软件工程术语,GB/T 11457。
[03] 中华人民共和国国家标准 :计算机软件产品开发文件编制指南,GB 8567-88 。
[04] 无线数据增值业务平台v2.1:系统概要设计说明书。
  [05].软件工程 清华大学出版社

 

发表于 @ 2008年04月01日 23:26:00|评论(loading...)|编辑

新一篇: 经典算法设计方法大杂烩 | 旧一篇: Unix文件系统模拟实验报告+源代码+代码注释与分析

评论

#hucunzhen 发表于2008-05-02 13:31:37  IP: 117.22.87.*
都说是全的,却做手脚
发表评论  


登录
Csdn Blog version 3.1a
Copyright © ctu_85