摘 要:為了解決當前視頻監控軟件開發中存在的可復用性、擴展性差,重復開發嚴重的問題,提出了視頻監控管理平臺主控服務器的一種組件化模型。通過對主控服務器功能的分析,運用UML建模,設計并實現基于XML消息機制的通用組件。對組件的實驗測試,表明組件具有良好的可復用性、易升級性及擴展性。
關鍵詞:視頻監控系統;主控服務器;組件;UML;XML
中圖分類號:TP31文獻標識碼:B文章編號:1004373X(2008)2009203
Design and Implementation of Control Server Component in Video Surveillance System
MO Guoqing,WANG Kexue
(Institute of Command Automation,PLA University of Science Technology,Nanjing,210007,China)
Abstract:A model based on component for control server of video surveillance is presented to solve current problems such as low-level reusability.This component based on XML message mechanism is designed and implemented after its functions analysis and modeling in UML.The testing also proves its good performance of reusability,expanded and esy to upgrade.
Keywords:video surveillance system;control server;component;UML;XML
1 引 言
目前視頻監控在各個領域得到了廣泛應用,然而監控系統的開發卻面臨著成本高,周期長,擴展性不好的問題。采用組件化的可重用開發,能夠有效解決上述問題。在軟件產業中,基于組件的技術是當前的熱點。組件化軟件要求需求、體系、設計、實現的模塊化,將現在大型而單一的系統轉化為模塊化結構,從而獲得更好的適應性、可測性及可維護性。UML(統一建模語言) 是一種定義良好、易于表達、功能強大且普遍適用的建模語言,支持面向對象程序開發中的分析、設計各階段。Microsoft的C#語言是開發組件的有力工具。而XML語言具有的自描述性、開放性使它稱為信息交換的強大途徑。
2 監控中心的結構
伴隨著視頻監控系統的發展過程,監控系統的體系結構也在不斷變化。但目前的網絡視頻監控系統監控中心的基本結構大致相同,如圖1所示。監控中心管理控制監控系統的運行,而主控服務器是監控中心的樞紐。它負責管理系統內的用戶、設備,代理數據庫訪問,處理用戶請求,控制消息的處理和轉發,視頻流的調度,對系統運行參數進行配置管理等。
監控中心各部分功能相對獨立,可以單獨開發為組件,通過消息傳遞實現系統功能。

3 主控服務器組件的設計
3.1 功能模塊設計
在進行詳細的領域需求分析之后,一般的,主控服務器按照功能可以分為幾個模塊,如圖2所示。
(1) 消息處理模塊。
主控服務器的核心功能是處理系統內的請求消息,并依據從消息中解析的信息調用相應模塊處理請求。
(2) 用戶管理模塊。
用戶管理模塊管理系統所有的用戶信息,包括驗證用戶、查詢增加刪除用戶、修改用戶密碼、權限等功能。用戶最初登錄需要驗證用戶身份,由用戶管理模塊查詢數據庫并返回是否允許登錄和用戶的權限。用戶管理模塊接收消息處理模塊提交的用戶請求,進行相應處理后,調用數據庫代理模塊寫入數據庫。
(3) 設備管理模塊。
設備管理模塊管理系統所有的設備信息,包括查詢設備信息、增加刪除修改設備、監控設備運行狀態、設備注冊和注銷等功能。在設備運行期間,要定時向主控報告狀態,如果超時未收到報告,主控要問詢,如果超時未回答,則標記故障。

(4) 系統配置模塊。
系統配置模塊在系統第一次運行時對系統運行的參數進行設置,包括各個設備的IP地址、端口號,設備類型等。
(5) 實時預覽模塊。
實時預覽模塊處理用戶請求,協調流媒體服務器,監視墻服務器,DVR等設備建立流傳輸通道,實現對前端監控點的實時在線預覽,并可根據需要隨時將圖像在大屏幕墻上播放。

(6) 錄像回放模塊。
錄像回放模塊可以在本地流媒體服務器上或者遠端DVR上按照用戶條件檢索錄像文件,并能夠回放用戶選定的錄像并可根據需要隨時將圖像在大屏幕墻上播放。
(7) 網絡傳輸模塊。
網絡傳輸模塊接收網絡到達的請求信息并提交給消息處理模塊,還負責收集主控服務器產生的各種控制信息并發送到對應的接收方。對傳輸的控制信息進行加密,解密處理為上層提供一個透明的可信的網絡傳輸環境。
(8) 數據庫代理模塊。
數據庫模塊代理所有對數據庫的訪問操作,查詢、添加、刪除、修改記錄等操作都提交給數據庫代理執行,避免了對數據庫直接訪問可能帶來的破壞和不安全問題。
3.2 主控服務器組件的類設計
在用例、場景分析和模塊設計之后,可以將主控服務器組件用UML語言建模為如下的幾個類:
controlcenter類作為主控服務器組件的實現類。它還聚合了sysconfig,usermanage,devicemanage,messagecenter,vidoeplay,dbproxy,trans等幾個類,分別對應于系統配置、用戶管理、設備管理、消息處理、錄像回放和實時預覽、數據庫代理、網絡傳輸等幾個模塊。類的方法實現了對應的功能。
3.3 數據庫設計
視頻監控系統的數據庫主要用來存儲系統用戶信息和系統設備信息,因而存儲數據量不大,訪問也不很頻繁。系統的用戶、設備信息分別存放在數據庫中的2張表,usermanage和devicemanage。結構如表1,表2所示:

用戶表共3個字段:用戶名username(主鍵,字符串,非空),密碼pwd(字符串,非空),權限role(兩種 admin,operator,非空)。

設備表共10個字段,設備ID device_ID(主鍵,數字,非空),設備名device_name(包括流媒體服務器,監視墻服務器,DVR,主控服務器等,非空),設備類型(字符串,板卡類型,可空),上線時間start_on( 日期時間類型,可空),下線時間end_on(日期時間類型,可空),當前狀態state(online,offline,fail)。設備類型記錄了設備所采用的視頻板卡的制造商和類型,而設備ID的命名則采用XXXYYY的形式,即網號加上本網內設備號的形式。其余字段分別表示設備在監控中心內網或者整個監控系統內的IP地址和端口號。
3.4 消息設計
系統中的所有消息都采用XML描述。XML具有與編程語言、平臺無關,自描述,并且易于擴展等眾多優點,是目前主流的消息描述的方法。
生成XML消息后,提交給網絡傳輸模塊發送。而網絡傳輸模塊將接收到的消息提交給消息處理模塊。消息就是一段XML語句的片段根元素為MESSAGE,還包括以下元素:消息的ID、消息的內容。還可以根據需要增加其他元素。見示例如下:
消息:
<?xml version=\"1.0\" encoding=\"utf-8\"?>
<MESSAGE>
<ID>100</ID>
<TIME>2007.12.10 21:21:00</TIME>
<BODY>aaa</BODY>
</MESSAGE>
當接收方在收到消息后,會完整地讀出這段XML語句,并可以從中依次解析出需要的信息。這個消息的ID是100,消息的時間是2007.12.10 21∶21∶00,消息內容是aaa。如果消息內容還包括多項,則可以包含多個BODY元素。
4 主控服務器組件的實現和測試
組件采用.NET Framework 2.0,C# 語言和Microsoft access數據庫實現。采用ADO.NET技術連接數據庫。XML是把ADO.NET綁定到其他語言中的方式,ADO.NET是為在XML環境中工作而設計的。XML用來在應用程序和數據庫之間傳輸數據,而ADO.NET使用XML進行傳輸。組件的實現有力的證明設計的正確性。
在理想情況下,當編寫好代碼時,代碼會在各種情況下恰好完成預期的工作。可是實際情況卻并非如此。因此從幾個方面來測試組件的工作是否正常。通過在多種語言環境里創建使用組件的程序來測試組件的多語言支持性。通過修改組件方法來發布版本號更高的組件,并用新的組件代替原來組件,根據程序能否正常運行來測試組件的易升級性。
5 結 語
針對目前視頻監控軟件開發中存在的種種問題,提出了視頻監控管理平臺組件化的設計中主控服務器的設計與實現方案。由于采用組件化的設計和XML技術,可以有效地解決重復開發、復用程度低、擴展難的問題。組件的實現和測試證實了設計的正確性,也表明組件具有良好的可復用性,易升級性和擴展性。
參考文獻
[1]Clemens Szyperski.構件化軟件:超越面向對象編程\\.王千祥,譯.北京:電子工業出版社,2004.
[2]斯蒂爾.基于項目的軟件工程:面向對象研究方法\\.賁可榮,譯.北京:機械工業出版社,2002.
[3]曾春平.XML編程從入門到精通\\.北京:希望電子出版社,2002.
[4]唐旭輝,方勇.基于.NET的下一代網絡視頻監控系統的設計\\.微計算機信息,2005,21(1):49-50.
[5]賀星,趙問道,陳惠芳.網絡級聯型視頻監控服務器的設計與實現\\.電視技術,2006(1):90-92.
[6]孔軍,蔣敏.基于IP多播技術的網絡視頻監控系統的研究\\.現代電子技術,2005,27(17):75-77,80.
作者簡介 莫國慶 男,1965年生,副教授。主要研究方向為系統軟件、軟件工程。