论文部分内容阅读
地理信息系统(GIS)软件的体系结构历经了单机单用户全封闭结构的时代、多机多用户引入商用数据库管理属性数据的时代和引入Internet技术、向以数据为中心过渡、完成组件化技术改造的时代,目前正在进入向网格GIS发展的交替阶段。以网格GIS为代表的新一代地理信息系统,已然成为业界广泛关注的研究热点和技术前沿。实现网格GIS仍面临诸多挑战,其中首要的关键技术问题是网格空间计算任务的处理:也即需要设计一种实现机制,对用户提交的网格空间计算任务进行高效、可靠的分布处理,获取可靠的计算结果,从而提高空间信息共享与协同处理能力。本文的工作正是围绕这一问题来进行展开的。
目前的网格空间计算任务处理的研究与实践存在若干问题,尤其是理论基础薄弱、实际工作较少、可行性不足。为了解决这些问题,依托国家高技术研究发展计划863重点课题《网格地理信息系统软件及其重大应用》(2007AA120501—2007AA120504),本文系统地提出网格环境下空间计算任务处理方法MGGCTP(Methodology of Grid—based Geospatial Computational Task Processing)。在分析该方法组成和对其关键技术进行算法设计的基础上,介绍了基于MGGCTP的网格系统实现Nebula,并结合实验数据的分析,对网格空间计算任务处理技术的优势、应用场景及发展方向进行了探讨。
网格环境下空间计算任务处理方法包含两方面的含义:一是空间计算任务所依赖的网格框架与服务环境的设计;二是空间计算任务在网格中的表达、解释、分发与结果回收技术。根据MGGCTP内涵的分析,可定义出其五类关键技术:空间网格节点架构、空间网格资源目录、网格空间计算任务描述语言、全局空闻查询解析与空间序列执行管理。其中,空间网格节点架构定义了空间计算任务处理所依赖的网格框架;空间网格资源目录记录了空间计算任务处理所需网格服务环境的元信息;空间计算任务描述语言规定了网格空间计算任务的表达形式;全局空间查询解析意即空间计算任务在网格环境下的解释与分解机制,由于用户组织的网格空间计算任务是全局性的,需要将其拆分为分布的空间序列,以便于分散到各网格节点执行;空间序列执行管理则表达了分布式空间序列的分发、结果回收和执行控制机制。这五类关键技术作为MGGCTP的支撑构件,负责协同完成网格空间计算任务的处理流程。
在空间网格节点架构方面,现有工作没有从空间应用的角度进行节点架构的设计,因而无法较好地适应于空间数据的网格共享与计算需求。为此,本文在分析空间业务需求的基础上,通过融合传统网格与P2P(Peer—to—Peer)节点架构,提出了一种基于域的空间网格节点架构。在该空间网格架构中,网格系统由一系列“域”组成,“域”被定义为按一定的空间原则(譬如行政区属)划分的节点集合;“域”内节点可区分为域管理器与资源节点两种类型,网格用户可通过域管理器发起跨域的空间计算请求。进一步地,将基于域的空间网格节点架构与相关工作从通信代价、更新复杂度、可靠性和空间业务需求匹配度等四个方面进行了定量和定性比较。综合而言,MGGCTP网格节点架构最适应于网格空间计算任务处理,与空间业务需求相匹配,可靠性好,更新复杂度和通信代价也较低。
空间网格资源目录用于记录网格内域、节点、服务和空间数据相关的元信息,并与空间网格节点架构高度相关,因而需要发展与基于域的空间网格节点架构相适应的空间网格资源目录。为此,本文提出了一种基于关系模型的空间网格资源目录组织方法。设计了其三个主要组成模块:目录组织、外部调用接口与目录同步,给出了各模块实现的类与接口的详细定义。进一步地,与同类工作GlobusMDS(Monitoring and Discovery System)、OpenLDAP等进行了比较和分析。结论是在查询效率和对空间计算的支持上,基于关系模型的空间网格资源目录均优于同类工作,同时它还具有良好的鲁棒性。
在网格空间计算任务描述语言方面,现有工作多为基于操作、面向过程模式的,这种方式给用户带来了使用难度,也使得软件本身具有一定的不友好性,解决的途径是利用具有面向问题特点、更接近自然表达的空间查询语言来组织网格空间计算任务。为此,本文发展了一种面向问题的网格空间计算任务描述语言GGQL(Grid Geospatial Query Language)。给出了GGQL的BNF描述,扩展了常用的空间操作函数与空间操作符。进一步地,设计了GGQL的编译实现机制,实现了网格空间计算任务描述语言的编译器软件GGQLParser。该软件能够将字符串形式的网格空间计算任务语句编译为机器可理解的、结构良好的空间查询树,以便于后续分布式空间序列的优化生成。
全局空间查询解析是将全局性网格空间计算任务解译、优化为分布式空间序列的过程。现有的分布式查询优化算法并未考虑空间数据和空间查询的特点,因而无法较好地适用于全局空间查询的解析处理。为此,本文提出了一种基于混合连接策略的全局空间查询解析方法。首先,为了规范化表达分布式空间序列,设计了其描述语言——等价分布程序(Equivalence Distributed Program,EDP),定义了EDP语句规范和程序结构。其次,在融合直接连接与半连接两种优化策略的基础上,发展了一种新的用于全局空间查询解析的算法HHOA(HybridHeuristic Optimization Algorithm),它能够将用户提交的全局空间计算任务,转换为优化的、可被空间序列执行管理引擎所运行的等价分布程序。进一步地,对HHOA算法的正确性与有效性进行了形式化的证明和实验验证:利用关系代数的等价变换规则,证明了HHOA算法下全局空间查询语句与对应分布式空间序列(以EDP描述)的等价性;同时也通过实验表明HHOA算法在效率上较大程度优于传统解析算法MST和SSD—1。
在空间序列执行管理方面,现有工作多利用集中控制的方式进行任务分配和执行管理,这种模式较容易引起网络拥塞和“单点失效”,也未能充分利用网格内丰富的计算资源。为此,本文发展了一种支持任务分发动态迁移的分布式空间序列执行管理机制。在结构上,MGGCTP空间序列执行引擎由查询处理器、节点通信处理器和数据传输处理器三个主要模块构成。在管理策略上,引擎将分布式空间序列划分为若干个事务阶段,每个阶段指派不同的管理节点负责任务的调度与分发;同时,也设计了合理的任务补偿机制,保障引擎具有良好的自适应性。进一步地,通过定量比较和分析得出,MGGCTP分布式执行引擎相较于同类工作,具有通信代价小、可靠性好的特点,有助于避免集中控制模式所带来的弊端。
最后,本文系统地对MGGCTP系列关键技术进行了实践,实现了网格空间计算任务处理系统原型——Nebula。通过对Nebula的测试与实验数据的分析得出结论:MGGCTP方法适应于网格环境下的海量空间信息的协同处理;能够有效聚合分散的空间计算能力;适应空间计算任务,尤其是选择率高的空间计算任务的处理;同时能够满足网格动态变化的特点,不受单点失效影响,可靠性高。