科学工作流kepler及其应用周园春、林小光、程洁黄刚、王鹏飞、屈侠2008-10-28背景工作流概述科学工作流系统简介Kepler系统及其应用基于Web的科学工作流目录背景海量科学数据数字化技术和无处不在的网络发展推动了数据的收集、产生、共享、与分析。科学数据规模越来越庞大,科学实验过程也越来越复杂。科学与工程研究日益成为数据密集型的工作。背景超级计算环境与观察实验、理论分析鼎足而立的科学计算已成为e-Science的核心。现今很多交叉和前沿学科的研究越来越需要高性能计算,如大气科学计算、生命科学计算、湍流计算、分子模拟等。由于这些研究所需的数据资源和计算资源非常庞大,目前各研究机构很难为这些科研需求提供足够的资源,导致了很多研究无法往前推进。背景科学密集型实验迭代的科学数据处理流程源数据获取Web服务、SRB、FTP、HTTP数据输入数据预处理数据运算数据分析数据挖掘结果输出结果数据集可视化图片等背景动态的科学逻辑处理过程虽然数据密集型科学问题的求解过程也遵循一定的基本流程,但是整个过程中的诸多细节却是动态的、不确定的,科学实验流程的定义往往是不完整的,在执行过程中也需要根据实验流程的运行态势做出动态修改。工作流概述商业工作流工作流的概念起源于办公自动化领域。它所关注的问题是处理过程的自动化,它根据一系列定义的规则,把文档、信息或任务在参与者之间传递,以达到某种目的。工作流管理联盟(WfMC)对工作流的定义:一类能够完全或者部分自动执行的经营过程,根据一系列过程规则、文档、信息或任务能够在不同的执行者之间传递、执行。工作流概述商业工作流经营过程的一个计算机实现。工作流管理软件(WfMS)是一个软件系统。用以完成工作流的定义和管理,并按照在计算机中预先定义好的工作流逻辑推进工作流实例的执行。运行在一个或多个工作流引擎上。与工作流执行者交互,推进工作流实例的执行,并监控工作流的运行状态。工作流概述科学工作流2O世纪9O年代,随着问题求解环境(PSE)在科学研究活动中的应用,科学工作流和科学工作流管理被引入到科学问题求解环境中。科学工作流就是采用工作流的思想,用来描述和控制科学实验和过程的执行,它是面向e-Science,服务于科学家,使得科学家能够更容易的分析和管理科学数据。工作流概述科学工作流科学工作流是获取科学数据(包括传感器数据、医学影像、卫星图像、仿真输出、各类观测数据等等),并对所获取到的数据执行复杂分析的灵活的工具。目的在于组合一个广阔领域的应用程序,从实验的设计、执行、监控到归档,以及使得实验数据重用等的管理和分析流水线化。工作流概述科学工作流Streaming/pipelinedexecutionHighlydata-centricCompute-intensiveAnalysis-intensiveVisualization-intensiveInterconnectionbetweenmultipletools工作流概述商业工作流VS.科学工作流科学工作流面向数据量,以数据驱动商业工作流面向控制流,事务驱动actornamedata(state)portsInputdataparametersOutputdataWhatflowsthroughanobjectisstreamsofdatacallreturnclassnamedatamethodsWhatflowsthroughanobjectissequentialcontrol科学工作流系统介绍国际上比较成熟的科学工作流系统:学术领域的:KeplerTavernaTriana商业性质的:DiscoveryNetPipeline-PilotLabView科学工作流系统介绍KeplerOpen-Source,Java圣地亚哥超算中心地学、生物信息学、化学等科学工作流系统介绍TavernaOpen-source,JavaOMII-UK生物信息学科学工作流系统介绍TrianaOpen-Source,JavaCardiffUniversity,UK信号、文本、图片处理科学工作流系统介绍商业性质科学工作流科学工作流系统介绍国内相关研究现状目前,国内在科学工作流领域的研究尚处于起步阶段。许多具体领域的研究机构已经开始着手使用国际上成熟的科学工作流系统(如Kepler等)进行涉及科学数据处理的大规模复杂科学实验。一些大学及研究所也开始对科学工作流系统进行了针对性研究,比如武汉大学软件工程国家重点实验室、南京大学计算机软件新技术国家重点实验室等。Kepler系统Kepler允许科学家设计科学工作流,并使用基于网格的分布式计算方法执行这些工作流。Kepler是用于科学数据分析与建模的软件应用程序。Kepler使用一个可视化展现(科学工作流模型,用以展示离散分析和建模组件之间的数据流),使得创建可执行模型的过程简单化。Kepler系统Kepler用户即使没有计算机科学背景,也可以使用标准组件来生成工作流,或者修改现有的工作流模型以满足需要。Kepler集成了一些通用数据分析及可视化软件,如Matlab、R等,为领域科学家提供了方便。高级用户也能从Kepler提供的大量优良特性获益,特别是当使用一个方便理解地以及容易分享的方式呈现一个复杂程序和分析。Kepler系统Kepler构建于另一个开源可视化建模系统PtolemyII之上,为科学家提供了一个方便易用的工作平台。Kepler是一个用户友好的程序,允许科学家通过简单地拖拉、连接一些特定的组件,建立满足条件的科学工作流,而不用手工整合大量的软件程序,也不用借助于计算机程序员的协助。Kepler系统Ptolemy系统由UCBerkeley大学开发,用于研究并发、实时以及嵌入式系统的建模、仿真和设计。Kepler系统很好地继承和发展了Ptolemy面向角色建模的特性,并加入了大量新特性,用于支持科学工作流。主要体现在对科学数据的获取、处理。Kepler系统术语角色(actor):执行一系列复杂操作的组件,是SWF中处理科学数据的实体。参数(parameter):角色可配置的值。端口(port):角色间供相互连接的通道,有输入端口和输出端口。连接(relation):用于连接角色的端口,是数据传递的通道。Kepler系统DirectorActorActorActorPortPortTheDirectorcontrolsthesequenceofactorexecution.Eachactortakesdataonitsinputports,processesthatdata,andsendresultsitsoutputports.ComponentTabWorkflowDisplayPanelSearchableComponentListAnactor‘fires’,placingtheresultingdatainacontainercalleda‘token’.Thedatatokenthenflowsfromtheoutputporttotheinputportofconnectedactors.DataTokenDataTokenBeginworkflowexecutionbuttonActorstransforminputtokensintooutputdatatokenswhichthengetpassedtothenextactorundercontrolofthedirector.Kepler系统在用Kepler/PtolemyII构建的科学工作流中,独立处理具体任务的组件实体被称为“actor”。“actor”之间通信的接口是“port”,有inputport和outputport两种。actor使用“parameter”来配置和定制相关的行为。actor之间通过“channel”相互连接。Kepler系统类型定义良好的面向角色工作流模型Defineaworkflow:W=A,D,Σ,M,ΦA:asetofActorsD:asetofconnectionsΣ:i/o-signatureofWM:adirector(modelofcomputation)Φ:asetofconstraintsKepler系统“director”指定了模型执行的语义,定义了actor如何执行,以及相互之间如何通信。用户定制好的工作流模型,包括一个特定领域的“director”,以及至少一个“actor”。工作流执行的时候,“director”控制数据在“actor”中的流动,按照定制好的流程,调度部署每个“actor”的迭代执行。Kepler系统在Kepler/PtolemyII系统中,定制好的科学工作流模型以XML文件形式存储,该XML文件满足MoML(ModelingMarkupLanguage)XML模式要求。MoML使用DTD(文档类型定义)定义。Kepler系统ContributorsforKepler基于web的科学工作流系统该系统拟提供给用户(具体领域研究人员)一个基于web的简单易用的工具,用于对数据密集型科学实验的全过程。该方案使用Web服务、SRB、FTP等多种方式获取研究所需要的科学数据,并通过实现在web浏览器上的VML/SVG可视化操作界面,定制满足需求的工作流实例,提交给后台Kepler/PtolemyII工作流引擎服务器,经过对所获取的数据调用科学数据专有的处理软件(包括NCL、Matlab、CDO等)进行分析计算,最终得到所需要的可视化结果或是将结果数据反馈给用户。基于工作流的科学数据分析平台分布式数据分布式数据算法模型个性化的Web空间1)数据分析流程可视化定制2)数据和算法的管理…模型选择数据资源定位工作流的计算数据和模型的结合计算结果返回应用结果流程定制模型和数据管理根据结果评价不断迭代科研人员模型管理数据管理基于web的科学工作流系统MiddlewareWorkflowEngine(Kepler)components(acotrs)DatabaseWebModuleInteractionDistributedScientificDataResearchersAlgorithmmodelDataprocessandvisualizationtools体系架构图数据资源层完成对物理资源及分布式资源(大规模科学数据,如IPCC、NCAR等)的存取。算法模型库简单算法:加、减、乘、除等复杂操作:统计、聚类分析等高性能计算环境基于web的科学工作流系统工作流引擎及中间件层提供一个稳定的工作流引擎,并支持资源、引擎、web等之间的通信。使用Kepler:管理actor的分类信息;处理工作流实例的运行;动态添加算法模型(actor)。基于web的科学工作流系统Web接口层提供给用户一个设计良好、方便易用的接口,以组装、查看、执行、管理工作流实例。提供给用于一个一站式服务的web环境,从数据资源获取、结果数据反馈、用户信息管理、及其它服务。使用Ajax等web技术开发。基于web的科学工作流系统数据Datamanager输入reader运算operator分析Scianalyzer输出outputer可视化visualizeStoragesearchNCL,NCOCDO,MATLABNCL,NCOCDO,MATLABNCL,AVSMATLABNCL,MATLAB基于web的科学工作流系统对实验自动化流程提供了以下支持:读写数据rapidprototypingexperimentcomputingsystems隐藏了资源之间整合的细节管理一个实验的整个生命周期Thanks!