モバイルエージェントシステムの実装

モバイルエージェントシステムの実装
モバイルエージェントシステムの実装











エージェント移動(状態とコードの一括移送)
エージェント移動の特徴
システム構成
エージェントプログラム
コールバックメソッド
エージェントプログラム例
AgentSpace: ランタイムシステム
AgentSpace:システム構成
既存システムのエージェント移動の問題
AgentSpace:エージェント移動
AgentSpace:実装技術の特徴
モバイルエージェントシステムの実装
エージェント移動(状態とコードの一括移送)

エージェントのコードと状態が移動
インスタンス変数は自動的直列化・移動
ただし、メソッド変数、実行カウンタ、スレッドは対象外
コンピュータ

エージェント
実行状態
プログラムコード
コンピュータ
状態とコードの一括転送
直列化された実行状態
プログラムコード
実行システム
エージェント
実行状態
移動
プログラムコード
実行システム
圧縮・暗号化
モバイルエージェントシステムの実装
エージェント移動の特徴

エージェント移動では状態とコードの一括移送

一回通信で移動可能
→ 高速なエージェント移動
c.f. 他のシステムの多くは複数回の通信が必要




移動中エージェントは圧縮・暗号化
→通信速度及びセキュリティを確保

移動後は通信切断が発生してもよい
→ 携帯端末や無線通信に対応

移動失敗時には複数回トライの後、移動元に戻る

モバイルエージェントシステムの実装
システム構成

エージェントは実行状態・プログラムコード共に移動
エージェント
エージェント
実行状態
実行状態
プログラムコード
プログラムコード
エージェントの出発
エージェント管理・サービス
実行システム
Java言語 処理系
TCP/IP
コンピュータA
エージェントの到着
圧縮・暗号化
移送中
エージェント
バイト列化され
た実行状態
プログラム
コード
移動
エージェント管理・サービス
実行システム
Java言語 処理系
TCP/IP
コンピュータB
ネットワーク
モバイルエージェントシステムの実装
エージェントプログラム

モーバイルエージェントは

Java言語により記述(Appletに類似した記述)

状態変更時に呼び出されるコールバックメソッド
を定義

移動、永続化、通信などをランタイムシステムに
依頼・実現

Java言語の各種ライブラリを利用可能
モバイルエージェントシステムの実装
コールバックメソッド


エージェントはコールバックメソッドを定義
システムはエージェントが状態変化の前後に所定の
コールバックメソッドを呼び出す。
移動中
dispatch()
実行前
create()
コールバック
メソッド呼び出し
実行中
arrive()
destroy()
停止
コールバック
メソッド呼び出し
システム
(エージェント管理)
モバイルエージェントシステムの実装
エージェントプログラム例

コールバックメソッド
生成直後、移動前後、終了直前にランタイムシステムより
所定のコールバックメソッドが呼び出される

移動中
arrive()
dispatch()
実行前
実行中
create()
停止
destroy()
public class HelloWorld extends Agent {
public HelloWorld() {}
public void create() {
add(new Label("Hello World"));
show();
}
public void arrive() {
show();
}
public void dispatch(URL url) {
dispose();
}
public void destroy() {
dispose();
}
}
モバイルエージェントシステムの実装
AgentSpace: ランタイムシステム

ランタイムシステムの構成
エージェント
エージェント
エージェント
コールバック
メソッド呼び出し
エージェント
メッセージ
エージェント
エージェント直列
エージェント
エージェント
実行制御
化(バイト列化)
移動機構
移動機構
エージェント実行用ランタイムシステム
Java言語仮想機械
モバイルエージェントシステムの実装
AgentSpace:システム構成

エージェントは実行状態・プログラムコード共に移動
エージェント
エージェント
実行状態
実行状態
プログラムコード
プログラムコード
エージェントの出発
エージェント管理・サービス
実行システム
Java言語 処理系
ハードウェア
コンピュータA
エージェントの到着
圧縮・暗号化
移送中
エージェント
永続化された
実行状態
プログラム
コード
移動
エージェント管理・サービス
実行システム
Java言語 処理系
ハードウェア
コンピュータB
ネットワーク
モバイルエージェントシステムの実装
既存システムのエージェント移動の問題

Java言語ベースのモーバイルエージェントシステム
の問題
移動
エージェント
エージェント
実行状態
実行状態
クラス1
クラス2
既存システムの
ランタイムシステム
コンピュータ1
実行状態
クラス1
クラス2
プログラムコード1 を要求
クラス1
プログラムコード2 を要求
クラス2
通信回数が増大
→ エージェント移動時間の増加
クラスファイルの移送タイミングは不確定
→ エージェント移動後も通信接続が必要
既存システムの
ランタイムシステム
コンピュータ2
モバイルエージェントシステムの実装
AgentSpace:エージェント移動

実行状態とプログラムコードを一括転送
→ 通信は1回
状態とコードの一括転送

エージェント
実行状態
プログラムコード
エージェント
直列化された実行状態
プログラムコード
ランタイムシステム
実行状態
移動
プログラムコード
ランタイムシステム
圧縮・暗号化
コンピュータ
コンピュータ
一回の通信でエージェント実行に必要な情報をすべて転送
→ 移動後は通信切断があっても処理の継続が可能
モバイルエージェントシステムの実装
AgentSpace:実装技術の特徴





OS・ハードウェア・通信プロトコルに非依存
エージェント移動の効率化
通信切断を考慮したエージェント移動
モーバイルエージェントの階層化
コンパクトなシステム構成