周京春,李 黎
(1.昆明市城市地下管線探測管理辦公室,云南昆明650011;2.武漢市勘測設(shè)計(jì)研究院,湖北武漢430022)
提高網(wǎng)絡(luò)GIS效率的途徑及其技術(shù)原理
周京春1,李 黎2
(1.昆明市城市地下管線探測管理辦公室,云南昆明650011;2.武漢市勘測設(shè)計(jì)研究院,湖北武漢430022)
阻礙網(wǎng)絡(luò)GIS性能的因素分為兩大方面:硬件環(huán)境和軟件環(huán)境。聚焦于軟件環(huán)境,從通用網(wǎng)絡(luò)GIS的三層體系架構(gòu)上入手,分別在數(shù)據(jù)層、邏輯層和層間數(shù)據(jù)傳輸上描述了的一些可實(shí)施的優(yōu)化途徑及其技術(shù)原理,以綜合應(yīng)用來提高網(wǎng)絡(luò)GIS的效率。
網(wǎng)絡(luò)GIS;效率;優(yōu)化途徑;技術(shù)原理
21世紀(jì)以來,隨著計(jì)算機(jī)技術(shù)、通信技術(shù)、網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展,互聯(lián)網(wǎng)深刻地改變了地理空間數(shù)據(jù)信息獲取、傳輸、發(fā)布、共享、應(yīng)用和可視化的過程和方式,地理信息系統(tǒng)與網(wǎng)絡(luò)相結(jié)合而成的網(wǎng)絡(luò) GIS已成為GIS發(fā)展的主流。網(wǎng)絡(luò)GIS是指在Internet/Intranet網(wǎng)絡(luò)環(huán)境下,發(fā)布地理信息和服務(wù),使用戶可以隨時(shí)隨地地獲得分布的空間數(shù)據(jù)和服務(wù)的一種技術(shù),是Web技術(shù)與GIS技術(shù)相結(jié)合的產(chǎn)物。它基本包含了傳統(tǒng)GIS所具有的功能,越來越多的GIS應(yīng)用架構(gòu)在Web上,但是網(wǎng)絡(luò)GIS的性能效率問題卻一直困擾著人們,成為了網(wǎng)絡(luò)GIS快速發(fā)展的重要障礙。
阻礙網(wǎng)絡(luò)GIS性能的因素可以分為2個(gè)方面:硬件環(huán)境和軟件環(huán)境。眾所周知,提高網(wǎng)絡(luò)GIS系統(tǒng)的整體硬件配置和網(wǎng)絡(luò)帶寬是提高網(wǎng)絡(luò)GIS效率的一個(gè)有效途徑,所以在此不再贅述。本文主要聚焦在軟件環(huán)境上,從通用網(wǎng)絡(luò)GIS的三層體系架構(gòu)(見圖1)上入手,分別論述在不同層次上所能實(shí)施的一些優(yōu)化途徑和其技術(shù)原理,以綜合應(yīng)用提高網(wǎng)絡(luò)GIS的執(zhí)行效率。
圖1 通用網(wǎng)絡(luò)GIS的三層體系架構(gòu)
GIS應(yīng)用與常規(guī)事務(wù)處理有很大不同,突出表現(xiàn)在處理對象以圖形圖像為主,具有海量的數(shù)據(jù)和復(fù)雜的數(shù)據(jù)處理方式,因此在網(wǎng)絡(luò)GIS設(shè)計(jì)之初,就必須首先考慮數(shù)據(jù)層的優(yōu)化,這主要包括數(shù)據(jù)庫的性能優(yōu)化和數(shù)據(jù)組織上的優(yōu)化。
1.1 數(shù)據(jù)庫性能優(yōu)化
GIS技術(shù)的瓶頸之一就是如何解決海量空間數(shù)據(jù)管理的問題,充分利用支持空間數(shù)據(jù)的大型商業(yè)數(shù)據(jù)庫中內(nèi)置的對空間數(shù)據(jù)的操作和分析功能,是有效解決管理問題和提高網(wǎng)絡(luò)GIS效率的一種基本途徑。以O(shè)racle數(shù)據(jù)庫為例,可以在數(shù)據(jù)庫中實(shí)施下面的優(yōu)化手段:
1)根據(jù)未來的數(shù)據(jù)量預(yù)期及性能考慮,磁盤陣列可以考慮采用 Raid0+1方式,雖然浪費(fèi)了一些存儲(chǔ)空間,但同時(shí)實(shí)現(xiàn)了條帶化和鏡像的數(shù)據(jù)管理能力,具有良好的讀寫性能,同時(shí)能夠保護(hù)數(shù)據(jù);
2)建議使用 64位的操作系統(tǒng)和數(shù)據(jù)庫,充分利用服務(wù)器的內(nèi)存資源;配置好數(shù)據(jù)庫的初始化參數(shù),以減少I/O操作、減少SQL語句的重解析、加快統(tǒng)計(jì)分析的速度等;
3)將網(wǎng)絡(luò)GIS系統(tǒng)所用的空間數(shù)據(jù)文件與其他文件(如歸檔文件、日志文件等)分別存儲(chǔ);將表按功能分別組織在不同表空間中,每個(gè)表空間應(yīng)由多個(gè)大小相同的數(shù)據(jù)文件組成。這樣可以分散數(shù)據(jù)訪問的I/O競爭,提高性能;
4)區(qū)分大型表、頻繁訪問表,大型表可考慮分區(qū)管理,頻繁訪問表應(yīng)與不頻繁訪問表分開存儲(chǔ);
5)使用空間索引加速空間數(shù)據(jù)的查詢、統(tǒng)計(jì)、分析速度,可根據(jù)不同空間索引的特點(diǎn)、數(shù)據(jù)使用的特點(diǎn)混合應(yīng)用,例如相對靜態(tài)的數(shù)據(jù)對象用R-Tree索引、動(dòng)態(tài)數(shù)據(jù)對象用Q-Tree索引等,并認(rèn)真考慮空間索引需設(shè)置的層次數(shù);
6)根據(jù)GIS功能的特點(diǎn),分析考慮使用SQL存儲(chǔ)過程代替前端應(yīng)用程序,并有效地使用數(shù)據(jù)庫自帶的功能包(Package)和函數(shù)(Function),以降低網(wǎng)絡(luò)上的數(shù)據(jù)傳輸壓力和延遲,實(shí)現(xiàn)數(shù)據(jù)庫的代碼共享,減少硬解析。
1.2 數(shù)據(jù)組織的優(yōu)化
所采用的網(wǎng)絡(luò)GIS軟件平臺(tái)、行業(yè)應(yīng)用、業(yè)務(wù)需求等對地理空間信息的要求不同,數(shù)據(jù)組織的方式和優(yōu)化手段也將各不相同,這里僅介紹一些通用的提高網(wǎng)絡(luò)GIS效率的優(yōu)化途徑及其技術(shù)原理。
1.2.1 分布式數(shù)據(jù)處理
分布式數(shù)據(jù)處理就是將系統(tǒng)數(shù)據(jù)根據(jù)數(shù)據(jù)對象模型、數(shù)據(jù)格式、精細(xì)程度、時(shí)相變化、區(qū)域范圍等劃分策略,分別部署在網(wǎng)絡(luò)中的不同計(jì)算機(jī)上,以充分利用整個(gè)網(wǎng)絡(luò)上的軟硬件資源,提高系統(tǒng)的并行處理能力,分解網(wǎng)絡(luò)數(shù)據(jù)傳輸負(fù)荷,從而達(dá)到提高系統(tǒng)效率的一種技術(shù)方法。這種方法有時(shí)也被稱為數(shù)據(jù)集群存儲(chǔ),適用于具有大型GIS海量數(shù)據(jù)的情況。
采用這種優(yōu)化途徑的關(guān)鍵是建立基于空間元數(shù)據(jù)的分布式結(jié)構(gòu),實(shí)現(xiàn)元數(shù)據(jù)的共享管理,這對于分布式同質(zhì)數(shù)據(jù)(即具有相同的數(shù)據(jù)模型和數(shù)據(jù)結(jié)構(gòu))的自動(dòng)獲取是非常有效的,但對于分布式異質(zhì)數(shù)據(jù),還需在上面的基礎(chǔ)上進(jìn)行異質(zhì)數(shù)據(jù)庫向同質(zhì)數(shù)據(jù)庫轉(zhuǎn)化,或數(shù)據(jù)庫一體化,實(shí)現(xiàn)聯(lián)邦數(shù)據(jù)庫(FDBS)管理[1],目前實(shí)現(xiàn)這些模式還存在一些技術(shù)問題。
1.2.2 數(shù)據(jù)分層分級管理
一種簡單的數(shù)據(jù)分層分級管理機(jī)制是通常所說的圖層或特征對象(Features)管理,即根據(jù)GIS系統(tǒng)的應(yīng)用場景,將GIS數(shù)據(jù)按照業(yè)務(wù)需求劃分為多個(gè)不同的圖層或特征對象,并根據(jù)人的視覺特點(diǎn)賦予不同的顯示界限,然后利用客戶端的屏幕視野大小按需加載數(shù)據(jù),控制網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)量,降低網(wǎng)絡(luò)負(fù)荷,提高網(wǎng)絡(luò)GIS效率。
另一種高級的數(shù)據(jù)分層分級管理稱之為細(xì)節(jié)層次模型(LevelsofDetail,簡稱LoD),LoD技術(shù)是一種有效的圖形生成加速方法,是指在不影響畫面視覺效果的條件下,通過逐次簡化景物的表面細(xì)節(jié)來減少場景的幾何復(fù)雜性,從而提高繪制算法的速度。此技術(shù)通常對每一原始幾何物體建立幾個(gè)不同逼近精度的幾何模型,與原模型相比,每個(gè)模型均保留了一定層次的細(xì)節(jié),在繪制時(shí),根據(jù)不同的標(biāo)準(zhǔn)選擇適當(dāng)?shù)膶哟文P蛠肀硎疚矬w。通過這種技術(shù),為同一地區(qū)或地物構(gòu)建不同詳細(xì)程度的矢量存儲(chǔ)模型,勢必會(huì)大大提高網(wǎng)絡(luò)GIS的效率。
1.2.3 建立柵格數(shù)據(jù)金字塔
在網(wǎng)絡(luò)GIS中,柵格數(shù)據(jù)如遙感影像、圖片、視頻圖像等,其加載速度往往是最令人不可忍受的。為了提高效率,就必須要建立柵格數(shù)據(jù)的金字塔。金字塔是指在同一空間參照下,根據(jù)用戶需要建立分辨率由粗到精、數(shù)據(jù)量由小到大的多層數(shù)據(jù)結(jié)構(gòu),用來存儲(chǔ)和顯示柵格數(shù)據(jù)。由于金字塔的建立本質(zhì)上是采用低通濾波,是一種有損壓縮方式,所以雖然柵格數(shù)據(jù)在網(wǎng)絡(luò)上傳輸?shù)乃俣热Q于金字塔的層數(shù),但并不是層數(shù)越多越好。層數(shù)越多,視覺效果越差,所占用的存儲(chǔ)空間也越大,今后的更新速度也越慢。
網(wǎng)絡(luò)GIS的邏輯層包含了Web服務(wù)器和應(yīng)用服務(wù)器,本節(jié)將分別從這2個(gè)層次入手介紹一些提高網(wǎng)絡(luò)GIS效率的主要優(yōu)化途徑及其技術(shù)原理。
2.1 Web服務(wù)器優(yōu)化
Web服務(wù)器負(fù)責(zé)接收客戶端的GIS服務(wù)請求,傳遞給應(yīng)用服務(wù)器,并把結(jié)果返回給客戶端。因此,對Web服務(wù)器的優(yōu)化必須要考慮其框架,例如J2EE、.Net框架等內(nèi)置的優(yōu)化特性、所采用的程序語言中的一些性能優(yōu)化技巧,降低Web服務(wù)器的負(fù)載,使得設(shè)計(jì)和實(shí)現(xiàn)的網(wǎng)絡(luò)GIS系統(tǒng)性能更優(yōu)、效率更高。
這里以ASP.Net為例簡要地說明一下上述的優(yōu)化方法:
1)要合理地使用ASP.Net服務(wù)器端的控件。ASP. Net服務(wù)器端控件在特性和提高編程效率方面,要優(yōu)于HTML控件,但是以犧牲服務(wù)器端的資源為代價(jià)的,并且運(yùn)行速度沒有客戶端HTML快,不能為了全面轉(zhuǎn)換到ASP.Net,而使用ASP.Net代替全部的HTML控件,要盡量選擇HTML控件,能在客戶端實(shí)現(xiàn)的功能就在客戶端實(shí)現(xiàn),減少服務(wù)器的壓力;
2)如果頁面相對比較簡單,并且不需要在多個(gè)頁面之間保留狀態(tài),則應(yīng)關(guān)閉頁面的會(huì)話狀態(tài),減少占用服務(wù)器資源;
3)編程時(shí)應(yīng)當(dāng)總是指定變量的類型,采用早期聯(lián)編,以縮短內(nèi)務(wù)操作時(shí)間和減少占用的資源;
4)優(yōu)化程序中使用的SQL查詢,盡量使用綁定變量和文中1.1所提及的SQL存儲(chǔ)過程;
5)充分利用ASP.Net內(nèi)置的緩存機(jī)制,緩存ASP. Net頁面,降低Web服務(wù)器的負(fù)載,并通過更高效地提供被緩存的文件而改善ASP.Net的性能,從而優(yōu)化Web服務(wù)器的性能。
2.2 應(yīng)用服務(wù)器優(yōu)化
應(yīng)用服務(wù)器端的性能優(yōu)化對于提高網(wǎng)絡(luò)GIS效率來說,是相對比較重要的,常用的優(yōu)化途徑及其技術(shù)原理描述如下。
2.2.1 應(yīng)用服務(wù)器集群
應(yīng)用服務(wù)器集群(見圖2)是使用一個(gè)或多個(gè)集群服務(wù)器將后臺(tái)多個(gè)GIS應(yīng)用服務(wù)器的計(jì)算資源進(jìn)行整合、虛擬化,統(tǒng)一對客戶端提供訪問,使網(wǎng)絡(luò)GIS應(yīng)用提供的GIS服務(wù)能力具有負(fù)載均衡和容錯(cuò)的集群特征,并在后臺(tái)承擔(dān)空間分析計(jì)算的GIS應(yīng)用服務(wù)器之間實(shí)現(xiàn)任務(wù)的均衡分配。
圖2 應(yīng)用服務(wù)器集群(圖片來自SuperMap公司)
應(yīng)用服務(wù)器集群式服務(wù)可以大大提高空間數(shù)據(jù)的存取速率。一個(gè)或多個(gè)GIS應(yīng)用服務(wù)器可以動(dòng)態(tài)注入或卸載出服務(wù)集群,以適應(yīng)網(wǎng)絡(luò)的發(fā)展和海量空間數(shù)據(jù)存儲(chǔ)的動(dòng)態(tài)增長,也可避免GIS應(yīng)用服務(wù)器的單點(diǎn)失效而引起的網(wǎng)絡(luò)GIS應(yīng)用的不可用。
2.2.2 負(fù)載均衡技術(shù)
負(fù)載均衡是采用先進(jìn)的多層交換技術(shù),通過對服務(wù)器的性能和運(yùn)行狀況的實(shí)時(shí)監(jiān)測,根據(jù)不同服務(wù)器的狀況,將來訪的數(shù)據(jù)流量以最經(jīng)濟(jì)、最高效的方式分配到合適的服務(wù)器上,達(dá)到最佳的服務(wù)器負(fù)載平衡效果。
負(fù)載均衡包含兩方面的含義:首先,針對Web站點(diǎn)訪問而言,它把大量的并發(fā)訪問或數(shù)據(jù)流量分擔(dān)到多臺(tái)節(jié)點(diǎn)設(shè)備上分別處理,減少用戶等待響應(yīng)的時(shí)間;其次,針對科學(xué)計(jì)算或高性能計(jì)算的分布式系統(tǒng)而言,它把單個(gè)重負(fù)載的運(yùn)算分擔(dān)到多臺(tái)節(jié)點(diǎn)設(shè)備上做并行處理,每個(gè)節(jié)點(diǎn)設(shè)備處理結(jié)束后,將結(jié)果匯總,再返回給用戶,使得信息系統(tǒng)處理能力可以得到大幅提升[2]。負(fù)載均衡在現(xiàn)有的網(wǎng)絡(luò)結(jié)構(gòu)上,可以解決網(wǎng)絡(luò)擁塞問題,就近提供服務(wù),實(shí)現(xiàn)地理位置無關(guān)性;為用戶提供更好的訪問質(zhì)量;提高服務(wù)器響應(yīng)速度;提高服務(wù)器及其他資源的利用效率;避免網(wǎng)絡(luò)關(guān)鍵部位出現(xiàn)單點(diǎn)失效。負(fù)載均衡可以通過多種軟、硬件結(jié)構(gòu)實(shí)現(xiàn),是提高網(wǎng)絡(luò)GIS效率的一種廉價(jià)而有效的途徑。上面所述的應(yīng)用服務(wù)器集群就也實(shí)現(xiàn)負(fù)載均衡的一個(gè)例子。
2.2.3 緩存技術(shù)
根據(jù)硬件的性能和負(fù)荷情況,緩存技術(shù)可以實(shí)施在服務(wù)器端,也可以實(shí)施在客戶端,也可以根據(jù)需要實(shí)施在服務(wù)器加客戶端。緩存技術(shù)的原理就是將經(jīng)常訪問的數(shù)據(jù)瓦片化分割(Tiling),存儲(chǔ)在服務(wù)器端或客戶端,當(dāng)數(shù)據(jù)被再次請求時(shí),可以直接調(diào)出使用,而無需再次計(jì)算或傳輸,減少了數(shù)據(jù)I/O的次數(shù)和計(jì)算生成的時(shí)間,從而提高了效率。
圖3 展示了Intergraph公司的動(dòng)態(tài)顯示緩存技術(shù)(Dynamic Display Cache,簡稱DDC)靈活配置緩存的3種方式。
圖3 3種DDC部署方式,左為部署在服務(wù)器端,中為服務(wù)器與客戶端雙方部署,右為客戶端集中部署(圖片來自Intergraph公司)
優(yōu)化邏輯層到表現(xiàn)層數(shù)據(jù)傳輸?shù)谋举|(zhì)是盡量減少網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)量,以縮短傳輸時(shí)間達(dá)到提高效率的目的。主要采取下列優(yōu)化途徑:
1)空間數(shù)據(jù)壓縮技術(shù):數(shù)據(jù)壓縮,通俗地說,就是用最少的數(shù)碼來表示信號[2]。它是解決傳輸效率的一種主要技術(shù)手段,分為無損壓縮和有損壓縮兩大類。對空間數(shù)據(jù)而言,空間矢量數(shù)據(jù)的壓縮、DEM數(shù)據(jù)需要采用無損壓縮,如WinZip、java.util.zip等打包壓縮;多媒體數(shù)據(jù)、柵格影像數(shù)據(jù)、三維模型、紋理數(shù)據(jù)等需要在一定參數(shù)控制下采用有損壓縮,如預(yù)測編碼、變換編碼、統(tǒng)計(jì)編碼、分形壓縮、小波變換等壓縮方法。
2)流式漸進(jìn)傳輸技術(shù):流式漸進(jìn)傳輸?shù)脑硎前l(fā)送端對原始模型進(jìn)行編碼處理,建立模型的基礎(chǔ)模型結(jié)構(gòu)和流文件結(jié)構(gòu)。在網(wǎng)絡(luò)傳輸時(shí),首先傳輸簡單的基礎(chǔ)模型,接收端根據(jù)基礎(chǔ)模型進(jìn)行顯示,緊接著依次傳輸流文件中的節(jié)點(diǎn)數(shù)據(jù),接收端根據(jù)接收節(jié)點(diǎn)數(shù)據(jù)進(jìn)行解碼處理,并加入到基礎(chǔ)模型中,使基礎(chǔ)模型逐步完善,最終達(dá)到原始模型效果,其過程如圖4所示。常用的空間數(shù)據(jù)流式化編碼方法有:最小QoS編碼、自適應(yīng)編碼、多分辨率編碼、可伸縮性編碼等。
圖4 流式漸進(jìn)傳輸技術(shù)
上面從數(shù)據(jù)層、邏輯層和數(shù)據(jù)傳輸 3個(gè)大的層次上介紹了一些通用的提高網(wǎng)絡(luò)GIS效率的途徑及其技術(shù)原理。設(shè)計(jì)和實(shí)施一個(gè)網(wǎng)絡(luò)GIS系統(tǒng)時(shí),可以綜合地或有選擇地使用上述的全部或某些優(yōu)化技術(shù),但是無論在使用哪一種優(yōu)化技術(shù)之前,認(rèn)真地評估分析系統(tǒng)的應(yīng)用場景、數(shù)據(jù)狀況、功能需求、規(guī)模大小、選擇的GIS平臺(tái)軟件、投資成本等才是最重要的,這是優(yōu)于技術(shù)的前提條件。
[1] 馬榮華,黃杏元.大型GIS海量數(shù)據(jù)分布式組織與管理[J].南京大學(xué)學(xué)報(bào):自然科學(xué)版,2003(6):836-842
[2] 龔健雅,杜道生,李清泉,等.當(dāng)代地理信息技術(shù)[M].北京:科學(xué)出版社,2004
[3] 王小霞,張奇.地形模型壓縮與流式漸進(jìn)傳輸[J].測繪與空間地理信息,2006(2):87-89
[4] 曾麥脈,王乘.基于ArcServer的WebGIS性能分析[J].計(jì)算機(jī)工程,2008,34(17):279-280
[5] 韓雙旺,王心源,李德錄.基于ASP.NET的WebGIS性能的優(yōu)化[J].測繪工程,2006(3):26-29
[6] 韓雙旺,王心源,李德錄.利用緩存優(yōu)化基于ASP.NET的WebGIS性能[J].微計(jì)算機(jī)信息:測控自動(dòng)化版,2006,22(22):152-155
[7] 耿則勛,李勤爽.影像匹配中金字塔數(shù)據(jù)結(jié)構(gòu)比較與快速算法[J].信息工程大學(xué)測繪學(xué)院學(xué)報(bào),2000,17(1):25-27
Approaches and Principles to Improve the Efficiency of WebGIS
by ZHOU Jingchun
Obstacles to efficiency of WebGIS are classified as hardware environment and software environment.The article focused on the software environment and based on the three layers of GIS construction,point out some available optimizing approaches applied on the data layer,logical layer and transport layer and described respectively technical principles of these approaches.These approaches can be used assembly to improve the efficiency of WebGIS applications.
WebGIS,efficiency,optimizing approaches,technical principles
2011-05-06
P208
B
1672-4623(2011)06-0021-03
周京春,博士,高級工程師,研究方向?yàn)榭臻g信息服務(wù)與地下管線探測。