ユビキタスコンピューティングの ための ハンドオーバー機能付きRMIの実装

Slides:



Advertisements
Similar presentations
1 安全性の高いセッション管理方 式 の Servlet への導入 東京工業大学 理学部 千葉研究室所属 99-2270-6 松沼 正浩.
Advertisements

Web アプリをユーザー毎に カスタマイズ可能にする AOP フレームワーク
シーケンス図の生成のための実行履歴圧縮手法
モバイルエージェントシステムの実装 エージェント移動(状態とコードの一括移送) エージェント移動の特徴 システム構成 エージェントプログラム
Windows HPC Server を使ってみる
ファイルキャッシュを考慮したディスク監視のオフロード
JPAを利用した RESTful Webサービスの開発
アプレット (Applet)について.
HTTPプロトコルとJSP (1) データベース論 第3回.
リファクタリングのための 変更波及解析を利用した テスト支援ツールの提案
同期的にアドバイスを活性化できる分散動的アスペクト指向システム
帯域外リモート管理の継続を 実現可能なVMマイグレーション手法
(B2) 親: minami, kazuki 多様な認証機器に対応する 認証システム (B2) 親: minami, kazuki.
ユーザ毎にカスタマイズ可能な Web アプリケーション用のフレームワークの実装
VMマイグレーションを可能にするIDSオフロード機構
RMI ソフトウェア特論 第6回 /
Flyingware : バイトコード変換による 安全なエージェントの実行
過負荷時のWebアプリケーションの 性能劣化を改善する Page-level Queue Scheduling
J2EEアプリケーションにおける アプリケーションレベルスケジューリング
チーム FSEL 立命館大学情報理工学部 ソフトウェア基礎技術研究室
型付きアセンブリ言語を用いた安全なカーネル拡張
過負荷時の分散ソフトウェアの 性能劣化を改善する スケジューリングの提案
第9章 例外処理,パッケージ 9.1 例外処理 9.2 ガーベッジコレクション.
安全なモバイルエージェント システム Flyingware のための 仮想ディスクの実現
暗黙的に型付けされる構造体の Java言語への導入
オブジェクト指向プログラムにおける エイリアス解析手法の提案と実現
IaaS型クラウドにおける インスタンス構成の動的最適化手法
Java Bytecode Modification and Applet Security
ユーザ毎にカスタマイズ可能な Webアプリケーションの 効率の良い実装方法
実行時情報に基づく OSカーネルのコンフィグ最小化
仮想メモリを用いた VMマイグレーションの高速化
複数ホストに分割されたメモリを用いる仮想マシンの監視機構
仮想計算機を用いたサーバ統合に おける高速なリブートリカバリ
既存Javaプログラム向け 分散化支援システムの開発
Office 2010 ボリュームライセンス認証の概要と KMS認証のトラブルシューティング
東京工業大学 情報理工学研究科 数理・計算科学専攻 千葉研究室 栗田 亮
クラウドにおけるVM内コンテナを用いた 自動障害復旧システムの開発
未使用メモリに着目した 複数ホストにまたがる 仮想マシンの高速化
複数ホストにまたがって動作する仮想マシンの障害対策
ソフトウェア保守のための コードクローン情報検索ツール
Java における 先進的リフレクション技術
ウェブアプリケーションサーバの Degradation Schemeの 制御に向けて
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
仮想環境を用いた 侵入検知システムの安全な構成法
Peer-to-Peerシステムにおける動的な木構造の生成による検索の高速化
アクセス集中時の Webサーバの性能に対する OSの影響
アルゴリズムとプログラミング (Algorithms and Programming)
マイグレーションを支援する分散集合オブジェクト
福岡工業大学 情報工学部 情報工学科 種田研究室 于 聡
仮想マシンと物理マシンを一元管理するための仮想AMT
Josh : バイトコードレベルでのJava用 Aspect Weaver
同期処理のモジュール化を 可能にする アスペクト指向言語
仮想マシンに対する 高いサービス可用性を実現する パケットフィルタリング
「マイグレーションを支援する分散集合オブジェクト」
VMリダイレクト攻撃を防ぐための 安全なリモート管理機構
vc-1. Visual Studio C++ の基本操作 (Visual Studio C++ の実用知識を学ぶシリーズ)
状況に応じて適切な 例外処理が行なえる アスペクト指向分散環境実験の 支援ツール
プログラム分散化のための アスペクト指向言語
エイリアス関係を考慮した Javaプログラム用静的スライシングツール
異種セグメント端末による 分散型仮想LAN構築機構の設計と実装
Visual Studio 2013 の起動と プロジェクトの新規作成 (C プログラミング演習,Visual Studio 2019 対応) 金子邦彦.
IPmigrate:複数ホストに分割されたVMの マイグレーション手法
複数ホストにまたがるVMの 高速かつ柔軟な 部分マイグレーション
特定ユーザーのみが利用可能な仮想プライベート・ネットワーク
Dynamic Function Placement for Data-intensive Cluster Computing
オブジェクト指向言語における セキュリティ解析アルゴリズムの提案と実現
ベイジアンネットワークと クラスタリング手法を用いたWeb障害検知システムの開発
ソケットの拡張によるJava用分散ミドルウエアの高信頼化
第6章 インターネットアプリケーション 6.1 インターネットアプリケーション 6.2 Javaによるネットワーク処理 6.3 電子メール
Josh : バイトコードレベルでのJava用 Aspect Weaver
Presentation transcript:

ユビキタスコンピューティングの ための ハンドオーバー機能付きRMIの実装 東京工業大学 千葉研究室 学部4年  須永 豊

ユビキタスコンピューティング 背景 シームレスなデバイス環境 - プラグアンドプレイ シームレスなネットワーク環境 - ハンドオーバー機能 ユビキタスコンピューティング   背景 シームレスなデバイス環境 - プラグアンドプレイ 周囲のコンピュータが動的に作業環境を構築 シームレスなネットワーク環境 - ハンドオーバー機能 通信を継続したままネットワークを切り替え 動的に切り替え Office McDonald etc…

ハンドオーバー機能とは 突然の通信断に対処 現状ではそれぞれのアプリケーションに 個別に実装されている 通信再開後、支障なく処理を再開 プログラムの移動 環境A 環境B 再開 ケーブル引き抜き 現状ではそれぞれのアプリケーションに 個別に実装されている

HORMIの提案 ハンドオーバー機能付きRMI ミドルウェアで実現 メソッド呼び出しが完了するまでretry サーバオブジェクトの移動 環境A RMI RMI ケーブル引き抜き 環境B retry メソッド呼び出しが完了するまでretry 通信再開後、近くのサーバへオブジェクトの移動

HORMIの基本プロトコル client server メソッド呼び出しのリクエスト IDを振る IDを送信 ID取得 メソッドのパラメータの送信 ローカルで メソッド実行 結果を 保存する 結果の送信

メソッド呼び出しの retry 機能 失敗したら再呼び出し 二重実行の防止 通信断はSocketExceptionで検出 呼び出し毎に一意なIDを振り、結果を保存 再接続時の処理 メソッド実行済みの時 → 結果のみを再送 メソッド未実行の時 → メソッド呼び出しの再実行

通信断時のプロトコル client server メソッド呼び出しのリクエスト IDを送信 引数等の送信 結果の送信 メソッド呼び出し の再実行の流れ 引数等の送信 切断される タイミング 結果の送信

不要になった実行結果の破棄 不要になった実行結果: メソッド呼び出しが正常に終了している そのメソッド呼び出しに対して、retryは行われない client server IDを送信 結果を消してよい メソッド呼出しのIDを 調べる パラメータと一緒に そのIDを送信 ID取得後、不要な結果を破棄 マルチスレッドを考慮して決定

通信再開後、指定したマシンにサーバプログラムを移動 サーバオブジェクトのマイグレーション 通信再開後、指定したマシンにサーバプログラムを移動 オブジェクトの直列化 スレッド移送は行わない オブジェクトの送信 必要なデータを    要求 切断 retry

HORMIの実装 Stub generator ハンドオーバーのプロトコルを埋め込んだstubコードを自動生成 skeltonはリフレクションを用い、すべてのstubに対応 Code translator 起動クラスのマスタクラスへの参照をstubクラスへと置き換え Public class Launcher { void start() { Sample s = new Sample(); .. } SampleStub s = new SampleStub();

引数のサイズによるメソッド呼び出しにかかる時間 実験 表1  1回あたりのメソッド呼び出しにかかる時間 (単位 msec) OS JavaRMI ハンドオーバー無しHORMI HORMI LINUX 2.19 4.67 40.4 WINDOWS 1.90 4.31 4.70 JavaRMI、ハンドオーバー機能を取り除いたHORMI、HORMIを用いて比較実験を行った 実験環境 OS : LINUX(Red Hat 7.0) PENTIUMⅢ733MHZ SDRAM 512MB OS : WINDOWS XP HomeEdition PENTIUMⅢ700MHZ SDRAM 256MB 表2    引数のサイズによるメソッド呼び出しにかかる時間 (単位 msec/回数)LINUXを使用 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 サイズ

まとめ 課題 HORMI:ハンドオーバー機能付き RMI 性能の向上 入出力の問題 サーバの自動的な切り替え機能 メソッド呼び出しの retry 機能 突然の通信断に対処 サーバオブジェクトの移動 Stubの自動生成 課題 性能の向上 通信部の改良 入出力の問題 Javaプログラム以外のファイルも扱うプログラムに対する対処 使用しているファイルの移動も行う機能の追加 サーバの自動的な切り替え機能 ネットワークの状況を検知し、自動的にホストを選択する機能の追加