在网格中实现 SOA 和 Web 服务(一)

日期: 2007-12-17 作者:Jeff Mausolf 来源:TechTarget中国

  保持与 Globus Toolkit 的同步更新对于维持最新的网格技巧来说非常重要。本文将介绍 Globus Toolkit 的版本 4,在 Service-Oriented Architecture(SOA)和 Web 服务领域中展示这个工具包,并详细介绍 Grid Resource Allocation Manager 组件(GRAM),以及为网格作业提交、监视和控制例子创造条件的支持服务。

  在本文中,我将在 Service-Oriented Architecture(SOA)和 Web 服务领域概要介绍 Globus Toolkit 4 的内容。重点介绍这个工具包中的 Grid Resource Allocation Manager(GRAM)组件(以及支持服务)—— 这是一组核心服务,可以帮助您在特定的资源上启动作业、检查状态并获取结果的实际操作。通过这个重点的介绍,我们将设置提交网格作业的一个例子中的步骤。网格作业的例子开始是以一个非常基本的例子形式出现的,然后逐渐向其中引入一些新的概念和特性,以支持更加复杂的作业 —— 最后通过 Globus GRAM 将多个作业提交给调度器。

  不过首先让我们来讨论一下有关 SOA 和网格的问题。

  SOA 和网格

  SOA 是最近的一个热点问题。尽管这个概念已经并不新鲜,但是它却重新点燃了 Web 服务的活力。Web 服务可以通过一个使用标准协议仔细进行定义的接口为远程用户提供对程序的访问。高级的服务可以在现有的服务之上进行构建,应用程序可以通过将一系列 Web 服务连接在一起而进行开发。最后,我们还有一个非常有用的重用方法。

  如果应用程序提供了一个通用的可重用服务,并且它是无状态的,需要少量的输入和输出数据,那么这个应用程序就应该打包为一个 Web 服务。为了增加重用性,甚至还有一种发现并调用现有服务的机制。这种方法对于在分布式环境中提供对常用应用程序的访问来说非常有效,因为它是基于标准协议的,例如 SOAP over HTTP。

  在将 SOA 应用到网格实现上时,有一些常见的应用程序应该以 Web 服务的形式提供。然而,很多常见的应用程序都是特定于网格实现类型的,无论研究、科学方面的网格,还是教育网格。如果我们希望在这些应用程序域之间使用一些可重用的服务,那么应该区分任何网格实现中所需要的服务:

  • 安全性
  • 执行管理
  • 通知
  • 复制
  • 资源发现
  • 监视

  如果我们将网格实现中所需要的服务进行合并,就会得到一个基本的网格基础设施,我们称之为“面向服务的基础设施”(Service-Oriented Infrastructure)。

  GRAM 功能和服务

  这种环境中的 Web 服务为支持通用的作业提交方法提供了一个基础,当您希望在相关的输入数据之间提供可执行文件时,可能要在产生输出数据的同时访问这些数据,然后在执行过程中与作业进行交互,此时这种方法非常有效。这看起来可能有些超前,但是现在的确已经有了提供这种功能的工具和技术。

  Globus Toolkit 4.0 就是这样一种工具。它对一组 Web 服务进行了打包,这些服务为我们提供了一个面向服务的基础设施。应用程序关注的是某个具体的问题领域,而 Globus Toolkit 关注的则是整个基础设施。Globus Web 服务可以帮助您对分布式基础设施组件进行访问和管理。

  Globus Toolkit 的 GRAM 组件提供了一组 Web 服务,它们采用了 WS-Resource Framework,其设计目标是帮助您在网格环境中提交作业和管理作业。GRAM 可以用于那些需要信任证书、可靠执行以及协调文件步骤的作业。GRAM 可以帮助实现信任证书的管理,从而提交作业,监视作业的进展状况,控制作业的执行情况,并分阶段地处理相关的数据。不同的信任证书可以用来代表不同的功能。GRAM 提供了一个可靠的执行环境,并集成了多个专门用来在复杂环境中对作业执行管理进行优化的调度器。GRAM 和支持服务提供了文件分段传输的功能,甚至还提供了在作业运行时访问输出数据文件的功能,从而有效地实现对输出数据的利用。

  GRAM 调度器

  当您提交一个作业时,GRAM 创建一个 ManagedJob 对象,并返回其句柄。然后您就可以使用这个句柄与这个作业进行交互,这实际上是一个 WS-Addressing Endpoint Reference(EPR)。稍后我们将讨论一个典型的交互过程,并给出几个例子;但是首先让我们来了解一下支持作业执行所使用的基础设施。

  网格作业可能会消耗大量的计算周期,因此一个网格环境通常会包含很多资源集群。这些集群通常是由一个调度器进行控制的。调度器负责对资源的使用进行优化,从而按照定义好的策略来有效地执行作业。有很多调度器可以使用,其中包括 Load Sharing Facility、Condor 和 Portable Batch System。

  GRAM 使用调度器适配器将作业描述语法转换成调度器可以执行的命令。除了为调度器提供一个接口之外,GRAM 还包含了一种派生新的 UNIX® 进程来启动作业的机制。这适用于小型的串行作业,它们在运行时不需要集群资源,也不需要共享内存或消息传递。在后面的例子中,我们就会使用这个简单的派生进程。

  派生进程使用一个 Fork Starter 程序来启动并监视针对 GRAM 的作业进程。它还记录了一些数据,例如启动时间、结束时间以及该作业的退出代码。当提交作业时,事件会被写入日志文件中。当有重要的事件发生时,会继续在后面添加日志。这些调度器日志文件是由称为 Scheduler Event Generator (SEG)的进程进行监视的,它会让 GRAM 通过监听相关的事件并与其通信,来保持与作业状态的同步。

 

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐

  • SAP收购CallidusCloud 与Salesforce竞争

    一直被称为后台办公巨头的SAP现在似乎也想在前台办公大展拳脚。 最新的迹象是SAP收购CallidusClou […]

  • 事件驱动框架和SOA在空军的应用

    空军正在利用SOA来改善数据共享,并实时跟踪战机,美国空军机动司令部的Michael Marek解释了企业可从中学习的经验。

  • 揭秘New Relic APM技术细节

    New Relic应性能管理(APM)套件主要用于Web软件开发。它允许用户在面向服务的架构(SOA)上跟踪关键事务性能,并且支持代码级别的可见性来评估特定代码段和SQL语句对性能的影响

  • 仅凭SOA和云无法解决业务数据管理风险问题

    SOA和云可以是某些恼人问题高效的解决方案;这一点我们已经知道了。但是也要记住它们并不是所有事情的直接答案,特别是当你的问题是业务数据管理风险,而不是技术问题时。