陳麗麗
(1. 同濟(jì)大學(xué) 上海 200092;2. 天津市武清區(qū)氣象局 天津 301700)
天津市武清區(qū)地處京津之間,位于京津之間大氣污染物傳輸?shù)闹饕ǖ?,屬于多霧地區(qū),具有獨特的氣象場和特殊的空氣污染特征,研究該區(qū)大氣污染特征以及氣象條件導(dǎo)致的污染物輸送,對于北京和天津區(qū)域大氣污染的形成和大氣污染物輸送具有重要意義。自 2006年夏季開始,中國環(huán)境科學(xué)院大氣環(huán)境研究所、北京大學(xué)大氣物理學(xué)院、中國氣象科學(xué)研究院等科研機(jī)構(gòu)和大專院校陸續(xù)在武清區(qū)氣象局固定開展野外氣象以及大氣污染物綜合觀測,并取得了大量具有一定參考價值的觀測、實驗數(shù)據(jù)。隨著政府和公眾對大氣環(huán)境問題的關(guān)注,大氣環(huán)境監(jiān)測變得愈加重要,其現(xiàn)代化程度也成為實現(xiàn)氣象現(xiàn)代化的關(guān)鍵節(jié)點。隨著業(yè)務(wù)開展必將產(chǎn)生大量的觀測和科學(xué)實驗數(shù)據(jù)。因此,為了使多年來取得的各項觀測數(shù)據(jù)得到有效保存,方便科研人員使用,發(fā)揮其重要的科學(xué)價值,需要開發(fā)建設(shè)一套武清區(qū)大氣環(huán)境綜合觀測數(shù)據(jù)管理平臺。
在武清大氣環(huán)境綜合觀測站近 1年的觀測基礎(chǔ)上,開發(fā)一套完善的數(shù)據(jù)庫管理系統(tǒng)和監(jiān)控顯示平臺,實現(xiàn)對環(huán)境數(shù)據(jù)的現(xiàn)代化管理。主要功能包括:觀測數(shù)據(jù)自動入庫、存儲與調(diào)用,人機(jī)交互式質(zhì)量控制,統(tǒng)計分析模塊以及在線查詢、顯示和下載等。
收集武清大氣環(huán)境綜合觀測方面所有觀測、實驗數(shù)據(jù),分析各類數(shù)據(jù)的采集方式和存儲格式,建立大氣環(huán)境綜合觀測數(shù)據(jù)庫,并開發(fā)數(shù)據(jù)入庫軟件,實現(xiàn)數(shù)據(jù)的自動入庫,同時開發(fā)武清大氣環(huán)境綜合觀測數(shù)據(jù)管理平臺,實現(xiàn)歷史數(shù)據(jù)和實時數(shù)據(jù)的查詢與顯示、質(zhì)量控制、數(shù)據(jù)管理和下載等功能。
圖1 系統(tǒng)部署圖Fig.1 System deployment
整個系統(tǒng)由多臺機(jī)器組成一個局域網(wǎng)。系統(tǒng)部署在服務(wù)器上,數(shù)據(jù)庫既可以部署在系統(tǒng)服務(wù)器上,也可以單獨部署在另外一臺服務(wù)器上。
軟件采用先進(jìn)的技術(shù)理念和實現(xiàn)方法。軟件設(shè)計結(jié)構(gòu)采用MVC的標(biāo)準(zhǔn)3層架構(gòu),如圖3所示。
在表現(xiàn)層,頁面內(nèi)容劃分采用DIV+CSS方式,拋棄了傳統(tǒng)的表格布局方式,在頁面操作上,選用了目前最先進(jìn)的腳本框架JQuery,并大量采用AJAX技術(shù)。
在邏輯層,采用 SpringMVC,使用注入和面向切面(AOP)編程的方式,大大增強(qiáng)了整個系統(tǒng)代碼的靈活性,有效支持了面向服務(wù)的編程理念。
在實體層,采用具備跨數(shù)據(jù)庫功能的 Hibernate框架,有效減少了冗余數(shù)據(jù)庫操作代碼,提高了代碼效率。
此外,軟件采用 SpringMVC和 Hinbernate的最新版本,減少了這兩個框架傳統(tǒng)上繁雜的配置文件,而采用標(biāo)注(Annotation)的方式,使代碼更為簡潔、高效。
圖2 整體功能結(jié)構(gòu)Fig.2 Overall functional structure
圖3 技術(shù)架構(gòu)圖Fig.3 Technical architecture
在開發(fā)方法上,采用敏捷開發(fā)模式,開展快速原型和迭代開發(fā)。采用多個迭代周期的模式,先選擇一小部分具有代表性的功能進(jìn)行開發(fā),讓用戶能快速體驗到系統(tǒng)的最終使用效果,進(jìn)而提出修改,再進(jìn)行第二輪的修改和迭代。
4.1.1 ACCESS數(shù)據(jù)錄入
①標(biāo)識
ACCESS_DATA_INPUT
②用例的參與者與發(fā)起者
用例發(fā)起者為系統(tǒng)計劃任務(wù);用例參與者為數(shù)據(jù)庫。
③功能概述
系統(tǒng)程序根據(jù)各類數(shù)據(jù)文件名和采集文件規(guī)則解析錄入。
④主事件流
確保網(wǎng)絡(luò)連通,然后運行系統(tǒng)程序;系統(tǒng)數(shù)據(jù)錄入提示錄入成功或者失敗。
⑤異常流
數(shù)據(jù)庫無法正常連接,彈出“數(shù)據(jù)庫”無法連接提示框;有重復(fù)數(shù)據(jù)時,不會重復(fù)錄入。
⑥前提條件和后置條件
前提條件為數(shù)據(jù)庫正常連接;后置條件為數(shù)據(jù)錄入。
4.1.2 TXT數(shù)據(jù)錄入
①標(biāo)識
TXT_DATA_INPUT
②用例發(fā)起者和參與者
發(fā)起者是系統(tǒng)計劃任務(wù);參與者為數(shù)據(jù)庫。
③功能概述
根據(jù)配置文件,系統(tǒng)實時采集數(shù)據(jù)、解析及計算,錄入數(shù)據(jù)庫相應(yīng)表。錄入程序會根據(jù)各類數(shù)據(jù)的文件名和采集文件規(guī)則解析錄入。
④主事件流
配置路徑,啟動系統(tǒng)程序;如果錄入過程中有錯誤,記錄日志,并繼續(xù)向下錄入。
⑤子事件流
在啟動前,可以先測試數(shù)據(jù)庫連接。
⑥異常流
錄入中斷。
⑦前提條件和后置條件
前提條件為網(wǎng)絡(luò)連接正常;后置條件為數(shù)據(jù)錄入。
4.2.1 實時數(shù)據(jù)查詢(見圖4)
①標(biāo)識
REALTIME_SEARCH
②用例發(fā)起者和參與者
登錄后用戶是用例發(fā)起者,用例參與者是數(shù)據(jù)庫。
③功能概述
系統(tǒng)根據(jù)服務(wù)器的系統(tǒng)時間以及用戶操作確定查詢條件(如前一時次、觀測時間、后一時次等),然后系統(tǒng)自動查詢,顯示查詢結(jié)果。
④主事件流
用戶登錄;選擇數(shù)據(jù)查詢下的實時數(shù)據(jù);顯示形式(柱狀立體圖);到數(shù)據(jù)錄入數(shù)據(jù)庫中檢索數(shù)據(jù)信息;顯示查詢結(jié)果;可以查詢污染物濃度限值。
⑤異常流
數(shù)據(jù)庫中沒有相應(yīng)時刻的數(shù)據(jù),界面顯示無數(shù)據(jù)信息。
⑥后置條件
查詢結(jié)果顯示。
圖 4 實時數(shù)據(jù)查詢示意圖Fig.4 Schematic diagram of realtime data query
4.2.2 歷史分鐘數(shù)據(jù)查詢(見圖5)
①標(biāo)識
MINUTE_SEARCH
②用例發(fā)起者和參與者
此用例的發(fā)起者是認(rèn)證用戶;參與者是數(shù)據(jù)庫。
③功能概述
查詢分鐘歷史數(shù)據(jù),時間間隔為6,h以內(nèi)。
④主事件流
用戶登錄;選擇數(shù)據(jù)查詢→歷史數(shù)據(jù)→分鐘數(shù)據(jù);顯示形式,數(shù)據(jù)圖形(折線圖、柱狀圖、散點圖)和數(shù)據(jù)表;到數(shù)據(jù)錄入數(shù)據(jù)庫中檢索數(shù)據(jù)信息;顯示查詢結(jié)果。
⑤異常流
數(shù)據(jù)庫中沒有相應(yīng)的數(shù)據(jù),則在界面上提示無數(shù)據(jù)信息。
⑥后置條件
查詢結(jié)果顯示。
圖5 3分鐘數(shù)據(jù)查詢示意圖Fig.5 Schematic diagram of 3 min data query
4.2.3 小時均值查詢(示意圖見圖6)
圖6 4小時均值數(shù)據(jù)查詢示意圖Fig.6 Schematic diagram of 4,h mean value data query
①標(biāo)識
HOUR_SEARCH
②用例發(fā)起者和參與者
此用例的發(fā)起者是認(rèn)證用戶;參與者是數(shù)據(jù)庫。
③功能概述
查詢小時均值歷史數(shù)據(jù),時間間隔為72,h以內(nèi)。
④主事件流
用戶登錄;選擇數(shù)據(jù)查詢→歷史數(shù)據(jù)→小時均值數(shù)據(jù);顯示形式,數(shù)據(jù)圖形(折線圖、柱狀圖、散點圖)和數(shù)據(jù)表;到數(shù)據(jù)錄入數(shù)據(jù)庫中檢索數(shù)據(jù)信息;顯示查詢結(jié)果。
⑤異常流
數(shù)據(jù)庫中沒有相應(yīng)的數(shù)據(jù),則在界面上提示無數(shù)據(jù)信息。
⑥后置條件
查詢結(jié)果顯示。
系統(tǒng)日均值、月均值、年均值數(shù)據(jù)查詢與此類似。
4.3.1 標(biāo)識
DATA_DOWNLOAD
4.3.2 用例發(fā)起者和參與者
數(shù)據(jù)操作員是用例發(fā)起者。
4.3.4 功能概述
下載統(tǒng)計分析后的分鐘數(shù)據(jù)、小時均值數(shù)據(jù)、日均值數(shù)據(jù)、月均值數(shù)據(jù)和年均值數(shù)據(jù)。
4.3.5 主事件流
用戶登陸;選擇數(shù)據(jù)下載;選擇數(shù)據(jù)類型、起始時間、結(jié)束時間等條件;點擊生成下載文件,顯示可下載數(shù)據(jù)條目;選擇數(shù)據(jù),點擊下載;生成所選數(shù)據(jù)的下載的文檔(Excel)。
4.3.6 子事件流
當(dāng)選擇不同時間(均值)時,起始時間和結(jié)束時間精確度做相應(yīng)調(diào)整。
4.3.7 異常流
沒有相應(yīng)的數(shù)據(jù)可供下載,則提示沒有數(shù)據(jù)。
4.3.8 前提條件
統(tǒng)計分析數(shù)據(jù)已生成。
4.3.9 后置條件
數(shù)據(jù)下載。
圖7 數(shù)據(jù)下載示意圖Fig.7 Schematic diagram of data downloading
圖8 預(yù)報產(chǎn)品頁面Fig.8 Page of a NWF product
4.4.1 標(biāo)識
FORECAST_PRODUCE
4.4.2 用例發(fā)起者和參與者
認(rèn)證用戶是用例發(fā)起者和參與者。
4.4.3 功能概述
預(yù)報產(chǎn)品信息顯示,柱狀立體圖和表格兩種形式。
4.4.4 主事件流
用戶登錄,點擊預(yù)報產(chǎn)品;顯示預(yù)報產(chǎn)品信息。
4.4.5 后置條件
預(yù)報產(chǎn)品顯示。
4.5.1 值班記錄錄入(見圖9)
①標(biāo)識
DUTY_INPUT
②用例參與者與發(fā)起者
用例發(fā)起者是認(rèn)證用戶,參與者是數(shù)據(jù)庫。
③功能概述
值班人員記錄值班信息。
④主事件流
值班人員登錄系統(tǒng);選擇值班記錄錄入,確認(rèn)時間(日);填寫儀器運行情況、有無更換維修和天氣情況等信息;保存值班記錄。
⑤后置條件
當(dāng)日值班記錄信息錄入系統(tǒng)。
圖9 值班記錄錄入示意圖Fig.9 Schematic diagram of duty record inputting
4.5.2 值班記錄查看(見圖10)
①標(biāo)識
DUTY_VIEW
②用例發(fā)起者和參與者
認(rèn)證用戶是用例發(fā)起者,用例參與者是數(shù)據(jù)庫。
③功能概述
用戶按日查詢值班記錄。
④主事件流
用戶登錄;導(dǎo)航到值班管理模塊;選擇值班記錄查詢;輸入查詢條件,并點擊查詢;自動獲取數(shù)據(jù)上傳情況;顯示所選日期的值班記錄信息。
⑤前提條件
當(dāng)日值班記錄已經(jīng)填寫。
⑥后置條件
值班記錄顯示。
圖10 值班記錄查看示意圖Fig.10 Schematic diagram of duty record query
4.6.1 用戶注冊管理(見圖11)
①標(biāo)識
USERMGT_REG
②用例發(fā)起者和參與者
用例的發(fā)起者為認(rèn)證用戶。
③功能概述
用戶注冊,填寫級別信息,等待管理員審批。
④主事件流
用戶訪問網(wǎng)站,選擇用戶注冊;填寫用戶注冊基本信息;提交注冊信息。
⑤子事件流
在“填寫用戶注冊基本信息”時,點擊取消按鈕,取消注冊。
⑥異常流
注冊用戶名稱已經(jīng)存在,無法注冊。
⑦后置條件
用戶注冊信息已經(jīng)提交。
圖11 用戶注冊示意圖Fig.11 Schematic diagram of user registration
4.6.2 用戶級別(角色)設(shè)置(見圖12)
①標(biāo)識
USERMGT_ROLE
②用例發(fā)起者與參與者
系統(tǒng)管理員是用例發(fā)起者,數(shù)據(jù)庫是用例參與者。
③功能概述
系統(tǒng)管理員為已注冊用戶分派更高級的權(quán)限。
④主事件流
管理員登陸;選擇用戶級別設(shè)置;顯示所有用戶/級別;為用戶分派權(quán)限;顯示分派后的結(jié)果。
圖12 用戶級別設(shè)置示意圖Fig.12 Schematic diagram of user level setting
4.6.3 級別權(quán)限設(shè)置(見圖13)
①標(biāo)識
PRI_SET
②用例發(fā)起者和參與者
用例發(fā)起者是系統(tǒng)管理員,參與者是數(shù)據(jù)庫。
③功能概述
設(shè)置用戶級所能具有的功能,功能點是按照菜單分步。
④主事件流
用戶登陸;選擇用戶管理>級別權(quán)限設(shè)置;選擇需要修改權(quán)限的用戶;為此用戶選擇功能點;點擊確認(rèn)保存結(jié)果。
⑤子事件流
點擊取消,不再修改。
⑥前提條件
已經(jīng)存在用戶。
⑦后置條件
用戶級別的權(quán)限被修改。
圖13 級別權(quán)限設(shè)置示意圖Fig.13 Schematic diagram of permission setting
4.6.4 用戶登錄
①標(biāo)識
USR_LOGIN
②用例發(fā)起者和參與者
未認(rèn)證用戶是發(fā)起者,參與者是數(shù)據(jù)庫。
③功能概述
用戶輸入賬戶和密碼,系統(tǒng)驗證后,用戶登錄。
④主事件流
用戶輸入賬戶和密碼;系統(tǒng)與數(shù)據(jù)庫中的賬戶與密碼驗證;驗證通過;將登錄成功的信息記錄日志;獲取用戶級別;跳轉(zhuǎn)到改用戶級別對應(yīng)的登錄頁面。
⑤子事件流
驗證不通過,則提示用戶登錄失敗,保持在原有界面。
⑥異常流
無法連接數(shù)據(jù),提示數(shù)據(jù)庫連接失敗。
⑦界面要求
包含賬戶和密碼的輸入框;普通頁面響應(yīng)時間應(yīng)在 4,s之內(nèi)。
該平臺實現(xiàn)了武清大氣環(huán)境相關(guān)觀測數(shù)據(jù)的智能化管理,確保了科研數(shù)據(jù)安全管理和使用,有效降低了管理成本和使用風(fēng)險,同時為科研人員提供了更多的數(shù)據(jù)信息和資源,提高了基層氣象局的科技創(chuàng)新能力,并通過項目開發(fā)進(jìn)一步提高青年技術(shù)人員的科技實踐意識和科技研發(fā)能力,帶動業(yè)務(wù)工作整體發(fā)展?!?/p>
[1] 耿建軍. 基于 C﹟技術(shù)的氣象資料分析與服務(wù)產(chǎn)品制作軟件設(shè)計與實現(xiàn)[J]. 氣象科技,2013,41(4):648-651.
[2] 丁蕾,孟祥飛,張育萍. 交通氣象指數(shù)預(yù)報軟件的設(shè)計與應(yīng)用[J]. 電子技術(shù)與軟件工程,2014(10):117-119.
[3] 馬占良. 三種氣象繪圖軟件及自動化制圖比較分析[J]. 青海氣象,2008(增):137-141.