Presentation is loading. Please wait.

Presentation is loading. Please wait.

プログラム分散化のための アスペクト指向言語

Similar presentations


Presentation on theme: "プログラム分散化のための アスペクト指向言語"— Presentation transcript:

1 プログラム分散化のための アスペクト指向言語
西澤無我 学籍番号 

2 動機 – 既存プログラムの分散化 既存プログラムの各機能を複数のマシンに分散させたい そのためには 既存の分散プログラミング支援ツール
ex. 遠隔 GUI の操作    遠隔ホストのディスプレイに    JFrameオブジェクトを表示、etc そのためには プログラムを機能により分割 分割した各パーツがお互いに    通信しながら動作するように書き換える 既存の分散プログラミング支援ツール ex. JavaRMI 遠隔ホスト アプリケーション ホスト

3 JavaRMI による分散化 JavaRMIの制約に従って以下のプログラムを手で記述し、利用する これらの作業は大変骨が折れる
遠隔クラスのメソッドをインターフェースとして定義 遠隔サービスを利用するクライアントクラスを記述 独自のコンパイラでスタブまたはスケルトンを生成 etc … これらの作業は大変骨が折れる

4 Addistant プロジェクト 既存プログラムをバイトコ ード変換により自動的に 分散化することができる 分散化の指針を既存プロ
   bytecode アプリケーション ホストbytecode bytecode 変換 遠隔ホスト 分散化の   指針 既存プログラムをバイトコ ード変換により自動的に   分散化することができる 分散化の指針を既存プロ   グラムと分離したファイル   に書くことができる

5 分散化の指針の分離 既存プログラムから分散化に関する記述を分離する必要性 プログラム全体の保守性が高まる
既存プログラムの可読性が保持される 分散環境の修正、変更があれば、分散化の指針のみを修正、変更すればよい Advanced Separation of Concerns として近年注目されている技術である

6 Addistant の分散化モデル 旧版モデル 既存プログラムの セマンティクスを保持 しながら分散させる
例えば、 2 つの遠隔ホスト 上で対戦する Tic-Tac-Toe を作れない 元々1つの Window を2つに アプリケーション ホスト 遠隔ホスト2 遠隔ホスト1 異なる分散化モデルも必要

7 研究の成果 : ORB の差し換え機能の実現 ORB の役割 ORB が分散化モデルを実装 以下の機能を実現 遠隔オブジェクト生成
変換後 bytecode ORB アプリケーション ホスト 遠隔 ネットワーク ORB の役割 以下の機能を実現 遠隔オブジェクト生成 遠隔メソッド呼び出し   などの分散オブジェクトのリクエストを作成、受信のための手段を提供している ORB が分散化モデルを実装 ユーザ定義の ORB クラスで、Addistant のデフォルト ORB を差し換えることができるようにした ユーザ定義の ORB クラスは RequestBrokable インターフェースを実装

8 ユーザ定義 ORBの例: 多重化ORB 標準ORBの 分散化 多重化ORBの分散化 TicTacToe Windowを1個生成 二重に生成
遠隔ホスト アプリケーション ホスト 二重に生成 TicTacToe ORB Windowを1個生成 遠隔ホスト1 多重化ORB ORB アプリケーション ホスト 遠隔ホスト2

9 ユーザ定義 ORBの例: 多重化ORB 標準ORBの 分散化 多重化ORBの分散化 TicTacToe メソッド呼出 同じ引数で 二重に呼出
遠隔ホスト アプリケーション ホスト 同じ引数で 二重に呼出 TicTacToe ORB メソッド呼出 遠隔ホスト1 多重化ORB ORB アプリケーション ホスト 遠隔ホスト2

10 分散化の指針の記述 分散化の指針 多重化ORBの実装 <remote name=“rmt”>
<orb classname=“RequestMultiplyingBroker”>  <remote name=“rmt”> <host name=“taro” …/> <host name=“yulian” …/>    </remote> invokeRemoteMethod(…) { for (int i = 0;i < stdorb.length; ++i) { stdorb[i].invokeRemoteMethod(…); }

11 実装状況 旧版の Addistant に相当の機能はほぼ完成 ORB の差し換え機能を実現 全部で 3700 行
Tic-Tac-Toe の実装が完成 全部で 3700 行 動作している対戦型 Tic-Tac-Toe

12 まとめ 新版 Addistant を設計・実装した
異なる分散化モデルに対応できる ORB の実装をユーザ定義のクラスにより差し換え可能にした ユーザ定義ORBの例 多重化ORB 対戦型 Tic-Tac-Toe を作成した

13 今後の方針 オブジェクト配置の指定を、new 式のあるクラスやメソッドの種類といった生成文脈に応じて細かく指定
ネットワーク・ストリームの実装の差し換え


Download ppt "プログラム分散化のための アスペクト指向言語"

Similar presentations


Ads by Google