14.5. 网格GIS

14.5.1. 网格GIS概念

网格地理信息系统(GridGIS)是指实现广域网络环境中空间信息共享和协同服务的分布式GIS软件平台和技术体系(方金云,2003)。将地理上分布、系统异构的各种计算机、空间数据服务器、大型检索存储系统、地理信息系统、虚拟现实系统等,通过高速互连网络连接并集成起来,形成对用户透明的虚拟的空间信息资源的超级处理环境就是网格GIS。

GridGIS与传统的GIS系统相比,它有很多突出的特点:形式上,它不是一个环境和功能集中的系统,而更像是由网络连接的分布式的系统大群落;功能上,它超越了传统的管理与分析范畴,更着重于知识的挖掘与智能决策支持,实现传统GIS不能或不容易实现的功能;应用上,它的范围和深度都远远超过了传统的GIS系统,面向全球范围、全体用户、全方位服务。

GridGIS与传统WebGIS相比,传统WebGIS技术的主要目的是为了能够在网络上发布空间数据以及和这些空间数据相关的一些操作,主要通过浏览器直接服务于最终用户;而GridGIS的目标是将地理上分布,系统异构的各种计算机,空间数据服务器,大型检索存储系统,地理信息系统,虚拟现实系统等“通过高速互连网络连接并集成起来”形成对用户透明的虚拟的空间信息资源的超级处理环境。Grid GIS实现互联网上的互操作,真正的与平台无关,对各种网络资源的“即插即用”,即只要你能够接触到网格,就可以根据自己的需要,“按需”从网格获取各种资源与服务,而不必关心资源与服务所在的具体位置。

综上所述,所谓GridGIS就是建立在 3G广域网之上,基于Internet、Grid、GIS和Middleware等技术融合的,充分利用各种网络资源对广泛分布的空间数据与属性数据进行整合、集成、管理、处理和共享,并进行深层开发和利用的,面向全球变化、社会经济各部门及可持续发展各领域应用与服务的智能化的GIS工程。

14.5.2. 网格GIS体系结构

网格环境下的GIS涉及到的技术包括万维网服务、资源整合、计算网格、数据网格、GIS等。目前,由于网格本身就是一个新生事物,加之网格GIS都是建立在商业化网格计算及GIS系统之上,网格GIS很少会去从底层开发,因此当前并不存在基于网格协议的GIS软件,故网格环境下的GIS系统的实现通常是采用网格计算理念、基于当前现存的计算操作系统平台,通过部署网格服务来构建面向应用层的网格GIS软件来实现信息的共享和互操作。

1.三层网格GIS结构

南京师范大学任建武提出数据资源层、网格服务层和应用层三个层次的网格GIS逻辑架构。他认为GridGIS是空间信息获取、处理、共享的基本技术框架。建立异构分布式、智能化的空间信息网格计算环境,就是实现异构网络环境下的跨平台计算,支持分布式用户的并发请求并实现最优资源调度,实现网络环境下的多级分布式协同工作机制。三层网格GIS逻辑架构”如图14-8所示,分为三个基本层次:数据资源层、网格服务层和应用层。

../_images/image00128.gif

数据资源层是一个本地控制接口,提供资源相关的几种功能,提供资源调用接口,便于高层网格服务的实现。它们是构成网格系统的硬件基础,它包括各种计算资源,这些计算资源通过网络设备连接起来。

网格服务层实现与数据资源无关和应用无关的功能。网格服务层包括一系列协议和分布式计算软件,其屏蔽网格资源层中计算机的分布、异构特性,向数据网格应用层提供用户编程接口和相应的环境,提供更为专业化的服务和组件用于不同类型的网格数据应用,以支持网格应用的开发。

应用层是体现用户需求的软件系统。在网格服务层提供的中间件平台的基础上,用户利用提供的接口和服务完成网格应用的开发。应用程序集成层对低层资源的调用不再需要关心访问的实现机制。

2.五层网格GIS结构

网格GIS 体系结构实际上是借用了网格的思想,在底层借助于OGSA-DAI将各种软硬件资源(包括GIS 资源) 进行整合,借助于Globus Toolkit(GT),在其应用层开发应用组件以调用网格OGSA服务。如图14-9所示(蔡正林,2006)。

../_images/image00321.gif

图14-9 五层网格GIS结构

(1)最底层为硬件及资源层,此处有本机(集群) 的硬件资源和软件资源(包括GIS 资源) ,依托操作系统实现本地的GIS 资源管理,并向GT4 环境注册信息;

(2)第二层实际上是目前GT4 提供的功能,这也是本系统实现的一个基础环境。该层完成GIS 资源注册及服务,用户可以提交跨部门GIS 资源的作业与作业所需的各种资源脚本文件,一切操作对用户是全透明的,究竟取用了哪些资源,在什么机器上取的,由哪些机器同时参加了该作业的运算等相关细节都对程序员透明。这层主要涉及到Web Services 等传统的网络协议标准,特别需要指出Web Services 在提供底层连接时进行了扩展,实现了Web Services 服务从无状态到有状态的服务,同时网络上一直使用的协议如http ,ftp ,smtp ,telnet 等都保留,只是根据需要进行了扩展。

(3)第三层主要架设OGSA-DAI 和DB2II 完成各种数据库资源的整合,将多个集群或本地机器的GIS 空间数据库加以集成,实现作业的提交、监视及删除等工作;

(4)第四层是Globus Tookit 中的应用层部分,程序员需在此写软件服务接口、服务的实现和部署描述器,从而实现了网格环境中的GIS 应用,对于下层资源及GIS 服务的API 调用,用户根据需要驱动软件调用相应的API函数,实现所需的服务。

(5)第五层为客户的浏览器,用户需根据需要下载相应的插件,当用户有GIS 服务请求时只需以HTTP 形式发送,经由XML ,SOAP ,WSDL 层层包裹,去驱动GT 为其服务,从而实现了GRID GIS 的应用。

14.5.3. 网格GIS实现技术

网格GIS的实现需要包括中间件技术、GML互操作语言、Web Services技术以及分布式计算技术等关键技术的支持。其中,分布式计算技术在第二节分布式地理信息系统部分进行了介绍。

1.中间件技术

在不断发展的网络环境中,无论是硬件平台还是软件平台,都不可能统一。大型应用软件通常要求在软硬件各不相同的分布式网络上运行。为了更好地开发和应用能够在异构平台上运行的应用软件,迫切需要一种基于标准的、独立于计算机硬件以及操作系统的开发和运行环境。中间件技术就起这样的作用,它是处于操作系统和应用程序之间的软件。人们在使用中间件时,往往是把一组中间件集成在一起,构成一个平台(包括开发平台和运行平台),但在这组中间件中必须要有一个通信中间件,因此可以比较形象地把中间件可以定义为:平台+通信。这个定义也限定了只有在分布式系统中,才能称为中间件。

在基于分布式的网格环境中,中间件可以分为以下三种类型:基于RPC的中间件、面向消息的中间件和基于对象请求/代理的中间件:

(1)基于RPC(Remote Procedure Call)的中间件。RPC是一种对传统程序设计语言过程调用的扩展,被调用的对象可以存在于分布式系统的任何物理平台上。

(2)面向消息的中间件。是指支持基于消息传递的进程间的通讯方式,这类中间件既适合于客户/服务器模型,也适合于对等网络模型,一般比基于RPC形式的中间件会具有更高的运行效率。

(3)基于对象请求/代理的中间件。此类中间件是面向对象应用程序的首选,消息通过对象请求代理进行路由选择,其同时处理集成和安全方面的问题。网格GIS要求实现跨平台的GIS的互操作,跨平台的GIS要求GIS功能能够跨平台,即在异构网络环境下实现GIS的分布式操作,这就要求中间件平台的支持,只有这样才有可能实现分布式GIS,在统一网格GIS接口下,不同分布式GIS可以实现跨平台的GIS的互操作。同样,无论是GIS系统中模块之间的互通、互操作,还是应用构件的搭建与跨环境的部署和管理,都需要中间件的支撑。从技术上看,中间件更有效的保证GIS系统的可靠性、可扩展性、可管理性、数据一致性和应用安全性等。其中两种比较重要的网格中间件—Globus网格中间件和ProActive网格中间件。

2.GML互操作语言

在构建网格GIS的体系结构中,将存在大量的中间件(Middleware)及智能主体(Agent)。那么,在异构系统之间,系统内中间件与中间件之间,中间件与智能体之间,智能体与智能体之间以及网格服务与应用程序之间将如何进行空间信息描述、共享、交互、存储、传输等,是GML(Geography Markup Language,地理标识语言)作用与应用所在。

GML(Geography Markup Language)是XML语言在空间地理信息领域的扩展,它是由OpenGIS联盟于2000年5月最先发布的,其目的在于描述、说明地理信息,可以很容易地表现空间信息的结构和内容,并能实现开放式的空间信息交换和管理。目前,GML已经成为业界公认的空间信息格式标准。由刚开始使用的DTD到后续版本使用的XML Schema语法和机制,GML提供了一个开放的、用于定义空间地理数据的框架。同时允许用户自己开发出基于遵循GML规范的子集,在这个基础上,又由于其开放式、跨平台的特性使得各个厂商用户能够遵循同一个规范,使相互之间进行空间地理数据的交换成为可能,用户也可以有自己的数据定义格式,但是在进行数据交换时用GML作为一个媒介来实现数据的传输和交换。

和HTML相比,GML天生就非常适合用于存储和传输空间地理特征的属性信息和几何信息。它在网络空间地理信息系统应用领域的地位就如一个深层驱动机,它能将地理信息系统的数据核心——地理特征,采用XML的文本方式进行描述,并能对网络地理信息系统的各功能部件之间的空间信息的传输、通信提供强有力的技术支撑。可以把它看作用于在互联网间资源的共享和交换的地理信息编码;新的地理信息词汇表达方式;新的应用于地理信息服务的通信组件。

3.Web Services技术

Web Services是网格关键技术,在网格GIS系统的实现过程中也有着重要的意义。Web Services是一种新出现的分布式计算技术,它致力于提供简单的,基于Internet的标准,比如XML,以解决异构的分布式计算问题。在这一点上,它与CORBA等是不一样的。Web Services定义了描述访问软件构件的技术,访问这些构件的方法,以及确定相关服务提供商的发现方法。

Web Services的体系结构是基于Web服务提供者、Web服务请求者、Web服务中介者三个角色和发布、发现、绑定三个动作构建的。简单来说,Web服务提供者就是Web服务的拥有者,等待为其它服务和用户提供自己的功能;Web服务请求者就是Web服务功能的使用者,使用SOAP(Simple Object Access Protocol)消息向Web服务提供者发送调用信息得到其服务。Web服务中介者就是将一个Web服务请求者和合适的提供者联系在一起的管理者,一般是UDDI(Universal Description, Discovery and Integration)。三个角色是根据逻辑关系划分的,一个实际的Web服务既可以扮演Web服务提供者的角色,也可以扮演Web服务请求者的角色,还可以两种角色都扮演。Web Services体系结构图中包含三种基本操作,三种角色之间的关系可简单地表示如图14-10所示(潘显映,2007)。

../_images/image00227.gif