共享消息服务中心解决方案
消息服务中心是业务系统中比较重要的一项功能,在各应用系统独立设计消息管理的时候,会出现维护成本高、资源复用率低、灵活性差等问题,于是笔者结合需求以及产品目标对消息服务中心的结构做出调整。
一、背景
消息是业务系统中常见的一种功能,但因为前期没有做统一的产品规划,没有考虑功能的复用性,各系统按各自的需求进行设计,各自管理系统消息。
图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协议
作者暂无likerid, 赞赏暂由本网站代持,当作者有likerid后会全部转账给作者(我们会尽力而为)。Tips: Until now, everytime you want to store your article, we will help you store it in Filecoin network. In the future, you can store it in Filecoin network using your own filecoin.
Support author:
Author's Filecoin address:
Or you can use Likecoin to support author: