● 摘要
随着各个科研机构获得的数据的爆炸性增长,越来越多的科研工作者使用科学工作流来进行数据分析。面向服务的体系结构技术和Web服务技术的日渐成熟,为分布式异构的资源共享、集成提供了实现技术和解决方案。以Web服务的方式发布科学数据服务已经成为一种趋势。科学工作流技术与Web服务技术的日益结合,形成了新的科学计算应用场景。相对于传统的本地运行的科学工作流引擎,基于PaaS的科学工作流引擎更适合于新的应用场景,能够有效地避免大规模的网络数据传输。在PaaS环境下,由于用户自定义流程的未知性,科学工作流引擎需要解决流程运行的安全性和不同用户流程之间的性能隔离问题。科学工作流的开发过程通常是一个探索的过程,科学家会根据工作流的运行结果对工作流进行频繁地修改和重运行。科学计算任务一般都是计算密集和数据密集的任务,在工作流修改之后,完全重新执行工作流有可能造成计算资源和时间的浪费。随着工作流运行环境的复杂,网络错误、服务器资源耗尽,还有一些未知的软硬件错误都有可能导致工作流的失败,重新运行失败的工作流同样会造成计算资源的浪费。
为了解决上述的问题,通过研究分析现有的成果,本文提出一个基于PaaS的科学工作流引擎体系结构PASWEF,通过限制用户只能使用基本服务来构建流程的方法来保障流程运行的安全性。针对在PaaS环境下科学工作流引擎调度执行流程的性能隔离问题,提出了基于线程组的执行方法。基于线程组的执行方法为每一个工作流实例分配固定大小的执行线程组,实现了线程资源的可控分配,从而达到性能隔离的目标,同时也能够较为高效地保证流程活动的并发执行。针对科学工作流开发过程重运行产生的不必要的服务调用问题,提出了基于缓存的重运行方法。基于缓存的重运行方法在流程运行时保存未调用过的服务执行结果并且在下一次流程执行时候按需利用这些结果,避免了不必要的服务调用,从而加快了流程的开发进程。针对科学工作流的容错需求,本文使用服务重试和冗余的方法来解决组件暂时性失效的问题,并且给出一种较为高效的流程容错方法来解决工作流层次失败的问题。
最后本文采用与Web服务技术结合紧密的科学工作流语言DSFL作为流程描述语言,实现了基于PaaS的科学工作流引擎及其容错方法,从而提供一个PaaS环境下的科学工作流程的运行环境,支持流程较为高效地重运行和科学工作流的容错。
相关内容
相关标签