摘要:該文介紹了ArcIMS的各組成部件,以及在各部件之間負責通訊的ArcXML文件,在此基礎上構建了基于Struts架構的ArcIMS二次開發的技術線路體系結構。
關鍵詞:ArcIMS;ArcXML;WebGIS;Struts
中圖法分類號:TP311文獻標識碼:A 文章編號:1009-3044(2009)33-9567-02
Communication and Development on Struts of ArcIMS
XIE Song1, LI Kang-shun2
(1.Technical Department of Library, GanNam Normal University, Ganzhou 341000, China; 2.School of Information Engineering, Jiangxi University of Science and Technology, Ganzhou 341000, China)
Abstract: The paper introduces the components of ArcIMS, discusses the file-ArcXML which communicated in the components of ArcIMS, and builds a technical model framework of ArcIMS develop based on Struts.
Key words: ArcIMS; ArcXML; WebGIS; struts
隨著網絡技術的飛速發展,Internet已經成為GIS新的系統發布平臺。利用Internet技術,在Web上發布空間數據供用戶瀏覽和使用是GIS發展的必然趨勢[1]。
WebGIS具有以下的特點:基于Internet/Intranet標準;分布式服務體系結構;對空間數據資源的高效利用;發布速度快,范圍廣;數據更新及時;開發工具豐富;界面友好;系統的建設投資小[2]。
為了更好的管理和發布數據,Open GIS聯盟制定了統一的數據標準--地理標記語言(Geography Markup Language,GML),它是基于XML的用于地理信息(包括地理特征的幾何和屬性)的傳輸和存儲的編碼規范。2000年4月正式推出了GML1.0版本,2001年2月又推出了GML2.0版本。GML是一個簡單的基于文本的地理特征編碼標準,它用地理特征(Features)來描述世界,可以對很復雜的地理實體進行編碼[3]。
該文介紹的ArcIMS是目前使用最廣泛的一個WebGIS平臺, ArcXML是ESRI公司自行開發的用于ArcIMS的不同部件之間進行通訊的數據標準,是XML的擴展,符合GML2.0的規范。
1 ArcIMS簡介
ArcIMS是ESRI公司推出的一個通過Internet發布GIS功能的框架,它使創建地圖服務、開發網站與地圖服務通訊、管理站點變得很容易。使用ArcIMS強大的技術可以幫助用戶較為輕松地管理和組織空間數據,實現許多GIS功能[4]。
ArcIMS是一個由客戶端組件、應用服務連接器和服務器端組件構成的分布式系統。如圖1所示[5]。
客戶端組件就是各種瀏覽器,包括IE和Netscape等通用瀏覽器和專用Java瀏覽器。
應用服務連接器(Connector)將Web服務器和ArcIMS應用服務器連接在一起。Servlet Connector是ArcIMS的默認連接器,此外還有幾種其他的連接器:ColdFusion Connector、ActiveX Connector、Java Connector、.NET Link。
服務器端組件包括三部分:
1) 應用服務器(Application Server):控制著傳入請求,將請求傳輸到適合的空間服務器,并跟蹤在空間服務器中運行的服務。
2) 空間服務器( Spatial Server):是ArcIMS的核心部件,它管理ArcIMS的服務(Service),處理關于地圖、要素數據、地理編碼和數據獲取的請求。空間服務器的主要工作就是動態渲染地圖影像,然后將它顯示在HTML頁面上;它也產生一些動態信息,如寫某個應求應答失敗日志。
3) 管理器(Manager):包含的三個獨立的組件( Author, Designer, administrator),可以注冊圖形文件,設計網頁,發布地圖服務和管理空間服務器。
2 ArcXML文件
ArcXML(the Arc extensible markup Language,簡稱AXL)是一種發展了的標記語言,描述結構數據的內容而不是數據的表現,所有的ArcXML語句由元素和屬性組成,這些元素和屬性以等級結構組織在一起。在這種等級結構下,元素被分為父元素和子元素,子元素嵌在父元素的里面。多數的元素都有一個或多個由名稱/值對組成的屬性。這些元素和屬性并不存儲真實的數據圖層,而是記錄了相關的地理信息,如服務信息、圖層信息等引用信息。
客戶端向服務器端發送各種ArcXML請求,由ArcIMS空間服務器解析ArcXML請求,并將響應以ArcXML的形式返回給客戶端。ArcXML的幾種主要請求與響應類型如表1。
3 通訊過程
由于ArcIMS有多種連接方式,所以基于ArcIMS的WebGIS開發可供選擇的開發語言和方式很多,這里不一一列舉,僅以本人正在進行開發的一個項目為例,如表2所示。
在開發過程中引入了建立在MVC模式上的Struts技術框架作為Web服務的核心,Struts與ArcIMS空間服務器、圖形配置文件、圖形服務、請求與響應間的交互如圖2[7-8]。
來自客戶端的所有請求統一由ActionServlet接收,ActionServlet讀取配置文件struts-config.xml中的ActionMapping,調用相應的Action,Action根據需要調用JavaBean來處理請求(如下例:JavaBean接受到獲取圖像的請求,讀取GET_IMAGE.xml文件,填入minx、miny、maxx、maxy以及id的值),JavaBean再將處理過的請求向ArcIMS應用服務器發送。
以一個例子來看ArcXML是如何向空間服務器請求圖像的,發送的ArcXML內容如下:
//這是每一個XML都需要的部分,不限于ArcXML,用于說明XML的版本和編碼格式。
/*圖像的范圍*/
/*在顯示器上要顯示的圖像大小*/
/*數據庫中有兩個圖層,顯示id號為1的圖層*/
ArcIMS應用服務器接受到請求,將請求發送到ArcIMS空間服務器,由ArcIMS空間服務器解析ArcXML請求,連接數據庫獲得數據,生成相應的圖像和響應的ArcXML,然后回傳給應用服務器。響應中包含了圖像的信息,如下:
//返回圖像類型,對應
/*圖像的范圍,和REQUEST中的ENVELOPE一致*/
/*空間服務器生成的地圖的存放位置*/
JavaBean接受響應的ArcXML,提取出圖像的URL并更新JSP頁面中圖像對象的參數,ActionServlet再通知JSP頁面刷新視圖,這樣請求的圖像就在JSP頁面中被顯示出來了。
4 總結
隨著Internet技術的發展,一個開放的、標準化的、跨平臺的網絡時代已經到來。WebGIS商業產品和應用的開發將會日益蓬勃,WebGIS的發展將會為人們的生活帶來了更多方便也將會帶來巨大的社會效益和經濟效益。
參考文獻:
[1] 肖心智,蘇奮振,杜云艷,等.WebGIS性能分析與優化[J].測繪與空間地理信息,2005,2A(4).
[2] 康志瑜.王明生.GIS發展現狀及應用分析[J].石家莊鐵道學院學報,2005,18(1).
[3] 許卓群,馬堅,汪小林,等.基于GML的WebGIS應用研究[J].計算機工程,2002(7):23-26.
[4] 吳芳,王玲.Struts在基于ArcIMS屬性數據查詢中的應用[J].測繪科學,2005.30(4).
[5] 黃康,史舟.ArcIMS原理分析及應用開發[J].地球信息科學,2005,7(3).
[6] 宋楊.基于ArcIMS的WebGIS在電子政務信息系統中的應用[J].現代測繪,2005,28(2).
[7] 孫衛琴.精通Struts:基于MVC的Java Web設計與開發[M].北京:電子工業出版社,2004.