分布式WebGIS构件化的研究和实现(2)

2019-03-10 12:33

来,WebGIS的实现可以分为基本的三类方式:

1〕文件共享方式。这是最早的网络GIS实现技术,主要通过提供文件共享和目录映射来提供网络访问能力,在局域网下比较适合。现在的系统已经很少采用这种方式。

2〕CGI 方式。采用Client/Server体系结构。客户端基本不含GIS功能,只是Web浏览器,通过公共网关接口CGI(Common Gateway Interface)来动态访问服务器方GIS数据和功能;服务器根据请求启动服务器端的GIS应用程序,处理用户的请求,然后将处理结果作为HTML页面发送回客户端。几乎所有的GIS处理功能都是在服务器端完成。我们一般称之为侧重服务器端的WebGIS。

3〕插件方式。与CGI方式不同,这是一种侧重客户方的策略,它将服务器上的部分GIS功能移到客户端,这部分功能被设计成能与网络浏览器交换信息的专门GIS软件,称为GIS插件。这种GIS插件不但可以增加网络浏览器处理地理空间数据的能力,而且还可以减少网络GIS服务器的信息流量。 在侧重服务器端的WebGIS中,由于处理集中在服务器端,当客户端用户增加时系统负载迅速递增,从而导致系统性能下降;同时,在服务器端很难提供高效的诸如空间分析等的地理信息的交互。因此侧重在客户方实现GIS功能,在WebGIS实现中是比较有效可行的一种策略。这也是我们研究系统构件化的主要原因。当然,在客户方和服务器方的GIS功能处理上,如果负载比重过于悬殊会影响系统的整体效率,因此必须很好地设计系统,在数据处理与传输上做一定的权衡。

由于WebGIS 的重要性和它所提供的巨大商业机会,世界各大GIS 厂商纷纷推出自己的WebGIS产品。现在全球有很多网站可以提供用户交互访问远程GIS服务的能力。这些系统通过本地机运行远程主机上的GIS软件。GIS和WWW是正在迅速发展的技术,它们使得GIS软件开发人员“能够设计出主要面向专家级的应用,或使之接近专业人员甚至是普通大众” 【16】。一些著名的商业GIS软件包,诸如ESRI的Arc/Info和ArcView,是通过运行他们自己的Web服务器。许多在线系统是为特定的任务度身定做的,这或许也是大多数基于Web系统的发展之路。

目前,较为成熟的国外WebGIS厂家及其产品主要有【12】【13】【14】【15】: 厂商 产品名称 支持数据格式 服务器 AutoDesk MapGuide 向量 Win NT Bentley

Microstation GeoGraphics 向量 ESRI

IMS for ArcView & MapObjects 向量、栅格 Win NT MapInfo ProServer 向量

Win NT/Windows

Intergraph GeoMedia Web Map 向量、栅格 Windows NT / UNIX Genasys

Spatial WebBroker 向量、栅格 UNIX

APPIAN Interactive Corp. APPIAN \ 向量 UNIX ObjectFX Spatial Net 向量、栅格

Win NT, SUN Solaris, HP-UX

Universal Systems Ltd. CARIS Internet Server 向量、栅格 UNIX

这些WebGIS产品在一定程度上给出了地理信息的网络共享解决方案,它们都是基于客户/服务器模式,在服务器端有功能强大的桌面GIS;对客户端有一定特殊要求,如IMS、MapInfo Proserver等采用纯图像,而MapGuide、GeoMedia Web Map等采用图形图像。

此外,国内在对WebGIS的研究中比较有影响的包括武汉测绘科技大学的GeoStar吉奥之星、北大青鸟天通信息工程公司的Geo-Union WebGIS Enterprise以及CityStar、MapGIS等。 四、我们的工作──环境背景及要解决的问题

国际互联网正在改变着数据访问和发布的方式。处理互联网上空间数据和地理信息的WebGIS正随着互联网与Web技术的变化而迅速发展。由于大数据量的传输,互联网上及计算机本地总线数据传输速率的

极大差异,WebGIS存在着数据传输性能低的最大缺陷,而在传统的桌面GIS中通常不存在这样的问题。这主要是因为WebGIS需要耗费较长的时间进行AvctiveX构件或JAVA applets的初始化下载,和地图数据的传输。尤其在进行传输大型矢量地图数据时,这个问题尤其值得考虑。 通常,WebGIS的低性能可以通过两种方式得以解决:

1〕增加互联网连接的速度,这主要是计算机网络硬件的支持;

2〕研究如何设计有效的程序,提高系统性能。这是GIS研究开发人员的主要任务。

随着分布式对象技术的成熟,一种新的WebGIS实现技术——基于构件的WebGIS出现了,这种技术使得真正的高性能的网络GIS成为可能。构件为开发提供了一种新的开发模式,比现有的面向对象的或传统的基于模块的开发技术更为高效、灵活、功能强大。比方说,它使得开发人员通过组合和重用由不同个人和团体独立开发的二进制“模块”,极大地简化和加快开发工作。构件是语言无关和硬件无关的,而且可以在网络上运作。通过采用空间缓存和空间索引等技术,可以有效地解决地理数据的检索和传输效率问题。同时这种技术也为二次开发提供了更灵活的选择。本文将就基于Internet/WWW计算环境下WebGIS系统的构件化做理论和实践上的探索,建立实用的WebGIS对象构件系统。

第二章 分布式WebGIS构件化研究 一、 构件的概念

从90年代开始,出现了主要运行于UNIX上的CORBA(Common Object Request Broker Architecture)和主要运行于Windows/Win NT上的COM/DCOM,这些是构件的基础技术。 1.构件

简单地说,构件技术是一种二进制标准【1】,即EXE和DLL程序标准。它使得其它的DLL或EXE程序能够操纵、共享和访问由某个EXE或DLL程序(即构件)所提供的方法和数据【5】。 构件技术极大地推动了软件业的发展,这是因为: 2 这个技术使得构件的开发和使用完全独立。

2 这个技术提供了一种必要的机制,使得一个构件可以在它自己的过程中,透明地访问和操纵其它过程的方法和数据。这也给予我们一种强大和灵活的开发手段来使构件无缝地协同工作。

2 这个技术提供了其它灵活的方式来开发和定制我们的应用或构件。在这里构件技术体现了面向对象的设计思想,具有独立性、封装性,隐蔽实现的细节,支持互操作的规范化界面;具有关联性、继承性、聚合性和类库机制,以支持复用。例如通过使用包含/聚合或类库,外部开发者可以从已有的二进制构件基础上创建新的构件。这个派生出来的构件不仅从外部的DLL或EXE程序中继承了所有的方法,而且可以改变或定制每一个方法和扩展功能以满足新构件的特殊要求。通常应用程序的开发者不会从底部开发他们的构件。许多应用程序是从现存的二进制构件派生出来的,然后再扩展或修改功能。并且因为一个应用系统可以被看作是由不同开发者开发的独立构件组成的集合,我们可以简单地通过挑选所需的构件来代替或更新现有的构件,来满足一定的需求。

2 构件是双向和语言无关的,这意味着我们可以使用不同的语言来开发构件。而构件也可以被不同的语言来使用,例如C++,JAVA,PASCAL,C和BASIC等语言。开发者可以共享用不同语言开发的所有二进制模块。同时,构件可以在不同机器不同操作系统上透明地运行(支持网络和硬件无关)。软件构件必须遵从二进制的外部的标准,但是它们的内部实现完全没有限制。它们可以使用过程语言,也可以使用面向对象的语言和构架。 2.CORBA

CORBA是由对象管理集团(The Object Management Group)提出的一个分布式环境下跨平台、跨语言的对象管理规范【9】。CORBA最关键的有三个部分——对象界面、对象实现和对象请求代理。对象界面用一种通用的界面定义语言描述了对象所要完成的功能以及对象的属性,对象实现则采用某种方法某种语言实现对象界面所定义的对象,同一个对象界面可以有不同的对象实现方法。对象请求代理则在对象请求和对象实现之间架起了一座桥梁。用户对对象的请求是用对象界面的方式来描述的,然后再向对象请求代理提出对象请求,对象请求代理根据用户的对象请求从对象实现中选取一个合适的对象实现供用户使用。对于用户来说,它根本不知道对象实现到底是在网络的哪个位置上,也不知道调用的是哪个对象实现。 3.COM/DCOM

DCOM,作为微软的分布式计算策略,是在开放性软件DEC远程过程调用协议的基础上开发的。DCOM是微软的构件对象模型COM的一个扩增版,而COM是ActiveX的基础技术【10】。COM和DCOM最大的不同在于COM构件是运行在单机上,而DCOM构件则是分布在网络上。尽管DCOM 在非Windows平台上也可以使用,但会受到很多限制,因此它更适用于Windows环境。

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

我们可以认为GIS构件是以EXE或DLL形式出现的二进制可重用软件块,它通过向用户提供预先定义的接口,来封装各种功能明确的GIS服务,使得用户无需从底层的基本功能做起,而以一种强大和灵活的开发手段来使构件无缝地协同工作在自己的应用程序中,并且可以利用构件的能力来提供标准服务之外的简便的扩展和创新以及强壮的构件版本支持。它具有以下特性:

2 透明性:即黑盒方法。GIS构件的使用者和开发者相互独立;使用者无需关心构件的具体实现技术和版本更新,而只需访问构件所提供的接口。这样就减少了系统更新对二次开发者所带来的影响,只要接口保持不变,内部怎么实现都可以。其实这一点也正是软件工作者自编程模块化以来一直所倡导的。

2 可组合性:构件之间的通讯和绑定相似,从而能够无缝地组合起来形成更大的构件。根据开发层次的不同,我们应该提供不同要求的开发人员所需的构件层次。而在系统设计中,最主要的是提供一些可以进行再组合的基础构件(GIS核心对象类),在它们之上可以搭建更高层次的应用构件。 2 可重用性:构件可以嵌入到其它应用开发程序中使用。例如GIS构件可以嵌入到Web主页,从

而使Web页具有GIS功能,进行地图显示、空间分析、查询等操作。二次开发人员也可以充分利用Visual C++、Visual Basic、Delphi、FoxPro、PowerBuilder等语言环境的可视化功能,使用GIS构件来开发面向不同应用领域的GIS应用系统。 二、构件化的意义

目前众多地理信息系统研究开发厂家的产品主要注重于地图的绘制和管理,而对GIS的二次开发支持却不多。一些厂家对用户提供了用于地图操作和查询的APIs,但这些APIs的调用往往过于纷繁复杂,不太符合目前广大用户面向对象程序设计的习惯,而且要求开发人员对系统的数据结构和组织情况比较了解,因此对开发人员的素质要求较高。

这样WebGIS构件化就应需求而提到了日程上来。构件化的WebGIS,其形式和结构与传统的GIS有很大的不同。

1. 构件化的GIS可以无缝地集成到开发环境中,提供精炼美观的显示和操作功能。利用GIS构件,GIS最终用户和软件集成商只要利用适当的构件就可快速生产出所需要的应用系统。相对较为专业、有针对性的GIS功能以构件的形式组装、发布,并被集成到具体的系统中去。

2. 构件化的GIS可以嵌入到Web主页,实现Internet/Intranet网络GIS应用系统。另外,构件化的GIS还可以嵌入到任何开发环境中,并充分利用这些语言环境的可视化功能。

3. 构件化GIS降低了系统的复杂性,可以加快开发进度,另一方面也可以降低成本,增加可维护性。 4. 构件化GIS还可以方便地与各种应用系统,如办公软件、图形软件、CAD软件等进行连接和嵌入,方便不同系统之间的互操作。

5. 构件化的GIS,其功能组件可以被封装成能实现与具体任务最紧密相关的功能模块。因而小巧、灵活,可以方便地进行组装和嵌入,在一些非专业GIS系统中,如一般的MIS系统中,也可以很方便的利用GIS构件实现数据的可视化或地图的显示等任务。 三、构件化系统建模 1. 体系结构

从系统构成的角度看,整个系统可以分为GIS应用层、GIS构件层、GIS服务层和GIS存储层四个部分。其基本的系统结构图如下图所示: GIS应用层

GIS构件层

GIS存储层

GIS服务器 网络 缓存


分布式WebGIS构件化的研究和实现(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:小学体育与健康科学版四年级上册《小篮球:原地双手胸前投篮》优

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: