当前位置:文档之家› demo-设计说明书

demo-设计说明书

系统设计说明书

1.目标与范围

建立号码库系统的目的是为了有效管理公司的号码资源,在日常业务推广中能够正确、充分而高效地利用,减少人工操作,提高工作效率。

营销系统和号码库管理系统密切相关,本文档一并表述。

首期号码库系统采用数据库存储,时机成熟采用文件索引的存储策略。

2.术语与缩写

黑名单:不允许有任何下行短信,即便有上行短信。

黄名单:禁止营销。可以有正常的上下行短信

3. 系统体系结构设计

3.1. 体系结构

群发

中央音乐平台

本地接入短信网关

黑名单服务

SMS/WapPush

SOAP

SMS RMI

Query MSISDN

RMI

业务支撑系统

数据库

QueryTask/Lo adNumber RMI

3.2. 系统组成部分

1、

业务支撑子系统:提供UI ,完成入库安排、出库安排、营销安排以及相应的查询页面。提供号码管理、黑名管理、网关管理等功能。

2、

号码管理子系统:完成号码入库、号码出库、号码归属地判定、黑名单过滤等功能。注:该系统首期采用数据库实现。随号码量增长,转到文件索引方式存储。

3、

营销子系统:根据营销安排,完成短信/WAP push 信息营销功能。包括流量控制、监控报警、日志输出等模块。

3.3. 系统运行流程

3.3.1.入库流程

业务支撑系统号码库系统

操作员

入库安排

入库通知

黑名单过滤

归属地判定

入库

入库回执

流程说明:

1.操作员通过操作界面将要入库的号码文件(.zip)及其号码属性上传至业务支撑系统。

2.业务支撑系统接收号码文件并存储在本地文件系统。

3.业务支撑系统在t_msisdn_import表中插入入库请求记录,并置字段status=1。

4.号码库系统扫描t_msisdn_import,获取新的入库请求并获取号码文件,并置字段status=2

5.号码库系统进行黑名单过滤、归属地判定等操作,并插入或更新手机号码记录。

6.入库完毕后,号码库系统负责更新t_msisdn_import,并置字段status=3

3.3.2.营销流程

操作员

业务支撑系统号码库系统群发系统

群发安排

出库通知

出库回执

群发通知

群发回执

流程说明:

1.操作员通过业务支撑系统安排群发。

2.业务支撑系统生成群发记录到t_msisdn_sender,如号码需从号码库中提取,则下一步,否则转到6

3.业务支撑系统根据群发需求生成号码提取需求记录插入到t_msisdn_export表,并置字段status=0

4.号码库系统扫描t_msisdn_export,获取号码提取条件,提取号码并置字段status=1。

5.号码提取完毕后,号码库生成号码文件,并更新t_msisdn_export,并置字段status=2。

6.群发系统扫描群发t_msisdn_sender和t_msisdn_export,获取号码文件后开始群发。

7.群发系统每隔n分钟,将当前的群发数量、成功发送数量等数据回写到t_msisdn_sender表中。

8.群发完毕或预定义群发终止时间到达,群发终止,并更新t_msisdn_sender表。

3.4. 网络拓扑

北京IDC 局域网

全网本地接入网关

218.206.68.34

四川IDC 局域网

全网群发系统10.128.1.16

全网群发系统10.128.1.14业务支撑系统

10.128.4.249

4.数据库设计4.1. 物理模型设计

FK_T_AREA_R_AREA_PR_T_PROVIN

FK_T_PHONE__REFERENCE_T_AREA

FK_T_MSISDN_REFERENCE_T_PROVIN

FK_T_MSISDN_REFERENCE_T_AREA

FK_T_MSISDN_REFERENCE_T_MSISDN FK_T_MSISDN_REFERENCE_T_AREA

FK_T_MSISDN_REFERENCE_T_MSISDN

黑名单

手机号码

号码类型

添加时间

添加操作员

VARCHAR(20)

number(1)

DAT E

NUMBER(8)

地区列表

地区编码

省份表_省份编码地区名称varchar2(5) varchar2(5) varchar2(20)

省份表

省份编码省份名称varchar2(5)

varchar2(20)

号段表

号段

地区编码

运营商类型

号段品牌

varchar2(7)

varchar2(5)

number(1)

number(2)

号码入库表

入库批次

入库批次名称

省份编码

地区编码

运营商类型

用户类型

用户品牌

俱乐部会员状态

消费状态

活跃程度

是否搜索用户

号码来源

号码文件名称

号码数量

成功入库号码数量

当前操作状态

入库开始时间

操作员ID

号码提供者

入库安排时间

备注

number(9)

varchar(255)

varchar2(5)

varchar2(5)

number(1)

number(1)

number(1)

number(1)

number(1)

number(1)

number(1)

number(1)

varchar2(255)

number(10)

number(10)

number(2)

DAT E

INT EGER

varchar2(20)

DAT E

varchar2(255)

号码表

手机号码

入库批次

地区编码

出库次数

上次提取日

varchar2(11)

number(9)

varchar2(5)

number(5)

number(9)

群发安排表

群发批次

群发名称

网关编号

接入号码

扩展号码

消息类型

消息正文

发送速度

号码来源

号码文件名称

群发号码数量

成功发送号码数量

群发省份

群发地区

群发类型

当前操作状态

群发开始时间

群发终止时间

实际群发开始时间

实际群发完成时间

操作员ID

群发安排时间

备注

INT EGER

varchar(255)

varchar2(6)

varchar2(20)

varchar2(20)

number(1)

varchar2(2000)

number(9)

number(1)

varchar2(255)

number(10)

number(10)

varchar2(5)

varchar2(5)

number(2)

number(2)

DAT E

DAT E

DAT E

DAT E

INT EGER

DAT E

varchar2(255)

号码出库表

群发批次

入库批次

省份编码

地区编码

运营商类型

用户类型

用户品牌

活跃程度

是否搜索用户

群发间隔天数

号码来源

出库号码数量

成功出库号码数量

当前操作状态

号码文件名称

出库时间

备注

INT EGER

INT EGER

varchar2(5)

varchar2(5)

number(1)

number(1)

number(1)

number(1)

number(1)

number(2)

number(1)

number(10)

number(10)

number(2)

varchar2(255)

varchar(10)

varchar2(255)

4.2. 表定义

4.2.1.号段表

名称代码数据类型注释

号段prefix varchar2(7)

地区编码area_id varchar2(5)

运营商类型carrier_id number(1) 1.移动;2.联通;3.网通;4.

电信

号段品牌mobile_type number(2) 0:未知;1.全球通;2.动感地

带 3.神州行;4.联通G网;

5.联通C网;

6.小灵通

4.2.2. 号码入库表

名称代码数据类型注释

入库批次import_id number(9) 从1开始,自增序列

入库批次名称import_name varchar(255) 末位为8为全网营销,其他

为地网营销

省份编码province_id varchar2(5)

地区编码area_id varchar2(5) 000:表示未知地区

运营商类型carrier_id number(1) 1.移动;2.联通;3.网通;

4.电信

用户类型user_type number(1) 0:未知;1.彩铃用户;2.

非彩铃用户

用户品牌mobile_type number(1) 0:未知;1.全球通;2.动感

地带 3.神州行;4.联通G

网;5.联通C网;6.小灵通

俱乐部会员状态club_status number(1) 0:未知;1:非会员2.普通会

员 3.高级会员

消费状态consume_status number(1) 0.未知;1高端用户 2 中端

用户3低端用户

活跃程度active_degree number(1) 0..9;共9级

是否搜索用户is_search number(1) 0:否;1:是

号码来源source number(1) 1:BI提供;2:销售提供

号码文件名称file_name varchar2(255) 文件名全称

号码数量loader_count number(10)

success_count number(10)

成功入库号码数

当前操作状态status number(2) 0:号码传输中;1:号码就绪;

2:号码入库中;3号码入库

完毕;其他:错误

入库开始时间loader_date DA TE

操作员ID operator_id INTEGER

号码提供者provider varchar2(20)

入库安排时间order_date DA TE

备注memo varchar2(255)

4.2.3. 号码出库表

名称代码数据类型注释

营销批次sender_id INTEGER 从1开始,自增序列

入库批次import_id INTEGER

省份编码province_id varchar2(5)

地区编码area_id varchar2(5) 000:表示未知地区

运营商类型carrier_id number(1) 1.移动;2.联通;3.网通;

4.电信

用户类型user_type number(1) 0:未知;1.彩铃用户;2.

非彩铃用户

用户品牌mobile_type number(1) 0:未知;1.全球通;2.动感

地带 3.神州行;4.联通G

网;5.联通C网;6.小灵通活跃程度active_degree number(1) 0..9;共9级

是否搜索用户is_search number(1) 0:否;1:是

营销间隔天数days number(2) 至上次营销的时间间隔

号码来源source number(1) 1:BI提供;2:销售提供出库号码数量export_count number(10)

success_count number(10)

成功出库号码数

当前操作状态status number(2) 0:号码未出库;1:号码出库

中;2:号码就绪;其他:错

号码文件名称file_name varchar2(255) 文件名全称

出库时间export_time varchar(10) 出库操作耗费时间的描述备注memo varchar2(255)

4.2.4. 号码表

名称代码数据类型注释

手机号码msisdn varchar2(11)

入库批次loader_id number(9) 从1开始,自增序列

地区编码area_id varchar2(5)

出库次数export_count number(5)

上次提取日export_day number(9) 从1970.1.1开始的天数

4.2.

5. 地区列表

名称代码数据类型注释

地区编码area_id varchar2(5)

province_id varchar2(5)

省份表_省份编

地区名称area_name varchar2(20)

4.2.6. 省份表

名称代码数据类型注释

省份编码province_id varchar2(5)

省份名称province_name varchar2(20)

4.2.7.营销安排表

名称代码数据类型注释

营销批次sender_id number(9) 从1开始,自增序列

营销名称sender_name varchar(255)

网关编号gateway_id varchar2(6) 通过中央平台发送的已8结尾。接入号码sp_no varchar2(20)

扩展号码ext_no varchar2(20)

消息类型msg_type number(1) 0:普通短信;1:长短信;2:W AP

PUSH

消息正文msg_content varchar2(2000) WapPush标题和URL之间用


分隔。

发送速度speed number(9) 单位:条/毫秒

号码来源source number(1) 0:号码库;1:操作员提供

号码文件名称file_name varchar2(255) source=1时有意义;文件名全称监控手机号码monitor_msisdn varchar2(255) 号码间用逗号分隔

营销号码数量sender_count number(10) 号码来源为1时有意义

real_count number(10)

实际发送的号码

数量

success_count number(10) 由营销系统在发送完毕后更新成功发送号码数

营销省份province_id varchar2(5)

营销地区area_id varchar2(5)

营销类型sender_type number(2) 0:普通营销;1.针对活动的营销

2:UCIP营销;3:IVR营销

4:竞价营销;5:运营商营销

6:结信营销;7、IVR+竞价营

当前操作状态status number(2) 0:号码准备中;1:号码就绪;2:

号码发送中;3号码发送完毕状态描述status_desc varchar2(255) 错误状态描述

营销开始时间launch_date DA TE

营销终止时间over_date DA TE 装载营销任务时,会检测但是是

否是否超过终止时间,是则不回

启动营销任务。

real_launch_date DA TE 由营销系统在发送完毕后更新实际营销开始时

real_over_date DA TE 由营销系统在发送完毕后更新实际营销完成时

状态更新时间cur_return_time DA TE 营销程序回写营销状态的时间当前发送数量cur_send_count number(10)

cur_success_count number(10)

当前成功发送数

发送线程个数send_thread_cnt number(3)

操作员ID operator_id INTEGER

营销安排时间order_date DA TE 安排营销任务的时间

备注memo varchar2(255)

4.2.8. 营销日志

名称代码数据类型注释

营销批次sender_id number(9) 从1开始,自增序列

手机号码user_id varchar2(22)

发送时间send_dt date

发送结果result varchar(6) 000000:成功

4.2.9. 黑名单

名称代码数据类型注释手机号码msisdn V ARCHAR(20)

号码类型type number(1) 1.黑名单;2.黄名单添加时间enter_date DA TE

添加操作员operatorid NUMBER(8)

5.营销系统设计与维护

5.1. 设计原则

1.营销进程在Crontab中启动,最小时间间隔3分钟(为避免数据库异常造成重复营销)。

2.每次营销进程运行只启动一个待营销任务,多线程发送。该进程用Linux 系统下$RANDOM来标识,称之为进程标识。

3.每营销任务输出两个log。

一个为营销日志,log文件名格式为:营销进程标识-营销任务ID-营

销开始时间.log。记录格式为:手机号码,营销任务ID,发送结果

一个为营销Debug日志(log4j),记录程序运行情况,文件名格式为:

Batch_营销进程标识_进程启动时间.log

4.营销速度的策略:设定最大线程个数为m,营销速度n条/秒

当1>n时,营销程序创建1个线程,每线程1/n秒发送一条。

当1

当n>m时,营销程序创建m个线程,每线程发送速度为n/m条。

5.2. 营销流程

1.检索t_msisdn_sender表,所负责省份是否存在待执行营销任务。没有,程序退出。否则下一步;

2.检查营销各个参数是否正确,错误,程序退出。

3.http方式下载号码(压缩方式)文件,将号码文件缓存在tmp目录中。

4.解压缩并装载号码文件,根据号码数量,计算启动的线程个数和每线程发送速度。

5.如果营销网关编号尾数为8。则装载中央音乐平台发送接口模块。如果不为8,则为全网转地网营销,装载本地接入网关RMI接口模块。如营销类型为WapPush,则装载全网WapPush模块!

6.给营销监控号码发送营销开始信息,发送营销语。

7.启动发送线程,进行营销。如果营销为当当前时间大于系统预设终止时间时,营销线程退出。

8.启动营销监控线程,回写营销状态:包括号码数量、成功发送数量等。

9.营销完毕,给营销监控号码发送营销统计信息,并发送营销语。

10.营销终止,回写营销状态。

5.3. 程序说明

程序位置:mineBss项目net.unison.minebss.batchsend

5.4. 配置文件

1.启动脚本:startBatchSend.sh

#!/bin/sh

PA TH=$PA TH:/usr/local/java/bin:.

JA V A_HOME=/usr/local/java

export PA TH JA VA_HOME

LANG=zh_CN.GBK

LC_ALL=zh_CN.GBK

export LANG LC_ALL

SMS_HOME=/usr/local/mine/minebss

START_CP=$SMS_HOME/build:$SMS_HOME/conf:$SMS_HOME/lib

for file in $SMS_HOME/lib/*.jar ;

do

START_CP=$START_CP:$file;

done;

export START_CP

CURTIME=` date +%Y%m%d%H%M%S`

cd $SMS_HOME

$JA VA_HOME/bin/java -Xms128M -Xmx512M -cp $START_CP net.unison.minebss.batchsend.BatchMain

$CURTIME$RANDOM >/dev/null2>&1 &

2.配置文件说明:batchSender.xml

class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect

true

net/unison/minebss/batchsend/dao/TMsisdnExport.hbm.xml net/unison/minebss/batchsend/dao/TMsisdnSender.hbm.xml

class="net.unison.minebss.blacklist.BlackListDao">

class="net.unison.iodplatform.core.transfer.sms.WapPushSender">

http://218.205.238.250:9903/axis1/services/WapPush

1128001

898123998237

class="net.unison.minebss.batchsend.GlobalMessageSender">

class="net.unison.minebss.batchsend.LocalMessageSender">

000

020

021

022

0351

0871

0471

0891

0951

0991

010

023

024

025

027

028

029

0311

0371

0431

0451

0531

0551

0571

0591

0731

0771

0791

0851

0898

0931

0971

name="downloadURL">

5.5. 营销日志格式

5.5.1.BI采集的日志

用途:为BI营销分析提供。每营销任务一个。

文件名:进程标识(yyyyMMddHHmmssnnnnn)-营销ID-进程启动时间.log

记录:发送时间(yyyyMMddHHmmss),手机号码,发送结果,发送时间(毫秒) 如:20070823133055,135********,000000,1625

5.5.2.Debug日志

用途:为运维人员检测程序状态提供。每营销任务一个。

文件名:batch_营销进程标识_进程启动时间.log

5.5.3.营销入库日志

用途:为实时日志查询系统提供。每N分钟生成一个,实时入库。

文件名:batchyyyyMMddhhmm.log

5.6. 部署

5.6.1.营销

服务器IP:10.128.1.16;10.128.1.14

位置:/usr/local/mine/minebss

目录结构:

bin:启动脚本

conf:配置文件

build:程序文件

lib:Jar包

logs:Debug日志

data/bilog:BI日志

data/buf:营销入库日志

tmp:营销号码文件缓存目录

5.6.2.本地接入网关

服务器IP:218.206.68.49;10.128.1.20;10.128.1.22 位置:/usr/local/mine/minebss

目录结构:

bin:启动脚本

conf:配置文件

build:程序文件

lib:Jar包

logs:Debug日志

data/bilog:BI日志

data/buf:营销入库日志

tmp:营销号码文件缓存目录

6.营销信息查询接口定义

查询地址:

http://211.137.86.84/mineBss/batchSend/querySendType.jsp?start=?&end=?&sendTyp e=?

参数说明:

start 查询开始时间如20071201

end 查询结束时间如20071205

sendType 查询营销的类型0 普通营销;1 活动营销;2 UCIP营销;3 IVR营销;4 竞价营销;-1 其他营销

查询结果说明:

结果已如下字段排列

营销批次|营销名称|号码文件名称|营销号码数量|成功发送号码数量|营销省份|营销地区|营销类型|营销开始时间|消息正文|备注

备注格式为:订购命令,铃音ID;

7.个性化营销

7.1. 定义

个性化营销指对不同的用户号码发送不同的短信内容和WapPush。

相关主题
文本预览
相关文档 最新文档