ComGIS


ComGIS

文章插图
ComGIS【ComGIS】COM是组件式对象模型(Component Object Model)的英文缩写,ComGIS是面向对象技术和组件式软体在GIS软体开发中的套用 。组件式软体技术已经成为当今软体技术的潮流之一,推动了地理信息系统的组件化发展,组件式GIS是GIS的发展新阶段 。
基本介绍中文名:ComGIS
外文名:Component Object Model
领域:计算机
技术:面向对象技术
基本思想认识ComGIS,首先需要了解所依赖的技术基础-组件式对象模型和ActiveX控制项 。COM是组件式对象模型,是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功能),根据需要把实现各种功能的 “积木”搭建起来,就构成套用系统 。组件技术目前,在软体开发领域,一场新的革命正在悄悄兴起,这是由日趋成熟的组件技术引发的 。几年以前,当微软公司首先使用OLE (Object Linking & Embedding)的时候,其初衷是为了增强软体的互操作性 。然而在使用过程中,人们逐渐认识到这一技术背后的实质性内容和它在软体开发中所扮演的重要角色 。组件技术将以前所未有的方式提高软体产业的生产效率,这一点已逐步成为软体开发人员的共识 。传统的Client/Server结构、群件、中间件等大型软体系统的构成形式,都将在组件的基础上重新构造 。组件技术使近二十年来兴起的面向对象技术进入到成熟的实用化阶段 。在组件技术的概念模式下,软体系统可以被视为相互协同工作的对象集合,其中每个对象都会提供特定的服务,发出特定的讯息,并且以标準形式公布出来,以便其他对象了解和调用 。组件间的接口通过一种与平台无关的语言IDL(Interface Define Language)来定义,而且是二进制兼容的,使用者可以直接调用执行模组来获得对象提供的服务 。早期的类库,提供的是原代码级的重用,只适用于比较小规模的开发形式;而组件则封装得更加彻底,更易于使用,并且不限于C++之类的语言,可以在各种开发语言和开发环境中使用 。由于组件技术的出现,软体产业的形式也将会有所改变 。大量组件生产商会涌现出来,并推出各具特色的组件产品;软体集成商则利用适当的组件快速生产出用户需要的某些套用系统;大而全的通用产品将逐步减少;很多相对较为专业,但用途广泛的软体,如GIS、语音识别系统等,都将以组件的形式组装和扩散到一般的软体产品中 。套用方式GIS技术的发展,在软体模式上经历了功能模组、包式软体、核心式软体,从而发展到ComGIS、WebGIS的过程 。传统GIS虽然在功能上已经比较成熟,但是由于这些系统多是基于十多年前的软体技术开发的,属于独立封闭的系统 。同时,GIS软体变得日益庞大,用户难以掌握,费用昂贵,阻碍了GIS的普及和套用 。组件式软体是新一代GIS的重要基础, ComGIS的出现为传统GIS面临的多种问题提供了全新的解决思路 。ComGIS是面向对象技术和组件式软体在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的运行速度快 。GIS的核心是 GIS软体 ,GIS软体的发展和 IT 技术,尤其是与主流软体技术的发展紧密相关。在组件技术出现之前,GIS软体大多採用桌面 GIS加专用二次开发语言的方式,存在用户难学难用,扩展困难,无法与 MIS等其他系统集成等问题。GIS仅限于测绘、土地等少数部门使用,无法为更多的领域行业和大众服务,GIS 处于专家 GIS 阶段 。20 世纪90年代中期,微软推出COM组件技术,并在GIS中得到广泛套用,形成了COMGIS 。COMGIS具备高效无缝集成、无须专门 GIS 开发语言、成本低等优点以及组件式软体的可编程和可重用的特性,GIS也因此开始融人 IT 主流,使得 GIS进入到 COMGIS 阶段 。开发方式(1)GIS 控制项方式 所用的 GIS 组件多数是以 ActiveX 控制项的形式存在,一般和专业套用系统在 Microsoft 平台上集成 。这些控制项将基础的 GIS 组件封装在一起,方便地嵌入Microsoft 平台的任何标準开发环境中 。使用 GIS 控制项的目的是将 GIS功能引入其他系统中,这是 GIS 控制项存在的意义.它禁止了所有功能的实现细节,对用户的编程技能要求很低 。由于这种 GIS 开发方式简单、快捷,并且控制项提供的功能既满足了用户的需要又充分利用了资料,因此这种开发方式得到了最为广泛的套用 。较有代表性的 GIS控制项有:MapInfo 的MapX和 ESRI的 MapObject 。(2)桌面 GIS平台方式 桌面 GIS本身是一个可以独立使用的 GIS套用系统 。系统由众多不同的独立的 GIS组件组成,各个 GIS组件提供的不同功能模组共同实现系统的功能 。这些组件基于同一组件开发平台,且满足一定的协定,因而这些组件能无缝集成,从而构成完整的系统 。用户可根据需要选择适当的组件开发出满足自己功能需求的套用系统 。最有代表性的 COMGIS 平台实现方式是 ArcGIS 系统平台开发的系统 。该系统平台使用的组件是 COM/DCOM,用户在 Microsoft 平台上的标準开发环境中能方便地定製自身的专 业套用组件对其进行二次开发 。(3)基于 Web 的实现方式 COMGIS 在 Internet/Intranet 上的扩展,即网路技术与COMGIS 技术相结合作为 COMGIS 的一种开发方式,同时也是实现 WebGIS的一种方案 。这种实现方式是基于 B/S的结构,通过扩展浏览器的功能,利用浏览器就能对图像进行缩放、移动、选定等操作,实现基础的 GIS 功能 。目前,使用较广泛的是在浏览器上安装基于 COM/DCOM 的 ActiveX 控制项扩展 Web 浏览器的动态模组 。最具有代表性的是ArcIMS 。(4)基于 GIS中间件的 COMGIS实现方式 这里的 GIS中间件可以是一个产品或一种服务,它将众多 GIS 组件融合在一起 。作为产品它可方便地交付给用户使用,作为服务用户可通过网际网路快速获得 。它採用标準接口回响用户的功能请求和进行数据交换;它独立存在,用户只需以嚮导的形式获得相应的功能或决定数据的输出方式,所有需要 GIS 功能的用户都能使用而无需掌握 GIS编程技能;它能禁止作业系统平台和 GIS数据间的异构性;它提供了统一的接口,任何人按照一定的规範都能将其扩充。优点把 GIS 的功能适当抽象,以组件形式供开发者使用,将会带来许多传统 GIS 工具无法比拟的优点 。(1)小巧灵活、价格便宜组件化的 GIS 平台集中提供空间数据管理能力,并且能以灵活的方式与资料库系统连线 。在保证功能的前提下,系统表现得小巧灵活,而其价格仅是传统 GIS 开发工具的十分之一,甚至更少 。这样,用户便能以较好的性能价格比获得或开发 GIS套用系统 。(2)无须专门 GIS开发语言,直接嵌入 MIS开发工具组件式 GIS 建立在严格的标準之上,不需要额外的 GIS 二次开发语言,只需实现 GIS的基本功能函式,按照 Microsoft 的 ActiveX 控制项标準开发接口 。GIS 套用开发者,不必掌握额外的 GIS 开发语言,只需熟悉基于 Windows 平台的通用集成开发环境,以及 GIS 各个控制项的属性、方法和事件,就可以完成套用系统的开发和集成 。(3)强大的 GIS功能新的 GIS组件都是基于 32 位系统平台的,採用 InProc 直接调用形式,所以无论是管理大数据的能力还是处理速度方面均不比传统 GIS 软体逊色 。小小的 GIS 组件完全能提供拼接、裁剪、叠合、缓冲区等空间处理能力和丰富的空间查询与分析能力 。(4)开发简捷由于 GIS 组件可以直接嵌入 MIS 开发工具中,对于广大开发人员来讲,就可以自由选用他们熟悉的开发工具 。而且,GIS 组件提供的 API 形式非常接近 MIS 工具的模式,开发人员可以像管理资料库表一样熟练地管理地图等空间数据,无须对开发人员进行特殊的培训 。(5)更加大众化组件式技术已经成为业界标準,用户可以象使用其他 ActiveX控制项一样使用 GIS控制项,使非专业的普通用户也能够开发和集成 GIS套用系统,推动了 GIS大众化进程 。组件式 GIS 的出现使 GIS 不仅是专家们的专业分析工具,同时也成为普通用户对地理相关数据进行管理的的可视化工具 。COMGIS 有如下几个特性:①可复用性 它是组件式软体最基本的特性,也是组件技术和 GIS技术相结合的最初驱动力 。与传统的复用技术(代码段复用、类复用等)相比,组件的复用更注重于大範围的软体复用和软体复用的容易程度 。而对于 GIS软体组件的复用还应着眼于和其他非计算机领域结合的专业套用领域中的组件复用 。②可封装性 封装的目的不仅是为了隐藏设计和实现细节,使组件对外呈现相对独立的实体,而对于组件使用者来说,封装还意味着提高组件复用的容易程度 。对于 GIS 这样複杂的专业套用更需要重视 。③可定製性 指组件在组装过程中随组装环境的不同而作出适当的调整 。由于 GIS 必须和专业套用结合才能发挥其潜在的功能,因此绝大部分 GIS 组件在开发的过程中必须考虑其方便的可定製性,这是开发的难点之一 。④可组装性 利用 GIS组件开发系统的过程是各种 GIS组件组装的过程,组装是实施复用的手段 。⑤语言无关性 突破了传统 GIS 开发时需要学习特殊开发语言的限制 。一般标準开发语言都可用来开发 GIS 。⑥无缝集成性 满足一定规範的不同语言开发的具有不同功能的 GIS组件在同一标準开发环境下能够集成,不仅如此,GIS组件还能和其他专业套用系统集成 。这种集成是高效的、无缝的,降低了 GIS开发的成本,并为 GIS走向大众化提供了有力的支持 。