基于分布式組件的監(jiān)測網(wǎng)絡(luò)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
隨著監(jiān)測技術(shù)向自動(dòng)化、智能化、網(wǎng)絡(luò)化的日益發(fā)展,監(jiān)測管理的越來越復(fù)雜化,監(jiān)測系統(tǒng)不斷被賦予新的內(nèi)容和組織形式,從而對監(jiān)測系統(tǒng)提出了更高的要求。該文設(shè)計(jì)并實(shí)現(xiàn)了一種基于分布式組件技術(shù)的監(jiān)測網(wǎng)絡(luò)系統(tǒng),能夠?qū)崿F(xiàn)各種實(shí)時(shí)監(jiān)測和非實(shí)時(shí)監(jiān)測功能,具有良好的可擴(kuò)展性,并實(shí)際應(yīng)用于全國短波監(jiān)測系統(tǒng)中?,F(xiàn)代監(jiān)測網(wǎng)絡(luò)系統(tǒng)由一套完整的信號(hào)檢測、傳送、分析、控制和顯示系統(tǒng)組成,配備了先進(jìn)的監(jiān)測設(shè)備以及相應(yīng)的控制和自動(dòng)監(jiān)測軟件,并通過計(jì)算機(jī)和網(wǎng)絡(luò)實(shí)現(xiàn)互聯(lián)。
1 系統(tǒng)設(shè)計(jì)原則
為了提高系統(tǒng)響應(yīng)性能和穩(wěn)定性,增強(qiáng)代碼的可重用性,可擴(kuò)展性和易維護(hù)性,最大程度地滿足用戶日益變化的需求,整個(gè)監(jiān)測網(wǎng)絡(luò)系統(tǒng)設(shè)計(jì)原則為:基于分布式組件設(shè)計(jì);基于三層結(jié)構(gòu)模式設(shè)計(jì):將設(shè)備驅(qū)動(dòng)與網(wǎng)絡(luò)監(jiān)測軟件分開;將數(shù)據(jù)流與業(yè)務(wù)流程分開;基于網(wǎng)絡(luò)化結(jié)構(gòu)設(shè)計(jì);基于標(biāo)準(zhǔn)化模塊設(shè)計(jì)。
基于分布式組件(DCOM)設(shè)計(jì)的軟件每一部分模塊都是一個(gè)獨(dú)立運(yùn)行的程序,并可以運(yùn)行于不同的計(jì)算機(jī)上。這樣可以使各軟件功能之間、各設(shè)備之間完全獨(dú)立。
基于三層結(jié)構(gòu)模式設(shè)計(jì),將設(shè)備驅(qū)動(dòng)與網(wǎng)絡(luò)監(jiān)測軟件分離開,使各部分完成各自的功能,盡可能地減少了各部分的耦合度。將數(shù)據(jù)流與業(yè)務(wù)流程分開,可以簡化業(yè)務(wù)流程的邏輯復(fù)雜性,從而可以降低軟件的開發(fā)難度,提高軟件開發(fā)效率。
將監(jiān)測網(wǎng)絡(luò)中的設(shè)備根據(jù)不同的監(jiān)測中心、監(jiān)測站進(jìn)行樹型結(jié)構(gòu)管理,既可以對用戶、設(shè)備、功能進(jìn)行統(tǒng)一的管理,也可以避免因統(tǒng)一管理而帶來的網(wǎng)絡(luò)數(shù)據(jù)瓶頸。
基于標(biāo)準(zhǔn)化模塊設(shè)計(jì),使得各功能模塊獨(dú)立運(yùn)行,一個(gè)模塊死掉,不影響其他無關(guān)模塊工作。
2 系統(tǒng)體系結(jié)構(gòu)
2.1 監(jiān)測系統(tǒng)組成
監(jiān)測網(wǎng)絡(luò)系統(tǒng)通過各種測量設(shè)備,能對溫度、流量、壓力還有無線電等各種信號(hào)進(jìn)行測量,將采集到的數(shù)據(jù)通過網(wǎng)絡(luò)傳送到各級監(jiān)測中心及監(jiān)測站,并對其數(shù)據(jù)進(jìn)行分析和處理,及時(shí)、準(zhǔn)確地將信號(hào)測量情況反饋給監(jiān)控人員,從而監(jiān)測運(yùn)行情況,對出現(xiàn)的異常情況作出及時(shí)的處理,指導(dǎo)決策。
整個(gè)監(jiān)測網(wǎng)絡(luò)系統(tǒng)由監(jiān)測中心、各級監(jiān)測站和監(jiān)測站下的監(jiān)測設(shè)備通過聯(lián)網(wǎng)組成。監(jiān)測中心負(fù)責(zé)對各監(jiān)測站進(jìn)行控制,下達(dá)監(jiān)測任務(wù),是采集和處理數(shù)據(jù)的中心,由控制器、路由器、集線器/交換機(jī)、網(wǎng)絡(luò)適配器、MODEM及對應(yīng)的監(jiān)測軟件等組成,實(shí)時(shí)掌握整個(gè)監(jiān)測網(wǎng)的運(yùn)行狀態(tài)。監(jiān)測站至少包括一個(gè)監(jiān)測服務(wù)器、一個(gè)數(shù)據(jù)庫服務(wù)器和若干個(gè)監(jiān)測設(shè)備,能夠接受監(jiān)測中心的測量任務(wù),實(shí)現(xiàn)對測量信號(hào)進(jìn)行自動(dòng)實(shí)時(shí)和非實(shí)時(shí)監(jiān)測,并進(jìn)行分析處理顯示,將數(shù)據(jù)發(fā)送到監(jiān)測中心。監(jiān)測站也可做成移動(dòng)車載系統(tǒng),通過無線網(wǎng)絡(luò)接入監(jiān)測系統(tǒng),靈活機(jī)動(dòng)地完成各種監(jiān)測任務(wù)。監(jiān)測站下的各種監(jiān)測設(shè)備實(shí)現(xiàn)具體的監(jiān)測功能。
監(jiān)測中心、各級監(jiān)測站和監(jiān)測設(shè)備組成一個(gè)局域網(wǎng)絡(luò),進(jìn)行樹型結(jié)構(gòu)管理,實(shí)現(xiàn)各種監(jiān)測功能,達(dá)到統(tǒng)一管理、分工合作、數(shù)據(jù)共享的目的。在監(jiān)測站內(nèi)部的數(shù)據(jù)通訊直接通過分布式組件來完成,而各個(gè)監(jiān)測站之間的數(shù)據(jù)通訊的實(shí)現(xiàn)則是通過網(wǎng)絡(luò)通訊服務(wù)程序進(jìn)行點(diǎn)對點(diǎn)通訊(PPP),這樣可以避免網(wǎng)絡(luò)設(shè)備統(tǒng)一管理而帶來的數(shù)據(jù)傳輸瓶頸問題。根據(jù)實(shí)際情況,用戶可以建成只有一個(gè)監(jiān)測站的小型監(jiān)測網(wǎng)絡(luò)系統(tǒng),也可以擴(kuò)建成全國監(jiān)測網(wǎng)絡(luò)系統(tǒng)。
2.2 系統(tǒng)軟件結(jié)構(gòu)
整個(gè)監(jiān)測網(wǎng)絡(luò)系統(tǒng)基于分布式組件設(shè)計(jì),采取“客戶端-中間層-設(shè)備底層”三層結(jié)構(gòu)形式??蛻舳耸潜O(jiān)測系統(tǒng)的功能界面程序,主要完成與用戶的交互功能;中間層是工程的核心組件,主要負(fù)責(zé)命令與數(shù)據(jù)的分發(fā)以及設(shè)備和用戶的統(tǒng)一管理;底層設(shè)備封裝成組件形式,主要完成用戶的測量任務(wù),并返回?cái)?shù)據(jù)。圖1是監(jiān)測系統(tǒng)整體框架結(jié)構(gòu)圖。
500)this.style.width=500;" border="0" />
客戶端程序,從功能上來說是一個(gè)面向用戶的窗口,主要完成的功能有兩個(gè):作為用戶和設(shè)備交互的窗口,向中間層發(fā)送命令和顯示中間層返回的數(shù)據(jù);完成一些獨(dú)立于中間層的數(shù)據(jù)處理功能。
中間層就象整個(gè)系統(tǒng)的中樞神經(jīng),其主要完成兩大功能:一是負(fù)責(zé)整個(gè)系統(tǒng)數(shù)據(jù)流的管理,向上接受客戶端輸入的測量命令和參數(shù),并向客戶返回相應(yīng)的測量數(shù)據(jù)和狀態(tài),向下將測量命令和參數(shù)發(fā)送給底層設(shè)備,并接受設(shè)備返回的數(shù)據(jù)。二是設(shè)備管理和用戶管理,簡單的說就是對網(wǎng)絡(luò)中的設(shè)備和用戶進(jìn)行統(tǒng)一管理。
設(shè)備底層主要是設(shè)備的DCOM封裝和與中間層的接口程序。
3 系統(tǒng)總體設(shè)計(jì)
3.1 客戶端程序設(shè)計(jì)
怎樣設(shè)計(jì)界面友好,運(yùn)行穩(wěn)定,實(shí)時(shí)反應(yīng)迅速的監(jiān)測軟件是監(jiān)測網(wǎng)絡(luò)系統(tǒng)的首要要求。監(jiān)測網(wǎng)絡(luò)系統(tǒng)應(yīng)用軟件的交互界面和功能直接反映了用戶的需求。
系統(tǒng)設(shè)計(jì)中采用基于分布式組件設(shè)計(jì)的模塊化設(shè)計(jì):每項(xiàng)功能設(shè)計(jì)成相對獨(dú)立的功能模塊,每一部分模塊都是一個(gè)獨(dú)立運(yùn)行的程序,模塊與模塊之間各自預(yù)留接口,通過調(diào)用接口的方式相互調(diào)用。這就要求每個(gè)模塊有自己獨(dú)立的參數(shù)、變量和過程;各個(gè)模塊的功能不重復(fù),每個(gè)業(yè)務(wù)功能可以重復(fù)調(diào)用。模塊化設(shè)計(jì)的優(yōu)點(diǎn):利于開發(fā)分工、減少程序的開銷、提高代碼使用效率等。
用戶功能界面主要是由用戶登陸模塊、任務(wù)管理模塊、命令控制模塊、測量參數(shù)設(shè)置模塊、監(jiān)測數(shù)據(jù)顯示及分析模塊等組成。每一個(gè)獨(dú)立的模塊充分利用面向?qū)ο笾蓄惖乃枷雭黹_發(fā)設(shè)計(jì)。在進(jìn)行程序開發(fā)階段,分別對各個(gè)功能模塊進(jìn)行開發(fā)、測試,實(shí)現(xiàn)和完善各項(xiàng)具體功能。當(dāng)進(jìn)行整體規(guī)劃的時(shí)候,就像堆砌房子一樣,調(diào)用一個(gè)一個(gè)的模塊,組成一個(gè)漂亮、實(shí)用、且可隨意變形的“房子”。
3.2 中間層設(shè)計(jì)
中間層是整個(gè)系統(tǒng)的核心控制層,主要負(fù)責(zé)命令數(shù)據(jù)流的管理和設(shè)備管理與用戶管理。其中數(shù)據(jù)流的管理包括:數(shù)據(jù)的分發(fā)與管理、命令的排隊(duì)管理與分發(fā)、數(shù)據(jù)的分發(fā)與管理。
主要的數(shù)據(jù)流為數(shù)據(jù)請求過程:
(1)通過參數(shù)面板選擇測量參數(shù),通過命令面板選擇功能操作,將命令直接編譯成設(shè)備認(rèn)識(shí)的、能直接操作的二進(jìn)制流,遞交給網(wǎng)絡(luò)通訊服務(wù)程序;
(2)網(wǎng)絡(luò)通訊服務(wù)程序?qū)?shù)據(jù)傳輸?shù)綄?yīng)的監(jiān)測站數(shù)據(jù)管理服務(wù)程序(加到中間層隊(duì)列中);
(3)數(shù)據(jù)管理服務(wù)程序?qū)⒚顢?shù)據(jù)流發(fā)送到對應(yīng)的監(jiān)測設(shè)備驅(qū)動(dòng)服務(wù)程序;
(4)設(shè)備得到的監(jiān)測結(jié)果返回到數(shù)據(jù)管理服務(wù)程序;
(5)數(shù)據(jù)管理服務(wù)程序?qū)⒈O(jiān)測結(jié)果數(shù)據(jù)自動(dòng)轉(zhuǎn)換成標(biāo)準(zhǔn)數(shù)據(jù)格式,遞交給網(wǎng)絡(luò)通訊服務(wù)程序;
(6)網(wǎng)絡(luò)通訊服務(wù)程序?qū)⒔Y(jié)果數(shù)據(jù)返回給用戶界面;
(7)用戶界面將數(shù)據(jù)顯示出來或通過存儲(chǔ)過程保存到數(shù)據(jù)庫。
整個(gè)數(shù)據(jù)請求過程類似于“寫信→寄信→回信”過程。首先用戶界面按設(shè)備認(rèn)識(shí)的格式寫好“信和信封”,然后通過中間層“寄”給設(shè)備,中間層將設(shè)備的“回信”轉(zhuǎn)換成標(biāo)準(zhǔn)格式返回給用戶界面。
3.3 設(shè)備底層設(shè)計(jì)
底層設(shè)備以DCOM形式封裝,各設(shè)備間獨(dú)立運(yùn)行。一旦設(shè)備出現(xiàn)意外問題詘口死機(jī)或斷網(wǎng)等,不影響其他設(shè)備工作。設(shè)備底層的開發(fā)主要包括兩部分:設(shè)備與中間層的DLL接口程序;設(shè)備的DCOM封裝。設(shè)備與中間層的接口程序:當(dāng)加入新設(shè)備時(shí),中間層程序不需要編譯,只需在底層的DLL中加入新的設(shè)備信息;底層DLL負(fù)責(zé)將上層命令翻譯成底層DCOM能夠識(shí)別的命令格式。
整個(gè)系統(tǒng)軟件分為五個(gè)部分的內(nèi)容,即:
(1)用戶界面,他是瘦客戶端,可以安裝在需要監(jiān)測的任意計(jì)算機(jī)上。
(2)登錄服務(wù)程序,安裝在監(jiān)測中心的監(jiān)測服務(wù)器上。
(3)數(shù)據(jù)流管理程序,也可稱中間層。包括數(shù)據(jù)管理服務(wù)程序和狀態(tài)管理服務(wù)程序,安裝在監(jiān)測站的監(jiān)測服務(wù)器上。
(4)設(shè)備驅(qū)動(dòng)服務(wù)程序。
(5)網(wǎng)絡(luò)通訊服務(wù)程序,安裝在需要遠(yuǎn)程訪問的任意計(jì)算機(jī)上。
基于分布式組件設(shè)計(jì),使軟件的各個(gè)部分可以完全獨(dú)立來封裝,形成一個(gè)可獨(dú)立運(yùn)行的程序,使軟件的各部分可以運(yùn)行于不同的計(jì)算機(jī)。這樣可以縮短設(shè)備的啟動(dòng)時(shí)間,提高設(shè)備的運(yùn)行效率,減少CPU占用率,可以使各軟件功能之間、各設(shè)備之間完全獨(dú)立。
4 系統(tǒng)測試
軟件測試是保證軟件質(zhì)量,提高軟件可靠性的關(guān)鍵。下面通過搭建全國短波監(jiān)測系統(tǒng)中的單頻測向監(jiān)測系統(tǒng)為例來進(jìn)行測試和演示。
無線電短波單頻測向系統(tǒng)由監(jiān)測站下的監(jiān)測服務(wù)器和接收機(jī),測向儀等監(jiān)測設(shè)備聯(lián)網(wǎng)組成,能對短波信號(hào)進(jìn)行監(jiān)測和測向,也可以通過幾個(gè)監(jiān)測站進(jìn)行聯(lián)合測向,提供對單一無線電信號(hào)的時(shí)域示向度測量和統(tǒng)計(jì)分析。由于監(jiān)測網(wǎng)絡(luò)系統(tǒng)軟件的各個(gè)部分都封裝成標(biāo)準(zhǔn)化模塊形式,這樣就可以對其每一部分進(jìn)行獨(dú)立的測試,包括軟件的功能和性能指標(biāo),從而實(shí)現(xiàn)對系統(tǒng)各個(gè)部分的可測可控。
于是在監(jiān)測系統(tǒng)的軟件開發(fā)過程中,就可以對完成的各個(gè)模塊進(jìn)行獨(dú)立的單元測試。當(dāng)開發(fā)人員編寫完代碼封裝成獨(dú)立功能模塊后,可以專門針對此模塊編寫簡單的測試程序,主要測試模塊各個(gè)接口實(shí)現(xiàn)的具體功能。最后通過調(diào)用各個(gè)功能模塊組成整個(gè)監(jiān)測系統(tǒng),進(jìn)行整體的功能和性能測試?;诜植际浇M件設(shè)計(jì)的軟件每一部分模塊都是一個(gè)獨(dú)立運(yùn)行的程序,對于開發(fā)完并通過測試的模塊,進(jìn)行系統(tǒng)集成測試時(shí),此模塊只需安裝,并不需要源代碼,降低了軟件重復(fù)開發(fā)的可能性,提高了代碼安全性。
500)this.style.width=500;" />
圖2是無線電短波單頻測向監(jiān)測系統(tǒng)的監(jiān)測界面顯示。開啟一個(gè)監(jiān)測測試流程:首先用戶登陸系統(tǒng),選擇監(jiān)測臺(tái)站中的測向設(shè)備和測向功能,啟動(dòng)測量,調(diào)用測向功能界面模塊。如圖2,在參數(shù)輸入面板上設(shè)置測量參數(shù),點(diǎn)擊開始測量按鈕向設(shè)備發(fā)送“開始測量”命令,對接收到的監(jiān)測數(shù)據(jù)通過分析處理顯示在界面上。也可以通過調(diào)用數(shù)據(jù)庫、文件、打印模塊來保存數(shù)據(jù)、打印文件等。另外,既可以啟動(dòng)單個(gè)測量任務(wù),也可以啟動(dòng)多個(gè)不同的測量任務(wù),各個(gè)測量任務(wù)之間互不影響。
通過測試表明,整個(gè)監(jiān)測網(wǎng)絡(luò)系統(tǒng)簡潔實(shí)用,易操作;設(shè)置監(jiān)測任務(wù)類型、設(shè)置測量參數(shù)、運(yùn)行及關(guān)閉程序的操作都非常簡單快捷;能夠?qū)崿F(xiàn)實(shí)時(shí)監(jiān)測和非實(shí)時(shí)監(jiān)測功能;整個(gè)系統(tǒng)響應(yīng)快速且運(yùn)行穩(wěn)定。
5 結(jié)語
本文基于分布式組件技術(shù)和模塊化思想設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)安全可靠、獨(dú)立性強(qiáng)、易于擴(kuò)展的監(jiān)測網(wǎng)絡(luò)系統(tǒng)。在整個(gè)監(jiān)測系統(tǒng)軟件的開發(fā)和測試過程中,基于標(biāo)準(zhǔn)模塊化和分布式組件技術(shù)的設(shè)計(jì)思想有助于軟件從結(jié)構(gòu)上實(shí)現(xiàn)弱耦合分解,可以極大地提高代碼的獨(dú)立性、重用性和可維護(hù)性,方便地實(shí)現(xiàn)系統(tǒng)的功能擴(kuò)展,而且可以在不同的語言平臺(tái)上實(shí)現(xiàn)功能模塊的開發(fā),從而使得并行開發(fā)過程變得更加容易、高效。整個(gè)監(jiān)測網(wǎng)絡(luò)系統(tǒng)設(shè)計(jì)實(shí)用,易操作;監(jiān)測功能完善,具有良好的可擴(kuò)展性;系統(tǒng)運(yùn)行快速穩(wěn)定,并實(shí)現(xiàn)應(yīng)用于全國短波監(jiān)測網(wǎng)絡(luò)系統(tǒng)中。