張曉楠,任志國,曹一冰
(1.信息工程大學(xué) 地理空間信息學(xué)院,河南 鄭州450052;2.中華測繪服務(wù)公司,北京 100088)
隨著GIS應(yīng)用的不斷深入,除了要求GIS具有空間數(shù)據(jù)管理和圖形處理能力之外,還要求其能夠解決一些復(fù)雜的空間分析、空間模擬及空間決策分析等問題。這些復(fù)雜問題得以解決的最好辦法是依賴于空間分析模型的研究及其與GIS的集成[1,2]。目前,已存在很多空間分析模型和專業(yè)的空間分析軟件包,如地理學(xué)和地質(zhì)學(xué)中具有代表性的Space Stat和GS+.Fischer.Trapletti and Wang的空間相互作用模型軟件包,Getis&Chen的空間點格局統(tǒng)計軟件包等[3,4]。這些模型及軟件包在與GIS的集成過程中,各有特點和適用性,導(dǎo)致模型的可復(fù)用性和可擴展性不強。因此,充分研究空間分析模型與GIS無縫集成從而有效發(fā)揮GIS的優(yōu)勢就顯得尤為重要。
空間分析模型與GIS在功能上的互補是二者集成的驅(qū)動力,它們的有效集成可增強GIS的空間分析功能,進一步加深GIS應(yīng)用的深度,同時拓寬其使用范圍。目前,空間分析模型與GIS的集成方式主要分為3種。
1)外掛式集成:空間分析模型與GIS之間不存在程序上的連通性,各自運行基本獨立,通過在二者之間增加共享數(shù)據(jù)文件來實現(xiàn),如圖1所示。這種集成方式開發(fā)成本低、易操作,但執(zhí)行效率不高,且非專業(yè)人員較難掌握,僅適用于開發(fā)周期較短的情況。
圖1 空間分析模型與GIS的外掛式集成方式示意圖
2)內(nèi)嵌式集成:空間分析模型與GIS具有共同的操作界面,系統(tǒng)運行時以其中一個為主,通過共享數(shù)據(jù)文件和存儲空間來實現(xiàn),如圖2所示。這種集成方式為用戶提供全面有效的應(yīng)用功能,系統(tǒng)界面友好,運行高效且穩(wěn)定,但是開發(fā)成本高,周期長。
圖2 空間分析模型與GIS的內(nèi)嵌式集成方式示意圖
3)無縫式集成:以空間分析模型的理論研究及實踐應(yīng)用均已相對成熟作為前提,在GIS不斷發(fā)展完善的基礎(chǔ)上,將空間分析模型作為專業(yè)的空間分析工具納入GIS環(huán)境,從應(yīng)用上集成二者共同的優(yōu)勢,是二者集成的最高層次。這種集成方式運行效率和集成性較高,但需要投入各方面的人力和物力,開發(fā)難度大。
可見,在空間分析模型與GIS的集成過程中,無論采用哪種方式都具有一定的局限性,因此找尋不需要頻繁使用共享數(shù)據(jù)文件、不需要宿主軟件同時運行且不需要大量重復(fù)性開發(fā)勞動的無縫集成方案是空間分析模型與GIS集成應(yīng)用中亟待解決的問題。基于中間件技術(shù)的集成正是這樣一種方案。
中間件是一種獨立的系統(tǒng)軟件或服務(wù)程序,分布式應(yīng)用軟件借助這類軟件在不同的技術(shù)之間共享資源[5]。它是位于系統(tǒng)軟件與應(yīng)用軟件之間的中間層,是網(wǎng)格計算的核心[6]。中間件通過封裝多源異構(gòu)環(huán)境,抽象各種各樣的應(yīng)用模型,屏蔽了信息訪問的底層細節(jié),并向用戶提供公開的標準接口和協(xié)議,保持了用戶應(yīng)用的相對獨立性。
可見,在空間分析模型和GIS的集成中融入中間件技術(shù),能解決上述集成方式中存在的問題,提高模型的可復(fù)用性,同時也能解決分布式異構(gòu)環(huán)境下的軟件開發(fā)問題,提高未來GIS系統(tǒng)的開發(fā)效率。
本文主要側(cè)重于將空間分析模型以中間件的方式集成到各類GIS平臺中,這里稱之為空間分析模型中間件。該中間件在設(shè)計上必須提供統(tǒng)一的異構(gòu)數(shù)據(jù)讀取接口、數(shù)據(jù)信息輸出接口、空間分析接口以及分析結(jié)果輸出接口等??臻g分析模型中間件的設(shè)計原則為:
1)符合需求。充分發(fā)揮中間件的技術(shù)優(yōu)勢,將空間分析模型與GIS平臺分離開來,解決集成過程中的系統(tǒng)異構(gòu)和數(shù)據(jù)源異構(gòu)問題。
2)可移植性。在中間件實現(xiàn)的內(nèi)部構(gòu)架上,必須提供統(tǒng)一的編程接口,實現(xiàn)開發(fā)組件的可移植性。
3)可擴展性。在中間件的使用周期范圍內(nèi),應(yīng)用系統(tǒng)的層次會不斷升級,必須充分考慮其升級的便捷性,便于進行維護和擴展。
根據(jù)層次化設(shè)計思想,基于以上設(shè)計原則,空間分析模型中間件的框架設(shè)計如圖3所示。
圖3 空間分析模型中間件的框架設(shè)計圖
設(shè)計上采用3層架構(gòu)體系,中間件層屏蔽了底層GIS平臺的異構(gòu)。當(dāng)用戶需要進行某項應(yīng)用操作時,只需注冊中間件后通過接口代理向系統(tǒng)發(fā)出請求,中間件層根據(jù)請求訪問相應(yīng)的數(shù)據(jù)并返回數(shù)據(jù)的拓撲信息,中間件管理引擎調(diào)用相應(yīng)的空間分析模型進行分析,并將結(jié)果展示給用戶。這種設(shè)計模式使得空間分析模型與GIS軟件平臺的集成更加靈活,且不考慮平臺的異構(gòu)性,可提高空間分析模型的復(fù)用率,降低開發(fā)成本。
為了滿足應(yīng)用需求,空間分析模型中間件應(yīng)具備以下功能:
1)中間件注冊:負責(zé)完成中間件的管理,包括中間件的添加、注冊和卸載等;
2)數(shù)據(jù)讀?。贺撠?zé)實現(xiàn)應(yīng)用程序與數(shù)據(jù)庫的連接,以黑箱的方式讀取不同格式的數(shù)據(jù),返回空間分析需要的數(shù)據(jù)拓撲信息;
3)拓撲處理:部分格式的數(shù)據(jù)不能直接存儲拓撲信息,在進行空間分析之前負責(zé)對部分無拓撲信息的數(shù)據(jù)進行自動處理;
4)空間分析:中間件的核心部分,接收獲得的異構(gòu)數(shù)據(jù)及其拓撲信息,執(zhí)行需要的空間分析運算,返回分析結(jié)果。
虛函數(shù)是VC中一種特殊的函數(shù)類型,如果將一個類的成員函數(shù)聲明為虛函數(shù)[7],在其派生類中就會有許多不同的實現(xiàn)。利用虛函數(shù)的原理,程序員可在基類和派生類中利用相同的函數(shù)名和參數(shù)類型分別定義不同的操作,從而為同一個類繼承結(jié)構(gòu)中所有類的同一種行為提供了一個統(tǒng)一的接口。多態(tài)體現(xiàn)了一個類繼承結(jié)構(gòu)中不同類的對象對同一個消息作出不同響應(yīng)的能力,當(dāng)進行消息發(fā)送時,可將同一個消息發(fā)送至與消息有關(guān)的不同類的對象,同一個消息被不同類的對象接收以后,通過調(diào)用不同的成員函數(shù)(虛函數(shù))進行不同的處理,作出不同的響應(yīng)。因此,利用虛函數(shù)的思想來實現(xiàn)空間分析模型中間件非常合適,其類結(jié)構(gòu)設(shè)計如圖4所示。
其中,CGeoFile類為基類,定義了數(shù)據(jù)的讀取接口,可獲得數(shù)據(jù)描述信息和數(shù)據(jù)類型:virtual std::vector
具體實現(xiàn)過程中,定義中間件管理引擎類CGeoFile Engine,程序運行時將要讀取的文件指針放入一個CGeoFile的vector鏈表中,得到用戶請求后,循環(huán)此鏈表,用正在讀取的數(shù)據(jù)格式標識與鏈表中對象的GetType()返回值比對,一旦遇到格式相同的對象,則使用該對象的GetData()函數(shù)讀取數(shù)據(jù),然后進行拓撲處理和相應(yīng)的空間分析。
圖4 中間件實現(xiàn)類圖
最短路徑分析是計算機科學(xué)、GIS和運籌學(xué)等學(xué)科研究的熱點問題,其根本目的是研究、籌劃一項網(wǎng)絡(luò)工程使其運行效果最好,如制定一個從A地到B地運行時間最短或運輸費用最低的運輸方案等[8]。作為GIS的基本功能,最短路徑分析發(fā)揮著極大的作用,如“智慧城市”中的“智慧交通”以及ITS中的路徑規(guī)劃模塊、調(diào)度系統(tǒng)中的路徑規(guī)劃、手機地圖中的公交線路查詢等。本文以最短路徑分析模型為例,基于中間件技術(shù)進行了與GIS的無縫集成,實驗結(jié)果如圖5所示。
圖5 中間件集成系統(tǒng)界面
其中,中間件注冊模塊(見圖6)負責(zé)中間件的添加和注冊,不需對原程序進行改動,直接將新增模塊以動態(tài)庫的形式添加到中間件鏈表末尾,以供用戶使用。中間件管理模塊(見圖7)實現(xiàn)對中間件基本信息的顯示和卸載,進而實現(xiàn)對中間件的更新操作。
圖6 中間件注冊模塊截圖
圖7 中間件管理模塊截圖
[1]Goodchild M F. Geographic Information Systems and Science:Today and Tomorrow[J]. Procedia Earth and Planetary Science,2009(1):1 037-1 043
[2]Goodchild M F. Geographical Information Science[J]. International Journal Geographical Information Systems, 1992(6):31-45
[3]王勁峰,李連發(fā),葛詠,等. 地理信息空間分析的理論體系探討[J].地理學(xué)報,2000,55(1):92-103
[4]王勁峰,柏延臣,朱彩美,等. 地理信息系統(tǒng)空間分析能力探討[J].中國圖像圖形學(xué)報,2001,6(9):849-863
[5]奚麗倩,袁國良. 淺析中間件技術(shù)的研究現(xiàn)狀[J].電腦知識與技術(shù),2009,5(4):978-979
[6]李永紅,鄧紅艷. 中間件技術(shù)在GIS中的應(yīng)用[C]. GIS的設(shè)計開發(fā)與應(yīng)用,北京,2004
[7]王育堅.Visual C++面向?qū)ο缶幊探坛蘙M].北京:清華大學(xué)出版社,2003
[8]鄔倫,劉瑜,張晶,等. 地理信息系統(tǒng)——原理、方法和應(yīng)用[M].北京:科學(xué)出版社,2001
[9]湯國安,趙牡丹. 地理信息系統(tǒng)[M].北京:科學(xué)出版社,2000
[10]華一新,吳升,趙軍喜. 地理信息系統(tǒng)原理與技術(shù)[M].北京:解放軍出版社,2001