Presentation is loading. Please wait.

Presentation is loading. Please wait.

モバイルエージェントによる 経路監視機構に関する研究

Similar presentations


Presentation on theme: "モバイルエージェントによる 経路監視機構に関する研究"— Presentation transcript:

1 モバイルエージェントによる 経路監視機構に関する研究
敷田研副テーマ モバイルエージェントによる 経路監視機構に関する研究 堀口研究室 酒井潤

2 発表の流れ 背景・目的 モバイルエージェント Java Aglets 経路監視 展望 まとめ

3 クライアントに近い側からの監視が行いにくい
背景・目的 背景 従来の一般的なSNMP(Simple Network Management Protocol )はネットワーク機器単体だけの監視となる ネットワークシステムの大規模化・複雑化 クライアントに近い側からの監視が行いにくい 目的 サーバ単体だけでなく周辺の経路状態も監視する モバイルエージェントを用いた経路監視機構をJava言語により実装する

4 モバイルエージェント 自律的に計算機間を移動し、到着した計算機上で処理を継続するプログラムのこと
・移動する際には、プログラムコードはもちろん実行状態 も転送される Mobile Agent Mobile Agent State migration State Byte Code ソフトウェア自体がコンピュータ間を移動しながら処理を行う仕組み 移動する際には、プログラムコードはもちろん実行状態も転送される つまり、移動先の計算機で、移動元で行っていた作業を続行することができる。移動後は通信切断しても処理可能 移動先と移動タイミングを自律的に決定・移動 モバイル・エイジェントは、ネットワーク内のホスト群の間を移動することは自由です。1つの実行環境において創生されて、それ(1つのモバイル・エイジェント)は、一緒にStateと Byte Codeを、ネットワーク内の他の実行環境に移送できます。そして、他の実行環境においてそれモバイル・エイジェントは実行を再開します。 State  エイジェントの目的地においてそれが実行を再開する時、それが何をすべきかを決定することそのエイジェント属性値を、典型的には意味します。 Byte Code エイジェントが実行するために必要とするクラス・コード(class code)を、意味します。 モバイル・エイジェント モバイル・エイジェントは、ネットワーク内の1つのシステムから他のシステムへそれ自身を輸送するユニークな(独特な)能力を持っています。モバイル・エイジェントの移動する能力は、1つのモバイル・エイジェントが、そのオジェクトとそのエイジェントが相互作用したいところのオブジェクトを含む、1つのシステムへ移動することを許します。そしてそれ(1つのモバイル・エイジェント)の移動する能力は、1つのモバイル・エイジェントが、そのオブジェクトと、同じホスト内または同じネットワーク内に居ることを利用することを許します。 静的なエイジェント 静的なエイジェントは、そこにおいてそれ(1つのモバイル・エイジェント)が実行を開始するところの、そのシステム上でのみ実行します。もしそれ(1つのモバイル・エイジェント)がそのシステム上にない情報を必要とするなら,又は異なったシステム上のエイジェントと相互作用することを必要とするなら,それは典型的には、例えば遠隔からのプロセジャーの呼び出し(remote procedure calling ; RPC)と言った通信メカニズム(機構)を使用します。 State Byte Code Byte Code Network Computer A Computer B

5 モバイルエージェントの利点 ネットワークの負荷低減 application service RPC-based approach
Server Server application service RPC-based approach RPCとは、分散システムを構築する際に利用される通信スタイルの一つで、クライアントアプリケーションが別のシステムにあるサーバープログラムのプロシージャを実行させる機能です。 ネットワークトラフィックの削減は毎回毎回のリクエストの負荷も馬鹿にならない。 そのタスクの大部分を適当なサーバ上で局所的に行うことができるので,ネットワーク上に転送されるデータの量を最小限に減らすことができる. 通常のサーバ・クライアント間コミュニケーションは, ネットワークを経由してメッセージを交換することによって行われている. しかしエージェントがサーバの存在するホストに移動すれば, ネットワークを経由せずに直接サーバと通信を行うことができ, ネットワーク通信量を削減できる可能性が生じる. また, クライアントはエージェントを送出するときとそれを帰着させるときのみネットワークに接続されていればよい. 通信を相手の計算機内で局所化することができ、通信遅延は非常に小さいものとなる。 収集プログラムを対象となるWebサーバーに転送し、 Webサーバー内で全ての処理を行う。毎回のリクエストに伴うネットワークに対する負荷が無い。サーバー内で不要なタグなどの除去、目的のデータの抽出、収集したデータの圧縮等を施した後に転送元の計算機に戻ることができるので、全体としての通信量を低減することができる。また、Webサーバーとの通信は最初と最後の2回のみになるので、通信遅延の影響を受けずスループットも向上する RPC-Based Approachとは、分散システムを構築する際に利用される通信スタイルの一つで、クライアントアプリケーションが別のシステムにあるサーバープログラムのプロシージャを実行させる方法です。図のようにネットワークトラフィックは多くなります。 Mobile Agent-Based Approachでは、クライアントアプリケーションのタスクの大部分を適当なサーバ上で(下の図では右側のサーバ上で)局所的に行うことができるので,ネットワーク上に転送されるデータの量を最小限に減らすことができます。ネットワークトラフィックの削減ができます。 ○モバイル・エイジャントは、ネットワークの負荷を低減します。  分散システムは一定の(与えられた)仕事を完成させるための多数の相互作用を含む通信プロトコルに良く頼ることがある。セキュリティ確保手段が可能な時は、このことは特にそう(真実)である。その結果、多量のネットワークトラフィックが生じる。 (上の図を見てください。)  モバイル・エイジャントは、あなたに、1つの通話(会話)をパッケージに包み、それを、そこでは相互作用が局所的に起こることができる目的地のホストに(下の図では右側のサーバ上に) 、発送させる。(下の図を見てください。 )  (以下は省略可能です。)  モバイル・エイジャントは、ネットワークにおける生データの流れを減らすということになったときも、また有用です。大変多量のデータが遠隔のホストに(下の図では右側のサーバ上に)蓄えられる時、これらのデータは、ネットワーク上を移送されるよりはむしろ、そのデータのある局所で(演算装置により)処理されるべきです。モットウは単純であることです。そのデータをそれを計算する場所に移動させるよりはむしろ、その計算をそのデータのある場所に移動させなさい、ということです。 Server Server A G E N T application service Mobile Agent-based approach

6 モバイルエージェントの利点2 非同期で自律 application service Send Agent Service
server server A G E N T application service Send Agent Service server server A G E N T application service モバイルエージェントは非同期に動作することが可能であり、モバイルエージェントに特定のタスクを与えると,それらはそのタスクを解決するためにサーバに移動し,適当な結果とともに後で返ってくる. エージェントの非同期性と自律性は,時間的節約を削減することができます。 通信元の計算機との通信が必要ないため、一時の断線などの障害にも強く、常時接続でないシステムにとっても有用である。 ただし、欠点として未解決な状況が残るセキュリティ問題があります。 一方、モバイルエージェントを使用するということは、外部からやってきた信頼できないプログラム(エージェント)を 自分の計算機上で実行することを意味するため、セキュリティの問題が非常に重要となってきます。 また同時に、自分が送り出したエージェントのデータが悪意のある計算機や他のエージェントによって書き換えられないことを 保証するしくみも必要となります。 しかし、クライアントとサーバ間で頻繁にデータのやり取りが行われる場合、モバイルエージェントによる通信コストの低減が発生します。これは、クライアント-サーバのコンピュータ間で行われていた通信を、一つのコンピュータ内のエージェント間通信に局所化できるためです。  モバイル・エージェントは非同期に動作することが可能であり、モバイル・エージェントに特定のタスクを与えると,それらはそのタスクを解決するためにサーバに(図では右側のサーバに)移動し,適当な結果とともに後で(クライアントアプリケーション側に)返ってくる。エージェントの非同期性と自律性は,クライアントアプリケーション側にとっては時間を節約・削減することができます。ただし、欠点として(未解決な状況?が残る←この字句は省略可能)セキュリティ問題があります。 (図の一番下の図に本にあるようにReconnect andを追加しますか。)  モバイル・エイジャントは、非同期的に自律的に、(仕事を、演算を)実行します。度々、移動可能なデバイスは、高価で壊れやすいネットワークとの接続に頼る。移動可能なデバイスと固定ネットワークの間の連続して開放された接続を要求する仕事は、恐らく経済的技術的に実施可能でない、と思われます。  この問題を解決するために仕事(task)がモバイル・エイジャントに埋め込まれることができる、そしてそのモバイル・エイジャントはそれからネットワークへ発送されます。発送された後、モバイル・エイジャントはそのモバイル・エイジャントの創生プロセスから独立して、非同期的に自律的に働くことができます。 (中段の図を見てください。 ) 移動可能なデバイスは(移動後←この字句は省略可能)、後刻、そのモバイル・エイジャントを集めるために(モバイル・エイジェントの居るところに)再接続されることができます。このように再接続してクライアントアプリケーションは、モバイル・エイジェントから演算結果(仕事の結果)を得ます。 Disconnect server server A G E N T application service Reconnect and Return

7 モバイルエージェントの欠点 テストデバッグが困難 キラーアプリケーションが無い セキュリティ機構
全ての移動先の環境を把握するのは困難。移動パターンを利用した取り組みがある キラーアプリケーションが無い 「モバイルエージェントでなければできない」というアプリケーションは今のところ見つかっていない セキュリティ機構 モバイルエージェントが移動先コンピュータの各種リソースを不正にアクセスする。 不正なホストがモバイルエージェントを攻撃する

8 モバイルエージェントの応用分野 分散検索 負荷分散 並列実行 電子商取引 ネットワーク管理システム ワークフロー グループウェア
grep検索などを行うときも、一方のコンピュータに検索プログラムを移動させて検索の処理を任せ、自分のコンピュータやネットワークの負担を軽減させることもできる。この方法は、電子商取引での売買や、システム管理でのログ集めなどに応用できる。 Personal Network Assistant モバイルエージェントがユーザーの意思を反映してネットワーク上で処理を行い、ユーザーにその結果を返すようなアプリケーション。特に移動端末などでは常に通信が行えるような状況にあるとは限らないので、具体的な処理はエージェントに任せ、ネットワークに接続できるときにその結果だけを受け取ればよい。 Remote System Observer ネットワーク上離れた場所にある制御機器などの監視を行うアプリケーション。常時接続していなくても、モバイルエージェントを送り込んでおくことで機器の監視を続け、可能なときに必要なデータだけを持ち帰ってくればよい。モバイルエージェントに簡単な問題解決機能を持たせることもできるし、監視する機器が複数ある場合、巡回によって一つのエージェントでそれらをまとめて管理することもできる。 Group Work Scheduler グループウェアにおいて個人の予定や能力、意思をモバイルエージェントに反映させ、それらのエージェントが交渉を行うことでグループとしてのスケジュールを組み立てるようなアプリケーション。特に移動端末を持った営業マンや支店間にまたがるグループなどでスケジュールを調整する際にその効果を発揮する。 Social Model Schemerator 様々な社会モデルをシミュレートするようなアプリケーション。オブジェクト指向がもの(Object)を単位とした考え方に基づいていたのに対し、エージェント指向では人(Human)を世界の構成要素として捉える考え方に基づいている。したがって人間が様々なグループを形成し、活動を行うような複雑な社会モデルをシミュレートするには、逆にエージェントを人のモデルとして利用することができる。移動性が要求されるのは、一つの計算機ではシミュレートが難しい場合などである。 ソフトウェア自身のコピーを作成すれば、並列処理も可能である。

9 Javaを用いることの利点 Javaとは、プラットフォームに依存せず、ネットワークを意識したプログラミング言語
従来の言語 Java OS Java VM プログラム  Java 直接OS上で動作 どちらの環境も同じように見える Java Javaとは、プラットフォームに依存せず、ネットワークを意識したプログラミング言語 Javaをサポートしている機器であれば、同じプログラムを動作させることができる ハードウェアやOSに依存しない JavaバイトコードはJava仮想マシン内のインタプリタによってネイティブコードに変換されてから実行される。 JVM JVM OS A OS B モバイルエージェントを記述するための言語としては非常に望ましい

10 Aglets IBM社によって開発されたインターネットエージェントシステム
Aglets は移動エージェントの一種で、ネットワーク上で移動・実行可能なオブジェクト 特徴 本研究では、アプリケーション間の通信部にAgletsを用いる。Aglestについての簡単な説明をしておく。 Javaのクラスライブラリ上で実装される ATP(Agent Transfer Protocol)を用いてエージェントの移動を実現する

11 他のMobile Agent Telescript Kafka Voyager Plangent Bee-gent
General Magic社による、最初のモバイルエージェントシステム Kafka 富士通研究所によって提供されているJavaベースのモバイルエージェントシステム Voyager ObjectSpace社が提供するJavaベースのモバイルエージェントシステム Plangent 東芝が提供するJavaベースのモバイルエージェントシステム Bee-gent Plangentと同じく東芝が提供するJavaベースのモバイルエージェントシステム

12 既存のモバイルエージェント プログラムコードのみの移動 ヒープ領域内の情報を移動 実行中のスタック領域内やプログラムカウンタも移動
Java Applet ヒープ領域内の情報を移動 Voyager Aglets 実行中のスタック領域内やプログラムカウンタも移動 Moba Moba (Mobile Agent Facilities on Java Language Environment)は、早稲田大学の首藤一幸氏が開発しているモバイルエージェントシステムである。

13 実装環境 Agletシステムの構成 Java : JDK1.3 OS : Solaris 7 Mobile Agent : Aglets
Java  : JDK1.3 OS  : Solaris 7 Mobile Agent : Aglets Aglet Aglet Aglet Aglet Aglet Server Aglet Server Security Layer Security Layer Aglet プログラムコードと、インスタンス変数などのヒープ領域内の情報を移動させる。ヒープ領域内の情報しか転送しないので移動コストが少ない。しかし、プログラムカウンタやローカル変数は対象とならないので、移動直前の状態から実行を再開するのは難しい。 Java言語の直列化機構(Serialization)はこの手法に基づいている。よって、Java言語を用いたモバイルエージェントシステムにはこの方式を採用しているものが多い。 heap  プログラムで利用可能なメモリ領域。 Java Virtual Machine Java Virtual Machine OS/Hardware OS/Hardware migration Computer A Computer B Each agent moves with its state and code.

14 Agletの基本概念 Message Context Context Aglet Server Aglet Server Aglet
自律的かつ反応的なJavaオブジェクト Proxy Agletの代理である。AgletへのダイレクトなアクセスからAgletを保護する Context Agletのworkplaceである Message Aglet間で交換されるJavaオブジェクト Proxy Aglet Message Proxy Aglet Context Context Proxy Proxy Aglet Server Aglet Server Aglet Aglet

15 イベント駆動エージェント public class Example extends Aglets{
public void Creation(){ //生成されるときに呼ばれる }  public void Dispatch(){ //発送されるときに呼ばれる public void Dispose(){ //消されるときに呼ばれる Dispose Context A Context B Clone Dispatch Aglet Aglet Retract Create Deactivate Activate AgletsはJavaの直列化機構を利用しているためローカル変数などは移動の対象にならない。ただし、移動の直前や直後に呼び出されるコールバックメソッド内で、各種リソースの解放などの処理を行うことができる。 Class File Disk Storage

16 実装したAglet機能 移動するホストのリストを所持 巡回するサーバのリストを所持 データ 処理動作 各ホストを巡回 ホストの調査
サーバへ経路調査 障害情報をマネージャへ報告

17 経路監視 ManagerがAgletを生成する Agletが一定期間ごとにホスト間を巡回する
各ホストでtraceroute(経路情報を取得するコマンド)を実行して、エージェント自身が自律的に判断する server traceroute host Aglet manager traceroute host Disk server host traceroute

18 経路監視(ホスト) ホストに異常があった場合はManagerにメッセージを送信する 異常のあったホストを飛ばし次のホストへ行く host
server Aglet Warning manager Message Disk server host

19 経路監視(サーバ) サーバ、またサーバまでの経路に異常があった場合はManagerにメッセージを送信する host server Aglet
Warning manager host Message Disk server host

20 実験 ネットワークで各ホストを移動するモバイルエージェントAgletの巡回時間と通信量を測定した
各ホストの数を徐々に増やしてEtherealを用いて巡回時間と通信量を測定した 巡回時間と通信量は、測定回数30回の平均値をとり、ホスト数の増加と巡回時間、通信量の関係について調べた Etherealは、ネットワークを流れるプロトコルをキャッチし、その内容を解析して表示する。多岐にわたるプロトコルに対応すると同時に、パケットを抽出するフィルタリング機能やパケットを見やすくするマーキン グ機能を備えるなど、パケットをモニタリングするために十分な機能を備えたソフト

21 実験結果 ホスト数 Time(sec) Traffic(byte)
ほぼホスト数の増大に対して直線的に巡回時間と通信量がともに増加している ホスト数が増大しても巡回時間、通信量のレベルが予測することができる 通信量が小幅な増加率であることは、経路監視システムにモバイルエージェントを用いた影響が大きいと推定される しかし、巡回するホストの中で遠隔にあるホストが存在する場合、結果として巡回時間は大きく増加することが予想される 近いホストから順次次の近いホストへ自動的に巡回していくアルゴリズムを提案し、巡回時間を減少させる必要がある

22 展望・まとめ 展望 まとめ 信頼性の向上 途中でAgletsが消えてしまった場合 セキュリティ 悪意のもったエージェントからの保護
アルゴリズムの提案 自動的に巡回して、巡回時間を減少させる プログラム自体が移動することから必須となってくる高度なセキュリティの確保、 まとめ モバイルエージェントの特徴についてまとめ、実装したAgletモバイルエージェントシステムについて述べた Java言語、Agletsを用いた経路監視プログラミングを実装

23 デモプログラム

24 ManagerクラスがChildクラスを生成
クラス生成図 Manager Aglet ManagerクラスがChildクラスを生成 Manager New Child() Child Child Aglet Itinerary SeqItinerary Jude New Jude()

25 継承 Manager Child Aglet <<interface>> Serializeable
Itinerary _itinerary = null SeqItinerary _seqitinerary = null AgletProxy manager = null Itinerary _itinerary = null onCreation() handleMessage() onCreation() Run() onDiposing()

26 <<interface>>
関係 <<interface>> Serializeable Itinerary Child SeqItinerary Jude

27 Agentの移動 自分自身や他のAgent,システムによって移動する. Suspend Execution Resume Execution
Serialize Agent Deserialize Agent Encode Data Decode Data 1.モバイルエージェントの実行を停止させる 2.データを直列化(Serialize)する 3.直列化されたデータを相手先のコンピュータに送信する 4.移動先の計算機で受信したデータを復号化(deserialize)し、モバイルエージェントに変換する 5.モバイルエージェントの実行を再開する Transfer Data Receive Data Network

28     補足資料

29 参考図書 Programming And Deploying Java Mobile Agents With Aglets
Danny B.Lange ソースコード    Javadoc    Aglet API   

30 ATP(Agent Transfer Protocol)
エイジェントとシステムの間の独立した方法でエイジェントの移送のために設計されたアプリケーション・レベルのプロトコルである。  ATPの目的 ヘーダー・フィールドはその要求のパラメータをそこに内蔵する。ATPは、次の4つの標準の要求の方法を定義する 発送(派遣)・・・発送(派遣)の方法 撤収・・・撤収の方法 フェッチの方法 メッセージの方法 インターネット上にあるネットワークで結ばれたコンピュータ間でエージェントを移動・実行させるためのプロトコルを提供する。

31 SNMP(Simple Network Management Protocol)
TCP/IPネットワーク環境での管理プロトコル ネットワークに接続された機器をネットワーク経由で監視するためのプロトコル PC,WC,サーバー SNMPマネージャ ルーター スイッチ LAN インターネット 情報通知、設定内容通知、障害通知 動作チェック、設定変更 UDP/IPをベースとし、ネットワークに接続された機器をネットワーク経由で監視するためのプロトコル SNMPマネージャは、リモートコンソールから、ルータやハブの状態、ネットワークのトラフィックの状態を管理するプログラムのこと 管理される機器側には、MIBと呼ばれる機器の状態を表わす変数と、これを操作するためにSNMPエージェントと呼ばれるプログラムが用意される

32 RPC(Remote Procedure Call )
リモートコンピュータに要求を出し、なんらかの手続きを実行させ、結果を受け取る。 スタブには、外部データ表現(XDR) を用いた通信処理が記述されている。 スタブをにより、異なる計算機間でクライアントとサーバでも通信が可能となる 引数の受け取り サーバ プロセス クライアント スタブ 手続きの呼び出し 結果を受け取る 結果を返す ネットワーク 引数をXDRに変換 受け取ったデータをクライアント側の形式に変換 返り値をXDR形式に変換 受け取ったデータをサーバ側の形式に変換 呼び出された手続きの実行 リモートコンピュータに要求を出し、なんらかの手続きを実行させ、結果を受け取る。 スタブと呼ばれる通信インタフェースには、外部データ表現(XDR) を用いた通信処理が記述されている。 スタブを用いることにより、異なる計算機間で動くクライアントとサーバでも通信が可能となる

33 エイジェント 人々を助け、そして人々に代わって行動する1つのプログラムのこと。 特性 拡張
反応性:実行環境において変化を知覚し変化に従って行動する 自律性:それ自身の行動に対してコントロールを持つ 行動性:目標に駆動されて動く 当面連続的;連続的に実行 拡張 通信可能性:他のエイジェントと通信できる 移動性:1つのホストから他のホストへ移動できる 学習性:以前の経験に従って適応する 信頼性:エンド・ユーザーにとっては信頼できるように見る

34 移動エージェントの将来 普遍的になれば、資源が有効利用可能な場所へとエージェントは動き回ることも起こりうる
異種エージェントがネットワーク上に多数存在し、それらが各所に移動しながらさまざまな処理を行なうことになる これに向けては、エージェントの移動やエージェント間通信の相互運用性の確保、セキュリティや信頼性の研究が重要である


Download ppt "モバイルエージェントによる 経路監視機構に関する研究"

Similar presentations


Ads by Google