软件组件技术及其在GIS 中的应用_第1页
软件组件技术及其在GIS 中的应用_第2页
软件组件技术及其在GIS 中的应用_第3页
软件组件技术及其在GIS 中的应用_第4页
软件组件技术及其在GIS 中的应用_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件组件技术及其在GIS中的应用摘要:为了适应软件组件化潮流,新一代地理信息系统——组件式地理信息系统越来越成为今后GIS开展的趋势。在阐述组件式地理信息系统的概念和开展的根底上,介绍了组件式地理信息系统所依赖的技术根底——组件技术,最后提出在实际开发组件式地理信息系统平台时的设计思路。关键词:地理信息系统COM/DCOMCOMGISTheApplicationOfComponentsTechnologyInGISAbstract:InordertobeseasonedwiththeCOMtideofsoftware,COMGISbecomesthedirectionofdevelopmentofGISmoreandmore.BasedonexpatiatingtheconceptionanddevelopmentofCOMGIS,IntroducethetechnicbasisofCOMGIS——COM/DCOM,finallyputforwardthedesignthoughtofempolderingCOMGISplatforminpractice.Keywords:GISCOM/DCOMCOMGIS1引言空间信息是十分重要的,地球上的万物无不与空间位置发生关系,如何利用计算机处理空间相关信息是地理信息系统产生和开展的原动力。现在GIS技术在国防、城市规划、国土资源管理、交通运输、环境监测和保护等与国民经济乃至国家命脉相关的重要领域的成功应用,极大地推动了社会生产力的开展,使之成为世界各国剧烈竞争的高科技热点之一。同时,社会的开展,特别是信息全球化的今天,对空间地理信息管理提出了更高的要求。传统的GIS技术正面临着严峻的挑战。组件化技术是针对长期以来软件开展落后于硬件开展的问题而提出的解决方案,它从根本上改变了传统的软件开发思想,,构筑了一个由多方自主提供软件组件、组件间相互协调工作的体系,实现了软件的复用和健壮更新,是软件业沿社会化方向开展的大趋势。将软件组件化开发思想应用于GIS软件开发中,是在技术上摆脱重复开发的有效途径,因此能加快GIS技术的进步,将为GIS的开展带来巨大的生机。软件组件对象模型是关于软件组件之间如何连接的标准。目前占主导地位的主要有微软的COM(即ComponentObjectModel)和对象管理集团OGM的CORBA(即CommonObjectRequestBrokerArchitecture)。其中COM具有明确的组件开发和调用的标准,在PC平台上已形成广泛的应用根底。2组件式GIS概述地理信息系统(GIS)经过近40年的开展,在空间数据的获取能力、储存与管理能力、处理与分析能力以及显示与输出能力等方面都取得了长足的进步。随着GIS在各个领域应用的深入开展,GIS的组件化趋势日益明显,已经成为GIS的重要开展方向之一。从GIS软件模块开发和集成的技术开展历程,GIS可以划分为以下几个开展阶段。GISGIS模块集成式GIS模块化GIS核心式GIS组件式GISWebGIS互操作GIS图1GIS软件的开展历程从GIS模块发到集成式GIS是从分散到集中的过程,这是GIS开展历程中的一个重大进步。从集成式GIS开展到模块化GIS,这是GIS组件化的开始,随后开展到核心式GIS,GIS组件化趋势越来越明显,并形成组件化的标准形式——组件式GIS和WebGIS。从开展过程来看,GIS经历了如图1所示的几个开展阶段,了解这一历程可以更好地认识到GIS组件化的趋势。GIS应用的广度和深度主要依赖于GIS平台技术,传统的GIS平台虽然在功能上较为成熟和完善,但是其平台的开发技术已经落台,随着GIS应用的不断扩展和深入,用户对GIS技术提出了更高、更新的要求,要求GIS从封闭走向开放,提供广域空间信息共享和实现空间数据、空间分析的无缝集成。于是,传统GIS平台的缺陷逐渐暴露了出来,具体表现在:=1\*GB3①系统复杂而庞大,使得普通的开发技术人员难以掌握,导致开发周期过长,阻碍着自身的推广和开展。=2\*GB3②单纯的二次开发语言限制了GIS与多媒体技术及其它专业模块、专业系统的高效无缝集成,从而导致了应用局限。=3\*GB3③难以应付海量数据的管理和分析,受到操作系统平台的限制,无法应用分布式环境,无法跨平台运行,更无法基于WEB发布数据。这些缺陷仅靠其平台自身难以得到妥善合理地解决,唯一的出路就是融合新的计算机技术,通过新技术的应用来推动GIS理论体系和应用体系的开展和完善。随着计算机技术和软件技术的飞速开展,特别是Internet的出现和组件式软件技术的应用,GIS也自然而然迎合这些起着革命性的开展和变化的趋势,无论是GIS平台的设计思想,还是GIS应用系统的开发方式。近几年来,组件式GIS开展为GIS的前沿技术,并逐渐成为主流趋势。目前,已经商业化的COMGIS平台有GeoMediaMapObjectsArcObjects等。组件式GIS(ComponentsGIS,缩写为COMGIS)是指基于组件对象平台,以一组具有某种标准通信接口的、允许跨语言应用的组件提供的GIS。这种组件称为GIS组件。GIS组件之间以及GIS组件与其他组件之间可以通过标准的通信接口实现交互,这种交互甚至可以跨计算机实现。COMGIS是面向对象技术和组件式软件在GIS软件开发中的应用。COMGIS为新一代GIS应用提供了全新的开发工具。同传统GIS比较,COMGIS具有多方面的特点,包括:无缝集成、跨语言使用、易于推广、本钱低、无限扩展性、可视化界面设计以及Internet应用等。3COM/DCOM技术组件式对象模型(ComponentObjectModel简称COM)是OLEObjectLinkingandEmbedding)和ActiveX共同的根底。是一种以组件为发布单元的对象模型,它不是编程语言,而是构造二进制兼容软件组件的标准,COM定义的标准是建立在二进制代码级的根底之上,所以不依赖于任何特定的语言环境。COM所建立的是一个软件模块与另一个软件模块之间的链接,当这种链接建立之后,模块之间就可以通过被称之为“接口〞的机制来进行通信。组件间的接口通过一种与平台无关的语言IDL来定义,而且是二进制兼容的,使用者可以直接调用执行模块来获得对象提供的效劳和功能。而DCOM〔DistributedCOM〕那么是COM在Internet/Intranet上的扩展,用以支持不同计算机上的组件对象与客户程序之间或组件对象之间的相互通信。DCOM通过RPC〔RemoteProcedureCall〕远程过程调用,提供分布功能,使组件可以在使用DCOM组件的计算机之外的机器上运行,而无须将组件下载到本地计算机,并可以将DCOM组件放置到多个效劳器上运行,而客户无须编制任何远程调用代码,从而实现了协议无关性和平台独立性。以下依次阐述COM的相关概念:3.1接口COM组件中最重要的概念是接口,接口是借助C++纯抽象基类实现的,而C++纯抽象基类确保了COM必须符合的二进制标准。组件之间的接口是组件软件的关键,同一软件中的组件必须使用同样的接口标准才能保证组件之间可以进行通信。COM不仅仅提供了组件之间的接口标准,还引入了面向对象的思想。组件模块为COM对象提供了活动的空间,COM对象以接口的方式提供效劳,这种接口被称为COM接口〔如图2所示〕图2COM组件、COM对象和COM接口关系3.2COM组件实现对于客户而言,一个组件就是一个接口集。可通过C++类继承一个或多个纯抽象基类〔接口〕而实现。3.3IUnKnown接口所有的COM接口都必须继承一个名为IUnKnown的接口。因为IUnKnown接口中包含有三个函数,因此,这意味着接口的虚拟函数表中前三个元素都相同,其中保存的是IunKnown中三个成员函数实现的地址〔如图3所示〕。图3接口IX的内存结构3.4组件发布COM要求对用户和组件进行严格划分。部件以效劳器的形式存在,一般有三种形式:进程中效劳器、本地效劳器、远程效劳器。当客户希望创立在同一进程中运行的组件时,那么采用进程中效劳器形式,在DLL中实现。当客户希望创立在同一机器的另外一个进程中运行的组件时,那么采用本地效劳器,在EXE中实现。当客户希望创立一个在远程机器上运行的组件时,那么采用远程效劳器,可在DLL或EXE中实现,但需要DCOM支持。3.5组件创立客户在使用组件时,首先必须创立组件。创立组件的方法有两种。第一种方法是通过位于COM函数库OLE32.DLL中的库函数CoCreateInstance使组件实例化:第二种方法是通过类厂ClassFactory生成组件。第二种方法比第一种方法复杂,但灵活性更强。4COMGIS开发平台的设计4.1传统GIS软件的分析建设一个GIS应用系统,实际上是对空间数据、GIS软件和各种应用模型进行集成。资源和设施管理的GIS应用更是要求GIS与管理信息系统〔ManagementInformationSystemsMIS〕乃至与办公自动化(OfficeAutomationOA)之间的有机结合,这对GIS系统集成方案提出了很高的要求。但是传统GIS软件封闭的、独成体系的结构使得GIS很难与应用模型、MIS或OA实现高效的、有机的集成。归纳起来,传统的GIS根底软件的集成方案主要有以下四种模式:1)通过存取中间文件的方式建立GIS软件与应用分析模型之间的数据交换通道;2)直接使用GIS软件提供的二次开发语言编制GIS应用分析模型;3)利用专业程序设计语言开发GIS应用模型,并直接访问GIS软件的内部数据结构;4〕通过动态数据交换(DDE)建立GIS与应用模型之间的快速通信。4.2组件设计的根本原那么设计COMGIS可根据功能和应用划分为多个组件和控件,划分时需要根据不同的数据结构和系统模型进行具体分析,主要考虑以下几个方面的问题:=1\*GB3①按照功能的相关性分类,相关性大、结合紧密的归为同一组件。=2\*GB3②把各个数据管理模块与系统分析、应用模块分开,各负其责,增强模块之间的重用性。=3\*GB3③处理相同数据文件的模块尽可能设计在同一组件里。=4\*GB3④对多个组件对象的整体操作尽量利用组件集合的概念进行处理。=5\*GB3⑤注意可视化控件和组件的划分,不同的功能和应用应该集成在不同的层面。=6\*GB3⑥采用高效的算法并精心优化代码使软件整体效率比较高。=7\*GB3⑦在能够充分表达地理信息并能有效地进行各种处理分析的前提下,软件数据结构模型要尽可能简明和紧凑。4.3COMGIS开发平台的结构设计组件式GIS开发平台通常可设计为三级结构:根底组件:处于平台最底层,是整个系统的根底,主要面向空间数据管理,提供根本的交互过程,以灵活的方式与数据系统连接。高级通用组件:由根底组件构造而成。它们面向通用功能,简化用户开发过程,如显示工具组件、选择工具组件、编辑工具组件、属性浏览器组件等等。它们之间的协同控制消息都被封装起来。这些组件经过封装后,使二次开发更为简单。行业性组件:抽象出行业应用的特定算法固化到组件中进一步加速开发过程。4.4COMGIS开发的根本思路使用COM/DCOM技术开发COMGIS系统的根本思路是:多种组件的集成,让GIS组件做GIS的工作,其他功能让其他的组件去完成,GIS组件与其他组件之间的联系由可视化的通用开发语言(如VisualC++或Delphi)来建立。这些开发语言建立了应用系统的框架,COMGIS组件和其他组件提供了实现具体功能的“砖头〞,这些“砖头〞在框架的组织下构成运行的GIS系统。COMGIS提供了实现GIS功能的组件,专业模型那么可以使用这些通用开发环境来实现,也可以插入其他的专业性模型分析控件。因此使用COMGIS可以实现高效无缝的系统集成。形象的说,COMGIS组件开发的根本思想就是“搭积木〞的方法,把GIS的各大功能模块划分为假设干个组件或控件,每个组件或控件完成不同的功能,它们之间通过接口的属性、方法和事件等相互通信和作用。而通过可视化的软件开发工具就可以把各个GIS控件及其他非GIS控件方便地集成起来,形成最终的GIS应用。5组件技术在GIS中的应用5.1我国GIS软件开展的制约因素低水平重复开发、版本升级困难长期制约了GIS的开展的。从狭义上说GIS是处理地理数据的输入、输出、管理、查询、分析和辅助决策的计算机系统。因此,系统的功能模块组成相比照拟固定,GIS系统的根底软件模块一般为输入、输出、管理、查询、分析等,如果能够把它们做成组件,无疑将极大地提高开发的效率。但事实上由于缺乏复用代码的有效手段,在开发新系统时,开发者往往不得不重新编写相应的代码。其次,使用传统的开发技术,GIS系统大多采用紧耦合的结构体系。这种做法虽在一定程度上保证了应用系统的运行效率和其自身的健壮性,但给版本的更新带来了极大的不利。最后,传统GIS软件在系统集成中,有的在GIS根底软件与应用分析模型之间,通过文件存取方式建立数据交换通道。但这不适合于大量而频繁地交换数据的情况,且GIS根底软件与应用分析模型相互独立,系统整合性差;有的直接使用GIS软件提供的二次开发语言编制应用分析模型,虽然解决了前一种模式的缺陷,但GIS所提供的二次开发语言往往不能与VC、VB等专业程序设计语言相比,难以开发复杂的应用模型;有的利用VC、VB等语言开发应用模型,并直接访问GIS软件的内部数据结构,但是直接访问GIS软件数据结构增加了应用开发的难度;有的通过动态数据交换(DDE)建立GIS与应用模型之间的快速通信。这是在DDE技术开展起来以后,对第一种集成方式的改进,可以防止频繁的文件数据交换所带来的效率降低的缺陷,也防止了从GIS外部直接访问GIS数据结构的代价。但是,GIS与应用模型是别离的,这种拼接仍然是“有缝〞的。不管采用以上何种系统集成模式,传统的GIS软件在系统集成上都存在缺陷。5.2GIS组件化的意义组件GIS是一个非常重要的趋势。组件化GIS有许多优点,如高效无缝的系统集成、无须专门开发语言、群众化等,且在与管理信息系统MIS耦合、Internet应用、降低开发本钱和使用复杂性等方面,具有明显优势。同时也打破了以往GIS根底软件由少数厂商垄断的局面,小型研究机构和厂商有时机以提供专业组件的方式打入GIS根底软件市场。我国GIS根底软件起步较晚,目前仍未形成有规模的产业。组件GIS技术为我国GIS根底软件的开发提供了新的契机。现在正是推动我国GIS软件产业的一个重要机遇,我们应该迎头赶上。5.3目前的开发工具对组件化技术的支持微软在COM的根底上开展了假设干高层次的组件化技术,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论