国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于消息調(diào)度機(jī)制的地質(zhì)服務(wù)體系構(gòu)建及應(yīng)用實(shí)踐

2019-03-29 11:17:20張學(xué)利馬娜楊燕宋敦江汪健平劉國(guó)趙永明
自然資源遙感 2019年1期
關(guān)鍵詞:隊(duì)列服務(wù)體系消息

張學(xué)利, 馬娜, 楊燕, 宋敦江, 汪健平, 劉國(guó), 趙永明

(1.有色金屬華東地質(zhì)勘查局,南京 210007; 2.中國(guó)地質(zhì)調(diào)查局發(fā)展研究中心,北京 100037; 3.中國(guó)科學(xué)院科技戰(zhàn)略咨詢(xún)研究院,北京 100037; 4.山東省海洋資源與環(huán)境研究院,煙臺(tái) 264006; 5.中國(guó)地質(zhì)圖書(shū)館,北京 100083)

0 引言

在地質(zhì)信息化web服務(wù)共享中,基于OGC的地質(zhì)數(shù)據(jù)共享取得了長(zhǎng)足的進(jìn)步,形成了比較完善的系統(tǒng),滿(mǎn)足了地質(zhì)數(shù)據(jù)共享服務(wù)[5-8],但是基于OGC WPS服務(wù)難以滿(mǎn)足地質(zhì)算法的共享。這是由地質(zhì)數(shù)據(jù)處理服務(wù)的下述特點(diǎn)所決定的: ①地質(zhì)數(shù)據(jù)類(lèi)型多樣,包括地質(zhì)、物化探、油氣、鉆孔、測(cè)井等數(shù)據(jù),數(shù)據(jù)處理體量比較大; ②不同的地質(zhì)數(shù)據(jù)種類(lèi)對(duì)應(yīng)的地質(zhì)處理算法復(fù)雜多樣; ③數(shù)據(jù)處理耗時(shí)嚴(yán)重,執(zhí)行處理時(shí)間與等待時(shí)間較長(zhǎng)。在提供地質(zhì)處理web服務(wù)的時(shí)候,遵循WPS服務(wù)的時(shí)候重新開(kāi)發(fā)難度相當(dāng)大、開(kāi)發(fā)周期也比較長(zhǎng),這就帶來(lái)了地質(zhì)算法重新開(kāi)發(fā)周期長(zhǎng)與互聯(lián)網(wǎng)要求地質(zhì)服務(wù)快速共享之間的矛盾。因此如何能夠重用地質(zhì)算法庫(kù)或應(yīng)用軟件,快速構(gòu)建滿(mǎn)足大數(shù)據(jù)支撐的web共享服務(wù)系統(tǒng),是一個(gè)迫切需要解決的問(wèn)題[9-12]。

針對(duì)地質(zhì)數(shù)據(jù)處理服務(wù)共享中遇到的實(shí)際情況,結(jié)合消息調(diào)度概念及應(yīng)用模式,本文提出了基于消息調(diào)度機(jī)制的地質(zhì)數(shù)據(jù)處理服務(wù)共享機(jī)制。消息調(diào)度,又稱(chēng)消息隊(duì)列調(diào)度,它屬于系統(tǒng)中間件部分,是分布式系統(tǒng)中重要的組件。其工作原理是通過(guò)消息來(lái)協(xié)調(diào)系統(tǒng)中各個(gè)組件或模塊之間的應(yīng)用。主要解決應(yīng)用耦合、異步消息、流量削鋒等問(wèn)題,實(shí)現(xiàn)高性能、高可用、可伸縮和最終一致性架構(gòu),是大型分布式系統(tǒng)不可缺少的中間件。在國(guó)土資源服務(wù)行業(yè),采用消息調(diào)度機(jī)制并不常見(jiàn)。該機(jī)制可將已開(kāi)發(fā)的地質(zhì)算法庫(kù)和地質(zhì)應(yīng)用軟件擴(kuò)展消息接口支持,不改變已有算法或應(yīng)用系統(tǒng)的架構(gòu)或代碼,在滿(mǎn)足互聯(lián)網(wǎng)上的地質(zhì)數(shù)據(jù)處理服務(wù)請(qǐng)求的同時(shí),最大程度地復(fù)用這些地質(zhì)算法庫(kù)或地質(zhì)數(shù)據(jù)處理應(yīng)用軟件,由此提高開(kāi)發(fā)效率。同時(shí),采用消息調(diào)度機(jī)制,還可以根據(jù)互聯(lián)網(wǎng)請(qǐng)求數(shù)據(jù)的并發(fā)數(shù)或上傳數(shù)據(jù)的大小,來(lái)動(dòng)態(tài)選擇支撐算法處理服務(wù)器的處理能力,保證不會(huì)因?yàn)樘幚硭惴〝?shù)據(jù)過(guò)大而造成服務(wù)器崩潰。

本文設(shè)計(jì)了基于發(fā)布/訂閱消息服務(wù)模式的地質(zhì)服務(wù)體系架構(gòu),介紹了地質(zhì)消息體的結(jié)構(gòu)、地質(zhì)消息模型、地質(zhì)服務(wù)分類(lèi)、地質(zhì)算法服務(wù)封裝等關(guān)鍵技術(shù),并以流程化地質(zhì)在線處理服務(wù)為例,展示了消息調(diào)度機(jī)制在地質(zhì)服務(wù)體系中的應(yīng)用。實(shí)踐證明,消息調(diào)度機(jī)制可以滿(mǎn)足地質(zhì)服務(wù)的快速開(kāi)發(fā),能更好地滿(mǎn)足互聯(lián)網(wǎng)、大數(shù)據(jù)的應(yīng)用需求。

1 地質(zhì)服務(wù)體系設(shè)計(jì)

1.1 架構(gòu)設(shè)計(jì)

消息隊(duì)列一般包括單向調(diào)用模式、回調(diào)模式、輪詢(xún)模式和發(fā)布/訂閱模式4種模式(圖1)[13],每個(gè)模式包含消息隊(duì)列、發(fā)送者和接收者3個(gè)角色。

新型地質(zhì)服務(wù)體系在架構(gòu)設(shè)計(jì)時(shí),考慮了以下幾個(gè)方面的情況: ①對(duì)已有算法庫(kù)或應(yīng)用軟件進(jìn)行復(fù)用,這是系統(tǒng)架構(gòu)設(shè)計(jì)的第一原則,否則系統(tǒng)就需要進(jìn)行大規(guī)模的算法重新編碼,增大研發(fā)周期和造成已有研發(fā)系統(tǒng)的浪費(fèi); ②算法庫(kù)在重新封裝后,不但能夠保證本系統(tǒng)的使用,還要保證第三方系統(tǒng)能夠調(diào)用這些算法庫(kù); ③算法服務(wù)和網(wǎng)站之間保持松耦合關(guān)系,網(wǎng)站變更不影響算法庫(kù)服務(wù)的繼續(xù)服務(wù)。綜合考慮以上架構(gòu)設(shè)計(jì)原則,基于發(fā)布/訂閱模式的消息調(diào)度模式,構(gòu)建了地質(zhì)服務(wù)體系。其架構(gòu)主要由4個(gè)主體部分構(gòu)成(圖2)。

圖1 消息隊(duì)列模式圖Fig.1 Message queue invoke pattern

圖2 地質(zhì)服務(wù)體系架構(gòu)Fig.2 Architecture of geology service

1)系統(tǒng)平臺(tái)。主要是網(wǎng)站的設(shè)計(jì)與開(kāi)發(fā),提供地質(zhì)算法服務(wù)界面,獲取地質(zhì)處理需要的參數(shù)項(xiàng)。觸發(fā)執(zhí)行操作,發(fā)送處理消息,并將地質(zhì)算法庫(kù)處理后的成果數(shù)據(jù)進(jìn)行可視化。

2)消息隊(duì)列傳遞。主要是包含地質(zhì)處理相關(guān)參數(shù)和數(shù)據(jù)的消息傳遞,參數(shù)包括消息隊(duì)列的名稱(chēng)、地質(zhì)算法處理需要的參數(shù)項(xiàng)、數(shù)據(jù)的存儲(chǔ)地址等。

3)消息調(diào)度處理服務(wù)器。主要承載消息體的周轉(zhuǎn),消息體的異常處理和消息的負(fù)載均衡,會(huì)根據(jù)消息隊(duì)列執(zhí)行的頻度做分布式調(diào)度。

4)地質(zhì)算法庫(kù)。是地質(zhì)處理和地質(zhì)應(yīng)用軟件處理模塊。接收消息調(diào)度服務(wù)器傳遞來(lái)的消息,進(jìn)行地質(zhì)運(yùn)算,生成成果數(shù)據(jù),同時(shí)將地質(zhì)結(jié)果數(shù)據(jù)以O(shè)GC WMS或切片地圖web服務(wù)的方式發(fā)布[5-8],對(duì)外提供數(shù)據(jù)訪問(wèn)接口,供系統(tǒng)平臺(tái)調(diào)用。

①Puschmann T.,Alt R.,“Sharing Economy”,Business& Information Systems Engineering,2016,58(1).

1.2 地質(zhì)消息體結(jié)構(gòu)及處理服務(wù)模式設(shè)計(jì)

地質(zhì)消息體結(jié)構(gòu)是整個(gè)消息調(diào)度服務(wù)體系的基礎(chǔ),消息體的設(shè)計(jì)關(guān)系到系統(tǒng)架構(gòu)的各個(gè)環(huán)節(jié)。消息結(jié)構(gòu)粒度的設(shè)計(jì),是消息體設(shè)計(jì)成敗的關(guān)鍵。若消息體粒度太粗,后臺(tái)算法庫(kù)變成一個(gè)統(tǒng)一整體模塊,難以區(qū)分消息請(qǐng)求; 而消息體粒度太細(xì),就會(huì)出現(xiàn)一個(gè)算法對(duì)應(yīng)一個(gè)消息隊(duì)列和一個(gè)處理節(jié)點(diǎn)的情況,形成龐大的算法處理節(jié)點(diǎn)。綜合考慮系統(tǒng)中服務(wù)的處理類(lèi)型和實(shí)踐需求,本文設(shè)計(jì)了一個(gè)合適的消息體結(jié)構(gòu),其包含的參數(shù)如表1所示。

表1 地質(zhì)消息體參數(shù)Tab.1 Parameter of geological message body

首先,將地質(zhì)算法庫(kù)注冊(cè)到消息調(diào)度服務(wù)體系中,包括算法庫(kù)的名稱(chēng)、算法隊(duì)列的名稱(chēng),算法的發(fā)布者、算法處理描述等信息,形成消息隊(duì)列服務(wù)庫(kù),方便服務(wù)的查詢(xún)與瀏覽; 其次,在系統(tǒng)平臺(tái),用戶(hù)需要填寫(xiě)地質(zhì)處理需要的參數(shù),包括選擇數(shù)據(jù)項(xiàng)、算法參數(shù)項(xiàng)、請(qǐng)求方式等參數(shù),執(zhí)行處理服務(wù)請(qǐng)求,生成地質(zhì)處理消息隊(duì)列和消息體,發(fā)布消息隊(duì)列; 再次,地質(zhì)算法庫(kù)從消息隊(duì)列服務(wù)庫(kù)中訂閱符合自己處理要求的消息隊(duì)列,當(dāng)監(jiān)聽(tīng)到來(lái)自于消息調(diào)度服務(wù)器發(fā)送的消息處理后,接收消息體,然后將消息內(nèi)容解析,傳遞給地質(zhì)處理內(nèi)部模塊,生成處理結(jié)果,并調(diào)用地質(zhì)空間數(shù)據(jù)服務(wù)模塊,生成符合OGC規(guī)范的WMS和網(wǎng)絡(luò)要素服務(wù)(web feature service,WFS)等數(shù)據(jù)服務(wù)接口,并把接口信息推送給系統(tǒng)平臺(tái); 最后,系統(tǒng)平臺(tái)接收到算法庫(kù)模塊推送的數(shù)據(jù)顯示接口,由WMS和WFS接口進(jìn)行解析與展示,將處理結(jié)果通過(guò)瀏覽器展示給用戶(hù)。

1.3 地質(zhì)處理算法分類(lèi)設(shè)計(jì)

在消息調(diào)度的地質(zhì)服務(wù)體系下,對(duì)已有的地質(zhì)處理算法庫(kù)和應(yīng)用軟件功能進(jìn)行了分類(lèi)梳理,按照基礎(chǔ)算法處理、空間數(shù)據(jù)處理和業(yè)務(wù)處理方式分為統(tǒng)計(jì)分析、地質(zhì)專(zhuān)題圖、地質(zhì)處理和空間分析4大類(lèi),每個(gè)大類(lèi)分為若干個(gè)模塊。具體分類(lèi)如圖3。

圖3 地質(zhì)處理算法分類(lèi)設(shè)計(jì)圖Fig.3 Classification design of geological processing algorithm

2 系統(tǒng)的實(shí)現(xiàn)

基于消息調(diào)度機(jī)制地質(zhì)服務(wù)體系平臺(tái)的研發(fā),主要包括網(wǎng)站的開(kāi)發(fā)、消息調(diào)度服務(wù)器構(gòu)建、地質(zhì)算法服務(wù)接口的封裝和WebGIS體系的構(gòu)建。其中消息調(diào)度服務(wù)器構(gòu)建和地質(zhì)算法庫(kù)接口的封裝是系統(tǒng)的開(kāi)發(fā)核心。

2.1 軟件環(huán)境的搭建

網(wǎng)站采用Play框架開(kāi)發(fā),使用Java開(kāi)發(fā)語(yǔ)言,主要用于前臺(tái)請(qǐng)求頁(yè)面的設(shè)計(jì)和處理服務(wù)應(yīng)用程序編程接口的調(diào)用; 地質(zhì)算法服務(wù)的封裝是原有系統(tǒng)基礎(chǔ)上消息接口的封裝,一般是將C# .Net代碼封裝成控制臺(tái)程序; web服務(wù)器、負(fù)載均衡服務(wù)器、消息調(diào)度服務(wù)器等統(tǒng)一部署于Docker環(huán)境下[13-15],平臺(tái)開(kāi)發(fā)工具如表2所示。

表2 平臺(tái)開(kāi)發(fā)工具列表Tab.2 Platform development tools

2.2 地質(zhì)算法服務(wù)的封裝

對(duì)已有地質(zhì)算法庫(kù)或地質(zhì)處理應(yīng)用服務(wù),按照消息調(diào)度機(jī)制的服務(wù)體系進(jìn)行封裝,主要分為3個(gè)步驟: 首先,將已有地質(zhì)算法庫(kù)或地質(zhì)處理應(yīng)用進(jìn)行拆分,將界面操作邏輯與核心算法庫(kù)進(jìn)行剝離,明確核心算法庫(kù)的輸入數(shù)據(jù)類(lèi)型、輸出數(shù)據(jù)類(lèi)型、算法包依賴(lài)環(huán)境、算法解決的地質(zhì)問(wèn)題等,形成標(biāo)準(zhǔn)算法庫(kù),一般是動(dòng)態(tài)鏈接插件庫(kù); 然后,梳理標(biāo)準(zhǔn)算法庫(kù),根據(jù)算法功能進(jìn)行分類(lèi),同時(shí)根據(jù)分類(lèi)設(shè)計(jì)出對(duì)應(yīng)的消息體名稱(chēng)和隊(duì)列名稱(chēng),形成支持消息調(diào)度機(jī)制的算法功能庫(kù); 最后,對(duì)照網(wǎng)站提供的功能和地質(zhì)消息體結(jié)構(gòu),開(kāi)發(fā)控制臺(tái)程序,調(diào)用算法功能庫(kù),對(duì)網(wǎng)站傳遞過(guò)來(lái)的請(qǐng)求和地質(zhì)消息體結(jié)構(gòu)執(zhí)行相關(guān)處理計(jì)算,生成處理結(jié)果,并自動(dòng)發(fā)布成地質(zhì)空間數(shù)據(jù)處理服務(wù)。

算法庫(kù)封裝完畢之后,系統(tǒng)開(kāi)發(fā)者不需要關(guān)心后臺(tái)算法的開(kāi)發(fā),只需要提供算法需要的數(shù)據(jù),在使用已有算法的同時(shí),大大地提高了地質(zhì)處理服務(wù)系統(tǒng)的研發(fā)效率。

2.3 地質(zhì)數(shù)據(jù)共享服務(wù)的發(fā)布

地質(zhì)數(shù)據(jù)共享服務(wù)的發(fā)布,主要是應(yīng)用ArcGIS Server作為WebGIS服務(wù)器提供地質(zhì)處理結(jié)果數(shù)據(jù)的可視化服務(wù)。首先,當(dāng)算法庫(kù)執(zhí)行完地質(zhì)處理后,會(huì)生成地質(zhì)空間成果數(shù)據(jù); 然后,ArcGIS Server服務(wù)器監(jiān)聽(tīng)到數(shù)據(jù)變更,會(huì)自動(dòng)執(zhí)行空間數(shù)據(jù)發(fā)布服務(wù),將地質(zhì)數(shù)據(jù)發(fā)布成符合OGC規(guī)范的WMS服務(wù),同時(shí)將WMS地址推送到網(wǎng)站前臺(tái); 而前臺(tái)拿到WMS地址解析WMS服務(wù)地址,最后將地質(zhì)運(yùn)算結(jié)果顯示到瀏覽器前臺(tái),給用戶(hù)展示地質(zhì)算法結(jié)果。

2.4 地質(zhì)消息處理流程

地質(zhì)消息處理流程(圖4),首先是瀏覽器提供地質(zhì)在線處理算法頁(yè)面,用戶(hù)在頁(yè)面上選擇設(shè)計(jì)地質(zhì)算法方法、上傳相應(yīng)數(shù)據(jù)、設(shè)置算法需要的相關(guān)參數(shù),然后點(diǎn)擊處理請(qǐng)求; 在用戶(hù)通過(guò)瀏覽器界面點(diǎn)擊處理請(qǐng)求的同時(shí),觸發(fā)消息隊(duì)列處理服務(wù),對(duì)應(yīng)算法處理的消息隊(duì)列,根據(jù)用戶(hù)注冊(cè)的參數(shù)和上傳的數(shù)據(jù)生成地質(zhì)處理消息體,消息調(diào)度服務(wù)器根據(jù)消息隊(duì)列名稱(chēng)和請(qǐng)求數(shù)據(jù)大小,動(dòng)態(tài)分配地質(zhì)處理算法節(jié)點(diǎn); 地質(zhì)處理算法節(jié)點(diǎn)在監(jiān)聽(tīng)到消息處理請(qǐng)求時(shí),解析消息數(shù)據(jù)成算法需要的數(shù)據(jù)格式,并將數(shù)據(jù)傳遞給算法處理插件,執(zhí)行地質(zhì)運(yùn)算,生成運(yùn)算結(jié)果數(shù)據(jù),同時(shí)呼叫WebGIS在線服務(wù)發(fā)布程序,將地質(zhì)運(yùn)算生成的結(jié)果數(shù)據(jù)發(fā)布成OGC WMS服務(wù),通過(guò)消息推送服務(wù)器,并將WMS地址推送給瀏覽器前臺(tái),瀏覽器前臺(tái)解析WMS地址,將地質(zhì)處理結(jié)果展示到瀏覽器界面中。

圖4 地質(zhì)消息處理流程Fig.4 Flow of geological message in system

3 應(yīng)用實(shí)例分析

在應(yīng)用實(shí)踐中,以基于消息調(diào)度機(jī)制的地質(zhì)服務(wù)體系為支撐,面向互聯(lián)網(wǎng)應(yīng)用,構(gòu)建了一個(gè)基于瀏覽器的流程化地質(zhì)在線處理原型系統(tǒng)(圖5),按照地質(zhì)算法分類(lèi),將各個(gè)算法列表展示在右側(cè)功能菜單,用戶(hù)通過(guò)拖拽的形式,將功能拖拽到中間流程設(shè)計(jì)面板,并按照觸角類(lèi)型,將同類(lèi)型的輸入與輸出連接起來(lái),形成面向地質(zhì)處理流程。圖5是以土壤地球化學(xué)處理為示例,將元素采集點(diǎn)數(shù)據(jù)以Excel上傳,通過(guò)插值算法、等值線、等值面算法形成空間數(shù)據(jù)成果,得到單元素地球化學(xué)異常圖或多元素異常圖服務(wù),形成元素異常圖服務(wù),并在流程執(zhí)行結(jié)果中展示。其中,在流程中對(duì)數(shù)據(jù)進(jìn)行的預(yù)處理,如回歸分析、統(tǒng)計(jì)分析等同步以圖表或文字的形式展示在結(jié)果應(yīng)用頁(yè)面中(圖6)。

圖5流程化在線處理系統(tǒng)設(shè)計(jì)界面

Fig.5Designinterfaceofon-lineprocessingsystem

圖6 流程在線處理結(jié)果界面Fig.6 Result interface of on-line processing system

4 結(jié)論

1)依托于消息調(diào)度機(jī)制這一新技術(shù),提出了一種新型的地質(zhì)數(shù)據(jù)處理服務(wù)共享架構(gòu),對(duì)該架構(gòu)下地質(zhì)消息體的結(jié)構(gòu)、服務(wù)模式進(jìn)行了設(shè)計(jì),并對(duì)地質(zhì)處理算法的流程進(jìn)行了分類(lèi)設(shè)計(jì),并初步實(shí)現(xiàn)了該模式的應(yīng)用系統(tǒng)。

2)與當(dāng)今主流基于OGC標(biāo)準(zhǔn)服務(wù)共享處理算法相比,本文著重從地質(zhì)處理算法復(fù)用性來(lái)搭建應(yīng)用服務(wù)體系,優(yōu)點(diǎn)是已有的系統(tǒng)或代碼幾乎不需要作任何更改就能集成到平臺(tái)中,同時(shí)對(duì)處理算法生成的數(shù)據(jù),繼續(xù)遵循OGC標(biāo)準(zhǔn)提供了可視化服務(wù),適應(yīng)了互聯(lián)網(wǎng)系統(tǒng)快速開(kāi)發(fā)的特點(diǎn),滿(mǎn)足了互聯(lián)網(wǎng)、大數(shù)據(jù)的應(yīng)用需求。

3)下一步研究,系統(tǒng)將注重解決應(yīng)用服務(wù)的云上管理,將地質(zhì)處理算法庫(kù)等共享服務(wù)移植到云環(huán)境中,提供更大范圍的應(yīng)用實(shí)踐。

猜你喜歡
隊(duì)列服務(wù)體系消息
智慧出行,智繪未來(lái)——新一代出行服務(wù)體系構(gòu)建與實(shí)踐探討
隊(duì)列里的小秘密
基于多隊(duì)列切換的SDN擁塞控制*
軟件(2020年3期)2020-04-20 00:58:44
一張圖看5G消息
“三效合一”構(gòu)建現(xiàn)代農(nóng)業(yè)服務(wù)體系
建好公共法律服務(wù)體系“最后一公里”
在隊(duì)列里
豐田加速駛?cè)胱詣?dòng)駕駛隊(duì)列
初具規(guī)模的健康管理服務(wù)體系
消息
澎湖县| 徐州市| 肇州县| 兴安盟| 仲巴县| 石狮市| 达尔| 蓝山县| 辽阳县| 色达县| 广宗县| 大悟县| 贵阳市| 杂多县| 大丰市| 阳春市| 六安市| 泊头市| 民丰县| 乐东| 邯郸县| 沙雅县| 雷山县| 泗水县| 蒙城县| 西宁市| 东平县| 通州区| 洪雅县| 庐江县| 西充县| 出国| 鱼台县| 灯塔市| 潮州市| 昭苏县| 凤台县| 广汉市| 合川市| 陆丰市| 衡阳市|