亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種格點(diǎn)預(yù)報(bào)數(shù)據(jù)分布式服務(wù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

        2018-08-15 08:02:42孫周軍喬文文陳曉慶
        關(guān)鍵詞:格點(diǎn)數(shù)據(jù)服務(wù)分布式

        孫周軍 郭 捷 喬文文 侯 靈 黃 偉 陳曉慶

        (廣東省氣象探測(cè)數(shù)據(jù)中心 廣東 廣州 510080)

        0 引 言

        隨著數(shù)值預(yù)報(bào)的準(zhǔn)確度、分辨率等大幅度提升,數(shù)值預(yù)報(bào)在中尺度天氣預(yù)報(bào)中占有越來(lái)越重要的地位,業(yè)務(wù)需求也非常旺盛。數(shù)值預(yù)報(bào)數(shù)據(jù)量大、種類繁多,實(shí)際生產(chǎn)環(huán)境中多以集中式存儲(chǔ)設(shè)備為主,給海量的氣象數(shù)據(jù)提供存儲(chǔ)管理和服務(wù)工作帶來(lái)復(fù)雜性,同時(shí)對(duì)于歷史資料的應(yīng)用,也比較困難。如何做好氣象數(shù)據(jù)的管理與服務(wù)工作一直是氣象信息發(fā)展探索解決的問(wèn)題。李集明等[1]介紹了通過(guò)元數(shù)據(jù)技術(shù)對(duì)網(wǎng)格數(shù)據(jù)進(jìn)行管理的關(guān)鍵技術(shù);王伯民等[2]對(duì)氣象數(shù)據(jù)發(fā)布策略進(jìn)行了相關(guān)研究;肖華東等[3]介紹了MARS(Meteorological Archival and Retrieval System)氣象數(shù)據(jù)歸檔和檢索系統(tǒng),它是歐洲中期天氣預(yù)報(bào)中心氣象應(yīng)用部門研發(fā)的氣象數(shù)據(jù)管理和服務(wù)系統(tǒng),利用磁帶進(jìn)行海量資料的管理,用于ECMWF的氣象存檔管理和數(shù)據(jù)訪問(wèn);李永生等[4]介紹了基于Hadoop基礎(chǔ)利用HBASE對(duì)格點(diǎn)數(shù)據(jù)進(jìn)行存儲(chǔ)管理和接口發(fā)布,引入分布式存儲(chǔ)和計(jì)算技術(shù)。本文對(duì)氣象業(yè)務(wù)中數(shù)值預(yù)報(bào)的數(shù)據(jù)特點(diǎn)、應(yīng)用現(xiàn)狀以及氣象部門現(xiàn)有硬、軟件資源進(jìn)行研究和分析,提出一種數(shù)值預(yù)報(bào)數(shù)據(jù)在氣象業(yè)務(wù)應(yīng)用中的分布式數(shù)據(jù)服務(wù)方法,解決在分布式存儲(chǔ)環(huán)境下,高時(shí)效地對(duì)種類繁多、海量的數(shù)值預(yù)報(bào)數(shù)據(jù)進(jìn)行寫、讀和計(jì)算的集中處理問(wèn)題。詳細(xì)描述海量數(shù)值預(yù)報(bào)數(shù)據(jù)的組織方式,分布式的數(shù)據(jù)服務(wù)方法,高可用性的實(shí)現(xiàn)方式以及各種格點(diǎn)數(shù)據(jù)的處理方法。業(yè)務(wù)應(yīng)用表明,系統(tǒng)在廣東區(qū)域格點(diǎn)化預(yù)報(bào)的業(yè)務(wù)應(yīng)用中滿足高效、穩(wěn)定和使用便捷的要求。

        1 相關(guān)技術(shù)

        1.1 服務(wù)總線

        企業(yè)服務(wù)總線ESB(Enterprise Service Bus)是在面向服務(wù)體系架構(gòu)基礎(chǔ)上發(fā)展而來(lái),ESB是SOA的基礎(chǔ)架構(gòu)。企業(yè)將所有的數(shù)據(jù)、功能、應(yīng)用和功能都注冊(cè)于服務(wù)總線,通過(guò)服務(wù)總線將這些細(xì)粒度的單元有效連接起來(lái)。企業(yè)服務(wù)總線改變了傳統(tǒng)的軟件結(jié)構(gòu),提供比傳統(tǒng)中間件產(chǎn)品更為廉價(jià)的解決方案,同時(shí)消除不同應(yīng)用間的技術(shù)差異,實(shí)現(xiàn)不同服務(wù)之間的通信與整合[5]。Mule ESB(Mule Enterprise Service Bus)、OSB(Oracle Service Bus)等都是能夠?qū)崿F(xiàn)應(yīng)用軟件間互相交互信息的集成平臺(tái)。格點(diǎn)預(yù)報(bào)數(shù)據(jù)服務(wù)的開(kāi)發(fā)亦采用服務(wù)總線的設(shè)計(jì)思路,讓各類格點(diǎn)數(shù)據(jù)能夠?qū)崿F(xiàn)分布式服務(wù)。

        1.2 SOA架構(gòu)

        面向服務(wù)架構(gòu)SOA(Service-Oriented Architecture)是一種面向服務(wù)的企業(yè)應(yīng)用體系結(jié)構(gòu),由多個(gè)標(biāo)準(zhǔn)組件構(gòu)成的架構(gòu)模型。它提出資源和應(yīng)用是可重用的服務(wù),利用標(biāo)準(zhǔn)的協(xié)議進(jìn)行通信,提供了一個(gè)具有較高靈活性、效率的信息集成方式[6-7]。

        面向服務(wù)的體系架構(gòu)包括服務(wù)提供者、服務(wù)消費(fèi)者和服務(wù)注冊(cè)中心3種角色。其中:(1) 服務(wù)提供者負(fù)責(zé)服務(wù)邏輯功能的具體實(shí)現(xiàn);(2) 服務(wù)消費(fèi)者則是服務(wù)請(qǐng)求的發(fā)起者;(3) 服務(wù)注冊(cè)中心負(fù)責(zé)服務(wù)的注冊(cè)、分類和查找功能。圖1描述了SOA的工作原理,即技術(shù)開(kāi)發(fā)人員將企業(yè)需要提供的軟件功能進(jìn)行合理粒度的劃分和實(shí)現(xiàn)。并通過(guò)注冊(cè)服務(wù)將其提供的服務(wù)發(fā)布到服務(wù)注冊(cè)中心,服務(wù)注冊(cè)中心對(duì)已經(jīng)注冊(cè)的服務(wù)進(jìn)行分類管理,并為消費(fèi)者提供服務(wù)查詢功能,當(dāng)消費(fèi)者發(fā)現(xiàn)符合條件的服務(wù)時(shí),根據(jù)服務(wù)信息進(jìn)行服務(wù)綁定/調(diào)用,以獲得需要的功能[8]。

        圖1 SOA架構(gòu)數(shù)據(jù)流程圖

        SOA架構(gòu)的產(chǎn)生主要是實(shí)現(xiàn)技術(shù)和服務(wù)的完全分離,從最大程度上達(dá)到業(yè)務(wù)系統(tǒng)的松散集成和重組。架構(gòu)的具體實(shí)現(xiàn)與計(jì)算機(jī)應(yīng)用技術(shù)的發(fā)展密切相關(guān),其中XML、SOAP、WSDL和UDDI技術(shù)的成熟應(yīng)用為SOA架構(gòu)的實(shí)施奠定了技術(shù)基礎(chǔ)。(1) 可擴(kuò)展的標(biāo)記語(yǔ)言(XML)是一種封裝了數(shù)據(jù)和元數(shù)據(jù)的結(jié)構(gòu)化文檔。這種封裝能力為異構(gòu)環(huán)境的信息交換提供了統(tǒng)一的數(shù)據(jù)格式,包括消息、服務(wù)描述以及工作流的描述。(2) 簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議(SOAP)是一種輕量的、簡(jiǎn)單的、基于XML的協(xié)議,它被設(shè)計(jì)成在Web上交換結(jié)構(gòu)化的和固化的信息。(3) Web服務(wù)定義語(yǔ)言(WSDL)是一個(gè)借助XML來(lái)描述Web Service和說(shuō)明如何與Web服務(wù)通信的XML語(yǔ)言,為用戶提供詳細(xì)的服務(wù)說(shuō)明和調(diào)用方式。(4) 統(tǒng)一描述、發(fā)現(xiàn)和集成協(xié)議(UDDI)提供了在Web上描述并發(fā)現(xiàn)商業(yè)服務(wù)的框架,是面向Web服務(wù)的信息注冊(cè)中心的實(shí)現(xiàn)標(biāo)準(zhǔn)和規(guī)范。

        2 系統(tǒng)設(shè)計(jì)

        目前,中國(guó)氣象局主要運(yùn)行T639L60模式、GRAPES全球及區(qū)域模式、TGEE集合預(yù)報(bào)等幾類業(yè)務(wù)或準(zhǔn)業(yè)務(wù)天氣預(yù)報(bào)模式[9-11]。各區(qū)域中心根據(jù)自身氣候特點(diǎn)發(fā)展的預(yù)報(bào)模式,以及從歐洲中心、德國(guó)和日本等獲得的數(shù)值預(yù)報(bào)產(chǎn)品,以上是氣象部門的數(shù)值預(yù)報(bào)產(chǎn)品來(lái)源,其預(yù)報(bào)時(shí)效長(zhǎng)、時(shí)間間隔短、分辨率高。同時(shí),中國(guó)氣象局主導(dǎo)研發(fā)的SWAN 2.0、MICAPS 4.0系統(tǒng),均采用格點(diǎn)數(shù)據(jù)進(jìn)行存儲(chǔ),由此形成非常豐富的氣象格點(diǎn)數(shù)據(jù)集。要針對(duì)豐富的格點(diǎn)數(shù)據(jù)提供在線服務(wù),則需要能夠?qū)Ψ稚⒋鎯?chǔ)的格點(diǎn)數(shù)據(jù)進(jìn)行歸類存儲(chǔ),并研發(fā)能夠分布式調(diào)取格點(diǎn)數(shù)據(jù)的服務(wù)端,利用SOA架構(gòu)統(tǒng)一對(duì)用戶提供接口支撐,從而實(shí)現(xiàn)格點(diǎn)數(shù)據(jù)的海量存儲(chǔ)管理和服務(wù)。

        2.1 軟件架構(gòu)

        GRIB、NetCDF和HDF都是國(guó)際上通用的數(shù)據(jù)格式,MICPAS和SWAN系統(tǒng)也自定義了格點(diǎn)數(shù)據(jù)存儲(chǔ)格式,要使得格點(diǎn)數(shù)據(jù)服務(wù)同時(shí)兼容多種格式,且能對(duì)規(guī)整分散存儲(chǔ)的數(shù)據(jù)提供統(tǒng)一的服務(wù)。如圖2所示,軟件從架構(gòu)上分為四層:存儲(chǔ)層、服務(wù)層、訪問(wèn)接口層和業(yè)務(wù)應(yīng)用層。其中存儲(chǔ)層和服務(wù)層的設(shè)計(jì)采用微服務(wù)概念,形成分布式的格點(diǎn)數(shù)據(jù)服務(wù),有效分擔(dān)和承載較大規(guī)模的訪問(wèn)請(qǐng)求;訪問(wèn)接口層采用SOA的設(shè)計(jì)思路,提供統(tǒng)一的服務(wù)管理和調(diào)用,有利于用戶的應(yīng)用開(kāi)發(fā)和對(duì)整套業(yè)務(wù)系統(tǒng)的調(diào)用監(jiān)控。

        圖2 格點(diǎn)預(yù)報(bào)數(shù)據(jù)服務(wù)軟件架構(gòu)

        存儲(chǔ)層 對(duì)原有分散的格點(diǎn)數(shù)據(jù)進(jìn)行分類,按照一定的存儲(chǔ)規(guī)則進(jìn)行分散存儲(chǔ)在不同的主機(jī),以達(dá)到由不同存儲(chǔ)主機(jī)組成海量的存儲(chǔ)集群。由于格點(diǎn)數(shù)據(jù)按照類別、目錄和文件名有規(guī)則的集中存儲(chǔ),從而讓服務(wù)軟件能夠根據(jù)請(qǐng)求精確定位到具體要操作的格點(diǎn)文件。

        服務(wù)層 針對(duì)不同的數(shù)據(jù)格式實(shí)現(xiàn)讀取、寫入和裁剪等所有操作功能,并以獨(dú)立的服務(wù)軟件與存儲(chǔ)層集成部署,提供對(duì)存儲(chǔ)層格點(diǎn)數(shù)據(jù)的操作。

        訪問(wèn)接口層 以服務(wù)的方式發(fā)布給用戶調(diào)用的接口服務(wù),訪問(wèn)接口保存一份各類資料數(shù)據(jù)格式和存儲(chǔ)IP的配置清單,從而接口根據(jù)請(qǐng)求的資料類將請(qǐng)求路由到負(fù)責(zé)提供該類資料的服務(wù)層和存儲(chǔ)層完成對(duì)格點(diǎn)數(shù)據(jù)的所有操作,操作結(jié)果返回給用戶。

        業(yè)務(wù)應(yīng)用層 主要是基于訪問(wèn)接口的調(diào)用開(kāi)發(fā)的業(yè)務(wù)系統(tǒng)軟件。

        2.2 實(shí)現(xiàn)原理

        分布式數(shù)據(jù)訪問(wèn)服務(wù)系統(tǒng)以提高訪問(wèn)效率、提升系統(tǒng)并發(fā)能力、屏蔽數(shù)據(jù)結(jié)構(gòu)的異構(gòu)性設(shè)計(jì)為原則,考慮到系統(tǒng)提供規(guī)范化調(diào)用方式、規(guī)范化輸出結(jié)果和接口易維護(hù)與易擴(kuò)展的需求,將系統(tǒng)從實(shí)現(xiàn)上劃分為調(diào)用層、業(yè)務(wù)層和數(shù)據(jù)服務(wù)層3個(gè)層次,邏輯劃分為5個(gè)模塊:解析單元、身份認(rèn)證、規(guī)則管理、參數(shù)校對(duì)、分發(fā)執(zhí)行。各模塊之間的數(shù)據(jù)流程如圖3所示。

        圖3 圖格點(diǎn)預(yù)報(bào)數(shù)據(jù)服務(wù)軟件數(shù)據(jù)流程

        調(diào)用層即是用戶調(diào)用數(shù)據(jù)訪問(wèn)服務(wù)的邊界。邏輯層即是核心,負(fù)責(zé)對(duì)用戶請(qǐng)求進(jìn)行分析處理和響應(yīng),包括解析單元、身份認(rèn)證、業(yè)務(wù)規(guī)則管理、參數(shù)校對(duì)、分發(fā)執(zhí)行邏輯模塊。數(shù)據(jù)服務(wù)層即是利用數(shù)據(jù)服務(wù)訪問(wèn)系統(tǒng)對(duì)外提供數(shù)據(jù)讀、寫操作,以及對(duì)格點(diǎn)數(shù)據(jù)的存儲(chǔ),利用分布式存儲(chǔ)的業(yè)務(wù)拆分技術(shù)實(shí)現(xiàn)大容量格點(diǎn)數(shù)據(jù)的統(tǒng)一管理與應(yīng)用。其中涉及到的核心邏輯模塊功能詳細(xì)描述如下:

        1) 解析單元 參數(shù)分為系統(tǒng)參數(shù)和業(yè)務(wù)參數(shù)兩類:(1) 系統(tǒng)參數(shù),即服務(wù)系統(tǒng)業(yè)務(wù)邏輯完整運(yùn)行必要的非空參數(shù),包括接口ID、用戶ID、密碼、數(shù)據(jù)格式、業(yè)務(wù)程式和數(shù)據(jù)源名稱(參數(shù)標(biāo)識(shí)分別為:interfaceId、userId、pwd、dataFormat);(2) 業(yè)務(wù)參數(shù),即系統(tǒng)參數(shù)接口ID所對(duì)應(yīng)業(yè)務(wù)規(guī)則正常執(zhí)行所需的非空參數(shù)。用戶按照調(diào)用方式的參數(shù)規(guī)范要求傳參,解析單元負(fù)責(zé)分解,形成Map對(duì)象。

        2) 身份認(rèn)證 系統(tǒng)的角色分為兩類:(1) 系統(tǒng)管理員,可通過(guò)接口獲取數(shù)據(jù),同時(shí)具備登錄本系統(tǒng)控臺(tái)進(jìn)行權(quán)限管理、接口定義、格點(diǎn)元數(shù)據(jù)定義、日志查詢;(2) 對(duì)外用戶,僅能夠查閱和調(diào)用系統(tǒng)發(fā)布的數(shù)據(jù)接口。

        3) 業(yè)務(wù)規(guī)則 根據(jù)接口ID,在業(yè)務(wù)規(guī)則庫(kù)中檢索對(duì)應(yīng)的業(yè)務(wù)規(guī)則程式,利用業(yè)務(wù)參數(shù)填充規(guī)則程式中對(duì)應(yīng)的位置,形成完整的、可執(zhí)行的程式。

        4) 參數(shù)校對(duì) 根據(jù)接口ID,在業(yè)務(wù)規(guī)則庫(kù)中檢索對(duì)應(yīng)的業(yè)務(wù)規(guī)則程式,檢查用戶提交的請(qǐng)求參數(shù)是否符合接口要求,并將用戶參數(shù)值與規(guī)則程式中的參數(shù)進(jìn)行綁定。

        5) 分發(fā)執(zhí)行 根據(jù)用戶提供的業(yè)務(wù)參數(shù)(模式ID)確定提供數(shù)據(jù)的格點(diǎn)服務(wù)器,并與其進(jìn)行通信,將用戶參數(shù)請(qǐng)求按照預(yù)定規(guī)則發(fā)送給服務(wù)器,并將服務(wù)器返回?cái)?shù)據(jù)進(jìn)行封裝返回給用戶。

        2.3 功能設(shè)計(jì)

        數(shù)據(jù)訪問(wèn)服務(wù)系統(tǒng)以簡(jiǎn)約化、人性化設(shè)計(jì)為原則,考慮到管理用戶的良好體驗(yàn)效果和便捷管理維護(hù)需求,服務(wù)系統(tǒng)的管理平臺(tái)劃分為:格點(diǎn)預(yù)報(bào)管理、接口管理、日志管理、用戶管理等主要功能。

        1) 格點(diǎn)預(yù)報(bào)管理 將格點(diǎn)數(shù)據(jù)服務(wù)接口能夠提供的格點(diǎn)數(shù)據(jù)元數(shù)據(jù)信息進(jìn)行發(fā)布與管理,包括每類數(shù)值預(yù)報(bào)包括的氣象要素、層次、預(yù)報(bào)時(shí)效、數(shù)據(jù)單位以及格點(diǎn)數(shù)據(jù)的經(jīng)緯度間隔和每天發(fā)布的時(shí)次等信息。

        2) 接口管理 將格點(diǎn)接口數(shù)據(jù)支持的方法通過(guò)配置方式設(shè)定具體參數(shù)名稱、是否為必填參數(shù)等信息。

        3) 日志管理 日志管理分別記錄接口調(diào)用的起始時(shí)間、耗時(shí)和用戶參數(shù),同時(shí)計(jì)算接口調(diào)用的平均、最大和最小耗時(shí),方便管理人員進(jìn)行故障排除和業(yè)務(wù)程式性能調(diào)優(yōu)。

        4) 用戶管理 主要是確保服務(wù)系統(tǒng)訪問(wèn)平臺(tái)的安全,定義接口的使用用戶和管理維護(hù)用戶,及用戶能夠訪問(wèn)的功能模塊。

        2.4 調(diào)用方式

        本系統(tǒng)的設(shè)計(jì)針對(duì)兩類業(yè)務(wù)系統(tǒng):一類只是單純的讀取格點(diǎn)數(shù)據(jù),對(duì)時(shí)效性有一定容忍度的;另一類具有人機(jī)交互的業(yè)務(wù)系統(tǒng),對(duì)數(shù)據(jù)讀取和寫入時(shí)效性要求高的。考慮以上場(chǎng)景,將對(duì)格點(diǎn)數(shù)據(jù)的訪問(wèn)發(fā)布為RestFull服務(wù),針對(duì)前者提供Http和SOAP協(xié)議訪問(wèn)服務(wù);同時(shí),提供基于Socket套接字的SDK包,針對(duì)后者場(chǎng)景提供服務(wù),主要用于精細(xì)化格點(diǎn)預(yù)報(bào)平臺(tái)的數(shù)據(jù)快速交互。以上提供的調(diào)用方式滿足絕大多數(shù)語(yǔ)言的調(diào)用。

        3 關(guān)鍵技術(shù)

        本系統(tǒng)的設(shè)計(jì)旨在提供數(shù)值預(yù)報(bào)平面場(chǎng)數(shù)據(jù)檢索、任意經(jīng)緯度插值、平面場(chǎng)裁剪和非規(guī)則地區(qū)格點(diǎn)數(shù)據(jù)寫入等功能[12],支撐全省格點(diǎn)數(shù)據(jù)服務(wù)有關(guān)的業(yè)務(wù)系統(tǒng),在可靠性、并發(fā)性、擴(kuò)展性和響應(yīng)速度上都提出較高的要求?;诖诵枨螅肦ose Mirror HA解決可靠性,利用分布式部署服務(wù)解決并發(fā)與擴(kuò)展性,利用緩存技術(shù)解決響應(yīng)速度問(wèn)題。

        3.1 緩存技術(shù)

        Redis技術(shù)[13]是一種Key-Value類型的內(nèi)存數(shù)據(jù)庫(kù)產(chǎn)品,與Memcache相類似,但其支持較多的數(shù)據(jù)類型,為保證數(shù)據(jù)的訪問(wèn)效率,數(shù)據(jù)都緩存在內(nèi)存中,可以直接用于數(shù)據(jù)存儲(chǔ)服務(wù)。在本系統(tǒng)中,根據(jù)格點(diǎn)數(shù)據(jù)服務(wù)實(shí)際業(yè)務(wù)使用情況,對(duì)于規(guī)則平面寫入與讀取、定點(diǎn)插值函數(shù)進(jìn)行緩存處理,提高數(shù)據(jù)服務(wù)響應(yīng)能力,同時(shí)降低因讀取格點(diǎn)文件而造成的系統(tǒng)IO壓力。主要處理邏輯實(shí)現(xiàn)如下:

        String Key=JSON_KEY(paramMap);

        String Ret=null;

        Map dataInfo=null;

        if (Redis.containKey(Key)){

        dataInfo=getGridData(paramMap);

        if(null!=dataInfo)

        Redis.setEx(Key,cacheTimerange,dataInfo);

        }else{

        dataInfo=Redis.get(Key);

        }

        Ret=formatRet(dataInfo,paramMap.get(“dataFormat”));

        其中,JSON_KEY函數(shù)主要利用用戶請(qǐng)求參數(shù)形成緩存數(shù)據(jù)的Key值。如果用戶請(qǐng)求命中緩存,則將緩存中的數(shù)據(jù)返回給用戶格式化的數(shù)據(jù);否則,與格點(diǎn)數(shù)據(jù)服務(wù)進(jìn)行通信獲取數(shù)據(jù),并根據(jù)預(yù)先設(shè)定緩存失效時(shí)間,將數(shù)據(jù)存儲(chǔ)到緩存中,同時(shí)返回給用戶格式化的數(shù)據(jù)。

        3.2 裁剪技術(shù)

        氣象數(shù)值預(yù)報(bào)常常輸出的模式數(shù)據(jù)包括全球范圍預(yù)報(bào),然而在實(shí)際的業(yè)務(wù)應(yīng)用中,往往只需某局部范圍的格點(diǎn)數(shù)據(jù),從而倒逼格點(diǎn)數(shù)據(jù)服務(wù)需要具備裁剪功能。由于裁剪范圍具備隨意性,所以用戶設(shè)定的左上、右下坐標(biāo)范圍未必恰巧落在格點(diǎn)上,所以此時(shí)需要采取一定策略進(jìn)行處理。內(nèi)縮裁剪算法是建立在與用戶的協(xié)商基礎(chǔ)之上的處理規(guī)則,即經(jīng)度向正方向收斂,緯度向低緯收斂,直到遇到具體的格點(diǎn)為止。具體的幾種情況如圖4所示。

        圖4 內(nèi)縮算法效果

        3.3 插值算法

        對(duì)于格點(diǎn)預(yù)報(bào)數(shù)據(jù)而言,用戶經(jīng)常希望對(duì)任意地理位置求其預(yù)報(bào)值,而此時(shí)該點(diǎn)并未恰巧落在格點(diǎn)數(shù)據(jù)上,所以需要經(jīng)過(guò)插值方法求得。因格點(diǎn)數(shù)據(jù)的網(wǎng)格間距疏密不同,則采用不同的插值算法。以廣東應(yīng)用為例,其中部分格點(diǎn)數(shù)據(jù)最密為1 km,最粗要到25 km,因此在本系統(tǒng)中分別采用最近距離法[14]NN(Neareast Neighbor)和反距離加權(quán)[15]IDW(Inverse Distance Weighted)進(jìn)行插值。格點(diǎn)密度高的,采用NN,否則采用IDW。主要處理邏輯實(shí)現(xiàn)如下:

        (1) IDW格點(diǎn)數(shù)據(jù)插值算法具體實(shí)現(xiàn)如下:

        Float grid_idw(float anyLon,float anyLat){

        Float ret=0.0f;

        Float[] xPoints=getXPointsFromGridFile();

        Float[] yPoints=getXPointsFromGridFile();

        //判斷是否落在格網(wǎng)格點(diǎn)上

        Boolean IsInThePoint=isInThePoint(xPoints,yPoints,lon,lat);

        If(isInThePoint) {

        ret=findVal(findP(lon,lat));

        }else{

        Int LeftTopP=findLeftTopP(lon,lat);

        //查找左上格點(diǎn)

        Float LeftTopV=findVal(LeftTopP);

        //查找左上格點(diǎn)值

        Int RightTopP=findRightTopP(lon,lat);

        //查找右上角格點(diǎn)

        Float RightTopV=findVal(RightTopP);

        //查找右上格點(diǎn)值

        Int LeftButtonP=findLeftButtonP(lon,lat);

        //查找左下角格點(diǎn)

        Float LeftButtonV=findVal(LeftButtonP);

        //查找左下格點(diǎn)值

        Int RightButtonP=findRightButtonP(lon,lat);

        //查找右下角格點(diǎn)

        Float RightButtonV=findVal(RightButtonP);

        //查找右下格點(diǎn)值

        //如果4個(gè)點(diǎn)的值全部為缺測(cè),則直接返回缺測(cè)值

        If(LeftTopV==RightTopV==LeftButtonV==RightButtonV==UNDEFINE_VALUE) {

        ret=UNDEFINE_VALUE

        }else{

        ret=IDW(左上{經(jīng)度,緯度,值},右上{經(jīng)度,緯度,值},左下{經(jīng)度,緯度,值},右下{經(jīng)度,緯度,值},插值點(diǎn){經(jīng)度,緯度});

        //IDW算法的具體實(shí)現(xiàn)

        }

        }

        }

        (2) NN格點(diǎn)數(shù)據(jù)插值算法具體實(shí)現(xiàn)如下:

        Float grid_nn(float anyLon,float anyLat){

        int p=findNeareastPoint(lon,lat);

        ret=findVal(p);

        }

        3.4 分布式設(shè)計(jì)

        格點(diǎn)數(shù)據(jù)從時(shí)間緯度、空間緯度都較廣且預(yù)報(bào)要素較多,要保持較長(zhǎng)時(shí)間的格點(diǎn)數(shù)據(jù)則需要根據(jù)實(shí)際情況分開(kāi)存儲(chǔ),從而導(dǎo)致在每個(gè)存儲(chǔ)數(shù)據(jù)的服務(wù)器上部署相同的格點(diǎn)數(shù)據(jù)服務(wù)。當(dāng)用戶發(fā)起數(shù)據(jù)訪問(wèn)請(qǐng)求時(shí),則根據(jù)具體的請(qǐng)求模式名稱,由分發(fā)策略將客戶端連接到準(zhǔn)確的格點(diǎn)數(shù)據(jù)服務(wù)進(jìn)行數(shù)據(jù)服務(wù)操作。

        分布式的部署方法,優(yōu)勢(shì)較為明顯:(1) 支持高并發(fā)方法。與單機(jī)部署相比,可將所有請(qǐng)求根據(jù)轉(zhuǎn)為由多個(gè)服務(wù)器進(jìn)行服務(wù),從而提升并發(fā)服務(wù)能力。(2) 數(shù)據(jù)分布式存儲(chǔ)。因格點(diǎn)服務(wù)可部署多臺(tái)服務(wù)器,通過(guò)業(yè)務(wù)請(qǐng)求分發(fā)策略模塊進(jìn)行響應(yīng),從而可以將不同的格點(diǎn)數(shù)據(jù)進(jìn)行分布式存儲(chǔ),但不影響客戶端的應(yīng)用。部署架構(gòu)如圖5所示。

        圖5 分布式格點(diǎn)服務(wù)部署架構(gòu)

        在本系統(tǒng)的實(shí)際應(yīng)用過(guò)程中,廣東省將精細(xì)化格點(diǎn)預(yù)報(bào)與全國(guó)下發(fā)的數(shù)值預(yù)報(bào)數(shù)據(jù)分別進(jìn)行存儲(chǔ),提供分布式格點(diǎn)數(shù)據(jù)服務(wù),取得較好的應(yīng)用效果。

        3.5 高可用設(shè)計(jì)

        格點(diǎn)預(yù)報(bào)數(shù)據(jù)服務(wù)作為整個(gè)業(yè)務(wù)的數(shù)據(jù)交互核心,需要提供7×24小時(shí)數(shù)據(jù)服務(wù),則必須擁有備份系統(tǒng)自動(dòng)接管的功能,且保證數(shù)據(jù)的一致性。本系統(tǒng)利用Rose Mirror HA[16]方案(見(jiàn)圖6),進(jìn)行格點(diǎn)數(shù)據(jù)實(shí)時(shí)弱同步,且當(dāng)主服務(wù)節(jié)點(diǎn)宕機(jī)或應(yīng)用異常之后,虛擬IP、應(yīng)用則會(huì)自動(dòng)漂移到備機(jī)繼續(xù)提供數(shù)據(jù)服務(wù)。此方案為一種較為廉價(jià)的軟件高可用方案,亦有多種其他高可用方案。

        圖6 Rose Mirror HA架構(gòu)

        在本架構(gòu)中主要涉及到以下角色:

        1) 主服務(wù)器 當(dāng)前提供格點(diǎn)數(shù)據(jù)服務(wù)的服務(wù)器為主服務(wù)器,安裝有格點(diǎn)數(shù)據(jù)服務(wù)程序,并在網(wǎng)卡中綁定VIP地址。

        2) 備份服務(wù)器 當(dāng)前處于備份狀態(tài)的服務(wù)器,安裝有格點(diǎn)數(shù)據(jù)風(fēng)物程序。

        3) 私有網(wǎng)絡(luò) 在主、備服務(wù)器之間建立的直連網(wǎng)絡(luò),用于心跳通信和格點(diǎn)數(shù)據(jù)的同步傳輸。

        4) VIP 虛擬IP地址,提供對(duì)客戶端的服務(wù)訪問(wèn),綁定在當(dāng)前提供數(shù)據(jù)服務(wù)的服務(wù)器上。

        高可用服務(wù)的保障過(guò)程:在主、備主機(jī)上分別部署相同的格點(diǎn)服務(wù)軟件,同時(shí)對(duì)格點(diǎn)數(shù)據(jù)目錄設(shè)置為互相同步,并設(shè)定VIP。當(dāng)主節(jié)點(diǎn)的數(shù)據(jù)目錄發(fā)生變化時(shí),基于增量策略和流技術(shù)將數(shù)據(jù)同步到備份主機(jī),實(shí)現(xiàn)主、備間的數(shù)據(jù)同步;當(dāng)主機(jī)點(diǎn)監(jiān)視模塊監(jiān)測(cè)到格點(diǎn)數(shù)據(jù)服務(wù)軟件掉線等異常時(shí),主節(jié)點(diǎn)則通過(guò)自動(dòng)將自身服務(wù)下線,同時(shí)通知備機(jī)接管服務(wù);當(dāng)主節(jié)點(diǎn)服務(wù)器宕機(jī)時(shí),備份節(jié)點(diǎn)通過(guò)私有網(wǎng)絡(luò)檢查不到心跳信號(hào),此時(shí)備份節(jié)點(diǎn)亦會(huì)主動(dòng)接管數(shù)據(jù)服務(wù)。接管后的服務(wù)器會(huì)重新綁定VIP地址,同時(shí)啟動(dòng)格點(diǎn)數(shù)據(jù)服務(wù)應(yīng)用,提供正常的服務(wù)。

        在實(shí)際的業(yè)務(wù)應(yīng)用當(dāng)中,Rose Mirror HA高可用格點(diǎn)數(shù)據(jù)服務(wù)解決方案一般會(huì)在1~3分鐘內(nèi)實(shí)現(xiàn)數(shù)據(jù)的接管,不會(huì)給用戶帶來(lái)明顯的服務(wù)中斷體驗(yàn)。

        4 應(yīng)用實(shí)例

        1) 廣東省精細(xì)化格點(diǎn)預(yù)報(bào)訂正平臺(tái)(見(jiàn)圖7) 作為廣東精細(xì)化格點(diǎn)預(yù)報(bào)平臺(tái),主要進(jìn)行主觀格點(diǎn)預(yù)報(bào)業(yè)務(wù)支撐平臺(tái),該平臺(tái)的主觀格點(diǎn)預(yù)報(bào)的寫入、讀取、插值序列都基于本系統(tǒng)分布式格點(diǎn)數(shù)據(jù)服務(wù)完成。廣東省21地級(jí)市通過(guò)該平臺(tái)每日制作格點(diǎn)預(yù)報(bào),格點(diǎn)數(shù)據(jù)集中存儲(chǔ),數(shù)據(jù)統(tǒng)一服務(wù),驗(yàn)證分布式格點(diǎn)數(shù)據(jù)服務(wù)系統(tǒng)的可靠性、穩(wěn)定性與并發(fā)性,該設(shè)計(jì)亦符合氣象信息化建設(shè)發(fā)展思路。

        圖7 廣東省精細(xì)化格點(diǎn)預(yù)報(bào)訂正平臺(tái)

        2) 廣東省SWIFT系統(tǒng)平臺(tái)(見(jiàn)圖8) 省氣象臺(tái)主要展示各類氣象數(shù)據(jù),其中數(shù)值預(yù)報(bào)模塊將格點(diǎn)數(shù)據(jù)服務(wù)中的各類數(shù)據(jù)進(jìn)行圖形動(dòng)態(tài)繪制,提供數(shù)據(jù)展示服務(wù)。全省業(yè)務(wù)人員均基于此系統(tǒng)查看Grapes中各地的格點(diǎn)預(yù)報(bào),同樣驗(yàn)證分布式格點(diǎn)數(shù)據(jù)服務(wù)系統(tǒng)的可靠性、穩(wěn)定性與并發(fā)性能夠滿足業(yè)務(wù)需求。

        圖8 SWIFT主界面-2米溫度場(chǎng)

        5 結(jié) 語(yǔ)

        分布式格點(diǎn)預(yù)報(bào)數(shù)據(jù)服務(wù)系統(tǒng)支持分布式部署,邏輯結(jié)構(gòu)松散耦合,分布式特性使得系統(tǒng)能提供高并發(fā)的訪問(wèn)量,同時(shí)能夠在業(yè)務(wù)中將格點(diǎn)數(shù)據(jù)進(jìn)行業(yè)務(wù)拆分存儲(chǔ),正常提供數(shù)據(jù)服務(wù)。基于本系統(tǒng)支撐的廣東精細(xì)化格點(diǎn)預(yù)報(bào)訂正平臺(tái)與SWIFT平臺(tái)業(yè)務(wù)化運(yùn)行以來(lái),其正確性、可靠性、高可用性和可擴(kuò)展性,滿足業(yè)務(wù)中對(duì)數(shù)值預(yù)報(bào)的業(yè)務(wù)需求。同時(shí),其擴(kuò)展性能夠快速地將新的數(shù)值預(yù)報(bào)方便地集成到格點(diǎn)服務(wù)系統(tǒng)中,充分驗(yàn)證了系統(tǒng)可行性。

        猜你喜歡
        格點(diǎn)數(shù)據(jù)服務(wù)分布式
        地理空間大數(shù)據(jù)服務(wù)自然資源調(diào)查監(jiān)測(cè)的方向分析
        帶有超二次位勢(shì)無(wú)限格點(diǎn)上的基態(tài)行波解
        一種電離層TEC格點(diǎn)預(yù)測(cè)模型
        帶可加噪聲的非自治隨機(jī)Boussinesq格點(diǎn)方程的隨機(jī)吸引子
        分布式光伏熱錢洶涌
        能源(2017年10期)2017-12-20 05:54:07
        分布式光伏:爆發(fā)還是徘徊
        能源(2017年5期)2017-07-06 09:25:54
        如何運(yùn)用稅收大數(shù)據(jù)服務(wù)供給側(cè)結(jié)構(gòu)性改革
        基于頻繁子圖挖掘的數(shù)據(jù)服務(wù)Mashup推薦
        格點(diǎn)和面積
        基于DDS的分布式三維協(xié)同仿真研究
        国产成人无码av一区二区在线观看| 国产精品制服一区二区| 日韩日本国产一区二区| 强d乱码中文字幕熟女免费| 视频在线观看国产自拍| 日产乱码一二三区别免费l| 国产精品国三级国产av| 色窝窝免费播放视频在线| 久久久久亚洲AV片无码乐播| 一区二区久久精品66国产精品| 亚洲精品偷拍自综合网| 亚洲性无码一区二区三区| 美女裸体自慰在线观看| 亚洲午夜久久久精品国产| 91中文在线九色视频| 天天综合网网欲色| 曰批免费视频播放免费直播 | 国产成人精品优优av| 国产av人人夜夜澡人人爽麻豆| 亚洲AV综合A∨一区二区| 99久久久精品国产性黑人| 与最丰满美女老师爱爱视频 | 4hu四虎永久在线观看| 欧美亚洲高清日韩成人| 操老熟妇老女人一区二区| 女人无遮挡裸交性做爰| 自愉自愉产区二十四区| 亚洲人成7777影视在线观看| 日韩精品极品视频在线观看蜜桃| 精品亚洲一区二区三洲| 中文字幕一区二区三区四区五区 | 18禁无遮挡羞羞污污污污网站 | 一本大道在线一久道一区二区| 玩弄极品少妇被弄到高潮| 日本av一区二区三区在线| 老熟妇仑乱视频一区二区| 中文在线天堂网www| 亚洲精彩视频一区二区| av剧情演绎福利对白| 亚洲av日韩av在线观看| 99re免费在线视频|