摘要:運用基于面向服務的體系結(jié)構(gòu)(SOA)的Web Service技術(shù)可以為WebGIS中諸如并發(fā)訪問能力、系統(tǒng)的異構(gòu)兼容性、系統(tǒng)的集成和維護、信息共享和發(fā)布以及跨平臺互操作等多方面的問題,提供較為理想的應用方案。MapGIS-IMS SOA開發(fā)平臺采用SOA構(gòu)建分布式WebGIS,將服務與WebGIS相結(jié)合,用服務構(gòu)建封裝好的、可重用的、易拓展維護WebGIS。
關(guān)鍵詞:SOA;Web服務;WebGIS;MapGIS-IMS;GIS
Research and Implement of WebGIS Based on MapGIS-IMS SOA
GUO Kai
(College of Computer Science Technology, Wuhan University of Technology, Wuhan 430063, China)
Abstract: The Web Service technology based on service-oriented architecture (SOA) can provide more ideal applications for such problems in WebGIS as the concurrent access capability, the heterogeneous compatibility of system, systematic integration and maintenance, information sharing and dissemination, as well as cross-platform interoperability. Combining services and WebGIS, the MapGIS-IMS SOA development platform constructs the distributed WebGIS through adoption of SOA and also, through services, the reusable WebGIS, good packaged and easy to expand and maintain.
Key words: SOA; web service; WebGIS; MapGIS-IMS; GIS
傳統(tǒng)的WebGIS[1-2]是一種獨立、封閉式的系統(tǒng),各WebGIS產(chǎn)品是一種緊密耦合的產(chǎn)品,各WebGIS產(chǎn)品各自包含了從數(shù)據(jù)管理、數(shù)據(jù)傳輸?shù)綌?shù)據(jù)表現(xiàn)等全套的數(shù)據(jù)處理功能,且不同的產(chǎn)品有不同的接口,所管理的地理空間數(shù)據(jù)也不相同,這樣對于特定的地理空間信息資源只能通過特定的WebGIS產(chǎn)品來訪問,從而形成了分布在Internet上的一個個“信息孤島”,這給地理空間信息共享帶來了困難[3-4]。
采用SOA這種方法構(gòu)建的分布式WebGIS可以將功能作為服務交付給終端用戶,也可以構(gòu)建其他的GIS服務[5]。這樣做可以實現(xiàn)空間信息共享和空間信息服務,提高空間信息的利用率,消除“信息孤島”。
而中地數(shù)碼開發(fā)的MapGIS-IMS SOA,是一個高效、敏捷的服務式WEBGIS開發(fā)平臺,提供基于網(wǎng)絡(luò)的空間數(shù)據(jù)的共享發(fā)布和全功能GIS服務。
1 面向服務的體系結(jié)構(gòu)
1.1 SOA概述
面向服務的體系結(jié)構(gòu)(service-oriented architecture, SOA)是一個組件模型。面向服務的體系結(jié)構(gòu)將應用程序中的不同功能單元稱為服務,并通過對這些服務之間定義良好的接口而將其聯(lián)系起來。接口是采用中立的方式進行定義的,也就是說它應該獨立于實現(xiàn)服務的硬件平臺、操作系統(tǒng)和編程語言。這使得構(gòu)建在各種這樣的系統(tǒng)中的服務可以以一種統(tǒng)一和通用的方式進行交互,如圖1。
雖然面向服務的體系結(jié)構(gòu)不是一個新鮮事物,但它卻是更傳統(tǒng)的面向?qū)ο蟮哪P偷奶娲P汀W鳛榫o耦合的面向?qū)ο蟮哪P鸵呀?jīng)存在二十多年了。雖然基于SOA的系統(tǒng)并不排除使用面向?qū)ο蟮脑O(shè)計來構(gòu)建單個服務,但是其整體設(shè)計卻是面向服務的。由于考慮到了系統(tǒng)內(nèi)的對象,所以雖然SOA是基于對象的,但是作為一個整體卻不是面向?qū)ο蟮模煌幵谟诮涌诒旧怼OA系統(tǒng)原型的一個典型例子是通用對象請求代理體系結(jié)構(gòu)CORBA(Common Object Request Broker Architecture)。CORBA已經(jīng)出現(xiàn)很長時間了,其定義的概念與SOA相似[6-7]。
然而,現(xiàn)在的SOA因為基于一些更新的軟件技術(shù)己經(jīng)有所不同了,這些技術(shù)是以可擴展標記語言(Extensible Markup Language)為基礎(chǔ)的。通過使用Web服務描述語言(Web Services Definition Language, WSDL),這種基于XML的語言來描述接口,服務己經(jīng)轉(zhuǎn)到更動態(tài)且更靈活的接口系統(tǒng)中,非以前CORBA中的接口描述語言(Interface Definition Language, IDL)可比。
1.2 SOA服務概念
Web Services是一種構(gòu)建應用程序的普遍模型,可以在任何支持網(wǎng)絡(luò)通信的操作系統(tǒng)中實施運行。定義如下:所謂Web Services(Web服務),是指那種自包含、自描述、模塊化的應用程序,這類應用程序能夠被發(fā)布、定位,并通過Web實現(xiàn)動態(tài)地調(diào)用。 利用Web服務技術(shù),可以很好地實現(xiàn)服務在Web層次的互操作,并為服務的整合,特別是電子商務領(lǐng)域中商業(yè)過程的組合或服務鏈的形成提供了良好的基礎(chǔ)[8]。
在構(gòu)建和使用Web Service時,主要用到以下幾個關(guān)鍵的技術(shù):
1) XML:描述數(shù)據(jù)的標準方法。2) SOAP:表示信息交換的協(xié)議。3) WSDL:Web服務描述語言。4) UDDI(Universal Description, Discovery and Integration):通用描述、發(fā)現(xiàn)與集成,它是一種獨立于平臺的,基于XML語言的用于在互聯(lián)網(wǎng)上描述商務的協(xié)議。
實際上,Web Service的主要目標是跨平臺的可互操作性。為了達到這一目標,Web Service完全基于XML(可擴展標記語言)、XSD(XML Schema)等獨立于平臺、獨立于軟件供應商的標準,是創(chuàng)建可互操作的、分布式應用程序的新平臺。由此可以看出,使用Web Service會帶來極大的好處[9]:
1) 良好的封裝性:Web Service是一種部署在 Web 上的對象,對于使用者而言,他能且僅能看到該對象提供的功能列表。
2) 松散耦合:Web Service實現(xiàn)的任何變更對調(diào)用者來說都是透明的,其實現(xiàn)平臺(如.Net 或 J2EE)的變化對用戶絲毫沒有影響。
3) 使用標準協(xié)議規(guī)范:Web Service其所有公共的協(xié)約完全使用開放的標準協(xié)議進行描述、傳輸和交換。
4) 通用的數(shù)據(jù)格式:Web Service 使用XML來實現(xiàn)通訊,任何支持同樣的開放式標準的系統(tǒng)都能夠理解Web Service。
5) 跨平臺: 也就是其實現(xiàn),部署可以采用不同的操作系統(tǒng),編程環(huán)境,相互調(diào)用不存在任何障礙。
6) 跨防火墻。
2 MapGIS-IMS SOA
2.1 平臺簡介
MAPGIS-IMS SOA平臺基于SOA框架,提供服務式的WebGIS開發(fā),這是MAPGIS-IMS的一個突破。平臺提供基于網(wǎng)絡(luò)的空間數(shù)據(jù)的共享發(fā)布和全功能GIS服務,具備“縱向多級,橫向網(wǎng)格”的分布式體系結(jié)構(gòu),擁有跨平臺、跨網(wǎng)絡(luò)、跨語言的特性。
MAPGIS-IMS SOA平臺把所有復雜問題隱藏在內(nèi)部,為用戶提供一套功能強大、及其簡單的應用服務接口,用戶直接調(diào)用這些二次開發(fā)接口便能簡單、快速的開發(fā)出各種功能的WebGIS站點。
2.2 體系架構(gòu)
MapGIS-IMS SOA體系架構(gòu)如圖2所示。
1) 客戶端:采用普通Web瀏覽器,用來訪問WebGIS站點,并向GIS Web服務集成端提交操作請求。
2) GIS Web服務集成端:提供GIS Web服務的應用接口,接受客戶端發(fā)來的請求,通過IIS/Tomcat網(wǎng)絡(luò)服務器、Web服務示例站點處理請求,并調(diào)用GIS Web服務層GIS核心處理接口。
3) GIS Web服務層: Web服務處理的核心層,提供核心WebGIS功能,如地圖查詢、編輯、空間分析、網(wǎng)絡(luò)分析等核心接口。
4) MAPGIS7數(shù)據(jù)服務器:提供MAPGIS7二次開發(fā)組件,為GIS Web服務層提供數(shù)據(jù)和底層支持。
2.3 系統(tǒng)實現(xiàn)
MAPGIS-IMS SOA平臺使WebGIS系統(tǒng)開發(fā)起來更加方便、高速,可以讓開發(fā)人員對Web服務的使用從簡單的客戶端—服務器模型擴展成任意復雜的系統(tǒng)。
2.3.1 NGSIG簡介
NGSIG:是國家空間地質(zhì)信息網(wǎng)格項目的簡稱。
課題背景:
1) 地質(zhì)調(diào)查工作中數(shù)據(jù)密集、計算密集、資源分布、異構(gòu)等問題制約了行業(yè)應用和信息化發(fā)展 ,空間信息網(wǎng)格應運而生。
2) NGSIG采用“網(wǎng)格”的設(shè)計思想,以大型GIS(主要為MAPGIS7.0)平臺為支撐,兼容異構(gòu)網(wǎng)絡(luò)和平臺。
3) 網(wǎng)格以GIS Web 服務為核心,發(fā)布服務的各節(jié)點高度自治。
2.3.2 中國地質(zhì)調(diào)查信息網(wǎng)格簡介
中國地質(zhì)調(diào)查信息網(wǎng)格:是以地質(zhì)調(diào)查信息化成果為對象,通過多源、異構(gòu)、海量地質(zhì)空間數(shù)據(jù)、軟硬件資源一體化描述、存儲、組織、發(fā)現(xiàn)、分布式共享和協(xié)同的機制,基于SIG,網(wǎng)格GIS技術(shù),是一個具有開放性、集成性、可重構(gòu)性、可重用性、良好的伸縮性一站式地質(zhì)調(diào)查信息化共享與服務平臺,面向政府、企(事)業(yè)、公司和個人提供全方位的地質(zhì)調(diào)查信息化建設(shè)成果(數(shù)據(jù)資源、計算資源、軟件資源)集成與共享服務。
3 結(jié)論
針對目前WebGIS系統(tǒng)存在的數(shù)據(jù)共享困難、難以與其它應用系統(tǒng)集成、可擴展性不強、開發(fā)維護成本高等缺陷,WebGIS開發(fā)技術(shù)正從組件式GIS向服務式GIS發(fā)展。中地數(shù)碼開發(fā)的MapGIS-IMS SOA平臺提供一種新型基于SOA的分布式架構(gòu)方案,可以實現(xiàn)不同GIS平臺的空間數(shù)據(jù)互操作以及可處理TB級海量空間數(shù)據(jù),并且提供windows+Unix的GIS解決方案。
參考文獻:
[1] 龔健雅,杜道生.當代地理信息技術(shù)[M].北京:科學出版社,2004:92-95.
[2] 閭國年,張書亮,龔敏霞,等.地理信息系統(tǒng)的集成原理與方法[M].北京:科學出版社,2003:261-263.
[3] 趙需生,楊崇俊.Web-GIS的設(shè)計與實現(xiàn)[J].中國圖象圖形學報,2000,5(1).
[4] 劉南,劉仁義.WebGIS原理及其應用[M].北京:科學出版社,2002.
[5] 李飛雪,李滿春,梁健.基于SOA的WebGIS框架探索[J].計算機應用,2006,26(9):2225~2228.
[6] 魏東.基于SOA體系結(jié)構(gòu)軟件開發(fā)的研究與實現(xiàn)[D].西安:西北大學,2005.
[7] 王兵.基于面向服務架構(gòu)的應用系統(tǒng)開發(fā)與集成研究[D].四川大學,2005.
[8] 柴曉路.Web服務架構(gòu)與開放互操作技術(shù)[M].北京:清華大學出版社,2002.
[9] 柴曉路,梁宇奇.Web Services技術(shù)、架構(gòu)和應用[M].北京:電子工業(yè)出版社,2003.