符鳳平,馮新建,葉 幫
(貴州省安順市氣象局,貴州 安順 561000)
地(市)級(jí)地面自動(dòng)站資料異地備份監(jiān)控系統(tǒng)
符鳳平,馮新建,葉 幫
(貴州省安順市氣象局,貴州 安順 561000)
系統(tǒng)采用C/S軟件體系結(jié)構(gòu)、Visual Basic 6.0編程語(yǔ)言、API函數(shù)等技術(shù),實(shí)現(xiàn)對(duì)地面自動(dòng)站資料異地備份情況的實(shí)時(shí)監(jiān)控、報(bào)表輸出及自動(dòng)補(bǔ)傳功能。充分利用已建成的省、地、縣光纖通信網(wǎng)絡(luò),實(shí)現(xiàn)對(duì)所屬地面自動(dòng)站資料的異地備份情況進(jìn)行多級(jí)實(shí)時(shí)監(jiān)控,并將監(jiān)控結(jié)果中未正常備份的自動(dòng)站資料信息分類進(jìn)行報(bào)表輸出。自動(dòng)監(jiān)測(cè)分鐘數(shù)據(jù)文件存放資料的最新時(shí)刻,輸出監(jiān)測(cè)信息報(bào)表。臺(tái)站業(yè)務(wù)人員根據(jù)報(bào)表信息,對(duì)未正?;蛭醇皶r(shí)備份的自動(dòng)站資料,可按照分時(shí)段或按日期選擇,及時(shí)進(jìn)行缺誤資料的自動(dòng)補(bǔ)傳。系統(tǒng)應(yīng)業(yè)務(wù)需求而設(shè)計(jì),操作簡(jiǎn)便,運(yùn)行穩(wěn)定,在Windows XP和Windows Server 2003操作系統(tǒng)環(huán)境下均運(yùn)行正常。自投入業(yè)務(wù)運(yùn)行以來(lái),有效提高了地面自動(dòng)站資料異地備份完整率和及時(shí)率。
異地備份;實(shí)時(shí)監(jiān)控;API函數(shù);Excel報(bào)表
自地面自動(dòng)站在各級(jí)氣象臺(tái)站投入業(yè)務(wù)運(yùn)行以來(lái),為天氣預(yù)報(bào)業(yè)務(wù)、氣象服務(wù)提供了豐富實(shí)時(shí)的觀測(cè)資料。為了更好地利用地面自動(dòng)站系統(tǒng)資源,充分發(fā)揮地面自動(dòng)站的現(xiàn)代化效益,相關(guān)技術(shù)人員在這方面作了大量的開(kāi)發(fā)工作,如由貴州省氣象局與黔西南州氣象局聯(lián)合開(kāi)發(fā)的《地面自動(dòng)氣象站資料自動(dòng)備份及處理系統(tǒng)》,系統(tǒng)充分利用已建成的省、地、縣光纖通信網(wǎng)絡(luò),采用FTP文件傳輸方式,分別在省、地、縣三級(jí)建立相應(yīng)的處理程序及FTP服務(wù)器,實(shí)現(xiàn)地面自動(dòng)站資料的異地備份。自該系統(tǒng)投入業(yè)務(wù)運(yùn)行以來(lái),在對(duì)地面自動(dòng)站氣象資料的管理、完整性、準(zhǔn)確性和安全性等方面發(fā)揮了重要作用,為天氣預(yù)報(bào)服務(wù)和氣象科研提供了準(zhǔn)確可靠的氣象數(shù)據(jù)。
為了更好地完善自動(dòng)站資料的管理,使自動(dòng)站資料異地備份更加完整與及時(shí),開(kāi)發(fā)了適合地市級(jí)以下氣象部門(mén)使用的《市(縣)級(jí)地面自動(dòng)站資料異地備份監(jiān)控系統(tǒng)》(以下簡(jiǎn)稱《異地備份監(jiān)控系統(tǒng)》),系統(tǒng)主要包括地(市)級(jí)地面自動(dòng)站資料異地備份監(jiān)控子系統(tǒng)和縣級(jí)地面自動(dòng)站資料異地備份監(jiān)控子系統(tǒng),充分利用已建成的省、地、縣光纖通信網(wǎng)絡(luò),實(shí)現(xiàn)對(duì)所屬地面自動(dòng)站資料的異地備份情況進(jìn)行多級(jí)實(shí)時(shí)監(jiān)控,并將監(jiān)控結(jié)果中未正常備份的自動(dòng)站資料信息以Excel表格形式分類進(jìn)行報(bào)表輸出。自動(dòng)監(jiān)測(cè)分鐘數(shù)據(jù)文件存放資料的最新時(shí)刻,將相關(guān)信息輸出到報(bào)表中,以便補(bǔ)傳。對(duì)未正?;蛭醇皶r(shí)備份的自動(dòng)站資料,實(shí)現(xiàn)分時(shí)段或按日期選擇進(jìn)行補(bǔ)傳。地縣級(jí)業(yè)務(wù)人員可根據(jù)報(bào)表信息,及時(shí)進(jìn)行缺誤資料的自動(dòng)補(bǔ)傳,大大簡(jiǎn)化繁瑣的人工操作。業(yè)務(wù)管理部門(mén)可及時(shí)掌握自動(dòng)站資料備份情況,根據(jù)該表提供信息,督促資料補(bǔ)傳,確保地面自動(dòng)站資料備份更加及時(shí)與完整。系統(tǒng)按照業(yè)務(wù)需求設(shè)計(jì),具有一定的實(shí)用性。
《異地備份與處理系統(tǒng)》全名為《地面自動(dòng)氣象站資料自動(dòng)備份及處理系統(tǒng)》,2009年3月在貴州省各級(jí)氣象臺(tái)站投入業(yè)務(wù)運(yùn)行。該系統(tǒng)主要由縣級(jí)、地(市)級(jí)、省級(jí)3部分的多個(gè)程序組成??h級(jí)主要包括地面自動(dòng)氣象站資料自動(dòng)備份及報(bào)警程序、氣象自記紙掃描備份程序,地(市級(jí))主要包括地面自動(dòng)氣象站資料自動(dòng)處理及報(bào)警程序、FTP服務(wù)器軟件,省級(jí)主要包括地面自動(dòng)氣象站資料監(jiān)測(cè)報(bào)警程序、FTP服務(wù)器軟件。
利用已建成的省、地、縣光纖通信網(wǎng)絡(luò),采取FTP文件傳輸方式進(jìn)行地面自動(dòng)站資料的異地備份。各縣級(jí)氣象臺(tái)站使用自動(dòng)備份程序和氣象自記紙掃描備份程序,將地面自動(dòng)站資料自動(dòng)備份到市級(jí)FTP服務(wù)器。在市級(jí)服務(wù)器端,每個(gè)縣級(jí)地面自動(dòng)站擁有一個(gè)和本地相同的目錄,目錄結(jié)構(gòu)和各自動(dòng)站主目錄結(jié)構(gòu)相同。市級(jí)氣象臺(tái)站通過(guò)使用自動(dòng)處理傳輸程序,將地面自動(dòng)站資料自動(dòng)備份到省級(jí)FTP服務(wù)器。在省級(jí)服務(wù)器端,目錄結(jié)構(gòu)按照地面自動(dòng)站資料類型建立,與市、縣兩級(jí)不同,如自記紙文件目錄為paper,即所有臺(tái)站的自記紙文件需傳輸?shù)皆撃夸?分鐘數(shù)據(jù)Z文件目錄為Z,即所有臺(tái)站的Z分鐘數(shù)據(jù)傳輸?shù)皆撃夸洝?/p>
縣級(jí)地面自動(dòng)站資料異地備份的資料幾乎包括自動(dòng)站主目錄下的所有內(nèi)容,即OSSMO 2004(自動(dòng)站默認(rèn)安裝目錄)目錄下所有子目錄AwsSource、BaseData、ErrorTxt、Log、Paper、ReportFile、SYNOP、SysConfig、temp、輻射 H、輻射 R 等。
市級(jí)地面自動(dòng)站資料異地備份資料主要包括市屬各縣自動(dòng)站的所有資料,主要包括分鐘數(shù)據(jù)、自記紙、A、J、B、輻射H和輻射R、系統(tǒng)日志等,市級(jí)服務(wù)器和縣級(jí)自動(dòng)站存放資料的目錄結(jié)構(gòu)及文件名相同,但省、市兩級(jí)服務(wù)器存放自動(dòng)站資料的目錄結(jié)構(gòu)不同,少數(shù)資料文件名有所改變,如log目錄下的 NF和 OSSMO文件,如原文件名分別為“NF20110527.log”和“OSSMO-201105.log”,備份到省級(jí)服務(wù)器后,文件分別更名為“NF20110527-57806.log”和“OSSMO-201105-57806.log”。
在局域網(wǎng)和省、地、縣光纖通信網(wǎng)絡(luò)保持暢通的前提下,采取C/S軟件結(jié)構(gòu),以Visual Basic 6.0語(yǔ)言為開(kāi)發(fā)工具,利用VB網(wǎng)絡(luò)通信技術(shù)和API函數(shù)編制而成。經(jīng)過(guò)業(yè)務(wù)測(cè)試,在 Windows XP和Windows Server 2003操作系統(tǒng)環(huán)境下均運(yùn)行正常。
系統(tǒng)主要包括地(市)級(jí)異地備份監(jiān)控子系統(tǒng)和縣級(jí)異地備份監(jiān)控子系統(tǒng)。圖1為對(duì)市級(jí)服務(wù)器異地備份資料的監(jiān)控信息表,圖2為系統(tǒng)輸出的分鐘數(shù)據(jù)信息監(jiān)控表。
系統(tǒng)主要包含地(市)級(jí)、縣級(jí)兩個(gè)監(jiān)控子系統(tǒng)。縣級(jí)監(jiān)控子系統(tǒng)實(shí)現(xiàn)對(duì)本地備份到市級(jí)服務(wù)器上的資料進(jìn)行實(shí)時(shí)監(jiān)控,對(duì)未正常備份的資料信息進(jìn)行報(bào)表輸出,提供資料補(bǔ)傳功能。地(市)級(jí)監(jiān)控子系統(tǒng)實(shí)現(xiàn)對(duì)所屬各自動(dòng)站資料的備份情況進(jìn)行兩級(jí)實(shí)時(shí)監(jiān)控,將監(jiān)控結(jié)果中未正常備份的自動(dòng)站資料以報(bào)表形式輸出。自動(dòng)監(jiān)測(cè)分鐘數(shù)據(jù)文件存放資料的最新時(shí)刻,將監(jiān)測(cè)信息輸出到報(bào)表中,以便補(bǔ)傳。同時(shí)對(duì)未正?;蚣皶r(shí)備份的自動(dòng)站資料,實(shí)現(xiàn)分時(shí)段或按照選擇日期進(jìn)行補(bǔ)傳。兩級(jí)實(shí)時(shí)監(jiān)控主要包括本地監(jiān)控和遠(yuǎn)程監(jiān)控,本地監(jiān)控指對(duì)所屬各自動(dòng)站備份到地(市)級(jí)FTP服務(wù)器的資料進(jìn)行監(jiān)控,遠(yuǎn)程監(jiān)控指對(duì)所屬各自動(dòng)站備份到省級(jí)FTP服務(wù)器的資料進(jìn)行監(jiān)控。地(市)級(jí)監(jiān)控子系統(tǒng)主要實(shí)現(xiàn)功能見(jiàn)圖3所示:
圖3 地(市)級(jí)監(jiān)控子系統(tǒng)主要實(shí)現(xiàn)功能
對(duì)于地(市)級(jí)和縣級(jí)兩個(gè)子系統(tǒng),在實(shí)現(xiàn)各個(gè)功能相同的模塊時(shí),采用技術(shù)方法相同,如對(duì)于縣級(jí)子系統(tǒng),資料監(jiān)控部分主要實(shí)現(xiàn)對(duì)本站異地備份到地(市)級(jí)服務(wù)器上的所有資料進(jìn)行實(shí)時(shí)監(jiān)控,但由于各級(jí)目錄結(jié)構(gòu)和文件名不同,造成編程代碼有所不同。這里主要以地(市)級(jí)監(jiān)控子系統(tǒng)為例,簡(jiǎn)述各模塊的實(shí)現(xiàn)方法。
3.4.1 資料監(jiān)控 對(duì)于地(市)級(jí)監(jiān)控子系統(tǒng),主要實(shí)現(xiàn)對(duì)各縣備份到地(市)級(jí)的地面自動(dòng)站資料以及地(市)級(jí)備份到省局服務(wù)器的地面自動(dòng)站資料進(jìn)行實(shí)時(shí)監(jiān)控,即實(shí)現(xiàn)兩級(jí)監(jiān)控:本地監(jiān)控和遠(yuǎn)程監(jiān)控。監(jiān)控結(jié)果分別以紅、黃、綠3種顏色的圓形按鈕清晰地顯示于系統(tǒng)界面,其中紅顏色表示文件未備份成功,黃顏色表示文件存在但其長(zhǎng)度為零,綠顏色表示文件備份正常。
由于資料類型不同,更新時(shí)間不同,部分資料每月一份文件,如A、J、B等,部分資料每日有更新,如自記紙、分鐘數(shù)據(jù)等文件。為縮短程序運(yùn)行時(shí)間或?qū)W(wǎng)絡(luò)資源的占據(jù)時(shí)間,對(duì)日變化資料可單獨(dú)實(shí)現(xiàn)監(jiān)控。
3.4.1.1 本地監(jiān)控 本地監(jiān)控主要實(shí)現(xiàn)對(duì)各縣備份到地(市)級(jí)服務(wù)器的資料進(jìn)行監(jiān)控。利用局域網(wǎng)絡(luò),將各縣備份到地(市)服務(wù)器的地面自動(dòng)站資料目錄進(jìn)行只讀共享,只要本系統(tǒng)運(yùn)行于局域網(wǎng)內(nèi)任何一臺(tái)計(jì)算機(jī)上,即可實(shí)現(xiàn)對(duì)自動(dòng)站資料備份情況進(jìn)行監(jiān)控。
在進(jìn)行此部分的程序設(shè)計(jì)時(shí),首先建立一個(gè)存放自動(dòng)站站號(hào)的文本文件zm.txt,每行一個(gè)站號(hào),然后編制函數(shù),實(shí)現(xiàn)對(duì)各圓形按鈕顏色的判斷與定義。使用循環(huán)語(yǔ)句讀取文件zm.txt,每讀取一行,即讀取一個(gè)站號(hào),就對(duì)屬于該站的所有資料備份情況進(jìn)行判斷。當(dāng)資料文件不存在時(shí),讀取相應(yīng)圓形按鈕的紅顏色函數(shù)。當(dāng)資料文件長(zhǎng)度為零時(shí),讀取相應(yīng)圓形按鈕的黃顏色函數(shù)。當(dāng)資料文件存在且長(zhǎng)度不為零時(shí),讀取相應(yīng)圓形按鈕的綠顏色函數(shù)。讀完文件,即實(shí)現(xiàn)對(duì)所有臺(tái)站資料的監(jiān)控。顏色讀取函數(shù)主要根據(jù)資料和顏色類別而建立,使用選擇判斷語(yǔ)句Select Case,根據(jù)站號(hào)設(shè)置按鈕顏色,從而得出監(jiān)控結(jié)果。
3.4.1.2 遠(yuǎn)程監(jiān)控 遠(yuǎn)程監(jiān)控模塊主要實(shí)現(xiàn)對(duì)地(市)級(jí)備份到省級(jí)FTP服務(wù)器上的自動(dòng)站資料備份情況進(jìn)行實(shí)時(shí)監(jiān)控,此部分功能主要使用API函數(shù)實(shí)現(xiàn)。首先使用InternetOpen設(shè)置網(wǎng)絡(luò)連接環(huán)境,然后使用InternetConnect與省級(jí)FTP異地備份服務(wù)器進(jìn)行連接,再使用循環(huán)語(yǔ)句讀取站號(hào)文本文件,每讀取一個(gè)站號(hào),就分別運(yùn)用FtpSetCurrentDirectory和 FtpFindFirstFile 2個(gè)API函數(shù),對(duì)與該站有關(guān)的所有資料進(jìn)行監(jiān)控判斷。當(dāng)改變監(jiān)控目錄時(shí),需事先利用API函數(shù)InternetCloseHandle關(guān)閉FtpFindFirstFile函數(shù)創(chuàng)建的句柄 。
3.4.2 報(bào)表輸出 分別對(duì)本地和遠(yuǎn)程服務(wù)器上的自動(dòng)站異地備份資料按時(shí)段輸出有誤信息報(bào)表,自動(dòng)監(jiān)控分鐘數(shù)據(jù)文件最新時(shí)次的相關(guān)信息并寫(xiě)入報(bào)表。報(bào)表輸出格式為Excel文件,這里的有誤信息主要指文件未上傳、文件存在但其長(zhǎng)度為零的自動(dòng)站資料相關(guān)信息,報(bào)表分為為5欄,分別為日期、站名、文件類型、文件名、監(jiān)控情況等。
本地監(jiān)控基于局域網(wǎng),實(shí)現(xiàn)對(duì)自動(dòng)站目錄各類資料的監(jiān)控統(tǒng)計(jì)。遠(yuǎn)程監(jiān)控基于省、地、縣光纖通信網(wǎng)絡(luò),實(shí)現(xiàn)對(duì)遠(yuǎn)程FTP異地備份服務(wù)器存放資料的監(jiān)控統(tǒng)計(jì)。此模塊在程序設(shè)計(jì)時(shí),主要采取以下技術(shù)方法:
①自動(dòng)生成Excel報(bào)表文件名。
②設(shè)置變量j作為報(bào)表行參數(shù),賦初值為3,表示從表格的第3行開(kāi)始填寫(xiě)信息。
③建立excel_1函數(shù),首先創(chuàng)建excel對(duì)象,打開(kāi)excel文件,設(shè)置活動(dòng)工作表,然后填寫(xiě)監(jiān)控信息。每當(dāng)讀取一個(gè)站號(hào),就對(duì)其所有自動(dòng)站資料進(jìn)行判斷,當(dāng)有文件未上傳、文件存在但其長(zhǎng)度為零時(shí),調(diào)用該函數(shù)寫(xiě)入相應(yīng)的自動(dòng)站資料相關(guān)信息。
④建立baobiao函數(shù),設(shè)置報(bào)表初始狀態(tài),如單元格的列寬、顏色、標(biāo)題、列名等,并根據(jù)報(bào)表行參數(shù)j值添加表格的網(wǎng)格線。
⑤使用雙層循環(huán)語(yǔ)句。外層循環(huán)使用For…Next語(yǔ)句,設(shè)定日期變量i,其值表示從選擇當(dāng)前日期所屬月的1號(hào)到當(dāng)前日期。內(nèi)層循環(huán)使用Do While…Loop語(yǔ)句,讀取站號(hào)文本文件,每當(dāng)讀取一行文件內(nèi)容,即讀取一個(gè)站號(hào),就對(duì)其所有自動(dòng)站資料進(jìn)行判斷,讀完文件,即對(duì)i值所在當(dāng)天所有站資料監(jiān)控完畢,然后監(jiān)控下一天的信息。
⑥在實(shí)現(xiàn)遠(yuǎn)程監(jiān)控信息報(bào)表輸出時(shí),建立一函數(shù)自動(dòng)調(diào)用執(zhí)行DOS下的FTP命令,避免使用shell函數(shù)調(diào)用FTP命令時(shí)帶來(lái)異步執(zhí)行問(wèn)題[2]。
3.4.3 資料補(bǔ)傳
分為當(dāng)天資料上傳和時(shí)段內(nèi)資料上傳兩部分。選擇系統(tǒng)界面中的“當(dāng)天資料上傳”按鈕,將自動(dòng)上傳當(dāng)前選擇日期下所有自動(dòng)站資料到省級(jí)服務(wù)器相應(yīng)目錄。選擇“時(shí)段內(nèi)資料上傳”按鈕,將自動(dòng)上傳從當(dāng)前選擇日期所在月的1號(hào)到當(dāng)前日期的所有自動(dòng)站資料到省級(jí)服務(wù)器相應(yīng)目錄。此模塊主要采用以下技術(shù)方法:
①調(diào)用DOS下的FTP命令
調(diào)用MS-DOS方式下的FTP命令,連接遠(yuǎn)程服務(wù)器成功后,利用PUT命令進(jìn)行各類資料的補(bǔ)傳。當(dāng)上傳的資料需要更換文件名時(shí),采用“PUT sfile dfile”的命令形式,其中sfile表示本地文件名,dfile表示上傳后更改的文件名。將所有操作命令寫(xiě)入一個(gè)文本文檔中,然后通過(guò)調(diào)用自定義的函數(shù),即可執(zhí)行所有DOS命令操作。
②使用多層循環(huán)語(yǔ)句
對(duì)于時(shí)段內(nèi)資料上傳,其實(shí)現(xiàn)方法也使用雙層循環(huán)語(yǔ)句。外層循環(huán)使用For…Next語(yǔ)句,設(shè)定日期變量i,其值表示從選擇當(dāng)前日期所屬月的1號(hào)到當(dāng)前日期。內(nèi)層循環(huán)使用Do While…Loop語(yǔ)句,每當(dāng)讀取站號(hào)文件一行內(nèi)容,即讀取一個(gè)站號(hào),可補(bǔ)傳該站所有資料,讀完文件,即對(duì)i值所在當(dāng)天所有站資料上傳完畢,然后補(bǔ)傳下一天的信息。
3.4.4 分鐘數(shù)據(jù)監(jiān)控
自動(dòng)站分鐘數(shù)據(jù)一共分為6類,如W、Z、P、R、T、U等文件,位于AwsSource子目錄下,每類分鐘數(shù)據(jù)每個(gè)月形成一個(gè)文件,其內(nèi)容每小時(shí)更新一次。為了使分鐘數(shù)據(jù)備份完整,系統(tǒng)實(shí)現(xiàn)對(duì)分鐘數(shù)據(jù)信息最新時(shí)次的自動(dòng)監(jiān)控,并將監(jiān)控信息輸出到報(bào)表中。此模塊主要采取以下技術(shù)方法:讀取站號(hào)文件zm.txt,每讀取一站,即分別讀取該站6個(gè)分鐘數(shù)據(jù)文件。讀取每個(gè)分鐘數(shù)據(jù)文件時(shí),需要分別打開(kāi)文件,從文件內(nèi)容中查找120個(gè)“-”字符的起始位置,如果查找結(jié)果為5,則說(shuō)明資料備份不完整,讀取相關(guān)信息如日期、時(shí)次、站名、文件名等,將其寫(xiě)入Excel報(bào)表文件。如果結(jié)果不為5,則不讀取任何信息。
系統(tǒng)本著業(yè)務(wù)需要而設(shè)計(jì),安裝操作較為簡(jiǎn)便,運(yùn)行安全穩(wěn)定。自投入業(yè)務(wù)運(yùn)行半年以來(lái),經(jīng)過(guò)多次檢驗(yàn),均能準(zhǔn)確成功地實(shí)現(xiàn)各部分功能如資料監(jiān)控、報(bào)表輸出、自動(dòng)補(bǔ)傳等,提高了地面自動(dòng)站資料的異地備份完整率和及時(shí)率,為各項(xiàng)氣象業(yè)務(wù)服務(wù)和氣象科研開(kāi)發(fā)提供及時(shí)、準(zhǔn)確、可靠的資料,有效改善資料缺失給各項(xiàng)工作帶來(lái)的不便。
各地面氣象自動(dòng)站所處地理位置比較分散,為使地面自動(dòng)站資料異地備份更加完整與及時(shí),提高資料備份效率,不僅需要各有關(guān)部門(mén)之間的相互配合,而且在軟件開(kāi)發(fā)方面也需要不斷完善,使其自動(dòng)化程度更高,操作和維護(hù)更為簡(jiǎn)便。
[1] 卞志強(qiáng).Visual Basic網(wǎng)絡(luò)程序設(shè)計(jì)[M].北京:人民郵電出版社,2003:352.
[2] 羅剛君.Excel VBA程序開(kāi)發(fā)[M].北京:電子工業(yè)出版社,2009:205.
P415.1+2
B
1003-6598(2011)06-0040-04
2011-11-17
符鳳平(1969-),女,高工,主要從事信息網(wǎng)絡(luò)與技術(shù)保障工作。