易發勝,龔海剛,汪海鷹
(1.成都學院模式識別與智能信息處理四川省高校重點實驗室,四川成都610106;2.成都學院信息科學與技術學院,四川成都610106;3.電子科技大學計算機學院,四川成都610054)
數字標牌系統廣泛應用于各種信息的及時發布,特別是突發事件或者災難信息通告等方面。系統中有大量智能終端設備分布在廣泛的地區工作。如何有效地檢測和控制這些設備,是系統的一個重要功能。由于播放設備種類多樣,新舊設備混雜,且系統在不斷更新,要求監控內容越來越細致,如何形成統一的監控體系是一個迫切的問題。
一直以來,遠程監控都是一個智能系統必不可少的要求。許多復雜場景的遠程監控采用視頻監控形式[1-2]。近年來,伴隨著智能家居的發展,越來越多的研究開始關注家電設備的遠程監控[3-5],因為系統規模小,這些控制相對簡單。隨著大型系統中大量智能設備的應用,遠程監控技術得到越來越多的研究[6-9]。由于監控信息的多樣化,基于擴展性和互換性要求,XML技術在監控系統中得到廣泛的應用[8-9]。
同上述研究相比,數字標牌系統在遠程監控方面面臨更多挑戰。比如一個數字標牌系統往往有大量不同版本、不同類型的播放終端,且不同時期要監控的信息也不一樣。這都增加了監控系統的難度。本文根據數字標牌系統遠程監控面臨的問題,充分利用可擴展的結構設計和XML技術,設計了一種擴展性強的遠程監控系統。最后通過實際測試,顯示這樣的設計是可行有效的。
監控系統的主要目標有兩個,一是可以通過系統了解終端設備的工作情況;二是可以通過系統對終端設備進行必要的控制。此外,也需要終端設備發生重要狀況時可以主動發出報警信息。
考慮到實際應用環境的需要和網絡情況的適應性,本方案采用的系統框架結構如圖1所示。

圖1 監控系統框架結構
圖1是一個邏輯框架結構,圖中,管理程序和監控程序之間有一個接入服務器,這主要是考慮大多數被監控的設備及監控信息管理者都處于內網中,二者無法直接訪問,利用接入服務器中轉,便于管理程序和監控程序進行通信。同時,接入服務器對監控程序和管理程序進行接入管理,也保證了系統的安全要求。
系統中的監控程序運行于不同的終端設備上,可能具有不同的監控要求。這些監控要求還可能隨著時間的變化而變化。比如,早期監控程序可能僅僅監控終端的功能程序執行情況,如通過接口獲取一些特別變量值、讀取運行日志等;而后期可能又需要監控系統信息,比如內存占用大小、磁盤剩余空間、系統運行進程等多方面信息。可擴展的體系結構應該很方便地反應檢測信息和控制行為的更新變化,所以采用合理的監控程序結構設計是需要重點考慮的。
目前,有許多可擴展的程序設計技術,比如動態庫技術、中間件技術、動態升級技術等。良好的結構可以確保在系統要求監控信息和行為發生改變時,對系統的修改和影響最小。基于此,本系統采用了可動態升級的動態庫組件作為控制程序的核心,實現了監控系統結構擴展性要求。
為了適應多種多樣的且頻繁變化的監控信息的采集、傳輸、顯示和控制管理,采用一種擴展的信息描述方法也是本系統的必然要求。
XML可擴展標記語言在數據表示和數據交換方面具有強大的功能,已成功應用在各種領域的數據交換和系統集成中。在本系統中,為了實現監控信息與傳輸的無關性,特別設計了監控信息標記語言(MIML),通過合理的協議設計,接入服務器完全不需要知道監控信息的具體內容。而管理程序只要根據語言描述展現信息即可。因此,針對不同終端的不同監控要求,雖然其監控信息內容因為不斷升級而不一樣,但是并不需要接入服務器和管理程序同步升級,大大簡化了系統的維護工作。
可擴展的監控系統需要支持各種監控信息的采集傳輸和顯示,特別是考慮到未來擴展和升級的要求。一般來說,遠程監控信息體現在如下幾個方面:
1)管理程序發送遠程控制要求,監控程序返回遠程控制結果和控制后狀態信息;
2)發生故障或者意外時,監控程序主動向管理程序發送的告警信息;
3)管理程序定時或者隨機發送的查詢信息請求,監控程序返回恰當的信息。
信息的產生、執行和顯示主要在監控程序和管理程序之間。管理程序需要能夠識別并合理顯示監控程序送過來的各種信息;而監控程序能夠根據配置或者管理程序的要求,及時執行控制命令或者返回查詢信息,并主動匯報異常信息。根據擴展性要求,需要管理程序能夠合理顯示一種監測信息;而監控程序可以根據播放終端的類型,合理地執行管理程序的控制要求及給出可升級的信息。
采用具有擴展性的XML為基礎,本方案專門為監控信息傳輸和處理而建立的MIML可以很好地實現上述各種監控信息的需要,實現監控程序和管理程序之間的數據信息擴展性共享。
根據監控信息的特點,MIML主要是描述各種監控信息的內容和顯示方式,結合了XML描述數據內容的特點和HTML描述顯示的功能。這樣設計的好處在于,無論監控程序如何升級,顯示的信息如何變化,管理程序都可以很好地顯示給用戶查看。
MIML對每個信息內容采用3個標簽表示,即名稱、類型和值。對于一組信息具有分類屬性。對一組或者一個信息還有一個統一的顯示描述。分別描述其標題、位置、顏色、字型等簡單的顯示要素。以下是一個符合MIML的簡單描述代碼:

MIML支持默認處理,比如顯示屬性如果都是默認顯示,則可以不需要描述;另外,對于一些二進制數據,比如圖片、聲音或者文件傳輸,MIML僅傳輸相關URL,然后由具體傳輸協議處理,這大大簡化了MIML的設計。為了動態獲取監控程序的功能,type為5時表示后面跟子控制命令,由于篇幅關系,不再對子控制命令做詳細說明。
為了處理方便,MIML嚴格實行端到端邏輯,僅僅是監控程序和管理程序之間的邏輯。同時,為了擴展性要求和處理方便,設計了可擴展的監控信息傳輸協議,采用option=value的格式。如圖2所示。

圖2 監控信息傳輸報文格式
協議的選項包括3種,即信息類型(type),表示監控信息的種類;信息內容(content),表示信息的具體XML描述;信息長度(length)則表示信息內容的長度,避免XML內容中具有選項字而影響協議的解析。信息類型的設計要便于分類處理,結合監控程序和管理程序設計的需要,信息類型的設計如表1所示。

表1 監控信息基本類型及其含義
信息類型是可擴展的,具體一個設備可以監測或者控制的信息類型可以通過一個查詢得到,然后再根據信息類型進行詳細查詢,以確保系統的可擴展性要求。
雖然數字標牌系統終端類型多樣,且要求監控的信息在不同類型之間也具有差異,但是確保相似的程序架構設計可確保信息處理和升級流程具有一致性。目前大多數播放終端采用了Linux和Windows平臺,雖然Android系統也逐漸流行,但是其內核仍然是Linux的。考慮到監控程序不需要界面,完全是自動執行,因此僅僅考慮給予Linux和Windows的服務程序編程模式。
無論Linux和Windows的服務程序,都支持C語言程序并可采用動態庫技術,因此采用適合動態升級的動態庫插件有利于滿足監控程序的監控能力擴展改進要求。其程序結構如圖3所示。

圖3 監控程序結構
在圖3中,程序由3個層次的模塊構成。其中通用通信模塊完成與接入服務器的基本通信要求。而最上面的監控模塊都是動態庫,它們對外具有統一的接口。在導入內存后,向協議分析和任務派發模塊注冊其可以處理的信息類型。這些監控模塊可以隨時替換升級、增加或者減少。比如對于可以遠程控制的,可以增加遠程控制模塊,實現對終端的關機、重啟等操作;對于具有傳感器的終端,可以增加處理類型為6的監控模塊,從而支持對傳感器的信息獲取和檢查。最大限度地適應了數字標牌終端類型多樣和監控信息區別對待的要求。
各個動態模塊分別對所負責的信息類型進行處理,即對接收到XML要求的信息進行解析或者要返回的信息進行XML封裝。協議分析與任務派發模塊(PATD)是總控模塊,協調整個程序的工作。它負責獲取管理程序發來的請求,主要對類型0的報文進行分析。由于每個動態模塊都需在PATD進行注冊,管理程序對監控程序的能力查詢可以在PATD完成并返回。而其他的要求則分別送到相應的模塊處理。各個動態模塊完成具體的監控功能后,返回的信息通過PATD封裝返回給管理程序。
相對于監控程序來說,管理程序比較簡單。由于是管理人員使用,并不需要自動升級和過多的擴展性考慮,所以結構并不復雜。其設計重點是如何解析各種MIML以形成良好的監控信息展示效果。在實際數字標牌系統中,設備監控功能僅作為數字標牌系統設備管理的一個功能模塊而存在。在此不再詳細介紹。
為了體現設計的效果,本文設計了一個簡單的實驗環境,如圖1所示的結構布置。按照前述的設計原理,實現了監控程序,運行于一個Windows XP系統的播放器下。然后實現了一個用C#編寫的簡單管理程序。接入服務器僅實現一個簡單的轉發處理。一開始,監控程序只有信息類型為3和4兩種動態庫,點擊系統情況,管理程序的界面如圖4所示。

圖4 僅有兩個監控模塊的情形(截圖)
然后在監控端增加了一個控制模塊,重新運行監控程序和管理程序,點擊遠程控制按鈕,可以得到如圖5所示的界面。

圖5 增加一個監控模塊的情形(截圖)
通過圖4和圖5比較,可以很容易看出監控程序容易實現監控功能的擴展,由于采用了易于擴展的MIML描述信息,管理程序可以自動適應監控程序的功能擴展,很好地實現了方案意圖。
本文針對數字標牌系統大量播放終端存在監控問題,討論了可擴展的遠程監控系統設計的關鍵技術在于兩個方面,一是設計具有動態升級功能的監控模塊;二是設計具有擴展性的監控信息描述語言。設計并實現了一個可擴展的遠程監控系統,包括監控信息的描述方法MIML以及在此之上的傳輸協議實現方案,支持動態改進的監控程序和管理程序結構等。實際測試結果表明,按照這樣設計的系統可很好地適應數字標牌監控系統復雜多樣的情況,方便動態升級等擴展改進的需要。
[1]盧朝東.數字電視機房環境智能遠程監測系統[J].電視技術,2012,36(6):92-94.
[2]聶雄,黃斌全.廣西廣播電視發射臺遠程監控系統的設計[J].電視技術,2011,35(22):78-81.
[3]鄭娟毅.基于ZigBee技術的家庭WSN及遠程控制研究[J].電視技術,2010,34(4):67-69.
[4]康志亮,李開國,許麗佳.基于TCP/IP協議的全自動電飯煲遠程控制系統設計[J].電子技術應用,2012,37(6):99-102.
[5]李開國,康志亮,丁武偉,等.基于TCP/IP協議的家電遠程控制系統設計[J],測控技術,2011,30(7):41-45.
[6]楊威,朱珍民,陳援非,等.遠程訪問UPnP網絡的方法與實現[J].計算機工程與設計,2012,33(5):1691-1694.
[7]張冰,馮揚,羅愷愷.基于智能代理的遠程控制技術研究[J].南京郵電大學學報,2009,29(3):21-26.
[8]周玲,葉樺,仰燕蘭,等.基于XML的風電變流器監控軟件配置信息存儲方法[J].東南大學學報:自然科學版,2012,42(S1):140-145.
[9]顧九春,劉璐.基于XML的公路車輛只能監測信息交換研究[J].計算機應用研究,2012,29(8):2986-2990.