張建河,楊 靖,劉曉剛,梁克勤
(1.中國石油新疆油田公司準東采油廠,新疆 阜康 831511;
2.中國石油新疆油田公司采油一廠,新疆 克拉瑪依 834000)
近年來,國內(nèi)外對視頻監(jiān)控的需求與應用不斷擴大。首先國外方面,2001年美國“9.11”事件,以及后來的后來西班牙馬德里列車連環(huán)爆炸和倫敦地鐵大爆炸等恐怖襲擊等;其次國內(nèi)方面,2009年新疆“7.5”事件,還有今年三月發(fā)生的昆明火車站暴恐案等等,使全世界范圍內(nèi)對視頻監(jiān)控系統(tǒng)需求空前高漲,各國部署的攝像頭越來越密集,系統(tǒng)也日益龐大。面對復雜交錯的視頻監(jiān)控網(wǎng)絡系統(tǒng),管理和維護難度越來越大,主要面臨如下問題:
(1)管理成本高。城市卡口分布廣,設備種類多樣,系統(tǒng)結構越來越復雜,規(guī)模越來越大,而網(wǎng)絡管理人員較為缺乏。進而直接導致發(fā)現(xiàn)和排除網(wǎng)絡故障的難度呈幾何級增長。
(2)設備可用性要求非常高?;疽笤O備全天24小時不間斷工作。一旦某個節(jié)點出現(xiàn)故障,如不能及時發(fā)現(xiàn)和解決,不僅無法得到用戶需要的卡口信息,還可能造成重大的安全隱患。
(3)設備故障發(fā)現(xiàn)和處理嚴重滯后。當成百上千的節(jié)點中某個出現(xiàn)故障時,管理監(jiān)控人員往往不能第一時間發(fā)現(xiàn)。因此,如何及時發(fā)現(xiàn)問題,準確定位問題,并及時告知管理人員變得尤為重要。
針對以上問題,本文引入基于SNMP的網(wǎng)絡管理工具來構建智能卡口管理系統(tǒng),對卡口的故障信息自動識別和記錄存檔,并可通過短信等方式通知網(wǎng)絡管理人員,從而幫助相關技術人員和值班人員及時有效的發(fā)現(xiàn)并解決卡口監(jiān)控設備在運行中出現(xiàn)的故障和告警等問題。
SNMP網(wǎng)絡管理模型主要由四部分組成:網(wǎng)絡管理站、被管設備、管理信息庫(MIB)和管理協(xié)議(SNMP)(見圖 1)。
圖1 SNMP網(wǎng)絡管理模型
SNMP管理模型具備典型的客戶/服務器體系結構。網(wǎng)絡管理站啟動管理器進程,對網(wǎng)絡設備發(fā)送各種查詢報文,并接收來自被管設備的響應及陷阱(trap)報文,將結果顯示出來,而被管設備上運行著代理進程,負責接收、處理來自網(wǎng)絡管理站的請求報文,然后從設備上其他協(xié)議模塊中取得管理變量的數(shù)值,形成響應報文,反送給管理站。在一些緊急情況下,如接口狀態(tài)發(fā)生改變,呼叫成功等時候,主動通知管理站 (發(fā)送陷阱TRAP報文)。管理對象的信息存放在被管設備的MIB庫中。管理器進程將各種操作維護命令組裝成SNMP報文,發(fā)送到代理進程,代理進程通過操作MIB庫完成這些請求,并且把結果送回給管理器進程,從而完成管理功能。
MIB即每個受管理的SNMP設備都維護包含統(tǒng)計信息和其它數(shù)據(jù)的數(shù)據(jù)庫。網(wǎng)絡管理活動是通過訪問和操作MIB中的管理對象實例來實現(xiàn)的,針對智能卡口主要是視頻服務器設備(DVS)的配置管理。不同設備的功能、結構不一樣,所以監(jiān)視的參數(shù)內(nèi)容、數(shù)據(jù)也不一樣。
1.2.1 網(wǎng)管開發(fā)包
SNMP++是為網(wǎng)絡管理應用程序開發(fā)者提供的具有SNMP服務的一套C++類的集合。它具有基于面向對象模型建立的SNMP應用程序接口,但SNMP++并不是現(xiàn)有SNMP引擎的擴充和封裝,為了效率和方便移植,它只用到了現(xiàn)有SNMP庫里面的一部分。SNMP++的目的就是提供強大靈活的功能,把面向對象的優(yōu)點帶到了網(wǎng)絡編程中。
1.2.2 開發(fā)工具
由于使用了WinNet網(wǎng)絡編程,基于Windows平臺,開發(fā)工具采用VC++6.0,同時利用飛信API工具實現(xiàn)免費故障短信信息發(fā)送等功能。與傳統(tǒng)的短信報警平臺相比,傳統(tǒng)模式需要購置短信模塊,發(fā)送報警短信需要運營商收費,而采用飛信API工具無需增加硬件投資,發(fā)送短信免費,具有很好的經(jīng)濟實用性。
系統(tǒng)中存在以下3個角色。下面對各類角色的任務設計則可進行分別描述。
(1)普通用戶:用戶可以根據(jù)自己的賬號登陸到系統(tǒng)中。在線查看監(jiān)控卡口SNMP狀態(tài)信息??梢詫€人信息進行修改和維護等操作。
(2)維修工程師:系統(tǒng)通過SNMP狀態(tài)檢查返回故障信息,并發(fā)送短信給現(xiàn)場維修工程師。同時該角色繼承普通用戶的功能可以查看和修改個人信息,查詢系統(tǒng)各個監(jiān)控卡口SNMP狀態(tài)故障信息。
(3)管理員:除了繼承普通用戶的功能外,管理員還可以對系統(tǒng)進行維護,進行用戶角色權限的分配工作。
系統(tǒng)角色建模如圖2所示。通過對系統(tǒng)角色功能用例分析,系統(tǒng)主要功能模塊包括6個,發(fā)送故障短信,個人信息管理,系統(tǒng)查詢,確認故障處理,角色權限維護和系統(tǒng)維護功能。針對不同的用戶角色,系統(tǒng)中存在不同的操作及權限。
圖2 系統(tǒng)角色建模圖
本文研發(fā)系統(tǒng)的技術架構采用包和子系統(tǒng)分層。系統(tǒng)架構建模如圖3所示。系統(tǒng)架構的分層主要由用戶界面層、業(yè)務服務層、業(yè)務對象層、系統(tǒng)層、中間件、C++和基本復用層組成。業(yè)務服務層包括發(fā)送故障短信、系統(tǒng)查詢、權限修改、故障確認、系統(tǒng)維護,業(yè)務對象層包括個人信息表,設備信息表,還包括普通用戶、管理員和工程師。系統(tǒng)層包括支持訪問系統(tǒng)數(shù)據(jù)庫的類。中間件層支持對面向對象的數(shù)據(jù)庫系統(tǒng)訪問?;緩陀冒ㄖС帜J降念悺?/p>
圖3 技術架構圖
本系統(tǒng)三個主要角色是普通用戶、維修工程師和管理員,他們在各自職責范圍內(nèi)實現(xiàn)不同的功能。限于篇幅,本節(jié)主要介紹SNMP狀態(tài)查詢功能和故障短信發(fā)送2部分功能實現(xiàn)內(nèi)容。
SNMP++是以一套C++類作為基石的。它包含了對象描述符(Oid)類、變量綁定(Vb)類、協(xié)議數(shù)據(jù)單元(Pdu)類、Snmp 類。 在利用SNMP++開發(fā)實際應用時,首先應開啟Snmp類的socket。然后,準備好SNMP通信基本參數(shù),如設置SNMP協(xié)議版本、通信端口、共同體名等,如果沒有對這些基本參數(shù)進行設置,程序采用默認參數(shù):SNMP協(xié)議版本為 1,端口為161,共同體名為public。接著,根據(jù)網(wǎng)絡管理目標,設置代理IP地址,要獲取或設置的網(wǎng)絡管理信息。創(chuàng)建一個SNMP會話。如果會話創(chuàng)建成功,開始snmp相關操作,如get操作、set操作、get_next操作。如果操作成功,則從變量綁定中獲取相應的網(wǎng)絡管理信息。最后,關閉Snmp socket,釋放資源。
SNMP讀取設備狀態(tài)信息程序活動圖如圖4。
圖4 SNMP讀取設備狀態(tài)信息程序活動圖
SNMP與郵件系統(tǒng)、GSM短信貓、飛信API等系統(tǒng)結合實現(xiàn)報警功能。報警系統(tǒng)基于SNMP獲取數(shù)據(jù),首先配置監(jiān)控屬性如節(jié)點狀態(tài)、接口狀態(tài)、故障信息等;其次配置觸發(fā)的動作。通過以上配置,當設備節(jié)點出現(xiàn)異常時,可第一時間短信通知網(wǎng)管人員。對于上述配置,首先要將報警信息保存為Log,然后通過郵件或短信方式發(fā)送報警信息。下面利用C++編寫基于WinInet網(wǎng)絡訪問飛信開發(fā)HTTP協(xié)議API接口,此接口支持HTTPS,可避免在網(wǎng)絡傳輸中泄露數(shù)據(jù)。飛信API類圖如圖5所示。
圖5 飛信API類圖
可以看出通過調(diào)用 CFeiXin::FX_SendMessage("飛信登錄用戶名","飛信登錄密碼","手機號","短信內(nèi)容")方法,可以很方便地發(fā)送短信信息到維護工程師用戶的手機上。
圖6是FX_SendMessage方法的程序活動圖。
圖6 飛信API發(fā)送短消息程序活動圖
由SNMP與數(shù)據(jù)庫系統(tǒng)結合,將收集的數(shù)據(jù)存儲于數(shù)據(jù)庫,再根據(jù)數(shù)據(jù)庫系統(tǒng)的相關功能,如備份數(shù)據(jù),恢復數(shù)據(jù)、定制視圖、SQL語句定制查詢等功能,比如車輛信息查詢、卡口交通信息,車流信息,故障報警處理等。
隨著網(wǎng)絡技術的發(fā)展,SNMP成為管理網(wǎng)絡設備的簡單而有效的方法。本系統(tǒng)采用面向對象設計方法,深入淺出。系統(tǒng)充分利用了SNMP實時檢查設備故障信息,及時發(fā)送短消息給維護工程師,保證故障得及時有效的解決,同時由于采用飛信API的方式發(fā)送故障短信,發(fā)送消息免費,相比傳統(tǒng)SMS模塊方式具有較好的經(jīng)濟使用價值。
[1]蔣馨.淺析國外智能視頻監(jiān)控技術的發(fā)展及應用[J].國際博覽,2011(10):105-108.
[2]王朋武.WinSNMPAPI規(guī)范[R].北京:北京佳合通信技術公司,2002.
[3]Banker Kim, Mellquist Peter E.SNMP++, Connexions, The Interoperability Report[R].1995.
[4]劉雪飛,吳伯橋,凌濤,等.基于SNMP++網(wǎng)絡管理軟件的編程實現(xiàn)[J].信息安全與技術,2013(5):63-65.
[5]王金祥.淺析智能視頻監(jiān)控技術[J].山東工業(yè)技術,2014(4):45-46.
[6]岑賢道,安常青.網(wǎng)絡管理協(xié)議及應用開發(fā)[M].北京:清華大學出版社,1998.
[7]劉寶華,田亞麗,陳端迎,等.分布式網(wǎng)絡管理系統(tǒng)中SNMP的開發(fā)與實現(xiàn)[J].軟件,2012(6):135-138.
[8]李俊,熊文龍,宮浩然.SNMP 原理及安全性分析[J].交通與計算機,2003(1):16-19.
[9]梁家明.大型局域網(wǎng)管理的探討[J].廣西大學學報:自然科學版,2004(2):25-28.
[10]趙?。赟NMP網(wǎng)絡管理機制及其應用[J].中國民航學院學報,2003(2):94-98.