代码人生

消息通知子系统用户需求

代码人生 http://www.she9.com 2018-04-20 09:20 出处:网络 编辑:@霜伤
消息通知系统是通知信息的传达处理系统。目的是为了让用户获得需要得到的通知消息(包括:系统希望用户了解的信息及用户彼此互动触发的信息流)及提醒并进行处理。消息通知系统是企业信息化系统中信息传播机制的重要的部分,根据具体业务需要可以动态的把用户操作和相关的业务系统融合,极大提升用户操作体验。


消息通知子系统

用户需求

 

1          引言... 3

1.1      编写目的... 3

1.2      项目概述... 3

2          综合描述... 4

2.1      目标范围... 4

2.2      用户特性... 4

2.3      约定假设... 4

2.4      技术选型原则... 5

3          需求说明... 5

3.1      功能概要... 5

3.1.1      通知消息合并... 5

3.1.2      消息分发... 6

3.1.3      用户消息处理... 6

3.1.4      消息通知类型配置... 7

3.1.5      消息模板... 7

3.1.6      前端消息通知显示控件... 7

3.1.7      Restful API 7

3.2      性能需求... 7

3.3      环境需求... 8

 

本文档的预期读者为项目组成员及相关人员。

消息通知系统是通知信息的传达处理系统。目的是为了让用户获得需要得到的通知消息(包括:系统希望用户了解的信息及用户彼此互动触发的信息流)及提醒并进行处理。消息通知系统是企业信息化系统中信息传播机制的重要的部分,根据具体业务需要可以动态的把用户操作和相关的业务系统融合,极大提升用户操作体验。


消息通知子系统用户需求

概述


本系统用户主要分为两大类用户:普通用户、管理员。

普通用户通过使用消息子系统,获得需要得到的消息及提醒并及时进行业务处理。


用户使用的一般是Internet Explorer8.0以上版本的浏览器,或者FireFox 2.0以上的浏览器。浏览器的安全等级为默认等级,支持第一方cookie及第三方有隐私声明的cookie,支持JavaScript 1.1以上标准的前端脚本。

采用成熟可控的技术,着重考虑现有可复用的经验,进行快速迭代开发。

 

消息通知系统,顾名思义即通知信息的传达处理系统。目的是为了让用户获得需要得到的消息及提醒并进行处理。消息通知按发送接收对象不同分成为三类,系统提醒、系统通告、个人私信。

系统提醒:主要用于由外界直接或间接更新用户相关的信息,对用户产生了影响,在用户不知道的情况下,需要系统主动提醒用户。

1)        统计性提醒:相关内容的个数变化,统计相关内容个数,包括登录统计和实时统计。

2)        弹出窗口提醒:服务器推送数据到客户端弹出信息窗口提示用户发生变化的内容,通过点击操作跳转到相应的页面显示结果。这类提醒一般附带操作按钮,点击按钮会触发相应的操作,这种情况一般使用实时提醒。

系统公告:有系统平台发送到用户的信息,可向单个用户发送,多个用户发送,或者某一个特定用户类型发送,还有向全部用户发送。公告具有不同的优先级别。(平台发布公告、平台撤销公告、平台删除公告、平台查询公告、用户查看公告、用户查询公告)

用户消息(私信):用户之间互相发送消息,可以针对一个消息进行回复。分为实时消息和非实时消息。可用户向用户发送,用户向群体发送,群体向个人用户发送,群体向群体发送,个人向多个用户发送。(用户查看消息、用户回复消息、用户标记消息已读、用户查询消息)

通知在推送之前需要进行汇总合并,目的在于提高消息传播处理效率,减少骚扰,降低噪音,平衡服务器压力。

 

1. 合并周期:

固定时间内的消息全部汇总(24小时内/30天等);

无固定时间(只要未处理/未读即汇总)

当然一般都组合着用:合并24小时内未处理消息

2. 分类合并

同种类进行合并(如n条提醒合并为1条)

同一发起人合并(如其它用户给你发来的n条私信)

同一时间周期合并(如24小时共收到n条系统提醒)

3.  

通知按照规则汇总完成后,系统将其通过通知管道推送到用户,以便用户处理。

 

1.  分发方式

 

  分发方式多采用pull拉取方式,部分特定类型的信息,需要在指定时间内主动推送(Push)给用户。。

通知优先推送未处理通知合并后的总数,已提醒用户已有新消息需要处理。用户点击数字后再去服务端请求具体的消息内容。此种方式综合考虑了成本、压力和体验。当然,某些极端情况下需要进行优化处理:如未读消息超过1000,用户请求时先推送前50条或者放入cache中等。

2.  分发频率(时间)

分发时间主要根据消息的优先级来做区隔:

优先级

分发时间

备注

实时推送

需要用户立刻处理或知晓

小时/天/周

不需要用户立刻处理,汇总后发出

固定周期

提醒类或触发条件后触发

 

  3)分发管道

  分发管道即消息通知的具体推送渠道,根据业务类型可以分为:Web、短信、邮件等。

 

对于通知的处理在逻辑上可以分为两层:通知状态的处理和通知内容的处理。

4. 状态是否已读(已处理)。通常初始数字即为系统推送过来的未读总量,用户点击数字进入相关功能列表查阅后,读取的动作完成,未读数字相应减少,注意并发访问导致数量变化的问题。根据消息提醒信息的重要程度,可以设置为“点击已读”只要点击无论是否打开消息查看均认为是已读。对于某些重要级别的消息需要设置为“处理已读”,“处理已读”是用户必须进行相关操作后消息的状态更新成“已处理”状态。

 

5. 用户操作:根据不同消息种类和业务需要,操作可分为:

 

处理:用户必须点击功能连接进行处理。如:提示业务数据审核不通过,点击进行修改等。

回复:如回复私信。

确认:对消息做出确认的反馈。

忽略:用户进行忽略操作或不进行任何操作。

删除:用户删除本消息。

6. 消息处理后状态需要统一:具有多个客户端的情况下消息需要标记是否处理的状态,且状态在不同的终端是打通的。新消息到达时提醒交互功能

新消息到达时系统可提供多种方式提醒用户。

3.  标题闪动:通过浏览器标题闪动的方式提醒用户有新信息到达。

4.  声音提醒:消息到达后声音提醒用户。

5.  气泡加数字提醒:

参考Facebook网站功能。

 

6.  新消息悬浮层:

参考新浪微博相关功能。

消息通知子系统用户需求

7.  信息弹窗:

类似qq信息提示,多用于实时消息提示。

 

设计模板机制,业务系统可定制模板,使用模板发送消息。定义变量关键字,比如“当前用户名”,可使用登录的用户信息替换模板中的数据。

服务模块

消息子系统需提供Restful API以便客户端脚本控件和业务系统应用使用。

1.  获取未读消息Api

2.  统一更新读取状态

3.  发送公告、消息、提醒。

 

考虑大并发的情况,信息发送使用异步调用的方式,系统响应时间应该在2秒以内。

以上版本。

运行WEB服务器:Tomcat。

Java7


请关注公众号:程序你好
0

上一篇: 没有了

:下一篇

精彩评论

暂无评论...
验证码 换一张
取 消