级别: 中级 Abel W. Lin (awlin@ncmir.ucsd.edu), 软件架构师, National Center for Microscopy and Imaging Research
2006 年 5 月 25 日 “构建统一的网格” 这一系列着重介绍了在一个端到端的过程中启用网格所需要的组件实现。第 1 部分 讨论了对一个端到端的过程来说启用网格意味着什么,并讨论了在 National Center for Microscopy and Imaging Research 开展的 Telescience Project 项目所开发的基于网格的系统架构。第 2 部分 展示了网格接口对端到端的过程的重要意义,以及如何以一种随需应变的方式利用统一资源来更快更好地搜集数据。第 3 部分 介绍了 Telescience ATOMIC 包中的统一身份验证和授权机制。现在,我们来讨论一下 Telescience 架构中工作流的使用。
为什么要使用工作流?什么是工作流?
第一代网格及其超级计算中心前身的使用模型类似于航空公司所使用的中心辐射(hub-and-spoke)模型。用户数据环境被视为中心(hub)。在每个步骤中,用户都需要首先进行登录,然后数据会在整个国家范围内进行传递,最终送到几个实际组织(称为 辐射机构(spoke))处执行作业(请参见图 1)。
如 第 1 部分 所述,随需应变世界中的数据可以自动维护,可以自由地从各种设施流动到计算中进行分析。分析结果直接与这些设施进行接合,而不必通过中心,这提供了自动化反馈,可不断对数据收集的参数和技术进行精炼。面对这些需求,网格应用程序不再被构建为一个包容万象的单体程序,而往往是在已有程序组件的基础上进行构建。工作流工具通常定义为管理程序组件间行为(例如身份验证和数据 I/O)的必备工具。工作流工具的使用启用随需应变的统一网格必需的点到点的过程。
图 1. 中心辐射与点到点过程的比较(实线表示数据传输;虚线表示用户监控工具)
使用工作流的挑战
与核心网格工具类似(现在已经被 Application to Middleware Interaction Component —— ATOMIC —— 绑定到了主题 Web 服务 API 中),Telescience Project 中也有数不胜数的工作流工具来提供补充功能性 —— 尽管有些重叠。人们对工作流工具的接纳只是刚刚起步,因此其发展潜力甚至远远超出核心网格中间件组件。
工作流工具可分为以下层次化级别:
工作流工具
| 工作流类型 | 说明 |
|---|
| 过程管理 | 构造最高级的科学(实验室)过程,提供策略、过程、状态管理,并提供一些管理工具来协调、管理低级工作流及包含科学研究(或研究中的某个实例)的管道 | | 应用程序间 | 简化计算操作的管道或规划构建工具 | | 应用程序内 | 优化这些计划在异构物理资源上的执行的规划器和执行引擎 |
Telescience 工作流方法是为了促进这些工作流层次之间有状态信息的协调与共享。每个层次都具有独特的能力和需求。过程和状态管理工具(通常基于门户)对于保留和委托与用户有关的上下文信息来说是必需的。这些信息包括过程管理、科学过程的管理、身份验证与授权以及高级状态信息。在 Telescience Project 中,这些信息大部分(例如身份验证和授权)都通过 ATOMIC 工具包 API 来交付给低级的工作流(参见 第 3 部分 中的图 1)。
应用程序间工具可创建过程管道,它是高级实验过程管理工作流的子组件。这些工具通常都是用户驱动的 GUI 环境,可在过程管理工作流中使用,或表现为一中按需为过程管理工作流提供服务的通用工具。最低级的应用程序内工作流是由一些可执行规划组成的,它们被映射为物理资源的异构池。在 Telescience Project 环境中,我们将门户的用途描述为工作流控制器(workflow controller),并使用应用程序内类工作流工具将科学算法置入网格。
从工作流控制器的角度重新审视门户
科学家所采用的端到端过程的定义是:实验概念与根据实验结果得出的最终发现之间的所有步骤,包括初始规划、信息搜集、数据收集、分析,并可能要在一个或多个决策点上反复多次执行此过程。实验过程并不是像烟囱一样直接的线性过程,而是一个动态、循环反复的过程,可能有多处需要与用户交互、可视化数据,并提供反馈。启用这种反馈正是统一网格的目标之一。
在工作流的上下文中,实验过程在整个工作流工具层次结构中是第一位的工作流,它也是与终端用户直接交互的第一级的工作流。正如在 第 2 部分 中介绍的一样,Telescience 基础设施允许小组通过单一操作在界面间来回切换,并将其集成到一个功能丰富的用户环境中,这个环境由过程而非网格中间件来自动化处理和表示(参见 第 2 部分 中的图 2)。在这个角色中,门户被更广泛地用于管理过程工作流,更强调管理状态和组件的持久性信息的功能。与第一代用来实现 中心辐射处理的网格门户实现相比,它对于启动应用程序组件的机制关注较少。尽管将门户作为工作流工具的想法并非惯例,但小组已发现,门户对于应用程序和工作流信息的交付有着重要意义。
应用程序内工作流
门户工作流控制器的目标是协调 “完成任务” 的应用程序的各种活动。这些应用程序可能是独立应用程序,只需访问网格管理的数据;也可能是使用无数异构计算资源或数据资源的复杂并行程序。
与第一代规模庞大的单体网格节点代码不同,这些组件模块都很小,而且是动态的。与早期的代码(它们往往强调很好的并行性)不同,这些现代代码都是异构并行的,在计算能够开始之前,往往需要首先完成多个前提组件。这种并行异构性与资源异构性混合在一起,需要更高级的任务流规划和执行工具,才能对工作流进行抽象的规划和执行。这逐渐成为许多科学团体的共同需求,但相关工具寥寥无几。
Planning for Execution in Grids(Pegasus)环境是 Telescience Projec 中使用的主要工作流规划工具。Pegasus 是一种将复杂的科学工作流映射到分布式资源(例如网格)的框架。Pegasus 将抽象的工作流描述映射为其可执行的格式,Condor Directed Acyclic Graph Manager(DAGMan)执行在这个可执行工作流中指定的作业。Pegasus 和 DAGMan 映射和执行 Condor 池、LSF 或 PBS 管理的集群、TeraGrid 主机和各主机上的工作流。
Pegasus 对抽象的工作流描述进行操作,其中分析是以应用程序组件和组件使用的数据的形式来描述的。工作流是抽象的,这是因为它不能确定执行所必需的资源。Pegasus 接受此抽象工作流描述,生成一个可执行的工作流,其中确定了所需的计算资源,并包含了为计算提供输入输出数据的数据管理节点。还添加了其他一些工作流节点来注册新派生的数据产物,以便随后定位。
合而总之
在 Telescience 模型中,需要使用门户环境管理所有与用户和会话状态有关的信息(低级工作流类需要使用这些信息)。尽管门户作为用户信息和状态信息的管理者提供服务,但 ATOMIC 服务器可用作承载工具,为下游应用程序和工作流提供给定过程所需的适当信息的访问权限。这种会话信息的抽象对于转换过程中在工作流类间维护无缝的用户环境来说非常必要,它需要具有很好的可伸缩性,能够满足未来工作流技术发展的需要。
图 2 给出了终端用户所发起的典型多类工作流的一个高度概要图。通过主要科学过程工作流控制器 portlet,用户可启动外部应用程序(本例中为 Telemicroscopy 控制会话)。门户所处理的用户登录后的会话信息(例如身份验证和数据管理参数)都会在运行时通过 ATOMIC 工具和服务传递给应用程序。使用这些参数,应用程序可以启动一个低级的工作流(本例中为 Pegasus 规划的一个工作流,用来在计算资源的异构集合上执行并行 tomographic 卷重构)。
下一代基于 ATOMIC Web/网格服务的实现将进一步在外部应用程序层和主门户工作流上实现过程的动态通知。所有这些都是在一个无缝的用户环境中完成的,不同工作流类之间的典型转换负载都既不会传递给终端用户,也不会传递给应用程序开发人员。举个例子,我们期望在 Pegasus 中包含更健壮的资源和网络发现工具,而不必对现有的应用程序进行任何修改。
图 2. Telescience 门户
结束语
如果我们定义了一个随需应变的统一网格,包含数据或信息获取与最终发现(作为初始数据获取的结论)之间发生的所有步骤 —— 包括用户的反馈循环在内,即可明显地看出,没有任何一个网格中间件或工作流工具足以解决这种需求。这个问题只能通过集成多个可以互操作的工具来解决。
在本系列文章中,我们已通过核心网格组件(ATOMIC)的绑定与工作流工具在大型架构中的层次化使用论证了这种集成。在本系列的下一篇(也是最后一篇)文章中,我们将展示具体应用程序示例:Telescience Project 使用 Telescience 架构来启用随需应变的统一网格,下一篇文章还将讨论未来开发趋势与挑战。
参考资料 学习
获得产品和技术
讨论
关于作者  | |  | Abel W. Lin 是 National Center for Microscopy and Imaging Research 的 Telescience Project 的架构师和技术负责人。他在科学领域应用网格和其他计算机科学技术方面已经有 5 年多的经验了。他设计并领导了 Telescience Project 的 Telescience Portal 和 ATOMIC 组件的第一代证据概念系统,他还是一位科学家,在生物和计算机科学领域发表了很多文章。他的兴趣包括分布式系统体系结构、软件项目管理和结构生物学。在工作之余,他喜欢阅读、打高尔夫球和冲浪。
|
对本文的评价
|