天文轻量级科学工作流系统的实现*
2010-01-25邓玉坤季凯帆
邓玉坤,王 锋,邓 辉,季凯帆
(1.昆明理工大学云南省计算机技术应用重点实验室,昆明 650051;2.昆明理工大学津侨学院和云南省计算机技术应用重点实验室,昆明 650093)
随着技术的发展,新一代天基或地基天文观测技术不断涌现,如何处理观测获取的海量天文数据成为当前天文学领域的难题。为有效地利用这些数据资源,近年来计算机科学家在数据存储、处理和共享等方面提出了一系列新技术,以满足天文学家在科学研究方面的迫切需求。
网格技术就是其中的重要技术之一。网格技术是一个支持复杂科学实验,整合分布式资源和科学设备的革命性技术。网格应用程序整合了大规模、分布式、异构的资源,为科学家在共享、管理等处理海量数据方面提供了一个全新的方向。得益于网格强大的中间件技术和数据处理能力,网格技术在数据处理上全面体现了松耦合特性的优势。自从网格的概念被提出以后,由于它在各个方面的显著优势,已成为分布式数据处理方面的主流技术。
基于网格计算,近几年出现了很多e-Science项目,例如Astrogrid[1]、NVO[2]等。这些项目的目的都是为了高效地整合分布式资源,同时调用分布在全球各地的服务,以此帮助科学家提高学术研究的能力与效率。科学工作流(Scientific Workflow)技术由于其松耦合系统的基本核心,已经成为一个研究热点。
所谓科学工作流技术,是指将科学研究中遇到的数据管理、分析、模拟、仿真等一系列工作转化为一个个独立的服务,再把这些服务通过数据链接组合在一起,从而满足研究人员在科学实验或数据处理中的需要,实现相应的数据处理与科学计算。科学工作流技术针对科学研究工作的特点,立足于大规模科学处理,对科学研究提供辅助科学发现的环境。
当前对科学工作流技术的研究,主要集中于5个方面,分别是数据访问、模型设计、工作流模型分层、工作流语义和数据起源。
事实上,科学工作流是一种通用的技术,可以应用于天文、生物信息学等各个方面。但在具体的天文数据处理领域,当前的科学工作流系统有两个不足之处,一是系统过于庞大和繁琐,二是系统功能扩展比较困难。本文针对当前的问题,设计实现了一套轻量级的科学工作流系统,以克服当前系统的缺点。在回顾前期研究工作后,首先分析天文学家的需求,然后提出了系统结构,并分析了系统实现的关键技术。
1 相关工作
科学工作流的作用是通过整合科学实验中的各个要素,来管理大规模的科学计算工作。同时,科学工作流系统提供了一个验证科学假说的环境,通过监控科学计算的实验过程,对科学实验中的数据进行实时跟踪。由于其众多优势,一些开源的或者商用的科学工作流系统已经应用于各个领域的科学研究中。
Kepler系统是一个开源的科学工作流引擎,它基于PtolemyⅡ系统开发[3]。Kepler是一个成熟的、面向数据流的工作流架构。Kepler系统中的独立组件被称为“角色”,面向角色的设计模型是Kepler系统的基础。Altintas首先讨论了Kepler系统在天文数据处理方面的应用[4]。
基于Kepler平台,Aragon和Rune提出了“Sunfall”系统[5],它采用了新颖形象的交互方式和分析技术,来促进科学研究分析复杂的、高噪声的、高度空间要求、高度容量要求和高实时性的数据。基于Sunfall系统,他们进一步提出了一个用于数据传输和工作流管理的新技术方案,同时讨论了在部署一个观测天体物理的大规模工作流管理系统时的相关工作。
Pegasus[6]是一个将科学工作流技术应用于分布式资源上的框架。抽象的工作流设计模型是由科学家自己决定所有需要用到的资源,这样就允许科学家来设计工作流,而不是由设计人员决定应该使用哪些设备或资源。
除了上面提到的这些科学工作流系统,还有一些其他的科学工作流系统,例如:Taverna[7]、Triana[8]、GridBus[9]等。但是直到最近尚没有一个完全适用于天文数据处理的科学工作流系统。
总体来说,虽然在科学工作流技术的各个方面都有相关的论文和资料,但是尚没有对应用于天文数据处理领域的科学工作流系统进行全面、系统介绍的资料。在应用于天文数据处理方面的科学工作流系统中,还有很多尚待解决的问题,需要进一步研究。
2 需求分析
天文学是人类历史上最古老的学科之一。天文观测是天文学最重要的研究手段。因此对天文观测数据的处理就成为天文学家的主要需求。近几年来,大规模的天文科学项目一个接一个地开展,这意味着天文数据将会有爆炸式增长,而对这些数据处理的需求也将越来越迫切。针对天文观测数据的特征和天文学家自身的一些特点,总结得出如下需求:
(1)对海量数据的处理
天文数据天生具有海量、分布式和异构的特点。一般来说,天文数据包括文本文件、高质量图像,甚至是视频文件,数据的存储容量将会超过20TB。但由于各个项目所使用的技术不尽相同,造成天文数据的存储格式和方法也都不一样,同时,不同项目之间的平台、格式和操作系统也互不相同。
(2)支持松耦合服务
由于不同项目使用的技术及数据的存储格式不一样,因此在SWF系统架构的设计中,支持松耦合系统是至关重要的一点。SWF必须有效地整合和调用分布式的服务,考虑到天文领域数据的特殊性,应用于天文领域的科学工作流系统必须要支持松耦合应用和数据。
(3)支持重做机制
程序的终止和重做功能是天文学家的重要需求。他们需要系统有可以随时停止和调整参数的功能,而且在参数修改之后,系统可以在他们调整过的基础上重新运行。
(4)易于使用
考虑到天文学家的计算机水平,科学工作流系统的安装、操作和定制都必须简单易学。例如,天文学家都喜欢直接使用网页界面。软件的安装和配置一直都是困扰他们的问题,尤其是任务定制对他们来讲更加困难。他们可以理解甚至掌握如何使用C/C++或者FROTRAN语言编程,但是要让他们掌握如何在网格环境下定制服务流程却太过困难,毕竟并不是所有的天文学家都是计算机专家。
3 系统架构设计
为了达到天文学家的上述需求,提出了一套轻量级科学工作流架构。系统将支持中国虚拟天文台项目(China-VO)[10],同时用来调用国内的分布式天文资源。
3.1 架构设计
一个设计良好的系统架构是科学工作流系统开发的基础。文中提出了一个简单实用但是可以指导科学工作流系统设计的架构,它包括4个主要层:(1)数据访问层;(2)服务层;(3)业务逻辑层;(4)数据展现和接口层。图1显示了系统的详细结构。
图1 系统结构图Fig.1 Block diagram of the system
系统的架构参考了相关文献并吸取了一些科学工作流系统的优势。在架构设计中,分层模型对于有效地简化系统以及降低系统的设计难度是非常重要的。充分考虑到了天文数据的特点,例如设计了一个抽象的数据处理模型来支持分布式数据。
3.2 数据访问
天文数据是典型的具有多种存储格式的数据类型。FITS格式是一种天文界广泛应用的标准格式。但是并不是所有的天文数据都以FITS格式存储,有些数据以关系数据库存储,还有其他格式存储的。为了处理这些异构的海量数据,考虑用一种统一的抽象数据访问模型来处理这些异构数据。采用封装技术来实现统一的数据访问接口。封装的接口将支持多种查询语言,从高级查询语言到低级数据访问接口。为了实现与中国虚拟天文台的数据访问项目(VO-DAS)[11]的衔接,设计了一个组件来访问中国VO-DAS标准接口。
3.3 服务层
与其他科学工作流系统设计不同的是将服务层和业务逻辑层分开设计,把服务层作为单独的一层来考虑。这一层将包括3个子功能:数据起源、容错处理和高性能计算。由于科学分析的特性要求,数据起源是必不可少的功能。采用了一种类似“快照”的功能来存储所有的相关数据。快照数据可以有效地还原计算过程和确认计算的正确性。
另外,考虑到当前的网络环境及其它硬件方面的局限性,必须设计一个容错处理机制,用来处理异常情况,例如网络突然中断、程序发生异常错误、计算机异常关闭等。容错处理功能可以发现和处理程序执行的异常情况,从而确保系统的健壮性。
3.4 业务逻辑层
基于服务层,业务逻辑层通过整合低级服务组件来构成业务逻辑流程。业务逻辑层有3部分组成:设计、管理和工作流。
工作流的设计和定制是系统的关键部分。虽然大多数普通用户喜欢使用图形用户界面(GUI),但是很多天文学家喜欢使用命令行接口,因为他们认为图形界面不能精确地表达他们的想法。同样,复杂的计算流程不能够简单地用GUI设计出来。而相反,命令行接口虽然很难学会使用,但是当科学家掌握了如何使用它们,命令行可以快速精准地描述一个复杂的计算流程。前文曾提到,很多天文学家都有编程能力,他们对于命令行环境也非常熟悉。
当然,在对命令行接口改善的同时,也对图形用户界面进行了改进,毕竟图形用户界面具有直观、方便和易于使用的特点,可以帮助天文学家确认工作流的可用性和正确性。
在参考了许多文献后,决定采用Web服务的商业流程执行语言(BPEL4WS)来设计工作流。BPEL4WS提供了一套Web服务标准,可以实现可执行的和抽象的业务流程。它扩展了Web Service服务的模型,使之能够支持业务处理流程。BPEL4WS定义了一个可操作的整体模型,可以降低在扩展自动处理业务内外时的难度。
3.5 用户接口层
一个优秀的展现方式可以体现出数据分析的重要性。根据调查,Web浏览器是天文学家最常用的信息获取方式之一。为了满足天文学家的需要,在设计中实现了一个组件,它可以将所有必要的信息都输出到浏览器界面。同时,采用Web 2.0技术改进天文学家和系统之间的交互。
另外,系统提供一个Java插件程序来支持在线的图像分析。图像是天文数据展现的重要方式之一,同时天文学家也希望可以通过在浏览器上实时展现图像来分析和检验天文数据的正确性。
4 系统实现
系统全部使用Java语言实现,可以在主流操作系统上运行,例如:Windows和Linux。底层的任务分布和制定是基于网络网格技术。系统展现界面是基于标准HTML语言实现,这样让用户可以使用各种浏览器(例如:IE和Firefox)来访问服务器。同时,如果需要用到图像分析功能,用户将自动下载到一个Java插件程序到本地客户端。如果用户希望使用传统的命令行接口,一个命令行客户端的程序同样提供给用户下载使用。为了提供Web访问接口,采用了Tomcat,一个开源的http服务器(http://www.tomcat.org),作为C-SWF系统的应用服务器。
表1 C-SWF和Kepler、Pegasus系统分类对比
为了对比主流的科学工作流系统和C-SWF之间的区别,参考文[12],列出了相关的科学工作流系统的特点,如表1。
5 讨论及下一步工作
到目前为止,C-SWF系统已经实现了基本原型,可以满足天文学家的基本需求。然而系统尚有许多局限性和尚待解决的问题,这些问题也是下一步的主要工作。
(1)任务重做。虽然C-SWF系统可以支持一定程度上的任务重做功能,但是距离天文学家的要求还有很大的差距。天文学家希望C-SWF可以在任何时候停止运行,并且参数可以人工修改并在修改的基础上继续运行。C-SWF可以支持重做,但是目前尚未实现停止执行并修改参数的功能。
(2)程序跟踪调试。与桌面计算机的整体开发环境不同,网络环境下的网格计算的调试和跟踪非常困难。跟踪调试是系统目前迫切需要,但实现起来比较困难的功能。C-SWF计划采用Log日志的方式来跟踪每个任务的执行状态及记录程序的异常情况。通过这种方法来实现对程序的执行情况进行跟踪。
(3)数据起源。数据起源功能在科学假说的证明、科学实验的重建过程上有非常重要的意义。数据起源需要收集所有执行过程中的数据。计划采用“快照”的方法对系统的每个执行阶段的数据进行备份存储,虽然这些数据的存储容量可能十分庞大,但考虑到对科学研究实验的重要作用,在一定程度上牺牲系统的效率,也是可以容忍的。
(4)服务自动匹配。在C-SWF中采用静态的服务声明函数。这样造成程序员需要记住每一个需要调用的Web服务的URL地址。这样对天文学家来说过于困难。
6 结 论
论文讨论了一个轻量级的科学工作流系统(C-SWF)的设计与实现。C-SWF针对天文领域数据处理而设计,所有的基础需求,例如任务定制、数据传输、数据起源和任务重做机制都已经实现。对比现有的科学工作流系统,C-SWF提供了更多更有用的特点,例如简单易用、高性能和易于部署等等,可以较好地满足天文学家的需要。
[1] Astrogrid.Virtual Observatory Software for Astronomers[Z].http://www.astrogrid.org,2009.
[2] Nvo.National Virtual Observatory[Z].http://www.us-vo.org,2009.
[3] Kepler.Kepler Scientific Workflow[Z].http://www.kepler-project.org,2009.
[4] Altintas I.Astrophysics Workflows in the Kepler System[Z].2008.
[5] Aragon C R,Bailey S J,Poon S,et al.Sunfall:A Collaborative Visual Analytics System for Astrophysics[M].Los Alamitos,CA,USA:2007:0,219-220.
[6] Deelman E,Singh G,Su M,et al.Pegasus:A framework for mapping complex scientific workflows onto distributed systems[J].Sci Program,2005,13(3):219-237.
[7] Oinn T,Addis M,Ferris J,et al.Taverna:a tool for the composition and enactment of bioinformatics workflows[J].Bioinformatics,2004,20(17):3045-3054.
[8] Taylor I,Shields M,Wang I,et al.Distributed P2P Computing within Triana:A Galaxy Visualization Test Case[C].IEEE Computer Society,2003,161.
[9] Buyya R,Venugopal S.The Gridbus Toolkit for Service Oriented Grid and Utility Computing:An Overview and Status Report[Z].http://www.gridbus.org,2004.
[10] 崔辰州,赵永恒.中国虚拟天文台体系结构[J].天文研究与技术—国家天文台台刊,2004,1(2):140-151.
Cui Chenzhou,Zhao Yongheng.Architecture of Chinese Virtual Observatory[J].Astronomical Research & Technology,2004,1(2):140-151.
[11] 杨阳,刘超,田海俊,等.VO数据访问服务客户端系统的设计与实现[J].天文研究与技术—国家天文台台刊,2008,5(3):234-240.
Yang Yang,Liu Chao,Tian Haijun,et al.The Design and Implement of Client System of Virtual Observatory Data Access Service[J].Astronomical Research & Technology,2008,5(3):234-240.
[12] Yu J,Buyya R.A taxonomy of scientific workflow systems for grid computing[J].Sigmod Rec,2005,34(3): 44-49.