梁建國,徐占華,夏 君
(1.武漢大學測繪學院,湖北武漢 430079;2.重慶市勘測院,重慶 400020)
面向服務(wù)的空間信息共享機制設(shè)計與實現(xiàn)
梁建國1,2,徐占華2,夏 君2
(1.武漢大學測繪學院,湖北武漢 430079;2.重慶市勘測院,重慶 400020)
SOA是當前研究熱點問題之一。結(jié)合 Flex和 JavaScript等技術(shù),采用 SOA來構(gòu)建空間信息共享服務(wù)機制。這種服務(wù)具有受眾面廣、開發(fā)簡單、用戶體驗豐富的特點。
Flex;JavaScript;SOA;空間數(shù)據(jù)共享
伴隨著全球網(wǎng)絡(luò)普及程度的提高,人類社會空間在信息概念上逐步縮小,GIS與 Internet的融合形成了WebGIS,使網(wǎng)絡(luò)環(huán)境下實現(xiàn)地理空間信息共享成為可能,并逐漸發(fā)展成為實現(xiàn)地理信息共享、服務(wù)于經(jīng)濟建設(shè)和國防建設(shè)的主要手段[1]。我國地理空間信息共享從發(fā)展歷程上講,大致分為三個階段:①面向文件的地理信息共享。最初主要介質(zhì)包括磁盤、光盤、硬盤和磁帶等,后伴隨著網(wǎng)絡(luò)應(yīng)用普及用戶直接上傳和下載地理空間數(shù)據(jù)文件來共享地理信息,或在局域網(wǎng)內(nèi)部直接讀取服務(wù)器上同一份數(shù)據(jù)文件。②面向數(shù)據(jù)庫的地理信息共享。2000年前后空間數(shù)據(jù)庫逐漸普及,并支持多用戶并發(fā)訪問和寫操作,多客戶端可直接訪問統(tǒng)一數(shù)據(jù)服務(wù)器以獲得可控版本統(tǒng)一性。③面向服務(wù)的地理信息共享。2008年面向服務(wù)的架構(gòu)(service oriented architecture,SOA)成為主流軟件工程方法,可將 GIS全部功能封裝為Web服務(wù),實現(xiàn)多種客戶端跨平臺、跨網(wǎng)絡(luò)、跨語言的調(diào)用,并具有服務(wù)聚合能力以集成來自其他服務(wù)器的 GIS服務(wù)[2]。
“十一五”測繪規(guī)劃中提到要基本建成數(shù)字中國地理空間框架,初步形成信息化測繪體系[3]。一定程度上說,信息化測繪的本質(zhì)特征就是實現(xiàn)實時有效的地理信息綜合服務(wù)[4]。從服務(wù)方式上劃分,傳統(tǒng)的測繪和數(shù)字化測繪基本上強調(diào)以“提供”為主導,而信息化測繪卻真正以“服務(wù)”為主導,因此服務(wù)方式必然向買方市場即需求模式轉(zhuǎn)變[5],面向服務(wù)的空間信息共享機制非常符合社會的發(fā)展方向和技術(shù)潮流。目前全國各大 GIS公司和測繪企事業(yè)單位也都在積極探索共享方案的可行性和實用性。本文結(jié)合日常工作實際,以重慶市公眾地圖服務(wù)平臺技術(shù)框架為例,論述面向服務(wù)的空間地理信息共享機制的設(shè)計與實現(xiàn)。
自 20世紀 60年代以來,計算模式發(fā)展經(jīng)歷了單機計算、集中計算和 C/S模式、B/S(三層架構(gòu))模式的不同階段,正逐漸進入以Web Services為主要特征的計算模式[6]。本文設(shè)計的面向服務(wù)的空間信息共享框架結(jié)構(gòu)如圖 1所示。面向服務(wù)的空間信息共享框架是一個松散分布的機制,它可以被部署在幾個不同機器上,也是一個基于 B/S模式的空間信息共享平臺。它分為數(shù)據(jù)層、服務(wù)層和客戶層三層結(jié)構(gòu)。其中,數(shù)據(jù)層主要包括數(shù)據(jù)庫數(shù)據(jù)資源、數(shù)據(jù)庫管理、用戶管理、服務(wù)管理和其他綜合運行管理模塊,屬于整個框架的最底層,也是服務(wù)層功能實現(xiàn)和交互的基礎(chǔ);服務(wù)層是整個框架的精華部分,根據(jù)ISO/TC211和OGC規(guī)定的地理信息服務(wù)實施規(guī)范,主要包括基于Web地圖服務(wù)的互操作規(guī)范 (WMS)、基于Web要素服務(wù)的互操作規(guī)范 (WFS)、基于Web地理覆蓋服務(wù)的互操作規(guī)范 (WCS)以及基于地理處理分析的互操作規(guī)范 (WPS)等[7];客戶層主要是各個政府機關(guān)、企事業(yè)單位和社會上各瀏覽器門戶,并且可聚合其他服務(wù)器上發(fā)布的標準服務(wù)。所有工作的實現(xiàn)都應(yīng)該遵循一定的信息標準和信息交換標準。
圖 1 面向服務(wù)的空間信息共享框架設(shè)計
本文以 SOA為模型并結(jié)合 REST經(jīng)典軟件設(shè)計風格,探求了面向服務(wù)的共享系統(tǒng)的實現(xiàn)機制。通過對位于不同空間位置的數(shù)據(jù)進行共享試驗,證明該方法可行而有效。整個系統(tǒng)所涉及的軟件環(huán)境主要包括:①服務(wù)器端操作系統(tǒng),Windows 2003 Server,客戶端操作系統(tǒng)為Windows 2000或Windows XP;②數(shù)據(jù)庫管理軟件采用 PostgreSQL和 PostGIS;③空間數(shù)據(jù)處理和裁圖軟件采用成熟商業(yè)軟件ArcGIS;④開發(fā)環(huán)境和語言包括 JavaScript、Flex及MicroSoftVisual Studio.NET 2005。
地圖服務(wù)器主要提供包括電子地圖、遙感影像等在內(nèi)的基礎(chǔ)地理信息;GIS服務(wù)器主要包括兩部分:一部分是專題數(shù)據(jù)信息,如規(guī)劃專題、醫(yī)療專題、公安專題等,另一部分是以 Web Services形式存在的 GIS經(jīng)典算法,如公交換乘、最短路徑、地址匹配等。系統(tǒng)瀏覽器通過 JavaScript向Web服務(wù)器發(fā)送 HTTP請求,服務(wù)器端 IIS通過解析請求內(nèi)容并返回地圖共享包,它主要包括 JavaScript功能函數(shù)和Flex編譯好的 S WF內(nèi)核兩部分,其中 S WF文件會根據(jù)用戶的操作,結(jié)合封裝在其內(nèi)部的算法計算出地圖瓦片的編號,并向地圖服務(wù)器發(fā)出調(diào)圖請求,而 JavaScript則通過Web服務(wù)器向 GIS服務(wù)器請求服務(wù)與專題信息,并實現(xiàn)這些服務(wù)的功能操作,最后在瀏覽器端提供邏輯聚合服務(wù),其工作流程如圖 2所示。
圖 2 面向服務(wù)的共享機制工作流程
客戶端地圖服務(wù)共享內(nèi)核采用 Flex技術(shù),完成地圖的顯示與控制、事件交互等功能。它主要在Flex的 IDE(集成式開發(fā)環(huán)境)中使用 MXML和 ActionScript語言來實現(xiàn),其中MXML用于地圖服務(wù)界面設(shè)計,ActionScript則主要承擔系統(tǒng)的業(yè)務(wù)邏輯部分。Flex內(nèi)核完成后,采用 JavaScript對 Flex內(nèi)核進行封裝,以保證系統(tǒng)的靈活性和二次開發(fā)能力。
傳統(tǒng)地圖服務(wù)端設(shè)計中,系統(tǒng)會根據(jù)請求動態(tài)地將矢量地圖轉(zhuǎn)換成柵格圖片,這不僅增加了服務(wù)器的負擔,而且還大大影響了用戶交互效果,因此系統(tǒng)服務(wù)端部分將采用當前流行的雙緩存技術(shù) (或稱瓦片技術(shù))。具體實現(xiàn)方法為:①服務(wù)端緩存。將矢量地圖通過掃描切圖的形式轉(zhuǎn)換成柵格圖片——瓦片,這些瓦片數(shù)據(jù)有固定大小并采用一定的組織方式。本系統(tǒng)采用ArcGIS制圖表達進行地圖配置,并利用 Arc-Server進行動態(tài)瓦片裁切。②客戶端緩存技術(shù)即瀏覽器緩存技術(shù)。HTTP請求中加入 Cache-Control頭域,利用程序調(diào)圖設(shè)置實現(xiàn),當用戶重復調(diào)用同一張瓦片時,將直接從瀏覽器緩存中獲取圖片,不僅減少了網(wǎng)絡(luò)開銷,還進一步降低了服務(wù)器的負擔。
GIS服務(wù)器中專題數(shù)據(jù)信息部分由于涉及不同部門,故采用分散管理策略,即不同專題數(shù)據(jù)物理上放置在不同服務(wù)器上,并由其主管部門分開部署和維護。GIS經(jīng)典算法可利用Web Services方式將信息和運算過程打包成為一系列已發(fā)布的操作和分析地理信息的工具集,即地理處理服務(wù) (WPS),它接受輸入 (如要素集、表和屬性值)和執(zhí)行輸入數(shù)據(jù)操作,并生成輸出到地圖或進一步加工的軟件客戶端,工具集可以同步或異步執(zhí)行。本系統(tǒng)使用 C#語言搭建業(yè)務(wù)邏輯層,采用開源框架 castle中的 ActiveRecord作為數(shù)據(jù)訪問層,采用功能豐富的開放源數(shù)據(jù)庫 PostgreSQL作為數(shù)據(jù)層,并利用 PostGIS引擎管理空間數(shù)據(jù)。結(jié)構(gòu)如圖 3所示。
圖 3 GIS服務(wù)器結(jié)構(gòu)
重慶市公眾地圖服務(wù)平臺立足于重慶市規(guī)劃局著力打造的“三大平臺”建設(shè)之社會服務(wù)平臺,打造重慶市公共服務(wù)一張圖,建設(shè)小而精、專業(yè)并權(quán)威的地圖服務(wù)平臺,有效推進數(shù)據(jù)共建共享。項目設(shè)計包含 GeoKing(集景)地圖服務(wù) API函數(shù)、地圖統(tǒng)計聚合功能和公交換乘等特色便民功能 (如圖 4所示);在角色配置上,重慶市勘測院是地圖框架數(shù)據(jù)的發(fā)布者和維護者,其他企事業(yè)單位或委辦局是數(shù)據(jù)的接受者,同時也是服務(wù)的提供者,他們通過利用一張圖并結(jié)合自己業(yè)務(wù)邏輯構(gòu)造基于地圖服務(wù)的專業(yè)門戶網(wǎng)站。
圖 4 重慶市公眾地圖服務(wù)平臺
目前“重慶印象”公眾地圖服務(wù)平臺和示范系統(tǒng)已投入運行。從運行情況看,基礎(chǔ)地圖服務(wù)內(nèi)容方式和運行效率完好,而數(shù)據(jù)共享方面也受到多家單位青睞,為下一步推廣應(yīng)用奠定了堅實基礎(chǔ)。
隨著“數(shù)字城市”及擁有基礎(chǔ)及專題空間信息資源的政府部門信息化建設(shè)項目的不斷推進,可用的空間信息資源和應(yīng)用資源在不斷豐富。“創(chuàng)意 +服務(wù) =新的服務(wù)”模式日益盛行,并將在面向公眾信息服務(wù)的互聯(lián)網(wǎng)行業(yè)衍生出更多的應(yīng)用空間[8]。本文設(shè)計的面向服務(wù)的共享機制以 B/S為分布式系統(tǒng)架構(gòu),并將經(jīng)典 GIS功能以 Web Services形式封裝后提供服務(wù),符合信息化測繪的服務(wù)潮流。下一步主要工作是進一步拓展信息服務(wù)類型,聚合不同信息資源,實現(xiàn)信息資源的共建共享,并將面向服務(wù)的共建共享機制的應(yīng)用進一步推廣。
[1]李德仁,黃俊華,邵振峰.面向服務(wù)的數(shù)字城市共享平臺框架設(shè)計與實現(xiàn)[J].武漢大學學報:信息科學版,2008,33(9):881-885.
[2]宋關(guān)福.服務(wù)型 GIS鋪平信息共享之路[J].計算機世界,2008(49):32-33.
[3]周信炎.信息化測繪:一個新的戰(zhàn)略方向:訪中國測繪學會理事長楊凱[N].中國測繪報,2006-05-16(3).
[4]李德仁,邵振峰.信息化測繪的本質(zhì)是服務(wù) [J].測繪通報,2008(5),1-4.
[5]李德仁,苗前軍,邵振峰.信息化測繪體系的定位與框架[J].武漢大學學報:信息科學版,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].計算機應(yīng)用,2006,26(3):748-750.
[8]馬妮,李維功,馬建良.空間信息服務(wù)組織的應(yīng)用軟件體系規(guī)劃[J].測繪通報,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
梁建國(1970—),男,四川瀘州人,碩士生,高級工程師,主要從事三維仿真地理信息系統(tǒng)、遙感應(yīng)用研究與網(wǎng)絡(luò)地圖應(yīng)用開發(fā)工作。