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

?

瓦片地圖動(dòng)態(tài)緩存中間件的優(yōu)化設(shè)計(jì)及實(shí)現(xiàn)

2014-12-12 01:47:00李治慶焦孟凱李成名
測(cè)繪通報(bào) 2014年1期
關(guān)鍵詞:中間件瓦片服務(wù)器端

孫 偉,李治慶,焦孟凱,李成名

(1.山東科技大學(xué)測(cè)繪科學(xué)與工程學(xué)院,山東青島266510;2.中國測(cè)繪科學(xué)研究院,北京100830)

一、引 言

近幾年來,隨著Google Map等在線地圖服務(wù)網(wǎng)站和系統(tǒng)的興起,利用瓦片進(jìn)行地圖服務(wù)逐漸成為網(wǎng)絡(luò)地理信息服務(wù)的主要形式,也使地理信息在線服務(wù)的能力和效率得到了有效提升[1-3]。與此同時(shí),開放地理信息系統(tǒng)協(xié)會(huì)(Open GIS Consortium,OGC)也出臺(tái)了一些網(wǎng)絡(luò)地圖服務(wù)標(biāo)準(zhǔn),使瓦片地圖服務(wù)的利用更加規(guī)范。

現(xiàn)有的瓦片地圖服務(wù)一般有兩種方式:一是預(yù)生成靜態(tài)瓦片,通過緩存大量規(guī)則的地圖瓦片來響應(yīng)客戶端的請(qǐng)求;二是采用動(dòng)態(tài)瓦片,即按照用戶請(qǐng)求序列實(shí)時(shí)生成并反饋地圖瓦片[4]。這兩種方法各有優(yōu)缺點(diǎn)。采用靜態(tài)緩存方法的優(yōu)點(diǎn)是客戶端的響應(yīng)效率高,用戶交互體驗(yàn)較好;缺點(diǎn)是由于瓦片需要預(yù)先生成,地圖現(xiàn)勢(shì)性差,用戶可能無法得到真實(shí)的地理信息反饋。而采用動(dòng)態(tài)緩存方法的優(yōu)點(diǎn)是地理信息實(shí)時(shí)、現(xiàn)勢(shì)性較好;缺點(diǎn)是即時(shí)反饋需要耗費(fèi)大量的圖片生成時(shí)間,客戶端響應(yīng)效率低、用戶交互體驗(yàn)差,同時(shí)也會(huì)產(chǎn)生大量不必要的服務(wù)器處理開銷[5]。

為了解決地圖服務(wù)高效和現(xiàn)勢(shì)性的雙重需求,目前較常用的方法是采用具有動(dòng)態(tài)切圖策略的地圖服務(wù)中間件,部署在客戶端和服務(wù)器中間,根據(jù)客戶端發(fā)送的地圖服務(wù)請(qǐng)求,將相應(yīng)的動(dòng)態(tài)或靜態(tài)緩存反饋到客戶端。如GeoWebCache和TileCache等,就是目前國際上比較流行的開源瓦片緩存中間件,它們?cè)诒WC地圖現(xiàn)勢(shì)性的同時(shí),也提高了訪問速度,具有較好的應(yīng)用價(jià)值。本文就在參考GeoWebCache的架構(gòu)基礎(chǔ)上,從服務(wù)類型、信息交互、歷史數(shù)據(jù)利用等方面,進(jìn)行進(jìn)一步的優(yōu)化,從而提供更好的瓦片地圖服務(wù)。

二、GeoWebCache原理、結(jié)構(gòu)及不足

1.GeoWebCache原理及結(jié)構(gòu)

GeoWebCache是OpenGEO的一個(gè)開源瓦片地圖服務(wù)模塊,采用Java實(shí)現(xiàn)基于WMS的動(dòng)態(tài)緩存服務(wù)。在實(shí)際工作中,GeoWebCache部署于客戶端和WMS兼容服務(wù)器之間,充當(dāng)?shù)貓D訪問代理。其工作原理是:當(dāng)客戶端請(qǐng)求地圖時(shí),GeoWebCache服務(wù)器攔截該請(qǐng)求,判斷本次請(qǐng)求的瓦片是否存在。如果存在,則將這些緩存圖片直接渲染至客戶端;如果不存在,則發(fā)送請(qǐng)求至WMS Server,由服務(wù)器處理請(qǐng)求數(shù)據(jù),并返回給GeoWebCache服務(wù)器,Geo WebCache服務(wù)器經(jīng)過渲染及緩存數(shù)據(jù)圖片后繪制到客戶端。

與單純的靜態(tài)緩存相比,利用GeoWebCache后的地圖服務(wù)會(huì)有明顯的能力提升??蛻舳怂?qǐng)求的圖片事先或者在重復(fù)請(qǐng)求過程中就能夠存儲(chǔ)在GeoWebCache中。當(dāng)其攔截到新的地圖服務(wù)請(qǐng)求,分析后若發(fā)現(xiàn)與其存儲(chǔ)的地圖瓦片一致,則可直接將已存儲(chǔ)的地圖瓦片返回客戶端,不需要在服務(wù)器端重復(fù)計(jì)算,這使得地圖繪制的速度提升數(shù)倍,也得到了更好的用戶體驗(yàn)效果,如圖1所示。

圖1 GeoWebCache結(jié)構(gòu)及請(qǐng)求處理過程

從圖1可以看出,GeoWebCache的主體由服務(wù)的管理部分和緩存存儲(chǔ)兩部分構(gòu)成。服務(wù)管理部分能夠支持 WMS、WMTS、TMS、KML、GMaps及VE等多種服務(wù),客戶端使用基于 HTTP的 Web Services與其進(jìn)行服務(wù)請(qǐng)求,可滿足多種客戶端請(qǐng)求需求;緩存存儲(chǔ)部分采用標(biāo)準(zhǔn)接口管理系統(tǒng)元數(shù)據(jù)及瓦片空間索引,并為地圖瓦片提供高速緩存,支持的數(shù)據(jù)源主要為WMS兼容服務(wù)器,如GeoServer、ArcIMS、MapServer等。

2.GeoWebCache不足分析

作為一個(gè)開源的瓦片地圖服務(wù)中間件,GeoWebCache能夠較好地改善地圖服務(wù)在動(dòng)態(tài)更新和高效響應(yīng)之間的問題。但作為一種需要兼顧各類瓦片服務(wù)請(qǐng)求和服務(wù)提供的中間件,其仍存在一些可改善之處:

(1)服務(wù)器端接口擴(kuò)展

盡管GeoWebCache能夠提供較為豐富的前端可支持服務(wù),但是在后端的數(shù)據(jù)源,卻僅提供了面向WMS兼容服務(wù)器的單向接口。而WMS是OGC標(biāo)準(zhǔn)化規(guī)范后的服務(wù)接口,這種方式限制了其他(如ArcGISServer、MapServer等地圖服務(wù)器)的使用。

(2)歷史版本數(shù)據(jù)的管理與應(yīng)用

GeoWebCache的緩存存儲(chǔ)器存儲(chǔ)內(nèi)容包括系統(tǒng)元數(shù)據(jù)、瓦片空間索引數(shù)據(jù)及瓦片緩存,但缺乏能夠表現(xiàn)地理信息長(zhǎng)時(shí)間序列變化的的版本信息,時(shí)序性無法很好地展現(xiàn)。

(3)服務(wù)協(xié)議的擴(kuò)展

對(duì)于客戶端的請(qǐng)求,GeoWebCache需要使用基于HTTP的Web Services,從而保證服務(wù)的廣泛支持和適用性。但在服務(wù)器端,由于使用了WMS兼容服務(wù)器,也將服務(wù)網(wǎng)絡(luò)協(xié)議局限于HTTP。

三、瓦片地圖動(dòng)態(tài)緩存中間件的優(yōu)化

為了使瓦片地圖動(dòng)態(tài)緩存效果在效率、服務(wù)擴(kuò)展及歷史回溯等方面更加完善,本文在參考GeoWebCache結(jié)構(gòu)的基礎(chǔ)上,針對(duì)其目前存在的幾個(gè)不足之處,設(shè)計(jì)了一種動(dòng)靜結(jié)合的可回溯擴(kuò)展性瓦片地圖動(dòng)態(tài)緩存中間件DCM(dynamic caching middleware),并從底層編程實(shí)現(xiàn)。

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

在主體架構(gòu)方面,DCM分為服務(wù)解析模塊、服務(wù)處理模塊和服務(wù)適配模塊3個(gè)部分(如圖2所示)。其中,服務(wù)解析模塊負(fù)責(zé)對(duì)客戶端發(fā)送來的服務(wù)請(qǐng)求進(jìn)行解析判斷,然后把解析結(jié)果傳遞給服務(wù)處理模塊進(jìn)行處理。服務(wù)處理模塊根據(jù)具體的解析結(jié)果進(jìn)行處理操作,包括靜態(tài)緩存獲取、動(dòng)態(tài)切圖及動(dòng)態(tài)緩存更新等。服務(wù)適配模塊則主要是在需進(jìn)行動(dòng)態(tài)切圖及更新時(shí),將發(fā)送來的服務(wù)模式與后臺(tái)服務(wù)器端的服務(wù)模式進(jìn)行最優(yōu)化匹配,并將處理后的結(jié)果按需反饋給服務(wù)處理模塊進(jìn)行操作。此外,DCM外部還搭配有一個(gè)緩存數(shù)據(jù)庫,用于存放系統(tǒng)元數(shù)據(jù)、靜態(tài)緩存數(shù)據(jù)及緩存版本信息。其中,靜態(tài)緩存可根據(jù)版本信息進(jìn)行分時(shí)間節(jié)點(diǎn)存放。服務(wù)器端則可以是Web Services服務(wù)器及其他可提供緩存服務(wù)的服務(wù)器。

在細(xì)節(jié)方面,針對(duì)GeoWebCache存在的幾點(diǎn)不足,對(duì)DCM在服務(wù)擴(kuò)展和響應(yīng)效率上進(jìn)行優(yōu)化設(shè)計(jì)(圖2中數(shù)字標(biāo)注部分)。

1)利用插件式擴(kuò)展結(jié)構(gòu),對(duì)服務(wù)解析配置模塊進(jìn)行服務(wù)動(dòng)態(tài)擴(kuò)展能力的提升,從而達(dá)到客戶端多類型請(qǐng)求的自動(dòng)擴(kuò)展。

2)增加一個(gè)服務(wù)適配模塊,根據(jù)客戶端發(fā)送的服務(wù)請(qǐng)求和DCM實(shí)時(shí)鏈接的網(wǎng)絡(luò)地圖服務(wù)器或者空間數(shù)據(jù)庫所支持的最高效地圖服務(wù)接口之間進(jìn)行轉(zhuǎn)換,從而提供滿足當(dāng)前環(huán)境需求的最高效服務(wù)能力。

3)增加緩存存儲(chǔ)模塊中的版本信息索引,用戶默認(rèn)操作時(shí),仍舊根據(jù)系統(tǒng)元數(shù)據(jù)信息來進(jìn)行最新緩存的靜態(tài)或動(dòng)態(tài)地圖服務(wù),但同時(shí)提供用戶可選的靜態(tài)歷史緩存數(shù)據(jù)獲取服務(wù)。

4)根據(jù)服務(wù)器端的響應(yīng)配置,擴(kuò)充后臺(tái)服務(wù)協(xié)議,增加FastCGI等可提高服務(wù)的響應(yīng)效率與穩(wěn)定性的協(xié)議,從而提高整個(gè)地圖服務(wù)服務(wù)器端的能力。

整個(gè)服務(wù)流程中,所有地圖服務(wù)客戶端的請(qǐng)求都向DCM發(fā)送,DCM根據(jù)請(qǐng)求來確定是否需要向服務(wù)器端發(fā)出相應(yīng)瓦片切片命令,而具體的瓦片存儲(chǔ)及反饋則在DCM中實(shí)現(xiàn)。這種結(jié)構(gòu)使得DCM兩端都是低耦合的結(jié)構(gòu),在方便客戶端用戶使用的同時(shí),也可提高動(dòng)態(tài)緩存服務(wù)效率。

圖2 DCM結(jié)構(gòu)示意圖

2.響應(yīng)流程

加載了DCM后,在進(jìn)行瓦片地圖服務(wù)時(shí),具體處理流程如圖3所示。

圖3 地圖瓦片動(dòng)態(tài)緩存服務(wù)流程

客戶端發(fā)出請(qǐng)求被DCM接收(步驟①),并由服務(wù)解析模塊進(jìn)行解析(步驟②)。解析的結(jié)果有兩種:一種是該請(qǐng)求的地圖服務(wù)所涉及的地圖瓦片已存在(步驟③),另一種是該請(qǐng)求的地圖服務(wù)所涉及的地圖瓦片不存在(步驟⑧)。

對(duì)于地圖瓦片已經(jīng)存在的情況,根據(jù)服務(wù)請(qǐng)求范圍,通過服務(wù)處理模塊查找緩存數(shù)據(jù)庫中的元數(shù)據(jù),根據(jù)查詢結(jié)果判斷相關(guān)地圖數(shù)據(jù)是否已更新(步驟④)。若無最新的地圖數(shù)據(jù),即瓦片不需要更新,則直接從緩存數(shù)據(jù)庫中按照服務(wù)請(qǐng)求獲取已有的瓦片(步驟⑤),并將瓦片通過服務(wù)處理模塊反饋到客戶端(步驟⑩);若已有最新的地圖數(shù)據(jù),即原有地圖瓦片已非最新,則需要根據(jù)元數(shù)據(jù)信息將該更新結(jié)果發(fā)送到服務(wù)配置模塊,服務(wù)配置模塊進(jìn)行服務(wù)最優(yōu)匹配后向服務(wù)器端發(fā)送最新地圖的實(shí)時(shí)動(dòng)態(tài)瓦片生成請(qǐng)求(步驟⑥),生成的瓦片及其元數(shù)據(jù)信息、版本信息將通過服務(wù)配置模塊反饋給服務(wù)處理模塊,并存儲(chǔ)至緩存數(shù)據(jù)庫(步驟⑦),同時(shí)更新后瓦片則根據(jù)原地圖服務(wù)請(qǐng)求返回客戶端(步驟⑩)。

對(duì)于地圖瓦片不存在的情況,根據(jù)服務(wù)請(qǐng)求的范圍計(jì)算圖片的位置,并將該處理結(jié)果發(fā)送到服務(wù)器端進(jìn)行實(shí)時(shí)動(dòng)態(tài)瓦片生成(步驟⑨),生成的瓦片、元數(shù)據(jù)信息及版本信息存儲(chǔ)至緩存數(shù)據(jù)庫(步驟⑦),并將最終的瓦片通過服務(wù)處理模塊反饋到客戶端(步驟⑩)。

四、優(yōu)化測(cè)試

為了測(cè)試采用DCM瓦片動(dòng)態(tài)緩存后的服務(wù)實(shí)際效果,本文搭建了測(cè)試環(huán)境,并對(duì)靜態(tài)緩存WMTS與使用DCM的動(dòng)態(tài)緩存服務(wù)進(jìn)行性能測(cè)試。

1.測(cè)試方案

在測(cè)試環(huán)境方面,測(cè)試客戶端選擇WebLOAD V8.1來模擬訪問時(shí)的Web操作;在測(cè)試服務(wù)器端,選用Intel雙核2.0 GHz處理器、2 GB內(nèi)存服務(wù)器;測(cè)試網(wǎng)絡(luò)環(huán)境選擇100 Mbit網(wǎng)絡(luò)鏈接。

在測(cè)試數(shù)據(jù)方面,選擇全國范圍1∶400萬地圖數(shù)據(jù)并按照地理信息公共服務(wù)平臺(tái)電子地圖切片方式[6]中第8級(jí)進(jìn)行切片,瓦片大小為256像素×256像素,格式為PNG,切圖后瓦片共計(jì)2018張,占用磁盤空間9 MB。測(cè)試選擇WMTS靜態(tài)緩存和本文設(shè)計(jì)的DCM兩種方式進(jìn)行對(duì)比,針對(duì)WMTS使用已進(jìn)行靜態(tài)緩存后的瓦片地圖數(shù)據(jù),針對(duì)DCM則利用未進(jìn)行切片的地圖數(shù)據(jù)。

在測(cè)試方法方面,WMTS直接向測(cè)試服務(wù)器發(fā)送數(shù)據(jù)請(qǐng)求,而DCM需將已有緩存清空。在10個(gè)并發(fā)條件下,對(duì)同一區(qū)域范圍地圖的請(qǐng)求次數(shù)分別采用 50、100、300、500、1000、2000、3000、5000 八個(gè)組別,以多線程方式模擬客戶端發(fā)出指令,同時(shí)向DCM發(fā)送2×2個(gè)地圖瓦片數(shù)據(jù)請(qǐng)求,最終結(jié)果評(píng)定從服務(wù)響應(yīng)時(shí)間方面進(jìn)行比較。

2.結(jié)果及分析

圖4顯示了同樣的請(qǐng)求環(huán)境下,分別對(duì)靜態(tài)緩存策略下WMTS請(qǐng)求,與動(dòng)態(tài)緩存策略下DCM請(qǐng)求平均響應(yīng)時(shí)間的對(duì)比。從圖4可以看出,對(duì)于靜態(tài)緩存策略下WMTS請(qǐng)求,其響應(yīng)時(shí)間較為平均,約為4.5 ms。而對(duì)于增加了DCM并進(jìn)行瓦片動(dòng)態(tài)緩存的WMTS請(qǐng)求,其響應(yīng)時(shí)間變化較大。在測(cè)試初期階段,由于已將DCM的緩存清空,因此在進(jìn)行地圖請(qǐng)求時(shí),需要通過DCM向服務(wù)器發(fā)出地圖獲取指令并按照獲取范圍實(shí)時(shí)切圖,然后將瓦片存儲(chǔ)入DCM,最后返回客戶端,因此時(shí)間較長(zhǎng),約為530 ms;而隨著請(qǐng)求次數(shù)的不斷增加,DCM緩存存儲(chǔ)器中的地圖瓦片不斷增加,因此存儲(chǔ)在DCM中的瓦片被檢索到的概率越來越大,DCM向服務(wù)器發(fā)送指令并實(shí)時(shí)切圖的次數(shù)也隨之減少,平均響應(yīng)時(shí)間急劇降低,當(dāng)累積請(qǐng)求次數(shù)達(dá)到950次時(shí),兩種請(qǐng)求方法的響應(yīng)時(shí)間已經(jīng)接近相同。而隨后,DCM的請(qǐng)求響應(yīng)時(shí)間與普通WMTS請(qǐng)求大致相同。當(dāng)DCM所緩存的地圖瓦片趨于飽和后,DCM請(qǐng)求響應(yīng)時(shí)間也逐漸穩(wěn)定,約為5 ms。因此可見,使用了動(dòng)態(tài)緩存策略后,隨著對(duì)其訪問量的逐漸增大,不僅能夠有效保持與靜態(tài)緩存服務(wù)相當(dāng)?shù)母咝ы憫?yīng)能力,而且還能夠?qū)崿F(xiàn)實(shí)時(shí)動(dòng)態(tài)切圖,對(duì)于提高地理信息更新服務(wù)能力具有重要意義。

五、結(jié)束語

瓦片地圖動(dòng)態(tài)緩存中間件能夠有效地提升瓦片地圖服務(wù)的地圖現(xiàn)勢(shì)性和服務(wù)響應(yīng)效率,從而為用戶提供最新的地理信息和更好的使用交互體驗(yàn)。本文在參考目前國際上較為流行的瓦片緩存中間件GeoWebCache結(jié)構(gòu)的基礎(chǔ)上,針對(duì)其在服務(wù)擴(kuò)展性、歷史版本數(shù)據(jù)使用及服務(wù)通信協(xié)議等方面存在的局限,從底層進(jìn)行結(jié)構(gòu)優(yōu)化,設(shè)計(jì)并實(shí)現(xiàn)了動(dòng)態(tài)緩存中間件DCM,可提高現(xiàn)有瓦片動(dòng)態(tài)緩存服務(wù)的擴(kuò)展能力和服務(wù)水平。通過對(duì)比測(cè)試,證明了該緩存中間件DCM不僅可以提供高效的服務(wù)響應(yīng)能力,而且可根據(jù)地圖數(shù)據(jù)的現(xiàn)勢(shì)性提供最新的瓦片地圖服務(wù)。與此同時(shí),DCM也可根據(jù)客戶端和服務(wù)器端服務(wù)請(qǐng)求和提供方式,選擇最優(yōu)的服務(wù)處理及傳輸,動(dòng)態(tài)加載其他類型的瓦片服務(wù),做到瓦片地圖服務(wù)最大限度的高效提供。

圖4 WMTS與DCM平均響應(yīng)時(shí)間對(duì)比圖

本文提出的動(dòng)態(tài)緩存中間件DCM雖然能夠提供較好的地圖瓦片服務(wù),但其試驗(yàn)效果仍舊是在特定試驗(yàn)環(huán)境下得出的,在規(guī)?;瘧?yīng)用下的服務(wù)響應(yīng)能力仍有待進(jìn)一步的探索。此外,瓦片的空間索引、現(xiàn)勢(shì)數(shù)據(jù)的快速切片等也是制約瓦片地圖服務(wù)能力的重要因素,在今后的研究中,還需對(duì)這些因素進(jìn)行更深入的研究。

[1]周沛.智能交通系統(tǒng)中的瓦片地圖技術(shù)研究與應(yīng)用[D].上海:同濟(jì)大學(xué),2008.

[2]王曉東,劉慧平,喬瑜.利用Bing Maps地圖切片實(shí)現(xiàn)網(wǎng)絡(luò)地圖服務(wù)[J].國土資源遙感,2010(2):122-127.

[3]劉冰,謝軻,陳小樂,等.基于GIS的瓦片式地圖切圖算法的設(shè)計(jì)與實(shí)現(xiàn)[J].科技信息,2011(7):60-61.

[4]許虎,聶云峰,舒堅(jiān).基于中間件的瓦片地圖服務(wù)設(shè)計(jì)與實(shí)現(xiàn)[J].地球信息科學(xué)學(xué)報(bào),2010,12(4):562-567.

[5]聶云峰,劉海玲,許虎.GeoWebCache瓦片地圖服務(wù)中間件研究[J].測(cè)繪科學(xué),2011,36(6):207-209.

[6]國家測(cè)繪地理信息局.CH/Z 9011-2011地理信息公共服務(wù)平臺(tái)電子地圖數(shù)據(jù)規(guī)范[S].北京:測(cè)繪出版社,2011.

猜你喜歡
中間件瓦片服務(wù)器端
一種基于主題時(shí)空價(jià)值的服務(wù)器端瓦片緩存算法
慣性
RFID中間件技術(shù)及其應(yīng)用研究
電子制作(2018年14期)2018-08-21 01:38:10
基于VanConnect中間件的設(shè)計(jì)與開發(fā)
淺析異步通信層的架構(gòu)在ASP.NET 程序中的應(yīng)用
成功(2018年10期)2018-03-26 02:56:14
在Windows中安裝OpenVPN
中間件在高速公路領(lǐng)域的應(yīng)用
基于NoSQL數(shù)據(jù)庫的瓦片地圖服務(wù)
一種支持智能環(huán)境構(gòu)建的中間件
網(wǎng)頁防篡改中分布式文件同步復(fù)制系統(tǒng)
叙永县| 荆州市| 尚义县| 凤阳县| 莒南县| 建宁县| 德清县| 木里| 丁青县| 衡南县| 上杭县| 达州市| 通州区| 华安县| 西乡县| 唐海县| 漠河县| 沾化县| 北碚区| 桂东县| 东方市| 德昌县| 原阳县| 肇源县| 嘉定区| 盐池县| 商城县| 辛集市| 荔浦县| 集贤县| 荥经县| 正镶白旗| 民勤县| 无为县| 晴隆县| 阿城市| 托克托县| 琼结县| 恭城| 师宗县| 榆中县|