孫周軍,喬文文,侯 靈,何文春,張金標(biāo),敖振浪
1(廣東省氣象探測數(shù)據(jù)中心,廣州 510080)
2(國家氣象信息中心,北京 100081)
氣象服務(wù)是國家公共服務(wù)和社會事業(yè)發(fā)展重要組成部分,但氣象的基礎(chǔ)是數(shù)據(jù).氣象服務(wù)已由傳統(tǒng)的農(nóng)業(yè)氣象、地質(zhì)災(zāi)害、水文氣象、航空氣象等不斷向海洋、森林草原火險、交通、能源、城市、旅游、環(huán)境、公共衛(wèi)生等更廣闊的領(lǐng)域拓展,科學(xué)家們從事的科學(xué)研究也向跨領(lǐng)域、跨行業(yè)發(fā)展[1,2].對專業(yè)的地球科學(xué)和社會其他行業(yè)數(shù)據(jù)采集、存儲和管理,以及對互聯(lián)網(wǎng)上海量的數(shù)據(jù)資源進(jìn)行科學(xué)的超融合管理和便捷式供應(yīng)成為氣象科研活動需要迫切解決的問題.
為滿足對海量氣象數(shù)據(jù)管理和服務(wù)的需求,中國氣象局設(shè)計開發(fā)了全國氣象信息共享系統(tǒng)(China Integrated Meteorological Information Sharing System,CIMISS),已于2016年底投入業(yè)務(wù)運(yùn)行.該系統(tǒng)采用國、省兩級布局,負(fù)責(zé)氣象數(shù)據(jù)收集、加工處理、質(zhì)量控制、存儲管理和數(shù)據(jù)共享服務(wù),為氣象部門及相關(guān)行業(yè)用戶快捷便利地獲取氣象數(shù)據(jù)提供數(shù)據(jù)支撐[3-5].全國各省份也在數(shù)據(jù)管理和服務(wù)方面做了相關(guān)研究,馬渝勇等[6]提出的氣象信息管理與共享服務(wù)系統(tǒng)模型,基于中間件技術(shù)研發(fā)的接口服務(wù)讓數(shù)據(jù)庫的安全性和訪問效率得到保障,實(shí)現(xiàn)了開放式的氣象信息共享服務(wù);王宏記等[7]開發(fā)的氣象信息綜合數(shù)據(jù)庫系統(tǒng),從數(shù)據(jù)流程、采集、存儲和質(zhì)控等方面解決氣象業(yè)務(wù)發(fā)展中面臨的數(shù)據(jù)管理和服務(wù)問題;鄧?yán)騕8]提出的基本氣象資料共享系統(tǒng),利用氣象元數(shù)據(jù)管理技術(shù),結(jié)合人機(jī)交互界面提供了可視化的資料下載共享服務(wù);重慶、內(nèi)蒙、河北等氣象部門均研發(fā)不同的共享系統(tǒng)和數(shù)據(jù)服務(wù).這些業(yè)務(wù)方法在一定程度上為氣象數(shù)據(jù)的共享方法提供了改進(jìn)的理論支持和實(shí)現(xiàn)方法,但未充分性考慮到科研用戶的個性化調(diào)取和組織格式需求,未充分考慮需要較強(qiáng)的編程技能才能調(diào)取數(shù)據(jù)給科研人員帶來的困惑等問題.CIMISS系統(tǒng)提供的數(shù)據(jù)接口平臺提供了豐富的數(shù)據(jù)資源,提供多語言調(diào)用API方便開發(fā)人員調(diào)用數(shù)據(jù),但科研人員需要較高的學(xué)習(xí)成本研究相關(guān)調(diào)用技術(shù)、以及對調(diào)取的數(shù)據(jù)進(jìn)行二次處理形成所需的數(shù)據(jù)格式.有沒有一種能夠讓科研人員零編程、自定義數(shù)據(jù)格式的調(diào)用機(jī)制,解決科研人員個性化需求呢?
本文提出了一種混合架構(gòu)的可視化氣象數(shù)據(jù)調(diào)度檢索模型(IDEA Data Hub,IDH),該模型將可視化任務(wù)定制、調(diào)度和數(shù)據(jù)格式模板適配技術(shù)相結(jié)合,自動限流調(diào)取數(shù)據(jù)服務(wù)接口數(shù)據(jù),較好的滿足了科研人員對數(shù)據(jù)的個性化調(diào)用需求.
氣象科學(xué)研究是氣象業(yè)務(wù)的發(fā)展基礎(chǔ),而在科研究活動中,科學(xué)家一直受到科研數(shù)據(jù)組織的困擾,例如:不了詳細(xì)的資料清單,不了解資料時間、空間、地域、觀測頻次和要素,不了解獲得途徑,不了解數(shù)據(jù)服務(wù)接口調(diào)用方法等.主要有以下原因:(1)數(shù)據(jù)雖爆發(fā)增長,但業(yè)務(wù)供應(yīng)能力仍然偏弱.近年來隨氣象綜合觀測系統(tǒng)和互聯(lián)網(wǎng)技術(shù)的迅速發(fā)展,來自于專業(yè)化觀測和社會化萃取的氣象數(shù)據(jù),已經(jīng)構(gòu)成了氣象科研活動所需的豐富數(shù)據(jù)資源.然而,依托CIMISS構(gòu)建的國家和省級集約化數(shù)據(jù)環(huán)境,只是對傳統(tǒng)的14大類進(jìn)行了加工處理,且在線服務(wù)能力和存儲容量有限,個別資料僅能提供十幾天到幾個月的在線服務(wù).對氣象預(yù)報、氣候預(yù)測、決策服務(wù)和防災(zāi)減災(zāi)所需的跨行業(yè)、社會經(jīng)濟(jì)、社會化觀測數(shù)據(jù)并未進(jìn)行加工和管理.(2)數(shù)據(jù)科學(xué)管理,但與應(yīng)用習(xí)慣脫節(jié).同樣依托CIMISS系統(tǒng)研發(fā)的統(tǒng)一數(shù)據(jù)訪問服務(wù)對數(shù)據(jù)進(jìn)行分類和元數(shù)據(jù)描述,解決了了解數(shù)據(jù)的途徑問題,但輸出的格式無法與科研工具對接,例如:MICAPS、Suffer、Grads、NCL、IDV等.(3)IT技術(shù)日新月異,科研人員跟進(jìn)稍顯滯后.計算機(jī)科學(xué)的3大定律能夠很好的描述技術(shù)的發(fā)展速度,但氣象科研人員更注重于地球科學(xué)的原理、算法和實(shí)際應(yīng)用的深入鉆研,對于新的軟硬件技術(shù)則關(guān)注較少,難免對于數(shù)據(jù)存儲和服務(wù)采用的新技術(shù)和新方法無所適從.為解決以上問題,可通過計算機(jī)軟件技術(shù)實(shí)現(xiàn)對數(shù)據(jù)下載、格式轉(zhuǎn)換等流程的自動化封裝,避免其對科研活動的干擾.
可視化氣象數(shù)據(jù)調(diào)度檢索模型的設(shè)計采用“云+端”的業(yè)務(wù)設(shè)計模式,確保科學(xué)家有豐富的數(shù)據(jù)資源取用,也保證數(shù)據(jù)檢索下載的便捷性,解決科研人員組織科研數(shù)據(jù)的長期困惑.
平臺設(shè)計方案采用內(nèi)嵌式Web服務(wù)的混合技術(shù)架構(gòu),分別保持C/S和B/S的架構(gòu)的優(yōu)勢.表1詳細(xì)列出2種架構(gòu)的特點(diǎn)[9,10],從中可見,C/S在圖形的表現(xiàn)能力上以及運(yùn)行的流暢度上遠(yuǎn)強(qiáng)于B/S模式,但B/S架構(gòu)的跨平臺、響應(yīng)及時性、數(shù)據(jù)安全一致和實(shí)時性的優(yōu)點(diǎn)很難替代.
未來發(fā)展趨勢,是將兩種架構(gòu)優(yōu)勢完美地結(jié)合起來,該平臺的應(yīng)用系統(tǒng)既能以B/S的方式發(fā)布運(yùn)行,同時又具有C/S方式的極強(qiáng)的可操作性,即混合架構(gòu),該架構(gòu)恰好滿足云+端系統(tǒng)的設(shè)計與實(shí)現(xiàn)需求.
考慮到氣象科研人員對數(shù)據(jù)需求具有較大的個性化需求,數(shù)據(jù)檢索任務(wù)模型定義需要較強(qiáng)的交互操作,訂閱任務(wù)、任務(wù)分類和執(zhí)行記錄的管理,以及訂閱的數(shù)據(jù)需要本地存儲等,所以需要采用C/S技術(shù)架構(gòu);同時考慮到用戶鑒權(quán)、數(shù)據(jù)清單瀏覽、接口元數(shù)據(jù)查看、過程數(shù)據(jù)清理配置等,具有通用性,所以采用B/S技術(shù)架構(gòu),方便統(tǒng)一研發(fā)和運(yùn)維.
表1 B/S與C/S架構(gòu)優(yōu)缺點(diǎn)比較比較
可視化氣象數(shù)據(jù)調(diào)度檢索模型以云+端模式業(yè)務(wù)運(yùn)行,其中數(shù)據(jù)服務(wù)作為云端提供氣象科研數(shù)據(jù),可視化檢索客戶端軟件作為終端提供數(shù)據(jù)下載調(diào)度的任務(wù)定制、管理、運(yùn)行控制、格式轉(zhuǎn)換和個性化設(shè)置等可視化交互操作.
1.3.1 數(shù)據(jù)服務(wù)接口
氣象統(tǒng)一數(shù)據(jù)服務(wù)接口和實(shí)時歷史一體化數(shù)據(jù)訪問服務(wù)接口為氣象數(shù)據(jù)調(diào)度檢索模型提供氣象數(shù)據(jù)服務(wù),即數(shù)據(jù)服務(wù)云端.
圖1 MUSIC接口數(shù)據(jù)流程
(1)氣象數(shù)據(jù)統(tǒng)一服務(wù)接口(Meteorological Unified Service Interface Community,MUSIC)基于CIMISS面向氣象業(yè)務(wù)和科研提供全國統(tǒng)一、標(biāo)準(zhǔn)、豐富的數(shù)據(jù)訪問服務(wù)和應(yīng)用編程接口,為國、省、地、縣各級應(yīng)用系統(tǒng)提供唯一權(quán)威的數(shù)據(jù)接入服務(wù).它的處理流程如圖1所示.用戶在向MUSIC接口服務(wù)發(fā)起數(shù)據(jù)調(diào)用請求后,接口服務(wù)根據(jù)請求參數(shù)進(jìn)行訪問權(quán)限認(rèn)證和數(shù)據(jù)訪問權(quán)限認(rèn)證,通過鑒權(quán)后,分別調(diào)用站點(diǎn)數(shù)據(jù)服務(wù)、格點(diǎn)數(shù)據(jù)服務(wù)和文件數(shù)據(jù)服務(wù)執(zhí)行具體的數(shù)據(jù)獲取與格式封裝邏輯,從而原路返回給調(diào)用請求發(fā)起端.
(2)實(shí)時歷史一體化數(shù)據(jù)訪問服務(wù)接口平臺(Integrated Database for Easy Access,IDEA)數(shù)據(jù)服務(wù)接口,基于CIMISS系統(tǒng)標(biāo)準(zhǔn)自研的一體化集成數(shù)據(jù)環(huán)境(包括結(jié)構(gòu)化與非結(jié)構(gòu)化氣象數(shù)據(jù)),面向全省氣象業(yè)務(wù)提供標(biāo)準(zhǔn)、統(tǒng)一的數(shù)據(jù)服務(wù)接口,是對CIMISS支撐服務(wù)能力的擴(kuò)充.它的處理流程如圖2所示.用戶在向IDEA發(fā)起數(shù)據(jù)調(diào)用請求后,接口服務(wù)根據(jù)請求參數(shù)進(jìn)行訪問權(quán)限認(rèn)證和數(shù)據(jù)訪問權(quán)限認(rèn)證,通過鑒權(quán)后,根據(jù)請求數(shù)據(jù)類別,將請求轉(zhuǎn)發(fā)到具體的文件、格點(diǎn)、站點(diǎn)、圖形數(shù)據(jù)服務(wù)和算法服務(wù)集群執(zhí)行具體的數(shù)據(jù)獲取與格式封裝邏輯,從而原路返回給調(diào)用請求發(fā)起端.
其中IDEA接口與MUSIC接口平臺相對比,從系統(tǒng)功能角度來說IDEA接口平臺增加了檢索路由功能、數(shù)據(jù)服務(wù)分布式服務(wù)功能,以及增加算法、圖形產(chǎn)品數(shù)據(jù)服務(wù),以及數(shù)據(jù)寫入和刪除API等功能;從具體的實(shí)現(xiàn)來說,MUSIC是根據(jù)用戶提交的參數(shù)動態(tài)拼接檢索SQL,而IDEA平臺是預(yù)先定義的檢索SQL;CIMISS數(shù)據(jù)庫采用集中式存儲,由于存儲總?cè)萘肯拗苿t需定期對過期數(shù)據(jù)則進(jìn)行清理,實(shí)時歷史一體化數(shù)據(jù)庫則采用分布式數(shù)據(jù)服務(wù)與分業(yè)務(wù)存儲方式,理論上能夠做到數(shù)據(jù)的永久存儲和服務(wù).
1.3.2 代理服務(wù)模塊
氣象數(shù)據(jù)可視化調(diào)度檢索模型為數(shù)據(jù)服務(wù)接口平臺智能化的調(diào)用者,設(shè)計并實(shí)現(xiàn)能夠統(tǒng)一處理權(quán)限認(rèn)證、接口元數(shù)據(jù)服務(wù)、調(diào)用請求轉(zhuǎn)發(fā)、異常流量監(jiān)控的代理服務(wù),可在不介入接口服務(wù)平臺的情況下實(shí)現(xiàn)對其兼容,即該模型需要對MUSIC和IDEA接口平臺的兼容.具體處理流程如圖3所示.
(1)權(quán)限認(rèn)證 模型自身并不提供用戶權(quán)限認(rèn)證,需要借助數(shù)據(jù)服務(wù)接口平臺的賬戶認(rèn)證功能確保氣象數(shù)據(jù)的安全,所以在進(jìn)行調(diào)度任務(wù)的創(chuàng)建時需要根據(jù)數(shù)據(jù)所屬具體的服務(wù)接口平臺進(jìn)行鑒權(quán),才能可見具有調(diào)用權(quán)限的數(shù)據(jù)接口列表.
(2)元數(shù)據(jù)服務(wù) 數(shù)據(jù)服務(wù)接口平臺的定義、屬性和具體實(shí)現(xiàn)千差萬別,統(tǒng)一定義該模型需要使用到的元數(shù)據(jù)結(jié)構(gòu)體,并針對以上數(shù)據(jù)服務(wù)接口多態(tài)實(shí)現(xiàn)統(tǒng)一的元數(shù)據(jù)服務(wù),在可視化調(diào)度檢索模型上展示資料和接口列表,以及詳細(xì)展示單個接口的調(diào)用系統(tǒng)參數(shù)和接口參數(shù)、以及其他說明信息.
(3)請求轉(zhuǎn)發(fā) 模型將具體的數(shù)據(jù)下載請求通過代理服務(wù)模塊定位到具體的服務(wù)接口平臺獲取數(shù)據(jù),在轉(zhuǎn)發(fā)請求的過程中增加額外的用于標(biāo)識請求發(fā)起源的相關(guān)管理參數(shù).
(4)為避免隨模型用戶擴(kuò)大和模型調(diào)度數(shù)據(jù)種類增長,對數(shù)據(jù)服務(wù)接口造成突發(fā)性訪問壓力,導(dǎo)致服務(wù)接口平臺無法正常對用戶提供數(shù)據(jù)服務(wù),因此,模型在提交具體的數(shù)據(jù)請求時,按照預(yù)先設(shè)定的每秒請求量進(jìn)行提交,當(dāng)提交的請求量達(dá)到設(shè)定閾值時,則暫停提交請求.另外定時從服務(wù)接口平臺的訪問日志中分析時間段內(nèi)處理的請求數(shù)量是否達(dá)到系統(tǒng)承受的壓力,并提供可視化的強(qiáng)制用戶禁用功能,優(yōu)先保證數(shù)據(jù)接口服務(wù)穩(wěn)定運(yùn)行.
(5)智能升級 模型最終是以客戶端的方式運(yùn)行在科研人員的終端主機(jī)上,軟件需要具備能夠監(jiān)測自身是否具備更新條件、自動下載與重啟,以及處理不同版本之間的兼容性等功能,智能升級模塊需要對模型發(fā)出的以上請求進(jìn)行相關(guān)的響應(yīng)處理.
圖2 IDEA接口數(shù)據(jù)流程
圖3 代理服務(wù)處理流程圖
1.3.3 數(shù)據(jù)格式模板適配
數(shù)據(jù)格式模板適配功能是本模型的重要功能之一.在氣象科研領(lǐng)域中常用數(shù)據(jù)格式有Txt、Surfers、Micaps、NetCDF、HDF、Grib、BUFR等,而氣象數(shù)據(jù)服務(wù)接口輸出的主要格式有Txt、JSON、XML、Html、Csv格式,要讓用戶直接獲取到與應(yīng)用切合度高的數(shù)據(jù),則規(guī)定只從服務(wù)接口獲取JSON格式數(shù)據(jù),并根據(jù)用戶定制數(shù)據(jù)格式參數(shù)將其處理為應(yīng)用可識別的數(shù)據(jù)格式,簡化科研人員對數(shù)據(jù)的二次處理工作.轉(zhuǎn)換功能基于插件方式進(jìn)行具體實(shí)現(xiàn),科研用戶可自行實(shí)現(xiàn)所需格式的插件,進(jìn)行功能擴(kuò)展.
氣象可視化檢索調(diào)度平臺是IT技術(shù)在氣象數(shù)據(jù)存儲管理和服務(wù)應(yīng)用中的科學(xué)綜合運(yùn)用,提供具有一定智能管理的可視化科學(xué)數(shù)據(jù)檢索模型,由此需要定義任務(wù)的管理模型、任務(wù)狀態(tài)遷移模型,以及設(shè)計科學(xué)的業(yè)務(wù)操作流程[11,12].
定義1.接口模型平臺可適用于氣象統(tǒng)一數(shù)據(jù)服務(wù)平臺和廣東的實(shí)時歷史一體化數(shù)據(jù)訪問服務(wù)平臺,兩套接口平臺的實(shí)現(xiàn)均采用Restful方式,所以統(tǒng)一定義接口模型為(Interface Model),設(shè)接口對象屬性組為In={InID,SP,IP},其中InID為接口唯一編號,SP為接口調(diào)用的系統(tǒng)參數(shù)組,包括賬戶、密碼、數(shù)據(jù)返回格式,IP為接口參數(shù)組,根據(jù)具體接口的自身定義而定,一般包括時次、地域、站點(diǎn)、經(jīng)緯度范圍等.
定義2.數(shù)據(jù)調(diào)用任務(wù)模型(task model)是科研人員定制的所有數(shù)據(jù)檢索任務(wù)模型,主要包括任務(wù)模型關(guān)聯(lián)的接口模型和任務(wù)調(diào)度的相關(guān)屬性等,TM={TmID,InID,{sT,eT},tmS,{eI,eD},rT,{pE,fP,bF}}.其中TmID為任務(wù)模型編號,sT、eT為模型有效時間定義,其中eT可以取值為空,則表示任務(wù)模型永久生效,tmS為模型的運(yùn)行狀態(tài),eI為任務(wù)調(diào)度的間隔,eD為任務(wù)調(diào)度時匹配時間參數(shù)的偏移量,rT為重試次數(shù),pE、fP為任務(wù)模型存儲數(shù)據(jù)的路徑和文件名表達(dá)式,bF為任務(wù)模型下載的數(shù)據(jù)是否合并為大文件.任務(wù)模型分為歷史數(shù)據(jù)調(diào)取模型、未來數(shù)據(jù)調(diào)取模型和混合數(shù)據(jù)調(diào)取模型,主要取決于任務(wù)模型的有效時間區(qū)間.
定義3.數(shù)據(jù)調(diào)用任務(wù)實(shí)例(task instance)是任務(wù)模型產(chǎn)生要執(zhí)行的具體任務(wù),包括任務(wù)模型的具體執(zhí)行時間點(diǎn)、執(zhí)行狀態(tài)、已重試次數(shù)、任務(wù)實(shí)例具體下載數(shù)據(jù)的時間范圍用,以及任務(wù)模型所有屬性的賦值,TI={TnID,exeT,exeS,exeF,rT,{pE,fE,bF},{pST,pET}},其中TnID為任務(wù)實(shí)例編號,exeS為任務(wù)執(zhí)行狀態(tài),exeFT為任務(wù)執(zhí)行失敗次數(shù)、pST與pET分別為檢索數(shù)據(jù)的時間范圍.
定義4.數(shù)據(jù)調(diào)用任務(wù)實(shí)例集(task instance set)是所有任務(wù)實(shí)例集合.平臺根據(jù)科研人員定義的任務(wù)模型生成的需要執(zhí)行的任務(wù)實(shí)例列表,分為立即執(zhí)行實(shí)例集和未來執(zhí)行實(shí)例集.其中立即執(zhí)行實(shí)例集用來調(diào)取創(chuàng)建任務(wù)模型時間點(diǎn)前數(shù)據(jù)的任務(wù)實(shí)例,TISI={TI},未來執(zhí)行實(shí)例集用于調(diào)取創(chuàng)建任務(wù)模型時間節(jié)點(diǎn)后數(shù)據(jù)的任務(wù)實(shí)例,TISW={TI},則任務(wù)實(shí)例集定義為:TIS={TISI,TISW}.
任務(wù)模型管理器(Task Model Manager,TMM),負(fù)責(zé)任務(wù)模型運(yùn)行過程中的任務(wù)狀態(tài)轉(zhuǎn)換控制,根據(jù)任務(wù)模型定義生成具體的任務(wù)實(shí)例集,監(jiān)視統(tǒng)計任務(wù)實(shí)例集已完成、已生成和總數(shù),同時為便于科研人員對任務(wù)模型的管理,提供創(chuàng)建、刪除、修改、克隆、啟動/暫停和手工生成任務(wù)實(shí)例的功能.其中任務(wù)模型狀態(tài)轉(zhuǎn)換如圖4所示.
圖4 任務(wù)模型狀態(tài)轉(zhuǎn)換
任務(wù)實(shí)例管理器(Task Instance Manager,TIM),負(fù)責(zé)收集需要立即執(zhí)行的任務(wù)實(shí)例集,任務(wù)實(shí)例的具體執(zhí)行(包括:調(diào)用接口獲取數(shù)據(jù)、將返回結(jié)果按照任務(wù)模型定義組織文件存儲等)、狀態(tài)轉(zhuǎn)換和失敗重試,以及避免并發(fā)過多給服務(wù)端帶來較大壓力,所以TIM負(fù)責(zé)任務(wù)實(shí)例調(diào)度的并發(fā)流量控制等功能.
任務(wù)調(diào)度管理器(Task Schedule Manager,TSM),主要負(fù)責(zé)對平臺中的已完成任務(wù)實(shí)例、帶執(zhí)行任務(wù)實(shí)例、失敗任務(wù)實(shí)例和暫停任務(wù)實(shí)例進(jìn)行定期清除;負(fù)責(zé)對該平臺向接口服務(wù)發(fā)送調(diào)用請求量的統(tǒng)計,便于服務(wù)端能夠?qū)φ埱罅看蟮挠脩暨M(jìn)行強(qiáng)制禁用,確保接口服務(wù)能夠正常運(yùn)行.
為了更直觀、更詳細(xì)的展現(xiàn)任務(wù)模型調(diào)度的實(shí)現(xiàn)過程,將該過程用流程圖展示出來,如圖5所示.
圖5 任務(wù)管理流程圖
(1)任務(wù)實(shí)例生成過程 用戶根據(jù)選定的接口,設(shè)定任務(wù)模型需要填寫的調(diào)度參數(shù)和接口參數(shù),任務(wù)模型管理器TMM保存任務(wù)模型.任務(wù)實(shí)例管理器TIM根據(jù)用戶定義的任務(wù)模型立即生成任務(wù)實(shí)例集,對于未來任務(wù)實(shí)例集只生成當(dāng)天實(shí)例,后續(xù)的未來任務(wù)實(shí)例則由任務(wù)實(shí)例管理器定期預(yù)先生成.
(2)任務(wù)實(shí)例調(diào)度過程 任務(wù)實(shí)例管理器定時線程對所有實(shí)例集按照預(yù)執(zhí)行時間倒序排序,按照預(yù)設(shè)的流量閥值檢索一定數(shù)量的任務(wù)實(shí)例,設(shè)定為C,通過下列規(guī)則將任務(wù)實(shí)例提交到任務(wù)調(diào)度器TSM,TSM則根據(jù)任務(wù)實(shí)例的預(yù)定執(zhí)行時間執(zhí)行具體線程.設(shè)t為TSM定時檢索任務(wù)實(shí)例間隔;i為批量提交任務(wù)間隔;v為設(shè)定的流量閾值,為i時間內(nèi)提交的任務(wù)數(shù)量;則c=v*(t/i)為每次處理最大數(shù)量.如果C=c,則系統(tǒng)滿負(fù)荷提交任務(wù);如果C<c,則依據(jù)距預(yù)執(zhí)行時間權(quán)重階梯性確定提交任務(wù)量.
(3)任務(wù)實(shí)例重試過程 任務(wù)實(shí)例執(zhí)行后,根據(jù)執(zhí)行結(jié)果狀態(tài)進(jìn)行后續(xù)處理.如果任務(wù)執(zhí)行失敗,則執(zhí)行次數(shù)自動加1,且將該任務(wù)實(shí)例的預(yù)定義執(zhí)行時間延長一個t值,等待TSM的下次處理.如果執(zhí)行次數(shù)屬性值達(dá)到系統(tǒng)設(shè)定的放棄執(zhí)行閾值,則將該任務(wù)實(shí)例設(shè)定為放棄狀態(tài)不再進(jìn)行處理.
根據(jù)任務(wù)模型定義,每日定時生成第二天需要執(zhí)行的任務(wù)實(shí)例列表.任務(wù)模型定義中的屬性包括:任務(wù)有效時間范圍、任務(wù)調(diào)度間隔、任務(wù)調(diào)度時匹配時間參數(shù)偏移量,計算與執(zhí)行的任務(wù)時間和接口的具體時間參數(shù).具體的任務(wù)實(shí)例生成算法如下:
算法1.任務(wù)實(shí)例生成算法2.images/BZ_72_243_2214_547_2247.png;Task instance generate procedure(),此過程中的參數(shù)表示t時刻任務(wù)模型集.1.取得系統(tǒng)時間t;3.;4.For i=0 to nimages/BZ_72_251_2268_318_2298.png5.6.If(t>= TM.sDate && t 漏桶算法是網(wǎng)絡(luò)世界中流量整形或速率限制時經(jīng)常使用的一種算法,主要是控制提交到接口服務(wù)的調(diào)用請求流量,避免突發(fā)流量對對服務(wù)接口造成類DDoS攻擊.為此設(shè)計了任務(wù)實(shí)例調(diào)度限流算法,具體步驟如下: 算法2.任務(wù)實(shí)例調(diào)度限流算法1.lastTime = 取得最先需要執(zhí)行的任務(wù)實(shí)例時間;2.waitExeTaskSet = 獲取lastTime時間偏移N的任務(wù)實(shí)例集;3.Executor.submit(waitExeTaskSet);4.Sleep(T);5.循環(huán)執(zhí)行步驟1. MUSIC和IDEA接口采用HTTP協(xié)議提供文本數(shù)據(jù)服務(wù),整個過程中網(wǎng)絡(luò)傳輸占據(jù)較大的時間.因此,數(shù)據(jù)調(diào)度檢索模型每次調(diào)用數(shù)據(jù)時,強(qiáng)制在客戶端與服務(wù)器之間采用壓縮方式傳輸數(shù)據(jù).經(jīng)實(shí)驗(yàn)測試,采用標(biāo)準(zhǔn)的GZIP方法可壓縮至原內(nèi)容的40%,從而節(jié)省60%的數(shù)據(jù)傳輸.任務(wù)實(shí)例在向服務(wù)接口發(fā)送數(shù)據(jù)調(diào)用請求和處理數(shù)據(jù)的具體過程如下: (1)初始化請求,IDEARequest request = new IDEARequest(); (2)設(shè)定請求采用GZIP算法傳輸數(shù)據(jù),request.setHeader(“content-type”,“gzip”); (3)提交請求,獲取經(jīng)過壓縮傳輸?shù)臄?shù)據(jù),gzipReturn=request.post(); (4)對Gzip壓縮數(shù)據(jù)進(jìn)行解壓縮處理,unGzipReturn=unGzipDecoder(gzipReturn). MUSIC和IDEA接口服務(wù)提供標(biāo)準(zhǔn)的JSON格式數(shù)據(jù)結(jié)果,要對其進(jìn)行轉(zhuǎn)換處理為MICAPS、Suffer、Grads、NCL、IDV等軟件所需的格式.基于工廠模式實(shí)現(xiàn)的數(shù)據(jù)格式轉(zhuǎn)換插件化模塊,具體實(shí)現(xiàn)過程如下: (1)定義格式轉(zhuǎn)換接口協(xié)議DataFormat,并定義json2DataFormat(gzipReturn)方法; (2)實(shí)現(xiàn)各個數(shù)據(jù)格式轉(zhuǎn)換插件,插件必須實(shí)現(xiàn)DataFormat協(xié)議; (3)實(shí)現(xiàn)格式轉(zhuǎn)換插件工廠,創(chuàng)建具體的插件實(shí)例;(4)按照3.3節(jié)方法下載具體數(shù)據(jù)并解壓; (5)格式轉(zhuǎn)換工廠類加載具體需要轉(zhuǎn)換格式類,將解壓數(shù)據(jù)作為轉(zhuǎn)換類的輸入?yún)?shù),完成格式的轉(zhuǎn)換.具體方法如下: DataFormat df =DataFormatFactory.getInstance() .createDataFormat(“MICAPS”);// 加載 Micaps 數(shù)據(jù)格式轉(zhuǎn)換插件 String micapsReturn=df.json2DataFormat(unGzipReturn);//對解壓JSON數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換 零編程獲取氣象數(shù)據(jù)是該模型設(shè)計的目標(biāo)之一,所以設(shè)計功能完整、操作便捷的可視化交互界非常重要.按照用戶的使用習(xí)慣和軟件設(shè)計方法,如圖6所示,系統(tǒng)分為用戶登陸、接口瀏覽、任務(wù)創(chuàng)建、任務(wù)管理、個性設(shè)置、智能升級和強(qiáng)制下線7個部分. 圖6 氣象數(shù)據(jù)調(diào)度檢索軟件功能 (1)用戶登陸,即用戶在使用該模型時,首先要獲得MUSIC或IDEA接口平臺的接口調(diào)用賬戶,并在該模型進(jìn)行登陸后方可操作其他功能,同時可以進(jìn)行兩套賬戶的登陸切換和注銷. (2)用戶登陸,即用戶在使用該模型時,首先要獲得MUSIC或IDEA接口平臺的接口調(diào)用賬戶,并在該模型進(jìn)行登陸后方可操作其他功能,同時可以進(jìn)行兩套賬戶的登陸切換和注銷. (3)接口瀏覽,可以通過代理服務(wù)獲取到接口服務(wù)平臺發(fā)布的所有分類和接口列表,查看接口的詳細(xì)定義:系統(tǒng)參數(shù)和接口參數(shù)等. (4)任務(wù)創(chuàng)建,用戶在選定調(diào)用數(shù)據(jù)接口后,點(diǎn)擊“創(chuàng)建固定間隔任務(wù)計劃”或“創(chuàng)建定時任務(wù)計劃“,則通過定制任務(wù)模型,并選定需要保存的文件格式. (5)任務(wù)管理,為方便科研用戶進(jìn)行任務(wù)模型和實(shí)例的管理,模型按照任務(wù)計劃、已完成任務(wù)、待執(zhí)行任務(wù)、失敗任務(wù)和暫停任務(wù)進(jìn)行分組,用戶可對任務(wù)進(jìn)行業(yè)務(wù)分類,用戶可精確查看任務(wù)的執(zhí)行情況. (6)強(qiáng)制下線,為保護(hù)數(shù)據(jù)服務(wù)接口對模型發(fā)起的調(diào)用請求量,除過進(jìn)行自身流量控制之外,還定時通過調(diào)用日志進(jìn)行分析,對于近1小時內(nèi)的用戶進(jìn)行訪問量和數(shù)據(jù)下載量的監(jiān)視,管理員認(rèn)為可疑時,則可強(qiáng)制該模型下線,從而控制其不在對數(shù)據(jù)服務(wù)接口發(fā)起訪問請求,需要用戶與管理員溝通重新開通. (7)個性設(shè)置,因?yàn)槿蝿?wù)模型的定義、任務(wù)實(shí)例、任務(wù)執(zhí)行結(jié)果等信息均記錄在模型的內(nèi)嵌數(shù)據(jù)庫中,用戶可根據(jù)實(shí)際情況設(shè)定具體清除策略,以及開發(fā)新的數(shù)據(jù)格式轉(zhuǎn)換插件進(jìn)行部署. 從中國氣象局CIMISS系統(tǒng)調(diào)取全國50 000多氣象自動站整點(diǎn)小時數(shù)據(jù),組織為MICPAS格式為例進(jìn)行測試,分別調(diào)取1、3、6、12個月的數(shù)據(jù)進(jìn)行耗時和性能測試,結(jié)果如表2所示. 表2 檢索數(shù)據(jù)性能測試 根據(jù)測試結(jié)果,氣象數(shù)據(jù)調(diào)度檢索客戶端采用壓縮傳輸時,從總體耗時和數(shù)據(jù)傳輸量均有顯著提升.其中組織1年的數(shù)據(jù)僅需2小時,業(yè)務(wù)上完全可以滿足科研活動需求.同時,限流策略的應(yīng)用,以及對服務(wù)接口端的并發(fā)監(jiān)視,并未對其造成突發(fā)性的訪問的壓力. 最終實(shí)現(xiàn)的軟件運(yùn)行效果如下所示.圖7是用戶登陸后能夠?yàn)g覽到已經(jīng)定義的所有任務(wù)模型和實(shí)例,以及接口服務(wù)提供的所有資料接口信息. 圖7 任務(wù)模型和實(shí)例顯示界面 圖8是用戶定制獲取2018年中國地面逐小時文本格式的調(diào)度任務(wù). 圖8 任務(wù)定義示例界面 圖9是用戶查看所有任務(wù)模型的運(yùn)行狀態(tài)列表,以及對任務(wù)模型進(jìn)行控制的功能界面. 圖9 任務(wù)模型控制界面 目前,氣象數(shù)據(jù)可視化調(diào)度檢索模型軟件已經(jīng)在多個業(yè)務(wù)中進(jìn)行應(yīng)用,均產(chǎn)生好的應(yīng)用效果.行業(yè)用戶如民航、軍隊、水利、農(nóng)業(yè)等,以及政府部門對氣象觀測數(shù)據(jù)的需求非常旺盛,每年數(shù)據(jù)共享量達(dá)到100 TB,但氣象部門近年來綜合觀測系統(tǒng)的迅速發(fā)展,觀測的原始數(shù)據(jù)格式逐步與向世界氣象組織標(biāo)準(zhǔn)靠攏,每次數(shù)據(jù)格式的改革均給資料使用單位帶來重新解碼處理等諸多不便,該模型作為生成共享格式的文件中間環(huán)節(jié),避免了觀測資料格式變化帶來的共享問題,具體業(yè)務(wù)流程如圖10.目前,已經(jīng)承擔(dān)向20多個單位提供標(biāo)準(zhǔn)的共享數(shù)據(jù)文件.且已經(jīng)在海洋預(yù)報數(shù)值模式、南海臺風(fēng)預(yù)報、珠三角洲大氣灰霾等科學(xué)研究領(lǐng)域,以及海珠城市生態(tài)氣象綜合系統(tǒng)[13]等多個建設(shè)項目中使用本模型組織獲取科學(xué)數(shù)據(jù),滿足業(yè)務(wù)需求. 圖10 基于IDH數(shù)據(jù)共享業(yè)務(wù)流程 可視化氣象數(shù)據(jù)調(diào)度檢索模型針對氣象科研人員的獲取科研數(shù)據(jù)的痛點(diǎn)問題,結(jié)合可視化交互、任務(wù)調(diào)度和數(shù)據(jù)格式模板適配技術(shù),為科研提供便捷、零編程的數(shù)據(jù)組織方法,提高科研活動前期數(shù)據(jù)準(zhǔn)備的效率. 經(jīng)過在氣象業(yè)務(wù)與科研活動的實(shí)際應(yīng)用,對于全國氣象部門以MUSIC和IDEA接口提供數(shù)據(jù)支撐的業(yè)務(wù)模式起到很大的推動作用;在向非氣象部門進(jìn)行數(shù)據(jù)共享中,屏蔽數(shù)據(jù)源結(jié)構(gòu)的異構(gòu)性和變化,避免用戶因數(shù)據(jù)格式或存儲結(jié)構(gòu)變更導(dǎo)致業(yè)務(wù)變動的困擾,提升氣象行業(yè)的數(shù)據(jù)服務(wù)信息化水平.同時,任務(wù)調(diào)度模型設(shè)計可用于其他領(lǐng)域的業(yè)務(wù)調(diào)度模型中;對于形成的云+端數(shù)據(jù)交換流程,適用于其他行業(yè)領(lǐng)域的數(shù)據(jù)共享業(yè)務(wù)中,為充分發(fā)揮數(shù)據(jù)的價值提供一種新的共享方法.3.2 任務(wù)實(shí)例執(zhí)行限流實(shí)現(xiàn)
3.3 數(shù)據(jù)壓縮優(yōu)化傳輸效率
3.4 數(shù)據(jù)格式轉(zhuǎn)換實(shí)現(xiàn)
3.5 交互性設(shè)計
4 性能分析與業(yè)務(wù)應(yīng)用
4.1 性能測試
4.2 運(yùn)行效果
4.3 典型應(yīng)用
5 結(jié)論與展望