ユビキタスコンピューティング

Download Report

Transcript ユビキタスコンピューティング

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