刘应波,王 锋,2,季凯帆,邓 辉,梁 波,戴 伟
(1.云南省计算机技术应用重点实验室,云南 昆明 650500;2.中国科学院国家天文台/云南天文台,云南 昆明 650011)
科学工作流一直是虚拟天文台[1]技术的重要组成部分和研究热点。作为一个面向科学试验,以科学业务流程为主导的应用软件,科学工作流系统可以使科研工作者忽略计算机底层复杂的技术细节,从抽象层次[2]上进行交流和协作,从而提高工作效率。当前的部分科学工作流系统,例如Kepler[3]、Taverna[4]等,具有广泛的实用性和高度的抽象性。这些系统虽然应用广泛、功能丰富,但系统较为庞大,一般是独立使用在某一领域。
流程建模是科学工作流系统的一个重要环节,它使用业务流程建模语言(或称业务流程描述语言)描述业务流程。最常见的建模方法有基于有向无环图(Directed Acyclic Graphs,DAG)和有向环图(Directed Cyclic Graph,DCG)方法。采用DCG的工作流系统如Triana[5]和Kepler,除此之外其它大多数工作流系统[6]使用DAG,Taverna、DAGMan[7]系统是他们中的典型代表。
通过对这些系统建模语言的分析,不难发现在当前的虚拟天文台技术平台下直接整合或利用它们是非常困难的。一方面是因为科学工作流的建模语言没有标准,二是各个科学工作流系统各成体系,结构庞大,必须在通信交换、协议转换以及交互等方面进行大量的改造与整合,才有可能将这些系统应用于天文领域。显然,让一个天文学家直接应用复杂的科学工作流框架编写科学工作流程序是不可能的。
为了有效地推动科学工作流技术的发展,促进其在天文信息领域的应用,特别是工作流高度抽象化和流程化思想,构建一个“轻量级”的工作流系统是非常必要的。轻量级科学工作流系统旨在满足一般的天文应用,能独立使用并且能够比较灵活地与其他系统平台集成。这样的科学工作流系统具有如下特征:(1)功能能够满足领域内使用;(2)不追求普遍适用性;(3)以数据驱动为主。实现的首要步骤是对业务流程进行描述,即对业务进行流程建模。图1说明了工作流的主要流程,其中建模环节采用何种描述方式对工作流系统的设计和实现有很大影响。
图1 科学工作流系统框图Fig.1 The block diagram of the Scientific Workflow System
Tristan Glatard等对工作流描述语言的研究做了比较详细的分析和分类[8];Zhijie Guan讨论了工作流建模和工作流语言的很多细节,并研究了Petri-Net建模方法[6];Ketan Maheshwari[9]研究了用脚本如何对工作流流程进行描述;Timothy McPhillips等归纳了设计工作流时应该注意的一些事项,并使用了一种面向集合的工作流设计方法[10];Gubala Tomasz等[11]应用抽象和具体的概念描述工作流;Yang Ping等[12]使用层次状态机对工作流进行建模和分析;Johan Montagnat等[13]使用阵列编程的方式分析和设计工作流,同时讨论了数据流和控制流的协作。
文中设计了一个面向“轻量级”工作流的描述语言SPDL(Scientific-Process Description Language),在定义上与Tom Oinn等[4,14]使用的Sucfl表现数据流的方法有相近之处,涉及的端口(ports)和连接(links)元素语义受到了Taverna流程描述语言Scufl的启发[15]。Scufl具有很强的流程表达能力,在建模时考虑了数据流和控制流的不同,但因为其复杂性,不适合作为“轻量级”工作流系统的建模语言。SPDL的设计目的是以数据驱动为主导,能够符合“轻量级”的特点,不追求复杂和通用的表达能力。文中讨论的工作流表现形式也不同于Ustun Yildiz等讨论的模式[16],主要侧重于在工作流建模时,工作流语言表达时呈现的固定表现方式。
图2是一个完整的抽象单工作流示例。任何一个业务流程都可以高度抽象为图中的O,它包含输入、处理和输出3个最基础的部件,E是O各个部件扩展细化后的具体工作流。综合来说,O和E都是从用户的角度[17]理解工作流,它是工作流的直观展示。图2中的C则是从计算机角度理解工作流,它描述了具体工作流E内部部件之间的关系。
从用户角度和计算机角度理解工作流的不同点在于:用户需要一个抽象的流程表现方式,不关注具体实现;而计算机需要了解工作流各个部件的关系,负责转换和映射用户的流程需求。所以对用户来说,他们更关注工作流的易用性,而对工作流系统来说,它则关注如何高效地解释翻译用户设计的流程。下文主要从计算机角度分析流程的内部结构关系,在表达这些关系时更关注用户对工作流的思考方式。
图2 单工作流内部结构示意图Fig.2 The block diagram of the internal structure of a single workflow
整个工作流业务流程(图2)用W表示,W-Boundary代表工作流的应用界限。W具有输入端口WI1,此输入端口是其它工作流或应用系统与当前工作流交互的接口,可以把WI1看成是数据的抽象化表示,实际中他们可能是大型文本数据,也可能是高分辨率图像。输出端口WO1、WO2和WO3是当前工作流W与其它工作流或应用系统交互的接口。接口功能类似输入端口,二者区别在于数据的流动方向。输入端口只用于数据输入,而输出端口只用于数据输出,一般不能混用。InputDataX1和InputDataX2被抽象为工作流内部的数据输入通道,他们被用于数据传输。其中,InputDataX1不对输入数据进行加工处理,代表一个虚拟数据连接通道;InputDataX2用于数据生成。InputDataX1是一个单端数据输入(X1I1)和单端输出(X1O1)的虚拟数据接收器,而InputDataX2是一个零端输入单端输出(X2O1)的数据发生器。ProcessingP是一个过程处理单元,它是一个能够独立完成实验过程处理的可执行单元,实际应用中它代表处理数据的一个活动,例如对高分辨率天文图像重建。ProcessingP会对数据进行加工,其接收数据端口PI1和PI2用于接收原始数据,处理后的数据(PO1)是PI1和PI2共同被某种算法作用后的结果,此时的数据已经全部或部分失去了PI1和PI2数据本身的原始特性。另外,为了数据溯源的需要,工作流系统会对经过执行单元处理的数据附加一些元信息。
按照工作流系统解析工作流的过程,建模过程可以分为3个阶段:预处理阶段、处理阶段和处理后阶段。
预处理阶段:系统获取数据时的速度往往和数据处理速度不匹配,工作流提交后,系统首先根据工作流输入端口对数据的需求情况提前获取所需数据并进行一些必要的前期处理。例如在本地获取高数量级(G Bytes级或T Bytes级甚至更高)数据,然后将这些数据传送到异地的高性能计算中心进行处理,在数据处理完成后,又重新获取处理后的数据。在这个过程中,原始、中间和结果数据的传输都是任务处理的瓶颈。因此,为了提高数据处理效率,必须在处理阶段开始前,获取的原始数据先被传送到计算中心的某个存储池中,为工作流的执行准备条件。
处理阶段:在这个阶段,工作流系统利用输入端口的数据(例如PI1和PI2端口的数据)完成对特定任务的处理。这个过程主要完成的任务是把本地或远程的某个计算服务封装成可执行单元实体供工作流系统调用。被调用的可执行单元可能是一个标准的Web Service,也可能是一个批处理作业。另外,这个阶段也是数据溯源[18]的重要环节,不但需要处理数据,还需要对处理过程进行记录,并附加一些处理操作的元信息。因此,数据经过该阶段处理后与流入这个阶段中处理单元的输入数据有了较大的区别。
处理后阶段:在这个阶段意味着数据处理过程的结束,工作流的输入数据已经完成了多个类似ProcessingP的处理。用户可以提取所关心的数据,也可以通过查看结果验证数据的正确性,并决定是否直接获取数据还是将数据作为其他工作流或应用系统的输入数据。
图2中的工作流W可以使用管道的方式进行描述。在描述前首先定义如表1的操作。
表1 管道方式的操作描述Table 1 Description of the pipe-based operations
图2的流程可以用如下式子表示:
熟悉计算机技术的研究人员比较容易理解(1)的流程描述方式。(1)中使用Entity:port的方式与计算机中IP:port的方式来标识一个唯一应用非常相似;可以用管道的方式表示,这种表示在Unix类型系统中比较常见,它表示的意思是把A的输出流通过管道定位到B的输入流。这种流程描述方式的优点是简单、直观,但该方式不能描述功能较复杂的流程,也不利于计算机工作者与科研工作者的交流协作。
工作流领域已经存在多种基于XML的业务流程描述语言,例如XPDL①XML Process Definition Language.http://www.simonstl.com/projects/xpdl/、YAWL②Yet Another Workflow Language.http://www.yawlfoundation.org/、WS-CDL③Web Services Choreography Description Language.http://www.zhaoxiangpeng.com/about/papers/cdlspec_cn/、WSFL④Web Services Flow Language.http://xml.coverpages.org/wsfl.html等等,但这些业务流程描述语言对轻量级科学工作流系统来说过于繁杂。为了减少轻量级工作流系统实现的工作量和符合“轻量级”系统的需要,通常选用这些语言中的一个或几个子集描述具体的业务流程。但更好的方式是直接使用XML语言定义的较高层次的描述语言,因此自定义一套基于XML的轻量级流程描述语言是非常必要的。
通过对图2的分析,可以用图3中的抽象框图表示其关键部件。对上述部件的具体解释如表2。
图3 抽象后的工作流部件Fig.3 Key workflow components
表2 定义描述流程的核心关键字Table2 Keywords for defining a workflow
为了说明图3部件之间的关系,并针对一般天文科学工作流的需要,具体定义一个描述工作流业务流程的工作流描述语言SPDL,定义方式可以直接使用XML,也可以在基于XML业务流程描述语言的基础上进行定义。采用前者进行定义,这样可以让语言具有较强的可维护性和可扩展性。
工作流最终呈现给用户的表现形式是图2中用户U部分的表示形式,对于C部分的内部结构一般是工作流引擎进行解释和翻译的中间过程。故在表现方式上应该以用户为中心,对U部分进行描述。
使用SPDL对工作流中比较关键的部件进行描述包括如下几个方面:
(1)描述工作流:定义一个顶层容器,比如命名为Workflow:
(2)描述端口:该工作流有1个输入端口和3个输出端口。一般来说,如图2中U部分,InputDataX2有一个输出端口X2O1;ProcessingP有两个输入端口和一个输出端口PO1。在数据描述上,没有对数据进行处理的单元(InputDataX1、OutputDataY1、OutputDataY2和Output DataY3)不需要明确定义。这种结构可表示如下:
(3)描述处理单元:由于 InputData和 Processing都对数据进行了操作,所以可以把它列入Execution Unit内。
(4)描述数据流向:有了数据的来源(source)和数据的流向(destination)以及如何处理数据,就可以定义一个元素<links>限定数据的流向,从而在各个部件之间建立关系:
通过上述步骤就可以完成对图2的主体描述,对于更为复杂的流程,该语言可以通过扩展一些额外的描述关键字增强语言的描述能力。
基于XML方式自定义的工作流语言,在进行建模时需要注意图4中一些不正确和不规范的业务流程表现形式。这些不正确形式产生的原因在于上述描述语言把工作流端口和执行单元端口进行了一致性处理,这种一致性导致在建立流程描述时,处理端口数据的不确定性。所以,用户直接用XML语言进行流程描述时需要注意如下一些不规范的工作流表现形式,它们会导致工作流不能正确解释执行。图4中除(a)外其它都是不严格的,在实际描述中是不被允许的或者不正确的表现形式。
图4 不正确的流程表现形式Fig.4 Incorrect workflow representation forms.(a)is the correct one
(a)执行单元的任何输入端口悬空。悬空的端口(例如(a)中的PI1)是一个可选端口,数据有默认值。这种表现形式虽然看似不正确,但是实际上是一个可运行的工作流。
(b)必选数据端口无实际数据输入。对于(b)中的PI2,必须等待数据输入。在这种情况下,如果没有数据输入,整个流程便无法进行,所以该表现形式被视为错误的流程连接。
(c)工作流输入端口直接连接至可执行单元的输出端口。该表现形式下,任何输入端口的输入数据经过外部直接连接至执行单元的输出端口,这是不正确的表现形式。
(d)任何输出端口连接至实体(工作流、可执行单元)的输入端口。在单工作流界限内,任何输出端口(执行单元或者工作流的输出端口)不能直接连接到任何实体的数据输入端口,这样的情况会导致死锁。
(e)可执行单元的输入端口和输出端口之间的直接数据连接。在可执行单元中,数据的流通只能在可执行单元的内部进行。直接在输入端口和输出端口外部建立数据流向属于不正确的表现形式。
(f)可执行单元的输出端口悬空。这是一种不符合规范但是可以满足工作流执行的情况,但这种表现形式实际上没有任何意义,因为无法获取执行结果。
针对上述表现形式,在使用自定义工作流描述语言对业务流程进行建模时,可以采用如下3种方法最大限度地避免上述不规范的表现形式:
(1)设计一个图形用户界面(Graphical User Interface,GUI)管理业务流程描述语言。在工作流进行建模时,通过界面提示,用户可以避免出现不规范的流程描述。目前许多工作流系统都有与业务流程描述语言相对应的GUI管理界面,工作流系统使用者可以很方便地对描述语言进行操作。
(2)为工作流描述语言制定相对完整的图表(Schema)规范,该方式能够有效验证工作流流程。同时,这种规范对系统外的研究人员理解工作流语言有很大帮助。
(3)在运行工作流系统前,工作流引擎应该对工作流运行时的连接情况进行完整性检查,这种完整性检查不是冗余,而是系统性检验,也是保证工作流被计算机解释后整个工作流是否可执行的有效手段。检查的内容包括工作流内所有元件和通路是否符合定义的语言规范,物理连接是否可以连通,语言中的可执行单元在物理上是否存在等等。
通用工作流系统的建模描述语言具有很大的覆盖面,但针对天文应用这一专用领域,利用这些语言进行系统设计会增加设计难度,从而限制系统的应用与推广,在天文领域内构建一个与工作流系统相匹配的简洁、实用的描述语言是非常必要的。SPDL语言具有较高层次的抽象能力和流程表达能力,能够描述领域内粗粒度的科学实验活动,满足天文轻量级的工作流系统对数据流描述的需要。透明的工作流结构也有助于工作流研究人员优化流程细节,提高建模效率。
本文提出的SPDL语言对天文轻量级科学工作流抽象示例的描述结果显示了该语言具有较强的抽象表达能力,语言本身和设计思想比较适合轻量级工作流系统的需求。在SPDL建模中的各种不规范表现形式虽然普遍存在于基于XML的流程描述语言中,但通过GUI界面规范用户建模过程,对这些表现形式进行约束,就可以有效屏蔽文中讨论的几种不规范形式。对最终用户而言,这种屏蔽方式有助于提高语言的易用性和友好性,但是对工作流描述语言的研究人员和工作流引擎设计人员来说,应该非常关注这些表现形式,从技术上提供相应的解决措施。
本文实现了在抽象层面对轻量级科学工作流的描述,下一步的工作就是把SPDL应用到具体的天文应用实例中,建立对应的可执行单元映射库,扩展能够描述天文领域特征特点的关键字,增强其实用性,从而为广大天文工作者服务。
致谢:在论文写作过程中得到国家天文台赵永恒研究员、崔辰州副研究员、云南天文台刘忠研究员和许骏研究员的多次指导与建议,在此表示忠心的感谢!
[1]崔辰州,赵永恒.中国虚拟天文台研发策略与重点 [J].天文研究与技术——国家天文台台刊,2004,1(3):203-209.Cui Chenzhou,Zhao Yongheng.Research and development strategy and focuses of Chinese virtual observatory [J].Astronomical Research & Technology——Publications of National Astronomical Observatories of China,2004,1(3):203-209.
[2]Bowers S,Ludascher B.Actor-oriented design of scientific workflows [J].Computer and Information Science,2005,0225673(S52):369-384.
[3]Ludascher Bertram,Altintas Ilkay,Berkley Chad,et al.Scientific workflow management and the kepler system:research articles[J].Concurrency and Computation:Practice & Experience,2006,18(10):1039-1065.
[4]Hull Duncan,Wolstencroft Katy,Stevens Robert,et al.Taverna:a tool for building and running workflows of services[J].Nucleic Acids Research,2006,34(2):W729-W732.
[5]Churches David,Gombas Gabor,Harrison Andrew,et al.Programming scientific and distributed workflow with triana services:research articles[J].Concurrency and Computation:Practice&Experience,2006,18(10):1021-1037.
[6]Guan Zhijie,Hernandez Francisco,Bangalore Purushotham,et al.Grid-flow:a grid-enabled scientific workflow system with a petri net-based interface [J].Concurrency and Computation:Practice and Experience,2006,18(10):1115-1140.
[7]Team Condor.Dagman(Directed Acyclic Graph Manager) [EB/OL].[2011-12-18].http://research.cs.wisc.edu/condor/dagman/.
[8]Glatard Tristan,Montagnat Johan,Bolze Raphael,et al.On scientific workfkow representation languages [R].City:laboratoire d'informatique signaux et systémes de sophia-antipolis,2009.
[9]Maheshwari Ketan,Montagnat Johan.Scientific workflow development using both visual and script-based representation[C]//SERVICES'10 proceedings of the2010 6th world congress on services.China:IEEE computer society,2010:328 -335.
[10]Mcphillips Timothy,Bowers Shawn,Zinn Daniel,et al.Scientific workflow design for mere mortals[J].Future Generation Computer Systems,2009,25(5):541-551.
[11]Gubala Tomasz,Harezlak Daniel,Bubak Marian,et al.Constructing Abstract Workflows of Applications with Workflow Composition Tool[C]//Bubak M,Unger S.Constructing abstract workflows of applications with workflow composition tool.Proceedings of cracow'06 grid workshop.Krakow:ACC cyfronet AGH,2006:25-30.
[12]Yang Ping,Yang Zijiang,Lu Shiyong.Formal modeling and analysis of scientific workflows using hierarchical state machines[C]//E-SCIENCE'07 proceedings of the third IEEE international conference on e-science and grid computing.China:IEEE computer society,2007:619 -626.
[13]Montagnat Johan,Isnard Benjamin,Glatard Tristan,et al.A data-driven workflow language for grids based on array programming principles[C]//Proceedings of the 4th workshop on workflows in support of large-scale science.New York:ACM New York,2009:1 -10.
[14]Oinn Tom,Greenwood Mark,Addis Matthew,et al.Taverna:lessons in creating a workflow environment for the life sciences:research articles[J].Concurrency and Computation:Practice& Experience,2006,18(10):1067-1100.
[15]Oinn Tom,Addis Matthew,Ferris Justin,et al.Delivering web sservice coordination capability to users[C]//Proceedings of the 13th international world wide web conference on alternate track papers& posters.New York:ACM New York,2004:438-439.
[16]Yildiz Ustun,Guabtni Adnene,Ngu Anne H H.Towards scientific workflow patterns[C]//Proceedings of the 4th workshop on workflows in support of large-scale science.Oregon:ACM,2009:1-10.
[17]Biton Olivier,Davidson Susan B,Khanna Sanjeev,et al.Optimizing user views for workflows[C]//ICDT'09 Proceedings of the 12th international conference on database theory.New York:ACM New York,2009:310-323.
[18]Simmhan Yogesh L,Plale Beth,Gannon Dennis.A survey of data provenance in e-science [J].SIGMOD Record,2005,34(3):31-36.
[19]Shawn Bowers,Ludascher Bertram,Bowers Shawn,et al.Enabling scientific workflow reuse through structured composition of dataflow and control-flow [C]//Proceedings of the ICDE workshop on workflow and data flow for scientific applications SciFlow.China:IEEE Computer Society,2006.