張杰,張思豆,代華
(1.云南省氣象信息中心,云南昆明,650034;2.云南大學大氣科學系,云南昆明,650091)
B/S架構(gòu)的氣象資料綜合監(jiān)控平臺建設(shè)
張杰1,張思豆2,代華1
(1.云南省氣象信息中心,云南昆明,650034;2.云南大學大氣科學系,云南昆明,650091)
本系統(tǒng)主要是對省級收集的各類下行資料進行檢索、實時信息采集、入庫、補調(diào)、監(jiān)控,并全面、實時、準確地提供各類資料的詳細信息,達到了對實時資料的高效管理和實時監(jiān)控的目的。本系統(tǒng)的建成實現(xiàn)了云南省氣象資料的全面網(wǎng)絡(luò)化管理,實現(xiàn)網(wǎng)上工作,減輕值班人員勞動強度,提高工作效率。
B/S架構(gòu);監(jiān)控;氣象資料
隨著科學技術(shù)的發(fā)展,數(shù)值預(yù)報技術(shù)和氣象探測技術(shù)得到長足發(fā)展,再加上各類新增觀測項目的開展實施和多種數(shù)值預(yù)報模式的業(yè)務(wù)運行以及中國氣象局大批海量實時數(shù)據(jù)通過CMACast下發(fā)至省級信息中心,氣象數(shù)據(jù)傳輸量、監(jiān)控量急劇膨脹,省級節(jié)點由原來的日傳輸量2T發(fā)展至今日傳輸量4T左右;并且隨著預(yù)報周期的變短,預(yù)報員對資料的及時性、可靠性、準確性要求大大提高,信息中心每天要從4-5T的海量資料中檢索出本省預(yù)報員需要的強針對性產(chǎn)品相當于大海撈針,但目前我省對國家局廣播下發(fā)的各類資料只是進行簡單監(jiān)控或者沒有監(jiān)控,經(jīng)常存在資料不完整或及時性不夠的問題,對預(yù)報業(yè)務(wù)的開展產(chǎn)生了影響。
實時監(jiān)控系統(tǒng)就是要變被動為主動,通過在相關(guān)服務(wù)器上部署資料預(yù)處理程序,從底層對資料到報情況進行實時監(jiān)控、報警以及資料的及時補調(diào)。管理員在任何地方根據(jù)提示采取相應(yīng)的解決方案,使系統(tǒng)保持在穩(wěn)定的運行狀態(tài),實時提供高效的數(shù)據(jù)服務(wù)。并將監(jiān)控內(nèi)容精確到文件名,能夠快速確定并醒目標注已到和未到的文件名、到達時間及文件大小,提高工作效率,減少重復(fù)勞動。同時資料到達信息能在10分鐘內(nèi)到達氣象臺、氣候中心、人影中心及全省業(yè)務(wù)應(yīng)用人員桌面。基于以上的原因,云南省氣象信息中心組織中心人員設(shè)計開發(fā)了云南省氣象資料綜合監(jiān)控平臺。本平臺分為兩大系統(tǒng),一個是資料預(yù)處理子系統(tǒng),另一個是web頁面展示子系統(tǒng)。
基于軟件需求分析[1]的概念、目的,著重對云南省氣象資料綜合監(jiān)控平臺進行需求分析,從最主要的幾個方面進行闡述,第一是可行性需求分析,第二是功能性需求分析,通過對以上兩方面的需求分析,對系統(tǒng)提出了嚴格的要求,為下一步開發(fā)工作打下了夯實的基礎(chǔ),并且為整個系統(tǒng)提供了依據(jù),指明了方向。
1.1 可行性分析
云南省氣象信息資料綜合監(jiān)控平臺是專門為云南省氣象臺以及相關(guān)的業(yè)務(wù)單位業(yè)務(wù)需求而開發(fā)的。老的資料監(jiān)控方式是靠人工被動發(fā)現(xiàn),工作效率低,很難進行管理和監(jiān)控,而且缺乏規(guī)范性和專業(yè)性,無法滿足大量新增業(yè)務(wù)的需求,導(dǎo)致工作起來總是手忙腳亂,開發(fā)統(tǒng)一的監(jiān)控平臺是迫切需要的。
首先要搞清楚軟件系統(tǒng)的功能,為了做好這一工作,到州市進行考察,了解預(yù)報員做預(yù)報時最關(guān)心什么資料,都需要哪些資料,并對這些資料做了歸類總結(jié),采用從下到上的方法再進一步的整理和表達用戶所需。通過對系統(tǒng)可行性的分析總結(jié),用例圖如圖1所示。
可行性用例圖中分為兩級,省局監(jiān)控人員及預(yù)報員。國家局中心站負責下發(fā)資料,省級服務(wù)器接收后,監(jiān)控人員監(jiān)控報文是否到達、報文是否正確、程序是否正常、報文是否轉(zhuǎn)發(fā)解碼,報文是否及時入庫等等;預(yù)報員對部分資料進行解碼應(yīng)用,他們關(guān)心報文的正確性、完整性以及資料的分類。如出現(xiàn)問題,要在第一時間確認這些資料的屬性,預(yù)報員比較關(guān)心頁面的瀏覽速度、數(shù)據(jù)的正確性、瀏覽是否方便等功能。

圖1 可行性分析用例圖
1.2 功能需求分析
氣象數(shù)據(jù)種類繁多,數(shù)據(jù)量大,所以查找一個沒有到達的資料文件非常困難,必須對這些資料進行規(guī)范管理,使得依托網(wǎng)絡(luò)進行監(jiān)控成為現(xiàn)實。通過對臺站、本單位以及下屬機構(gòu)的一線值班人員各方面情況的詢問以及了解,本系統(tǒng)在功能上的需求用例圖如圖2所示。

圖2 功能需求用例圖
整個項目需要分為兩個子系統(tǒng):資料預(yù)處理子系統(tǒng)(云南省各種下行氣象資料檢索、入庫、補調(diào)、刪除等)和Web頁面展現(xiàn)子系統(tǒng)(云南省氣象資料綜合監(jiān)控平臺網(wǎng)站)。
2.1 總體架構(gòu)設(shè)計
整個系統(tǒng)采用三層體系結(jié)構(gòu),即瀏覽器/服務(wù)器,從邏輯上講,本系統(tǒng)分成三層:第一層交互層,第二層服務(wù)層,第三層數(shù)據(jù)訪問層。三層體系結(jié)構(gòu)示圖如圖3所示。

圖3 B/S的三層結(jié)構(gòu)示意圖
(1)交互層
交互層位于體系結(jié)構(gòu)的最上面即最外面,主要任務(wù)是接收用戶發(fā)送的數(shù)據(jù)并且表示數(shù)據(jù),操作界面非常人性化,是可交互的,是最接近用戶的一層。這層中我們采用ASP. NET技術(shù),里面嵌套了VbScript腳本語言、JavaScript腳本語言等來完成該層的任務(wù)工作。也用到了很多控件,操作不但簡單,而且可以和數(shù)據(jù)進行直接的關(guān)聯(lián),不需要編寫任何代碼,直接在面板中設(shè)置屬性即可。
(2)服務(wù)層
本層的設(shè)計強調(diào)了云南省氣象局業(yè)務(wù)的可操作性、可整合性。在系統(tǒng)中,服務(wù)層會對一些數(shù)據(jù)進行緩存,例如一些基本上不變化的數(shù)據(jù),但是使用率又比較頻繁,在這種情況下,用戶只需要請求一次這些相同的數(shù)據(jù),他就可以從緩存中直接讀取,也避免了重復(fù)讀取而導(dǎo)致數(shù)據(jù)庫系統(tǒng)效率降低和破壞。
(3)數(shù)據(jù)訪問層
數(shù)據(jù)訪問層實現(xiàn)了數(shù)據(jù)訪問功能,是為交互層、服務(wù)層服務(wù)的。它直接和數(shù)據(jù)庫建立連接,來完成用戶的各種請求數(shù)據(jù),例如查詢操作、插入操作、更新操作以及刪除操作等等,然后把所得到的數(shù)據(jù)又返回給用戶。
2.2 功能模塊設(shè)計
系統(tǒng)功能模塊設(shè)計的主要任務(wù)就是確定如何實現(xiàn)本系統(tǒng)的預(yù)定功能。確定了要開發(fā)哪些模塊以及模塊之間如何實現(xiàn)調(diào)用,采用功能模塊化以后,系統(tǒng)各方面功能都變得簡單。首先系統(tǒng)的結(jié)構(gòu)變得非常清晰,其次是設(shè)計人員設(shè)計思路也變得明了,最重要的是系統(tǒng)后期的測試、調(diào)試也相對容易的多。在系統(tǒng)維護時,只需要修改相應(yīng)模塊即可完成系統(tǒng)的變動,大大提高了工作的效率。系統(tǒng)總功能模塊結(jié)構(gòu)如圖4所示。

圖4 總功能模塊結(jié)構(gòu)圖
根據(jù)功能模塊劃分方法,云南省氣象資料綜合監(jiān)控平臺分為兩個子系統(tǒng),一個是資料預(yù)處理系統(tǒng)主要任務(wù)是對收集來的資料首先進行分類、檢索、屬性提取、入庫等,另一個是web頁面展示系統(tǒng),主要被把數(shù)據(jù)庫里的數(shù)據(jù)以圖表形式顯示出來。
2.2.1 資料預(yù)處理系統(tǒng)的設(shè)計
資料預(yù)處理系統(tǒng)是一個7×24h運行的實時程序軟件。為保證數(shù)據(jù)傳輸?shù)母咝н\行,設(shè)計上采用以時間觸發(fā)器控制所有傳輸流程,把要實現(xiàn)的傳輸內(nèi)容分成多個功能模塊,由多個線程負責,確保模塊之間互相不影響,獨立運行。各模塊之間的工作流程圖如圖5所示。
每個模塊都由一個線程負責,線程1負責生成節(jié)目表,每天上午八點整啟動定時任務(wù),生成一天的節(jié)目表;線程2負責檢索資料,線程2在線程1生成節(jié)目表的基礎(chǔ)上,首先和節(jié)目表中所有未到資料比較,對已經(jīng)到達的資料用sql語句保存屬性存到臨時文件,同時對相應(yīng)的文件更改通配符;線程3負責將線程2保存的臨時文件進行入庫,更新到達文件的狀態(tài)、文件名、時間、大小等;線程4負責資料補調(diào),在資料基本到齊時啟動補調(diào)任務(wù),對節(jié)目表進行掃描,找出未到資料,啟動ftp到國家局服務(wù)器調(diào)取并入庫;線程5負責資料的刪除,啟動定時任務(wù)每天凌晨對所有數(shù)據(jù)掃描,刪除7天前的數(shù)據(jù)。

圖5 各模塊之間工作流程圖
2.2.2 Web頁面展現(xiàn)的設(shè)計
Web頁面展現(xiàn)子系統(tǒng)主要是將資料預(yù)處理系統(tǒng)入到數(shù)據(jù)庫里面的數(shù)據(jù)如何展現(xiàn)出來,根據(jù)資料的功能劃分為四個模塊,數(shù)值預(yù)報模塊、高空地面模塊、衛(wèi)星資料模塊、服務(wù)產(chǎn)品模塊,每個模塊之間都是獨立的,互不影響。每個模塊的設(shè)計方法基本相同,以數(shù)值預(yù)報模塊設(shè)計方法為例,設(shè)計流程圖如圖6所示。

圖6 數(shù)值預(yù)報模塊設(shè)計流程圖
上述流程首先是從每日節(jié)目表中讀取當日資料日期、時次、文件名以及到報狀態(tài);如果狀態(tài)為資料已到,統(tǒng)計到報個數(shù),如果沒有到報,再繼續(xù)掃描節(jié)目表;后面再對到報狀態(tài)進行顯示,已到報顯示為綠色,未到的個數(shù)為應(yīng)到數(shù)減去已到數(shù),未到數(shù)顯示紅色,一個流程結(jié)束。
2.3 數(shù)據(jù)庫的設(shè)計
考慮到監(jiān)控信息數(shù)據(jù)量大,并發(fā)操作比較多,實時性要求高,SQL Server數(shù)據(jù)庫在可用性強、可擴展性強方面有一定優(yōu)點,但考慮到大規(guī)模監(jiān)控資料的入庫及查詢,對各類資料到達情況詳細監(jiān)控到文件名級,由于各類資料的文件名命名方式和補調(diào)的配置信息繁雜,對資料信息配置表的科學設(shè)置要求很高,所以本項目采用了ORACLE11g作為綜合監(jiān)控平臺的數(shù)據(jù)承載數(shù)據(jù)庫。
數(shù)據(jù)庫設(shè)計的核心是數(shù)據(jù)庫物理結(jié)構(gòu)設(shè)計[2],簡單說也就是數(shù)據(jù)庫表設(shè)計,數(shù)據(jù)庫的表結(jié)構(gòu)設(shè)計非常重要,要想讓應(yīng)用程序效率高,維護起來又方便,并且有良好的擴展性,必須要設(shè)計好數(shù)據(jù)庫的表。
經(jīng)過綜合各類文件名命名方式,對監(jiān)控信息配置表進行了多次完善,包含了資料名稱、資料文件名提取SQL串、文件名掩碼及其關(guān)鍵字、文件名無用信息替換方式、補調(diào)起止時間、資料補調(diào)源服務(wù)器信息、目標服務(wù)器信息等。數(shù)據(jù)庫表分為資料信息表、每日節(jié)目表、資料屬性表。數(shù)據(jù)庫表的設(shè)計規(guī)劃直接關(guān)系到整個監(jiān)控系統(tǒng)的運行是否流暢、網(wǎng)頁瀏覽是否快捷,操作是否簡便,綜合考慮上述問題且盡量減少數(shù)據(jù)庫查詢中表連接的數(shù)目,加快查詢速度,首先建立資料信息表表,其次為了數(shù)據(jù)庫查詢效率,避免因多表關(guān)聯(lián)導(dǎo)致查詢效率低,對各類建立了每日資料屬性信息表。數(shù)據(jù)庫表中最重要的是每日資料節(jié)目表,所有屬性都在一張表中,并對表進行定期刪除、設(shè)置索引,確保快速查詢且查詢結(jié)果準確可靠。在系統(tǒng)研發(fā)期間不斷進行增加、刪除、修改完善。
2.3.1 資料信息數(shù)據(jù)表
資料信息表(CMACAST_DATAINFO)存放的內(nèi)容為CMACAST系統(tǒng)接收的國家局下發(fā)的資料,我們把這些進行歸類,把每類資料的信息詳細情況倒入到數(shù)據(jù)庫里面。資料信息包括資料的名稱,資料的時次,有些資料即使一個時次里面也包含很多個,所以又增加了資料的資料文件名中變化的字段、后綴;每種資料收集后要分類,要分發(fā)到不同的服務(wù)器以及不同的目錄,所以又增加了傳輸?shù)脑绰窂胶湍康穆窂?;資料收到后我們要記錄資料的到達時間,設(shè)置了到達時間的字段。表結(jié)構(gòu)列表如1所示。

表1 資料信息表(CMACAST_DATAINFO)
2.3.2 資料屬性信息數(shù)據(jù)表
資料屬性信息表(CMACAST_DATALIST)為每種資料每個時次應(yīng)到個數(shù),資料表的內(nèi)容包括資料名稱,資料名稱必須與信息表里面的資料名稱進行匹配;為了便于查找,按照各種分類設(shè)置了文件名共有部分、文件日期、文件的時次、預(yù)報日期、預(yù)報時間、資料中綴、資料后綴字段。表結(jié)構(gòu)列表如2所示。

表2 資料屬性信息表(CMACAST_DATALIST)
2.3.3 每日節(jié)目表信息表
每日節(jié)目表信息表(CMACAST_DAYDATA) 每日后臺程序早上八點鐘生成當日的節(jié)目表,節(jié)目表里面的信息只保留一周的,由于這些信息的監(jiān)控基本屬于實時的,不需要長期保存。資料表在整個系統(tǒng)中有著承前啟后的作用。資料屬性表里面的內(nèi)容為我們業(yè)務(wù)所需的一些信息,資料的時間、資料的名稱、資料的時次、資料是否到達、到達的時間以及最關(guān)心的資料是否完整,即資料的大小。表結(jié)構(gòu)列表如3所示。

表3 每日節(jié)目表信息表(CMACAST_DAYDATA)
3.1 資料預(yù)處理系統(tǒng)
3.1.1 系統(tǒng)內(nèi)容
資料預(yù)處理系統(tǒng)主要包括各類收集資料的檢索入庫和補調(diào),采用DELPHI XE2編程[3]技術(shù),包含了【重新生成當日節(jié)目表】和【檢查資料到達情況并入庫】等功能。資料預(yù)處理系統(tǒng)分為六大模塊,分別是:節(jié)目表生成模塊、資料檢索模塊,資料入庫模塊、資料補調(diào)模塊、參數(shù)配置模塊、刪除資料模塊。
3.1.2 各模塊功能
生成節(jié)目表模塊每天定時讀取資料信息表中信息生成當日節(jié)目表,生成完成后所有資料狀態(tài)都顯示未到;資料檢索模塊主要依據(jù)當日資料到達節(jié)目表中文件名級別的到達信息檢索資料到達情況,檢索過程中對每一個文件的屬性,包括文件的文件名,到達時間,后綴、中綴、文件的大小等屬性進行sql語句的保存;然后資料入庫模塊對保存的sql語句進行入庫,入庫時只是對節(jié)目表信息進行更新,并對所有信息進行記錄保存,生成日志;補調(diào)資料模塊主要在指定時間內(nèi)依據(jù)當日資料到達節(jié)目表中文件名級別的到達信息中檢索未到資料,并使用資料監(jiān)控及配置信息表中的資料補調(diào)源服務(wù)器信息及目標服務(wù)器信息進行具體到文件名級的資料補調(diào)下載;資料配置模塊可以對新增資料和不需要的資料進行刪減以及一些參數(shù)的改動的配置;資料刪除模塊定時刪除7日前資料到達監(jiān)控信息,可鼠標點擊進行手動實時操作。

圖7 資料預(yù)處理系統(tǒng)主界面
這了六個模塊既相輔相成,又相互獨立。后臺程序為24小時不間斷實時運行,兩分鐘更新一次,保證值班員第一時間掌握資料到達情況。主界面如圖7所示。
3.2 web頁面展示系統(tǒng)。
3.2.1 頁面總功能
云南省氣象資料綜合監(jiān)控Web頁面整體布局采用了框架結(jié)構(gòu)。分為“左—右”結(jié)構(gòu),左方為一級菜單,右方為一級菜單打開展示的內(nèi)容。整個頁面如圖8所示。

圖8 應(yīng)用展現(xiàn)層主界面
左方的一級菜單主要使用框架結(jié)構(gòu),完成對系統(tǒng)的導(dǎo)航以及系統(tǒng)的所有功能模塊的轉(zhuǎn)換;各個模塊主要顯示在右邊的框架內(nèi)。本系統(tǒng)頁面上的框架全部使用Iframe框架,使用起來比較靈活,可以加在網(wǎng)頁中任何一個地方。左右框架的寬和高設(shè)置固定值,框架隱藏,右邊和下邊的滾動條隨著頁面內(nèi)容的多少自動在 Iframe中顯示滾動條。主框架的內(nèi)容隨著左邊框架的導(dǎo)航而變化。
3.2.2 各模塊功能
Web頁面展示部分基于B/S架構(gòu),集瀏覽、查詢等功能為一體。這部分根據(jù)資料的用途共分為4大模塊,分別為:數(shù)值預(yù)報模塊、高空地面模塊、衛(wèi)星資料模塊、服務(wù)產(chǎn)品模塊。四個模塊顯示方法相同,都采用進度條顯示方式,區(qū)別在于每種資料的個數(shù)和每日的到達時次不同。
數(shù)值預(yù)報模塊:這個模塊分了11類資料,這些資料有些一天有兩個時次,有些一天有四個時次,每個時次到報數(shù)各不相同,所以在這個頁面顯示中同時按照時次和報類進行顯示,一個頁面顯示24小時所有的到報情況。每種報每個時次都采用進度條的現(xiàn)示方式,綠色代表到達,紅色代表未到,同時在進度條上顯示百分比,為了更清楚報文到達情況,在進度條的下方也顯示了報文的應(yīng)到數(shù)、已到數(shù)、未到數(shù)。打開頁面可以一目了然資料到達情況,還可以點擊進度條或者文字查看每種資料每個時次的詳細信息,詳細信息顯示每個文件的文件名,文件到達時間,文件到達狀態(tài),文件大小等。詳細信息按照到報節(jié)目表里生成的文件順序進行排序,到達的文件顯示綠色,未到達的顯示紅色,可清楚的知道缺少哪個文件,方便補調(diào)。整個頁面還設(shè)置了前一天、后一天的查詢按鈕查看歷史資料信息。
高空地面資料模塊:這個模塊里面只有高空地面資料,24小時都有資料,而且每個時次的個數(shù)有些不同,在這里我們選擇把一整天資料總數(shù)作為一個個體,只顯示一條信息,同樣也是進度條顯示方式,不需要點擊鼠標查看詳細信息,進度條下面直接顯示當前資料詳細信息。
衛(wèi)星資料模塊:這個模塊分了五類資料,這些資料是不定時到達,每一類資料一天到達數(shù)作為一個個體,以進度條的方式顯示,點擊進度條顯示一整天的資料詳情,資料詳細頁面增加了資料的到達時次。
服務(wù)產(chǎn)品模塊:這個模塊分了11類資料,資料同樣是不定時到達,有的資料一天也只有一個,所以也是把每類資料一天總數(shù)作為個體進行統(tǒng)計,以進度條方式顯示。
本項目的建設(shè),能夠較大地提高我省對各類到達資料的監(jiān)控能力,同時最大限度地減輕業(yè)務(wù)值班人員在資料到達監(jiān)控方面的工作強度,有效提升各類資料的利用率及利用時效,從而提高預(yù)警預(yù)報時效,提高氣象為各行各業(yè)服務(wù)能力,有效提升我中心業(yè)務(wù)人員對各類資料的獲取方式、分發(fā)轉(zhuǎn)發(fā)、存儲備份方式以及部分資料的數(shù)據(jù)格式的理解,特別是對現(xiàn)有資料的種類有了深刻的理解,大大提升今后的資料支撐服務(wù)能力。
[1]樊愛京.軟件工程[M].北京:北京郵電大學出版社,2012,211.
[2]Adam Jorgensen,Patrick LeBlanc,Jose Chinchilla. Oracle 11g 2008 BIBLE[M].Tsinghua University Press,2012.
[3]吳秀榮.Delphi程序設(shè)計項目教程[M].北京:電子工業(yè)出版社,2011,198-234.
B/S structure of meteorological data comprehensive monitoring platform construction
Zhang Jie1,Zhang Sidou2,Dai Hua1
(1.Yunnan meteorological information center,Kunming Yunnan,650034;2.Department of atmospheric sciences, yunnan university,Kunming Yunnan,650091)
This system is mainly to the collection of all kinds of downward at the provincial level data retrieval and real-time information collection, storage, filling, monitoring, and provide all kinds of comprehensive, real-time and accurate data for detailed information, to achieve the efficient management of real-time data and the purpose of real-time monitoring The establishment of this system has realized the comprehensive network management of meteorological data in yunnan province, realized the online work,reduced the labor intensity of the staff on duty, and improved the work efficiency
B/S architecture; monitoring; meteorological data
“云南省氣象資料綜合監(jiān)控平臺研發(fā)”項目資助。