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