完整版消息中心构架设计说明书2.docx
《完整版消息中心构架设计说明书2.docx》由会员分享,可在线阅读,更多相关《完整版消息中心构架设计说明书2.docx(31页珍藏版)》请在冰豆网上搜索。
完整版消息中心构架设计说明书2
消息中心构架设计说明书
版本:
1.0
变更记录
序号
版本
变更说明
修改人/日期
审批人/日期
1
1.0
创建
李万鸿
11.文档介绍4
1.1文档目的4
1.2文档范围4
1.3读者对象4
1.4参考文献4
1.5术语与缩写解释4
2系统概述5
3设计约束6
4设计策略7
5系统总体结构8
6子系统N的结构与功能15
7开发环境的配置27
8运行环境的配置28
9测试环境的配置29
10其它30
11.文档介绍
1.1文档目的
消息中心接收别的系统发送的消息,再基于一定的规则以邮件、短信、消息等方式推送
消息到pc端和手机端,比如对于attendance迟到、早退、tour超时提醒等需要及时推送相应的信息给相关人员,中心对规则、用户、消息进行管理。
为此,根据“先进实用、稳定可靠”的原则设计本消息中心。
1.2文档范围
消息的接收、发送、保存,对应用用户的管理。
1.3读者对象
开发人员
1.4参考文献
1.5术语与缩写解释
缩写、术语
解释
QoSlevel
QualityofServicelevel
SD
系统设计,SystemDesign
2系统概述
系统主要完成消息的接收、发送和保存,再基于一定的规则以邮件、短信、消息等方式推送消息到pc端或手机,以及对用户、规则、消息进行管理。
系统接收来自别的系统应用用户的消息,然后基于一定的规则把消息进行推送。
3设计约束
1.系统必须遵循国家软件开发的标准。
2.系统用java开发,服务器中间件为tomcat。
3.系统必须稳定可靠,性能高,满足每天40-500万次的推送量。
4.保证消息的成功送达,如果不成功就重发。
4设计策略
1.系统高可用、高性能、易扩展,安全稳定,实用可靠,满足用户的需要。
2.系统可以进行扩展,增加推送的消息种类,增加消息推送的规则。
3.系统可以复用于别的系统的消息推送。
5系统总体结构
5.1系统架构设计
1.逻辑架构
系统采用接口用rocketMQ实现应用用户的消息接收,用drools依据一定的规则进行消息转发,发送邮件、短信、消息到pc端和手机端,消息发送后用
rocketMQ发送结果消息给应用用户。
用户管理发送规则,对不同的消息、发送的方式、发送的时间、接收者进行设置,以后消息中心按照这些规则发送消息。
规则处理采用drools完成。
系统采用MQT■服艮务器mosquito实现消息对手机端的推送,采用winsocket发送消息给pc端。
MQTT通过发布/订阅方式发送消息给手机,方式为发布/订阅,为了实现点对点发送,需要在发送的消息里加上手机端的imei和用户名,同时
在手机端进行判断,如果imei和用户名符合则接收此消息。
采用winsocket实现推送消息到pc端,为实现点对点的推送,可以在消息中加上要发送的pc端的用户名,pc端对消息的用户名进行判断,如果和自己的一样则接收消息。
对于群发,大家都可以收到。
应用用户通过接口发送消息给消息中心,消息采用json格式,包含应用用户id、发送
消息方式id、Title、content、usrld,sendTime。
采用mqttQoSlevel2协议,保证自动重发发送不成功的消息,而且可以保证消息的顺序到达,可以设置超时时间,防止断网。
Mqtt不建立长连接,省电、
省流量。
还可以用mosquitto实现集群发送,集群可以线性扩展。
应用系统用户在注册、登陆后申请发送消息的类别,有邮件、短信、手机消息、pc消息4种,注册后要记住自己的id,然后通过接口发送消息;管理员审批用户的申请,管理消息;消息中心发送消息或邮件、短信到相应的pc端或手
机端用户。
系统的管理功能包括对规则、用户、消息进行管理。
中心的时区设当地的时区,系统用ntpdate命令让系统使用NTP(NetworkTimeProtocol网络时间协议)协议来从网络同步时间的命令,这样即使有夏令时的变化,系统也会自动更新。
中心使用时间时需要得到系统的时区。
2.网络架构
5.2系统包含模块
1.消息接收发送模块。
1)提供发送接口用于接收应用用户的消息和参数,然后通过规则发送消息,用户通
过接收接口得到发送结果:
发送消息到手机端。
发送消息到pc端。
发送邮件。
发送短信。
2.手机、pc接收模块。
手机接收消息中心发送的消息。
Pc接收消息中心发送的消息。
3.管理模块。
1)用户和管理员注册、登陆。
2)实现用户申请消息发送方式申请、查看消息、修改密码、统计消息。
用户可以申
请邮件、短信、手机消息、pc消息4种方式发送消息。
3)管理用户、审批用户发送方式、管理员密码修改、查看和统计发送过的消息。
4)管理规则,可以增加、修改、删除查询规则。
5.3用例图
1.应用用户用例图
A
2.管理员用例图
3消息用户用例图
4.应用用户用例图
5.4流程图
1.发送消息流程图
ml*
6系统模块的结构与功能
系统包括消息接收送接模块、手机、pc接收消息模块、管理模块,共3个模块。
6.1消息接收发送模块
提供接口用于接收应用用户的消息,然后用drools通过规则异步发送消息,用户调
用接收接口得到发送结果:
发送消息到手机端。
发送消息到pc端。
发送邮件。
发送短信。
系统采用rocketmq接收消息和返回消息发送结果给用户,系统给pc、手机采用
@Async异步发送邮件等消息,并得到发送结果,把结果返回给调用者,消息及发送的情况入库,入库时需要检查消息是否已经存在。
用户采用异步调用本接口,得到发送结果,如果不
成功,用户可以重发。
因为中心的时区与各用户的时区不同,用户需要发送自己的时区,系统返回发送时间时要根据时区转换时间。
当手机离线没有收到消息,则在定时器中重发;对于需要定时发送的消息,通过定时器完成发送。
定时器20分钟执行一次,对这2种情况通过规则发送消息。
系统确定时间时要根据时区进行转换,按照用户的时区时间来发送消息。
6.1.1单元定义
单元名称
单元功能描
述
备注
com.isoftstone.message.domain.Message
消息实体
com.isoftstone.message.MessageBiz
消息发送接
收业务类
com.isoftstone.message.dao.MessageDao
消息管理
dao类
com.isoftstone.message.service.MessageService
消息管理
service类
com.isoftstone.message.mailMessage
发送邮件
com.isoftstone.message.shortMessage
发送短信
com.isoftstone.message.pcMessage
发送pc消息
com.isoftstone.message.MobileMessage
发送手机消
息
6.1.2接口描述
1.发送接口
接口定义:
publicvoidsendMessage(Stringapplicationld,String
typeid,Stringtitle,Stringcontent,StringuserId)throwsException;
描述:
通过调用此接口可发送消息及参数,接口在com.isoftstone.message.MessageBiz中。
入口参数
父
丿元糸
丿元糸
须
必类型
备注
applicationld
M嘶
typeid
OString
title
String.
content
0String
userId
String
sendTime
String
timeZone
String
2.接收接口
接口定义:
publicIntegergetMessageResult(String
applicationld,Stringtypeid,Stringtitle,Stringcontent,StringuserId)
throwsException;
描述:
通过调用此接口可得到发送消息的结果,如果发送失败,用户则调用发送接
口重发。
接口在com.isoftstone.message.MessageBiz中。
入口参数
父
丿元糸
丿元糸
须
必类型
备注
applicationld
mString
typeid
OString
title
String.
userld
String
sendTime
String
timeZone
String
接口返回:
返回码
含义
备注
0
成功
1
失败
2
数据重复提交
3
服务器异常
4
没有发送权限
5
网络异常
时序图
基本场景
以下场景触发模块:
用户调用接口发送消息。
时序图及描述
流程描述:
1.用户使用接口发送消息及参数。
2.接口对消息参数进行分析,判断是否可以发送。
3.
pc消息,并得到发送结果,反馈给
接口根据参数分别异步发送邮件、短信、手机、接口调用者。
4.发送消息后保存消息到数据库。
异常描述
10异常:
数据插入失败,写入日志。
数据库操作异常:
数据插入失败,写入日志网络连接超时异常:
网络异常,发送失败,写入日志并反馈给用户。
6.2手机、pc接收模块
621手机接收消息中心发送的消息
手机用mqtt接收消息。
6.2.2Pc接收消息中心发送的消息。
Pc用winsocket接收消息。
6.3管理模块。
6.3.1用户和管理员注册、登陆。
用户和管理员注册、登陆。
应用用户注册后记住自己的id,以后发送消息时会用到。
6.3.2用户操作功能。
实现用户申请消息发送方式申请、查看消息、修改密码、统计消息。
用户可以申请邮件、
短信、手机消息、pc消息4种方式发送消息。
6.3.3管理功能。
管理规则、用户、审批用户发送方式、管理员密码修改、查看和统计发送过的消息。
规则以xml格式生成。
634注册、登陆界面
完成应用用户和注册、登陆。
用户售務'|
用户类型丫管谨员C)应用用户
enail:
注珊
电话:
注册放弃
635用户申请界面
实现用户申请消息发送方式申请。
用户可以申请邮件、短信、手机消息、pc消息4
种方式发送消息。
1.应用用户消息管理
"应用用户消息管理肖息管俚丫鞄码置理[~~~~]应用用户消息管理
n邮件
一疫信
□手机消息
n皿消原
保存畝弃
2•应用用户消息管理
底用馬户谓息冒僵][消凰誉迴丫整码置理]~
消息冒哩
应用用户名秫:
XX用户1
消圜d
消息类型
消息标题
消息内咨
搖收人
岌送日朝
旱
1
11122
手机消息
超时
请尽快完曲任芳
5145U515
2015-4-5
旱
2
111123
删件
加班通知
周耒加竝
6SS@
20134-5
是
集1慮其1更才心Q
3•应用用户密码管理
址用用户消息管理”消息置理]底码置理J"~~
蔭码宣理
旧霑码:
赣密码:
脸证新幣码:
4.发送管理
9印时三壬
5•应用用户消息统计
忆用馬户消握萱理][消凰管理][密码童迎I而
诸息管理
应用用户営耕:
XX用户1
序号
消息id
消息黄型
消息标題
消息内酱
接收人
发送曰期
是
1
11122
手机消皂
超时
请尽快兗咸任势
5145U515
20154-6
是
2
111123
由噜
加班趣矩
周未如班
556@126com
20134-5
是
第1
嵐共1
636管理界面
管理员实现对应用用户的管理、对应用用户申请的管理和对消息的管理,及管理员注册、登陆。
1.应用用户管理
应用用户营遲][&用用一"汹息管理]['消息管理”巒码管理][±^tf
应用用户官理
巒事仙2'刷祈
序号
应书用户容称
上檢人
車批
处理
1
)&用户1
20134^5
孚日
L不冋思
删除
2
XX用户2
2013-4-6
'冋忌*不冋忌
第1页点1頁/3
2.应用用户消息审批管理
而丽词陆用用户活息童理I[Ssm][亜码童豐][―囲—]
应=9用户皀爸理
应用用户茗曙二
由胡卧|宫胃|日
單」重吿
曙1丽―£|器御|J職新
两号
应冋用户容称
日期
上佟人
消息左式审犹
1
2013^-5
車自
引件⑥罔宜•不同意
2
袞用卢1
201皿
-
短恃a,1司葛平同意
3
XX用户1
201M-5
字m
丰机消息Q同意「不風鳶
*AHtJ・rf^u■計■^bi
2.消息管理
[应用用戸管迴]阻用用户湾息営理]何舅曽¥里]f裁胃音理]f
消尾苜15
刷祈
直匡阳户宕關
消JRid
肖息集型
JM标壘
接收人
岌箧口期
处理
1
XX用户1
11122
壬机“肖忌
514514515
?
0154-6
2
立护j
111123
tn娅鱼知
GE6@125com
舸13斗£
WT
.*1贞共1虫
dgQ
4..管理员密码管理
「应用用户管理H应用用户消息管連][消息管理]『密码管理||统计
5.消息统计
户宦運”虑黑用户消竄童遲]务JS管理]「密码曽理](面
鏡计
应用用户宮称F
亘询I垂置
別崙
序号
应用胃尸若称
应用用户
id
手机俏息
pc誚息
邮件
菽送口期
處功总数
不威
咸功率
1
XX用户1
11222
21(2>
22<3)
33⑷
333(E)
201645
22
3
2
1
瓦共1页
*>1
5.规则管理
6.规则编辑
iS:
U]
I惟m护Hciet
刮专半血Q
〒亡宾岂中〜邕世
□胡龍程D誣护艇亡腿解
伽
7开发环境的配置
类别
标准配置
最低配置
计算机硬件
Pcwindos
软件
eclipse
网络通信
Tcp/ip
其它
8运行环境的配置
类别
标准配置
最低配置
计算机硬件
服务器
软件
Linux
网络通信
Tcp/ip
其它
9测试环境的配置
同开发环境
10其它
10.1数据库设计
10.1.1邮件消息表t_email_message
主要用途:
保存发送的邮件
数据增长频率:
个
数据保存周期:
由用户调用操作
FIELDNAME
FIELDCODE
FIELDYPE
FIELD
LENGTH
KEY
O/M
DEFAULT
VALUE
DESCRIPTION
id
id
bigint
pk
M
标题
title
varchar(
80)
M
内容
content
varchar(500)
M
发送时间
sendTime
datetim
e
M
接收时间
ReceiveTime
datetime
发送状态
status
tinyint
M
接收用户
id
receiveUserI
d
varchar(
50)
应用用户
id
applicationT
ypeld
bigint
是否删除
deleted
tinyint
10.1.2手机消息表t_mobile_message
主要用途:
保存发送的手机消息数据增长频率:
个
数据保存周期:
由用户调用操作
FIELDNAME
FIELDCODE
FIELDYPE
FIELD
LENGTH
KEY
O/M
DEFAULT
VALUE
DESCRIPTION
id
id
bigint
pk
M
标题
title
varchar(
80)
M
内容
content
varchar(500)
M
发送时间
sendTime
datetime
M
接收时间
ReceiveTime
datetime
发送状态
status
tinyint
M
接收用户
id
receiveUserI
d
varchar(
50)
应用用户
id
applicationT
ypeId
bigint
是否删除
deleted
tinyint
10.1.3短信消息表t_short_message
主要用途:
保存发送的短信消息。
数据增长频率:
个
数据保存周期:
由用户调用操作
FIELDNAME
FIELDCODE
FIELDYPE
FIELD
LENGTH
KEY
O/M
DEFAULT
VALUE
DESCRIPTION
id
id
bigint
pk
M
标题
title
varchar(
80)
M
内容
content
varchar(500)
M
发送时间
sendTime
datetim
e
M
发送状态
status
tinyint
M
接收时间
ReceiveTime
datetime
接收用户
id
receiveUserl
d
varchar(
50)
应用用户
id
applicationT
ypeId
bigint
是否删除
deleted
tinyint
10.1.4管理员表t_admin
主要用途:
保存管理员信息。
数据增长频率:
个
数据保存周期:
由用户注册、修改决定。
FIELDNAME
FIELDCODE
FIELDYPE
FIELD
LENGTH
KEY
O/M
DEFAULT
VALUE
DESCRIPTION
id
id
bigint
pk
M
姓名
name
varchar(
30)
M
email
email
varchar(128)
M
电话
telephone
varchar(
M
32)
密码
password
varchar(50)
M
注册时间
registerTime
datetim
e
是否删除
deleted
tinyint
10.1.5发送消息用户表t_application_user
主要用途:
保存发送消息用户信息。
数据增长频率:
个
数据保存周期:
由用户注册、修改决定。
FIELDNAME
FIELDCODE
FIELDYPE
FIELD
LENGTH
KEY
O/M
DEFAULT
VALUE
DESCRIPTION
id
id
bigint
pk
M
姓名
name
varchar(
30)
M
email
email
varchar(128)
M
电话
telephone
varchar(
32)
M
密码
passWord
varchar(50)
M
注册时间
registerTime
datetim
e
是否删除
deleted
tinyint
10.1.6消息订阅类别表t_message_subscribe_type
主要用途:
保存用户消息订阅方式信息。
数据增长频率:
个
数据保存周期:
由管理员操作决定。
FIELDNAME
FIELDCODE
FIELDYPE
FIELD
LENGTH
KEY
O/M
DEFAULT
VALUE
DESCRIPTION
id
id
bigint
pk
M
方式
name
varchar(
30)
M
邮件
备注
reamark
varchar(128)
M
是否删除
deleted
tinyint
10.1.7国家时区表t_timeZone
主要用途:
提供各个国家时区,为管理员指定中心的时区服务。
数据增长频率:
个
数据保存周期:
由管理员修改决定
FIELDNAME
FIELDCODE
FIELDYPE
FIELD
LENGTH
KEY
O/M
DEFAULT
VALUE
DESCRIPTION
id
id
bigint
pk
M
国家
country
varchar(80)
M
时区
timeZone
varchar(10