共享消息服务中心解决方案

消息服务中心是业务系统中比较重要的一项功能,在各应用系统独立设计消息管理的时候,会出现维护成本高、资源复用率低、灵活性差等问题,于是笔者结合需求以及产品目标对消息服务中心的结构做出调整。

一、背景

消息是业务系统中常见的一种功能,但因为前期没有做统一的产品规划,没有考虑功能的复用性,各系统按各自的需求进行设计,各自管理系统消息。

图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协议

给作者打赏,鼓励TA抓紧创作!
评论
欢迎留言讨论~!