共享消息服務中心解決方案
消息服務中心是業(yè)務系統(tǒng)中比較重要的一項功能,在各應用系統(tǒng)獨立設計消息管理的時候,會出現(xiàn)維護成本高、資源復用率低、靈活性差等問題,于是筆者結合需求以及產品目標對消息服務中心的結構做出調整。
一、背景
消息是業(yè)務系統(tǒng)中常見的一種功能,但因為前期沒有做統(tǒng)一的產品規(guī)劃,沒有考慮功能的復用性,各系統(tǒng)按各自的需求進行設計,各自管理系統(tǒng)消息。
圖1:應用系統(tǒng)消息推送現(xiàn)狀
各應用系統(tǒng)獨立設計消息管理,主要遇到了以下問題:
1. 緊耦合
各應用系統(tǒng)與消息通道之間點對點對接,當某消息通道發(fā)生改變,所有與其連接的應用系統(tǒng)都需改變,靈活性差。
2. 可擴展和可維護性差
當需要增加一種新的消息發(fā)送類型,各應用系統(tǒng)都需要增加相應的對接方案,工作量倍增,后期維護成本也更高。
3. 資源復用率低
各應用系統(tǒng)單獨設計和對接消息通道,后期新應用系統(tǒng)接入時,消息功能可復用性低,造成企業(yè)人力和資金成本的高度浪費。
為了有效解決以上問題,為了能更好的將消息通用性功能做成可復用的,將共享消息服務建成一個中臺,用于支持各業(yè)務系統(tǒng)對此類服務的統(tǒng)一調用,是解決企業(yè)內多系統(tǒng)消息管理的有效辦法;
二、需求
目前企業(yè)內部主要的應用系統(tǒng)群包含:業(yè)務系統(tǒng)(如:TMS、OMS、WMS等)和企業(yè)內部管理系統(tǒng)(OA、NC等)。
消息服務中臺化將改變原應用在消息接收、發(fā)送、監(jiān)控等方面的機制,了解并滿足業(yè)務需求是提供解決方案的前提。
- 及時響應:各應用系統(tǒng)統(tǒng)一向消息中心發(fā)出請求,消息中心需及時響應;
- 準確、高效發(fā)送:根據各應用系統(tǒng)的指令,在準確的時間點將準確的消息內容以相應的通道發(fā)送至相應的人員,并確保無漏發(fā)或重發(fā);
- 消息監(jiān)控:能夠查詢到哪些應用系統(tǒng)下發(fā)了消息指令,消息發(fā)送情況、消息接收情況等;
- 消息配置:能滿足各應用系統(tǒng)消息配置需求;
- 其它業(yè)務需求:能滿足消息業(yè)務完整閉環(huán)流程,包括:消息創(chuàng)建、消息發(fā)送、消息接收、消息監(jiān)控等等。
三、解決方案
1. 目標
實現(xiàn)系統(tǒng)群的共享:共享消息服務是針對應用系統(tǒng)群提出的解決辦法,實現(xiàn)系統(tǒng)群對該服務的共享。
- 可復用:能夠支持各應用系統(tǒng)群的需求;即共享消息服務提供的功能具有通用性,同時具有一定的個性化。
- 可拓展:能基于現(xiàn)有的產品進行拓展或者配置。
- 可視化:可全面展示消息在各應用系統(tǒng)中的使用情況。
- 讓用戶更容易獲得消息
無論是哪個獨立系統(tǒng),用戶都能根據其業(yè)務需求,高效、安全、準確的獲得相應的消息。
2. 產品結構
通過對需求的分析,并結合當前企業(yè)內應用系統(tǒng)架構所遇到的實際問題;我們引入消息服務中心,來降低應用系統(tǒng)間的耦合,通過消息服務中心實現(xiàn)消息創(chuàng)建、消息推送、消息監(jiān)控等核心通用機制,提供系統(tǒng)的可擴展性、可維護性和可用性。
消息服務中心的整體產品架構圖如下:
圖2:消息服務中心產品結構圖
從消息服務中心的整體結構中,主要分為三層:
(1)核心功能層
主要包括了消息創(chuàng)建、消息推送、消息配置、消息日志、消息監(jiān)控、消息任務調度等功能,核心功能層涵蓋了各應用系統(tǒng)通用的組件。
(2)功能接口層
功能接口層以統(tǒng)一的標準提供給需要發(fā)送消息的應用系統(tǒng),例如:創(chuàng)建消息任務、查詢消息、更新消息、取消消息等。
通過標準的功能服務接口,需要發(fā)送消息的應用系統(tǒng)只需要關注接口的功能,而不需要關注具體消息發(fā)送的實現(xiàn)細節(jié),進一步做到系統(tǒng)之間的解耦。
(3)通道適配層
通道適配層支持所有消息類型的發(fā)送要求,可以提高消息發(fā)送通道的靈活性和擴展性。
消息服務中心主要有以下幾個特點:
(1)低耦合
通過消息服務中心連接應用系統(tǒng)和消息通道,使應用系統(tǒng)只需關注其具體業(yè)務邏輯,而不需要關心具體的消息發(fā)送邏輯(例如:應該選擇哪個消息通道,如何與消息發(fā)送通道對接,等等),降低系統(tǒng)耦合。
(2)可擴展
統(tǒng)一消息中心后,消息類型和消息發(fā)送通道等是可擴展的,在需要時,可以輕易調整對不同消息類型的支持,也可以輕易的對消息發(fā)送通道進行替換和調整。
(3)業(yè)務無關
應用系統(tǒng)的業(yè)務邏輯和消息發(fā)送機制分離,由消息服務中心負責“在何時以何種方式推送消息”;提高了系統(tǒng)的復用性和可維護性。
3. 消息服務中心功能設計
基于業(yè)務需求,綜合各應用系統(tǒng)的消息功能,抽離并沉淀形成消息服務中心的功能結構,如下圖:
圖3:消息服務中心功能圖
1. 基礎資料模塊
圖4:消息基礎資料管理
根據用戶中心的權限配置,消息管理員可以對消息的基礎資料進行配置,以實現(xiàn)各應用系統(tǒng)的調用和消息的成功發(fā)送。
消息的類型從B類業(yè)務上分,主要包括公告類和業(yè)務類,其他分類可自定義添加。
消息狀態(tài)主要包括:已讀和未讀兩種形式,用于識別消息用戶消息閱讀情況;
消息內容可通過設置消息模板和固化消息內容兩種;消息與應用系統(tǒng)的關聯(lián),即某類消息或某條消息能夠推送到哪些應用系統(tǒng);消息與用戶的關聯(lián)即設置某消息在滿足一定條件下觸發(fā)給用戶;(注:觸發(fā)條件因業(yè)務關聯(lián)性強,其規(guī)則在各應用系統(tǒng)中實現(xiàn))。
消息接收方式主要包括:釘釘、微信、郵箱、短信等形式;在消息創(chuàng)建后,可選擇消息的接收方式。
2. 消息任務管理
消息任務管理是面向業(yè)務的,是消息服務中心主要模塊之一。其主要的功能是對消息任務從接收、過程監(jiān)控、執(zhí)行完畢全流程的管理,其主要流程如下:
圖5:消息任務管理主要流程
首先,消息服務中心創(chuàng)建或接收消息任務,當滿足應用系統(tǒng)消息執(zhí)行條件時,會取出消息任務交給任務調度;其次,根據一定的配置對消息任務進行執(zhí)行,直至結束。
3. 消息日志管理
消息日志記錄著消息從創(chuàng)建至結束的全生命周期過程,便于各應用系統(tǒng)對日志過程及結果的查詢和統(tǒng)計分析。
4. 消息配置管理
消息服務中心是消息接收和推送的統(tǒng)一平臺,可以通過配置項管理應用系統(tǒng)是否有接入權限、配置應用系統(tǒng)與發(fā)送通道的關聯(lián)關系、消息任務與應用系統(tǒng)的關聯(lián)關系等等。
例如:WMS系統(tǒng)可通過微信、APP、短信方式推送消息。通過消息配置管理,確保滿足各應用系統(tǒng)消息管理的需求。
總結
通過共享消息服務中心,較好保證了系統(tǒng)的可擴展性和可維護性,進一步降低了系統(tǒng)的耦合。對于企業(yè)中臺化發(fā)展具有重要的意義。
本文由 @產品余 原創(chuàng)發(fā)布于人人都是產品經理。未經許可,禁止轉載。
題圖來自Unsplash,基于CC0協(xié)議
有關于消息監(jiān)控的文章不
謝謝大神教導,認真學習ing
NC是什么系統(tǒng)。。
方便加微信,關于消息中心通知相互交流一下嗎?
我的微信:18621732194
學習打卡
非常棒