网格计算作为分布式计算的一个实例,其实已经不是什么新鲜话题了。在60年代,为了完成对于一台计算机来说太过庞大的任务,人们就把这些任务分配给其他的几台机器来一起完成,这就是分布式计算或者说是一种最原始的网格计算。
不过由于条件的限制,这种计算模式长期与商业应用无关,一直用于科学计算,比如核弹建模。
今天,随着信息技术的发展,曾经一度只有大企业才能支付得起高速的机器,高速的网络,已经发生了变化。我们有了互联网,有了便宜的网络和工作在千兆赫兹的处理器。另外,每一个公司都有着大量的未被开发的计算能力,当每个2 GHz的奔腾处理器开机闲置,等候键盘指令的时候,网格的潜力就非常明显。更重要的是,我们有了广受支持的网格计算的开放式网格服务架构(Open Grid Services Architecture,即OGSA)。
网格计算的架构
Globus是大型联盟组织,它由美国的大学或科研院所,政府机构和IBM, Microsoft 以及Cisco发起的,并立足于美国Argonne国家实验室进行研究。该项目已进行了六年,旨在开发制定开放分布式计算所需要的协议、软件和概念。尽管它目前仍主要针对科学和技术领域,但是它最近发布的开放式网格服务架构(Open Grid Services Architecture,即OGSA)得到了广泛的认同。IBM称:网格是由网络连接的海量的计算能力,而OGSA是网格的主要战略,是“未来高级电子商务的要害,是Internet向真实的计算平台演变的下一步。”
由Globus联盟定义的开放式网格服务架构(OGSA)是一个有四层的模型:
用户应用层(user applications)
集群服务层(collective services):它包括目录处理,诊断和监测;
资源和协议层(resource and protocols):和服务器、网络进行连接的资源和连接协议
构造层(Fabric):网络上的所有设备—存储、计算机、连接、传感器等等。
用户应用层和构造层是我们比较熟悉的,中间的两层被定义为网格。
网格计算的特点与C/S不同
“网格”和标准的网络计算看起来全然不同。今天我们的很多服务都是基于客户机-服务器的。在这种模式中,通过确认客户,检查他们的授权级别以决定客户可以在服务器上做什么来确保安全。而对于“网格”,客户机和服务器的功能划分远没有这么明确,一台计算机可以在要求另一台计算机去完成一项任务的同时,还为其他的机器进行着一项任务。你无需了解这些互动是通过怎样的途径来实现的,你不需要登录到几百台完成你的工作可能用到的计算机上去,或者去鉴别每一个可能利用你的电脑来完成他们工作的人。
而且,你可以在其他人的机器上创建一个任务,再由这台机器来向其他的机器进行进一步地任务分配,在开放标准上运行的内容不同,它们对安全性的要求也是不一样的。这种情况下,不可能把它作为一个单独的个体来治理,因此网格治理依靠的是社区授权。你成为一个社区的一部分,你在这个社区里可以做什么取决于这个社区被答应做什么。
关于网格计算的另一个重要特点是被用于兆兆字节(terabyte)规模或更大规模的计算。
网格计算的治理
OGSA综合现有的概念和新的协议确立了开放式网格服务架构。建立在这一概念上的虚拟组织(Virtual Organizations即VOs),通过标准的界面和约定来创建、终止、治理瞬时服务并进行动态治理。定义这些服务的约定使用了现有的网络服务定义语言(WDSL),这是一种基于XML语言的,用数据或可执行的内容来表达信息的方法。这些方法把服务和现有的SOAP,MIME和HTTP联系起来。