《消息中心构架设计说明书.docx》由会员分享,可在线阅读,更多相关《消息中心构架设计说明书.docx(37页珍藏版)》请在三一办公上搜索。
1、消息中心构架设计说明书构架设计说明书 消息中心构架设计说明书 版本:1.0 1 / 37 构架设计说明书 变更记录 序号 1 版本 1.0 变更说明 创建 修改人/日期 李万鸿 审批人/日期 2 / 37 构架设计说明书 目录 1 1. 文档介绍 . 4 1.1 1.2 1.3 1.4 1.5 2 3 4 5 6 7 8 9 10 文档目的 . 4 文档范围 . 4 读者对象 . 4 参考文献 . 4 术语与缩写解释 . 4 系统概述 . 5 设计约束 . 6 设计策略 . 7 系统总体结构 . 8 子系统N的结构与功能 . 15 开发环境的配置 . 27 运行环境的配置 . 28 测试环境的
2、配置 . 29 其它 . 30 3 / 37 构架设计说明书 1 1. 文档介绍 1.1 文档目的 消息中心接收别的系统发送的消息,再基于一定的规则以邮件、短信、消息等方式推送消息到pc端和手机端,比如对于attendance迟到、早退、tour超时提醒等需要及时推送相应的信息给相关人员,中心对规则、用户、消息进行管理。为此,根据“先进实用、稳定可靠”的原则设计本消息中心。 1.2 文档范围 消息的接收、发送、保存,对应用用户的管理。 1.3 读者对象 开发人员 1.4 参考文献 1.5 术语与缩写解释 缩写、术语 解 释 QoS level SD Quality of Service lev
3、el 系统设计,System Design 4 / 37 构架设计说明书 2 系统概述 系统主要完成消息的接收、发送和保存,再基于一定的规则以邮件、短信、消息等方式推送消息到pc端或手机,以及对用户、规则、消息进行管理。系统接收来自别的系统应用用户的消息,然后基于一定的规则把消息进行推送。 5 / 37 构架设计说明书 3 设计约束 1.系统必须遵循国家软件开发的标准。 2.系统用java开发,服务器中间件为tomcat。 3.系统必须稳定可靠,性能高,满足每天40-500万次的推送量。 4.保证消息的成功送达,如果不成功就重发。 6 / 37 构架设计说明书 4 设计策略 1. 系统高可用、
4、高性能、易扩展,安全稳定,实用可靠,满足用户的需要。 2. 系统可以进行扩展,增加推送的消息种类,增加消息推送的规则。 3. 系统可以复用于别的系统的消息推送。 7 / 37 构架设计说明书 5 系统总体结构 5.1 系统架构设计 1.逻辑架构 系统采用接口用rocketMQ实现应用用户的消息接收,用drools依据一定的规则进行消息转发,发送邮件、短信、消息到pc端和手机端,消息发送后用rocketMQ发送结果消息给应用用户。用户管理发送规则,对不同的消息、发送的方式、发送的时间、接收者进行设置,以后消息中心按照这些规则发送消息。规则处理采用drools完成。 系统采用MQTT服务器 mos
5、quito实现消息对手机端的推送,采用winsocket发送消息给pc端。MQTT通过发布/订阅方式发送消息给手机,方式为发布/订阅,为了实现点对点发送,需要在发送的消息里加上手机端的imei和用户名,同时在手机端进行判断,如果imei和用户名符合则接收此消息。采用winsocket实 8 / 37 构架设计说明书 现推送消息到pc端,为实现点对点的推送,可以在消息中加上要发送的pc端的用户名,pc端对消息的用户名进行判断,如果和自己的一样则接收消息。对于群发,大家都可以收到。 应用用户通过接口发送消息给消息中心,消息采用json格式,包含应用用户id、发送消息方式id、Title、conte
6、nt、usrId,sendTime。 采用mqtt QoS level 2协议,保证自动重发发送不成功的消息,而且可以保证消息的顺序到达,可以设置超时时间,防止断网。Mqtt不建立长连接,省电、省流量。还可以用mosquitto实现集群发送,集群可以线性扩展。 应用系统用户在注册、登陆后申请发送消息的类别,有邮件、短信、手机消息、pc消息4种,注册后要记住自己的id,然后通过接口发送消息;管理员审批用户的申请,管理消息;消息中心发送消息或邮件、短信到相应的pc端或手机端用户。系统的管理功能包括对规则、用户、消息进行管理。 中心的时区设当地的时区,系统用ntpdate命令让系统使用NTP协议来从
7、网络同步时间的命令,这样即使有夏令时的变化,系统也会自动更新。中心使用时间时需要得到系统的时区。 2.网络架构 9 / 37 构架设计说明书 5.2 系统包含模块 1. 消息接收发送模块。 1)提供发送接口用于接收应用用户的消息和参数,然后通过规则发送消息,用户通过接收接口得到发送结果: 发送消息到手机端。 发送消息到pc端。 发送邮件。 发送短信。 2.手机、pc接收模块。 手机接收消息中心发送的消息。 Pc接收消息中心发送的消息。 3.管理模块。 1)用户和管理员注册、登陆。 2)实现用户申请消息发送方式申请、查看消息、修改密码、统计消息。用户可以申 10 / 37 构架设计说明书 请邮件
8、、短信、手机消息、pc消息4种方式发送消息。 3)管理用户、审批用户发送方式、管理员密码修改、查看和统计发送过的消息。 4)管理规则,可以增加、修改、删除查询规则。 5.3 用例图 1. 应用用户用例图 2 管理员用例图 11 / 37 构架设计说明书 3消息用户用例图 4.应用用户用例图 12 / 37 构架设计说明书 5.4 流程图 1.发送消息流程图 13 / 37 构架设计说明书 14 / 37 构架设计说明书 6 系统模块的结构与功能 系统包括消息接收送接模块、手机、pc接收消息模块、管理模块,共3个模块。 6.1 消息接收发送模块 提供接口用于接收应用用户的消息,然后用drools
9、通过规则异步发送消息,用户调用接收接口得到发送结果: 发送消息到手机端。 发送消息到pc端。 发送邮件。 发送短信。 系统采用rocketmq接收消息和返回消息发送结果给用户,系统给pc、手机采用Async异步发送邮件等消息,并得到发送结果,把结果返回给调用者,消息及发送的情况入库,入库时需要检查消息是否已经存在。用户采用异步调用本接口,得到发送结果,如果不成功,用户可以重发。 因为中心的时区与各用户的时区不同,用户需要发送自己的时区,系统返回发送时间时要根据时区转换时间。 当手机离线没有收到消息,则在定时器中重发;对于需要定时发送的消息,通过定时器完成发送。定时器20分钟执行一次,对这2种情
10、况通过规则发送消息。系统确定时间时要根据时区进行转换,按照用户的时区时间来发送消息。 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 发送邮件 单元功能描备注
11、 15 / 37 构架设计说明书 com.isoftstone.message.shortMessage com.isoftstone.message.pcMessage com.isoftstone.message.MobileMessage 息 6.1.2接口描述 1. 发送接口 发送短信 发送pc消息 发送手机消接口定义:public void sendMessage(String applicationId,String typeid,String title,String content,String userId) throws Exception; l 描述:通过调用此接口可发送
12、消息及参数,接口在com.isoftstone.message.MessageBiz中。 l 入口参数 父元素 元素 须 必类型 备注 applicationId typeid title content userId sendTime timeZone MO O String String String, String String String String 2. 接收接口 接口定义:public Integer getMessageResult(String applicationId,String typeid,String title,String content,String us
13、erId) throws Exception; 16 / 37 构架设计说明书 l 描述:通过调用此接口可得到发送消息的结果,如果发送失败,用户则调用发送接口重发。接口在com.isoftstone.message.MessageBiz中。 l 入口参数 父元素 元素 须 必类型 备注 applicationId typeid title userId sendTime timeZone MO String String String, String String String 接口返回: 返回码 0 1 2 3 4 含义 成功 失败 数据重复提交 服务器异常 没有发送权限 备注 5 网络异常
14、 17 / 37 构架设计说明书 时序图 基本场景 以下场景触发模块: 用户调用接口发送消息。 时序图及描述 流程描述: 1. 用户使用接口发送消息及参数。 2. 接口对消息参数进行分析,判断是否可以发送。 3. 接口根据参数分别异步发送邮件、短信、手机、pc消息,并得到发送结果,反馈给接口调用者。 4. 发送消息后保存消息到数据库。 异常描述 IO异常:数据插入失败,写入日志。 18 / 37 构架设计说明书 数据库操作异常:数据插入失败,写入日志 网络连接超时异常:网络异常,发送失败,写入日志并反馈给用户。 6.2 手机、pc接收模块 6.2.1 手机接收消息中心发送的消息 手机用mqtt
15、接收消息。 6.2.2 Pc接收消息中心发送的消息。 Pc用winsocket接收消息。 6.3 管理模块。 6.3.1 用户和管理员注册、登陆。 用户和管理员注册、登陆。应用用户注册后记住自己的id,以后发送消息时会用到。 6.3.2 用户操作功能。 实现用户申请消息发送方式申请、查看消息、修改密码、统计消息。用户可以申请邮件、短信、手机消息、pc消息4种方式发送消息。 6.3.3 管理功能。 管理规则、用户、审批用户发送方式、管理员密码修改、查看和统计发送过的消息。 规则以xml格式生成。 19 / 37 构架设计说明书 6.3.4 注册、登陆界面 完成应用用户和注册、登陆。 6.3.5
16、用户申请界面 实现用户申请消息发送方式申请。用户可以申请邮件、短信、手机消息、pc消息4种方式发送消息。 1.应用用户消息管理 20 / 37 构架设计说明书 2.应用用户消息管理 3.应用用户密码管理 21 / 37 构架设计说明书 4.发送管理 5.应用用户消息统计 22 / 37 构架设计说明书 6.3.6 管理界面 管理员实现对应用用户的管理、对应用用户申请的管理和对消息的管理,及管理员注册、登陆。 1.应用用户管理 2.应用用户消息审批管理 23 / 37 构架设计说明书 2. 消息管理 4.管理员密码管理 24 / 37 构架设计说明书 5.消息统计 5. 规则管理 25 / 37
17、 构架设计说明书 6. 规则编辑 26 / 37 构架设计说明书 7 开发环境的配置 类别 计算机硬件 软件 网络通信 其它 标准配置 Pc windos eclipse Tcp/ip 最低配置 27 / 37 构架设计说明书 8 运行环境的配置 类别 计算机硬件 软件 网络通信 其它 服务器 Linux Tcp/ip 标准配置 最低配置 28 / 37 构架设计说明书 9 测试环境的配置 同开发环境。 29 / 37 构架设计说明书 10 其它 10.1 数据库设计 t_message_subscribe_typeidnamereamarkdeleted.bigintvarchar(50va
18、rchar(100)tinyintt_application_useridnameemailtelephoneremarkpassWordregisterTimedeleted.bigintvarchar(50)varchar(128)varchar(32)varchar(100)varchar(50)datetimetinyintidnameemailtelephoneremarkpassWordregisterTimedeleted.t_adminbigintvarchar(50)varchar(128)varchar(32)varchar(100)varchar(50)datetimet
19、inyintt_ruleidnamecontentcreateTimeupdateTimeremarkdeleted.bigintvarchar(100)varchar(1000)datetimedatetimedatetimeintt_ mobile_messageidtitlecontentsendTimestatusremarkreceiveUserIdapplicationTypeIddeletedbigintvarchar(80)varchar(500)datetimetinyintvarchar(100)varchar(50)biginttinyintt_application _
20、message_typeidapplicationIdtypeIdnameremarkagreedeletedapplyTime.bigintbigintbigintvarchar(50)varchar(100)intintdatetimet_ email_messageidtitlecontentsendTimedststatusremarkreceiveUserIdapplicationTypeIdbigintvarchar(80)varchar(500)datetimetinyinttinyintvarchar(100)varchar(50)bigintt_userd_timeZonei
21、dcountrytimeZonekeycreateTimeupdateTimeremarkdeleted.bigintvarchar(80)varchar(100)varchar(100)datetimedatetimedatetimetinyintt_timeZoneidcountrytimeZonekeycreateTimeupdateTimeremarkdeleted.bigintvarchar(80)varchar(100)varchar(100)datetimedatetimedatetimetinyintt_ short_messageidtitlecontentsendTimes
22、tatusremarkreceiveUserIdapplicationTypeIddeletedbigintvarchar(80)varchar(500)datetimetinyintvarchar(100)varchar(50)biginttinyintt_pc_ messageidtitlecontentsendTimestatusremarkreceiveUserIdapplicationTypeIddeletedbigintvarchar(80)varchar(500)datetimetinyintvarchar(100)varchar(50)biginttinyint10.1.1邮件
23、消息表t_email_message n 主要用途:保存发送的邮件 n 数据增长频率:个 n 数据保存周期:由用户调用操作 FIELD NAME FIELD CODE FIELD YPE FIELD LENGTH id id bigint pk M M KEY O/M DEFAULT VALUE DESCRIPTION 标题 varchar(title 80) content varchar(500) sendTime e datetim 内容 M 发送时间 M 30 / 37 构架设计说明书 接收时间 发送状态 接收用户id 应用用户id 是否删除 ReceiveTime datetime
24、tinyint varchar(50) bigint M status receiveUserId applicationTypeId deleted tinyint 10.1.2手机消息表t_mobile_message n 主要用途:保存发送的手机消息 n 数据增长频率:个 n 数据保存周期:由用户调用操作 FIELD NAME FIELD CODE FIELD YPE FIELD LENGTH id id bigint varchar(pk M M KEY O/M DEFAULT VALUE DESCRIPTION 标题 title 80) 内容 发送时间 接收时间 发送状态 接收用户i
25、d 应用用户id 是否删除 content varchar(500) sendTime d atetime ReceiveTime datetime tinyint varchar(50) bigint M M M status receiveUserId applicationTypeId deleted tinyint 10.1.3短信消息表t_short_message n 主要用途:保存发送的短信消息。 n 数据增长频率:个 31 / 37 构架设计说明书 n 数据保存周期:由用户调用操作 FIELD NAME FIELD CODE FIELD YPE FIELD LENGTH id
26、id bigint pk M M KEY O/M DEFAULT VALUE DESCRIPTION 标题 varchar(title 80) content varchar(500) sendTime e status tinyint datetim 内容 M 发送时间 发送状态 接收时间 接收用户id 应用用户id 是否删除 M M ReceiveTime receiveUserId applicationTypeId datetime varchar(50) bigint deleted tinyint 10.1.4管理员表t_admin n 主要用途:保存管理员信息。 n 数据增长频率
27、:个 n 数据保存周期:由用户注册、修改决定。 FIELD NAME FIELD CODE FIELD YPE FIELD LENGTH id id bigint varchar(pk M M KEY O/M DEFAULT VALUE DESCRIPTION 姓名 name 30) email 电话 email varchar(128) telephone varchar( M M 32 / 37 构架设计说明书 32) 密码 passWord varchar(50) registerTime e deleted tinyint datetim M 注册时间 是否删除 10.1.5发送消息用
28、户表t_application_user n 主要用途:保存发送消息用户信息。 n 数据增长频率:个 n 数据保存周期:由用户注册、修改决定。 FIELD NAME FIELD CODE FIELD YPE FIELD LENGTH id id bigint pk M M KEY O/M DEFAULT VALUE DESCRIPTION 姓名 varchar(name 30) email varchar(128) telephone 32) passWord varchar(50) registerTime e deleted tinyint datetim varchar( email 电
29、话 M M 密码 M 注册时间 是否删除 10.1.6消息订阅类别表t_message_subscribe_type n 主要用途:保存用户消息订阅方式信息。 n 数据增长频率:个 n 数据保存周期:由管理员操作决定。 33 / 37 构架设计说明书 FIELD NAME FIELD CODE FIELD YPE FIELD LENGTH KEY O/M DEFAULT VALUE DESCRIPTION 邮件 id id bigint varchar(pk M M 方式 name 30) 备注 是否删除 reamark varchar(128) deleted tinyint M 10.1.
30、7国家时区表t_timeZone n 主要用途:提供各个国家时区,为管理员指定中心的时区服务。 n 数据增长频率:个 n 数据保存周期:由管理员修改决定 FIELD NAME FIELD CODE FIELD YPE FIELD LENGTH id id bigint pk M M M KEY O/M DEFAULT VALUE DESCRIPTION 国家 时区 country v archar(80) timeZone varchar(100) datetimkey e createTimdatetime bigint tinyint key M 用于国际化id 产生时间 备注 是否删除
31、e remark deleted 10.1.8使用时区表t_userd_timeZone n 主要用途:保存消息中心的时区,时区可以由系统自动获取,也可以由管理员指定。 n 数据增长频率:个 n 数据保存周期:由管理员修改决定 34 / 37 构架设计说明书 FIELD NAME FIELD CODE FIELD YPE FIELD LENGTH id id bigint pk M M M KEY O/M DEFAULT VALUE DESCRIPTION 国家 时区 country v archar(80) timeZone varchar(100) key e createTimdatetime bigint tinyint datetim key M 用于国际化id 产生时间 备注 是否删除 e remark deleted