消息中心构架设计说明书

紫薇真人李万鸿

目录

1       1.
文档介绍.... 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的结构与功能....
9

7       开发环境的配置....
10

8       运行环境的配置....
11

9       测试环境的配置....
12

10             
其它.... 13

 

 

1    1.文档介绍

1.1  文档目的

消息中心接收别的系统发送的消息,再基于一定的规则以邮件、短信、消息等方式推送消息到pc端和手机端,比如对于attendance迟到、早退、tour超时提醒等需要及时推送相应的信息给相关人员,中心对规则、用户、消息进行管理。为此,根据“先进实用、稳定可靠”的原则设计本消息中心。

1.2   文档范围

消息的接收、发送、保存,对应用用户的管理。

1.3  读者对象

开发人员

1.4  参考文献

 

1.5  术语与缩写解释


缩写、术语


解 释


QoS level


Quality of Service level


SD


系统设计,System Design


 


 


 


 



 

 

2    系统概述

系统主要完成消息的接收、发送和保存,再基于一定的规则以邮件、短信、消息等方式推送消息到pc端或手机,以及对用户、规则、消息进行管理。系统接收来自别的系统应用用户的消息,然后基于一定的规则把消息进行推送。

 

 

3    设计约束

 

1.系统必须遵循国家软件开发的标准。

2.系统用java开发,服务器中间件为tomcat。

3.系统必须稳定可靠,性能高,满足每天40-500万次的推送量。

4.保证消息的成功送达,如果不成功就重发。

4    设计策略

 

 

1.    系统高可用、高性能、易扩展,安全稳定,实用可靠,满足用户的需要。

2.    系统可以进行扩展,增加推送的消息种类,增加消息推送的规则。

3.    系统可以复用于别的系统的消息推送。

 

5    系统总体结构

 

5.1  系统架构设计

1.逻辑架构

系统采用接口用rocketMQ实现应用用户的消息接收,用drools依据一定的规则进行消息转发,发送邮件、短信、消息到pc端和手机端,消息发送后用rocketMQ发送结果消息给应用用户。用户管理发送规则,对不同的消息、发送的方式、发送的时间、接收者进行设置,以后消息中心按照这些规则发送消息。规则处理采用drools完成。
系统采用MQTT服务器 mosquito实现消息对手机端的推送,采用winsocket发送消息给pc端。MQTT通过发布/订阅方式发送消息给手机,方式为发布/订阅,为了实现点对点发送,需要在发送的消息里加上手机端的imei和用户名,同时在手机端进行判断,如果imei和用户名符合则接收此消息。采用winsocket实现推送消息到pc端,为实现点对点的推送,可以在消息中加上要发送的pc端的用户名,pc端对消息的用户名进行判断,如果和自己的一样则接收消息。对于群发,大家都可以收到。

应用用户通过接口发送消息给消息中心,消息采用json格式,包含应用用户id、发送消息方式id、Title、content、usrId,sendTime。

采用mqtt QoS level 2协议,保证自动重发发送不成功的消息,而且可以保证消息的顺序到达,可以设置超时时间,防止断网。Mqtt不建立长连接,省电、省流量。还可以用mosquitto实现集群发送,集群可以线性扩展。
应用系统用户在注册、登陆后申请发送消息的类别,有邮件、短信、手机消息、pc消息4种,注册后要记住自己的id,然后通过接口发送消息;管理员审批用户的申请,管理消息;消息中心发送消息或邮件、短信到相应的pc端或手机端用户。系统的管理功能包括对规则、用户、消息进行管理。

中心的时区设当地的时区,系统用ntpdate命令让系统使用NTP(NetworkTime Protocol 网络时间协议)协议来从网络同步时间的命令,这样即使有夏令时的变化,系统也会自动更新。中心使用时间时需要得到系统的时区。

 
2.网络架构

 

5.2  系统包含模块

1.  消息接收发送模块。

1)提供发送接口用于接收应用用户的消息和参数,然后通过规则发送消息,用户通过接收接口得到发送结果:

发送消息到手机端。

发送消息到pc端。

发送邮件。

 发送短信。

2.手机、pc接收模块。

   手机接收消息中心发送的消息。

Pc接收消息中心发送的消息。

3.管理模块。

1)用户和管理员注册、登陆。

2)实现用户申请消息发送方式申请、查看消息、修改密码、统计消息。用户可以申请邮件、短信、手机消息、pc消息4种方式发送消息。

3)管理用户、审批用户发送方式、管理员密码修改、查看和统计发送过的消息。

4)管理规则,可以增加、修改、删除查询规则。

 

5.3  用例图

1.  应用用户用例图

 

2. 管理员用例图

3消息用户用例图

 

 

4.应用用户用例图

5.4  流程图

1.发送消息流程图

 

 

 

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. 发送接口

接口定义:public void  sendMessage(String  applicationId,String typeid,Stringtitle,String content,String userId) throwsException;

描述:通过调用此接口可发送消息及参数,接口在com.isoftstone.message.MessageBiz中。

 

入口参数

 


父元素


元素


必须


类型


备注


 


applicationId


M


String 


 


 


typeid


O


String


 


 


title


 


String,  


 


 


content


O


String


 


 


userId


 


String


 


 


sendTime

 


 


String


 


 


timeZone


 


String


 

2. 接收接口

接口定义:public Integer  getMessageResult(String  applicationId,String typeid,Stringtitle,String content,String userId) throwsException;

描述:通过调用此接口可得到发送消息的结果,如果发送失败,用户则调用发送接口重发。接口在com.isoftstone.message.MessageBiz中。

 

入口参数

 


父元素


元素


必须


类型


备注


 


applicationId


M


String 


 


 


typeid


O


String


 


 


title


 


String,  


 


 


userId


 


String


 


 


sendTime

 


 


String


 


 


timeZone


 


String


 

接口返回:


返回码


含义


备注


0


成功


 


1


失败


 


2


数据重复提交


 


3


服务器异常


 


4


没有发送权限


 


5


网络异常


 

 

 

时序图

基本场景

以下场景触发模块:

用户调用接口发送消息。

时序图及描述

流程描述:

1.    用户使用接口发送消息及参数。

2.    接口对消息参数进行分析,判断是否可以发送。

3.    接口根据参数分别异步发送邮件、短信、手机、pc消息,并得到发送结果,反馈给接口调用者。

4.    发送消息后保存消息到数据库。

 

异常描述

IO异常:数据插入失败,写入日志。

数据库操作异常:数据插入失败,写入日志

网络连接超时异常:网络异常,发送失败,写入日志并反馈给用户。

 

6.2  手机、pc接收模块

6.2.1 手机接收消息中心发送的消息

手机用mqtt接收消息

6.2.2 Pc接收消息中心发送的消息。

Pc用winsocket接收消息。

6.3  管理模块。

6.3.1 用户和管理员注册、登陆。

用户和管理员注册、登陆。应用用户注册后记住自己的id,以后发送消息时会用到。

6.3.2 用户操作功能。

实现用户申请消息发送方式申请、查看消息、修改密码、统计消息。用户可以申请邮件、短信、手机消息、pc消息4种方式发送消息。

6.3.3 管理功能。

管理规则、用户、审批用户发送方式、管理员密码修改、查看和统计发送过的消息。

 规则以xml格式生成。

 

 

 

6.3.4 注册、登陆界面

  完成应用用户和注册、登陆。

6.3.5 用户申请界面

实现用户申请消息发送方式申请。用户可以申请邮件、短信、手机消息、pc消息4种方式发送消息。

 

1.应用用户消息管理

2.应用用户消息管理

3.应用用户密码管理

4.发送管理

5.应用用户消息统计

 

6.3.6 管理界面

管理员实现对应用用户的管理、对应用用户申请的管理和对消息的管理,及管理员注册、登陆。

1.应用用户管理

2.应用用户消息审批管理

 

 

2.   消息管理

4..管理员密码管理

5.消息统计

5.   规则管理

6.   规则编辑

7    开发环境的配置

 

 


类别


标准配置


最低配置


计算机硬件


Pc windos


 


软件


eclipse


 


网络通信


Tcp/ip


 


其它


 


 

 

8    运行环境的配置

 

 


类别


标准配置


最低配置


计算机硬件


服务器


 


软件


Linux


 


网络通信


Tcp/ip


 


其它


 


 

9    测试环境的配置

同开发环境。

10       其它

10.1 数据库设计

10.1.1邮件消息表t_-email_message

主要用途:保存发送的邮件

数据增长频率:

数据保存周期:由用户调用操作


FIELD NAME


FIELD CODE


FIELD YPE


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


receiveUserId


varchar(50)


应用用户id


applicationTypeId


bigint


是否删除


deleted


tinyint

 

10.1.2手机消息表t_-mobile_message

主要用途:保存发送的手机消息

数据增长频率:

数据保存周期:由用户调用操作


FIELD NAME


FIELD CODE


FIELD YPE


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


receiveUserId


varchar(50)


应用用户id


applicationTypeId


bigint


是否删除


deleted


tinyint

10.1.3短信消息表t_-short_message

主要用途:保存发送的短信消息。

数据增长频率:

数据保存周期:由用户调用操作


FIELD NAME


FIELD CODE


FIELD YPE


FIELD LENGTH


KEY


O/M


DEFAULT VALUE


 DESCRIPTION


id


id


bigint


pk


M


标题


title


varchar(80)


M


内容


content


varchar(500)


M


发送时间


sendTime


datetime


M


发送状态


status


tinyint


M


接收时间


ReceiveTime


datetime


接收用户id


receiveUserId


varchar(50)


应用用户id


applicationTypeId


bigint


是否删除


deleted


tinyint

 

10.1.4管理员表t_admin

主要用途:保存管理员信息。

数据增长频率:

数据保存周期:由用户注册、修改决定。


FIELD NAME


FIELD CODE


FIELD YPE


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


datetime


是否删除


deleted


tinyint

 

10.1.5发送消息用户表t_application_user

主要用途:保存发送消息用户信息。

数据增长频率:

数据保存周期:由用户注册、修改决定。


FIELD NAME


FIELD CODE


FIELD YPE


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


datetime


是否删除


deleted


tinyint

10.1.6消息订阅类别表t_message_subscribe_type

主要用途:保存用户消息订阅方式信息。

数据增长频率:

数据保存周期:由管理员操作决定。


FIELD NAME


FIELD CODE


FIELD YPE


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

主要用途:提供各个国家时区,为管理员指定中心的时区服务。

数据增长频率:

数据保存周期:由管理员修改决定


FIELD NAME


FIELD CODE


FIELD YPE


FIELD LENGTH


KEY


O/M


DEFAULT VALUE


 DESCRIPTION


id


id


bigint


pk


M


国家


country


varchar(80)


M


时区


timeZone


varchar(100)


M


key


key


datetime


M


用于国际化id


产生时间


createTime


datetime


备注


remark


bigint


是否删除


deleted


tinyint

 

10.1.8使用时区表t_userd_timeZone

主要用途:保存消息中心的时区,时区可以由系统自动获取,也可以由管理员指定。

数据增长频率:

数据保存周期:由管理员修改决定


FIELD NAME


FIELD CODE


FIELD YPE


FIELD LENGTH


KEY


O/M


DEFAULT VALUE


 DESCRIPTION


id


id


bigint


pk


M


国家


country


varchar(80)


M


时区


timeZone


varchar(100)


M


key


key


datetime


M


用于国际化id


产生时间


createTime


datetime


备注


remark


bigint


是否删除


deleted


tinyint

10.1.9用户消息类型注册表t_application_user

主要用途:保存发送消息用户信息。

数据增长频率:

数据保存周期:由用户注册、修改决定。


FIELD NAME


FIELD CODE


FIELD YPE


FIELD LENGTH


KEY


O/M


DEFAULT VALUE


 DESCRIPTION


id


id


bigint


pk


M


用户id


applicationId


bigint


M


消息类别id


typeId


bigint


M


类别名称


name


varchar(50)


M


备注


remark


varchar(100)


M


申请时间


applyTime


datetime


是否删除


deleted


tinyint


是否同意


agree


tinyint

10.1.10pc消息表t_pc_-message

主要用途:保存发送pc的消息

数据增长频率:

数据保存周期:由用户调用操作


FIELD NAME


FIELD CODE


FIELD YPE


FIELD LENGTH


KEY


O/M


DEFAULT VALUE


 DESCRIPTION


id


id


bigint


pk


M


标题


title


varchar(80)


M


内容


content


varchar(500)


M


发送时间


sendTime


datetime


M


发送状态


status


tinyint


M


接收时间


ReceiveTime


datetime


接收用户id


receiveUserId


varchar(50)


应用用户id


applicationTypeId


bigint


是否删除


deleted


tinyint

10.1.11消息推送规则t_rule

主要用途:保存发送规则

数据增长频率:

数据保存周期:由用户调用操作


FIELD NAME


FIELD CODE


FIELD YPE


FIELD LENGTH


KEY


O/M


DEFAULT VALUE


 DESCRIPTION


id


id


bigint


pk


M


规则标题


name


varchar(80)


M


规则内容


content


varchar(500)


M


产生时间


createTime


datetime


M


修改时间


updateTime


datetime


M


备注


remark


varchar(100)


M


是否删除


deleted


tinyint

 

10.11日志管理

系统用scribe保存日志。

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-12 12:03:11

消息中心构架设计说明书的相关文章

架构设计之如何评审架构设计说明书

自从5月8号写完架构设计三部曲的第一部如何写架构设计说明书,到现在快20多天了,这段时间主要准备了下系统分析师的考试,当然还有各种工作上的 杂事,于是也就拖到现在写第二部如何评审架构设计说明书.当然这个是从评审的角度来看的,其实从编制架构设计说明书的角度来看,也可以阐述具体如何编写架 构设计说明书,就像高考作文一样,评审总是有些采分点的嘛,那么对于编制架构设计说明书来说,哪些是我们应该准备的采分点呢?我们在编制的过程中需要重点 注意哪些章节的哪些内容呢?这就是我接下来想和大家分享的. 根据第一部

架构设计三部曲之如何评审架构设计说明书

自从5月8号写完架构设计三部曲的第一部如何写架构设计说明书,到现在快20多天了,这段时间主要准备了下系统分析师的考试,当然还有各种工作上的杂事,于是也就拖到现在写第二部如何评审架构设计说明书.当然这个是从评审的角度来看的,其实从编制架构设计说明书的角度来看,也可以阐述具体如何编写架构设计说明书,就像高考作文一样,评审总是有些采分点的嘛,那么对于编制架构设计说明书来说,哪些是我们应该准备的采分点呢?我们在编制的过程中需要重点注意哪些章节的哪些内容呢?这就是我接下来想和大家分享的. 根据第一部文章我

系统构架设计应考虑的因素

系统构架设计应考虑的因素 摘要:本文从程序的运行时结构和源代码的组织结构两个方面探讨了系统构架设计应考虑的各种因素,列举了系统构架设计文档应考虑的一些问题. 关键字:系统构架.设计.考虑.因素 正文:约公元前25年,古罗马建筑师维特鲁威说:“理想的建筑师应该既是文学家又是数字家,他还应通晓历史,热衷于哲学研究,精通音乐,懂得医药知识,具有法学造诣,深谙天文学及天文计算.”(好难哪,软件构架设计师的要求呢?大家好好想想吧.) 本文目录一.与构架有关的几个基本概念: 二.构架设计应考虑的因素概揽:

机房收费系统——数据库设计说明书

GB8567--88 数据库设计说明书 1      引言 优质数据库在处理大数据的程序或系统中是有非常重要的作用的,所以对于数据库的设计有很多的要求和规定.首先数据库要有很好的可维护性.灵活性,并且数据库的算法逻辑性也要有一定的优化性,这样可以对资源进行有效利用,并且处理数据的时间也会缩短. 1.1   编写目的 由于上机的人越来越多,产生的上机数据越来越多,原始的保存方式已经不能满足数据存储的需要,所以使用数据库对各种记录进行存储.并且数据库可以节省很多的资源,如人力.时间.空间等. 数据库

国际软件设计文档——数据库设计说明书

1 引言 1.1 编写目的 说明编写这份数据库设计说明书的目的,指出预期的读者. 1.2 背景 说明: a.  说明待开发的数据库的名称和使用此数据库的软件系统的名称: b.  列出该软件系统开发项目的任务提出者.用户以及将安装该软件和这个数据库的计算站(中心). 1.3 定义 列出本文件中用到的专门术语的定义.外文首字母组词的原词组. 1.4 参考资料 列出有关的参考资料: a.  本项目的经核准的计划任务书或合同.上级机关批文: b.  属于本项目的其他已发表的文件: c.  本文件中各处引

基于Android平台的会议室管理系统具体设计说明书

会议室管理系统具体设计说明书 第一部分  引言 1.编写目的 本说明对会议室管理系统项目的各模块.页面.脚本分别进行了实现层面上的要求和说明. 软件开发小组的产品实现成员应该阅读和參考本说明进行代码的编写.測试. 1.2 背景 说明: A.软件系统的名称:会议室管理系统 B. 任务提出者:内蒙古大学计算机学院 开发人员:魏晓蕾 本项目将实现基于Android平台的会议室管理系统的原型部分,而且在该原型的基础上进行功能的扩展和需求的界定,终于完毕的版本号将在全国范围内推广使用. 提供会议室管理功能

基于消息系统架构设计

近期在弄一个业务系统,这个业务系统原本是有一个架构的,可是在后期扩展时发现问题多多.关键扩展非常不方便,并且由于业务系统安全规格较高.数据网络连接须要通过多个闸口传递才可,并且业务系统可能须要多地系统联合组网.共享业务数据,可是各地系统又必须相互独立. 用户希望改动架构,让系统可扩展性添加,同一时候要满足系统相互独立方便升级和兴许开发. 依照用户的要求我考虑使用一个基于消息传递的架构设计来满足需求. 所谓基于消息,就是通过消息中转server,中转全部系统间连接数据,同一时候管理数据路由,由消息

互联网产品消息推送设计策略(转)

在移动互联时代,消息推送越来越受到各个APP的重视,本文就以互金产品为例阐述消息推送的几个类别以及应用的场景方式.运营策略,希望对你有益. 在之前一文中,笔者概括性的介绍了通知功能是互金理财平台的一个基础但重要的功能.消息推送能将个人账户相关.平台相关内容送达终端用户,是为互联网产品一个重要的功能.在移动互联网时代,移动客户端出现寡头效应,消息推送愈发重要,而在互金产品中尤甚. 因此本文将开始重点阐述互金产品消息推送的类别.场景.方式和前后端推送设计策略以及运营策略. 1 定义 本文所指的"互金

平安科技智能投顾接口设计说明书_陆金所 v1.1.4

平安科技 智能投顾项目 RBPAA接口设计说明书(for 陆金所) 第1.1.2版 平安科技(深圳)有限公司创新品牌体验团队智能投顾组 二○一七年十月 版本控制信息 版本 日期 拟稿和修改 作者 说明1.0 2017-10-9 初稿 陈培镇 1.1 2017-12-14 需求更新 陈培镇 新增预测修复需求 ?目录1 概述 12 接口约定 13 接口列表 14 接口组成 15 接口描述 25.1 模型 25.1.1 大势研判(8001) 25.1.2 行业预测(8002) 45.1.3 基金预测(