孫周軍, 肖文名, 宋遠(yuǎn)清, 石小英, 王 壘, 陳曉宇, 何婉文
(1.廣東省氣象信息中心,廣東廣州510080;2.陜西省氣象信息中心,陜西西安710014)
為做好氣象信息實時傳輸?shù)谋O(jiān)視和管理工作,提高氣象數(shù)據(jù)通信質(zhì)量,廣東省信息中心組織研發(fā)”氣象信息實時監(jiān)視系統(tǒng)[1]”,以實現(xiàn)各類氣象數(shù)據(jù)的收集和分發(fā)的實時監(jiān)視,并對漏收、漏發(fā)或遲收、遲發(fā)的資料進(jìn)行預(yù)警,避免資料的缺收和缺發(fā)現(xiàn)象,提高全省各類氣象資料的傳輸時效[2]。系統(tǒng)開發(fā)完成后,在全省氣象部門得到推廣應(yīng)用,取得較好的業(yè)務(wù)效益,同時也暴露需要改進(jìn)完善的問題,例如系統(tǒng)響應(yīng)慢,不兼容火狐瀏覽器等。
通過調(diào)查各單位對“氣象信息實時監(jiān)視系統(tǒng)”的使用體驗,推敲系統(tǒng)實現(xiàn)中采用的具體方法,充分分析現(xiàn)有數(shù)據(jù)傳輸業(yè)務(wù)系統(tǒng)的流程,主要針對系統(tǒng)的響應(yīng)速度、用戶體驗、系統(tǒng)穩(wěn)定性等進(jìn)行重新設(shè)計與實現(xiàn)。
目前,省級中心站對氣象資料傳輸?shù)谋U现饕揽繗庀笮畔崟r監(jiān)視系統(tǒng)和目錄檢索的方式;對于臺站傳輸資料的保障主要依靠測報軟件的回執(zhí)、氣象信息實時監(jiān)視系統(tǒng)的查詢功能保障資料的傳輸,另外臺站會經(jīng)常通過電話到省級中心站進(jìn)行查詢核實。分析以上的資料傳輸保障手段,存在自動化監(jiān)視程度低,增加值班人員工作量的缺點。
為此,應(yīng)采用先進(jìn)的計算機技術(shù),結(jié)合移動網(wǎng)絡(luò)或電話網(wǎng)絡(luò)[3],開發(fā)滿足省、市、縣三級氣象資料實時監(jiān)視系統(tǒng),加強監(jiān)控力度,實現(xiàn)自動化,減輕監(jiān)控和維護(hù)保障的工作量,提高資料的傳輸時效。
(1)采集資料日志。日志采集是實現(xiàn)資料傳輸監(jiān)視的核心問題。日志采集的時間點與環(huán)節(jié)這兩大因素,直接影響監(jiān)視系統(tǒng)的效率。觀測資料傳輸及時性與完整性是信息網(wǎng)絡(luò)業(yè)務(wù)維護(hù)保障的核心內(nèi)容,因此,日志的提取處理必須避免對資料完整性與傳輸時效性的影響。
(2)合理組織數(shù)據(jù)。針對原有監(jiān)視系統(tǒng)響應(yīng)速度慢問題,設(shè)計優(yōu)化合理的數(shù)據(jù)存儲結(jié)構(gòu),有助于降低監(jiān)視系統(tǒng)開發(fā)的復(fù)雜度,同時能夠提升系統(tǒng)響應(yīng)用戶請求的速度。
(3)監(jiān)視界面的設(shè)計。信息傳輸狀態(tài)的查詢、展示是監(jiān)視系統(tǒng)開發(fā)成敗的主要因素之一。優(yōu)良合理的監(jiān)視布局對用戶而言,能方便清晰地展現(xiàn)用戶所關(guān)心的信息。因此,系統(tǒng)的操作應(yīng)該遵循用戶的使用習(xí)慣,展示的信息要正確、及時和完整。
圖1顯示了實時監(jiān)視系統(tǒng)的層次結(jié)構(gòu),可分為4個層次:數(shù)據(jù)采集層、數(shù)據(jù)層、邏輯層和展現(xiàn)層。數(shù)據(jù)采集層主要是在接收到臺站資料或?qū)①Y料發(fā)送到國家局后,采集資料信息數(shù)據(jù),另外對已采集到的資料信息數(shù)據(jù)進(jìn)行統(tǒng)計加工處理。數(shù)據(jù)層主要以合理的數(shù)據(jù)結(jié)構(gòu)存貯數(shù)據(jù)采集層采集的數(shù)據(jù)并提供數(shù)據(jù)存取服務(wù)。邏輯層主要負(fù)責(zé)解析用戶發(fā)出的訪問請求,對請求進(jìn)行業(yè)務(wù)邏輯計算處理并返回結(jié)果。展現(xiàn)層主要負(fù)責(zé)將采集到和經(jīng)過統(tǒng)計加工的數(shù)據(jù)通過Web以圖表的形式展現(xiàn)給用戶。
系統(tǒng)不同的用戶,對系統(tǒng)功能的關(guān)注范圍也有所不同:
(1)基層臺站使用單位:注重了解觀測資料是否已經(jīng)及時傳輸?shù)绞⌒畔⒅行摹?/p>
(2)省級信息中心用戶:一方面注重及時全面了解各類資料各測報單位是否傳輸規(guī)定的報文,另外注重監(jiān)視收到的資料是否傳輸?shù)絿覛庀笮畔⒅行摹?/p>
(3)省級業(yè)務(wù)管理部門用戶:注重某段時間窗內(nèi)全省各類資料的傳輸質(zhì)量統(tǒng)計,并注重掌握傳輸質(zhì)量低的測站單位與資料類別。
系統(tǒng)在進(jìn)行具體設(shè)計實現(xiàn)時,充分考慮各用戶群的關(guān)注焦點,將系統(tǒng)功能劃分為:傳輸質(zhì)量、詳細(xì)查詢、實時監(jiān)視和系統(tǒng)管理4個主要模塊。
圖2為傳輸質(zhì)量的主界面,主要完成信息傳輸及時率、缺報率等統(tǒng)計結(jié)果的展示。針對省、市業(yè)務(wù)管理部門用戶,提供年度、整月、周和天全省氣象信息傳輸及時率對照圖表;提供年度、整月、周和天各市氣象信息傳輸及時率對照圖表;提供某類資料逐月、逐天和24小時各區(qū)縣氣象信息傳輸及時率對照表。
圖1 系統(tǒng)結(jié)構(gòu)
圖2 傳輸質(zhì)量模塊
圖3為詳情查詢的主界面。針對臺站和省級用戶,主要實現(xiàn)氣象信息資料收發(fā)情況的詳情展示。可根據(jù)用戶選擇的時次、地市和資料類別等條件迅速檢索出該類資料的接收與發(fā)送情況。展示的內(nèi)容主要包括資料類別、資料時次、接收與發(fā)送時間和資料到達(dá)時的字節(jié)數(shù)。其中,資料字節(jié)數(shù)信息是對舊系統(tǒng)非常實用的改進(jìn)功能,在發(fā)生臺站傳輸空報文而發(fā)生爭議時,該功能便可以提供有力的證據(jù)。
圖3 詳細(xì)查詢模塊
圖4為省級實時監(jiān)視的主界面,按照資料類別進(jìn)行分類,并將每類資料按照觀測時間進(jìn)行全天顯示,對于高密度觀測時次資料,則顯示2個小時內(nèi)所有觀測時間資料的時效情況。其中:包括報文及時到達(dá);超時效缺報及報文缺;報文逾限到達(dá)。對于省級用戶,可以監(jiān)視到省內(nèi)所有站點某類報文24小時內(nèi)所有時次的到報情況;對于臺站用戶,可以監(jiān)視到自身臺站需要觀測的資料的24小時內(nèi)所有時次的到報情況,且該監(jiān)視內(nèi)容在2分鐘進(jìn)行一次刷新,確保監(jiān)視的及時性。
圖4 省級實時監(jiān)視模塊
系統(tǒng)管理主要提供系統(tǒng)基礎(chǔ)信息配置,針對省級信息中心用戶,可以進(jìn)行各類資料考核時效的管理,考核站點信息的管理,通過使用說明檢索系統(tǒng)各功能的使用方法。另外提供用戶關(guān)注臺站的設(shè)置功能,系統(tǒng)各模塊根據(jù)設(shè)置的關(guān)注臺站進(jìn)行數(shù)據(jù)的統(tǒng)計查詢。
充分利用Oracle數(shù)據(jù)庫索引技術(shù),提高SQL語句的執(zhí)行效率。程序開發(fā)人員在執(zhí)行SQL語句時要采用一定策略利用索引,并且將有索引的字段放在Where條件的前面,如果查詢不使用索引或索引失效的情況下,數(shù)據(jù)庫系統(tǒng)會進(jìn)行全表掃描,執(zhí)行效率非常慢。對于Oracle而言,在某日期字段A上建有索引,若使用“=”符號進(jìn)行匹配檢索,執(zhí)行效率非常高;但對于需要跨天的查詢?nèi)羰褂谩埃?”與“<=”符號進(jìn)行匹配檢索,此時索引失效,執(zhí)行效率很低。所以在信息查詢模塊的實現(xiàn)中,對用戶請求的開始時間與結(jié)束時間進(jìn)行分情況處理,例如若用戶需要檢索2011-12-01 01:00:00到2011-12-01 23:45:00的數(shù)據(jù)時,SQL1=Where年月日字段=“2011-12-01”and時分秒字段 >=“01:00:00”and時分秒字段 <=“23:45:00”;SQL2=Where年月日時分秒字段>=“2011-12-01 01:00:00”and年月日時分秒字段<=“2011-12-01 23:45:00”,SQL1的執(zhí)行效率要遠(yuǎn)遠(yuǎn)高于SQL2。
傳輸詳細(xì)信息便按月分表存儲,數(shù)據(jù)量較大。在實時信息查詢中必須根據(jù)用戶選擇的時間窗給出結(jié)果。為簡化復(fù)雜的業(yè)務(wù)邏輯并提高開發(fā)效率,快速顯示數(shù)據(jù),系統(tǒng)將12個月表聯(lián)合創(chuàng)建1個視圖,對用戶的查詢請求通過查詢視圖而獲取結(jié)果[4-5],避免跨越查詢需要修改檢索Sql中表名的問題。
豎表是普通的建表方式,如表結(jié)構(gòu)為:主鍵、站點、資料時次、時效;如果變成橫表后,則結(jié)構(gòu)為:主鍵、站點、時效+資料時次1、時效+資料時次2、時效+資料時次3……實時監(jiān)視模塊中的監(jiān)視數(shù)據(jù)展現(xiàn)便是橫表的方式,而數(shù)據(jù)庫中的存儲是采用豎表的方式,Decode函數(shù)是Oracle的Sql語言中特有的性質(zhì),通過該函數(shù)可以實現(xiàn)表格的置換,從而方便的實現(xiàn)某地區(qū)一種資料所有時次傳輸時效的顯示。
對于用戶的統(tǒng)計請求,如果實時的從海量原始數(shù)據(jù)中進(jìn)行統(tǒng)計計算,每次相同的請求,都需要進(jìn)行實時統(tǒng)計計算,給系統(tǒng)造成較大壓力,并且讓用戶等待較長時間。系統(tǒng)從管理用戶角度出發(fā),對海量數(shù)據(jù)進(jìn)行統(tǒng)計預(yù)處理,形成符合管理部門需求的中間統(tǒng)計結(jié)果進(jìn)行存儲。對于統(tǒng)計訪問請求,能夠直接在中間統(tǒng)計結(jié)果中進(jìn)行簡單查詢,同樣滿足用戶統(tǒng)計訪問請求。與實時統(tǒng)計計算方法比較,只需要計算一次統(tǒng)計結(jié)果,產(chǎn)生較小的系統(tǒng)負(fù)荷,并無需較長時間等待,傳輸時效統(tǒng)計模塊的實現(xiàn)采用方法取得較好效果。
目前瀏覽器種類繁多,同一網(wǎng)頁在其中的運行效果有所偏差或無法使用,原因在于廠商在瀏覽器實現(xiàn)中采用的標(biāo)準(zhǔn)或技術(shù)有所差別,網(wǎng)頁的開發(fā)中涉及的JavaScript腳本與Css樣式技術(shù)在不同瀏覽器中的使用方法不同。為使系統(tǒng)能跨瀏覽器運行,采用JQuery腳本類庫進(jìn)行實現(xiàn),它是一套跨瀏覽器的基礎(chǔ)腳本庫,實現(xiàn)中涉及到的所有腳本程式均基于該類庫開發(fā)。另外在編寫系統(tǒng)的Css樣式時,在樣式文件中一個樣式控制語句按照多種語法進(jìn)行編寫,達(dá)到多瀏覽器正確顯示的效果。
Spring是一個基于控制反轉(zhuǎn)(Inversion of Control,IoC)和面向方面編程(Aspect Oriented Programming,AOP)的構(gòu)建多層[4]J2EE系統(tǒng)的框架[6],對現(xiàn)存的各種框架如Struts、JSF、Hibernate等提供了相應(yīng)的整合框架。利用框架進(jìn)行系統(tǒng)開發(fā)可有效的提高開發(fā)效率,使系統(tǒng)邏輯關(guān)系清晰,并具有較好的可擴展性。
經(jīng)過改進(jìn)之后的系統(tǒng),瀏覽器兼容性得到增強,系統(tǒng)的響應(yīng)速度大幅度提高,系統(tǒng)采用了圖表和條件選擇面板等功能之后,用戶的體驗效果得到進(jìn)一步改善。
將改進(jìn)后的系統(tǒng)與之前的系統(tǒng)分別在 IE(6,7,8,9)、firefox、Mac、Safari、遨游、360、QQ 瀏覽器進(jìn)行功能測試,新系統(tǒng)布局和功能均正常表現(xiàn)良好;但舊系統(tǒng)則在firefox、Mac、Safari、遨游瀏覽器上布局和功能發(fā)生異常行為或無法使用。
表1 系統(tǒng)改進(jìn)前后對瀏覽器兼容性測試分析標(biāo)
采用Charles工具監(jiān)視系統(tǒng)的HT TP請求,采集返回字節(jié)數(shù)、耗時等詳細(xì)信息,計算出系統(tǒng)響應(yīng)的平均速度。分別訪問舊系統(tǒng)與系統(tǒng)相同的功能模塊,得到對比圖5、圖6,監(jiān)控模塊與統(tǒng)計模塊的系統(tǒng)響應(yīng)速度平均有31倍的性能提升,最小11倍,最高達(dá)到70倍。表明采用數(shù)據(jù)庫索引、視圖、預(yù)處理和數(shù)據(jù)結(jié)構(gòu)優(yōu)化技術(shù)取得明顯效果。
(1)臺站用戶需要一次能夠看到一種資料24小時的報文傳輸時效,舊系統(tǒng)需要實現(xiàn)這種需求則需要選定24次查詢條件,并點擊24次查詢按鈕,才可達(dá)到用戶的上述需求。新系統(tǒng)則對這點進(jìn)行了改進(jìn),只需點擊一次,便可看到24小時的報文傳輸時效。
(2)傳輸質(zhì)量統(tǒng)計模塊實現(xiàn)中,采用三維柱狀圖表與線性圖表分別展示某時間窗內(nèi)各種資料的傳輸時效、某類資料各市區(qū)和站傳輸時效對比等,用戶更加直觀了解資料的傳輸情況與對比情況。
(3)實現(xiàn)時間選擇面板,用戶可以方便的將檢索時間窗設(shè)置在某年、月、周、日內(nèi),并利用新設(shè)置時間條件運行當(dāng)前模塊,改變傳統(tǒng)的需要選擇開始、結(jié)束時間的做法。
(4)用戶可設(shè)置所關(guān)注資料傳輸時效的臺站,一次設(shè)置后,下次從同一臺終端進(jìn)入系統(tǒng)則默認(rèn)展現(xiàn)為用戶所設(shè)置臺站的資料傳輸時效。
系統(tǒng)的設(shè)計并非完美,需要對下列問題進(jìn)行思考并給予解決:(1)日志提取環(huán)節(jié)改進(jìn):在報文發(fā)送到國家氣象信息中心的環(huán)節(jié)提取接收日志不合理。因為從接收到傳輸給國家局之間有一定的時延,在資料傳輸國家局時提取資料接收日志,間接地增加臺站用戶了解資料是否上傳到信息中心的時延。臺站用戶需要及時了解省信息中心收報情況,所以這種不合理可能導(dǎo)致用戶不使用系統(tǒng)進(jìn)行查詢,而直接電話省氣象信息中心咨詢,或直接進(jìn)入接收目錄進(jìn)行查詢,弱化了系統(tǒng)建設(shè)的實用性。圖7、圖8分別給出改進(jìn)前后的日志提取流程,并且需要在以后開發(fā)中解決。改進(jìn)可以提高系統(tǒng)采集資料接收日志的及時性,減少臺站值班人員查詢資料到達(dá)省信息中心的等待時間。
(2)語音電話追報:在省氣象信息中心人員發(fā)現(xiàn)有臺站在時效警戒時間內(nèi)還未發(fā)報時,中心值班人員需要電話提醒臺站發(fā)報人,目前人工進(jìn)行電話追報,給值班人員帶來很大壓力。結(jié)合語音電話系統(tǒng),將未發(fā)報的告警提示信息自動撥打到臺站值班電話或值班負(fù)責(zé)人手機進(jìn)行語音提示,可減少避免人工電話追報的工作任務(wù)[7]。
改進(jìn)后的氣象信息實時監(jiān)視系統(tǒng)投入試運行以來,得到全省市、縣氣象工作人員的廣泛使用,在系統(tǒng)反映速度、用戶體驗等細(xì)節(jié)上給出了較高的評價。系統(tǒng)的建立與改善對提高廣東省實時氣象資料的傳輸時效起到了很好的保障作用。
[1] 梁慎青,石小英,梁苑苑,等.氣象信息實時監(jiān)視系統(tǒng)的開發(fā)及應(yīng)用[J].廣東氣象,2009,31(1):57-59.
[2] 孫林花,李仲龍,孫潤,等.基于元數(shù)據(jù)技術(shù)的氣象數(shù)據(jù)收發(fā)全網(wǎng)監(jiān)視系統(tǒng)[J].干旱氣象,2009,27(3):294-297.
[3] 梁海河,孟昭林,張春暉,等.綜合氣象觀測運行監(jiān)控系統(tǒng)[J].氣象,2011,37(10):1292-1300.
[4] 羅琦,韓茜,李文莉,等.基于WEBGIS的氣象科學(xué)數(shù)據(jù)查詢顯示系統(tǒng)的設(shè)計與實現(xiàn)[J].干旱氣象,2010,28(4):494-498.
[5] 沙莎,邱新法,何永健.基于GIS的自動氣象站數(shù)據(jù)系統(tǒng)的研發(fā)[J].干旱氣象.2011,29(3):372-376.
[6] 孔霞,呂峰.基于Spring的Web框架的設(shè)計以及其應(yīng)用[J].電腦知識與技術(shù).2009,5(18):5050-5052.
[7] 冉井旺,戴滔.語音報警在集中監(jiān)控系統(tǒng)中的設(shè)計應(yīng)用[J].自動化應(yīng)用.2011,(3):1-3.