ユビキタスコンピューティングの ための ハンドオーバー機能付きRMIの ...
-->
1
ユビキタスコンピューティングの
ための
ハンドオーバー機能付きRMIの実装
東京工業大学 千葉研究室
学部4年 須永 豊
2
ユビキタスコンピューティング
背景
シームレスなデバイス環境 - プラグアンドプレイ
周囲のコンピュータが動的に作業環境を構築
シームレスなネットワーク環境 - ハンドオーバー機能
通信を継続したままネットワークを切り替え
Office
McDonald etc…
動的に切り替え
3
ハンドオーバー機能とは
突然の通信断に対処
通信再開後、支障なく処理を再開
現状ではそれぞれのアプリケーションに
個別に実装されている
ケーブル引き抜き
再開
環境A
環境B
プログラムの移動
4
HORMIの提案
ハンドオーバー機能付きRMI
ミドルウェアで実現
ケーブル引き抜き
retry
環境A
環境B
RMI
RMI
サーバオブジェクトの移動
メソッド呼び出しが完了するまでretry
通信再開後、近くのサーバへオブジェクトの移動
5
HORMIの基本プロトコル
server
メソッド呼び出しのリクエスト
IDを振る
ID取得
メソッドのパラメータの送信
IDを送信
結果の送信
ローカルで
メソッド実行
結果を
保存する
client
6
メソッド呼び出しの
retry 機能
失敗したら再呼び出し
通信断はSocketExceptionで検出
二重実行の防止
呼び出し毎に一意なIDを振り、結果を保存
再接続時の処理
メソッド実行済みの時 → 結果のみを再送
メソッド未実行の時 → メソッド呼び出しの再実行
7
通信断時のプロトコル
切断される
タイミング
メソッド呼び出し
の再実行の流れ
client
server
メソッド呼び出しのリクエスト
IDを送信
引数等の送信
結果の送信
8
不要になった実行結果の破棄
client
server
パラメータと一緒に
そのIDを送信
IDを送信
結果を消してよい
メソッド呼出しのIDを
調べる
ID取得後、不要な結果を破棄
マルチスレッドを考慮して決定
不要になった実行結果:
メソッド呼び出しが正常に終了している
そのメソッド呼び出しに対して、retryは行われない
9
通信再開後、指定したマシンにサーバプログラムを移動
サーバオブジェクトのマイグレーション
オブジェクトの直列化
スレッド移送は行わない
retry
必要なデータを
要求
オブジェクトの送信
切断
10
HORMIの実装
Stub generator
ハンドオーバーのプロトコルを埋め込んだstubコードを自動生成
skeltonはリフレクションを用い、すべてのstubに対応
Code translator
起動クラスのマスタクラスへの参照をstubクラスへと置き換え
Public class Launcher {
void start() {
Sample s = new Sample();
..
}
}
Public class Launcher {
void start() {
SampleStub
s
= new SampleStub();
}
}
11
実験
JavaRMI、ハンドオーバー機能を取り除いたHORMI、HORMIを用いて比較実験を行った
実験環境
OS : LINUX(Red
Hat 7.0)
PENTIUMⅢ733MHZ
SDRAM 512MB
OS : WINDOWS XP HomeEdition
PENTIUMⅢ700MHZ
SDRAM 256MB
40.4
4.67
2.19
0 byte
40.5
4.95
2.55
1 kbyte
41.8
15.92
15.34
0.1 Mbyte
140
141
166
1 Mbyte
HORMI
ハンドオーバー無しHORMI
JavaRMI
40.4
4.67
2.19
LINUX
4.70
4.31
1.90
WINDOWS
HORMI
ハンドオーバー無しHORMI
JavaRMI
OS
表1
1回あたりのメソッド呼び出しにかかる時間
(単位
msec)
表2
引数のサイズによるメソッド呼び出しにかかる時間
(単位
msec/回数)LINUXを使用
サイズ
12
まとめ
HORMI:ハンドオーバー機能付き
RMI
メソッド呼び出しの
retry 機能
突然の通信断に対処
サーバオブジェクトの移動
Stubの自動生成
課題
性能の向上
通信部の改良
入出力の問題
Javaプログラム以外のファイルも扱うプログラムに対する対処
使用しているファイルの移動も行う機能の追加
サーバの自動的な切り替え機能
ネットワークの状況を検知し、自動的にホストを選択する機能の追加
ウエッブサイト:-------http://www.pdffind.com/pdf/7p4ng/
このファイルにダウンロード