MobileSpaces: A Next-Generation Mobile Agent System
description
Transcript of MobileSpaces: A Next-Generation Mobile Agent System
![Page 1: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/1.jpg)
Ichiro Satoh
MobileSpaces: A Next-Generation MobiMobileSpaces: A Next-Generation Mobile Agent System le Agent System
お茶の水女子大学理学部情報科学科お茶の水女子大学理学部情報科学科
佐藤一郎佐藤一郎Email: [email protected]: [email protected]
![Page 2: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/2.jpg)
Ichiro Satoh
発表概要発表概要
1 既存のモーバイルエージェントシステムの問題点2 階層化モーバイルエージェントとエージェント間移動3 システム設計・実装4 デモンストレーション5 まとめ
モーバイルエージェントの階層構造・移動を導入したモーバイルエージェントの実現システム及び応用システムを提案• エージェントの合成手法の提供• (複数または個別)エージェントの機能の動的変更・拡張• 計算環境・リソースの相違への対応• 計算環境への依存部分と非違損部分の分離
![Page 3: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/3.jpg)
Ichiro Satoh
モーバイルエージェントモーバイルエージェント
•エージェントは自律的に移動先(コンピュータ)を選択・移動•移動先において処理を継続•エージェント間通信
コンピュータBネットワーク
プログラム移動
コンピュータA
エージェント間通信
計算処理
特徴:• コンピュータ間通信回数の最小化• コンピュータ間の非同期協調• 負荷分散・耐故障性
![Page 4: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/4.jpg)
Ichiro Satoh
研究背景(1/2)研究背景(1/2)
次世代の分散システムとしてモーバイルエージェントが注目されている
モーバイルエージェントの応用:古典的な分散検索jや負荷分散だけでなく、
• 通信プロトコルのトンネル化・カプセル化• 遠隔フィルタリング• 遠隔システム管理• 耐故障性• ワークフロー・グループウェア• パーソナルアシスタント• 簡易な分散プログラミング
![Page 5: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/5.jpg)
Ichiro Satoh
研究背景(2/2)研究背景(2/2)
数多くのモーバイルエージェントシステムが提案・実装
Java言語によるものVoyager (ObjectSpace 社 ) 、
Aglets (IBM 社 ) 、Odessey ( General Magic 社)Plangent ( 東芝 ) 、MOA (Open Group) 、Mole (Stuttgart 大 ) 、AgentSpace ( お茶大 ) 、 etc
Java言語以外によるものTelescript (General Magic 社 ) 、SafeTcl ( Sun 社)
Agent-Tcl (Dartmouth 大 ) 、 etc
規格・標準化Mobile Agent Facility Specification ( OMG 社)Mobile Agent Specification (FIPA)
しかし、問題も多い・・・
![Page 6: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/6.jpg)
Ichiro Satoh
問題問題
既存のモーバイルエージェントシステムの問題:
• モーバイルエージェントの合成手法が欠如– 大規模アプリケーションの開発が困難
• 特定の動作環境に依存– 特定のOS/通信プロトコル以外では動作不能
• 移動先コンピュータの計算環境・リソースの相違– 多様な計算環境・リソースを考慮したエージェントプログラム
が必要
• セキュリティ
![Page 7: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/7.jpg)
Ichiro Satoh
問題:プログラム粒度問題:プログラム粒度
既存のモーバイルエージェントシステム:• 計算や移動の単位は単体エージェントのみ• メッセージ通信によるエージェントの疎結合
問題: 複数エージェントのグループ化・合成手法が欠如
複数モーバイルエージェントによる大規模システム開発は困難
![Page 8: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/8.jpg)
Ichiro Satoh
問題:動作環境への依存問題:動作環境への依存
既存のモーバイルエージェントシステムの問題点:
• 特定の動作環境を前提としたシステム構成
しかし、OS/ハードウェア、通信方式は多様性
解決策:
• エージェントプログラム:
→ 移動先の計算環境への動的適応性
• ランタイムシステム
→ 計算環境への依存部分と非依存部分を分離
![Page 9: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/9.jpg)
Ichiro Satoh
方針(1/2)方針(1/2)
モーバイルエージェントの基本計算メカニズムとして2つの概念を導入:
• モーバイルエージェントの階層化他のモーバイルエージェントを入れ子状に内包可能
• エージェント間の移動エージェントはコンピュータだけでなく、他のモーバイルエージェントにも移動可能
![Page 10: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/10.jpg)
Ichiro Satoh
方針(2/2)方針(2/2)
• モーバイルエージェントの階層化• モーバイルエージェント間移動
エージェント
間移動Agent A Agent B
Agent C Agent DAgent E
エージェントの階層構造を保持したまま移動
エージェント
間移動Agent A Agent B
Agent C Agent DAgent E
エージェントのプログラムコードと実行状態が移動し、移動先で処理の継続が可能
移動可能なプレース
![Page 11: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/11.jpg)
Ichiro Satoh
エージェント階層化のメリットエージェント階層化のメリット
エージェントの階層的構成・移動により
モーバイルエージェントの階層的合成
エージェントのグループ化・構造化、エージェント粒度の多様化
動的変更・拡張性をもつシステム構成モーバイルエージェントによる各種機能・サービスの提供
エージェント移動として計算
各種操作をエージェントの移動として統一的に記述・実現
![Page 12: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/12.jpg)
Ichiro Satoh
モーバイルエージェントの階層的合モーバイルエージェントの階層的合成成
複数モーバイルエージェントよりシステム(モーバイルエージェント)を構成
c.f. コンポーネントウェア
モーバイルエージェントとして各種機能の実現
Computer
機能2機能2
機能3 機能3
機能5機能5
機能4機能4
機能2機能2
機能1機能1
MobileAgent
Mobile AgentMobileAgent
MobileAgent
MobileAgentMobile
Agent
MobileAgent
モーバイルエージェント合成体として構成された
システムまたはモーバイルエージェント
![Page 13: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/13.jpg)
Ichiro Satoh
ネットワーク
動的変更・拡張性をもつシステム構動的変更・拡張性をもつシステム構成成
モーバイルエージェントにより、動的な適応・拡張性をもつシステムを実現
→ 機能更新・拡張用エージェントをシステムに移動
Computer
機能2機能2
機能3 機能3
機能5機能5
機能4機能4
機能2機能2機能1
機能1
MobileAgent
Mobile AgentMobileAgent
MobileAgent
MobileAgentMobile
AgentMobileAgent
エージェントの移動
エージェント移動によるオンラインバージョンアップ
新機能新機能
機能変更・拡張用エージェント
動的な適応性・拡張性をもつ• モーバイルエージェントによる応用システム• モーバイルエージェントの実現システム(ランタイム)
エージェントの置換・拡張
![Page 14: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/14.jpg)
Ichiro Satoh
エージェント階層(1/3)エージェント階層(1/3)
外側エージェントは内側エージェントに対して• サービスを提供
各種アプリケーションの機能、エージェント移動、永続化、エージェント間通信
• リソースを提供ファイル、各種入出力、外部環境の情報・制御対象
Mobile Agent B
Mobile Agent A
移動・通信・リソースのサービス要求
![Page 15: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/15.jpg)
Ichiro Satoh
エージェント階層(2/3)エージェント階層(2/3)
内側エージェントは一つ外側のエージェントのサービス・リソースを利用
移動Mobile Agent B
他の外部エージェントに移動することによりサービス内容を動的変更
Mobile Agent A
(サービス内容2を提供)
移動・通信・リソースのサービス要求 Mobile Agent C
(サービス内容2を提供)
外部エージェントが提供するサービスの例:•エージェント移動、永続化、エージェント間通信
外部エージェントが提供するサービスの例:•エージェント移動、永続化、エージェント間通信
コールバック
![Page 16: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/16.jpg)
Ichiro Satoh
エージェント階層(3/3)エージェント階層(3/3)
• 外側エージェントはすべての内側エージェントの実行を制御• 外側エージェントは内側エージェントに対してコールバックメ
ソッドを呼び出す
Mobile Agent B
Mobile Agent A
コールバック
コールバックメソッドの種類・タイミングは外部エージェントにより規定他の外部エージェントに移動 → コールバックの動的変更
他の外部エージェントに移動することによりコールバックの内容と呼び出しタイミングを動的変更
![Page 17: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/17.jpg)
Ichiro Satoh
エージェント環境エージェント環境
エージェントは一つ外側のエージェントにサービスを利用
Mobile Agent
Mobile Agent
外部エージェントにサービス要求
外部エージェントの外部エージェントにサービスを直接要求はできない(間接は可)
Mobile Agent
![Page 18: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/18.jpg)
Ichiro Satoh
システム構成システム構成
•JavaTM言語(JDK1.1以上)上で実現(ハードウェア・OSに非依存)
Java言語仮想機械
モーバイルエージェントランタイムシステム
バイト列化された実行状態
プログラムコード
移送中エージェント
ネットワーク
移動コンピュータA
OS/ハードウェア
コンピュータB
モーバイルエージェント
モーバイルエージェント
トモーバイルエージェント
Java言語仮想機械
モーバイルエージェントランタイムシステム
OS/ハードウェア
モーバイルエージェント
モーバイルエージェント
モーバイルエージェント
![Page 19: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/19.jpg)
Ichiro Satoh
外部エージェント
ランタイムシステムの構成ランタイムシステムの構成
コンピュータ間移動、永続化、エージェント間通信等はモーバイルエージェントにより実現
Java言語仮想機械
外部エージェント
永続化用
エージェント
コンピュータ間
移送用エージェント
TCPを利用
エージェント実行制御
エージェント階層構造管理・制御
エージェント直列化(バイト列化)
内部エージェント内部エー
ジェント
内部エージェント
コンピュータ間
移送用エージェント
UDPを利用
エージェント実行用ランタイムシステム
ランタイムシステムは階層構造管理と実行制御を実現コンピュータ間移送や永続化は提供しない
![Page 20: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/20.jpg)
Ichiro Satoh
エージェント移動(コンピュータエージェント移動(コンピュータ間)間)他のコンピュータに移動するエージェントは、1.転送エージェントに移動する2.転送エージェントが移動先コンピュータに移送
移動
通信
Agent A
転送エージェント(送信側)
転送エージェント(受信側) Agent A
Computer 1 Computer 2
エージェント移送プロトコルは転送エージェントにより規定
→ 転送エージェントの選択により移送方式の変更
![Page 21: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/21.jpg)
Ichiro Satoh
エージェント移動(コンピュータエージェント移動(コンピュータ間)間)コンピュータ間移動は転送エージェントにより実現
→ システムはコンピュータ間転送機能は提供しない
エージェント転送の方式は多様→ 転送エージェントにより転送→ エージェント転送方式を多様化・動的変更→ 多様な通信伝送方式に対応
エージェント移送プロトコルは転送エージェントにより規定
→ 転送エージェントの選択により移送方式の変更
![Page 22: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/22.jpg)
Ichiro Satoh
消滅・永続化消滅・永続化
消滅するエージェントは消去エージェントに移動
移動Agent A
消去エージェント
消去方式は消去エージェントにより規定
永続化するエージェントは永続化エージェントに移動
移動Agent A
永続化エージェント
永続化方式は永続化エージェントにより規定
Agent B
Agent B
![Page 23: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/23.jpg)
Ichiro Satoh
移動エージェントへの移動・通信移動エージェントへの移動・通信
エージェントの移動後も継続してアクセス
移動
エージェントAはもとの位置には存在しない
移動したエージェントAに移動・通信するには
エージェントAは他のエージェント/コンピュータに移動
Agent A
移動 Agent A
![Page 24: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/24.jpg)
Ichiro Satoh
移動先への回送移動先への回送
移動先への回送(転送)エージェント( Alias/Short Cut エージェント)
移動
移動
移動先に回送
エージェントAは移動先への回送用エージェントを移動元を残す
エージェントA(回送エージェント)に到着したエージェントは移動先に自動回送される
エージェントAは他のエージェント/コンピュータに移動
Agent A
Agent A
Agent A への回送エージェント
移動
Agent A へ回送エージェント
![Page 25: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/25.jpg)
Ichiro Satoh
回送エージェント回送エージェント
エージェント移動先へのメッセージ/エージェントの移動回送(転送)エージェントにより移動先に移送
移動
移動
移動先に経路に
従って回送
Agent A
Agent A へのフォワーダー
移動先に
直接回送
Agent A へのフォワーダー
移動先への回送方法は回送(転送)エージェントにより規定→ 回送方法の多様化・動的変更
回送エージェントの存在期間もエージェントにより規定
![Page 26: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/26.jpg)
Ichiro Satoh
外部エージェント
ランタイムシステムの構成ランタイムシステムの構成
コンピュータ間移動、永続化、エージェント間通信等はモーバイルエージェントにより実現
Java言語仮想機械
外部エージェント
永続化用
エージェント
コンピュータ間
移送用エージェント
TCPを利用
エージェント実行制御
エージェント階層構造管理・制御
エージェント直列化(バイト列化)
内部エージェント内部エー
ジェント
内部エージェント
コンピュータ間
移送用エージェント
UDPを利用
エージェント実行用ランタイムシステム
ランタイムシステムは階層構造管理と実行制御を実現コンピュータ間移送や永続化は提供しない
階層構造内の移動 コンピュータ間移動
バイト列化
![Page 27: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/27.jpg)
Ichiro Satoh
エージェントプログラムエージェントプログラム
• エージェントはJava言語により記述された能動的なプログラム
• 状態変化を通知するコールバックメソッドから構成• 同一階層内の自律的な移動性
ただし、コンピュータ間移動や永続化、通信などの機能は、各機能を実現するエージェントに移動して、機能を実現する
コールバックメソッドモデル:内包するエージェントへのコールバックメソッドの種類やタイミングを規定
エージェントコンテキスト:内部エージェントへのサービスエージェントコンテキスト
エージェントプログラム
エージェントコンテキスト
エージェントプログラム
内部エージェント 外部エージェント
コールバックメソッドモデル
通信・リソースのサービス要求
![Page 28: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/28.jpg)
Ichiro Satoh
エージェントプログラムエージェントプログラム
Java 言語で記述される能動的なプログラムClass Agent extends Ambient implements SimpleAmbient { public void create(URL url) { addChildrenContext(new SimpleContext()); addCallbackModel(new SimpleModel()); Route route = new Route(); route.set(“matp://computer1.com/Agent1”, “method1”); route.set(“matp://computer2.com/Agent2”, “method2”); getContext().go(route); } void method1() {...} void method2() {...}}
computer1.com
computer2.com
method1()を実行
移動
移動エージェントエージェント
エージェント
method2()を実行
コンピュータ
コンピュータAgent 1
Agent 2
![Page 29: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/29.jpg)
Ichiro Satoh
移動先の指定移動先の指定
移動先エージェントの指定
移動先 matp://computer.com/Agent3
( = /matp#/computer.com/Agent3 )
URL name://some.where.com/agent1/agent2
/Agent 1 /Agent 1
移動
/file/file
/matp/matp
/udpmatp/udpmatp
/matp/matp
/Agent 3 /Agent 3
移動
ランタイムランタイム
Agent 2
Agent 2
Agent 2
Agent 2データ伝送
例: 永続化: file://computer2.com/usr/tmp/agent.jar
computer2computer1
/udpmatp/udpmatp
matp はHTTPをベースにしたエージェント転送プロトコル
機能提供用
エージェントの名前
IPアドレス エージェント階層
![Page 30: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/30.jpg)
Ichiro Satoh
コールバックメソッドコールバックメソッド
エージェントプログラム
エージェントプログラム
コールバックメソッド呼び出し
コールバックモデル
コールバックメソッド1
メソッド2
メソッドn
エージェント
コールバックモデル内包エージェントに対するコールバック呼び出しのメソッド種類とタイミングを規定
エージェント毎に定義可能
内包エージェントに所定の状態変化がおきたとき、コールバックメソッドが呼び出される
....
addCallbackModel(new SimpleModel());
....
![Page 31: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/31.jpg)
Ichiro Satoh
コールバックモデルコールバックモデル
コールバックメソッドを遷移ラベルとする状態遷移モデル
永続化
移動状態(入る)
移動状態(出る)
create()
終了初期化
exit()
enter()
suspend()resume()
destroy()
class SimpleModel implements AmbientModel { public Message setCallback(AmbientEvent e) { if (e.getID() == AmbientEvent.CREATE) { msg.setName(new Message("create")); return msg; } if (e.getID() == AmbientEvent.ENTER) { msg.setName(new Message("enter")); return msg; } if (e.getID() == AmbientEvent.EXIT) { msg.setName(new Message("exit")); return msg; } if (e.getID() == AmbientEvent.SUSPEND) { msg.setName(new Message("suspend")); return msg; } .... }}
![Page 32: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/32.jpg)
Ichiro Satoh
エージェントコンテキストエージェントコンテキスト
エージェントコンテキストは内包エージェントに対してリソース獲得・通信などのサービスを提供
エージェントコンテキストはエージェント毎に定義可能
エージェントコンテキスト
エージェントプログラム
通信・リソースのサービス要求
エージェントコンテキスト
エージェントプログラム
内包エージェント
public class SimpleContext extends AmbientContext {
public AmbientIdentifier getIdentifier(){ /* 識別子の獲得 */ } public URL getURL() { /* URL の獲得 */ } public Enumeration getChildren() { /* 内包エージェントのリスト(識別子)を獲得 */ } public void migrate(AmbientIdentifier aid,
URL url) { /* 自分または内包エージェント (aid) を url に移動させる */ } }
AmbientContext ac = new SimpleContext();addChildrenContext(ac);.....removeChildrenContext(ac);
![Page 33: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/33.jpg)
Ichiro Satoh
エージェントプログラム例エージェントプログラム例
コールバックメソッド生成直後、移動前後、終了直前にランタイムシステムより所定のコールバックメソッドが呼び出される
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(); }}
実行前 実行中 停止
移動中
create() destroy()
dispatch () arrive()
![Page 34: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/34.jpg)
Ichiro Satoh
エージェント移動の特徴エージェント移動の特徴
エージェント移動では状態とコードの一括移送
•一回通信で移動可能→ 高速なエージェント移動
c.f. 他のシステムの多くは複数回の通信が必要
•移動中エージェントは圧縮・暗号化→通信速度及びセキュリティを確保
•移動後は通信切断が発生してもよい → 携帯端末や無線通信に対応
移動失敗時には複数回トライの後、移動元に戻る
![Page 35: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/35.jpg)
Ichiro Satoh
実装・評価実装・評価
実装Java言語( JDK Ver.1.1 以上)を利用
OS・コンピュータに非依存Java言語の直列化機構の利用
性能評価 (参考)エージェント間移動:
移動時間(同一コンピュータ内) 0.02s
移動時間(コンピュータ間) 0.25s
PentiumII(400MHz, JDK1.1.6) x 2 Ethernet(100Base-TX)
![Page 36: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/36.jpg)
Ichiro Satoh
関連研究関連研究
プロセス/オブジェクト移動システム:Aperios ( SonyCSL )、 DEMOS/MP 、 Emerald( ワシントン大 ), et
c.
既存のモーバイルエージェントシステム非 Java 言語によるシステム
Telescript (General Magic 社 ) 、 Agent-Tcl (Dartmouth 大 ) 、Safe-Tcl (Sun 社)、 etc
Java 言語によるシステムAglets (IBM 社 ) 、 Vogayer (ObjectStore 社 ) 、 Mole
(Shuttgart 大 ) 、Odessey(General Magic 社)、 Plangent ( 東芝 ) 、 etc
![Page 37: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/37.jpg)
Ichiro Satoh
課題課題
• モーバイルエージェントの置換・更新機構
• ディレクトリサービス・名前管理機構
• モーバイルエージェントプログラムのためのデザインパターン
• XMLベースのエージェント移送・永続化フォーマット
• スクリプティング言語による動作記述
• 耐故障性をもつエージェント移送用プロトコル
• セキュリティ機構
![Page 38: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/38.jpg)
Ichiro Satoh
XMLエージェント転送フォーマッXMLエージェント転送フォーマットトXMLデータとしてエージェントを転送・永続化
<MOBILEAGENT><LANGUAGE NAME=“MobileSpaces”/><SENDER>“islab.is.ocha.ac.jp”</SENDER><RUNTIMEBASE HREF=“www.is.ocha.ac.jp/mobilespaces/runtime.class LANGUAGE=“Java”/><STATE>...BASE64 Encoded Serialized Agent..</STATE><CODE> <CODE NAME=“Editor.class”>..BASE64 Encoded Class..</CODE> <CODE NAME=“Dialog.class”>..BASE64 Encoded Class..</CODE></CODE><PROPERTY>...</PROPERTY></MOBILEAGENT>
![Page 39: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/39.jpg)
Ichiro Satoh
ランタイムの動的ローディングランタイムの動的ローディング
未知の言語処理系によるモーバイルエージェントが到着したとき、
XMLのタグ情報をもとにランタイムを動的にローディング<MOBILEAGNET><LANGUAGE NAME=“MobileSpaces”/><SENDER>“islab.is.ocha.ac.jp”</SENDER><RUNTIMEBASE HREF=“www.is.ocha.ac.jp/mobilespaces/runtime.class LANGUAGE=“Java”/><STATE>...
移動プログラムのランタイムを移動先に事前配布する必要はないPlug-In や動的ローディング機構を利用
![Page 40: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/40.jpg)
Ichiro Satoh
ScriptingScripting 言語言語
外側エージェントによる内側エージェントに対するカスタマイズ
•エージェント階層の設定•内側エージェントに対するコールバックメソッド呼び出しの設定•計算環境・リソース相違の吸収と動作の変更
![Page 41: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/41.jpg)
Ichiro Satoh
Best Effort / Least Suffering Best Effort / Least Suffering MigrationMigration移動端末・無線通信ではネットワーク接続が切断が頻発
最善移動戦略:エージェントを最終移動先に可能な限り近づける
コンピュータコンピュータコンピュータ
ネットワーク切断
最小被害移動戦略:エージェントを移動を中止・引き返させる
![Page 42: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/42.jpg)
Ichiro Satoh
セキュリティセキュリティ
不正なエージェントから、いいホストをいかに守るか認証機構、証明添付、 etc
不正なホストから、いいエージェントをいかに守るか現在、解決策なし
特定ホストや通信チャネルへの負荷集中をいかに避けるか経済的なメタファ
![Page 43: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/43.jpg)
Ichiro Satoh
まとめまとめ
モーバイルエージェントの階層的構造化・移動を導入
• モーバイルエージェントのグループ化・合成手法• 動的変更・拡張性をもつシステムを実現• 各種操作をエージェント移動として統一的記述・実現
モーバイルエージェントシステムのダウンロード先:
http://islab.is.ocha.ac.jp (ソース・実行プログラム)
ただし、エージェントの非階層化版(階層化版は10月以降を予定)
![Page 44: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/44.jpg)
Ichiro Satoh
例:分散検索(リモートGrep)例:分散検索(リモートGrep)
相違のコンピュータ上のファイルを検索( Grep )するには?•遠隔端末(Telnet)、しかし、常に利用可能とは限らない…•ファイルの転送、しかし、巨大なファイルの場合は…
検索プログラム( Grep) 自体を移動させる
コンピュータBプログラム移動
コンピュータCコンピュータA
Grepプログラムを移動・検索させる
プログラム移動
Grepプログラム(移動中)
Grepプログラム(検索結果を保持)
Grepプログラム(検索結果を保持)
Grepプログラム(検索中)
![Page 45: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/45.jpg)
Ichiro Satoh
例:電子メール例:電子メール
•モーバイルエージェントでは電子メールのデータだけでなく編集・観覧ソフトウェアも転送可能
メールの編集・観覧プログラムも移動
エージェントの移動
独自フォーマットデータを含むメール
コンピュータA
コンピュータB
エージェント
メール編集・観覧プログラム
メール編集・観覧プログラム
任意フォーマットのメールデータが観覧・編集可能
![Page 46: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/46.jpg)
Ichiro Satoh
例:トンネル化エージェント例:トンネル化エージェント
•通信において、エージェントを通信相手に移動させ、通信相手直接ではなく、そのエージェント介してと通信
→ 独自通信プロトコルによる通信を実現
エージェントA
エージェントの移動
コンピュータA コンピュータB
エージェントB
エージェントA
コンピュータA コンピュータB
エージェントB
エージェントAとBの間で通信
エージェントAとBだけの独自通信プロトコルでもよい
![Page 47: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/47.jpg)
Ichiro Satoh
例:デスクトップトランスポート例:デスクトップトランスポート
•データとソフトウェアをモーバイルエージェントとして一体化•デスクトップ環境を他のコンピュータに移動・運用
デスクトップ環境も移動
ユーザの移動
ユーザ
ユーザ
コンピュータA
コンピュータB
![Page 48: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/48.jpg)
Ichiro Satoh
コンピュータ間転送エージェント1コンピュータ間転送エージェント1
エージェントの移動は転送エージェントにより実現
転送プロトコルは転送エージェントにより規定
直列化通信
Agent A
転送エージェント
(送信側)Computer 1 Computer 2
移動Agent A
永続化されたAgent A
移動
データ送信 非直列化
永続化されたAgent A
データ受信
転送エージェント
(受信側)
![Page 49: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/49.jpg)
Ichiro Satoh
エージェントの主体的移動エージェントの主体的移動
エージェントはそれ自身(または外部エージェント)の移動要求で移動隣接エージェントの移動要求によって移動することはない
移動
それ自身に移動要求
隣接エージェントから移動要求
外部エージェントによる移動要求は特殊ケース
![Page 50: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/50.jpg)
Ichiro Satoh
エージェントサービスと移動エージェントサービスと移動
外部エージェントの移動において、内部エージェントが利用するサービスは変化しない
移動
Agent A Agent B
Agent C
Agent D
Agent C
Agent D
サービス内容 変化の検知
移動エージェント(外側) 変化 可能(自身に移動要求)
移動エージェント(内側) 無変化 不可能
![Page 51: MobileSpaces: A Next-Generation Mobile Agent System](https://reader036.fdocuments.net/reader036/viewer/2022070412/56814bef550346895db8d42c/html5/thumbnails/51.jpg)
Ichiro Satoh
エージェント移動としての計算エージェント移動としての計算
各種機能を提供するエージェントに移動し、サービスを受ける
エージェント間移動を通じて各種機能を実現– エージェントのコンピュータ間移動– エージェントの永続化・停止・暗号化– 移動エージェントの現在位置へメッセージ・エージェントを回送– エージェント間通信、他
移動Agent A
ある機能を実現するエージェント