郑晟 昆明理工大学 云南省计算机技术应用重点实验室

Slides:



Advertisements
Similar presentations
LOGO 第 9 章 Java Servlet 和 JSP 编程 孙焘. 重点: servlet 编程原理 1 servlet 的基础类与编程实现 2 JSP 编程原理 3 JSP 的常用语法 4.
Advertisements

单元二:面向对象程序设计 任务二:借书卡程序设计.
3.2 Java的类 Java 类库的概念 语言规则——程序的书写规范 Java语言 类库——已有的有特定功能的Java程序模块
JAVA 编 程 技 术 主编 贾振华 2010年1月.
6. 6 Overloading methods and constructors 6
项目6 通用堆栈.
面向对象的程序设计(一).
MVC Servlet与MVC设计模式.
Part 2 開發Android應用程式的流程
第一章 面向对象程序设计.
程設一.
第二章 JAVA语言基础.
第三章 控制结构.
實驗四:單位轉換程式.
程式設計實作.
2.1 基本資料型別 2.2 變數 2.3 運算式與運算子 2.4 輸出與輸入資料 2.5 資料型別轉換 2.6 實例
物件導向程式設計 (Object-Oriented rogramming)
专题4:JSP脚本和指令.
例外處理(Exception Handling)
Java基础 JavaSE异常.
JSP自定义标签技术的分析与应用 ----Custom Tag 的分析与应用
Classes Lecturer: 曾學文.
第六章 类的扩展与继承.
程式敘述執行順序的轉移 控制與重複、方法 Lecturer:曾學文.
第四次课后作业 1 问题描述: 将谜题定义为:包含一个初始位置,一个目标位置,以及用于判断是否是有效移动的规则集。
崑山科技大學資訊管理系 伺服網頁程式設計 系統開發細部流程 教師:游峰碩.
Java 程式設計 講師:FrankLin.
厦门大学数据库实验室 MapReduce 连接
程式設計實作.
软件建模精要 面向对象软件建模技术.
程式撰寫流程.
2018/12/3 面向对象与多线程综合实验-网络编程 教师:段鹏飞.
Java程序设计 第9章 继承和多态.
委派與執行緒 建國科技大學 資管系 饒瑞佶.
软件建模与UML.
辅导课程十三.
中国矿大计算机学院杨东平 第5章 接口和包 中国矿大计算机学院杨东平
例外處理與 物件序列化(Exception Handling and Serialization of Objects)
9.1 程式偵錯 9.2 捕捉例外 9.3 自行拋出例外 9.4 自定例外類別 9.5 多執行緒
第9讲 Java的继承与多态(一) 类的继承 子类的创建 方法覆盖.
Java程序设计 第2章 基本数据类型及操作.
Ch02-基礎語法.
C/C++/Java 哪些值不是头等程序对象
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
P2P聊天工具.
第11章 递归 张坤龙 天津大学计算机学院.
简单工厂模式.
辅导课程八.
JAVA 编 程 技 术 主编 贾振华 2010年1月.
《JAVA程序设计》 语音答疑 辅导老师:高旻.
一個基於Web Service的 洪氾預警系統
第二章 Java基本语法 讲师:复凡.
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
第五次课后作业 1 问题描述: 将谜题定义为:包含一个初始位置,一个目标位置,以及用于判断是否是有效移动的规则集。
2019/5/3 JAVA Socket(UDP).
第二章 Java语法基础.
第五讲 金融证券化.
第二章 Java基本语法 讲师:复凡.
方法進階及物件導向基礎 Lecturer: 楊昌樺.
硬幣遊戲解題詳解 王豐緒 銘傳大學資訊工程學系.
第6單元 6-1 類別的繼承 (Class Inheritance) 6-2 抽象類別 (Abstract Class)
辅导课程十二.
助教:廖啟盛 JAVA Socket(UDP) 助教:廖啟盛
JAVA 程式設計與資料結構 第三章 物件的設計.
第2章 Java语言基础.
判斷(選擇性敘述) if if else else if 條件運算子.
第二章 Java基础语法 北京传智播客教育
輸出執行結果到螢幕上 如果要將執行結果的文字和數值都「輸出」到電腦螢幕時,程式要怎麼寫? class 類別名稱 {
第二章 Java基本语法 讲师:复凡.
第6章 继承和多态 伍孝金
Presentation transcript:

郑晟 昆明理工大学 云南省计算机技术应用重点实验室 VO中的科学工作流技术 郑晟 昆明理工大学 云南省计算机技术应用重点实验室

科学工作流的基本概念 科学工作流(Scientific Workflow)是指将一系列在科学研究中所遇到的数据管理、计算、分析、展现等工作变成一个个独立的服务,再把这些服务通过数据链接组合在一起,满足研究人员在科学实验和数据处理中的需要,从而实现相应的处理与科学计算。科学工作流针对科学研究工作的特点,专注于大规模科学处理(e-Science)的定制,对科学研究提供辅助科学发现的环境。

科学工作流的特征 科学工作流往往会表现出比较特别的特征,例如,它们可以是数据密集型、计算密集型、分析密集型和可视化密集型,因此在科学领域涵盖了非常广泛的应用范围,从低层次网格工程师感兴趣的"底层工作流" ,到高层次的"知识发现工作流"。因此,工作流步骤可以有完全不同的粒度,可以以多种不同的方式来实施,例如:Shell脚本, Web Service,本地应用程序调用,或复杂子工作流组合等[1]。

当前常见的SWF系统 Kepler(http://www.kepler-porject.org) Pegasus(http://pegasus.isi.edu) Vistrails(http://www.vistrails.org) Triana(http://www.trianacode.org)

VO中应用Kepler的优势和问题 Kepler介绍 Kepler的优点 应用Kepler的优势 在VO中应用Kepler的一些问题

Kepler的介绍 Kepler项目由美国科学基金NSF支持,UC Berkeley和San Diego超级计算中心联合,基于Java开发的,目的是打造一个通用的科学工作流集成平台,并且将整合多种已有的计算模型。

Kepler的优点 一个通用开放的平台,并不是针对某个特定学科 通过Web Service访问资源和服务 良好的人机交互界面 工作流的重用 良好的扩展性(定制Actor等) Data Provenance

在VO中应用Kepler的优势 Kepler是基于JAVA的,可以运行在多个平台上(Unix、Linux、Solaris、Windows等) Kepler是基于BSD协议的开源软件,可以为了满足VO的要求而进行源码扩展和修改 可以使用Kepler现有的大量通用Actor(Math、Statistic、IO、Web Service)

在VO中应用Kepler的问题 在Kepler中没有提供VO用到的Actor(数据、科学计算) 现有Kepler工作流的流程调度是否满足VO的要求 现有Kepler工作流的数据类型是否满足VO的要求

Kepler的Actor Customize Actor-oriented的API Sample:ScaleActor

基于Actor的工作流模型 工作流由一些独立的Actor组成 Actor通过Port进行通信 Actor有自己的Parameter 工作流的执行顺序由Director定义(调度)

基于Actor的好处 基于Actor的工作流模型带来行为和调度的分离,从而使Actor带来更大重用性 可以分别扩展Actor和Director

Actor-oriented的API execution - preinitialize, type-check, run*, wrapUp run – initialize, iteration* iteration - prefire, fire, postfire execution:表示Director执行调用一个工作流 run:调用Actor的initialize方法,并执行iteration步骤 iteration:对每个Actor的prefire, fire, postfire方法进行调用

Actor execution initialize() Iterations wrapUp() prefire fire() postfire()

Actor Methods initialize(): 初始化Actor的状态变量 prefire(): 返回一个布尔量来决定是否调用fire方法 比如调用web service,在这个方法验证远程服务是否可用,来决定是否调用fire方法 fire(): actor的主要执行方法 如获得actor本身参数,读取输入数据,进行科学运算,产生输出数据

Actor Methods(续) postfire(): 决定actor执行是否完成 wrapUp(): 释放资源或者展示最终结果

ScaleActor:Constructor ScaleActor:输入数据比例缩放 public class ScaleActor extends TypedAtomicActor { public TypedIOPort input; public TypedIOPort output; public Parameter factor; public ScaleActor(CompositeEntity container, String name) throws NameDuplicationException, IllegalActionException { super(container, name); input = new TypedIOPort(this, "input", true, false); output = new TypedIOPort(this, "output", false, true); factor = new Parameter(this, "factor", new IntToken(1)); output.setTypeAtLeast(input); } public void fire() throws IllegalActionException {…} private Token scale(Token input, Token factor) throws IllegalActionException {…}

ScaleActor:fire method public void fire() throws IllegalActionException { if (input.hasToken(0)) { Token in = input.get(0); //获得输入 Token factorToken = factor.getToken(); //比例因子 Token result; //输出结果 result = scale(in, factorToken); output.send(0, result); }

ScaleActor:scale method private Token scale(Token input, Token factor) throws IllegalActionException { if (input instanceof ArrayToken) { Token[] argArray = ( (ArrayToken) input).arrayValue(); Token[] result = new Token[argArray.length]; for (int i = 0; i < argArray.length; i++) { result[i] = scale(argArray[i], factor); } return new ArrayToken(result); else { return factor.multiply(input);

下一步工作 当前VO中提供的数据和科学计算来构建actor,以满足各个天文计算的需要 -Web Service -遗留系统 数据类型的需求 流程调度的需求

谢谢