您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > VO中的科学工作流技术
VO中的科学工作流技术郑晟昆明理工大学云南省计算机技术应用重点实验室科学工作流的基本概念•科学工作流(ScientificWorkflow)是指将一系列在科学研究中所遇到的数据管理、计算、分析、展现等工作变成一个个独立的服务,再把这些服务通过数据链接组合在一起,满足研究人员在科学实验和数据处理中的需要,从而实现相应的处理与科学计算。科学工作流针对科学研究工作的特点,专注于大规模科学处理(e-Science)的定制,对科学研究提供辅助科学发现的环境。科学工作流的特征•科学工作流往往会表现出比较特别的特征,例如,它们可以是数据密集型、计算密集型、分析密集型和可视化密集型,因此在科学领域涵盖了非常广泛的应用范围,从低层次网格工程师感兴趣的底层工作流,到高层次的知识发现工作流。因此,工作流步骤可以有完全不同的粒度,可以以多种不同的方式来实施,例如:Shell脚本,WebService,本地应用程序调用,或复杂子工作流组合等[1]。当前常见的SWF系统•Kepler()•Pegasus()•Vistrails()•Triana()VO中应用Kepler的优势和问题•Kepler介绍•Kepler的优点•应用Kepler的优势•在VO中应用Kepler的一些问题Kepler的介绍•Kepler项目由美国科学基金NSF支持,UCBerkeley和SanDiego超级计算中心联合,基于Java开发的,目的是打造一个通用的科学工作流集成平台,并且将整合多种已有的计算模型。Kepler的优点•一个通用开放的平台,并不是针对某个特定学科•通过WebService访问资源和服务•良好的人机交互界面•工作流的重用•良好的扩展性(定制Actor等)•DataProvenance在VO中应用Kepler的优势•Kepler是基于JAVA的,可以运行在多个平台上(Unix、Linux、Solaris、Windows等)•Kepler是基于BSD协议的开源软件,可以为了满足VO的要求而进行源码扩展和修改•可以使用Kepler现有的大量通用Actor(Math、Statistic、IO、WebService)在VO中应用Kepler的问题•在Kepler中没有提供VO用到的Actor(数据、科学计算)•现有Kepler工作流的流程调度是否满足VO的要求•现有Kepler工作流的数据类型是否满足VO的要求Kepler的ActorCustomize•基于Actor的工作流模型•Actor-oriented的API•Sample:ScaleActor基于Actor的工作流模型•工作流由一些独立的Actor组成•Actor通过Port进行通信•Actor有自己的Parameter•工作流的执行顺序由Director定义(调度)基于Actor的好处•基于Actor的工作流模型带来行为和调度的分离,从而使Actor带来更大重用性•可以分别扩展Actor和DirectorActor-oriented的API•execution-preinitialize,type-check,run*,wrapUp•run–initialize,iteration*•iteration-prefire,fire,postfireexecution:表示Director执行调用一个工作流run:调用Actor的initialize方法,并执行iteration步骤iteration:对每个Actor的prefire,fire,postfire方法进行调用Actorexecutioninitialize()IterationswrapUp()prefirefire()postfire()ActorMethods•initialize():初始化Actor的状态变量•prefire():返回一个布尔量来决定是否调用fire方法比如调用webservice,在这个方法验证远程服务是否可用,来决定是否调用fire方法•fire():actor的主要执行方法–如获得actor本身参数,读取输入数据,进行科学运算,产生输出数据ActorMethods(续)•postfire():决定actor执行是否完成•wrapUp():释放资源或者展示最终结果ScaleActor:ConstructorScaleActor:输入数据比例缩放publicclassScaleActorextendsTypedAtomicActor{publicTypedIOPortinput;publicTypedIOPortoutput;publicParameterfactor;publicScaleActor(CompositeEntitycontainer,Stringname)throwsNameDuplicationException,IllegalActionException{super(container,name);input=newTypedIOPort(this,input,true,false);output=newTypedIOPort(this,output,false,true);factor=newParameter(this,factor,newIntToken(1));output.setTypeAtLeast(input);}publicvoidfire()throwsIllegalActionException{…}privateTokenscale(Tokeninput,Tokenfactor)throwsIllegalActionException{…}}ScaleActor:firemethodpublicvoidfire()throwsIllegalActionException{if(input.hasToken(0)){Tokenin=input.get(0);//获得输入TokenfactorToken=factor.getToken();//比例因子Tokenresult;//输出结果result=scale(in,factorToken);output.send(0,result);}}ScaleActor:scalemethodprivateTokenscale(Tokeninput,Tokenfactor)throwsIllegalActionException{if(inputinstanceofArrayToken){Token[]argArray=((ArrayToken)input).arrayValue();Token[]result=newToken[argArray.length];for(inti=0;iargArray.length;i++){result[i]=scale(argArray[i],factor);}returnnewArrayToken(result);}else{returnfactor.multiply(input);}}下一步工作•当前VO中提供的数据和科学计算来构建actor,以满足各个天文计算的需要-WebService-遗留系统•数据类型的需求•流程调度的需求谢谢
本文标题:VO中的科学工作流技术
链接地址:https://www.777doc.com/doc-7471912 .html