劉永偉,劉曉慧,葉長春,李西太
(中國地質大學(武漢)信息工程學院,湖北武漢 430074)
面向服務的多源異構數據Web瀏覽系統研究與實現
劉永偉?,劉曉慧,葉長春,李西太
(中國地質大學(武漢)信息工程學院,湖北武漢 430074)
分析了當前GIS空間數據多源異構的狀況,介紹了解決多源異構數據共享問題的相關技術,提出了一種網絡環境下瀏覽多源異構空間數據的系統架構,該系統面向服務基于MapGIS數據中心和MapGIS IMS-SOA開發。該體系能夠充分利用現有數據資源和網絡資源。
面向服務;中間件;多源異構數據
隨著網絡應用的擴大,人們在互聯網上對地理信息的需求也隨之增長,互聯網與GIS結合成互聯網地理信息系統(WebGIS)是GIS軟件發展的必然趨勢,而且在當前社會已經廣泛流行。但長期以來不同GIS廠商生產的數據格式不同,即使同一廠商生產的數據,隨著版本的升級也會有差異。原因在于地理數據存儲格式的不同以及數據模型與數據結構的差異,導致多源異構數據的產生,以致給GIS空間數據的集成和發布帶來了困難[1]。國產優秀平臺軟件MapGIS數據中心,很好地解決了這個問題,數據中心能夠把多源異構數據整合起來;同時平臺軟件MapGIS IMS-SOA針對MapGIS數據中心集成的多源異構數據,使用面向服務的架構,能夠在互聯網上發布這些數據,包括MapGIS 6X數據、MapGIS 7X數據、ArcGIS數據等,從而解決了多源異構數據難以集成和發布的難題。
2.1 MapGIS IMS-SOA相關技術
(1)SOA概述
SOA(Services Oriented Architecture)即面向服務的架構,是一種粗粒度、松耦合的軟件體系架構,它將應用程序服務和資源功能單元,通過服務間定義好的接口和契約聯系起來。SOA采用“發布、查找和綁定”的模式,主要包括三種角色:服務請求者、服務注冊中心、服務提供者,在這三種角色之間,SOA通過三種操作:發布、查找和綁定來實現相互聯系,SOA體系結構如圖1所示。

圖1 SOA體系結構
(2)MapGIS IMS-SOA概述
MapGIS IMS-SOA平臺在MapGIS 7-IMS的基礎上,融合了SOA的思想,采用Web Service的方式全面整合了WebGIS功能,并對各大功能進行優化,提高其性能,為MapGIS IMS用戶提供全面、優質的服務,逐步實現了組件式GIS向服務式GIS的轉化。平臺主要功能有:地圖基本顯示(放大、縮小、漫游、復位、更新、全圖顯示)、數據查詢(通過圖形的點擊、矩形、圓形、多邊形來查詢屬性)、地圖編輯、空間分析(疊加分析、緩沖區分析)、統計分析、測算、投影轉換等。
MapGIS IMS-SOA平臺的優點主要包括:異構空間數據互操作與功能共享并舉,跨GIS平臺、跨網絡的集成與應用,支持異構GIS平臺集成應用,更高的系統安全性。
MapGIS IMS-SOA平臺基于SOA架構,通過提供服務式的WebGIS開發方式。平臺把所有復雜問題隱藏在內部,通過GIS服務器和Web服務,為用戶提供一套功能強大、及其簡單的應用服務接口。
2.2 MapGIS數據中心
空間數據具有多源性、多語義性、多時空性、多尺度和獲取數據手段的復雜性等特點,這就決定了空間數據表達的復雜性。尤其是在網絡環境下如何對空間數據采用規范化的編碼使得分布在網絡下的所有用戶都可以無縫地獲取、訪問、瀏覽空間數據還存在著很大的技術問題,所以解決多源異構數據的訪問一直是WebGIS開發中需要解決的一個重要問題[2]。
(1)多源異構數據集成
目前不同GIS軟件使用的空間數據交換格式主要有:ESRI公司的Arc/Info Coverage、ArcShapeFiles和EOO格式;Autodesk公司的DXF和DWG格式;Maplnfo公司的MIF格式;Intergraph公司的DGN格式等[3]。解決這些多源數據的集成主要有以下幾種方法:
①空間數據轉換
數據轉換就是把其他格式的數據經過專門的數據轉換程序轉換成該系統的數據格式,并復制到當前系統的數據庫或文件中[4]?;谵D換器通過交換格式來完成多源數據的集成。
②直接訪問空間數據
直接訪問數據是指在一個GIS軟件中實現對其他GIS數據的直接訪問,用戶可以使用單個GIS軟件存取多種數據。
③空間數據互操作
數據互操作是指各系統遵守已經達成的統一標準,通過制定的接口相互聯系,允許各自的數據結構和數據處理方式有所不同。GIS互操作是指在異構數據庫和分布計算的情況下,GIS用戶在相互理解的基礎上,能透明地獲取所需的信息[5]。
但是以上方法各有利弊,不能滿足當前多源異構數據集成的要求,尋找合理的解決方案是GIS應用中急需解決的問題。針對以上方法存在的問題MapGIS數據中心提出了多源異構數據統一層次化管理的解決方案。
(2)MapGIS數據中心概述
數據中心全稱“數據中心集成開發平臺”,數據中心是管理和組織各種GIS數據(如MapGIS 6X、MapGIS 7X、ArcGIS數據等)、各種數據庫數據(如Oracle、SQL Server、Access等)、各種文件數據(如Word、PDF、Excel、圖像等)的集成框架,數據中心對數據的管理機制克服了異構和分布帶來的數據使用障礙,建立一個理想的應用環境。
數據中心是一種強兼容性的數據倉庫,可以在同一個框架下,把來自不同生產廠商,不同格式,不同標準,分布在不同位置的數據統一在一個系統之下,即對分布式多源異構空間數據的集成統一管理。數據中心存儲數據并不是存儲數據本身,而是通過引用數據的存放位置,對于數據的訪問有基于URL的訪問和基于GUID的訪問。
對于異構、異質的不同平臺的GIS數據,數據中心提供了中間件技術,它不需要轉換原有的數據格式,通過一個翻譯的動作在數據中心內表現和管理這些異構的GIS數據,操作這些數據就像在各自GIS平臺上操作的數據一樣。
(3)MapGIS中間件
我們借用中間件概念來定義GIS中間件,所謂GIS中間件是指在遵循統一標準的前提下,能夠嵌入各類GIS系統的軟件[6]。MapGIS數據中心采用的中間件技術實現不同平臺的GIS數據的統一管理,即多源異構數據的管理,它通過基于MapGIS的中間件擴展管理器,實現“即實現即用”中間件的配置管理。另外,中間件抽象層提供相應標準,實現可以插入其他格式數據的中間件插件。例如,通過中間件可以實現對AutoCAD,MapGIS 6X,MapInfo模型、SuperMap模型等數據模型的支持。
調用中間件功能之前需要先把中間件注冊成為MapGIS的數據源,然后添加該類的數據源,附加該類型的數據庫,這時用戶可以使用MapGIS平臺的功能操作該類異構數據。中間件的使用流程為:
①注冊中間件,中間件注冊界面如圖2所示。

圖2 中間件注冊
“中間件名稱”和“中間件描述”用戶可以自定義;“單文件特征”對于不需要操作單機文件的用戶,可以不填寫此項,否則,要填寫所要操作的文件后綴名,如果多種類型的文件,用分號將它們分開;“管理模塊”就是Xxx_Manager模塊,負責數據源的連接和數據庫的打開等操作;控制模塊就是Xxx_XCls模塊,負責簡單要素類、注記類、網絡類等類的相關操作;配置模塊就是Xxx_Config模塊,負責中間件界面回調。
如圖2所示的是ArcGISLocal中間件所對應的值。關于已經實現的四種中間件:ArcSDE、ArcGISLocal、Map-GIS6XLocal、VctGISLocal,注冊文件填寫如表1所示。

中間件注冊文件 表1
②附加數據源
中間件已被注冊成為MapGIS平臺可識別的數據源,還需要把此數據源添加到Catalog中。ArcGISLocal、VctGISLocal和MapGIS6XLocal都是僅有一個數據源,但是ArcSDE可以管理多種類型的大型數據庫(SQL Server、Oracle等),它可以添加多個數據源。
③附加數據庫
用戶要操作該類型的數據,需要把數據所在的文件夾以數據庫的形式附加到數據源中,如果該類型的數據源所包含的數據庫是一定的,數據源添加成功的同時,數據庫就已經存在,每一個ArcSDE數據源只有一個固定的數據庫,所以不用附加數據庫,那么該類型的數據源不需要步驟②。三種中間件ArcGISLocal、VctGISLocal和MapGIS6XLocal都需要附加數據庫。ArcGISLocal可以附加三種類型的數據庫:Shapefile、Access和Coverage。VctGISLocal和MapGIS6XLocal只附加一種數據庫。三種中間件附加數據庫的說明如表2所示。

附加數據庫的說明 表2
系統采用四層體系架構,依次是表示層、Web服務層、GIS服務層、數據服務層,體系架構如圖3所示。

圖3 體系架構
表示層:是用戶與WebGIS站點交互的窗口,主要由Web瀏覽器組成。
Web服務層:負責發布WebGIS站點和MapGIS WebService服務,MapGIS WebService服務負責調度GIS服務器進行GIS計算,使用IIS作為Web服務器。
GIS服務層:由多個GIS服務器組成,該層執行GIS計算和GIS計算的負載均衡,并把從數據服務層獲取的數據轉換為GIF或JPEG圖片文件,或者轉換為圖片字節流。
數據服務層:負責多源異構數據的集成,數據源包括MapGIS 6X數據、MapGIS 7X數據、ArcGIS數據等。
當用戶訪問WebGIS站點時,通過瀏覽器向Web服務器發送數據請求,傳遞用戶的地理操作參數,然后再將操作參數向MapGIS WebService發送,MapGIS WebService調度GIS服務器進行GIS計算,GIS服務器再向MapGIS數據中心讀取多源異構數據,將讀取的數據轉換為圖片文件或圖片字節流,再將轉換的結果返回給Web服務器,Web服務器再把結果傳遞給客戶端,進行顯示。
MapGIS IMS-SOA平臺的.NET二次開發是在.NET環境下進行,采用C#語言實現的,涉及較多Web開發的技術,如:HTML語言、CSS樣式表、JavaScript腳本語言、DOM模型、AJAX技術、VML語言、XML語言以及數據庫技術等。
4.1 地圖基本顯示
MapGIS IMS-SOA平臺的地圖基本顯示是Web-GIS平臺的基本功能,通過調用二次開發庫中的應用服務接口和腳本交互實現。其中,平臺所有的應用服務接口和核心腳本庫都已經集成到客戶端服務組件(MapgisWSClient.dll)中?;鹃_發原理為:先獲取到功能服務接口所需參數,然后調用Web服務,再通過數據服務器管理發布與底層進行交互,最后通過客戶端的控件返回結果信息,地圖的基本顯示功能的實現流程如圖4所示。

圖4 地圖顯示實現流程
從上面的流程圖可知,地圖顯示功能的實現主要包括三個步驟:
(1)加載地圖
客戶端瀏覽Web服務器提供的WebGIS站點,站點通過配置文件獲取服務IP地址和地圖文檔名稱,調用服務接口加載地圖文檔。
(2)獲取地圖邏輯范圍
通過腳本獲取到地圖顯示窗口的高度和寬度,轉到GetMapBound.ashx頁面,調用服務接口獲取地圖邏輯顯示范圍,并返回到客戶端。
(3)調用服務接口取圖
轉到GetMap.ashx頁面,將通過腳本獲取的地圖高度、寬度、圖片格式等參數傳遞給服務接口GetMapImage,服務端接收該信息后生成合適的地圖圖片字節流,并將字節流及相關的地圖信息傳送給Web服務器端,最后通過站點中提供的IMG標簽在客戶端顯示圖片。
4.2 地圖基本操作
基本操作功能是在地圖基本顯示的基礎上實現的,包括:放大、縮小、移動、復位和更新操作,其原理是:當執行地圖基本操作時,客戶端計算出所要獲取地圖的邏輯范圍,再將請求發送到Web服務器上調用GetMapImage服務接口重新取圖,GIS服務器生成所要請求的地圖圖片字節流返回到Web服務器,Web服務器再將字節流返回到客戶端,最后顯示在客戶端界面上,這樣就實現了放大、縮小、移動、復位和更新操作。
本文針對當前多源異構數據難以集成發布的現狀,在分析了MapGIS數據中心和MapGIS IMS-SOA相關技術的基礎上,設計了面向服務的多源異構數據Web瀏覽系統,并實現了該系統。該系統能夠充分利用網絡資源和已經擁有的多源異構數據資源,系統的分層結構模式,可以屏蔽對GIS空間數據的直接操作。
[1] 胡騰波.基于GML的WebGIS空間數據互操作研究[D].金華:浙江師范大學,2009
[2] 網絡GIS(WebGIS)主要發展趨勢及前沿應用.http:// www.gispark.com/html/webgis/2007/0517/1123.html
[3] 王穎,劉國華,林亮亮.WebGIS中異構數據源的集成[J].計算機工程,2005(31):122~124
[4] 馬照亭,潘懋,林晨等.多源空間數據的共享與集成模式研究[J].計算機工程與應用,2002(24):31~34
[5] 王卉.一種解決GIS多源數據無縫集成的方法[J].測繪工程,2003(6):11~13
[6] 周順平,魏利萍,萬波等.多源異構空問數據集成的研究[J].測繪通報,2008(5):25~27
Designing and Realizing of Multi-Source Heterogeneous Data Web Browsing System Based on SOA
Liu YongWei,Liu XiaoHui,Ye ChangChun,Li XiTai
(Department of Information Engineering,China University of Geosciences,Wuhan 430074,China)
This article analyses the status of multi-source heterogeneous GIS spatial data,and describes related technologies to solve sharing problems of multi-source heterogeneous data.Then this paper presents a system architecture which makes it enable to browse multi-source heterogeneous spatial data in network environment.The system is serviceoriented which is developed based on MapGIS data center and MapGISIMS-SOA.The architecture can make full use of existing data resources and network resources,and can provide guidance for the development of similar system.
Services Oriented Architecture;middleware;multi-source heterogeneous data
1672-8262(2011)01-35-05
P208
B
2010—04—04
劉永偉(1983—),男,碩士研究生,研究方向:WebGIS。