开放式网格服务体系结构及实现的探索
摘要:
网格体系结构是网格的骨架和灵魂,是网格最核心的技术,只有建立合理的网格体系结构,才能够设计和建造好网格系统,才能够使网格有效地发挥作用。本文首先介绍了早期由Foster等提出的五层沙漏结构,接着对开放式网格服务体系结构(OGSA)进行了深入的研究,并在分析了Web Service的优缺点之后,深入研究和揭示了基于OGSA的网格服务的深层涵义,最后对Globus项目及OGSA的第一个主要实现,Globus Toolkits 3(GT3)进行简单介绍,研究了如何采取Web Service的标准和模型,在GT中布暑网格服务的体系结构。
关键字:OGSA; OGSI; Web Service;网格服务
0 引言
相对于计算机体系结构中系统的资源相对集中的特点,网格恰恰与之相反,组成网格系统的资源是广域分散的,它不再局限于单台计算机和小规模局域网范围内,并且网格计算的最终目标是用网上的多台计算机构成一台虚拟的超级计算机,因此,网格系统的体系结构是我们必须首先解决的问题。
网格是一个整体的概念,网格体系结构的作用在一定程度上就是对网格的解剖,它必须能够标识出网格的基本组成成分、能够清楚地说明网格整体是由哪些关键部分结合在一起形成的,并且还必须能够对各个部分的功能、目的、特点等进行清晰地描述,并在此基础上按照一定的方式进行组织和集成,形成一个具有特定功能的整体对外提供服务[1]。目前网格体系结构的设计已有了一定的研究,提出的比较重要的两个模型是:五层沙漏结构和开放网格服务结构(OGSA)。
1.计算网格五层沙漏结构
五层沙漏结构是Foster等在早些时候提出的,是一种影响十分广泛的结构,它的主要特点是简单,主要侧重于定性的描述,容易从整体上进行理解。
五层沙漏结构中,一个最重要的思想就是以”协议”为中心,也十分强调服务与APT(Application Programming Interface)和SDK(Software Development Kits)的重要性。
五层沙漏结构不提供严格的规范,只是对该结构中的各部分组件的通用要求进行定义,且将这些组件形成一定的层次关系,每一层的组件具有相同的特征,上层组件可以在任何一个底层组件的基础之上构造。五层沙漏结构根据该结构中各组成部分与共享资源的距离,将对共享资源进行操作、管理和使用的功能分散在五个不同的层次,具体结构如图1所示,为了便于理解,该结构还将这五层与TCP/IP网络协议结构进行了粗略的对比。
(1) 构造层:这层面对的是一个个具体的物理资源,它通过对这些局部资源的管理,向上层提供对这些资源的管理和控制界面;
(2) 连接层:主要是为下层的物理资源提供安全的数据通信能力,这是资源之间进行互操作的前提,连接层使得孤立的单个资源之间建立了联系;
(3) 资源层:它反映的是抽象的局部资源的特征;
(4) 汇聚层:完成如何将下面的以单个资源形式表现出来的资源集中起来,协调解决多个资源之间的问题;
(5) 应用层:关心的是有什么样的资源可以由下面提供给虚拟组织,解决不同虚拟组织的具体问题。
五层沙漏结构是一种抽象层次结构,它的一个主要特点是整体结构呈沙漏形状(如图2)其内在含义是因各部分协议的数量是不同的。对于最核心的部分――沙漏瓶颈,定义核心抽象和协议的一个小集合,由资源层和连接层共同组成。许多不同的高层(沙漏的顶部)行为映射到它们的上面,它们自身也能被映射到不同的基本技术之上(沙漏的底部)。另外此结构实现了更高程度的共享。这种共享不只是交换文件,而是更强调对计算机、软件、数据以及其它资源的直接访问,并且这种共享是一种随时间变化的动态的共享,可以跨越不同的单位与组织的管理范围,也可以地跨越不同的地理位置。即这种共享是深层次、广泛、动态、具有多种形式的有条件受控制的共享。
2. 开放网格服务结构(OGSA)
2.1 基本思想
OGSA 是在以IBM 为代表的工业界的影响下,在考虑到Web 技术的发展与影响后,Foster等结合Web Service 提出的,是继五层沙漏之后最重要,也是目前最新的以“服务”为中心的网格体系结构,被称为是下一代的网格结构。相对于五层沙漏结构的以协议为中心的“协议结构”,OGSA 是以服务为中心的“服务结构”。这里的服务所指的概念更为广泛,包括各种计算资源、存储资源、网络、程序、数据库等等,一切都是服务。在OGSA 中实现的是对服务的共享,它将资源、信息、数据等统一起来,十分有利于灵活、一致、动态的共享机制的实现,使得分布式系统管理有了标准的接口和行为。
为了使服务的思想更加明确和具体,OGSA定义了“网格服务”的概念,它是Web Service的一个扩展,它把Globus标准与面向商业应用的万维网服务结合起来,把网格计算从科学与工程计算应用扩展到更广泛的以分布式系统服务集成为主要特征的商业应用领域,OGSA将一切都看作是网格服务,网格服务可以以不同的方式聚集起来满足虚拟组织的需要,虚拟组织自身也可以部分地根据它们操作和共享的服务来定义[2,3]。
网格服务=接口/行为+服务数据,图对网格服务的简单描述。与五层模型一样,在OGSA中也非常重视互操作性,但是从服务的观点,OGSA 将互操作性问题转化为两个子问题:定义服务的接口和识别激活特定接口的协议。
以网格服务为中心的模型具有如下好处:(1)由于网格环境中所有的组件都是虚拟的,因此通过提供一组相对统一的核心接口,所有的网格服务都基于这些接口实现,就可以很容易地构造出具有层次结构的、更高级别的服务。这些服务可以跨越不同的抽象层次,以一种统一的方式来看待。(2)虚拟化也使得将多个逻辑资源实例映像到相同的物理资源上成为可能,在对服务进行组合时不必考虑具体的实现,可以在底层资源组成的基础上,在虚拟组织中进行资源管理。通过网格服务的虚拟化,可以将通用的服务语义和行为,无缝地映像到本地平台的基础设施之上。
2.2 Web Service
Web Service是网格服务及OGSA的基础,因此了解Web Service的体系结构能够更好地理解和布暑网格服务。Web Service是一种分布式计算技术(类似CORBA、RMI、EJB等),它能在所有支持Internet通信的操作系统上实现。目前被大量布署于商业应用的C/S模式中。Web Service的基本结构是基于服务提供者(Web Service器)、请求者(客户机)和中介者(UDDI注册中心)三个角色之间的交互、交涉及服务的发布、发现和服务请求者与服务提供者之间的绑定三个动作。可简单地归结为客户根据需求向Web Service发送服务请求,Web Service向客户返回服务结果[4]。
Web Service的所有协议都基于标准的Web协议,诸如:HTTP,扩展的标记语言XML,简单对象访问协议SOAP,Web Service描述语言WSDL,通用描述、发现与集成UDDI等。这些协议组成堆栈的形式,每一个下层提供对它上层的支持,同时每一个上层都必须基于所有的下层协议之上。
相对于其它技术,Web Service具有很多优势:采用标准XML语言,因此它是平台和语言无关的;大部分Web Service采用HTTP作为信息传输协议,因此更容易开发跨网络的应用。但是,不可避免地Web Service也有一定的缺点,如由于采用XML语言,传输效率低于采用二进制代码;功能性不强,缺乏多样性的性能,只支持很基本的服务种类;它解决了发现和激发永久服务的问题,但却具有不连续性和非暂时性的缺点等。
2.3开放网格服务体系结构分析
开放网格服务结构基于统一的Web Service框架。一个Web Service就是一个可以被URI识别的软件应用,它的接口和绑定可以被XML语言描述和发现,并且可以通过基于Internet的协议直接支持与其它基于XML的软件应用进行交互。
OGSA符合标准的Web Service框架。Web Service解决了发现和激发永久服务的问题,但是在网格中,大量存在的是临时服务,因此OGSA必须对Web Service进行扩展,从而提出了网格服务的概念,使得它可以支持临时服务实例,并且能够动态创建和删除它。由于OGSA采用统一的Web Service框架,因此具备了Web Service的所有有得因素,比如服务描述与发现;可以从服务描述中自动产生客户与服务端的代码,将服务描述和互操作的网络协议绑定在一起;和最新的高级开放标准、服务和工具兼容;有广泛的工商业支持[5]等等。
下面我们从结构层次上,对OGSA进行深入的分析。OGSA架构由四个主要的层次构成(如图3所示),从下到上依次为:物理与逻辑资源层、定义网格服务的Web服务与OGSI提高扩展层、基于OGSA架构的服务、网格应该程序层。
(1) 物理与逻辑资源层:资源的概念是OGSA以及通常意义上的网格计算的中心部分。构成网格能力的资源包括物理资源和逻辑资源。物理资源包括服务器、存储器和网络。物理资源之上是逻辑资源,它们通过虚拟化和聚合物理层的资源来提供额外的功能。逻辑资源在物理网格之上提供了文件系统、数据库、目录和工作流管理等抽象服务。
(2)Web服务层:包括Web服务和OGSI。OGSI规范定义了网格服务并建立在标准的Web服务技术之上。它利用诸如XML与Web服务描述语言这样的Web机制,为所有网格资源指定标准的接口、行为与交互。OGSI进一步扩展了Web服务的定义,提供了动态的、有状态的和可管理的Web服务的能力,这在对网格资源进行建模时都是必需的。
(3)基于OGSA架构的网格服务层:Web服务及其OGSI扩展为上一层提供了基础设施――基于架构的网格服务。GGF目前正在致力于诸如程序执行、数据服务和核心服务等领域中定义基于网格架构的服务。随着这些新架构的服务开始出现,OGSA将变成更加有用的面向服务的架构。
(4)网格应用程序层:随着时间的推移,一组丰富的基于网格架构的服务不断被开发出来,使用一个或多个基于网格架构的服务的新网格应用程序不断出现。比较有代表性的开发工具有CoG kits、MPICH-G2、Condor-G、MyProxy笔,这些应用程序构成了OGSA架构的第四层。
4.Globus支撑平台及开发工具
Globus项目是目前国际上最有影响的与网格相关的项目之一,它是美国Argonne国家实验室等科研单位的研发项目。Globus对信息安全、资源管理、信息服务、数据管理以及应用开发环境等网格计算的关键理论和技术进行了广泛的研究,开发出能在多种平台上运行的网格计算工具包软件(Globus Toolkit简称GT),能够用来帮助规划和组建大型的网格试验和应用平台,开发适合大型网格系统运行的大型应用程序。通过该工具集的开发使用,网格的影响才逐渐扩大。目前已开发到GT3,GT4也已面世。GT3建立在遵从OGSA的一种新的架构之上,是OGSI的一个实现参考,它的工具集建立在SOAP、WSDL和WS-Inspection等万维网服务技术的基础之上,用来支持分布式状态管理、轻量级检查和发现以及异步通知[6]。所有网格服务运行在一个GT3容器中,如Web容器或EJB容器中。GT3体系结构给开发者提供大量的服务去开发基于网格的应用。如图4 GT3体系结构图,并列出了各服务提供的主要服务[7]:
GT3 Core:把GT3中通用的核心基础设施作为GT3 Core。包括:OGSI v.1.0的网格实现;通知(源码,接收器,签署);注册,工厂,句柄;容器框架等核心设施;GT3 Security Services:网格安全是网格中的一个重要因素。它可能帮助我们约束对网格服务的访问,只有被授权的用户可以访问。
GT3 Base Services:这一层包含了非常多的服务:作业管理服务;索引服务;可靠文件传输服务。
GT3 Data Services:这一层包含了复制管理,它对那些不得不处理大量数据的应用非常有用,如GridFTP,文件复制等。
Other Grid Services:运行在网格环境之上的其它服务。
网格服务只是GT体系结构的一个小部分,但却是GT3中最重要的一个部分,它位于GT3 Core层。
为了有效地支持网格计算环境,Globus工具包针对Globus项目提出的各种协议,提供一系列的服务、软件库、编程接口API和使用实例。从整体上讲Globus工具包的实现主要有四个方面的内容:(1)网格安全,这是网格计算环境正常运行的保证;(2)网格信息获取与分布,在网格计算环境中如何发布信息,如何查询、检索资源信息是有效利用各种资源的前提条件;(3)网格资源管理,Globus在局域网资源管理的基础上实现了更高层次的资源管理技术,在信息服务的支持下,可有效地支持广域网范围内的资源管理;(4)网格远程数据传输,实现广域网环境下的高速、可靠的数据传输和实现对应用程序基本透明的远程文件I/O访问是Globus考虑的重要内容。
上述四个方面的技术可以使得在网格计算环境下应用开发更加方便,而且开发出来的网格应用程序的执行效率会更好。这四个方面的技术是通过Globus工具包如下几个组成部分实现的:网格安全基础设施;Globus资源分配管理;元计算目录服务;全局二级存储服务;网格FTP服务;Globus复制管理。
6.结束语
本文通过详细介绍了两种网格体系结构,并通过对比Web Service与基于OGSA的网格服务,分析了网格服务与Web Service的区别与改进,但是我们知道Web Service目前被大量应用于商业式的分布式计算,并可快速构建复杂的客户机-服务器应用程序,而网格技术提供了大规模、广域网、跨学科环境的高级网络服务,并受用了大量的Web Service新技术,可协同各种资源完成复杂的各种应用。 把网格服务应用于商业式的分布计算中,CoG Kit正是在两者之间建立一个桥梁,将二者结合构建大量的服务[7]。但是由于目前商业开发技术和网格技术中有一定的重叠,且可以相互借鉴,所以对各种技术的选择是需要认真考虑的。最终的目的是通过COG Kit使得能够充分发挥两种技术的长处,得到更大的价值。