在20世纪90年代,一个新的概念计算方法被网格计算的领军人物Ian Foster引入,他认为网格计算已经作为一个重要的新领域而出现,与传统的分布式计算不同,网格计算致力于大规模的资源共享、创新型应用以及一些的高性能应用。在过去的几年里,地理空间行业的研究人员一直在努力研究网格计算对于空间数据基础设施(SDI)的潜能。利用网格的强大计算能力,能否有可能在处理空间领域的任务时有所突破呢?
空间数据基础设施的数据检索和处理的标准及规范,是否同并行的网格计算以及存储基础设施相兼容?尽管将空间数据基础设施服务和网格基础设施相结合是一种必然的趋势,仍然有一些概念上的分歧需要在这个过程中得以解决。这篇文章对其中的一些分歧进行了讨论,同时介绍了由德国研究教育部资助的研究项目GDI-Grid的概况。在访问地球观测数据清单或者国内外数据中心的数据库时,传统的空间数据基础设施的资源就显得非常有限 。在处理大型数据集时,这种情况尤甚。
例如,计算一个陆生植被指数需要数以万亿字节地图代数数据,而本地工作站一般是无法完成这样的任务的。还有一些其他处理任务也会耗尽传统空间基础设施的资源,因为它们的算法复杂,数据量又大,例如气候模型的生成或精确模拟城市中的噪声传播。
网格基础设施给我们展示了数以千计的CPU的处理能力和存储大量数据的能力,这些性能使其成为在可接受的时间范围内、具有强可靠性的处理任务的理想平台。潜在的优势还包括:具有在所谓的虚拟组织成员中共享存储和计算资源的手段,因此降低硬件获取手段的初始成本;对存储和计算资源的增长需求可以进行安全、可靠的事务处理。
空间数据基础设施和网格基础设施的区别
由于传统的SDI和网格基础设施的概念相去甚远,需要一个基于网格的SDI实际安装(将传统的OGC标准SDI服务连接到一个网格基础设施的后端)来解决多种不兼容。尤其是服务描述、服务接口、服务状态和安全机制,都采用了不同的方法。
服务描述
网格服务总是使用WSDL(网络服务描述语言)来描述服务方式和输入参数。另一方面,对于不同的操作(例如描述要素类型、描述Coverage等),OGC网络服务使用同特定服务元数据一样的功能文件来描述。WSDL文件和功能文件差异很大并且不能够相互转换。为了在网格基础设施内部署OGC网络服务,必须要手动创建一个WSDL描述,因为目前还没有一种能够自动创建这种描述的方法。
服务接口
对OGC网络服务支持的一系列操作在OGC服务规范文件中定义,可以通过不同的方式来调用这些操作,但是首选的方式是通过HTTP-GET获取键值对,以及请求在XML文件中编码并通过HTTP-POST传送。此外,大多数最近的服务规范包括指示,使用SOAP来调用操作。网格服务通常是通过一个网格中间件来解决的。举例来说,Globus Toolkit 4 使用SOAP来传递服务呼叫。那些不支持SOAP或者没有WSDL描述的服务可能无法集成在一个网格工作流中。
服务状态
除了使用SOAP进行通讯和使用WSDL来描述外,一些网格服务还实现了由结构化信息标准促进组织(OASIS)开发的网络服务资源框架(WSRF)。传统的网络服务(即非网格服务)以及OGC网络服务都是无状态的,WSRF服务之间在调用的时候能管理各自的状态信息。这些信息当作资源存储在服务后端。每一个服务端点有都有自己的统一资源标识符(URI),这些标识符可以用来访问存储信息。对于之后的计算来说,存储计算中间结果是必须的,这在状态化服务中是很常见的。
OGC规范(除了网络处理服务WPS)还没有任何关于服务状态的说明。WPS规范的一个可选部分引入了用于在外部资源上存储运行结果的请求参数,但是由于该部分规范是可选的,因此当前还没有得到广泛的支持。
安全机制
OGC规范对于涉及安全的问题仍然没有任何表述说明,通常使用安全的HTTP(HTTPS)来确保传输协议的安全性。此外,对于一种服务中如何鉴定不同的用户还没有规定。因此,传统空间数据基础设施的安全机制是根据特定的项目而建立的,不同的供应商通过不同的方式应对安全问题。对于网格基础设施,这样低层次的安全防范是不够的。
安全机制是至关重要的,有了安全机制,每个资源就能允许特定的用户访问,否则网格基础设施的大规模计算和存储能力很可能被滥用。所以,安全是网格基础设施的一个非常重要的因素,如果在网格基础设施中使用OGC网络服务,这些服务必须要提供用户认证手段和网格资源通信加密功能。
案例研究:GDI-Grid项目
GDI-Grid项目(GDI是德国空间数据基础设施的缩写)是由德国研究教育部资助的一项国家研究项目,该项的目的是将标准化的空间基础设施组件与网格基础设施结合,同时解决上述的兼容性问题。结合这些技术的目的有两个:
首先,最重要的一点是它能够帮助用户使用标准的方式访问高级存储器和网格基础设施的计算资源。此外,它使得网格技术的用户能够将地理空间服务技术融入到网格工作流中,并包含一系列的网格服务调用。
[page]
GDI-Grid的目标
该项目的一个目标是:适应空间数据基础设施和网格基础设施的构建基础,并实现两者之间的通讯。通过将地理空间社区的成员同网格社区的成员联合起来,将这两部分进行匹配需要从两个角度来考虑:考察如何扩展网格组件来解决OGC Web服务和辨认方式,以及如何通过修改的OGC Web服务使他们能与网格资源通讯。
进一步需要处理的问题包括创建和确认自动化的网格工作流,以及使用网格计算资源形成数据处理的方法。对不同来源的数据进行融合,概括并丰富数据是通过OGC标准服务接口实施访问格网资源的一些处理步骤。
下面有三个案例来展示该研究成果的可能用途。这些案例中的任务也能使用传统的空间基础设施来完成,这里我们只是为了充分利用基于空间基础设施的网格计算的优势。
场景1:噪声传播
计算噪音传播是城市规划中一个很重要的手段,欧盟指令2002/49/EC中指出,欧洲国家建设高速公路或者铁路时,噪声传播计算是必要要进行的。该方案旨在将现有的生成噪音传播仿真的工作流转移到网格中。对于某些城市来说,由于受多种因素的影响,噪声传播是非常复杂的。
由于数据量大,并且涉及到的很多算法,详细的声学模拟计算速度需要提升。在GDI-Grid项目中提供了加速该任务的方法,将研究区域切成一个瓦片集。这些瓦片是单独处理的,从而将计算也隔离开来,这样就能同时利用多个计算资源。因此,工作流需要改进,包括必要的预处理和后期处理步骤,例如分割和合并数据集等。除了驱动网格的服务,还需要创建一个对应的用户接口。
场景2:洪水仿真
汉堡应用技术大学在网格环境中采用了一个现有的洪水预测生产模型。洪水预报模型可以用来测定洪水发生时的水浸范围,地方政府可以使用该模型对可能的损失做出预测,并且给危险地区的居民提供预警措施。在城市地区预测洪水时,不仅要考虑到基本地形,还应包括详细的3D城市模型。因此为了更精确的进行模拟,需要非常高分辨率的空间数据集,这样就极大的增加了需要处理的数据量。在该项目中,开发了一个精密的并行计算装置,可以提高洪水预测模型生成的速度。
场景3:紧急路径选择
基于高质量的基础数据的路径算法是十分复杂的。在一个典型的灾害管理案例中,在发生状况时,危险区域是难以确定的,这就大大增加了逃生路径的复杂程度。有毒气体或火势的蔓延也许会导致交通要道瘫痪,因此疏散计划不能耗时太长。在这种情形下,要确保疏散计划及时有效,那么加快路径算法的计算速度是十分必要的。要结合实时传感器的测量和类似前文所述的洪水预报模型的仿真,此外,还有不断增加的路径算法的复杂度和相关数据的数量。这样的案例中,网格计算也许是一种可以满足额外计算资源的方案。
但我们必须认识到,速度的提升伴随着这样的问题:由于大多数用户在分享相同的网格资源,所以实际上实时应用程序仍没有使用网格技术。对于一个实时可靠的应用程序,还将开发新的算法来确保服务的质量。
经验和教训
通过将网格基础设施的存储器和计算后端(拥有一个遵循OGC服务规范前端的网格基础设施)进行绑定,SDI用户能够获得由网格所提供的强大的存储和处理功能。由于GDI-Grid提供了保持传统服务接口的功能,用户操作的复杂度保持在相对较低的水平。像WFS和WCS这样的OGC标准数据访问服务,因为网格基础设施提供的存储资源而受益,数据处理服务WPS也通过网格提供的强大计算资源受益。对于大的数据集来说,网格技术的优势非常明显,但是网格技术的使用需要很高的成本。身份验证和网格安全基础设施(GSI)的整合,延缓了请求响应的周期。
在处理相当小的数据集时,这个效果十分明显,尤其是在没有并行算法的情况下。由于有很多问题需要解决,处理的并行化很复杂。过程本身是否能够被并行化?如果不能,那么是否可以推断,在处理之后才进行空间数据分析和结果处理的并行化呢?
在当前网格环境中无法实现性能估计,因为所有的处理工作已经根据当前工作量被部署在了网格中间件当中。在某些情况下,处理工作在开始前会在堆栈中驻留几个小时。这也阻碍了与传感器的实时数据整合。无论如何,在当前大规模数据和高复杂处理程序占主流的形势下,网格基础设施还是比标准的计算平台有更大的优势。
速度成本盈亏函数的临界点,需要在案例研究的基础上确定。此外,计算临界点的方法还不是很确定,根据处理器的数目、并行计算平台以及作为函数输入数据的参数的大小不同而不同,一般来说是线性的,就如指数函数和对数函数一样。
上面所述的这些缺点,尤其是处理逻辑复杂并行化的需求,还没有说明一个事实:大部分计算资源的分布式计算都能显著地减少计算时间。但是,这不是网格带来的计算速度的提高。通过使用由本地的服务器集群提供的分布式计算也可以达到同样的效果。
当然,网格计算具有本地服务器集群所不具备的一些特征,其最大的区别在于,网格能够在需求增加时提供非常多的计算资源。
如果给定程序能够被分解为可以独立执行的多个子程序,网格基础设施有可能实现同时执行多个子程序,从而大大的加快了整个进程。而服务器集群在同时执行多个子程序时是有个数上限的。网格基础设施的尺度优势也应用到了存储资源方面。而且网格基础设施提供了更高的安全级别,如果没有安全防范,网格计算根本不可能实现,因此网格基础设施从本质上支持复杂的安全机制。在本地端的服务器集群上建立相对较高级别的安全机制需要花费大量的时间和精力。(编译/徐瑞娜 洪敏)
{{item.content}}