周京春,李 黎
(1.昆明市城市地下管線探測管理辦公室,云南昆明650011;2.武漢市勘測設計研究院,湖北武漢430022)
提高網絡GIS效率的途徑及其技術原理
周京春1,李 黎2
(1.昆明市城市地下管線探測管理辦公室,云南昆明650011;2.武漢市勘測設計研究院,湖北武漢430022)
阻礙網絡GIS性能的因素分為兩大方面:硬件環境和軟件環境。聚焦于軟件環境,從通用網絡GIS的三層體系架構上入手,分別在數據層、邏輯層和層間數據傳輸上描述了的一些可實施的優化途徑及其技術原理,以綜合應用來提高網絡GIS的效率。
網絡GIS;效率;優化途徑;技術原理

21世紀以來,隨著計算機技術、通信技術、網絡技術的迅猛發展,互聯網深刻地改變了地理空間數據信息獲取、傳輸、發布、共享、應用和可視化的過程和方式,地理信息系統與網絡相結合而成的網絡 GIS已成為GIS發展的主流。網絡GIS是指在Internet/Intranet網絡環境下,發布地理信息和服務,使用戶可以隨時隨地地獲得分布的空間數據和服務的一種技術,是Web技術與GIS技術相結合的產物。它基本包含了傳統GIS所具有的功能,越來越多的GIS應用架構在Web上,但是網絡GIS的性能效率問題卻一直困擾著人們,成為了網絡GIS快速發展的重要障礙。
阻礙網絡GIS性能的因素可以分為2個方面:硬件環境和軟件環境。眾所周知,提高網絡GIS系統的整體硬件配置和網絡帶寬是提高網絡GIS效率的一個有效途徑,所以在此不再贅述。本文主要聚焦在軟件環境上,從通用網絡GIS的三層體系架構(見圖1)上入手,分別論述在不同層次上所能實施的一些優化途徑和其技術原理,以綜合應用提高網絡GIS的執行效率。

圖1 通用網絡GIS的三層體系架構
GIS應用與常規事務處理有很大不同,突出表現在處理對象以圖形圖像為主,具有海量的數據和復雜的數據處理方式,因此在網絡GIS設計之初,就必須首先考慮數據層的優化,這主要包括數據庫的性能優化和數據組織上的優化。
1.1 數據庫性能優化
GIS技術的瓶頸之一就是如何解決海量空間數據管理的問題,充分利用支持空間數據的大型商業數據庫中內置的對空間數據的操作和分析功能,是有效解決管理問題和提高網絡GIS效率的一種基本途徑。以Oracle數據庫為例,可以在數據庫中實施下面的優化手段:
1)根據未來的數據量預期及性能考慮,磁盤陣列可以考慮采用 Raid0+1方式,雖然浪費了一些存儲空間,但同時實現了條帶化和鏡像的數據管理能力,具有良好的讀寫性能,同時能夠保護數據;
2)建議使用 64位的操作系統和數據庫,充分利用服務器的內存資源;配置好數據庫的初始化參數,以減少I/O操作、減少SQL語句的重解析、加快統計分析的速度等;
3)將網絡GIS系統所用的空間數據文件與其他文件(如歸檔文件、日志文件等)分別存儲;將表按功能分別組織在不同表空間中,每個表空間應由多個大小相同的數據文件組成。這樣可以分散數據訪問的I/O競爭,提高性能;
4)區分大型表、頻繁訪問表,大型表可考慮分區管理,頻繁訪問表應與不頻繁訪問表分開存儲;
5)使用空間索引加速空間數據的查詢、統計、分析速度,可根據不同空間索引的特點、數據使用的特點混合應用,例如相對靜態的數據對象用R-Tree索引、動態數據對象用Q-Tree索引等,并認真考慮空間索引需設置的層次數;
6)根據GIS功能的特點,分析考慮使用SQL存儲過程代替前端應用程序,并有效地使用數據庫自帶的功能包(Package)和函數(Function),以降低網絡上的數據傳輸壓力和延遲,實現數據庫的代碼共享,減少硬解析。
1.2 數據組織的優化
所采用的網絡GIS軟件平臺、行業應用、業務需求等對地理空間信息的要求不同,數據組織的方式和優化手段也將各不相同,這里僅介紹一些通用的提高網絡GIS效率的優化途徑及其技術原理。
1.2.1 分布式數據處理
分布式數據處理就是將系統數據根據數據對象模型、數據格式、精細程度、時相變化、區域范圍等劃分策略,分別部署在網絡中的不同計算機上,以充分利用整個網絡上的軟硬件資源,提高系統的并行處理能力,分解網絡數據傳輸負荷,從而達到提高系統效率的一種技術方法。這種方法有時也被稱為數據集群存儲,適用于具有大型GIS海量數據的情況。
采用這種優化途徑的關鍵是建立基于空間元數據的分布式結構,實現元數據的共享管理,這對于分布式同質數據(即具有相同的數據模型和數據結構)的自動獲取是非常有效的,但對于分布式異質數據,還需在上面的基礎上進行異質數據庫向同質數據庫轉化,或數據庫一體化,實現聯邦數據庫(FDBS)管理[1],目前實現這些模式還存在一些技術問題。
1.2.2 數據分層分級管理
一種簡單的數據分層分級管理機制是通常所說的圖層或特征對象(Features)管理,即根據GIS系統的應用場景,將GIS數據按照業務需求劃分為多個不同的圖層或特征對象,并根據人的視覺特點賦予不同的顯示界限,然后利用客戶端的屏幕視野大小按需加載數據,控制網絡上傳輸的數據量,降低網絡負荷,提高網絡GIS效率。
另一種高級的數據分層分級管理稱之為細節層次模型(LevelsofDetail,簡稱LoD),LoD技術是一種有效的圖形生成加速方法,是指在不影響畫面視覺效果的條件下,通過逐次簡化景物的表面細節來減少場景的幾何復雜性,從而提高繪制算法的速度。此技術通常對每一原始幾何物體建立幾個不同逼近精度的幾何模型,與原模型相比,每個模型均保留了一定層次的細節,在繪制時,根據不同的標準選擇適當的層次模型來表示物體。通過這種技術,為同一地區或地物構建不同詳細程度的矢量存儲模型,勢必會大大提高網絡GIS的效率。
1.2.3 建立柵格數據金字塔
在網絡GIS中,柵格數據如遙感影像、圖片、視頻圖像等,其加載速度往往是最令人不可忍受的。為了提高效率,就必須要建立柵格數據的金字塔。金字塔是指在同一空間參照下,根據用戶需要建立分辨率由粗到精、數據量由小到大的多層數據結構,用來存儲和顯示柵格數據。由于金字塔的建立本質上是采用低通濾波,是一種有損壓縮方式,所以雖然柵格數據在網絡上傳輸的速度取決于金字塔的層數,但并不是層數越多越好。層數越多,視覺效果越差,所占用的存儲空間也越大,今后的更新速度也越慢。
網絡GIS的邏輯層包含了Web服務器和應用服務器,本節將分別從這2個層次入手介紹一些提高網絡GIS效率的主要優化途徑及其技術原理。
2.1 Web服務器優化
Web服務器負責接收客戶端的GIS服務請求,傳遞給應用服務器,并把結果返回給客戶端。因此,對Web服務器的優化必須要考慮其框架,例如J2EE、.Net框架等內置的優化特性、所采用的程序語言中的一些性能優化技巧,降低Web服務器的負載,使得設計和實現的網絡GIS系統性能更優、效率更高。
這里以ASP.Net為例簡要地說明一下上述的優化方法:
1)要合理地使用ASP.Net服務器端的控件。ASP. Net服務器端控件在特性和提高編程效率方面,要優于HTML控件,但是以犧牲服務器端的資源為代價的,并且運行速度沒有客戶端HTML快,不能為了全面轉換到ASP.Net,而使用ASP.Net代替全部的HTML控件,要盡量選擇HTML控件,能在客戶端實現的功能就在客戶端實現,減少服務器的壓力;
2)如果頁面相對比較簡單,并且不需要在多個頁面之間保留狀態,則應關閉頁面的會話狀態,減少占用服務器資源;
3)編程時應當總是指定變量的類型,采用早期聯編,以縮短內務操作時間和減少占用的資源;
4)優化程序中使用的SQL查詢,盡量使用綁定變量和文中1.1所提及的SQL存儲過程;
5)充分利用ASP.Net內置的緩存機制,緩存ASP. Net頁面,降低Web服務器的負載,并通過更高效地提供被緩存的文件而改善ASP.Net的性能,從而優化Web服務器的性能。
2.2 應用服務器優化
應用服務器端的性能優化對于提高網絡GIS效率來說,是相對比較重要的,常用的優化途徑及其技術原理描述如下。
2.2.1 應用服務器集群
應用服務器集群(見圖2)是使用一個或多個集群服務器將后臺多個GIS應用服務器的計算資源進行整合、虛擬化,統一對客戶端提供訪問,使網絡GIS應用提供的GIS服務能力具有負載均衡和容錯的集群特征,并在后臺承擔空間分析計算的GIS應用服務器之間實現任務的均衡分配。

圖2 應用服務器集群(圖片來自SuperMap公司)
應用服務器集群式服務可以大大提高空間數據的存取速率。一個或多個GIS應用服務器可以動態注入或卸載出服務集群,以適應網絡的發展和海量空間數據存儲的動態增長,也可避免GIS應用服務器的單點失效而引起的網絡GIS應用的不可用。
2.2.2 負載均衡技術
負載均衡是采用先進的多層交換技術,通過對服務器的性能和運行狀況的實時監測,根據不同服務器的狀況,將來訪的數據流量以最經濟、最高效的方式分配到合適的服務器上,達到最佳的服務器負載平衡效果。
負載均衡包含兩方面的含義:首先,針對Web站點訪問而言,它把大量的并發訪問或數據流量分擔到多臺節點設備上分別處理,減少用戶等待響應的時間;其次,針對科學計算或高性能計算的分布式系統而言,它把單個重負載的運算分擔到多臺節點設備上做并行處理,每個節點設備處理結束后,將結果匯總,再返回給用戶,使得信息系統處理能力可以得到大幅提升[2]。負載均衡在現有的網絡結構上,可以解決網絡擁塞問題,就近提供服務,實現地理位置無關性;為用戶提供更好的訪問質量;提高服務器響應速度;提高服務器及其他資源的利用效率;避免網絡關鍵部位出現單點失效。負載均衡可以通過多種軟、硬件結構實現,是提高網絡GIS效率的一種廉價而有效的途徑。上面所述的應用服務器集群就也實現負載均衡的一個例子。
2.2.3 緩存技術
根據硬件的性能和負荷情況,緩存技術可以實施在服務器端,也可以實施在客戶端,也可以根據需要實施在服務器加客戶端。緩存技術的原理就是將經常訪問的數據瓦片化分割(Tiling),存儲在服務器端或客戶端,當數據被再次請求時,可以直接調出使用,而無需再次計算或傳輸,減少了數據I/O的次數和計算生成的時間,從而提高了效率。
圖3 展示了Intergraph公司的動態顯示緩存技術(Dynamic Display Cache,簡稱DDC)靈活配置緩存的3種方式。

圖3 3種DDC部署方式,左為部署在服務器端,中為服務器與客戶端雙方部署,右為客戶端集中部署(圖片來自Intergraph公司)
優化邏輯層到表現層數據傳輸的本質是盡量減少網絡上傳輸的數據量,以縮短傳輸時間達到提高效率的目的。主要采取下列優化途徑:
1)空間數據壓縮技術:數據壓縮,通俗地說,就是用最少的數碼來表示信號[2]。它是解決傳輸效率的一種主要技術手段,分為無損壓縮和有損壓縮兩大類。對空間數據而言,空間矢量數據的壓縮、DEM數據需要采用無損壓縮,如WinZip、java.util.zip等打包壓縮;多媒體數據、柵格影像數據、三維模型、紋理數據等需要在一定參數控制下采用有損壓縮,如預測編碼、變換編碼、統計編碼、分形壓縮、小波變換等壓縮方法。
2)流式漸進傳輸技術:流式漸進傳輸的原理是發送端對原始模型進行編碼處理,建立模型的基礎模型結構和流文件結構。在網絡傳輸時,首先傳輸簡單的基礎模型,接收端根據基礎模型進行顯示,緊接著依次傳輸流文件中的節點數據,接收端根據接收節點數據進行解碼處理,并加入到基礎模型中,使基礎模型逐步完善,最終達到原始模型效果,其過程如圖4所示。常用的空間數據流式化編碼方法有:最小QoS編碼、自適應編碼、多分辨率編碼、可伸縮性編碼等。

圖4 流式漸進傳輸技術
上面從數據層、邏輯層和數據傳輸 3個大的層次上介紹了一些通用的提高網絡GIS效率的途徑及其技術原理。設計和實施一個網絡GIS系統時,可以綜合地或有選擇地使用上述的全部或某些優化技術,但是無論在使用哪一種優化技術之前,認真地評估分析系統的應用場景、數據狀況、功能需求、規模大小、選擇的GIS平臺軟件、投資成本等才是最重要的,這是優于技術的前提條件。
[1] 馬榮華,黃杏元.大型GIS海量數據分布式組織與管理[J].南京大學學報:自然科學版,2003(6):836-842
[2] 龔健雅,杜道生,李清泉,等.當代地理信息技術[M].北京:科學出版社,2004
[3] 王小霞,張奇.地形模型壓縮與流式漸進傳輸[J].測繪與空間地理信息,2006(2):87-89
[4] 曾麥脈,王乘.基于ArcServer的WebGIS性能分析[J].計算機工程,2008,34(17):279-280
[5] 韓雙旺,王心源,李德錄.基于ASP.NET的WebGIS性能的優化[J].測繪工程,2006(3):26-29
[6] 韓雙旺,王心源,李德錄.利用緩存優化基于ASP.NET的WebGIS性能[J].微計算機信息:測控自動化版,2006,22(22):152-155
[7] 耿則勛,李勤爽.影像匹配中金字塔數據結構比較與快速算法[J].信息工程大學測繪學院學報,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
周京春,博士,高級工程師,研究方向為空間信息服務與地下管線探測。