サービスローミング

2004 bachelor
既存アプリケーションを利用可能な
サービスローミングフレームワーク
環境情報学部 4年
小泉健吾
(親:duhさん,サブ親:yurayuraさん)
[email protected]
[email protected]
目次
1.
2.
3.
4.
5.
6.
背景
目的
アプローチ
設計
実装と評価
まとめ
背景

情報技術の発達



無線ネットワークの普及
センサの発達
ユビキタスコンピューティング環境の登場


コンピュータやセンサが埋め込まれた空間
ex) Aware Home, Easy Living, Aura
サービスローミング

「サービス」


アプリケーションより提供される機能
「サービスローミング」


サービスの計算機間移送
アプリケーション例

Follow-me ナビゲータ

デバイス切替可能なマルチメディアプレーヤー
サービスローミングアプリケーション例1
Follow-me ナビゲータ
ユーザのGPS,RFID,携帯端末等から位置情報を取
得し,ナビゲータをユーザに近い端末へローミング
公共端末
サービスローミングアプリケーション例2
デバイス切替可能なマルチメディアプレーヤー
ユーザの近くにあるデバイスを検索し,
アプリケーションをローミングさせる
PDA(小画面)
液晶ディスプレイ(大画面)
サービスの移送手法
全移送
1.
•
•
サービスを提供するプロセスを移送
ex) Process Migration
視覚移送
2.
•
•
サービスの視覚部を移送
ex) VNC
状態移送
3.
•
•
サービスの状態を移送
ex) Mobile Object
移送手法の比較
ネットワーク負荷
プラットフォーム依存性
マルチメディアアプリケー
ションへの対応
全移送
×(一時的)
×
○
視覚移送
×(恒常的)
○
×
状態移送
○
○
○
→本研究では,状態移送に焦点を当てる.
関連研究

NOMADS



AgentSpace



Java VM拡張によるアプリケーションの全移送
アプリケーションに応じた資源管理を提供
JavaのSerializeによるアプリケーションの状態移送
エージェントの永続化を実現
Flyingware


メールによるアプリケーションの状態移送
使用APIをバイトコードで書換え,ファイルへのアクセスを制限
問題意識
アプリケーションへの移送機能追加が必要

アプリケーション自身を移送可能状態へ遷移させる機能
スレッドの停止や通信の終了などが該当




アプリケーション開発者に負担が掛かる
追加実装なしでは既存アプリケーションを利用できな
い
本研究の目的

既存アプリケーションを利用可能な
サービスローミングフレームワークの実現

移送機能の追加実装を必要としない既存アプリ
ケーション利用
アプローチ
アプリケーションに対する移送機能の自動追加



ローミング対応化と呼ぶ
移送機能の自動追加手法



実行環境変更による機能追加
ソースコード修正による機能追加
実行コード修正による機能追加
機能追加手法の比較

実行環境変更による機能追加


ソースコード修正による機能追加


ベンダから提供される実行環境を用いる場合,バージョン変更
による保守管理が困難
ソースコードのないアプリケーションに対応不可
実行コード修正による機能追加


実行環境の変化による影響を受け難い
ソースコードのないアプリケーションにも対応
→実行コード修正による機能追加を用いる
移送可能要素と移送不能要素

移送可能要素



プリミティブなデータ型
 ex) int, double, float
実行環境間で一般的に用いられるデータ型
 ex) String, Integer, Component
 (JavaではSerializableインタフェースが実装されたクラス)
移送不能要素

計算機(OS)のリソースに深く依存する機能
 ex) Thread, Socket, FileInputStream
アプリケーション分類に応じた
移送不能要素への対処


アプリケーションの種類に応じ,移送不能要素に対処
分類基準


自己完結型 or 連携型
 単独で動作 or 他のアプリケーションと連携して動作
 対処方針:移送後も通信を継続させる
リソース状態保持型 or リソース状態非保持型
 スレッドやファイル入力の状態に依存 or 非依存
 対処方針:移送後に移送前のリソース状態を復元する
アプリケーションの分類例
分類に応じた移送機能の追加
アプリケーションの内部変数に応じた変換




APIを本フレームワークのAPIに書き換える
連携型

stubによる移送後のセッション継続

ex) Socket sock;  SarariSocket sock;
リソース状態保持型

スレッドやファイル入出力の状態をdumpし,移送先で同期

ex) Thread thread;  SarariThread thread;

参考:Thread Migration[Sekiguchi’00]
設計

サービスローミングフレームワーク「SarariX」

Sararizer



アプリケーション変換機構
アプリケーションをロードし,移送機能を追加(sararize)
Sarari


アプリケーション移送機構
アプリケーションを移送する
SarariXの動作概要
sararize!!
Sararizer

実行コードを変換し,ローミング対応型アプリケーションを生成

変換定義リスト


解析部


変換を要する内部変数を定義.
変換を要する内部変数を解析.
変更部

移送メソッドおよび内部変数メソッドの追加.


移送メソッド
 beforeSarariMigration(移送前)
 afterSarariMigration(移送後)
 sarariEndOfLife(アプリケーションの破棄)
命令セット作成部

メソッド内の命令セットを作成.
・ 内部変数を把握
・ 命令セットの生成
変数型Aの
メソッドA_before()を移送前に,
メソッドA_after()を移送後に
呼び出す
・ 移送メソッドの追加
・ 内部変数メソッドの追加
(A_before(),A_after())
Sarari

アプリケーションを送受信

管理部


移送命令受信部


アプリケーションを管理.
移送命令を受信.
送受信部

アプリケーションを送受信.
実装

SarariXのプロトタイプ実装


SararizerおよびSarariの基本機能を実装
 変換機能および移送機能
単独・状態非保持型アプリケーションを対象とした
対象アプリケーション
実装環境

言語


Java1.4.2
バイトコード処理ライブラリ

BCEL5.1
変換例
(バイトコードの逆アセンブル結果)
• Webよりダウンロードしてきたサンプルプログラムを利用
Sararize
評価方針

定量的評価


Sararizeによるバイトコードサイズの変化
定性的評価

関連研究との比較
定量的評価
sararizeによるバイトコードサイズの変化
計測項目



sararizeによるバイトコードサイズ増加の最小値
-(a)
内部変数メソッド呼出処理の追加によるバイトコードサイズ増
加
-(b)
計測方法


サンプルプログラムに対し,

(a) 移送メソッドのみを追加

(b) 引数なし,引数有り(引数値が同じ,引数値が異なる)の,
3種類の内部変数メソッドを追加



dispose()
setExtendedState(int same)
setExtendedState(int different)

(a) sararizeによるサイズ増加の最小値

370byteの増加
→バイトコードサイズの最低必須増加量は370byte
sararize後
sararize前
0
500
1,000
1,500
バイトコードサイズ(byte)
2,000
(b) 内部変数メソッド呼出処理の追加によるサイ
ズ増加
1675
バイトコードサイズ(byte)

1650
1625
引数なし
引数あり(同じ)
引数あり(異なる)
1600
1575
1550
1525
1500
0
1
2
3
4
5
6
メソッドの呼び出し数
7
8
9
10

sararize後のバイトコードサイズ(S)



m: 呼び出される内部変数メソッド
f(m): mのコンスタントプールエントリ追加による増加量
v(m): mの呼び出しによる増加量
→移送時に呼び出される内部変数メソッドの数に大きく影
響
定性的評価
関連研究との比較
プラットフォーム
依存性
追加実装の必要性
セキュリティ
NOMADS
×
○
○
AgentSpace
○
×
×
Flyingware
○
×
○
SarariX
○
○
×
今後の課題

他のアプリケーションへの対応実装




Thread Migrationを利用したスレッドの状態同期
ファイルのシーケンス同期
スタブによる通信の継続
セキュリティやプライバシへの配慮

アプリケーションが利用可能なリソースの制限
まとめ

目的


アプローチ


既存アプリケーションを再利用可能なサービスローミ
ングフレームワークの実現
実行コード変換によるアプリケーションへの移送機能
自動追加
実装

状態非保持・自己完結型アプリケーションを対象とし,
プロトタイプを作成
関連資料

Sararizer

サービスローミング環境構築フレームワーク「SRAT」の設計と実装



小泉健吾, 守分 滋,徳田英幸
日本ソフトウェア科学会 第3回SPAサマーワークショップ ポスター (2004)
Sarari

GANARI: The Challenge to Create a Micro Smart Hot-spot



Micro Smart Hot-spot Networkを実現するミドルウェアの設計と実装



Kengo Koizumi, Takuro Yonezawa, Shigeru Moriwake, Tomohiro Nagata,
Hideyuki Tokuda
IEEE IWSAWC Poster Session(2004)
米澤拓郎, 小泉健吾, 守分滋, 永田智大, 徳田英幸
情報処理学会 全国大会 デモセッション(2004)
Smart Furniture間の柔軟なサービスローミングを実現するミドルウェアの構築


米澤拓郎, 小泉健吾, 守分滋, 永田智大, 徳田英幸
情報処理学会 第三回ユビキタスコンピューティングシステム研究会(2004)
ありがとうございました
サービスローミングアプリケーション例1
Follow-me ナビゲータ
ユーザのGPS,RFID,携帯端末等から位置情報を取
得し,ナビゲータをユーザに近い端末へローミング
公共端末
サービスローミングアプリケーション例2
デバイス切替可能なマルチメディアプレーヤー
ユーザの近くにあるデバイスを検索し,
アプリケーションをローミングさせる
PDA(小画面)
液晶ディスプレイ(大画面)