邵旭東,曹志威,樊志杰, ,呂抒鉞,姚文猛,張 林
(1.公安部第三研究所 信息安全技術(shù)部,上海 200031;2.上海辰銳信息科技有限公司 研發(fā)中心,上海 200031)
移動(dòng)警務(wù)平臺(tái)是相關(guān)部門組織建設(shè)為廣大警務(wù)人員以及社會(huì)協(xié)治力量提供移動(dòng)辦公、移動(dòng)執(zhí)法等活動(dòng)的信息化平臺(tái)。移動(dòng)警務(wù)平臺(tái)基于信息系統(tǒng)處理數(shù)據(jù)的安全需求和服務(wù)用戶群體性質(zhì)分為移動(dòng)互聯(lián)網(wǎng)服務(wù)子平臺(tái)(以下簡稱Ⅰ類區(qū))、聯(lián)網(wǎng)服務(wù)子平臺(tái)(以下簡稱Ⅱ類區(qū))和信息網(wǎng)服務(wù)子平臺(tái)(以下簡稱Ⅲ類區(qū))。其中Ⅰ類區(qū)平臺(tái)允許普通商業(yè)移動(dòng)終端接入,Ⅱ類區(qū)和Ⅲ類區(qū)只允許符合GAT1466.1-2018《智能手機(jī)型移動(dòng)警務(wù)終端第1部分:技術(shù)要求》和GAT1466.2-2018《智能手機(jī)型移動(dòng)警務(wù)終端第2部分:安全監(jiān)控組件技術(shù)規(guī)范》的移動(dòng)終端接入。
并且,為推進(jìn)移動(dòng)化辦公,和在提升執(zhí)法效率同時(shí)維護(hù)信息系統(tǒng)數(shù)據(jù)安全,各地相關(guān)部門為廣大一線人員采購配發(fā)了移動(dòng)警務(wù)專用終端。此類終端的共同特點(diǎn)是同一個(gè)硬件終端運(yùn)行生活域和工作域雙系統(tǒng),滿足警務(wù)用戶在同一個(gè)終端處理不同安全要求的業(yè)務(wù)應(yīng)用和數(shù)據(jù)的需求,生活域和工作域兩個(gè)系統(tǒng)之間在終端側(cè)完全隔離,信息無法互通。實(shí)際使用過程中工作域系統(tǒng)只能連接Ⅱ類區(qū),然后通過VPN加密通道的方式連接Ⅲ類區(qū),生活域系統(tǒng)只能連接Ⅰ類區(qū),這就導(dǎo)致終端處于生活域狀態(tài)時(shí)用戶無法獲悉其工作域信息,處于工作域狀態(tài)時(shí)用戶無法獲悉其生活域信息,嚴(yán)重導(dǎo)致了警務(wù)用戶處理流轉(zhuǎn)型和通知型業(yè)務(wù)的滯后,違背了移動(dòng)警務(wù)業(yè)務(wù)的效率提升的初衷。
基于此研究人員提出了一套基于移動(dòng)警務(wù)平臺(tái)側(cè)信息同步的消息推送方案,實(shí)現(xiàn)移動(dòng)警務(wù)終端生活域和工作域之間的業(yè)務(wù)提醒消息的互通?;谠摲桨冈O(shè)計(jì)開發(fā)了一套移動(dòng)警務(wù)跨區(qū)域消息提醒服務(wù)系統(tǒng),通過平臺(tái)側(cè)進(jìn)行信息的同步,然后在移動(dòng)警務(wù)相應(yīng)子平臺(tái)區(qū)域內(nèi)進(jìn)行信息的終端推送,以滿足用戶跨區(qū)域的消息接收的需求。
其中包括:設(shè)計(jì)了平臺(tái)側(cè)消息、系統(tǒng)配置、系統(tǒng)狀態(tài)等數(shù)據(jù)同步協(xié)議;設(shè)計(jì)了移動(dòng)終端?;?、消息推送協(xié)議;設(shè)計(jì)了消息內(nèi)容匹配審計(jì)算法,按照移動(dòng)警務(wù)平臺(tái)的數(shù)據(jù)安全要求,對跨區(qū)域的信息進(jìn)行白名單式的匹配審計(jì),防止敏感信息泄漏。
本文所設(shè)計(jì)“移動(dòng)警務(wù)跨域消息提醒服務(wù)系統(tǒng)”,由“移動(dòng)警務(wù)跨域消息提醒服務(wù)端”和“移動(dòng)警務(wù)專用終端消息提醒組件”兩個(gè)部分組成,如圖1所示。
圖1 系統(tǒng)部署結(jié)構(gòu)示意圖
以下簡稱:服務(wù)端。適用于在“移動(dòng)警務(wù)服務(wù)平臺(tái)”(以下簡稱:平臺(tái))的三個(gè)被邊界所隔離的Ⅰ/Ⅱ/Ⅲ類區(qū)子平臺(tái)中分別部署:
服務(wù)端與其它內(nèi)外部系統(tǒng)須要建立起業(yè)務(wù)連接,包括:
1)與“移動(dòng)警務(wù)第三方業(yè)務(wù)應(yīng)用”(以下簡稱:第三方應(yīng)用)連接,通過本系統(tǒng)消息提醒服務(wù)接口,承接第三方發(fā)起的向移動(dòng)端送達(dá)消息的請求;
2)與移動(dòng)端銜接,支撐消息提醒向移動(dòng)端送達(dá)所必須的相關(guān)交互;
3)透過邊界交換隔離,與臨近區(qū)域子平臺(tái)的服務(wù)端進(jìn)行溝通,實(shí)現(xiàn)消息提醒相關(guān)數(shù)據(jù)的跨域交換和同步;
4)Ⅱ類區(qū)服務(wù)端,除了與Ⅰ、Ⅲ類區(qū)兩個(gè)服務(wù)端跨接外,還為Ⅰ、Ⅲ類區(qū)提供數(shù)據(jù)交換同步的中轉(zhuǎn)代理,實(shí)現(xiàn)兩個(gè)類區(qū)的間接連接。
以下簡稱:移動(dòng)端。適用于在“移動(dòng)警務(wù)專用雙域終端”(以下簡稱:終端)的兩個(gè)隔離操作系統(tǒng)中分別安裝:
1)生活域:接入移動(dòng)運(yùn)營商公共移動(dòng)通信網(wǎng)絡(luò),可訪問互聯(lián)網(wǎng)及移動(dòng)警務(wù)Ⅰ類區(qū)平臺(tái);
2)工作域:接入移動(dòng)警務(wù)專用APN,可訪問移動(dòng)警務(wù)Ⅱ類區(qū)平臺(tái);通過撥通專用VPN,還可在與Ⅱ類區(qū)隔離的情況下,訪問Ⅲ類區(qū)平臺(tái)。
移動(dòng)端與平臺(tái)可訪子平臺(tái)的服務(wù)端之間建立業(yè)務(wù)連接,支撐消息的送達(dá);同時(shí)調(diào)用終端操作系統(tǒng)相關(guān)接口,將消息最終發(fā)送到系統(tǒng)通知欄顯示。
基于上述系統(tǒng)形態(tài)、組成及其相互連接關(guān)系,第三方應(yīng)用在任意子平臺(tái)內(nèi)發(fā)起的消息推送請求皆可沿一定路徑,跨越n(0≤n≤2)次邊界,送達(dá)至終端當(dāng)前激活系統(tǒng)中的移動(dòng)端組件,并在系統(tǒng)通知欄中顯示給用戶。
按跨越邊界次數(shù)n不同,消息送達(dá)路徑可分為三類場景:
1.3.1 臨近跨域送達(dá)類(n=1)
如圖2所示,此類消息送達(dá)路徑僅須跨越邊界一次,并經(jīng)由兩個(gè)部署于不同區(qū)域的服務(wù)端:
圖2 臨近跨域送達(dá)路徑圖
在實(shí)際應(yīng)用中,存在4種場景:
1)Ⅰ類區(qū)→Ⅱ類區(qū)→工作域(未撥VPN);
2)Ⅱ類區(qū)→Ⅰ類區(qū)→生活域;
3)Ⅲ類區(qū)→Ⅱ類區(qū)→工作域(未撥VPN);
4)Ⅱ類區(qū)→Ⅲ類區(qū)→工作域(已撥VPN)。
1.3.2 代理跨域送達(dá)類(n=2)
如圖3所示,此類消息送達(dá)路徑須跨越邊界兩次,并經(jīng)由三個(gè)部署于不同子平臺(tái)的服務(wù)端。
圖3 代理跨域送達(dá)路徑圖
在實(shí)際應(yīng)用中,存在2種場景:
1)Ⅰ類區(qū)→Ⅱ類區(qū)→Ⅲ類區(qū)→工作域(已撥VPN);
2)Ⅲ類區(qū)→Ⅱ類區(qū)→生活域。
1.3.3 非跨域直接送達(dá)類(n=0)
如圖4所示,此類消息送達(dá)路徑不用跨越邊界,僅須經(jīng)由當(dāng)前區(qū)域的服務(wù)端即可。
圖4 非跨域送達(dá)路徑圖
在實(shí)際應(yīng)用中,存在3種場景:
1)Ⅰ類區(qū)→生活域;
2)Ⅱ類區(qū)→工作域(未撥VPN);
3)Ⅲ類區(qū)→工作域(已撥VPN)。
此類非跨域場景,通??捎傻谌綉?yīng)用自行完成向其在移動(dòng)端中安裝的對應(yīng)客戶端的消息送達(dá),因此在實(shí)際應(yīng)用中鮮有需求。
基于對上述送達(dá)路徑的分析可知:系統(tǒng)在進(jìn)行消息推送服務(wù)時(shí),必須根據(jù)本次請求指定的目標(biāo)終端當(dāng)前實(shí)際激活的系統(tǒng)區(qū)域來確定消息的送達(dá)路徑。
鑒于終端生活域和工作域的激活是排他性的,非激活區(qū)域下的移動(dòng)端組件隨系統(tǒng)處于凍結(jié)狀態(tài),失去了與服務(wù)端進(jìn)行任何交互的能力。因此,對于同一終端,在任何時(shí)間,只可能有不多于1個(gè)服務(wù)端檢測到其在線狀態(tài)。
因此,系統(tǒng)基于終端在線狀態(tài)信息,即可實(shí)現(xiàn)對終端激活區(qū)域的準(zhǔn)確識(shí)別,并用于確定本次消息的送達(dá)路徑。
綜合前面章節(jié)內(nèi)容,整個(gè)消息提醒系統(tǒng)在設(shè)計(jì)上分為兩個(gè)部分:
1)消息提醒服務(wù)端;
2)消息提醒移動(dòng)端組件。
如圖5所示。
圖5 系統(tǒng)模塊組成結(jié)構(gòu)圖
其中,服務(wù)端的功能和組成更為復(fù)雜,核心模塊包括:系統(tǒng)管理模塊、業(yè)務(wù)服務(wù)模塊、通用消息交換組件、內(nèi)容檢查過濾組件等。
本系統(tǒng)的WEB管理后臺(tái),提供給業(yè)務(wù)管理人員和運(yùn)維人員使用,執(zhí)行檔案管理、運(yùn)維管理、審計(jì)管理等操作。功能組成如圖6所示。
圖6 系統(tǒng)管理模塊結(jié)構(gòu)圖
系統(tǒng)管理模塊采用典型三層架構(gòu)設(shè)計(jì),基于主流Spring框架構(gòu)建。
業(yè)務(wù)服務(wù)模塊是服務(wù)端的對外服務(wù)界面,基于Spring Boot框架構(gòu)建,結(jié)構(gòu)如圖7所示。
圖7 業(yè)務(wù)服務(wù)模塊結(jié)構(gòu)圖
按照業(yè)務(wù)服務(wù)對象不同,以及交互承載協(xié)議的不同,服務(wù)分為消息推送服務(wù)和移動(dòng)端服務(wù)兩部分。
2.2.1 消息推送服務(wù)
向第三方提供業(yè)務(wù)服務(wù),設(shè)計(jì)采用HTTPS作為接口承載協(xié)議,引入WebFlux技術(shù)支撐高并發(fā)處理。
消息提醒接口設(shè)計(jì)符合RESTful風(fēng)格,請求數(shù)據(jù)體為JSON結(jié)構(gòu),定義如下:
{
"notification": {
"application": String,
"category": String,
"title": String,
"content": String,
"importance": String
},
"recipients": [String, …]
}
應(yīng)用身份認(rèn)證設(shè)計(jì)采用OAuth2規(guī)范。
2.2.2 移動(dòng)端服務(wù)
向移動(dòng)端組件提供業(yè)務(wù)服務(wù),設(shè)計(jì)采用MQTT+SSL作為接口承載協(xié)議。作為輕量的發(fā)布/訂閱范式消息協(xié)議,MQTT具有簡單、開放、易于實(shí)現(xiàn)的特點(diǎn),適用于移動(dòng)端耗能敏感和網(wǎng)絡(luò)質(zhì)量受限環(huán)境。
移動(dòng)端服務(wù)包括4個(gè)核心接口:
1)消息推送接口(Notify)。由服務(wù)端向移動(dòng)端下行推送,攜帶消息標(biāo)題、正文、源應(yīng)用、重要性等信息,并攜帶一個(gè)唯一ID作為回執(zhí)憑據(jù);
2)消息回執(zhí)接口(Receipt)。由移動(dòng)端向服務(wù)端上行推送,攜帶移動(dòng)端已收訖消息的唯一ID;
3)設(shè)備心跳接口(Alive)。由移動(dòng)端向服務(wù)端上行推送,攜帶IMEI號等設(shè)備信息及組件版本信息,推送時(shí)機(jī)由移動(dòng)端基于網(wǎng)絡(luò)環(huán)境、耗電情況自適應(yīng)確定;
4)版本更新接口(Upgrade)。由服務(wù)端向移動(dòng)端下行推送,攜帶版本號、下載地址等更新信息,服務(wù)端根據(jù)設(shè)備上行心跳信息確定是否需要下行版本更新通知。
跨域消息推送的實(shí)現(xiàn),依賴于有效的跨邊界數(shù)據(jù)交換能力?;诠δ軆?nèi)聚、分層解耦的原則,設(shè)計(jì)一個(gè)專用組件——通用消息交換(以下簡稱:GMX),將相關(guān)功能進(jìn)行抽象封裝,作為基礎(chǔ)服務(wù)層,向整個(gè)系統(tǒng)統(tǒng)一提供跨邊界操作能力。
如圖8所示,GMX組件設(shè)計(jì)由以下幾層組成:
圖8 通用消息交換(GMX)組件結(jié)構(gòu)圖
2.3.1 接口層
接口層是GMX組件對外提供服務(wù)的界面,設(shè)計(jì)有兩種跨邊界操作接口。
1)數(shù)據(jù)推送接口:簡單的單向點(diǎn)到點(diǎn)異步消息傳送模式,提供從本地服務(wù)端跨越邊界向其它類區(qū)服務(wù)端發(fā)送特定業(yè)務(wù)消息的能力,不提供對端響應(yīng)機(jī)制;此種方式更為簡單、輕量、高效,因其不包含回饋處理機(jī)制,僅適用于發(fā)送后不管,或有其它機(jī)制保障一致性的場景;
2)遠(yuǎn)程過程調(diào)用(RPC)接口:基于雙向平衡傳輸模式(即:一問一答),提供從本地服務(wù)端跨越邊界異步調(diào)用其它類區(qū)服務(wù)端相關(guān)方法、接口、過程并返回結(jié)果的能力;相比推送方式,此方式提供了響應(yīng)回調(diào)機(jī)制,因而更加可靠、完整,相應(yīng)的也更為復(fù)雜,適用于數(shù)據(jù)同步等一致性要求較高場景。
以上兩種GMX接口調(diào)用的服務(wù)時(shí)序設(shè)計(jì)如圖9所示(省略了與移動(dòng)警務(wù)平臺(tái)跨邊界交換服務(wù)部分)。
圖9 GMX服務(wù)時(shí)序圖
2.3.2 調(diào)度層
調(diào)度層包含了GMX組件的核心邏輯,包括:數(shù)據(jù)發(fā)送、數(shù)據(jù)接收、異步數(shù)據(jù)處理、異步回調(diào)處理、RPC超時(shí)處理、等等。為了適應(yīng)跨邊界交互的高并發(fā)要求,調(diào)度層設(shè)計(jì)采用全異步非阻塞(NIO)處理技術(shù),提升計(jì)算資源利用率;同時(shí)構(gòu)建專用線程池,作為任務(wù)容器,實(shí)現(xiàn)可伸縮事務(wù)處理。
2.3.3 協(xié)議層
GMX調(diào)度層中的邏輯操作針對的是GMX業(yè)務(wù)對象,而邊界層實(shí)際傳輸數(shù)據(jù)為字節(jié)流形式。協(xié)議層設(shè)計(jì)在調(diào)度層和邊界層之間,實(shí)現(xiàn)GMX業(yè)務(wù)對象與數(shù)據(jù)字節(jié)流之間的相互轉(zhuǎn)換。
按照分層解耦的設(shè)計(jì)原則,協(xié)議層采用可插拔協(xié)議棧設(shè)計(jì),如圖10所示。
圖10 GMX協(xié)議棧示意圖
協(xié)議棧從上至下可根據(jù)不同場景需求,插入多層不同用途協(xié)議,包括但不限于:
1)序列化。核心協(xié)議,實(shí)現(xiàn)GMX業(yè)務(wù)對象與數(shù)據(jù)字節(jié)流之間的轉(zhuǎn)換,可選實(shí)現(xiàn)有:JAVA Serializable、JSON、BSON、XML、Protobuf、等等;
2)數(shù)據(jù)加密??蛇x協(xié)議,用于提升數(shù)據(jù)安全性,可用實(shí)現(xiàn)有:DES、AES、RSA、等等;
3)數(shù)據(jù)壓縮??蛇x協(xié)議,用于提升數(shù)據(jù)傳輸效率;
4)塊傳輸。消息提醒業(yè)務(wù)典型的跨邊界交互對象較小,若每個(gè)業(yè)務(wù)對象都分開傳送,則跨邊界通道資源利用會(huì)較低,傳輸負(fù)載越高,傳輸效率降低將越顯著;為此,設(shè)計(jì)塊傳輸協(xié)議,實(shí)現(xiàn)在高并發(fā)情況下,將多個(gè)較小的業(yè)務(wù)對象合并為大數(shù)據(jù)塊一次性傳送,降低服務(wù)端輸出到跨邊界通道的IPS壓力,提升通道運(yùn)行性能和傳輸效率。
2.3.4 邊界層
邊界層是GMX組件乃至整個(gè)服務(wù)端,面向移動(dòng)警務(wù)平臺(tái)跨邊界交換服務(wù)的最外層界面,通過與邊界交換對接,實(shí)現(xiàn)與邊界對端的數(shù)據(jù)收發(fā)。
AMQP是面向消息隊(duì)列的,基于與上層產(chǎn)品、語言無關(guān)的,工作在應(yīng)用層的,二進(jìn)制開放協(xié)議。AMQP提供客戶端應(yīng)用與消息隊(duì)列服務(wù)之間,建立多通道、協(xié)商、異步、安全、中立和高效的交互。AMQP協(xié)議是消息提醒業(yè)務(wù)跨邊界數(shù)據(jù)交互的首選方案。
但是,鑒于移動(dòng)警務(wù)體系中,跨邊界環(huán)境和方式較為復(fù)雜,確實(shí)存在不兼容AMQP的情況。其它較常用的跨邊界交換方式還有:文件方式(包括:本地文件、NFS、FTP等)、基于HTTP協(xié)議的服務(wù)總線、等等。針對多種不同交換方式共存的情況,邊界層采用適配器模型設(shè)計(jì),針對不同交換方式,實(shí)現(xiàn)不同適配器,并按需加載,以提供兼容性。
內(nèi)容檢查過濾是服務(wù)端的核心功能之一,針對的是第三方發(fā)起的消息提醒請求,實(shí)現(xiàn)對消息提醒的細(xì)粒度約束性檢查,過濾掉不符合安全定義的非法請求。
消息提醒的內(nèi)容檢查過濾規(guī)則由消息模板定義。第三方發(fā)起消息提醒服務(wù)請求時(shí),必須指定本次使用的消息模板。服務(wù)端則裝載該指定模板,并依據(jù)約束定義完成對消息請求的各項(xiàng)檢查。根據(jù)檢查結(jié)果,確定是提供本次服務(wù)還是過濾本次請求。
如圖11所示,整個(gè)檢查過濾流程包含對四個(gè)核心約束項(xiàng)的檢查過濾:
圖11 內(nèi)容檢查過濾流程示意圖
2.4.1 應(yīng)用白名單
每個(gè)消息模板定義有應(yīng)用白名單,用于約束適用應(yīng)用范圍。只有在白名單范圍內(nèi)的業(yè)務(wù)應(yīng)用可使用該模板發(fā)起消息提醒請求,范圍以外的應(yīng)用請求將視為非法,不予提供服務(wù)。
2.4.2 送達(dá)路徑白名單
每個(gè)消息模板定義有送達(dá)路徑白名單,用于約束消息提醒向終端送達(dá)時(shí),允許經(jīng)由的路徑(關(guān)于可用路徑,可參見1.3章節(jié))。
服務(wù)端在運(yùn)行時(shí),根據(jù)移動(dòng)端的當(dāng)前激活區(qū)域,確定本次送達(dá)的須循路徑,并比對消息模板定義的路徑白名單,決定是否繼續(xù)服務(wù)。
2.4.3 消息標(biāo)題
每個(gè)消息模板對允許的消息標(biāo)題文本進(jìn)行約束定義,設(shè)計(jì)提供兩種檢查方式:
1)靜態(tài)文本檢查。第三方提交的消息提醒請求必須嚴(yán)格使用該定義的消息標(biāo)題,否則將視為非法請求而丟棄;
2)動(dòng)態(tài)表達(dá)式匹配。為覆蓋動(dòng)態(tài)文本場景,采用正則表達(dá)式作為定義語法,在運(yùn)行時(shí)對第三方提交的消息提醒請求的標(biāo)題文本進(jìn)行正則匹配運(yùn)算,通過檢查的放行,否則丟棄。
2.4.4 消息正文
與2.4.3中消息標(biāo)題的檢查過濾算法相同,每個(gè)消息模本選擇“靜態(tài)文本檢查”和“動(dòng)態(tài)表達(dá)式匹配”兩種檢查過濾方式中的一種,對允許的消息正文內(nèi)容進(jìn)行約束定義。服務(wù)端在運(yùn)行時(shí)執(zhí)行對該約束項(xiàng)的檢查和過濾。
本文設(shè)計(jì)的消息提醒移動(dòng)端組件,針對Android系統(tǒng)(9.0及以上版本),適用于移動(dòng)警務(wù)專用終端的生活域和工作域安裝,軟件結(jié)構(gòu)設(shè)計(jì)如圖12所示。
圖12 移動(dòng)端組件結(jié)構(gòu)圖
2.5.1 UI層
基于Android Activity組件構(gòu)建,提供對移動(dòng)端組件進(jìn)行維護(hù)性操作的相關(guān)用戶界面,包括:
1)組件信息。展示維護(hù)性信息,包括:組件信息(版本、版權(quán)等)、設(shè)備信息(品牌、型號、系統(tǒng)版本、IMEI等)、運(yùn)行日志、等等;
2)組件管理。提供維護(hù)性操作,包括:組件參數(shù)設(shè)置、可用版本升級等。
2.5.2 服務(wù)層
基于Android Service組件構(gòu)建,自動(dòng)運(yùn)行于系統(tǒng)后臺(tái),分為兩類:
1)業(yè)務(wù)服務(wù)。實(shí)現(xiàn)消息提醒核心業(yè)務(wù)邏輯,包括:接收服務(wù)端推送的消息提醒、反饋消息回執(zhí)、基于Android Notification組件顯示消息提醒到系統(tǒng)通知欄等;
2)維護(hù)服務(wù)。實(shí)現(xiàn)對上行(對接服務(wù)端)鏈路的維護(hù)、獲取設(shè)備信息、推送設(shè)備心跳、接收處理版本更新等;
2.5.3 接口層
構(gòu)建在MQTT協(xié)議之上,將與服務(wù)端的對接接口進(jìn)行封裝,分為兩類:
1)業(yè)務(wù)接口。包括:下行消息推送接口(Notify)、上行消息回執(zhí)接口(Receipt);
2)維護(hù)接口。包括:上行設(shè)備心跳接口(Alive)、下行版本更新接口(Upgrade)。
本系統(tǒng)核心功能包括:消息接收、消息推送、跨區(qū)域同步、消息匹配審計(jì)、終端檔案管理。
消息接收基于restful規(guī)范設(shè)計(jì)面向消息發(fā)送方的消息推送API接口,接口內(nèi)容主要包括以下幾方面內(nèi)容。
1)應(yīng)用ID、事務(wù)ID等消息發(fā)送方標(biāo)識(shí);
2)消息標(biāo)題、消息內(nèi)容、消息模板ID、消息通知等級等消息內(nèi)容信息;
3)消息收件人IMEI號碼等消息接收方的信息。
終端檔案管理提供移動(dòng)終端生活域和工作域的IMEI對應(yīng)關(guān)系的維護(hù)管理,系統(tǒng)移動(dòng)端消息推送基于該檔案進(jìn)行尋址。終端檔案產(chǎn)生允許自動(dòng)關(guān)聯(lián)和手動(dòng)創(chuàng)建兩種方式。
由于相關(guān)部門采購的移動(dòng)終端主要供應(yīng)商的生活域和工作域IMEI號碼存在固定算法的對應(yīng)關(guān)系,系統(tǒng)支持提前預(yù)制各終端廠商的IMEI關(guān)系算法,將移動(dòng)端采集上報(bào)的IMEI號碼基于廠商型號和IMEI預(yù)制算法進(jìn)行自動(dòng)歸檔,自動(dòng)生成移動(dòng)終端生活域和工作域IMEI對應(yīng)關(guān)系。
手動(dòng)創(chuàng)建,由系統(tǒng)管理員進(jìn)行手動(dòng)收集移動(dòng)終端生活域和工作域IMEI對應(yīng)關(guān)系并手動(dòng)導(dǎo)入創(chuàng)建終端檔案。
移動(dòng)警務(wù)移動(dòng)互聯(lián)網(wǎng)服務(wù)子平臺(tái)、聯(lián)網(wǎng)服務(wù)子平臺(tái)和信息網(wǎng)服務(wù)子平臺(tái)之間采用雙單向系統(tǒng)進(jìn)行隔離,子平臺(tái)之間的數(shù)據(jù)交互由各子平臺(tái)內(nèi)部服務(wù)總線代理。本系統(tǒng)在移動(dòng)警務(wù)三個(gè)子平臺(tái)內(nèi)分別部署系統(tǒng)服務(wù)端,支持服務(wù)端之間的管理面數(shù)據(jù)和數(shù)據(jù)面信息同步,服務(wù)端之間數(shù)據(jù)交互由服務(wù)總線消息隊(duì)列同步服務(wù)代理。
1)本系統(tǒng)設(shè)計(jì)由部署在聯(lián)網(wǎng)服務(wù)子平臺(tái)的系統(tǒng)服務(wù)端作為主控服務(wù)端,部署在移動(dòng)互聯(lián)網(wǎng)服務(wù)子平臺(tái)和信息網(wǎng)服務(wù)子平臺(tái)的系統(tǒng)服務(wù)端作控服務(wù)端。管理面數(shù)據(jù)都在主控服務(wù)端提供配置操作和集中展示,由主控服務(wù)端通過跨區(qū)域同步至其它子平臺(tái)服務(wù)端,管理面數(shù)據(jù)包括:系統(tǒng)配置操作、終端檔案、系統(tǒng)狀態(tài)信息等。
2)數(shù)據(jù)面信息指各個(gè)子平臺(tái)服務(wù)端接收到需要推送到終端的消息。
為保證跨區(qū)域消息推送的消息內(nèi)容不攜帶平臺(tái)不允許傳遞的非法信息,本系統(tǒng)設(shè)計(jì)要求系統(tǒng)對接收的所有消息均需要通過消息匹配審計(jì)后才可以執(zhí)行移動(dòng)終端推送。
系統(tǒng)管理員需要預(yù)先在本系統(tǒng)進(jìn)行消息模板配置,配置內(nèi)容包括消息模板編號、消息標(biāo)題、消息內(nèi)容等,其中消息標(biāo)題和消息內(nèi)容支持正則匹配規(guī)則配置。對匹配成功的消息進(jìn)行推送執(zhí)行,匹配失敗的消息進(jìn)行丟棄處理。
系統(tǒng)實(shí)現(xiàn)將需要推送到終端的信息準(zhǔn)確及時(shí)地推送到對應(yīng)終端,并依據(jù)相應(yīng)消息通知等級進(jìn)行提示音、震動(dòng)、亮屏等一種或多種提醒方式。消息推送基于MQTT消息隊(duì)列協(xié)議進(jìn)行設(shè)計(jì),實(shí)現(xiàn)系統(tǒng)服務(wù)端對移動(dòng)端消息隊(duì)列通道的管理維護(hù)、移動(dòng)端信息上報(bào)以及消息推送。
1)移動(dòng)端消息隊(duì)列通道基于MQTT協(xié)議框架進(jìn)行連接管理,支持5萬級的連接保持。
2)移動(dòng)端信息上報(bào)包括了IEMI號碼、操作系統(tǒng)類型、操作系統(tǒng)版本、終端型號、廠商等移動(dòng)終端屬性信息上報(bào)。
3)消息推送分為服務(wù)端向移動(dòng)端遠(yuǎn)程推送和移動(dòng)端通知欄本地推送兩個(gè)過程。遠(yuǎn)程推送基于服務(wù)端MQTT協(xié)議定制發(fā)布和移動(dòng)端訂閱消息隊(duì)列實(shí)現(xiàn)服務(wù)端消息的定向推送,同時(shí)消息推送基于系統(tǒng)終端檔案中IMEI號碼進(jìn)行推送尋址。移動(dòng)端本地推送通過調(diào)用終端notification通知接口進(jìn)行消息內(nèi)容的通知欄推送。
本系統(tǒng)由消息提醒服務(wù)端和消息提醒客戶端組件兩部分構(gòu)成,服務(wù)端負(fù)責(zé)消息接收、匹配審計(jì)、終端檔案維護(hù)、消息尋址推送。消息提醒客戶端負(fù)責(zé)移動(dòng)終端IMEI等信息上報(bào)、移動(dòng)端推送通道維持、終端通知欄推送。
消息提醒服務(wù)端分別部署于移動(dòng)警務(wù)平臺(tái)Ⅰ/Ⅱ/Ⅲ類區(qū),客戶端組件分別安裝在移動(dòng)警務(wù)專用終端的生活域和工作域,生活域客戶端通過互聯(lián)網(wǎng)通道接入Ⅰ類區(qū)服務(wù)端,工作域客戶端通過移動(dòng)警務(wù)專網(wǎng)接入Ⅱ或Ⅲ類區(qū)。業(yè)務(wù)應(yīng)用通過統(tǒng)一的消息推送接口將需要跨域發(fā)送的消息推送至本區(qū)域內(nèi)的消息提醒服務(wù)端,業(yè)務(wù)應(yīng)用推送的消息至少包括:消息接收終端的IMEI號碼、消息標(biāo)題、消息內(nèi)容、消息模板ID;消息提醒服務(wù)端基于系統(tǒng)配置的消息模板匹配消息合法性,基于終端檔案匹配發(fā)送區(qū)域和終端尋址;對應(yīng)合法并尋址成功的消息進(jìn)行移動(dòng)終端通知欄推送。
本系統(tǒng)部署實(shí)施主要包含:系統(tǒng)服務(wù)部署、跨邊界通道配置、服務(wù)掛載、移動(dòng)端分發(fā)和安裝、四個(gè)步驟。
1)系統(tǒng)服務(wù)部署。消息提醒服務(wù)端分別部署于移動(dòng)警務(wù)平臺(tái)Ⅰ/Ⅱ/Ⅲ類區(qū),本系統(tǒng)基于centos7.0操作系統(tǒng)部署運(yùn)行,Ⅰ類區(qū)需要聯(lián)通互聯(lián)網(wǎng),Ⅱ和Ⅲ類區(qū)需要聯(lián)通移動(dòng)警務(wù)專網(wǎng)分別提供移動(dòng)警務(wù)終端生活域和工作域的網(wǎng)絡(luò)接入。
2)跨邊界通道配置。Ⅰ/Ⅱ/Ⅲ類區(qū)消息提醒服務(wù)端之間通過Ⅰ/Ⅱ/Ⅲ類區(qū)邊界服務(wù)總線的消息隊(duì)列同步服務(wù)進(jìn)行通信,需要在跨區(qū)域服務(wù)總線上配置消息隊(duì)列同步通道,用于承載Ⅰ/Ⅱ/Ⅲ類區(qū)消息提醒服務(wù)端之間配置數(shù)據(jù)、系統(tǒng)狀態(tài)數(shù)據(jù)、消息數(shù)據(jù)等數(shù)據(jù)同步。
3)服務(wù)掛載。分別將Ⅰ/Ⅱ/Ⅲ類區(qū)消息提醒服務(wù)端的消息接收接口掛載注冊到本區(qū)域內(nèi)的服務(wù)總線,供本區(qū)域內(nèi)的業(yè)務(wù)應(yīng)用調(diào)用。
4)移動(dòng)端組件分發(fā)和安裝。移動(dòng)端組件分發(fā)和安裝方案基于首次安裝和更新安裝有所區(qū)分。首次安裝基于移動(dòng)警務(wù)專用終端操作系統(tǒng)預(yù)制組件的方案推送安裝;對于生活域更新安裝采用系統(tǒng)內(nèi)自更新方式更新版本,工作域更新安裝采用移動(dòng)警務(wù)Ⅱ類區(qū)終端管控系統(tǒng)進(jìn)行推送安裝。
某省移動(dòng)警務(wù)平臺(tái)用戶在工作域有信息需要處理的時(shí)候需要定期轉(zhuǎn)到工作域進(jìn)行查看,信息處理延遲取決于用戶自身行為。自部署實(shí)施了移動(dòng)警務(wù)跨域消息提醒服務(wù)系統(tǒng)之后,覆蓋并滿足了當(dāng)?shù)仄脚_(tái)2萬多警務(wù)用戶的跨域消息提醒信息的傳遞,將用戶跨區(qū)域接收信息的平均延遲降低到1秒以內(nèi),對工作效率起到了巨大的提升作用。
本方案所具備的功能指標(biāo),及其對比原有互通方案所具有的優(yōu)勢有:
1)采用平臺(tái)側(cè)消息聯(lián)通機(jī)制傳遞消息,符合移動(dòng)警務(wù)整體平臺(tái)建設(shè)規(guī)范要求;而原有方案存在突破移動(dòng)警務(wù)專用終端的雙域隔離的情況,不符合移動(dòng)警務(wù)專用終端要求。
2)增加了轉(zhuǎn)發(fā)消息留存審計(jì)的能力。
3)增加了消息白名單過濾機(jī)制,對不符合安全規(guī)則的消息予以告警、丟棄等非法處置。
4)對轉(zhuǎn)發(fā)消息的應(yīng)用方進(jìn)行統(tǒng)一注冊和消息發(fā)送權(quán)限管理。
5)對終端消息組件進(jìn)行統(tǒng)一管理。
6)對終端的兼容性強(qiáng),所有警務(wù)終端都可以使用。
7)不需要移動(dòng)端應(yīng)用進(jìn)行兼容適配。
8)不同應(yīng)用可以定制符合規(guī)則的個(gè)性化消息內(nèi)容。
9)支持Ⅰ/Ⅱ/Ⅲ類區(qū)之間的消息互通。
表1 功能指標(biāo)及優(yōu)勢對比
本系統(tǒng)的性能指標(biāo)聚焦于消息提醒接口的服務(wù)能力方面,包括如下幾條:
1)接口并行能力≥5萬;
2)接口處理能力(TPS)≥2萬;
3)消息送達(dá)時(shí)延≤30秒;
4)消息丟失率≤0.1‰。
針對以上指標(biāo),采用JMeter、Mock等工具對消息提醒接口(Notify)進(jìn)行壓力測試和性能驗(yàn)證。測試用例以并發(fā)連接數(shù)作為區(qū)分,共10個(gè)用例范圍覆蓋并發(fā)范圍500~60 000,具體數(shù)據(jù)如表2所示。
表2 接口性能壓力測試數(shù)據(jù)表
其中,接口的處理能力——TPS、接口調(diào)用的平均時(shí)延,這兩個(gè)指標(biāo)與并發(fā)連接數(shù)的相關(guān)性如圖13所示。
圖13 接口性能壓測數(shù)據(jù)圖
基于上述壓測數(shù)據(jù)可見,系統(tǒng)主要性能指標(biāo)均能滿足要求。
在移動(dòng)互聯(lián)網(wǎng)廣泛應(yīng)用和革新的大背景下,以移動(dòng)警務(wù)平臺(tái)為主要信息化、移動(dòng)化的執(zhí)法辦公平臺(tái)面臨著更大的人與人、人與系統(tǒng)的溝通增效壓力。本文提出的通過移動(dòng)警務(wù)平臺(tái)側(cè)跨域互通的即時(shí)消息服務(wù)系統(tǒng)基于移動(dòng)警務(wù)平臺(tái)跨域邊界實(shí)現(xiàn)跨域消息互通、消息內(nèi)容審計(jì)、移動(dòng)終端消息推送,在滿足平臺(tái)數(shù)據(jù)安全要求的同時(shí)實(shí)現(xiàn)雙域終端消息互通的業(yè)務(wù)需求,極大地提升了廣大警務(wù)人員和社會(huì)協(xié)治力量的業(yè)務(wù)效率。