概述
組件技術使近二十年來興起的面向對象技術進入到成熟的實用化階段。在組件技術的概念模式下,軟體系統可以被視為相互協同工作的對象集合,其中每個對象都會提供特定的服務,發出特定的訊息,並且以標準形式公布出來,以便其他對象了解和調用。組件間的接口通過一種與平台無關的語言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公司的GeoMedia、ESRI的MapObjects、MapInfo公司的MapX等。
ComGIS的基本思想是把GIS的各大功能模組劃分為幾個控制項,每個控制項完成不同的功能。各個GIS控制項之間,以及GIS控制項與其它非GIS控制項之間,可以方便地通過可視化的軟體開發工具集成起來,形成最終的GIS套用。控制項如同一堆各式各樣的積木,他們分別實現不同的功能(包括GIS和非GIS功能),根據需要把實現各種功能的 “積木”搭建起來,就構成套用系統。
許多WebGIS軟體包均採用HTML標準,活動內容採用Java applets(SUN 標準)或者 ActiveX(Microsoft 標準)進行傳遞。新型的分散式面向對象WebGIS可以採用CORBA/Java或者DCOM/ActiveX技術進行開發。ActiveX控制項不僅可以用於一般的ActiveX容器程式 (比如Visual Basic、Delphi等) ,而且能嵌入Web頁面中。任何ActiveX控制項都可以設計成Internet控制項,作為Web頁面的一部分,Web頁面中的控制項通過腳本(Script)互相通信。因此,ComGIS是WebGIS的一種解決方案,而基於這一方案的WebGIS通常比基於Java的運行速度快。