摘要:闡述了組件技術的基本概念,討論了組件式GIS的系統構成,進而介紹了Intergraph公司的G/Electric組件開發平臺的特點和體系結構,并詳細介紹了基于G/Electric組件開發平臺開發GIS應用系統的設計思路。
關鍵詞:地理信息系統;組件;組件對象模型;G/Electric
引言
地理信息系統(GIS)是在計算機軟硬件支持下,以采集、存儲、管理、檢索、分析和描述空間物體的地理分布數據及與之相關的屬性,并回答用戶問題等為主要任務的技術系統。目前世界上常用的GIS軟件已達400多種。它們大小不一、風格各異。國外較著名的有ARC/INFO,MAPINFO、GTECHNOLOGY、MicroStation等;國內較著名的有MAPGIS。Geostar和CITYSTAR等。雖然GIS起步晚,但它發展快,目前已廣泛應用于城市市政設施管理、管網、電信、電力、土地管理、城市規劃、交通管制、房地產、旅游、公安、消防、資源、環境、國土規劃等領域。
組件技術是面向對象技術的最新發展,是當今軟件技術的潮流之一。組件式GIS就是利用組件技術開發的新一代地理信息系統。它基于組件對象模型,以一系列組件的形式提供與GIS相關的功能和服務。目前,國內外GIS廠家紛紛推出基于組件技術的GIS平臺,如ESRI的MapObjects,Maplnfo的MapX、MapExtreme和GeoMedia的地圖對象等。G/Electric平臺是國際三大GIS供應商之一的Intergraph公司出品的優秀GIS基礎軟件平臺,在該平臺上已經開發、實現了多個GIS應用軟件系統。G/Electric的一大亮點就是其開放的基于組件的開發平臺技術。
1、組件技術概述
組件是實現特定功能的、符合二進制標準的軟件模塊,這些模塊可以運行在同一臺機器上,也可以運行在局域網、廣域網甚至Internet上的不同機器上。接口是組件技術中最關鍵的概念,它是一組可以調用的函數的集合。接口也是組件與客戶程序間以及組件之間通信的協議轉換設備,客戶程序及組件必須通過接口才能調用組件的方法和功能。如圖1所示,對象1提供了接口1,對象2提供了接口2、接口3和接口4,對象1通過接口2調用對象2的功能,客戶程序通過接口3和接口4調用對象2的功能。

組件技術的主要特征有:
(1)可重用性。由于組件標準是建立在二進制基礎上的,因此可以重用組件對象的功能,而不用考慮組件具體是如何實現的。
(2)開發語言無關性。即組件的實現不依賴于某一種特定的編程語言,并且編寫組件的語言與調用組件的語言可以不同。
(3)跨進程、跨線程特性。
目前,主要有兩種組件技術標準:CORBA和COM(Com-ponent Object Model,組件對象模型)。CORBA是在90年代早期由OMG(Object Management Group,對象管理組織)提出的開放的標準,已獲得超過20家主要技術供應商包括IBM,Apple、Sun等的支持;COM是微軟公司提出并創建的標準,由于微軟的Windows在操作系統中的壟斷地位,使得COM的普及率遠超CORBA,成為事實上的標準。
2、組件式GIS的系統構成
GIS軟件根據其應用范圍的不同,可以分為GIS基礎軟件平臺和GIS應用軟件系統。GIS基礎軟件平臺把空間地理信息及相關屬性數據的操作中具有共性和通用的功能提取出來,并以組件的形式加以實現,最后將這些組件按一定的規則組合成基礎軟件平臺。它既可以作為運行軟件平臺,支持GIS應用軟件的運行,也可以作為開發平臺,在其基礎上進行GIS軟件的二次開發。GIS應用軟件系統則指針對特定行業的特定應用開發的軟件系統,它一般是基于某一GIS平臺進行開發的。GIS基礎軟件平臺和GIS應用軟件系統的關系如圖2所示。

由GIS軟件關系圖可以看出,將GIS基礎軟件平臺組件化,利用組件的可重用特性,可以提高GIS軟件基本功能模塊的重用率,減少重復編碼,從而提高GIS應用軟件的開發效率和質量。同時,由于組件技術所具有的語言無關性,使得GIS應用軟件的二次開發真正地脫離了編程語言的限制,可以實現多種語言的混合編程。
3、G/Electric組件開發平臺開發簡介
G/Electric平臺是Intergraph公司出品的專用于電力行業的GIS產品,用于電網的管理與維護。由于其價格昂貴并只應用于電力領域,所以知名度不是很大。其組件開發平臺完全基于COM技術,沒有自己專有的開發語言,采用通用的開發語言,如PL/SQL,Visual Studio,Visual Studio.Net,Delphi,PB等;它繼承了G/Electric強大的功能。提供了完善的圖形放置、圖形編輯、網絡拓撲分析、空間統計查詢、數據建模、影像背景、繪圖輸出等功能。基于G/Electric組件開發平臺開發的系統具有以下一些特點:
(1)具有可擴展的體系結構,可以實現高效、無縫的系統集成;
(2)統一數據庫存儲圖形、屬性和規則庫,真正的空間數據庫技術保證數據和系統可以平滑升級;
(3)完全基于COM組件技術,容易和其它系統緊密集成;
(4)真正先進的圖數一體化系統,系統不僅把空間數據和屬性數據存放在數據庫中,把模型也存放在數據庫中,比封閉的圖數一體化系統更加先進。
G/Electric組件開發平臺可以嵌入到Visual C++,Visual Basic、Delphi、PowerBuilder和C++ Builder等多種通用的開發環境中。用戶可以根據需要選擇不同的開發語言,并可以與ASP等其它Web開發語言結合,高效率建立WebGIS的應用;
4、G/Electric組件開發平臺的構成
4.1 G/Electric組件開發平臺的三層結構
微軟Windows DNA(windows分布式應用架構)解決方案提出:應用系統應由數據層、業務邏輯層和表示層組成。表示層直接面向用戶,完成應用的前端界面處理。業務邏輯層處理表示層的應用請求,完成應用的處理,并將處理結果返回給表示層。數據層則是對實際數據進行管理的部分,主要提供對數據的存取、更新、管理等功能,并保證訪問數據的安全性、完整性和一致性。

G/Electric組件開發平臺根據Windows DNA思想設計了三層體系結構,將G/Electric平臺劃分為三個層次:數據層、業務邏輯層(中間層)和表示層,如圖3所示。數據層對應的是主流數據庫,例如Oracle、SQL Server等,業務邏輯層對應G/Electric的功能組件集合,表示層對應G/Electric的客戶端程序及二次開發的功能模塊等。
4.2數據的組織
地理數據存儲是GIS中最低層和最基本的技術,它直接影響其它高層功能的實現效率,從而影響整個GIS的性能。G/Electric引入了空間數據引擎的概念,將GIS數據和商業數據庫有機地結合了起來,空間數據和屬性數據以記錄的形式存放在數據庫(如SQL Server和Oracle)中,統一由數據庫管理系統來控制。G/Electric支持兩種形式的數據:文件數據和數據庫數據。其中文件數據以DDC(Dynamic Display Cache,圖形顯示緩存)的形式存放。圖形顯示緩存技術是專門為存儲空間圖形而設計的,采用Intergraph特有的四叉樹空間數據索引技術來提高圖形的訪問和存儲速度。
4.3通用功能組件
G/Electric組件開發平臺提供了一系列封裝完備的、實現GIS平臺處理功能的COM組件和控件。大致可以分為五類:
(1)與圖形顯示有關的組件。圖形顯示組件、圖層管理組件、顯示控制組件、圖例管理組件、設施顯示風格組件等。
(2)圖形操作有關的組件。圖形放置組件、圖形修改組件、屬性維護組件、連接關系維護組件等。
(3)地理圖的創建和維護。G/Electric支持對柵格數據和矢量數據同時進行瀏覽和操作,允許庫里包含道路、邊界、居民地等矢量圖形,也允許包含正射影像圖(航片和衛片)等圖像。
(4)設施相關的組件。設施及設施屬性查找組件、設施定位高亮組件、連接關系追蹤組件等。
(5)其它支持組件。包括網絡分析、報表生成(圖形報表、數據報表)、繪圖輸出、查詢定位等。
5、基于G/Electric組件開發平臺的應用開發
利用G/Electric組件可以實現高效、無縫的GIS應用系統開發。G/Electric組件不依賴于某一種開發語言,可以直接使用通用的開發環境(如Visual Basic或Delphi)實現GIS功能。通過調用G/Electric組件的基本功能,并結合其它專業模型和專業模型分析控件,可以快速地開發GIS應用程序,這大大降低了GIS二次開發的難度與成本。圖4所示的就是在VB開發環境中,利用G/Electric組件及控件開發的一個具有圖形數據、屬性數據的瀏覽編輯等功能豐富的配電GIS應用示例。

6、結束語
G/Electric組件開發平臺,采用了Windows DNA三層體系結構,具有清晰的層次劃分,極強的可擴展性和可維護性。并且提供了與各種平臺集成開發的環境,支持各種各樣的程序語言與開發工具,讓系統開發者可以選擇自己最擅長的工具開發GIS應用系統。使用G/Electric組件開發平臺,可以有效地降低GIS應用軟件的開發成本,提高GIS應用軟件的質量,加快GIS應用軟件的開發進度。