新聞中心

EEPW首頁 > 專題 > 視頻監(jiān)控管理平臺軟件開發(fā)的幾點啟示(上)

視頻監(jiān)控管理平臺軟件開發(fā)的幾點啟示(上)

作者: 時間:2011-08-09 來源:安防知識網(wǎng) 收藏
        支持不同操作系統(tǒng)和硬件的分布式局部自治系統(tǒng)

  在開發(fā)和設計安防監(jiān)控平臺的早期,就要選擇和確定平臺的一些基礎架構。是一個集中式的系統(tǒng)?還是分布式系統(tǒng)?是只在Windows上開發(fā)?還是要支持Linux?本文不討論集中式系統(tǒng)和分布式系統(tǒng)、Windows和Linux熟優(yōu)熟劣。但在長期的實踐中,可以認識到,基于Linux服務器的分布式系統(tǒng)是一個能滿足安防越來越大的聯(lián)網(wǎng)規(guī)模、越來越多的異質設備接入等復雜需求的系統(tǒng)。最終根據(jù)用戶需求,將系統(tǒng)架構確定為可以支持不同操作系統(tǒng)和硬件的分布式局部自治系統(tǒng)。

  具備局部自治功能的分布式系統(tǒng)中,每個局部都是一個獨立的子系統(tǒng),其使用和穩(wěn)定性不受其它子系統(tǒng)的約束和影響,同時這個子系統(tǒng)又能以合適的組網(wǎng)方式聯(lián)結到上級系統(tǒng),這樣就形成了一個更大規(guī)模的系統(tǒng)。其實,這里面的原理跟互聯(lián)網(wǎng)是類似的,因此就提出了“構筑視頻互聯(lián)網(wǎng)” 的觀點。

  互聯(lián)網(wǎng)的一個重要基礎是TCP/IP協(xié)議簇,類似的,在構筑視頻互聯(lián)網(wǎng)時,也是需要聯(lián)網(wǎng)協(xié)議的。在平臺軟件的聯(lián)網(wǎng)協(xié)議中,一個基本的概念是干線,干線和干線管理是平臺軟件重要的內容之一,也是平臺軟件區(qū)別于其它的平臺的特色內容之一。

  干線有模擬干線和數(shù)字干線之分,模擬干線是節(jié)點與節(jié)點之間的視頻連接線,數(shù)字干線是視頻服務器之間建立聯(lián)系的數(shù)字通道。通過干線,若干臺PVG可以建立各種網(wǎng)絡拓撲結構,為多級數(shù)字聯(lián)網(wǎng)、網(wǎng)安全和網(wǎng)絡帶寬管理提供了有力的保障。

  干線管理的內容有:干線路由選擇、復用、搶占及搶占后處理和預留。干線路由選擇是指在一個節(jié)點上調用其它節(jié)點的某路圖像的時候,系統(tǒng)將采用什么樣的算法來選擇最應該經(jīng)過哪些節(jié)點以及哪些干線。干線的復用是指在多個用戶在調用同一個攝像機時,后面的用戶應該復用已經(jīng)使用過的干線,而不應該另外再使用一條新的干線。干線的搶占是指當所有的干線都有用戶在使用時,系統(tǒng)將采用什么樣的算法來搶占新的干線,搶占后處理是指搶占后要友好地通知以前占用該干線的所有用戶。干線的預留是指某些干線在配置的時候就專門預留給某些節(jié)點,只有這些節(jié)點上的用戶才能使用預留的干線。預留干線一般應用在特定的場合。

  分層軟件設計技術:從組件到服務

  在一套大型軟件的生命過程中,必然會有新需求不斷地涌現(xiàn)。有的需求會對原系統(tǒng)的沖擊非常大,甚至導致系統(tǒng)的一些關鍵代碼重新開發(fā)。如何面對這些大型軟件設計和開發(fā)過程的通用難題,始終是系統(tǒng)設計的重點和難點。

  為了解決這些問題,在系統(tǒng)的設計中,采用了軟件分層設計策略,并且逐步從組件化過渡到服務化。

  主要的軟件層有:
  · 基礎庫層:解決跨平臺及一些基本的與具體應用無關的軟件問題;
  · 網(wǎng)絡通信層:解決異質網(wǎng)絡、異質協(xié)議聯(lián)網(wǎng)問題;
  · 數(shù)據(jù)層:解決軟件配置,持久化問題;
  · 業(yè)務組件層:與業(yè)務和具體接入設備相關的功能組件,組件數(shù)量越來越多;
  · SDK層:提供服務和接口給應用程序、做二次開發(fā);
  · 綜合應用層:綜合應用和功能界面。 
 
         POSA(Pluggable Objects and Services Architecture)正是基于這樣的理念設計的一套軟件架構。在POSA架構的世界里,一切易變的、需要進化的軟件主要是組件。新需求、新設備的接入都體現(xiàn)為實現(xiàn)一個或一組新的組件,使用POSA組件技術,PVG做到了新需求的加入對開發(fā)人員僅僅是相加的關系。

  由于組件和它們上下軟件層之間的二進制耦合太緊密,一個組件的崩潰會引發(fā)整個系統(tǒng)的崩潰,導致整個系統(tǒng)的穩(wěn)定性下降。解決這個問題有兩個辦法,一是手動地把不穩(wěn)定的組件隔離出來,專門為這類組件另外開一個進程,另外一個辦法是自動隔離每一個組件,一切以服務為中心,用服務代替組件,這也是軟件界流行的SOA的理念。在POSA架構下,開發(fā)軟件變得更簡單,各個服務之間使用標準的松耦合通信協(xié)議進行通信,徹底解決了二進制耦合問題,全系統(tǒng)穩(wěn)定性也不會隨著業(yè)務的增加變成乘法關系,由于相同服務可用分布式多重部署,全系統(tǒng)可用性完全不會隨著系統(tǒng)的復雜性而有所下降。在POSA里,提供了一種標準的描述服務間通信契約的方式,統(tǒng)一按照此契約編寫通信程序。同時,為了提高開發(fā)效率,POSA提供了一些自動工具來搭建服務程序的框架代碼。

  POSA的組件服務化技術,為未來搭建云存儲、云計算平臺提供了堅實的基礎。使用POSA,“視頻互聯(lián)網(wǎng)”、“連接城市中一切可管理的對象”等設想變得清晰起來,不少廠家把這些理想變?yōu)楝F(xiàn)實。

  完善的開發(fā)管理流程

  好的結果跟好的過程是分不開的,要開發(fā)出好的平臺軟件產(chǎn)品,需要有完善的開發(fā)管理流程。筆者總結了以下幾要點:
  · 引入適合每個小組的敏捷軟件開發(fā)流程;
  · 處方式應用文檔化的流程;
  · 主管負責的參與民主制;
  · 合理的信息系統(tǒng)支撐。

  為了滿足用戶需求,適應針對市場的快速反應,我們開發(fā)團隊中的各個小組基本都采用了迭代式的敏捷軟件開發(fā)方法。

  處方式應用文檔化的流程是指針對于不同的開發(fā)小組、不同的項目、不同的階段,需要使用不同的文檔化的流程,就像醫(yī)生開處方,需要因人而異、因時而異。

  主管負責的參與民主制是指在開發(fā)過程中,小組主管需要在跟開發(fā)人員溝通的過程中,要善于且敢于做出相應的決定,需要做決定的時候不要拖延和推遲。

  所有這些基于流程的開發(fā)工作,都需要合理的信息系統(tǒng)來支撐。
 


評論


相關推薦

技術專區(qū)

關閉