楊 毅
(四川護理職業(yè)學院網(wǎng)絡中心,四川成都610100)
過去10年間,地理信息科學在數(shù)據(jù)存檔和發(fā)布方面取得了多項進展。最近的研究焦點是基于互聯(lián)網(wǎng)、萬維網(wǎng)和專用因特網(wǎng)開發(fā)GIS系統(tǒng)功能,又稱為WebGIS(基于網(wǎng)絡的地理信息系統(tǒng))。有了Web-GIS,世界范圍內(nèi)的用戶均可以訪問分布式地理信息?;ヂ?lián)網(wǎng)用戶利用瀏覽器,不需購買專用GIS軟件就可以訪問GIS應用[1]。
開放地理空間聯(lián)盟(OGC)經(jīng)深思熟慮后采用了 Web 處理服務(WPS)[2]。Google Earth[3]和 Py-WPS[3]均是前面提到的 WebGIS和 WPS系統(tǒng)的應用示例。在廣域網(wǎng)環(huán)境(WAN)下通過傳統(tǒng)的超文本傳輸協(xié)議、網(wǎng)絡文件系統(tǒng)協(xié)議和文件傳輸協(xié)議共享或訪問地理空間數(shù)據(jù),往往會遇到等待時間較長、效果不佳等問題。本文主要對地理空間數(shù)據(jù)存儲和發(fā)布時存在的網(wǎng)絡延時問題展開研究,重點是針對大量Earth遠程遙感數(shù)據(jù),基于網(wǎng)格技術開發(fā)的系統(tǒng)。提出了高性能遠程批量數(shù)據(jù)發(fā)布/存儲,并與當前網(wǎng)格驗證授權工具集成的安全數(shù)據(jù)管理[3]。GridJet新技術對當前互聯(lián)網(wǎng)架構和協(xié)議進行拓展,滿足了前述迫切需求,同時通過對當前協(xié)議進行版本控制,可以適應WWW/網(wǎng)格的未來需求。
無論是技術缺陷還是架構設計,現(xiàn)有的GIS系統(tǒng)均產(chǎn)生了一些根本性的性能問題。為了提供訪問進程,服務器需要對大量的空間數(shù)據(jù)進行組合。這些數(shù)據(jù)不止存儲在服務器上,還由于地理空間數(shù)據(jù)的分布式特性而經(jīng)常在網(wǎng)絡上傳播[4]。大部分情況下,所需數(shù)據(jù)規(guī)模達到千兆字節(jié)甚至更高。存儲或者傳輸如此大量的數(shù)據(jù),難度非常大。當然,同樣問題也存在于通過WWW瀏覽地圖時簡單的Web-GIS服務上。目前,從遠程資源獲取數(shù)據(jù)主要通過HTTP或者 FTP協(xié)議,效率低,安全性差。Friis-Christensen等人[5]對基于空間數(shù)據(jù)基礎設施面向分布式服務的地理信息處理的可行性進行了研究[5]。該文證明了使用分布式地理信息處理環(huán)境具有多項優(yōu)勢(比如數(shù)據(jù)無需復制、可重用性)。Jagery等人[6]提出一種完整的Web服務注冊、發(fā)掘、開發(fā)和執(zhí)行框架,以便為在線服務提供支持,該技術將地理信息處理看成一個流程,并使用流程工具通過網(wǎng)絡獲取分布式地理空間數(shù)據(jù)。
一般情況下,WebGIS和WPS使用HTTP協(xié)議傳輸數(shù)據(jù)和請求。與HTTP/FTP/NFS/GridFTP協(xié)議不同,本文GridJet協(xié)議支持數(shù)據(jù)流并行傳輸和單系統(tǒng)映象(SSI)。它可作為獨立的工具運行,或者與WebGIS/WPS技術集成。下面將對本文協(xié)議的技術細節(jié)進行詳細闡述[7]。
本文將展示PyWPS和Google Earth如何與所開發(fā)的GridJet協(xié)議通過界面連接,GridJet當前支持Linux,下步工作將把它拓展到Windows和MacOS X系統(tǒng)。
GridJet通過使用并行流,只以很小的內(nèi)存消耗代價,就可取得非常高的傳輸速度。GridJet為應用程序在發(fā)送方和接收方間開啟了多個socket流。然后應用數(shù)據(jù)被分成多個段,段的數(shù)量等于流的數(shù)量。數(shù)據(jù)段通過不同的線程在socket流中并發(fā)傳輸,然后在接收方組裝[8]。最終數(shù)據(jù)傳遞給應用程序,似乎這些數(shù)據(jù)是通過一個socket傳輸?shù)摹O旅嫱瑫r顯示了為什么分段數(shù)據(jù)通過多個socket流傳輸可以獲得近似最優(yōu)的帶寬性能。在該圖中,陰影部分表示socket的緩存大小,面積較大的空白矩形表示TCP管道容量(帶寬*時延)。通過一個socket流進行傳輸?shù)膽贸绦驘o法充分利用TCP管道的容量。若緩存大小取其默認值64 KB,則容量利用率只有1%左右。如果應用程序使用一個socket流時的緩存大小最優(yōu),或者使用多個socket流,則可以填滿TCP管道。
網(wǎng)格應用程序不僅要求大量數(shù)據(jù)在廣域網(wǎng)上高效傳輸,還要求相應的安全和驗證服務,以提高數(shù)據(jù)的完整性和數(shù)據(jù)訪問控制效果。GridJet及以其為基礎的其他協(xié)議使用GIS公共密鑰基礎設施,以驗證WAN/網(wǎng)格成員的身份,提高為這些成員分配資源的安全性[9]。GridJet服務器請求從證書認證機構接收大量主機證書。GridJet(服務)也需在虛擬組織注冊輕量級目錄訪問協(xié)議(VO-LDAP)。另外,VO-LDAP根據(jù)LDAP數(shù)據(jù)庫生成GridJet服務器網(wǎng)格地圖,以便進行驗證和制圖。除了負責認證注冊外,VO-LDAP還為虛擬組織履行其他重要職責,比如服務搜索引擎和用戶授權[10]。
本節(jié)研究的目的是考察和測試基于GridJet的WebGIS/WPS原型系統(tǒng),對其與標準的單流HTTP傳輸協(xié)議性能進行比較評估。選用PyWPS來實現(xiàn)一種基于GridJet的WPS系統(tǒng),典型的地理數(shù)據(jù)處理操作包括:數(shù)據(jù)傳輸、發(fā)布/存儲和疊加分析。GridJet的應用不僅限于WPS系統(tǒng),還可用于常見的GIS系統(tǒng)。于是,使用Google Earth做了一些試驗,一個客戶端通過GridJet協(xié)議將帶有directory/earth/map.tiff的遠程地圖服務器加載到本地tree/mnt/GridJet/,然后Google Earth客戶端可以實現(xiàn)“本地化”在線瀏覽。
以下真實測試可以證明基于GridJet的Web-GIS/WPS在歐亞網(wǎng)格網(wǎng)絡資源上的通信性能。歐亞網(wǎng)格項目由歐共體資助,涉及10多個歐洲和亞洲研究機構。
有5個歐亞網(wǎng)格城市加入測試:劍橋、倫敦、樸次茅斯、穆爾西亞和北京。每座城市使用安裝了GridJet客戶端網(wǎng)關的Linux/Globus設備作為客戶端來訪問,劍橋安裝了GridJet服務器網(wǎng)關的專用WPS或Web地圖服務器:Cranfield高性能計算設備(CCHPCF),CCHPCF設備通過劍橋EastNet結(jié)點,使用5-Gb/s SuperJANET中樞,以155-Mb/s速度與互聯(lián)網(wǎng)穩(wěn)定連接,穆爾西亞、倫敦、北京和樸次茅斯的連接速度分別為 10 Mb/s、2 Mb/s、100 Mb/s、100 Mb/s。
為了給PyWPS和其他系統(tǒng)提供支持,GridJet設立于Globus庫的頂端,于是,引入附加層來抽象表示通信基礎設施[11]。為了定量描述各種開銷,使用不同的傳輸工具:(地理信息處理期間用于遠程數(shù)據(jù)傳輸和存儲的HTTP和GridJet協(xié)議),對CCHPCF WPS服務器和北京遠程數(shù)據(jù)中心間的在線地理信息處理服務數(shù)據(jù)傳輸時間(s)進行比較。在實驗時選擇地理空間數(shù)據(jù)傳輸、重疊分析和地圖發(fā)布/存儲,因為這3種操作在WPS危機和緊急情況處理中經(jīng)常使用[12]。同時,用同樣方式,對使用 Google Earth/PyWPS遠程在線瀏覽地圖時的傳輸時間(s)進行了測試,地圖服務器在CCHPCF,客戶端在北京。在實驗中對每種協(xié)議運行3次。
我們做了大量性能測試來衡量基于GridJet的WebGIS/WPS在用戶響應時間提升方面的性能。選擇HTTP作為標準的傳輸協(xié)議。加速效果定義為HTTP協(xié)議的傳輸時間與基于GridJet協(xié)議的Google Earth/PyWPS傳輸時間之比。GridJet安全性已經(jīng)經(jīng)過驗證。
①基于GridJet的Google Earth:衡量了客戶端在有線廣域網(wǎng)環(huán)境下通過100 Mb/s鏈路在線瀏覽41.8 MB地圖的訪問時間。使用HTTP協(xié)議時,地圖傳輸和顯示時間是400 s,廣域網(wǎng)延時是539 s。當將GridJet服務器/客戶端網(wǎng)關(在瀏覽器地址欄選擇GridJet而不是HTTP或其他協(xié)議)添加到#tcp=16鏈路上時,同樣的41.8 MB地圖在線顯示只需73s,速度提升了 5.5 倍。當#tcp=64 時,41.8 MB地圖的瀏覽(傳輸)時間是52 s,響應時間提升了7.7倍(如表1所示)。
表1 劍橋-北京測試中的Google Earth性能
我們發(fā)現(xiàn),當#tcp=1時GridJet的初始傳輸時間(448 s)大于HTTP(400 s)(沒有添加加速),當#tcp增加時傳輸時間差距將會下降。當#tcp大于4時,GridJet超越HTTP;當#tcp=128時,速度提升了7.8倍。GridJet功能的額外開銷是因為 GridJet在Globus庫之上的附加抽象層。
響應時間相對TCP流數(shù)量(#tcp)的提升情況。41.8 MB地圖通過往返時間(RTT)為539 ms的鏈接傳輸。從圖中可以看出,#tcp數(shù)量上升時,響應時間提升倍數(shù)也在上升。當有128個并行流時,最大提升倍數(shù)達到7.8倍。然而。當進一步提高#tcp數(shù)量時,GridJet將要花費大量的時間管理大量的TCP流,因此提升步伐放緩。
②基于GridJet的PyWPS:為了考察PyWPS通過GridJet在地理空間數(shù)據(jù)存儲和發(fā)布方面取得多大的性能提升,在劍橋和北京間展開測試。網(wǎng)絡主要參數(shù)與Google Earth測試相同,但是數(shù)據(jù)集做了變更,以進行更加復雜的地理數(shù)據(jù)處理。選擇3幅地圖:5.2 MB的shapefile文件,5.4 MB 的光斑圖像文件,5.6 MB的另一幅光斑圖像文件。
實驗內(nèi)容包括3種操作:遠程地理空間數(shù)據(jù)變換、在線疊加分析和地圖發(fā)布/存儲。為了進行遠程地理空間數(shù)據(jù)轉(zhuǎn)換,通過GridJet來訪問和轉(zhuǎn)換遠程數(shù)據(jù)。對在線疊加分析,通過互聯(lián)網(wǎng)/網(wǎng)格向分析服務器發(fā)出請求,分析數(shù)據(jù)集來自遠程數(shù)據(jù)源。通過GridJet讀取遠程數(shù)據(jù)結(jié)點的分布式地理空間數(shù)據(jù),本地運行疊加分析服務來對數(shù)據(jù)進行分析。人們經(jīng)常需要將他們處理過的地理空間數(shù)據(jù)存儲在遠程設備上??赡茉虬?有限的使用權限,有限的本地存儲空間,或者是需要把數(shù)據(jù)傳輸給第3方。在測試中,疊加分析生成的一幅新地圖通過GridJet存儲到遠程數(shù)據(jù)服務器上。
表2 RTT變化時的PyWPS性能提升情況(S=提升倍數(shù))/s
GridJet的設計目的就是為了處理遠程、跨域、單像數(shù)據(jù)訪問和傳輸任務。在數(shù)據(jù)變換測試中,選擇在有線廣域網(wǎng)環(huán)境下通過100 Mb/s鏈路在線轉(zhuǎn)換5.4 MB的地理空間數(shù)據(jù)(從向量變換為光柵格式)。當RTT=80 ms且#tcp=16時,性能相比于HTTP協(xié)議提升1.63倍。在疊加分析測試中,讀取遠程服務器上的3份異構空間數(shù)據(jù)文件,然后疊加到本地顯示器上。這3份數(shù)據(jù)文件分別是一份shapefile文件(失量格式),2份光斑圖像(光柵格式),每份文件均大于5 MB。當 RTT=320ms且#tcp=16時,性能提升2.3倍。在分發(fā)/存儲測試中,先前疊加分析生成的一幅新的疊加地圖存儲到原先相同的存儲了前面提到的3份異構空間數(shù)據(jù)文件的遠程數(shù)據(jù)器上。對4組數(shù)據(jù)進行了測試,RTT時間在40~320 ms范圍內(nèi),GridJet相對HTTP的性能提升了1.5~2.3倍。表2顯示了執(zhí)行前述地理數(shù)據(jù)處理操作時,響應時間方面的性能提升。當有16路并行TCP流時,平均提升效果為2倍。
我們發(fā)現(xiàn),基于 GridJet的 PyWPS和 Google Earth表現(xiàn)出不同的性能特點。Google Earth的性能提升了7.8倍,而PyWPS提升了2.3倍。這主要是因為:底層GridJet架構必須要高效地提高傳輸帶寬,以加快WebGIS/WPS I/O速率。這也是Web-GIS/WPS服務器比較青睞經(jīng)過WAN/網(wǎng)格優(yōu)化的架構的原因。直觀來講,當請求規(guī)模足以允許Grid-Jet通過多個TCP流高效傳輸時,開發(fā)的基于Grid-Jet的WebGIS/WPS,性能將更優(yōu)。我們還對Web-GIS/WPS收集空間數(shù)據(jù)請求的能力進行了驗證。WebGIS/WPS用同步(阻礙請求的物理讀寫)和異步(無阻塞的預取預沖)兩種方式發(fā)出請求。其結(jié)果就是如下折衷:WebGIS/WPS應該提交盡可能多的異步請求以提升吞吐量,同時需確保每當提交請求時文件系統(tǒng)已經(jīng)準備好處理同步請求。當前,GRASS為數(shù)據(jù)文件和緩沖區(qū)使用4 KB硬頁面大小(一個數(shù)據(jù)塊)。GridJet提供的傳輸帶寬更高,可以為規(guī)模較大的這些請求帶來許多益處。不幸的是,據(jù)通過Strace所做的觀察,它們所占比例不高。
提出了一種面向地理空間數(shù)據(jù)的訪問和存儲方案,該方案可提高GIS服務支持的結(jié)構性、連接性、移動性和質(zhì)量。測試結(jié)果表明,與使用單流HTTP協(xié)議相比,使用底層 GridJet引擎可以顯著提高WebGIS/WPS的傳輸速率?;贕ridJet的 Web-GIS/WPS創(chuàng)新性地將高速通信與異構有線/無線網(wǎng)絡結(jié)合在一起,提升了WPS和WebGIS的功能和可用性,可輕松訪問網(wǎng)格技術。基于GridJet的端到端服務支持技術解決了廣域網(wǎng)文件在WAN/網(wǎng)格上的“局域網(wǎng)化”共享難題,對GIS領域帶來了極大的便利。下一步研究工作的重點是在現(xiàn)有系統(tǒng)的基礎上,進一步考慮地理空間數(shù)據(jù)的傳輸可靠性和安全性問題。
[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.