新聞中心

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

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

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

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

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

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

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

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

  分層軟件設(shè)計(jì)技術(shù):從組件到服務(wù)

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

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

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

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

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

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

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

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

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

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

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


評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉