仮想天体観測所 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
© Copyright 2026 ExpyDoc