《电子技术应用》
您所在的位置:首页 > 其他 > 业界动态 > 开放式网格服务体系结构OGSA

开放式网格服务体系结构OGSA

2009-10-09
作者:谢翠萍 傅秀芬 高 冉

  摘  要: OGSA的基本结构及其关键技术——网格服务,并介绍了实现网格服务的Globus工具包。

  关键词: 网格体系结构  OGSA结构  网格服务

 

1  网格体系结构

  组成网格系统的资源是广域分散的,不像传统的计算机体系结构那样局限于单台计算机和小规模局域网范围内。网格计算的最终目标是用网上的多台计算机构成一台虚拟的超级计算机。因此,首先应了解网格系统的体系结构。

  网格体系结构是关于如何建造网格的技术,包括对网格基本组成部分和各部分功能的定义和描述,网格各部分相互关系与集成方法的规定以及网格有效运行机制的刻画。网格体系结构是网格的核心技术,只有建立合理的网格体系结构,才能更好地设计和建造网格并使网格有效地发挥作用。

  到目前为止,比较重要的网格体系结构有二个。一个是Forster等在早些时候提出的“五层沙漏结构”;另一个是由Globus项目组联合IBM公司、结合Web Service推出的开放式网格服务体系结构OGSA(Open Grid Services Architecture)。本文介绍的是OGSA体系结构。

2  OGSA

2.1 OGSA体系结构

  OGSA被称为下一代网格体系结构。它是一种基于网格服务的分布式交互和计算体系结构,用来确保异构系统间的互操作性,使不同类型的系统可以相互通信、共享信息。OGSA是在Globus基础上、结合最新的Web Service技术提出来的。它利用Web Services定义了WSDL(Web Services Definition Language),WSDL定义了服务访问的参数及其类型。所有的服务都遵循指定的网格服务接口和行为,网格服务的标准接口包含多重绑定和实现。所有的网格服务都是用Globus Toolkit构建的,所以,OGSA的基本思想=网格结构+Web Service+工具包。OGSA的结构如图1所示。

 

 

2.2 网格服务

  OGSA最显著的特点是以服务为中心。在OGSA框架中,将一切都抽象为服务,包括计算机、程序、数据、仪器设备等。基于网格环境,OGSA在原来Web Service服务概念的基础上,定义了一个公开的服务语义,即网格服务。

2.2.1 Web Service

  OGSA的一个重要支撑技术是Web Service。Web Service描述了一种新出现的、重要的分布式计算范式。它强调基于单个Internet标准XML来解决异构分布计算的问题。它定义了一种技术,用于描述被访问的软件组件、访问组件的方法以及找到相关服务提供者的发现方法。

  与Web Service有关的标准分别是SOAP、WSDL、UDDI。SOAP是基于XML的RPC协议,用于描述通用的WSDL目标,通过将SOAP进行扩展(如数字签名、加密等)支持Web Services框架的安全性。WSDL适用于描述服务,包括接口和访问的方法,复杂服务可由几个服务组成,它是Web Services的接口定义语言。SOAP和WSDL都基于XML,这保证了XML的跨平台操作。同时SOAP一般使用标准的HTTP协议,因此可以透明地穿越合作企业防火墙。当需要将不同平台下使用不同编程语言开发的应用程序集成为一个相互协调互动的Web应用时,就可以采用WebService技术实现。

2.2.2 网格服务

  网格服务是一种提供了定义好的接口的Web Service。这些接口服务包括服务发现、动态服务创建、生存期管理、通知、可操控性等。网格服务可以以不同的方式聚集起来满足虚拟组织的需要。虚拟组织自身也可以部分地根据它们操作和共享的服务来定义。

  可以说,网格服务=服务数据+不同的接口,通过运行产生的实例可能运行在不同的运行环境上,与每个服务实例有关的是一系列服务数据。一组定义了不同服务的接口构成了WSDL的接口类型,每个网格服务都必须支持网格服务接口。网格服务提供的接口包括Factory、Registry、GridService、NotificationSource、NortificationSink等。网格服务接口对应于WSDL中的portTypes,在网格服务中用serviceType来描述,serviceType是OGSA定义的WSDL的扩展元素。

(1)网格服务接口

  OGSA的不同功能通过不同网格服务的接口实现。下面是与服务接口相关的一些概念。

  ①网格服务实例的语义。OGSA定义了网格服务实例的语义:它是如何被创建的和被命名的,生命周期是如何被确定的以及如何与它进行通信等。OGSA允许应用程序和用户创建瞬时服务,发现和确定可用服务的属性。OGSA中,Factory、Registry、GridService和HandleMap等接口都支持创建瞬时服务实例,并支持发现与实际的组织相关联的服务实例以及确定这些服务实例的特征。

  目前的网格应用程序通常依赖本机操作系统作为它们的托管环境,创建新的服务实例要涉及到创建新的流程。在OGSA上下文中,托管环境(容器)主要负责确保它支持的服务遵守网格服务语义,这样,OGSA就可以促进对容器/组件接口的修改或添加。

  ②软状态管理。OGSA中的服务主要是临时服务,临时服务必然会有一个服务生命周期的问题。OGSA引入了软状态,网格服务通过维护一个内部状态来管理服务的生命周期,以便把一个服务实例与另一个提供相同接口的服务实例区分开来。服务通过交换消息进行交互。由于内部状态的存在,因而保证服务一次性收到一条完整消息的能力十分重要。软状态协议通过不断收到keepalive消息,不断进行状态刷新来维持存活。在一个结合了瞬时的、有状态的服务实例的系统中,必须提供一些机制使操作失败的服务恢复原状。假设用户应用程序因为某种原因失败了,网格服务计算暂时还在继续,但如果没有其他方对计算结果感兴趣,就不再生成keepalive消息。由于应用程序出了故障,keepalive消息停止了,网格服务实例最终超时,这时释放它们使用的存储和计算资源,网格服务即终止。

  ③网格服务句柄。由于网格服务是动态的并且是有状态的,所以每个网格服务实例都被分配了一个全局惟一的名称,即网格服务句柄(GSH)。它是一个惟一标识该服务的URL,将网格服务实例区别开来。GSH不能携带与特定协议或者实例相关的信息,因此必须将这些相关信息封闭起来,和其他特定实例相关的信息一起,形成一个称为网格服务引用(GSR)的抽象实体。在网格实例的生命周期中,该实例的GSH不会改变,而GSR会改变。如果GSR改变了,则必须将该服务的GSH映射到一个新的GSR。GSR格式能将客户端与网格服务实例通信的机制绑定起来。例如,如果客户端使用SOAP绑定,则GSR需要采取一种有注解的WSDL文档格式。

  ④服务注册。支持通过持续收集GSH及其有关规则的服务发现的网格服务叫做注册。如果客户端想发现其服务能力、属性和其他相关规则,则可以通过请求注册服务来实现。注册服务可由注册接口和相关的服务数据元素来定义。注册接口提供GSH的注册操作;相关的服务数据元素包括注册GSH需要的信息,Registry接口主要用于注册一个GSH。

  ⑤通知机制。OGSA的通知机制将感兴趣的消息从源端发向目的端。NotificationSource是一种发布消息的网格服务实例,NotificationSink则是一种接收消息的网格服务实例。要通知一特定的网格服务,消息的接收方用自己的GSH通过NotificationSource接口激活订阅操作,操作执行后,通知消息便从源端发向目的端,同时目的端不断发送存活消息给源端,告知源端它仍对接收通知感兴趣。OGSA通知机制与服务数据紧密结合,一个订阅操作只是请求一系列在特定条件下要传送的服务数据。

  (2)服务数据

  在网格服务中,与每个服务实例有关的是一系列服务数据。这种服务数据是由XML单元压缩成服务数据单元汇集而成,它为网格服务实例的信息提供一个标准的表示法。OGSA的这个重要特征提供了潜在的动态网格服务性质的基础。每个服务单元包括独一无二的网格服务实例名称、类型以及用于生命周期管理的存活时间信息。

  例如:在portType中声明serviceData,定义一个CPU接口的代码如下所示: 

  ……

  

  ……

  ……

    

    0.00

  ……

  

  在上例中,包含了CPUSpeed和CPULoad二个服务数据。CPULoad服务数据元素包含了原始的服务数据元素。

  服务数据包含以下二方面的内容:①元数据,它是有关服务实例结构的数据。②状态数据,它是有关服务实例

的属性。它们把服务数据与服务实例联系起来。首先,一个服务描述可以包含服务数据元素(SDEs);其次,每个实例也维持一个它自己的特殊实例SDEs集或一般实例SDEs集,它们可包括额外的动态或静态SDEs。客户端可以用FindServiceData操作来请求实例SDEs集。

2.3 OGSA开发工具Globus Toolkit

  网格结构采用Globus技术实现对互联网上计算资源、存储资源等各种资源的共享。现有的数据共享和互操作方案(如P2P、COM/DCOM、CORBA、DCE、J2EE等),在共享配置的灵活性、动态性和共享资源的种类上不能完全满足动态虚拟组织的需要。Globus技术首先定义一系列支持网格计算的通信协议(如网格计算安全协议、网格计算的数据传输协议、网格计算的信息获取协议等),然后在这些协议之上开发出支持网格计算的服务(如网格安全服务、网格信息服务、网格数据传输服务等),以实现互联网上各种资源的动态共享。

  所有的网格服务都是用Globus Toolkit构建的。它来自开放源代码社区。Globus Toolkit可支持分布式状态管理、轻量级的检查和发现以及异步通知。该工具包也是支持网格和网格应用程序的软件库,解决了安全性、信息发现、资源管理、数据管理、通信、故障检测和可移植性等问题。

  现有的网格开发应用项目中,有很多是基于Globus Toolkit 2.0(GT2)。但是GT2有着不可克服的缺点,例如:在GT2中,调用、通知、授权等没有标准的语义,缺少对数据库、仪器、工作流的支持;对整个网格系统层次的系统特性,如可靠性、端对端QoS、事务等支持较少。为了克服这些缺点,Globus项目组联合IBM公司共同推出了OGSA网格体系结构。OGSA网格体系结构集中了GT2和工业界已经广泛认同的B2B平台Web Services的优点。Globus Toolkit 3.0(GT3)以OGSA核心基础设施为基础,是OGSI(Open Grid  Service Infrastructure,开放式网格基础设施)的一种参考实现。

3  结束语

  OGSA是目前最重要也是最新的一种网格体系结构。现有的大多数Web Services都可以按照体系结构和特定的技术组件被设计成网格计算空间,用以增强当前网格计算基础架构。但作为一个新兴技术,OGSA还不够成熟,需要进一步完善。随着OGSA相关技术和网格应用的发展,OGSA会不断得到完善和提高,它将直接推动网格计算的发展。

 

参考文献

1 都志辉,陈渝.网格计算.北京:清华大学出版社,2002

2 Foster I,Kesselman C,Nick J et al.The Anatomy of the Grid:Enabling Scalable Virtual Organizations.Supercomputer Applications,2001

3 Foster I,Kesselman C,Nick J et al.The Physiology of the Grid:An Open Grid Services Architecture for Distributed  Systems Open Grid Service Infrastructure.Global Grid Forum, 2002;(6)

4 Tuecke S,Czajkowski K,Foster I.Grid Service Specification,Draft3.http://www.gridforum.org/ogsi-wg,2002

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。