论文部分内容阅读
传统工作流系统一般为一个组织或机构所有,资源比较集中,软硬件异构性小,比较稳定,便于实施和维护。由于网格资源的分布性、异构性、自治性、动态性等特征,目前网格技术逐渐转向面向服务的架构。通过标准的服务接口,异构的软硬件资源能够被封装为可发现、可组合、松耦合的网格服务。因此,以原子服务为组件,可以构建面向服务的网格工作流。除了工作流语言和工作流引擎,面向服务的网格工作流还存在流程建模与优化、服务质量保障、高效调度与可靠执行等重大难题尚未完全解决。因此,针对这些问题,需要展开面向服务的网格工作流关键问题研究。工作流建模、验证与优化是整个网格工作流理论和技术的基础。基于Petri网,提出面向服务的网格工作流模型,其中包含六个基本的工作流模式:顺序、分支、循环、并发、同步、触发。借助这些模式,通过嵌套,用户可以构建任意复杂的工作流模型。在此基础上,提出网格工作流验证与优化机制来帮助普通用户模拟、验证、优化已有的工作流模型。由于网格资源的异构性和动态性,QoS(Qaulity of Service)保障对网格工作流极其重要。传统工作流模型要求参与组件必须是具体的物理服务,与之不同,提出用逻辑上的虚拟服务来组织和管理功能相同但存在QoS差异的物理服务,然后基于虚拟服务构建抽象工作流。在工作流执行过程中,通过预匹配和综合QoS值的服务选择两个阶段实现服务动态绑定。在服务选择阶段,提出一个多维QoS模型。基于此,设计综合QoS值选择算法SQSA(Synthesized QoS Selection Algorithm),该算法可以根据用户的不同需求,定量地计算出每个候选物理服务的综合QoS值,最终选出QoS值最高的物理服务。如何高效地调度DAG(Directed Acyclic Graph)网格工作流作业到动态且异构的网格资源上,并提供可靠的作业执行,成为一大难题。基于list调度和group调度的算法思想,提出一个启发式调度算法DAGMap,分为静态映射和可靠执行两个阶段。在静态调度阶段,将原子任务分组,每个组内的原子任务之间相互独立。然后,按照组的升序,将独立任务映射到计算节点上。组内独立任务的映射遵循两个原则:(1)关键任务优先;(2)根据任务长度的离散性,自适应地选择Min-Min或Max-Min算法来映射其他任务。在可靠执行阶段,提出检查点服务器和自主协作式检查点机制来提供容错保障。在网格工作流实际应用过程中,遗留程序和数据传输常常成为问题。针对工作流应用,设计并实现一个面向服务的网格工作流系统ServiceFlow,其支持网格工作流建模、验证与优化,支持基于虚拟服务构建抽象工作流,支持DAG作业高效调度与可靠执行。另外,为了重用遗留系统和程序,设计通用运行服务GRS(GeneralRunning Service)作为遗留程序执行框架。通过GRS,遗留程序能够被封装为网格服务并参与工作流集成。另外,为了在原子服务之间实现高效地数据传输,根据数据量大小,提供三种自适应传输机制:SOAP消息、SOAP附件、GridFTP。最后,通过依赖软件部署和图像处理两个典型的工作流应用,验证面向服务的工作流高效且可行。