网格计算如何工作

在一个基本的网格计算系统中,每台计算机都可以访问属于该网络的其他每台计算机的资源。
十万个为什么

一位研究蛋白质的科学家登录到一台计算机,并利用整个计算机网络来分析数据。一位商人通过个人数字助理(PDA)访问公司的网络,以预测某只股票的未来。一名陆军官员访问并协调三个不同军事网络上的计算机资源,以制定作战策略。所有这些场景都有一个共同点:它们都依赖于一个称为网格计算的概念。

在其最基本的层面上,网格计算是一种计算机网络,其中每台计算机的资源都与系统中的其他每台计算机共享。处理能力、内存和数据存储都是授权用户可以利用来执行特定任务的公共资源。一个网格计算系统可以像运行相同操作系统的类似计算机的集合一样简单,也可以像由您能想到的每种计算机平台组成的互联系统一样复杂。

广告

网格计算的概念并不新鲜。它是一种特殊类型的分布式计算。在分布式计算中,同一网络内的不同计算机共享一个或多个资源。在理想的网格计算系统中,所有资源都共享,将计算机网络转变为一台强大的超级计算机。如果用户界面正确,访问网格计算系统将与访问本地计算机资源没有区别。每台授权的计算机都将拥有巨大的处理能力和存储容量。

尽管这个概念并不新鲜,但它尚未完善。计算机科学家、程序员和工程师仍在努力创建、建立和实施标准和协议。目前,许多现有的网格计算机系统依赖于专有软件和工具。一旦人们就一套可靠的标准和协议达成一致,组织将更容易、更高效地采用网格计算模型。

那么,网格计算系统到底是什么?请继续阅读以了解。

广告

网格计算概述

网格计算系统基于资源池的原则运作。假设你和几个朋友决定去露营。你有一顶大帐篷,所以你自愿与其他人分享。你的一位朋友提出带食物,另一位朋友说他会开他的SUV载大家去。一旦旅行开始,你们三个人会分享你们的知识和技能,让旅行变得有趣和舒适。如果你独自旅行,你将需要更多时间来准备所需的资源,而且你可能在旅行中需要付出更多努力。

网格计算系统也采用了相同的概念:将负载分散到多台计算机上,以更高效、更快速地完成任务。在深入探讨之前,让我们快速了解一下计算机的资源:

广告

  • 中央处理器 (CPU):CPU是一种微处理器,执行数学运算并将数据引导到不同的内存位置。计算机可以拥有多个CPU。
  • 内存:通常,计算机的内存是一种临时电子存储。内存将相关数据保存在微处理器附近以便快速访问。如果没有内存,微处理器将不得不从更永久的存储设备(如硬盘驱动器)中搜索和检索数据。
  • 存储:在网格计算术语中,存储指的是永久数据存储设备,如硬盘驱动器或数据库。

通常,计算机只能在其自身资源的限制下运行。它完成操作的速度或可以存储的信息量都有上限。大多数计算机都是可升级的,这意味着可以为单个计算机增加更多功能或容量,但这仍然只是性能的增量提升。

网格计算系统以一种方式将计算机资源连接起来,使用户能够使用一台计算机访问和利用系统中所有计算机的集合能力。对于个人用户来说,就好像用户的计算机变成了一台超级计算机。

如果你阅读有关网格计算的报告,你会遇到许多不常见的术语和行话。它们都意味着什么?请继续阅读以了解。

广告

网格计算词汇

如果你不熟悉行话,阅读有关网格计算的资料可能会非常令人困惑。以下是你在讨论网格计算时可能遇到的一些术语的快速概述:

  • 集群:一组共享相同资源集的网络化计算机
  • 可扩展标记语言 (XML):一种描述其他数据并可被计算机读取的计算机语言。控制节点(节点是连接到网络并能传输、接收和重新路由数据的任何设备)依赖于像Web 服务描述语言 (WSDL) 这样的XML语言。这些语言中的信息告诉控制节点如何处理数据和应用程序。
  • 集线器:网络中各种设备相互连接的点。
  • 集成开发环境 (IDE):计算机程序员为平台创建应用程序所需的工具和设施。应用程序测试环境的术语是沙盒
  • 互操作性:软件在完全不同的环境中运行的能力。例如,计算机网络可能包括PC和Macintosh计算机。如果没有可互操作的软件,这些计算机将无法协同工作,因为它们的操作系统和架构不同。
  • 开放标准:一种创建公开可用标准的技术。与可能专属某个实体的专有标准不同,任何人都可以采用和使用开放标准。基于相同开放标准的应用程序比基于不同专有标准的应用程序更容易集成。
  • 并行处理:使用多个CPU来解决单个计算问题。这与共享计算密切相关,共享计算利用网络上未使用的资源来完成任务。
  • 平台:开发人员可以在其上创建应用程序的基础。平台可以是操作系统、计算机架构、计算机语言,甚至是网站
  • 服务器农场:用于执行单个服务器无法完成的复杂任务的服务器集群。
  • 服务器虚拟化:一种软件应用程序将单个物理服务器划分为多个独立服务器平台(即虚拟服务器)的技术。每个虚拟服务器都可以独立于其他虚拟服务器运行自己的操作系统。这些操作系统不必是相同的系统——换句话说,一台机器可以有一个作为Linux服务器运行的虚拟服务器,另一个运行Windows平台。这之所以可行,是因为大多数时候,服务器并未接近满负荷运行。网格计算系统需要大量服务器来处理各种任务,而虚拟服务器有助于降低硬件成本。
  • 服务:在网格计算中,服务是允许计算机通过网络相互交互的任何软件系统。
  • 简单对象访问协议 (SOAP):一套用于在网络上交换用XML编写的消息的规则。微软负责开发该协议。
  • 状态:在IT领域,状态是指任何形式的持久性数据。它是即使在应用程序中使用后仍以某种形式继续存在的信息。例如,当你在Amazon.com购物车中选择书籍时,这些信息是有状态的——当你浏览网站的其他区域时,亚马逊会跟踪你的选择。有状态的服务使得创建具有多个步骤但依赖相同核心数据的应用程序成为可能。
  • 瞬态:在不影响其他操作的情况下,在网络上激活或停用服务的能力。

那么,网格计算系统究竟如何将计算机资源连接起来?请在下一节中找到答案。

广告

共享资源

一些公司和组织正在合作制定一套称为协议的标准化规则,以便更容易地建立网格计算环境。现在就可以创建网格计算系统,并且已经存在一些。但目前缺少的是一个商定的方法。这意味着两个不同的网格计算系统可能不兼容,因为每个系统都使用一套独特的协议和工具。

通常,一个网格计算系统需要:

广告

  • 至少一台计算机,通常是服务器,负责处理系统的所有管理职责。 许多人将这种计算机称为控制节点。其他应用程序和Web服务器(物理和虚拟)为系统提供特定服务。
  • 运行特殊网格计算网络软件的计算机网络。 这些计算机既充当用户的接口点,又充当系统将用于不同应用程序的资源。网格计算系统可以包括运行相同操作系统的几台同类型计算机(称为同构系统),也可以是运行各种操作系统的不同计算机的混杂组合(异构系统)。该网络可以是硬连线系统(每台计算机通过物理线缆连接到系统),也可以是计算机通过互联网相互连接的开放系统。
  • 一组称为中间件的计算机软件。 中间件的目的是允许不同的计算机在整个机器网络上运行进程或应用程序。中间件是网格计算系统的主力。没有它,系统之间的通信将是不可能的。与一般软件一样,中间件没有单一的格式。

如果中间件是网格计算系统的主力,那么控制节点就是调度员。控制节点必须对网络中的任务进行优先级排序和调度。控制节点的任务是确定每个任务可以访问哪些资源。控制节点还必须监控系统,确保它不会过载。同样重要的是,连接到网络的每个用户都不会遇到其计算机性能下降的问题。网格计算系统应该利用未使用的计算机资源,同时不影响其他所有操作。

网格计算应用的潜力是无限的,前提是所有人都同意标准化协议和工具。这是因为如果没有标准格式,第三方开发者——即希望在网格计算平台上创建应用程序的独立程序员——往往无法创建可在不同系统上运行的应用程序。虽然可以为不同系统创建相同应用程序的不同版本,但这很耗时,许多开发者不想重复同样的工作。一套标准化的协议意味着开发者在创建应用程序时可以专注于一种格式。

人们对网格计算有哪些批评和担忧?请继续阅读以了解。

广告

网格计算的担忧

每当你将两台或多台计算机连接在一起时,你都必须准备好应对某些问题。你如何保护个人信息隐私?你如何保护系统免受恶意黑客的攻击?你如何控制谁可以访问系统并使用其资源?你如何确保用户不会占用所有系统资源

这个问题的简短答案是中间件。网格计算系统本身并没有内置能回答这些问题的功能。网格计算系统的新兴协议旨在使开发人员更容易创建应用程序,并促进计算机之间的通信。

广告

计算机工程师用来保护数据最普遍的技术是加密。加密数据就是对其进行编码,使得只有拥有相应密钥的人才能解码并访问数据。具有讽刺意味的是,黑客完全可能创建一个网格计算系统,专门用于破解加密信息。由于加密技术使用复杂的方法编码数据,一台普通计算机需要数年才能破解一个代码(这通常涉及找到一个极大数字的两个最大质数因子)。借助足够强大的网格计算系统,黑客可能会找到一种方法来缩短解密加密数据所需的时间。

保护系统免受黑客攻击是很困难的,特别是当系统依赖开放标准时。网格计算系统中的每台计算机都必须有特定的软件才能连接并与整个系统交互——计算机本身并不知道如何做到这一点。如果计算机系统的软件是专有的,那么黑客访问系统可能会更困难(但并非不可能)。

在大多数网格计算系统中,只有特定用户被授权访问网络的全部功能。否则,控制节点将被处理请求淹没,什么也做不了(在IT行业中这种情况称为死锁)。出于安全目的限制访问也很重要。因此,大多数系统都有授权和认证协议。这些协议将网络访问限制在少数用户。其他用户仍然可以访问自己的机器,但他们无法利用整个网络。

网格计算系统的中间件和控制节点负责保持系统平稳运行。它们共同控制每台计算机对网络资源的访问程度,反之亦然。虽然不让任何一台计算机主导网络很重要,但同样重要的是不要让网络应用程序占用任何一台计算机的所有资源。如果系统剥夺了用户的计算资源,那它就不是一个高效的系统。

人们目前如何使用网格计算系统?请继续阅读以了解。

广告

网格计算应用

目前存在多种网格计算系统,尽管其中大多数只符合真正网格计算定义的一部分。许多正在运行的系统都属于学术和研究组织项目。这些系统利用了未被使用的计算机处理能力。对这种网络最准确的称呼是共享计算系统。

搜寻地外文明(SETI)项目是最早获得公众关注的网格计算系统之一。SETI项目的任务是分析射电望远镜收集的数据,以寻找智能外星通信的证据。信息量太大,单台计算机无法有效分析。SETI项目创建了一个名为SETI@home的程序,它将多台计算机联网,形成一个虚拟的超级计算机。

广告

一个类似的项目是由斯坦福大学化学系的非营利机构Pande Group管理的Folding@home项目。Pande Group正在研究蛋白质。研究内容包括蛋白质如何形成特定形状(称为折叠)以及这与蛋白质功能的关系。科学家认为蛋白质“错误折叠”可能是帕金森氏症或阿尔茨海默症等疾病的病因。通过研究蛋白质,Pande Group有可能发现治疗甚至治愈这些疾病的新方法。

还有几十个类似的活跃网格计算项目。其中许多项目不是持久性的,这意味着一旦各自项目的目标实现,系统就会解散。在某些情况下,一个新的相关项目可能会取代已完成的项目。

虽然这些项目各自都有独特的特点,但总的来说,参与过程是相同的。有兴趣参与的用户从各自项目的网站下载应用程序。安装后,应用程序会联系各自项目的控制节点。控制节点会向用户的计算机发送一块数据进行分析。该软件利用未充分利用的CPU资源分析数据。项目软件的资源优先级非常低——如果用户需要激活一个需要大量处理能力的程序,项目软件会暂时关闭。一旦CPU使用率恢复正常,软件会再次开始分析数据。

最终,用户的计算机将完成所需的数据分析。届时,项目软件会将数据发送回控制节点,控制节点再将其转发到适当的数据库。然后控制节点会向用户的计算机发送一块新的数据,循环往复。如果项目吸引到足够多的用户,它就能在相对较短的时间内完成宏伟目标。

随着网格计算系统复杂性的提高,我们将看到更多的组织和公司创建多功能网络。甚至有一天,公司之间可能会进行互联。在那种环境下,现在看起来不可能的计算问题可能会变成只需几个小时的项目。我们拭目以待。

要了解更多关于网格计算及相关主题的信息,请查看下一页的链接。

广告

常见问题

网格计算是什么意思?
网格是共享资源的计算机网络。网格计算是利用这些网络来解决大型复杂问题。
什么是网格计算,有何示例?
网格计算是利用来自多个管理域的计算机资源来解决单个问题。网格可以被视为一个虚拟超级计算机。网格通常通过组合分布在网络(通常是公共互联网)上的许多独立计算机的资源来创建。一些流行的网格计算项目示例包括:- SETI@home项目,它利用数百万台个人计算机的闲置处理能力来搜索外星生命;- Folding@home项目,它利用数百万台个人计算机的闲置处理能力来研究蛋白质折叠,以期更好地理解阿尔茨海默病和帕金森病等疾病;- 世界社区网格(World Community Grid),它利用数百万台个人计算机的闲置处理能力来应对各种人道主义挑战,如癌症研究、艾滋病毒/艾滋病研究和清洁能源倡议。

更多信息

相关十万个为什么文章

更多精选链接

  • 《关于网格计算你应该知道的7件事》。Educause学习倡议。2006年1月。
  • Brown, Martin. 《传统网格与高性能计算的比较》。IBM。2006年6月13日。
  • 《打破僵局》。Computer Business Review。2004年1月1日。检索于2008年3月13日。http://www.cbronline.com/article_cbr.asp?guid=A3BC3CEC-55A6-4EBD-B306-4B3F0009F388
  • Foster, Ian 等. 《网格剖析》。Globus联盟。2001年。
  • Foster, Ian 等. 《网格生理学》。Globus联盟。2002年6月22日。
  • 《网格计算扩大其影响力》。IT Week。2007年12月17日。检索于2008年3月10日。
  • 网格计算信息中心。http://www.gridcomputing.com/
  • Joseph, Joshy 和 Fellenstein, Craig. 《网格计算》。IBM出版社。2004年。
  • Kay, Russell. 《开放网格服务架构》。Computerworld。2007年11月5日。第41卷,第45期。第36页。
  • Kourpas, Elias. 《网格计算:过去、现在与未来》。IBM。2006年6月。
  • Lorek, L.A. 《计算机停机时间用于解决世界问题》。圣安东尼奥快报。2005年2月12日。第1 K页。
  • McAllister, Neil. 《服务器虚拟化》。InfoWorld。2007年2月12日。检索于2008年3月12日。http://www.infoworld.com/article/07/02/12/07FEvirtualserv_1.html
  • 《中间件》。卡内基梅隆软件工程学院。检索于2004年3月12日。http://www.sei.cmu.edu/str/descriptions/middleware_body.html。
  • Mullins, Robert. 《数据中心电源的未来展望》。Network World。2008年2月18日。第25卷,第7期。第46页。
  • 《新软件、工具简化互联网协作和网格计算》。NSF新闻。2002年5月7日。检索于2008年3月10日。http://www.nsf.gov/od/lpa/news/02/pr0238.htm
  • 《网格计算新手入门》。IBM开发人员园地。检索于2008年3月13日。http://www.ibm.com/developerworks/grid/newto/
  • Rist, Oliver. 《网格接管一切》。PC Magazine。2008年1月。第27卷,第1/2期。第81-82页。
  • Skerrett, P.J. 《未来计算机:太浮点运算竞赛》。Popular Science。1992年3月。第50页。
  • Tuecke, S. 等. 《开放网格服务基础设施(OGSI)1.0版》。全球网格论坛。2003年6月27日。
  • 《Web服务》。Sams出版公司。检索于Developer Shed,2008年3月12日。http://www.devarticles.com/c/a/Web-Services/Web-Services-and-Stateful-Resources/

广告

加载中...