楊 毅
(四川護理職業學院網絡中心,四川成都610100)
過去10年間,地理信息科學在數據存檔和發布方面取得了多項進展。最近的研究焦點是基于互聯網、萬維網和專用因特網開發GIS系統功能,又稱為WebGIS(基于網絡的地理信息系統)。有了Web-GIS,世界范圍內的用戶均可以訪問分布式地理信息。互聯網用戶利用瀏覽器,不需購買專用GIS軟件就可以訪問GIS應用[1]。
開放地理空間聯盟(OGC)經深思熟慮后采用了 Web 處理服務(WPS)[2]。Google Earth[3]和 Py-WPS[3]均是前面提到的 WebGIS和 WPS系統的應用示例。在廣域網環境(WAN)下通過傳統的超文本傳輸協議、網絡文件系統協議和文件傳輸協議共享或訪問地理空間數據,往往會遇到等待時間較長、效果不佳等問題。本文主要對地理空間數據存儲和發布時存在的網絡延時問題展開研究,重點是針對大量Earth遠程遙感數據,基于網格技術開發的系統。提出了高性能遠程批量數據發布/存儲,并與當前網格驗證授權工具集成的安全數據管理[3]。GridJet新技術對當前互聯網架構和協議進行拓展,滿足了前述迫切需求,同時通過對當前協議進行版本控制,可以適應WWW/網格的未來需求。
無論是技術缺陷還是架構設計,現有的GIS系統均產生了一些根本性的性能問題。為了提供訪問進程,服務器需要對大量的空間數據進行組合。這些數據不止存儲在服務器上,還由于地理空間數據的分布式特性而經常在網絡上傳播[4]。大部分情況下,所需數據規模達到千兆字節甚至更高。存儲或者傳輸如此大量的數據,難度非常大。當然,同樣問題也存在于通過WWW瀏覽地圖時簡單的Web-GIS服務上。目前,從遠程資源獲取數據主要通過HTTP或者 FTP協議,效率低,安全性差。Friis-Christensen等人[5]對基于空間數據基礎設施面向分布式服務的地理信息處理的可行性進行了研究[5]。該文證明了使用分布式地理信息處理環境具有多項優勢(比如數據無需復制、可重用性)。Jagery等人[6]提出一種完整的Web服務注冊、發掘、開發和執行框架,以便為在線服務提供支持,該技術將地理信息處理看成一個流程,并使用流程工具通過網絡獲取分布式地理空間數據。
一般情況下,WebGIS和WPS使用HTTP協議傳輸數據和請求。與HTTP/FTP/NFS/GridFTP協議不同,本文GridJet協議支持數據流并行傳輸和單系統映象(SSI)。它可作為獨立的工具運行,或者與WebGIS/WPS技術集成。下面將對本文協議的技術細節進行詳細闡述[7]。
本文將展示PyWPS和Google Earth如何與所開發的GridJet協議通過界面連接,GridJet當前支持Linux,下步工作將把它拓展到Windows和MacOS X系統。
GridJet通過使用并行流,只以很小的內存消耗代價,就可取得非常高的傳輸速度。GridJet為應用程序在發送方和接收方間開啟了多個socket流。然后應用數據被分成多個段,段的數量等于流的數量。數據段通過不同的線程在socket流中并發傳輸,然后在接收方組裝[8]。最終數據傳遞給應用程序,似乎這些數據是通過一個socket傳輸的。下面同時顯示了為什么分段數據通過多個socket流傳輸可以獲得近似最優的帶寬性能。在該圖中,陰影部分表示socket的緩存大小,面積較大的空白矩形表示TCP管道容量(帶寬*時延)。通過一個socket流進行傳輸的應用程序無法充分利用TCP管道的容量。若緩存大小取其默認值64 KB,則容量利用率只有1%左右。如果應用程序使用一個socket流時的緩存大小最優,或者使用多個socket流,則可以填滿TCP管道。
網格應用程序不僅要求大量數據在廣域網上高效傳輸,還要求相應的安全和驗證服務,以提高數據的完整性和數據訪問控制效果。GridJet及以其為基礎的其他協議使用GIS公共密鑰基礎設施,以驗證WAN/網格成員的身份,提高為這些成員分配資源的安全性[9]。GridJet服務器請求從證書認證機構接收大量主機證書。GridJet(服務)也需在虛擬組織注冊輕量級目錄訪問協議(VO-LDAP)。另外,VO-LDAP根據LDAP數據庫生成GridJet服務器網格地圖,以便進行驗證和制圖。除了負責認證注冊外,VO-LDAP還為虛擬組織履行其他重要職責,比如服務搜索引擎和用戶授權[10]。
本節研究的目的是考察和測試基于GridJet的WebGIS/WPS原型系統,對其與標準的單流HTTP傳輸協議性能進行比較評估。選用PyWPS來實現一種基于GridJet的WPS系統,典型的地理數據處理操作包括:數據傳輸、發布/存儲和疊加分析。GridJet的應用不僅限于WPS系統,還可用于常見的GIS系統。于是,使用Google Earth做了一些試驗,一個客戶端通過GridJet協議將帶有directory/earth/map.tiff的遠程地圖服務器加載到本地tree/mnt/GridJet/,然后Google Earth客戶端可以實現“本地化”在線瀏覽。
以下真實測試可以證明基于GridJet的Web-GIS/WPS在歐亞網格網絡資源上的通信性能。歐亞網格項目由歐共體資助,涉及10多個歐洲和亞洲研究機構。
有5個歐亞網格城市加入測試:劍橋、倫敦、樸次茅斯、穆爾西亞和北京。每座城市使用安裝了GridJet客戶端網關的Linux/Globus設備作為客戶端來訪問,劍橋安裝了GridJet服務器網關的專用WPS或Web地圖服務器:Cranfield高性能計算設備(CCHPCF),CCHPCF設備通過劍橋EastNet結點,使用5-Gb/s SuperJANET中樞,以155-Mb/s速度與互聯網穩定連接,穆爾西亞、倫敦、北京和樸次茅斯的連接速度分別為 10 Mb/s、2 Mb/s、100 Mb/s、100 Mb/s。
為了給PyWPS和其他系統提供支持,GridJet設立于Globus庫的頂端,于是,引入附加層來抽象表示通信基礎設施[11]。為了定量描述各種開銷,使用不同的傳輸工具:(地理信息處理期間用于遠程數據傳輸和存儲的HTTP和GridJet協議),對CCHPCF WPS服務器和北京遠程數據中心間的在線地理信息處理服務數據傳輸時間(s)進行比較。在實驗時選擇地理空間數據傳輸、重疊分析和地圖發布/存儲,因為這3種操作在WPS危機和緊急情況處理中經常使用[12]。同時,用同樣方式,對使用 Google Earth/PyWPS遠程在線瀏覽地圖時的傳輸時間(s)進行了測試,地圖服務器在CCHPCF,客戶端在北京。在實驗中對每種協議運行3次。
我們做了大量性能測試來衡量基于GridJet的WebGIS/WPS在用戶響應時間提升方面的性能。選擇HTTP作為標準的傳輸協議。加速效果定義為HTTP協議的傳輸時間與基于GridJet協議的Google Earth/PyWPS傳輸時間之比。GridJet安全性已經經過驗證。
①基于GridJet的Google Earth:衡量了客戶端在有線廣域網環境下通過100 Mb/s鏈路在線瀏覽41.8 MB地圖的訪問時間。使用HTTP協議時,地圖傳輸和顯示時間是400 s,廣域網延時是539 s。當將GridJet服務器/客戶端網關(在瀏覽器地址欄選擇GridJet而不是HTTP或其他協議)添加到#tcp=16鏈路上時,同樣的41.8 MB地圖在線顯示只需73s,速度提升了 5.5 倍。當#tcp=64 時,41.8 MB地圖的瀏覽(傳輸)時間是52 s,響應時間提升了7.7倍(如表1所示)。

表1 劍橋-北京測試中的Google Earth性能
我們發現,當#tcp=1時GridJet的初始傳輸時間(448 s)大于HTTP(400 s)(沒有添加加速),當#tcp增加時傳輸時間差距將會下降。當#tcp大于4時,GridJet超越HTTP;當#tcp=128時,速度提升了7.8倍。GridJet功能的額外開銷是因為 GridJet在Globus庫之上的附加抽象層。
響應時間相對TCP流數量(#tcp)的提升情況。41.8 MB地圖通過往返時間(RTT)為539 ms的鏈接傳輸。從圖中可以看出,#tcp數量上升時,響應時間提升倍數也在上升。當有128個并行流時,最大提升倍數達到7.8倍。然而。當進一步提高#tcp數量時,GridJet將要花費大量的時間管理大量的TCP流,因此提升步伐放緩。
②基于GridJet的PyWPS:為了考察PyWPS通過GridJet在地理空間數據存儲和發布方面取得多大的性能提升,在劍橋和北京間展開測試。網絡主要參數與Google Earth測試相同,但是數據集做了變更,以進行更加復雜的地理數據處理。選擇3幅地圖:5.2 MB的shapefile文件,5.4 MB 的光斑圖像文件,5.6 MB的另一幅光斑圖像文件。
實驗內容包括3種操作:遠程地理空間數據變換、在線疊加分析和地圖發布/存儲。為了進行遠程地理空間數據轉換,通過GridJet來訪問和轉換遠程數據。對在線疊加分析,通過互聯網/網格向分析服務器發出請求,分析數據集來自遠程數據源。通過GridJet讀取遠程數據結點的分布式地理空間數據,本地運行疊加分析服務來對數據進行分析。人們經常需要將他們處理過的地理空間數據存儲在遠程設備上。可能原因包括:有限的使用權限,有限的本地存儲空間,或者是需要把數據傳輸給第3方。在測試中,疊加分析生成的一幅新地圖通過GridJet存儲到遠程數據服務器上。

表2 RTT變化時的PyWPS性能提升情況(S=提升倍數)/s
GridJet的設計目的就是為了處理遠程、跨域、單像數據訪問和傳輸任務。在數據變換測試中,選擇在有線廣域網環境下通過100 Mb/s鏈路在線轉換5.4 MB的地理空間數據(從向量變換為光柵格式)。當RTT=80 ms且#tcp=16時,性能相比于HTTP協議提升1.63倍。在疊加分析測試中,讀取遠程服務器上的3份異構空間數據文件,然后疊加到本地顯示器上。這3份數據文件分別是一份shapefile文件(失量格式),2份光斑圖像(光柵格式),每份文件均大于5 MB。當 RTT=320ms且#tcp=16時,性能提升2.3倍。在分發/存儲測試中,先前疊加分析生成的一幅新的疊加地圖存儲到原先相同的存儲了前面提到的3份異構空間數據文件的遠程數據器上。對4組數據進行了測試,RTT時間在40~320 ms范圍內,GridJet相對HTTP的性能提升了1.5~2.3倍。表2顯示了執行前述地理數據處理操作時,響應時間方面的性能提升。當有16路并行TCP流時,平均提升效果為2倍。
我們發現,基于 GridJet的 PyWPS和 Google Earth表現出不同的性能特點。Google Earth的性能提升了7.8倍,而PyWPS提升了2.3倍。這主要是因為:底層GridJet架構必須要高效地提高傳輸帶寬,以加快WebGIS/WPS I/O速率。這也是Web-GIS/WPS服務器比較青睞經過WAN/網格優化的架構的原因。直觀來講,當請求規模足以允許Grid-Jet通過多個TCP流高效傳輸時,開發的基于Grid-Jet的WebGIS/WPS,性能將更優。我們還對Web-GIS/WPS收集空間數據請求的能力進行了驗證。WebGIS/WPS用同步(阻礙請求的物理讀寫)和異步(無阻塞的預取預沖)兩種方式發出請求。其結果就是如下折衷:WebGIS/WPS應該提交盡可能多的異步請求以提升吞吐量,同時需確保每當提交請求時文件系統已經準備好處理同步請求。當前,GRASS為數據文件和緩沖區使用4 KB硬頁面大小(一個數據塊)。GridJet提供的傳輸帶寬更高,可以為規模較大的這些請求帶來許多益處。不幸的是,據通過Strace所做的觀察,它們所占比例不高。
提出了一種面向地理空間數據的訪問和存儲方案,該方案可提高GIS服務支持的結構性、連接性、移動性和質量。測試結果表明,與使用單流HTTP協議相比,使用底層 GridJet引擎可以顯著提高WebGIS/WPS的傳輸速率。基于GridJet的 Web-GIS/WPS創新性地將高速通信與異構有線/無線網絡結合在一起,提升了WPS和WebGIS的功能和可用性,可輕松訪問網格技術。基于GridJet的端到端服務支持技術解決了廣域網文件在WAN/網格上的“局域網化”共享難題,對GIS領域帶來了極大的便利。下一步研究工作的重點是在現有系統的基礎上,進一步考慮地理空間數據的傳輸可靠性和安全性問題。
[1] CROMLEY E K,MCLAFFERTY S.GIS and Public Health[J].Guilford Press,2012 ,3(24):35-39.
[2] HERRING J.OpenGIS Implementation Standard for Geographic Information-Simple Feature Access-Part 1:Common Architecture[J].OGC Document,2011,4(21):122-127.
[3] BODZIN A,ANASTASIO D,KULO V.Designing Google Earth Activities for Learning Earth and Environmental Science[J].Teaching Science and Investigating Environmental Issueswith GeospatialTechnology:Designing Effective Professional Development for Teachers.Dordrecht:Springer,2012,10(37):105-110.
[4] CEPICKY J,BECCHI L.Geospatial Processing Via Internet on Remote Servers-PyWPS[J].OSGeo Journal,2007,1(5):11-17.
[5] FRIIS-CHRISTENSEN A,BEMARD L,KANELLOPOULOS I,et al.Building Service Oriented Applications on Top of a Spatial Data Infrastructure–A Forest Fire Assessment Example[J].AGILE-Shaping the Future of Geographic Information Science in Europe,Visegrád,Hungary,2006,33(24):27-34.
[6] JAEGER E,ALTINTAS I,ZHANG J,et al.A Scientific Workflow Approach to Distributed Geospatial Data Processing using Web Services[C]∥SSDBM,2005,3(42):87-90.
[7] GADGIL H,CHOI J Y,ENGEL B,et al.Management of Data Streams for a Real Time Flood Simulation[J].Community Grids Lab Technical Report,2004,44(32):237-240.
[8] MILLINA G R,EKINA P,KITMITTO K.Proving Spatial Data Support and Access to Freely Available Satellite Imagery for the UK Academic Community:A Review of Data Acquisition and Data Delivery Infrastructure[J].In Proc.RSPsoc Annu,2007,22(20):1-5.
[9] LIU W,KETTIMUTHU R,TIEMAN B,et al.GridFTP GUI:an Easy and Efficient Way to Transfer Data in Grid[J].Networks for Grid Applications.Springer Berlin Heidelberg,2010,2(23):57-66.
[10] CHEN J,AKERS W,CHEN Y,et al.Java parallel secure stream for Grid computing[C]∥Computing in High Energy and Nuclear Physics,CHEP,2005,12(28):103-108.
[11] Globus WORLD,2007.[Online][DB/OL].Available:www.globusworld.com/program/program.php 2007,22(24):111-114.
[12] WANG F Z,WU S,HELIAN N,et al.DIANA:Data Interface All-iN-A-place[J].Presented at the Cranfield Multistrand Conf,2008,12(46):224-229.