ComGIS

ComGIS

目前,在軟體開發領域,一場新的革命正在悄悄興起,這是由日趨成熟的組件技術引發的。幾年以前,當微軟公司首先使用OLE (Object Linking & Embedding)的時候,其初衷是為了增強軟體的互操作性。然而在使用過程中,人們逐漸認識到這一技術背後的實質性內容和它在軟體開發中所扮演的重要角色。組件技術將以前所未有的方式提高軟體產業的生產效率,這一點已逐步成為軟體開發人員的共識。傳統的Client/Server結構、群件、中間件等大型軟體系統的構成形式,都將在組件的基礎上重新構造。

概述


組件技術使近二十年來興起的面向對象技術進入到成熟的實用化階段。在組件技術的概念模式下,軟體系統可以被視為相互協同工作的對象集合,其中每個對象都會提供特定的服務,發出特定的消息,並且以標準形式公布出來,以便其他對象了解和調用。組件間的介面通過一種與平台無關的語言IDL(Interface Define Language)來定義,而且是二進位兼容的,使用者可以直接調用執行模塊來獲得對象提供的服務。早期的類庫,提供的是原代碼級的重用,只適用於比較小規模的開發形式;而組件則封裝得更加徹底,更易於使用,並且不限於C++之類的語言,可以在各種開發語言和開發環境中使用。
由於組件技術的出現,軟體產業的形式也將會有所改變。大量組件生產商會湧現出來,並推出各具特色的組件產品;軟體集成商則利用適當的組件快速生產出用戶需要的某些應用系統;大而全的通用產品將逐步減少;很多相對較為專業,但用途廣泛的軟體,如GIS、語音識別系統等,都將以組件的形式組裝和擴散到一般的軟體產品中。
GIS技術的發展,在軟體模式上經歷了功能模塊、包式軟體、核心式軟體,從而發展到ComGIS和WebGIS的過程。傳統GIS雖然在功能上已經比較成熟,但是由於這些系統多是基於十多年前的軟體技術開發的,屬於獨立封閉的系統。同時,GIS軟體變得日益龐大,用戶難以掌握,費用昂貴,阻礙了GIS的普及和應用。組件式軟體是新一代GIS的重要基礎, ComGIS的出現為傳統GIS面臨的多種問題提供了全新的解決思路。
ComGIS是面向對象技術和組件式軟體在GIS軟體開發中的應用。認識ComGIS,首先需要了解所依賴的技術基礎-組件式對象模型和ActiveX控制項。
COM是組件式對象模型(Component Object Model)的英文縮寫,是OLE和ActiveX共同的基礎。COM不是一種面向對象的語言,而是一種二進位標準。COM所建立的是一個軟體模塊與另一個軟體模塊之間的鏈接,當這種鏈接建立之後,模塊之間就可以通過稱之為“介面”的機制來進行通信。COM標準增加了保障系統和組件完整的安全機制,擴展到分散式環境。這種基於分散式環境下的COM被稱作DCOM (Distribute COM)。DCOM實現了COM對象與遠程計算機上的另一個對象之間直接進行交互。
ActiveX是一套基於COM的可以使軟體組件在網路環境中進行互操作而不管該組件是用何種語言創建的技術。作為ActiveX技術的重要內容,ActiveX 控制項是一種可編程、可重用的基於COM的對象。ActiveX控制項通過屬性、事件、方法等介面與應用程序進行交互。
一些軟體公司專門生產各種用途的ActiveX控制項,比如:資料庫訪問、數據監視、數據顯示、圖形顯示、圖像處理,甚至三維動畫等等。幾個著名的GIS軟體公司把COM技術應用於GIS開發,紛紛推出由一系列ActiveX控制項組成的ComGIS軟體,比如Intergraph公司的GeoMediaESRIMapObjectsMapInfo公司的MapX等。
ComGIS的基本思想是把GIS的各大功能模塊劃分為幾個控制項,每個控制項完成不同的功能。各個GIS控制項之間,以及GIS控制項與其它非GIS控制項之間,可以方便地通過可視化的軟體開發工具集成起來,形成最終的GIS應用。控制項如同一堆各式各樣的積木,他們分別實現不同的功能(包括GIS和非GIS功能),根據需要把實現各種功能的“積木”搭建起來,就構成應用系統。
許多WebGIS軟體包均採用HTML標準,活動內容採用Java applets(SUN 標準)或者 ActiveX(Microsoft 標準)進行傳遞。新型的分散式面向對象WebGIS可以採用CORBA/Java或者DCOM/ActiveX技術進行開發。ActiveX控制項不僅可以用於一般的ActiveX容器程序 (比如Visual BasicDelphi等) ,而且能嵌入Web頁面中。任何ActiveX控制項都可以設計成Internet控制項,作為Web頁面的一部分,Web頁面中的控制項通過腳本(Script)互相通信。因此,ComGIS是WebGIS的一種解決方案,而基於這一方案的WebGIS通常比基於Java的運行速度快。

相關條目


公司