李永亮
摘要:針對交通工具監(jiān)控、兒童守護和可移動公共財產(chǎn)保護等安防領域的需求,提出了具備位置監(jiān)控和視音頻監(jiān)控功能的安防監(jiān)控系統(tǒng)服務端的一種設計與實現(xiàn)方法?;贘2EE技術架構和Red5流媒體架構,遵循分層架構和面向對象的設計方法,詳細介紹了系統(tǒng)的總體框架、功能劃分及系統(tǒng)各部分功能的實現(xiàn)。系統(tǒng)具備用戶注冊與登錄、設備注冊與登錄、實時位置監(jiān)控、歷史軌跡查詢和視音頻監(jiān)控等功能,為開發(fā)安防領域相關產(chǎn)品和服務提供了基礎。
關鍵詞:安防監(jiān)控系統(tǒng);服務端;位置監(jiān)控;視音頻監(jiān)控;J2EE;Red5
中圖分類號:TP311.52文獻標志碼:A文章編號:1008-1739(2018)09-68-3
Design and Implementation of Server-side of Security Monitoring and Control System Based on JavaWeb
LI Yong-liang(Zhongshan Polytechnic, Zhongshan Guangdong 528403, China)
0引言
由于定位技術、移動互聯(lián)網(wǎng)技術、便攜式智能設備技術的不斷成熟和普及[1],具備硬件定位功能、可隨時接入高速互聯(lián)網(wǎng)的便攜式智能設備,如智能手機、智能手環(huán)和智能手表等已經(jīng)成為人們的日常用品,基于這種現(xiàn)狀,面向交通工具監(jiān)控、兒童(老人、寵物)守護、可移動公共財產(chǎn)保護等領域的安防產(chǎn)品和服務具有很大的市場需求。在這種安防系統(tǒng)中,安裝了相關APP的便攜式智能設備可獲得其所處位置、采集到視音頻信號并上傳到服務端,而服務端除了存儲位置信息、管理媒體流,還具備用戶身份驗證、設備管理與身份驗證功能,此外向用戶提供位置監(jiān)控和視音頻監(jiān)控Web頁面。
本文所闡述的工作包含上述安防監(jiān)控系統(tǒng)服務端的用戶及設備管理、定位數(shù)據(jù)的存儲和管理、位置監(jiān)控功能、視音頻監(jiān)控功能。
1系統(tǒng)功能劃分和總體架構
本系統(tǒng)的用戶可以通過APP注冊賬號,當用戶通過APP登錄成功后,如果設備未注冊則自動注冊并綁定到當前登錄的用戶賬號,然后在每次定位數(shù)據(jù)更新的時候向本系統(tǒng)發(fā)送位置信息。此時用戶再通過Web頁面登錄本系統(tǒng),則可以查看到賬號下綁定的所有設備的實時位置,還可以查詢歷史運動軌跡,以及查看監(jiān)控畫面。
從功能上劃分,本系統(tǒng)可分為用戶管理和設備管理、位置監(jiān)控和視音頻監(jiān)控3部分。其中用戶管理和設備管理包括:用戶注冊、用戶登錄、設備注冊和設備登錄;位置監(jiān)控功能包括:接收并管理設備的位置信息、軌跡信息查詢、位置信息和軌跡信息的可視化;音視頻監(jiān)控功能包括:設備推流時的身份驗證、用戶獲取媒體流時的身份驗證和媒體流的播放。
本系統(tǒng)采用分層架構的設計,使前后端數(shù)據(jù)交換、業(yè)務邏輯、數(shù)據(jù)存取操作充分解耦。具體層次從上到下為:數(shù)據(jù)交互接口層、業(yè)務邏輯層和數(shù)據(jù)訪問層。其中,數(shù)據(jù)交互接口除了服務于表現(xiàn)層,還同時服務于與本系統(tǒng)配套的便攜式智能監(jiān)控設備APP。以Java的Web框架為開發(fā)的主要技術手段,Web頁面為嵌入JavaScript的靜態(tài)網(wǎng)頁,其中位置監(jiān)控頁面使用了高德地圖的JavaScript API,而視音頻監(jiān)控頁面則使用Flash開發(fā)從而具備使用RTMP協(xié)議從流媒體服務器獲取并播放視音頻流的能力[3];數(shù)據(jù)交互接口則采用Servlet實現(xiàn)。
2用戶管理和設備管理功能的設計與實現(xiàn)
用戶管理和設備管理的核心是實現(xiàn)位置數(shù)據(jù)資源和流媒體資源的用戶隔離和設備隔離。用戶間通過注冊時提交的用戶名和密碼實現(xiàn)隔離,而設備則根據(jù)硬件ID和SN號實現(xiàn)隔離。
用戶通過APP提交用戶名和密碼,如果用戶名合法并未被占用則注冊成功。當用戶通過Web頁面登錄成功后,其身份信息會存儲在session中[4],當用戶試圖訪問位置監(jiān)控頁面和視音頻監(jiān)控頁面時,系統(tǒng)都會檢查session中的身份信息,以確保只有合法的用戶能訪問上述2個頁面,并確保該用戶只能訪問當前登錄賬號下綁定的設備的監(jiān)控視音頻流。
設備的注冊和登錄則須基于用戶在APP端的成功登錄,且需要提供硬件ID和SN號進行身份驗證,其中硬件ID通過 APP從設備端取得,而SN號則在設備注冊過程中由本系統(tǒng)生成并下載到設備中持久化。當用戶在APP端登錄成功后,設備首先向本系統(tǒng)的設備數(shù)據(jù)交互接口提交硬件ID號和SN號嘗試登錄,系統(tǒng)的設備數(shù)據(jù)管理業(yè)務邏輯通過查詢ID和識別SN確認設備是否已經(jīng)注冊,如果設備未注冊則根據(jù)SN號生成算法獲取設備SN號,并將設備硬件ID和SN號以及所屬用戶ID通過數(shù)據(jù)訪問層存儲到數(shù)據(jù)庫中,同時將SN號反饋給設備,設備根據(jù)反饋再次發(fā)起登錄請求,從而完成設備的注冊和登錄過程。
3位置監(jiān)控功能的設計與實現(xiàn)
位置監(jiān)控功能包括位置監(jiān)控數(shù)據(jù)的存儲、查詢及轉換。
3.1位置監(jiān)控數(shù)據(jù)的存儲
在位置監(jiān)控數(shù)據(jù)的存儲和查詢方面,為了盡量減少數(shù)據(jù)庫的訪問量,設備數(shù)據(jù)存儲管理邏輯在Application中維護一張用戶和設備信息表,用于存儲正在通過Web頁面登錄的用戶賬號及其下掛設備的最新位置信息,從而使位置實時監(jiān)控所需數(shù)據(jù)不必從數(shù)據(jù)庫獲取,此過程的泳道圖如圖2所示,其中賬號下掛設備的硬件ID號以ArrayList的形式存儲在用戶通過Web登錄的session中,而設備位置信息則以HashMap的形式存儲在Application中。
3.2位置監(jiān)控數(shù)據(jù)的查詢和轉換
本系統(tǒng)的用戶可以通過Web頁面查看設備在地圖上的實時位置,也可以查詢指定設備在指定時間段內的運動軌跡[5]。其中,頁面顯示所需的位置數(shù)據(jù)由服務端提供。服務端通過設備數(shù)據(jù)交互接口接收和響應Web頁面提交的位置數(shù)據(jù)請求。由于服務端存儲的是設備提交的原始定位數(shù)據(jù),在提供給前端使用前必須進行轉換使之與地圖API適配。本系統(tǒng)采用的是從服務端的位置數(shù)據(jù)查詢管理邏輯單元直接向地圖API發(fā)起轉換請求,并由設備數(shù)據(jù)交互接口將轉換后的數(shù)據(jù)反饋給前端的策略,具體過程如圖3所示。
4視音頻監(jiān)控功能的設計與實現(xiàn)
視音頻監(jiān)控功能主要依靠流媒體服務器對視音頻資源進行管理,設備端通過視音頻采集工具獲取監(jiān)控畫面和聲音后,經(jīng)過壓縮編碼,以直播流的形式上推到流媒體服務器,而用戶則通過視音頻監(jiān)控Web頁面從服務器獲取直播流,從而實現(xiàn)實時視音頻監(jiān)控。本系統(tǒng)的流媒體服務器采用開源的Red5服務器框架,以RTMP協(xié)議作為流媒體的傳輸協(xié)議,視音頻監(jiān)控頁面基于Flash平臺開發(fā),利用AS腳本語言實現(xiàn)流媒體的請求和播放功能[6]。為了保證本功能的用戶隔離和設備隔離,在向流媒體服務器發(fā)起請求之前,AS腳本還須先訪問用戶數(shù)據(jù)交互接口,在確認用戶已登錄后再獲取該用戶賬號下綁定的設備名稱列表供用戶選擇,然后根據(jù)用戶選擇向流媒體服務器發(fā)起請求并在獲取直播流后播放,具體過程如圖4所示。
5系統(tǒng)實現(xiàn)效果及技術要點總結
5.1系統(tǒng)實現(xiàn)效果
本系統(tǒng)現(xiàn)已投入使用,用戶登錄后可以通過主頁面監(jiān)控當前賬號綁定的所有設備的實時位置,此外還可以跟蹤指定設備的實時位置、查詢指定設備的歷史軌跡,并通過視音頻監(jiān)控頁面查看車內實況,如圖5和圖6所示。
5.2技術要點總結
(1)本系統(tǒng)采用多層架構設計,其中數(shù)據(jù)交互接口層中分別實現(xiàn)了針對Web和APP的接口,從而使業(yè)務邏輯層與前端解耦,增強了系統(tǒng)的可移植性和可擴展性。
(2)利用session對象和Application對象,在內存中維護正在通過Web頁面登錄用戶的設備信息表以及一張動態(tài)的設備實時位置信息表,大大減少了數(shù)據(jù)庫的訪問。
(3)在引入Red5流媒體服務的基礎上,設計了視音頻數(shù)據(jù)請求響應邏輯,保證了流媒體資源的設備隔離和用戶隔離。
6結束語
基于JavaWeb的安防監(jiān)控系統(tǒng)服務端是可移動安防監(jiān)控系統(tǒng)的重要組成部分,為有安防需求的用戶提供了記錄設備端實時位置、管理視音頻流的功能,用戶可以使用瀏覽器訪問本系統(tǒng)的Web頁面,從而能夠隨時監(jiān)控設備的實時位置、歷史軌跡和視音頻信息。采用J2EE技術框架和多層架構的設計思路,使前后端之間、服務端的各層之間充分解耦,保證了系統(tǒng)具備較高的可移植性和可擴展性;引入開源的Red5流媒體服務框架,使視音頻信息的管理更便捷和可靠。在本系統(tǒng)基礎上適當擴充,增加用戶和設備后臺管理模塊、收費模塊等,結合設備端,可開發(fā)出符合市場需求的安防監(jiān)控產(chǎn)品。
參考文獻
[1]楊曉哲.可穿戴設備的未來[J].中國信息技術教育,2017(Z3): 102-103.
[2]譚玉新.基于工業(yè)互聯(lián)網(wǎng)的煤礦井下機器人導航與無線視頻監(jiān)控技術研究[D].北京:北京交通大學,2017.
[3]程承.基于RTMP協(xié)議的網(wǎng)絡播出平臺建設[J].科技創(chuàng)新與應用,2016(17):102.
[4]宋金華.Struts2框架中Session對象分析及應用研究[J].現(xiàn)代計算機(專業(yè)版),2014(30):41-44.
[5]張得天,王佳傲,陳飛.國內網(wǎng)絡地圖服務比較分析研究(英文)[J].華東師范大學學報(自然科學版),2017(06):85-95.
[6]劉峰.基于RED5的HLS虛擬流媒體服務器部署方法研究與應用[D].西安:西安電子科技大學,2015.