金琳+嚴長虹
摘 要: 隨著視頻監(jiān)控系統(tǒng)功能和技術的不斷完善和進步,針對一個站點的所有設備進行統(tǒng)一管理和監(jiān)控,并將位于不同地區(qū)的站點進行有效融合的難題,提出一種基于視頻管理系統(tǒng)的開放式架構平臺的解決方案,提高視頻監(jiān)控系統(tǒng)的擴展性、兼容性,該系統(tǒng)可以有效地與其他平臺、站點進行集成和融合。通過實際的開發(fā)測試,論證了基于視頻管理系統(tǒng)的開放式架構解決方案的合理性,系統(tǒng)采用Web Services開發(fā)的視頻監(jiān)控接口實現(xiàn)了各個平臺站點間的互聯(lián),使各個單元之間更加容易銜接,對視頻監(jiān)控系統(tǒng)的集成能力以及項目后期的擴展性和兼容性具有指導和借鑒意義。
關鍵詞: 視頻監(jiān)控; Web Services; VSIP協(xié)議; OCX控件
中圖分類號: TN948.4?34; TM417 文獻標識碼: A 文章編號: 1004?373X(2017)17?0179?04
Design of Web?based video management system under open architecture
JIN Lin1, YAN Changhong2
(1. School of Economics, Yancheng Institute of Technology, Yancheng 224002, China;
2. School of Information Engineering, Yancheng Institute of Technology, Yancheng 224002, China)
Abstract: With the function and technology improvement of video surveillance system, it is difficult to manage and monitor all equipments of each station uniformly, and difficult to fuse stations of different areas effectively. Therefore a solution based on open architecture platform of video management system is proposed, which can improve scalability and compatibility of video monitoring system, and integrate with other platform and stations effectively. The actual development and testing results prove that the solution based on open architecture of video management system is rational. The video monitoring interface developed by Web Services is adopted in the system to realize interconnection between stations of each platform, and make each unit easy to join, which has guiding significance and reference for integration capability of the video monitoring system, and scalability and compatibility in later project.
Keywords: video surveillance; Web Services; VSIP protocol; OCX component
隨著數字化、網絡化對整個監(jiān)控行業(yè)的推動,監(jiān)控系統(tǒng)進入了更加高速的發(fā)展階段,為整個安防行業(yè)的發(fā)展提供了更加廣闊的發(fā)展空間,與此同時,越來越多的領域都使用了視頻監(jiān)控系統(tǒng),特別是高科技遠程視頻監(jiān)控系統(tǒng)[1]。網絡視頻監(jiān)控的飛速發(fā)展給生活帶來安全保障的同時,同樣也出現(xiàn)了它本身的缺陷。因此,有必要研發(fā)一種開放的視頻監(jiān)控平臺,完成系統(tǒng)之間的跨語言、跨平臺對接。
1 視頻開放平臺的總體設計
1.1 設計思想
為了設計一種基于視頻管理系統(tǒng)的開放平臺,通過該開放平臺,用戶可以簡單方便地實現(xiàn)對視頻監(jiān)控區(qū)域的實時瀏覽,云臺控制等功能,用戶也可以根據該平臺給出的相關接口進行二次開發(fā),該平臺給出的接口邏輯功能部分已經實現(xiàn),只需要根據接口的規(guī)定傳輸數據即可。整個系統(tǒng)的工作過程如下:用戶可以在瀏覽器地址欄輸入對應的訪問地址,按照提示輸入用戶名、密碼和服務器IP,若三者有一項錯誤,則登錄失敗,需要重新登錄;若登錄成功,則可根據服務器返回的句柄進行相關操作。該平臺提供的接口邏輯部分已實現(xiàn),并對外部做出了接口的說明,所以平臺的整個實現(xiàn)中并沒有包括客戶端前端的編寫。
1.2 工作原理
在設計的開放式架構中,依托VMS服務器設計一套Web Services接口,能夠實現(xiàn)平臺管理、設備管理、監(jiān)控業(yè)務展現(xiàn)、存儲管理等功能,能夠實現(xiàn)平臺對接,讓第三方平臺通過調用Web Services接口從服務器獲取數據流。在本平臺下搭建的Web Services接口服務對象只包含VMS服務器,并不包含前端設備。在Web Services內部邏輯實現(xiàn)上主要用到了異步通信機制和VSIP協(xié)議。
1.2.1 異步通信工作原理
異步通信就是當前線程在執(zhí)行時,需要外部I/O設備進行硬盤讀寫,網絡通信等,但是外部設備I/O的速度與CPU的速度相差太遠,所以沒有必要等待I/O操作完成后再執(zhí)行后續(xù)的代碼。所以當前線程就將這個I/O操作的請求交給設備驅動去處理,而本身去執(zhí)行其他任務。所以異步通信進行網絡操作時,主線程并沒有掛起,而是繼續(xù)執(zhí)行任務,等到網絡操作完成時,給出一個網絡操作完成的通知,所以異步通信是一個明顯的并行操作過程[2]。異步通信模式無疑比阻塞和多線程的模式效率要高很多。endprint
1.2.2 VSIP協(xié)議工作原理
VSIP協(xié)議不是替代現(xiàn)行的通信協(xié)議、IP安全標準以及壓縮算法,而是將實際中適用的標準通過一套規(guī)則整合在一起使用,在該協(xié)議中涉及的概念有GUID,VSIP應用和VSIP單元。GUID是一個標識符,它以單元為單位,對VSIP網絡中的單元和單元功能進行標識,由于使用了單元的MAC地址作為標識,所以對于每一個標識符,都是惟一的。VSIP應用是指通過VSIP協(xié)議開發(fā)的上層系統(tǒng)應用軟件。VSIP單元是指利用VSIP開發(fā)的設備單元。VSIP協(xié)議實質上就是系統(tǒng)的應用軟件通過向設備單元發(fā)出一些命令和控制請求消息,在發(fā)現(xiàn)設備單元之后接收設備單元響應信息的過程。
1.2.3 OCX控件工作原理
在Web Services的內部實現(xiàn)上封裝了很多可用的視頻監(jiān)控客戶端所需要的接口信息,通過該接口的實現(xiàn)信息可以開發(fā)OCX控件,用于在客戶端獲取視頻監(jiān)控的信號,然后在Web頁面上嵌入相應的OCX控件的代碼,當用戶第一次用網頁登錄時,提示下載安裝OCX控件,下載安裝完成后,用戶可以通過用戶名、密碼登錄系統(tǒng),查看視頻的實時瀏覽、實時控制等相關功能。
1.3 開發(fā)框架的選擇
目前企業(yè)開發(fā)Web Services的主流框架有.NET框架和J2EE框架[3]兩種。針對多層的分布式應用,兩種框架都能夠在Web Services的設計、集成以及安全可靠性能方面提供很多的指導和規(guī)范。
由于本文主要的任務是開發(fā)一種供視頻監(jiān)控系統(tǒng)和其他應用程序或者子系統(tǒng)相連接的Web Services接口,所以主要看兩者對Web Services的支持力度[4]。從兩者對Web Services的支持力度出發(fā),主要從四個方面來比較,即前文中提到的服務實現(xiàn),服務調用和執(zhí)行,服務描述,服務發(fā)布、發(fā)現(xiàn)和綁定。具體的比較信息見表1。
1.4 平臺模塊組成
在整個Web Services接口設計中,復雜部分邏輯主要在內部實現(xiàn),外部的調用者不需要知道內部實現(xiàn)的具體邏輯即可調用[5]。在Web Services的設計實現(xiàn)當中,主要包含的設計部分如圖1所示。
1.4.1 異步通信模塊設計
使用完成端口的機制實現(xiàn)異步通信,完成端口的設計當中主要包括創(chuàng)建Socket套接字、創(chuàng)建綁定完成端口、監(jiān)控完成端口、接收數據、發(fā)送數據、關閉完成端口。每次通信過程實現(xiàn)完成端口的異步通信模式都要通過這幾步來完成。
1.4.2 VSIP協(xié)議模塊設計
該模塊主要利用VSIP協(xié)議對接收和發(fā)出的數據進行封裝、解析、加密和解密。通過解密的數據再由VSIP協(xié)議解析后發(fā)送給業(yè)務邏輯層,邏輯層再將傳入的數據經過VSIP進行封裝,經過加密之后再交給通信層發(fā)送。
1.4.3 業(yè)務邏輯模塊設計
業(yè)務邏輯模塊主要包含提供給各個子模塊調用的系統(tǒng)接口,調用這些接口可以很好地實現(xiàn)實時瀏覽、云臺控制、鏡頭ID獲取、用戶管理、報警模塊、參數配置、前端設備參數獲取等。
2 視頻開放平臺部分功能的具體實現(xiàn)
2.1 協(xié)議通信層的具體實現(xiàn)
2.1.1 協(xié)議模塊的消息定義
在協(xié)議通信模塊中,主要通過完成端口的異步通信模式實現(xiàn)通信[6]。先通過VSIP協(xié)議對數據進行封裝、加密、解密以及解析等操作,然后,通過異步通信的方式將數據包發(fā)送出去。
2.1.2 通信模塊的結構體定義
選取I/O完成端口的通信方式。實現(xiàn)完成端口的步驟主要包含開始連接、開啟接收線程、發(fā)送數據包、接收數據包、關閉完成端口,在.NET環(huán)境下完成端口的具體實現(xiàn)步驟如下:
(1) 創(chuàng)建SocketAsyncEventArgs的類對象,并通過緩沖管理中心給該對象池中的對象分配緩沖大小。
(2) 創(chuàng)建服務器套接字,監(jiān)聽并接收基于SocketAsyncEventArgs類對象的客戶端連接。
(3) 如果有來訪連接,接收對象取得控制權之后就開始接收數據。
2.2 多線程的具體實現(xiàn)
在本開放平臺中,為了保證各個模塊能夠很好地配合工作,使用多線程機制以保證程序的高效性。本開放式平臺中包含以下線程:心跳連接、消息控制、視頻碼流、視頻解碼、視頻顯示、音頻碼流、音頻解碼、音頻播放、錄像下載以及消息通知。各種線程都是以消息控制線程為中心,具體線程關系圖如圖2所示。
(1) 心跳連接。為了保證程序與服務器之間的穩(wěn)定連接,需在約定的時間內由程序向服務器發(fā)送一個判斷套接字連接是否正常的消息包,即心跳包[7]。服務器通過在規(guī)定的時間內是否收到心跳包來判斷連接狀態(tài)。通過心跳連接可以確保通信連接的可靠性和有效性。
(2) 線程控制。在程序開啟之后,控制線程就立即啟動。控制線程開啟以后,客戶可通過調用登錄接口創(chuàng)建具體的Socket連接,連接成功之后,就可以監(jiān)聽視頻監(jiān)控服務器返回的消息。
(3) 音視頻碼流。在整個視頻監(jiān)控系統(tǒng)中,最重要的是視頻監(jiān)控畫面的展示,可能還會伴隨著聲音的輸出。視頻監(jiān)控畫面的實時展示涉及到視頻流的獲取,所以在視頻監(jiān)控系統(tǒng)中,需要為視頻碼流的獲取單獨開啟一個線程,音頻也同樣如此。
(4) 消息通知。在視頻監(jiān)控系統(tǒng)中,很多情況下有很多的用戶登錄服務器,所以為了保持用戶數據能夠同步而不發(fā)生混淆,單獨開啟一個消息通知線程。通過服務器及時推送某些被更改信息的通知,根據通知信息的類型做出不同的操作。
(5) 錄像下載。有時用戶需要看以前的錄像內容,而這些內容被保存在磁盤中,所以用戶會根據需要下載指定時間段的錄像內容,當用戶調用錄像下載函數時,則會馬上開啟錄像下載線程,線程開啟之后,視頻監(jiān)控服務器會給用戶發(fā)送錄像文件碼流,并根據用戶設置的保存路徑保存錄像文件。endprint
2.3 業(yè)務邏輯模塊的具體實現(xiàn)
2.3.1 服務器級別模塊設計
由于在本設計中開發(fā)的Web Services主要是為外部調用,而在其內部實現(xiàn)方式上主要是和VMS服務器[7]交互,因此在業(yè)務邏輯部分有很多的模塊設計都與服務器相關,主要包含服務器版本信息獲取、登錄和注銷服務器、服務器時間獲取、得到服務器句柄和IP,獲取服務器的使用模式等。與服務器相關的接口框架設計如圖3所示。
2.3.2 用戶管理及權限模塊設計
用戶管理模塊主要是為了對登錄的用戶進行管理和權限設置,主要包括用戶管理和用戶權限配置兩個部分。用戶管理模塊的主要關系如圖4所示。
2.3.3 云臺控制模塊設計
云臺控制模塊是針對具有云臺的IP攝像機。云臺用來連接攝像機和支架,內置解碼器,云臺除了具有在水平和垂直方向運動的功能外,還遵循云臺控制的標準協(xié)議,通過外部信號的控制實現(xiàn)指定速度的水平和垂直運動,光圈和焦距調節(jié)等功能[8]。在本平臺中,云臺控制模塊主要包含云臺控制臺的運動,預置位信息的設置,輔助項信息的設置以及云臺的絕對運動。如圖5所示。
2.3.4 報警模塊設計
報警模塊主要負責監(jiān)聽報警設備產生的報警信息,通知視頻監(jiān)控系統(tǒng),它是視頻監(jiān)控系統(tǒng)的重要組成部分。報警模塊主要包含獲取報警單元、設置和獲取報警單元的信息、設置開關報警單元、添加報警計劃、查詢報警計劃等內容。報警模塊的主要組成部分如圖6所示。
3 開放平臺的總體測試
3.1 測試內容
3.1.1 實時瀏覽功能測試
本模塊的測試步驟如下:
(1) 通過IE瀏覽器訪問視頻監(jiān)控平臺的地址。
(2) 下載OCX播放控件并安裝。
(3) 登錄視頻監(jiān)控平臺。
(4) 選擇播放主界面中的一個播放通道。
(5) 雙擊左側鏡頭列表中的一個在線鏡頭,在播放通道內觀察是否有視頻顯示。
預期結果:雙擊鏡頭列表中的一個在線鏡頭后,在播放通道內會顯示正在監(jiān)控的視頻畫面。若鏡頭是離線的,則在播放通道內無結果顯示。經測試,發(fā)現(xiàn)實際結果與預期結果一致。
3.1.2 云臺控制功能測試
云臺控制模塊的測試步驟如下:
(1) 通過IE瀏覽器訪問視頻監(jiān)控平臺的地址。
(2) 下載OCX播放控件并安裝。
(3) 登錄視頻監(jiān)控平臺。
(4) 選擇播放主界面中的一個播放通道。
(5) 雙擊左側鏡頭列表中具有云臺標志的在線鏡頭,在播放通道內觀察是否有視頻顯示。
(6) 在左側頁面分別點擊上、下、左、右四個按鈕,測試云臺在這四個方向上的運動并觀測播放通道內的視頻監(jiān)控場景變化。
預期結果:選中具有云臺標志的鏡頭后,點擊上、下、左、右四個按鈕,播放通道里面的視頻畫面會向著對應的方向運動,對于沒有云臺的鏡頭,點擊云臺控制按鈕,視頻監(jiān)控場景不會發(fā)生變化。經過測試發(fā)現(xiàn)實際結果與預期結果一致。
3.1.3 多窗口播放功能測試
多窗口播放模塊的測試步驟如下:
(1) 通過IE瀏覽器訪問視頻監(jiān)控平臺的地址。
(2) 下載OCX播放控件并安裝。
(3) 登錄視頻監(jiān)控平臺。
(4) 選擇播放主界面中的一個播放通道。
(5) 分別點擊監(jiān)控界面下方的1,4,9按鈕。
(6) 選擇沒有播放視頻的通道,雙擊監(jiān)控界面左側列表中的鏡頭,觀測監(jiān)控畫面的變化。
預期結果:點擊1,4,9按鈕后,監(jiān)控界面的播放通道會跟著變化,選擇其中一個播放通道后,再點擊列表的一個鏡頭后,該播放通道就會顯示對應鏡頭的監(jiān)控場景。經過測試,發(fā)現(xiàn)實際結果與預期結果一致。
3.1.4 錄像檢索功能測試
錄像檢索模塊的測試步驟如下:
(1) 通過IE瀏覽器訪問視頻監(jiān)控平臺的地址。
(2) 下載OCX播放控件并安裝。
(3) 登錄視頻監(jiān)控平臺。
(4) 選擇播放主界面中的一個播放通道。
(5) 選擇一段時間內的錄像資料。
(6) 在選擇好的錄像資料內,定位到時間點,查看錄像資料。
預期結果:選取一個時間段后,通過選取該時間段內的一個時間點,可以很快定位到該時間點的畫面。經過測試發(fā)現(xiàn)實際結果與預期結果一致。
3.2 測試結果及分析
經過一段時間的系統(tǒng)測試以及開放平臺的穩(wěn)定運行,認為該開放平臺的設計達到了設計目標,可以滿足用戶實際的基本需求。在測試過程中,由于使用的客戶機配置比較陳舊,因此在開啟多路窗口播放監(jiān)控視頻時,會出現(xiàn)畫面卡頓的現(xiàn)象,在任務管理器中可以看到CPU的占用率比較高,但是當換一臺配置稍高的客戶機時,畫面基本能夠保持流暢,但是九路視頻同時播放時,還是有一定壓力的,占用的壓力相對也會比較高,但是總體來說,該開放平臺的接口能穩(wěn)定工作,可靠性較高。
4 結 論
本文對基于視頻管理系統(tǒng)的開放式架構進行分析設計。首先對視頻監(jiān)控中的常用架構做了系統(tǒng)闡述,并比較各自的優(yōu)缺點,并確定使用Web Services結構作為開發(fā)的技術架構,然后選擇.NET框架作為系統(tǒng)框架對系統(tǒng)進行總體設計和具體實現(xiàn)。最后利用IE客戶端對已經開發(fā)出的Web Services接口進行調用和測試,測試結果顯示,開放平臺的接口能夠穩(wěn)定有效地運行,能夠很好地支持客戶端實現(xiàn)視頻監(jiān)測的功能。
參考文獻
[1] 楊建全,梁華,王成友.視頻監(jiān)控技術的發(fā)展與現(xiàn)狀[J].現(xiàn)代電子技術,2006,29(21):84?88.
[2] 劉佩賢,韓?;?,楊志強,等.Web Services體系結構和應用研究[J].中國科技信息,2010(18):97?99.
[3] 袁寶良,張忠能,嚴學道.Microsoft.NET和J2EE架構開發(fā)技術分析[J].計算機工程,2004(z1):91?93.
[4] 羅玲,白曉穎.Web服務技術的分析[J].計算機科學,2004(4):19?23.
[5] 容芷君,應保勝,但斌斌.基于Web Services的設備管理系統(tǒng)的實現(xiàn)[J].武漢科技大學學報(自然科學版),2008,31(1):108?112.
[6] 劉磊,李連彬.Windows系統(tǒng)網絡通信層性能及方法研究[J].計算機應用,2009,29(z2):4?7.
[7] 胡東紅,杜光海,賀偉,等.基于完成端口模型的應用程序實現(xiàn)[J].物聯(lián)網技術,2014,4(3):60?62.
[8] 張黨進,趙文靜.Web Services中權限管理的分析與實現(xiàn)[J].現(xiàn)代電子技術,2006,29(5):62?63.endprint