基于构件的GIS体系结构
GIS应用层是指由二次开发人员利用GIS构件开发的,面向某些特殊应用领域用户的应用程序,它可以是基于桌面或网络环境而开发的。
GIS构件层对用户提供GIS功能的接口,但是屏蔽了其实现细节。GIS构件层作为用户与GIS服务器之间的沟通桥梁,一方面要为用户提供功能明确、便于重用的接口构件,一方面又要与服务器实施有效快速的通信及数据传输,并过滤平台异构性。 对于构件层的设计要求具有: 2 层次化:系统结构层次清晰。
2 功能化:系统各构件具有明确而独立的功能。
2 可视化:地理信息数据具有良好的用户可视化界面,简单直观,易于操纵。
2 高效化:利用有效的策略进行数据检索和传输,提高系统的效率(如利用空间索引和缓存技术)。 2 均衡化:Client/Server端负载均衡,在数据传输与运算上有一个权衡。
GIS存储层和GIS服务器部分是系统中最底层的组成部分。存储层实现GIS数据的存储和管理。GIS服务器通过访问GIS存储层的数据,向GIS构件层提供的服务包括: 2 数据访问服务 2 空间数据索引 2 基本空间关系查询 2 事务处理 2 数据共享
WebGIS的一个重要应用,就是利用微软的ActiveX技术,实现支持Web的GIS。下图为GIS在Web上的一个应用模型。 GIS在Web上的应用模型 Internet 浏览器
GIS构件
空间数据库 其它关系数据库 数据源
Web Pages GIS 构件 Web 服务器 GIS 服务器 DCOM HTTP ODBC 用 户
用户通过浏览器使用Web上的GIS应用。此时浏览器可以通过两种方式从数据源获得地理数据并进行空间分析:直接方式和间接方式。
所谓直接方式,是指浏览器通过直接使用GIS构件,利用构件的功能,通过网络,由GIS服务器访问空间数据库,获得所需的数据信息;然后利用构件的空间分析功能完成用户提交的任务,其结果由浏览器显示出来。
而间接方式,是指用户的要求提交到具有GIS功能WebGIS服务器。该服务器利用构件搭建而成,因此可以利用构件访问GIS服务器获得空间数据库中的地理数据,并完成相应的数据操作,最后将任务结果生成动态页面返回给客户端的浏览器。
无论是通过哪种方式,GIS构件层都在中间起了不可欠缺的枢纽作用。 2. 地理空间数据模型
建立地理数据模型的目的是为了以一种结构化、数字化的格式表示显示世界的地理,它允许用户创建、编辑、操作、显示、分析和输出数据。信息或数据的大多数类型包括某类地理元素允许该信息的图形表
示。GIS可以帮助人们组织与地理位置有关的信息,并从这些信息中得到新发现;它使得人们以一种新的方式可视化其它系统所无法看到的关系、模式和趋向。
地理空间实体有两个最基本的特征,那就是空间要素和属性要素。空间要素指的是地理空间实体的几何形态及其与其它地理空间实体的空间关系,属性要素则指的是地理空间实体的社会意义。由于地理空间实体具有复杂性和多样性的特点,对其分类要同时兼顾其空间要素和属性要素两个特征,因此,可以将地理空间实体划分为零维实体、一维实体、二维实体以及复杂实体等四类20多种。
在GIS中有许多表示地理信息的方法,例如有基于图层或是基于特征的。在基于图层的方法中,空间数据被表示成一系列的主题地图、命名图层,用来表示一些给定的主题(诸如道路,建筑,地铁,等高线以及边界等等)。
一个图层是一定空间范围内具有相同属性要素的同类地理空间实体的有机集合。说图层是地理空间实体的有机集合,指的是图层并不是这些地理空间实体的简单堆砌,而是在某种特殊应用领域下地理空间实体的组合,并且相互之间有着密切的联系。我们称这种同类地理空间实体所具有相同属性要素为专题,可见,图层具有两个基本要素——专题和空间范围。
图层是地理空间实体的包容器,是地理空间数据组织的基本单位。地理空间数据的分布性可以通过图层的分布来体现。另外,为了面向更广泛的应用领域,图层还可以按照空间范围或专题进行组合,形成新的地图。
基于图层的方法有以下优点: 1〕查询过程和空间分析简单 2〕有效管理数据的分开传送
随着面向对象技术和对象关系数据库技术的发展,数据库的数据表达能力大大增强了。当前流行的数据库系统几乎都提供长二进制域段,以支持复杂的数据类型。因此,我们可以利用数据库存储地理空间实体并建设空间空间数据库。
除了图层和图层实体的基本信息之外,我们还需要知道与图层相关的显示的各种用户信息,诸如地图组成、所用参照系、图层显示配置等等。根据地理空间数据的组织,我们在数据库中存储的地理空间数据包括图层、图层实体以及与图层相关的参照系、地图组成、显示配置、显示配置项和图例库等。在系统中,我们把封装这些基本地理信息数据并在其上提供方法的对象称为GIS核心对象。这是因为这些对象是整个GIS系统的基石,它们所反映的是GIS的基本数据,提供与数据源的信息交互;同时它们对高层屏蔽了数据库的异构性,提供统一的接口,便于高层组织更为丰富的GIS功能。 3. 构件层次划分
从软件的角度来看,一个构件可以有不同的大小,从一个基本的C++类,到一个能独立完成特定功能的应用构件,并且可以分属不同的层次。基于COM/DCOM机制,根据系统总体设计方案和框架模型,我们可以设计一个分层的GIS对象构件模型,并且按该模型结构开发和实现应用层和服务层的各种GIS功能构件。 数据库
GIS 核 心 对 象 构 件
GIS 服务对象构件
GIS领域应用对象构件
应用程序、浏览器?
GIS构件层的层次划分 服务层 应用层 COM/ DCOM
(1)服务层
服务层又划分为GIS核心对象构件和GIS服务对象构件两个子层。
GIS核心对象构件层负责与数据库的接口,对高层对象构件和应用屏蔽了数据库的异构性,使高层对象构件模型建立在相同的GIS核心对象构件模型之上。
GIS服务对象构件层利用GIS核心对象构件层提供的服务,向更高层提供各种GIS服务,包括项目管理服务、专题与属性管理服务、地理数据管理服务、数据目录服务、地理数据检索与访问服务、地理数据变换与处理服务、地理数据分析与查询服务、图例符号库管理服务、地图显示输出服务等。 (2)应用层
应用层中也有一个对象构件层,它是GIS领域应用对象构件层。建立这个层次很有必要,在应用系统建设中,许多领域相关的成型的对象、功能、服务都可以纳入到GIS领域应用对象构件层中,提高应用软件的重用性。
利用服务层的各种GIS对象构件和GIS领域应用对象构件提供的服务,可以为建立具体的应用提供服务。 通过把应用层与服务层分离,提高应用程序的通用性和可移植性。 4. 构件功能划分
构件化的WebGIS使得应用程序开发员、数据发布者和空间数据库引擎开发商可以往他们的Windows95和Windows NT应用程序中增加动态的、数据驱动的地图。使用该系统应该能够:
2 对多幅地图图层进行漫游和缩放等操作 2 空间分析和查询操作 2 使用ORDB数据库和SQL查询 2 跟踪实时事件(GPS) 2 支持不同地理系统的数据格式 2 使网站具有空间特性
根据需求,我们可以将GIS构件功能划分成:可视化及交互构件、基本空间查询及空间分析构件和面向领域的任务构件。它们分为服务层和应用层两个层次,隐含了空间数据的管理与访问、空间索引、空间缓存等基本技术。
此外可以利用构件构造面向领域的GIS应用系统,包括GIS应用服务器的建设,基于Web的空间信息浏览、可视化、查询以及面向领域的服务构造等。我们可以根据应用领域的特定模型,方便地搭建面向领域的GIS构件,并且随时可以加入到GIS应用构件库中,进而提供给其他用户使用,从而使得系统具有良好的可重用性。
具体来说,GIS构件层中主要的对象构件可以分为六类,这六类对象在系统中的位置和相互之间的关系可以通过下图来表示: 数据源1
地图数据访问对象
地图可视化对象
地图编辑对象
应用工具对象 数据源2 数据源n ?... 应用层 服务层
空间分析对象