999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種格點預報數據分布式服務系統的設計與實現

2018-08-15 08:02:42孫周軍喬文文陳曉慶
計算機應用與軟件 2018年8期
關鍵詞:用戶服務系統

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

(廣東省氣象探測數據中心 廣東 廣州 510080)

0 引 言

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

1 相關技術

1.1 服務總線

企業服務總線ESB(Enterprise Service Bus)是在面向服務體系架構基礎上發展而來,ESB是SOA的基礎架構。企業將所有的數據、功能、應用和功能都注冊于服務總線,通過服務總線將這些細粒度的單元有效連接起來。企業服務總線改變了傳統的軟件結構,提供比傳統中間件產品更為廉價的解決方案,同時消除不同應用間的技術差異,實現不同服務之間的通信與整合[5]。Mule ESB(Mule Enterprise Service Bus)、OSB(Oracle Service Bus)等都是能夠實現應用軟件間互相交互信息的集成平臺。格點預報數據服務的開發亦采用服務總線的設計思路,讓各類格點數據能夠實現分布式服務。

1.2 SOA架構

面向服務架構SOA(Service-Oriented Architecture)是一種面向服務的企業應用體系結構,由多個標準組件構成的架構模型。它提出資源和應用是可重用的服務,利用標準的協議進行通信,提供了一個具有較高靈活性、效率的信息集成方式[6-7]。

面向服務的體系架構包括服務提供者、服務消費者和服務注冊中心3種角色。其中:(1) 服務提供者負責服務邏輯功能的具體實現;(2) 服務消費者則是服務請求的發起者;(3) 服務注冊中心負責服務的注冊、分類和查找功能。圖1描述了SOA的工作原理,即技術開發人員將企業需要提供的軟件功能進行合理粒度的劃分和實現。并通過注冊服務將其提供的服務發布到服務注冊中心,服務注冊中心對已經注冊的服務進行分類管理,并為消費者提供服務查詢功能,當消費者發現符合條件的服務時,根據服務信息進行服務綁定/調用,以獲得需要的功能[8]。

圖1 SOA架構數據流程圖

SOA架構的產生主要是實現技術和服務的完全分離,從最大程度上達到業務系統的松散集成和重組。架構的具體實現與計算機應用技術的發展密切相關,其中XML、SOAP、WSDL和UDDI技術的成熟應用為SOA架構的實施奠定了技術基礎。(1) 可擴展的標記語言(XML)是一種封裝了數據和元數據的結構化文檔。這種封裝能力為異構環境的信息交換提供了統一的數據格式,包括消息、服務描述以及工作流的描述。(2) 簡單對象訪問協議(SOAP)是一種輕量的、簡單的、基于XML的協議,它被設計成在Web上交換結構化的和固化的信息。(3) Web服務定義語言(WSDL)是一個借助XML來描述Web Service和說明如何與Web服務通信的XML語言,為用戶提供詳細的服務說明和調用方式。(4) 統一描述、發現和集成協議(UDDI)提供了在Web上描述并發現商業服務的框架,是面向Web服務的信息注冊中心的實現標準和規范。

2 系統設計

目前,中國氣象局主要運行T639L60模式、GRAPES全球及區域模式、TGEE集合預報等幾類業務或準業務天氣預報模式[9-11]。各區域中心根據自身氣候特點發展的預報模式,以及從歐洲中心、德國和日本等獲得的數值預報產品,以上是氣象部門的數值預報產品來源,其預報時效長、時間間隔短、分辨率高。同時,中國氣象局主導研發的SWAN 2.0、MICAPS 4.0系統,均采用格點數據進行存儲,由此形成非常豐富的氣象格點數據集。要針對豐富的格點數據提供在線服務,則需要能夠對分散存儲的格點數據進行歸類存儲,并研發能夠分布式調取格點數據的服務端,利用SOA架構統一對用戶提供接口支撐,從而實現格點數據的海量存儲管理和服務。

2.1 軟件架構

GRIB、NetCDF和HDF都是國際上通用的數據格式,MICPAS和SWAN系統也自定義了格點數據存儲格式,要使得格點數據服務同時兼容多種格式,且能對規整分散存儲的數據提供統一的服務。如圖2所示,軟件從架構上分為四層:存儲層、服務層、訪問接口層和業務應用層。其中存儲層和服務層的設計采用微服務概念,形成分布式的格點數據服務,有效分擔和承載較大規模的訪問請求;訪問接口層采用SOA的設計思路,提供統一的服務管理和調用,有利于用戶的應用開發和對整套業務系統的調用監控。

圖2 格點預報數據服務軟件架構

存儲層 對原有分散的格點數據進行分類,按照一定的存儲規則進行分散存儲在不同的主機,以達到由不同存儲主機組成海量的存儲集群。由于格點數據按照類別、目錄和文件名有規則的集中存儲,從而讓服務軟件能夠根據請求精確定位到具體要操作的格點文件。

服務層 針對不同的數據格式實現讀取、寫入和裁剪等所有操作功能,并以獨立的服務軟件與存儲層集成部署,提供對存儲層格點數據的操作。

訪問接口層 以服務的方式發布給用戶調用的接口服務,訪問接口保存一份各類資料數據格式和存儲IP的配置清單,從而接口根據請求的資料類將請求路由到負責提供該類資料的服務層和存儲層完成對格點數據的所有操作,操作結果返回給用戶。

業務應用層 主要是基于訪問接口的調用開發的業務系統軟件。

2.2 實現原理

分布式數據訪問服務系統以提高訪問效率、提升系統并發能力、屏蔽數據結構的異構性設計為原則,考慮到系統提供規范化調用方式、規范化輸出結果和接口易維護與易擴展的需求,將系統從實現上劃分為調用層、業務層和數據服務層3個層次,邏輯劃分為5個模塊:解析單元、身份認證、規則管理、參數校對、分發執行。各模塊之間的數據流程如圖3所示。

圖3 圖格點預報數據服務軟件數據流程

調用層即是用戶調用數據訪問服務的邊界。邏輯層即是核心,負責對用戶請求進行分析處理和響應,包括解析單元、身份認證、業務規則管理、參數校對、分發執行邏輯模塊。數據服務層即是利用數據服務訪問系統對外提供數據讀、寫操作,以及對格點數據的存儲,利用分布式存儲的業務拆分技術實現大容量格點數據的統一管理與應用。其中涉及到的核心邏輯模塊功能詳細描述如下:

1) 解析單元 參數分為系統參數和業務參數兩類:(1) 系統參數,即服務系統業務邏輯完整運行必要的非空參數,包括接口ID、用戶ID、密碼、數據格式、業務程式和數據源名稱(參數標識分別為:interfaceId、userId、pwd、dataFormat);(2) 業務參數,即系統參數接口ID所對應業務規則正常執行所需的非空參數。用戶按照調用方式的參數規范要求傳參,解析單元負責分解,形成Map對象。

2) 身份認證 系統的角色分為兩類:(1) 系統管理員,可通過接口獲取數據,同時具備登錄本系統控臺進行權限管理、接口定義、格點元數據定義、日志查詢;(2) 對外用戶,僅能夠查閱和調用系統發布的數據接口。

3) 業務規則 根據接口ID,在業務規則庫中檢索對應的業務規則程式,利用業務參數填充規則程式中對應的位置,形成完整的、可執行的程式。

4) 參數校對 根據接口ID,在業務規則庫中檢索對應的業務規則程式,檢查用戶提交的請求參數是否符合接口要求,并將用戶參數值與規則程式中的參數進行綁定。

5) 分發執行 根據用戶提供的業務參數(模式ID)確定提供數據的格點服務器,并與其進行通信,將用戶參數請求按照預定規則發送給服務器,并將服務器返回數據進行封裝返回給用戶。

2.3 功能設計

數據訪問服務系統以簡約化、人性化設計為原則,考慮到管理用戶的良好體驗效果和便捷管理維護需求,服務系統的管理平臺劃分為:格點預報管理、接口管理、日志管理、用戶管理等主要功能。

1) 格點預報管理 將格點數據服務接口能夠提供的格點數據元數據信息進行發布與管理,包括每類數值預報包括的氣象要素、層次、預報時效、數據單位以及格點數據的經緯度間隔和每天發布的時次等信息。

2) 接口管理 將格點接口數據支持的方法通過配置方式設定具體參數名稱、是否為必填參數等信息。

3) 日志管理 日志管理分別記錄接口調用的起始時間、耗時和用戶參數,同時計算接口調用的平均、最大和最小耗時,方便管理人員進行故障排除和業務程式性能調優。

4) 用戶管理 主要是確保服務系統訪問平臺的安全,定義接口的使用用戶和管理維護用戶,及用戶能夠訪問的功能模塊。

2.4 調用方式

本系統的設計針對兩類業務系統:一類只是單純的讀取格點數據,對時效性有一定容忍度的;另一類具有人機交互的業務系統,對數據讀取和寫入時效性要求高的。考慮以上場景,將對格點數據的訪問發布為RestFull服務,針對前者提供Http和SOAP協議訪問服務;同時,提供基于Socket套接字的SDK包,針對后者場景提供服務,主要用于精細化格點預報平臺的數據快速交互。以上提供的調用方式滿足絕大多數語言的調用。

3 關鍵技術

本系統的設計旨在提供數值預報平面場數據檢索、任意經緯度插值、平面場裁剪和非規則地區格點數據寫入等功能[12],支撐全省格點數據服務有關的業務系統,在可靠性、并發性、擴展性和響應速度上都提出較高的要求。基于此需求,利用Rose Mirror HA解決可靠性,利用分布式部署服務解決并發與擴展性,利用緩存技術解決響應速度問題。

3.1 緩存技術

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

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函數主要利用用戶請求參數形成緩存數據的Key值。如果用戶請求命中緩存,則將緩存中的數據返回給用戶格式化的數據;否則,與格點數據服務進行通信獲取數據,并根據預先設定緩存失效時間,將數據存儲到緩存中,同時返回給用戶格式化的數據。

3.2 裁剪技術

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

圖4 內縮算法效果

3.3 插值算法

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

(1) IDW格點數據插值算法具體實現如下:

Float grid_idw(float anyLon,float anyLat){

Float ret=0.0f;

Float[] xPoints=getXPointsFromGridFile();

Float[] yPoints=getXPointsFromGridFile();

//判斷是否落在格網格點上

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

If(isInThePoint) {

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

}else{

Int LeftTopP=findLeftTopP(lon,lat);

//查找左上格點

Float LeftTopV=findVal(LeftTopP);

//查找左上格點值

Int RightTopP=findRightTopP(lon,lat);

//查找右上角格點

Float RightTopV=findVal(RightTopP);

//查找右上格點值

Int LeftButtonP=findLeftButtonP(lon,lat);

//查找左下角格點

Float LeftButtonV=findVal(LeftButtonP);

//查找左下格點值

Int RightButtonP=findRightButtonP(lon,lat);

//查找右下角格點

Float RightButtonV=findVal(RightButtonP);

//查找右下格點值

//如果4個點的值全部為缺測,則直接返回缺測值

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

ret=UNDEFINE_VALUE

}else{

ret=IDW(左上{經度,緯度,值},右上{經度,緯度,值},左下{經度,緯度,值},右下{經度,緯度,值},插值點{經度,緯度});

//IDW算法的具體實現

}

}

}

(2) NN格點數據插值算法具體實現如下:

Float grid_nn(float anyLon,float anyLat){

int p=findNeareastPoint(lon,lat);

ret=findVal(p);

}

3.4 分布式設計

格點數據從時間緯度、空間緯度都較廣且預報要素較多,要保持較長時間的格點數據則需要根據實際情況分開存儲,從而導致在每個存儲數據的服務器上部署相同的格點數據服務。當用戶發起數據訪問請求時,則根據具體的請求模式名稱,由分發策略將客戶端連接到準確的格點數據服務進行數據服務操作。

分布式的部署方法,優勢較為明顯:(1) 支持高并發方法。與單機部署相比,可將所有請求根據轉為由多個服務器進行服務,從而提升并發服務能力。(2) 數據分布式存儲。因格點服務可部署多臺服務器,通過業務請求分發策略模塊進行響應,從而可以將不同的格點數據進行分布式存儲,但不影響客戶端的應用。部署架構如圖5所示。

圖5 分布式格點服務部署架構

在本系統的實際應用過程中,廣東省將精細化格點預報與全國下發的數值預報數據分別進行存儲,提供分布式格點數據服務,取得較好的應用效果。

3.5 高可用設計

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

圖6 Rose Mirror HA架構

在本架構中主要涉及到以下角色:

1) 主服務器 當前提供格點數據服務的服務器為主服務器,安裝有格點數據服務程序,并在網卡中綁定VIP地址。

2) 備份服務器 當前處于備份狀態的服務器,安裝有格點數據風物程序。

3) 私有網絡 在主、備服務器之間建立的直連網絡,用于心跳通信和格點數據的同步傳輸。

4) VIP 虛擬IP地址,提供對客戶端的服務訪問,綁定在當前提供數據服務的服務器上。

高可用服務的保障過程:在主、備主機上分別部署相同的格點服務軟件,同時對格點數據目錄設置為互相同步,并設定VIP。當主節點的數據目錄發生變化時,基于增量策略和流技術將數據同步到備份主機,實現主、備間的數據同步;當主機點監視模塊監測到格點數據服務軟件掉線等異常時,主節點則通過自動將自身服務下線,同時通知備機接管服務;當主節點服務器宕機時,備份節點通過私有網絡檢查不到心跳信號,此時備份節點亦會主動接管數據服務。接管后的服務器會重新綁定VIP地址,同時啟動格點數據服務應用,提供正常的服務。

在實際的業務應用當中,Rose Mirror HA高可用格點數據服務解決方案一般會在1~3分鐘內實現數據的接管,不會給用戶帶來明顯的服務中斷體驗。

4 應用實例

1) 廣東省精細化格點預報訂正平臺(見圖7) 作為廣東精細化格點預報平臺,主要進行主觀格點預報業務支撐平臺,該平臺的主觀格點預報的寫入、讀取、插值序列都基于本系統分布式格點數據服務完成。廣東省21地級市通過該平臺每日制作格點預報,格點數據集中存儲,數據統一服務,驗證分布式格點數據服務系統的可靠性、穩定性與并發性,該設計亦符合氣象信息化建設發展思路。

圖7 廣東省精細化格點預報訂正平臺

2) 廣東省SWIFT系統平臺(見圖8) 省氣象臺主要展示各類氣象數據,其中數值預報模塊將格點數據服務中的各類數據進行圖形動態繪制,提供數據展示服務。全省業務人員均基于此系統查看Grapes中各地的格點預報,同樣驗證分布式格點數據服務系統的可靠性、穩定性與并發性能夠滿足業務需求。

圖8 SWIFT主界面-2米溫度場

5 結 語

分布式格點預報數據服務系統支持分布式部署,邏輯結構松散耦合,分布式特性使得系統能提供高并發的訪問量,同時能夠在業務中將格點數據進行業務拆分存儲,正常提供數據服務。基于本系統支撐的廣東精細化格點預報訂正平臺與SWIFT平臺業務化運行以來,其正確性、可靠性、高可用性和可擴展性,滿足業務中對數值預報的業務需求。同時,其擴展性能夠快速地將新的數值預報方便地集成到格點服務系統中,充分驗證了系統可行性。

猜你喜歡
用戶服務系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
服務在身邊 健康每一天
今日農業(2019年12期)2019-08-15 00:56:32
服務在身邊 健康每一天
今日農業(2019年10期)2019-01-04 04:28:15
服務在身邊 健康每一天
今日農業(2019年16期)2019-01-03 11:39:20
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
招行30年:從“滿意服務”到“感動服務”
商周刊(2017年9期)2017-08-22 02:57:56
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
主站蜘蛛池模板: 再看日本中文字幕在线观看| 中文字幕无码制服中字| 欧美日韩中文国产va另类| 国产中文一区二区苍井空| 日韩小视频在线观看| 国产日本欧美亚洲精品视| 久久黄色毛片| 99视频国产精品| 美女无遮挡免费网站| 99精品视频在线观看免费播放| 韩日无码在线不卡| 国产综合无码一区二区色蜜蜜| 国产清纯在线一区二区WWW| 色婷婷亚洲十月十月色天| 嫩草在线视频| 91久久偷偷做嫩草影院精品| 日本国产精品一区久久久| 萌白酱国产一区二区| 免费无码又爽又黄又刺激网站| jizz国产视频| 亚洲AV无码乱码在线观看代蜜桃| 欧美国产精品不卡在线观看| 久996视频精品免费观看| 成年片色大黄全免费网站久久| 在线欧美日韩| 精品国产欧美精品v| 玖玖精品在线| 色婷婷色丁香| 免费毛片网站在线观看| 国产新AV天堂| 香蕉视频在线观看www| 亚洲精品你懂的| 色婷婷久久| 久操线在视频在线观看| 亚洲精品成人片在线观看| 精品国产电影久久九九| 亚洲最大福利视频网| 久久公开视频| 美女一区二区在线观看| 99热最新网址| 国产特一级毛片| 国产精品无码作爱| 国产成人av大片在线播放| 亚洲va欧美va国产综合下载| 99视频在线看| 一本久道久综合久久鬼色| 九九久久精品免费观看| 色综合中文字幕| 国产精品久久久久久影院| 高清无码不卡视频| 毛片免费在线| 亚洲欧美日韩成人在线| 亚洲欧美不卡中文字幕| 亚洲人成亚洲精品| 香蕉网久久| 国产成人精品高清在线| 久久久91人妻无码精品蜜桃HD| 国产亚洲男人的天堂在线观看| 亚洲大尺码专区影院| 欧美激情视频一区二区三区免费| 麻豆a级片| av一区二区三区高清久久| 99免费在线观看视频| 99精品福利视频| 亚洲精品制服丝袜二区| 精品黑人一区二区三区| 国产性猛交XXXX免费看| 1769国产精品免费视频| 日韩中文欧美| 伊人色在线视频| 日本精品视频一区二区| 激情综合网激情综合| 国产毛片片精品天天看视频| 国产激爽大片在线播放| 国产成人精彩在线视频50| 欧美一级大片在线观看| 99在线视频网站| 日本在线国产| 国产特级毛片aaaaaa| 国产精品久久国产精麻豆99网站| 黄色在线网| 久久精品人人做人人爽电影蜜月|