董志詢,溫田超,曹禮成,劉鳳鳳,賴 歡
1.江西省石城縣氣象局,江西石城 342700;2.贛州市南康區(qū)氣象局,江西贛州341400
隨著氣象現(xiàn)代化事業(yè)進入高速發(fā)展的快車道,我國的氣象觀測數(shù)據(jù)質(zhì)量控制工作取得了顯著成效。中國氣象局開發(fā)的MDOS系統(tǒng),建立了省級氣象資料實時滾動質(zhì)量控制、疑誤數(shù)據(jù)人機交互處理、臺站元數(shù)據(jù)實時管理等功能[1]。MDOS系統(tǒng)將氣象觀測要素可用時效提高到小時級,并實現(xiàn)了實時資料與歷史數(shù)據(jù)的一體化查詢與處理[2]。
課題以MDOS系統(tǒng)的結(jié)構(gòu)與特點為基礎,并結(jié)合基層臺站的業(yè)務工作實際,開發(fā)了MDOS疑誤信息告警軟件,對臺站疑誤信息、疑誤信息反饋等數(shù)據(jù)進行告警和統(tǒng)計,使業(yè)務人員能及時、有效地發(fā)現(xiàn)疑誤數(shù)據(jù),一鍵登錄MDOS,并從告警軟件統(tǒng)計的數(shù)據(jù)中分析疑誤信息產(chǎn)生原因,判斷儀器設備的運行狀態(tài)是否正常。這有效地提高了基層臺站業(yè)務工作人員的工作效率,為業(yè)務工作提供了便利。此軟件小巧、易安裝,使用操作簡單,適用性廣,適合實際的業(yè)務工作。
氣象資料業(yè)務系統(tǒng)(MDOS)是一個以省級數(shù)據(jù)監(jiān)控、處理與查詢?yōu)楹诵?,涵蓋臺站級處理與反饋,銜接國家級處理與查詢的綜合性氣象資料業(yè)務平臺[2]。MDOS系統(tǒng)處理的地面氣象數(shù)據(jù)總體可分為三大類:觀測數(shù)據(jù)、元數(shù)據(jù)、附加信息數(shù)據(jù)。告警軟件接入MDOS的觀測數(shù)據(jù)主要有國家站小時數(shù)據(jù)、分鐘數(shù)據(jù)、日數(shù)據(jù)、日照日數(shù)據(jù)、區(qū)域站數(shù)據(jù)等;元數(shù)據(jù)包括臺站觀測環(huán)境變化、觀測儀器變更情況等信息;附加信息包括“紀要”“概況”等[3]。臺站對疑誤信息進行反饋的數(shù)據(jù)主要是國家站和區(qū)域站的小時與分鐘數(shù)據(jù)[4]。
目前,MDOS系統(tǒng)的檢查內(nèi)容有內(nèi)部一致性檢查、持續(xù)性檢查、空間一致性檢查等。疑誤數(shù)據(jù)的處理主要包括對疑誤數(shù)據(jù)的分析、反饋、修正及確認等。處理方式為數(shù)據(jù)更正文件和更正消息2種。江西省疑誤數(shù)據(jù)處理工作以省信息中心為主體,分析疑誤數(shù)據(jù)的來源、要素屬性和臺站背景元數(shù)據(jù),使用MDOS人機交互平臺完成。對明顯的錯誤數(shù)據(jù),江西省信息中心數(shù)據(jù)處理人員判別后,對能替代或修正的數(shù)據(jù)進行直接更正操作,否則保留原值并作出錯誤標記;對可疑的數(shù)據(jù),省信息中心數(shù)據(jù)處理人員能夠確認的,直接進行處理,不能確認的需向臺站進行信息反饋查詢,由基層各臺站反饋疑誤數(shù)據(jù);對缺測數(shù)據(jù),江西省信息中心數(shù)據(jù)處理人員按照有關業(yè)務規(guī)范做相應更正或保留原值處理。
本告警軟件基于.NET框架開發(fā),程序語言使用C#。.NET框架支持多種語言(C#、VB.NET、C++、Python等)的開發(fā)。.NET提供了一個新的反射性的,且面向?qū)ο蟪绦蛟O計編程接口。.NET設計得足夠通用化,從而匯集了許多不同的高級語言。
本系統(tǒng)圖形開發(fā)工具采用Microsoft Visual Studio 2010。VS包含了整個軟件生命周期中用到的大部分工具,如UML工具、代碼管控工具、集成開發(fā)環(huán)境(IDE)等。所寫的目標代碼適用于微軟支持的各種平臺,包括Microsoft Windows、Windows Phone、Windows CE、.NET Framework、.NET Compact Framework和Microsoft Silverlight。而Visual Studio .NET是用于快速生成企業(yè)級ASP.NET Web應用程序和高性能桌面應用程序的工具。Visual Studio包含基于組件的開發(fā)工具(如Visual C#、Visual J#、Visual Basic和Visual C++),以及許多用于簡化基于小組的解決方案的設計、開發(fā)和部署的其他技術。
軟件的業(yè)務可以劃分為模擬登錄、疑誤報警、日志統(tǒng)計、應用設置。
2.3.1 模擬登錄輸入MDOS用戶名密碼,請求MDOS相應接口判斷用戶是否登錄成功。
2.3.2 疑誤報警定時請求MDOS接口,判斷臺站是否報警,當有報警產(chǎn)生時,調(diào)用MAS機數(shù)據(jù)庫接口發(fā)送短信,并彈出報警窗口播放報警聲音。
2.3.3 日志統(tǒng)計請求MDOS數(shù)據(jù)接口,根據(jù)數(shù)據(jù)內(nèi)容統(tǒng)計報警次數(shù)和詳細內(nèi)容。
2.3.4 應用設置設置疑誤報警監(jiān)控時間間隔和短信發(fā)送參數(shù)。
MDOS疑誤信息告警軟件基于Windows的C/S體 系,基 于MDOS的Microsoft SQL Server2008 R2數(shù)據(jù)庫,使用 Delphi 軟件在此數(shù)據(jù)庫的基礎上進行二次開發(fā)。邏輯結(jié)構(gòu)為表示層、功能層、數(shù)據(jù)層典型的三層 C/S 結(jié)構(gòu)。表示層(系統(tǒng)界面)承擔著用戶與應用間的對話功能,讓數(shù)據(jù)處理人員可以直觀地操作;功能層通過Delphi語言,實現(xiàn)具體的業(yè)務統(tǒng)計分析功能編入程序中;數(shù)據(jù)層(數(shù)據(jù)庫管理系統(tǒng))負責對 SQL server 數(shù)據(jù)庫的查詢。三層C/S 結(jié)構(gòu)在邏輯上獨立,結(jié)構(gòu)分割明確。
臺站級MDOS疑誤數(shù)據(jù)處理存在需要定時查看,無法實現(xiàn)有新疑誤信息或超時限疑誤信息告警提示的功能。通過程序設計實現(xiàn)上述功能。通過自動登錄MDOS平臺,對臺站疑誤信息反饋模塊進行定時掃描,抓取網(wǎng)頁內(nèi)容,根據(jù)關鍵字,判斷當前是否存在需及時反饋處理的信息;統(tǒng)計各類疑誤信息,利用程序生成報警短信,通過外接設備及時發(fā)送至值班手機,值班員可以第一時間得知需處理的疑誤信息;軟件邏輯結(jié)構(gòu)見圖1。
圖1 軟件邏輯結(jié)構(gòu)圖
軟件開發(fā)語言選用C#編寫Win-Form窗口程序,IDE(集成開發(fā)環(huán)境)選擇Microsoft Visual Studio2010,軟件基于.NET Framework 4.0框架開發(fā)。WinForm程序小巧便捷,目前江西省內(nèi)業(yè)務主機多數(shù)為Windows7系統(tǒng),可完美運行該程序。根據(jù)邏輯結(jié)構(gòu),本程序可分為以下幾個模塊:網(wǎng)絡監(jiān)測和自動登錄后臺運行、疑誤信息抓取和日志統(tǒng)計、鈴聲告警和告警短信生成、運行界面。軟件的登錄與運行界面見圖2。
圖2 軟件登錄與運行界面圖
3.2.1 網(wǎng)絡監(jiān)測和自動登錄后臺運行使用ping、telnet、tracert等語句把網(wǎng)絡反饋信息處理為直觀、簡單的文字描述,在軟件界面顯示。通過導入值班表,自動登錄臺站MDOS管理人員賬號,監(jiān)測模式下后臺定時運行。采用Timer控件,根據(jù)設置時長自動掃描網(wǎng)頁內(nèi)容。將賬號密碼通過Post的方式發(fā)送至服務器,在網(wǎng)頁的抓取程序中添加以下代碼,用以將用戶名和密碼Post到服務器。具體的代碼如下:
3.2.2 疑誤信息抓取和日志統(tǒng)計利用WinForm的Webbroser、Webclient、WebRequest控件功能抓取MDOS網(wǎng)頁內(nèi)容,分析源碼,利用正則表達式或DOM對象,根據(jù)關鍵字獲取需反饋的疑誤信息條數(shù)、反饋時間并寫入日志文件。根據(jù)日志文件記錄,在下次自動掃描檢測MDOS網(wǎng)頁內(nèi)容,如發(fā)現(xiàn)上次掃描發(fā)現(xiàn)的疑誤信息未處理啟動超時告警模塊功能,提示值班員有已超時未處理的疑誤信息。
利用Post數(shù)據(jù)成功登錄服務器應用系統(tǒng)后,就可以抓取需要登錄的頁面,可能需要在多個Request間保持登錄狀態(tài)。首先,要使用HttpWebRequest,與WebRequest相比,變化的代碼是:Http-WebRequest request = (HttpWebRequest)HttpWebRequest.Create(url)。
3.2.3 鈴聲告警和告警短信生成根據(jù)提取到的信息,判斷有無需反饋的疑誤信息,調(diào)用System.Media.SoundPlayer方法啟動鈴聲告警。針對網(wǎng)絡情況、超時信息啟用不同類型告警鈴聲。在外接短信設備發(fā)送目錄下生成同級別的告警鈴最新的告警短信,并將每次的告警操作寫入日志文件,便于查看報警記錄。
3.2.4 運行界面根據(jù)上述各功能模塊,采用“Tabcontrol”選項卡控件分頁顯示重繪各控件,確??梢噪S窗口大小而自適應控件大小。主要分為4頁:運行模式、疑誤報警、日志統(tǒng)計、應用設置。運行模式頁顯示當前日期、時間、值班員,提供切換按鈕,可選擇后臺運行模式或告警查看模式。疑誤報警頁采用彈窗,置頂顯示當前需反饋的疑誤信息。日志統(tǒng)計頁采用Listview控件顯示軟件操作日志、疑誤告警日志。應用設置放置Textbox控件用于設定自動掃描監(jiān)測時長等。
利用VS平臺,采用C#計算機語言開發(fā)自動監(jiān)測疑誤信息軟件,編寫WinForm窗口程序,利用控件功能提取MDOS網(wǎng)頁關鍵信息。根據(jù)提取的關鍵信息,采用彈窗、響鈴和短信報警相結(jié)合,并可以利用彈窗直接登錄MDOS2.0處理疑誤信息,可對疑誤信息條數(shù)進行一鍵統(tǒng)計,實現(xiàn)MDOS2.0疑誤信息反饋監(jiān)測。該軟件小巧易安裝,后臺運行,自動刷新,立即報警,第一時間內(nèi)獲取需反饋的疑誤信息并提示業(yè)務人員及時處理,避免疑誤信息漏處理,同時可以減少業(yè)務人員登錄查看MDOS,提高了人員的工作效率。及時的數(shù)據(jù)處理對保障氣象觀測數(shù)據(jù)的準確性愈發(fā)重要。