摘要:闡述了組件技術(shù)的基本概念,討論了組件式GIS的系統(tǒng)構(gòu)成,進(jìn)而介紹了Intergraph公司的G/Electric組件開(kāi)發(fā)平臺(tái)的特點(diǎn)和體系結(jié)構(gòu),并詳細(xì)介紹了基于G/Electric組件開(kāi)發(fā)平臺(tái)開(kāi)發(fā)GIS應(yīng)用系統(tǒng)的設(shè)計(jì)思路。
關(guān)鍵詞:地理信息系統(tǒng);組件;組件對(duì)象模型;G/Electric
引言
地理信息系統(tǒng)(GIS)是在計(jì)算機(jī)軟硬件支持下,以采集、存儲(chǔ)、管理、檢索、分析和描述空間物體的地理分布數(shù)據(jù)及與之相關(guān)的屬性,并回答用戶問(wèn)題等為主要任務(wù)的技術(shù)系統(tǒng)。目前世界上常用的GIS軟件已達(dá)400多種。它們大小不一、風(fēng)格各異。國(guó)外較著名的有ARC/INFO,MAPINFO、GTECHNOLOGY、MicroStation等;國(guó)內(nèi)較著名的有MAPGIS。Geostar和CITYSTAR等。雖然GIS起步晚,但它發(fā)展快,目前已廣泛應(yīng)用于城市市政設(shè)施管理、管網(wǎng)、電信、電力、土地管理、城市規(guī)劃、交通管制、房地產(chǎn)、旅游、公安、消防、資源、環(huán)境、國(guó)土規(guī)劃等領(lǐng)域。
組件技術(shù)是面向?qū)ο蠹夹g(shù)的最新發(fā)展,是當(dāng)今軟件技術(shù)的潮流之一。組件式GIS就是利用組件技術(shù)開(kāi)發(fā)的新一代地理信息系統(tǒng)。它基于組件對(duì)象模型,以一系列組件的形式提供與GIS相關(guān)的功能和服務(wù)。目前,國(guó)內(nèi)外GIS廠家紛紛推出基于組件技術(shù)的GIS平臺(tái),如ESRI的MapObjects,Maplnfo的MapX、MapExtreme和GeoMedia的地圖對(duì)象等。G/Electric平臺(tái)是國(guó)際三大GIS供應(yīng)商之一的Intergraph公司出品的優(yōu)秀GIS基礎(chǔ)軟件平臺(tái),在該平臺(tái)上已經(jīng)開(kāi)發(fā)、實(shí)現(xiàn)了多個(gè)GIS應(yīng)用軟件系統(tǒng)。G/Electric的一大亮點(diǎn)就是其開(kāi)放的基于組件的開(kāi)發(fā)平臺(tái)技術(shù)。
1、組件技術(shù)概述
組件是實(shí)現(xiàn)特定功能的、符合二進(jìn)制標(biāo)準(zhǔn)的軟件模塊,這些模塊可以運(yùn)行在同一臺(tái)機(jī)器上,也可以運(yùn)行在局域網(wǎng)、廣域網(wǎng)甚至Internet上的不同機(jī)器上。接口是組件技術(shù)中最關(guān)鍵的概念,它是一組可以調(diào)用的函數(shù)的集合。接口也是組件與客戶程序間以及組件之間通信的協(xié)議轉(zhuǎn)換設(shè)備,客戶程序及組件必須通過(guò)接口才能調(diào)用組件的方法和功能。如圖1所示,對(duì)象1提供了接口1,對(duì)象2提供了接口2、接口3和接口4,對(duì)象1通過(guò)接口2調(diào)用對(duì)象2的功能,客戶程序通過(guò)接口3和接口4調(diào)用對(duì)象2的功能。
組件技術(shù)的主要特征有:
(1)可重用性。由于組件標(biāo)準(zhǔn)是建立在二進(jìn)制基礎(chǔ)上的,因此可以重用組件對(duì)象的功能,而不用考慮組件具體是如何實(shí)現(xiàn)的。
(2)開(kāi)發(fā)語(yǔ)言無(wú)關(guān)性。即組件的實(shí)現(xiàn)不依賴于某一種特定的編程語(yǔ)言,并且編寫組件的語(yǔ)言與調(diào)用組件的語(yǔ)言可以不同。
(3)跨進(jìn)程、跨線程特性。
目前,主要有兩種組件技術(shù)標(biāo)準(zhǔn):CORBA和COM(Com-ponent Object Model,組件對(duì)象模型)。CORBA是在90年代早期由OMG(Object Management Group,對(duì)象管理組織)提出的開(kāi)放的標(biāo)準(zhǔn),已獲得超過(guò)20家主要技術(shù)供應(yīng)商包括IBM,Apple、Sun等的支持;COM是微軟公司提出并創(chuàng)建的標(biāo)準(zhǔn),由于微軟的Windows在操作系統(tǒng)中的壟斷地位,使得COM的普及率遠(yuǎn)超CORBA,成為事實(shí)上的標(biāo)準(zhǔn)。
2、組件式GIS的系統(tǒng)構(gòu)成
GIS軟件根據(jù)其應(yīng)用范圍的不同,可以分為GIS基礎(chǔ)軟件平臺(tái)和GIS應(yīng)用軟件系統(tǒng)。GIS基礎(chǔ)軟件平臺(tái)把空間地理信息及相關(guān)屬性數(shù)據(jù)的操作中具有共性和通用的功能提取出來(lái),并以組件的形式加以實(shí)現(xiàn),最后將這些組件按一定的規(guī)則組合成基礎(chǔ)軟件平臺(tái)。它既可以作為運(yùn)行軟件平臺(tái),支持GIS應(yīng)用軟件的運(yùn)行,也可以作為開(kāi)發(fā)平臺(tái),在其基礎(chǔ)上進(jìn)行GIS軟件的二次開(kāi)發(fā)。GIS應(yīng)用軟件系統(tǒng)則指針對(duì)特定行業(yè)的特定應(yīng)用開(kāi)發(fā)的軟件系統(tǒng),它一般是基于某一GIS平臺(tái)進(jìn)行開(kāi)發(fā)的。GIS基礎(chǔ)軟件平臺(tái)和GIS應(yīng)用軟件系統(tǒng)的關(guān)系如圖2所示。
由GIS軟件關(guān)系圖可以看出,將GIS基礎(chǔ)軟件平臺(tái)組件化,利用組件的可重用特性,可以提高GIS軟件基本功能模塊的重用率,減少重復(fù)編碼,從而提高GIS應(yīng)用軟件的開(kāi)發(fā)效率和質(zhì)量。同時(shí),由于組件技術(shù)所具有的語(yǔ)言無(wú)關(guān)性,使得GIS應(yīng)用軟件的二次開(kāi)發(fā)真正地脫離了編程語(yǔ)言的限制,可以實(shí)現(xiàn)多種語(yǔ)言的混合編程。
3、G/Electric組件開(kāi)發(fā)平臺(tái)開(kāi)發(fā)簡(jiǎn)介
G/Electric平臺(tái)是Intergraph公司出品的專用于電力行業(yè)的GIS產(chǎn)品,用于電網(wǎng)的管理與維護(hù)。由于其價(jià)格昂貴并只應(yīng)用于電力領(lǐng)域,所以知名度不是很大。其組件開(kāi)發(fā)平臺(tái)完全基于COM技術(shù),沒(méi)有自己專有的開(kāi)發(fā)語(yǔ)言,采用通用的開(kāi)發(fā)語(yǔ)言,如PL/SQL,Visual Studio,Visual Studio.Net,Delphi,PB等;它繼承了G/Electric強(qiáng)大的功能。提供了完善的圖形放置、圖形編輯、網(wǎng)絡(luò)拓?fù)浞治?、空間統(tǒng)計(jì)查詢、數(shù)據(jù)建模、影像背景、繪圖輸出等功能?;贕/Electric組件開(kāi)發(fā)平臺(tái)開(kāi)發(fā)的系統(tǒng)具有以下一些特點(diǎn):
(1)具有可擴(kuò)展的體系結(jié)構(gòu),可以實(shí)現(xiàn)高效、無(wú)縫的系統(tǒng)集成;
(2)統(tǒng)一數(shù)據(jù)庫(kù)存儲(chǔ)圖形、屬性和規(guī)則庫(kù),真正的空間數(shù)據(jù)庫(kù)技術(shù)保證數(shù)據(jù)和系統(tǒng)可以平滑升級(jí);
(3)完全基于COM組件技術(shù),容易和其它系統(tǒng)緊密集成;
(4)真正先進(jìn)的圖數(shù)一體化系統(tǒng),系統(tǒng)不僅把空間數(shù)據(jù)和屬性數(shù)據(jù)存放在數(shù)據(jù)庫(kù)中,把模型也存放在數(shù)據(jù)庫(kù)中,比封閉的圖數(shù)一體化系統(tǒng)更加先進(jìn)。
G/Electric組件開(kāi)發(fā)平臺(tái)可以嵌入到Visual C++,Visual Basic、Delphi、PowerBuilder和C++ Builder等多種通用的開(kāi)發(fā)環(huán)境中。用戶可以根據(jù)需要選擇不同的開(kāi)發(fā)語(yǔ)言,并可以與ASP等其它Web開(kāi)發(fā)語(yǔ)言結(jié)合,高效率建立WebGIS的應(yīng)用;
4、G/Electric組件開(kāi)發(fā)平臺(tái)的構(gòu)成
4.1 G/Electric組件開(kāi)發(fā)平臺(tái)的三層結(jié)構(gòu)
微軟Windows DNA(windows分布式應(yīng)用架構(gòu))解決方案提出:應(yīng)用系統(tǒng)應(yīng)由數(shù)據(jù)層、業(yè)務(wù)邏輯層和表示層組成。表示層直接面向用戶,完成應(yīng)用的前端界面處理。業(yè)務(wù)邏輯層處理表示層的應(yīng)用請(qǐng)求,完成應(yīng)用的處理,并將處理結(jié)果返回給表示層。數(shù)據(jù)層則是對(duì)實(shí)際數(shù)據(jù)進(jìn)行管理的部分,主要提供對(duì)數(shù)據(jù)的存取、更新、管理等功能,并保證訪問(wèn)數(shù)據(jù)的安全性、完整性和一致性。
G/Electric組件開(kāi)發(fā)平臺(tái)根據(jù)Windows DNA思想設(shè)計(jì)了三層體系結(jié)構(gòu),將G/Electric平臺(tái)劃分為三個(gè)層次:數(shù)據(jù)層、業(yè)務(wù)邏輯層(中間層)和表示層,如圖3所示。數(shù)據(jù)層對(duì)應(yīng)的是主流數(shù)據(jù)庫(kù),例如Oracle、SQL Server等,業(yè)務(wù)邏輯層對(duì)應(yīng)G/Electric的功能組件集合,表示層對(duì)應(yīng)G/Electric的客戶端程序及二次開(kāi)發(fā)的功能模塊等。
4.2數(shù)據(jù)的組織
地理數(shù)據(jù)存儲(chǔ)是GIS中最低層和最基本的技術(shù),它直接影響其它高層功能的實(shí)現(xiàn)效率,從而影響整個(gè)GIS的性能。G/Electric引入了空間數(shù)據(jù)引擎的概念,將GIS數(shù)據(jù)和商業(yè)數(shù)據(jù)庫(kù)有機(jī)地結(jié)合了起來(lái),空間數(shù)據(jù)和屬性數(shù)據(jù)以記錄的形式存放在數(shù)據(jù)庫(kù)(如SQL Server和Oracle)中,統(tǒng)一由數(shù)據(jù)庫(kù)管理系統(tǒng)來(lái)控制。G/Electric支持兩種形式的數(shù)據(jù):文件數(shù)據(jù)和數(shù)據(jù)庫(kù)數(shù)據(jù)。其中文件數(shù)據(jù)以DDC(Dynamic Display Cache,圖形顯示緩存)的形式存放。圖形顯示緩存技術(shù)是專門為存儲(chǔ)空間圖形而設(shè)計(jì)的,采用Intergraph特有的四叉樹(shù)空間數(shù)據(jù)索引技術(shù)來(lái)提高圖形的訪問(wèn)和存儲(chǔ)速度。
4.3通用功能組件
G/Electric組件開(kāi)發(fā)平臺(tái)提供了一系列封裝完備的、實(shí)現(xiàn)GIS平臺(tái)處理功能的COM組件和控件。大致可以分為五類:
(1)與圖形顯示有關(guān)的組件。圖形顯示組件、圖層管理組件、顯示控制組件、圖例管理組件、設(shè)施顯示風(fēng)格組件等。
(2)圖形操作有關(guān)的組件。圖形放置組件、圖形修改組件、屬性維護(hù)組件、連接關(guān)系維護(hù)組件等。
(3)地理圖的創(chuàng)建和維護(hù)。G/Electric支持對(duì)柵格數(shù)據(jù)和矢量數(shù)據(jù)同時(shí)進(jìn)行瀏覽和操作,允許庫(kù)里包含道路、邊界、居民地等矢量圖形,也允許包含正射影像圖(航片和衛(wèi)片)等圖像。
(4)設(shè)施相關(guān)的組件。設(shè)施及設(shè)施屬性查找組件、設(shè)施定位高亮組件、連接關(guān)系追蹤組件等。
(5)其它支持組件。包括網(wǎng)絡(luò)分析、報(bào)表生成(圖形報(bào)表、數(shù)據(jù)報(bào)表)、繪圖輸出、查詢定位等。
5、基于G/Electric組件開(kāi)發(fā)平臺(tái)的應(yīng)用開(kāi)發(fā)
利用G/Electric組件可以實(shí)現(xiàn)高效、無(wú)縫的GIS應(yīng)用系統(tǒng)開(kāi)發(fā)。G/Electric組件不依賴于某一種開(kāi)發(fā)語(yǔ)言,可以直接使用通用的開(kāi)發(fā)環(huán)境(如Visual Basic或Delphi)實(shí)現(xiàn)GIS功能。通過(guò)調(diào)用G/Electric組件的基本功能,并結(jié)合其它專業(yè)模型和專業(yè)模型分析控件,可以快速地開(kāi)發(fā)GIS應(yīng)用程序,這大大降低了GIS二次開(kāi)發(fā)的難度與成本。圖4所示的就是在VB開(kāi)發(fā)環(huán)境中,利用G/Electric組件及控件開(kāi)發(fā)的一個(gè)具有圖形數(shù)據(jù)、屬性數(shù)據(jù)的瀏覽編輯等功能豐富的配電GIS應(yīng)用示例。
6、結(jié)束語(yǔ)
G/Electric組件開(kāi)發(fā)平臺(tái),采用了Windows DNA三層體系結(jié)構(gòu),具有清晰的層次劃分,極強(qiáng)的可擴(kuò)展性和可維護(hù)性。并且提供了與各種平臺(tái)集成開(kāi)發(fā)的環(huán)境,支持各種各樣的程序語(yǔ)言與開(kāi)發(fā)工具,讓系統(tǒng)開(kāi)發(fā)者可以選擇自己最擅長(zhǎng)的工具開(kāi)發(fā)GIS應(yīng)用系統(tǒng)。使用G/Electric組件開(kāi)發(fā)平臺(tái),可以有效地降低GIS應(yīng)用軟件的開(kāi)發(fā)成本,提高GIS應(yīng)用軟件的質(zhì)量,加快GIS應(yīng)用軟件的開(kāi)發(fā)進(jìn)度。