陳沖 張鋒 朱潛 王偉 李俊徽



摘要:為了解決浙江省各級(jí)氣象部門服務(wù)的數(shù)據(jù)來(lái)源不一致、響應(yīng)慢等問(wèn)題,利用分布式云存儲(chǔ)和云計(jì)算框架,構(gòu)建了基于云平臺(tái)的氣象數(shù)據(jù)共享系統(tǒng),無(wú)縫對(duì)接傳統(tǒng)氣象數(shù)據(jù)源,研發(fā)氣象數(shù)據(jù)從存儲(chǔ)、加工、共享發(fā)布到管理的一體化功能。實(shí)踐證明,該系統(tǒng)較好地整合了全省氣象數(shù)據(jù),產(chǎn)品資源集約度更高,響應(yīng)時(shí)間更快,負(fù)載能力更強(qiáng),為各級(jí)氣象部門提供了可靠、高效的實(shí)時(shí)數(shù)據(jù)共享服務(wù),取得了良好的應(yīng)用效果。
關(guān)鍵詞:氣象;云計(jì)算;云平臺(tái);共享;發(fā)布
中圖分類號(hào):TP399? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2023)01-0067-04
1 引言
隨著浙江省氣象信息化、現(xiàn)代化發(fā)展,全省氣象數(shù)據(jù)更加豐富[1-3],其在氣象監(jiān)測(cè)、預(yù)報(bào)預(yù)警中發(fā)揮著越來(lái)越多的應(yīng)用。但受制于氣象內(nèi)外網(wǎng)絡(luò)安全等因素影響,各級(jí)氣象部門獲取數(shù)據(jù)困難,難以高效統(tǒng)一地共享省級(jí)業(yè)務(wù)部門的數(shù)據(jù)產(chǎn)品,出現(xiàn)了本地?cái)?shù)據(jù)來(lái)源雜亂、延時(shí)性高等問(wèn)題,對(duì)其進(jìn)一步提升氣象服務(wù)質(zhì)量產(chǎn)生較大影響。
近年來(lái)云服務(wù)發(fā)展迅速,云計(jì)算服務(wù)平臺(tái)[3-6]提供了規(guī)范化的基礎(chǔ)數(shù)據(jù)支撐框架,實(shí)現(xiàn)了從網(wǎng)絡(luò)、計(jì)算到存儲(chǔ)等資源集約化的功能,有效提升資源利用率及響應(yīng)效率[6-8]。基于云平臺(tái)技術(shù)集中開(kāi)發(fā)互聯(lián)網(wǎng)氣象數(shù)據(jù)接口服務(wù),可有效地實(shí)現(xiàn)數(shù)據(jù)共享與網(wǎng)絡(luò)壁壘。
本文利用云平臺(tái)的技術(shù)框架,建立基于云平臺(tái)的數(shù)據(jù)共享系統(tǒng),通過(guò)接口鑒權(quán)的方式,實(shí)現(xiàn)全省各級(jí)氣象部門的數(shù)據(jù)共享服務(wù),為各級(jí)氣象部門提供氣象實(shí)況、預(yù)報(bào)預(yù)警、雷達(dá)等精細(xì)化氣象產(chǎn)品,實(shí)現(xiàn)全省氣象數(shù)據(jù)的集約整合、開(kāi)放共享的建設(shè)模式。
2 系統(tǒng)設(shè)計(jì)
2.1 系統(tǒng)三層體系架構(gòu)設(shè)計(jì)
氣象數(shù)據(jù)共享系統(tǒng)總體包括“三橫二縱”結(jié)構(gòu),“三橫”為數(shù)據(jù)采集層、數(shù)據(jù)存儲(chǔ)層及數(shù)據(jù)服務(wù)層,“二縱”為業(yè)務(wù)管理與消息總線,總體系統(tǒng)架構(gòu)圖如圖1。
1) 數(shù)據(jù)采集層:承擔(dān)對(duì)省級(jí)氣象數(shù)據(jù)的收集任務(wù),數(shù)據(jù)范圍涵蓋氣象網(wǎng)格數(shù)據(jù)、XML、JSON、文檔與圖片等,采用Java語(yǔ)言設(shè)計(jì)開(kāi)發(fā),利用開(kāi)源的Jenkins任務(wù)調(diào)度器,通過(guò)FTP的方式實(shí)現(xiàn)采集和傳輸,并對(duì)文件進(jìn)行規(guī)范化命名處理和分類入庫(kù)。
2) 數(shù)據(jù)存儲(chǔ)層:承擔(dān)對(duì)數(shù)據(jù)的規(guī)范化存儲(chǔ)任務(wù),將氣象文件類數(shù)據(jù)存儲(chǔ)于OSS(Object Storage Service) ;相關(guān)用戶信息與日志等存儲(chǔ)于RDS(Relational Database Service) ;將氣象網(wǎng)格數(shù)據(jù)以key-value的方式存儲(chǔ)于HBase(Hadoop Database) ,以提升定點(diǎn)經(jīng)緯度數(shù)據(jù)值的讀取速度,所有基于LBS(Location Based Services) 的接口的數(shù)據(jù)都從HBase獲取。
3) 數(shù)據(jù)服務(wù)層:承擔(dān)通用的、規(guī)范化的數(shù)據(jù)接口服務(wù),同時(shí)實(shí)現(xiàn)對(duì)數(shù)據(jù)訪問(wèn)的權(quán)限控制和相關(guān)日志記錄功能;依托API(Application Programming Interface) 網(wǎng)關(guān)和SLB(Server Load Balancing) 技術(shù),向全省提供互聯(lián)網(wǎng)基礎(chǔ)數(shù)據(jù)服務(wù),確保其具有較強(qiáng)的穩(wěn)定性、可靠性和易擴(kuò)展性。
4) “二縱”主要包括:業(yè)務(wù)管理、消息總線。業(yè)務(wù)管理是對(duì)氣象數(shù)據(jù)共享服務(wù)的管理平臺(tái),對(duì)數(shù)據(jù)接口申請(qǐng)、氣象數(shù)據(jù)管理與用戶管理提供維護(hù)功能;消息總線承擔(dān)各子系統(tǒng)、各應(yīng)用和模塊之間的信息交互。
2.2 數(shù)據(jù)處理流程設(shè)計(jì)
數(shù)據(jù)處理流程包括任務(wù)調(diào)度、數(shù)據(jù)同步及數(shù)據(jù)存儲(chǔ),框架如圖2。將浙江省氣象內(nèi)網(wǎng)的監(jiān)測(cè)預(yù)報(bào)網(wǎng)格產(chǎn)品、雷達(dá)、預(yù)警信息與文稿等數(shù)據(jù)進(jìn)行采集、加工處理和上云。
1) 任務(wù)調(diào)度:使用Jenkins,替代傳統(tǒng)Windows計(jì)劃任務(wù),提供分布式調(diào)度,部署一個(gè)Jenkins管理節(jié)點(diǎn),其他節(jié)點(diǎn)負(fù)責(zé)具體調(diào)度和運(yùn)行。
2) 數(shù)據(jù)同步:采用Kettle中間件進(jìn)行數(shù)據(jù)庫(kù)信息采集同步,由Transformation和Job兩種腳本文件實(shí)現(xiàn)業(yè)務(wù),Transformation完成針對(duì)數(shù)據(jù)的基礎(chǔ)轉(zhuǎn)換,Job則完成整個(gè)工作流的控制,最終通過(guò)Shell腳本或者Batch批處理命令執(zhí)行任務(wù);研發(fā)FTP文件數(shù)據(jù)采集同步程序,通過(guò)Batch批處理命令執(zhí)行任務(wù),可以基于配置定義每類數(shù)據(jù)的相關(guān)屬性實(shí)現(xiàn)文件校驗(yàn)、同步、解析和上云等。
3) 數(shù)據(jù)存儲(chǔ):采用阿里云存儲(chǔ)服務(wù),包括對(duì)網(wǎng)格文件、雷達(dá)、預(yù)警文件與圖文資料等文件類數(shù)據(jù),業(yè)務(wù)管理信息、用戶信息、配置信息與訪問(wèn)信息等結(jié)構(gòu)化數(shù)據(jù),key-value方式存儲(chǔ)的氣象網(wǎng)格數(shù)據(jù)等三類數(shù)據(jù)的存儲(chǔ)服務(wù)。
2.3 數(shù)據(jù)接口發(fā)布流程設(shè)計(jì)
數(shù)據(jù)接口發(fā)布流程設(shè)計(jì)是對(duì)基于云存儲(chǔ)的氣象數(shù)據(jù)資源開(kāi)展共享流程架構(gòu),對(duì)氣象數(shù)據(jù)資源進(jìn)行集約化利用、高效化發(fā)布以及規(guī)范化管理,由數(shù)據(jù)接口規(guī)范與說(shuō)明與訪問(wèn)權(quán)限管理組成,用于接口幫助信息展示和接口權(quán)限管理。
1) 數(shù)據(jù)接口規(guī)范與說(shuō)明:主要由接口地址、請(qǐng)求參數(shù)、返回信息和樣例說(shuō)明組成。接口地址采用統(tǒng)一域名加不同子地址的方式進(jìn)行開(kāi)放,需傳入相關(guān)參數(shù),包括相關(guān)位置信息、密鑰、時(shí)序等;數(shù)據(jù)返回信息和樣例說(shuō)明是對(duì)接口返回內(nèi)容的具體說(shuō)明,便于開(kāi)發(fā)者使用,減少中間的溝通成本,整體流程如圖3。
2) 數(shù)據(jù)訪問(wèn)權(quán)限管理:包括審批與接口鑒權(quán),接入氣象數(shù)據(jù)共享系統(tǒng)的接口需先進(jìn)行申請(qǐng),提交接口類型、訪問(wèn)氣象要素與注冊(cè)用戶信息等資料,審批通過(guò)后開(kāi)放給用戶對(duì)應(yīng)的密鑰,后面所有數(shù)據(jù)訪問(wèn)都基于用戶身份認(rèn)證模式,密鑰校驗(yàn)成功后才能獲取到接口返回?cái)?shù)據(jù),整體流程如圖4。
3) 數(shù)據(jù)接口概述
數(shù)據(jù)接口采用Java語(yǔ)言編寫,依托阿里云微服務(wù)架構(gòu)實(shí)現(xiàn)接口部署,通過(guò)SLB完成訪問(wèn)壓力導(dǎo)流,通過(guò)阿里云API最終發(fā)布。下面以基于LBS的天氣實(shí)況查詢接口為例進(jìn)行說(shuō)明:
public List
參數(shù)說(shuō)明如下:
lon,請(qǐng)求區(qū)域經(jīng)度。
lat,請(qǐng)求區(qū)域緯度。
date,需要計(jì)算的開(kāi)始時(shí)間。
currentDate,當(dāng)前時(shí)間。
譬如,用戶需要請(qǐng)求經(jīng)緯為(120.00,30.00) 位置的當(dāng)前時(shí)間天氣實(shí)況信息。則調(diào)用示例為:
List
其中date與currentDate為當(dāng)前時(shí)間入?yún)ⅰ=涌诜祷氐慕Y(jié)果采用鍵-值對(duì)形式,如下:
[{"title":"公眾版天氣現(xiàn)象","type":"pub_WeatherType","value":"小雨"},{"title":"溫度","type":"DryBulTemp","value":"35.8"},{"title":"相對(duì)濕度","type":"RelHumidity","value":"61%"},{"title":"站點(diǎn)氣壓(百帕)","type":"pub_STATION_PRESS","value":"1007"},{"title":"風(fēng)向風(fēng)速","type":"pub_WindDV","value":"東南偏東風(fēng)2級(jí)"}]
title為氣象要素中描述,type為氣象要素關(guān)鍵字,value為氣象要素值,接口可供各氣象服務(wù)系統(tǒng)調(diào)用。
3 系統(tǒng)實(shí)現(xiàn)與測(cè)試
依托上述設(shè)計(jì)理念,本文對(duì)基于云平臺(tái)的氣象數(shù)據(jù)共享系統(tǒng)進(jìn)行了實(shí)現(xiàn),Web頁(yè)面部署于ECS(Elastic Compute Service) ,頁(yè)面采用HTML5、JavaScript語(yǔ)言聯(lián)合Leaflet、ECharts-GL等第三方Web GIS API接口的圖形繪制等功能進(jìn)行開(kāi)發(fā),利用基于AJAX實(shí)時(shí)異步技術(shù)讀取接口進(jìn)行數(shù)據(jù)訪問(wèn)與產(chǎn)品展示。部分系統(tǒng)頁(yè)面如圖5、圖6所示。
3.1 系統(tǒng)數(shù)據(jù)發(fā)布功能測(cè)試
系統(tǒng)提供包括基于LBS的點(diǎn)數(shù)據(jù)接口與基于地圖服務(wù)的面數(shù)據(jù)接口等服務(wù)。基于LBS接口參數(shù)包括選取點(diǎn)經(jīng)緯度或位置名稱、時(shí)間序列等,基于地圖服務(wù)接口參數(shù)包括市縣區(qū)名稱、時(shí)間序列等,同時(shí)所有接口需傳入唯一認(rèn)證參數(shù)作為安全校驗(yàn)標(biāo)識(shí)。系統(tǒng)查詢結(jié)果格式為JSON、圖形、XML等格式,調(diào)用案例如圖7所示。
3.2 系統(tǒng)數(shù)據(jù)發(fā)布功能測(cè)試
系統(tǒng)數(shù)據(jù)服務(wù)的發(fā)布通過(guò)云平臺(tái),將氣象大數(shù)據(jù)最終以數(shù)據(jù)接口形式發(fā)布。發(fā)布為基于位置的數(shù)據(jù)接口,采用將相關(guān)氣象網(wǎng)格產(chǎn)品寫入HBase的辦法提升網(wǎng)格點(diǎn)位數(shù)據(jù)的調(diào)用效率;發(fā)布為海量氣象圖形的數(shù)據(jù)接口,采用CDN技術(shù)提升接口調(diào)用速度;其他例如JSON、XML等數(shù)據(jù)則通過(guò)OSS位置鏈路直接發(fā)布。本文對(duì)基于云平臺(tái)的氣象數(shù)據(jù)共享系統(tǒng)接口服務(wù)狀態(tài)進(jìn)行抽樣測(cè)試,結(jié)果見(jiàn)表1,可以看出數(shù)據(jù)服務(wù)在保持高請(qǐng)求數(shù)的同時(shí)還維持較低的異常率,綜合響應(yīng)時(shí)間保持?jǐn)?shù)十毫秒級(jí),詳情如圖8,整體具備了延遲率與出錯(cuò)率較低、負(fù)載能力較強(qiáng)等特點(diǎn)。
4 結(jié)束語(yǔ)
本文建立了一種基于云平臺(tái)的氣象數(shù)據(jù)共享系統(tǒng),利用云存儲(chǔ)、云計(jì)算等技術(shù)設(shè)計(jì)了浙江省級(jí)氣象大數(shù)據(jù)共享發(fā)布的業(yè)務(wù)流程,通過(guò)建立數(shù)據(jù)資源池與分布式數(shù)據(jù)處理服務(wù)、集中開(kāi)發(fā)基礎(chǔ)氣象服務(wù)API,為市縣區(qū)提供了基于位置與地圖服務(wù)的點(diǎn)面氣象數(shù)據(jù)共享接口。系統(tǒng)集約了數(shù)據(jù)源,利用云平臺(tái)分布式技術(shù)手段,較好解決了數(shù)據(jù)不一致,數(shù)據(jù)響應(yīng)慢等問(wèn)題。
目前,該系統(tǒng)已投入業(yè)務(wù)化試用,對(duì)各級(jí)氣象部門獲取氣象數(shù)據(jù)效率有一定提升,但系統(tǒng)共享數(shù)據(jù)的豐富性還需進(jìn)一步提升,在未來(lái)研究中,還需進(jìn)一步擴(kuò)充數(shù)據(jù)類型,以滿足更多的專業(yè)化氣象服務(wù)需求。
參考文獻(xiàn):
[1] 黃志,詹利群,任曉煒,等.Hadoop環(huán)境下基于SparkSQL海量自動(dòng)站數(shù)據(jù)查詢統(tǒng)計(jì)初探[J].氣象科技,2019,47(5):768-772,871.
[2] 徐擁軍,何文春,劉媛媛,等.氣象大數(shù)據(jù)存儲(chǔ)體系設(shè)計(jì)與實(shí)現(xiàn)[J].電子測(cè)量技術(shù),2020,43(22):19-25.
[3] 江彩英,郭曉佳,謝丹,等.基于虛擬化云網(wǎng)盤的氣象數(shù)據(jù)共享和交換應(yīng)用實(shí)現(xiàn)[J].氣象科技,2017,45(3):440-445.
[4] 楊騰飛,申培松,田雪,等.對(duì)象云存儲(chǔ)中分類分級(jí)數(shù)據(jù)的訪問(wèn)控制方法[J].軟件學(xué)報(bào),2017,28(9):2334-2353.
[5] 張曉麗,楊家海,孫曉晴,等.分布式云的研究進(jìn)展綜述[J].軟件學(xué)報(bào),2018,29(7):2116-2132.
[6] 尹常紅,胡雅超,袁文波,等.一種氣象數(shù)據(jù)共享接口系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2021,17(5):93-95,109.
[7] 李冠楠,金波,吳麗健.基于區(qū)塊鏈技術(shù)的數(shù)據(jù)共享體系研究[J].電腦知識(shí)與技術(shù),2021,17(5):40-41.
[8] 段文雪,胡銘,周瓊,等.云計(jì)算系統(tǒng)可靠性研究綜述[J].計(jì)算機(jī)研究與發(fā)展,2020,57(1):102-123.
【通聯(lián)編輯:謝媛媛】