ワークフローシステムの開発 ワークフロー言語の必要性 XMLワークフロー言語の仕様 ワークフロー言語により、処理手順を記述し、

Slides:



Advertisements
Similar presentations
情報アプリケーション1 2006 年 10 月 12 日 第四回資料 担当 重定 如彦. 目次 データの送信とフォーム クイズ CGI 複数のパーツのデータの分割方法 配列変数.
Advertisements

オブジェクト指向言語・ オブジェクト指向言語演習 中間試験回答例. Jan. 12, 2005 情報処理技術基礎演習 II 2 オブジェクト指向言語 中間試験解説 1  (1) 円柱の体積(円柱の体積 = 底面の円の面積 x 高さ) を求めるプログラムを作成しなさい。ただし、出力結果は、入 力した底面の円の半径.
数学のかたち 数学解析の様々なツール GRAPSE編 Masashi Sanae.
シーケンス図の生成のための実行履歴圧縮手法
Webサービスに関する基本用語 Masatoshi Ohishi / NAOJ & Sokendai
JPAを利用した RESTful Webサービスの開発
JavaScript プログラミング入門 2006/11/10 神津.
東京工科大学 コンピュータサイエンス学部 亀田弘之
プログラミング言語としてのR 情報知能学科 白井 英俊.
背景 我々の研究室で開発しているJavaプログラム解析フレ ームワークでは,解析情報はメモリ上に保持される 問題点
talend活用事例 ・ナビゲータグラフのカスタマイズにおける事例 ・CSVダウンロードでのカスタマイズ事例
Lightweight Language Weekend ls-lRシェル
情報伝播によるオブジェクト指向プログラム理解支援の提案
C言語 配列 2016年 吉田研究室.
第13回 プログラミングⅡ 第13回
最新情報技術を活用した超大規模 天文データ解析機構の研究開発
プログラミング実習 1・2 クラス 第 1 週目 担当教員:  渡邊 直樹.
JQueryでAjax 藤田@ジャストプレイヤー ※参考しまくり文献 jQuery日本語リファレンス.
プログラミング演習Ⅰ 課題2 10進数と2進数 2回目.
WSDL と JAX-RPC 年10月20日 Webサービス II (第4回) WSDL と JAX-RPC 年10月20日.
ML 演習 第 7 回 新井淳也、中村宇佑、前田俊行 2011/05/31.
スクリプト言語を用いたPHITSの連続実行
JVO (Japanese Virtual Observatory) の研究開発 V03c
11.6 ランダムアクセスファイル 11.7 StreamTokenizerクラス
プログラミング言語入門 手続き型言語としてのJava
第10回 2007年6月29日 応用Java (Java/XML).
プログラミング 2 ファイル処理.
その他の図 Chapter 7.
VO ツール利用法 TOPCAT 国立天文台 天文データセンター 白崎 裕治.
第10回関数 Ⅱ (ローカル変数とスコープ).
MATLAB測位プログラミングの 基礎とGT (2)
インラインスクリプトに対するデータフロー 解析を用いた XHTML 文書の構文検証
画像処理プログラムの説明.
実行時情報に基づく OSカーネルのコンフィグ最小化
只見町 インターネット・エコミュージアムの「キーワード」検索の改善
JVOの研究開発 (メタデータ交換の国際対応)
JVO の研究開発 -- バーチャル天文台に対応した データサービスの実装 --
コードクローン検出ツールを用いた ソースコード分析システムの試作と プログラミング演習への適用
JVO (Japanese Virtual Observatory) の研究開発
P n ポインタの基礎 5 q m 5 7 int* p; int 型の変数を指すポインタ int* q; int 型の変数を指すポインタ int n=5, m=7; int 型の変数 int array[3]; int* pArray[3]; p = &n; ポインタにアドレスを代入しているのでOK.
Talkプログラムのヒント 1 CS-B3 ネットワークプログラミング  &情報科学科実験I.
PHP 概要 担当 岡村耕二 月曜日 2限 平成22年度 情報科学III (理系コア科目・2年生)
プログラミング言語論 第四回 理工学部 情報システム工学科 新田直也.
第5章 計算とプログラム 本章で説明すること ・計算の概観と記述法 ・代表的な計算モデル ・プログラムとプログラム言語.
プログラムの基本構造と 構造化チャート(PAD)
コンパイラ 2011年10月20日
JVOの研究開発 (プロトタイプ2の実装) 田中昌宏、白崎裕治、本田敏志、 大石雅寿、水本好彦(国立天文台)、
B演習(言語処理系演習)第2回 田浦.
項目間の対応関係を用いた XBRL財務報告書自動変換ツールの試作
JAVAバイトコードにおける データ依存解析手法の提案と実装
JavaScriptを含んだHTML文書に対する データフロー解析を用いた構文検証手法の提案
統計ソフトウエアRの基礎.
アルゴリズムとプログラミング (Algorithms and Programming)
C++ 構文解析 構文解析器の状態保存と復元
白崎裕治, 田中昌宏, 本田敏志, 大石雅寿, 水本好彦 (国立天文台), 安田直樹 (東大宇宙線研), 増永良文 (お茶の水大)
プログラム分散化のための アスペクト指向言語
エイリアス関係を考慮した Javaプログラム用静的スライシングツール
プログラムの一時停止時に 将来の実行情報を提供するデバッガ
コンパイラ 2012年10月11日
JVOプロトタイプ システムの開発 DEWS2004 2004年 3月 5日 田中 昌宏、白崎 裕治、 本田 敏志、
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
オブジェクト指向言語における セキュリティ解析アルゴリズムの提案と実現
情報処理Ⅱ 2005年11月25日(金).
プログラム理解のための 付加注釈 DocumentTag の提案
情報処理Ⅱ 小テスト 2005年2月1日(火).
情報処理Ⅱ 第3回 2004年10月19日(火).
情報処理Ⅱ 2006年10月20日(金).
分岐(If-Else, Else if, Switch) ループ(While, For, Do-while)
情報処理Ⅱ 第8回:2003年12月9日(火).
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
Presentation transcript:

ワークフローシステムの開発 ワークフロー言語の必要性 XMLワークフロー言語の仕様 ワークフロー言語により、処理手順を記述し、 JVO 口頭発表 3月29日(木) 10:36-11:12 [F会場] V04a 全体進捗 大石雅寿 V05a すばる望遠鏡データ解析機能の導入 白崎裕治 V06b 分光データの取り込み 川野元聡 V07b ワークフロー機能の向上 田中昌宏 V07b  JVOの研究開発(ワークフロー機能の向上) 田中昌宏、白崎裕治、大石雅寿、川野元聡、本田敏志、水本好彦、大江将史(国立天文台)、 安田直樹(東大宇宙線研)、増永良文(お茶の水女子大)、 石原康秀、堤純平(富士通)、中本啓之、小林佑介、坂本道人(セック) jvo 検索 → http://jvo.nao.ac.jp/ バーチャル天文台 (VO) では、世界中に分散配置された膨大な天文データアーカイブを高度に使いこなすことを目的とし、データアーカイブへのアクセス・連携方法の標準化、およびその標準に基づくデータベース/ソフトウェアシステムの開発を行っている。 我々が開発を進めてきたJVOでは、ネットワークを通じて提供されるサービスを利用し、それらを連携したデータ解析を可能にするため、ワークフロー機能の開発を行っている。昨年度は、基本的な制御構造および並列処理実行の記述が可能なワークフロー言語を設計し、そのワークフローに基づく処理システムの開発を行った。本年度の開発では、ワークフローの機能を向上させるため、ビルトイン関数を記述・追加する仕組みを開発した。これによって処理機能を充実させることで、ワークフローの利便性を向上させる。また、ワークフロー言語を拡張してテキストデータ1行ごとの処理機能を追加することにより、柔軟なデータ処理の記述を可能にした。さらに実行状況ステータスの導入により、ワークフロー処理の実行状況の把握を容易にする。ワークフローを記述する言語は、現在は計算機での扱いが容易なXMLで開発しているが、将来的にはユーザが容易にGUIを用いて記述できるようにする計画である。 ワークフロー言語の必要性 選択条件指定 パラメータ指定 解析処理の流れの例: 他のデータとの 組み合わせetc. 解析フロー1 天体データ 結果データ1 データ選別 解析処理1 解析処理2 解析フロー2 結果データ2 . . . . . . . このような手順を手作業でおこなうのは非効率。 ワークフロー言語により、処理手順を記述し、 自動実行ができれば効率的な処理が可能。 データ取得先? 解析フローN 結果データN 入力データを変えて同じフローを実行 パラメータを変えて同じ解析の繰り返し 実行状況の確認 解析状況・エラーを見て手順を修正 ワークフローシステムの開発 JVOポータルからワークフローを実行 2006年度の開発 ワークフロー言語仕様の見直し、及び機能追加 タグを整理して記述量を低減 配列定義の導入 awk構文 (テキストファイル1行毎のループ) の導入 そのほか制限事項の撤廃 ビルトイン関数設定機能 利用可能なコマンドやその利用方法を、設定ファイルに書くことにより、ビルトイン関数を登録できる。 ステータス・ログ機能の設計 ワークフローエディタ ワークフローを記述、あるいは雛形を編集 実行状況モニタ 実行状況、成功・失敗の回数を表示 ワークフロー ログ機能 アクティビティステータス ワークフローの各実行要素(アクティビティ)に実行状況のステータスを付加 counter=実行回数、 failed=失敗回数 ワークフローログ アクティビティの実行状況を実行順に出力 ※ ワークフロー単位で作成 (両者を関連づけて表示する機能を実装予定) ログ機能の設計 ログ管理クラス → ログファイルの作成/書き込み (Log4J) ログ検索クラス → ログファイルの検索 ログに出力される項目 時刻 ログレベル … INFO, DEBUG, ERROR アクティビティID 種別 … 実行前 / 実行中 / 実行後 今後の方針 IVOAにおける世界標準の策定に貢献する ワークフローの書き易さの向上 XMLの手書きは困難。そのため、 テンプレートの充実 簡単な文法の言語との変換 GUIワークフロービルダ などの対応を予定。 GUIワークフロービルダの例: JFLOW ストラスブールデータセンターで開発されたワークフロービルダ ワークフロー言語 開発の目標 複数のサービスをつなぐ一連の処理(ワークフロー)の記述 Webサービスなどの外部サービスの利用 ワークフローの自動実行 並列実行 実行状況をリアルタイムで確認 実行結果をログから確認 実装のポイント WF言語として、XMLを採用 字句・構文解析の開発が不要 XMLスキーマによる仕様設計 実行エンジンとして、Groovyを利用 実行エンジンの開発が不要 XMLからGroovyへの変換ルールを設計 (XSLTを利用) XMLワークフロー言語の仕様 基本的なプログラム言語と同じ制御構文に加え、並列実行、ファイル行ループ、外部サービス実行などの機能を備える。 ビルトイン関数実行 input要素を引数としてビルトインコマンドを実行し、戻り値をoutputの変数に格納。 引数として、varRefで変数、literalで値を記述。 変数宣言 variables タグ内の variable タグで変数を定義し、value タグで初期値を設定。 連続実行 実行要素の列を逐次的に実行。 条件ループ 条件を満たす間、繰り返し実行。 <command xsi:type="builtin" name="executeQuery"> <input> <varRef>sql</varRef> </input> <output> <varRef>vot</varRef> </output> </command> <variables> <variable name="tableName" type="String"> <value>ivo://jvo/subaru/spcam</value> </variable> <variable name="magLimit" type="double"> <value>21.0</value> <variable name="id" type="int"> <value>1</value> <variable name="url" type="String[]"/> <variable name="vot" type="VOTABLE[]"/> <variable name="params" type="Object[]"/> <variable name="map" type="Map"/> <variable name="list" type="List"/> </variables> <sequence> . . . </sequence> <while condition="condition"> . . . </while> ループ・並列ループ リスト/配列の要素毎、あるいは指定回数だけ繰り返し実行。  属性: 並列実行 実行要素の列を並列実行。 <for init="0" max="n" variable="i" step="1"> . . . </for> <flow> . . . </flow> <parfor items="a" variable="i[_count]"> . . . </parfor> ビルトイン関数一覧 (追加可能) ファイル名のパターンマッチング filenameMatch VOTableを座標によるクロスマッチ結合を行う。 xmatch ファイルをソート sort ファイルを削除 rm VOTableから指定したカラムを取り出す getColumnByName 文字列をスペース区切りで分割する。 split 文字列中の正規表現に一致する部分文字列全てを置き換える。 replace 擬似パス名で指定されたファイルを表すFileオブジェクトを返す。 getFile データハンドラオブジェクトを返す。 loadAsDataHandler ファイルの内容を文字列として返す。 loadAsString VOTableをファイルに保存 storeVOTable VOTableを読み込んで、JAXBオブジェクトを返す。 loadVOTable Webサービスを呼び出す invoke ワーキングディレクトリを取得 getCurrentWorkDir JVOQLに基づいて検索実行する executeQuery Photometric redshift を計算するサービスを呼び出す executeHyperZ 指定されたファイルを移動する copyText 格納変数の増分 step 格納変数の初期値 init 繰り返し回数 max リスト、配列、VOTable items 格納する変数 variable 変数代入 literal属性に値を記述して代入。または、ref属性に変数または式を指定し、値を代入。 <set name="where" literal="where region=Circle(ra,dec),@SIZE@)"/> <set name="sql" ref="select+from+where"/> ファイル行ループ ファイルから行を読み込み、行毎に繰り返し実行。  属性: 条件分岐 条件が真ならばthenを、偽ならばelseを実行。 複数条件分岐 複数のcaseから条件に合うものを実行し、どれにも合わなければotherwiseを実行。 <awk file="tmp.dat" variable="l"> . . . </awk> <if condition="qsoName==l"> <then> . . . </then> <else> </else> </if> <switch> <case condition="param==1"> . . . </case> <otherwise> </otherwise> </switch> 終了行 to 開始行 from 格納する変数 variable 区切り文字(正規表現) separator 入力ファイル file