在介绍网格的特征之前,我们首先要解决一个重要的问题:网格是不是分布式系统?这个问题之所以必须回答,因为人们常常会问另一个相关的问题:为什么我们需要网格?现在已经有很多系统(比如海关报关系统、飞机订票系统)实现了资源共享与协同工作。这些系统与网格有什么区别?对这个问题的简要回答是:网格是一种分布式系统,但网格不同于传统的分布式系统。IBMGlobal Service与EDS是在这个分布式领域最著名的公司。构建分布式系统有三种方法:即传统方法(我们称之为EDS方法)、分布自律系统(Autonomous Decentralized Systems, ADS)方法,网格(grid)方法。ADS通常用于工业控制系统中。网格方法与传统方法的区别见下表:特征 传统分布式系统 网格开放性 需求和技术有一定确定性、封闭性 开放技术、开放系统通用性 专门领域、专有技术 通用技术集中性 很可能是统一规划、集中控制 一般而言是自然进化、非集中控制使用模式 常常是终端模式或C/S模式 服务模式为主标准化 领域标准或行业标准 通用标准(+行业标准)平台性 应用解决方案 平台或基础设施通过以上对比,网格具有以下四点优势:(1)资源共享,消除资源孤岛:网格能够提供资源共享,它能消除信息孤岛、实现应用程序的互连互通。网格与计算机网络不同,计算机网络实现的是一种硬件的连通,而网格能实现应用层面的连通。(2)协同工作:网格第二个特点是协同工作,很多网格结点可以共同处理一个项目。(3)通用开放标准,非集中控制,非平凡服务质量:这是Ian Foster最新提出的网格检验标准。网格是基于国际的开放技术标准,这跟以前很多行业、部门或者公司推出的软件产品不一样。(4)动态功能,高度可扩展性:网格可以提供动态的服务,能够适应变化。同时网格并非限制性的,它实现了高度的可扩展性。 网格之所以能有以上所说的种种优势特征,是由网格的体系结构赋予它的。网格体系结构的主要功能是划分系统基本组件,指定组件的目的与功能,刻画组件之间的相互作用,整合各部分组件。科研工作者已经提出并实现了若干种合理的网格体系结构。下面介绍影响比较广泛的两个网格体系结构:网格计算协议体系结构(Grid Protocol Architecture,GPA)和计算经济网格体系结构(GRACE)模型。OGSA(Open Grid Services Architecture)被称为是下一代的网格体系结构,它是在原来“五层沙漏结构”的基础上,结合最新的Web Service 技术提出来的。OGSA包括两大关键技术即网格技术和Web Service 技术。随着网格计算研究的深入,人们越来越发现网格体系结构的重要。网格体系结构是关于如何建造网格的技术,包括对网格基本组成部分和各部分功能的定义和描述,网格各部分相互关系与集成方法的规定,网格有效运行机制的刻画。显然,网格体系结构是网格的骨架和灵魂,是网格最核心的技术,只有建立合理的网格体系结构,才能够设计和建造好网格,才能够使网格有效地发挥作用。OGSA最突出的思想就是以“服务”为中心。在OGSA框架中,将一切都抽象为服务,包括计算机、程序、数据、仪器设备等。这种观念,有利于通过统一的标准接口来管理和使用网格。Web Service提供了一种基于服务的框架结构,但是,Web Service 面对的一般都是永久服务,而在网格应用环境中,大量的是临时性的短暂服务,比如一个计算任务的执行等。考虑到网格环境的具体特点,OGSA 在原来Web Service 服务概念的基础上,提出了“网格服务(Grid Service)”的概念,用于解决服务发现、动态服务创建、服务生命周期管理等与临时服务有关的问题。基于网格服务的概念,OGSA 将整个网格看作是“网格服务”的集合,但是这个集合不是一成不变的,是可以扩展的,这反映了网格的动态特性。网格服务通过定义接口来完成不同的功能,服务数据是关于网格服务实例的信息,因此网格服务可以简单地表示为“网格服务=接口/行为+服务数据”。在当下,网格服务提供的接口还比较有限,OGSA 还在不断的完善过程之中,下一步将考虑扩充管理、安全等等方面的内容。 Ian Foster于2001年提出了网格计算协议体系结构,认为网格建设的核心是标准化的协议与服务,并与Internet网络协议进行类比(如图1)。该结构主要包括以下五个层次:构造层(Fabric):控制局部的资源。由物理或逻辑实体组成,目的是为上层提供共享的资源。常用的物理资源包括计算资源、存储系统、目录、网络资源等;逻辑资源包括分布式文件系统、分布计算池、计算机群等。构造层组件的功能受高层需求影响,基本功能包括资源查询和资源管理的QoS保证。连接层(Connectivity):支持便利安全的通信。该层定义了网格中安全通信与认证授权控制的核心协议。资源间的数据交换和授权认证、安全控制都在这一层控制实现。该层组件提供单点登录、代理委托、同本地安全策略的整合和基于用户的信任策略等功能。资源层(Resource):共享单一资源。该层建立在连接层的通信和认证协议之上,满足安全会话、资源初始化、资源运行状况监测、资源使用状况统计等需求,通过调用构造层函数来访问和控制局部资源。汇集层(Collective):协调各种资源。该层将资源层提交的受控资源汇集在一起,供虚拟组织的应用程序共享和调用。该层组件可以实现各种共享行为,包括目录服务、资源协同、资源监测诊断、数据复制、负荷控制、账户管理等功能。应用层(Application):为网格上用户的应用程序层。应用层是在虚拟组织环境中存在的。应用程序通过各层的应用程序编程接口(API)调用相应的服务,再通过服务调动网格上的资源来完成任务。为便于网格应用程序的开发,需要构建支持网格计算的大型函数库。 现在国内国外运用得最多的可能是在一些大型院校的计算网格(实现计算资源的共享。 什么是计算资源: 简单来说就是计算能力,CPU。 计算资源共享就是CPU计算的共享)。人们把一个集群(cluster, 也就是常说的机房,通常有几十台操作系统为Linux的计算机)的计算机连成一个局域型网格。这样就好像把这几十台电脑连成了一台超级计算机,计算能力当然大大提高了。这种局域计算网格主要运用于一些科研的研究。比如说生物科学。当生物科学的研究员需要高性能的计算资源来帮助他们分析试验的结果时,他们就把这些分析试验的程序提交(submit)给网格,网格通过计算再把结果返回给这些研究员。计算结果可能是一些图像(rendering)也可能是一些数据。这些计算如果在单一PC(Personal computer, 个人计算机)上运行的话,往往会花费几个月的时间,然而在网格中运行一,两天也就完成了。这就是网格技术最直观的优点之一。当然有一些大型主机(super-mainframe)也有很强的计算能力(比如常说的IBM deepblue,打败人类国际象棋大师Kasparov那位),但是这种主机太昂贵,而且配置(deploy)往往不方便,是名副其实的重量级(heavyweight)计算。1996年初,美国数学家和程序设计师乔治· 沃特曼编制了一个梅森素数计算程序,并把它放在网页上供数学家和数学爱好者免费使用,这就是著名的“因特网梅森素数大搜索”(GIMPS)项目。现在只要人们去GIMPS的主页下载那个免费程序,就可以通过计算网格来搜寻新的梅森素数。SETI@Home,一个分布式计算的项目,通过互联网络上的计算机搜索地球外智慧讯息,网格在分布式计算的成功运用。)的网站指出,世界上最强大的计算机IBM 的 ASCI White,可以实现每秒12万亿次的浮点运算,但是花费了1亿千万美元;然而SETI@HOME只用了50万美元却实现了每秒15万亿次浮点运算。网格另外一个显著的运用可能就是虚拟组织(Virtual Organisations)。这种虚拟组织往往是针对与某一个特定的项目,或者是某一类特定研究人员。在这里面可以实现计算资源、存储资源、数据资源、信息资源、知识资源、专家资源的全面共享。比如说中国2008年奥运会开幕式研究组就可以运用网格组成一个虚拟组织。在这个虚拟组织里,任何成员不管在哪个地方都可以有权访问组织的共享资源(如 开幕式场地图纸,开幕式资金,开幕式节目单);而且可以和另一地方的虚拟组织成员进行交流。这个虚拟组织就像把所有奥运会开幕式的资源,信息,以及人员集中到了一个虚拟的空间,让人们集中精力研讨开幕式项目的问题,而不必考虑其他的问题。据个实例,由英国利兹大学,牛津大学,约克大学和谢菲尔德大学合作的DAME项目就是致力于研究和运用虚拟组织。DAME架构在这四个大学合建的白玫瑰网格White Rose Computational Grid (WRCG)上,运用于对飞机故障的快速检测和维修。