网学网为需要毕业论文写作的朋友们搜集整理了构件化GIS的可扩展性研究相关资料,希望对各位网友有所帮助!
转载请注明来源:毕业论文 需要其他论文可去论文范文查找。免费毕业论文下载构件化GIS的可扩展性研究摘要:为了解决目前构件化GIS的可扩展性无法满足实际需求的问题,本文在介绍了传统GIS与构件化GIS之间的本质差异的基础上,分析了系统在数据层次、系统结构层次、系统功能层次这三个层次上的可扩展性需求,给出相应的解决方案,并应用于实践,从而达到使构件化在它的整个生命周期内,能够应对外部环境的变化,最大程度地保护投资者的利益的目的。
关键词:构件化GIS GIS 可扩展性
Abstracts: The extensibility of current component-based GIS is not meet the needs of the actual variations. To solve this problem,this paper first introduces the key differences of conventional GIS and component-based GIS.Then it points out there are three tiers of extensibility of component-based GIS:the data tier, the system architecture tier and the system function tier,and also analyses the needs in the three tiers as well as the solution. Finally,this paper gives us a example.
Key words: component-based GIS;GIS;extensibility
About the first author:Li Fang,Ph.D candidate,majors in GIS.
由于在GIS系统开发过程中,从编码到文档存在着大量的重复劳动,为了更好的提高生产效率,减少重复劳动1,业内已经开始关注GIS软件复用,将GIS功能模块以构件的形式组织起来,在构件的基础上构建GIS系统。由于构件的即插即用特性,使构件化GIS与传统的GIS系统相比,天然的具有更好的可扩展性,但是,如果仅仅通过单个构件的即插即用特性,则构件化GIS的可扩展性并没有得到最大限度的开发利用。本文在介绍了传统GIS与构件化GIS之间的本质差异的基础上,分析了系统在三个层次上的可扩展性需求并给出相应的解决方案。
1. 传统的GIS与构件化GIS之间的本质差异
构件并不是一个新型对象,在传统的GIS中,可复用的功能模块、类、组件均可看作是构件。但是,传统GIS中的构件与构件化GIS中的构件所满足的规则不同。构件化GIS中的构件以接口的形式与“外部”交互,构件内部的实现不能暴露给第三方用户,构件之间是松散耦合的关系,它们的交互方式遵从一定的约定;组成系统的构件在系统中扮演的角色不同,为系统提供各类不同功能,同时,角色限定了构件之间的依赖关系:提供专有GIS功能的构件可以依赖基础GIS构件,但是基础GIS构件不能依赖提供专有功能的构件;构件提供的功能应具有可确认性,只有这样才能提供给第三方使用,组成一个具有可预计行为的GIS系统。
传统GIS与构件化GIS之间系统构建模式不同也是它们的本质差异。基于构件的系统构建模式是从已有的构件库中选择最能满足需要的构件,然后将选择的构件在一个合适的体系架构中组装起来。因此,一个构件化GIS的构建模式可以分为3部分:1、生产构件或选择构件,2、设计一个合适的体系结构,3、将所选择的构件组装起来。选择GIS构件时,应将构件的质量属性作为选择构件的依据;设计系统体系结构时,应分析该体系结构是否能够让构件以最优的方式组合。
2. 构件化GIS的可扩展性
构件化GIS的可扩展性可以分为三个层次:数据层次的可扩展性、系统结构层次的可扩展性、功能层次的可扩展性。
2.1. 数据层次的可扩展性
随着GIS的发展,GIS技术早已超越了地学领域的范畴,从GIS工程向数字工程发展。在这一发展过程中,将会出现服务于不同领域的各种构件化GIS系统,如国土GIS、农业GIS。这些构件化GIS系统会在不同的软件架构下专注于不同领域的不同专有业务,为了提高构件化GIS系统的可复用性,让所有这些构件化GIS系统都采用同样的空间数据库模式、存储的空间数据拥有相同的属性(数学基础、比例尺、用途、时间、精度等)来消除数据差异显然是不可能的,因此出现了数据层次的可扩展性需求。数据层次的可扩展性需求是指:当构件化GIS的应用环境发生变化,系统能够兼容异构空间数据,能够处理新增加的数据。具体来说就是当构件化GIS所依赖的空间数据库中的空间数据属性发生变化时或新添加了其他的空间数据时,系统依旧能够正常运行,不影响系统中那些基础GIS功能的使用。
为了提高构件化GIS数据层次的可扩展性,
应将系统的数据层与应用逻辑层严格分开,应用逻辑层通过满足一定标准的开放式接口从数据层获得数据,该接口与空间数据的具体格式无关,与数据存储的物理地址无关,可以是对空间数据实体进行封装后的抽象类型;应将空间数据源连接池与得到的空间数据实体分离开,使逻辑应用层中操作的空间数据实体与打开或关闭的空间数据源无关,可使系统不受数据源连接影响而具有更好的扩展性;应为系统的数据库及数据库中存放的数据提供元数据描述信息,该元数据描述信息的内容应对数据源、空间图层(或属性数据表)、属性字段逐级分别详细描述,能够帮助数据的使用者及系统的开发人员清楚了解数据的精确语义信息2,使系统不受数据源数量变化及数据的添加、删除影响。
2.2. 系统结构层次的可扩展性
构件化GIS的结构层次上的可扩展性表现为:构件级别可扩展性、接口级别可扩展性、类级可扩展性。其中接口级别可扩展性会改变构件与外部的交互方式,改变一个构件与其他构件的关系,这样就使该构件不容于系统。因此,在构件化GIS系统中,不推荐接口级别扩展,而应充分提高构件级可扩展性及类级可扩展性,为GIS构件预留接口,避免日后对构件接口的修改。
为了提高构件级别的可扩展性,使添加、删除系统中的构件不会影响系统正常运行。首先要对构件化GIS中构件的组合方式有深刻的认识。构件化GIS中构件的组合方式总的来说有三种:构件以并联方式组合;构件以串联方式组合;构件以混联方式组合。当构件以并联方式组合时,任一个构件的输入输出都不会影响其他构件,这时,系统的可扩展性很好,添加、删除一个构件都不会对系统、对其他构件产生影响,可是,在构件化GIS中,必然有一个构件需要从其他构件中获得空间数据,因此,用并联式组合构件不适用于构件化GIS系统。当构件以串联方式组合时,构件首尾呈相连状组合,一个构件的输出是另一个构件的输入,这时,构件之间具有很强的依赖性,系统的可扩展性比较差。最适用于构件化GIS系统,同时又具有较好可扩展性的是将构件在系统中以混联方式组合,混联方式是指,在构件化GIS系统中构件的组合关系同时具有串联关系与并联关系,笔者认为,如果两个构件提供不同类型的GIS功能,且它们的功能具有依赖性,则这两个构件在系统中的组合方式应该是串联。构件之间的串联关系应根据构件功能的专有性及构件之间的依赖性排列3。如果两个构件提供同类的GIS功能,它们的功能不具有依赖性,则这两个构件在系统中应该并联。
为了提高类级的可扩展性,在设计的时候,设计者应参考面向对象的原理和设计模式。 提高类级的可扩展性有两种基本方法,一种是设计抽象类,一种是工厂类4。抽象类可以被继承为多个不同的可实例化类,利用面向对象原理中的多态性原理,声明一个抽象类,可以被实例化为多个不同的类。当用户需要添加新类时,只需继承相应抽象类即可,对其他类、对构件及系统都不会产生负面影响。而设计工厂类是设计模式的一种运用,工厂类可以产生不同的类对象,并将不同的类对象以接口的形式返回,用户得到的是接口的实例,这实际上也是多态性的一种体现。添加新的类,返回的接口不会改变,则不会影响外部的其他类、构件及系统。
2.3. 功能层次的可扩展性
功能上具有可扩展性是构件化GIS的基本要求,但是由于结构功能相关性原则,功能不能脱离结构而存在,功能的扩展与结构的扩展是紧密地联系在一起的,要想获得功能上的可扩展性,必须保证结构上有相应的可扩展性。
为了提高构件化GIS功能层次的可扩展性,将GIS构件按照功能特征分为数据相关构件、基础GIS对象构件、GIS功能构件。这三类构件合作于整个系统的分层体系结构中,系统的层次结构模型如图1所示。
因为空间数据是GIS的基础,因此 GIS数据相关构件是系统的基础,为基础GIS对象构件提供数据并提供对数据的操作,如添加、删除图层等。GIS数据相关构件可以拥有一个数据连接池和一个空间数据集合的实体对象,其中数据连接池可以提供对多数据源的连接,可以生产或打开与空间数据库的连接,而空间数据集合的实体对象即是该类构件从数据连接池中的一个或多个数据源中取出的数据实体集,以供其他构件使用。为系统的可扩展性考虑,系统应允许数据库中添加新的数据类型或增加新的数据,该类构件应能通过接口读取某数据源内所有数据的元数据信息,然后往自身所持有的数据中添加辅助的附加信息,该类构件还可通过接口获得外部传入的对内部持有数据集的修改操作命令,然后触发构件内部的数据修改操作,如添加数据、删除数据等,对数据的改变会反映到构件内部数据集实体上;最后该类构件通过接口将构件内持有的数据实体返回给基础GIS对象构件,以供其他构件使用。
基础GIS对象构件的设计目标是对原始的空间数据利用面向对象的建模方式建立形式化地理概念使人们思维中的地理世界与计算机中的地理世界联系起来5。形式化地理概念可以让原本模糊的地理概念变得清晰,有助于人们的交流以及减少地理概念被误用的几率。空间数据的多维特性、范围特性、动态性、在物理空间中的位置特性及空间数据的结构复杂性使空间数据比普通的属性数据更加复杂,无法简单的用二元表格完成空间数据的形式化工作,而面向对象的建模方式则能很好的在人们思维中的地理空间和计算机中的虚拟地理空间之间建立桥梁。基础GIS对象构件利用面向对象的思想,对从GIS数据相关构件中获得的空间数据重新封装建模,通过接口,该类构件可从GIS数据总线构件中获得未被封装及形式化的空间数据。同时也可将被封装后的数据返回给其他构件。
一个系统中可以有多个GIS功能构件,包括基础功能和专有业务功能,每一个GIS功能构件负责提供不同的GIS功能。构件提供的功能是构件之间互相区分及构件粒度确定的标准。GIS功能构件应能够即插即用,能够根据用户的需求安装、拆卸,因此,所有GIS功能构件应具有统一的接口。构件可获得外部传入的经过形式化封装的空间数据,当外部根据用户的需求激发构件的功能执行事件时,构件调用对空间数据的分析、查询、处理等GIS功能算子,但是这些GIS功能算子的内部实现对外部来说都是隐藏的。
3. 实例
基于上述理论,开发了构件化国土管理GIS系统。该国土管理GIS系统由四个子系统组成,包括基础GIS系统、规划管理GIS系统、地籍管理GIS系统及土地详查GIS系统,其中基础GIS系统是核心。系统结构可分为7层,如图2所示。
数据层是分布在各地的子数据库和一个基础数据库,这些子数据库在逻辑上是平等的关系,而基础数据库为整个系统提供支撑,在其中存放了一个XML文件记录其他分布式子库的元数据信息。子数据库的增加、减少不会影响系统的运行。
数据管理层由数据管理构件及数据总线构件组成。数据管理构件主要提供数据导入导出、数据的坐标系转换及投影变换、元数据管理等功能。其中的元数据管理构件帮助系统维护存放在基础数据库中的描述所有数据的那个XML文件。而数据总线构件则是帮助用户从某个或某几个数据库中取出所需要的数据,取出的数据存放在数据总线构件的实例中。
核心对象层对从数据管理层取出的异构数据进行概念上的分解,维护SitMap,SitLayer,SitFeature,SitPoint,SitLine,SitParcel这几个对象,在这几个对象中分别维护Map级、Layer级、Feature级的数据实体,可以在这几个对象内部对它们自己进行操作,并在其中加入其它系统所需的维护信息。
基础GIS Server层基于核心对象,针对GIS中需要的功能模块,制作的各种功能不同的GIS构件,提供给用户基础的空间数据管理和空间分析等功能。
专有业务GIS构件层由具有专有业务的GIS构件组成,这些专有GIS构件是为了针对各系统的专有业务而设计的。
各个子系统处于应用层,各子系统均可以由专有业务GIS构件层中的构件及基础GIS Server层中的构件组装而成,并可以根据用户需要选择、安装、拆卸组成系统的构件。
最顶层的是界面层。虽然构件化国土管理GIS是由几个子系统组成,但是,这些子系统在逻辑上是一个整体,应有统一的界面风格,而界面层就提供了对界面进行管理的构件,修改界面管理构件,各子系统的界面相应的都会被统一美化。
4. 结论
随着信息化技术的发展,GIS相关应用领域的需求在不断的扩展和深化,同时,构件化GIS技术也得到了发展。在这一过程中,发现已有系统的可扩展性无法满足实际需求,使系统的生命周期变短、浪费了人力、物力、财力。为了解决这个问题,本文研究了构件化GIS的可扩展性需求的三个层次,针对这三个层次的可扩展性需求给出相应的解决方案,并应用于实践,从而达到使系统在它的整个生命周期内,能够应对外部环境的变化,最大程度地保护投资者的利益的目的。
参考文献
Gilda Pour. Component-Based Software Development Approach:Is It the Next Silver Bullet?http://doi.ieeecomputersociety.org/10.1109/TOOLS.1998.711055
Andreas Bergmann, Martin Breunig,Armin B. Cremers, Serge Shumilov. A Component Based, Extensible Software Platform Supporting Interoperability of GIS Applications.
Mark Collins-Cope, Hubert Matthews. A Reference Architecture for Component Based Development.http://www.ratio.co.uk/architectural_reference_model.pdf
寇雅楠,廖志钢,李增智.基于Java 的网络管理系统的可扩展性研究. 小型微型计算机系统.2003,24(1):17~19
Max J.Egenhofer,Janice Glasgow,Oliver Günther,John R.Herring,Donna J.Peuquet. Progress in Computational methods for representing geographic concepts. International Journal of Geographical Information Science 13(8):775-796,1999