资源预览内容
第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
亲,该文档总共5页全部预览完了,如果喜欢就下载吧!
资源描述
组件概念:组件是模块化程序设计方法发展到一定阶段的产物,在软件工程的角度来考虑,开发者总是希望把一个庞大的应用程序划分成多个模块。其中,每个模块都保持一定的功能独立性,在协同工计良好的应用系统往往被切分成一些组件,这些组件可以单独开发、单独编译,甚至单独调试和测试。当所有的组件开发完成后,把他们组合在一起就得到了完整的应用系统。我们把每一个这样的模块称之为组件。目前,在软件开发领域,一场新的革命正在悄悄兴起,这是由日趋成熟的组件技术引发的。几年以前,当微软公司首先使用OLE (Object Linking & Embedding对象链接与嵌入)的时候,其初衷是为了增强软件的互操作性。然而在使用过程中,人们逐渐认识到这一技术背后的实质性内容和它在软件开发中所扮演的重要角色。组件技术将以前所未有的方式提高软件产业的生产效率,这一点已逐步成为软件开发人员的共识。传统的Client/Server结构、群件、中间件等大型软件系统的构成形式,都将在组件的基础上重新构造。 组件技术使近二十年来兴起的面向对象技术进入到成熟的实用化阶段。在组件技术的概念模式下,软件系统可以被视为相互协同工作的对象集合,其中每个对象都会提供特定的服务,发出特定的消息,并且以标准形式公布出来,以便其他对象了解和调用。组件间的接口通过一种与平台无关的语言IDL(Interface Define Language接口定义语言)来定义,而且是二进制兼容的,使用者可以直接调用执行模块来获得对象提供的服务。早期的类库,提供的是原代码级的重用,只适用于比较小规模的开发形式;而组件则封装得更加彻底,更易于使用,并且不限于C+之类的语言,可以在各种开发语言和开发环境中使用。 由于组件技术的出现,软件产业的形式也将会有所改变。大量组件生产商会涌现出来,并推出各具特色的组件产品;软件集成商则利用适当的组件快速生产出用户需要的某些应用系统;大而全的通用产品将逐步减少;很多相对较为专业,但用途广泛的软件,如GIS、语音识别系统等,都将以组件的形式组装和扩散到一般的软件产品中。什么是组件式GIS?ComGIS的定义 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等。 许多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的运行速度快。 简单地说,ComGIS就是采用了面向对象技术和组件式软件的GIS系统(包括基础平台和应用系统)ComGIS的基本思想是把GIS的各大功能模块划分为几个组件,每个组件完成不同的功能。各个GIS组件之间,以及GIS组件与其它非GIS组件之间,都可以方便地通过可视化的软件开发工具集成起来,形成最终的GIS基础平台以及应用系统。控件如同一堆各式各样的积木,他们分别实现不同的功能(包括GIS和非GIS功能),根据需要把实现各种功能的 “积木”搭建起来,就构成应用系统。组件式GIS代表着当今GIS发展的潮流,其代表作当属全球最大GIS厂商ESRI(美国环境研究所)推出的MapObjects12和著名的桌面GIS厂商美国MapInfo公司推出的MapX30,另外还有Intergragh公司的GeoMedia、加拿大阿波罗科技集团的TITAN、中科院地理所的ActiveMap等。ComGIS给国内GIS基础软件的开发提供了一个良好的机遇,因为它打破了GIS基础软件由几个厂商垄断的格局,开辟了以提供专业组件来打入GIS市场的新途径。目前大多数GIS软件公司都把开发组件式软件作为一个重要的发展战略。组件式GIS系统的特点把GIS的功能适当抽象,以组件形式供开发者使用,将会带来许多传统GIS工具无法比拟的优点。(1)小巧灵活、价格便宜在组件模型下,各组件都集中地实现与自己最紧密相关的系统功能。组件化的GIS平台集中提供空间数据管理能力,并且能以灵活的方式与数据库系统连接。在保证功能的前提下,系统表现得小巧灵活,而其价格仅是传统GIS开发工具的十分之一,甚至更少。这样,用户便能以较好的性能价格比获得或开发GIS应用系统。(2)直接嵌入MIS开发工具组件的生产建立在严格的标准之上,因此,凡符合标准的组件都可在目前流行的各种开发工具上使用。这样,VB、VC、Delphi、PowerBuilder、Notes、Foxpro、Access等都可直接成为GIS或GMIS的优秀开发工具,它们各自的优点都能够得到充分发挥。这与传统GIS专门性开发环境相比,是一种质的飞跃。(3)强大的GIS功能新的GIS组件都是基于32位系统平台的,采用InProc直接调用形式,所以无论是管理大数据的能力还是处理速度方面均不比传统GIS软件逊色。小小的GIS组件完全能提供拼接、裁剪、叠合、缓冲区等空间处理能力和丰富的空间查询与分析能力。(4)开发简捷由于GIS组件可以直接嵌入MIS开发工具中,对于广大开发人员来讲,就可以自由选用他们熟悉的开发工具。而且,GIS组件提供的API(Application Programming Interface,应用程序编程接口)形式非常接近MIS工具的模式,开发人员可以像管理数据库表一样熟练地管理地图等空间数据,无须对开发人员进行特殊的培训。在GIS或GMIS的开发过程中,开发人员的素质与熟练程度是十分重要的因素。这将使大量的MIS开发人员能够较快地过渡到GIS或GMIS的开发工作中,从而大大加速GIS的发展。组件式GIS开发平台的结构组件式GIS开发平台通常可设计为三级结构:基础组件面向空间数据管理,提供基本的交互过程。高级通用组件面向通用功能。行业性组件抽象出行业应用的特定算法,固化到组件中,进一步加速开发过程。1.基础组件处于平台最低层,是整个系统的基础,主要面向空间数据管理,提供基本的交互过程,并能以灵活的方式与数据库系统连接。2.高级通用组件高级通用组件由基础组件构造而成。它们面向通用功能,简化用户开发过程,如显示工具组件、选择工具组件、编辑工具组件、属性浏览器组件等等。它们之间的协同控制消息都被封装起来。这级组件经过封装后,使二次开发更为简单。如一个编辑查询系统,若用基础平台开发,需要编写大量的代码,而利用高级通用组件,只需几句程序就够了。3.行业性组件以GPS监控为例。对于GPS应用,除了需要地图显示、信息查询等一般的GIS功能外,还需要特定的应用功能,如动态目标显示、目标锁定、轨迹显示等。这些GPS行业性应用功能组件被封装起来后,开发者的工作就可简化为设置显示目标的图例、轨迹显示的颜色、锁定的目标,以及调用、接受数据的方法等。COM组件COM component(COM组件)是微软公司为了计算机工业的软件生产更加符合人类的行为方式开发的一种新的软件开发技术。在COM构架下,人们可以开发出各种各样的功能专一的组件,然后将它们按照需要组合起来,构成复杂的应用系统。由此带来的好处是多方面的:可以将系统中的组件用新的替换掉,以便随时进行系统的升级和定制;可以在多个应用系统中重复利用同一个组件;可以方便的将应用系统扩展到网络环境下;COM与语言,平台无关的特性使所有的程序员均可充分发挥自己的才智与专长编写组件模块。COM方法COM是开发软件组件的一种方法。组件实际上是一些小的二进制可执行程序,它们可以给应用程序,操作系统以及其他组件提供服务。开发自定义的COM组件就如同开发动态的,面向对象的API。多个COM对象可以连接起来形成应用程序或组件系统。并且组件可以在运行时刻,在不被重新链接或编译应用程序的情况下被卸下或替换掉。Microsoft的许多技术,如ActiveX, DirectX以及OLE等都是基于COM而建立起来的。并且Microsoft的开发人员也大量使用COM组件来定制他们的应用程序及操作系统。 COM所含的概念并不止是在Microsoft Windows操作系统下才有效。COM并不是一个大的API,它实际上像结构化编程及面向对象编程方法那样,也是一种编程方法。在任何一种操作系统中,开发人员均可以遵循“COM方法”。 一个应用程序通常是由单个的二进制文件组成的。当编译器生成应用程序之后,在对下一个版本重新编译并发行新生成的版本之前,应用程序一般不会发生任何变化。操作系统,硬件及客户需求的改变都必须等到整个应用程序被重新生成。 目前这种状况已经发生变化。开发人员开始将单个的应用程序分隔成单独多个独立的部分,也即组件。这种做法的好处是可以随着技术的不断发展而用新的组件取代已有的组件。此时的应用程序可以随新组件不断取代旧的组件而渐趋完善。而且利用已有的组件,用户还可以快速的建立全新的应用。 传统的做法是将应用程序分割成文件,模块或类,然后将它们编译并链接成一个单模应用程序。它与组件建立应用程序的过程(称为组件构架)有很大的不同。一个组件同一个微型应用程序类似,即都是已经编译链接好并可以使用的二进制代码,应用程序就是由多个这样的组件打包而得到的。单模应用程序只有一个二进制代码模块。自定义组件可以在运行时刻同其他的组件连接起来以构成某个应用程序。在需要对应用程序进行修改或改进时,只需要将构成此应用程序的组
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号