Javaによるモバイルエージェント

敷田研副テーマ
モバイルエージェントによる
経路監視機構に関する研究
堀口研究室 酒井潤
1
発表の流れ







背景・目的
モバイルエージェント
Java
Aglets
経路監視
展望
まとめ
2
背景・目的
背景


従来の一般的なSNMP(Simple Network Management
Protocol )はネットワーク機器単体だけの監視となる
ネットワークシステムの大規模化・複雑化
クライアントに近い側からの監視が行いにくい
目的


サーバ単体だけでなく周辺の経路状態も監視する
モバイルエージェントを用いた経路監視機構をJava
言語により実装する
3
モバイルエージェント

自律的に計算機間を移動し、到着した計算機上で処理
を継続するプログラムのこと
・移動する際には、プログラムコードはもちろん実行状態
も転送される
Mobile
Agent
State
Mobile
Agent
State
migration
State
Byte Code
Byte Code
Byte Code
Computer A
Network
Computer B
4
モバイルエージェントの利点
ネットワークの負荷低減
service
application
Server
Server
RPC-based approach
application
Server
A
G
E
N
T
Server
service
Mobile Agent-based approach
5
モバイルエージェントの利点2
非同期で自律
application
server
Send Agent
Service
application
server
application
server
Disconnect
Reconnect and
Return
A
G
E
N
T
A
G
E
N
T
A
G
E
N
T
service
server
service
server
service
server
6
モバイルエージェントの欠点

テストデバッグが困難


キラーアプリケーションが無い


全ての移動先の環境を把握するのは困難。移動パターンを利
用した取り組みがある
「モバイルエージェントでなければできない」というアプリケー
ションは今のところ見つかっていない
セキュリティ機構


モバイルエージェントが移動先コンピュータの各種リソースを不
正にアクセスする。
不正なホストがモバイルエージェントを攻撃する
7
モバイルエージェントの応用分野

分散検索

負荷分散

並列実行

電子商取引

ネットワーク管理システム

ワークフロー

グループウェア
8
Javaを用いることの利点
従来の言語
Java
Java
プログラム
プログラム
直接OS
上で動作
Java VM
OS
OS
どちらの環境も同
じように見える
Java
JVM
JVM
OS A
OS B
モバイルエージェントを記述するための言語として
は非常に望ましい
9
Aglets


IBM社によって開発されたインターネットエー
ジェントシステム
Aglets は移動エージェントの一種で、ネットワー
ク上で移動・実行可能なオブジェクト
特徴

Javaのクラスライブラリ上で実装される

ATP(Agent Transfer Protocol)を用いてエージェ
ントの移動を実現する
10
他のMobile Agent

Telescript


Kafka


ObjectSpace社が提供するJavaベースのモバイルエージェントシ
ステム
Plangent


富士通研究所によって提供されているJavaベースのモバイル
エージェントシステム
Voyager


General Magic社による、最初のモバイルエージェントシステム
東芝が提供するJavaベースのモバイルエージェントシステム
Bee-gent

Plangentと同じく東芝が提供するJavaベースのモバイルエージェ
ントシステム
11
既存のモバイルエージェント

プログラムコードのみの移動


ヒープ領域内の情報を移動



Java Applet
Voyager
Aglets
実行中のスタック領域内やプログラムカウ
ンタも移動

Moba
12
実装環境 Agletシステムの構成



Java : JDK1.3
OS : Solaris 7
Mobile Agent : Aglets
Aglet
Aglet
Aglet
Aglet
Aglet Server
Aglet Server
Security Layer
Security Layer
Java Virtual Machine
Aglet
OS/Hardware
Computer A
Java Virtual Machine
OS/Hardware
migration
Computer B
Each agent moves with its state and code.
13
Agletの基本概念
Aglet
自律的かつ反応的なJavaオブジェクト
Proxy
Agletの代理である。AgletへのダイレクトなアクセスからAgletを保護する
Context
Agletのworkplaceである
Message
Aglet間で交換されるJavaオブジェクト
Message
Aglet
Aglet
Proxy
Proxy
Context
Aglet Server
Aglet
Aglet
Proxy
Proxy
Context
Aglet Server
14
イベント駆動エージェント
public class Example
extends Aglets{
public void Creation(){
//生成されるときに呼ばれる
Clone
Context A
Dispatch
Aglet
Dispose
Context B
Aglet
Retract
}
public void Dispatch(){
Create
Deactivate
Activate
//発送されるときに呼ばれる
}
public void Dispose(){
Class
File
Disk
Storage
//消されるときに呼ばれる
}
15
実装したAglet機能
データ

移動するホストのリストを所持

巡回するサーバのリストを所持
処理動作

各ホストを巡回

ホストの調査

サーバへ経路調査

障害情報をマネージャへ報告
16
経路監視



ManagerがAgletを生成する
Agletが一定期間ごとにホスト間を巡回する
各ホストでtraceroute(経路情報を取得するコマンド)を実
行して、エージェント自身が自律的に判断する
host
Aglet
manager
server
tracerout
e
host
Disk
tracerout
e
server
host
tracerout
e
17
経路監視(ホスト)


ホストに異常があった場合はManagerにメッセージを送信す
る
異常のあったホストを飛ばし次のホストへ行く
host
server
Aglet
Warning
manager Message
Disk
server
host
18
経路監視(サーバ)

サーバ、またサーバまでの経路に異常があった場
合はManagerにメッセージを送信する
host
server
Aglet
manager
Disk
host
Warning
Message
server
host
19
実験



ネットワークで各ホストを移動するモバイルエージェン
トAgletの巡回時間と通信量を測定した
各ホストの数を徐々に増やしてEtherealを用いて巡回
時間と通信量を測定した
巡回時間と通信量は、測定回数30回の平均値をとり、
ホスト数の増加と巡回時間、通信量の関係について
調べた
20
実験結果
ホスト数
1
2
3
4





Time(sec)
0.3315
0.6632
1.1018
1.4019
Traffic(byte)
8969
9150
9514
9849
ほぼホスト数の増大に対して直線的に巡回時間と通信量がともに
増加している
ホスト数が増大しても巡回時間、通信量のレベルが予測すること
ができる
通信量が小幅な増加率であることは、経路監視システムにモバイ
ルエージェントを用いた影響が大きいと推定される
しかし、巡回するホストの中で遠隔にあるホストが存在する場合、
結果として巡回時間は大きく増加することが予想される
近いホストから順次次の近いホストへ自動的に巡回していくアルゴ
リズムを提案し、巡回時間を減少させる必要がある
21
展望・まとめ
展望



信頼性の向上
 途中でAgletsが消えてしまった場合
セキュリティ
 悪意のもったエージェントからの保護
アルゴリズムの提案
 自動的に巡回して、巡回時間を減少させる
まとめ


モバイルエージェントの特徴についてまとめ、実装した
Agletモバイルエージェントシステムについて述べた
Java言語、Agletsを用いた経路監視プログラミングを実装
22
デモプログラム
23
クラス生成図
Manager Aglet
Managerクラスが
Childクラスを生成
Manager
New Child()
Child Aglet
Child
Itinerary
SeqItinerary
New Jude()
Jude
24
継承
Aglet
Manager
Itinerary _itinerary = null
onCreation()
handleMessage()
<<interface>>
Serializeable
Child
Itinerary _itinerary = null
SeqItinerary _seqitinerary = null
AgletProxy manager = null
onCreation()
Run()
onDiposing()
25
関係
<<interface>>
Serializeable
Itinerary
Child
SeqItinerary
Jude
26
Agentの移動
自分自身や他のAgent,システムによって移動する.
Suspend Execution
Resume Execution
Serialize Agent
Deserialize Agent
Encode Data
Decode Data
Transfer Data
Receive Data
Network
27
補足資料
28
参考図書


Programming And Deploying Java Mobile Agents With Aglets
Danny B.Lange
ソースコード
www.jaist.ac.jp/~j-sakai/program/java/aglet/Manager.html


Javadoc
www.jaist.ac.jp/~j-sakai/program/java/aglet/html/index-all.html
Aglet API
www.jaist.ac.jp/~jsakai/program/java/aglet/javadoc/ibm/aglet/html/index-all.html
29
ATP(Agent Transfer Protocol)

エイジェントとシステムの間の独立した方法でエイ
ジェントの移送のために設計されたアプリケーショ
ン・レベルのプロトコルである。
ATPの目的

インターネット上にあるネットワークで結ばれたコ
ンピュータ間でエージェントを移動・実行させるた
めのプロトコルを提供する。
30
SNMP(Simple Network Management Protocol)


TCP/IPネットワーク環境での管理プロトコル
ネットワークに接続された機器をネットワーク経由で監視
するためのプロトコル
動作チェック、設定変更
情報通知、設定内
容通知、障害通知
PC,WC,サーバー
SNMPマネージャ
LAN
インターネット
ルーター
スイッチ
31
RPC(Remote Procedure Call )

リモートコンピュータに要求を出し、なんらかの手続きを実行させ、結果を受け取る。

スタブには、外部データ表現(XDR) を用いた通信処理が記述されている。

スタブをにより、異なる計算機間でクライアントとサーバでも通信が可能となる
クライアント
クライアント
プロセス
スタブ
手続きの
呼び出し
引数をXDRに
変換
サーバ
サーバ
スタブ
プロセス
受け取ったデー
タをサーバ側の
形式に変換
引数の受け取り
呼び出された手
続きの実行
ネットワーク
受け取ったデー
タをクライアント
側の形式に変換
結果を受け取る
結果を返す
返り値をXDR形
式に変換
32
エイジェント

人々を助け、そして人々に代わって行動する1つの
プログラムのこと。
特性




反応性:実行環境において変化を知覚し変化に従って行動する
自律性:それ自身の行動に対してコントロールを持つ
行動性:目標に駆動されて動く
当面連続的;連続的に実行
拡張




通信可能性:他のエイジェントと通信できる
移動性:1つのホストから他のホストへ移動できる
学習性:以前の経験に従って適応する
信頼性:エンド・ユーザーにとっては信頼できるように見る
33
移動エージェントの将来



普遍的になれば、資源が有効利用可能な場所
へとエージェントは動き回ることも起こりうる
異種エージェントがネットワーク上に多数存在し、
それらが各所に移動しながらさまざまな処理を行
なうことになる
これに向けては、エージェントの移動やエージェ
ント間通信の相互運用性の確保、セキュリティや
信頼性の研究が重要である
34