??VMS系統(tǒng)的開放性和擴(kuò)展性特性非常適合使用SOA(面向服務(wù)的架構(gòu))方法來進(jìn)行設(shè)計。
??服務(wù)作為物理上獨立無關(guān)的軟件程序而存在,每個服務(wù)被賦予其自身獨特的功能上下文環(huán)境,并由一系列與該環(huán)境相關(guān)的能力所組成。服務(wù)提供的能力通過服務(wù)接口(服務(wù)合約)來表達(dá)。
??根據(jù)服務(wù)的可復(fù)用性,可編排性,可自治,可組合性等特點,在設(shè)計服務(wù)時宜使用自頂向下的設(shè)計思路,在設(shè)計模型時可先設(shè)計頂層的服務(wù),確定頂層的服務(wù)邊界后,再逐層設(shè)計下層的子服務(wù)。
??在服務(wù)類型上,宜將服務(wù)分為實體服務(wù),任務(wù)服務(wù),工具服務(wù)三種類型 。
??VMS中涉及到媒體、元數(shù)據(jù)、系統(tǒng)管理數(shù)據(jù)(用戶,權(quán)限)等實體的服務(wù)可歸類為實體服務(wù);媒體會話,任務(wù)調(diào)度之類與控制器相關(guān)的服務(wù)可歸類于任務(wù)服務(wù);網(wǎng)絡(luò)傳輸,安全加密,日志等基礎(chǔ)服務(wù)可歸類于工具服務(wù)。
??使用實體服務(wù),任務(wù)服務(wù),工具服務(wù)三種服務(wù)模型可構(gòu)建邏輯服務(wù)抽象層,如圖 1所示。
??使用SOA進(jìn)行VMS的設(shè)計應(yīng)首先聚焦于視頻監(jiān)控系統(tǒng)的業(yè)務(wù)。以視頻數(shù)據(jù)為核心,一個視頻監(jiān)控系統(tǒng)的基礎(chǔ)結(jié)構(gòu)如圖 2所示:
??ONVIF作為基于Web service技術(shù)標(biāo)準(zhǔn)制定的安防設(shè)備開放操作接口,囊括了圖 2中包含的所有功能。其服務(wù)設(shè)計思想可作為VMS設(shè)計時的參考。
??分析一下ONVIF定義的服務(wù),可歸為如下幾類:
??VMS中,將視頻流,錄像,設(shè)備參數(shù),設(shè)備等視為不同的邏輯實體對象,系統(tǒng)功能即可視為對這些實體對象的操作。借鑒在電信管理網(wǎng)中使用的CMIP (Common Management Information Protocol,通用管理信息協(xié)議)所支持的CMIS服務(wù),我們可在VMS中定義六種抽象出來的服務(wù)操作原語:
??自martin fowler發(fā)表了那篇著名的微服務(wù)博客文章之后,微服務(wù)架構(gòu)在近幾年間在軟件界著實火了一把,在國內(nèi)軟件界似乎出現(xiàn)了一種不談微服務(wù)的軟件架構(gòu)設(shè)計就不夠高大上的現(xiàn)象。其實仔細(xì)剖析微服務(wù)的模式,我個人更認(rèn)為微服務(wù)是SOA在實現(xiàn)層次的細(xì)化和擴(kuò)充。微服務(wù)在分解服務(wù)為更細(xì)粒度時,同時也為分解的服務(wù)間關(guān)系帶來更多的復(fù)雜性。因此在使用面向服務(wù)的思路來實施VMS時也要根據(jù)實際場景和規(guī)模來選擇合適的方案。
4.1 服務(wù)要多大??在前面的軟件架構(gòu)中,設(shè)備接入,實時媒體流會話控制服務(wù),錄像服務(wù)這三個系統(tǒng)中的核心服務(wù)在部署上,每個服務(wù)建議設(shè)計為服務(wù)集群(最簡單的方式是在一堆服務(wù)實例前加一個負(fù)載均衡器),可根據(jù)項目的實際規(guī)模進(jìn)行配置伸縮。
4.2 數(shù)據(jù)如何存儲??VMS中,我將數(shù)據(jù)分為控制面數(shù)據(jù)與媒體數(shù)據(jù),視頻流這些媒體數(shù)據(jù)在規(guī)模大時可考慮選型如HDFS這樣的開源分布式存儲系統(tǒng),在規(guī)模小時可使用單獨的磁陣即可。
??對于控制面的數(shù)據(jù),如設(shè)備信息,媒體配置信息等數(shù)據(jù),由于會被多個服務(wù)實例訪問,可考慮使用ElasticSearch, etcd這樣分布式協(xié)同系統(tǒng)。
??VMS中,我建議服務(wù)原語以Rest Api的形式定義,這樣在服務(wù)實例之間基于HTTP的restful接口就可實現(xiàn)服務(wù)原語在服務(wù)間的互操作(比如使用spring cloud作為服務(wù)實現(xiàn)框架)。
4.4 如何選擇消息服務(wù)器??同樣,消息服務(wù)器根據(jù)項目的規(guī)模來確定,在系統(tǒng)規(guī)模較小的場景下,使用輕量級的消息服務(wù)器(如使用redis就可以),系統(tǒng)規(guī)模較大的場景下,可以考慮kafka這樣的消息集群服務(wù)。
4.5 如何選擇流媒體中間件??VMS中涉及到RTSP,SDP,SIP,RTP/RTCP等多種流媒體相關(guān)協(xié)議,幸運(yùn)的是,現(xiàn)在github上各種語言的流媒體中間件都可以找到,如果實在要我推薦,在我用過的產(chǎn)品中,我覺得gstreamer就很好。
4.6 基于Web的視頻瀏覽傳統(tǒng)的VMS中,在瀏覽器中對視頻進(jìn)行瀏覽需要借助自己編寫的控件,隨著WebRTC技術(shù)的出現(xiàn),主流瀏覽器已經(jīng)逐步支持WebRTC的規(guī)范,因而使用WebRTC實現(xiàn)免插件的視頻瀏覽成為可能。需要注意,目前瀏覽器的支持視頻編碼格式有限,在服務(wù)端可能要轉(zhuǎn)碼,另外也需要構(gòu)建WebRTC的服務(wù)端作為視頻源。
當(dāng)前名稱:視頻管理軟件技術(shù)分析報告(四)--基于SOA的VMS軟件架構(gòu)設(shè)計-創(chuàng)新互聯(lián)
文章地址:http://aaarwkj.com/article14/ccdode.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、網(wǎng)站排名、域名注冊、營銷型網(wǎng)站建設(shè)、云服務(wù)器、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容