gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15945
  • QQ554730525
  • 铜币25337枚
  • 威望15352点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
阅读:2782回复:4

WebGIS的构件设计

楼主#
更多 发布于:2003-08-22 00:53
WebGIS的构件设计

罗英伟 丛升日 汪小林 李慕华 伍键 许卓群
(北京大学计算机系,北京,100871)

摘 要: 本文在探讨和总结了基于Internet网的地理信息系统的特点和实现技术之后,给出了一个基于分布式对象技术的WebGIS构件的设计和实现方案。

关键词:万维网,地理信息系统,分布式对象,构件

1、 前言
地理信息系统(Geographical Information System,GIS)的任务是采集、存储、管理、分析和显示地球空间信息。它是以数字化的形式反映人类社会赖以生存的地球空间的现势和变迁的各种空间数据以及描述这些空间数据特征的属性,以模型化的方法来模拟地球空间对象的行为,在计算机软、硬件的支持下,以特定的格式支持输入/输出、存贮、显示以及进行地理空间信息查询、综合分析、辅助决策的有效工具【2】。1998年1月,美国副总统戈尔提出数字地球的新概念,并描述了数字地球的广阔而美好的前景【1】,在这里,GIS将发挥巨大的作用。

经过多年来的发展,传统的GIS技术已经成熟,商业化GIS软件也日趋完善,GIS正广泛应用于城市规划、设施管理、资源、环境、能源、农业、水利、交通、国防、人口、灾害防护以至人民生活的各个方面,发挥着重要的作用。但由于信息技术以及Internet网和信息高速公路的飞速发展与广泛应用,必然带来分布式应用研究以及共享信息和知识需求的不断增长,对GIS的研究也必然发生根本变化,目前人们对GIS的研究主要在三个方面:

(1)GIS理论研究

对地理信息系统的理论基础——地球信息科学的理论基础是非常重要的。

(2)GIS标准研究

针对当前GIS产品的多样化、GIS数据和服务的多元化的状况,为了促进、指导和保证高效率、高质量地进行地理信息和服务的交流,进行GIS标准化研究是有效而又必要的。

目前,国际上几个主要的GIS标准化组织已经发布了比较成熟的GIS标准化产品【7】【8】【9】【10】,它们是:ISO/TC211的地理信息/地球信息科学标准、欧洲标准化组织CEN/TC287的GI2000计划和EGII计划、OGC的开放式GIS软件标准OpenGIS、FGDC的空间数据转换标准和元数据标准等,这些标准相互之间并不冲突,而是相互补充,为构造分布式地理空间数据模型的构造提供了技术保证。

(3)WebGIS软件技术研究

目前国际上对于分布式GIS软件技术的研究比较一致,都是遵循GIS理论和GIS标准的研究结果,基于Internet网,采用Web技术,采用Client/Server体系结构或多层Client/Serve体系结构,采用分布式对象技术如CORBA、DCOM或JAVA,或者几种分布式对象技术综合使用,来构造WebGIS。

WebGIS是建立在Internet网上具有Browser/Server体系结构的网络GIS系统。正是由于当前Internet网的迅猛发展和广泛应用,使得Internet网必将成为GIS软件的的运行平台,基于Web的GIS应用已越来越成为广大GIS用户新的迫切的需求。

2、 WebGIS的特征及其实现技术 2.1 WebGIS的基本特征
根据当前GIS研究的情况,WebGIS应具有如下特点:

(1)适合在Internet网中运行

WebGIS首先应当能够在Internet网中运行。将GIS软件与Web服务器集成,通过普通浏览器,用户可以在任何地方操纵网络GIS,享用地理空间信息服务,从而将GIS扩展成为公众服务系统;同时拓宽地图出版渠道,降低数据散发成本,提高地理数据的共享程度【4】。

(2)开放性

GIS应用范围在进一步扩大,为实现地球资源和信息的共享,GIS需要不断“开放”,建立面向用户的、资源共享的开放式GIS。这是GIS要发展成为公众信息系统及进入信息高速公路的基石。 所谓开放式GIS,是指在国家和世界范围内的分布式环境下实现地理空间数据和地理信息处理资源的共享。开放式GIS的目的是保证用户可以任意存取广泛分布在网络上的GIS数据和处理单元,而不考虑数据和处理的源地和规格。开放式GIS是通过“开放式地理空间数据互操作规范(Open Geodata Interoperability Specification)”来实现的【8】,它允许用户通过网络实时获取不同系统中的地理信息,避免了冗余数据存储,是实现地理空间数据共享的一次深刻的技术革命。

(3)互操作性

互操作性是指不同的GIS软件部件或软件系统能够克服使人腻烦的大量的会话任务、装载和卸载障碍以及由于异构数据和异构处理环境所带来的分布式地球资源存取障碍而进行相互操作。GIS软件的互操作是通过规范而获得的,即GIS软件开发者通过遵从一系列通用的规则开发各自的软件来获得互操作性。比如应用程序接口(Application Programming Interface,APIs)作为一种互操作规范已经广泛使用了多年,但APIs通常需要编程人员基于某个特定的操作系统和编程语言。

(4)分布性

分布性是GIS用户增多、计算机网络迅速发展所带来的必然结果。在网络世界里,要求同一GIS系统的每个站点的用户在自己的计算机里拥有所有的地球信息资源无疑是一种极大的浪费,同时也必然导致频繁的系统维护操作。WebGIS应该能够使得同一GIS系统的用户通过网络不但能够访问本系统中分散在不同站点的数据和数据处理服务,同时还能维持系统的一致性以及平衡这种访问的网络负载。

2.2 WebGIS的实现技术
目前,不少GIS软件厂商已经或者即将发布它们的网络GIS或WebGIS产品,其实现技术主要有【6】:

(1)文件共享模式

这是最早的网络GIS实现技术这种模式主要通过提供文件共享和目录映射来提供网络访问能力,在局域网下比较适合。

(2)中间件(调度监控程序)模式 这种模式是采用Client/Server体系结构,主要也是运行在局域网上。客户端向服务器发出数据访问请求,服务器方通过调度监控程序监听客户请求,并调度执行相关GIS服务,响应客户请求并返回结果。

服务器是一个空间数据服务器,它可以采用两种网络数据访问方法:a、主要通过扩展关系数据库或利用对象关系数据库,利用数据库的网络能力向客户端提供数据服务;b、利用数据库的网络功能向客户端提供属性数据服务,利用文件系统向客户端提供空间数据服务。

(3)CGI模式

这种模式主要是基于Web应用,采用 Client/Server体系结构。客户端基本不含GIS功能,只是Web浏览器,通过公共网关接口CGI(Common Gateway Interface)来动态访问服务器方GIS数据和功能,然后将处理结果作为HTML页面发送回客户端。

(4)GIS 插件(GIS Plug-ins)

这种模式也是基于Web应用,采用 Client/Server体系结构。与CGI模式不同,它将一部分服务器上的GIS功能移到客户端,这部分功能被设计成能与网络浏览器交换信息的专门GIS软件,称为GIS插件。这种GIS插件不但可以增加网络浏览器处理地理空间数据的能力,而且还可以减少网络GIS服务器的信息流量。

当前开发的WebGIS产品已逐步进入市场,但其技术仍属探索性的。GIS有着地理位置分布、数据量大、应用复杂等特点,当前已有的网络GIS产品所采用的上述各项技术,决定了它们的功能必然大受限制。事实也正是如此,这些网络GIS产品都只提供了图形显示与查询等简单功能,如放大、缩小、漫游、属性查询、统计及简单分析等,并且系统要求高、效率低。对于一些复杂的应用与分析乃至辅助决策,这些网络GIS产品都几乎是束手无策的。但是,随着分布式对象技术的成熟,一种新的WebGIS实现技术——基于构件的WebGIS出现了,这种技术使得真正的网络GIS成为可能。

3、 分布式对象技术
基于对象的分布式计算就是要建立一个可以让软件对象间透明地进行通信,彼此使用对方的服务,而不管这些对象是处于同一编址空间,还是不同的编址空间,或是根本不同的机器和运行平台上。分布对象技术的技术特点是【13】:

φ 提供异构环境下的互操作问题(包括数据和功能两个方面)


CORBA是一个分布式环境下跨平台、跨语言的对象管理规范,它使得对象用户在使用对象时可以访问网络上任意有用的对象不必知道该对象所处的位置。CORBA最关键的有三个部分——对象界面、对象实现和对象请求代理。对象界面用一种通用的界面定义语言描述了对象所要完成的功能以及对象的属性,对象实现则采用某种方法某种语言实现对象界面所定义的对象,同一个对象界面可以有不同的对象实现方法。对象请求代理则在对象请求和对象实现之间架起了一座桥梁。用户对对象的请求是用对象界面的方式来描述的,然后再向对象请求代理提出对象请求,对象请求代理根据用户的对象请求从对象实现中选取一个合适的对象实现供用户使用。对于用户来说,它根本不知道对象实现到底是在网络的哪个位置上,也不知道调用的是哪个对象实现。 DCOM,作为微软的分布式计算策略,是在开放性软件DEC远程过程调用协议的基础上开发的。DCOM是微软的构件对象模型COM的一个扩增版,而COM是ActiveX的基础技术。COM和DCOM最大的不同在于COM构件是运行在单机上,而DCOM构件则是分布在网络上。尽管DCOM 在非Windows平台上也可以使用,但会受到很多限制,因此它更适用于Windows环境。

同CORBA一样,DCOM也是采用面向对象的方法,所有应用都被看作是一个对象。在DCOM环境下,客户应用与COM构件的通信只需通过包含指向该对象可用函数的指针的界面。在COM和DCOM中,界面是关键,构件是界面的具体实现,一个构件可以被支持相同界面的另一个构件透明地删除和替换。DCOM允许你使用现存构件,这可通过在应用界面中插入指向该组件的指针来实现。每一个构件必须在本地机上进行注册,以便客户能通过注册表上的构件唯一标识找到该构件。DCOM允许现存的客户机和服务器应用通过在主机上注册和配置分布到网络上。

DCOM的有个最好的优点就是有很多工具可以用来创建COM和DCOM构件:C++工具(如微软的Visual C++)、RAID工具(如Visual Basic、Delphi及PowerBuilder)。此外,还有大量的已被建立、商品化了的ActiveX构件可供使用。

我们基于DCOM机制,对我们原有的地理信息系统开发平台Geo-Union进行重新设计和改造,使它成为了一个构件式WebGIS。

4、 Geo-Union的系统模型
4.1 Geo-Union的数据模型
在Geo-Union中,项目指的是系统平台在某个应用领域的一个具体的应用,它包括该应用的所有的数据。在项目内,用专题和专题属性对地图和地图内实体进行语义描述。我们把GIS的一个应用中那些具有某种特殊应用的地图称为具有某种专题的专题图,其中具有相同语义的实体则称为具有相同属性的实体,比如一张交通线路图,交通线路图是一个专题,则公路、铁路、航空线路、航线就是该专题下的属性。专题和属性可以在一定的层次上进行重划分,比如可以把公路当作一个专题,高速公路、一级公路、二级公路、乡村小路等就是该专题下的属性。地图可以按专题进行分类存储。如果脱离了项目,地图就失去了实际的应用意义。



元数据(Metadata),是关于数据的数据(Data About Data),是关于数据和信息资源的描述性信息。空间元数据(GeoMetadata),是关于地理相关数据和信息资源的描述性信息。它通过对地理空间数据的内容、质量、条件、位置和其他特征进行描述与说明,帮助和促进人们有效地定位、评价、比较、获取和使用地理相关数据。在Geo-Union中,元数据有多个层次:

①全局性空间元数据,它登记了网上所有地理空间数据信息;

②针对某一项目的地理空间数据库的元数据;

③局域网内空间元数据,它登记了该局域网内所有项目的地理空间数据。

4.2 Geo-Union的服务模型
中的服务指的是与GIS相关的服务,主要有两类:GIS服务和基于元数据的分布式空间数据服务。对于那些独立于GIS的服务如安全管理、事件管理等,在Geo-Union中都交给操作系统、数据库系统或DCOM来完成。

GIS服务包括GIS核心服务和GIS应用领域服务。GIS核心服务包括:

地理空间数据的获取


基于空间元数据的分布式地理空间数据服务主要有:

φ 确定一套地理空间数据的存在性及其位置

上图中GuGIS是Geo-Union的DCOM构件。

浏览器与GISWeb服务器之间的数据交换通过DCOM来完成,地图数据采用矢量格式。

GIS应用程序模块集中在GISWeb 服务器上,GIS应用程序模块是针对某个应用领域由二次开发人员利用GuGIS构件开发完成的,GIS应用程序模块和Web服务构成了应用程序服务器,它通过访问GIS 服务器来响应和完成客户端的GIS请求。

GIS服务器管理地理数据,GISWeb服务器作为GIS服务器的Client方通过GIS服务器访问地理数据。GIS服务器Geo-Union系统提供,管理两部分地理数据:GIS数据及其元数据。GIS数据是通过项目来组织管理的,元数据则是为网上GIS数据服务提供帮助的。同样,GIS服务器是GIS数据服务器和GIS元数据服务器的Client方,是通过ODBC来访问的。

GIS数据服务器和GIS元数据服务器是利用商业数据库服务器构造的两类具体的数据库服务器。由于GIS数据中地图数据有着特殊的要求,因而商业数据库服务器必须是面向对象的数据库系统或者扩展的关系数据库系统,但GIS服务器是通过ODBC来访问GIS数据服务器和GIS元数据服务器的,因而这两类服务器都没有限定在某个具体的数据库系统上。

6、 Geo-Union的构件设计
一个软件构件可以有不同的大小,从一个基本的C++类,到一个能独立完成特定功能的应用构件,并且可以分属不同的层次。我们基于DCOM机制,根据Geo-Union的系统模型,设计了一个分层的GIS对象构件模型,并且按该模型结构开发和实现了应用层和服务层的各种GIS功能构件。

在Geo-Union的设计和实现时,我们参照OpenGIS规范,使得我们的系统能够在一定程度上与其它异构系统进行数据和处理的互操作。
(1)服务层

服务层又划分为GIS核心对象构件和GIS服务对象构件两个子层。

GIS核心对象构件层负责与系统平台接口,对高层对象构件和应用屏蔽了系统平台的异构性,使高层对象构件模型建立在相同的GIS核心对象构件模型之上。

GIS服务对象构件层利用GIS核心对象构件层提供的服务,向更高层提供各种GIS服务,包括项目管理服务、专题与属性管理服务、地理数据管理服务、数据目录服务、地理数据检索与访问服务、地理数据变换与处理服务、地理数据分析与查询服务、图例符号库管理服务、地图显示输出服务等。

(2)应用层

应用层中也有一个对象构件层,它是GIS领域应用对象构件层。建立这个层次很有必要,在应用系统建设中,许多领域相关的成型的对象、功能、服务都可以纳入到GIS领域应用对象构件层中,提高了应用软件的重用性。

利用服务层的各种GIS对象构件和GIS领域应用对象构件提供的服务,可以为建立具体的应用提供服务。 通过把应用层与服务层分离,提高了应用程序的通用性和可移植性。

(3)系统平台层

系统平台层包括操作系统、数据库系统、DCOM等,这是由系统软件商提供的成熟的产品。Geo-Union中的对象目录、安全管理、事件管理、构件生命周期管理等一些与GIS无关的服务都是由这些产品提供的,这些服务为Geo-Union在分布式环境下协调安全和高效提供了保障。

7、 总结
本文在探讨和总结了基于Internet网的地理信息系统的特点和实现技术之后,给出了一个基于DCOM的WebGIS构件的设计和实现方案。Geo-Union目前的DCOM版已经可以运行,基于该方案并且在CORBA环境(或JAVA环境)下的系统实现已进入项目实施阶段。数字地球的发展必然要求WebGIS有一个质的飞跃,令人高兴的是GIS的理论、标准已日趋成熟,信息技术也在进一步发展,WebGIS也正逐步发展。目前,我们正在WebGIS构件的基础上进行基于Agent技术的分布式地理信息系统的研究与开发工作【14】。

喜欢0 评分0
人在浆糊
路人甲
路人甲
  • 注册日期2003-08-22
  • 发帖数33
  • QQ
  • 铜币153枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2003-08-22 11:45
顶顶顶顶顶
举报 回复(0) 喜欢(0)     评分
人在浆糊
路人甲
路人甲
  • 注册日期2003-08-22
  • 发帖数33
  • QQ
  • 铜币153枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2003-08-22 11:45
快了
举报 回复(0) 喜欢(0)     评分
人在浆糊
路人甲
路人甲
  • 注册日期2003-08-22
  • 发帖数33
  • QQ
  • 铜币153枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2003-08-22 11:46
加油
举报 回复(0) 喜欢(0)     评分
袁绍伦
路人甲
路人甲
  • 注册日期2003-08-08
  • 发帖数654
  • QQ164646905
  • 铜币1336枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2003-08-23 01:05
愿意和大家交朋友! QQ:47559983 MSN:shaolun_yuan@hotmail.com eMail:shaolun-yuan@163.com
举报 回复(0) 喜欢(0)     评分
游客

返回顶部