卓 嵩,黃瑞金,蔣紅兵,楊正銀
(1.四川省遙感信息測繪院,四川 成都 610100)
基于RIA技術構建的WebGIS在注重改善網站界面、方便用戶體驗的同時,卻忽略了單純地接收、分析地圖服務器所發布的靜態或動態的地圖服務信息已無法滿足當今網絡用戶在WebGIS互動性和數據實時性等方面日益增長的要求。未來WebGIS不但需要使用戶能接收服務器發布的地理信息服務,更需要使用戶能與服務器進行基于空間位置的多源異構信息的交互,增強用戶在參與性與互動性方面的體驗。引入WebServices技術,能夠解決傳統技術無法解決的問題[1,2]。
基于此,本文嘗試通過整合RIA和WebServices技術,并結合數據庫技術實現WebGIS在線交互要素空間異構屬性信息功能,即在分析Flex技術數據交互方式的基礎上,設計一個從數據結構到功能架構完整的在線交互空間異構信息的解決方案,然后使用.NET平臺、ArcSDE和ArcGIS Server定制在線交互WebServices服務,完成其在項目中的應用驗證。
RIA概念最初由Macromedia公司于2002年3月發表的白皮書中提出。經過這些年的發展,目前可供選擇的RIA技術主要包括Ajax技術、Adobe的Flex技術、微軟的Silverlight技術和Sun的JavaFX技術[3]。其中,Flex具有其獨特的優勢:①使用ActionScript編寫的開發框架和MXML標簽語言,全面支持XML(E4X)[4];②支持矢量圖形和多媒體;③動態更新用戶界面,后臺發送和加載數據[5];④運行依靠的Flash Player在互聯網上已經流行和成熟。綜合考慮開發效率、成熟性和廣泛性等因素,本文選用Flex作為RIA客戶端技術。在服務器端,選擇ArcGIS Server 9.3提供地圖服務;選擇.NET 2008平臺定制并發布WebService服務,處理客戶端與服務器、服務器與數據庫之間的空間異構數據交互。
基于安全方面的考慮,Adobe不允許Flex直接連接和操作遠程數據庫。為了解決這個問題,Flex主要采用以下4種方式:
1)使用HTTPService。用get和post方式進行數據傳輸,同平常的網頁提交大致一樣。其優點是很簡單,通用性高,asp,jsp等可生成標準XML程序和Flex程序進行交互;不足之處在于處理大量數據時, 速度慢。
2)使用WebService。通過WSDL(網絡服務描述語言)文件動態創建Web服務代理的方式,可實現服務的動態綁定[6],即SOAP(簡單對象訪問協議)是一種比較通用的接口,支持大多數服務器通信,速度比HTTPService快。
3)使用Remoting。這種方式可映射遠程對象,但需要服務端支持(如開源的服務端AMFPHP、WebORB等)和在后臺服務器端安裝相應版本的Flash Remoting模塊。如果使用虛擬主機,配置麻煩。
4)使用Socket連接。基于Socket通信,可建立持久連接,這也是Flash和傳統Web開發通信方式最不同的地方,適合于長時間在線應用。
通過上述分析,本文采用WebServices技術,以.NET平臺在服務器端構建WebService服務列表,為客戶端提供數據庫操作服務。其優點在于:服務動態綁定,便于維護與更新,響應速度能夠滿足要求,且方便部署和遷移。
通信原理如圖1所示,Flex應用程序可根據客戶端瀏覽器的請求類型,從網絡服務器所提供的服務列表(WSDL)中調用相應的服務。客戶端不需要了解服務器端程序,僅通過所需服務名稱和參數就可完成請求,因此可應用于任何服務器環境中,包括標準的Web服務環境和普通的服務器端腳本環境JSP,ASP.NET,PHP和ColdFusion等。

在WebGIS中,由于網絡在穩定性及帶寬等方面的制約,在線交互通常只涉及二維數據。要素的信息分為空間數據和屬性數據。在二維坐標系統中,要素的空間信息主要包括平面坐標系中的坐標參數和要素屬性。根據文件類型,屬性可分為文本屬性、圖片屬性和多媒體(視頻、音頻)屬性等3類。
WebGIS在實際運行過程中,用戶最關心的是空間信息的時效性,如基礎設施變更、景點開放、名人常去熱地、個人信息(求購、出售、租賃等)發布等,而這些信息往往是無法通過網站維護者及時更新的。同時,由于服務器的荷載、客觀硬件設施及安全性等方面的限制,也不能存儲和展示用戶上傳的所有要素,必須對其進行審批,選擇合乎一定要求的加以展示。針對上述問題,本文提出RIA環境中在線交互要素多源異構屬性信息的解決方案。
1)空間異構信息數據包設計。要素信息在線交互包括3個步驟:①客戶端編輯并上傳要素的空間和屬性信息;②服務器接收已上傳的信息并進行解析和管理;③通過審批后,選擇其中符合要求的點展示到網站上。為了便于后期管理相應的已上傳要素信息,以及控制惡意上傳大量垃圾信息的非法用戶,必須對系統進行角色追蹤管理。利用廣域網環境下IP具有地域性和可定位的特點,使用IP、用戶名結合交互動作追蹤用戶在線行為。
這里將用戶分為未注冊用戶,注冊用戶、管理員3類。未注冊用戶只能瀏覽網站信息,注冊用戶可瀏覽并上傳要素信息,管理員可對所有上傳點進行審批和刪除惡意上傳垃圾信息的已注冊用戶賬號。其中,只有注冊用戶上傳和管理員管理上傳信息是涉及空間異構信息交互的,因此只需將后2類用戶的信息數據加入待交互數據包中,具體結構見圖2。

2)客戶端設計。Flex架構的優勢在于可充分利用RIA的處理能力,不必每次數據操作都上傳至服務器處理再返回。用戶在未確認要素包上傳前,對要素空間位置以及各種異構屬性的編輯和修改操作均集成在瀏覽器端完成,從而避免了頻繁地與服務器交互,有效減輕了服務器和網絡負擔。
用戶在瀏覽器端繪制要素幾何形狀后,客戶端程序首先將其坐標值由屏幕坐標系轉換為地圖服務的坐標系,如果該坐標超出允許范圍,將提示用戶重新標識。用戶如果變更標識請求,可利用RIA程序完成修改、刪除操作,不必頻繁請求服務器響應。在完成要素空間信息和屬性信息的錄入后,客戶端程序自動將以上信息打包,在服務器WSDL中調用相應的WebService響應。管理員也是通過調用相應的Web服務,完成審批和刪除操作。
3)服務器端WebService設計。為了解決異構數據整合、GIS互操作等問題,需要自定義WebServices。該WebServices必須完成以下任務:①保證專題要素、異構屬性、用戶動作記錄之間的邏輯一致性;②用戶在操作交互專題要素時,不影響其他用戶操作;③保證用戶體驗,減輕服務器壓力以及盡量避免瀏覽器與服務器頻繁交互。
基于此,本文提出一種基于表結構的異構屬性包交互方式。具體思路如下:
①在線交互時,用戶在未確認要素上傳前,對要素空間位置、各種異構屬性的編輯和修改操作均集成在瀏覽器端完成。②要素編輯完成后,獲取服務器WebServices服務的WSDL地址,瀏覽服務列表,選擇接收要素上傳服務。③根據服務的預定義參數格式,生成以異構屬性內容為頭文件、以待上傳要素各種異構屬性數據為定義文件的異構屬性包,調用WebService服務上傳該要素包。④服務器端根據WSDL地址動態創建相應WebService,代理接收并解析要素包。⑤在將上傳要素入庫時,為避免用戶間影響,服務器端WebService為每個用戶開啟獨立的線程,管理要素上傳操作。在該線程生命周期內,依次將要素幾何位置、文本屬性錄入相應的專題庫,將圖片、音視頻文件傳至文件服務器,獲得成功標識后,關聯信息入庫,過程順序結構見圖3。

上述在線交互空間異構信息的解決方案,可滿足用戶和網站維護者在數據交互方面的要求。在此基礎上,通過客戶端界面設計與程序的開發,完成了某市新農村建設公共服務平臺。用戶在瀏覽器端,通過該平臺調用WebService服務,可上傳與農產品購銷、農具買賣、樓盤開盤等相關的多媒體圖文視頻信息以及空間地理位置信息,充分發揮了WebGIS的優勢。圖4展示了瀏覽器端專題要素交互與審批通過后發布的界面。

網站管理部門無需定制特定的網站后臺維護平臺,通過管理員賬戶登錄后,可在任何支持Flash Player的瀏覽器客戶端定期對已上傳的要素及其空間異構屬性進行審批。這樣,不僅增強了發布信息的實時性和準確性,而且方便相關部門進行統一管理,促進了地方信息化建設。
Flex環境下在線交互空間異構信息可以生動、方便、實時地發布要素的空間、圖文、視頻等屬性信息;同時借助WebServices技術跨平臺,結構靈活等特點,可極大地豐富WebGIS用戶在表現層和數據交互方面的體驗。
[1]龍明,汶博,魏娟. 基于RIA的網絡地理信息系統的設計與實現[J].海洋測繪,2006(5):38-41
[2]姚鶴嶺. 基于REST的GISWeb服務研究[D].鄭州:信息工程大學,2005
[3]張康壽,馮兵,孫燕剛,等.基于RIA和WebServices的WebGIS系統的開發[J].地理空間信息,2009,7(2):109-111
[4]張亞飛. 至理精通Flex網絡開發技術[M].北京:電子工業出版社,2009
[5]Tapper J,Labriola M,Boles M,et al. Adobe Flex3 Training from the Source [M].北京:人民郵電出版社,2009
[6]于海龍,鄔倫,劉瑜,等. 基于WebServices的GIS與應用模型集成研究[J].測繪學報,2006(5):153-165
[7]陳謙,佘江峰,潘森,等.基于RIA方式的WebGIS構建[J].遙感信息,2009(8):89-94
[8]Adobe Flex Documentation[EB/OL]. http://www.adobe.com/support/documentation/en/flex/flex3.html,2012-09-18
[9]張立亭,祝國瑞,周世健. 基于WebGIS的地圖數據傳輸關鍵技術[J]. 測繪通報,2004(4):52-55
[10]賈文玨, 龔健雅, 李斌. Web要素服務的優化方法[J]. 測繪學報, 2005(5):168-174