徐樂(lè) 姜西斌 劉光耀 公安部第一研究所
近年來(lái),移動(dòng)警務(wù)終端形態(tài)變得豐富多樣,傳統(tǒng)的移動(dòng)警務(wù)終端逐步擴(kuò)展,執(zhí)法記錄儀、無(wú)人機(jī)、機(jī)器人、可佩戴類設(shè)備、車載類設(shè)備層出不窮,數(shù)據(jù)資源也擴(kuò)展為語(yǔ)音、視頻、圖像、數(shù)據(jù)等,民警對(duì)于移動(dòng)執(zhí)法辦公的需求越來(lái)越迫切,視頻回傳、圖像回傳、讓數(shù)據(jù)多跑路,民警少跑腿的需求越加顯著。傳統(tǒng)的監(jiān)控系統(tǒng)、指揮調(diào)度系統(tǒng)等,其管控端均依賴于Web平臺(tái),指揮調(diào)度人員需在監(jiān)控室查看前方民警的實(shí)際情況,限制了指揮作戰(zhàn)能力。
各設(shè)備間相互孤立、調(diào)度困難、資源浪費(fèi)成為移動(dòng)警務(wù)工作的一大瓶頸,因此,在多形態(tài)移動(dòng)警務(wù)終端迅猛發(fā)展、5G通信網(wǎng)絡(luò)普及的雙重驅(qū)動(dòng)下,實(shí)現(xiàn)移動(dòng)警務(wù)的資源調(diào)度成為了必然結(jié)果[1]。
該系統(tǒng)是基于物聯(lián)網(wǎng)技術(shù)的移動(dòng)警務(wù)終端資源調(diào)度系統(tǒng),實(shí)現(xiàn)了資源回傳和遠(yuǎn)程調(diào)度功能。一方面,系統(tǒng)可將多形態(tài)移動(dòng)警務(wù)終端采集的數(shù)據(jù),實(shí)時(shí)高效的回傳至民警的移動(dòng)警務(wù)終端,使民警真正具有“千里眼”“順風(fēng)耳”,可實(shí)時(shí)查看圖像、文本等信息;另一方面,民警可通過(guò)移動(dòng)警務(wù)終端,隨時(shí)隨地遠(yuǎn)程調(diào)度有采集功能的多形態(tài)移動(dòng)警務(wù)終端,使民警辦公更靈活、更便捷,實(shí)現(xiàn)協(xié)同作戰(zhàn)。
系統(tǒng)架構(gòu)如圖1所示,系統(tǒng)主要包括采集側(cè)、用戶側(cè)、資源調(diào)度系統(tǒng)三個(gè)部分。
1.采集側(cè)
采集側(cè)即為多形態(tài)移動(dòng)警務(wù)終端,運(yùn)行于聯(lián)網(wǎng)服務(wù)子平臺(tái)或移動(dòng)互聯(lián)網(wǎng)服務(wù)子平臺(tái),用于接收由資源調(diào)度系統(tǒng)轉(zhuǎn)發(fā)的用戶側(cè)控制信令,采集并推送視頻流、圖像信息、文本消息、音頻流等,終端類型如AR智能眼鏡、警務(wù)機(jī)器人、攝像頭、智能手環(huán)、執(zhí)法記錄儀、可穿戴設(shè)備、無(wú)人機(jī)、移動(dòng)警務(wù)終端等。
2.用戶側(cè)
用戶側(cè)即為移動(dòng)警務(wù)終端,運(yùn)行于聯(lián)網(wǎng)服務(wù)子平臺(tái),一方面用于民警查看采集側(cè)推送的各種數(shù)據(jù)消息及預(yù)警信息,另一方面可遠(yuǎn)程發(fā)送控制信令,實(shí)現(xiàn)遠(yuǎn)程調(diào)度的功能,主要包括統(tǒng)一認(rèn)證、應(yīng)用保活、密碼保護(hù)等,終端類型如移動(dòng)警務(wù)手機(jī)。
3.資源調(diào)度系統(tǒng)
資源調(diào)度系統(tǒng)即為系統(tǒng)的核心部分,基于Jetlinks物聯(lián)網(wǎng)基礎(chǔ)平臺(tái),為采集側(cè)和用戶側(cè)提供消息路由轉(zhuǎn)發(fā)功能,實(shí)現(xiàn)數(shù)據(jù)交互。主要包括設(shè)備接入網(wǎng)關(guān)、系統(tǒng)管理、事件總線三個(gè)功能模塊。
(1)設(shè)備接入網(wǎng)關(guān):負(fù)責(zé)系統(tǒng)側(cè)統(tǒng)一的設(shè)備接入,包含網(wǎng)絡(luò)組件、協(xié)議解析等。設(shè)備接入時(shí),由網(wǎng)絡(luò)組件接收請(qǐng)求報(bào)文,由協(xié)議解析將報(bào)文映射為系統(tǒng)統(tǒng)一的消息類型,然后推送到事件總線。
其中協(xié)議解析支持自定義協(xié)議和系統(tǒng)默認(rèn)協(xié)議,規(guī)定了消息解析規(guī)則,可將設(shè)備發(fā)送至系統(tǒng)的消息解析為系統(tǒng)統(tǒng)一Topic,也可將系統(tǒng)下發(fā)給設(shè)備的消息解析為設(shè)備支持的格式類型。
(2)系統(tǒng)管理:從用戶管理、終端管理、安全管理、授權(quán)管理等多維度實(shí)現(xiàn)系統(tǒng)的安全管控,確保雙向業(yè)務(wù)數(shù)據(jù)的安全擺渡、可追溯、可審計(jì),特別是將關(guān)鍵業(yè)務(wù)數(shù)據(jù)發(fā)送至民警終端時(shí),確保民警、終端均安全可靠,均在后臺(tái)授權(quán)管理,同時(shí)數(shù)據(jù)需經(jīng)過(guò)脫敏處理,采用加水印、加解密、簽名驗(yàn)簽、分級(jí)顯示、黑白名單等方法,避免數(shù)據(jù)被惡意篡改或泄露。
(3)事件總線:基于Topic和事件驅(qū)動(dòng),負(fù)責(zé)進(jìn)程內(nèi)的數(shù)據(jù)轉(zhuǎn)發(fā)。事件總線是一個(gè)基于發(fā)布/訂閱模式的事件傳遞組件,通過(guò)解耦發(fā)布者和訂閱者之間的調(diào)用,降低設(shè)備接入網(wǎng)關(guān)與后續(xù)業(yè)務(wù)邏輯之間的耦合,發(fā)布者將數(shù)據(jù)經(jīng)設(shè)備接入網(wǎng)關(guān)發(fā)送至事件總線,由事件總線轉(zhuǎn)發(fā)/廣播至已訂閱該Topic的訂閱者[2]。
系統(tǒng)基于Jetlinks物聯(lián)網(wǎng)基礎(chǔ)平臺(tái),采用Java8、Springboot、Webflux、Netty、Vert.x等開發(fā),是一個(gè)全響應(yīng)式的資源調(diào)度系統(tǒng),通過(guò)響應(yīng)式編程、事件總線、多協(xié)議適配等技術(shù)解決了關(guān)鍵難題。
1.響應(yīng)式編程
系統(tǒng)中會(huì)有很多耗時(shí)任務(wù),比如網(wǎng)絡(luò)請(qǐng)求(甚至是跨網(wǎng)請(qǐng)求)、復(fù)雜計(jì)算、接口異常引起的超時(shí)等,導(dǎo)致接口響應(yīng)延遲,如果采用傳統(tǒng)函數(shù)編程模式,等待任務(wù)執(zhí)行完再繼續(xù)執(zhí)行,則會(huì)造成系統(tǒng)阻塞,嚴(yán)重影響系統(tǒng)性能,采用傳統(tǒng)的異步編程模式,則只能解決單一的事務(wù)異步處理,對(duì)于復(fù)雜的多事務(wù)異步組合型回調(diào)問(wèn)題無(wú)法處理,因此系統(tǒng)采用響應(yīng)式編程框架,可以協(xié)調(diào)多個(gè)異步任務(wù),解決耗時(shí)任務(wù)造成的系統(tǒng)阻塞問(wèn)題[3]。
系統(tǒng)從網(wǎng)絡(luò)層到持久層全部封裝為非阻塞、響應(yīng)式調(diào)用,先構(gòu)造一個(gè)流以及處理流中數(shù)據(jù)的邏輯,當(dāng)流中產(chǎn)生了數(shù)據(jù)(發(fā)布、訂閱),才會(huì)執(zhí)行構(gòu)造好的邏輯,具有如下四個(gè)特性。
系統(tǒng)選用主流的Reactor作為響應(yīng)式編程框架,Reactor提供了強(qiáng)大的API,簡(jiǎn)化了對(duì)數(shù)據(jù)各種處理方式的復(fù)雜度,通過(guò)訂閱和發(fā)布數(shù)據(jù)流中的數(shù)據(jù)對(duì)數(shù)據(jù)進(jìn)行處理,提高了系統(tǒng)的計(jì)算速度和響應(yīng)速度。但開發(fā)過(guò)程中,響應(yīng)式編程也有缺點(diǎn),調(diào)試不易,異常棧難跟蹤,對(duì)開發(fā)人員有更高的要求,因此可以在有網(wǎng)絡(luò)請(qǐng)求、計(jì)算量大、耗時(shí)較長(zhǎng)的方法上使用該編程模式。
2.事件總線
對(duì)于錯(cuò)綜復(fù)雜的資源調(diào)度系統(tǒng),掛載幾十個(gè)甚至上百個(gè)移動(dòng)警務(wù)終端(采集側(cè)和用戶側(cè)),設(shè)備產(chǎn)生的事件種類繁雜、格式多樣、交互任務(wù)繁重,需要能準(zhǔn)確的將數(shù)據(jù)路由到接收端。因此,該系統(tǒng)采用事件總線作為數(shù)據(jù)交互媒介,有效降低了代碼的耦合度,準(zhǔn)確將采集側(cè)的數(shù)據(jù)擺渡到用戶側(cè),將用戶側(cè)指令下發(fā)到采集端。
事件總線是基于觀察者模式構(gòu)建的,觀察者模式是指當(dāng)一個(gè)對(duì)象(被觀察者)的狀態(tài)發(fā)生改變時(shí),所有依賴于它的對(duì)象(觀察者)都將得到通知并自動(dòng)更新。事件總線包含主題、發(fā)布者、訂閱者三部分,發(fā)布者將消息發(fā)送到事件總線后,無(wú)需關(guān)注由誰(shuí)消費(fèi)該事件,事件總線會(huì)發(fā)送廣播,將消息發(fā)送給已訂閱該消息的訂閱者,訂閱者也無(wú)需關(guān)心由誰(shuí)發(fā)布的該事件,發(fā)布者和訂閱者均只需關(guān)注消息本身,避免發(fā)布者和訂閱者直接通信,從而使代碼更加簡(jiǎn)潔。
該系統(tǒng)中,發(fā)布者(采集側(cè)或用戶側(cè))推送消息到事件總線,并自動(dòng)根據(jù)終端類型指定編碼器進(jìn)行序列化,系統(tǒng)接收到發(fā)布者發(fā)送的消息后,根據(jù)協(xié)議解析消息,并將消息轉(zhuǎn)換為對(duì)應(yīng)的Topic 發(fā)送到事件總線,訂閱者從事件總線中訂閱該Topic,并按照指定的解碼器進(jìn)行數(shù)據(jù)的轉(zhuǎn)換和接收,發(fā)布者也可通過(guò)系統(tǒng)確定有多少訂閱者多訂閱了此Topic。
3.多協(xié)議適配
多形態(tài)移動(dòng)警務(wù)終端設(shè)備協(xié)議多樣化,單一的公有協(xié)議接入無(wú)法滿足多形態(tài)需求,私有協(xié)議無(wú)法接入或者接入困難,嚴(yán)重限制了多形態(tài)移動(dòng)警務(wù)終端在警務(wù)工作中的擴(kuò)展和使用。因此,系統(tǒng)實(shí)現(xiàn)了多協(xié)議適配,以滿足采集側(cè)不同警用裝備、不同格式數(shù)據(jù)的接入[4]。
該系統(tǒng)支持多協(xié)議、多形態(tài)移動(dòng)警務(wù)終端的接入,在基礎(chǔ)通信協(xié)議TCP、UDP、HTTP、WEBSOCKET、MQTT等基礎(chǔ)上,能夠根據(jù)消息頭的不同,識(shí)別建立連接的多形態(tài)移動(dòng)警務(wù)終端的協(xié)議類別,進(jìn)行正確的編解碼,滿足低延時(shí)、高可靠、長(zhǎng)連接、大吞吐、有序性、結(jié)構(gòu)化、非結(jié)構(gòu)化、可廣播等多種不同通信場(chǎng)景的需求。
協(xié)議轉(zhuǎn)換流程分五步進(jìn)行:
(1)創(chuàng)建并發(fā)布產(chǎn)品。對(duì)于同一類型的移動(dòng)警務(wù)終端,均歸屬于同一產(chǎn)品,同一產(chǎn)品則采用相同的通信協(xié)議。
(2)定義設(shè)備。在已發(fā)布的產(chǎn)品下,錄入/創(chuàng)建待接入的設(shè)備,并根據(jù)設(shè)備以及設(shè)備接入文檔(報(bào)文說(shuō)明),定義設(shè)備的三種資源描述模型,并激活設(shè)備。
如表2所示,系統(tǒng)將設(shè)備從屬性、功能、事件三方面抽象為資源描述模型,分別對(duì)應(yīng)三種消息類型。采用這三種資源描述模型來(lái)對(duì)資源進(jìn)行歸類,可屏蔽設(shè)備的異構(gòu)性,對(duì)應(yīng)用提供統(tǒng)一的服務(wù)接口。
(3)接收?qǐng)?bào)文,協(xié)議映射。設(shè)備向系統(tǒng)發(fā)送報(bào)文信息,系統(tǒng)收到終端上報(bào)的報(bào)文,使用創(chuàng)建產(chǎn)品時(shí)約定的協(xié)議包,將報(bào)文解析為系統(tǒng)統(tǒng)一的消息。
(4)發(fā)送至事件總線。將已解析的消息轉(zhuǎn)換為對(duì)應(yīng)的Topic,發(fā)送到事件總線。
需注意,針對(duì)不同的協(xié)議包、不同的消息類型,系統(tǒng)分別定義了不同URI接口和參數(shù)類供第三方調(diào)用和擴(kuò)展,終端需依據(jù)標(biāo)準(zhǔn)URI和擴(kuò)展參數(shù)類發(fā)送報(bào)文,從而便于消息向Topic映射。
(5)消費(fèi)已訂閱事件。消息訂閱者可通過(guò)從事件總線訂閱消息來(lái)處理這些消息。
鑒于民警工作場(chǎng)景的復(fù)雜多樣、地域網(wǎng)絡(luò)建設(shè)的限制、業(yè)務(wù)場(chǎng)景的限制等,多形態(tài)移動(dòng)警務(wù)終端多以聯(lián)網(wǎng)服務(wù)子平臺(tái)和移動(dòng)互聯(lián)網(wǎng)服務(wù)子平臺(tái)兩種網(wǎng)絡(luò)形式接入,兩種網(wǎng)絡(luò)的通用應(yīng)用架構(gòu)如圖3所示。
在業(yè)務(wù)流程上,資源調(diào)度系統(tǒng)由資源調(diào)度服務(wù)器、流媒體播放平臺(tái)兩部分組成,依托前端數(shù)據(jù)采集單元、前端數(shù)據(jù)匯聚單元、及后方的移動(dòng)警務(wù)終端實(shí)現(xiàn)協(xié)同作戰(zhàn)。
數(shù)據(jù)采集單元,即多形態(tài)移動(dòng)警務(wù)終端,用于采集音視頻流、圖像、文本消息等。
數(shù)據(jù)匯聚單元,多形態(tài)移動(dòng)警務(wù)終端對(duì)應(yīng)的后臺(tái)數(shù)據(jù)處理系統(tǒng),如視頻網(wǎng)關(guān)、數(shù)據(jù)匯聚服務(wù)器、數(shù)據(jù)處理服務(wù)器、代理轉(zhuǎn)發(fā)服務(wù)器等。
網(wǎng)絡(luò)接入控制單元,即網(wǎng)絡(luò)接入控制器,部署在聯(lián)網(wǎng)服務(wù)子平臺(tái),是移動(dòng)警務(wù)邊界安全的重要實(shí)現(xiàn)機(jī)制,支持?jǐn)U展直連終端接入到移動(dòng)警務(wù)信息網(wǎng)的接入控制器設(shè)備,支持橋接中繼設(shè)備接入到移動(dòng)警務(wù)信息網(wǎng)的接入控制器設(shè)備,部署于橋接中繼設(shè)備中的接入控制模塊,實(shí)現(xiàn)多形態(tài)設(shè)備安全地接入到移動(dòng)警務(wù)平臺(tái)。
資源調(diào)度服務(wù)器,部署在聯(lián)網(wǎng)服務(wù)子平臺(tái),實(shí)現(xiàn)圖像、文本、信令等短消息的數(shù)據(jù)擺渡、遠(yuǎn)程調(diào)度等主要功能。
流媒體播放平臺(tái),部署在聯(lián)網(wǎng)服務(wù)子平臺(tái),實(shí)現(xiàn)音視頻等流媒體信息的數(shù)據(jù)擺渡,當(dāng)收到客戶端發(fā)起的視頻播放請(qǐng)求后,將流媒體信息根據(jù)客戶端需要的分辨率,推送到移動(dòng)警務(wù)終端,實(shí)現(xiàn)視頻轉(zhuǎn)發(fā)播放功能。
移動(dòng)警務(wù)終端,即民警使用的移動(dòng)警務(wù)手機(jī),用于遠(yuǎn)程控制多形態(tài)移動(dòng)警務(wù)終端,并接收其發(fā)布的數(shù)據(jù)流,實(shí)時(shí)展現(xiàn)在客戶端,便于民警協(xié)同作戰(zhàn)。
終端從聯(lián)網(wǎng)服務(wù)子平臺(tái)接入,系統(tǒng)面向應(yīng)用提供服務(wù)接入能力。下面通過(guò)AR智能眼鏡資源調(diào)度系統(tǒng)進(jìn)行舉例說(shuō)明,系統(tǒng)架構(gòu)如圖4所示。
AR智能眼鏡運(yùn)行在聯(lián)網(wǎng)服務(wù)子平臺(tái),已符合安全接入規(guī)范,無(wú)需通過(guò)網(wǎng)絡(luò)接入控制器接入。
AR智能眼鏡是常見的警用穿戴設(shè)備,AR眼鏡端集成了高清攝像頭(單目或雙目)、麥克風(fēng)、耳機(jī)、微型顯示屏等,通過(guò)OTG與移動(dòng)警務(wù)終端連接,眼鏡后臺(tái)有管理服務(wù)器和流媒體服務(wù)器,指揮調(diào)度人員可登錄WEB網(wǎng)頁(yè)端,對(duì)AR智能眼鏡端發(fā)起呼叫請(qǐng)求,建立連接后,民警眼鏡端的視頻可實(shí)時(shí)回傳至后臺(tái)網(wǎng)頁(yè)端,并可與后臺(tái)指揮人員實(shí)時(shí)通話,發(fā)送文字、圖片等。
AR智能眼鏡作為數(shù)據(jù)采集單元,僅有采集功能,民警實(shí)際應(yīng)用中,后臺(tái)指揮人員或者協(xié)作人員,不能局限于WEB端管理,還需要在移動(dòng)警務(wù)終端實(shí)時(shí)獲取前方民警眼鏡端的視頻內(nèi)容,便于協(xié)作開展工作,因此需要本系統(tǒng)作為調(diào)度系統(tǒng),將AR眼鏡端的數(shù)據(jù)實(shí)時(shí)回傳至后方民警的移動(dòng)警務(wù)終端。
民警可通過(guò)AR智能眼鏡,遠(yuǎn)距離無(wú)感采集需識(shí)別的相關(guān)信息,經(jīng)過(guò)眼鏡端簡(jiǎn)單的數(shù)據(jù)處理后,再將采集信息通過(guò)流媒體服務(wù)器傳送至資源調(diào)度系統(tǒng),通過(guò)約定的推送策略,推送至已上線并訂閱該主題的移動(dòng)警務(wù)終端。同時(shí),AR智能眼鏡端采集的音視頻流,也可依次通過(guò)流媒體服務(wù)器、流媒體播放平臺(tái)發(fā)送至移動(dòng)警務(wù)終端。民警也可通過(guò)移動(dòng)警務(wù)終端遠(yuǎn)程操控AR眼鏡。
終端從移動(dòng)互聯(lián)網(wǎng)服務(wù)子平臺(tái)接入,系統(tǒng)面向應(yīng)用提供服務(wù)接入能力。下面通過(guò)門禁系統(tǒng)進(jìn)行舉例說(shuō)明。監(jiān)控?cái)z像頭、邊緣計(jì)算終端、數(shù)據(jù)匯聚服務(wù)器等均位于移動(dòng)互聯(lián)網(wǎng)服務(wù)子平臺(tái),系統(tǒng)架構(gòu)如圖5所示。
不同于從聯(lián)網(wǎng)服務(wù)子平臺(tái)接入的移動(dòng)警務(wù)終端,移動(dòng)互聯(lián)網(wǎng)服務(wù)子平臺(tái)的系統(tǒng)終端不具備身份管理、認(rèn)證、接入、管控、數(shù)據(jù)訪問(wèn)等安全管控機(jī)制,均需通過(guò)網(wǎng)絡(luò)接入控制器接入聯(lián)網(wǎng)服務(wù)子平臺(tái)[5]。
門禁系統(tǒng)部署在受控區(qū)域的大門位置,能有效核查受控區(qū)域狀況,及時(shí)發(fā)現(xiàn)在門口出現(xiàn)的情況并立即通知工作人員,確保受控區(qū)域安全,提升受控區(qū)域的安全防范系數(shù)。
監(jiān)控?cái)z像頭持續(xù)采集受控區(qū)域附近的相關(guān)信息,實(shí)時(shí)將采集數(shù)據(jù)發(fā)送至數(shù)據(jù)匯聚服務(wù)器,再通過(guò)網(wǎng)絡(luò)接入控制器轉(zhuǎn)發(fā)至資源調(diào)度系統(tǒng),一旦出現(xiàn)預(yù)警信息,立即向客戶端APP推送告警。同時(shí),攝像頭端采集的視頻流可依次通過(guò)數(shù)據(jù)匯聚服務(wù)器、網(wǎng)絡(luò)接入控制器、流媒體播放平臺(tái)發(fā)送至移動(dòng)警務(wù)終端。民警也可通過(guò)移動(dòng)警務(wù)終端遠(yuǎn)程操控監(jiān)控?cái)z像頭。
本系統(tǒng)作為一項(xiàng)基礎(chǔ)慧警系統(tǒng),基于物聯(lián)網(wǎng)平臺(tái)實(shí)現(xiàn)了移動(dòng)警務(wù)終端采集側(cè)和用戶側(cè)的數(shù)據(jù)轉(zhuǎn)發(fā)、遠(yuǎn)程調(diào)度,優(yōu)化作戰(zhàn)方式,提升作戰(zhàn)效率,實(shí)現(xiàn)勤務(wù)模式的便捷和高效。針對(duì)不同警種的業(yè)務(wù)場(chǎng)景和業(yè)務(wù)需求,第三方開發(fā)者可在該系統(tǒng)的基礎(chǔ)上擴(kuò)展豐富的應(yīng)用模式,將資源調(diào)度能力應(yīng)用到更廣泛的業(yè)務(wù)場(chǎng)景中,如門禁系統(tǒng)、車載系統(tǒng)、無(wú)人機(jī)、會(huì)議安保系統(tǒng)等,為公安移動(dòng)信息化建設(shè)提供有力支撐。