摘 要: 隨著互聯(lián)網(wǎng)及多媒體技術的不斷發(fā)展,每個廠商都有自己的開發(fā)協(xié)議和使用規(guī)范,對網(wǎng)絡監(jiān)控設備進行有效的管理成為新的研究熱點。通過設計實現(xiàn)一個通用的視頻監(jiān)控設備管理系統(tǒng),從而實現(xiàn)對標準SNMP設備和非標準SNMP設備的集成管理,這個網(wǎng)絡管理系統(tǒng)借助中間文件實現(xiàn)與數(shù)據(jù)庫之間的通信。并在此基礎上,設計實現(xiàn)了轉(zhuǎn)發(fā)服務器,實現(xiàn)前端攝像機的多路并發(fā)訪問。
關鍵詞: 視頻監(jiān)控; 網(wǎng)絡管理; SNMP協(xié)議; 中間文件
中圖分類號: TN915.04?34; TM417 文獻標識碼: A 文章編號: 1004?373X(2016)15?0070?04
Abstract: With the continuous development of Internet and multimedia technology, the manufacturers have their own deve?lopment protocols and usage specifications, so the effective management of the network monitoring equipments has become a new research hotspot. In view of this, a general video surveillance equipment management system was designed to realize the integrated management of the standard SNMP equipments and non?standard SNMP equipments. The network management system realizes communication between the databases in virtue of the intermediate files. On this basis, the forwarding server was designed and implemented to realize the multichannel concurrent access of the front camera.
Keywords: video surveillance; network management; SNMP protocol; intermediate file
當前,視頻監(jiān)控技術已經(jīng)由傳統(tǒng)的閉路監(jiān)控的模擬化時代完全進入到了數(shù)字信息化。在這種背景下越來越多的視頻監(jiān)控設備廠商相繼出現(xiàn),因而使得不同種類的設備也越來越多,因此要對每一種硬件設備進行管理勢必會對網(wǎng)絡協(xié)議的設計和實現(xiàn)帶來巨大的困難,同時,會帶來不同程度的安全隱患[1?2]。因此,需要設計并開發(fā)一個可以同時管理不同種類的視頻監(jiān)控設備的管理系統(tǒng),對視頻監(jiān)控設備進行統(tǒng)一的監(jiān)控和管理。
1 系統(tǒng)結(jié)構(gòu)
為了實現(xiàn)對所有視頻監(jiān)控設備的有效管理,本文設計并開發(fā)了一個視頻監(jiān)控設備管理系統(tǒng),該系統(tǒng)由網(wǎng)絡攝像頭、光端機、代理服務器、DVR、磁盤矩陣等硬件節(jié)點構(gòu)成。在開發(fā)環(huán)境之上再細分成多個子模塊系統(tǒng),進一步對底層設備進行管理,最終為使用者提供服務,從而為用戶提供了一個實時監(jiān)控的平臺,用于監(jiān)控該區(qū)各個街道的實時動態(tài)以及各個路段的交通狀況,特別是在陰雨天氣能夠很好地實現(xiàn)指揮交通的功能。該系統(tǒng)同時可以實現(xiàn)視頻媒體歷史回放的功能,該功能的實現(xiàn)是通過在進行實時播放的同時將視頻數(shù)據(jù)進行存儲[3]。一旦有意外事故發(fā)生,就可以通過時間段來搜索獲取該時間區(qū)間的視頻數(shù)據(jù),進而達到了歷史回放的效果。整個系統(tǒng)的結(jié)構(gòu)如圖1所示。
在整個系統(tǒng)中,視頻監(jiān)控設備的管理功能主要是在功能模塊層的網(wǎng)絡設備管理子系統(tǒng)中實現(xiàn)的。該子系統(tǒng)的目的在于設計一個通用的視頻監(jiān)控設備網(wǎng)絡管理平臺,分別對標準的數(shù)字化SNMP設備和非標準SNMP設備進行管理控制,實時地獲取它們各自的工作狀態(tài)等信息,并對這些信息進行存儲以便相關人員及時對硬件設備的維護做出響應[4]。該系統(tǒng)主要包含了視頻設備監(jiān)控模塊、數(shù)據(jù)庫模塊以及相關的中間文件系統(tǒng)三個部分,其結(jié)構(gòu)如圖2所示。
對于一些遺留下來的非標準SNMP協(xié)議模擬化設備使用非標準SNMP管理模塊實現(xiàn)對系統(tǒng)中的模擬化設備進行監(jiān)控和管理。該管理模塊借助標準SNMP管理模塊先向底層的數(shù)據(jù)庫訪問層發(fā)送獲取設備基本信息的命令,數(shù)據(jù)庫訪問層接收到請求之后,查詢到對應的信息數(shù)據(jù)并依據(jù)固定消息的格式將所獲取的設備狀態(tài)數(shù)據(jù)寫入到配置文件中。非標準SNMP管理模塊隨后讀取該配置文件中的內(nèi)容,就可以獲取對應設備的基本數(shù)據(jù)信息,利用這些基本數(shù)據(jù)作為參數(shù),并使用管理模塊調(diào)用對應的算法完成對所監(jiān)控設備的狀態(tài)信息的獲取操作。
2 系統(tǒng)模塊設計
2.1 標準SNMP協(xié)議管理模塊的設計
將標準SNMP管理模塊和數(shù)據(jù)訪問模塊進行合并,再用控制器層對其進行封裝??刂破鬟@一層承擔著標準SNMP管理模塊和其他模塊之間所有通信的任務。業(yè)務邏輯層處在整個SNMP管理模塊的中間位置,起到了承上啟下的關鍵作用,它承載了整個模塊所有業(yè)務邏輯的處理過程[5]。數(shù)據(jù)庫訪問層是數(shù)據(jù)庫對外提供的一個接口,它主要負責和業(yè)務邏輯層進行交互。
以上三個小模塊就構(gòu)成了整個標準SNMP管理模塊,三個層次之間形成了調(diào)用和被調(diào)用的形式,上一層通過相關命令請求調(diào)用下一層,下一層處理完請求獲取相關數(shù)據(jù)之后將具體的數(shù)據(jù)信息返還給上一層[6]。這個模塊采用分層的方式,簡化了整個模塊具體的設計以及功能的實現(xiàn)。
2.2 非標準SNMP協(xié)議管理模塊的設計
(1) 非標準SNMP協(xié)議管理模塊的設計
根據(jù)網(wǎng)絡設備管理系統(tǒng)的整體設計可知,非標準SNMP管理模塊是在日志文件和配置文件模塊的協(xié)助下完成的。當該模塊收到相應的請求命令之后,會主動到中間文件模塊中獲取日志文件和配置文件中的內(nèi)容,然后利用設備自身所具有的特征對這些內(nèi)容進行處理。該模塊的整體結(jié)構(gòu)設計如圖3所示。
中間模塊中的SDK監(jiān)視模塊、輔助程序監(jiān)視模塊、以及網(wǎng)絡數(shù)據(jù)報監(jiān)視模塊分別是上述三種非SNMP標準協(xié)議設備對外所提供的程序接口。在日志文件記錄模塊和配置文件讀取模塊中信息記錄的格式是事先定義好的,文件解析器在進行文件解析和寫日志時會自動按照已經(jīng)定義好的固定格式進行解析和記錄[7]。根據(jù)非標準SNMP協(xié)議設備的不同特性,其所提供的外部接口的功能也是不同的。
(2) 網(wǎng)絡管理模塊的融合
非標準SNMP管理模塊中的檢測模塊對本機進行監(jiān)聽以便獲取請求,監(jiān)聽到請求報文之后對其進行解析,而標準SNMP管理模塊通過向非標準SNMP模塊的服務器發(fā)送命令使用網(wǎng)絡設備的功能,為了使兩個模塊之間的通信可以持久,它們之間的TCP連接請求是可以重新發(fā)起的,這個重新發(fā)起的機制就是在檢測模塊在監(jiān)聽過程中發(fā)現(xiàn)了異常之后會將原始的檢測模塊銷毀并初始化一個新的檢測模塊,并重新向標準SNMP管理模塊發(fā)送連接請求,建立新的Socket,一旦新的Socket建立成功就實現(xiàn)了重復連接。
2.3 底層數(shù)據(jù)庫框架和數(shù)據(jù)文件的設計與實現(xiàn)
為了實現(xiàn)對數(shù)據(jù)庫入口的統(tǒng)一,需要協(xié)調(diào)使用中間文件中的配置文件以及日志文件共同完成這個功能,使用配置文件為不支持標準SNMP協(xié)議的硬件設備模塊提供信息數(shù)據(jù)的來源,使用日志文件將不支持標準SNMP協(xié)議的硬件設備的工作狀態(tài)信息及時存儲到底層數(shù)據(jù)庫中,所以配置文件起到了源的作用,日志文件起到了中介的作用。
在這個結(jié)構(gòu)中,非標準SNMP管理模塊首先需要從配置文件中獲取相關數(shù)據(jù),經(jīng)過模塊內(nèi)部的解析機制進行相應的解析之后就可以獲取非標準SNMP協(xié)議的視頻監(jiān)控設備的基本信息[8]。獲取這些基本信息之后,該管理模塊就可以實現(xiàn)對指定硬件設備的監(jiān)控操作[9]。獲取被監(jiān)控設備的工作狀態(tài)信息之后,該模塊會將這些信息逐漸寫入到它下一級的日志文件當中去,為業(yè)務邏輯層提供相應的數(shù)據(jù),業(yè)務邏輯層獲取數(shù)據(jù)之后會直接調(diào)用數(shù)據(jù)庫訪問層的相關函數(shù)進行數(shù)據(jù)庫的更新操作。經(jīng)過對硬件設備分類之后并進行整合,完成了對視頻監(jiān)控設備信息進行存儲的底層數(shù)據(jù)庫的設計。
3 視頻監(jiān)控設備網(wǎng)絡管理的實現(xiàn)
3.1 標準SNMP協(xié)議網(wǎng)絡設備管理模塊的實現(xiàn)
因為整個子系統(tǒng)的實現(xiàn)要經(jīng)過多次的封裝完成,封裝后的系統(tǒng)要提供一個外部接口,使得通過發(fā)送URL請求的方式調(diào)用該模塊成為可能,需要在該層提供一個處理URL請求的接口,以及對應處理方法的接口。對應整個分層結(jié)構(gòu)以及管理子系統(tǒng)的設計如圖4所示。
控制層的主要任務就是處理外部的請求命令以及調(diào)用業(yè)務邏輯層的處理模塊完成標準SNMP協(xié)議網(wǎng)絡設備的管理。業(yè)務邏輯層主要實現(xiàn)對網(wǎng)絡設備的狀態(tài)信息進行查詢的功能。
3.2 非標準SNMP協(xié)議網(wǎng)絡設備管理模塊
(1) 非標準SNMP管理模塊的實現(xiàn)
根據(jù)非標準SNMP設備的特點,設備的管理程序也被分成了不同的類型[10]。第一種,直接將設備廠商提供的SDK改成滿足設備供應商自己所規(guī)定的SDK的報文格式和報文發(fā)送與接收的流程;第二種,借助于數(shù)據(jù)處理程序并結(jié)合設備供應商提供的SDK一起實現(xiàn)對非標準SNMP設備的網(wǎng)絡化管理;最后一種硬件設備主要是光端機,這種設備的供應商只提供了網(wǎng)絡數(shù)據(jù)包接口而并沒有提供相應的二次開發(fā)工具。
(2) 黑屏檢測算法
在實際的使用中,攝像機在一定時間內(nèi)會連續(xù)拍攝到很多圖片,為了提高整個檢測的流程和效率,隨機的在一張圖片上選擇1 000左右的像素點判斷是否全為黑色像素點的方法完成整個黑屏檢測的測試工作。黑屏檢測算法的實現(xiàn)流程如圖5所示。
3.3 底層數(shù)據(jù)庫訪問的實現(xiàn)
底層數(shù)據(jù)庫主要用來存放整個視頻監(jiān)控系統(tǒng)中所有設備的狀態(tài)信息,并可以對系統(tǒng)中各個設備的狀態(tài)信息進行實時更新。在整個系統(tǒng)中,該層實現(xiàn)的核心主要在于使用了已經(jīng)存在的Hibernate技術完成底層數(shù)據(jù)庫的連接以及其他的相應配置工作。
通過對各個實體進行抽象提取之后,數(shù)據(jù)庫訪問層提供的方法所支持的數(shù)據(jù)庫類型就不再是一個具體的實體類,而是這個經(jīng)過進一步處理的抽象類,并且在調(diào)用的時候?qū)嶓w類的對象作為一個參數(shù)傳輸給抽象類。這是借助于Java的特性來完成的,因為在Java面向?qū)ο蟮奶匦灾?,通過父類的引用就可以指向子類的對象,從而可以自動地完成對底層數(shù)據(jù)庫表的映射操作。
3.4 中間文件系統(tǒng)的實現(xiàn)
在設備管理系統(tǒng)中使用一個XML文件作為網(wǎng)絡設備的配置文件完成對設備的初始化配置,在這個過程中,使用自己定義的tag標簽標識系統(tǒng)中設備的基本屬性。
對于編碼解碼器設備,使用
3.5 轉(zhuǎn)發(fā)服務器的設計與實現(xiàn)
(1) 轉(zhuǎn)發(fā)服務器的設計
轉(zhuǎn)發(fā)服務器就其功能實現(xiàn)來說主要包含了五個部分,一旦程序開啟之后,就會創(chuàng)建兩個線程分別用OnBnClickedmain和OnBnClickedClear表示,一個用來啟動服務器,一個用來在服務結(jié)束之后清除聽眾隊列。OnBnClickedmain負責創(chuàng)建監(jiān)聽套接字并對連接請求進行監(jiān)聽,如果檢測到服務器已經(jīng)開啟,會根據(jù)客戶端請求創(chuàng)建一個新的Socket線程ClientThread并傳入對應的參數(shù)。線程ClientThread根據(jù)傳入的IP地址先判斷是否合法,之后再檢測該相機是否已經(jīng)處于工作狀態(tài),根據(jù)相應狀態(tài)自動啟動新的線程進行處理。
在實際開發(fā)過程中,所有的功能抽象成三個類,分別為CRebroadcastDlg,RebroadcastClass,BufferClass。其中CRebroadcastDlg負責實現(xiàn)與用戶交互的界面功能;BufferClass主要負責實現(xiàn)一個緩存的功能并完成聽眾的添加和刪除的實際操作;而RebroadcastClass是轉(zhuǎn)發(fā)服務器功能實現(xiàn)的主要類,它主要控制了緩存的實現(xiàn)以及對底層SDK功能的調(diào)用。
(2) 客戶端接口的設計與實現(xiàn)
一種播放器軟件對應一種視頻監(jiān)控設備,而對于同一廠家生產(chǎn)的設備中不同的設備之間只是通過在初始化配置的時候?qū)P地址進行區(qū)分。所以客戶端的播放器需要根據(jù)不同廠商所提供的SDK進行二次開發(fā),開發(fā)出對應的OCX控件實現(xiàn)桌面播放器的網(wǎng)頁化。
面對很多種類的播放器,如何判斷一個攝像機需要使用哪一個播放器軟件就成了一個問題。基于對一個局域網(wǎng)中所有視頻監(jiān)控設備的統(tǒng)一管理的經(jīng)驗,應有一個程序可以對前端所有種類的播放器進行統(tǒng)一的管理。于是提出了對多種不同類的播放器進行封裝的方法,如何判斷相互之間的調(diào)用關系,這些細節(jié)使用者無法看到,通過對外提供一個接口供客戶端使用者使用。
4 設備管理系統(tǒng)硬件平臺測試
4.1 系統(tǒng)硬件環(huán)境
(1) 支持標準SNMP協(xié)議的硬件平臺
在整個系統(tǒng)中支持標準SNMP協(xié)議的硬件平臺主要包括的設備有服務器、交換機以及數(shù)字矩陣,在這些硬件設備上都安裝有特定的操作系統(tǒng)。
(2) 不支持標準SNMP協(xié)議的硬件平臺
設備主要包括一些模擬化的攝像機和一些比較陳舊的設備,由它們和對應的管理程序共同構(gòu)成了一個硬件平臺。整個視頻監(jiān)控系統(tǒng)中使用到的硬件設備包括:編解碼器、數(shù)字矩陣、交換機。
4.2 系統(tǒng)的具體實現(xiàn)方案
(1) 系統(tǒng)代碼的部署
在該過程中使用到的硬件服務器的配置如表1所示。
(2) 視頻監(jiān)控設備的拓撲結(jié)構(gòu)
在系統(tǒng)中,根據(jù)是否支持標準SNMP協(xié)議將設備分成了兩大類:一種是具備基本網(wǎng)絡屬性值的數(shù)字化設備,該類設備可以非常簡單的通過服務器端發(fā)送SNMP協(xié)議報文獲取該設備的工作狀態(tài)信息;另外一種是不支持SNMP協(xié)議的模擬化攝像機裝置,這種設備不可以直接使用SNMP協(xié)議報文獲取其對應的工作狀態(tài)信息,而需要借助于額外的服務程序來完成此工作。
數(shù)字化的網(wǎng)絡設備主要包含了支持標準SNMP協(xié)議的硬件設備,這些設備在生產(chǎn)出廠的時候通常具有一個MAC地址,一旦連接到網(wǎng)絡就會自動分配一個固定并且惟一的IP地址屬性值用來標識該設備本身。通過設備所擁有的IP地址可以判斷該設備所屬的局域網(wǎng),進而可以確定該設備所屬的街道以及它所在的具體位置,通過對系統(tǒng)中全局數(shù)字化設備的檢測就可以迅速地生成這類設備的拓撲結(jié)構(gòu)圖。
非數(shù)字化的設備主要是不支持SNMP協(xié)議的遺留設備,系統(tǒng)中使用到的模擬攝像機就是其中典型的代表。在視頻監(jiān)控設備管理系統(tǒng)中為了使所有監(jiān)控設備具有數(shù)字化設備能力,在模擬攝像機設備接入網(wǎng)絡時將其設備ID以及設備所處網(wǎng)絡的位置等基本信息存入到底層的數(shù)據(jù)庫中,在需要獲取這些設備的工作狀態(tài)時,就可以通過去數(shù)據(jù)庫中查詢相應的ID信息并通過作為介質(zhì)的中間文件完成非數(shù)字化設備的數(shù)字化過程。也就是通過實現(xiàn)存儲的非數(shù)字化設備的基本信息對這些設備的拓撲結(jié)構(gòu)進行預制。
5 結(jié) 論
本文針對已有的視頻監(jiān)控設備管理系統(tǒng)方案存在的不足,將視頻監(jiān)控硬件設備分成了支持標準SNMP協(xié)議和不支持標準SNMP協(xié)議的兩大類,并分別針對這兩類硬件設備設計了各自的管理程序,即標準SNMP管理模塊和非標準SNMP管理模塊,最后將兩個管理程序模塊進行融合,設計并實現(xiàn)了視頻監(jiān)控設備網(wǎng)絡管理系統(tǒng)。
實際應用表明,該系統(tǒng)可以很好地實現(xiàn)對系統(tǒng)中各類監(jiān)控設備的統(tǒng)一管理,并具有較好的可擴展性。
參考文獻
[1] 董向華,楊勇.基于網(wǎng)絡的視頻監(jiān)控系統(tǒng)的設計與實現(xiàn)[J].通信技術,2013(2):64?66.
[2] 冀燕麗,段海濤,張捷.基于IP專網(wǎng)的多媒體教室數(shù)字視頻監(jiān)控系統(tǒng)研究[J].現(xiàn)代教育技術,2013(2):47?51.
[3] 楊飛,陳德艷,黃國宏,等.基于Android智能終端的移動視頻監(jiān)控系統(tǒng)研究[J].計算機技術與發(fā)展,2013(2):195?198.
[4] 張多英,申晨,劉偉平.基于嵌入式Linux的主從式視頻監(jiān)控系統(tǒng)的設計[J].微計算機信息,2010(17):38?40.
[5] 劉濤,吳謹.基于IP的數(shù)字化網(wǎng)絡視頻監(jiān)控系統(tǒng)設計與實現(xiàn)[J].網(wǎng)絡安全技術與應用,2010(10):53?55.
[6] 艾群.基于SNMP協(xié)議的網(wǎng)絡安全管理系統(tǒng)[J].計算機安全,2007(10):63?64.
[7] 嚴斌宇,劉方圓,吳少華.基于SNMP的網(wǎng)絡管理軟件的設計與實現(xiàn)[J].計算機與數(shù)字工程,2012(4):126?129.
[8] 李威,田聯(lián)房,李向陽.嵌入式網(wǎng)絡視頻監(jiān)控系統(tǒng)的硬件設計與實現(xiàn)[J].微計算機信息,2010(8):69?70.
[9] 張雅楠,楊璐,鄭麗敏.基于Android手機的遠程視頻監(jiān)控系統(tǒng)的設計與開發(fā)[J].計算機應用,2013(1):283?286.
[10] 劉意先,鄒鵬.基于局域網(wǎng)的視頻監(jiān)控系統(tǒng)的設計與實現(xiàn)[J].現(xiàn)代電子技術,2014,37(8):35?37.