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(小画面) 液晶ディスプレイ(大画面)
© Copyright 2024 ExpyDoc