网格的核心是分布式计算与资源管理,而这些核心实现是与网格的体系结构相联系的,因为一大批虚拟化、异构的资源组成了一个网格,而这些资源需要按照一致的方式进行交互和运转。网格技术的体系结构是关于如何建造网格环境的技术。它定义了网格的组成和基本功能,描述了网格组成部分的关系以及它们集成的方法。目前,网格技术体系结构的发展经历了五层沙漏结构(Five-Level Sandglass Architecture)、开放网格服务架构(Open Grid Services Architecture,OGSA)和 Web 服务资源框架(Web Service ResourceFramework,WSRF)3 个阶段。
1.1.2.1 五层沙漏结构
五层沙漏结构是 Foster 等(2001)提出的一种具有代表性的网格体系结构,其影响十分广泛,它是一种早期的抽象层次结构。
五层沙漏结构最重要的思想是以 “协议”为中心,强调服务与应用编程接口(API)和软件开发工具包(SDK)的重要性。在五层沙漏结构中,共享的概念不仅是交换文件,并强调对计算机、软件、数据以及其他资源的直接访问。从图 1.2 可以看出,五层沙漏结构从上而下包括: 应用层、汇聚层、资源层、连接层、构造层。
图 1.2 五层沙漏网格结构
(1)构造层: 构造层的基本功能就是控制局部的资源,包括查询机制(发现资源的结构和状态等信息)、控制服务质量的资源管理能力等,并向上提供访问这些资源的接口。构造层资源是非常广泛的,可以是计算资源、存储系统、目录、网络资源以及传感器等等。构造层资源提供的功能越丰富,则构造层资源可以支持的高级共享操作就越多,例如如果资源层支持提前预约功能,则很容易在高层实现资源的协同调度服务,否则在高层实现这样的服务就会有较大的额外开销。
(2)连接层: 连接层的基本功能就是实现相互的通信。它定义了核心的通信和认证协议,用于网格的网络事务处理。通信协议允许在构造层资源之间交换数据,要求包括传输、路由、命名等功能。在实际中这些协议大部分是从 TCP/IP 协议栈中抽取出的。认证协议建立在通信服务之上,提供的功能包括: 单点登录、代理、与局部安全方法的集成、基于用户的信任机制。
(3)资源层: 资源层的主要功能就是实现对单个资源的共享。资源层定义的协议包括安全初始化、监视、控制单个资源的共享操作、审计以及付费等。它忽略了全局状态和跨越分布资源集合的原子操作。
(4)汇聚层: 汇聚层的主要功能是协调多种资源的共享。汇聚层协议与服务描述的是资源的共性,包括目录服务、协同分配和调度以及代理服务、监控和诊断服务、数据复制服务、网格支持下的编程系统、负载管理系统与协同分配工作框架、软件发现服务、协作服务等。它们说明了不同资源集合之间是如何相互作用的,但不涉及资源的具体特征。
(5)应用层: 应用层是在虚拟组织环境中存在的。应用可以根据任一层次上定义的服务来构造。每一层都定义了协议,以提供对相关服务的访问,这些服务包括资源管理、数据存取、资源发现等。在每一层,可以将 API 定义为与执行特定活动的服务交换协议信息的具体实现。
1.1.2.2 OGSA 结构
目前最重要且被广泛认可的网格系统结构是 Global Grid Forum(GGF)的 Open GridServices Infrastructure(OGSI)工作小组于 2002 年 6 月制定的开放网格服务架构(OGSA)(Foster et al.,2005)。OGSA 包括两大关键技术,即网格技术和 Web Service 技术,它是在五层沙漏结构的基础上,结合 Web Service 技术提出来的,解决了两个重要问题———标准服务接口的定义和协议的识别(Karasavvas et al.,2005)。以服务为中心是 OGSA 的基本思想,在 OGSA 中一切都是服务(Karasavvas et al.,2005)。这一结构的意义就在于它将网格从科学和工程计算为中心的学术研究领域,扩展到更广泛的以分布式系统服务集成为主要特征的社会经济活动领域。OGSA 架构由 4 个主要的层构成: 参见图 1.3。从下到上依次为: 资源———物理资源和逻辑资源; Web 服务,以及定义网格服务的 OGSI 扩展; 基于 OGSA 架构的服务; 网格应用程序层。
图 1.3 OGSA 架构
(1)物理和逻辑资源层: 资源的概念是 OGSA 以及通常意义上的网格计算的中心部分。构成网格能力的资源并不仅限于处理器。物理资源包括服务器、存储器和网络。物理资源之上是逻辑资源。它们通过虚拟化和聚合物理层的资源来提供额外的功能。通用的中间件,比如文件系统、数据库管理员、目录和工作流管理人员,在物理网格之上提供这些抽象服务。
(2)Web 服务层: OGSA 架构中的第二层是 Web 服务。这里有一条重要的 OGSA 原则: 所有网格资源(逻辑的与物理的)都被建模为服务。OGSI 规范定义了网格服务并建立在标准 Web 服务技术之上。OGSI 利用诸如 XML 与 Web 服务描述语言(Web Services Description Language,WSDL)这样的 Web 服务机制,为所有网格资源指定标准的接口、行为与交互。OGSI 进一步扩展了 Web 服务的定义,提供了动态的、有状态的和可管理的Web 服务的能力,这在对网格资源进行建模时都是必需的。
(3)基于 OGSA 架构的网格服务层: Web 服务层及其 OGSI 扩展为下一层提供了基础设施: 基于架构的网格服务。GGF 目前正在致力于在诸如程序执行、数据服务和核心服务等领域中定义基于网格架构的服务。随着这些新架构的服务开始出现,OGSA 将变成更加有用的面向服务的架构(SOA)。
(4)网格应用程序层: 随着时间的推移,一组丰富的基于网格架构的服务不断被开发出来,使用一个或多个基于网格架构服务的新网格应用程序亦将出现。这些应用程序构成了 OGSA 架构的第四个主要的层。
1.1.2.3 WSRF 结构
OGSI 通过封装资源的状态,将具有状态的资源建模为 Web 服务,这种做法引起了“Web 服务没有状态和实例”的争议,同时某些 Web 服务的实现不能满足网格服务的动态创建和销毁的需求。OGSI 单个规范中的内容太多,所有接口和操作都与服务数据有关,缺乏通用性,而且 OGSI 规范没有对资源和服务进行区分。OGSI 使用目前的 Web 服务和XML 工具不能良好工作,因为它过多地采用了 XML 模式,比如 XSD: ANY 基本用法、属性等,这可能带来移植性差的问题。另外,由于 OGSI 过分强调网格服务和 Web 服务的差别,导致了两者之间不能更好地融合。上述原因促使了 Web 服务资源框架(Web Service Resource Framework,WSRF)的出现(Czajkowski et al.,2004)。
WSRF 采用了与网格服务完全不同的定义(Banks,2006): 资源是有状态的,服务是无状态的。为了充分兼容现有的 Web 服务,WSRF 使用 WSDL 1.1 定义 OGSI 中的各项能力,避免对扩展工具的要求,原有的网格服务已经演变成了 Web 服务和资源文档两部分。WSRF 推出的目的在于,定义出一个通用、开放的架构,利用 Web 服务对具有状态属性的资源进行存取,并包含描述状态属性的机制,另外也包含如何把机制延伸至 Web 服务中的方式。
Web 服务资源框架定义了使用 Web 服务来访问有状态资源的一系列规范。它包括Web 服务资源特性(WS-ResourceProperties)、Web 服务资源生命周期(WS-ResourceLife-time)、Web 服务基本故障(WS-BaseFaults)和 Web 服务服务组(WS-ServiceGroup)规范。这些新规范的动机是,虽然 Web 服务实现在它们交互的过程中并不维护状态信息,但是它们的交互必须经常性地为状态操作考虑。也就是说,数据的值通过 Web 服务交互得以持久化,并且作为 Web 服务交互的结果而保存。例如,一个在线的航空订票系统必须维持有关飞行状态、具体顾客的订票以及系统本身状态(它当前的位置、负载和性能)等信息。Web 服务接口如果要允许请求者查询飞行的状态、进行订票、改变订票的状态以及管理订票系统,它就必须提供对状态的访问。在 Web 服务资源框架(Web Services Resource Framework)中,我们把状态作为有状态资源来建模并且通过一个隐含的资源模式使 Web 服务之间的关系条文化。
WSRF 是一个服务 资源的 框架,是 5 个 技术 规范 的 集合,表 1.1 总 结 了 这 些 技术规范。
表 1.1 WSRF 中标准化技术规范
(据 Banks,2006)