孫 磊周志坤張成玉
1.中國海洋大學(xué)信息科學(xué)與工程學(xué)院;2.阿爾伯塔大學(xué) 農(nóng)業(yè)、生命及環(huán)境科學(xué)學(xué)院加拿大;3.中國海洋大學(xué) 信息科學(xué)與工程學(xué)院
基于混合服務(wù)模式的遠(yuǎn)程監(jiān)控系統(tǒng)
孫 磊1周志坤2張成玉3
1.中國海洋大學(xué)信息科學(xué)與工程學(xué)院;2.阿爾伯塔大學(xué) 農(nóng)業(yè)、生命及環(huán)境科學(xué)學(xué)院加拿大;3.中國海洋大學(xué) 信息科學(xué)與工程學(xué)院
以前的監(jiān)控系統(tǒng)主要是在現(xiàn)場配備一臺(tái)計(jì)算機(jī)進(jìn)行現(xiàn)場監(jiān)控,目前的監(jiān)控系統(tǒng)已經(jīng)進(jìn)展為通過網(wǎng)絡(luò)技術(shù)在遠(yuǎn)端進(jìn)行遠(yuǎn)程監(jiān)控。遠(yuǎn)程監(jiān)控系統(tǒng)是現(xiàn)代網(wǎng)絡(luò)通訊技術(shù)與現(xiàn)代科學(xué)技術(shù)聯(lián)合產(chǎn)生的一個(gè)重要技術(shù)產(chǎn)物。在監(jiān)控對象數(shù)量較大,地域分布相對零散,并且監(jiān)控系統(tǒng)平臺(tái)多樣性的情況下,采用遠(yuǎn)程監(jiān)控技術(shù)是一個(gè)很好的解決方案。利用監(jiān)控系統(tǒng),能為構(gòu)建一個(gè)安全、便利、舒適的監(jiān)控環(huán)境提供有力保障。本文針對目前監(jiān)控系統(tǒng)存在的問題,提出了一種基于ActiveMQ 和Web Service混合模式的遠(yuǎn)程監(jiān)控系統(tǒng)。
基于混合服務(wù)模式的遠(yuǎn)程監(jiān)控系統(tǒng)通過定義的Web Service接口,將不同地域的監(jiān)控站點(diǎn),不同廠商的監(jiān)控系統(tǒng)集成到一個(gè)統(tǒng)一的監(jiān)控系統(tǒng)中進(jìn)行集中查看與操作。利用ActiveMQ的可靠、高效、及時(shí)的特性,實(shí)現(xiàn)報(bào)警信息的快速報(bào)告。實(shí)現(xiàn)對監(jiān)控站點(diǎn)、設(shè)備、設(shè)備參數(shù)的動(dòng)態(tài)配置,適應(yīng)三者的變化,方便系統(tǒng)的維護(hù)與擴(kuò)展。
本系統(tǒng)的架構(gòu)主要分為三個(gè)層次,從下到上依次是:數(shù)據(jù)采集層、管理層、應(yīng)用層。相鄰的層之間通過標(biāo)準(zhǔn)接口來傳遞信息,如圖1所示。本系統(tǒng)的這三層架構(gòu)都執(zhí)行一個(gè)相互分離的明確的關(guān)注點(diǎn),即系統(tǒng)中的每一層都提供了一個(gè)不同形式的功能,并具有高度的自治權(quán)。每一層都實(shí)現(xiàn)了接口與實(shí)現(xiàn)的分離,外層只關(guān)注接口的定義,層內(nèi)部只關(guān)注接口的實(shí)現(xiàn),這樣在某一層發(fā)生變化時(shí),接口保持不變,其他層不會(huì)受到影響。
圖1 總體框架
本監(jiān)控系統(tǒng)按照模塊間要松耦合,模塊內(nèi)要高內(nèi)聚的原則把系統(tǒng)調(diào)整為如圖2所描述的四個(gè)模塊。
報(bào)警管理模塊設(shè)計(jì)
報(bào)警管理模塊負(fù)責(zé)監(jiān)控報(bào)警信息,當(dāng)監(jiān)控環(huán)境發(fā)生警情時(shí),報(bào)警探測器采集到報(bào)警信息,將報(bào)警信息傳送至系統(tǒng)前臺(tái)。前臺(tái)會(huì)以聲音和發(fā)光閃耀的形式提醒相關(guān)人員,在前臺(tái)可以查看所有站點(diǎn)和分站點(diǎn)的報(bào)警信息,還能夠?qū)λ械膱?bào)警信息進(jìn)行查看。用戶報(bào)警信息設(shè)置包括:報(bào)警參數(shù)設(shè)置、報(bào)警等級(jí)設(shè)置、報(bào)警方式設(shè)置。圖3描述了報(bào)警管理模塊的詳細(xì)結(jié)構(gòu)。
報(bào)警采集負(fù)責(zé)實(shí)時(shí)采集報(bào)警信息的傳感器:煙感、火感、水浸等信息。根據(jù)這些信息判斷是否有警情發(fā)生,如果發(fā)生警報(bào)情況,通過報(bào)警信息發(fā)送模塊將報(bào)警數(shù)據(jù)發(fā)送至服務(wù)器,前臺(tái)界面會(huì)在醒目的地方顯現(xiàn)報(bào)警信息。報(bào)警包含兩種方式顯示:所有站點(diǎn)的報(bào)警和分站點(diǎn)的報(bào)警。歷史報(bào)警查看是根據(jù)用戶輸入的時(shí)間段和監(jiān)控站點(diǎn)等信息查看相應(yīng)的報(bào)警數(shù)據(jù)。報(bào)警參數(shù)設(shè)置是設(shè)置報(bào)警探測器值的上下限,報(bào)警探測器的增加、刪除。報(bào)警等級(jí)設(shè)置是設(shè)置報(bào)警情況的等級(jí),它包含緊急報(bào)警、重要報(bào)警和一般報(bào)警。報(bào)警方式設(shè)置是設(shè)置短信和郵件的自由組合,全選或者選其一。
圖2 功能模塊圖
圖3 報(bào)警管理模塊結(jié)構(gòu)
圖4 站點(diǎn)監(jiān)控模塊結(jié)構(gòu)
圖5 系統(tǒng)配置模塊結(jié)構(gòu)
圖6 監(jiān)控站點(diǎn)、設(shè)備和設(shè)備參數(shù)關(guān)系
圖7 系統(tǒng)集成模塊結(jié)構(gòu)
站點(diǎn)監(jiān)控模塊設(shè)計(jì)
站點(diǎn)監(jiān)控模塊負(fù)責(zé)對各監(jiān)控站點(diǎn)的查看與管理,包括:地圖導(dǎo)航、數(shù)據(jù)曲線、數(shù)據(jù)查詢、數(shù)據(jù)下載、數(shù)據(jù)備份、實(shí)時(shí)數(shù)據(jù)、用戶管理。圖4描述了站點(diǎn)監(jiān)控模塊的結(jié)構(gòu)。
地圖導(dǎo)航根據(jù)各監(jiān)控站點(diǎn)的經(jīng)緯度在地圖上顯示各監(jiān)控站點(diǎn)的位置,點(diǎn)擊相應(yīng)的監(jiān)控站點(diǎn),可以查看監(jiān)控站點(diǎn)的所有信息。數(shù)據(jù)曲線是以曲線的形式顯示監(jiān)控站點(diǎn)下監(jiān)控設(shè)備的傳感參數(shù)的數(shù)值。數(shù)據(jù)查詢可以查看各個(gè)傳感參數(shù)的所有數(shù)據(jù),用戶可以選擇時(shí)間段和傳感參數(shù),把相應(yīng)的數(shù)據(jù)下載在本地。系統(tǒng)會(huì)定時(shí)對監(jiān)控?cái)?shù)據(jù)進(jìn)行備份,防止數(shù)據(jù)丟失,還能夠查看傳感參數(shù)的實(shí)時(shí)數(shù)據(jù)。
系統(tǒng)配置模塊設(shè)計(jì)
系統(tǒng)配置模塊主要負(fù)責(zé)監(jiān)控對象的動(dòng)態(tài)管理。本模塊的功能是通過配置操作即可適應(yīng)監(jiān)控對象的:添加、修改、刪除需求。系統(tǒng)配置模塊包括:監(jiān)控站點(diǎn)管理,設(shè)備管理,設(shè)備參數(shù)管理。圖3~圖7描述了系統(tǒng)配置模塊的結(jié)構(gòu)。
監(jiān)控站點(diǎn)、監(jiān)控設(shè)備和監(jiān)控設(shè)備參數(shù)三者之間的關(guān)系是父與子的關(guān)系。即監(jiān)控站點(diǎn)下有多個(gè)設(shè)備,每個(gè)設(shè)備有多個(gè)參數(shù)。三者之間的關(guān)系圖如圖6所示。
系統(tǒng)集成模塊設(shè)計(jì)
系統(tǒng)集成模塊負(fù)責(zé)將不同廠商的監(jiān)控系統(tǒng)集成到本系統(tǒng)中來,在一個(gè)平臺(tái)下統(tǒng)一對整個(gè)監(jiān)控環(huán)境進(jìn)行監(jiān)控管理。圖7描述了系統(tǒng)集成模塊的結(jié)構(gòu)。
各個(gè)廠商的監(jiān)控系統(tǒng)只要按照定義的標(biāo)準(zhǔn)接口便可以方便集成到本監(jiān)控系統(tǒng)中。
圖8 發(fā)布/訂閱模型中目標(biāo)主題屬性
數(shù)據(jù)訪問接口設(shè)計(jì)
數(shù)據(jù)訪問接口是管理層和應(yīng)用層之間進(jìn)行數(shù)據(jù)請求和反饋的標(biāo)準(zhǔn)通道。接口分為兩種類型:Web Service接口和ActiveMQ接口。其中Web Service接口用于獲得監(jiān)控對象信息以及監(jiān)控設(shè)備數(shù)據(jù);ActiveMQ接口用于獲得監(jiān)控的報(bào)警數(shù)據(jù)。下面分別描述接口的設(shè)計(jì)。
Web Service是一個(gè)面向服務(wù)編程的架構(gòu),它不依賴于語言和平臺(tái),通過提供定義好的標(biāo)準(zhǔn)接口,可以讓不同的應(yīng)用程序集成到一起,異構(gòu)的應(yīng)用程序可以相互訪問,在一定程度上大大減小了各個(gè)模塊之間的耦合度。相關(guān)人員只需要通過WSDL就能夠查看服務(wù)接口的信息。
ActiveMQ是面向消息的中間件,他能夠跨語言、跨平臺(tái),為使用者提供可靠、高效、穩(wěn)定的消息通信,同時(shí)也降低了使用者之間的耦合度。ActiveMQ提供兩種消息模型:點(diǎn)對點(diǎn)模型(Point-to-Point)和發(fā)布/訂閱模型(Publish/Subscribe)。本監(jiān)控系統(tǒng)選擇一對多的發(fā)布/訂閱模型,為后續(xù)要添加的消費(fèi)者提供預(yù)留空間,以體現(xiàn)系統(tǒng)的擴(kuò)展性。圖8描述了發(fā)布/訂閱模型中目標(biāo)主題的屬性。
系統(tǒng)集成
本監(jiān)控系統(tǒng)將不同地域的監(jiān)控站點(diǎn)、不同平臺(tái)的監(jiān)控系統(tǒng)集成到一起。圖9描述了系統(tǒng)的首頁,最左側(cè)是所有的監(jiān)控站點(diǎn)名稱,在監(jiān)控站點(diǎn)下顯示所有的設(shè)備信息。首頁的菜單欄包括:首頁、報(bào)警查詢、站點(diǎn)數(shù)據(jù)、報(bào)警設(shè)置、用戶管理、系統(tǒng)配置。右上方是報(bào)警等級(jí)的圖例說明,圖例下面以文本的方式顯示當(dāng)前的報(bào)警信息,當(dāng)有報(bào)警信息時(shí),上方的報(bào)警指示燈會(huì)發(fā)光,同時(shí)發(fā)出報(bào)警音樂。中間是監(jiān)控站點(diǎn)的地圖導(dǎo)航。
圖9 系統(tǒng)集成
圖10 查看歷史報(bào)警信息
報(bào)警管理
啟動(dòng)ActiveMQ服務(wù),輸入U(xiǎn)RL,進(jìn)入鏈接之后輸入用戶名和密碼,可以查看ActiveMQ的目標(biāo)主題以及目標(biāo)主題的消費(fèi)者數(shù)量,發(fā)送消息的總數(shù),接收消息的總數(shù)。可以查看歷史報(bào)警信息,對報(bào)警信息進(jìn)行設(shè)置,如圖10所示。
站點(diǎn)監(jiān)控
監(jiān)控站點(diǎn)的地圖導(dǎo)航如圖12所示,站點(diǎn)在地圖上根據(jù)經(jīng)緯度以錨點(diǎn)的形式顯示。通過滾動(dòng)鼠標(biāo)軸可以實(shí)現(xiàn)放大縮小地圖,用鼠標(biāo)左鍵可以控制地圖的移動(dòng),當(dāng)鼠標(biāo)移動(dòng)到某一個(gè)站點(diǎn)的時(shí)候顯示該站點(diǎn)的名稱和經(jīng)緯度,用戶可以查看監(jiān)控?cái)?shù)據(jù)的數(shù)據(jù)曲線和數(shù)據(jù)列表。
圖11 監(jiān)控站點(diǎn)的地圖導(dǎo)航
圖12 監(jiān)控站點(diǎn)管理
系統(tǒng)配置
實(shí)現(xiàn)對監(jiān)控站點(diǎn)、監(jiān)控設(shè)備和設(shè)備參數(shù)的管理。如圖12所示,監(jiān)控站點(diǎn)管理每個(gè)站點(diǎn)所顯示的信息有:名稱、注冊時(shí)間、地址、經(jīng)度、緯度、描述信息。點(diǎn)擊“添加”按鈕,出現(xiàn)新窗口實(shí)現(xiàn)加入新站點(diǎn)操作。在執(zhí)行刪除站點(diǎn)時(shí),其中刪除操作支持多項(xiàng)選擇刪除。點(diǎn)擊“修改”按鈕,會(huì)出現(xiàn)相應(yīng)的窗口,完成對現(xiàn)有的站點(diǎn)信息的修改。點(diǎn)擊“確定”按鈕,會(huì)保存所有更改操作。點(diǎn)擊“取消”按鈕,會(huì)放棄所有更改。
近幾年,遠(yuǎn)程監(jiān)控系統(tǒng)朝著更高級(jí)的應(yīng)用和網(wǎng)絡(luò)通信技術(shù)應(yīng)用的方向發(fā)展,本文根據(jù)遠(yuǎn)程監(jiān)控系統(tǒng)發(fā)展的網(wǎng)絡(luò)化趨勢,總結(jié)分析目前遠(yuǎn)程監(jiān)控系統(tǒng)暴露出的問題,提出了一種適用于機(jī)房監(jiān)控、工業(yè)生產(chǎn)控制等類似工程的集成化的遠(yuǎn)程監(jiān)控系統(tǒng)的解決方案,即基于ActiveMQ和Web Service混合模式的遠(yuǎn)程監(jiān)控系統(tǒng)。
將系統(tǒng)按功能劃分為四個(gè)模塊:報(bào)警管理、站點(diǎn)監(jiān)控、系統(tǒng)配置、系統(tǒng)集成。其中報(bào)警管理模塊可以實(shí)現(xiàn)對報(bào)警信息級(jí)別和參數(shù)的設(shè)置,報(bào)警信息的發(fā)送和接收通過ActiveMQ實(shí)現(xiàn),可以滿足報(bào)警信息的并發(fā),報(bào)警準(zhǔn)確率基本達(dá)到100%,報(bào)警信息持久保存永遠(yuǎn)不丟失。報(bào)警信息還能夠借助短信、郵件發(fā)送給相關(guān)人員。
站點(diǎn)監(jiān)控模塊采用GMAP.NET地圖控件實(shí)現(xiàn)了監(jiān)控站點(diǎn)的地圖導(dǎo)航,為用戶提供了按時(shí)間段進(jìn)行數(shù)據(jù)下載的服務(wù),應(yīng)用操作系統(tǒng)自帶的任務(wù)計(jì)劃按照備份方法定時(shí)進(jìn)行數(shù)據(jù)備份,用戶可以實(shí)時(shí)查看監(jiān)控?cái)?shù)據(jù),數(shù)據(jù)走向還能夠以數(shù)據(jù)曲線的直觀方式展示。
系統(tǒng)配置模塊采用XML技術(shù)實(shí)現(xiàn)了對監(jiān)控站點(diǎn)、設(shè)備、設(shè)備參數(shù)的動(dòng)態(tài)配置,配置操作能自動(dòng)執(zhí)行數(shù)據(jù)庫的更行,重啟系統(tǒng)即可查看配置結(jié)果。
系統(tǒng)集成模塊采用Web Service技術(shù)完成了把不同地域的站點(diǎn),不同廠商的監(jiān)控系統(tǒng)集成到一起集中查看與管理,在數(shù)據(jù)傳輸過程中采用JSON技術(shù),方便傳輸、利于轉(zhuǎn)換、占用帶寬小。