檀 丁,李明峰,陶 虹,譚海權(quán)
(1.南京工業(yè)大學(xué)測(cè)繪學(xué)院,江蘇南京210009;2.蘇州工業(yè)園區(qū)格網(wǎng)信息科技有限公司,江蘇蘇州215021)
面向服務(wù)的3D WebGIS異構(gòu)系統(tǒng)框架研究
檀 丁1,李明峰1,陶 虹2,譚海權(quán)2
(1.南京工業(yè)大學(xué)測(cè)繪學(xué)院,江蘇南京210009;2.蘇州工業(yè)園區(qū)格網(wǎng)信息科技有限公司,江蘇蘇州215021)
提出基于面向服務(wù)的架構(gòu)體系,利用Web服務(wù)技術(shù),解決構(gòu)建3D WebGIS時(shí)選用分布式網(wǎng)絡(luò)結(jié)構(gòu)帶來的數(shù)據(jù)共享及異構(gòu)系統(tǒng)互操作等問題。并在研究面向服務(wù)架構(gòu)(SOA)及Web服務(wù)的基礎(chǔ)上,建立基于ArcGIS Server的3D WebGIS試驗(yàn)系統(tǒng),驗(yàn)證SOA在3D WebGIS互操作中應(yīng)用的可行性。
3D WebGIS;互操作;面向服務(wù)架構(gòu)(SOA);Web服務(wù)
結(jié)合WebGIS與三維可視化技術(shù)形成的網(wǎng)絡(luò)三維地理信息系統(tǒng)(3D WebGIS)已成為GIS的發(fā)展趨勢(shì)。鑒于3D WebGIS的龐大體系及海量空間數(shù)據(jù),為減輕服務(wù)器壓力并提高效率,系統(tǒng)多采用分布式網(wǎng)絡(luò)結(jié)構(gòu)。但由此造成的數(shù)據(jù)形式多樣性及分布系統(tǒng)間的差異性,即系統(tǒng)的異構(gòu),使得數(shù)據(jù)與功能的共享及互操作成為難點(diǎn)[1]。本文提出采用面向服務(wù)的架構(gòu)體系,特別是利用Web服務(wù),實(shí)現(xiàn)3D WebGIS異構(gòu)系統(tǒng)間的數(shù)據(jù)及功能的共享與互操作。
1.分布式GIS的異構(gòu)及缺陷
隨著應(yīng)用的復(fù)雜化,網(wǎng)絡(luò)應(yīng)用從最初的兩層C/ S結(jié)構(gòu)發(fā)展為多層B/S模式,同時(shí),數(shù)據(jù)庫(kù)與應(yīng)用邏輯的分離,也使數(shù)據(jù)端壓力減小。但由于系統(tǒng)復(fù)雜性不斷增強(qiáng),客戶對(duì)Web服務(wù)端的訪問頻率猛增,單一服務(wù)器無法及時(shí)處理大量空間信息服務(wù)操作[2],因此產(chǎn)生了分布式網(wǎng)絡(luò)結(jié)構(gòu)。而將這種結(jié)構(gòu)應(yīng)用于GIS所形成的分布式GIS是指GIS數(shù)據(jù)和應(yīng)用程序分散于多個(gè)服務(wù)器,從而克服了傳統(tǒng)集中式系統(tǒng)易導(dǎo)致中心服務(wù)器資源緊張及響應(yīng)遲緩的缺陷。但也帶來了分布式GIS平臺(tái)中的異構(gòu)系統(tǒng)間互操作及數(shù)據(jù)集成與共享等問題。
作為比傳統(tǒng)GIS系統(tǒng)更復(fù)雜的3D WebGIS系統(tǒng),為了實(shí)現(xiàn)海量空間數(shù)據(jù)的均衡分布和復(fù)雜計(jì)算的分散式布局,理所當(dāng)然采用了分布式網(wǎng)絡(luò)結(jié)構(gòu)。但同樣面臨平臺(tái)中異構(gòu)系統(tǒng)間的數(shù)據(jù)共享及互操作等難題。
2.異構(gòu)GIS的互操作
對(duì)于采用分布式結(jié)構(gòu)的3D WebGIS系統(tǒng),分布于多個(gè)數(shù)據(jù)服務(wù)器的空間數(shù)據(jù)常采用不同的數(shù)據(jù)格式;分布式應(yīng)用邏輯則需要使用分布式的對(duì)象模型;分散于不同服務(wù)器的子系統(tǒng)多采用緊耦合,因此造成了3D WebGIS平臺(tái)內(nèi)的數(shù)據(jù)及子系統(tǒng)間的異構(gòu)。為了將分布于不同服務(wù)器的資源整合為一個(gè)完整的3D WebGIS系統(tǒng),就要求既要實(shí)現(xiàn)異構(gòu)空間數(shù)據(jù)的共享,又要完成數(shù)據(jù)、功能的互操作。
所謂互操作,是指不同功能單元間相互通信、執(zhí)行程序、傳遞數(shù)據(jù)的能力[3]。傳統(tǒng)意義上的GIS互操作包括空間數(shù)據(jù)的相互轉(zhuǎn)換、開放應(yīng)用程序接口(API)等[4]。但因數(shù)據(jù)格式的差異,數(shù)據(jù)轉(zhuǎn)化勢(shì)必造成信息丟失,而針對(duì)不同API編程,則工作量大、擴(kuò)展性差。因此亟須研究一種新的模式,以實(shí)現(xiàn)3D WebGIS異構(gòu)系統(tǒng)的互操作。
針對(duì)上述分布式系統(tǒng)在集成及互操作方面的缺陷,本文提出采用面向服務(wù)架構(gòu)來解決資源共享及互操作問題。
1.面向服務(wù)架構(gòu)(SOA)
面向服務(wù)架構(gòu)(SOA)是一種松耦合、基于標(biāo)準(zhǔn)和獨(dú)立于協(xié)議的分布式軟件設(shè)計(jì)模型[5]。其目的是解決大型系統(tǒng)中不同模塊、不同功能的相互調(diào)用問題,以提高系統(tǒng)開發(fā)過程中數(shù)據(jù)交換的靈活性、程序和數(shù)據(jù)的重用性及系統(tǒng)的擴(kuò)展性[6]。
在此架構(gòu)下,服務(wù)成為核心概念。SOA由一系列相互交互的服務(wù)組成[7],服務(wù)定義了一個(gè)與業(yè)務(wù)數(shù)據(jù)或業(yè)務(wù)功能有關(guān)的接口,且不依賴于特定技術(shù)或平臺(tái)[8]。這種通過服務(wù)實(shí)現(xiàn)業(yè)務(wù)功能的方式具有跨平臺(tái)、易擴(kuò)展、可復(fù)用等特性。SOA結(jié)構(gòu)(如圖1所示)包括服務(wù)提供者、服務(wù)注冊(cè)中心和服務(wù)請(qǐng)求者。服務(wù)提供者將服務(wù)的描述信息發(fā)布到服務(wù)注冊(cè)中心,服務(wù)請(qǐng)求者則在注冊(cè)中心查找、定位所需服務(wù),并調(diào)用該服務(wù)。
圖1 SOA結(jié)構(gòu)圖
2.基于SOA的Web服務(wù)
(1)Web服務(wù)及特性
Web服務(wù)作為SOA的一種具體實(shí)現(xiàn)方式,是封裝成單個(gè)實(shí)體并發(fā)布到網(wǎng)絡(luò)上供其他程序使用的功能集合。它提供一個(gè)與運(yùn)行環(huán)境、程序語(yǔ)言無關(guān)的平臺(tái)來實(shí)現(xiàn)網(wǎng)絡(luò)應(yīng)用的共享,并具有如下特性。
1)封裝性:Web服務(wù)將服務(wù)的實(shí)現(xiàn)過程與服務(wù)接口分離,對(duì)于使用者,只需了解服務(wù)接口,不必追究其實(shí)現(xiàn)過程,具有良好的封裝性。
2)互操作性:因采用SOA的體系結(jié)構(gòu),避免了不同協(xié)議間轉(zhuǎn)換的問題。可供不同平臺(tái)、不同語(yǔ)言的系統(tǒng)間調(diào)用。
3)松散耦合:因服務(wù)的實(shí)現(xiàn)與調(diào)用接口分離,因此對(duì)使用者而言,只要服務(wù)調(diào)用界面不發(fā)生改變,服務(wù)實(shí)現(xiàn)過程發(fā)生的變化,并不影響其使用[8]。
(2)Web服務(wù)實(shí)現(xiàn)互操作的關(guān)鍵技術(shù)
簡(jiǎn)單對(duì)象訪問協(xié)議(SOAP)、Web服務(wù)描述語(yǔ)言(WSDL)以及統(tǒng)一描述、發(fā)現(xiàn)和集成協(xié)議(UDDI)[9]是Web服務(wù)的3大關(guān)鍵技術(shù)。
SOAP作為分布式環(huán)境下信息交換的輕量級(jí)協(xié)議,在服務(wù)請(qǐng)求者和服務(wù)提供者之間定義了一個(gè)通信協(xié)議[8]。建立在這些通信協(xié)議上的Web服務(wù)需要通過基于XML語(yǔ)法的WSDL進(jìn)行描述。WSDL為服務(wù)提供了描述構(gòu)建在不同協(xié)議或編碼方式上的Web服務(wù)或Web服務(wù)中的方法[10]。而UDDI則是用來存儲(chǔ)業(yè)務(wù)信息和發(fā)布服務(wù)的注冊(cè)表,該注冊(cè)表是一個(gè)關(guān)于所有注冊(cè)的 Web服務(wù)的信息集合[10]。
Web服務(wù)為用戶提供了一種標(biāo)準(zhǔn)化接口(如圖2所示),即一種公認(rèn)的統(tǒng)一接口。在實(shí)際應(yīng)用中,這些公共接口是開發(fā)者根據(jù)接口規(guī)范開發(fā)的交互式組件,各系統(tǒng)通過這些組件來實(shí)現(xiàn)不同類型地理數(shù)據(jù)和地理處理的透明訪問。由于這類接口具有統(tǒng)一形式,不同異構(gòu)系統(tǒng)均能調(diào)用,因此異構(gòu)系統(tǒng)間互操作可通過這一標(biāo)準(zhǔn)接口進(jìn)行串聯(lián)。
圖2 基于Web服務(wù)公共接口的互操作
3D WebGIS相對(duì)于平面GIS系統(tǒng),最大的特點(diǎn)在于三維數(shù)據(jù)的網(wǎng)絡(luò)共享及操作。本文采用開放地理信息聯(lián)盟(OGC)針對(duì)三維空間數(shù)據(jù)而提出的服務(wù)——網(wǎng)絡(luò)三維模型服務(wù)(W3DS)進(jìn)行三維數(shù)據(jù)的網(wǎng)絡(luò)傳遞及展現(xiàn)。
1.網(wǎng)絡(luò)三維模型服務(wù)(W3DS)與三維地圖
OGC針對(duì)空間地理信息標(biāo)準(zhǔn)化及空間數(shù)據(jù)互操作制定了GIS Web服務(wù)框架。該框架包括網(wǎng)絡(luò)地圖服務(wù)(WMS)、網(wǎng)絡(luò)地形服務(wù)(WTS)、網(wǎng)絡(luò)要素服務(wù)(WFS)等。而網(wǎng)絡(luò)三維模型服務(wù)(W3DS)則是對(duì)指定區(qū)域的三維地理數(shù)據(jù)和地理元素進(jìn)行傳遞和展示。可通過W3DS提供的動(dòng)態(tài)三維場(chǎng)景在客戶端進(jìn)行渲染并支持用戶交互式的瀏覽。但僅用W3DS只能提供瀏覽,不能體現(xiàn)出地理信息。因此,為實(shí)現(xiàn)三維GIS功能,需整合WFS在內(nèi)的其他GIS服務(wù)。
W3DS實(shí)現(xiàn)的是對(duì)已有三維模型數(shù)據(jù)的傳遞和展現(xiàn),而更基礎(chǔ)的則是3D WebGIS中三維模型的構(gòu)建,即三維地圖的創(chuàng)建。三維地圖包含三維地形建模及三維建筑建模等。三維地形建??刹捎脭?shù)字高程模型(DEM)構(gòu)造不規(guī)則三角網(wǎng)(TIN),以此方式建立的模型能逼真模擬出地形的起伏;三維建筑建模則可采用帶有高程的平面數(shù)據(jù)直接按高程拉升或?qū)I(yè)三維建模軟件建模兩種方式,最終將地形、建筑及小品數(shù)據(jù)整合為完整的三維地圖,并通過W3DS發(fā)布成三維地圖服務(wù)。
2.基于Web服務(wù)的3D WebGIS框架
針對(duì)以上研究,筆者提出構(gòu)建基于Web服務(wù)的3層分布式結(jié)構(gòu)的3DWebGIS系統(tǒng)框架,其結(jié)構(gòu)(如圖3所示)中含有系統(tǒng)客戶端、服務(wù)層及空間數(shù)據(jù)庫(kù)3層。
圖3 基于Web服務(wù)的3D WebGIS架構(gòu)
1)客戶端主要實(shí)現(xiàn)三維空間數(shù)據(jù)的渲染及動(dòng)態(tài)交互,以及對(duì)服務(wù)結(jié)果的表現(xiàn)。可為普通瀏覽器或特定的三維系統(tǒng)瀏覽平臺(tái)。
2)服務(wù)層包括對(duì)三維數(shù)據(jù)庫(kù)中模型的調(diào)用及相應(yīng)的分析計(jì)算。根據(jù)SOA中指定的角色,需建立UDDI注冊(cè)中心,對(duì)現(xiàn)有三維GIS服務(wù)進(jìn)行發(fā)布和管理。通過WSDL動(dòng)態(tài)綁定GIS服務(wù),實(shí)現(xiàn)三維空間數(shù)據(jù)的傳輸和交互,并進(jìn)行三維分析計(jì)算,將最終結(jié)果返回客戶端。通過Web服務(wù)的方式實(shí)現(xiàn)三維異構(gòu)系統(tǒng)間的數(shù)據(jù)及分析功能的共享和互操作。
3)數(shù)據(jù)庫(kù)包含基礎(chǔ)地理信息數(shù)據(jù),以及三維地形、建筑模型和紋理數(shù)據(jù)等,為了實(shí)現(xiàn)三維分析功能,還存儲(chǔ)了三維屬性數(shù)據(jù)等。
用戶通過客戶端發(fā)送服務(wù)請(qǐng)求,Web服務(wù)器發(fā)回WSDL文件,描述服務(wù)接口。在此基礎(chǔ)上,用戶通過調(diào)用接口綁定GIS Web服務(wù)及三維GIS服務(wù),并將服務(wù)結(jié)果以通用協(xié)議的形式返回客戶端??蛻舳藙t根據(jù)返回的文件解析出結(jié)果并展示出來。
在研究了采用服務(wù)架構(gòu)進(jìn)行異構(gòu)系統(tǒng)互操作的基礎(chǔ)上,筆者應(yīng)用Esri公司推出的基于SOA的服務(wù)端產(chǎn)品ArcGIS Server,開發(fā)了3D WebGIS試驗(yàn)系統(tǒng)(如圖4所示)。
圖4 基于ArcGIS Server的園區(qū)三維系統(tǒng)
以蘇州工業(yè)園區(qū)內(nèi)10 km2的TIN模型及正射影像圖構(gòu)造地形模型,并結(jié)合該區(qū)域內(nèi)的三維建筑模型及其他地理數(shù)據(jù)作為數(shù)據(jù)層??蛻舳藙t選用支持三維瀏覽的ArcGIS Explorer瀏覽平臺(tái),以實(shí)現(xiàn)三維地圖的漫游、縮放以及GIS分析結(jié)果的展示。
本系統(tǒng)通過采用面向服務(wù)的分布式結(jié)構(gòu),完成了三維數(shù)據(jù)的瀏覽顯示,并實(shí)現(xiàn)了包括空間查詢、斷面分析、路徑分析、屬性查詢等在內(nèi)的空間分析功能。驗(yàn)證了面向服務(wù)的分布式3D WebGIS的可行性及其對(duì)異構(gòu)系統(tǒng)的良好數(shù)據(jù)共享和互操作性。
通過具有典型SOA架構(gòu)的ArcGIS Server部署3D WebGIS,不僅實(shí)現(xiàn)了三維數(shù)據(jù)的瀏覽,并能結(jié)合ArcGIS強(qiáng)大的分析功能,利用空間信息處理服務(wù)的方式,進(jìn)行三維空間分析,從而真正實(shí)現(xiàn)GIS為決策服務(wù)?;贏rcGIS Server的試驗(yàn)系統(tǒng)表明,利用面向服務(wù)的分布式架構(gòu)不僅能實(shí)現(xiàn)異構(gòu)3DWebGIS的互操作,更能提供高效的三維數(shù)據(jù)瀏覽及空間分析功能。
[1] 張書亮,戚海峰,張亦鳴,等.空間互操作框架集成模式分析[J].地球信息科學(xué),2006,8(4):88-95.
[2] 龔震宇,賈利民.一種分布式空間信息服務(wù)的互操作模型[J].交通運(yùn)輸系統(tǒng)工程與信息,2005,5(6): 62-67.
[3] 郭雷,方立東,陳天滋.基于Web服務(wù)的數(shù)字城市信息資源共享平臺(tái)[J].計(jì)算機(jī)工程與設(shè)計(jì),2005,26(3):627-633.
[4] 張明明,梁勇.基于Web Service的GIS互操作研究[J].計(jì)算機(jī)與現(xiàn)代化,2007(10):114-116.
[5] 鄒濱,曾永年,董明輝,等.SOA理念下面向Web服務(wù)的網(wǎng)絡(luò)空間數(shù)據(jù)共享模型研究[J].測(cè)繪科學(xué),2008,33(5):106-108.
[6] 蔣許鋒,李承鑫,王冬.基于SOA的城市道路橋梁巡查GIS系統(tǒng)的實(shí)現(xiàn)[J].城市勘察,2010(4):67-69.
[7] 李德仁,黃俊華,邵振峰.面向服務(wù)的數(shù)字城市共享平臺(tái)框架的設(shè)計(jì)與實(shí)現(xiàn)[J].武漢大學(xué)學(xué)報(bào):信息科學(xué)版,2008,33(9):881-885.
[8] 魯喆.面向服務(wù)的水利GIS平臺(tái)構(gòu)建[D].南昌:南昌大學(xué),2008.
[9] 唐桂文.基于數(shù)字地球平臺(tái)的地理信息服務(wù)[D].北京:首都師范大學(xué),2008.
[10] 易敏.面向服務(wù)架構(gòu)(SOA)的空間信息服務(wù)研究[D].上海:華東師范大學(xué),2008.
Research on the Framework of 3D WebGIS Heterogeneous Systems Based on Service-oriented Architecture
TAN Ding,LI Mingfeng,TAO Hong,TAN Haiquan
0494-0911(2011)10-0065-03
P208
B
2011-04-22
江蘇省測(cè)繪局科研資助項(xiàng)目(JSCHKY200903);國(guó)土環(huán)境與災(zāi)害監(jiān)測(cè)國(guó)家測(cè)繪局重點(diǎn)實(shí)驗(yàn)室開放基金資助項(xiàng)目(LEDM2010B05)
檀 丁(1987—),男,安徽安慶人,碩士生,主要研究方向?yàn)镚IS及其三維可視化。