郭 倩,劉宏磊,張亞娟,譚 薇,杜 豐
(西安交通大學 網(wǎng)絡信息中心,陜西 西安 710049)
數(shù)字校園的快速發(fā)展使高校信息化建設碩果累累,各個部門基于自身需求建立了各自的業(yè)務系統(tǒng),如科研、教務、研究生信息管理等系統(tǒng)。隨著信息化建設的不斷推進,越來越多的業(yè)務系統(tǒng)和部門需要向校內(nèi)用戶(教職工、學生等)發(fā)布各類消息(通知、提醒、代辦、催辦等),冗余繁多的郵件、網(wǎng)頁、站內(nèi)信、即時通信消息使得各個業(yè)務系統(tǒng)之間、業(yè)務系統(tǒng)與人之間、人與人之間的信息互聯(lián)互通的變得冗余復雜且效率低下。各種各樣的消息發(fā)布渠道如果沒有統(tǒng)一的消息發(fā)布出口,就會出現(xiàn)各業(yè)務系統(tǒng)重復建設的情況,造成數(shù)字校園資源的極大浪費,也不利于統(tǒng)一監(jiān)管。
目前大多數(shù)高校使用以下幾種方式進行消息的收發(fā)和管理:
以廣播[1]的方式在瀏覽器中呈現(xiàn)消息,對象指向不明確,沒有時效性也無法保證信息肯定被接收,效率極其低下。
雖然可以向指定人群大容量推送消息[2],但是時效性很差。
利用第三方公司開發(fā)的如微信、QQ和飛信[3]等工具進行消息的下發(fā)和上行,雖然時效性高,對象指向明確,但是無法保證消息來源的權威性,也不能與校內(nèi)各個業(yè)務系統(tǒng)進行對接和集成,具有一定的局限性。
目前一些高校使用三大運營商或者第三方公司提供的短信平臺群發(fā)短信,這種方法雖然能保證消息的及時性和準確性,但是管理上存在著幾個問題。一是用戶手機號碼和通訊錄的維護有一定難度;二是使用的第三方平臺沒有完備且適用于高校的角色設置和權限分配機制;三是用戶范圍單一,只能針對部分指定人員開發(fā),無法面向全校教職工和業(yè)務系統(tǒng)開放。
所有消息通過統(tǒng)一控制臺收發(fā),同時接入手機短信、電子郵件以及微信公眾號等發(fā)送渠道。
各業(yè)務系統(tǒng)[4]僅需調(diào)用一個消息發(fā)送接口,即可完成消息的多終端推送(郵件、微信、短信),減去了單獨開發(fā)消息推送模塊的工作。
基于已有的統(tǒng)一身份認證系統(tǒng)做用戶認證,同時支持數(shù)據(jù)庫統(tǒng)一導入教職工和學生的用戶信息,支持按照部門層級規(guī)范管理用戶的通訊錄和群組,支持個人通訊錄??紤]權限角色的管控、不同權限級別的不同角色。
所有業(yè)務系統(tǒng)接入端和個人用戶只有通過系統(tǒng)的認證,才能獲取授權推送消息,規(guī)范不同權限用戶通過指定的渠道發(fā)送消息。
定義非法消息的安全策略,比如暴力、色情、非法組織等相關敏感詞匯。終止非法消息的發(fā)送,并追溯發(fā)送來源。
直觀、便捷地確定消息接收者(人)、消息發(fā)送渠道(方式)、消息內(nèi)容(內(nèi)容)以及歷史消息(記錄),可快速地指定向某分組下所有用戶、某些用戶或某個用戶發(fā)送消息。
可個性化設置常用聯(lián)系人,消息接收用戶可以根據(jù)個人需要,退訂某些類別的消息,以免消息騷擾。
所有消息以報表的形式進行統(tǒng)計和分析,方便相關人員具體、清晰、準確地監(jiān)控消息發(fā)送的數(shù)據(jù)。直觀地展示在不同時間段內(nèi),各個渠道、各個部門、消息發(fā)送的總數(shù)量和趨勢,從而確定更合理的發(fā)送方式和數(shù)量,提高管理的透明度。
在智慧校園的背景下,基于PaaS平臺的統(tǒng)一消息協(xié)作系統(tǒng)能覆蓋校園主要系統(tǒng)應用及服務,讓各業(yè)務部門高效、方便、迅速、安全地下發(fā)消息和通知并獲取上行回復,實現(xiàn)校園消息的統(tǒng)一發(fā)送、統(tǒng)一監(jiān)控、統(tǒng)一管理。
統(tǒng)一消息協(xié)作系統(tǒng)的主要用戶對象為 “個人”與“業(yè)務系統(tǒng)[4]”,系統(tǒng)提供Web控制臺實現(xiàn)消息收發(fā)、數(shù)據(jù)統(tǒng)計以及權限管理等功能模塊,滿足個人用戶的功能需求,同時提供接口服務滿足業(yè)務系統(tǒng)的集成接入。系統(tǒng)的核心模塊基于消息隊列機制,提供負載均衡機制。各個模塊相對獨立,邏輯清晰,保障了穩(wěn)定性、可擴展性和可用性[5]。統(tǒng)一消息協(xié)作系統(tǒng)總體架構如圖1所示。
圖1 統(tǒng)一消息協(xié)作系統(tǒng)總體架構圖
根據(jù)高校中“個人”與“業(yè)務系統(tǒng)”兩種用戶的特征對權限與角色進行設計,如表1所示。
表1 用戶權限分配表
(1)把用戶角色分為個人用戶、應用系統(tǒng)用戶。統(tǒng)一消息協(xié)作系統(tǒng)中應用系統(tǒng)用戶和個人用戶擁有平行權限。
(2)把用戶類型分為超級管理員、系統(tǒng)管理員、部門管理員、輔導員、普通賬號,權限分配如表1所示。
(3)普通賬號是相對于具有管理員權限的賬號提出的。應用系統(tǒng)用戶、個人用戶都可以是普通賬號,只具備普通賬號的權限。超級管理員是整個系統(tǒng)的總管理員賬號,可以分配系統(tǒng)管理員賬號,系統(tǒng)管理員賬號可分配部門管理員賬號,部門管理員可設置輔導員,輔導員可維護家長通訊錄以及向家長發(fā)送消息。
消息隊列(MQ)是一種服務與服務之間經(jīng)常見到的數(shù)據(jù)通信中間件,具有緩沖、解耦和擴展性等特點。本系統(tǒng)的消息流轉(zhuǎn)流程如圖2所示。
圖2 消息流轉(zhuǎn)流程圖
RocketMQ是Kafka的改進版,把消息的事務性及可靠傳輸進行了優(yōu)化,目前被Ali集團廣泛應用于交易、充值、日志流式處理、消息推送等,支撐了Ali多次“雙十一”活動。相比現(xiàn)在比較常見的MQ產(chǎn)品,如ZeroMQ、RabbitMQ、ActiveMQ 等,RocketMQ 具有消息輕巧靈活易用、傳輸可靠性高、支持海量堆積和性能強勁等特點。
因此,本系統(tǒng)選擇RocketMQ處理大數(shù)據(jù)量發(fā)送時消息的流轉(zhuǎn)與加工[6]。利用Springboot特性將消息協(xié)作系統(tǒng)分化為EMC3.0后臺業(yè)務處理系統(tǒng)、隊列切割程序包、數(shù)據(jù)庫存儲程序包、消息推送程序包。將消息處理與業(yè)務處理解耦,有效并準確地記錄發(fā)送的消息,并提供了程序異?;虿僮飨到y(tǒng)異常時的恢復機制。
目前多數(shù)短信平臺只針對短信發(fā)送渠道開通上行回復功能,所有上行回復打包放到數(shù)據(jù)池中,用戶抓取時無法甄別每條短信具體的下行發(fā)送者,還存在接收時效性差、短信丟失量多等問題[7]。
本系統(tǒng)每日下行短信發(fā)送量約30000條,為了實現(xiàn)下行發(fā)送內(nèi)容與上行回復內(nèi)容的一一對應,同時保證用戶能收到三天以內(nèi)的上行回復,為每條下行短信附加了五位擴展碼(從0到99999),按照發(fā)送和接收兩個模塊進行了設計開發(fā),如圖3所示。
發(fā)送模塊:每條短信下發(fā)時,首先記錄擴展碼N,并判斷N是否為0-99999中的任意數(shù)字,如果是,調(diào)用發(fā)送接口發(fā)送短信,同時擴展碼+1;如果不是,說明擴展碼已到達上限99999,歸零重新開始記錄。
圖3 短信發(fā)送模塊附加擴展碼流程圖
接收模塊:收到上行回復消息后,根據(jù)擴展碼、回復手機號、回復時間去查找數(shù)據(jù)庫里面的消息記錄,然后把短信內(nèi)容記錄到對應短信的回復內(nèi)容中。
接口設計為“應用系統(tǒng)”用戶封裝了可直接調(diào)用的接口,包括 “渠道獲取接口、消息發(fā)送接口、消息查詢接口[8]”等。接口調(diào)用路徑說明如表2所示。
表2 接口調(diào)用路徑說明
接口設計思路:
(1)獲取用戶的請求參數(shù);
(2)對參數(shù)進行相關的認證、過濾等處理;
(3)將消息分配到不同的渠道接收器;
(4)不同的渠道接收器接收到消息后將消息放入發(fā)送隊列;
(5)多線程讀取發(fā)送隊列的消息進行發(fā)送;
(6)將發(fā)送的結果及消息存儲到數(shù)據(jù)庫。
西安交通大學統(tǒng)一消協(xié)作系統(tǒng)已于2017年6月正式上線使用,作為校內(nèi)消息即時、高效上傳下達的核心,實現(xiàn)了短信和郵件的統(tǒng)一發(fā)送、統(tǒng)一監(jiān)管和安全審計,短信還支持上行回復到每位發(fā)送者。目前系統(tǒng)已經(jīng)有150余名教職工用戶、40多個應用系統(tǒng)賬號,累計發(fā)送短信達76.7萬條、郵件6.6萬封。
基于B/S構建的統(tǒng)一消息協(xié)作系統(tǒng)集成了多種消息組件,通過標準化的消息接口對各類消息進行統(tǒng)一處理,提供短信、郵件、即時通信等多種消息交換功能;研究了高校用戶體系,將消息接收者擴充為部門通訊錄、家長通訊錄、個人通訊錄、常用聯(lián)系人、群組聯(lián)系人,為發(fā)送對象提供多元化選擇。采用先進的Web應用開發(fā)技術,支持并發(fā)多進程、多用戶。
隨著數(shù)字校園的不斷發(fā)展,以及統(tǒng)一身份認證和數(shù)據(jù)中心的不斷建設,校內(nèi)用戶的信息采集和數(shù)據(jù)的動態(tài)維護會更加完善,統(tǒng)一消息協(xié)作系統(tǒng)也將逐步優(yōu)化。未來考慮利用跨域認證和多租戶架構,實現(xiàn)面向聯(lián)盟用戶(兄弟院校)開放基于PaaS平臺的統(tǒng)一消息協(xié)作系統(tǒng),讓不同認證用戶之間實現(xiàn)資源共享。