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