筆者親身經歷了BstarCenter網絡視頻監(jiān)控平臺初期的傳統(tǒng)編碼方式,體會過開發(fā)效率低、無法適應客戶需求變更的痛苦;也享受了針對困難進行變革,轉變思路,優(yōu)化開發(fā)模式,整合開發(fā)資源的歷練?;仡^總結的同時,撰寫此文,意在總結藍色星際BstarCenter網絡視頻監(jiān)控平臺軟件在發(fā)展過程中的經驗,同時從安防監(jiān)控平臺中間件開發(fā)的角度解析視頻監(jiān)控平臺的特點。
中間件+分布式架構的技術實現(xiàn)是當今軟件技術的主流方向。介于操作系統(tǒng)底層硬件和應用程序之前的中間件層可以最大程度地簡化開發(fā)過程,提高開發(fā)效率,是軟件市場細分、分工合作的必然結果。中間件技術的興起,使得以業(yè)務為導向,快速構建軟件應用平臺成為可能。
從技術角度分析,安防監(jiān)控平臺發(fā)展的戰(zhàn)略重點是將技術平臺和產品平臺分離,從而降低軟件開發(fā)人員的流失風險和開發(fā)成本,優(yōu)化資源配置。從通俗意義上講,技術平臺就是安防監(jiān)控平臺的基礎部件,產品平臺是在技術平臺上搭建的行業(yè)應用。
用戶需求的迅速響應,應用方案的快捷定位等等這些產品平臺層面涉及的問題,除考驗著安防廠商對行業(yè)的理解以及公司內部各部門間的運作模式外,在很大程度上取決于技術部門搭建技術平臺的高度和靈活度。
同時,安防是一個立體性很強的行業(yè),其中涉及了視頻、語音、網絡、存儲等等多方面的技術,每一個技術環(huán)節(jié)在任何一個行業(yè)應用中都可能被深度挖掘或放大,這些是對安防廠商技術平臺層面最大的考驗。鑒于上述問題,綜合開發(fā)成本的考慮和大型軟件工程開發(fā)模式,安防監(jiān)控平臺中間件技術的引入迫在眉睫。
BstarCenter網絡視頻監(jiān)控平臺在開發(fā)過程中,充分認識到了上述可能遇到的問題,針對安防監(jiān)控平臺應用,對系統(tǒng)作以下分析同時保證在現(xiàn)有系統(tǒng)中實現(xiàn)。[nextpage]
分布式面向對象的系統(tǒng)結構特點
針對安防監(jiān)控軟件的發(fā)展特點,分布式和面向對象兩大特點可以大幅提高方案靈活性、擴展性;降低開發(fā)過程消耗的時間、難度;同時,降低不必要的復雜性,使平臺更易于學習和使用,降低開發(fā)成本。
分布各個對象間采用RPC的調用方式
由于中間件需要屏蔽分布環(huán)境中異步的操作系統(tǒng)和網絡協(xié)議,必須能夠提供一種分布環(huán)境下的通訊服務。RPC(遠程過程調用協(xié)議)是一種廣泛使用的分布式應用程序處理方法,實現(xiàn)人員在進行對象間通訊以完成某些功能時,就像調用本地實現(xiàn)的方法一樣,通過RPC的方式調用目標模塊的接口,目標接口通過返回值或拋出異常的方式反饋執(zhí)行結果。BstarCenter使用的RPC調用方法底層支持TCP和UDP協(xié)議,保證實施的靈活性。除了支持普通同步調用的方式外,還支持異步調用(AMI)、異步分發(fā)(AMD)以及廣播服務的功能,使平臺的命令控制、報警轉發(fā)、新功能發(fā)布等擁有靈活的應用空間。
抽象出文件讀取模塊、數(shù)據(jù)庫訪問模塊、視頻轉發(fā)模塊、認證模塊、資源訪問模塊、設備控制模塊等。
針對安防監(jiān)控平臺的應用,架構設計已經被多次討論,很多同行已經對其進行過分析,并形成了比較成熟的方案。各個主流廠商雖有細微差別,但基本都具備以上幾大模塊,筆者在此就不做詳述(具體如圖1所示)。
模塊劃分結構圖
[nextpage]
1.提供在網絡帶寬、內存使用和CPU開銷方面都很高效地實現(xiàn)和應用
BstarCenter在網絡底層、內存使用和CPU開銷方面進行深層次的優(yōu)化,因為隨著系統(tǒng)性能的提高和負載的增大,以上三個環(huán)節(jié)將是限制安防監(jiān)控平臺性能的主要因素。同時,在帶寬占用、內存及CPU的使用上,提供接口可以實時地進行跟蹤輸出,以便于調試和問題定位。
2.針對分布式特點提供靈活的防火墻解決方案
BstarCenter使用的通訊協(xié)議支持雙向連接的建立方式,配合前端設備的支持,可以保證客戶端與服務器或設備與服務器對防火墻的穿透方案。與此同時,BstarCenter對端口的使用可以支持動態(tài)、靜態(tài)、區(qū)間范圍分配三種方式,做到靈活配合客戶網絡環(huán)境防火墻設置。
3.提供一種內建安全性的實現(xiàn),以適應不安全的網絡環(huán)境
隨著行業(yè)客戶要求的提高,重點保密行業(yè)對安防涉足和以公網為媒介的監(jiān)控要求,數(shù)據(jù)安全性已經成為安防監(jiān)控平臺下個階段的重要環(huán)節(jié)。BstarCenter提供了針對SSL協(xié)議的支持。
4.系統(tǒng)實現(xiàn)與平臺無關
由于客戶要求的多樣化,以及第三方設備廠商技術能力的差異性,跨平臺的系統(tǒng)對其進行有效的保證。多平臺的支持可以在以下幾個方面獲得較高收益:SDK接入便捷性、WEB形式應用軟件的迅速發(fā)布、針對不同行業(yè)方案實施的保證、針對客戶特殊要求而進行的平臺整合等。
5.提供升級服務模塊
針對安防行業(yè)用戶需求變化快、設備更新快的特點,提供升級模塊功能,保證升級包的檢測和自動化執(zhí)行。
為了保證BstarCenter網絡視頻監(jiān)控平臺技術的先進性,及時更新使用最新的底層技術(比如select模型到epoll/IOCP模型的轉變),我們也選擇性地使用了第三方底層架構中間件,并根據(jù)監(jiān)控行業(yè)的特點進行定制和刪減。在其上層完善出BstarCenter監(jiān)控平臺中間件基礎模塊。