译 者 序网格计算常常被人们认为是互联网之后最重要的技术,而网格计算正是伴随着互联网技术而迅速发展起来的,是专门针对复杂科学计算的新型计算模式。也可以说“网格计算是一种中间件”。现有的资源,例如网络、计算机、服务器、操作系统、数据库以及文件系统等都是网格计算的底层设施,而网格计算之上则是应用,各种各样的应用通过网格调用、共享各种资源来完成任务。所以,网格计算实际上是利用互联网将分散于不同地域的计算机组织起来,成为一个虚拟的“超级计算机”。每台参与的计算机就是一个“节点”,成千上万的节点组合起来,成为一张“网格”。网格计算具有两个优势,一是数据处理能力超强,另一个是能够充分地利用网络中的闲置计算能力,从而实现计算资源、存储资源、数据资源、信息资源、知识资源、专家资源等的全面共享。正是因为具有巨大的优势,网格计算从发展之初就得到了国内外业界及学术界的广泛关注。全世界很多著名的公司以及大学纷纷投入到网格计算的研究开发工作中。目前大部分的工作还集中在理论研究、标准级的讨论以及建立定制的解决方案等方面。时至今日,网格计算技术仍然处于发展之中,它还面临着大量的挑战:计算模型、存储模型、信息模型、资源管理、服务、安全、普适计算、标准以及运营等都还需要进一步地研究和探讨。国内现在正经历国家信息化快速发展的阶段,全国已经有几十所大学和研究机构开展了网格方面的研究。网格计算对于我国的信息化进程具有相当重要的作用,凭借其固有的资源共享和协同工作能力,网格不仅可以实现计算资源的最大化共享和应用,避免资源浪费,更能够降低应用人才的门槛、应用开发难度和应用运行成本,促进我国信息化进程实现本质的飞跃。网格计算是一个崭新的领域,目前在国内关于网格计算方面的书籍还相对较少。本书是IBM公司Business On Demand系列丛书中的一本,是目前较新的一本关于网格计算方面的著作。两位作者Joshy Joseph和Craig Fellenstein分别是IBM公司网格计算领域与全球服务方面的资深专家。全书完整地介绍了网格计算领域的各个方面,通过来自于两位专家的最佳实践、案例分析以及企业级的指导,能够帮助读者理解掌握网格及效用计算中的基础概念,理解网格计算技术以及相关标准中的完美之处,学习如何在网格计算环境中展开应用,如何利用网格计算最大化现有资源的价值,建立灵活有弹性的操作基础设施,减少管理分离的、非集成的系统的负担。这是一本能使读者在较短的时间之内全面了解、熟悉和掌握网格计算发展最新技术及成就的优秀专业参考书。中译本的问世必将对我国网格计算研究工作带来新的思路和素材。由于时间仓促,译者水平有限,加上网格计算仍然处于不断地发展之中,相关的术语及概念缺乏标准,因而书中难免存在不当或欠妥之处,还希望广大读者批评指正。
前 言 网格计算学科包括了某个“网格”内实际的网络服务及潜在的计算设备的连接,这些计算设备不存在数量的限制,而且是随处可见的。这种新兴的革命性的计算过程可以简单地看作一个具有巨大能量的“效用(utility)”网格,就像每天为我们的家庭和公司提供电力的公用设施一样。我们中的大多数人已经对这种全世界范围内基于公用设施的能量交互及传送习以为常。我们都知道,只要走进房间打开电灯,能量就会立即(按需)直接流入到我们所选择的设备中。遵循同样的方式,网格计算能够开放式地搜寻,并且可以将无限数量的计算设备添加到任意的网格环境中,为运行的网格环境添加计算能力和问题归结任务,以及在需要的时候(按需)完成以上工作。 本书重要性 近几年来,在虚拟组织内参与者之间的计算资源共享问题中,我们目睹了网格计算作为分布式计算技术的一个创新性拓展而出现。这项技术在软/硬件虚拟化的组合与虚拟资源的分布式共享之间起着协调作用。这些虚拟资源包括了计算的所有要素,它们是硬件、软件、应用、联网服务、普及的设备以及计算能力的综合覆盖区等。网格计算为一些新兴的、最具创新性且功能强大的工业解决方案提供了技术引擎,其中包括IBM公司的On Demand策略 [1],HP公司的效用计算(utility computing)[2]以及Sun公司的N1技术 [3]。 开放式标准的出现大大地影响了这项计算技术,特别是为其提供了无缝的网格互操作性和网格集成工具。我们可以发现,网格计算技术仍然处于发展之中;然而,广泛的工业开放式标准的结合以及商业利益很快就会让这项技术进入基础设施和技术开发的稳定状态。在网格领域,迄今我们所见到的最引人注目的标准就是全球网格论坛(Global Grid Forum,GGF)[4]的开放网格服务体系结构(Open Grid Service Architecture,OGSA)计划。 直至今日,网格计算中的大部分工作都集中在理论研究、标准级别的讨论以及建立定制的解决方案等方面。然而,商业公用服务的出现,以及与其余组织的计算基础设施相结合的需求加速了开放式标准和可互操作的商业网格解决方案的发展。本书对网格计算的所有方面,包括技术、应用、学科以及基础设施等,都进行了详细的讨论。在书中,我们还对以下内容进行了全面的论述,包括网格计算的发展、现有的网格基础设施组件、新兴的网格服务标准以及网格体系结构等。除此之外,我们还将对许多重要的网格中间件解决方案加以详细的探讨。 本书主要内容 我们希望您阅读此书的过程是一次充满趣味并启发思考的体验。在这本书中,我们将向您介绍基础的网格计算原理,以及网格计算的新兴技术标准。本书中的讨论具有简明扼要、重点突出的风格,随着书中关于技术的发展进步的讨论,可以充分引起读者的兴趣。我们相信,这将有助于读者清晰地理解基础的网格计算原理、现有/新兴的网格标准以及它们各种各样的应用模型。我们必须意识到,网格标准非常复杂,在它们之间以及其他新兴的标准(如XML和Web服务)之间存在着大量复杂的相互关系。正如我们将要看到的一样,这是一个迅速前进的目标,我们应当及早注意到这一事实,只有这样,我们才不会错失创建网格服务及适合我们各自的组织或网格计划的基础设施的机会。 总而言之,本书将探讨下列内容: ● 网格计算的基本概念:在过去的几年里,网格计算学科作为增强计算能力和分布式数据共享工具的方法始终处于发展之中。我们将讨论许多基础设施组件的核心问题,以及作为联网服务而建立在网格基础设施之上的高层服务。 ● 网格计算作为资源共享的一种开放式标准是如何发展的:网格计算一直处于不断的发展之中。为了更好地实现共享资源,现在的焦点集中在无缝的互操作性以及对网格参与者的集成上。大量的组织协同工作,并为网格提供了一个开放的、可扩展的标准及试验平台,这无疑是一个非常的挑战。 ● 网格基础设施标准的出现所带来的影响:计算总是涉及到一些方法以及演化形式。新的软件标准和体系结构不断地发展以满足全球工业的需求。在这方面最新且最引人注目的是面向服务的体系结构(Service Oriented Architecture,SOA)、XML以及Web服务标准。正如读者们不久将看到的那样,这些体系结构和标准在形成开放网格计算标准中产生了非常巨大的影响。 ● 新的网格体系结构和基础设施:根据从早期网格基础设施、实现以及新兴的开放式标准和技术带来的影响中所获得的经验,网格计算标准组织正在为网格计算设计开放网格服务体系结构以及开放网格服务基础设施(Open Grid Service Infrastructure,OGSI)。这些重要的贡献不久将会成为所有下一代网格计算技术的核心平台。 ● 影响网格发展的最重要的工具包和中间件解决方案:仅有上述这些开放式标准和技术是远远不够的,我们需要实际的中间件解决方案和高层服务,它们能够运用这些标准和技术。现今最重要的中间件技术是Globus工具包[5]。为了使用关于OGSI的最新网格标准,我们将深入研究这个工具包稳健的体系结构以及编程模型的性能。除此之外,我们还将讨论OGSI.NET [6]工具包的一些体系结构概念,它是OGSI标准下的另一种引人注目的实现。 本书组织结构 本书共包含5个部分,共计15章。 第Ⅰ部分 网格计算 第Ⅰ部分由第1章组成。第1章从较高的层次详细地介绍了网格计算的发展、应用以及任意网格环境下对基础设施的需求。除此之外,第1章还讨论了网格计算学科,以及开发者和服务提供者在实现阶段必须考虑的问题。 第Ⅱ部分 网格计算全球计划 第Ⅱ部分包括第2章、第3章和第4章。这一部分着重于定义网格计算、网格计算的发展、影响这些发展的因素以及影响/决定采用该项新技术的组织等。除此之外,我们还将在这部分中看到关于新兴的网格计算基础设施的通用体系结构解决方案,以及网格计算技术计划的路线图。 第2章:“网格计算组织及其任务”。各种各样的工业部门中存在着大量的组织,这些工业部门包括科学研究、商业、影响网格计算采用的标准组织、基础设施开发、测试、标准化以及指导方针开发等。这一章将向我们介绍网格世界中最重要的活动。 第3章:“网格计算剖析”。这一章定义了协同资源共享的问题、虚拟组织形成的概念以及网格问题的协议体系结构解决方案。除此之外,第3章还就网格与其他分布式技术的关系进行了研究,这些分布式技术包括Web、面向对象的分布式技术、服务提供者框架、集群(cluster)以及对等计算(peer-to-peer computing)等。 第4章:“网格计算路线图”。我们将会讨论当前重要的技术计划,它正影响着近期的网格计算革命。对网格计算发展起着催化作用的一些重要技术计划包括按需业务(Business On Demand)环境、自主计算(autonomic computing)、面向服务的体系结构以及语义网格(semantic grid)等。 第Ⅲ部分 新一代网格计算应用 第Ⅲ部分由第5章组成。在第Ⅲ部分中,我们将探讨面向服务体系结构(SOA)的技术构件,它们将为新一代网格计算应用提供舞台。 第5章:“网格服务体系结构与Web服务体系结构的结合”。第5章是扩展的内容,它定义了面向服务的体系结构及相应的实现,Web和Web服务。在讨论Web服务的时候,我们将会详细探讨扩展标记语言(Extensible Markup Language,XML)、简单对象访问协议(Simple Object Access Protocol,SOAP)以及Web服务描述语言(WSDL 1.1/1.2)。除此之外,我们还将探讨全球XML体系结构(Global XML Architecture,GXA)的详细情况,以及一些新兴的标准(WS-Security、WS-Policy、WS-Addressing)。这一章所包含的另一个引人注目的领域是Web服务互操作性(Web Service Interoperability,WS-I)基本简档(profile),以及断言互操作性有效的工具。在第5章的结尾,我们将深入讨论Web服务状态管理、围绕状态交互/应用的概念以及如何将网格的网络服务与有状态的Web服务联系起来。 第Ⅳ部分 网格计算的技术观点 第Ⅳ部分由第6章、第7章、第8章、第9章和第10章组成。第Ⅳ部分介绍了开放网格服务体系结构的概念及驱动OGSA标准化的动机。除此之外,我们还将描述开放网格服务体系结构及其核心基础设施组件。我们将网格计算与其他新兴的技术结合起来进行讨论。另外,我们还将讨论由OGSA平台定义的一些核心基础服务。 第6章:“开放网格服务体系结构(OGSA)”。 第6章将会介绍为网格计算而定义的新型OGSA体系结构。它是建立在开放式标准和全球网格论坛工作的基础之上的。第6章的讨论将会向我们介绍由OGSA定义的各个体系结构层。这一章为即将进行的关于OGSA的讨论奠定了基础。 第7章:“驱动OGSA的用例的一些示例”。任何经过慎重考虑之后得到的体系结构都是从一组用例中提炼出来的,这些用例记录了体系结构的场景、参与各方、解决方案需求。第7章将介绍一些具有代表性的用例的示例,这些用例来自于不同的工业领域,用于阐述需求收集的过程。 第8章:“OGSA平台组件”。这一章的内容很简单,主要描述了IBM公司关于OGSA的描述。通过更为详细地分层,以及与其他现有应用及系统组件的关系来增强OGSA体系结构。 第9章:“开放网格服务基础设施(OGSI)”。这一章论述了OGSA中最重要的一个方面:所有网格服务的核心基础设施的基础。在第9章中,我们将讨论有关基础设施的一些详细情况,包括状态管理、实例命名、生命周期管理和故障处理,它们将会定义所有为OGSA而创建的网格服务的行为。这一章还将讨论核心接口,它是由规范和接口的重要性及使用模式决定的。除此之外,我们还将定义Web服务和网格服务之间的关系、它们描述机制的相似性和差异,以及网格Web服务描述语言(Grid Web Service Description Language,GWSDL)的重要性。通过对本章的阅读,读者们一定会发现其中包含大量关于核心基础设施软件的有价值的信息。 第10章:“OGSA基础服务”。根据OGSI规范及体系结构的需求,人们在网格领域开发出了很多的核心服务。这些服务从用例收集到的需求中涌现出来,而用例则来自于各种各样的工业部门。第10章将向读者们介绍其中一些重要的基础服务。关于网格服务详细情况的讨论将包括资源管理建模、策略实施、服务分组、安全、测量/核算、登录以及分布式数据管理等。 第Ⅴ部分 网格计算工具包 第Ⅴ部分由第11章、第12章、第13章、第14章和第15章组成。在这部分中,我们将了解一些重要的新兴中间件解决方案,它们都使用开放网格服务基础设施标准。其中最引人注目的是Globus工具包。这个软件的最终发布版本名为Globus Toolkit 3或者GT3,这一部分就将讨论它的框架。我们的讨论围绕着GT3的体系结构、编程模型、网格服务开发示例以及高层服务进行。除了Globus GT3,我们还将介绍另外一个引人注目的名为OGSI.NET的软件框架,它同样也是OGSI规范的一种实现。 第11章:“Globus GT3工具包的体系结构”。第11章着重介绍Globus GT3的体系结构模型。我们将对GT3中的分层体系结构模型进行讨论。该软件是用Java语言编写的,并且为网格服务生命周期以及实例管理提供了容器模型。这一章还向读者介绍了使用Web服务引擎时GT3的体系结构插入能力,以及在J2EE/J2SE容器中的托管能力。除此之外,第11章还对GT3的安全机制和客户端体系结构进行了详细的解释。 第12章:“Globus GT3工具包的编程模型”。第12章详细并深入地分析了GT3软件支持的编程模型。关于该内容的讨论向读者介绍了核心服务编程概念、服务数据管理、通知以及查询处理。除此之外,我们还将讨论服务配置、工具以及跟踪选项。这一章中关于客户端编程模型的讨论也是非常值得注意的。其他将要讨论的方面包括安全性以及各种各样的消息交换模型。 第13章:“Globus GT3工具包的一个示例实现”。在第13章中,我们将探讨一个基于从上到下方法的网格服务实现示例,首先从用于一个示例性搜索服务的GWSDL开始介绍。通过服务实现的所需工具和各自产生的代码,我们将深入研究该服务实现的每个步骤。除此之外,开发工作是阶段性进行的,每层都会增加相应的复杂性。这一章中另外一个非常有价值的论题就是,调用服务时对SOAP消息交换的跟踪。该示例有助于读者们理解OGSI标准,尤其是加深对GT3的理解,并且提供更好的互操作性。简而言之,我们的示例将会提供服务数据管理及通知。在第11章的结尾,我们将会介绍由GT3提供的一个EJB委托模型支持。 第14章:“Globus GT3工具包的高层服务”。第14章中介绍的高层服务用于资源发现和监控,包括资源分配以及数据管理。这一章中介绍的主要服务有索引服务、资源信息提供者(Resource Information Provider,RIP)服务、网格资源分配及管理(Grid Resource Allocation and Management,GRAM)服务以及数据管理服务。除此之外,这一章还介绍了用于信息服务的组件模型。其中包括提供者组件、服务数据聚集组件以及注册组件。 第15章:“OGSI.NET中间件解决方案”。第15章提供了Microsoft.NET环境下另一种 OGSI规范实现的信息。读者可以在此获得使用Microsoft.NET开发网格服务时有关体系结构和编程模型的详细阐述。 参考资料 [1] 要想获得IBM公司有关On Demand运行环境的信息,请访问 [2] 要想获得HP公司的效用服务的相关信息,请访问 [3] 要获得有关SUNNI解决方案的信息,请访问 [4] 要获得全球网格论坛(Global Grid Forum)的相关信息,请访问 [5] 要获得Globus工具包的相关信息,请访问 [6] 要获得OGSI.NET工具包的相关信息,请访问