經(jīng)玉健
(南京國電南自軌道交通工程有限公司,江蘇 南京 210032)
地鐵綜合監(jiān)控系統(tǒng)(Integrated Supervisory Control System,ISCS)作為一個高度集成的綜合自動化監(jiān)控系統(tǒng),主要是通過集成地鐵多個主要弱電系統(tǒng),形成統(tǒng)一的工業(yè)級監(jiān)控層軟硬件平臺。 該系統(tǒng)采用穩(wěn)定、可靠的工業(yè)級網(wǎng)絡(luò)架構(gòu)為載體,在其上搭建模塊式、類似積木結(jié)構(gòu)的多層軟件開發(fā)平臺定制應(yīng)用軟件,采用通用開放的硬件接口及軟件通信協(xié)議,與各接入子系統(tǒng)實現(xiàn)信息交換,最終實現(xiàn)對相關(guān)機電設(shè)備的集中監(jiān)控功能和各系統(tǒng)之間的信息互通、信息共享和協(xié)調(diào)互動功能[1]。
目前,綜合監(jiān)控系統(tǒng)與其集成/互聯(lián)的子系統(tǒng)數(shù)據(jù)交互,其數(shù)據(jù)接口大多使用可靠、穩(wěn)定的工業(yè)規(guī)約,唯有視頻監(jiān)控系統(tǒng)(Closed Circuit Television,CCTV)例外。 CCTV 系統(tǒng)通常在各車站站臺、站廳、出入口、換乘通道等地點設(shè)置攝像頭,對采集的視頻數(shù)據(jù)進行存儲,響應(yīng)操作員的命令,提供視頻服務(wù)和云臺控制等功能,擔負著地鐵運營管理中的安防重任。
視頻監(jiān)控系統(tǒng)的數(shù)據(jù)內(nèi)容包括工業(yè)監(jiān)控常見的視頻設(shè)備狀態(tài)的實時數(shù)據(jù)更新、用戶對某個攝像設(shè)備(球機、云臺攝像機)控制需求,更多的是某種壓縮格式多媒體視頻數(shù)據(jù)。 眾所周知,工業(yè)監(jiān)控網(wǎng)絡(luò)最基本的要求就是可靠性和實時性[2],監(jiān)控集成平臺的集成商也是根據(jù)這樣要求來選取骨干網(wǎng)節(jié)點交換設(shè)備的,一旦海量的視頻數(shù)據(jù)涌進綜合監(jiān)控網(wǎng)絡(luò),不僅不能保證CCTV 視頻畫面的播放,更危險的是可能會影響其他眾多子系統(tǒng)的正常工業(yè)監(jiān)控功能,這就需要綜合監(jiān)控系統(tǒng)以一種更巧妙的方式接入視頻監(jiān)控子系統(tǒng)。
目前,各地綜合監(jiān)控系統(tǒng)接入CCTV 系統(tǒng)的方式大都是由綜合監(jiān)控軟件平臺廠商封裝CCTV 系統(tǒng)供應(yīng)商提供的SDK 開發(fā)包,調(diào)用各種SDK 接口功能函數(shù)來完成與CCTV 子系統(tǒng)的數(shù)據(jù)交互。 開發(fā)包為視頻監(jiān)控提供的商業(yè)軟件,多數(shù)只能在Windows 下使用,而綜合監(jiān)控系統(tǒng)更多使用Unix/Linux 服務(wù)器,即使使用Windows,也容易被系統(tǒng)庫的版本問題所困擾。 視頻碼流的解碼播放工作也會給非視頻專業(yè)的綜合監(jiān)控平臺軟件帶來相當?shù)拈_發(fā)成本。 更關(guān)鍵的問題是隨著攝像數(shù)據(jù)采集技術(shù)的飛速發(fā)展,視頻畫面分辨率越來越高,數(shù)據(jù)量越來越大,其接入綜合監(jiān)控系統(tǒng)一方面占用了大量網(wǎng)絡(luò)帶寬,嚴重影響其他系統(tǒng)的數(shù)據(jù)通信,另一方面大量視頻壓縮數(shù)據(jù)的解碼計算也給系統(tǒng)服務(wù)器帶來了非常大的負擔[3]。 同時,筆者所在的公司系統(tǒng)平臺客戶端瀏覽器推薦使用的是Chrome,幾乎沒有CCTV系統(tǒng)供應(yīng)商能提供基于Chrome 的CCTV 系統(tǒng)插件,這就給封裝帶來了更大的困難。
為了克服上述問題,文章設(shè)計了本方案,利用視頻監(jiān)控的數(shù)據(jù)特點將CCTV 數(shù)據(jù)平衡分成兩路通道來交互,所有實時控制數(shù)據(jù)流都與綜合監(jiān)控其他子系統(tǒng)一樣,直接與其服務(wù)器模塊交互,進入綜合監(jiān)控系統(tǒng)網(wǎng)絡(luò);而工作站可以獨立使用專用通道(如增配專用網(wǎng)卡)來實現(xiàn)多媒體流實時播放。
前文提到,視頻監(jiān)控系統(tǒng)按數(shù)據(jù)格式分有兩種數(shù)據(jù)與綜合監(jiān)控交互往來。 一種是系統(tǒng)設(shè)備實時狀態(tài)數(shù)據(jù)和用戶的控制命令,這類數(shù)據(jù)其實與其他工業(yè)自動控制系統(tǒng)并無不同,要求實時更新、可靠性高;而另一類則是高清視頻數(shù)據(jù),這類數(shù)據(jù)體量大,對網(wǎng)絡(luò)設(shè)備數(shù)據(jù)處理能力要求極高,但對實時性和數(shù)據(jù)包的可靠性要求不高,更像是商業(yè)軟件數(shù)據(jù),這其實與工業(yè)監(jiān)控系統(tǒng)的特點是矛盾的。
為了解決這個矛盾,本研究設(shè)計了SVC 三角平衡結(jié)構(gòu)來實現(xiàn)地鐵綜合監(jiān)控系統(tǒng)對于CCTV 視頻監(jiān)控系統(tǒng)的集成。 綜合監(jiān)控系統(tǒng)提供兩個數(shù)據(jù)端口分別接入CCTV 系統(tǒng)的兩種類型數(shù)據(jù)。 兩個數(shù)據(jù)端口分別位于系統(tǒng)服務(wù)器和系統(tǒng)工作站。 服務(wù)器端接口與CCTV 通信用于交互實時性、可靠性要求較高的實時設(shè)備狀態(tài)以及用戶控制命令數(shù)據(jù),這個通道的數(shù)據(jù)是雙向的。 另一個接口位于綜合監(jiān)控系統(tǒng)工作站上,專門用于接收處理高清視頻數(shù)據(jù)。 其工作原理如圖1 所示。
圖1 SVC 平衡架構(gòu)
CCTV 子系統(tǒng)單純地擔當起視頻數(shù)據(jù)采集、控制終端以及數(shù)據(jù)存儲的角色,它需要同時維護與綜合監(jiān)控服務(wù)器的控制流數(shù)據(jù)通道以及與綜合架空客戶端的多媒體流數(shù)據(jù)通道。 服務(wù)器端模塊使用跟其余工業(yè)監(jiān)控子系統(tǒng)相同的通信模塊(通信模式和原理相同,僅項目具體數(shù)據(jù)點不同),實時更新視頻設(shè)備狀態(tài),實時下發(fā)用戶請求,并準確記錄操作日志和歷史數(shù)據(jù)。
大數(shù)據(jù)量的數(shù)據(jù)解碼計算以及顯示任務(wù)由綜合監(jiān)控客戶端(調(diào)度工作站)完成。 隨著瀏覽器性能的提高,前端腳本畫面的豐富,越來越多的綜合監(jiān)控系統(tǒng)使用了Browser-Server(瀏覽器-服務(wù)器)架構(gòu),這就給本研究設(shè)計SVC 框架提供了技術(shù)便利。 瀏覽器腳本如Javascript 語言等可靈活地兼容各種瀏覽器視頻插件以實現(xiàn)所有包括對多媒體服務(wù)的請求以及對視頻格式數(shù)據(jù)的處理計算等復(fù)雜的計算工作。 而綜合監(jiān)控服務(wù)器與客戶端之間的數(shù)據(jù)交流則通過系統(tǒng)內(nèi)部數(shù)據(jù)傳輸機制來保證。
SVC 即dataSource (數(shù)據(jù)源) - View (畫面) -Controller(控制器)。
dataSource 即CCTV 子系統(tǒng),它被單純地當做視頻數(shù)據(jù)源以及控制命令執(zhí)行終端。
View 即綜合監(jiān)控系統(tǒng)客戶端(客戶端瀏覽器+視頻播放器插件無疑是最通用、最合適的視頻顯示客戶端),它承擔著視頻數(shù)據(jù)的接收、解碼計算、視頻數(shù)據(jù)顯示以及控制命令的輸入、接收等任務(wù)。
綜合監(jiān)控系統(tǒng)的服務(wù)器群組毋庸置疑是整個框架的Controller 角色,為了實現(xiàn)各子系統(tǒng)之間的數(shù)據(jù)共享和互動,重要的控制信息和命令下達必須由綜合監(jiān)控系統(tǒng)這個心臟來完成。
用戶通過ISCS 客戶端用戶界面使用CCTV 子系統(tǒng),相應(yīng)的視頻請求或操控命令由ISCS 客戶端發(fā)送給ISCS 服務(wù)器,ISCS 記錄請求或命令,同時將該請求或命令通過ISCS?CCTV 之間的自定義工業(yè)規(guī)約發(fā)送給CCTV,由CCTV 返回結(jié)果。
這里結(jié)果分為兩類。 一類是視頻信息請求:CCTV向ISCS Server 返回相應(yīng)的實時流媒體服務(wù)地址(其服務(wù)協(xié)議取決于CCTV 內(nèi)部提供視頻服務(wù)的方式如RTSP,RTP 等,此內(nèi)容非本文討論核心),ISCS 客戶端從ISCS Server 端獲得該服務(wù)地址,憑借此地址信息,ISCS 客戶端可直接向CCTV 子系統(tǒng)請求多媒體服務(wù)。ISCS 服務(wù)器端不僅記錄了用戶請求和命令信息,而且規(guī)避了海量的視頻格式數(shù)據(jù)。 另一類是ISCS 向CCTV 實時請求設(shè)備信息或下達控制命令,CCTV 向ISCS Server 返回所請求的設(shè)備實時狀態(tài)信息或命令執(zhí)行結(jié)果,再由ISCS 收到后,客戶端負責展示給終端用戶,此類信息數(shù)據(jù)量小但對于系統(tǒng)運行管理來說非常重要,不管是數(shù)值還是操作日志都需在系統(tǒng)中妥善保存。
為了實現(xiàn)綜合監(jiān)控系統(tǒng)的高度集成化,各子系統(tǒng)能夠進行聯(lián)動和數(shù)據(jù)共享,CCTV 子系統(tǒng)必須要有足夠的信息映射到綜合監(jiān)控系統(tǒng)ISCS 中,本研究在ISCS 中為CCTV 子系統(tǒng)設(shè)計了一系列專有對象來實現(xiàn)CCTV的系統(tǒng)功能。
CCTVController 對象用于對應(yīng)CCTV 子系統(tǒng)的接口/視頻服務(wù)器。 一方面用于記錄ISCS 與之接口的通信信息和監(jiān)視子系統(tǒng)的通信狀態(tài);另一方面則用于邏輯管理,作為下文要提到的Camera 對象的父對象(所有通過該接口被實現(xiàn)監(jiān)控的Camera 都按其子對象管單。
Camera 對象對應(yīng)每一個CCTV 系統(tǒng)的攝像頭終端,它是CCTV 最基礎(chǔ)最重要的對象,所有的視頻畫面、設(shè)備信息請求以及控制命令下達最終都會尋址到具體Camera 對象。 其重要屬性包括攝像頭名稱或編號、設(shè)備信息描述、設(shè)備類型、設(shè)備地址、用于實時PTZ控制的各種參數(shù)(移動速度、調(diào)節(jié)速度、移動方向、縮放、焦距、光圈等)、設(shè)備工作狀態(tài)、設(shè)備通信狀態(tài)、預(yù)置位編號等。
User 對象用于記錄當前通過ISCS 登錄CCTV 子系統(tǒng)的用戶信息,包括用戶名、操作員權(quán)限、用戶工作工作狀態(tài)等重要信息。
綜合監(jiān)控系統(tǒng)ISCS 客戶終端,直接面向用戶,其軟件功能通常由客戶端瀏覽器+瀏覽器視頻播放插件實現(xiàn),本設(shè)計以Google Chrome + VLC Media Player(基于GPL 的多媒體播放器)為例來說明。
用戶選擇視頻設(shè)備,發(fā)出播放請求后,Controller(ISCS Server)獲得所選擇的設(shè)備編號,向dataSource(CCTV)發(fā)出請求視頻指令,CCTV 根據(jù)編號查找到對應(yīng)的視頻服務(wù)地址信息,將之返回給Controller。Controller 通過綜合監(jiān)控系統(tǒng)內(nèi)部通道將地址傳遞給View(ISCS Client)。 其余的工作完全由Chrome 視頻播放插件來完成。 至此,View?dataSource 之間就變成了單純的多媒體流服務(wù),而兩者之間的數(shù)據(jù)通道則是工作站增配的專用網(wǎng)卡,這樣多媒體數(shù)據(jù)完全不會影響原有的綜合監(jiān)控系統(tǒng)網(wǎng)絡(luò)。
本設(shè)計中處于數(shù)據(jù)源角色的CCTV 系統(tǒng)在本分流平衡架構(gòu)中提供雙通道接口服務(wù),一路是對ISCS Server 提供控制流數(shù)據(jù)的處理響應(yīng)服務(wù),其通信數(shù)據(jù)流遵循本設(shè)計自定義的接口通信規(guī)約;另一路是對ISCS Client 提供視頻數(shù)據(jù)的多媒體視頻服務(wù)。 ISCS Client提供通用的多媒體客戶端可支持目前常用的多媒體數(shù)據(jù)流格式。
本設(shè)計的目的就是使ISCS 服務(wù)器規(guī)避數(shù)據(jù)量巨大、數(shù)據(jù)復(fù)雜的多媒體數(shù)據(jù)流,僅需處理量小關(guān)鍵的實時控制流數(shù)據(jù)。 控制流數(shù)據(jù)通信雙方遵循自定義的ISCS-CCTV control-interface 1.0 規(guī)約。 該規(guī)約與普通工業(yè)規(guī)約類似,定義嚴謹規(guī)范。
隨著視頻監(jiān)控功能被越來越多地集成到綜合監(jiān)控系統(tǒng)中,最為困擾綜合監(jiān)控設(shè)計師的是高清視頻數(shù)據(jù)對工業(yè)監(jiān)控網(wǎng)絡(luò)的沖擊以及專業(yè)的視頻解碼渲染帶來的額外開發(fā)成本。 本設(shè)計利用視頻監(jiān)控的數(shù)據(jù)特點和交互需求對其進行邏輯分流,使用巧妙的三角平衡架構(gòu)幫助高清視頻數(shù)據(jù)避開了綜合監(jiān)控主干網(wǎng)絡(luò),而攝像頭畫面播放則交給成熟的瀏覽器視頻解碼插件解決。 當然,隨著國內(nèi)地鐵建設(shè)的蓬勃發(fā)展,各地項目規(guī)劃各有特色,綜合監(jiān)控集成平臺對各子系統(tǒng)的數(shù)據(jù)接入方式還需具體情況具體分析,只要能以用戶需求為本,理清軟件數(shù)據(jù)的脈絡(luò),最后一定能找到高效的系統(tǒng)設(shè)計方案。