Virtual Data関連について

仮想天体観測所 JVO
の基盤技術
鈴村豊太郎† 濱野 智行† 中田秀基† † 松岡 聡†
† 東京工業大学
† † 産業技術総合研究所
DataGrid ミニワークショップ@天文台
12/12
これまでの経緯
今年10月、天文台の JVO (Japanese
Virtual Observatory) プロジェクトとの共同研
究を開始
 現在までに2度のミーティングが行われた
 詳細なアーキテクチャ設計はこれから

DataGrid ミニワークショップ@天文台 12/12
JVO の基盤となる技術
各コンポーネントの実装
→次世代のグリッド基盤 OGSA (Open Grid
Service Architecture)
 シングルサインオンの実現 → MyProxy
 ポータルの自動生成 → Ninf Portal
…

DataGrid ミニワークショップ@天文台 12/12
Open Grid Services Architecture


今年2月 GGF4 (トロント)で IBM と Globus の
チームが発表した次世代のグリッドアーキテクチャ
Web サービスのコンセプトがベース

SOAP (Simple Object Access Protocol)


WSDL (Web Service Description Language)


Web サービスのインタフェースを定義
UDDI (Universal Desc., Description Language)


メッセージの送受信による PRC
Web サービスの検索
Globus の欠点を反省し、統一されたインタフェース上にす
べてのプロトコルを実装しなおす

オブジェクト指向的なアプローチ



すべてのコンポーネントを“グリッドサービス”として抽象化
インタフェースと実装の分離
プログラミングパターンの導入
DataGrid ミニワークショップ@天文台 12/12
Webサービスからグリッドサービスへ
機構
Webサービス
グリッドサービス
オブジェクト参照
なし
GSHとGSRおよびMapper
インターフェイスの表現
WSDL
WSDL + 拡張
メッセージパッシング
SOAP
SOAP (その他の実装も可能)
オブジェクトの検索
UDDI
Registory サービス
オブジェクトの生成
なし
Factory サービス
オブジェクトの破棄
なし
明示的なoperation もしくはソフト
ステイト
オブジェクトの内部状態
なし
グリッドサービスデータ
通知
なし
Notification サービス
DataGrid ミニワークショップ@天文台 12/12
OGSAの現状

仕様自体がまだ討論されている段階



テスト用の実装(Java)がCVSで公開されている
αバージョンが来年1月に公開の予定
まずはGlobusの各モジュールのOGSA化

Globus 3.0


OGSI + OGSIで既存のGRAM,MDSをラップしたもの?
現行のGlobus使用アプリケーションはほぼそのまま移行
その後ネイティブなOGSAアプリケーションが徐々に主流に
なってくる?
→ OGSAが今後普及していくことはほぼ間違いない



多くの企業が独自実装を開始しているとの話
GGF, MLでも活発な議論がなされている
DataGrid ミニワークショップ@天文台 12/12
DASH
- CORBAを用いたLAN内の分散解析環境
DataGrid ミニワークショップ@天文台 12/12
DASH上の各コンポーネントを OGSA のサー
ビスとして実装
OGSA
Service
OGSA
Service
SOAP + GSI
OGSA
Service
DataGrid ミニワークショップ@天文台 12/12
OGSA
Service
シングルサインオンの実現

シングルサインオン
 一度ログインするだけで、すべての資源に自分の権
限でアクセスできる
 Globusによって実現

Globus証明書が必要
 アプリケーションを起動するポータルから証明書をア
クセスできなければならない

MyProxy[NLANR]を使用
 証明書のdelegationを利用した安全な証明書保持機
構
 秘密鍵をネットワーク越しに転送することなくアイデン
ティティを委譲
DataGrid ミニワークショップ@天文台 12/12
MyProxy の概要
1.Deposit user’s
proxy Cert.
User’s
Host
1.
MyProxy
Server
4. Get
User’s cert
2.
3. Request
user’s cert.
Web
browser
User
Grid
Portal
2. Login with
Username &
Passphrase
Grid
Application
6. Invoke
Client program
Using user cert.
Grid Portal
3.
4.
5.
ユーザのプロキシ証明
書を預ける。この際に
パスフレーズを指定
Webブラウザからユー
ザ名とパスフレーズを
入力
ポータルはMyProxy
サーバにアクセス
ユーザのプロキシ証明
書を取得
グリッドアプリケーショ
ンを起動
DataGrid ミニワークショップ@天文台 12/12
ユーザインタフェース

いつでもどこでも解析が行え、ジョブの実行状況
などのモニタリングができる “Web インタフェー
ス”が必要
DataGrid ミニワークショップ@天文台 12/12
Ninf Portal の概要


グリッドポータル構築ツールキット
インターフェイス作成、処理支援
 XMLで記述した情報からインターフェイス部となる
JSP(Java Server Pages)のページを自動作成

グリッドアプリケーション記述支援
 GridRPC



Ninf-Gを使用
ホスト間通信を高度なAPIで隠蔽
ベースにはGlobusを使用
認証にはMyProxy[NLANR]を使用
DataGrid ミニワークショップ@天文台 12/12
Ninf Portal の概要
Grid Application
IDL
IDL
FILE
1.アクセス
JSP
ユーザインタフェース
HTML
3.UI 表示
メタデータ Javaコード
Web
Browser
ユーザ
Ninf-G
Client
2.メタデータをストア
Session
4.データ
サブミット
5.メタデータを取得
6.結果表示
DataHandling
Servlet
Ninf-G
Server
Ninf-G
Server
起動
Web フロント部
DataGrid ミニワークショップ@天文台 12/12
Ninf-G
Server
グリッドアプリケーション部
Grid Application IDL の例
<?xml version="1.0" encoding="shift_jis"?>
<!DOCTYPE application SYSTEM
"JSPGenerator.dtd">
<Application>
<!-- Application Information -->
<Information>
<name> BMI </name>
<location>
/usr/local/bmi/BMIClientC/BMISolver
</location>
実行 <manufacturer>
パス Kento Aida
</manufacturer>
<appdescription>
BMI Application Portal
</appdescription>
</Information>
引数
シーケ
ンス
<ArgumentFormat>
-t $type $uploadfile
</ArgumentFormat>
<!-- ------- Arguments Information ------ -->
<!-- ------- first Argument ------- -->
<Argument>
<argname> uploadfile </argname>
<type>inputfile</type>
各引数
<info> InputFile </info>
<method> upload </method>
情報
<description>
inputfile of data
</description>
</Argument>
<!-- ------- second Argument ------- -->
<Argument>
<argname> type </argname>
<type> string </type>
<info> type </info>
<description>
type of program
</description>
</Argument>
</Application>
DataGrid ミニワークショップ@天文台 12/12
生成されるJSP
<%
int argnumber = 2;
String argformat = "-t $type $uploadfile";
String executablepath =
“/usr/local/bmi/BMIClientC/BMISolver";
String args[]
= {"inputfile","string"};
String namerow[] = {"uploadfile","type"};
String filemethod[] = {"upload","null"};
PortalApplicationDescription obj =
new PortalApplicationDescription(
argnumber, argformat, executablepath,
args, namerow, filemethod);
session.setAttribute("inputs",obj);
%>
<br> Welcome to BMI Application Portal! <br>
<form action="/bmi/servlet/Portal"
name="MyForm" method=post
ENCTYPE="multipart/form-data"
onSubmit="return checkData(this)">
<table border = 3 align = center> <tr>
<td>InputFile</td>
<td><input type = file name = arg0></td>
</tr> <tr>
<td>type</td>
<td><input type = text name = arg1></td>
</tr> </table>
<center>
<input type = submit align = center
value = "submit">
</center>
</form>
Java Code部
HTML部
•メタ情報を定義、
•セッションに保存
•インターフェイス
DataGrid ミニワークショップ@天文台 12/12
現状と今後の予定
現在リリースされている OGSA を用いて、計
算サービス Ninf-on-OGSA を実装中
 詳細なアーキテクチャの設計
 天文台との定期的なミーティングを開く

DataGrid ミニワークショップ@天文台 12/12