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