樊 奇,徐遠(yuǎn)遠(yuǎn),白 婷
(1.河南省氣象探測數(shù)據(jù)中心,鄭州 450003;2.河南省人工影響天氣中心,鄭州 450003)
隨著地面氣象觀測全面實(shí)現(xiàn)自動(dòng)化,市縣級(jí)氣象局工作重點(diǎn)逐漸從觀測業(yè)務(wù)向裝備保障業(yè)務(wù)轉(zhuǎn)變,對相關(guān)的裝備保障業(yè)務(wù)系統(tǒng)提出了新要求[1]。
河南省自行開發(fā)的氣象技術(shù)裝備監(jiān)控管理系統(tǒng),因其監(jiān)控時(shí)效性好、實(shí)用性強(qiáng),備受一線保障人員的信賴,至今已在各級(jí)氣象裝備保障部門使用超過10 a,但受限于時(shí)代、技術(shù)等原因,該系統(tǒng)存在功能較少、人機(jī)界面不夠友好等問題,已逐漸無法滿足氣象現(xiàn)代化的需要,亟需進(jìn)行升級(jí)和功能擴(kuò)展。
目前具備裝備保障功能的業(yè)務(wù)系統(tǒng)較多,如中國氣象局推廣的綜合氣象觀測運(yùn)行監(jiān)控系統(tǒng)(簡稱ASOM)、省級(jí)裝備保障業(yè)務(wù)一體化平臺(tái)和綜合氣象觀測業(yè)務(wù)運(yùn)行信息化平臺(tái)等[2-4],雖然這些系統(tǒng)設(shè)計(jì)理念和技術(shù)十分先進(jìn),且功能全面,但由于其使用對象為全國各級(jí)用戶,功能上更加側(cè)重于管理和統(tǒng)計(jì)方面,且缺乏專門的資料下載和論壇功能。
國內(nèi)各省份根據(jù)自身實(shí)際情況開發(fā)了一些裝備保障系統(tǒng):如海南省姜小云等開發(fā)了ASOM二次監(jiān)控平臺(tái),解決了自動(dòng)氣象站監(jiān)控不及時(shí)等問題[5];江西省李嫦等開發(fā)了基于ASOM的綜合告警平臺(tái),實(shí)現(xiàn)了故障設(shè)備的告警信息實(shí)時(shí)顯示、發(fā)布等[6];四川省紀(jì)奎秀等在對比分析ASOM等現(xiàn)有監(jiān)控系統(tǒng)后,對故障智能判斷、故障數(shù)據(jù)統(tǒng)計(jì)等功能進(jìn)行了改進(jìn),開發(fā)了適用于本單位的雷電探測設(shè)備運(yùn)行監(jiān)控系統(tǒng)[7]。各省氣象部門因外部環(huán)境或內(nèi)部組織機(jī)構(gòu)的差別,對裝備保障業(yè)務(wù)系統(tǒng)的需求并不相同,因此在開展裝備保障業(yè)務(wù)中使用本省自主或二次開發(fā)的系統(tǒng)更加方便。
文章根據(jù)基層保障人員的反饋意見和河南省氣象探測數(shù)據(jù)中心多年的裝備保障經(jīng)驗(yàn),確定新系統(tǒng)的具體設(shè)計(jì)目標(biāo)如下:
1)實(shí)現(xiàn)地面氣象裝備運(yùn)行的實(shí)時(shí)監(jiān)控,按省、市、縣三級(jí)進(jìn)行權(quán)限劃分,滿足技術(shù)保障人員的區(qū)劃管理有限顯示的要求;
2)實(shí)現(xiàn)對觀測數(shù)據(jù)及設(shè)備運(yùn)行狀態(tài)的查詢,滿足技術(shù)保障人員在同一個(gè)平臺(tái)上的故障分析和排除;
3)實(shí)現(xiàn)對其他業(yè)務(wù)網(wǎng)址的導(dǎo)航;
4)建立氣象裝備技術(shù)保障論壇,實(shí)現(xiàn)按照裝備類型劃分區(qū)塊,用戶可提問求助、發(fā)帖分享技術(shù)和經(jīng)驗(yàn)等,在保障論壇內(nèi)使用實(shí)名制登陸,并根據(jù)故障處理情況給用戶建立積分累計(jì)記錄;
5)建立文件下載、上傳系統(tǒng),實(shí)現(xiàn)對各類地面氣象觀測設(shè)備的產(chǎn)品說明書、用戶手冊、使用教程(文檔、圖片、視頻等)等資料的下載支持;
6)建立信息化辦公,對河南省探測中心的裝備流轉(zhuǎn)進(jìn)行管理。
根據(jù)河南省氣象裝備保障業(yè)務(wù)的組織結(jié)構(gòu),結(jié)合系統(tǒng)的設(shè)計(jì)目標(biāo),考慮到用戶及數(shù)據(jù)量不太大的特點(diǎn),系統(tǒng)采用如下解決方案[8-10]:
1)服務(wù)器端:操作系統(tǒng)為Widows Server 2008 R2,采用Apache 2.4.23提供Web服務(wù);
2)客戶端:計(jì)算機(jī),瀏覽器(Chrome、火狐、360極速、Edge);
3)開發(fā)模式:B-S;
4)數(shù)據(jù)庫:MySQL、SQL Server 2008;
5)開發(fā)語言:PHP+HTML5+JavaScript。
系統(tǒng)采用目前使用最廣泛的開源軟件Apache實(shí)現(xiàn)Web服務(wù),由于Apache的官方網(wǎng)站并未提供安裝包,需要手動(dòng)進(jìn)行安裝。將Apache安裝包解壓到安裝目錄后,對Conf文件夾下的配置文件http.conf進(jìn)行修改。完成配置后,打開cmd命令窗口,進(jìn)入到"d:/amp/apache/bin"目錄下,通過dos命令安裝Apache服務(wù)即可。
為PHP添加MySQL擴(kuò)展時(shí)僅需在php.ini文件中進(jìn)行設(shè)置。開發(fā)所用的PHP 5.6.31是64位版本,而微軟官方提供的Microsoft Drivers 3.2 for PHP for SQL Server不支持64位的PHP,因此系統(tǒng)采用非官方的擴(kuò)展驅(qū)動(dòng)文件。將對應(yīng)PHP5.6版本的dll文件解壓至PHP安裝目錄的ext文件夾中,并在php.ini文件中添加擴(kuò)展。完成后,安裝Microsoft SQL Server 2012 NativeClient以及ODBC Driver 11 for SQL Server驅(qū)動(dòng),重啟Apache服務(wù)即可。
根據(jù)系統(tǒng)設(shè)計(jì)目標(biāo),系統(tǒng)按功能可分為登錄管理、裝備監(jiān)控、統(tǒng)計(jì)查詢、站點(diǎn)信息、網(wǎng)址導(dǎo)航、下載中心、保障論壇、辦公區(qū)等模塊。
系統(tǒng)根據(jù)功能模塊建立數(shù)據(jù)表,由于不同類型裝備所需的字段有差別,為便于管理,系統(tǒng)為每種類型裝備均建立1個(gè)站點(diǎn)信息表、1個(gè)站點(diǎn)信息表和1個(gè)故障記錄表。
保障論壇功能所用的數(shù)據(jù)庫采用Discuz!論壇工具自動(dòng)生成。
系統(tǒng)程序主要分為3個(gè)部分:控制器(Controller)、模型(Model)、視圖(View)??刂破黜憫?yīng)用戶請求,調(diào)用模型訪問數(shù)據(jù)庫,然后將準(zhǔn)備好的視圖或數(shù)據(jù)反饋給用戶,從而實(shí)現(xiàn)頁面的跳轉(zhuǎn)或數(shù)據(jù)服務(wù)。
系統(tǒng)采用類的繼承和session技術(shù)實(shí)現(xiàn)用戶登錄驗(yàn)證功能,實(shí)現(xiàn)原理如圖1所示??刂破鱈oginController作為登錄驗(yàn)證唯一入口,調(diào)用模型User的靜態(tài)方法login,將用戶輸入的信息與數(shù)據(jù)庫中的信息進(jìn)行對比,根據(jù)結(jié)果控制頁面跳轉(zhuǎn),并將登錄信息寫入session。其他需進(jìn)行用戶登錄驗(yàn)證的控制器類繼承IndexController,在IndexController中使用構(gòu)造函數(shù)調(diào)用模型User的靜態(tài)方法isLogin,讀取session數(shù)據(jù),判斷用戶是否登錄,從而限制用戶未登錄而直接訪問,保證系統(tǒng)安全。
圖1 用戶登錄驗(yàn)證功能實(shí)現(xiàn)原理
監(jiān)控模塊后端程序以土壤水分設(shè)備為例,實(shí)現(xiàn)流程如圖2所示。系統(tǒng)逐站掃描前一時(shí)次的土壤水分?jǐn)?shù)據(jù),若無數(shù)據(jù),直接判定該設(shè)備狀態(tài)為故障,并生成相應(yīng)故障代碼;若有數(shù)據(jù),則對各層數(shù)據(jù)逐一判斷是否在正常范圍內(nèi),從而判定該設(shè)備狀態(tài)并生成故障代碼,最終將判定結(jié)果寫入站點(diǎn)狀態(tài)表中。
裝備監(jiān)控功能的地圖和列表展示模式分別基于高德地圖JS API和DataTables表格插件開發(fā)。首先加載DataTables表格插件并初始化表格對象,通過try命令嘗試加載高德地圖JS API,以此判斷用戶是否連接到互聯(lián)網(wǎng),若成功則對地圖、海量點(diǎn)標(biāo)記、文本標(biāo)記等對象進(jìn)行初始化,并為地圖添加縮放響應(yīng)事件和點(diǎn)擊響應(yīng)事件[11]。
圖2 土壤水分設(shè)備狀態(tài)后端判斷程序流程
初始化完成后,通過設(shè)置定時(shí)任務(wù)實(shí)現(xiàn)監(jiān)控?cái)?shù)據(jù)的刷新,即使用Ajax向后端程序請求數(shù)據(jù),在請求成功函數(shù)中對數(shù)據(jù)進(jìn)行解析、處理,調(diào)用DataTables表格插件的接口函數(shù)清除并更新表格數(shù)據(jù),然后根據(jù)各設(shè)備的故障時(shí)限分別為超時(shí)的行設(shè)置紅色背景,最后自動(dòng)調(diào)整各表格列寬,使顯示效果達(dá)到最佳。
辦公區(qū)模塊主要功能包括未完成事項(xiàng)提醒和歷史收發(fā)記錄查詢?!靶陆ㄓ涗浭马?xiàng)”和“未完成事項(xiàng)完善”共用后臺(tái)處理程序,用戶將表單數(shù)據(jù)提交至服務(wù)器后,后端程序?qū)κ马?xiàng)中各設(shè)備的應(yīng)交付數(shù)量與實(shí)際交付數(shù)量進(jìn)行比對,判斷該事項(xiàng)是否完成,并對數(shù)據(jù)表scheme、trade、equipment、incomplete進(jìn)行更新,然后更新辦公區(qū)頁面數(shù)據(jù)。
在添加事項(xiàng)進(jìn)展記錄時(shí),為避免因設(shè)備信息填寫問題而導(dǎo)致事項(xiàng)完成情況判斷出錯(cuò),其頁面入口設(shè)置在未完成事項(xiàng)提醒列表中。系統(tǒng)根據(jù)用戶點(diǎn)擊所在的行,將目標(biāo)事項(xiàng)的信息傳遞到彈出的“未完成事項(xiàng)完善”頁面,用戶僅需填寫收發(fā)信息和設(shè)備數(shù)量即可。
在河南省氣象局的支持下,河南省地面自動(dòng)氣象站綜合管理系統(tǒng)已應(yīng)用于河南省氣象探測數(shù)據(jù)中心及各市、縣氣象局裝備保障業(yè)務(wù)部門。
升級(jí)后的系統(tǒng)可采用列表和地圖兩種展示方式,實(shí)現(xiàn)對國家級(jí)自動(dòng)站、省級(jí)常規(guī)站、土壤水分、氣溶膠、農(nóng)業(yè)小氣候、作物觀測、閃電定位儀、交通氣象共8種類型設(shè)備的實(shí)時(shí)監(jiān)控,并增加了下載中心、保障論壇等功能。
系統(tǒng)自2019-12-17上線至今,運(yùn)行穩(wěn)定可靠,未發(fā)生軟件故障,為河南省氣象裝備保障業(yè)務(wù)的開展提供了有力支撐。
根據(jù)各級(jí)用戶的反饋意見,開發(fā)人員先后對系統(tǒng)進(jìn)行了多次改進(jìn)和升級(jí),但仍存在部分問題,如裝備監(jiān)控模塊的地圖模式需要連接互聯(lián)網(wǎng)才能正常使用,影響了部分用戶的使用體驗(yàn)。未來開發(fā)小組計(jì)劃采用離線地圖包,重新開發(fā)裝備監(jiān)控頁面,進(jìn)一步完善系統(tǒng)。