科学工作流的数字化长期保存研究_工作流论文

科学工作流的数字化长期保存研究_工作流论文

科学工作流的数字化长期保存研究,本文主要内容关键词为:工作流论文,科学论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。

数字化长期保存一直是图书馆、档案馆等存储机构研究的焦点,如何保存大量有价值的数字化资源以确保其在未来仍有效可用是一个亟待解决的问题。传统的数字化长期保存主要针对一些静态的对象资源,如文本图像等,但目前科研和企业界常遇到要对复杂系统或复合过程进行长期保存的问题。在科学界,研究者有时需要对先前实验进行重做,或对早期实验结果进行验证和扩充,这就需要对早期的实验步骤和中间结果进行保存[1]。企业需要对决策过程进行详细的记录和保存,如专利诉讼中公司需要证明其专利来源,企业不得不保存它们以往多年的工作信息流程以便必要时回溯使用,因此,工作流程的保存对企业尤为重要[2]。科学界中的实验步骤和企业界中的业务流程统称为科学工作流。工作流是由一系列相互衔接、能自动进行处理的业务活动或任务组成,一般包括任务、任务之间的关系及其启动和终止条件,它日益成为很多领域的重要工具,成为学术知识循环中不可或缺的部分[3]。但科学工作流中包含很多高度动态的信息,不易获取和描述,易受到外界因素影响,易随外界环境的变化发生衰减。很多机构针对科学工作流的长期有效保存进行了大量研究,目前数字化长期保存研究重心已从传统对静态数据对象转向对复杂流程或工作流进行存储[4]。本文从科学工作流的定义、对象描述、有效性设计、科学工作流管理系统以及面临的挑战进行调研分析,以揭示科学工作流的研究现状。

1 科学工作流的基本信息

1.1 定义

工作流一般用于模拟和管理业务流程以便有效使用分布式的异质资源,它最初是面向企业业务流程,后来逐渐扩展到对科学实验进行描述。企业工作流和科学工作流的界限相对模糊主观,用户可利用企业工作流框架来描述和执行科学实验,也可利用科学工作流来执行企业业务流程,二者只是在使用环境上存在差别[5]。不同研究者对科学工作流的描述不尽相同,科学工作流联盟认为,工作流是根据一些程序规范可自动将文件或任务信息从一个组件传递到下一个组件进行执行,将处理步骤组成程序规范,这些规范用语控制数据或者任务之间的依赖关系。Belhajjame K等认为,工作流是由一系列用于解决科学问题的、结构化的任务或计算分析过程组成,可利用有向非循环图对科学实验进行描述,结点表示任务操作,边表示任务之间的联系,边的方向表示数据流动方向[6]。Cerezo N等认为,科学工作流是通过一系列业务流程及其执行顺序来定义的,它详细描述了业务及业务的执行顺序,并通过访问控制来限制使用权限[7]。Schaaff A等认为,科学工作流是面向数据的,是业务工作流的变异形式,按照预先定义的顺序执行,从而产生最优的结果[5]。科学工作流的长期保存不仅实现了科研成果以及业务流程的重用,还能促进科学分析过程的标准化。

1.2 对象模型

科学工作流作为个人或团队科研成果的重要组成部分可在很多领域间进行共享和重用。但随时间流逝工作流执行环境以及所使用的数据工具等可能发生变化,导致已保存的工作流功能衰减,信息变得难以理解,无法共享和重用,为克服这些问题需要对科学工作流的所有附加信息进行保存,如数据来源、操作的注释以及版本信息等。Belhajjame K等将附有丰富附加信息的工作流称为以工作流为中心的研究对象模型(workflow-centric research objects)[6],是基于早期MyExperiment工作流集群进行设计的,以计算机可处理的格式来描述科学流程[7],根据关联数据规则将工作流所有数据资源进行集成[8]。这种将工作流看作资源整合对象有助于将来源信息与结果结合,详细标注信息可提高科研人员发现问题的能力,也有利于第三方组织对结果的有效性和可复用性进行评价。

1.2.1 以科学工作流为中心的对象模型

以工作流为中心的研究对象可看所是资源集合体,它将工作流规范与辅助信息绑定在一起,辅助信息包括记录文档、输入数据、输出数据、注释以及工作流日志等。在Wf4Ever项目中[9]提出的以科学工作流为中心的对象模型是基于ORE模型构建的,它包括科学工作流、执行信息来源、工作流和相关资源(数据库、出版物等)之间的交互以及与科学实验相关的社会因素等信息。ORE(Object Reuse and Exchange)用于模块表示对象的重用和交换,AO(Annotation Ontology)模块表示注释实体,RO(Research Object)模块表示研究对象本体。主要的RO包括对工作流描述的词表和对来源信息描述的词表,前者可将工作流映射到不同的工作流系统中,后者可将源信息映射到不同的源信息词表中。Belhajjame K提出的工作流模型中包含了工作流模板,它用于定义工作流、工作流的运行规则、人工加工信息(描述研究的论文以及实验所在的数据库等)以及注释信息[6]。工作流模板是利用图进行表示的,其中结点表示处理过程,边表示数据关联,它可将一个指定处理过程输出与另一处理过程的输入相关联,尤其是前者的结果作为后者数据来源时。处理过程中指定了工作流执行中所需的软件组件,该模型已应用在Taverna[10]以及Triana系统中[1,11]。另有一些工作流系统除对数据流进行详细说明外,还对处理过程之间的时间依赖以及条件流等进行限定。

1.2.2 以科学工作流为中心对象语义表示

以工作流为中心的对象还可利用RDF格式对一些本体进行编码。MyExperiment数据库利用对象交换和重用ORE模型来表示工作流,ORE模型中定义了网络资源集合中描述和交换的标准,同时利用wro集合path-way-wf-sp工作流模板、path-way-wf-run工作流的运行环境以及wf-annot工作流的注释功能。

我们也可以利用注释本体(AO)来对以工作流为中心的对象进行语义表示,与MyExperiment不同的是它可以利用词表与Open Annotation Collaboration(OAC)进行映射,同时注释本体还可支持多种类型的注释,如命令、文本注释以及将各元素与基础领域本体概念进行关联的语义注释。

1.3 表示形式

工作流管理系统通常利用具有数据和处理结点的有向非循环图来表示科学工作流,工作流中的不同处理过程可通过多种组合进行表示,以便满足设计者在不同场景下的需要,特殊情况下还可将其扩充为有向循环图。依据工作流的复杂程度可将其表示为线性、有向非循环图或有向循环图等[12]。线性是工作流最基础的表示形式,它要求工作流必须按照特定的线性顺序执行,前一处理过程的输出作为下一过程的输入;整个工作流的运行时间与各步处理过程的计算粒度有关,运行时间较短的工作流可利用简单的脚本编写,运行时间长的工作流则需要利用智能的工具和更为高级的语言编写。次级复杂的工作流可利用有向非循环图进行表示,其中结点表示处理过程,边表示过程之间的依赖关系,一般包括数据依赖关系(前一过程的输出作为下一过程的输入)和控制依赖关系(前一过程必须完成后一任务才能开始)。较为复杂的工作流常用有向循环图进行表示,结点表示某种服务、实例或者更抽象的控制对象,边表示需要交换的信息、数据流或者传输通道。对更为复杂的工作流,一般的图模型并不能完全展示其包含的信息,可利用一些工具将其转化为新一级的组件或服务,作为另一工作流图的结点,即工作流中的工作流或等级工作流,通过该技术可构造任意复杂的工作流,可对在大规模分布式或并行环境中执行的复杂工作流进行调度,但该嵌套方法需要强大的智能工具的支持[13]。

2 科学工作流最优化设计

随着大规模数据和计算密集型处理过程的激增,科学工作流的使用也越来越广泛,尤其在生命科学领域中科学工作流成为获取、分析和发布处理过程的重要工具。但随着时间的推移科学工作流会逐步发生衰减,加之很多工作流缺乏有效的描述信息导致科学家很难重用。最近对MyExperiment知识库中Taverna系统工作流的调研数据显示,有80%的工作流不能执行或不能产生先前描述的结果,其原因主要有第三方资源不稳定、缺乏辅助理解科学工作流的样例数据以及对工作流的运行环境和数据资源描述信息不足,其中后两个问题只要按照一定的工作流设计原则就可以得到有效解决。此外为满足将来的复制和重用,在设计过程中也要兼顾工作流效率和健壮性[14]。

为预防科学工作流随时间的衰减,提高其重用率,不少学者对科学工作流设计方法进行了研究,目的在于提出一套有效的科学工作流设计准则。Hettne K为创建更高质量的工作流提出了制定工作流的抽象模型,利用同行之间的沟通提高信息在计算机与人之间的交流、共享;利用模块方法对工作流进行设计等10项原则[15]。

科学工作流在企业和科学界逐渐成为非常重要的上具,但目前已存在的工作流设计方法主要关注对用户需求的分析,而对工作流模型的形成过程关注较少。如何设计出高质量、可重用的工作流日益引起科研人员的关注,Cerezo N等提出了语义科学工作流模型,从更抽象角度对科学实验及处理过程进行描述。该模型弱化对工作流功能的关注,强调其在技术上的实现,这种利用计算机来辅助进行工作流设计的方法可平衡工作流对不同领域知识的依赖[7]。Sun S X等利用数据流模型来进行工作流的设计分析,可减弱工作流模型创建中对流程分析者的知识依赖,同时能预知给定信息是否满足工作流模型的需要以及能否避免工作流中出现的异常,该方法将以往对设计者知识和经验的依赖转向对系统和正确方法的依赖[2]。科学工作流的高效性和健壮性是其未来能否复用的决定性因素。效率是指能否快速将处理过程与所需数据资源相连,同时将数据与流程相对应,能使数据在多个共享的处理过程之间高效移动。就健壮性而言,在工作流设计过程中需要对某部分可能出现的失败做出合理假设,对异常情况进行处理以及建立必要的探测和修复机制,此外对工作流制定过程可能出现的失误进行监测。某种情况下工作流是事件驱动的,用户期望通过一步步执行工作流来理解其在逻辑上可能存在的错误,对工作流事件日志的分析不仅有助于理解工作流的执行过程,同时也能排除工作流中可能存在的障碍[16]。

3 科学工作流管理系统范例

科学工作流管理系统是能为工作流的定义、组织、映射和执行提供工具的软件环境。虽然目前存在标准的工作流设计语言(Business Process Execution Language,BPEL),但很多科学工作流管理系统的设计在BPEL语言出现之前仍沿用当初的设计语言,这导致工作流规范在不同系统之间很难共享和交互。除BPEL之外,其他形式的语言如UML、Petri Nets和XML-based Languages也可对工作流进行表示[13]。目前存在很多科学工作流管理系统,代表性的有Taverna系统、Kepler系统、Triana系统等。

Taverna科学工作流管理系统是由英国曼彻斯特大学基于Java语言开发的,主要目标是对生命科学领域(生物学、化学和医学)的工作流进行设计、存储和运行[10]。Taverna可通过提供WSDL文件的URL来调用多种网络服务,方便用户重用网络资源和服务。此外,它还可以调用本地的Java服务、API服务、Rshell脚本以及从Cvs或者Excel表格中直接导入数据。Taverna系统主要包含四个工具:Taverna Engine用于指定工作流;Taverna Workbench是客户端应用程序,用户可用图形式在本地电脑上直接创建、编辑和运行工作流;Taverna Server允许用户远程执行工作流;Command Line Tool可通过输入命令来快速执行工作流。这四个工具相互结合实现数据流的传输、服务的隐式迭代调用和条件调用等功能,方便用户查询、设计、执行和共享复杂的工作流。

Kepler系统是由加利福尼亚大学基于Java语言开发的,主要对生物学、生态学、地质学、化学以及天体物理学中的工作流进行设计、保存和运行,该系统提供图形用户界面,用户可通过图形界面或命令调用方式来执行工作流[17]。系统中利用director概念表示工作流执行模型,将每个处理流程看作可重用的actor对象。actor可表示各种服务,如数据资源、接收器、数据转换器、分析过程或计算过程等,每个actor可有一个或多个输入和输出,通过端口进行数据交流和交换,利用符号流或参数来限定执行顺序。科学工作流就是通过director将actor协调在一起,为实现不同目采用不同的协调方式,如actor顺序执行、动态执行或并行执行等。

Triana系统是由英国卡迪夫大学开发的,主要是利用可视化的方法将数据分析流程结合在一起,将同性质的工具集中到同一个工作流中。它利用自己定制的工作流语言,通过内置工具实现信号分析、图形处理等功能,用户也可方便地把自己的工具进行整合[11]。Triana系统是基于模块化思想设计的,用户可在本地或者远程使用TrianaControllingService(TCS)模块,通过组合运行应用程序,然后在本地对结果进行可视化以及批量处理,还可定期登录客户端查看程序运行状态,集成第三方服务对科学工作流进行设计表示。系统提供了多种组件工具箱,每个组件包含输入和输出数据类型信息,可对请求链接数据类型进行检查以确保在不同组件间的兼容性。此外,Triana系统还提供有关工作流循环或分支信息,将工作流组件与其后期提供的服务进行绑定,以保证工作流的高度动态性。

Pegasus科学工作流管理系统是由美国南加州大学开发的,主要应用在生物信息学、天文学、地震科学、重力波物理学以及海洋科学中,该系统可对必需数据进行自动定位并与可用资源进行映射,按照依赖关系执行工作流程[8]。Pegasus系统包含三个主要的组件:Mapper可将用户提供或系统产生的抽象工作流构建为可执行的工作流,并可自动查找执行过程中所需的软件、数据和相关资源,还可对工作流进行重构以达到最优化;Execution Engine可依据适当的执行顺序来定义工作流流程;Task Manager对工作流在本地或远程资源上的运行进行管理。Pegasus系统中还提供错误智能恢复功能。为保证工作流的可重用性,系统中记录了数据源信息(使用的数据以及生成数据的位置)以及所使用的软件和参数信息。

Askalon是由奥地利因斯布鲁克大学开发的面向服务网络的分布式工作流运行环境,系统中利用Abstract Grid Workflow Language(AGWL)语言对工作流进行描述[19]。AGWL语言可方便用户对科学工作流模型进行设计,无须考虑设备的复杂性及具体的实施技术,流程之间可通过丰富的控制结构(如序列、条件分支、循环和并行操作等)进行连接。Askalon系统中提供多种服务,如资源代理,通过提供相应协议来预约所需资源;资源监测利用新技术,集成已存在的网格资源监测工作对网格资源进行监测;性能评估用于评估原子性活动、数据传送执行时间以及可用的网络资源;性能分析将网络应用程序的执行监测、使用和分析统一起来,并支持对瓶颈问题的解释。

工作流管理系统中存储大量的科学实验和业务流程,用户可通过友好的图形界面自主选择所需资源,浏览结果信息,方便科学家共享和重用数据资源。除构建工作流管理系统外,不少机构还资助了科学工作流长期保存项目来解决数据密集型科学实验的长期保存问题,如欧盟资助的Wf4Ever项目,其中收集了大量天文学和基因组学方面的黄金标准实验,利用以工作流为中心的研究模型来定义科学实验中所包含的信息以及依赖关系,并与OAIS参考模型标准相一致,开发了很多软件工具包,用户可通过接口直接调用[9]。

4 结语

科学工作流的保存对实验结果的验证、专利侵权诉讼的判决起着非常重要的作用。但目前存在的任务流程需在复杂的软件环境下才能运行,并且由于需要很多服务,因此不能保证其随着时间和环境的变化仍维持原有结果,如何对科学工作流进行保存以确保其长期有效是数字化保存研究中的一个新挑战。目前的科学工作流管理系统利用迁移策略来实现工作流的长期保存,迁移中需要对过程有明确、正式的定义,要获得处理流程相关的文档以及详细描述信息,并且要能够对流程进行严密的评估监测,这些系统中通过提供范例来对科研和科学流程进行支持。

当今计算机科学提供了高性能的设施,可集成来自不同机构和站点的程序、方法、代理和服务,并将其运行在复杂工作流中,对大数据时代下大批量的数据进行智能处理形成科学工作流来辅助科研人员进行模拟实验,提高科研效率。

标签:;  ;  ;  ;  ;  ;  ;  ;  ;  

科学工作流的数字化长期保存研究_工作流论文
下载Doc文档

猜你喜欢