敷田研副テーマ モバイルエージェントによる 経路監視機構に関する研究 堀口研究室 酒井潤 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
© Copyright 2024 ExpyDoc