陳 鳳,張新長,羅國瑋,郭泰圣
(1. 中山大學 地理科學與規(guī)劃學院,廣東 廣州 510275; 2. 佛山市城市規(guī)劃勘測設計研究院,廣東 佛山 528000)
國土資源作為一種不可再生資源,在國民經(jīng)濟建設和社會生活中有著舉足輕重的地位,是國民經(jīng)濟和社會的生命線。地籍管理是國土資源管理的重要內(nèi)容,運用先進技術手段進行地籍數(shù)據(jù)管理是實現(xiàn)國土資源高效管理的基礎,利用現(xiàn)代信息技術為地籍管理與決策提供服務是解決當前土地管理部門所面臨挑戰(zhàn)的重要手段之一[1]。隨著國家各項政策的出臺,城鄉(xiāng)地籍數(shù)據(jù)越來越完整,信息量也越來越大,需要一個健全的系統(tǒng)來管理和應用地籍測繪數(shù)據(jù),實現(xiàn)地籍測繪數(shù)據(jù)信息化管理。隨著Internet技術和GIS技術的不斷發(fā)展,作為二者結(jié)合的產(chǎn)物WebGIS應運而生[2-3]。由于地籍測繪數(shù)據(jù)Web服務信息量大,對數(shù)據(jù)執(zhí)行的操作頻繁,傳統(tǒng)基于服務器端的WebGIS開發(fā)在實現(xiàn)高效的數(shù)據(jù)處理和數(shù)據(jù)展示時,客戶端需要不斷地向Web服務器發(fā)送請求,Web服務器再將請求傳遞給GIS服務器進行處理,最終將結(jié)果返回客戶端顯示。這種模式占用了大量的網(wǎng)絡資源,且對服務器的硬件配置要求高。本系統(tǒng)采用ExtJS和REST技術,以富互聯(lián)網(wǎng)應用(rich Internet application, RIA)為目標,將大量對空間數(shù)據(jù)的操作在客戶端實現(xiàn),節(jié)約了網(wǎng)絡資源,提高了可視化查詢和空間分析的能力,實現(xiàn)地籍測繪分散數(shù)據(jù)的集中管理,集中管理的服務分散應用。
與一般的Web信息系統(tǒng)相比,WebGIS的最大特點是在空間框架下實現(xiàn)圖形、圖像數(shù)據(jù)與屬性數(shù)據(jù)的動態(tài)連接,提供可視化查詢和空間分析的功能,但是也存在一定的局限性[4]。為了填補服務器和客戶端之間的“鴻溝”,RIA技術作為地理空間數(shù)據(jù)存儲、傳輸和顯示的手段應運而生,將桌面軟件的強交互性和豐富的可視化結(jié)合到Web應用程序中。
RIA是一種具有近似于傳統(tǒng)桌面應用功能和特性的網(wǎng)絡應用。與傳統(tǒng)的基于服務器端的網(wǎng)絡應用程序不同的是,RIA 將大部分業(yè)務邏輯從服務器端移植到客戶端,僅保留一些基礎的業(yè)務邏輯在服務器端[5]。RIA自身的技術特點[4]決定了它比較適合一個以數(shù)據(jù)為中心的應用程序,WebGIS正是在GIS從以系統(tǒng)為中心向以數(shù)據(jù)為中心轉(zhuǎn)變的過程中發(fā)展起來的,因此無論從理論意義還是實踐意義上來說,RIA都對WebGIS應用程序的開發(fā)具有重要的意義,見表1。
ExtJS來源于YUI(Yahoo user interface library),它是通過使用 JavaScript 來編寫的工具和控件庫,用來創(chuàng)建豐富互聯(lián)網(wǎng)應用程序的跨瀏覽器的 Java Script 庫。ExtJS 是一個與平臺技術無關的前端Ajax 框架,具有跨平臺性,主要用來開發(fā)帶有豐富外觀的富客戶端應用,也用于在客戶端創(chuàng)建常見豐富多彩的Web 應用程序界面,使得B/S 應用更加具有活力及生命力[6]。ExtJS不僅包含了許多高效率、可定制用戶界面的控件,擁有設計漂亮的、可擴展的組成部件模型,還包含了容易使用的、直觀的、基于純 HTML+CSS+JavaScript技術的應用程序接口,其交換格式靈活采用 JSON 和 XML,使得服務端的處理負擔真正減輕,從而達到富客戶端的真正應用[7]。
表1 RIA方式與非RIA方式WebGIS的區(qū)別
表述性狀態(tài)轉(zhuǎn)移(representational state transfer,REST)是Roy Thomas Fielding博士在2000年提出來的一種針對Web應用開發(fā)而設計的架構(gòu)風格,其本質(zhì)是一組架構(gòu)約束條件和原則[8]。REST充分依賴和利用HTTP協(xié)議,通過對基于HTTP的資源的操作來實現(xiàn)分布式應用。REST的工作原理如圖1所示,客戶端和服務器的交互主要是通過URL,URL請求服務器和響應客戶端都要遵循REST的條件和約束。這種架構(gòu)風格操作簡便、響應速度快、性能高。本系統(tǒng)采用目前在GIS系統(tǒng)中廣泛應用的Esri公司的ArcGIS Server REST API技術。通過REST技術對系統(tǒng)資源的操作,獲取地籍測繪數(shù)據(jù)的REST URL地址,在客戶端使用ExtJS技術完成對地圖數(shù)據(jù)的訪問,實現(xiàn)地籍測繪數(shù)據(jù)的實時共享、管理和分析功能。
圖1 REST風格架構(gòu)的工作原理
基于ExtJS技術和REST架構(gòu)風格RIA模式的地籍測繪數(shù)據(jù)管理系統(tǒng)整體框架如圖2所示。整個系統(tǒng)框架采用3層架構(gòu),由下到上依次是數(shù)據(jù)層(data access layer,DAL)、應用層(application layer,AL)和表現(xiàn)層(user interface,UI)。RIA模式的應用使得系統(tǒng)的表現(xiàn)層不僅具有豐富的UI,而且客戶端的性能也有很大的提高,很多空間數(shù)據(jù)的操作請求(如空間數(shù)據(jù)查詢分析等)由客戶端直接處理表現(xiàn),優(yōu)化了地籍測繪數(shù)據(jù)的服務質(zhì)量。
數(shù)據(jù)層是整個系統(tǒng)的最底層,負責空間數(shù)據(jù)和非空間數(shù)據(jù)的存儲,維護各種數(shù)據(jù)之間的關系,并提供數(shù)據(jù)備份、數(shù)據(jù)存檔、數(shù)據(jù)安全機制,為系統(tǒng)的正常運行提供數(shù)據(jù)源的保障[9]。通過管理空間數(shù)據(jù)的ArcSDE空間數(shù)據(jù)引擎和管理非空間數(shù)據(jù)的Oracle數(shù)據(jù)庫,將多源異構(gòu)的地籍測繪數(shù)據(jù)按照相應的標準體系組織管理起來,建立數(shù)據(jù)之間的關聯(lián)機制,為應用層提供數(shù)據(jù)服務支撐??臻g數(shù)據(jù)主要包括基礎地理信息數(shù)據(jù)(如地形圖、行政區(qū)劃圖、道路網(wǎng)、影像圖等)和專題地理信息數(shù)據(jù)(如宗地圖、測量控制點、接圖表等)。非空間數(shù)據(jù)主要包括電子地籍檔案數(shù)據(jù)、地籍檔案掃描件等。
應用層是整個系統(tǒng)的核心,負責響應客戶端的請求,通過Web應用服務器與GIS服務器的應答將請求處理結(jié)果返回客戶端表現(xiàn),實現(xiàn)數(shù)據(jù)的服務。
(1) Web應用服務器
Web服務器用來托管Web應用程序和服務,系統(tǒng)采用Windows Server自帶的IIS 7.0作為Web服務器,負責GIS服務器資源管理程序和表現(xiàn)層使用的ExtJS應用程序的托管。
GIS服務器托管的所有服務都可以通過資源管理界面來查看公開的資源,系統(tǒng)采用REST技術由ArcGIS Server發(fā)布地圖資源服務,公開的資源鏈接URL都存儲在XML文件中,表現(xiàn)層只需要通過讀取XML文件即可獲取公開的空間數(shù)據(jù)資源。XML文件組織結(jié)構(gòu)如圖3所示。
圖2 RIA模式的系統(tǒng)整體框架
圖3 存放RESTURLs的XML文件組織結(jié)構(gòu)
(2) GIS服務器
GIS服務器用來托管GIS資源和GIS核心功能,并通過REST技術調(diào)用已經(jīng)封裝好的ArcGIS API作為服務,將已經(jīng)發(fā)布的資源在客戶端呈現(xiàn)給用戶[10]。本系統(tǒng)采用Esri公司的ArcGIS Server作為GIS服務器,將存放在空間數(shù)據(jù)庫中的矢量數(shù)據(jù)集制作成地圖服務文件(MXD),并通過ArcCatalog發(fā)布為MapServer;存放在空間數(shù)據(jù)庫中的影像數(shù)據(jù)通過ArcCatalog制作成影像鑲嵌數(shù)據(jù)集發(fā)布為ImageServer。這些服務都是以REST風格創(chuàng)建,因此客戶端可以通過URL(一般格式為:http:∥GIS服務器名稱/ArcGIS/REST/services/服務名/服務類型)來訪問資源服務和操作服務。
表現(xiàn)層是整個系統(tǒng)核心功能的體現(xiàn)入口,也是用戶與系統(tǒng)直接交互的窗口。系統(tǒng)的表現(xiàn)層采用ExtJS技術和 MVVM(Model-View-ViewModel,模型-視圖-視圖模型)的設計模式[11]來設計和實現(xiàn),分為用戶交互界面和邏輯處理兩部分來提高系統(tǒng)開發(fā)效率,Web界面與邏輯處理的交互選用Ajax模式,加快系統(tǒng)的響應速度,豐富表現(xiàn)層的內(nèi)容。
(1) Web界面
ExtJS的UI設計采用JavaScript語言,引用Ext封裝好的API搭建用戶界面,使界面整潔、美觀、協(xié)調(diào),方便用戶操作,極大地豐富了用戶的體驗感。Ext API自定義的皮膚,一整套的控件CSS樣式,可以根據(jù)用戶視覺感官的需求,簡單便捷地修改用戶交互界面,構(gòu)架優(yōu)雅而成熟的界面。系統(tǒng)運用ExtJS技術與傳統(tǒng)的HTML開發(fā)的Web系統(tǒng)相比優(yōu)勢體現(xiàn)在實現(xiàn)異步請求,頁面局部刷新,大量減少了網(wǎng)絡資源的占用,提高了頁面加載響應速度,實現(xiàn)了表現(xiàn)形式的多樣化。
(2) 邏輯處理
ExtJS是很常用的Ajax框架,用戶操作Web頁面響應相應的JavaScript代碼,將請求通過Ajax傳遞給邏輯處理,程序處理完再將處理結(jié)果以JSON格式傳回交互界面,交互界面通過解析JSON格式的數(shù)據(jù),將請求處理結(jié)果組織呈現(xiàn)給用戶。Ajax引擎異步運行,用戶不需要等待服務器的應答,可以在客戶端Web界面并行操作。
本系統(tǒng)面向地籍測繪數(shù)據(jù)管理Web服務,分為地圖服務、查詢統(tǒng)計分析、數(shù)據(jù)服務、權限管理和系統(tǒng)管理五大功能模塊,如圖4所示。
圖4 地籍測繪管理功能結(jié)構(gòu)
(1) 地圖服務
地圖服務包括地圖瀏覽、圖層控制和打印輸出功能。地圖瀏覽的具體功能包括地圖的放大、縮小、漫游等基本操作。圖層控制功能通過系統(tǒng)界面左邊的目錄樹控制需要圖層的顯示和隱藏。用戶還可以根據(jù)需要打印輸出專題圖提供服務。
(2) 查詢統(tǒng)計分析
查詢功能包括空間和非空間數(shù)據(jù)的查詢。通過Map的Draw事件選定感興趣的點、面實現(xiàn)空間數(shù)據(jù)的查詢,通過關鍵字實現(xiàn)屬性數(shù)據(jù)的查詢,通過空間數(shù)據(jù)和屬性數(shù)據(jù)間的關聯(lián)信息實現(xiàn)空間數(shù)據(jù)和屬性數(shù)據(jù)的交互查詢。量算功能實現(xiàn)了專題圖層的線、面長度面積的量算。用戶通過框選感興趣的區(qū)域,調(diào)出歷史數(shù)據(jù)進行對比分析,為業(yè)務辦理提供決策參考。傳統(tǒng)的WebGIS系統(tǒng)對空間數(shù)據(jù)進行查詢分析都要請求服務器處理,再將處理結(jié)果傳回客戶端表現(xiàn)。本系統(tǒng)的優(yōu)勢在于客戶端獨立完成空間數(shù)據(jù)的查詢分析等操作,用豐富的界面實現(xiàn)結(jié)果的可視化表達,節(jié)約了網(wǎng)絡資源的同時提高了效率。
(3) 數(shù)據(jù)服務
數(shù)據(jù)服務功能是用戶通過查詢統(tǒng)計分析獲得數(shù)據(jù)信息,執(zhí)行相關數(shù)據(jù)的申請、審批、下載功能??紤]到數(shù)據(jù)的安全性,因此申請、下載數(shù)據(jù)時需要提交申請人信息及申請理由。另外,外業(yè)測量獲取的新數(shù)據(jù)也可以通過系統(tǒng)上傳到服務器,保持了數(shù)據(jù)的現(xiàn)勢性和鮮活性。
(4) 用戶權限管理
針對不同部門不同崗位職能范圍不同,系統(tǒng)配置了用戶權限管理模塊。普通用戶在使用系統(tǒng)時,必須經(jīng)過注冊由管理員審核以獲得登錄資格,管理員審核用戶注冊信息時會根據(jù)申請人職位和部門的業(yè)務范圍給予一定的權限。另外,根據(jù)申請數(shù)據(jù)類型的不同,系統(tǒng)動態(tài)配置審批流程,采用這種工作流方式加快了工作進度,提高了工作效率,基本實現(xiàn)了無紙化辦公。
(5) 系統(tǒng)管理
系統(tǒng)管理功能主要包括系統(tǒng)數(shù)據(jù)庫連接信息的配置、服務器路徑的配置、在線數(shù)據(jù)的備份,以及保證系統(tǒng)的數(shù)據(jù)安全。
綜合應用ExtJS技術和REST技術,實現(xiàn)的RIA模式的地籍測繪數(shù)據(jù)管理服務如圖5所示。將系統(tǒng)部署在政務內(nèi)網(wǎng)的服務器中,供深圳市地籍測繪大隊內(nèi)部員工使用。用戶只需在客戶端安裝瀏覽器,通過注冊獲得系統(tǒng)使用權限,登錄系統(tǒng)后就可以根據(jù)自己的業(yè)務需求在Web界面執(zhí)行地圖服務、數(shù)據(jù)服務、查詢統(tǒng)計分析等功能,實現(xiàn)了地籍測繪數(shù)據(jù)的共享服務,提高了工作效率。
圖5 系統(tǒng)運行界面
本文采用ExtJS富客戶端技術和REST架構(gòu)地圖服務設計了3層架構(gòu)的富網(wǎng)絡地理信息系統(tǒng),克服了傳統(tǒng)基于HTML的WebGIS系統(tǒng)開發(fā)的局限性,同時保持了集中部署管理模型的優(yōu)越性,充分提升了客戶端的性能。另外,將RIA技術和REST技術的有機結(jié)合,強交互性使系統(tǒng)能快速、高效地處理各項進程,美觀成熟的UI豐富了系統(tǒng)的體驗性。融合使用ExtJS技術和REST技術的RIA模式系統(tǒng),實現(xiàn)了地籍測繪數(shù)據(jù)測科學、高效管理,提供了數(shù)據(jù)共享服務,讓辦公無紙化成為現(xiàn)實,促進了國土資源信息化建設進程。
參考文獻:
[1] 鐘耳順. 土地信息系統(tǒng)建設中的若干問題[J]. 國土資源信息化,2001(2):14-16.
[2] 張健挺. 網(wǎng)絡地理信息系統(tǒng)的若干問題探討[J]. 遙感信息,1997(3):8-11.
[3] 宋關福,鐘耳順,王爾琪. WebGIS—基于Internet的地理信息系統(tǒng)[J]. 中國圖象圖形學報:A輯,1998(3):251-254.
[4] 張宏,豐江帆,閭國年,等. 基于RIA技術的WebGIS研究[J]. 地球信息科學,2007,9(2):37-42.
[5] 陳謙,佘江峰,潘森,等. 基于RIA方式的WebGIS構(gòu)建[J]. 遙感信息,2009(4):89-94.
[6] 陳道鑫,宋紹云,袁中旺,等. ExtJS框架在Web軟件開發(fā)中的應用[J]. 電腦知識與技術,2011,7(9):2044-2047.
[7] 宋轉(zhuǎn)玲,劉海行,代亮,等. 基于ExtJS開發(fā)的海洋科學數(shù)據(jù)共享服務平臺[J]. 海洋科學,2010,34(2):4-9.
[8] 李久剛,唐新明,汪匯兵,等. REST架構(gòu)的WebGIS技術研究與實現(xiàn)[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服務研究與實現(xiàn)[D].北京:中國地質(zhì)大學,2008.
[11] 陳明,李猛坤,張強. 一種基于擴展MVVM模式的SaaS面向服務計算模型[J]. 微電子學與計算機,2010(8):27-30.