网格地理信息系统(GridGIS)是指实现广域网络环境中空间信息共享和协同服务的分布式GIS软件平台和技术体系(方金云,2003)。将地理上分布、系统异构的各种计算机、空间数据服务器、大型检索存储系统、地理信息系统、虚拟现实系统等,通过高速互连网络连接并集成起来,形成对用户透明的虚拟的空间信息资源的超级处理环境就是网格GIS。
GridGIS与传统的GIS系统相比,它有很多突出的特点:形式上,它不是一个环境和功能集中的系统,而更像是由网络连接的分布式的系统大群落;功能上,它超越了传统的管理与分析范畴,更着重于知识的挖掘与智能决策支持,实现传统GIS不能或不容易实现的功能;应用上,它的范围和深度都远远超过了传统的GIS系统,面向全球范围、全体用户、全方位服务。
综上所述,所谓GridGIS就是建立在3G广域网之上,基于Internet、Grid、GIS和Middleware等技术融合的,充分利用各种网络资源对广泛分布的空间数据与属性数据进行整合、集成、管理、处理和共享,并进行深层开发和利用的,面向全球变化、社会经济各部门及可持续发展各领域应用与服务的智能化的GIS工程。二.网格GIS体系结构
网格环境下的GIS涉及到的技术包括万维网服务、资源整合、计算网格、数据网格、GIS等。目前,由于网格本身就是一个新生事物,加之网格GIS都是建立在商业化网格计算及GIS系统之上,网格GIS很少会去从底层开发,因此当前并不存在基于网格协议的GIS软件,故网格环境下的GIS系统的实现通常是采用网格计算理念、基于当前现存的计算操作系统平台,通过部署网格服务来构建面向应用层的网格GIS软件来实现信息的共享和互操作。
1.三层网格GIS结构
南京师范大学任建武提出数据资源层、网格服务层和应用层三个层次的网格GIS逻辑架构。他认为GridGIS是空间信息获取、处理、共享的基本技术框架。建立异构分布式、智能化的空间信息网格计算环境,就是实现异构网络环境下的跨平台计算,支持分布式用户的并发请求并实现最优资源调度,实现网络环境下的多级分布式协同工作机制。三层网格GIS逻辑架构”如图14-8所示,分为三个基本层次:数据资源层、网格服务层和应用层。
网格服务层实现与数据资源无关和应用无关的功能。网格服务层包括一系列协议和分布式计算软件,其屏蔽网格资源层中计算机的分布、异构特性,向数据网格应用层提供用户编程接口和相应的环境,提供更为专业化的服务和组件用于不同类型的网格数据应用,以支持网格应用的开发。
应用层是体现用户需求的软件系统。在网格服务层提供的中间件平台的基础上,用户利用提供的接口和服务完成网格应用的开发。应用程序集成层对低层资源的调用不再需要关心访问的实现机制。
2.五层网格GIS结构
网格GIS体系结构实际上是借用了网格的思想,在底层借助于OGSA-DAI将各种软硬件资源(包括GIS资源)进行整合,借助于GlobusToolkit(GT),在其应用层开发应用组件以调用网格OGSA服务。如图14-9所示(蔡正林,2006)。
如图14-9五层网格GIS结构
(1)最底层为硬件及资源层,此处有本机(集群)的硬件资源和软件资源(包括GIS资源),依托操作系统实现本地的GIS资源管理,并向GT4环境注册信息;
(3)第三层主要架设OGSA-DAI和DB2II完成各种数据库资源的整合,将多个集群或本地机器的GIS空间数据库加以集成,实现作业的提交、监视及删除等工作;
(4)第四层是GlobusTookit中的应用层部分,程序员需在此写软件服务接口、服务的实现和部署描述器,从而实现了网格环境中的GIS应用,对于下层资源及GIS服务的API调用,用户根据需要驱动软件调用相应的API函数,实现所需的服务。
(5)第五层为客户的浏览器,用户需根据需要下载相应的插件,当用户有GIS服务请求时只需以HTTP形式发送,经由XML,SOAP,WSDL层层包裹,去驱动GT为其服务,从而实现了GRIDGIS的应用。三.网格GIS实现技术
网格GIS的实现需要包括中间件技术、GML互操作语言、WebServices技术以及分布式计算技术等关键技术的支持。其中,分布式计算技术在第二节分布式地理信息系统部分进行了介绍。
1.中间件技术
在不断发展的网络环境中,无论是硬件平台还是软件平台,都不可能统一。大型应用软件通常要求在软硬件各不相同的分布式网络上运行。为了更好地开发和应用能够在异构平台上运行的应用软件,迫切需要一种基于标准的、独立于计算机硬件以及操作系统的开发和运行环境。中间件技术就起这样的作用,它是处于操作系统和应用程序之间的软件。人们在使用中间件时,往往是把一组中间件集成在一起,构成一个平台(包括开发平台和运行平台),但在这组中间件中必须要有一个通信中间件,因此可以比较形象地把中间件可以定义为:平台+通信。这个定义也限定了只有在分布式系统中,才能称为中间件。
在基于分布式的网格环境中,中间件可以分为以下三种类型:基于RPC的中间件、面向消息的中间件和基于对象请求/代理的中间件:
(1)基于RPC(RemoteProcedureCall)的中间件。RPC是一种对传统程序设计语言过程调用的扩展,被调用的对象可以存在于分布式系统的任何物理平台上。
(2)面向消息的中间件。是指支持基于消息传递的进程间的通讯方式,这类中间件既适合于客户/服务器模型,也适合于对等网络模型,一般比基于RPC形式的中间件会具有更高的运行效率。
(3)基于对象请求/代理的中间件。此类中间件是面向对象应用程序的首选,消息通过对象请求代理进行路由选择,其同时处理集成和安全方面的问题。网格GIS要求实现跨平台的GIS的互操作,跨平台的GIS要求GIS功能能够跨平台,即在异构网络环境下实现GIS的分布式操作,这就要求中间件平台的支持,只有这样才有可能实现分布式GIS,在统一网格GIS接口下,不同分布式GIS可以实现跨平台的GIS的互操作。同样,无论是GIS系统中模块之间的互通、互操作,还是应用构件的搭建与跨环境的部署和管理,都需要中间件的支撑。从技术上看,中间件更有效的保证GIS系统的可靠性、可扩展性、可管理性、数据一致性和应用安全性等。其中两种比较重要的网格中间件—Globus网格中间件和ProActive网格中间件。
2.GML互操作语言
在构建网格GIS的体系结构中,将存在大量的中间件(Middleware)及智能主体(Agent)。那么,在异构系统之间,系统内中间件与中间件之间,中间件与智能体之间,智能体与智能体之间以及网格服务与应用程序之间将如何进行空间信息描述、共享、交互、存储、传输等,是GML(GeographyMarkupLanguage,地理标识语言)作用与应用所在。
GML(GeographyMarkupLanguage)是XML语言在空间地理信息领域的扩展,它是由OpenGIS联盟于2000年5月最先发布的,其目的在于描述、说明地理信息,可以很容易地表现空间信息的结构和内容,并能实现开放式的空间信息交换和管理。目前,GML已经成为业界公认的空间信息格式标准。由刚开始使用的DTD到后续版本使用的XMLSchema语法和机制,GML提供了一个开放的、用于定义空间地理数据的框架。同时允许用户自己开发出基于遵循GML规范的子集,在这个基础上,又由于其开放式、跨平台的特性使得各个厂商用户能够遵循同一个规范,使相互之间进行空间地理数据的交换成为可能,用户也可以有自己的数据定义格式,但是在进行数据交换时用GML作为一个媒介来实现数据的传输和交换。
和HTML相比,GML天生就非常适合用于存储和传输空间地理特征的属性信息和几何信息。它在网络空间地理信息系统应用领域的地位就如一个深层驱动机,它能将地理信息系统的数据核心——地理特征,采用XML的文本方式进行描述,并能对网络地理信息系统的各功能部件之间的空间信息的传输、通信提供强有力的技术支撑。可以把它看作用于在互联网间资源的共享和交换的地理信息编码;新的地理信息词汇表达方式;新的应用于地理信息服务的通信组件。
3.WebServices技术
WebServices的体系结构是基于Web服务提供者、Web服务请求者、Web服务中介者三个角色和发布、发现、绑定三个动作构建的。简单来说,Web服务提供者就是Web服务的拥有者,等待为其它服务和用户提供自己的功能;Web服务请求者就是Web服务功能的使用者,使用SOAP(SimpleObjectAccessProtocol)消息向Web服务提供者发送调用信息得到其服务。Web服务中介者就是将一个Web服务请求者和合适的提供者联系在一起的管理者,一般是UDDI(UniversalDescription,DiscoveryandIntegration)。三个角色是根据逻辑关系划分的,一个实际的Web服务既可以扮演Web服务提供者的角色,也可以扮演Web服务请求者的角色,还可以两种角色都扮演。WebServices体系结构图中包含三种基本操作,三种角色之间的关系可简单地表示如图14-10所示(潘显映,2007)。