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