网格计算 — 下一代分布式计算
过去有两种主要的需求极大地增长了网格计算的价值。不对称经济使得那些 IT 预算有限的公司只能更加充分地利用现有的计算资产,并通过智能地将有限的资源分配给适当的业务应用程序,才能更加灵活地对迅速变化的市场作出快速的响应。在本文中,作者 Matt Haynos 对网格计算和诸如 P2P(端到端)、CORBA、集群计算和分布式计算环境(DCE)之类的分布式计算系统之间的异同进行了简要的分析
DCE 如何?
顾名思义,分布式计算环境(DCE)与其说是一个架构,还不如说是一个环境,二者之间有一个重要的区别。DCE 可以定义为一个设计用来促进分布式计算的紧密集成的技术集;网格计算(以 OGSA 的格式)不仅仅是一个设计用来封装分布式计算众多复杂机制的架构。
正如我们在对 CORBA 的介绍中看到的一样,在 DCE 中我们也可以看到紧耦合与松耦合方法之间的区别。DCE 技术包括安全性技术(DCE ACL 或 Access Control Lists)、对象和组件技术(DCE 分布式对象)、文件系统(DFS 或 Distributed File System)以及一个目录定义(DCE 注册项) —— 实际上,OGSA 可以在很多 DCE 技术基础上工作。
例如,网格安全协议可以采用 GSI(Grid Security Infrastructure)格式,也可以采用适当的 Web 服务标准格式,可以用来与 DCE ACL 进行交互。很多网格应用程序都利用底层的 DFS(或其前辈 AFS,Andrew File System)。核心网格注册服务可以利用 DCE 注册项。
尽管这些技术大部分都被认为是服务,但是 DCE 与其说是一个面向服务的架构,还不如一组技术的集合。它对于 SOA 环境中构建应用程序的支持是有限的,因为 DCE 主要是通过采用一些块来构建分布式应用程序,但是并不需要去构建分布式的面向服务的应用程序。
网格计算与 DCE 之间另外一点重要的区别也与 CORBA 有关:OGSA 网格计算定义了以下 3 类服务:
- 网格核心服务
- 网格数据服务
- 网格程序执行服务
CORBA、DCE 和 Java RMI 并不会特别关注数据(DFS 之外的数据)或程序执行服务,因为这些技术都是远程过程调用(RPC)系统所必需的。(RPC 是一种协议,应用程序可以使用这种协议向网络中另外一台机器上的一个程序请求提供服务,而无需理解网络的详细信息。这是一个同步 操作,需要请求程序一直挂起等待远程过程返回结果,除非您使用了共享相同地址空间的轻量级进程(lightweight processe)。在网格核心服务(以及 WSRF)中定义和实现的很多服务都与 DCE 和 CORBA 中的基本服务类似。但是数据和程序执行服务是网格计算所特有的。
最后,我们对网格计算和 CORBA 与 Web 服务标准的关系所总结的区别也同样适用于 DCE。同样,我们在 Web 服务中所看到的很多改进都得益于使用诸如 DCE 和 CORBA 之类优秀分布式系统的经验。
最后来看一下 P2P
诸如 KaZaA —— 由于一些版权问题,它总是以大字标题的形式出现 —— 之类的应用程序是最近吸引人们对点对点(P2P)计算的注意的主要原因。不过这种技术本身展示了一些有趣的分布式特性,如果在网格环境中使用这些特性,很多都会非常有用。
首先,P2P 系统的特点是缺少集中管理点;这使它非常适合于提供匿名服务,或者提供一些反跟踪保护机制。另一方面,网格环境通常都有某种形式的集中管理和安全性(例如,资源管理和工作负载调度)。
P2P 环境中这种没有集中点的特性引发了两个重要结果:
- P2P 系统的可扩展性通常都比网格计算系统好。即使我们要在响应能力的控制和分布之间达成某种平衡时,网格计算系统也天生不如 P2P 系统的可扩展性好。
- P2P 系统容忍单点失效的能力通常比网格计算系统更好。尽管网格比紧耦合的分布式系统的弹性更好,但是网格不可避免地要包含一些可能成为单点故障的关键元素。
这意味着构建网格计算系统的关键是在分散与管理能力之间达成某种平衡 —— 这可不是件简单的事情。
另外,网格计算的一个重要特性是资源都是动态的;在 P2P 系统中,资源的动态性天生就比网格计算系统更好,资源出现和消失的变化比网格中更快。对于 P2P 和网格计算系统来说,分布式资源的利用率是一个主要目标。给定一定的计算资源,这两种系统都可以尽可能地对这些资源进行使用。
这两个系统之间最后一点区别是标准:与网格领域中的标准相比,在 P2P 中通常缺少标准。另外,有了诸如 Global Grid Forum 之类的实体,网格领域就有了一种机制来重新定义现有的标准并建立新标准。
基于网格和 P2P 系统提供的互补优点,我们可以期望这两种方法最终会殊途同归,尤其是当网格达到 “网格间” 的开发阶段时,届时这两种技术都将成为一些公共工具。
充分利用数据
我们已经介绍了网格计算的组件和起源,并解释了它在基于 Web 服务的企业级应用程序中的重要性,并对网格计算与其他 4 种主要分布式计算系统之间的异同进行了简要的分析。
几乎每个组织现在都有很多广泛分布的未用计算能力。虚拟化 —— 网格计算背后的驱动力 —— 可以帮助我们利用这些尚未使用的计算能力,IBM 参与虚拟内存、虚拟存储和虚拟处理器技术已经有很长的时间了。但是它并不仅仅是为客户创建这些技术。
IBM 的 intraGrid 是基于 Globus 的,这是一个研究和开发网格,让 IBM 可以充分利用自己全球的资产进行研究,另外它还为公司内部的开发人员提供了机会来理解企业级规模的网格中的实际问题和管理复杂性。IBM 在公司中还使用了很多个组织网格,包括设计中心为随需应变业务所使用的网格,这使得 IBM 可以像一个实体一样对设计中心进行管理。
- 本文关键词:

