Flyingware : バイトコード変換による 安全なエージェントの実行

Slides:



Advertisements
Similar presentations
アルゴリズムとプログラミン グ (Algorithms and Programming) 第6回:クラスとインスタンス クラスの宣言 アクセス修飾子 インスタンスの生成 (new キーワード) this キーワード フィールドとメソッドの実際の定義と使い 方 クラスの宣言 アクセス修飾子 インスタンスの生成.
Advertisements

オブジェクト指向 言語 論 第八回 知能情報学部 新田直也. 多相性(最も単純な例) class A { void m() { System.out.println( “ this is class A ” ); } } class A1 extends A { void m() { System.out.println(
独習JAVA Chapter 6 6.6 クラスの修飾子 6.7 変数の修飾子 結城 隆. 6.6 クラスの修飾 abstract インスタンス化できないクラス。1つまたは複数のサブクラスで 実装してはじめてインスタンス化できる。 final 継承されたくないことを明示する。これ以上機能拡張 / 変更でき.
プログラミング第5回 1 while ループ 文字列の操作
モバイルエージェントシステムの実装 エージェント移動(状態とコードの一括移送) エージェント移動の特徴 システム構成 エージェントプログラム
Linuxを組み込んだマイコンによる 遠隔監視システムの開発
Chapter11-4(前半) 加藤健.
記 憶 管 理(1) オペレーティングシステム 第9回.
WebサービスII (第10回) 2007年11月28日 植田龍男.
情報理工学部 情報システム工学科 ラシキアゼミ3年 H 岡田 貴大
プログラミング演習II 2004年10月19日(第1回) 理学部数学科・木村巌.
メモリ暗号化による Android端末の盗難対策
担当:青木義満 情報工学科 3年生対象 専門科目 システムプログラミング システムプログラミング プロセス間通信(パイプ) 担当:青木義満
モバイルエージェントの応用 概要 モーバイルエージェントの応用分野 AgentSpaceシステム エージェント移動 応用:ソフトウェアの配信
アルゴリズムとデータ構造 2011年6月13日
プログラミングIII演習 第1回目.
第20章 Flyweight ~同じものを共有して無駄をなくす~
センサネットワークにおける グルーピング機構
アスペクト指向プログラミングを用いたIDSオフロード
モバイルP2Pを用いた携帯電話 動画配信手法の提案 第3回
細かい粒度でコードの再利用を可能とするメソッド内メソッドのJava言語への導入
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
細かい粒度で コードの再利用を可能とする メソッド内メソッドと その効率の良い実装方法の提案
独習JAVA 6.8 コンストラクタの修飾子 6.9 メソッドの修飾子 6.10 ObjectクラスとClassクラス 11月28日(金)
安全なモバイルエージェント システム Flyingware のための 仮想ディスクの実現
オブジェクト指向 プログラミング 第十三回 知能情報学部 新田直也.
暗黙的に型付けされる構造体の Java言語への導入
第15章 TFTP:トリビアル・ファイル転送プロトコル
VMのメモリ暗号化によるクラウド管理者への情報漏洩の防止
オブジェクト指向プログラムにおける エイリアス解析手法の提案と実現
VM専用仮想メモリとの連携による VMマイグレーションの高速化
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
Java Bytecode Modification and Applet Security
プログラミング演習I 2003年6月25日(第10回) 木村巌.
オブジェクト指向 プログラミング 第七回 知能情報学部 新田直也.
プログラミング言語論 第五回 理工学部 情報システム工学科 新田直也.
アルゴリズムとデータ構造 補足資料5-1 「メモリとポインタ」
通信機構合わせた最適化をおこなう並列化ンパイラ
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
オブジェクト指向言語論 第八回 知能情報学部 新田直也.
未使用メモリに着目した 複数ホストにまたがる 仮想マシンの高速化
オブジェクト指向 プログラミング 第十ニ回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
モバイルP2Pを用いた携帯電話 動画配信手法の提案 第2回 FM10019 種田研究室 古江和栄
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
Java における 先進的リフレクション技術
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
プログラミング言語論 第六回 理工学部 情報システム工学科 新田直也.
アルゴリズムとプログラミング (Algorithms and Programming)
プログラミング言語論 第十三回 理工学部 情報システム工学科 新田直也.
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
プログラミング言語論 第十一回 理工学部 情報システム工学科 新田直也.
アルゴリズムとデータ構造 2012年6月11日
「マイグレーションを支援する分散集合オブジェクト」
サブゼミ第7回 実装編① オブジェクト型とキャスト.
アルゴリズムとデータ構造1 2009年6月15日
ユビキタスコンピューティングの ための ハンドオーバー機能付きRMIの実装
第5回 プログラミングⅡ 第5回
オブジェクト指向言語論 第五回 知能情報学部 新田直也.
第2回 開発環境とゲーム 05A1030 佐々木 和也.
JAVA入門⑥ クラスとインスタンス.
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
プログラムの一時停止時に 将来の実行情報を提供するデバッガ
アルゴリズムとデータ構造 2010年6月17日
ソフトウェア工学 知能情報学部 新田直也.
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
MPIを用いた 並列処理 情報論理工学研究室 06‐1‐037‐0246 杉所 拓也.
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
ソケットの拡張によるJava用分散ミドルウエアの高信頼化
Josh : バイトコードレベルでのJava用 Aspect Weaver
Presentation transcript:

Flyingware : バイトコード変換による 安全なエージェントの実行 大塚紀子(筑波大) 千葉滋(東工大) 新城靖(筑波大) 板野肯三(筑波大)

背景 近年、様々な機器がネットワーク接続を持つようになってきている モバイルエージェントシステム ネットワークの効率的な利用 進化するソフトウェアへの柔軟な対応 回線品質が変化する無線ネットワークに適応 モバイルエージェントシステム ネットワーク上を移動し、処理を行うことが出来るプログラム いきなりFlyingwareの説明からスタートしたらおかしいと言われたので、とりあえず…。

Flyingware 電子メールで移動するモバイルエージェントシステム Java言語が実行できる環境があれば利用可能 実行時に必要なクラスを自動的にjarファイルに格納して移動 送信者 Agent (Result) Agent 受信者 一般的なエージェントと比較しながら、Flyingwareの利点を強調。 (プラットフォームが不必要) Agent2 Move 受信者(2)

Flyingware 電子メールで移動するモバイルエージェントシステム 通信回数が大幅に削減される ソフトウェアの進化に柔軟に対応 常時接続の必要はない Move 送信者 受信者 Agent (Result) Agent2 受信者(2) クライアント・サーバの問題と比較しながら、利点を強調。 Server A Client A … Request Response

アプリケーション例 商品のカタログ 商品の注文 ファイルの移動も必要 商品の効果的な提示のため、画像ファイルが大量に必要 注文書を他のアプリケーションからも使いたい 企業 Agent Agent 注文 顧客 ファイルをそのまま利用できることを説明しないと、 メモリ中に保持しているのと変わらないと思われる。 (仮想ディスクたる所以を説明) ので、ファイルの読み込み・書き込みの両方を実現したい(している)、 ことを強調。 Agent ファイルの移動も必要 顧客(2)

Javaのセキュリティ・ポリシー 機能制限による安全性の確保 プログラムがアクセスできる領域を制限することが出来る 悪意を持ったプログラムであったとしても被害を最小限にする Agent Malicious Access Javaセキュリティ・ポリシー 「セキュリティ・ポリシー機能」という言葉は厳密にはおかしいそうなので、 「機能」をとった。                NO ディスク OK file file

アクセス制限下でのファイルの移動 移動先のセキュリティ・ポリシーがディスク参照を完全に禁止していたら? プラットフォームを持たないFlyingwareは、ファイルをコピーできない Agent Access Javaセキュリティ・ポリシー fileをコピー できない       NO ディスク file

プログラミングの煩雑さ 移動前にファイルをバイト配列に変換し、メモリに保持 変換したバイト配列を メモリ中に保持 プログラミングが面倒 Agent 変換 01000110 01101101 10001100 変換したバイト配列を メモリ中に保持 バイト配列 表示 スライド29がここにくる予定だったが、比較できるしやすいように スライド11と同じ図にした方がいいかもしれないらしい。 読み込み プログラミングが面倒 File

本研究の提案: 仮想ディスク 仮想ディスクの概念 エージェントは自由に使える 仮想ディスク メモリ上にあり、同じAPIで利用可能 本研究の提案: 仮想ディスク 仮想ディスクの概念 Agent エージェントは自由に使える Access 仮想ディスク メモリ上にあり、同じAPIで利用可能 Javaセキュリティ・ポリシー セキュリティ・ポリシーで許可 されている領域にアクセス可能         NO ディスク OK 移動先のディスク(実ディスク)

仮想ディスクを利用したファイルの移動 実ディスクの一部をメモリ中にコピーし、同じインタフェースで利用可能 移動 Agent + 仮想ディスク Agent Agent Access    仮想    ディスク file 図はこんなものでよろしいでしょうか…。    仮想    ディスク file 移動 Javaセキュリティ・ポリシー Javaセキュリティ・ポリシー copy     OK    ディスク NO ディスク file 顧客側 企業側

プログラマの負担軽減 プログラマは普通のファイル・アクセスAPIを使ってエージェントを書ける 仮想 file ディスク file 表示 変換 Agent Agent 表示 変換 01000110 01101101 10001100 バイト配列 表示 読み込み 読み込み    ディスク    仮想    ディスク file file

本システムの実装 バイトコード変換器 仮想ディスク用のクラスライブラリ 変換前: プログラムは実ディスクにアクセス 変換前: プログラムは実ディスクにアクセス 変換後: プログラムは仮想ディスクにアクセス 仮想ディスク用のクラスライブラリ Java 標準のクラスライブラリと同じAPIを提供 エージェントに含まれて移動する

アプリケーションの開発方法 アプリケーション開発の流れ エージェント生成 バイトコード変換 仮想 ディスク 実行 アプリケーション public void Ponta() { int x; x ++; } アプリケーション プログラム エージェント生成 Agent + 仮想ディスク Agent バイトコード変換についてちゃんと説明する。 図ではプログラムが書いてあるので、実際はバイトコードレベルで変換することを強調。 バイトコード変換 Access public void Ponta() { int x ; x --; } 仮想 ディスク 一部変更 実行

バイトコード変換 実ディスクにアクセスするようなプログラムを、仮想ディスクにアクセスするプログラムに自動変換 変換前 変換後 バ イ ト コ Agent 変換前 変換後 バ イ ト コ | ド 変 換 Access Agent 仮想ディスク Access Javaセキュリティ・ポリシー Javaセキュリティ・ポリシー         NO 実ディスク         NO 実ディスク OK OK

アプリケーションの変換(前) 実ディスク上のファイルにアクセスするアプリケーションを自動変換する public class Foo() { FileInputStream fin = new FileInputStream(ファイル名); : fin.read(); }

アプリケーションの変換(後) 実ディスク上のファイルにアクセスするアプリケーションを自動変換する public class Foo() { ByteArrayInputStream fin = VirtualDisk.factory(ファイル名); : fin.read(); }

仮想ディスク用のクラスライブラリ 仮想ディスク内でのファイルデータ取得法 public class VirtualDisk() { static Hashtable files; public static ByteArrayInputStream factory(String filename) { byte[] b = files.get(filename); return new ByteArrayInputStream(b); }

関連研究 SoftwarePot [Kato2002] 本研究 特別なミドルウェアにより、モバイルエージェントが特定のディスク領域にしかアクセスできないように制限 システムコールの引数の書き換えにより実現 エージェントの移動先で特別なソフトウェアが必要 本研究 バイトコード変換により実現 エージェントの移動先で特別なソフトウェアが不要

まとめ バイトコード変換を使って、安全にエージェントを実行する方法を提案した 今後の課題 安全にエージェントを実行できる プログラマの負担を軽減する 実ディスクを持たない携帯端末でも利用できる 今後の課題 プログラム変換機Javassist を使って実装 発表はここまで!!