分布式计算已经不是什么新鲜的话题了。在60年代,为了完成对于一台计算机来说太过庞大的任务,人们就把这些任务分配给其他的几台机器来一起完成。但是它仍然是一项深奥而高深的技术:对于核弹头的建模很合适,但和小的商业应用无关。
所有的情况都在迅速地变化。曾经一度只有大的企业能够支付得起高速的机器,高速的网络,和具有连接能力的软件引擎。现在我们都有Internet接入,便宜的网络和工作在千兆赫兹的处理器。而且,更重要的是,有得到广泛支持的公开的标准。每一个公司都有着大量的未被开发的计算能力:当每个2GHz的奔腾处理器开机闲置,等候键盘指令的时候,这种潜力就非常明显。
Globus是一个由美国的学院,政府机构和IBM, Microsoft 以及Cisco发起的,由美国Argonne国家实验室进行的项目。该项目已进行了六年,旨在开发制定开放分布式计算所需要的协议、软件和概念。尽管它目前仍主要是针对科学和技术领域,但是它最近发布了开放网格服务架构(Open Grid Services Architecture即OGSA)。OGSA定义了分布式计算的一些概念。IBM认为网格--所有连接在网络上的计算机--和OGSA是它的主要的战略。IBM预言它们将是“未来高级电子商务的关键并且是Internet向一个真实计算平台演变的下一步骤”
这些关于网格技术结构的研究赢得了大多数人的赞同,这是实现它所必须的。远程操作请求、交换数据,任务管理和安全的标准协议是问题的关键,同时也是一个标准的应用程序界面(API)收集,代码库,可重复使用的组件和调试方法。
OGSA是根据现有的Globus工具包的经验中发展起来的。它是一个有四层的模型:最上面的一层是用户应用层,下面的一层被称之为集群服务,它包括目录处理,诊断和监测:在它下面是和服务器、网络进行连接的资源和连接协议;接下来就到了最后的构造层,它包括了网络上的所有设备--存储、计算机、连接、传感器等等。构造层和用户应用层是我们比较熟悉的,中间的两层被定义为网格。
“网格”和标准的网络计算看起来全然不同。今天我们的很多服务都是基于客户机-服务器模式来进行的。在这种模式中,通过确认客户,检查他们的授权级别以决定客户可以在服务器上做什么来确保安全。而对于“网格”,客户机和服务器的功能划分远没有这么明确--一台计算机可以在要求另一台计算机去完成一项任务的同时,还为其他的机器进行着一项任务。你不会想要确定这些互动是通过怎样的途径来实现的,你也不会想要在几百台完成你的工作可能用到的计算机上都去登录,或者去鉴别每一个可能利用你的电脑来完成他们工作的人。
而且,你可以在其他人的机器上创建一个任务,再由这台机器来向其他的机器进行进一步地任务分配--在开放标准上运行的内容不同,它们对安全性的要求也是不一样的。这种情况下,不可能把它作为一个单独的整体来管理:因此网格管理依靠的是社区授权。你成为一个社区的一部分,你在这个社区里可以做什么取决于这个社区被允许做什么。
关于网格计算的另一个重要概念是它的功能,它被设计成来完成兆兆字节(terabyte)规模或更大规模的计算。它的协议很好的保证了这一点。
OGSA通过综合现有的概念和新的协议实现了上面提到的所有功能。根据它支持的虚拟组织(Virtual Organizations即VOs)的概念--通过标准的界面和约定--来创建、终止、管理瞬时服务,进行动态管理。定义这些服务的约定使用现有的网络服务定义语言(WDSL),这是一种基于XML的,用数据或可执行的内容来表达信息的方法。有很多方法把这些服务和现有的诸如SOAP, MIME和HTTP联系起来。
就象你所猜测的,全球化的分布式计算系统的发展还需要一段时间,包含了许多新奇的概念。还有许多的工作要做--但是它将会成为未来的主流。 如果想进一步了解“网格”,阅读相关资料,Globus项目站点是个非常好的起点,全球网格论坛(Global Grid Forum)也有非常多的相关内容。