樊 奇,徐遠遠,白 婷
(1.河南省氣象探測數據中心,鄭州 450003;2.河南省人工影響天氣中心,鄭州 450003)
隨著地面氣象觀測全面實現自動化,市縣級氣象局工作重點逐漸從觀測業務向裝備保障業務轉變,對相關的裝備保障業務系統提出了新要求[1]。
河南省自行開發的氣象技術裝備監控管理系統,因其監控時效性好、實用性強,備受一線保障人員的信賴,至今已在各級氣象裝備保障部門使用超過10 a,但受限于時代、技術等原因,該系統存在功能較少、人機界面不夠友好等問題,已逐漸無法滿足氣象現代化的需要,亟需進行升級和功能擴展。
目前具備裝備保障功能的業務系統較多,如中國氣象局推廣的綜合氣象觀測運行監控系統(簡稱ASOM)、省級裝備保障業務一體化平臺和綜合氣象觀測業務運行信息化平臺等[2-4],雖然這些系統設計理念和技術十分先進,且功能全面,但由于其使用對象為全國各級用戶,功能上更加側重于管理和統計方面,且缺乏專門的資料下載和論壇功能。
國內各省份根據自身實際情況開發了一些裝備保障系統:如海南省姜小云等開發了ASOM二次監控平臺,解決了自動氣象站監控不及時等問題[5];江西省李嫦等開發了基于ASOM的綜合告警平臺,實現了故障設備的告警信息實時顯示、發布等[6];四川省紀奎秀等在對比分析ASOM等現有監控系統后,對故障智能判斷、故障數據統計等功能進行了改進,開發了適用于本單位的雷電探測設備運行監控系統[7]。各省氣象部門因外部環境或內部組織機構的差別,對裝備保障業務系統的需求并不相同,因此在開展裝備保障業務中使用本省自主或二次開發的系統更加方便。
文章根據基層保障人員的反饋意見和河南省氣象探測數據中心多年的裝備保障經驗,確定新系統的具體設計目標如下:
1)實現地面氣象裝備運行的實時監控,按省、市、縣三級進行權限劃分,滿足技術保障人員的區劃管理有限顯示的要求;
2)實現對觀測數據及設備運行狀態的查詢,滿足技術保障人員在同一個平臺上的故障分析和排除;
3)實現對其他業務網址的導航;
4)建立氣象裝備技術保障論壇,實現按照裝備類型劃分區塊,用戶可提問求助、發帖分享技術和經驗等,在保障論壇內使用實名制登陸,并根據故障處理情況給用戶建立積分累計記錄;
5)建立文件下載、上傳系統,實現對各類地面氣象觀測設備的產品說明書、用戶手冊、使用教程(文檔、圖片、視頻等)等資料的下載支持;
6)建立信息化辦公,對河南省探測中心的裝備流轉進行管理。
根據河南省氣象裝備保障業務的組織結構,結合系統的設計目標,考慮到用戶及數據量不太大的特點,系統采用如下解決方案[8-10]:
1)服務器端:操作系統為Widows Server 2008 R2,采用Apache 2.4.23提供Web服務;
2)客戶端:計算機,瀏覽器(Chrome、火狐、360極速、Edge);
3)開發模式:B-S;
4)數據庫:MySQL、SQL Server 2008;
5)開發語言:PHP+HTML5+JavaScript。
系統采用目前使用最廣泛的開源軟件Apache實現Web服務,由于Apache的官方網站并未提供安裝包,需要手動進行安裝。將Apache安裝包解壓到安裝目錄后,對Conf文件夾下的配置文件http.conf進行修改。完成配置后,打開cmd命令窗口,進入到"d:/amp/apache/bin"目錄下,通過dos命令安裝Apache服務即可。
為PHP添加MySQL擴展時僅需在php.ini文件中進行設置。開發所用的PHP 5.6.31是64位版本,而微軟官方提供的Microsoft Drivers 3.2 for PHP for SQL Server不支持64位的PHP,因此系統采用非官方的擴展驅動文件。將對應PHP5.6版本的dll文件解壓至PHP安裝目錄的ext文件夾中,并在php.ini文件中添加擴展。完成后,安裝Microsoft SQL Server 2012 NativeClient以及ODBC Driver 11 for SQL Server驅動,重啟Apache服務即可。
根據系統設計目標,系統按功能可分為登錄管理、裝備監控、統計查詢、站點信息、網址導航、下載中心、保障論壇、辦公區等模塊。
系統根據功能模塊建立數據表,由于不同類型裝備所需的字段有差別,為便于管理,系統為每種類型裝備均建立1個站點信息表、1個站點信息表和1個故障記錄表。
保障論壇功能所用的數據庫采用Discuz!論壇工具自動生成。
系統程序主要分為3個部分:控制器(Controller)、模型(Model)、視圖(View)。控制器響應用戶請求,調用模型訪問數據庫,然后將準備好的視圖或數據反饋給用戶,從而實現頁面的跳轉或數據服務。
系統采用類的繼承和session技術實現用戶登錄驗證功能,實現原理如圖1所示。控制器LoginController作為登錄驗證唯一入口,調用模型User的靜態方法login,將用戶輸入的信息與數據庫中的信息進行對比,根據結果控制頁面跳轉,并將登錄信息寫入session。其他需進行用戶登錄驗證的控制器類繼承IndexController,在IndexController中使用構造函數調用模型User的靜態方法isLogin,讀取session數據,判斷用戶是否登錄,從而限制用戶未登錄而直接訪問,保證系統安全。

圖1 用戶登錄驗證功能實現原理
監控模塊后端程序以土壤水分設備為例,實現流程如圖2所示。系統逐站掃描前一時次的土壤水分數據,若無數據,直接判定該設備狀態為故障,并生成相應故障代碼;若有數據,則對各層數據逐一判斷是否在正常范圍內,從而判定該設備狀態并生成故障代碼,最終將判定結果寫入站點狀態表中。
裝備監控功能的地圖和列表展示模式分別基于高德地圖JS API和DataTables表格插件開發。首先加載DataTables表格插件并初始化表格對象,通過try命令嘗試加載高德地圖JS API,以此判斷用戶是否連接到互聯網,若成功則對地圖、海量點標記、文本標記等對象進行初始化,并為地圖添加縮放響應事件和點擊響應事件[11]。

圖2 土壤水分設備狀態后端判斷程序流程
初始化完成后,通過設置定時任務實現監控數據的刷新,即使用Ajax向后端程序請求數據,在請求成功函數中對數據進行解析、處理,調用DataTables表格插件的接口函數清除并更新表格數據,然后根據各設備的故障時限分別為超時的行設置紅色背景,最后自動調整各表格列寬,使顯示效果達到最佳。
辦公區模塊主要功能包括未完成事項提醒和歷史收發記錄查詢。“新建記錄事項”和“未完成事項完善”共用后臺處理程序,用戶將表單數據提交至服務器后,后端程序對事項中各設備的應交付數量與實際交付數量進行比對,判斷該事項是否完成,并對數據表scheme、trade、equipment、incomplete進行更新,然后更新辦公區頁面數據。
在添加事項進展記錄時,為避免因設備信息填寫問題而導致事項完成情況判斷出錯,其頁面入口設置在未完成事項提醒列表中。系統根據用戶點擊所在的行,將目標事項的信息傳遞到彈出的“未完成事項完善”頁面,用戶僅需填寫收發信息和設備數量即可。
在河南省氣象局的支持下,河南省地面自動氣象站綜合管理系統已應用于河南省氣象探測數據中心及各市、縣氣象局裝備保障業務部門。
升級后的系統可采用列表和地圖兩種展示方式,實現對國家級自動站、省級常規站、土壤水分、氣溶膠、農業小氣候、作物觀測、閃電定位儀、交通氣象共8種類型設備的實時監控,并增加了下載中心、保障論壇等功能。
系統自2019-12-17上線至今,運行穩定可靠,未發生軟件故障,為河南省氣象裝備保障業務的開展提供了有力支撐。
根據各級用戶的反饋意見,開發人員先后對系統進行了多次改進和升級,但仍存在部分問題,如裝備監控模塊的地圖模式需要連接互聯網才能正常使用,影響了部分用戶的使用體驗。未來開發小組計劃采用離線地圖包,重新開發裝備監控頁面,進一步完善系統。