面向对象数据库方式和对象关系型数据库方式。前者将对象的空间数据和非空间数据以及操作封装在一起,由对象数据库统一管理,并支持对象的嵌套、信息的继承和聚集,这是一种非常适合空间数据管理的方式。
但目前该技术尚不成熟,特别是查询优化较为困难。对象关系型数据库是目前空间数据库的主要技术,它综合了关系数据库和面向对象数据库的优点,能够直接支持复杂对象的存储和管理。GIS软件直接在对象关系数据库中定义空间数据类型、空间操作、空间索引等,可方便地完成空间数据管理的多用户并发、安全、一致性/完整性、事务管理、数据库恢复、空间数据无缝管理等操作。因此,采用对象关系型数据库实现对GIS数据的管理是实现空间数据库的一种较为理想的方式。当前,一些数据库厂商都推出了空间数据管理的专用模块,如IBM Informix的Spatial DataBlade Module,IBM DB2的Spatial Extender和Oracle的Oracle Spatial等,尽管其功能有待进一步完善,但已给GIS软件开发带来了极大的方便。
在传统的空间数据管理模式中,由于文件系统管理海量数据的能力较弱,因此在空间数据的组织上,在水平方向上采用图幅的方式,在垂直方向上采用图层的方式。这种组织方式主要存在以下不足:
需要进行图幅的拼接,效率较低;一个空间对象可能存储在多个图层上,造成数据的冗余和难于维护数据的一致性。采用空间数据库的方式可以在数据库中直接存储整个地图,能方便地实现空间对象的查询和抽取。当前一些GIS系统中已经开始使用要素类来实现对空间对象的组织,如ArcGIS的
GeoDatabase等,这种方式按照实体类来组织空间对象,符合空间对象管理的本质,一个空间对象可以被多个图层或视图引用,机制较为灵活,解决了传统方式中的空间对象的一致性问题。
空间数据库的另二个重要部分是空间索引和空间查询语言。由于空间对象是二维或更高维的数据对象,因此当前数据库所使用的一维B树、B+树并不适合空间对象的索引。空间索引有多种方式,其数据管理的效率和检索速度各不相同。当前比较常用的索引有四叉树和R树。在空间数据库中一般使用两步查询机制,首先使用索引查询出候选对象集,然后再采用精确的几何计算,在候选对象集中求出精确解。当前一些数据库的空间扩展模块中就使用这种模式,
6 / 16
并分别提供了四叉树或R树索引。提供空间查询语言是空间数据库的一个重要特征,当前的空间数据库中一般使用关系数据中的“select-from-where”模式来构建查询,通过扩充SQL语言,使其支持空间对象类型、空间关系和空间操作。特别是SQL3多媒体规范(SQL3/MM)中的Spatial部分和OpenGIS for SQL实现规范都定义了一系列的空间数据类型、空间关系和空间操作,为空间查询语言的设计和开发提供了一个框架。
1.3 GIS软件体系结构与应用系统开发
地理信息系统与软件技术是密不可分的。特别是随着面向对象、组件技术、分布式计算技术以及网络技术的发展,GIS软件的体系结构出现了极大的变化,出现了许多开发地理信息系统的新技术,如组件技术、中间件技术和分布对象技术等。
组件是建立在面向对象开发之上的,它为用户提供多个接口,接口封装了组件提供的服务,隐藏了实现细节的可见性。由于组件表示一个或多个较细粒度类的逻辑集合,封装了一系列的服务,因此组件提供了更高级别的重用性,从而极大提高了应用系统的开发效率。组件式GIS是面向对象技术和组件式软件在GIS软件开发中的应用,为新一代GIS应用提供了全新的开发工具。GIS组件封装了一系列空间信息处理相关的操作,并向用户提供了标准的接口。
这样用户可以使用通用的程序开发语言,通过接口调用GIS组件中相应的空间操作功能,实现GIS应用系统的开发。同传统GIS比较,组件GIS具有易于实现与其它信息系统的无缝集成、跨语言使用、易于推广、成本低、扩展性强、开发效率高等特点。因此组件式GIS是当前GIS系统软件开发的主流技术。目前存在着多种组件技术标准,其中OMG的CORBA,Microsoft的COM/DCOM和JAVA的Beans是被广泛采用的标准。目前商用的组件式GIS产品主要基于Microsoft的COM/DCOM,包括Intergraph的GeoMedia,ESRI的MapObjects,MapInfo的MapX,我国的MapEngine、SuperMap等。
随着网络技术的发展和广泛应用,计算机应用模式经历了主机模式、单机桌面应用模式和多层企业应用模式三个阶段。相应地,应用系统的开发也经历了从主机体系结构、两层Client/Server体系结构到三层(多层)Client/Server体系结构的演变。传统的GIS应用一般都采用两层Client/Server体系结构。这种体系
7 / 16
结构用户界面层和业务逻辑层没有分开,都位于客户端,而数据服务层位于服务器端,由于应用主要都集中在客户端,每个客户端都要进行安装配置,当用户数量多、分布广时就会给安装、维护带来相当大的困难,扩展性不好。
此外每个用户与中央数据库服务器相连时都要保留一个对话,当很多客户同时使用相同资源时,容易产生网络堵塞。为了克服两层Client/Server结构的不足,提出了三层Client/Server模型。三层客户/服务器结构构建了一种分割式的应用程序,系统对应用程序进行分割后,划分成不同的逻辑组件,即用户服务层、业务处理层、数据服务层。与两层Client/Server结构相比,三层Client/Server结构有很多优越性,如减轻了客户机的负担,如果要增加服务则只需在中间层添加代码,这使得维护升级变得更加方便,系统扩展性也更好。因此采用三层Client/Server机构是当前GIS应用开发的主流模式。
随着GIS应用由局域网发展到广域网,特别是涉及到多数据库系统、多平台、多网络协议的异构环境,传统的将用户界面和业务逻辑、数据源以及通讯协议绑定在一起的应用系统开发方式不再适合。而中间件技术的出现,为异构环境下GIS应用的开发提供了解决方案。中间件是位于操作系统和应用软件之间的通用服务,它的主要作用是用来屏蔽网络硬件平台的差异性和操作系统与网络协议的异构性,支持应用软件开发和运行的系统软件,使应用软件相对独立于计算机硬件和操作系统平台,为大型分布式应用搭起了一个标准的平台,以实现大型应用软件系统的集成。中间件具有标准的程序接口和协议,可以实现不同硬件和操作系统平台上的数据共享和应用互操作。在具体实现上,中间件是一个用API定义的分布式软件管理框架,具有强大的通信能力和良好的可扩展性。广义上说,ESRI的空间数据库引擎SDE可以看作是地理信息的一个中间件,它屏蔽了底层不同空间数据库以及不同空间数据格式的差异,为用户提供了统一的操作和管理空间信息的接口。采用中间件技术,为异构环境下的GIS应用的开发提供了一个解决方案,对当前GIS重大行业应用系统的开发具有重要的意义。目前,中间件技术尚处于发展阶段,采用中间件技术实现通用的GIS应用还需要一段很长的路要走。
分布式对象技术是当今分布计算技术的主流方向,它能在分布式环境下跨平台、跨语言地实现分布式计算,并使得用户在使用对象时可以访问网络上任意有用的对象而不必知道该对象所处的位置。采用分布式对象技术开发GIS应
8 / 16
用符合地理信息分布的特点,客户可以透明地访问远程的GIS组件服务。这种方式适合于空间信息服务的实现,可用于解决在分布式环境下的地理信息的互操作(包括数据和功能两方面)。当前,基于对象的分布式计算的代表性技术是OMG的COR
BA、Microsoft的DCOM和Java的J2EE。与此同时,为满足分布协同工作的应用需求,人工智能领域中的Agent技术被引入到分布式计算环境中,对基于Client/Server结构的传统分布式系统产生了极大的冲击,分布式系统正朝着分散对等的协同计算的理想模式发展。注意到Agent的自主性、交互性、反应性和主动性等特征极大简化了分布协同问题的复杂性,因此将Agent技术引入GIS领域,将极大降低分布式地理信息系统的复杂性和建设难度,并有效地解决网络地理空间信息服务功能以及GIS应用领域中的协作问题,同时也可以改善分布式地理信息系统的服务能力和服务效率。因此研究Agent技术与GIS的集成,是GIS技术发展的又一个重要研究方向。
1.4空间信息的共享和互操作
信息共享已经成为现代信息社会发展的一个重要标志,而地理信息系统互操作的产生则是信息共享的必然产物,地理信息系统的互操作将成为21世纪地理信息系统研究领域的一个重要组成部分。
互操作性强调将具有不同数据结构和数据格式的软件系统集成在一起共同工作。实际上,地理信息系统互操作在不同的情况下具有不同的侧重点,强调软件功能块之间相互调用的时候就称为软件的互操作;强调数据集之间相互透明地访问的时候则称为数据的互操作;强调信息的共享,在一定语义约束下的互操作则称为语义的互操作等等。一般地,地理信息系统互操作是指不同应用(包括软件硬件)之间能够动态实时地相互调用,并在不同数据集之间有一个稳定的接口。
在国际上,空间信息系统互操作研究经历了从数据互操作到中间件、分布式对象和服务,再到应用系统乃至高层的信息群互操作的发展历程。主要的互操作方式有以下几种:
9 / 16
直接转换方式、采用公共交换格式方式、公共访问接口方式。这些方式都需要对数据的具体格式有详细的了解,随着数据格式越来越复杂,运用面向对象的方法来解决互操作问题逐渐成为新的研究方向。
访问接口是指系统对外界环境和其它系统所提供的访问其内部数据的操作接口。该接口可以通过请求/应答方式来接受或者提供数据,因此互操作的程度可通过接口功能的大小来体现,而与数据的内部结构无关。数据提供者通常会随着数据提供相应的API,数据使用者可以通过这些API来访问系统内部的数据。API能够将数据结构的复杂性或者操作的复杂性掩藏起来,并且能够通过编程将这些API与数据服务器结合在一起,形成一个功能更加强大的数据服务器来响应外界的数据服务请求。为了减少API对具体应用环境的依赖,用户、数据提供者和系统开发者迫切需要建立一个在业界广泛而通用的接口,这个需求和思路导致了OGC的产生。OGC通过制定OpenGIS规范的方式来建立广泛的接口。OpenGIS规范是一个关于对地理数据和地理处理资源进行分布式访问的软件框架规范,它为所有的软件开发者提供了一个详细的公共准则,以便开发的软件能够达到对地理数据和地理处理资源进行互操作的目的。OpenGIS规范的任务是指导开发者开发与OpenGIS规范一致的中间件、组件和具有处理各种类型地理数据的应用件,使系统用户能共享巨大网络数据空间上的数据。
OpenGIS规范直接涉及访问和使用不同类型的地理数据,它包括三个基本方面:
获得在各种平台之间的连接,获得对地理数据和对地理数据处理的服务,获得对地理数据的正确理解。
目前,世界上包括我国在内的许多GIS相关研究单位和企业纷纷加入OGC,参与OpenGIS规范的制订,并着手实现和完善各种规范和接口,以满足信息共享的需求。
1.5空间信息的网络发布与服务 与传统的GIS技术相比:
WebGIS与其它采用B/S结构的信息系统类似,一般采用由数据库、应用服务器和客户端组成的三层体系结构,客户端一般为Web浏览器。但WebGIS
10 / 16
相关推荐: