详细设计说明书_专业版_企业版
ChinaPostService
作者:何潮
修正:
完成日期:2009-12-30
签收人:
签收日期:
1 引言........................................................................................................................................... 3
1.1 编写目的 ....................................................................................................................... 3
1.2 读者对象 ....................................................................................................................... 3
1.3 定义 ............................................................................................................................... 3
1.4 参考资料 ....................................................................................................................... 3
2 范围........................................................................................................................................... 4
2.1 系统主要目标 ............................................................................................................... 4
2.1.1 客户授权信息 ................................................................................................... 4
2.1.2 短信任务生成 ................................................................................................... 4
2.1.3 短信发送 ........................................................................................................... 4
2.1.4 短信接收 ........................................................................................................... 4
2.1.5 通讯录 ............................................................................................................... 5
2.1.6 短信汇总统计 ................................................................................................... 5 2.2 实现
....................................................................................................................... 5
3 软件系统结构设计 ................................................................................................................... 5
3.1 软件体系结构图 ........................................................................................................... 5 3.2 短信服务系统功能结构图 ........................................................................................... 6 3.3 短信流程业务引擎设计 ............................................................................................... 7
3.3.1 引擎的基本流程 ............................................................................................... 7
3.3.2 引擎的详细说明(下面以MO为例,三大服务大同小异) ....................... 8
3.3.3 业务引擎相关数据表说明 ............................................................................. 10
4 程序功能/模块设计说明........................................................................................................ 11 4.1 功能:变量处理功能 ................................................................................................. 11
4.1.1
分析 ......................................................................................................... 11
4.1.2 内容转换 ......................................................................................................... 12
4.1.3 截取字符串 ..................................................................................................... 13
4.1.4 索引 ................................................................................................................. 14
4.1.5 获取信息开头 ................................................................................................. 14 4.2 功能:数据库操作功能 ............................................................................................. 15
4.2.1 查询操作 ......................................................................................................... 15
4.2.2 非查询操作 ..................................................................................................... 16
4.2.3 存储过程/函数 ................................................................................................ 17 4.3 功能:短信功能 ......................................................................................................... 17
4.3.1 短信审批 ......................................................................................................... 17
4.3.2 发送短信 ......................................................................................................... 18
4.3.3 批量发送 ......................................................................................................... 19 4.4 功能:网络服务 ......................................................................................................... 20
4.4.1 网络服务 ......................................................................................................... 20 4.5 功能:其它功能 ......................................................................................................... 22
4.5.1 条件分支 ......................................................................................................... 22
4.5.2 闹钟唤醒 ......................................................................................................... 22 4.6 客户授权信息 ............................................................................................................. 24
4.6.1 流程逻辑 ......................................................................................................... 24
4.7 短信任务生成/短信发送 ........................................................ 23
4.8 短信接收 ................................................................................. 23
4.9 通讯录 ..................................................................................... 23
1
1.1
本说明书针对邮政短信业务系统,概括地描述了系统的设计,它以需求
说明为依据;同时该文档将作为产品的实现与进度控制的依据。并作为二次
开发的参考资料。
1.2
开发人员、测试人员,项目经理,二次开发人员等关系人。
1.3
ChinaPostService:邮政短信业务系统
ContentConversion:内容转换
Analyze:内容分析
Branch:条件分支
SubString:截取字符串
Index:索引
StartWith:获取信息开头
DBSelect:查询操作
DBNotSelect:非查询操作
CallProc:存储过程
SendMSMS:批量发送短信
Clock:闹钟唤醒
SendSMS:发送短信
WebServices:网络服务
SMS_Approval:短信审批
1.4
短信服务系统需求规格说明书.doc
2
2.1
邮政短信业务系统:以广州市邮政局现有的短信接口作为统一的“自
邮一族”短信服务端口,与移动、联通及电信公司申请相应的短信发送接口,
并与我局现有台实现互联;实现的功能有:客户授权信息、短信任务生成、
短信发送、短信接收、短信汇总统计等功能。
2.1.1
通过MO服务:该功能,可查询会员的短信授权日期、授权手机号码、
会员信息、服务项目。另外,系统需要提供相关的数据导入接口,允许按照既定
的文件
向系统导入客户数据,相关客户数据导入后先与已有数据进行匹配,
对已存在数据进行更新,对于未存在的新数据则生成新的客户数据。
2.1.2
系统根据服务类型和客户资料,自动生成或手工生成短信任务。每个短信任
务包括发送对象,发送时间,发送内容三部分内容,在设定相关变量后,系统自
动根据呼出的变量设置从客户数据库中提取相关的客户数据,生成相关短信任
务。
2.1.3
根据系统生成的短信任务列表,向目标对象发送对应短信内容。包括业务提
醒、服务通知、产品信息和活动通知、节日祝福等内容。该功能窗口拥有导入、
添加接收人,添加、撰写短信内容,发送短信,保存短信等功能。
2.1.4
通过该功能可查询由客户端发送的信息,包括查询短信、预定短信、反馈
短信等类型。
2.1.5
该功能包括联系人组操作、联系人操作、查找联系人、导入/导出联系人等功能。
2.1.6
通过该功能,可查看客户发送和接收的短信历史详情;可实现对短信发送
记录的查询和发送成功与否的历史统计;同时可导出发送失败的记录以作重发操
作;通过汇总分析短信数据,以提高服务针对性和有效性。 2.2
本系统在已有的web功能与短信网关相关功能的基础进行开发。
系统提供,三大服务:MO服务,MT服务,回执服务。
十四个功能:内容转换,内容分析,条件分支,截取字符串,索引,获取信
息开头,查询操作,非查询操作,存储过程,批量发送短信,闹钟唤醒,发送短
信,网络服务,短信审批。
通过相关服务与功能,操作人员可以自由地设计流程,完成系统的相关系统
目标。
3
3.1
图:3.1
3.2 短信服务系统功能结构图
图:3.2
3.3 短信 3.3.1
开始
获取业务ID
加载业务流程变量、初始化
获取入口
环节ID
开始执行步骤
异常结束执行相应步骤功能函数出错
是否有下一步骤
获取环节
ID
否
是
结束
图:3.3
整个流程执行过程中,变量临时储存对象、储存下一环节步骤变量为全局,整个流程
中可防问。
3.3.2 MO
1
图:3.4
图:3.5 图:3.5说明
业务流程类,多线程接口。
m_curActivityID:环节ID
m_vars :变量存储
m_cctin:短信体
m_FlowId:流程ID
m_class_name:环节执行的类型 m_sp_no:短信子端口
m_BusinessId:业务ID
m_rpt:回执说明
m_gotoActi:环节中转说明
Init():初始化变量,查找入口环节。 Run():执行环节流向。
Execute():环节的执行。
Approval():审批功能执行
2BusiFlow
/**
* 控制环节流转.
*/
public void run() {
while (true) {
// 判断是否有要处理的步骤
if(this.m_curActivityID==null)
{this.m_curActivityID="";}
if (this.m_curActivityID.equals("")) {
System.out.println("流程完成。");
break;
} else {
this.execute();
}
}
/**
* 环节执行
*/
public void execute(){
//根据环节ID取环节执行的类型(执行的功能的类)
------- this.m_class_name=?
//查找并初始化功能类,并执行 Object obj=Class.forName("org.mo4j.chinapostservice."+m_class_name).newInstance();
ActiBaseClass bc = (ActiBaseClass)obj;
------;
bc.execute();
//查找下一个环节ID 或者查找中转的环节ID
this.m_curActivityID = "";
说明: ActiBaseClass为所有功能类的基类,用于传递参数(变量)。 3.3.3
Init()
1. 用户上行短信 根据SP号码(子端
,在MO中是不能在重复的),在
CP_Business_Flow 流程业务 中找到对应 业务ID(Business_Flow_ID 流水号)
2. 根据 业务ID,在CP_Flow_Def 流程定义 中找到 主流程ID。并初始化三个元变量。
(phoneNo,smsCotent,smsCode)——手机号,短信内容,SP号码。请不要在页面中改
动这个三变量的名称。
3. 根据 主流程ID,在CP_Activity_Def 流程环节信息 中找到 入口环节ID(ActivityID 流
水号)。
execute()
4. 根据 环节ID,组合CP_Activity_Def 流程环节信息 与CP_Acti_Config 步骤配置表 中
找到要执行功能的Class_Name 类名(功能名)。其中CP_Activity_Def 的
ActivityExeType对应CP_Acti_Config的ID。
5. 根据Class_Name 类名(如Clock),在对应的服务目录中查找class文件。并执行。
6. 正常执行后。A:根据 当前环节ID,在CP_Route_Rel 路由关系表 中找到下一个环节
ID,并重设置当前环节ID。B:根据跳转设置当前环节ID
run()
4 /
4.1
4.1.1
编号:Analyze
名称 内容分析 模块代号 Analyze 功能 用于按分隔符,分拆短信。分拆后保存到相应变量。 要求 无
限制条件 无
1. 解析变量:变量(string) 输 入 2. 分隔符:常用符号(以英文输入法输入) 输 出 1. 赋值变量:变量(string)
1. 无特别算法 算法逻辑 2. 特殊符号则转义
相关对象 环节功能,要在业务流程在体现 及接口
备注
1. 分隔符:常用符号(以英文输入法输入)
2. 变量字段存储的是变量对应的ID(整个系统统一这样,下文不再说明)
4.1.2
编号:ContentConversion
名称 内容转换 模块代号 ContentConversion
功能 用于大小写转换
要求 无
限制条件 无
1. 被转换内容:变量(string) 输 入 2. 选择大/小写转换
输 出 1. 转换后变量:变量(string)
算法逻辑 1. 无特别算法
相关对象 环节功能,要在业务流程在体现 及接口
备注
1. convert_type 转换类型:存储1(代表转换成大写)或者2(代表转换成小写)
4.1.3
编号:SubString
名称 截取字符串 模块代号 SubString
功能 按指定方式从字符串变量/字符串,中截取字符串 要求 字符串
限制条件 无
1. 设置对象 输 入 2. 设置位置
输 出 变量
算法逻辑
相关对象 环节功能,要在业务流程在体现 及接口
备注
如表在所述
4.1.4
编号:Index
名称 索引 模块代号 Index
功能 从字符串变量,中获取字符的位置
要求 字符串
限制条件 无
输 入 1. 设置对象与字符
输 出 变量
算法逻辑 无
相关对象 环节功能,要在业务流程在体现 及接口
备注
如表在所述
1.若没有找到相应字符,则保存变量值为:-1
4.1.5
编号:StartWith
名称 获取信息开头 模块代号 StartWith
功能 从字符串变量,中分截出指定开头字符串与其余字符串,分别保存到指定变量
要求 字符串
限制条件 无
输 入 设置对象与开头字符串
输 出 变量
算法逻辑 无
相关对象 环节功能,要在业务流程在体现 及接口
备注
如表在所述
1.变量都要设置
4.2
4.2.1
编号:DBSelect
名称 查询操作 模块代号 DBSelect
功能 从指定数据库中,执行SQL语句
要求 字符串
限制条件 正确的语句
SQL语句(可以在下拉中插入变量) 输 入 变量相关设置
记录集(可选可不选)
输 出 记录集数据行数(可选可不选)
指定行列对应的变量(可选可不选) 算法逻辑 无
相关对象 环节功能,要在业务流程在体现 及接口
异常跳转,请尽量设置一个结束步骤(或者非回调的环节)。不然容易出现死循备注 环。
如表在所述
4.2.2
编号:DBNotSelect
名称 非查询操作 模块代号 DBNotSelect
功能 从指定数据库中,执行SQL语句
要求
限制条件 正确的语句
SQL语句(可以在下拉中插入变量) 输 入
输 出 无
算法逻辑 无
相关对象 环节功能,要在业务流程在体现 及接口
异常跳转,请尽量设置一个结束步骤(或者非回调的环节)。不然容易出现死循备注 环。
如表在所述
4.2.3 /
编号:CallProc
名称 存储过程 模块代号 CallProc
功能 从指定数据库中,执行指定的存储过程
要求
限制条件 正确的语句
1存储过程名称,及参数(不能带返回) 输 入 2函数名称,能带返回
输 出 返回变量(可选)
算法逻辑 无
相关对象 环节功能,要在业务流程在体现 及接口
1:异常跳转,请尽量设置一个结束步骤(或者非回调的环节)。不然容易出现死
备注 循环。
2:该方法慎用。(尽量使用没参数存储过程)
如表在所述
4.3
4.3.1
编号:SMS_Approval
名称 短信审批 模块代号 SMS_Approval
功能 审批业务短信,待审批通过后下发业务短信给对象
要求
限制条件
1 业务内容
输 入 2 审批人
3 发送对象(导入到表:CP_AppUser 短信审批发送联系人)
输 出 无
算法逻辑
相关对象 环节功能,要在业务流程在体现 及接口
备注
如表在所述
如表在所述
1:ID为审批环节的环节ID
4.3.2
编号:SendSMS
名称 发送短信 模块代号 SendSMS
功能 发送短信
要求 只适用于MO
限制条件
1 发送对象
变量指定:变量可以是string/int/string[]一维/记录集一个字段或第一个字段
为号码
直接指定:可以多个,用“,”隔开。 输 入 2 发送内容
单一发送:在文本在编辑内容。
批量发送:string[]一维
3 尽量使用缺省方式(不然可能会使数据统计不一致)
输 出 无
算法逻辑
相关对象 环节功能,要在业务流程在体现 及接口
备注
如表在所述
4.3.3
编号:SendMSMS
名称 批量发送短信 模块代号 SendMSMS
批量发送短信(与发送短信功能雷同,增加发送时间限制,与二维数组与记录集二功能 个字段)
要求
限制条件 类型对应
A:内空指定
1 发送对象
变量指定:变量可以是string/int/string[]一维/记录集一个字段或第一个字段
为号码 输 入 2 发送内容
单一发送:在文本在编辑内容。
B:发送对象与发送内容都来自变量(二维数组/二列的记录集)
输 出 无
算法逻辑
相关对象 环节功能,要在业务流程在体现 及接口
备注
如表在所述
1.sms_contenct_obj 存放发送号码和内容对象:用于保存发送对象与发送内容都来自变量
(二维数组/二列的记录集)
4.4
4.4.1
编号:WebServices
名称 网络服务 模块代号 WebServices
功能 动态调用WebServices
要求 返回序列化后的数据(String)
限制条件
1. Velocity语句 输 入 2. 可以插入变量
org.apache.axis工具 输 出 1. 保存分支结果与分支中转
相关对象 环节功能,要在业务流程在体现 算法逻辑 及接口
备注
1.Params 参数列表:若有多个用“,”隔开。
public String say_array_() {
String[][] ss={{"1","222"},{"2121","65565"}};
ObjectOutputStream OOS=null;
ByteArrayOutputStream BAOS=new ByteArrayOutputStream();
try {
//将对象放入stream
OOS=new ObjectOutputStream(BAOS);
OOS.writeObject(ss);
} catch (IOException e) {
e.printStackTrace();
}
return this.setSer(BAOS);
}
//序列化
private String setSer(ByteArrayOutputStream BAOS){
byte[] buff=BAOS.toByteArray();
sun.misc.BASE64Encoder encoder = new sun.misc.BASE64Encoder();
String Sstr = encoder.encode(buff);
return Sstr;
}
1.
4.5
4.5.1
编号:Branch
名称 条件分支 模块代号 Branch
功能 按Velocity(Velocity 的
语言)分析语句,按结果执行不同的跳转
要求 无
限制条件 模板语言
1. Velocity语句 输 入 2. 可以插入变量
输 出 1. 保存分支结果与分支中转
算法逻辑 1. 无特别算法
相关对象 环节功能,要在业务流程在体现 及接口
备注
如表在所述
2. branch_index 条件数:跳转结果的数量(有多少个分支) 3. jump_conditions 分支条件:Velocity语句
4. jump_sort 跳转种类:1代表环节跳转,2代表子流程跳转(当有多个branch_index 条
件数时,jump_sort 跳转种类以“,”分隔。jump_result 跳转结果 与 jump_lab 跳转目
标 同样。)
5. jump_result 跳转结果:Velocity语句的结果
6. jump_lab 跳转目标:环节或者子流程的ID
4.5.2
编号:Clock
名称 闹钟唤醒 模块代号 Clock
功能 在有效期日期,有效天,有效时间段内,按指定分隔唤醒。
要求 无
限制条件 无
输 入 相关设置
输 出
算法逻辑 无特别算法
相关对象 环节功能,要在业务流程在体现 及接口
备注 若要循环,则在流程步骤结束后,用分支回调。
如表在所述
4.6
4.6.1