目录
[9. 网络地理信息系统](#9. 网络地理信息系统)
[9.1. 概述](#9.1. 概述)
[9.1.1. 网络GIS概念](#9.1.1. 网络GIS概念)
[9.1.2. 网络GIS体系结构](#9.1.2. 网络GIS体系结构)
[9.1.3. 网络GIS内容体系](#9.1.3. 网络GIS内容体系)
[9.2. 分布式网络GIS](#9.2. 分布式网络GIS)
[9.2.1. 分布式网络GIS概念](#9.2.1. 分布式网络GIS概念)
[9.2.2. 分布式主要技术](#9.2.2. 分布式主要技术)
[9.3. WebGIS](#9.3. WebGIS)
[9.3.1. WebGIS概念](#9.3.1. WebGIS概念)
[9.3.2. WebGIS分类与特点](#9.3.2. WebGIS分类与特点)
[9.3.3. WebGIS技术框架](#9.3.3. WebGIS技术框架)
[9.3.4. WebGIS实现技术](#9.3.4. WebGIS实现技术)
[9.4. 网络GIS发展趋势](#9.4. 网络GIS发展趋势)
[9.4.1. 处理海量数据的功能](#9.4.1. 处理海量数据的功能)
[9.4.2. 空间分析功能](#9.4.2. 空间分析功能)
[9.4.3. 网络三维可视化](#9.4.3. 网络三维可视化)
[9.5. MAPGIS网络平台简介](#9.5. MAPGIS网络平台简介)
[9.6. 习题](#9.6. 习题)
9. 网络地理信息系统
自从60年代第一个地理信息系统诞生以来,经过几十年的发展,地理信息系统技术的理论研究、产品开发和应用方面取得了很大的成绩。地理信息系统的认识论、方法论和实际应用方面的研究越来越多样化,在空间数据模型、空间分析、空间可视化、决策支持等方面取得长足的进步。特别是20世纪90年代后期,互联网(Internet)技术得到了迅速发展,对社会文明的进步和经济发展产生了极为深远的影响,网络技术正在改变着整个世界。网络地理信息系统就是以网络为中心的地理信息系统,它使用互联网环境,为各种地理信息系统应用提供GIS的分析、制图等功能和空间数据及其数据获取能力。
9.1. 概述
从早期庞大而专有的GIS系统到如今轻便且大众化的嵌入式移动地理信息系统,乃紧随计算机技术、网络技术、数据库技术和软件技术等的发展,在数据模型、数据的组织与管理、体系结构、计算模式和地理服务等方面正在或已经发生了巨大的变化。在这众多的变化中,"网络化"是GIS 在发展历程和今后发展中的最重要特点。从局域网到城域网和广域网, 从互联网到无线网络, 计算机网络同其他通信网络的每一步发展都在改变着GIS 的应用规模和地理服务方式, 而伴随着计算机网络发展的分布式计算技术也在从早期的集中式或基于主机的计算模式(Host- based Computing Model) 、文件服务器计算模式( PC/File Server - based Computing Model) 发展为客户/服务器模式(Client/Server,C/S) 、浏览器服务器模式(Browse/Server, B/S),再发展为如今的多层分布式计算、Web服务和网格计算模式,分布式计算模式也在逐步影响着GIS的计算方法和体系结构。可以说网络与因网络发展而存在的分布式计算技术深深影响和改变着GIS,促进网络GIS 的发展。
9.1.1. 网络GIS概念
网络地理信息系统是在网络环境下的一种处理、分析和显示地理信息的计算机信息系统。地理信息是描述地球表面的地理位置和地理空间关系的信息。地理数据是地理信息的载体,它包括带有地理位置特征的图像、图形数据和与此相关的文本数据。网络GIS可以是GIS发展过程中某一时段的GIS 产品与应用形式,也可以是所有GIS 体系下的统称。因此,网络GIS有"狭义网络GIS"和宏观的"广义网络GIS"之分(张书亮等,2007)。
"狭义网络GIS"是在一定时期内特定形式的计算机网络和分布式对象技术融合所形成的GIS系统便是狭义性的网络GIS。按照这种定义方法,可将网络GIS分成"基于C/S的网络GIS"、"基于B/S 的网络GIS"、"基于空间Web服务的网络GIS"、"基于移动与嵌入式的网络GIS"和"基于网格的网络GIS"称为狭义的网络GIS。它都因其网络结构形式和分布式对象技术的不同而在体系结构、数据存储与访问方法、数据组织与存储策略等方面存在较大差异。
"广义网络GIS"是多种技术相互融合,互为利用的一种网络GIS。它是随着计算机技术、网络技术、软件技术和数据库技术的发展,计算机网络结构形式和分布式对象技术日益多样化,GIS 数据和功能共享需求的逐步提升,GIS的数据共享和访问方法日益多样化而产生的一种GIS技术。因此,"广义网络GIS"不仅是所有"狭义网络GIS"的统称, 同时它也代表了不同"狭义网络GIS"结合时的产物。一般来讲,"广义的网络GIS"可以是城域网/广域网GIS、Internet/Intranet GIS、无线网络GIS、移动与嵌入式GIS的各种组合。
9.1.2. 网络GIS体系结构
1.两层C/S体系结构
在早期的网络GIS体系结构中,一般采用两层C/S体系结构,如下图所示。客户机向服务器发出数据请求,服务器将数据传送给客户机进行计算,这种模式的优点充分利用了客户机的性能,使计算能力大大提高;另外,由于客户机和服务器之间的通讯是通过网络协议进行的,是一种逻辑的联系,因此物理上在客户机和服务器两端是易于扩充的。基于C/S结构的WebGIS是由客户机完成GIS分析、输出工作。GIS数据和分析工具最初放在服务器上,运行时下载到客户机,操作灵活。但是C/S应用软件模式大都是基于"胖客户机"结构下的两层结构应用软件。因此,进行业务数据的处理和维护,功能相对简单,这就造成应用系统的性能、可伸缩性和可扩展性低下,对用户的投资缺乏保护。两层C/S结构,以PC为主,适合部门级应用,初级成本虽低,但随着应用规模扩展,网络上异种资源类型的增多,开发、管理、维护的复杂程度加大,频繁的软硬件升级,使后期成本骤升;缺乏关键事物处理的安全性与并发处理能力。
两层结构体系
Server作为数据库、文件服务器,进行业务数据的处理和维护,功能相对简单,主要是数据库系统根据客户端传来的请求进行数据库操作,然后将结果传送给客户端软件。这样的Server不可避免造成应用系统的性能、可伸缩性、可扩展性低下。
Client一般由应用程序及相应的数据库连接程序组成,它的主要功能是处理与用户的交互、按照某种应用逻辑进行处理与数据库系统的交互。两层C/S结构应用软件的开发工作主要集中在客户端软件,客户端软件一般由应用程序及相应的数据库连接程序组成,服务器端软件一般是某种数据库系统。客户机端软件的主要功能是处理与用户的交互、按照某种应用逻辑实现与数据库系统的交互;服务器端软件的主要功能是数据库系统根据客户端软件的请求进行数据库操作,然后将结果传送给客户端软件。客户端软件与服务器端软件之间的通信主要是通过SQL语句。两层C/S结构应用软件的开发工作主要集中在客户端,客户端软件不但要完成交互和数据显示,而且还要完成对应用逻辑的处理。
2.三层(或多层)B/S体系结构
三层(或多层)B/S结构(喻占武,2008)的特点是在两层结构的基础上加入一个(或多个)中间件层。它将C/S体系结构中原本运行于客户端的应用程序移到了中间件层,客户端只负责显示与用户交互的界面及少量的数据处理(如数据合法性检验)工作。客户端将收集到的信息(请求)提交给中间件服务器,中间件服务器进行相应的业务处理(包括对数据库的操作),再将处理结果反馈给客户机。
本质上B/S与C/S结构属于同一体系结构,B/S是在C/S体系基础上扩充而成的。这样,用户界面与应用逻辑位于不同的平台上,并且应用逻辑被所有的用户共享。在B/S的系统中,用户可以通过浏览器向分布在网络上的许多服务器发出请求。B/S结构极大的简化了客户机的工作,客户机上只需安装、配置少量的客户端软件即可,服务器将担负更多的工作,对数据库的访问和应用程序的执行将在服务器上完成。B/S体系是在Internet原有瘦客户机/胖服务器的C/S体系基础上发展起来的。这种新的体系前端是浏览器,后端是服务器。服务器包括Web服务器以及数据库服务器两部分。客户机和Web服务器之间的通讯采用标准的HTTP,而Web服务器与数据库之间的交互操作则采用CGI、JDBC或API等方式。这种就形成了表示层,应用逻辑层和数据层的三层构造模型。如下图所示。
三层结构体系
与传统的C/S体系结构相比,三层体系结构存在如下优点:
(1)客户端零维护
在三层体系结构中,几乎所有的业务处理都是在中间件上完成的,客户端只需要安装相应的浏览器即可,不用做任何其它安装和配置工作,所以也就不存在客户端维护的问题,真正实现了"客户端零维护"。
(2)可扩展性好
三层体系结构的可扩展性好体现在以下三个方面:
第一,工作节点的可扩展性好。由于三层体系结构的客户端零维护的特点,使增加一个工作节点的工作简单到了只需增加一台装有相应的浏览器的PC机即可。
第二,应用系统的可扩展性好。好的应用系统应该能方便地实现一定程度上业务的变化和业务单元的增加。三层体系结构采用面向对象的分析和设计模式,将业务模块都封装到了业务类和服务类中,所以如果一个业务流程变了,或需要增加一个新的业务模块,只需替换或增加新的业务类和服务类即可。
第三,业务逻辑与用户界面及数据库分离,使得当用户业务逻辑发生变化时只需更改中间层的组件即可。
目前,网络GIS在Internet 的应用为典型的三层结构,包括客户机、应用服务器、数据库服务器。这种结构存在两个数据传输瓶颈:服务器提供服务的网络带宽和分布式空间数据存储系统的I/O带宽。为了解决这两个瓶颈,现在一般在服务器层采用服务器集群技术,但是底层存储仍采用磁盘阵列或传统的网络存储技术,空间数据服务和元数据管理都通过服务器来进行,带来了元数据服务器瓶颈问题。因此,有学者提出多层体系结构,如包括应用层、服务层、传输层和存储层的四层结构,用服务器集群技术解决服务器提供服务的网络带宽瓶颈,用基于对象存储技术解决分布式空间数据存储系统的I/O带宽瓶颈。
9.1.3. 网络GIS内容体系
1. 基于C/S的网络GIS
基于C/S的网络GIS 采用分布式系统架构,构建于部门局域网络之上。它主要完成海量空间数据查询统计、地图编辑、空间分析、专题制图、数据转换输出等功能。快捷性、安全性、灵活性和高效性是基于C/S的网络地理信息系统的最大特点。
2. 基于B/S的网络GIS
基于B/S 的网络GIS 常常被称之为WebGIS,即互联网地理信息系统, 以互联网为环境, 以Web页面作为GIS 软件的用户界面,把Internet 和GIS技术结合在一起, 为各种地理信息应用提供GIS 功能。与传统GIS 相比,具有B/S体系结构的网络GIS使原来基于单机或局域网的GIS扩展到整个因特网, 使得地学数据和地学模型有可能在全球范围内共享。此外, WebGIS 还具备开发和应用管理成本低, 使用简单、能实现真正的信息共享、平台具有很强的独立性、良好的可扩展性、更广泛的访问范围和平衡高效的计算负载等诸多优点。
3. 基于空间Web服务的网络GIS
基于Web Service的网络GIS是将地理信息技术和Web Service分布式计算技术相结合的产物,将地理信息系统架构在Web Service上可以轻松实现地理信息互操作,实现透明的数据和功能跨平台无缝访问。目前,OGC成立了专门研究如何利用Web服务及其相关技术解决地理信息领域互操作问题的研究项目即OGC Web 服务启动项目(OGCWeb Services Initiative),即OWS (OGC Web Services),该项目提出一个可进化、基于开放地理数据互操作规范的、能够无缝集成各种在线空间处理和位置服务的框架,使得分布式空间处理系统能够通过XML和HTTP 技术进行交互,并为各种在线空间数据资源、来自传感器的信息、空间处理服务和位置服务进行基于Web的发现、访问、整合、分析、利用和可视化等操作提供互操作框架。
4.基于GRID的网络GIS.
基于GRID的网络GIS简称GRID GIS,它是指实现网络环境中空间信息共享和协同服务的分布式GIS软件平台和技术体系。它将地理上分布、系统异构的各种计算机、空间数据服务器、大型检索存储系统、地理信息系统、虚拟现实系统等,通过高速互联网络连接并集成, 为对用户透明的虚拟的空间信息资源的超级处理环境。较之于传统的WebGIS,GRID GIS在网络结构、应用功能和实现方式等方面都同WebGIS有较多的差异。
9.2. 分布式网络GIS
随着计算机网络的发展,基于客户机/服务器体系结构,并在网络支持下的分布式系统结构已经成为地理信息系统的发展趋势。由于GIS的固有的特点,使得运行于网络上的分布式系统特别适合于构造较大规模的GIS应用,其应用表现在以下几个方面(张军海,2008):
(1)数据的分布:在地理信息系统中,主要数据是空间数据,由于数据生产和更新的要求,常常需要存放在空间上分离的计算机上。
(2)应用功能的分布:GIS的功能组成了由空间数据录入到输出的一个工作流程,不同的人员由于其关注的信息不同,需要不同的GIS功能服务对数据进行处理,将应用分布在网络上就可以解决该问题。
(3)外设共享:外设的分布是服务分布的一种,由于许多GIS外设较为昂贵,如高精度平板扫描仪,喷墨绘图仪,大幅面数字化仪等,而通过分布式系统,可以实现这些设备的共享。
(4)并行计算:在地理信息系统中,许多模型具有较高的时间复杂性,利用分布系统可以实现并行计算,缩短计算时间。
9.2.1. 分布式网络GIS概念
1.分布式系统
分布式系统(Distributed System)(朱海傧等,1997;张军海,2008)是指由一组具有自治功能的独立计算机经互联网连接而成的计算机系统,这些计算机相互协作,共同完成给定的计算任务。分布式系统的特点是强调资源、任务、功能和控制的全面分布。系统中的资源、任务和控制通常分布于物理上分散的若干机器(亦称结点)上,而各个结点经互联网连接,彼此通信,构成一个统一的计算机系统。
分布式系统的工作方式也是分布的,系统中各结点之间可根据两种原则进行分工,一种是把任务分解成多个可并行执行的子任务,分布给系统中各个结点协同完成,这种方式称为任务分布。另一种是把系统的总功能划分成若干子功能,分配给各个结点分别承担,这种方式称为功能分布。无论是任务分布还是功能分布,分布方案均可依处理内容动态地确定。在分布式系统控制下,各个结点能够比较均等地分担控制功能,独立地发挥自身的控制作用,但又能相互配合,在彼此通信协调的基础上实现系统的全局管理。
分布式系统较之于集中式系统(Centralized System)以及独立的微机系统,分布式系统具有以下优点:
| 项目 | 描述 |
| 经济 | 多个微处理器提供了更好的性能/价格比 |
| 速度 | 一个分布式系统比大型机有更好的总体计算能力 |
| 固有的分布 | 一些应用系统需要运行于空间上分离的机器 |
| 可靠性 | 如果一台机器崩溃,整个系统还能够运行 |
增量发展 | 计算能力能够以很小的增量增长 |
---|---|
[分布式系统的优势--与集中式系统比较] |
在具有上述优势的同时,由于分布式系统的复杂性,对软件硬件提出了更高的要求,它也具有以下不足之处:
| 项目 | 描述 |
| 软件 | 当前支持分布式系统的软件较少 |
| 网络 | 网络可能充满了或者引发其它的错误 |
安全性 | 容易使得需要保密的数据被访问 |
---|---|
[分布式系统的不足之处] |
2 .分布式网络GIS
分布式网络地理信息系统是建立在分布式计算环境下由一组分布式服务器协同为互联网客户提供地理信息服务的网络地理信息系统,是对传统的WebGIS功能的扩展(张贺,2007)。在传统网络地理信息系统的三层体系结构的业务逻辑层上增加了分布式的应用逻辑,所以它的服务器端是一个网络,至少是一个局域网。服务器不再访问一个集中数据库,而是访问分布式的数据库,但是数据和服务在服务器端的分布状况对Internet客户是透明的,用户不需要了解数据的分布状况。这样的系统具有很好的扩展性,能够提供更强大的功能和地理信息服务。建立分布式网络地理信息系统的目的是空间数据互操作和空间计算功能共享。
9.2.2. 分布式主要技术
1.分布式计算技术
随着网络技术的发展,分布式计算(Distributed Computing)成为影响当今计算机技术发展的关键技术力量。所谓分布式计算,是指借助计算机网络将分布在不同地点的计算实体(进程、对象或构件等)组织在一起,进行信息处理的一种方式。分布式计算的理想目标就是要实现分散对等的协同计算(Decentralized peer-to-peer collaborative computing),这也是网络技术发展的最理想目标。
OSF心CE和StjN/ONC+是代表90年代初分布计算技术发展水平的主流产品。其技术特点是:
(l)主要针对信息共享问题;
(2)采用常规的客户/服务器计算模型;
(3)应用程序设计界面(API)沿用传统的计算概念和设施(如过程调用概念和文件设施等);
(4)提供丰富的分布系统管理、服务和应用。
分布式计算平台(Distributed Computing Platform,DCP)提供一种标准通一讯机制,可用于在分布网络环境中交互工具和交互服务通讯。服务包括信息发布、程序调用、远程调用、数据通讯、透明文件访问和网络安全。
IT行业正向不同DCP之间的完全交互性方向上发展,这些DCP主要包括OLE/COM、CORBA、CDE和新生物Java。每个DCP都有它自己的优势和不足,都有一个交互性策略来满足不同的要求。商家们各自推出自己的平台去占领市场,与此同时,市场迫使他们为开发者提供在不同DCP间可进行交互性操作的方法。用户要获取这种交互性必须支付一定的费用,因为没有一个用户能仅仅通过一种DCP就可以实现他想要的所有性能。
为使网络DCP真正具有地理数据交互处理功能,OpenGIS委员会把OpenGIS作为"总体规范"。也就是说,虽然OpenGIS在开放地理数据模型和OpenGIS服务模型方面描述得相当详细,但它在编程语一言和DCP服务方面却描述得很笼统。由一个软件厂家为OLE/COM写的OGIS应用软件(中间软件或组件软件)必须能与其它厂家或在CORBA或Java环境中的积分器程序写的OGIS应用软件对话,也要能与为GlS数据库写接口的GIS一ComPliantC++语一言编写的OpenGIS软件对话。
为在DCP内部实现交互性,每个DCP都必须是一个"执行规范",这个规范为OpenGIS的应用软件、中间软件和组件建立一个使用DCP服务器的标准方法,执行规范对开发者来说也很重要。但是如果开发者能严格执行规范的话,用户就不用再过多地考虑这些规范了。
2.分布式对象技术
分布式对象技术是在分布式环境下跨平台、跨语言的基于对象的分布式计算技术,它使得对象用户在使用对象时可以访问网络上任意有用的对象而不必知道该对象所处的位置。应该说分布式对象技术最关键的有三个部分对象界面、对象界面用一种通用的界面定义语言描述了对象所要完成的功能以及对属性,对象实现则采用某种方法、某种语言实现对象界面所定义的对象,同对象界面可以有不同的对象实现方法。对象请求代理则在对象请求和对象实间架起了一座桥梁。用户对对象的请求是用对象界面的方式来描述的,然后对象请求代理提出对象请求,对象请求代理根据用户的对象请求从对象实现取一个合适的对象实现供用户使用。对于用户来说,它根本不知道对象实现是在网络的哪个位置上,也不知道调用的是哪个对象实现。
对象是一个封闭的由代码和数据组成的集合体,它只能对自己的私有数严格规定。不同对象可以对相同的指令自行做出相应的操作,使整个程序更制。例如,当收到系统关闭的指令时,所有的对象都会对自己的数据做适处理。在分布式系统中,通过组合对象的方法可以大大提高系统的安全性和稳定性。
分布式对象技术的特点是(张军海,2008):
(l)主要针对异构环境下的互操作问题(包括数据和功能两个方面);
(2)将客户/服务器模型与面向对象技术结合在一起;
(3)提供面向对象的API;
(4)已经成为建立集成框架和软件构件标准的核心技术。
当今,基于对象的分布式计算的最具代表性的技术是对象管理集团的通用请求代理体系结构CORBA、微软的分布式对象构件模型DCOM和和SUN的JavaBeans。
9.3. WebGIS
9.3.1. WebGIS概念
Web技术和GIS技术相结合,最为激动人心的产物就是WebGIS(万维网地理信息系统)。WebGIS,简言之,就是利用Web技术来扩展和完善地理信息系统的一项新技术。由于HTTP协议采用基于C/S的请求/应答机制,具有较强的用户交互能力,可以传输并在浏览器上显示多媒体数据,而GIS中的信息主要是需要以图形、图像方式表现的空间数据,用户通过交互操作,对空间数据进行查询分析。这些特点,就使得人们完全可以利用Web来寻找他们所需要的空间数据,并且进行各种操作。具体地讲,WebGIS的应用可以分为以下几个层面:
1. 空间数据发布
由于能够以图形方式显示空间数据,较之于单纯的FTP方式,WebGIS使用户更容易找到需要的数据;
2. 空间查询检索
利用浏览器提供的交互能力,进行图形及属性数据库的查询检索;如图所示,在客户端浏览器上进行空间信息检索界面。
3. 空间模型服务
在服务器端提供各种空间模型的实现方法,接收用户通过浏览器输入的模型参数后,将计算结果返回。换言之,利用Web不仅可以发布空间数据,也可以发布空间模型服务,形成浏览器/服务器结构(Browser/Server,B/S)。
4. Web资源的组织
在Web上,存在着大量的信息,这些信息多数具有空间分布特征,如分销商数据往往有其所在位置属性,利用地图对这些信息进行组织和管理,并为用户提供基于空间的检索服务,无疑也可以通过WebGIS实现。
9.3.2. WebGIS分类与特点
1. WebGIS分类
与其它采用B/S结构的信息系统不同的是,WebGIS系统具有空间数据量大和空间处理复杂的特点,因此产生了计算模式的概念。WebGIS的计算模式主要是指GIS功能在客户端和服务器端的分配,WebGIS计算模式的选择决定了整个WebGIS系统的实现。WebGIS的计算模式主要包括以下三种:胖客户模式、瘦客户模式和中客户模式。
对于WebGIS的分类,根据主要的图形属性数据所处的逻辑位置不同,可划分为服务器端和客户端两种解决方案,也有将其分为动态式和主动式WebGIS,有些WebGIS平台采用介于其中的平衡方案。根据WebGIS的体系结构和计算模式,并综合以上分类方法,可以将WebGIS分为以下三类:
(1)瘦客户端WebGIS(侧重服务器的策略)
以服务器为中心,主要目的是根据客户端的需要向其提供GIS数据和分析结果。在这种策略下,数据与数据处理软件都运行于服务器上,客户端没有任何数据处理能力,仅仅组织、发送请求和显示服务器的响应结果。其优点在于如果使用一个高性能服务器,可以让一些用户访问到许多比较难于通过网络进行传输或在客户端本地处理的复杂数据;可以让一些即使没有使用过复杂软件的用户也可以使用一些复杂的GIS分析程序;可以有效地控制用户对数据的访问,以保证数据得到正确的使用。其缺点在于任何一个请求都必须返回到服务器端进行处理,并在处理完请求后通过Intemet返回响应给客户端;服务器与浏览器之间的Internet的网络带宽和流量是影响系统性能的主要因素,特别是在服务器响应需要传输大量数据的情况下;系统没有有效利用客户端计算机的处理能力,仅仅利用它提交请求和显示响应结果。一般来说,这一策略适于面向大量对GIS分析功能要求较少的用户;对于一些实时性要求较高的WebGIS系统,使用这种策略比较好,可以避免传输大量实时产生的数据,更有利于对数据的控制和反映系统的真实现状。
(2)胖客户端WebGIS(侧重客户端的策略)
在这种策略中,客户端应用程序分担了一部分原来有服务器负责的处理任务。往往是一部分GIS功能下载到或驻存于客户端,对数据的某些处理在客户端本地完成。其优点是利用了客户端计算机的处理能力;用户可以对数据分析过程进行更多的控制;一旦服务器返回了响应,用户即可以不在通过网络与服务器进行信息交换,就可以对返回的数据进行处理。其缺点主要表现在来自服务器的响应可能包含大量的数据或对数据进行处理的小程序,从而可能导致较长的响应等待;如果客户端处理能力不足,则处理数据量较大或比较复杂的数据比较困难,复杂的GIS分析可能运行缓慢;为了正确使用数据和分析功能,用户必须进行必要的培训。
(3)中客户端WebGIS(综合性平衡策略)
纯粹的侧重服务器或侧纯粹的重客户端的策略都存在明显的局限:如果需要频繁的数据传输,侧重服务器的策略情况下,系统的性能对Internet的网络带宽和网络流量非常敏感;侧重客户端的策略对客户端的计算机处理能力非常敏感,也就是说,如果某些任务超出其处理能力,则可能非常慢。综合这两种策略,形成一种混合型的解决办法,来更好地发挥服务器和客户端的优势与潜力。涉及到繁重的数据库操作或复杂分析的任务让性能高的一方来承担,一般来说是服务器;涉及到用户控制的任务让客户端承担。这样,双方共享彼此的计算处理能力,从而使数据和小程序可以进行合理分配,以使整个系统的性能达到最高。这种混合方式对于某些付费服务和预约服务型的应用比较有用,在这种应用中用户可以通过"预定"的方式,定期向服务器要求提供数据或进行某些分析服务。
2. WebGIS特点
与传统的地理信息系统相比,WebGIS有其特殊之处,主要表现在:
(1)更广泛的客户访问范围。客户可以同时访问多个位于不同地方的服务器上的据,而Internet/Intranet所特有的优势大大扩展了GIS的数据的处理能力,增强了空间数据的时效性。
(2)客户端的平台独立性。无论客户机是何种操作系统,只要支持通用的Web浏览器,用户就可以访问GIS数据及服务器所提供的服务。
(3)更简单的操作。要推广GIS,使GIS系统为广大的普通用户所接受,而不仅仅局限于少数受过专业培训的用户,就要降低对系统的操作难度。通过Web浏览器提供友好的用户界面无疑是一种很好的选择。
(4)更高效的计算负载平衡。传统的GIS大都使用文件服务器结构的处理方式,其处理能力完全依赖客户端,效率较低。而当今的一些高级的WebGIS能充分利用网络资源,将复杂的处理交由服务器处理,而简单的操作则由客户端直接完成。这种计算能灵活地在服务器端和客户端之间合理地分配处理任务,从而提高网络资源的利用效率,从而提高了系统的性能。
(5)分布式的系统。GIS数据和分析工具是独立的组件和模块,WebGIS利用Internet的这种分布式系统把GIS数据和分析工具部署在网络不同的计算机上,用户可以从网络的任何地方访问这些数据和应用程序,即不需要在本地计算机上安装GIS数据和应用程序,只要把请求发送到服务器,服务器就会把数据和分析工具模块传送给用户,达到Just-In-Time的性能。Internet的一个特点就是它可以访问分布式数据库和执行分布式处理,即信息和应用可以部署在跨越整个Internet的不同计算机上。
(6)动态性。由于WebGIS是分布式系统,数据与应用程序部署在不同的计算机上,随时可能被管理员更新,对于Internet上的每一个用户来说,都能得到最新的数据和应用程序的最新版本,只要数据源发生变化,和数据源的动态连接将保持数据的现势性。
(7)交互性。WebGIS可使用户在Internet上操作GIS地图和数据,用Web浏览器(IE.Netscape等等)执行部分基本的GIS功能:如缩放、漫游、查询和标注,甚至可以执行空间查询:如"离你最近的旅馆或饭店在哪儿",或者更先进的空间分析:比如缓冲分析和网络分析等。在Web上使用WebGIS就和在本地计算机上使用桌面GIS软件一样。
(8)经济性。一般专业的GIS软件非常昂贵,而对于普通用户来说,经常只使用一些最基本的功能,想购买专业软件显得不太可能,也不经济。WebGIS在客户端只需要浏览器,不需要客户的额外投入。由于客户端的简单而减少的维护费用也不容忽视。
9.3.3. WebGIS技术框架
目前可用于构造分布式WebGIS的技术方法主要包括:J2EE(Java 2 Platform Enterprise Edition)、DCOM(Distributed Component Object Model)、CORBA(Common Object Request Broker Architecture)(杜震洪,2007)。
1.基于J2EE的分布式WebGIS
(1)J2EE概述
J2EE是使用Java技术开发企业级应用的一种事实上的工业标准,它是Java技术不断适应和促进企业级应用过程中的产物。目前,Java平台有三个版本:适用于小型设备和智能卡的J2ME(Java 2 Platform Micro Edition)、适用于桌面系统的J2SE(Java 2 Platform Standard Edition)和适用于企业级应用的J2EE。
Sun推出J2EE的目的是为了克服传统Client/Server模式的弊端,迎合Browser/Server架构的潮流,为应用Java技术开发服务器端应用提供一个平台独立的、可移植的、多用户的、安全的和基于标准的企业级平台,从而简化企业应用的开发、管理和部署。J2EE是一个标准,而不是一个现成的产品。J2EE不仅巩固了标准版中的许多优点,如便利的数据存取特性、可靠的网络数据安全等,同时还全面支持对Java Servlets API,JSP(Java Server Page),EJB(Enterprise Java Beans)以及XML技术。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。
(2)基于EJB技术的WebGIS结构
EJB是一个服务端组件结构,具有层析性,这也正适应了WebGIS应用程序的开发需要。在通常情况下,基于EJB技术的WebGIS系统模型包括三层结构如下图所示。
①表示层
表示层主要用来满足用户对整个系统的各种访问需求,并完成以下任务:接收用户输入的请求,对请求进行分析检查并做相应处理;显示由服务器传来的响应结果。该层通常由客户进程组成,这些进程由浏览器动态的创建和撤销。
②业务逻辑层
业务逻辑层由Web服务器和应用服务器组成。应用服务器是一个基于J2EE的应用,以后台进程的形式存在,主要完成从WebGIS应用服务器的处理逻辑,包括影像数据流、矢量数据流和空间查询与分析服务等。业务逻辑层响应客户端的数据、影像以及查询分析等请求,并将生成的结果经Web服务器传送给客户端。
③数据层
数据层主要为业务逻辑层提供数据服务,如存储业务逻辑层的处理结果、返回业务逻辑层检索的数据结果。同时也为业务逻辑层屏蔽了数据源的变化,实现当数据库类型发生变化时只需改变连接数据源的语句。
基于EJB技术的WebGIS结构
2. 基于DCOM/COM+的分布式WebGIS
(1)DCOM与COM+概述
分布式组件对象模型DCOM,是组件对象模型(Component Object Model,COM)发展的新阶段。它扩展了组件对象模型技术,使其能够支持在局域网、广域网,甚至互联网上不同计算机的对象之间的通讯。使用DCOM,应用程序就可以在位置上达到分布性,从而满足客户和应用的需求。
DCOM的发展有力的推动了COM在网络环境中的发展。当然,从COM转到DCOM,并不仅仅意味着通信线路的加长,同时组件对象与客户程序协作运行的环境也发生了变化,从单机系统环境转到网络环境。毕竟网络通信比单机系统环境下的跨进程通信要脆弱得多,为了保证协作过程的可靠性以及程序对异常时间的应变能力,客户程序和组件程序需要考虑更多的细节,而不是仅仅提供与应用相关的基本功能。
COM+为COM更高层次上的应用。COM+的底层结构仍然以COM为基础,它几乎包容了COM的所有内容。COM+倡导一种新的设计概念,把COM组件提升到应用层,把底层细节留给操作系统,使COM十与操作系统的结合更加紧密。COM+相对于COM在应用方式上更好地继承了MTS(Microsoft Transaction Server)的处理机制,包括MTS的对象环境、安全模型、配置管理等。COM+把COM、DCOM和MTS三者有机地结合起来,同时也新增了一些服务,如负载平衡、内存数据库、事件模型、队列服务等,形成一个概念新、功能强的组件体系结构,使得COM+成为真正适用于企业应用的组件技术。COM+标志着Microsoft的组件技术达到了一个新的高度,它不再局限于一台机器上的桌面系统,而是把目标指向了更为广阔的企业内部网,甚至Internet国际互连网络。COM+与多层结构模型以及Windows操作系统为企业应用或Web应用提供了一套完整的解决方案。
(2)基于DCOM/COM+的WebGIS结构
根据Microsoft公司提供的分布式应用程序模型,基于DCOM的WebGIS可将复杂的GIS任务分为三个层次的逻辑:表示逻辑、业务逻辑和数据逻辑,如下图所示。
表示层是应用的客户端部分,它负责与用户交互及调用业务逻辑层的COM十组件来响应客户的请求。该层可以通过HTML、DHTML、ActiveX控件以及Win32应用程序来实现。中间的业务逻辑层负责处理表示层的应用请求,在需要的时候通过访问后端的数据服务层来完成数据的查询、检索和修改。后端的数据服务层负责为GIS应用提供空间数据、空间数据分析管理及数据的读写、检索和存储。
基于DCOM/COM+的WebGIS结构
3.基于CORBA的分布式WebGIS
(l)CORBA概述
CORBA提供了一个允许在分布式和异构型环境中应用程序之间进行互操作的框架。它是对象管理组织(Object Management Group,OMG)制定的有关对象技术的工业规范,是对OMG发布的对象管理体系(Object Management Architecture,OMA)参考模型的核心---对象请求代理(Object Request Broker,ORB)的功能描述与约定。OMA参考模型定义了CORBA的4个主要部分:对象服务(Object Services)、公共设施(Common Facilities)、应用对象(Application Objects)和ORB。
对象服务是为公共设施和各种应用对象提供的基本服务,如命名服务、事务服务、交易服务、生命周期服务和安全服务等。与对象服务不同,公共设施是面向最终用户的,而对象服务只面向构件本身。应用对象是未经OMG标准化的、由各个应用开发者自行开发的实体,应用对象使用CORBA提供的各种对象服务。对象请求代理ORB是作为对象互相通讯的软总线,负责部件间以及客户端和对象间的通讯。
(2)基于CORBA的WebGIS结构
CORBA的出现为WebGIS技术的结构优化提供了有力的支持,相继产生了一些具有分布特征的GIS组件己经成为GIS服务器的主要组成部分,对于提高WebGIS的互操作性和开放性具有直接的促进作用。
使用CORBA/Java技术,可以按照三层结构来构造WebGIS应用,分别为客户层、业务层和资源层。下图所示为通过Java-ORB接口存取CORBA对象的方法而设计的一种三层结构示意图。
基于CORBA的WebGIS结构
①客户层
该层提供与用户交互的界面。与传统的B/S模式中的客户端相比,这里的客户端所拥有的组件能够提供灵活性强、交互性好的图形界面。这些组件被嵌入在可移动的容器中(如HTML等)。客户端运行的是一个使用自身对象协议(Internet Inter-ORB Protocol,IIOP)的分布式对象。与HTTP协议不同的是,IIOP协议是动态的,通过它可以建立客户端Java应用和服务器端对象之间的持久连接,从而达到传递请求和响应结果的目的。
②业务层
业务层是一组能够向HTTP和CORBA客户端提供服务的服务器。在基于CORBA/Java的对象Web模型中,应用逻辑被封装成CORBA对象,担当业务层的应用服务器角色,这些对象通过IIOP协议与客户端的Java进行交互,提供逻辑处理功能。IIOP提供了本地和远程操作的透明性,因此开发人员不必关心对象的具体位置。
③资源层
资源层为CORBA对象提供可以访问的资源,包括DBMS、空间数据库、遗留系统等。由于在中间层以CORBA对象取代了CGI应用程序,因而扩大了访问资源的范围,几乎可以访问任何符合CORBA规范的系统及所拥有的资源。在基于CORB/Java技术的对象Web模型中,可以利用Java对象请求中介与CORBA对象通信。
9.3.4. WebGIS实现技术
WebGIS是网络GIS的一个重要组成部分,网络GIS的一些概念,如客户机/服务器模式、分布式数据管理等,也可以应用于WebGIS,但是在WebGIS实现时,还要着重考虑两个问题,即控制网络传输数据量以及必须通过浏览器与用户进行交互。由于HTML不支持矢量数据而且缺乏适合GIS的数据功能描述,所以在目前WebGIS技术中,扩展浏览器的解释功能和交互能力,以及加强服务端的动态页面和数据生产能力是WebGIS的重要实现目标。WebGIS的实现包括客户端实现和服务器端实现两个方面。
服务器端的实现技术包括:CGI、ServerAPI等,当前瘦客户模式的WebGIS应用主要就是采用这些技术。客户端的实现技术主要有:JavaAPplet、ActiveX和Plug-in,当前这些技术主要用于实现胖客户模式的WebGIS应用。目前,实现WebGIS的技术方法具体分为以下五种。
1.CGI方法
CGI(Common Gateway Interface,通用网关接口)是一个用于Web服务器和客户端浏览器之间的特定标准,它允许网页用户通过网页的命令来启动一个存在于网页服务器主机的程序(称为CGI程序),并且接收到这个程序的输出结果。当用户发送一个请求到Web服务器,Web服务器通过CGI把该请求转发给后端运行的GIS服务程序,由GIS服务程序生成结果交给Web服务器,Web服务器再把结果传递到用户端显示,如下图所示。CGI是最早实现动态网页的技术,它使用户可以通过浏览器进行交互操作,并得到相应的操作结果。
利用CGI可以生成图像,然后传递到客户端浏览器(目前大多数主页的访问者计数器就是采用CGI程序实现的)。这种方法的缺点是,对于每一个客户机的请求,都要重新启动一个新的服务进程,当有多用户同时发出请求时,服务的负担重。同时由于网络传递的图形为栅格图,因而导致地图缩放、漫游、选择等操作不能在本地进行,需要传递到服务器进行处理,在服务器端生成新的栅格图再传递到客户端显示,不能直接在客户端进行复杂的空间分析。从理论上讲,任何一个GIS软件都可以通过CGI连接到Web上去,远程用户通过浏览器发出请求,服务器将请求传递给后端的GIS软件,GIS软件按照要求产生一幅数字图像,传回远程用户。
实际上,由于设计的原因,大多数GIS软件不能直接作为CGI程序连接到Web上,但是,有以下的两种技术比较成功。
(1)用CGI启动后端的批处理制图软件,这种软件的特点是用户可以直接在计算机终端一行一行地输入指令来制图。其特点是用户的每一个要求都要启动相应的GIS软件,如果软件较大,启动时间就会很长。
(2)CGI启动后端视窗(Windows)GIS软件,CGI和后端GIS软件的信息交换是通过"进程间通讯协议(IPC-Inter Process Communication)"来完成,常用的IPC有RPC(Remote Procedure Call)和DDE(Dynamic Data Exchange)。其优点在于,由于GIS软件是消息驱动的,CGI只要通过发送消息,驱动GIS软件执行特定操作即可,不需要每次重新启动。
CGI方法实现的WebGIS模式
2.Server API方法
Server API类似于CGI,不同之处在于CGI程序是单独可以运行的程序,而Server API往往依附于特定的Web服务器,如Microsoft ISAPI依附于IIS(Internet Information Server),只能在Windows平台上运行,其可移植性较差。但是Server API启动后会一直处于运行状态,其速度较CGI快。如下图所示。
Server API方法实现的WebGIS模式
3.插件方法
利用CGI或者Server API,虽然增强了客户端的交互性,但是用户得到的信息依然是静态的。用户不能操作单个地理实体以及快速缩放地图,因为在客户端,整个地图是一个实体,任何GIS操作,如放大、缩小、漫游等操作都需要服务器完成并将结果返回。当网络流量较高时,系统反应变慢。解决该问题的一个办法是利用插件技术,浏览器插件是指能够同浏览器交换信息的软件,第三方软件开发商可以开发插件以使浏览器支持其特定格式的数据文件。利用浏览器插件,可以将一部分服务器的功能转移到客户端,此外对于WebGIS而言,插件处理和传输的是矢量格式空间数据,其数据量较小,这样就加快了用户操作的反应速度,减少了网络流量和服务器负载。插件的不足之处在于,象传统应用软件一样,它需要先安装,然后才能使用,给使用造成了不方便。
4.Java Applet(Java小应用程序)方法
WebGIS插件可以和浏览器一起有效地处理空间数据,但是其明显的不足之处在于计算集中于客户端,称为"胖客户端",而对于CGI方法以及Server API方法,数据处理在服务器端进行,形成"瘦客户端"。利用Java语言可以弥补许多传统方法的不足,Java语言是一种面向对象的语言,它的最大的优点,就是SUN公司提出的一个口号"写一次,任何地方都可以运行(Write once, run anywhere.)",即指其跨平台特性,此外Java语言本身支持例外处理、网络、多线程等特性,其可靠性和安全性使其成为因特网上重要的编程语言。
Java语言经过编译后,生成与平台无关的字节代码(Bytecode),可以被不同平台的Java虚拟机(JVM-Java Virtual Machine)解释执行。Java程序有两种,一种可以独立运行,另一种称为Java Applet,只能嵌入HTML文件中,被浏览器解释执行。用Java Applet实现WebGIS,优于插件方法的方面是:(1)运行时,Applet从服务器下载,不需要进行软件安装;(2)由于Java语言本身支持网络功能,可以实现Applet与服务器程序的直接连接,从而使数据处理操作既可以在服务器上实现,又可以在客户端实现,以实现两端负载的平衡。下图是利用Java Applet实现的WebGIS模式。
Java Applet方法实现的WebGIS模式
5.ActiveX方法
另一项可以实现WebGIS的技术是ActiveX,它是在微软公司OLE技术基础上发展起来的因特网新技术,其基础是DCOM(Distributed Component Object Model),它不是计算机语言,而是一个技术标准。基于这种标准开发出来的构件称为ActiveX控件,可以象Java Applet一样嵌入到HTML文件中,在因特网上运行。与Java Applet相比,其缺点是只能运行于MS-Windows平台上,并且由于可以进行磁盘操作,其安全性较差,但是优点是执行速度快,此外由于ActiveX控件可以用多种语言实现,这样就可以复用原有GIS软件的源代码,提高了软件开发效率。如下图所示:
ActiveX方法实现的WebGIS模式
WebGIS各实现技术优缺点
上面描述了几种WebGIS的实现方案,其模式优缺点及模式评价如上表所示,在实际的系统建设中,可以根据待发布数据的数据量、数据类型、Web服务器软件、客户端的要求等确定采用不同的方案,选择相应的软件。
9.4. 网络GIS发展趋势
网络地理信息系统是当今地理信息系统中最活跃的一个分支。新一代的网络地理信息系统将主要围绕互操作和开放式、基于分布式计算、处理海量数据、三维信息的可视化等主题增强它的功能。
9.4.1. 处理海量数据的功能
随着卫星遥感和航空摄影技术的发展,通过遥感获得的地理信息越来越多,特别是小卫星高分辨率遥感图像的商业化,遥感影像成为地理信息系统一个非常重要的信息源。这些高分辨率的卫星遥感数据不仅包含着海量的信息,而且时效性强,获取影像周期短,数据量大。这对WebGIS数据的及时存储与传输提出了很高的要求。如何快速响应客户对海量数据的请求对于WebGIS至关重要(王宇详等,2003)。
9.4.2. 空间分析功能
目前网络地理信息系统的空间分析功能比较弱,部分产品可以提供缓冲区分析和最短路径分析等功能,仍然无法满足需要。在网上对地理数据的操作和分析是WebGIS今后发展的重要方向之一。地理数据的分析功能,即空间分析,是GIS得以广泛应用的重要原因之一。通过GIS提供的空间分析功能,用户可以从已知的地理数据中得出隐含的重要结论,这对于许多应用领域是至关重要的。但GIS的空间分析分为两大类:矢量数据空间分析和栅格数据空间分析。
9.4.3. 网络三维可视化
目前的WebGIS大多只提供一些较为简单的三维显示和操作功能,这与真三维表示和分析还有很大差距。因此,在WebGIS中结合三维可视化技术,完全再现地理环境的真实情况,把所有管理对象都置于一个真实的三维世界里,真正做到了管理意义上的"所见即所得"。网络三维GIS的应用领域越来越广泛。限制网络三维发展的主要因素在于显示速度,将来实现宽带网和数据压缩技术的发展会推动它的发展。真正的三维GIS必须支持真三维的矢量和栅格数据模型及以此为基础的三维空间数据库,解决三维空间操作和分析问题。主要研究的方向包括:(1)三维数据结构的研究,主要包括数据的有效存储、数据状态的表示和数据的可视化;(2)三维数据的生成和管理;(3)地理数据的三维显示,主要包括三维数据的操作,表面处理,栅格图像、全息图像显示,层次处理等。
9.5. MAPGIS网络平台简介
MapGIS-IMS是新一代网络GIS平台,整合最新的GIS技术、网络通信技术,实现了在互联网GIS有限的资源条件下高性能的空间信息可视化、查询、编辑、空间分析处理等GIS功能。针对不同用户、不同需求,MapGIS-IMS提供了三个版本,分别是专业版、Web服务版和搜索引擎版,均支持.NET和J2EE开发,可以在UNIX、Linux等其他操作系统中实现WebGIS功能,达到跨平台、多操作系统的使用目的。
如下图所示,MapGIS-IMS专业版的四层体系架构,该平台主要提供了如下功能:
MAPGIS-IMS体系结构
(1)地图浏览可视化。除基本显示功能外,提供在WebGIS系统中遥感数据、规格网、非规格网等多种影像数据显示;如下图所示:
地图浏览可视化
(2)空间和属性数据查询。主要有单/多图层的基本查询与组合查询功能,以及查询结果的快速定位显示功能;如下图所示:
空间属性查询
(3)路径分析。通过设置路径分析结点和障碍点实现在定位系统和公交换乘系统中最优路径和最短路径分析,并提供该路径上的相关信息;如下图所示:
路径分析
(4)空间和属性数据编辑。主要提供可视化的空间数据添加、修改、删除等编辑操作,并能根据用户的需要设置相应显示样式;如下图所示:
空间属性编辑
(5)空间分析。提供单/多图层的叠加分析、圆裁剪、多边形裁剪和缓冲区分析;如下图所示:
多层数据叠加分析
(6)统计图表。根据查询属性信息动态生成统计图表,包括柱状图、饼图及折线图;如下图所示:
查询结果统计图
(7)图面信息计算功能。根据不同比例尺,提供可视化图面距离量测、面积量测功能。
9.6. 习题
1.什么是网络地理信息系统? 它有什么特点?
2.网络GIS体系结构有哪些?它的内容体系又包括哪些?
3.分布式系统特点是什么?什么是分布式地理信息系统?
4.WebGIS的分类有几类?WebGIS的特点有什么?
5.WebGIS技术框架有几种?它们的特点是什么?
6.WebGIS实现的技术有哪些?
7.网络GIS发展趋势是什么?