河北省地質(zhì)調(diào)查院 夏 夢
地理信息系統(tǒng)開發(fā)關(guān)鍵技術(shù)研究
河北省地質(zhì)調(diào)查院 夏 夢
為了提高地理信息系統(tǒng)的開放性、可重用性及其分布式的特點,本文指出了現(xiàn)階段地理信息系統(tǒng)的缺陷,提出了利用面向?qū)ο蟮慕M件技術(shù)、基于Agent思想的分布式策略以及知識管理相關(guān)模式來促進地理信息系統(tǒng)的高效開發(fā)和簡便應(yīng)用,最后,在上述技術(shù)的基礎(chǔ)上,開發(fā)了高效的地理信息系統(tǒng)。
GIS;COM;軟件工程;ATL
地理信息系統(tǒng)(Geographic Information System,簡稱GIS)[1]是一種采集、輸入、存儲、管理、檢索、分析、描述和顯示空間信息的計算機系統(tǒng),是分析和處理地理空間數(shù)據(jù)的通用技術(shù),是信息技術(shù)的一個重要組成部分,它也是一門集計算機科學(xué)、信息科學(xué)、數(shù)學(xué)和統(tǒng)計科學(xué)、現(xiàn)代地理學(xué)、測繪遙感學(xué)、環(huán)境科學(xué)、城市科學(xué)、空間科學(xué)和管理科學(xué)為一體的新興邊緣學(xué)科[1-3]。
GIS開發(fā)屬于軟件工程開發(fā)范疇,由于GIS的空間信息管理屬性及其應(yīng)用模式,增加了GIS開發(fā)的難度和復(fù)雜度,現(xiàn)階段GIS的缺陷主要表現(xiàn)在:
1)采用效率不高的開發(fā)語言。例如MFC并不全面支持GIS的COM組件開發(fā),且加上龐大的命令、函數(shù)庫,使得開發(fā)難度增加,產(chǎn)品開發(fā)周期增長。
2)空間數(shù)據(jù)庫及其知識管理系統(tǒng)通常由GIS廠商提供,這導(dǎo)致了GIS系統(tǒng)價格的昂貴。
3)傳統(tǒng)GIS與多媒體開發(fā)工具及多地域協(xié)作的鏈接均不甚方便,數(shù)據(jù)交換不直接,直接影響通訊效率。
本文針對以上GIS的缺陷,提出了面向?qū)ο笏枷氲慕M件技術(shù)、基于Agent思想的GIS技術(shù)及知識管理技術(shù)來開發(fā)簡便、有效的GIS系統(tǒng)。
GIS設(shè)計需考慮問題較多,涉及面較廣,系統(tǒng)開發(fā)時,大多采用模塊化的設(shè)計方法。其中模塊化的程序設(shè)計方法指的是把要共用的功能或相近的功能劃分模塊,以模塊化的思想設(shè)計GIS。此時,整個GIS通過若干個互相關(guān)聯(lián)的過程調(diào)用不同的模塊構(gòu)成。每一模塊擁有自己的數(shù)據(jù)及實現(xiàn)方法,有利于系統(tǒng)維護和后續(xù)開發(fā),同時,各模塊可以通過調(diào)用當前模塊或相關(guān)聯(lián)模塊來達到改變系統(tǒng)狀態(tài)的目的。
然而上述模塊化的設(shè)計思想也存在一定的問題:在開發(fā)過程中,模塊內(nèi)方法可任意修改;被操作數(shù)據(jù)以及對它們的松耦合管理方式使得程序結(jié)構(gòu)是基于實現(xiàn)方法而不是數(shù)據(jù)本事;無法實現(xiàn)安全、保密的數(shù)據(jù)訪問等。面向?qū)ο蟮南到y(tǒng)設(shè)計很好地解決了以上難題。面向?qū)ο蟮某绦蛟O(shè)計中,進行相關(guān)交互的是對象而不是模塊,網(wǎng)絡(luò)中的對象擁有自己的狀態(tài),且每個對象對自己的數(shù)據(jù)、構(gòu)造、方法等。同時,面向?qū)ο蟮脑O(shè)計方法還有如下的優(yōu)點:設(shè)計和相關(guān)代碼可以重用,開發(fā)速度大幅度增加,代碼質(zhì)量得以提高,系統(tǒng)維護及其可修改性也得到了較客觀的改善。綜上,利用面向?qū)ο蟮乃枷?,集成了模塊化思想的優(yōu)點,且彌補了模塊化的缺陷,其更突出的優(yōu)秀特性在于其可封裝性、可繼承性及其多態(tài)性,這些優(yōu)點促進了面向?qū)ο笏枷氲耐茝V,使其得以在GIS設(shè)計過程中被廣泛應(yīng)用。
當GIS較為復(fù)雜、預(yù)處理命令較多或區(qū)域較分散時,單純利用面向?qū)ο蠹夹g(shù)已不能滿足其精確、多輸入多輸出和分批處理的要求,于是本文采取了組件技術(shù)及基于Agent的分布式GIS技術(shù),前者將和面向?qū)ο蠹夹g(shù)聯(lián)合應(yīng)用,并在本章后續(xù)內(nèi)容中繼續(xù)介紹,后者指的是利用Agent技術(shù),實現(xiàn)分布式GIS的設(shè)計,以實現(xiàn)其多地域和多命令輸入輸出的要求,并將在第二章詳述。
近年來,隨著科技的進步,組件技術(shù)也得到了長遠的發(fā)展,并深刻影響了軟件工程的開發(fā)模式。與面向?qū)ο笏枷虢Y(jié)合后,軟件工程系統(tǒng)可以被視為若干協(xié)同工作的對象的組合,其中每個對象都提供特定的數(shù)據(jù)以及服務(wù),接收和發(fā)送特定的消息,且以國際標準形式進行輸送和公布,以供其他對象的調(diào)用。
組件間通過與平臺無關(guān)的中間語言IDL(Interface Define Language)來定義,該接口固定不變,且與客戶程序兼容,開發(fā)人員可通過直接調(diào)用相關(guān)模塊來獲取對象服務(wù),換句話說,應(yīng)用面向?qū)ο蟮慕M件思想,在組件對象中添加了新功能、新數(shù)據(jù)或新方法時,組件對象仍可以支持舊接口,增加了程序的可適應(yīng)性、可修改性和可擴充性。
由于面向?qū)ο笏枷虢M件技術(shù)的優(yōu)點,將其應(yīng)用到GIS開發(fā)將帶來全新的開發(fā)模式,為現(xiàn)今GIS開發(fā)所面臨的問題提供靈活的解決思路。這種基于面向?qū)ο蠼M件形式的GIS,基于標準的組件平臺,各組件對象間不僅可以進行靈活重組、調(diào)用,還可開發(fā)全新的可視化界面和標準接口?,F(xiàn)今流行的組件式平臺主要是微軟公司推出的COM組件模型(Component Object Model)和DCOM組件模型(Distributed Component Object Model,分布式組件對象模型)[5],它們占據(jù)了市場的領(lǐng)導(dǎo)地位?;贑OM組件技術(shù),Microsoft又大力推出ActiveX控件技術(shù)[5]。ActiveX控件技術(shù)是現(xiàn)今可視化的程序設(shè)計中,應(yīng)用最廣泛的標準組件技術(shù)。
目前,Microsoft推出了三種不同的開發(fā)COM組件的方式,分別是采用COMSDK、MFC和ATL,其中基于COMSDK開發(fā)工作量較大,MFC無法完全兼容COM組件,ATL(Active Template Library,活動模板庫)[5],以其簡潔、有效的優(yōu)點全面地支持了COM組件的開發(fā)。ATL的這種特性促使其在COM組件開發(fā)中獲得了長足的優(yōu)勢,開發(fā)者可以把注意力集中于相關(guān)的邏輯上,另外,它擺脫了大量的冗余代碼,使系統(tǒng)開發(fā)更簡練。綜上,ATL在面向?qū)ο蟮慕M件開發(fā)技術(shù)中占有較大優(yōu)勢,本文GIS開發(fā)將利用ATL、分布式角色Agent等技術(shù),使其更有效,更易滿足客戶需求。
在GIS設(shè)計過程中,采用基于角色Agent模型來對不同區(qū)域、不同目的的面向?qū)ο竽K進行控制與管理,該模型分為GIS Agent模版和GIS Agent實例兩部分[6]。前者針對GIS實施人員建立,定義每個Agent的行為及其特征參數(shù)、檢索規(guī)則等,并定義各個Agent間邏輯關(guān)系;后者詳細定義各參數(shù)、實施人員、文檔節(jié)點等的ID標識,以及各Agent間關(guān)聯(lián)關(guān)系、觸發(fā)關(guān)系等。當觸發(fā)條件滿足時,Agent啟動相應(yīng)GIS信息收集、處理和可視化程序,引導(dǎo)各Agent完成GIS的相關(guān)任務(wù)。當任務(wù)完成時,Agent實例將返回服務(wù)器,并帶回命令執(zhí)行中的相關(guān)數(shù)據(jù),包括可視化效果、操作人員、輸入輸出值等。
為了實現(xiàn)以上所述的功能,Agent實例需對數(shù)據(jù)庫中大量數(shù)據(jù)進行分類和封裝,該過程遵循第一章所述的分層和模塊化思想,即各執(zhí)行角色Agent根據(jù)需要組織和封裝數(shù)據(jù),并接受上級Agent調(diào)度和管理。其中,Agent數(shù)據(jù)分為自定義的數(shù)據(jù)和用戶的數(shù)據(jù),前者與具體應(yīng)用場景相關(guān),后者描述該Agent的基本屬性和與其他Agent相關(guān)聯(lián)的參數(shù)和流程等。
基于Agent的GIS設(shè)計執(zhí)行過程主要分為服務(wù)器派遣、維護以及GIS輸入輸出實施層的管理。前者指服務(wù)器及內(nèi)嵌于該服務(wù)器的Agent對相關(guān)信息提供、任務(wù)派遣和數(shù)據(jù)動態(tài)存儲;后者指移動服務(wù)器為Agent實例提供運行環(huán)境。
為實現(xiàn)以上功能,本文提出了基于分布式Agent的GIS開發(fā)功能模型。該模型分為服務(wù)器層和GIS信息層,兩者通過網(wǎng)絡(luò)實現(xiàn)了互聯(lián),它包含:(1)服務(wù)器層 主要功能是實現(xiàn)GIS服務(wù)器端的業(yè)務(wù)邏輯關(guān)系,接收和存儲來自實例Agent的實時動態(tài)數(shù)據(jù),并提供了運行環(huán)境和維護Agent實例間的邏輯關(guān)系,負責Agent實例觸發(fā)、管理和銷毀。(2)實現(xiàn)層 其主要功能是為Agent實例提供了運行環(huán)境,并提供了相關(guān)讀寫設(shè)備。在GIS Agent實例化時,服務(wù)器向Agent實例傳遞了信息規(guī)則、操作人員、命令符、技術(shù)文件、檢索規(guī)則、可視化原則等相關(guān)信息,并設(shè)置了各GIS Agent實例的觸發(fā)和回收條件,向Agent實例傳輸了信息標識。當命令執(zhí)行完成時,從Agent實例把信息標識和查詢結(jié)果傳遞給服務(wù)器,由服務(wù)器完成數(shù)據(jù)更新和存儲,并向其他的Agent實例相關(guān)信息,并在客戶需求服務(wù)器進行查詢結(jié)果的可視化顯示。
表1 GIS知識分類
圖1 知識管理四部模型框架
圖2 知識管理的內(nèi)容
圖3 登陸界面
GIS設(shè)計的關(guān)鍵和核心在于對相關(guān)知識信息的存儲、查詢以及可視化輸出,本文將以上內(nèi)容統(tǒng)稱為知識管理,概括地說,知識管理(Knowledge Management,KM)是一種保證知識的沉淀、共享、發(fā)布和挖掘的過程和方法,它以提高企業(yè)業(yè)績?yōu)槟康?,大大促進了知識、管理和技術(shù)的組合。
知識管理的基礎(chǔ)在于對GIS所處理知識的分類與整合。從知識層次說,GIS知識可分為個人、團隊、企業(yè)和外部環(huán)境層次;根據(jù)知識識別特征,可分為顯性和隱形知識;根據(jù)行業(yè)分類,可以分為公安、社區(qū)、應(yīng)用、城市綜合、商業(yè)分析等GIS知識等。這些分類各有特點,在實際應(yīng)用中,應(yīng)根據(jù)具體要求具體分析。在本文中,GIS的知識管理分類如表1所示。
為了更清晰地說明知識管理的體系機構(gòu),本文將對其進行系統(tǒng)建模。該模型主要包括描述、過程和功能模型,為了描述知識管理體系結(jié)構(gòu),需要對知識管理進行體系結(jié)構(gòu)建模。描述模型主要表現(xiàn)了GIS知識管理的層次性,表達了知識的靜態(tài)邏輯性,反應(yīng)了知識的結(jié)構(gòu)。過程模型表示GIS知識管理體系為響應(yīng)外部命令請求,進行的一系列內(nèi)部活動,是動態(tài)的狀態(tài)調(diào)整或信息查詢。功能模型指的是在相應(yīng)過程執(zhí)行完成后,知識管理體系所能達到的目標,是知識管理的需求的響應(yīng)。
圖4 知識管理
圖5 GIS系統(tǒng)虛擬社區(qū)展示
知識管理四部模型框架如圖1所示。
GIS開發(fā)中的知識管理可以描述為一個面向?qū)ο蟮闹R模塊對外部命令的響應(yīng),它的被操作及被輸出對象是知識,其目的是以最優(yōu)的形式完成對知識的輸入輸出、查詢及更新。
GIS知識管理包括對知識基礎(chǔ)、技術(shù)、過程、戰(zhàn)略及客戶等的管理,而上文知識管理體系結(jié)構(gòu)則充分概括了GIS知識管理開發(fā)所需要的技術(shù),詳細的說,包括了GIS領(lǐng)域軟件工程、數(shù)據(jù)庫技術(shù)、文檔技術(shù)、復(fù)用驅(qū)動技術(shù)和經(jīng)驗工程技術(shù)等方法,也只有充分利用了上述技術(shù),結(jié)合相應(yīng)的專家系統(tǒng),才能進行正確有效的知識管理,更好地進行GIS的知識開發(fā)。
除此之外,GIS知識管理對象還寶礦力顯性的軟件工程知識和專家系統(tǒng)知識、相關(guān)實踐知識等隱形知識。對于這些知識,應(yīng)進行需求分析、知識查詢獲取、組織共享、應(yīng)用創(chuàng)新和可視化輸出等,在這個過程中,需要對GIS開發(fā)的過程和效果進行評估,如發(fā)現(xiàn)問題,則進行改善,從而不斷完善企業(yè)流程,不斷提高服務(wù)質(zhì)量,提升企業(yè)的競爭力,更好地滿足客戶需求。圖2顯示了知識管理技術(shù)的內(nèi)容。
本文利用以上技術(shù)開發(fā)了新型GIS系統(tǒng),登陸界面如圖3所示,知識管理界面如圖4所示,最終可視化顯示北京某區(qū)虛擬社區(qū)地理情況如圖5所示。其中,GIS知識包括了經(jīng)驗庫、模板庫、專家?guī)?、?guī)則庫和與案例庫,其主要包括GIS分析、設(shè)計、實現(xiàn)、管理和維護等。
GIS平臺主要功能包括系統(tǒng)登錄、知識查詢、知識管理和虛擬社區(qū)等。
本文為解決傳統(tǒng)GIS的代碼冗余、效率不高、知識管理混亂、無法很好地完成分布式協(xié)作等問題,提出了面向?qū)ο蟮慕M件技術(shù)、基于Agent思想的分布式協(xié)作技術(shù)以及相關(guān)的知識管理技術(shù),創(chuàng)建了高效、全新、有效的GIS系統(tǒng)。
[1]鞏慧,趙文吉.GIS的發(fā)展方向.WORLD GEOLOGY,1999,18(1):60-63
[2]Peng Z,Nerber D D.An Internet-Based GIS Data Access System.Journal of Urban and Regional System,1997(1):20-30.
[3]Buelher K,Mckee L.The Open GIS Guide:Introduction to Interoperability Geoprocessing,Massachusetts:The OGC Press,1996:96-100.
[4]龔健雅.地理信息系統(tǒng)基礎(chǔ)軟件吉奧之星NT版的總體設(shè)計思想和關(guān)鍵技術(shù)[J].武漢測繪科技大學(xué)學(xué)報,1997,22(3):18-190.
[5]Sara Ferris.Talking About GIS.CADalyst,2004,21(9):12-13.
[6]朱慶,李德仁,龔健雅等.數(shù)碼城市GIS的設(shè)計與實現(xiàn)[J].武漢大學(xué)學(xué)報(信息科學(xué)版),2001,26(1):8-11.