梁建國(guó),徐占華,夏 君
(1.武漢大學(xué)測(cè)繪學(xué)院,湖北武漢 430079;2.重慶市勘測(cè)院,重慶 400020)
面向服務(wù)的空間信息共享機(jī)制設(shè)計(jì)與實(shí)現(xiàn)
梁建國(guó)1,2,徐占華2,夏 君2
(1.武漢大學(xué)測(cè)繪學(xué)院,湖北武漢 430079;2.重慶市勘測(cè)院,重慶 400020)
SOA是當(dāng)前研究熱點(diǎn)問(wèn)題之一。結(jié)合 Flex和 JavaScript等技術(shù),采用 SOA來(lái)構(gòu)建空間信息共享服務(wù)機(jī)制。這種服務(wù)具有受眾面廣、開發(fā)簡(jiǎn)單、用戶體驗(yàn)豐富的特點(diǎn)。
Flex;JavaScript;SOA;空間數(shù)據(jù)共享
伴隨著全球網(wǎng)絡(luò)普及程度的提高,人類社會(huì)空間在信息概念上逐步縮小,GIS與 Internet的融合形成了WebGIS,使網(wǎng)絡(luò)環(huán)境下實(shí)現(xiàn)地理空間信息共享成為可能,并逐漸發(fā)展成為實(shí)現(xiàn)地理信息共享、服務(wù)于經(jīng)濟(jì)建設(shè)和國(guó)防建設(shè)的主要手段[1]。我國(guó)地理空間信息共享從發(fā)展歷程上講,大致分為三個(gè)階段:①面向文件的地理信息共享。最初主要介質(zhì)包括磁盤、光盤、硬盤和磁帶等,后伴隨著網(wǎng)絡(luò)應(yīng)用普及用戶直接上傳和下載地理空間數(shù)據(jù)文件來(lái)共享地理信息,或在局域網(wǎng)內(nèi)部直接讀取服務(wù)器上同一份數(shù)據(jù)文件。②面向數(shù)據(jù)庫(kù)的地理信息共享。2000年前后空間數(shù)據(jù)庫(kù)逐漸普及,并支持多用戶并發(fā)訪問(wèn)和寫操作,多客戶端可直接訪問(wèn)統(tǒng)一數(shù)據(jù)服務(wù)器以獲得可控版本統(tǒng)一性。③面向服務(wù)的地理信息共享。2008年面向服務(wù)的架構(gòu)(service oriented architecture,SOA)成為主流軟件工程方法,可將 GIS全部功能封裝為Web服務(wù),實(shí)現(xiàn)多種客戶端跨平臺(tái)、跨網(wǎng)絡(luò)、跨語(yǔ)言的調(diào)用,并具有服務(wù)聚合能力以集成來(lái)自其他服務(wù)器的 GIS服務(wù)[2]。
“十一五”測(cè)繪規(guī)劃中提到要基本建成數(shù)字中國(guó)地理空間框架,初步形成信息化測(cè)繪體系[3]。一定程度上說(shuō),信息化測(cè)繪的本質(zhì)特征就是實(shí)現(xiàn)實(shí)時(shí)有效的地理信息綜合服務(wù)[4]。從服務(wù)方式上劃分,傳統(tǒng)的測(cè)繪和數(shù)字化測(cè)繪基本上強(qiáng)調(diào)以“提供”為主導(dǎo),而信息化測(cè)繪卻真正以“服務(wù)”為主導(dǎo),因此服務(wù)方式必然向買方市場(chǎng)即需求模式轉(zhuǎn)變[5],面向服務(wù)的空間信息共享機(jī)制非常符合社會(huì)的發(fā)展方向和技術(shù)潮流。目前全國(guó)各大 GIS公司和測(cè)繪企事業(yè)單位也都在積極探索共享方案的可行性和實(shí)用性。本文結(jié)合日常工作實(shí)際,以重慶市公眾地圖服務(wù)平臺(tái)技術(shù)框架為例,論述面向服務(wù)的空間地理信息共享機(jī)制的設(shè)計(jì)與實(shí)現(xiàn)。
自 20世紀(jì) 60年代以來(lái),計(jì)算模式發(fā)展經(jīng)歷了單機(jī)計(jì)算、集中計(jì)算和 C/S模式、B/S(三層架構(gòu))模式的不同階段,正逐漸進(jìn)入以Web Services為主要特征的計(jì)算模式[6]。本文設(shè)計(jì)的面向服務(wù)的空間信息共享框架結(jié)構(gòu)如圖 1所示。面向服務(wù)的空間信息共享框架是一個(gè)松散分布的機(jī)制,它可以被部署在幾個(gè)不同機(jī)器上,也是一個(gè)基于 B/S模式的空間信息共享平臺(tái)。它分為數(shù)據(jù)層、服務(wù)層和客戶層三層結(jié)構(gòu)。其中,數(shù)據(jù)層主要包括數(shù)據(jù)庫(kù)數(shù)據(jù)資源、數(shù)據(jù)庫(kù)管理、用戶管理、服務(wù)管理和其他綜合運(yùn)行管理模塊,屬于整個(gè)框架的最底層,也是服務(wù)層功能實(shí)現(xiàn)和交互的基礎(chǔ);服務(wù)層是整個(gè)框架的精華部分,根據(jù)ISO/TC211和OGC規(guī)定的地理信息服務(wù)實(shí)施規(guī)范,主要包括基于Web地圖服務(wù)的互操作規(guī)范 (WMS)、基于Web要素服務(wù)的互操作規(guī)范 (WFS)、基于Web地理覆蓋服務(wù)的互操作規(guī)范 (WCS)以及基于地理處理分析的互操作規(guī)范 (WPS)等[7];客戶層主要是各個(gè)政府機(jī)關(guān)、企事業(yè)單位和社會(huì)上各瀏覽器門戶,并且可聚合其他服務(wù)器上發(fā)布的標(biāo)準(zhǔn)服務(wù)。所有工作的實(shí)現(xiàn)都應(yīng)該遵循一定的信息標(biāo)準(zhǔn)和信息交換標(biāo)準(zhǔn)。

圖 1 面向服務(wù)的空間信息共享框架設(shè)計(jì)
本文以 SOA為模型并結(jié)合 REST經(jīng)典軟件設(shè)計(jì)風(fēng)格,探求了面向服務(wù)的共享系統(tǒng)的實(shí)現(xiàn)機(jī)制。通過(guò)對(duì)位于不同空間位置的數(shù)據(jù)進(jìn)行共享試驗(yàn),證明該方法可行而有效。整個(gè)系統(tǒng)所涉及的軟件環(huán)境主要包括:①服務(wù)器端操作系統(tǒng),Windows 2003 Server,客戶端操作系統(tǒng)為Windows 2000或Windows XP;②數(shù)據(jù)庫(kù)管理軟件采用 PostgreSQL和 PostGIS;③空間數(shù)據(jù)處理和裁圖軟件采用成熟商業(yè)軟件ArcGIS;④開發(fā)環(huán)境和語(yǔ)言包括 JavaScript、Flex及MicroSoftVisual Studio.NET 2005。
地圖服務(wù)器主要提供包括電子地圖、遙感影像等在內(nèi)的基礎(chǔ)地理信息;GIS服務(wù)器主要包括兩部分:一部分是專題數(shù)據(jù)信息,如規(guī)劃專題、醫(yī)療專題、公安專題等,另一部分是以 Web Services形式存在的 GIS經(jīng)典算法,如公交換乘、最短路徑、地址匹配等。系統(tǒng)瀏覽器通過(guò) JavaScript向Web服務(wù)器發(fā)送 HTTP請(qǐng)求,服務(wù)器端 IIS通過(guò)解析請(qǐng)求內(nèi)容并返回地圖共享包,它主要包括 JavaScript功能函數(shù)和Flex編譯好的 S WF內(nèi)核兩部分,其中 S WF文件會(huì)根據(jù)用戶的操作,結(jié)合封裝在其內(nèi)部的算法計(jì)算出地圖瓦片的編號(hào),并向地圖服務(wù)器發(fā)出調(diào)圖請(qǐng)求,而 JavaScript則通過(guò)Web服務(wù)器向 GIS服務(wù)器請(qǐng)求服務(wù)與專題信息,并實(shí)現(xiàn)這些服務(wù)的功能操作,最后在瀏覽器端提供邏輯聚合服務(wù),其工作流程如圖 2所示。

圖 2 面向服務(wù)的共享機(jī)制工作流程
客戶端地圖服務(wù)共享內(nèi)核采用 Flex技術(shù),完成地圖的顯示與控制、事件交互等功能。它主要在Flex的 IDE(集成式開發(fā)環(huán)境)中使用 MXML和 ActionScript語(yǔ)言來(lái)實(shí)現(xiàn),其中MXML用于地圖服務(wù)界面設(shè)計(jì),ActionScript則主要承擔(dān)系統(tǒng)的業(yè)務(wù)邏輯部分。Flex內(nèi)核完成后,采用 JavaScript對(duì) Flex內(nèi)核進(jìn)行封裝,以保證系統(tǒng)的靈活性和二次開發(fā)能力。
傳統(tǒng)地圖服務(wù)端設(shè)計(jì)中,系統(tǒng)會(huì)根據(jù)請(qǐng)求動(dòng)態(tài)地將矢量地圖轉(zhuǎn)換成柵格圖片,這不僅增加了服務(wù)器的負(fù)擔(dān),而且還大大影響了用戶交互效果,因此系統(tǒng)服務(wù)端部分將采用當(dāng)前流行的雙緩存技術(shù) (或稱瓦片技術(shù))。具體實(shí)現(xiàn)方法為:①服務(wù)端緩存。將矢量地圖通過(guò)掃描切圖的形式轉(zhuǎn)換成柵格圖片——瓦片,這些瓦片數(shù)據(jù)有固定大小并采用一定的組織方式。本系統(tǒng)采用ArcGIS制圖表達(dá)進(jìn)行地圖配置,并利用 Arc-Server進(jìn)行動(dòng)態(tài)瓦片裁切。②客戶端緩存技術(shù)即瀏覽器緩存技術(shù)。HTTP請(qǐng)求中加入 Cache-Control頭域,利用程序調(diào)圖設(shè)置實(shí)現(xiàn),當(dāng)用戶重復(fù)調(diào)用同一張瓦片時(shí),將直接從瀏覽器緩存中獲取圖片,不僅減少了網(wǎng)絡(luò)開銷,還進(jìn)一步降低了服務(wù)器的負(fù)擔(dān)。
GIS服務(wù)器中專題數(shù)據(jù)信息部分由于涉及不同部門,故采用分散管理策略,即不同專題數(shù)據(jù)物理上放置在不同服務(wù)器上,并由其主管部門分開部署和維護(hù)。GIS經(jīng)典算法可利用Web Services方式將信息和運(yùn)算過(guò)程打包成為一系列已發(fā)布的操作和分析地理信息的工具集,即地理處理服務(wù) (WPS),它接受輸入 (如要素集、表和屬性值)和執(zhí)行輸入數(shù)據(jù)操作,并生成輸出到地圖或進(jìn)一步加工的軟件客戶端,工具集可以同步或異步執(zhí)行。本系統(tǒng)使用 C#語(yǔ)言搭建業(yè)務(wù)邏輯層,采用開源框架 castle中的 ActiveRecord作為數(shù)據(jù)訪問(wèn)層,采用功能豐富的開放源數(shù)據(jù)庫(kù) PostgreSQL作為數(shù)據(jù)層,并利用 PostGIS引擎管理空間數(shù)據(jù)。結(jié)構(gòu)如圖 3所示。

圖 3 GIS服務(wù)器結(jié)構(gòu)
重慶市公眾地圖服務(wù)平臺(tái)立足于重慶市規(guī)劃局著力打造的“三大平臺(tái)”建設(shè)之社會(huì)服務(wù)平臺(tái),打造重慶市公共服務(wù)一張圖,建設(shè)小而精、專業(yè)并權(quán)威的地圖服務(wù)平臺(tái),有效推進(jìn)數(shù)據(jù)共建共享。項(xiàng)目設(shè)計(jì)包含 GeoKing(集景)地圖服務(wù) API函數(shù)、地圖統(tǒng)計(jì)聚合功能和公交換乘等特色便民功能 (如圖 4所示);在角色配置上,重慶市勘測(cè)院是地圖框架數(shù)據(jù)的發(fā)布者和維護(hù)者,其他企事業(yè)單位或委辦局是數(shù)據(jù)的接受者,同時(shí)也是服務(wù)的提供者,他們通過(guò)利用一張圖并結(jié)合自己業(yè)務(wù)邏輯構(gòu)造基于地圖服務(wù)的專業(yè)門戶網(wǎng)站。

圖 4 重慶市公眾地圖服務(wù)平臺(tái)
目前“重慶印象”公眾地圖服務(wù)平臺(tái)和示范系統(tǒng)已投入運(yùn)行。從運(yùn)行情況看,基礎(chǔ)地圖服務(wù)內(nèi)容方式和運(yùn)行效率完好,而數(shù)據(jù)共享方面也受到多家單位青睞,為下一步推廣應(yīng)用奠定了堅(jiān)實(shí)基礎(chǔ)。
隨著“數(shù)字城市”及擁有基礎(chǔ)及專題空間信息資源的政府部門信息化建設(shè)項(xiàng)目的不斷推進(jìn),可用的空間信息資源和應(yīng)用資源在不斷豐富。“創(chuàng)意 +服務(wù) =新的服務(wù)”模式日益盛行,并將在面向公眾信息服務(wù)的互聯(lián)網(wǎng)行業(yè)衍生出更多的應(yīng)用空間[8]。本文設(shè)計(jì)的面向服務(wù)的共享機(jī)制以 B/S為分布式系統(tǒng)架構(gòu),并將經(jīng)典 GIS功能以 Web Services形式封裝后提供服務(wù),符合信息化測(cè)繪的服務(wù)潮流。下一步主要工作是進(jìn)一步拓展信息服務(wù)類型,聚合不同信息資源,實(shí)現(xiàn)信息資源的共建共享,并將面向服務(wù)的共建共享機(jī)制的應(yīng)用進(jìn)一步推廣。
[1]李德仁,黃俊華,邵振峰.面向服務(wù)的數(shù)字城市共享平臺(tái)框架設(shè)計(jì)與實(shí)現(xiàn)[J].武漢大學(xué)學(xué)報(bào):信息科學(xué)版,2008,33(9):881-885.
[2]宋關(guān)福.服務(wù)型 GIS鋪平信息共享之路[J].計(jì)算機(jī)世界,2008(49):32-33.
[3]周信炎.信息化測(cè)繪:一個(gè)新的戰(zhàn)略方向:訪中國(guó)測(cè)繪學(xué)會(huì)理事長(zhǎng)楊凱[N].中國(guó)測(cè)繪報(bào),2006-05-16(3).
[4]李德仁,邵振峰.信息化測(cè)繪的本質(zhì)是服務(wù) [J].測(cè)繪通報(bào),2008(5),1-4.
[5]李德仁,苗前軍,邵振峰.信息化測(cè)繪體系的定位與框架[J].武漢大學(xué)學(xué)報(bào):信息科學(xué)版,2007,32(3):189-192.
[6]郭秀娟,范曉鷗.基于Web Services的分布式 GIS體系結(jié)構(gòu)研究[J].吉林地質(zhì),2008,27(1):90-92.
[7]張鋒葉,楊鈺,朱美正.基于 Web Services的 GIS多層體系結(jié)構(gòu)研究[J].計(jì)算機(jī)應(yīng)用,2006,26(3):748-750.
[8]馬妮,李維功,馬建良.空間信息服務(wù)組織的應(yīng)用軟件體系規(guī)劃[J].測(cè)繪通報(bào),2008(7):19-22.
Design and Implementation of Service-oriented Spatial Information Sharing Mechanism
LIANG Jianguo,XU Zhanhua,XIA Jun
0494-0911(2011)02-0056-03
P208
B
2010-06-04
梁建國(guó)(1970—),男,四川瀘州人,碩士生,高級(jí)工程師,主要從事三維仿真地理信息系統(tǒng)、遙感應(yīng)用研究與網(wǎng)絡(luò)地圖應(yīng)用開發(fā)工作。