资源描述
Software High level Design Specification
软件概要设计说明书
Doc ID:
State:
Draft¢ Reviewed£ Initial£ Revised£
Doc Type:
SW Req£ SW Des¢ SCM£ TEST£ SW Plan£ SQA£
Project: 短信收发服务
Module:
Current Version: v0.0.1
Previous Version:
Pages:
Release Date:
Composer
Reviser
Reviewer
Related
SW Tester
SCM
SQA
QA
SPM
PM
Approver
SSM
REVISION HISTORY
NO.
Date
Modify Cause
Description
Version
Composer
Approver
Review ID
1
2010-6-22
短信服务程序通信协议
0.0.2
TABLE OF CONTENTS
1 介绍 Introduction
1.1 目的 Purpose
a. 开发 SmsServer 短信收发服务,用于基站监控收发短信
1.2 范围 Scope
TSTester 主要运行平台为Linux 和 Windows 。 系统开发语言为C++/C , 系统主要用到一些跨平台的库作为adapter层。
1.3 术语、缩略语定义 Definitions, Acronyms, and Abbreviations
SmsServer
短信收发服务
Boost
Boost C++ Libraries
XML
Extensible Markup Language
WBXML
Wap Binary XML
WAP
Wireless Application Protocol
STL
C++ Standard Libraries
LUA
轻量、可扩展的
Luabind
Lua 的c++ 封装
Logxx
开源的日志组件
1.4 参考资料 References
1. 基站监控中心系统设计方案.doc
1.5 文档路径 Document Location
无
2 分析 Analysis
2.1 设计选择 Design Alternatives
None.
2.2 运行环境 Running Environment
Windows/Linux
2.3 尚未解决的问题 To Be Resolved Issue
3 结构设计Architecture Decomposition
系统主要分为5个子模块,服务管理模块完成所有逻辑处理,短信收发模块用于收发短信,网络模块处理外部的网络通信,适配层主要是一些跨平台库,及公共库,单片机控制模块用于对模块进行开关机操作
3.1 数据包结构及通信过程
说明:
序号
域
说明
1.
包长
数据包长度(不包括包长度域本身)
2.
包类型
序号
包类型
标识
1
普通数据包
0x00
2
回应包
0x01
3.
源序列号
根据通讯需要产生的序列号(标识号).
4.
目的序列号
应答或确认的源包序列号(标识号).(非应答或非确认时目的序列号为0)
5.
数据
数据包体(XML格式).
组成:数据内容
1.数据内容
格式如下:
<packet type=”数据类型“ version=”版本号“>
<!—字段列表-->
<Record>
< SendPhoneNo>13987665666</SendPhoneNo>
< SMSContent>1111111111</SMSContent>
< RecvTime>2009-3-21 16:07:35.567</RecvTime>
</Record>
<Record>
….
</Record>
</packet>
备注: 回应包为数据内容为空的数据包,用于表明对方已经收到此数据包
3.1.1 短信服务和客户端的通信协议 01xxx
3.1.1.1 客户端连上短信服务程序后定时发送心跳包01001
类型:01001
方向:客户端->短信服务程序
应答:是
确认:
方式:TCP
描述:当客户端连上短信服务程序后需要定时发送心跳包,数据内容为空
数据:
序号
字段名
类型
为空
描述
示例:
<packet type=”01001” version=”1.0”>
</packet>
3.1.1.2 客户端请求发送短信01002
类型:01002
方向:客户端->短信服务程序
应答:是
确认:01003
方式:TCP
描述:当客户端需要发送短信的时候,请求短信服务程序发送短信
数据:
序号
字段名
类型
为空
描述
1
OtherPhoneNo
string
否
接收短信号码
2
SMSContent
String
是
短信内容
示例:
<packet type=”01002” version=”1.0”>
<Record>
< OtherPhoneNo >13987665666</ OtherPhoneNo >
< SMSContent>1111111111</SMSContent>
</Record>
</packet>
3.1.1.3 短信服务程序确认发送结果01003
类型:01003
方向:短信服务程序->客户端
应答:是
确认:
方式:TCP
描述:短信服务程序执行完发送短信命令后,回复发送结果
数据:
序号
字段名
类型
为空
描述
1.
ResultCode
int
否
结果码;
0:成功;
>0:异常代码;
2.
OtherPhoneNo
string
否
接收短信号码
3.
SMSContent
String
是
短信内容
4.
SendStartTime
String
否
发送开始时间 格式:2009-3-21 16:07:35.567
5.
SendEndTime
String
否
发送结束时间 格式:2009-3-21 16:07:35.567
示例:
<packet type=”01003” version=”1.0”>
<Record>
< OtherPhoneNo >13987665666</ OtherPhoneNo >
< SMSContent>1111111111</SMSContent>
</Record>
</packet>
3.1.1.4 短信服务程序收到短信后发送接收内容给客户端01004
类型:01004
方向:短信服务程序->客户端
应答:是
确认:
方式:TCP
描述:由省中心数据中心根据集团下发的测试点收集命令查询并返回给集团中心测试点结果
数据:
序号
字段名
类型
为空
描述
1.
LocalPhoneNo
string
否
短信发送号码
2.
OtherPhoneNo
String
否
短信接收号码
3.
RecvTime
String
否
接收到短信的时间 格式:2009-3-21 16:07:35.567
4.
SMSContent
String
否
短信内容
示例:
<packet type=”01004” version=”1.0”>
<Record>
<LocalPhoneNo >13987665666</LocalPhoneNo >
<OtherPhoneNo>13987665666</OtherPhoneNo>
< RecvTime>2009-3-21 16:07:35.567</RecvTime>
<SMSContent>1111111111</SMSContent>
</Record>
</packet>
3.2 系统结构图 System Architecture Diagram
3.3 子模块设计 Sub-module
1) 服务管理模块
控制短信服务程序的所有逻辑,
1. 系统初始化,及配置读取与更新
2. 对短信模块收到的短信,通过网络模块进行转发到注册到本服务的客户端
3. 对网络包中的发送短信请求进行处理,并通过短信模块进行发送
4. 管理注册到本服务的所有客户端
状态图:none
时序图:none
2) 短信收发模块
完成短信的编码解码工作,并通过串口进行短信发送
状态图:none
时序图: none
3) Net模块
网络模块,短信服务与其他系统的网络通讯在此模块中实现。主要包括
接收数据包,发送数据包,解析数据包,打包数据包。网络模块是作为tcp服务起动的,监听2701 端口
状态图:none
时序图:none
4) 单片机控制模块
主要用于对模块的开关机操作
状态图:none
时序图:none
5) adapter 层
Adapter 层是一个适配层,主要有类型的定义和c++库的封装和一些工具函数的封装。实现跨平台
状态图:none
时序图: none
3.4 模块工作机制
None
4 接口设计 Interface Design
具体接口函数见SmsServer 工程代码
5 总体数据结构设计
/* Other Error base from 9000 .. 9999 */
输出信息
输出形式
含义
处理方法
5.1 系统维护设计 System Maintain Design
{
说明为了系统维护的方便而在程序内部设计中增加的一些专门用于系统的检查与维护的检测点和专用模块。如debug 信息,错误记录,关机记录等模块。
可从如下方面介绍:a, 内容描述; b, 资源需求;c, 设计流程
This section describes the special designs, if any, for the purpose to make maintaining of the system easier or more convenient. These designs include some probes (trace/assert) and/or special modules (trace module), which is used to inspect and maintain the system.
}
6 单元测试用例 Unit Test Case
{
根据需求文档,列出各个功能的单元测试用例,可以参见单元测试用例集。
According to SRS, please list all test cases.
}
7 文件结构 File Structure
{
在此处给出该模块的文件结构设计,如果采用白盒测试,请列出测试文件
Please give the file structure of this module.
}
8 附 Appendix
8.1.1 类图
展开阅读全文