共享消息服务中心解决方案
消息服务中心是业务系统中比较重要的一项功能,在各应用系统独立设计消息管理的时候,会出现维护成本高、资源复用率低、灵活性差等问题,于是笔者结合需求以及产品目标对消息服务中心的结构做出调整。
一、背景
消息是业务系统中常见的一种功能,但因为前期没有做统一的产品规划,没有考虑功能的复用性,各系统按各自的需求进行设计,各自管理系统消息。
图1:应用系统消息推送现状
各应用系统独立设计消息管理,主要遇到了以下问题:
1. 紧耦合
各应用系统与消息通道之间点对点对接,当某消息通道发生改变,所有与其连接的应用系统都需改变,灵活性差。
2. 可扩展和可维护性差
当需要增加一种新的消息发送类型,各应用系统都需要增加相应的对接方案,工作量倍增,后期维护成本也更高。
3. 资源复用率低
各应用系统单独设计和对接消息通道,后期新应用系统接入时,消息功能可复用性低,造成企业人力和资金成本的高度浪费。
为了有效解决以上问题,为了能更好的将消息通用性功能做成可复用的,将共享消息服务建成一个中台,用于支持各业务系统对此类服务的统一调用,是解决企业内多系统消息管理的有效办法;
二、需求
目前企业内部主要的应用系统群包含:业务系统(如:TMS、OMS、WMS等)和企业内部管理系统(OA、NC等)。
消息服务中台化将改变原应用在消息接收、发送、监控等方面的机制,了解并满足业务需求是提供解决方案的前提。
- 及时响应:各应用系统统一向消息中心发出请求,消息中心需及时响应;
- 准确、高效发送:根据各应用系统的指令,在准确的时间点将准确的消息内容以相应的通道发送至相应的人员,并确保无漏发或重发;
- 消息监控:能够查询到哪些应用系统下发了消息指令,消息发送情况、消息接收情况等;
- 消息配置:能满足各应用系统消息配置需求;
- 其它业务需求:能满足消息业务完整闭环流程,包括:消息创建、消息发送、消息接收、消息监控等等。
三、解决方案
1. 目标
实现系统群的共享:共享消息服务是针对应用系统群提出的解决办法,实现系统群对该服务的共享。
- 可复用:能够支持各应用系统群的需求;即共享消息服务提供的功能具有通用性,同时具有一定的个性化。
- 可拓展:能基于现有的产品进行拓展或者配置。
- 可视化:可全面展示消息在各应用系统中的使用情况。
- 让用户更容易获得消息
无论是哪个独立系统,用户都能根据其业务需求,高效、安全、准确的获得相应的消息。
2. 产品结构
通过对需求的分析,并结合当前企业内应用系统架构所遇到的实际问题;我们引入消息服务中心,来降低应用系统间的耦合,通过消息服务中心实现消息创建、消息推送、消息监控等核心通用机制,提供系统的可扩展性、可维护性和可用性。
消息服务中心的整体产品架构图如下:
图2:消息服务中心产品结构图
从消息服务中心的整体结构中,主要分为三层:
(1)核心功能层
主要包括了消息创建、消息推送、消息配置、消息日志、消息监控、消息任务调度等功能,核心功能层涵盖了各应用系统通用的组件。
(2)功能接口层
功能接口层以统一的标准提供给需要发送消息的应用系统,例如:创建消息任务、查询消息、更新消息、取消消息等。
通过标准的功能服务接口,需要发送消息的应用系统只需要关注接口的功能,而不需要关注具体消息发送的实现细节,进一步做到系统之间的解耦。
(3)通道适配层
通道适配层支持所有消息类型的发送要求,可以提高消息发送通道的灵活性和扩展性。
消息服务中心主要有以下几个特点:
(1)低耦合
通过消息服务中心连接应用系统和消息通道,使应用系统只需关注其具体业务逻辑,而不需要关心具体的消息发送逻辑(例如:应该选择哪个消息通道,如何与消息发送通道对接,等等),降低系统耦合。
(2)可扩展
统一消息中心后,消息类型和消息发送通道等是可扩展的,在需要时,可以轻易调整对不同消息类型的支持,也可以轻易的对消息发送通道进行替换和调整。
(3)业务无关
应用系统的业务逻辑和消息发送机制分离,由消息服务中心负责“在何时以何种方式推送消息”;提高了系统的复用性和可维护性。
3. 消息服务中心功能设计
基于业务需求,综合各应用系统的消息功能,抽离并沉淀形成消息服务中心的功能结构,如下图:
图3:消息服务中心功能图
1. 基础资料模块
图4:消息基础资料管理
根据用户中心的权限配置,消息管理员可以对消息的基础资料进行配置,以实现各应用系统的调用和消息的成功发送。
消息的类型从B类业务上分,主要包括公告类和业务类,其他分类可自定义添加。
消息状态主要包括:已读和未读两种形式,用于识别消息用户消息阅读情况;
消息内容可通过设置消息模板和固化消息内容两种;消息与应用系统的关联,即某类消息或某条消息能够推送到哪些应用系统;消息与用户的关联即设置某消息在满足一定条件下触发给用户;(注:触发条件因业务关联性强,其规则在各应用系统中实现)。
消息接收方式主要包括:钉钉、微信、邮箱、短信等形式;在消息创建后,可选择消息的接收方式。
2. 消息任务管理
消息任务管理是面向业务的,是消息服务中心主要模块之一。其主要的功能是对消息任务从接收、过程监控、执行完毕全流程的管理,其主要流程如下:
图5:消息任务管理主要流程
首先,消息服务中心创建或接收消息任务,当满足应用系统消息执行条件时,会取出消息任务交给任务调度;其次,根据一定的配置对消息任务进行执行,直至结束。
3. 消息日志管理
消息日志记录着消息从创建至结束的全生命周期过程,便于各应用系统对日志过程及结果的查询和统计分析。
4. 消息配置管理
消息服务中心是消息接收和推送的统一平台,可以通过配置项管理应用系统是否有接入权限、配置应用系统与发送通道的关联关系、消息任务与应用系统的关联关系等等。
例如:WMS系统可通过微信、APP、短信方式推送消息。通过消息配置管理,确保满足各应用系统消息管理的需求。
总结
通过共享消息服务中心,较好保证了系统的可扩展性和可维护性,进一步降低了系统的耦合。对于企业中台化发展具有重要的意义。
本文由 @产品余 原创发布于人人都是产品经理。未经许可,禁止转载。
题图来自Unsplash,基于CC0协议
有关于消息监控的文章不
谢谢大神教导,认真学习ing
NC是什么系统。。
方便加微信,关于消息中心通知相互交流一下吗?
我的微信:18621732194
学习打卡
非常棒