陳 鳳,張新長,羅國瑋,郭泰圣
(1. 中山大學 地理科學與規劃學院,廣東 廣州 510275; 2. 佛山市城市規劃勘測設計研究院,廣東 佛山 528000)
國土資源作為一種不可再生資源,在國民經濟建設和社會生活中有著舉足輕重的地位,是國民經濟和社會的生命線。地籍管理是國土資源管理的重要內容,運用先進技術手段進行地籍數據管理是實現國土資源高效管理的基礎,利用現代信息技術為地籍管理與決策提供服務是解決當前土地管理部門所面臨挑戰的重要手段之一[1]。隨著國家各項政策的出臺,城鄉地籍數據越來越完整,信息量也越來越大,需要一個健全的系統來管理和應用地籍測繪數據,實現地籍測繪數據信息化管理。隨著Internet技術和GIS技術的不斷發展,作為二者結合的產物WebGIS應運而生[2-3]。由于地籍測繪數據Web服務信息量大,對數據執行的操作頻繁,傳統基于服務器端的WebGIS開發在實現高效的數據處理和數據展示時,客戶端需要不斷地向Web服務器發送請求,Web服務器再將請求傳遞給GIS服務器進行處理,最終將結果返回客戶端顯示。這種模式占用了大量的網絡資源,且對服務器的硬件配置要求高。本系統采用ExtJS和REST技術,以富互聯網應用(rich Internet application, RIA)為目標,將大量對空間數據的操作在客戶端實現,節約了網絡資源,提高了可視化查詢和空間分析的能力,實現地籍測繪分散數據的集中管理,集中管理的服務分散應用。
與一般的Web信息系統相比,WebGIS的最大特點是在空間框架下實現圖形、圖像數據與屬性數據的動態連接,提供可視化查詢和空間分析的功能,但是也存在一定的局限性[4]。為了填補服務器和客戶端之間的“鴻溝”,RIA技術作為地理空間數據存儲、傳輸和顯示的手段應運而生,將桌面軟件的強交互性和豐富的可視化結合到Web應用程序中。
RIA是一種具有近似于傳統桌面應用功能和特性的網絡應用。與傳統的基于服務器端的網絡應用程序不同的是,RIA 將大部分業務邏輯從服務器端移植到客戶端,僅保留一些基礎的業務邏輯在服務器端[5]。RIA自身的技術特點[4]決定了它比較適合一個以數據為中心的應用程序,WebGIS正是在GIS從以系統為中心向以數據為中心轉變的過程中發展起來的,因此無論從理論意義還是實踐意義上來說,RIA都對WebGIS應用程序的開發具有重要的意義,見表1。
ExtJS來源于YUI(Yahoo user interface library),它是通過使用 JavaScript 來編寫的工具和控件庫,用來創建豐富互聯網應用程序的跨瀏覽器的 Java Script 庫。ExtJS 是一個與平臺技術無關的前端Ajax 框架,具有跨平臺性,主要用來開發帶有豐富外觀的富客戶端應用,也用于在客戶端創建常見豐富多彩的Web 應用程序界面,使得B/S 應用更加具有活力及生命力[6]。ExtJS不僅包含了許多高效率、可定制用戶界面的控件,擁有設計漂亮的、可擴展的組成部件模型,還包含了容易使用的、直觀的、基于純 HTML+CSS+JavaScript技術的應用程序接口,其交換格式靈活采用 JSON 和 XML,使得服務端的處理負擔真正減輕,從而達到富客戶端的真正應用[7]。

表1 RIA方式與非RIA方式WebGIS的區別
表述性狀態轉移(representational state transfer,REST)是Roy Thomas Fielding博士在2000年提出來的一種針對Web應用開發而設計的架構風格,其本質是一組架構約束條件和原則[8]。REST充分依賴和利用HTTP協議,通過對基于HTTP的資源的操作來實現分布式應用。REST的工作原理如圖1所示,客戶端和服務器的交互主要是通過URL,URL請求服務器和響應客戶端都要遵循REST的條件和約束。這種架構風格操作簡便、響應速度快、性能高。本系統采用目前在GIS系統中廣泛應用的Esri公司的ArcGIS Server REST API技術。通過REST技術對系統資源的操作,獲取地籍測繪數據的REST URL地址,在客戶端使用ExtJS技術完成對地圖數據的訪問,實現地籍測繪數據的實時共享、管理和分析功能。

圖1 REST風格架構的工作原理
基于ExtJS技術和REST架構風格RIA模式的地籍測繪數據管理系統整體框架如圖2所示。整個系統框架采用3層架構,由下到上依次是數據層(data access layer,DAL)、應用層(application layer,AL)和表現層(user interface,UI)。RIA模式的應用使得系統的表現層不僅具有豐富的UI,而且客戶端的性能也有很大的提高,很多空間數據的操作請求(如空間數據查詢分析等)由客戶端直接處理表現,優化了地籍測繪數據的服務質量。
數據層是整個系統的最底層,負責空間數據和非空間數據的存儲,維護各種數據之間的關系,并提供數據備份、數據存檔、數據安全機制,為系統的正常運行提供數據源的保障[9]。通過管理空間數據的ArcSDE空間數據引擎和管理非空間數據的Oracle數據庫,將多源異構的地籍測繪數據按照相應的標準體系組織管理起來,建立數據之間的關聯機制,為應用層提供數據服務支撐??臻g數據主要包括基礎地理信息數據(如地形圖、行政區劃圖、道路網、影像圖等)和專題地理信息數據(如宗地圖、測量控制點、接圖表等)。非空間數據主要包括電子地籍檔案數據、地籍檔案掃描件等。
應用層是整個系統的核心,負責響應客戶端的請求,通過Web應用服務器與GIS服務器的應答將請求處理結果返回客戶端表現,實現數據的服務。
(1) Web應用服務器
Web服務器用來托管Web應用程序和服務,系統采用Windows Server自帶的IIS 7.0作為Web服務器,負責GIS服務器資源管理程序和表現層使用的ExtJS應用程序的托管。
GIS服務器托管的所有服務都可以通過資源管理界面來查看公開的資源,系統采用REST技術由ArcGIS Server發布地圖資源服務,公開的資源鏈接URL都存儲在XML文件中,表現層只需要通過讀取XML文件即可獲取公開的空間數據資源。XML文件組織結構如圖3所示。

圖2 RIA模式的系統整體框架

圖3 存放RESTURLs的XML文件組織結構
(2) GIS服務器
GIS服務器用來托管GIS資源和GIS核心功能,并通過REST技術調用已經封裝好的ArcGIS API作為服務,將已經發布的資源在客戶端呈現給用戶[10]。本系統采用Esri公司的ArcGIS Server作為GIS服務器,將存放在空間數據庫中的矢量數據集制作成地圖服務文件(MXD),并通過ArcCatalog發布為MapServer;存放在空間數據庫中的影像數據通過ArcCatalog制作成影像鑲嵌數據集發布為ImageServer。這些服務都是以REST風格創建,因此客戶端可以通過URL(一般格式為:http:∥GIS服務器名稱/ArcGIS/REST/services/服務名/服務類型)來訪問資源服務和操作服務。
表現層是整個系統核心功能的體現入口,也是用戶與系統直接交互的窗口。系統的表現層采用ExtJS技術和 MVVM(Model-View-ViewModel,模型-視圖-視圖模型)的設計模式[11]來設計和實現,分為用戶交互界面和邏輯處理兩部分來提高系統開發效率,Web界面與邏輯處理的交互選用Ajax模式,加快系統的響應速度,豐富表現層的內容。
(1) Web界面
ExtJS的UI設計采用JavaScript語言,引用Ext封裝好的API搭建用戶界面,使界面整潔、美觀、協調,方便用戶操作,極大地豐富了用戶的體驗感。Ext API自定義的皮膚,一整套的控件CSS樣式,可以根據用戶視覺感官的需求,簡單便捷地修改用戶交互界面,構架優雅而成熟的界面。系統運用ExtJS技術與傳統的HTML開發的Web系統相比優勢體現在實現異步請求,頁面局部刷新,大量減少了網絡資源的占用,提高了頁面加載響應速度,實現了表現形式的多樣化。
(2) 邏輯處理
ExtJS是很常用的Ajax框架,用戶操作Web頁面響應相應的JavaScript代碼,將請求通過Ajax傳遞給邏輯處理,程序處理完再將處理結果以JSON格式傳回交互界面,交互界面通過解析JSON格式的數據,將請求處理結果組織呈現給用戶。Ajax引擎異步運行,用戶不需要等待服務器的應答,可以在客戶端Web界面并行操作。
本系統面向地籍測繪數據管理Web服務,分為地圖服務、查詢統計分析、數據服務、權限管理和系統管理五大功能模塊,如圖4所示。

圖4 地籍測繪管理功能結構
(1) 地圖服務
地圖服務包括地圖瀏覽、圖層控制和打印輸出功能。地圖瀏覽的具體功能包括地圖的放大、縮小、漫游等基本操作。圖層控制功能通過系統界面左邊的目錄樹控制需要圖層的顯示和隱藏。用戶還可以根據需要打印輸出專題圖提供服務。
(2) 查詢統計分析
查詢功能包括空間和非空間數據的查詢。通過Map的Draw事件選定感興趣的點、面實現空間數據的查詢,通過關鍵字實現屬性數據的查詢,通過空間數據和屬性數據間的關聯信息實現空間數據和屬性數據的交互查詢。量算功能實現了專題圖層的線、面長度面積的量算。用戶通過框選感興趣的區域,調出歷史數據進行對比分析,為業務辦理提供決策參考。傳統的WebGIS系統對空間數據進行查詢分析都要請求服務器處理,再將處理結果傳回客戶端表現。本系統的優勢在于客戶端獨立完成空間數據的查詢分析等操作,用豐富的界面實現結果的可視化表達,節約了網絡資源的同時提高了效率。
(3) 數據服務
數據服務功能是用戶通過查詢統計分析獲得數據信息,執行相關數據的申請、審批、下載功能??紤]到數據的安全性,因此申請、下載數據時需要提交申請人信息及申請理由。另外,外業測量獲取的新數據也可以通過系統上傳到服務器,保持了數據的現勢性和鮮活性。
(4) 用戶權限管理
針對不同部門不同崗位職能范圍不同,系統配置了用戶權限管理模塊。普通用戶在使用系統時,必須經過注冊由管理員審核以獲得登錄資格,管理員審核用戶注冊信息時會根據申請人職位和部門的業務范圍給予一定的權限。另外,根據申請數據類型的不同,系統動態配置審批流程,采用這種工作流方式加快了工作進度,提高了工作效率,基本實現了無紙化辦公。
(5) 系統管理
系統管理功能主要包括系統數據庫連接信息的配置、服務器路徑的配置、在線數據的備份,以及保證系統的數據安全。
綜合應用ExtJS技術和REST技術,實現的RIA模式的地籍測繪數據管理服務如圖5所示。將系統部署在政務內網的服務器中,供深圳市地籍測繪大隊內部員工使用。用戶只需在客戶端安裝瀏覽器,通過注冊獲得系統使用權限,登錄系統后就可以根據自己的業務需求在Web界面執行地圖服務、數據服務、查詢統計分析等功能,實現了地籍測繪數據的共享服務,提高了工作效率。

圖5 系統運行界面
本文采用ExtJS富客戶端技術和REST架構地圖服務設計了3層架構的富網絡地理信息系統,克服了傳統基于HTML的WebGIS系統開發的局限性,同時保持了集中部署管理模型的優越性,充分提升了客戶端的性能。另外,將RIA技術和REST技術的有機結合,強交互性使系統能快速、高效地處理各項進程,美觀成熟的UI豐富了系統的體驗性。融合使用ExtJS技術和REST技術的RIA模式系統,實現了地籍測繪數據測科學、高效管理,提供了數據共享服務,讓辦公無紙化成為現實,促進了國土資源信息化建設進程。
參考文獻:
[1] 鐘耳順. 土地信息系統建設中的若干問題[J]. 國土資源信息化,2001(2):14-16.
[2] 張健挺. 網絡地理信息系統的若干問題探討[J]. 遙感信息,1997(3):8-11.
[3] 宋關福,鐘耳順,王爾琪. WebGIS—基于Internet的地理信息系統[J]. 中國圖象圖形學報:A輯,1998(3):251-254.
[4] 張宏,豐江帆,閭國年,等. 基于RIA技術的WebGIS研究[J]. 地球信息科學,2007,9(2):37-42.
[5] 陳謙,佘江峰,潘森,等. 基于RIA方式的WebGIS構建[J]. 遙感信息,2009(4):89-94.
[6] 陳道鑫,宋紹云,袁中旺,等. ExtJS框架在Web軟件開發中的應用[J]. 電腦知識與技術,2011,7(9):2044-2047.
[7] 宋轉玲,劉海行,代亮,等. 基于ExtJS開發的海洋科學數據共享服務平臺[J]. 海洋科學,2010,34(2):4-9.
[8] 李久剛,唐新明,汪匯兵,等. REST架構的WebGIS技術研究與實現[J]. 測繪科學,2011,36(3):85-87.
[9] LIU Yang, LIU Xuefeng, MAO Jianhua. Research on the Integration of Silverlight and WebGIS Based on REST[C]∥Proceedings of International Conference on Multimedia Technology. Ningbo: IEEE, 2010: 1-4.
[10] 詹騫. 基于Ajax/REST的GIS WEB服務研究與實現[D].北京:中國地質大學,2008.
[11] 陳明,李猛坤,張強. 一種基于擴展MVVM模式的SaaS面向服務計算模型[J]. 微電子學與計算機,2010(8):27-30.