孫林花,高鵬
(1.蘭州資源環境職業技術大學,甘肅蘭州 730021;2.甘肅省氣象信息與技術裝備保障中心,甘肅蘭州 730021)
氣象資料的傳輸工作是氣象通信業務的基礎,其及時性、正確性和完整性是做好氣象預報預測、公共氣象服務和科研等工作的基礎和保障。目前,甘肅省各類氣象資料的傳輸依托的是甘肅省氣象大數據云平臺中的數據收集與分發系統(Comcast Technology Solutions,CTS)。該系統是繼氣象衛星綜合應用業務系統(簡稱為“9210 系統”)以后中國氣象局對國內氣象通信系統的一次非常重要的升級,前后經歷了V1.0和V2.0 這2 個版本,主要針對氣象資料類型多、信息加工處理量大、中間傳輸環節多、傳輸時效不及時、資料文件命名及格式不統一、資料收發和處理監控不全面等問題,基于SUSE LINUX 操作系統和集群架構,采用賽門鐵克(VERITAS Cluster Server,VCS)技術,開發的集“各類氣象資料傳輸、加工處理及運行監控”等功能為一體的國內新一代氣象通信系統。
該系統具有很好的易擴展性和高可用性,并使業務流程更規范化。與原9210 系統相比,CTS 系統極大地提高了氣象資料的處理(文件命名規范性檢查、格式檢查、打包、壓縮、解壓縮等)與并行傳輸能力[1-4],但無法根據業務管理部門的需要自動生成傳輸質量統計報表。各類氣象資料傳輸質量統計報表的制作需要業務人員從CTS 數據庫導出資料收發信息(收集時間、分發時間、收集狀態、分發狀態等)到Excel 表中,通過大量的手工處理后方可完成,報表制作時間大約需要一周,自動化程度非常低。CTS 也沒有剔除氣象網絡故障、觀測設備維護維修、CTS 系統升級等客觀原因造成的資料逾限或缺報影響,極大地影響了甘肅省氣象資料在中國氣象局的傳輸質量考核。因此,設計和開發基于新一代通信系統的氣象資料傳輸質量管理系統十分必要。
本文主要采用Java 開發語言、多線程資源處理技術、組件化設計、HTML5 及CSS3 技術構建,基于數據倉庫的數據存儲等實現系統的設計與開發。系統主要實現了從CTS 自動采集傳輸質量統計所需的各類氣象資料收發狀態等信息;實現了按市州、縣、站和資料類型等不同方式的傳輸質量統計計算;實現了剔除氣象觀測設備維護維修、氣象網絡故障等客觀原因對傳輸質量造成的逾限和缺報影響;實現了對本省傳輸質量統計結果和中國氣象局下發的傳輸質量結果的對比分析;實現了展示和輸出傳輸質量統計結果的圖表等功能,大大提高了甘肅省氣象資料傳輸質量統計計算和核查對比的效率,減輕了業務人員的工作量。
甘肅省氣象資料傳輸質量管理系統采用B/S(Browser/Server,瀏覽器/服務器)架構,包括資源保障層、信息采集層、數據處理層、應用層和用戶層共5個層次,以及一個標準規范體系和一個安全保障體系[5-6],系統架構示意圖如圖1 所示。資源保障層主要為數據收集、傳輸、加工處理、存儲等提供網絡、計算機及存儲資源;信息采集層主要用于采集各種氣象資料收集和分發的基本信息,通過數據存儲管理系統(Service-Oriented Datastoragesystem,SOD)實現存儲;數據處理層主要通過本系統開發的中間處理程序從CTS 和SOD 中實時采集質量統計需要的相關信息,并根據CTS 中配置的各類氣象資料傳輸時效信息,完成時效計算和統計分析等;應用層則將各類氣象資料傳輸質量統計結果以Web 的形式面向省級、地市(州)、縣級用戶進行展示;用戶層主要是實現對不同級別用戶身份的認證信息管理。系統遵循國際統一的JSON(Java Script Object Notation,一種輕量級的數據交換格式)數據通信標準,提供開發性的應用系統接口,為系統的升級和集成提供很好的基礎服務平臺,提供各種業務數據的加工轉換,并通過該標準進行系統之間的協作和數據通信。

圖1 系統架構示意圖
本系統在設計及實現的時候,以集約化為原則,其資源保障層、信息采集層、標準規范體系及安全保障體系都依托氣象部門的資源及相應體系。
CTS 中實時記錄了各種氣象資料收發信息(資料類型、站號、觀測時間、接收時間、發送時間、收集時效標記、發送時效標記、數據源IP 地址、目的地IP地址等),因此,氣象資料傳輸質量管理系統的統計分析主要依托CTS 完成。根據質量統計需要,本文主要設計了以下3 個功能模塊。
1.2.1 數據采集
為了不影響CTS 系統的正常運行及保證數據采集的時效性和準確性,氣象資料傳輸質量管理系統中開發了一個專門用于數據采集的中間程序,負責從CTS系統中實時采集各類氣象資料的類型、站號、資料收集時效標記和發送時效標記等信息至氣象資料傳輸質量管理系統的MySQL 數據庫中。
1.2.2 傳輸質量統計
傳輸質量統計模塊是甘肅省實時氣象資料傳輸質量管理系統的核心功能模塊,主要以MySQL 數據庫為數據環境,用Java 開發語言編寫甘肅省各類氣象資料日、月和年的質量統計程序。其中,主要設計的數據庫表包括:①站網信息表(T_STATION),主要用于存儲甘肅省各類站點的站網信息,包括站號、站名、所屬市州、經度、緯度、海報高度、站點類型等屬性;②實時氣象資料傳輸信息表(T_TRAN_INFO),主要用于存儲甘肅省各類實時氣象資料的傳輸信息,包括資料類型、站號、觀測時間、接收時間、發送時間、數據源IP 地址、目的地IP 地址、接收時效標記、發送時效標記、資料文件名等屬性;③資料傳輸日/月/年統計結果表(T_DAY_RESULT/T_MONTH_RESULT/T_YEAR_R ESULT),主要用于存儲傳輸質量統計信息,包括站號、資料類型、應收站數、及時站數、缺報站數等屬性;④傳輸報障時間表(T_TRANERROR_TIME),主要用于存儲由于氣象網絡故障、觀測設備維護維修等造成的氣象資料傳輸逾限和缺報時間信息,包括故障起止時間、受影響的資料類型、站號等屬性。
系統設計中,各數據庫表都以站號為主鍵,將各類氣象資料傳輸質量的統計程序集成到系統主程序中,主程序根據用戶設置的時間定時自動完成質量的統計計算。統計對象包括甘肅省自動氣象站、區域氣象站、自動土壤水分站、新一代天氣雷達等所有納入中國氣象局考核的資料,系統會將統計結果自動存儲到日/月/年統計結果表中。為了提高各類傳輸質量的查詢效率,系統還應用到了數據庫視圖和索引技術。
1.2.3 質量對比訂正
主要用Java 語言開發該模塊程序,實現對甘肅省統計質量和中國氣象局下發質量的對比,并將有出入的信息以列表方式顯示出來,管理人員根據甘肅省實際,對中國氣象局統計結果進行人工訂正,并填寫造成質量問題的原因。
1.2.4 結果分析展示
該模塊主要根據配置的資料類型,自動進行傳輸質量結果的計算,以列表和直方圖等多種方式展示,并能將統計結果輸出到Word 和Excel 中,供業務人員做進一步的分析和使用。比如選擇某一類資料,以柱狀圖和表格2 種方式展示,結果如圖2 所示。

圖2 傳輸質量柱狀圖和表格展示結果
為能夠在不影響CTS 和SOD 業務正常開展以及保證氣象資料傳輸時效的前提下,對CTS 和SOD 相關數據進行采集,系統采用XXL-JOB 分布式任務調度平臺來實時獲得CTS 和SOD 中用于氣象資料傳輸質量統計管理的有關數據,并將讀取到的數據寫入到本地數據庫中,方便系統各項功能的使用,同時不給CTS和SOD 系統的數據庫造成運行壓力。XXL-JOB 分布式任務調度平臺可以進行分布式部署,當執行器出現故障時,調度中心會將任務轉移到其他執行器上執行,內部多線程,多任務可在單個執行器上并發執行,可以保證及時采集數據,并提供數據補正功能,保證數據的完整性。
CTS 監控數據主要包括高空觀測數據、城鎮天氣預報數據、國家級自動站數據、區域自動站數據、國家級無人值守自動氣象站數據、公路交通氣象站數據、天氣雷達基數據、天氣雷達PUP 產品等15 類上行氣象觀測數據,當數據量越來越大時,單表數據量太大會導致數據庫的查詢速度大大下降,因此,在服務器資源有限的情況下,該系統采用MYSQL 數據庫,對單表采用了分庫分表技術,將大表分為小表,數據按月、按年分表,并采用數據庫視圖將小表重構為總的虛擬表,在高并發情況下,一定程度上解決了單機性能不足問題。
平臺結合氣象規范、標準化體系和微服務架構模式,以REST 協議向表現層或與其他業務系統進行數據交互,應用程序由各自獨立的組件組成,這些組件的開發和部署保持相對獨立,僅對這種應用程序的某些組件進行升級,對平臺進行小幅度升級;組件可以在不同應用程序之間共享,因此可對它們進行復用,既充分利用好現有的服務資源,又使擴展開發具有更高的靈活性。
該系統的總體設計是基于B/S 的架構,即瀏覽器/服務器模式。這種模式統一了客戶端,將系統功能實現的核心部分集中到服務器上,使用戶的訪問更方便快捷,也簡化了客戶端電腦的負荷,減輕了系統的開發、維護和使用成本。
系統后端采用Java 開發語言,前端采用HTML5和CSS3 技術。Java 是目前使用最廣泛的網絡編程語言之一,它具有簡單、面向對象、穩定、跨平臺運行等特點;而HTML5、CSS3 技術在很大程度上提高了項目建設的美觀程度,為用戶提供了不一樣的視覺體驗,在進行網頁設計時,減少標簽的嵌套和圖片的使用數量,頁面加載速度和網站的性能得到提升。
系統遵循國際統一的JSON 數據通信標準,提供開發性的應用系統接口,為系統的升級和集成提供很好的基礎服務平臺。提供各種業務數據的加工轉換服務,并通過該標準進行系統之間的協作和數據通信。
本文基于國內新一代通信系統的各類氣象資料收發信息及中國氣象局每月下發的全國氣象資料傳輸質量,設計開發的甘肅省實時氣象資料傳輸質量管理系統解決了多年來甘肅省氣象資料傳輸質量管理手段落后,效率低下問題,主要具有以下優點:①實現了剔除因臺站觀測設備維護維修、氣象網絡故障、CTS 系統故障等客觀原因造成的各類氣象資料逾限和缺報影響,大大提高了甘肅省各類實時氣象資料傳輸質量統計結果的準確性;②實現了對耗費大量人力和時間完成的甘肅省氣象資料傳輸質量統計工作的自動化統計計算和管理,極大地提高了業務人員的工作效率;③實現了對甘肅省傳輸質量統計結果和中國氣象局下發的質量結果的對比分析,對統計結果以多種方式顯示和輸出,便于管理人員發現氣象資料傳輸中存在的問題,為氣象預報預測等業務所需氣象資料的及時、可靠、穩定傳輸提供了一個監視平臺。