项目、平台和公司
Martin C. Brown (questions@mcslp.com)
自由作家兼顾问
2004 年 1 月
网格服务目前正以爆炸式增长势头向前发展。但是我们该如何选择网格解决方案呢?您正在考虑相关的标准、Web 服务兼容性、开发环境兼容性等问题么?这一切是否只是一场骗局?有关网格服务和平台的消息如此众多,又相互矛盾,人们很难看出某个公司是提供服务,还是提供构建服务的工具箱。在本文中,我们将研究一下目前可用的多种网格开发平台,并介绍一些提供实用网格服务的项目与公司。
网格概述
我们都知道,计算机在大多数时间中都是空闲的,它无所事事,只是在设备之间来回发送电子,然后显示最新的屏幕保护程序。这些计算机在消耗能量,但是实际上它的处理器中并没有产生任何有用的事件或信息。据估计,一台计算机用来执行重要处理任务的时间少于其处理能力的 5%。甚至大多数服务器只使用了其 15% 以下的处理能力来满足用户的需要,剩下的服务器时间(CPU、RAM、硬盘等等)仍然空闲着未被使用。
于是,网格服务出现了。但是网格中到底有些什么东西,居然能帮助我们在我们自己的项目中利用这些未被使用的资源?我们又应该如何使用网格技术,才能从我们在设备上的投资中获得更大的收益。
网格服务今天仅仅是一种用于搜寻外太空生命的工具,它的未来取决于我们用目前的技术与服务对其进行宣扬、促进和扩充。
我们需要研究两个系统,其一是开发平台,可以使我们开发与部署网格技术,其二是已有的网格服务,我们可以用这些服务来支持自己的网格项目。
网格开发平台
当我们选择开发平台的时候,需要研究的一个关键特性就是是否与开放网格服务架构(Open Grid Services Architecture,OGSA)及与之相伴的开放网格服务基础设施(Open Grid Services Infrastructure,OGSI)相兼容。这些标准通过设置一些特定的参数,使不同的网格服务之间能够进行交互,并使您能够用多种不同的工具箱来设计和开发应用程序,这些应用程序之间也能够相互对话。
即使与 OGSI/OGSA 不兼容,我们还可以考虑其他一些特性,比如有哪些部署选项。如果您在开发自己公司内部使用的网格,那么最好不要选择与已有硬件设备不兼容的解决方案。
还有一个问题值得考虑,即系统是否能长久使用,是否具有灵活性。开放源代码的解决方案吸引力更大一些,因为这样您就能通过对源代码进行修改和扩展,来扩充系统的功能。即便您不能访问到源代码,如果系统的可扩展性很好,或是可以与多种源程序语言一起使用,那也是不错的。
主要的网格开发工具箱包括:
IBM Grid Toolbox,这个工具箱基于 Globus Toolkit(稍后介绍),是一套非常容易安装的网格开发工具。人们在 Globus Toolkit 中扩充了文档,并专门为运行 AIX 或 Linux 的 IBM eServer 硬件系统开发定制的脚本与组件。这个工具箱的主要目标是计算网格,所谓计算网格就是将独立的计算任务分割成若干规模较小的工作单元组,并单独进行处理。
Globus Toolkit 是第一个支持 OGSA 3.0 版的通用工具箱。Globus 是第一个用于开发网格应用程序的通用工具箱,其中的组件可以在多种不同的网格系统中使用。作为系统灵活性的部分体现,Globus 工具箱提供了一组连接器(称为 Commondity Grid Kits),这使我们能够在 Java、Python 以及 Perl 的应用程序中使用 Globus 系统。
OGSI.NET 是用 Microsoft.NET 技术实现的 OGSA/OGSI 标准,可以在已有的 Windows 系统上运行网格系统。
Python Extension for the Grid 是专门用于 Python 的网格实现,与 OGSA/OGSI 并不兼容,但是它确实能够提供一种灵活的网格应用程序开发环境。Python 具有跨平台兼容性,因此能够在一种通用代码的基础上跨越多种不同的平台来部署应用程序,而且,因为这个工具是开放源代码的,所以您可以对代码进行修改和更新,以适应您自己的需求。
所有这些工具箱都必须证明自己要么能够依赖于标准,要么具备足够的灵活性,能够延长您的设计和网格解决方案的生命期。
网格开发公司
很多公司都提供网格服务或平台,但它们或多或少都不能满足您的计算需求。一些产品是工具箱、一些产品是硬件,或者两者都是。您可以在一个相对较短的时间内用这些产品来支持您的网格项目。另一些产品是可以运行的网格平台,其中包括一些已经存在的客户机(网格提供者),可以为您切实提供所需的计算力。
一般说来,这些服务的设计方式是用基于 Internet 的客户机来提供计算力,通常情况下,公司和服务提供方可以提供成千上万,或数十万,甚至数百万的潜在 CPU 资源,用来支持您的计算需求。
然而,有些服务的设计仅供自己企业内部环境中安装,用自己的空闲计算力来进行计算。这显然受到组织内计算力的限制。如果您只具有几百或者几千台机器,那么网格中的总计算力显然比基于 Internet 的服务所能提供的计算力差很多。
在这种情况下,一种解决方法是使用现成的工具箱,利用专门的软件和硬件,提供网格平台和计算力。少数公司能提供这种服务,通常这些服务能够适应该公司提供的更加灵活的计算服务。这些服务的灵活性表现在,我们可以通过释放或者购买设备,向网格中增加新的计算机,从而扩展网格的计算力。
这一领域的参与者包括:
IBM:IBM 提供的产品不仅限于构建和部署网格服务的工具箱。IBM 更是率先开展了一系列项目,为特定计算问题领域提供网格服务和建议,如研发、工程与设计、业务分析等等。IBM 目前正在将网格技术与特性整合到它的一些产品线中,其中就包括 DB2 和 WebSphere。像 WebSphere 这样的 Web 开发产品,将会在 2003 年底实现与网格技术的结合。IBM 还致力于研究基于网格的存储产品,使信息能够在网格上传播,而不是隔绝于少数特定的服务器上,这样就减缓了单服务器解决方案中经常发生的负载和瓶颈问题。网格技术还是 IBM 随需应变战略的核心组件。这一战略构建在 IBM eServer 技术之上,用刀片式服务器提供计算力。刀片式服务器是一种放置在卡片上的超小型计算机,可以配置在一个典型的 19# 架上,从而实现一种密度非常高的计算力。通过使用网格技术,我们可以将刀片服务器网络看作一种单一的、异常快速的资源来操作。因为刀片架很容易升级,也很容易通过增加新的服务器来扩展,所以这些服务器只是一个强大的网格中的额外计算资源。这样,公司就可以很容易实现计算力的升级,即便是临时性的升级,而不用重新构建、配置和开发计算机所使用的软件。
Parabon:Parabon 生产的系统名字叫做 Frontier,其计算引擎名叫 Pioneer。这是一种通用的计算平台,使用 Java 技术作为客户端环境,这样,Pioneer 就可以在多种不同的环境中得到支持,不过目前该系统仅仅支持 Windows 和 Linux。 Frontier 系统提供的提交和管理系统可以接受所提交的工作,并将工作重新分配给独立的 Pioneer 客户机。一旦客户机完成了分配给它们的工作单元,就将信息发送回 Frontier 服务器,用于和其他的结果进行比较。Parabon 作为一种面向大众的的服务,具备大量可用的机器,可以满足您的计算需求。目前,在服务器一端,Frontier 引擎提供广泛的监视和报告功能,使新任务的提交和对已有任务项目处理过程的研究变得极为容易。您还可以对工作进行优先级排序,以便更好地控制网格中特定项目的流程。在安全性方面,信息的交换是在 Frontier 服务器和 Pioneer 客户机组件之间,通过加密的信道完成的。在一个单独的客户机上,我们可以获取到相关的状态信息。Paradon 的报告机制实际上是十分精确的,可以根据每一个单独的客户机所提供的计算时间,为其支付费用。尽管这项特性目前没有使用,但是在将来,这一点可能导致公司出于明确的盈利目的向网格提供计算力。
United Devices:United Devices 基于网格技术,提供一组不同的解决方案,既包括内部的、企业级的网格解决方案,也包括基于 Internet 的网格计算方案。他们已经安装了大量基于 Internet 的客户机(截至 2003 年 7 月,大约有 180 万台 PC),并且已经开始为若干个不同的项目和客户机提供计算力。该公司的 Grid MP Enterprise 是一种企业级解决方案,可以在多种客户机(桌面计算机与笔记本)、工作站 以及服务器上部署。该系统用于提交任务的前端非常灵活,是计算性计算问题的杰出解决方案。 Grid MP on Demand 利用了 United Devices 的网格平台,这个平台可以供中小型公司使用,其使用方式是按照项目划分的。这样,客户机就可以向网格基础设施提交项目,而不用担心 Internet 上的安全隐患,也不会碰到自己内部网络中的负载和系统需求不能满足的问题。 Grid MP Global 是该公司基于 Internet 的项目。目前一些研究分析人员正用该系统进行蛋白质合成之类的工作。
许多这样的服务目前已经开始运行。还有一些正处于开发、调研、改进阶段。不过,这些服务表明,网格技术在逐渐成为主流。
结束语
就现在这些技术来看,网格服务的未来是十分健康的。随着更多的公司开始提供易用灵活的网格服务,越来越多的人会利用网格服务,并提供他们自己的网格服务。在独立的客户机上精确监视组件执行情况的能力也很具有吸引力,因为有很多公司想把自己已经具备的计算力资源提供给其他的网格项目。比如说,假使大公司具有几千台空闲的机器,他们就可以将自己的计算力卖掉,通过给科学研究和其他 CPU 密集型任务提供 CPU 资源,从网格技术的应用中赚到钱。
随着在开发实现网格服务的过程中引入 OGSA/OGSI 标准,网格服务的使用和可用性将在今后几年之内急剧增长。
参考资料
有关为网格环境启用应用程序的更多信息与详细讨论,请参阅 IBM 红皮书“通过 Globus 启用应用程序的网格计算功能”。
IBM 网格计算站点的网址为 http://www.ibm.com/grid。
有关 Globus Project 的详细信息,请访问 http://www.globus.org。
有关转向标准化平台上的信息,请参阅 developerWorks 的文章“网格计算 —— 迈向标准化平台” 。
要了解 OGSA 标准及其工作原理,请参阅 developerWorks 的文章 “开放网格服务架构之旅 ”
有关 United Devices 网格解决方案的更多细节,请访问 http://www.ud.com/solutions/。
与 Python Extensions for the Grid 有关的信息,可以从 http://grail.sdsc.edu/projects/peg/ 上找到。
有关 IBM eServer 及其在网格环境中的应用,请访问 http://www-132.ibm.com/content/home/store_IBMPublicUSA/en_US/eServer/eServer.html。
Parabon 的 Frontier 与 Pioneer 组件在 Parabon Web 站点上有更详细的描述,网址为 http://www.parabon.com。
Parabon 与 Pioneer 客户机可以从 http://www.parabon.com 上找到。
United Devices 是一家构建网格服务的公司,网址为 http://www.grid.org。
关于作者
Martin C. Brown 是 Studio B 的作者,他以前担任过 IT 主管,在跨平台集成方面有丰富的经验。他作为一名目光敏锐的开发人员,一直为特殊的用户制作动态站点,并兼任 Foodware.net 的技术主管。现在他是一名自由作家和顾问。他更出名的地方是作为 SME 和微软公司的紧密合作。此外,他还是 LinuxWorld 杂志的 LAMP 技术编辑,以及 AnswerSquad.com 团队的核心成员。他撰写的书籍有 XML Processing with Perl、Python and PHP 以及 Microsoft IIS 6 Delta Guide 等等。可以通过 questions@mcslp.com 与 Martin 取得联系。