(57)【要約】パターンベース分散型ネットワーク管理を提供する装置、方法及びソフトウェア配置。本装置は、複数のネットワークノードのうちの少なくとも１つの他のネットワークノード（図２、＃２１６）に接続されるルータ（図２、＃２０８）と、プロセッサとを含むネットワークノード（図２、＃２０８）である。前記プロセッサは、ネットワーク管理プログラム及びモバイル状態情報を受信し、前記ネットワーク管理プログラムを前記複数のネットワークノードのうちの前記少なくとも１つの他のネットワークノードに送信するかどうかを決定し、前記モバイル状態情報を前記複数のネットワークノードのうちの前記少なくとも１つの他のネットワークノードに送信し、前記ネットワーク管理プログラムを、前記複数のネットワークのうちの前記少なくとも１つの他のネットワークノードに、前記決定に基づいて選択的に送信するように構成される。
2006526359.tif 000002
【特許請求の範囲】
【請求項１】
パターンベース分散型ネットワーク管理を提供するネットワークノードであって、
複数のネットワークノードのうちの少なくとも１つの他のノードに接続されるルータと、
ネットワーク管理プログラム及びモバイル状態情報を記述する第１データセットを受信し、前記ネットワーク管理プログラムを記述する第２データセットを前記複数のネットワークノードのうちの前記少なくとも１つの他のネットワークノードに送信するかどうかを決定し、前記モバイル状態情報を前記複数のネットワークノードのうちの前記少なくとも１つの他のネットワークノードに送信し、前記第２データセットを前記決定に基づいて前記複数のネットワークノードのうちの前記少なくとも１つの他のネットワークノードに選択的に送信するように構成されるプロセッサとを具えることを特徴とするネットワークノード。
【請求項２】
請求項１に記載のネットワークノードにおいて、前記プロセッサは、計算及びデータ集約を行うように構成されるネットワーク管理プログラムを実行することを特徴とするネットワークノード。
【請求項３】
請求項１に記載のネットワークノードにおいて、前記第１データセットと前記第２データセットは、同じか異なることを特徴とするネットワークノード。
【請求項４】
請求項１に記載のネットワークノードにおいて、前記プロセッサは、前記ネットワーク管理プログラムに関係付けられるチェックサムを受信することを特徴とするネットワークノード。
【請求項５】
請求項４に記載のネットワークノードにおいて、前記プロセッサは、前記第１データセットをコンパイルし、前記第２データセットを形成することを特徴とするネットワークノード。
【請求項６】
請求項５に記載のネットワークノードにおいて、前記プロセッサは、前記第２データセットを前記チェックサムと比較することを特徴とするネットワークノード。
【請求項７】
請求項１に記載のネットワークノードにおいて、前記第１データセットは、前記ネットワーク管理プログラムを記述するソースコードファイルであることを特徴とするネットワークノード。
【請求項８】
請求項１に記載のネットワークノードにおいて、前記プロセッサは、ＵＮＩＸ（登録商標）オペレーティングシステムを利用することを特徴とするネットワークノード。
【請求項９】
請求項１に記載のネットワークノードにおいて、前記プロセッサは、前記少なくとも１つの他のネットワークノードのアドレスと前記チェックサムとを記録する記録をデータベースにおいて形成することを特徴とするネットワークノード。
【請求項１０】
請求項１に記載のネットワークノードにおいて、前記プロセッサは、データベースの検索が前記少なくとも１つの他のネットワークノードのアドレス及び前記チェックサムの双方を含む記録を発見しない場合、前記第２データセットを前記複数のネットワークノードのうちの前記少なくとも１つの他のネットワークノードに送信するかどうかを決定することを特徴とするネットワークノード。
【請求項１１】
パターンベース分散型ネットワーク管理を提供する方法であって、
ネットワーク管理プログラムと、複数のネットワークノードのうちの第１ネットワークノードのモバイル状態情報とを記述する第１データセットを受信するステップと、
前記ネットワーク管理プログラムを記述する第２データセットを、前記複数のネットワークノードのうちの、前記第１ネットワークノードに接続される第２ネットワークノードに送信するかどうかを決定するステップと、
前記モバイル状態情報を前記第２ネットワークノードに送信するステップと、
前記第２データセットを、前記決定に基づいて、前記第２ネットワークノードに選択的に送信するステップとを含むことを特徴とする方法。
【請求項１２】
請求項１１に記載の方法において、計算及びデータ集約を行うように構成される前記ネットワーク管理プログラムを実行するステップをさらに含むことを特徴とする方法。
【請求項１３】
請求項１１に記載の方法において、前記第１データセットと前記第２データセットは、同じか異なることを特徴とする方法。
【請求項１４】
請求項１１に記載の方法において、前記ネットワーク管理プログラムに関係付けられるチェックサムを受信するステップをさらに含むことを特徴とする方法。
【請求項１５】
請求項１４に記載の方法において、前記第１データセットをコンパイルし、前記第２データセットを形成するステップをさらに含むことを特徴とする方法。
【請求項１６】
請求項１５に記載の方法において、前記第２データセットを前記チェックサムと比較するステップをさらに含むことを特徴とする方法。
【請求項１７】
請求項１１に記載の方法において、前記第１データセットが、前記ネットワーク管理プログラムを記述するソースコードファイルであることを特徴とする方法。
【請求項１８】
請求項１１に記載の方法において、前記第２ネットワークノードのアドレスと前記チェックサムとを記録する記録をデータベースにおいて形成するステップをさらに含むことを特徴とする方法。
【請求項１９】
請求項１１に記載の方法において、データベースの検索が前記少なくとも１つの他のネットワークノードのアドレス及び前記チェックサムの双方を含む記録を発見しない場合、前記第２データセットを前記複数のネットワークノードのうちの前記第２ネットワークノードに送信するかどうかを決定するステップをさらに含むことを特徴とする方法。
【請求項２０】
パターンベース分散型ネットワーク管理を提供するソフトウェア配置において、
該ソフトウェア配置は、処理装置によって実行される場合、前記処理装置に、
ネットワーク管理プログラムと、複数のネットワークノードのうちの第１ネットワークノードのモバイル状態情報とを記述する第１データセットを受信するステップと、
前記ネットワーク管理プログラムを記述する第２データセットを、前記複数のネットワークノードのうちの、前記第１ネットワークノードに接続される第２ネットワークノードに送信するかどうかを決定するステップと、
前記モバイル状態情報を前記第２ネットワークノードに送信するステップと、
前記第２データセットを、前記決定に基づいて、前記第２ネットワークノードに選択的に送信するステップとを実行させるように構成されることを特徴とするソフトウェア配置。
【請求項２１】
請求項２０に記載のソフトウェア配置において計算及びデータ集約を行うように構成される前記ネットワーク管理プログラムを実行するステップをさらに含むことを特徴とするソフトウェア配置。
【請求項２２】
請求項２０に記載のソフトウェア配置において、前記第１データセットと前記第２データセットは、同じか異なることを特徴とするソフトウェア配置。
【請求項２３】
請求項２０に記載のソフトウェア配置において、前記ネットワーク管理プログラムに関係付けられるチェックサムを受信するステップをさらに含むことを特徴とするソフトウェア配置。
【請求項２４】
請求項２３に記載のソフトウェア配置において、前記第１データセットをコンパイルし、前記第２データセットを形成するステップをさらに含むことを特徴とするソフトウェア配置。
【請求項２５】
請求項２４に記載のソフトウェア配置において、前記第２データセットを前記チェックサムと比較するステップをさらに含むことを特徴とするソフトウェア配置。
【請求項２６】
請求項２０に記載のソフトウェア配置において、前記第１データセットが、前記ネットワーク管理プログラムを記述するソースコードファイルであることを特徴とするソフトウェア配置。
【請求項２７】
請求項２０に記載のソフトウェア配置において、前記第２ネットワークノードのアドレスと前記チェックサムとを記録する記録をデータベースにおいて形成するステップをさらに含むことを特徴とするソフトウェア配置。
【請求項２８】
請求項２０に記載のソフトウェア配置において、データベースの検索が前記少なくとも１つの他のネットワークノードのアドレス及び前記チェックサムの双方を含む記録を発見しない場合、前記第２データセットを前記複数のネットワークノードのうちの前記第２ネットワークノードに送信するかどうかを決定するステップをさらに含むことを特徴とするソフトウェア配置。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、その開示全体が参照によってここに含まれる２００３年４月７日に出願された米国特許仮出願番号６０／４６１２２１号から優先権を主張する。
【０００２】
本発明は、分散型ネットワーク管理を提供するシステム、方法及びソフトウェア配置に関し、より特には、軽量モバイルエージェントが予め定義されるパターンに従ってネットワークじゅうに分散されるパターンベース分散型ネットワーク管理を提供するシステム、方法及びソフトウェア配置に関する。
【背景技術】
【０００３】
通信ネットワーク上で交換されるデータ量が増すにつれて、データの流れを管理して、ネットワークにおけるボトルネックを回避し、データの高いスループットが達成されるのを確実にすることは、多くの状況において必要になってきた。集中型ネットワーク管理方式は、ネットワークの性能を最適化するように発達してきた。最後の１０年間の間、既存の集中型管理方式の特定の欠点が認識され、分散型ネットワーク管理を実現するためのいくつかのアプローチが開発されてきた。分散型ネットワーク管理方式の大部分は、中央集中化されるネットワーク管理タスクの全体的な制御を保ちながら、管理タスクに関係する計算を分散することに焦点を合わせていた。
【０００４】
最初に、高性能アクティブネットワークプラットフォームが開発され、ワイヤスピードに近い速度で管理トラヒックを処理するネットワーク管理アプリケーションを実現した。この原理によって実現されるシステムは、代表的に、空間及び速度に関して最適される低レベルのアセンブリ形式の命令セットを有する。残念ながら、これらのようなシステムにおいて管理プログラムを開発することは、これらの低レベルの性質により困難であり、これらの管理プログラムの使用は、プログラム可能トラヒックプローブのような簡単なネットワーク管理機能に限定される。さらに、これらのプラットフォームは、汎用ルータと呼ばれる市販品のルータにおいて利用できない機能を要求するカスタマイズされた又は特別なネットワークにおいて構築される。
【０００５】
高性能アクティブネットワークプラットフォームにおいて使用される技術のいくつかを、従来のインターネットプロトコル（ＩＰ）ネットワークの管理に用いるために、ソフトウェアルータが使用されてきた。これらの環境において、オペレーティングシステムは、管理実行環境において処理するパケットを、通常、ルータアラートと呼ばれるＩＰオプションを通じて遮断する。この線に沿って開発されるシステムの多くは、性能より柔軟性を重要視し、一般に、Ｊａｖａ（登録商標）において構築されるような重量級のインフラストラクチュアのサポートを要求する。
【０００６】
非集中型ネットワーク管理に向かう重要な前進は、管理タスク用モバイルエージェントの導入によって行われた。モバイルエージェントは、ネットワークじゅうを移動し、ユーザ（すなわち、人間のオペレータ）又は他の実体の代理をする自己完結型プログラムとして特徴付けられる。モバイルエージェントは、自律的決定を行うために、ある程度のインテリジェント挙動をしばしば必要とするため、一般に複雑である。モバイルエージェントは、種々のネットワーク管理タスクを分散的方法において実行する。分散型ネットワーク管理に対するモバイルエージェントアプローチの主な欠点は、モバイルエージェントの構造自身にある。モバイルエージェントは、かなり複雑で、標準ルータ又はスイッチにおいて代表的に存在するより多くの処理パワーを要求し、ネットワーク全体に渡って伝播するために、かなりのバンド幅を要求する。
【０００７】
モバイルエージェントをネットワークじゅうに効率的に伝播させるために、種々のグラフ横断アルゴリズムが、ネットワーク内の管理情報の処理及び集約を管理及び調整するのに使用される。ネットワークマネージャの視点から、前記アルゴリズムは、計算プロセスをノードの大きい集合に拡散又は分散させる手段を提供する。このアプローチの主な特徴は、拡散及び集約のこのメカニズムを、管理動作のセマンティックから分離するその能力である。このパラダイムは、この能力を、２つの重要な概念、すなわち、ナビゲーションパターン及びアグリゲータを通じて達成する。前記ナビゲーションパターンは、分散型制御を実現する汎用グラフ横断アルゴリズムを表し、前記アグリゲータは、タスクを実現するのに必要な計算を実行する。
【０００８】
図１Ａ−１Ｄは、ナビゲーションパターンの最も簡単な例を示す。基本パターン１００は図１Ａにおいて例示され、基本パターン１００において、制御はあるノード１０２から他のノード１０４に移動し（矢印１０６によって示される）、ノード１０４における動作をトリガした後、戻る（矢印１０８によって示される）。マネージャ−エージェント相互作用は、このパターンの一例である。他のパターン１２０はシナリオを表し、このシナリオにおいて、制御は、発信元ノード１２２において開始し、ネットワークにおけるある経路における多数のノード１２４に沿って移動し、この経路のノード１２４における動作をトリガし、同じ経路に沿って発信元ノード１２２に戻る。このパターンの可能な用途は、仮想経路又はマルチプロトコルラベルスイッチング（ＭＰＬＳ）に関するリソース予約である。依然として他のパターン１４０は図１Ｃにおいて例示され、パターン１４０において、制御は、発信元ノード１４２において開始し、ノード１４４に移動し、このとき並行して隣接するノード１４６にも移動し、これらのノードにおける動作をトリガし、結果変数と共に発信元ノード１４２に戻る。パターン１４０は、パターン１００の並行バージョンとして理解することができる。最後に、図１Ｄにおいて示される他のパターン１６０において、制御は、ネットワークにおける円状経路に沿って移動する。ナビゲーションパターンを、動作において行われる管理タスクと無関係に規定できることに注意することが重要である。これらの伝播方式の欠点は、これらの非決定的性質である。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
したがって、本発明の目的の１つは、市販ルータの内部ソフトウェア又はハードウェアへの独占アクセスの必要なしに、市販ルータの内部ソフトウェア又はハードウェアのどのような変更もする必要なしに、市販ルータの大きいネットワークから管理情報をすばやく収集及び処理することを可能にする装置、方法及びソフトウェア配置を提供することである。
【００１０】
本発明の他の目的は、並列プログラミングに関する通常の複雑さをこうむることなく、ネットワークの並列処理能力に関する速度及びパワーを利用するように構成される管理プログラムを含む装置、方法及びソフトウェア配置を提供することである。
【００１１】
本発明の依然として他の目的は、管理システムの機能性を拡張する装置、方法及びソフトウェア配置を提供することであり、前記システムは、新しいコードを導入するために停止させる必要がない（すなわち、コードをモバイルエージェントによって伝送することができる）。
【００１２】
本発明の依然として他の目的は、異なったアグリゲータを接続することによって単一のパターンプログラムを多くのアプリケーションに再利用することができるため、並列管理プログラムを開発するコストを劇的により低くする装置、方法及びソフトウェア配置を提供することである。
【００１３】
本発明の他の目的は、ツリー又はスケールフリートポロジーを有するネットワークに消費される速度及びバンド幅の双方の点でエコーパターンを効率的な方法において使用する、情報を収集及び処理する装置、方法及びソフトウェア配置を提供することである。
【課題を解決するための手段】
【００１４】
これら及び他の目的は、本発明によるパターンベース非集中型ネットワーク管理を提供する装置、方法及びソフトウェア配置の好適実施例によって達成することができる。好例の装置は、複数のネットワークノードのうちの少なくとも１個の他のノードとプロセッサとに接続されるルータを含むネットワークノードである。前記プロセッサは、ネットワーク管理プログラム及びモバイル状態情報を受信し、前記ネットワーク管理プログラムを前記複数のネットワークノードのうちの少なくとも１個の他のネットワークノードに送るか否かを決定し、前記モバイル状態情報を前記複数のネットワークノードのうちの少なくとも１個の他のネットワークノードに送信し、前記ネットワーク管理プログラムを前記決定に基づいて前記複数のネットワークノードのうちの少なくとも１個の他のネットワークノードに選択的に送信するように構成される。
【００１５】
ここで、本発明及びその利点のより完全な理解のため、添付する図面に関係して以下の説明を参照する。
【００１６】
図面を通じて、同じ数字及び文字は、他に述べていなければ、例示される実施例の同じ特徴、要素、構成要素、又は、部分を示すのに使用される。さらに、本発明は、図面の参照と共に詳細に記載されると同時に、説明のための実施例に関しても記載される。
【発明を実施するための最良の形態】
【００１７】
本発明の好適実施例において、パターンベースパラダイムを使用して分散方法においてネットワークを管理するパターンベースネットワーク管理システム２００が提供される。システム２００は、汎用ルータと呼ばれる市販品のルータに接続される低コストのシングルボードコンピュータのネットワークを使用するパターンベースネットワーク管理パラダイムを実現する。このシステム２００は、既存のネットワークにおいて開発することができる軽量モバイルエージェントの調整された動作を利用する。これらの軽量モバイルエージェントは、ネットワーク管理動作を高速かつスケーラブルな方法において実行する。前記軽量モバイルエージェントは、ネットワークの並列処理能力を利用する。これらのエージェントは、状態情報を常に運ぶが、ネットワーク管理プログラムを絶対に必要な場合にのみ運び、前記軽量モバイルエージェントを、ネットワークのノードからノードへ伝送される場合、かなり小さくする。前記軽量モバイルエージェントを、汎用ルータのネットワークにおいて分散されるように構成し、前記ルータに対する変更が必要ないように設計する。
【００１８】
前記軽量モバイルエージェントは、パターンベース管理を使用して分散型の方法において前記ネットワークを管理する。パターンベース管理は、前記軽量モバイルエージェントを制御及び調整するのに使用される、ナビゲーションパターンの概念に集中する。ナビゲーションパターンは、局所管理動作の前記ネットワークじゅうへの分散と、これらの局所動作の結果の集約とを決定するグラフ横断アルゴリズムを実現する。
【００１９】
システム２００は、パターンベース管理システムの効率的な実行を利用し、これによって、前記軽量モバイルエージェントによって集約される前記ネットワーク管理プログラムは、大きいネットワークにおいても、すぐに実行を終了する。また、前記ネットワーク管理プログラムを、事実上すべての汎用ルータにおいて実行するように設計する。
【００２０】
パターンベース管理システムは、他のネットワーク管理アプローチより優れたいくつかの利点を有する。第１に、管理プログラムを、性能及びスケーラビリティに関して正式に解析することができる。この解析は、前記グラフ横断アルゴリズム及びその基礎をなすパターンの解析に基づく。第２に、ナビゲーションパターンは、管理動作のセマンティックと、前記動作の分散プログラミング態様との分離を可能にする。ソフトウェア工学の観点から、この分離は、アプリケーション及び／又はネットワーク開発者が、特定のセマンティックと結合されて特定の管理動作を直接的な方法において実行することができる汎用パターンを設計することを可能にする。パターンは、一度設計されると、多くの管理タスクの実行において利用することができる。逆に、特定の管理タスクを、アプリケーション及び／又はネットワーク開発者が異なった性能プロファイルを有する管理動作を構築することを可能にするパターンの選択から、場合によっては構築することができる。最終的に、このアプローチは、アプリケーションプログラマを分散アルゴリズムの開発から開放し、彼／彼女が、タスクに関する要求を集積するカタログからナビゲーションパターンを選択することによって、目下の管理タスクに集中することを可能にする。
【００２１】
第３に、理解し処理するのが複雑であるかもしれないネットワーク障害に対する応答をパターンにプログラムすることができ、これによって、アプリケーションプログラマが障害に対処する必要性をなくすことができる。最後に、ネットワークにおける管理動作の実行は、ネットワークノードにおいてすでに存在しないプログラムの部分のみを分散するため、コード移動性の程度を細かく制御することができる。すなわち、頻繁に実行される管理プログラムに関して、分散された計算の状態のみをネットワークノード間で交換する必要があり、局所的に利用可能なコードを交換する必要はない。
【００２２】
軽量エージェントのネットワーク管理プログラムを通じて、種々の管理動作をシステム２００において実現することができる。前記軽量エージェントを（図３に示す）エコーパターン３００に基づいてシステム２００全体に渡って分散させる。これらの種々の管理動作は、きわめて多数のノードと、ダイナミックトポロジーと、非集中型トポロジーデータベースとを有するネットワークの管理において有用である。すべての管理計算を、論理ネットワークノードにおいて、すなわち、前記ネットワークの内部で実行する。前記管理動作は、トポロジーの統計的抽象と、局所性能データの統計的抽象と、性能データのトポロジーデータとの相関と、ソフトウェア構成管理とを含む。トポロジーの統計的抽象は、ネットワーク管理ステーション２０２が、所定のノードについての現在の局所ネットワークトポロジー、ネットワークトポロジーにおけるリーフノードの数、ネットワークの直径、ネットワークトポロジーの接続性分布等を含む、ネットワークについての種々のデータを発見する。局所性能データの統計的抽象は、ネットワーク管理ステーション２０２が、ネットワークにおいて最も混雑したリンク、及び／又は、ネットワークにおけるリンク負荷の分布、キューの長さ等を決定することを可能にする。性能データのトポロジーデータとの相関は、ネットワーク管理ステーション２０２が、すべてのリンクに非常に負荷がかかったサブトポロジーを識別し、特定の期間内にネットワークの２つのサブ領域間で流れるルート及びトラフィック量等を計算することを可能にする。ソフトウェア構成構成管理は、ネットワーク管理ステーション２０２が特定のバージョンのオペレーティングシステムを実行するすべてのルータにおいてソフトウェアパッチをインストールすることを可能にする。
【００２３】
ネットワーク管理システム２００に関する関心事は、コード移動性である。特に、コードを論理ネットワークノードから論理ネットワークノードへそのバイナリ形式において転送すべきか又はソースコード形式において転送すべきか、又は、コードを、パターンによって輸送すべきか又はコードサーバからダウンロードすべきかを決定する。これらの質問に対処して行われる決定は、システム２００の性能と、攻撃に対するその脆弱性とにおける意味を有する。
【００２４】
プログラムをソース形式において転送すべき場合、各々のアクティブノードにおけるその実行前に、時間のかかるコンパイルプロセスを実行しなければならない。加えて、すべてのノードに、コンパイラ、リンカ及びヘッダファイルを格納するのに十分なディスク空間を備え付けなければならない。ソースコードを転送する利点は、ソースプログラムはコンパイルされたプログラムよりかなり小さいことである。システム２００は、前記ネットワーク管理プログラムをバイナリ形式で、ネットワーク全体にわたって論理ネットワークノードから論理ネットワークノードへ、パターンを使用して伝送する。
【００２５】
本発明の好適実施例において、コードサーバを使用し、前記ネットワーク管理プログラムを拡散させることができる。しかしながら、ネットワークがより大きくなるにつれて、これらのコードサーバはボトルネックになる。この問題を克服するためにコードサーバの数を増強すると、ネットワーク全体にわたるすべてのコードサーバにおける前記ネットワーク管理プログラムのコピーを最新に一致して保つことは、費用と時間がかかるおそれがあるため、他の問題を招く。
【００２６】
本発明の好適実施例において、システム２００は、前記ネットワーク管理プログラムをそのソースコード形式において伝送する。本発明の他の好適実施例において、システム２００は、前記ネットワーク管理プログラムを、そのソースコード形式において、第１論理ネットワークノードのみに伝送し、前記第１論理ネットワークノードは、前記ネットワーク管理プログラムをその実行可能なコード形式にコンパイルし、このコンパイルされたネットワーク管理プログラムをネットワーク全体にわたって伝送する。
【００２７】
モバイルコードを含むどのようなシステムとも同様に、安全でない又は悪意のあるプログラムが導入される危険性が常にある。システム２００は、いくつかの方法においてこの問題に対処しようと試みる。第１に、ネットワーク管理ステーション２０２と論理ネットワークノードとの間のすべての通信は、セキュアソケット使用可能（ＳＳＬ使用可能）ウェブインタフェースを介して生じる。これは、不正なアクセスの危険性を減少し、成りすまし攻撃にから保護する。第２に、管理プログラムのコンパイルされたコード又は実行可能なコードを、制限された権利とリソース割り当てとを有する別個のプロセスのコンテキスト内でのみ実行する。これは、管理プログラムが、致命的誤りを生じるはずの、互いに干渉する又はデーモンをクラッシュするのを防ぐ。最後に、論理ネットワークノード２２０、２３０、２４０の各々の間の通信チャネルを、トランスポートレイヤセキュリティ（ＴＬＳ）プロトコル等と同様の簡単なプロトコルを使用して実現し、これによって、データの通過中、第三者がプログラムコード又は状態を変更するのを防ぐ。加えて、論理ネットワークノード２２０、２３０、２４０において動作するオペレーティングシステムに付随し、システム２００によって使用されないすべてのサービスを使用不能にする。
【００２８】
図２は、本発明の好適実施例によるパターンベースネットワーク管理システム２００のネットワークアーキテクチャを例示する。システム２００は、ネットワーク管理ステーション２０２と、コードサーバ２０４と、複数の論理ネットワークノード２２０、２３０、２４０とを含む。複数の論理ネットワークノード２２０、２３０、２４０の各々は、各々アクティブノード２０６、２１２、２１６と連絡する物理的ルータ２０８、２１０、２１４を含む。パターンベースネットワーク管理プログラムのコピーは、ネットワークノード２２０、２３０、２４０のアクティブノード２０６、２１２、２１６において動作する。前記パターンベースネットワーク管理プログラムを、多数の方法において、例えば、Ｊａｖａのような多目的フレームワーク、又は、参照によってその全体がここに含まれるhttp://tns-www.lcs.mit.edu/publications/openarch98.htmlによってより詳細に説明されるＡＮＴＳのようなアクティブネットワーキングツールキットを使用して実現することができる。前記パターンベースネットワーク管理プログラムの実行は、前記ネットワーク管理システムを含む軽量モバイルエージェントがネットワーク管理ステーション２０２から第１ネットワークノード２２０（時には開始ノード又は発信元ノードと呼ばれる）のアクティブノード２０６に伝送されるとき開始する。前記プログラムが、コンパイルされたその命令実行段階を第１ノード２２０において有する場合、前記プログラムのパターン成分は、前記プログラムが次に実行しなければならない適切な次の１つ又は複数のノードを決定する。前記次のノードが前記パターンベースネットワーク管理プログラムのコピーをすでに含む場合、前記プログラムの状態情報のみを含む前記軽量モバイルエージェントを前記次のノードに伝送する。そうでなければ、その実行可能な形式における前記ネットワーク管理プログラムと、モバイル情報変数とを含む前記軽量モバイルエージェントを送る。
【００２９】
各々のルータ２０８、２１０、２１４を、前記パターンベースネットワーク管理プログラムを実行するのに必要な実行環境をホストする専用アクティブノード２０６、２１２、２１６によって管理する。各々のアクティブノード２０６、２１２、２１６は、ネットワークインタフェース及び記憶装置を含むインターネット使用可能なシングルボードコンピュータを含む。アクティブノード２０６、２１２、２１６のハードウェアは、一辺当たり３インチのアルミニウム立方体の形態において市販されている。各々のアクティブノード２０６、２１２、２１６は、限定された機能を有するＵｎｉｘオペレーティングシステムの変更されたディストリビューションを実行する。
【００３０】
好適実施例において、前記インターネット利用可能なシングルボードコンピュータに、Ｉｎｔｅｌ  ＳｔｒｏｎｇＡＲＭ  １１１０マイクロプロセッサと、３２ＭＢのＳＤＲＡＭと、１０Ｍｂｐｓのイーサネット（登録商標）インタフェースとを搭載する。他の好適実施例において、前記記憶装置を、前記シングルボードコンピュータのオンボードコンパクトフラッシュ（登録商標）スロットに接続される１ＧＢドライブとする。他の好適実施例において、アクティブノード２０６、２１２、２１６の各々は、Ｌｉｎｕｘカーネルを実行し、同時に、ワイドエリアネットワークの管理インタフェースを実現するのに使用されるＡｐａｃｈｅウェブサーバを実行する。
【００３１】
本発明の好適実施例において、ネットワークノード２２０、２３０、２４０のアクティブノード２０６、２１２、２１６を、各々、ルータ２０８、２１０、２１４内に組み込んでもよい。このようなシステムを汎用ルータにおいて低コストで実現することは、設計空間をかなり制限し、ネットワーク及び／又はアプリケーション設計者に重大な課題をもたらす。本発明の他の好適実施例において、ネットワーク管理ステーション２０２は、コードサーバ２０４の動作を実行し、これによって、システム２００において使用されるハードウェアを単純化する。
【００３２】
スケーラビリティの観点から、パターンベース管理システムは、管理データの集中型処理に関係するボトルネックを、適切なナビゲーションパターンによって負荷をネットワークノードに分散させることによって解消することができる。計算をネットワークノードに分散させる方法として図３に示すエコーパターン３００を使用することによって、高度にスケーラブルな管理プログラムをコンパクトな形態において実現することができる。
【００３３】
いくつかのナビゲーションパターンを、図１Ａ−１Ｄに関係して上述した。エコーパターン３００は、基本パターン１４０の拡張であり、データを大きいネットワークにわたって分散させ集約することにおいて特に効率的である。エコーパターン３００は、ウェーブアルゴリズムとして知られる分散型グラフ横断アルゴリズムのクラスに基づく。エコーパターン３００は、複雑で大きいネットワークにおける大域的管理動作を可能にする効率的でエレガントな方式を示す。エコーパターン３００は、ネットワークトポロジーにおける変化に動的に適合し、最新のネットワーク情報を必要とせず、きわめて大きいネットワークにおいて良好にスケール変更する。エコーパターン３００の時間複雑性は、ネットワーク直径と共に線形的に増加し、結果として、指数法則に従う接続性分布を有するネットワークにおける実行時間を高速にする。エコーパターン３００のトラフィック複雑性は、ネットワークエッジの数と共に線形的に増加し、このパターンを実行することによって発生する管理トラフィックは、輻輳を生じるおそれがあるホットスポットを生じさせること無く、すべてのリンクにわたって一様に分散される。
【００３４】
エコーパターン３００の動作を以下のように説明することができる。パターン３００は、発信元ノード３０２から開始し、エコーパターン３００の拡張段階中、さらなる実行のために、その隣接ノード３０４、３０６の各々に移動する。前記拡張段階中、軽量モバイルエージェントは、あるノードから各々の隣接ノードに伝播する（矢印３１２、３１４、３１６、３１８によって示す）。第１時間中にあるノードに到着する軽量モバイルエージェントは、このノードに‘訪れた’とマークし（例えばノード３０４）、軽量モバイルエージェントを、その親（ここではノード３０２）と呼ばれる、それが来たノードを除いて、各々の隣接ノード（ここではノード３０８、３１０）に送信する。すでに‘訪れた’とマークされているノードに到着する軽量モバイルエージェントは、このノードにおいて終了する（すなわち、これらはより多くのエクスプローラを形成する）。ノードがその親以外に隣接ノードを持たない場合（例えば、ノード３０６、３０８、３１０）、前記軽量モバイルエージェントはその親ノードに戻る。このあるノードからその親へのパターンの戻りは、エコーと呼ばれる。ノードがその親の各々からエコーを受けた場合、エコーをその親に返す。発信元ノード３０２がその親の各々からエコーを受けた場合、このエコーパターンは終了する。
【００３５】
図４は、ネットワーク管理システム２００のアクティブノード２０６、２１２、２１６のソフトウェアアーキテクチャ４００を例示する。アクティブノード２０６、２１２、２１６の各々のソフトウェアアーキテクチャ４００は、本質的に同じであり、簡単にするために、ソフトウェアアーキテクチャ４００をアクティブノード２０６に関して説明する。ソフトウェアアーキテクチャ４００は、アクティブノードマネージャ４０２と、コンパイラ４１６と、アクティブノードエンジン４０４と、データレポジトリのグループ４１４、４１８、４２０、４２２、４２４とを含む。アクティブノードマネージャ４０２は、アクティブノード２０６を構成し動作するネットワーク管理ステーション２０２にウェブインタフェースを提供する。アクティブノードエンジン４０４は、プリプロセッサ４０６と、実行環境４０８と、輸送アクセスポイント４１０と、デバイスマネージャ４１２とを含む。アクティブノードエンジン４０４は、バックグランドプロセスとして動作する。これは実行環境４０８を実現し、実行環境４０８は、アクティブノード２０６においてパターンベースネットワーク管理プログラムを実行する。ノード状態レポジトリ４１４は、実行する管理プログラムの数及びパラメータを含むアクティブノード２０６の動作状態を記憶する。ソースレポジトリ４１６は、多数のプログラムに関係するソースコードを格納する。バイナリレポジトリ４１８は、実行準備ができたパターン及びアグリゲータのキャッシュを格納する。局所プログラム状態レポジトリ４２２は、軽量モバイルエージェントが他のノードに移動する場合の局所状態変数を格納する。管理動作結果レポジトリ４２０は、管理動作から返った結果の永続的な格納を準備する。
【００３６】
好適実施例において、アクティブノードマネージャ４０２は、Ａｐａｃｈｅ  ＳＳＬ−使用可能ウェブサーバと、ハイパーテキストプリプロセッサ（ＰＨＰ）スクリプトのようなサーバ側スクリプトとを含む。
【００３７】
図５Ａ−５Ｄは、システム１００において新たなネットワーク管理プログラムを分散させるプロセス５００を例示する。プロセス５００は、ステップ５０２において、開始ノード、ここではアクティブノード２０６のアクティブノードマネージャ４０２が、そのソースコードにおいてネットワーク管理プログラムを含む軽量モバイルエージェントをネットワーク管理ステーション２０２から受信するときに開始する。前記開始ノード（時には、発信元ノードと呼ばれる）は、単に、新たなソースコードを受信する第１アクティブノードである。アクティブノードマネージャ４０２が完全な送信をいったん受信すると、アクティブノードマネージャ４０２は、ステップ４０４において、前記新たなソースコードをソースレポジトリ４１４に格納し、ソースファイル名及びパラメータをプリプロセッサ４０６に転送する。
【００３８】
ステップ５０６において、プリプロセッサモジュール４０６は、コンパイラ４１６を呼び出して新たなネットワークプログラムの新たな部分のソースコードを処理し、結果として生じるバイナリのＭＤ５チェックサムのようなデジタルフィンガープリントを計算し、データの完全性を確認する。ステップ５０８において、前記コンパイラは、コンパイル中にエラーが生じたか否かを決定する。コンパイラ４１６が、処理中にエラーに遭遇した場合、コンパイルを中止し、プロセス５００はステップ５０９に進む。そうでなければ、プロセス５００はステップ５１０に進み、プリプロセッサ４０６は実行環境４０８を呼出し、新たなネットワーク管理プログラムを実行する。ステップ５１２において、プロセス５００は、前記プログラムを動的にロードし、前記パターン及びアグリゲータオブジェクトをインスタンス化する。ステップ５０９において、実行環境４０８は、エラーコードを、アクティブノードマネージャ４０２を経てネットワーク管理ステーション２０２に返す。
【００３９】
ステップ５１４において、プロセス５００は、プログラムバイナリがバイナリレポジトリ４１８にあるか否かを決定する。前記プログラムバイナリがバイナリレポジトリ４１８にすでにある場合、プリプロセッサ４０６は、ステップ５１６において、実行環境４０８を直接呼出し、コンパイルされたバイナリのファイル名及びパスを実行環境４０８に渡す。そうでなければ、プロセス５００はステップ５１７に進み、実行環境４０８は、エラーコードを、アクティブノードマネージャ４０２を経てネットワーク管理ステーション２０２に返し、ステップ５００は終了する。
【００４０】
ステップ５１８において、実行環境４０８は、新たなネットワーク管理プログラム、パターンオブジェクト及びアグリゲータオブジェクトを動的にロードし、前記新たなネットワーク管理プログラムの実行を開始する。実行環境４０８は、ステップ５２０において、システムワイドユニーククッキーも発生し、このシステムワイドユニーククッキーは、前記プログラムの分散状態をその現在の実行と関係付ける。実行環境４０８は、ステップ５２０において、デバイスマネージャ４１２に対する制御を放棄し、ネットワークマネージャステーション２０２によって指定されるような引数を他の処理のためにデバイスマネージャ４１２に渡す。
【００４１】
ステップ５２４において、前記ネットワーク管理プログラムは、アクティブノードアドレスのリストを取得するために、デバイスマネージャ４１２を経て、取り付けられたルータの管理インタフェースにアクセスする。特定のアクセスプロトコルに加えて、デバイスマネージャ４１２は、ハートビートのような低レベル監視手順を実行し、取り付けられた装置における障害を検出する。アクティブノード２０６は、シンプルネットワーク管理プロトコル（ＳＮＭＰ）用の単一のデバイスマネージャ４１２を含む。前記ネットワーク管理プログラムがその実行をアクティブノード２０６において完了した場合、ステップ５２６において、制御とアクティブノードアドレスのリストとを実行環境４０８に返す。前記アクティブノードアドレスのリストは、前記軽量モバイルエージェントが次に移動するアクティブノードである。
【００４２】
本発明の好適実施例において、アクティブノード２０６は、ルータ２０８によってサポートされる各々のアクセスプロトコルにつき１つの多数のデバイスマネージャを含む。
【００４３】
ステップ５２８において、実行環境４０８は、そのアクティブ実行段階を含む。実行環境４０８は、局所プログラム変数を前記局所状態レポジトリに格納し、モバイル状態変数を直列化する。前記モバイル状態変数をいったん直列化したら、これらを、ノードアドレスのリストと、データをこれらのアドレスに伝送する要求と、クッキーと共に、輸送アクセスポイント４１０に渡す。
【００４４】
輸送アクセスポイント４１０の主な機能は、プログラムコード及び状態を隣接ノード間で安全に輸送することである。アクティブノードは、初期化されると常に、セキュアチャネルを確立することによって、その隣接するアクティブノードに接続する。輸送アクセスポイント４１０が、軽量モバイルエージェントをアクティブノードアドレスのリストに送る要求を受ける場合、輸送アクセスポイント４１０は、ステップ５３０において、何か追加のアドレスが前記アクティブノードアドレスのリストにおいて存在しているか否かを決定する。追加のアドレスが存在しない場合、プロセス５００は終了する。
【００４５】
そうでなければ、ステップ５３２において、輸送アクセスポイント４１０は、前記アドレスのリストの現在アドレスによって示されるアクティブノードが、現在実行可能なファイルのコピーを有するか否かを決定する。輸送アクセスポイント４１０は、この決定を、実行可能コード送信テーブルの記録を読むことによって行う。前記実行可能コード送信テーブルの各々の記録は、輸送アクセスポイント４１０によって送信又は受信された実行可能コードの各々に関する、アクティブノードアドレスと、ＭＤ５プログラムチェックサムのようなデジタルフィンガープリントとを含む。特定の記録のアクティブノードアドレスが現在アドレスと一致し、特定の記録のデジタルフィンガープリントが現在実行可能コードに関係するデジタルフィンガープリントと一致する記録が存在しない場合、隣接ノードが実行可能コードのコピーを実際に有する可能性にもかかわらず、前記実行可能コードを現在アドレスに関係するノードに送信する。この方式はわずかなオーバヘッドを招くが、単純で、アクティブノード２０６と隣接アクティブノードとの間のハンドシェイクを必要としない。アクティブノードが実行可能コードを有する場合、プロセス５００はステップ５３６に進み、輸送アクセスポイント４１０は、モバイル状態変数及びクッキーを、現在アクティブノードアドレスにおけるアクティブノードに送信する。そうでなければ、ステップ５３８において、輸送アクセスポイント４１０は、モバイル状態変数と、クッキーと、実行可能コードとを、現在アクティブノードアドレスにおけるアクティブノードに送信する。輸送アクセスポイント４１０は、また、特定のデジタルフィンガープリントを有する実行可能コードの現在アドレスへの送信を反映するその記録を更新する。
【００４６】
新たなネットワーク管理プログラムをシステム１００全体にわたって拡散させるために、種々のアクティブノードは、新たなネットワーク管理プログラムをその実行可能な形式において他のアクティブノードに送信する。図６は、新たなネットワーク管理ノードを、システムの１００全体にわたってアクティブノードからアクティブノードへ分散させるプロセス６００を例示する。プロセス６００は、ステップ６０２において、輸送アクセスポイント４１０が実行可能コードを含む軽量モバイルエージェントを受信するときに開始する。ステップ６０４において、輸送アクセスポイント４１０は、前記軽量モバイルエージェントがそこから来たアクティブノードアドレスと、実行可能な形式の新たなネットワーク管理プログラムのデジタルフィンガープリントとを反映する記録を実行可能コード送信テーブルに格納する。前記記録を書き込んだら、輸送アクセスポイント４１０は、ステップ６０６において、実行可能コードをバイナリレポジトリ４１８に格納する。ステップ６０８において、輸送アクセスポイント４１０は、実行可能環境４０８に移動し、新たなネットワーク管理プログラムを実行する。
【００４７】
一度実行環境４０８が実行していると、プロセス６００は、実行可能コードが現在アクティブノードにおいて動作したか否かを決定しなければならない。システムワイドクッキーを使用し、現在アクティブノードの実効環境は、ノードが前記プログラムの現在の実行に関与しているか否かを決定する。前記プログラムがあるノードにおいて最初に実行されるとき、前記システムワイドクッキーを前記実行環境によって前記ノードに格納する。前記プログラムがいくらか後の時間において前記ノードに戻る場合、前記実行環境は、好きに前記クッキーを格納したかどうかを確認するためにチェックすることができる。前記プログラムに関係するシステムワイドクッキーが前記ノードにおいてすでに格納されている場合、前記ノードは、前記プログラムの現在の実行にすでに関与している。そうでなければ、前記ノードが前記プログラムを実行する１回目である。前記プログラムが前記ノードにおけるその最終的な実行を終了するとき、その関係するクッキーは、前記実行環境によって消去される。前記実行可能コードが現在ノードにおいて実行された場合、前記パターン及びアグリゲータオブジェクトを再びインスタンス化する必要はなく、プロセス６００はステップ６１４に進む。そうでない場合、ステップ６１２において、プロセス６００は、前記実行可能コードを動的にロードし、前記パターン及びアグリゲータオブジェクトをインスタンス化する。
【００４８】
ステップ６１４において、プロセス６００は、新たなネットワークプログラムの局所状態変数を局所プログラム状態レポジトリ４２２から読み出す。実行環境４０８は、ステップ６１６において、前記パターン及びアグリゲータオブジェクトを動的にロードし、新たなネットワーク管理プログラムを実行する。ステップ６１６において前記新たなネットワーク管理プログラムの実行が開始した後、プロセス６００は、ステップ５２２において、その実行の残りのためにプロセス５００に制御を渡す。
【００４９】
パターンベースネットワーク管理システム２００の効率をテストし、パターンベース管理プログラムを開発するために、ディスクリートイベントシミュレータを開発した。前記ディスクリートイベントシミュレータは、６００００ノードまでの大きいパターンベース管理システムをシミュレートすることができる。パターンベース管理プログラムを、シミュレーションのために実行中に前記シミュレータにロードする。前記シミュレータの対話式特徴は、パターンのダイナミクスを、その関係する管理プログラムが実行されるとき、視覚化し再コード化することを可能にする。管理プログラムの効率を決定し、それについて改善するために、発生する管理トラフィックの完了時間及び量のような性能データを収集し、解析することができる。
【００５０】
好適実施例において、前記ディスクリートイベントシミュレータは、マイクロソフトウィンドウズ（登録商標）オペレーティングシステムを実行するパーソナルコンピュータにおいて実行するＣ＋＋アプリケーションである。
【００５１】
システム２００の性能を評価するために、管理動作の実行時間を測定し、計算する。実行時間は、開始ノードにおいてネットワーク管理プログラムが起動されるとき、すなわち、実行のためにダウンロードされるときから、結果がネットワーク管理ステーション２０２に返るときまでの期間として規定される。２種類の連続する実験を行い、システム２００において使用するネットワーク管理プログラムに関する遅延プロファイルを得た。第１の連続する実験は、パターン１００（図１Ａ参照）を基礎とする管理プログラムによって生じる遅延を測定することに焦点を合わせている。パターン１００は、実質的に単純なポーリング動作をモデル化し、制御は、あるノードからその隣接ノードに、戻る前に渡される。パターン１２０、１４０を、パターン１００の連続的な構成として表すことができる。同様に、パターン１３０は、制御が隣接ノードに並行して渡されるパターンの１クラスの基本構成単位である。したがって、パターン１３０を評価することから得られる測定は、パターン１３０から得られるパターン（その１つはエコーパターン３００）を基礎とする管理プログラムの性能の評価を可能にするであろう。
【００５２】
正確な測定のために、実験は、シスコカタリスト２９００高速イーサネットスイッチを経て相互接続される４台のシスコ２６２１ルータの孤立した試験台において行われた。各々のルータは、２つの高速イーサネットポートを備え、そのうちの１つは、アクセスノード２０６に直接接続される。１．１３ＧＨｚデルインスパイロン８１００ノートブックは、ネットワーク管理ステーション２０２として機能する。静的ルートは、前記高速イーサネットスイッチから、すべてのノードが互いに通信できるように設定される。
【００５３】
パターン１００を使用するネットワーク管理プログラムの遅延プロファイルを理解するために、ネットワーク管理プログラムの実行を、表１に示すような一連の段階に分解する。
【００５４】
パターン１００を使用するネットワーク管理プログラムの遅延プロファイルを理解するために、第１段階は、制御がネットワーク管理プログラムに渡されるときに開始する（Ｔ１）。これを実行段階と呼ぶ。ネットワーク管理プログラムがその実行を終了するとき、シリアル化段階（Ｔ２）を起動し、プログラムのモバイル状態変数をバッファ中にシリアル化し、次に、発送段階（Ｔ３）において遠隔アクティブノードに送信する。受信段階（Ｔ４）は、前記モバイル状態変数が前記遠隔アクティブノードにおいて受信されるときに開始する。ネットワーク管理プログラムコードも、（もし送られていたら）この段階中に保存される。前記権利プログラムがノードにおいて以前に実行されているか否かに応じて、次の段階は、ローディング段階（Ｔ５）又はインスタンス化段階（Ｔ６）のいずれかに成り得る。
【００５５】
ローディング段階（Ｔ５）は、新たなネットワーク管理プログラムがアクティブノードにおいて実行される最初のときに生じる。行われる代表的なタスクは、ダイナミックリンカを起動し、プログラムコードを共有ライブラリとしてロードすることと、前記パターン及びアグリゲータオブジェクトをインスタンス化することである。前記ネットワーク管理プログラムが以前の実行によりすでにロードされている場合、インスタンス化段階（Ｔ６）を行う。このインスタンス化段階中、前記パターン及びアグリゲータオブジェクトをインスタンス化する。ローディング段階（Ｔ５）中に要求されるように、インスタンス化段階（Ｔ６）中に前記ダイナミックリンカを起動する必要はない。
【００５６】
前記ネットワーク管理プログラムがあるノードにおいて依然としてアクティブである場合（管理情報が下流ノードによって収集された後、前記パターンが前記ノードを再び横切るのが確実であることを意味する）、前記パターン及びアグリゲータオブジェクトは、前記プログラムが他のノードに移動する場合、消去されない。このような場合、行われる唯一のタスクは、これらのオブジェクト参照を返すルックアップである。これを分解段階（Ｔ８）と呼ぶ。最後に、逆シリアル化段階（Ｔ７）は、前記モバイル状態変数をプログラムアドレス空間において、実行前に再形成する。前記ネットワーク管理プログラムは、特定のアクティブノードにおいて実行を終了するのに前記モバイル状態変数を要求する。
【００５７】
【表１】
2006526359.tif 000003
【００５８】
表１は、４０回の実行にわたって測定した各々の段階（Ｔ１乃至Ｔ８及びＴｃ）中の遅延の平均及び標準偏差を与える。この表の最後の行における通信遅延は、送信遅延と、伝播遅延と、オペレーティングシステムオーバヘッドとを含む。アクティブノード間で通信されるモバイル状態変数のサイズは、２０７バイトである。パターンプログラムは、パターン１００を実現するのに必要な最小コードを含み、どのような他の計算も行わない。アグリゲータプログラムは、空関数のみを含む。
【００５９】
パターン１００の（平均）終了時間は、
Ｔｐａｔｔｅｒｎ１００＝３Ｔ１＋２（Ｔ２＋Ｔ３＋Ｔ４＋Ｔ７）＋Ｔ６＋Ｔ８＋Ｔｃ
として得られる。上記式のより詳細な説明に関して、その全体における参照によってここに含まれる、Ｋ．Ｓ．リム他、“ウィーバー：汎用ルータにおけるスケーラブル管理パラダイムの実現”、ＫＴＨ／ＩＭＩＴ／ＬＣＤテクニカルレポートＮｒ．０２−５０２１、２００２年８月、を参照されたい。パターン１００が最初に実行されるとき、実行環境４０８が前記ダイナミックリンカを起動する必要があるため、Ｔ５−Ｔ６の追加の遅延が生じる。また、上記式によって与えられる推定は、ノードデーモンがオペレーティングシステムによってスワップされる場合の状況を考慮していない。
【００６０】
上記アプローチに続いて、パターン１２０、１３０、１４０を基礎とする管理プログラムの平均終了時間に関する同様の式を得ることができる。表２は、基本パターン１００、１２０、１３０、１４０のすべてに関して、（上記式及び表１に基づいて）推定された終了時間を試験台における実際の測定と比較する。見られるように、推定は、すべての場合において、８．３％と１０％との間の誤差のマージンで、測定された遅延より下である。
【００６１】
【表２】
2006526359.tif 000004
【００６２】
管理すべきネットワークが大きくなる場合のシステム２００のスケーラビリティを評価するために、ネットワーク管理動作の終了時間を推定し、計算する。特に、大きいネットワークにおけるパターンベース管理プログラムの終了時間を、イリノイ州シカゴ、２００１年１０月２９日、マルチメディアネットワーク及びサービスの管理におけるＩＦＩＰ／ＩＥＥＥ国際会議（ＭＭＮＳ２００１）の予稿集、３４５〜３５８ページ、Ｋ．Ｓ．リム及びＲ．スタッドラー、“パターンベース管理プログラムの開発”によって処理詳細に説明され、参照によってその全体においてここに含まれる、ＳＩＭＰＳＯＮのような、単一のコンピュータにおいてパターンプログラム及びアグリゲータの実行をシミュレートできるソフトウェアプログラムと、上述した遅延プロファイルとを使用して推定する。比較の目的のため、直列又は並列にノードをポーリングする集中管理ネットワークにおいて実行される同じ動作の時間も推定する。
【００６３】
簡単にするために、システム２００のネットワークトポロジを、高さｈを有するフルバイナリツリーとする。ネットワークにおける各ノードは、ｂ＋１ポートを有するルータであり、前記ポートのうち１つをアクティブノードに接続する。この方法において、各アクティブノードは、厳密に１つのルータを管理する。２つの隣接するルータ間の待ち時間を、２．０２２ミリ秒、すなわち、ＴＣ１＝ＴＣ２＝０．５ＴＣ＝２．０２２ミリ秒とする。パケットによって選択されるルートも対称的とし、すなわち、ＳＮＭＰ要求のプロトコルデータユニット（ＰＤＵ）は、マネージャから管理される装置までと、その逆とで同じ経路をとる。管理ステーションをシステム１００のツリーのルートに取り付けるとし、すべての管理プログラム実行は、このルートを開始ノードとして使用するとする。最後に、管理タスクを、ネットワークにおけるすべてのノードを横切る特別な管理情報ベース（ＭＩＢ）変数の平均値を計算する動作として選択する。
【００６４】
上記トポロジーを与えると、ネットワークにおけるノードの合計数Ｎは、
【数１】
2006526359.tif 000005
によって与えられる。集中管理ネットワークソリューションにおけるタスクを実現する最もスケーラブルな方法は、所望の変数のネットワーク全体の平均値を、ＳＮＭＰ  ＧＥＴによってポーリングされる各ノードから得られる値から増分的に計算することである。ポーリングをＮノードにおいて連続的に行い（すなわち、各ＧＥＴ動作は次のＧＥＴが開始される前に終了しなければならない）、単純な平均化計算を無視するならば、合計の終了時間は、
Ｔｃｅｎｔｒａｌｉｚｅｄ＿Ｓ＝（ＴＣ＋ＴＳ）＋（２ＴＣ＋ＴＳ）ｎ＋．．．＋（（ｈ＋１）ＴＣ＋ＴＳ）ｂｈ
によって与えられ、
【数２】
2006526359.tif 000006
に推定し、ここで、ＴＳは要求を処理するのにノードにおいてＳＮＭＰエージェントによって必要とされる時間である。シスコ２６２１ルータにおける測定は、これが約１．９ミリ秒であることを示す。他方において、ポーリングを並列に行う、すなわち、システムが次のノードをポーリングする前にＧＥＴの終了を待たなくてもよく、より遠くのノードがより近くのノードより前にポーリングされる場合、合計の終了時間は、
Ｔｃｅｎｔｒａｌｉｚｅ＿Ｐ＝２ｈＴＣ＋（ｂｈ−１）ＴＰ
によって与えられ、ここで、ＴＰはノード間のポーリング期間である。システム２００のアクティブノードにおける測定は、ＴＰが約１．５ミリ秒であることを示す。
【００６５】
パターンベース分散ネットワーク管理ソリューションの場合において、エコーパターン３００を使用し、前記集中ネットワーク管理ソリューションを使用して行ったのと同じタスクを行う。システム１００の性能を、集中管理に対して直列ポーリング方式を共通タスクとして使用して測定する。特に、スケーラビリティ測定を、直列ポーリング方式を使用する管理タスクの平均終了時間と、（並列ポーリング又はエコーパターン３００のような）特定の管理タスクの基礎となる方式とを使用する管理タスクの平均終了時間との比として規定する。図７は、垂直軸においてスケーラビリティ測定Ｓ、水平軸においてネットワークツリーの高さｈを示す。各々の評価において、各ノードの子供の数ｂを設定する。ライン７０２は、ｂを２に設定したときのエコーパターン３００に関するスケーラビリティを示す。ライン７０４は、ｂを６に設定したときのエコーパターン３００に関するスケーラビリティを示す。ライン７０６は、ｂを２に設定したときの並列ポーリングアプローチに関するスケーラビリティを示す。ライン７０８は、ｂを６に設定したときの並列ポーリングアプローチに関するスケーラビリティを示す。
【００６６】
チャート７００から、そのスケーラビリティ測定Ｓは決して１未満にはならないため、（エコーパターン３００を使用する）並列ポーリングアプローチは、シリアルポーリングより優れる。さらに、小から中のサイズ（すなわち、ｂ＝２、ｈ＜１及びｂ＝６、ｈ＜３）のネットワークに関しても、そのより小さいオーバヘッドのため、エコーパターン３００が優れる。しかしながら、大きいネットワーク（すなわち、ｂ＝６、ｈ＞４）に関して、エコーパターン３００は、他の方式より数桁長い終了時間を示す。
【００６７】
上記は単に本発明の原理を例示している。記載した実施例に対する種々の変形や代案が、ここでの教示に鑑みて当業者には明らかであろう。したがって、当業者が、ここには明示されていないが本発明の原理を具体化し、したがって本発明の精神及び範囲内である多数の技術を考案できるであろうことは、理解されるであろう。
【図面の簡単な説明】
【００６８】
【図１】Ａ−Ｄは、先行技術のネットワークナビゲーションパターンの例を示す。
【図２】本発明によるパターンベースネットワーク管理システムの好適実施例を例示する。
【図３】本発明によるネットワーク管理プログラム伝播のエコーパターンの好適実施例を例示する。
【図４】本発明によるパターンベースネットワーク管理プログラムアクティブノードのソフトウェアアーキテクチャの好適実施例を例示する。
【図５】Ａ−Ｄは、本発明による図２のパターンベースネットワーク管理システム全体に渡って新たなネットワーク管理プログラムを分散させるプロセスの好適実施例を例示する。
【図６】本発明による図２のパターンベースネットワーク管理システム全体に渡ってアクティブノードからアクティブノードへ新たなネットワーク管理プログラムを分散させるプロセスの好適実施例を例示する。
【図７】パターンベースネットワーク管理システムのスケーラビリティを集中型ネットワーク管理システムと比較するグラフを示す。
【図１Ａ】
2006526359.tif 000007
【図１Ｂ】
2006526359.tif 000008
【図１Ｃ】
2006526359.tif 000009
【図１Ｄ】
2006526359.tif 000010
【図２】
2006526359.tif 000011
【図３】
2006526359.tif 000012
【図４】
2006526359.tif 000013
【図５Ａ】
2006526359.tif 000014
【図５Ｂ】
2006526359.tif 000015
【図５Ｃ】
2006526359.tif 000016
【図５Ｄ】
2006526359.tif 000017
【図６】
2006526359.tif 000018
【図７】
2006526359.tif 000019
【国際調査報告】
2006526359.tif 000020
2006526359.tif 000021
2006526359.tif 000022