孫林花,高鵬
(1.蘭州資源環(huán)境職業(yè)技術(shù)大學(xué),甘肅蘭州 730021;2.甘肅省氣象信息與技術(shù)裝備保障中心,甘肅蘭州 730021)
氣象資料的傳輸工作是氣象通信業(yè)務(wù)的基礎(chǔ),其及時性、正確性和完整性是做好氣象預(yù)報預(yù)測、公共氣象服務(wù)和科研等工作的基礎(chǔ)和保障。目前,甘肅省各類氣象資料的傳輸依托的是甘肅省氣象大數(shù)據(jù)云平臺中的數(shù)據(jù)收集與分發(fā)系統(tǒng)(Comcast Technology Solutions,CTS)。該系統(tǒng)是繼氣象衛(wèi)星綜合應(yīng)用業(yè)務(wù)系統(tǒng)(簡稱為“9210 系統(tǒng)”)以后中國氣象局對國內(nèi)氣象通信系統(tǒng)的一次非常重要的升級,前后經(jīng)歷了V1.0和V2.0 這2 個版本,主要針對氣象資料類型多、信息加工處理量大、中間傳輸環(huán)節(jié)多、傳輸時效不及時、資料文件命名及格式不統(tǒng)一、資料收發(fā)和處理監(jiān)控不全面等問題,基于SUSE LINUX 操作系統(tǒng)和集群架構(gòu),采用賽門鐵克(VERITAS Cluster Server,VCS)技術(shù),開發(fā)的集“各類氣象資料傳輸、加工處理及運(yùn)行監(jiān)控”等功能為一體的國內(nèi)新一代氣象通信系統(tǒng)。
該系統(tǒng)具有很好的易擴(kuò)展性和高可用性,并使業(yè)務(wù)流程更規(guī)范化。與原9210 系統(tǒng)相比,CTS 系統(tǒng)極大地提高了氣象資料的處理(文件命名規(guī)范性檢查、格式檢查、打包、壓縮、解壓縮等)與并行傳輸能力[1-4],但無法根據(jù)業(yè)務(wù)管理部門的需要自動生成傳輸質(zhì)量統(tǒng)計(jì)報表。各類氣象資料傳輸質(zhì)量統(tǒng)計(jì)報表的制作需要業(yè)務(wù)人員從CTS 數(shù)據(jù)庫導(dǎo)出資料收發(fā)信息(收集時間、分發(fā)時間、收集狀態(tài)、分發(fā)狀態(tài)等)到Excel 表中,通過大量的手工處理后方可完成,報表制作時間大約需要一周,自動化程度非常低。CTS 也沒有剔除氣象網(wǎng)絡(luò)故障、觀測設(shè)備維護(hù)維修、CTS 系統(tǒng)升級等客觀原因造成的資料逾限或缺報影響,極大地影響了甘肅省氣象資料在中國氣象局的傳輸質(zhì)量考核。因此,設(shè)計(jì)和開發(fā)基于新一代通信系統(tǒng)的氣象資料傳輸質(zhì)量管理系統(tǒng)十分必要。
本文主要采用Java 開發(fā)語言、多線程資源處理技術(shù)、組件化設(shè)計(jì)、HTML5 及CSS3 技術(shù)構(gòu)建,基于數(shù)據(jù)倉庫的數(shù)據(jù)存儲等實(shí)現(xiàn)系統(tǒng)的設(shè)計(jì)與開發(fā)。系統(tǒng)主要實(shí)現(xiàn)了從CTS 自動采集傳輸質(zhì)量統(tǒng)計(jì)所需的各類氣象資料收發(fā)狀態(tài)等信息;實(shí)現(xiàn)了按市州、縣、站和資料類型等不同方式的傳輸質(zhì)量統(tǒng)計(jì)計(jì)算;實(shí)現(xiàn)了剔除氣象觀測設(shè)備維護(hù)維修、氣象網(wǎng)絡(luò)故障等客觀原因?qū)鬏斮|(zhì)量造成的逾限和缺報影響;實(shí)現(xiàn)了對本省傳輸質(zhì)量統(tǒng)計(jì)結(jié)果和中國氣象局下發(fā)的傳輸質(zhì)量結(jié)果的對比分析;實(shí)現(xiàn)了展示和輸出傳輸質(zhì)量統(tǒng)計(jì)結(jié)果的圖表等功能,大大提高了甘肅省氣象資料傳輸質(zhì)量統(tǒng)計(jì)計(jì)算和核查對比的效率,減輕了業(yè)務(wù)人員的工作量。
甘肅省氣象資料傳輸質(zhì)量管理系統(tǒng)采用B/S(Browser/Server,瀏覽器/服務(wù)器)架構(gòu),包括資源保障層、信息采集層、數(shù)據(jù)處理層、應(yīng)用層和用戶層共5個層次,以及一個標(biāo)準(zhǔn)規(guī)范體系和一個安全保障體系[5-6],系統(tǒng)架構(gòu)示意圖如圖1 所示。資源保障層主要為數(shù)據(jù)收集、傳輸、加工處理、存儲等提供網(wǎng)絡(luò)、計(jì)算機(jī)及存儲資源;信息采集層主要用于采集各種氣象資料收集和分發(fā)的基本信息,通過數(shù)據(jù)存儲管理系統(tǒng)(Service-Oriented Datastoragesystem,SOD)實(shí)現(xiàn)存儲;數(shù)據(jù)處理層主要通過本系統(tǒng)開發(fā)的中間處理程序從CTS 和SOD 中實(shí)時采集質(zhì)量統(tǒng)計(jì)需要的相關(guān)信息,并根據(jù)CTS 中配置的各類氣象資料傳輸時效信息,完成時效計(jì)算和統(tǒng)計(jì)分析等;應(yīng)用層則將各類氣象資料傳輸質(zhì)量統(tǒng)計(jì)結(jié)果以Web 的形式面向省級、地市(州)、縣級用戶進(jìn)行展示;用戶層主要是實(shí)現(xiàn)對不同級別用戶身份的認(rèn)證信息管理。系統(tǒng)遵循國際統(tǒng)一的JSON(Java Script Object Notation,一種輕量級的數(shù)據(jù)交換格式)數(shù)據(jù)通信標(biāo)準(zhǔn),提供開發(fā)性的應(yīng)用系統(tǒng)接口,為系統(tǒng)的升級和集成提供很好的基礎(chǔ)服務(wù)平臺,提供各種業(yè)務(wù)數(shù)據(jù)的加工轉(zhuǎn)換,并通過該標(biāo)準(zhǔn)進(jìn)行系統(tǒng)之間的協(xié)作和數(shù)據(jù)通信。
圖1 系統(tǒng)架構(gòu)示意圖
本系統(tǒng)在設(shè)計(jì)及實(shí)現(xiàn)的時候,以集約化為原則,其資源保障層、信息采集層、標(biāo)準(zhǔn)規(guī)范體系及安全保障體系都依托氣象部門的資源及相應(yīng)體系。
CTS 中實(shí)時記錄了各種氣象資料收發(fā)信息(資料類型、站號、觀測時間、接收時間、發(fā)送時間、收集時效標(biāo)記、發(fā)送時效標(biāo)記、數(shù)據(jù)源IP 地址、目的地IP地址等),因此,氣象資料傳輸質(zhì)量管理系統(tǒng)的統(tǒng)計(jì)分析主要依托CTS 完成。根據(jù)質(zhì)量統(tǒng)計(jì)需要,本文主要設(shè)計(jì)了以下3 個功能模塊。
1.2.1 數(shù)據(jù)采集
為了不影響CTS 系統(tǒng)的正常運(yùn)行及保證數(shù)據(jù)采集的時效性和準(zhǔn)確性,氣象資料傳輸質(zhì)量管理系統(tǒng)中開發(fā)了一個專門用于數(shù)據(jù)采集的中間程序,負(fù)責(zé)從CTS系統(tǒng)中實(shí)時采集各類氣象資料的類型、站號、資料收集時效標(biāo)記和發(fā)送時效標(biāo)記等信息至氣象資料傳輸質(zhì)量管理系統(tǒng)的MySQL 數(shù)據(jù)庫中。
1.2.2 傳輸質(zhì)量統(tǒng)計(jì)
傳輸質(zhì)量統(tǒng)計(jì)模塊是甘肅省實(shí)時氣象資料傳輸質(zhì)量管理系統(tǒng)的核心功能模塊,主要以MySQL 數(shù)據(jù)庫為數(shù)據(jù)環(huán)境,用Java 開發(fā)語言編寫甘肅省各類氣象資料日、月和年的質(zhì)量統(tǒng)計(jì)程序。其中,主要設(shè)計(jì)的數(shù)據(jù)庫表包括:①站網(wǎng)信息表(T_STATION),主要用于存儲甘肅省各類站點(diǎn)的站網(wǎng)信息,包括站號、站名、所屬市州、經(jīng)度、緯度、海報高度、站點(diǎn)類型等屬性;②實(shí)時氣象資料傳輸信息表(T_TRAN_INFO),主要用于存儲甘肅省各類實(shí)時氣象資料的傳輸信息,包括資料類型、站號、觀測時間、接收時間、發(fā)送時間、數(shù)據(jù)源IP 地址、目的地IP 地址、接收時效標(biāo)記、發(fā)送時效標(biāo)記、資料文件名等屬性;③資料傳輸日/月/年統(tǒng)計(jì)結(jié)果表(T_DAY_RESULT/T_MONTH_RESULT/T_YEAR_R ESULT),主要用于存儲傳輸質(zhì)量統(tǒng)計(jì)信息,包括站號、資料類型、應(yīng)收站數(shù)、及時站數(shù)、缺報站數(shù)等屬性;④傳輸報障時間表(T_TRANERROR_TIME),主要用于存儲由于氣象網(wǎng)絡(luò)故障、觀測設(shè)備維護(hù)維修等造成的氣象資料傳輸逾限和缺報時間信息,包括故障起止時間、受影響的資料類型、站號等屬性。
系統(tǒng)設(shè)計(jì)中,各數(shù)據(jù)庫表都以站號為主鍵,將各類氣象資料傳輸質(zhì)量的統(tǒng)計(jì)程序集成到系統(tǒng)主程序中,主程序根據(jù)用戶設(shè)置的時間定時自動完成質(zhì)量的統(tǒng)計(jì)計(jì)算。統(tǒng)計(jì)對象包括甘肅省自動氣象站、區(qū)域氣象站、自動土壤水分站、新一代天氣雷達(dá)等所有納入中國氣象局考核的資料,系統(tǒng)會將統(tǒng)計(jì)結(jié)果自動存儲到日/月/年統(tǒng)計(jì)結(jié)果表中。為了提高各類傳輸質(zhì)量的查詢效率,系統(tǒng)還應(yīng)用到了數(shù)據(jù)庫視圖和索引技術(shù)。
1.2.3 質(zhì)量對比訂正
主要用Java 語言開發(fā)該模塊程序,實(shí)現(xiàn)對甘肅省統(tǒng)計(jì)質(zhì)量和中國氣象局下發(fā)質(zhì)量的對比,并將有出入的信息以列表方式顯示出來,管理人員根據(jù)甘肅省實(shí)際,對中國氣象局統(tǒng)計(jì)結(jié)果進(jìn)行人工訂正,并填寫造成質(zhì)量問題的原因。
1.2.4 結(jié)果分析展示
該模塊主要根據(jù)配置的資料類型,自動進(jìn)行傳輸質(zhì)量結(jié)果的計(jì)算,以列表和直方圖等多種方式展示,并能將統(tǒng)計(jì)結(jié)果輸出到Word 和Excel 中,供業(yè)務(wù)人員做進(jìn)一步的分析和使用。比如選擇某一類資料,以柱狀圖和表格2 種方式展示,結(jié)果如圖2 所示。
圖2 傳輸質(zhì)量柱狀圖和表格展示結(jié)果
為能夠在不影響CTS 和SOD 業(yè)務(wù)正常開展以及保證氣象資料傳輸時效的前提下,對CTS 和SOD 相關(guān)數(shù)據(jù)進(jìn)行采集,系統(tǒng)采用XXL-JOB 分布式任務(wù)調(diào)度平臺來實(shí)時獲得CTS 和SOD 中用于氣象資料傳輸質(zhì)量統(tǒng)計(jì)管理的有關(guān)數(shù)據(jù),并將讀取到的數(shù)據(jù)寫入到本地數(shù)據(jù)庫中,方便系統(tǒng)各項(xiàng)功能的使用,同時不給CTS和SOD 系統(tǒng)的數(shù)據(jù)庫造成運(yùn)行壓力。XXL-JOB 分布式任務(wù)調(diào)度平臺可以進(jìn)行分布式部署,當(dāng)執(zhí)行器出現(xiàn)故障時,調(diào)度中心會將任務(wù)轉(zhuǎn)移到其他執(zhí)行器上執(zhí)行,內(nèi)部多線程,多任務(wù)可在單個執(zhí)行器上并發(fā)執(zhí)行,可以保證及時采集數(shù)據(jù),并提供數(shù)據(jù)補(bǔ)正功能,保證數(shù)據(jù)的完整性。
CTS 監(jiān)控數(shù)據(jù)主要包括高空觀測數(shù)據(jù)、城鎮(zhèn)天氣預(yù)報數(shù)據(jù)、國家級自動站數(shù)據(jù)、區(qū)域自動站數(shù)據(jù)、國家級無人值守自動氣象站數(shù)據(jù)、公路交通氣象站數(shù)據(jù)、天氣雷達(dá)基數(shù)據(jù)、天氣雷達(dá)PUP 產(chǎn)品等15 類上行氣象觀測數(shù)據(jù),當(dāng)數(shù)據(jù)量越來越大時,單表數(shù)據(jù)量太大會導(dǎo)致數(shù)據(jù)庫的查詢速度大大下降,因此,在服務(wù)器資源有限的情況下,該系統(tǒng)采用MYSQL 數(shù)據(jù)庫,對單表采用了分庫分表技術(shù),將大表分為小表,數(shù)據(jù)按月、按年分表,并采用數(shù)據(jù)庫視圖將小表重構(gòu)為總的虛擬表,在高并發(fā)情況下,一定程度上解決了單機(jī)性能不足問題。
平臺結(jié)合氣象規(guī)范、標(biāo)準(zhǔn)化體系和微服務(wù)架構(gòu)模式,以REST 協(xié)議向表現(xiàn)層或與其他業(yè)務(wù)系統(tǒng)進(jìn)行數(shù)據(jù)交互,應(yīng)用程序由各自獨(dú)立的組件組成,這些組件的開發(fā)和部署保持相對獨(dú)立,僅對這種應(yīng)用程序的某些組件進(jìn)行升級,對平臺進(jìn)行小幅度升級;組件可以在不同應(yīng)用程序之間共享,因此可對它們進(jìn)行復(fù)用,既充分利用好現(xiàn)有的服務(wù)資源,又使擴(kuò)展開發(fā)具有更高的靈活性。
該系統(tǒng)的總體設(shè)計(jì)是基于B/S 的架構(gòu),即瀏覽器/服務(wù)器模式。這種模式統(tǒng)一了客戶端,將系統(tǒng)功能實(shí)現(xiàn)的核心部分集中到服務(wù)器上,使用戶的訪問更方便快捷,也簡化了客戶端電腦的負(fù)荷,減輕了系統(tǒng)的開發(fā)、維護(hù)和使用成本。
系統(tǒng)后端采用Java 開發(fā)語言,前端采用HTML5和CSS3 技術(shù)。Java 是目前使用最廣泛的網(wǎng)絡(luò)編程語言之一,它具有簡單、面向?qū)ο蟆⒎€(wěn)定、跨平臺運(yùn)行等特點(diǎn);而HTML5、CSS3 技術(shù)在很大程度上提高了項(xiàng)目建設(shè)的美觀程度,為用戶提供了不一樣的視覺體驗(yàn),在進(jìn)行網(wǎng)頁設(shè)計(jì)時,減少標(biāo)簽的嵌套和圖片的使用數(shù)量,頁面加載速度和網(wǎng)站的性能得到提升。
系統(tǒng)遵循國際統(tǒng)一的JSON 數(shù)據(jù)通信標(biāo)準(zhǔn),提供開發(fā)性的應(yīng)用系統(tǒng)接口,為系統(tǒng)的升級和集成提供很好的基礎(chǔ)服務(wù)平臺。提供各種業(yè)務(wù)數(shù)據(jù)的加工轉(zhuǎn)換服務(wù),并通過該標(biāo)準(zhǔn)進(jìn)行系統(tǒng)之間的協(xié)作和數(shù)據(jù)通信。
本文基于國內(nèi)新一代通信系統(tǒng)的各類氣象資料收發(fā)信息及中國氣象局每月下發(fā)的全國氣象資料傳輸質(zhì)量,設(shè)計(jì)開發(fā)的甘肅省實(shí)時氣象資料傳輸質(zhì)量管理系統(tǒng)解決了多年來甘肅省氣象資料傳輸質(zhì)量管理手段落后,效率低下問題,主要具有以下優(yōu)點(diǎn):①實(shí)現(xiàn)了剔除因臺站觀測設(shè)備維護(hù)維修、氣象網(wǎng)絡(luò)故障、CTS 系統(tǒng)故障等客觀原因造成的各類氣象資料逾限和缺報影響,大大提高了甘肅省各類實(shí)時氣象資料傳輸質(zhì)量統(tǒng)計(jì)結(jié)果的準(zhǔn)確性;②實(shí)現(xiàn)了對耗費(fèi)大量人力和時間完成的甘肅省氣象資料傳輸質(zhì)量統(tǒng)計(jì)工作的自動化統(tǒng)計(jì)計(jì)算和管理,極大地提高了業(yè)務(wù)人員的工作效率;③實(shí)現(xiàn)了對甘肅省傳輸質(zhì)量統(tǒng)計(jì)結(jié)果和中國氣象局下發(fā)的質(zhì)量結(jié)果的對比分析,對統(tǒng)計(jì)結(jié)果以多種方式顯示和輸出,便于管理人員發(fā)現(xiàn)氣象資料傳輸中存在的問題,為氣象預(yù)報預(yù)測等業(yè)務(wù)所需氣象資料的及時、可靠、穩(wěn)定傳輸提供了一個監(jiān)視平臺。