(57)【要約】【課題】ネットワーク・デバイスの構成を動的に管理する方法を提供する。【解決手段】構成のプロトコル、ネットワーク・インターフェース、または他の構成要素をサポートするアプリケーションが、マスタ・エージェントおよびサブエージェントと連携して動作して構成管理情報を送受する。さらに、アプリケーションは、構成マネージャ・インターフェースおよび構成マネージャと連携して動作して、アプリケーションの優先順位に従って、またネットワーク・デバイスを使用不能にすることなく構成にアクセスし、更新する。【選択図】　　　図２
2004005610.tif 000002
【特許請求の範囲】
【請求項１】
構成を変更することができ、優先順位を有するアプリケーションをマスタ・エージェントおよび構成マネージャに登録するステップと、
前記マスタ・エージェントにおいて入力データを確認するステップと、
前記確認された入力データを前記アプリケーションに送り、前記アプリケーションが、前記確認された入力データを内部データ構造に変換するステップと、
前記内部データ構造のコンテンツが前記構成マネージャに送られることを定期的に要求し、前記構成マネージャが、前記アプリケーション優先順位に従って前記構成を更新するステップと
を含むネットワーク・デバイスの構成を管理する方法。
【請求項２】
前記マスタ・エージェントがＳＮＭＰ管理インターフェースであり、また前記登録するステップが、新しいリーフをＳＮＭＰ　ＭＩＢツリーの中に記録するステップである請求項１に記載の方法。
【請求項３】
前記マスタ・エージェントがＣＬＩ管理インターフェースであり、また前記登録するステップが、新しいリーフをＣＬＩコマンド・ツリーの中に記録するステップである請求項１に記載の方法。
【請求項４】
前記マスタ・エージェントがＸＭＬ管理インターフェースであり、また前記登録するステップが、新しいタグをＸＭＬフォーマット・ファイルの中に記録するステップである請求項１に記載の方法。
【請求項５】
前記確認するステップが、前記入力データを前記マスタ・エージェントの登録情報と比較するステップを含む請求項１に記載の方法。
【請求項６】
内部データ構造に前記変換するステップが、前記確認された入力データをフォーマットしてアクションとパラメータの少なくともどちらかにするステップを含む請求項１に記載の方法。
【請求項７】
フォーマットが、前記アプリケーションに関連する汎用管理オブジェクト・レイヤによって行われる請求項６に記載の方法。
【請求項８】
前記アクションとパラメータが、前記入力データの出所にかかわらず共通のフォーマットに準拠する請求項６に記載の方法。
【請求項９】
前記入力データの出所がＣＬＩコマンドである請求項８に記載の方法。
【請求項１０】
前記入力データの出所がＳＮＭＰ要求である請求項８に記載の方法。
【請求項１１】
前記入力データの出所がＸＭＬ要求である請求項８に記載の方法。
【請求項１２】
ネットワーク・デバイスのための構成管理システムであって、
ネットワーク・デバイスの構成と、
前記構成に関する入力データを確認するレシーバと、
前記確認された入力データを共通のフォーマットに準拠させる、優先順位を有するアプリケーションと、
前記変換されたデータを前記アプリケーション優先順位に従って前記構成に定期的に適用するプロセッサとを含むシステム。
【請求項１３】
前記レシーバが、前記アプリケーションに対する管理インターフェースである請求項１２に記載の構成管理システム。
【請求項１４】
前記管理インターフェースがＳＮＭＰであり、また前記入力データが、ＳＮＭＰ　ＭＩＢツリーの中のリーフに従って確認される請求項１３に記載の構成管理システム。
【請求項１５】
前記管理インターフェースがＣＬＩであり、また前記入力データが、ＣＬＩコマンド・ツリーの中のリーフに従って確認される請求項１３に記載の構成管理システム。
【請求項１６】
前記管理インターフェースがＸＭＬであり、また前記入力データが、ＸＭＬフォーマット・ファイルの中のタグに従って確認される請求項１３に記載の構成管理システム。
【請求項１７】
前記共通のフォーマットが、アクションとパラメータの少なくともどちらかを含み、また前記プロセッサが、前記アプリケーション優先順位に従って前記アクションまたは前記パラメータを前記構成に定期的に適用する請求項１３に記載の構成管理システム。
【請求項１８】
前記アプリケーションに関連する汎用管理オブジェクト・レイヤ（ＵＭＯＬ）をさらに含み、また前記ＵＭＯＬが、前記入力データの出所にかかわらず、前記アクションおよび前記パラメータの前記少なくともどちらかを前記共通のフォーマットで生成する請求項１７に記載の構成管理システム。
【請求項１９】
前記入力データの出所がＣＬＩコマンドである請求項１８に記載の構成管理システム。
【請求項２０】
前記入力データの出所がＳＮＭＰ要求である請求項１８に記載の構成管理システム。
【請求項２１】
前記入力データの出所がＸＭＬ要求である請求項１８に記載の構成管理システム。
【請求項２２】
ネットワーク・デバイスの構成に関する入力を受け取る入力レシーバと、
前記受け取った入力を前記構成に適用するように前記入力レシーバに結合された、優先順位を有するアプリケーションと、
前記アプリケーションの優先順位に従って前記構成に対する前記受け取った入力の前記適用を制御するように前記アプリケーションと通信するコントローラとを含むネットワーク・デバイス。
【請求項２３】
前記入力レシーバが、
外部ソースから前記入力を受け取る第１のエージェントと、
前記第１のエージェントと通信し、前記アプリケーションが前記受け取った入力を前記構成に適用する前に前記受け取った入力を確認する第２のエージェントとを含む請求項２２に記載のネットワーク・デバイス。
【請求項２４】
前記第１のエージェントおよび前記第２のエージェントが、前記アプリケーションに対する管理インターフェースを含む請求項２３に記載のネットワーク・デバイス。
【請求項２５】
前記管理インターフェースがＳＮＭＰであり、また前記入力が、ＳＮＭＰ　ＭＩＢツリーの中のリーフに従って確認される請求項２４に記載のネットワーク・デバイス。
【請求項２６】
前記管理インターフェースがＣＬＩであり、また前記入力が、ＣＬＩコマンド・ツリーの中のリーフに従って確認される請求項２４に記載のネットワーク・デバイス。
【請求項２７】
前記管理インターフェースがＸＭＬであり、また前記入力が、ＸＭＬフォーマット・ファイルの中のタグに従って確認される請求項２４に記載のネットワーク・デバイス。
【請求項２８】
前記アプリケーションが、アクションとパラメータの少なくともどちらかを含む共通のフォーマットに前記入力を変換する汎用管理オブジェクト・レイヤを含み、また前記コントローラが、前記アプリケーション優先順位に従って前記アクションおよび前記パラメータを前記構成に定期的に適用する請求項２４に記載のネットワーク・デバイス。
【請求項２９】
前記入力が、ＣＬＩコマンドである請求項２３に記載のネットワーク・デバイス。
【請求項３０】
前記入力がＳＮＭＰ要求である請求項２３に記載のネットワーク・デバイス。
【請求項３１】
前記入力の前記出所がＸＭＬ要求である請求項２３に記載のネットワーク・デバイス。
【請求項３２】
マシンによってアクセスされたとき、前記マシンが、
構成を変更することができる、優先順位を有するアプリケーションをマスタ・エージェントおよび構成マネージャに登録すること、
前記マスタ・エージェントにおいて入力データを確認すること、
前記確認された入力データを前記アプリケーションに送り、前記アプリケーションが、前記確認された入力データを内部データ構造に変換すること、および
前記内部データ構造のコンテンツが、前記構成マネージャに送られることを定期的に要求し、前記構成マネージャが、前記アプリケーション優先順位に従って前記構成を更新することを行うようにさせるデータを含むマシン・アクセス可能媒体を含む製品。
【請求項３３】
前記マシンがアプリケーションを登録するようにさせる前記データが、新しいリーフをＳＮＭＰ　ＭＩＢツリーの中に記録するステップを含み、前記マスタ・エージェントが、ＳＮＭＰ管理インターフェースである請求項３２に記載の製品。
【請求項３４】
前記マシンがアプリケーションを登録するようにさせる前記データが、新しいリーフをＣＬＩコマンド・ツリーの中に記録するステップを含み、前記マスタ・エージェントが、ＣＬＩ管理インターフェースである請求項３２に記載の製品。
【請求項３５】
前記マシンがアプリケーションを登録するようにさせる前記データが、新しいタグをＸＭＬフォーマット・ファイルの中に記録するステップを含み、前記マスタ・エージェントが、ＸＭＬ管理インターフェースである請求項３２に記載の製品。
【請求項３６】
前記マシンが確認するようにさせる前記データが、前記入力データを前記マスタ・エージェントの登録情報と比較するステップを含む請求項３２に記載の製品。
【請求項３７】
前記マシンが前記入力データを内部データ構造に変換するようにさせる前記データが、前記確認された入力データをフォーマットして、アクションとパラメータの少なくともどちらかにするステップを含む請求項３２に記載の製品。
【請求項３８】
前記アクションおよび前記パラメータが、前記入力データの出所にかかわらず、共通のフォーマットに準拠する請求項３７に記載の製品。
【請求項３９】
前記入力データの出所がＣＬＩコマンドである請求項３８に記載の製品。
【請求項４０】
前記入力データの出所がＳＮＭＰ要求である請求項３８に記載の製品。
【請求項４１】
前記入力データの出所がＸＭＬ要求である請求項３８に記載の製品。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワーク管理の分野に関する。より詳細には、本発明は、ネットワーク・デバイスの動的構成に関する。
【０００２】
【従来の技術】
著作権の告知／許可
本特許の開示の一部分は、著作権保護の対象である資料を含む。本著作権所有者は、特許商標庁の特許ファイルまたは特許記録で開示される本特許または本特許開示をそのまま複製することに異議はないが、それ以外では、すべての著作権を保留する。次の告知は、以下に説明し、また図面に記載するソフトウェアおよびデータに適用される。著作権（Ｃ）２００２年、Ｅｘｔｒｅｍｅ　Ｎｅｔｗｏｒｋｓ，Ｉｎｃ．、著作権所有
【０００３】
高性能インターネット・ルータのアーキテクチャがここ数年の間に進歩し、増大しつづける大量のネットワーク・トラフィックを経路指定するより高いパフォーマンスを提供している。ルータ・テーブル、プロトコル、およびネットワーク・ポリシーの構成および維持のためのいくつかの制御アプリケーションだけでなく、多数のプロトコルをもルータがサポートすることが珍しくない。この進歩により、ルータの複雑さが増して、ルータの構成の効率的な管理が信頼のおけるネットワーク・パフォーマンスのために大切である。
【０００４】
ルータの構成は、通常、ルータ上に常駐する集中システム構成データベースによって管理される。構成データベースのコンテンツがルータの動作を制御し、また構成データベースのコンテンツの操作がコマンド・ライン・インターフェース（ＣＬＩ）などの管理インターフェースを使用して行われる。従来のルータ・アーキテクチャでは、ＣＬＩは、構成マネージャ・プロセスを介してシステム構成データベースに完全なアクセスを有し、システム技術者用のアクセスの主な方法となっている。ＣＬＩは、構成コマンドに使用できるだけでなく、ルータの動作を制御する他の対話式コマンド、例えば、特定のアプリケーションまたはプロセスを始動する、またはシャットダウンするコマンドにも使用することができる。
【０００５】
ルータの構成に対して一般的に使用される別の管理インターフェースが、シンプル・ネットワーク管理プロトコル（ＳＮＭＰ：Ｓｉｍｐｌｅ　Ｎｅｔｗｏｒｋ　Ｍａｎａｇｅｍｅｎｔ　Ｐｒｏｔｏｃｏｌ）である。ＳＮＭＰは、ネットワーク・デバイスおよびその機能のネットワーク管理および監視を統制するプロトコルであり、インターネット技術特別調査委員会（ＩＥＴＦ：Ｉｎｔｅｒｎｅｔ　Ｅｎｇｉｎｅｅｒｉｎｇ　Ｔａｓｋ　Ｆｏｒｃｅ）のネットワーク・ワーキング・グループ（Ｎｅｔｗｏｒｋ　Ｗｏｒｋｉｎｇ　Ｇｒｏｕｐ）によって作成され、１９９９年４月にインターネット・ソサイエティ（Ｉｎｔｅｒｎｅｔ　Ｓｏｃｉｅｔｙ）によって刊行されたＲｅｑｕｅｓｔ　Ｆｏｒ　Ｃｏｍｍｅｎｔ（ＲＦＣ）２５７０、「Ｉｎｔｒｏｄｕｃｔｉｏｎ　ｔｏ　Ｖｅｒｓｉｏｎ　３　ｏｆ　ｔｈｅ　Ｉｎｔｅｒｎｅｔ−Ｓｔａｎｄａｒｄ　Ｎｅｔｗｏｒｋ　Ｍａｎａｇｅｍｅｎｔ　Ｆｒａｍｅｗｏｒｋ」に記録されている。ルータの構成データベースに対するさらに別のより最近に開発された管理インターフェースは、Ｅｘｔｅｎｓｉｂｌｅ　Ｍａｒｋｕｐ　Ｌａｎｇｕａｇｅ（拡張可能なマークアップ言語）、つまりＸＭＬに基づいている。通常、ＸＭＬベースのネットワーク管理インターフェースは、グラフィカル・ユーザ・インターフェース（ＧＵＩ）を介してネットワーク管理者によって入力された通信データをＸＭＬを使用して符号化し、ネットワーキング・デバイスを管理するのに使用される複雑なデータを構成データベースに伝送するための機構を提供する。
【０００６】
ルータ上のあるアプリケーションまたはプロトコルが、前述したネットワーク管理インターフェースの３つすべて、すなわち、ＣＬＩ、ＳＮＭＰ、およびＸＭＬによって対応する構成データへアクセスできることも珍しくない。実際、ネットワーク管理者は、所与のルータに対して同一の構成変更を達する異なるＣＬＩコマンドまたはＳＮＭＰコマンドを入力することが可能である。ルータがサポートする様々なアプリケーションおよびプロトコルのすべてに関する異なる管理インターフェース・コマンドのすべてを認識するようにルータを維持することは、困難であり、ＳＮＭＰ管理情報ベース（ＭＩＢ）定義、ＣＬＩコマンド・ツリー、またはＸＭＬタグなどのデータの様々な更新を必要とする。
【０００７】
既存のルータ管理技術では、アプリケーション、プロトコル、および関連する管理インターフェースをサポートする論理が、単一のマスタ・プログラムで集中管理される。これにより、単一の障害ポイントが生じることがある。これは、１つのプロトコル、アプリケーション、またはインターフェースだけに問題が存在する場合でも、プログラム全体がクラッシュして、それとともにルータがダウンする可能性があることを意味する。さらに、例えば、新しいプロトコル、例えば、マルチプロトコル・ラベル・スイッチング（ＭＰＬＳ：Ｍｕｌｔｉ−Ｐｒｏｔｏｃｏｌ　ＬａｂｅｌＳｗｉｔｃｈｉｎｇ）プロトコルに対応させるため、または新しいより高速のブレードに対応させるため、マスタ・プログラムを更新する必要がある場合、どちらの場合でも、サポートされなければならない新しい１組のＣＬＩコマンド、ＳＮＭＰ要求、またはＸＭＬアクセスを導入する必要があり、その更新を行うためにマスタ・プログラムを停止させなければならず、これにより、ルータが一時的に使用不能にさせられる。
【０００８】
既存のルータ管理技術の以上の限界の一部を克服しようとして、マスタ・エージェントおよびサブエージェントとして知られる別々のプロセッシング・エンティティが、ＳＮＭＰ管理フレームワークのコンテキストで開発されている。マスタ・エージェントは、ＳＮＭＰ要求を送受するが、管理情報への、例えば、構成データベースの中のＭＩＢデータへのアクセスはほとんど、または全くできない。サブエージェントは、管理情報にアクセスして、ＳＮＭＰ要求を処理するが、ＳＮＭＰ要求自体からは遮蔽されている。ＩＥＴＦのネットワーク・ワーキング・グループによって作成され、２０００年１月にインターネット・ソサイエティによって刊行されたＲＦＣ２７４１、「Ａｇｅｎｔ　Ｅｘｔｅｎｓｉｂｉｌｉｔｙ（ＡｇｅｎｔＸ）　Ｐｒｏｔｏｃｏｌ」が、拡張可能なＳＮＭＰエージェントの概念、およびマスタ・エージェントとサブエージェントの間の通信のためのプロトコルを記録している。
【０００９】
【発明が解決しようとする課題】
ＳＮＭＰマスタ・エージェント／サブエージェント技術により、構成管理を向上させるための新しい機会が提供された。ただし、他の管理インターフェースのコンテキストで既存のルータ管理技術の限界を克服する、または管理インターフェースにかかわらず構成管理に対する包括的な解決策を提供するために、ほとんど何も行われていない。本発明はその包括的な解決策を提供することを課題とする。
【００１０】
【課題を解決するための手段】
本発明の一態様によれば、ネットワーク・デバイスの構成を動的に管理する方法および装置が提供される。プロトコル、ネットワーク・インターフェース、または構成の他の要素をサポートするアプリケーションが、構成管理情報を送受するために、マスタ・エージェントやサブエージェントと連携して動作する。さらに、このアプリケーションは、構成マネージャ・インターフェースや構成マネージャと連携して動作し、アプリケーションの優先順位に従い、ネットワーク・デバイスを使用不能にすることなしに構成にアクセスして更新する。
【００１１】
本発明の一態様によれば、アプリケーションは、必要に応じて対応するマスタ・エージェントへの登録やその登録解除を行うサブエージェントを活動化する。マスタ・エージェントと登録されたサブエージェントは、共通メッセージ交換インターフェースを使用して通信して、ネットワーク管理者に送信され、またネットワーク管理者から受信されるコマンドおよび構成情報を交換する。アプリケーションは、コマンドおよび構成情報を汎用管理オブジェクト・フォーマットにマップし、さらに、構成マネージャ・インターフェースを活動化して、共通メッセージ交換インターフェースを使用してそのフォーマットされたコマンドおよび構成情報を構成マネージャと交換する。
【００１２】
マスタ・エージェントとサブエージェントは、互いに独立に、またアプリケーションとも独立に動作し、さらにそのアプリケーションまたは他のアプリケーションに関連する他のマスタ・エージェントおよびサブエージェントとも独立に動作する。また、構成マネージャおよび構成マネージャ・インターフェースも、互いに独立に、またはアプリケーションとも独立に動作する。サブエージェント、マスタ・エージェント、アプリケーション、構成マネージャ、および構成マネージャ・インターフェースの独立の活動化および動作により、ネットワーク管理者は、ネットワーク・デバイス自体をディセーブルにする必要なしに、プロトコルの追加または更新、ブレードの追加または変更を行うこと、あるいはその他の処置をとることができるようになる。さらに、構成マネージャ、アプリケーションまたは対応するサブエージェント、マスタ・エージェント、あるいは構成マネージャ・インターフェースの障害により、ネットワーク・デバイス全体に障害が起きることがない。
【００１３】
本発明の以上の態様およびその他の態様によれば、前述した方法およびその他の方法を実施するための装置が提供される。
【００１４】
本発明を例としての、限定するものではない実施形態を使用して説明し、添付の図面に示す。図面では、同様の符号により、同様の要素を表している。
【００１５】
【発明の実施の形態】
以下の説明では、本発明の様々な形態、動的構成管理のための方法および装置を説明する。本発明の完全な理解を提供するため、特定の詳細を提示する。ただし、本発明を本発明の説明する形態の一部だけで、またはすべてで、また特定の詳細の一部またはすべてを伴い、または伴うことなしに実施するのが可能であることが、当分野の技術者には明白となる。一部の場合では、周知のアーキテクチャ、ステップ、および技術は、本発明を不要に不明瞭にするのを避けるため、図示していない。例えば、この方法および装置を、スイッチに実装するか、ルータに実装するか、ブリッジに実装するか、サーバまたはゲートウェイに実装するか、ソフトウェア・ルーチンとして実装するか、ハードウェア回路として実装するか、ファームウェアとして実装するか、または以上の組み合わせとして実装するかに関して、特定の詳細は提供していない。
【００１６】
伝送する、受信する、経路指定する、パケット、メッセージ、テーブル、コマンド、メッセージ情報ベース、コマンド・ツリー、タグなどの、ネットワーク・オペレーティング・システム、および関連するオペランドによって行われるオペレーションの用語を含め、説明のいくつかの部分は、当分野の技術者が当分野の他の技術者に自身の作業の内容を伝えるのに一般的に使用する用語を使用して提示する。当分野の技術者にはよく理解されるとおり、オペランドは、電気信号、磁気信号、または光信号の形態をとり、またオペレーションは、システムの電気的構成要素、磁気構成要素、または光学構成要素を介してその信号を記憶すること、転送すること、組み合わせること、または別の仕方で操作することに関わる。システムという用語は、独立型、付属型、または組み込み型である上述した構成要素の汎用目的の装置および特殊目的の装置を含む。
【００１７】
様々なオペレーションを本発明を理解するのに最も役立つ形で順に行われる複数の分離したステップとして説明する。ただし、説明の順序は、そのオペレーションが、必ず提示された順序で行われることを暗示するものと解釈すべきでなく、または順序に依存するかどうかさえ暗示するものと解釈すべきではない。最後に、本明細書全体において、「一実施形態」、「実施形態」、または「形態」について述べることは、説明する特定の特徴、構造、または特性が、本発明の少なくとも１つの実施形態に含まれることを意味するが、必ずしも同一の実施形態に含まれるわけではない。さらに、特定の特徴、構造、または特性は、１つまたは複数の実施形態において任意の適切な仕方で組み合わせることができる。
【００１８】
以下の説明は、ルータ、またはレイヤ３スイッチなどのネットワーク・デバイスに適用されるものとして方法および装置を扱うが、この方法は、ブリッジ（レイヤ２スイッチ）、サーバ、またはゲートウェイを含め、任意のパケット転送デバイスに一般的に適用可能であるものと当分野の技術者には理解されることに留意されたい。また、ローカル・エリア・ネットワーク（ＬＡＮ）の関連で方法および装置について述べるが、本発明は、相互ネットワーク、仮想ローカル・エリア・ネットワーク（ＶＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、ならびにサブネットに編成されたネットワークを含むが、以上には限定されない他のトランスポート制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）ベースのネットワークのコンテキストにおいても使用することができることにも留意されたい。
【００１９】
図１は、本発明を組み込んだルータ構成管理システムの１つの一般化された実施形態を示し、例としての本発明のある形態を実施することができる動作環境を示すブロック図である。図示するとおり、構成管理システム１００は、構成マネージャ７０を有するルータ上で動作する。
【００２０】
構成マネージャ７０は、トランザクション・モニタ７５、ファイル・システム８０、コンカレント・バージョン・サーバ（ＣＶＳ）のサーバ９０、および１つまたは複数の遠隔ＣＶＳサーバ８５と連携して動作して、ルータの構成データを保持する。構成データは、現在走っている構成、および最新の保存された構成を含む。現在走っている構成は、ルータ上の揮発性メモリの中に記憶され、一方、保存された構成は、ファイル・システム８０を使用して不揮発性メモリまたは他の永久記憶媒体の中に記憶されている。さらに、構成マネージャ７０は、ＣＶＳサーバ９０および遠隔ＣＶＳサーバ８５を使用して構成データの特定のバージョンを不揮発性メモリの中に保持して、バージョンを制御している。一実施形態では、構成マネージャ７０は、ファイル・システム８０を使用して、構成データの既存のバージョンを実行時にＡＳＣＩＩフォーマットのテキスト・ファイルの中に保存する。構成マネージャ７０は、本発明の範囲を逸脱することなく、ＡＳＣＩＩフォーマットとは別のファイル・フォーマットで構成データを保存することができることに留意されたい。例えば、一実施形態では、参照により本明細書に組み込まれる「Ｍｅｔｈｏｄ　ａｎｄ　Ａｐｐａｒａｔｕｓ　ｆｏｒ　Ｒｅｓｔｏｒｉｎｇ　ｔｈｅ　Ｃｏｎｆｉｇｕｒａｔｉｏｎ　ｏｆ　ａ　ＮｅｔｗｏｒｋＤｅｖｉｃｅ」という名称の、本出願と同じ出願人に譲渡された同時係属出願、整理番号Ｐ０６３に記載されるとおり、ＸＭＬフォーマットのファイルの中に構成データを保存することが可能である。
【００２１】
動作中、構成マネージャ７０は、トランザクション・モニタ７５を使用して構成データに対する複数の更新をバッファし、制御して構成データの完全性を保つ。構成データの最新に保存されたバージョン（または、構成データの他のバックアップ・バージョン）が、待機構成マネージャ７９や待機ファイル・システム８９、待機ＣＶＳサーバ９９を備える待機ブレード９８で複製される。
【００２２】
通常のルータは、プロトコル、ネットワーク・インターフェース、およびその他の構成要素をサポートするいくつかのアプリケーションをサポートする。このアプリケーションのオペレーションは、構成マネージャ７０によって保持される現在走っている構成に従って制御されている。例えば、図示した実施形態では、ルータは、ボーダー・ゲートウェイ・プロトコル（ＢＧＰ：Ｂｏｒｄｅｒ　Ｇａｔｅｗａｙ　Ｐｒｏｔｏｃｏｌ）４０、オープン・ショーテスト・パス・ファースト（ＯＳＰＦ：Ｏｐｅｎ　Ｓｈｏｒｔｅｓｔ　Ｐａｔｈ　Ｆｉｒｓｔ）プロトコル５０、およびイーサネット（登録商標）・インターフェース６０をサポートするアプリケーションを含む。
【００２３】
また、各アプリケーションは、ＣＬＩベースの管理インターフェース、ＳＮＭＰベースの管理インターフェース、またはＸＭＬベースの管理インターフェースなどの１つまたは複数の管理インターフェースをサポートすることが可能である。管理インターフェースは、構成を更新する、または構成にアクセスするＣＬＩコマンド、ＳＮＭＰ要求、又はＸＭＬ要求を使用してルータやルータ・アプリケーションの機能へのアクセスをネットワーク管理者に提供する。
【００２４】
一実施形態では、ルータの機能、アプリケーション、および結果の構成に対する管理インターフェースは、アプリケーションに組み込まれるのではなく、マスタ・エージェント／サブエージェント・スキームを使用して行われる。マスタ・エージェント／サブエージェント・スキームは、ユーザが、変数ごとの多重化を動的な仕方で行うことを可能にする技術である。例えば、このスキームにより、アプリケーションが、サブエージェントを活動化してリーフをマスタ・エージェントのコマンド・ツリーの中に動的に登録する、またはマスタ・エージェントのオペレーションを制御するその他の情報を登録することが可能になる。マスタ・エージェントは、管理インターフェース入力データを受信し、送信し、またそのデータを確認してから、共通メッセージ交換インターフェースを使用して通信チャネル１５／２５／３５を介してサブエージェントに送ることができる、デーモンなどの独立したプロセスである。また、サブエージェントも、アプリケーション・レイヤ４０／５０／６０によって生成され、レイヤ４０／５０／６０と直接にインターフェースをとる、スレッドなどの独立したプロセスである。サブエージェントもまた、スレッドなどの、アプリケーション・レイヤ４０／５０／６０によって作成され、かつアプリケーション・レイヤ４０／５０／６０と直接インターフェイスをとる、独立したプロセスである。アプリケーション・レイヤ４０／５０／６０は、アプリケーション自体４４／５４／６４を含め、多数の構成要素を有し、この構成要素が、汎用管理オブジェクト・レイヤ（ＵＭＯＬ）４４／５４／６４と連携して動作して、マスタ・エージェント／サブエージェント・スキームを介して交換されるコマンド、要求、またはメッセージを共通内部構造にマップする。一実施形態では、共通内部構造は、アクションとパラメータから成る。
【００２５】
一実施形態では、アプリケーションは、構成管理インターフェース４７／５７／６７と連携して動作して、ＵＭＯＬ共通内部構造に従って生成されたアクションとパラメータを、共通メッセージ交換インターフェースを使用して通信チャネル７１／７２／７３を介して構成マネージャ７０に送る。構成マネージャ７０は、それぞれの登録されたアプリケーションから、アクセスされる、または更新される必要のある構成データ、すなわち、アクションとパラメータを定期的に要求することによって構成を更新する処理を調整する。構成マネージャ７０は、パラメータに従い、また登録時に確立されたアプリケーション順序付けスキームに従ってアクションを行う。さらに、構成マネージャ７０は、アクションとパラメータに対する応答が存在する場合、その応答を、構成管理インターフェース４７／５７／６７を介して、また共通メッセージ交換インターフェースを使用する通信チャネル７１／７２／７３を介してアプリケーションに返送する。
【００２６】
マスタ・エージェントを使用してアプリケーション・レイヤの構成要素を管理インターフェースから分離し、また構成管理インターフェイスを使用して構成マネージャをアプリケーション・レイヤ構成要素から分離することにより、ルータの構成をより容易に管理し、動的に更新することができる。
【００２７】
図示する実施形態では、構成管理システム１００は、３つのマスタ・エージェント、ＳＮＭＰマスタ・エージェント１０、ＣＬＩマスタ・エージェント２０、およびＸＭＬマスタ・エージェントを含む。構成管理システム１００は、各アプリケーションに関して次の対応するＳＮＭＰサブエージェントをさらに含む。すなわち、ＢＧＰアプリケーション４５に関するＳＮＭＰサブエージェント４１、ＯＳＰＦアプリケーション５５に関するＳＮＭＰサブエージェント５１、およびイーサネット・インターフェース・アプリケーション６５に関するＳＮＭＰサブエージェント６１である。同様に、構成管理システム１００は、各アプリケーションに関して次の対応するＣＬＩサブエージェントをさらに含む。すなわち、ＢＧＰアプリケーション４５に関するＣＬＩサブエージェント４２、ＯＳＰＦアプリケーション５５に関するＣＬＩサブエージェント５２、およびイーサネット・インターフェース・アプリケーション６５に関するＣＬＩサブエージェント６２であり、また各アプリケーションに関して次の対応するＸＭＬサブエージェントをさらに含む。すなわち、ＢＧＰアプリケーション４５に関するＸＭＬサブエージェント４３、ＯＳＰＦアプリケーション５５に関するＸＭＬサブエージェント５３、およびイーサネット・インターフェース・アプリケーション６５に関するＸＭＬサブエージェント６３である。各アプリケーションは、次の構成マネージャ・インターフェースをさらに含む。すなわち、ＢＧＰアプリケーション４５に関する構成マネージャ・インターフェース４７、ＯＳＰＦアプリケーション５５に関する構成マネージャ・インターフェース５７、およびイーサネット・インターフェース・アプリケーション６５に関する構成マネージャ・インターフェース６７である。本発明の範囲を逸脱することなく、ＣＬＩ、ＳＮＭＰ、またはＸＭＬ以外の他のタイプの管理インターフェースも使用できることに留意されたい。
【００２８】
図２は、図１の構成管理システム１００をさらに詳細に示すブロック図である。一実施形態では、マスタ・エージェント１０／２０／３０とサブエージェント４１／４２／４３／５１／５２／５３／６１／６２／６３が、共通メッセージ交換インターフェース１１０および通信チャネル１５／２５／３５を使用して構成管理情報を交換する。ＵＭＯＬ４４／５４／６４が、サブエージェント４１／４２／４３／５１／５２／５３／６１／６２／６３およびアプリケーション４５／５５／６５とインターフェースをとり、その構成管理情報を内部データ構造７４にマップする。アプリケーション４５／５５／６５が、構成管理インターフェース４７／５７／６７と連携して動作して、ＵＭＯＬの内部データ構造７４に従って生成されたアクションとパラメータ１２０を発行する。構成管理インターフェース４７／５７／６７が、共通メッセージ交換インターフェース１１０および通信チャネル７１／７２／７３を使用してそのアクションとパラメータ１２０を構成マネージャ７０に送る。一実施形態では、通信チャネル１５／２５／３５および７１／７２／７３は、プロセス間通信チャネル（ＩＰＣ）であることが可能である。ただし、本発明の範囲を逸脱することなく、伝送制御プロトコル（ＴＣＰ）のチャネルまたはソケットなどの他のタイプの通信チャネルも使用することができる。
【００２９】
図３は、マスタ・エージェントとサブエージェントの間、ならびに構成管理インターフェース４７／５７／６７と構成マネージャ７０の間で構成情報を交換するのに使用される共通メッセージ交換インターフェース１１０に関するメッセージ・フォーマット１３０を示している。図示するとおり、このメッセージ・フォーマットは、メッセージＴＡＧ１３２、メッセージ長１３４、およびメッセージ・コンテンツ１３６を含む。メッセージ・コンテンツ１３６のフォーマットは、メッセージがどのアプリケーションから送られるか、またはどのアプリケーションを宛先とするかに応じて、また例えば、ＣＬＩ、ＳＮＭＰ、またはＸＭＬの、どの管理インターフェースがコンテンツを伝えるかに応じて異なる。一実施形態では、メッセージ・コンテンツ１３６は、マスタ・エージェントおよびサブエージェントによって受け取られて処理される一連のフォーマットされたコマンドを含む。メッセージ・コンテンツ１３６の予期されるフォーマットは、メッセージＴＡＧで識別される。表１が、本発明の実施形態に従って使用することができる様々なメッセージ・タグの一部の例、およびそれらの機能の説明をまとめている。
【表１】
2004005610.tif 000003
表１でわかるとおり、メッセージＴＡＧの一部は、サブエージェントによって生成されたマスタ・エージェントに対するメッセージを識別し、一方、他のメッセージＴＡＧは、アプリケーションによって生成された構成マネージャ７０に対する（またはその逆の）メッセージを識別する。例えば、ＲＥＧＩＳＴＥＲ＿ＣＬＩというメッセージＴＡＧは、サブエージェントによって生成されて、そのメッセージ自体が、マスタ・エージェントに登録する要求であることを示す。ＣＬＩ＿ＣＭＤというメッセージＴＡＧは、マスタ・エージェントによって生成されて、メッセージのメッセージ・コンテンツ１３６が確認されたＣＬＩ＿ＣＭＤを含むことをサブエージェントに示す。他方、ＣＦＧ＿ＳＡＶＥ＿ＲＥＱＵＥＳＴというメッセージＴＡＧは、構成マネージャによって生成されて、メッセージが、不揮発性メモリの中の最新に保存される構成に保存される必要があるあらゆる構成データを送るようにというアプリケーションに対する要求であることをアプリケーションに示し、またＣＦＧ＿ＳＡＶＥ＿ＣＯＮＴＥＮＴというメッセージＴＡＧは、アプリケーションによって生成された構成マネージャに対する応答であり、メッセージ・コンテンツ１３６が、構成マネージャ７０によって保存される必要のある所望の構成データを含むことを示す。他のメッセージＴＡＧには、とりわけ、アプリケーションによって生成される、構成マネージャ７０に対する複製要求またはロールバック要求が含まれる。
【００３０】
図４Ａは、マスタ・エージェントからサブエージェントに送られるＣＬＩメッセージに関して使用される際の共通メッセージ交換インターフェース１１０の例を示している。ＣＬＩメッセージ・フォーマット１４０は、メッセージがＣＬＩコマンドであることを示す「ＣＬＩ＿ＣＭＤ」のメッセージ・タグ１３２値を含む。メッセージ・コンテンツ１３６は、コマンド識別子１４２、および１つまたは複数のパラメータ１４４／１４６を含む。図４Ｂは、マスタ・エージェントからサブエージェントに送られるＳＮＭＰ要求に関して使用される際の共通メッセージ交換インターフェース１１０を示している。同様に、図４Ｃは、マスタ・エージェントからサブエージェントに送られるＸＭＬ要求に関して使用される際の共通メッセージ交換インターフェース１１０を示している。本発明の範囲を逸脱することなく、多数の他のメッセージ・タグ値１３２、メッセージ長１３４、およびメッセージ・コンテンツ１３６のフォーマットを共通メッセージ交換インターフェース１１０において使用することができる。
【００３１】
図５は、図１〜４Ｃに図示した本発明のいくつかの形態を実施することができる適切な計算環境の一実施形態を示している。本実施形態では、構成管理システム１００のための方法は、バス２０８を介して相互に結合されたプロセッサ２０１、メモリ２０２、入力／出力デバイス２０３、データ・ストレージ２０４、およびネットワーク・インターフェース２０５を含め、構成要素２０１〜２０６を有するコンピュータ・システム２００で実施することができる。以上の構成要素は、当技術分野で周知の従来の機能を果たし、構成管理システム２００を実装するための手段を提供する。総体として以上の構成要素は、汎用コンピュータ・システムおよび特殊化されたパケット転送デバイスを含むが、それらには限定されない広い範疇のハードウェア・システムを代表する。
【００３２】
一実施形態では、メモリ構成要素２０２は、マスタ・エージェント１０／２０／３０、構成マネージャ７０、構成マネージャ・インターフェース４７／５７／６７、サブエージェント４１〜４３、５１〜５３、６１〜６３、及び構成管理システム２００のその他の構成要素を構成する命令およびデータを含め、プロセッサ２０１によって使用される命令およびデータが記憶されているランダム・アクセス・メモリ（ＲＡＭ）、および不揮発性記憶デバイス（例えば、磁気ディスクまたは光ディスク）の１つまたは複数を含むことが可能である。
【００３３】
一実施形態では、データ記憶構成要素２０４は、構成管理システム１００によって管理される構成ファイル・システム８０、ならびにプロトコル４５、アプリケーション５５、またはその他のインターフェース６５によって使用されるバッファなどの任意の他の記憶領域を表すことが可能である。
【００３４】
コンピュータ・システム２００の様々な構成要素は、配置を変更することができ、また本発明のいくつかの実施形態は、前述した構成要素のすべては必要としないか、または含まなくてもよいことを理解されたい。さらに、追加のプロセッサ（例えば、デジタル信号プロセッサ）、記憶デバイス、メモリ、ネットワーク／通信インターフェースなどの追加の構成要素をシステム２００に含めることも可能である。
【００３５】
図５の例としての実施形態では、本発明の一実施形態による構成管理システム１００のための方法および装置を、コンピュータ・システム２００によって実行される一連のソフトウェア・ルーチンとして実現できる。このソフトウェア・ルーチンは、１つまたは複数のプロセッサ２０１などの処理システムによってアクセスされ、かつ／または実行される複数のまたは一連の命令、コード・シーケンス、構成情報、または他のデータを含むことが可能である。最初に、一連の命令、コード・シーケンス、構成情報、または他のデータが、データ・ストレージ２０４に記憶されており、バス２０８を介してメモリ２０２に転送されることが可能である。一連の命令、コード・シーケンス、構成情報、または他のデータは、ディスケット、ＣＤ−ＲＯＭ、磁気テープ、ＤＶＤ、ＲＯＭなど、任意の従来のコンピュータ可読の記憶媒体、またはマシン・アクセス可能な記憶媒体を使用するデータ・ストレージ２０４に記憶するのが可能であることを理解されたい。また、一連の命令、コード・シーケンス、構成情報、または他のデータは、ローカルで記憶する必要はなく、ネットワーク／通信インターフェース２０５を介して、ネットワーク上のサーバなどの遠隔の記憶デバイスから受信される伝播されるデータ信号に記憶するのが可能であることも理解されたい。命令、コード・シーケンス、構成情報、または他のデータは、大容量ストレージなどのデータ・ストレージ２０４から、または伝播されるデータ信号からメモリ２０２の中にコピーされ、プロセッサ２０１によってアクセスされて実行されることが可能である。
【００３６】
代替の実施形態では、本発明は、個別のハードウェアまたはファームウェアに実装される。例えば、１つまたは複数の特定用途向け集積回路（ＡＳＩＣ）に、本発明の前述した機能の一部、またはすべてをプログラミングすることが可能である。
【００３７】
次に、図６〜９を参照すると、本発明の特定の方法が、一連のフローチャートに関連してコンピュータ・ソフトウェアの見地から説明されている。ルータ上またはその他のネットワーク・デバイス上のプロセッサによって行われる方法は、コンピュータ実行可能命令から成るコンピュータ・プログラムを構成する。フローチャートを参照して方法を説明することにより、当分野の技術者は、そのような命令を含むそのようなプログラムを開発して、適切に構成されたコンピュータ上で（コンピュータのプロセッサが、コンピュータ・アクセス可能媒体から命令を実行して）その方法を実行することができるであろう。コンピュータ実行可能命令は、コンピュータ・プログラミング言語で書くことができ、あるいは特定用途向け集積回路（ＡＳＩＣ）などのファームウェア論理として実現することができる。認知されている標準に準拠するプログラミング言語で書かれている場合、そのような命令を様々なハードウェア・プラットフォーム上で、また様々なオペレーティング・システムに対するインターフェースに対して実行することができる。さらに、本発明を何らかの特定のプログラミング言語に関連して説明することはしない。様々なプログラミング言語を使用して、本明細書で説明する本発明の教示を実施できることが理解されよう。さらに、当技術分野では、ソフトウェアが、何らかの形で（例えば、プログラム、手続き、プロセス、アプリケーション等）アクションを行っている、または結果を生じさせるとして叙述することが一般的である。そのような表現は、コンピュータによるソフトウェアの実行により、コンピュータのプロセッサが、アクションを行うようにさせられる、または結果をもたらすようにさせられることを述べる単なる省略表現法である。
【００３８】
図６は、図１〜５に例示した本発明の一実施形態を実行するコンピュータによって行われる方法のある形態を示すフローチャートである。一実施形態では、登録プロセス３００中、処理ブロック３１０で、ルータ上、またはその他のネットワーク・デバイス上のプロセス・マネージャが、ＢＧＰアプリケーション４５などのアプリケーションを開始し、その結果、アプリケーション４５が、処理ブロック３１３で、構成マネージャ・インターフェース４７を開始し、処理ブロック３１５で、構成マネージャ７０との通信チャネル７１を確立することにとりかかる。処理は、ブロック３１７に進み、アプリケーション４５が、共通メッセージ交換インターフェース１１０を使用して構成マネージャ７０に登録して、アプリケーション名、優先順位、およびその他のアプリケーション特有の情報を提供する。一実施形態では、アプリケーション４５は、メッセージの１つに付いたメッセージ・タグ１３２がＲＥＧＩＳＴＥＲ＿ＣＭ＿ＡＰＰ＿ＮＡＭＥであり、他方のメッセージに付いたメッセージ・タグ１３２がＲＥＧＩＳＴＥＲ＿ＣＭ＿ＡＰＰ＿ＰＲＩＯＲＩＴＹである共通メッセージ交換インターフェース１１０に従ってフォーマットされた２つのメッセージを送信することによって登録する。第１のメッセージは、メッセージ・コンテンツ１３６領域にアプリケーション名「ＢＧＰ」、またはアプリケーション名の何らかの表現を含む。第２のメッセージは、メッセージ・コンテンツ１３６領域に、ルータにおける他のアプリケーションに対するＢＧＰアプリケーション４５の優先順位を示す値を含む。一実施形態では、処理ブロック３１９で、構成マネージャ７０が、アプリケーション名および優先順位値を記録し、その優先順位に基づいてアプリケーション４５に通し番号を割り当て、その通し番号に基づいて登録されたアプリケーション４５／５５／６５のすべてをリンクしてリンク・リストを形成する。このようにして、構成マネージャ７０は、好ましいアプリケーションの順序で複数のアプリケーション４５／５５／６５からの構成データの保存を行うことができ、すなわち、所与のルータまたはネットワーク・デバイスに存在する可能性がある様々なプロトコル依存関係を反映させるように構成データの更新を行うことができる。
【００３９】
一実施形態では、処理ブロック３１２で、アプリケーションが、サブエージェント、例えば、ＣＬＩサブエージェント４２を始動させ、この結果、サブエージェント４２は、処理ブロック３１４で、ＣＬＩマスタ・エージェント２０との通信チャネル２５を確立し、処理ブロック３１６で、ＣＬＩマスタ・エージェント２０に登録する。処理ブロック３１８で、マスタ・エージェント２０が、その登録情報を記録する。この情報は、ＣＬＩ管理インターフェースの場合、ＣＬＩコマンド・ツリーである。ＳＮＭＰ管理インターフェースまたはＸＭＬ管理インターフェースの場合、ＮＭＰ　ＭＩＢテーブル／オブジェクトＯＩＤ、またはＸＭＬ要素などの他の登録情報が利用可能である。例えば、ＳＮＭＰの場合には、サブエージェント４１が、ＳＮＭＰマスタ・エージェント１０のＭＩＢツリーの中にリーフを登録し、一方、ＣＬＩの場合には、サブエージェント４２が、ＣＬＩマスタ・エージェント２０のＣＬＩコマンド・ツリーの中にリーフを登録する。マスタ・エージェント１０／２０／３０が、受け取る様々な構成コマンドとデータを適切に識別し、確認することができるようになるのは、この登録情報によってである。処理ブロック３２０で、ＣＬＩマスタ・エージェント２０および構成マネージャ７０が、各々の登録を確認し、接続、すなわち、通信チャネル１５／２５／３５を確立したとき、登録が完了する。
【００４０】
この時点で、構成マネージャ７０およびＣＬＩマスタ・エージェント２０が、ＢＧＰアプリケーションの構成マネージャ・インターフェース４７およびＣＬＩサブエージェント４２をそれぞれ「聴取する」ことを開始し、またＣＬＩ管理インターフェースを使用してＢＧＰアプリケーション４５に送られる構成情報を処理するため、インターフェース４７およびサブエージェント４２を使用することができる。
【００４１】
以上の説明では、都合上、ＢＧＰアプリケーション４５およびＣＬＩ管理インターフェースだけを詳細に説明したが、もちろん、同じ説明は、ＳＮＭＰインターフェースおよびＸＭＬインターフェース、あるいはＯＳＰＦインターフェース・アプリケーション５５またはイーサネット・インターフェース・アプリケーション６５、あるいはルータ上またはその他のネットワーク・デバイス上で動作することが可能な任意の他の管理インターフェースまたはアプリケーションにも当てはまることに留意されたい。
【００４２】
図７は、マスタ・エージェント１０／２０／３０とサブエージェント４２／５２／６２の間のエージェント処理４００をさらに詳細に示すフローチャートである。マスタ・エージェント１０／２０／３０は、ネットワーク・デバイスのアプリケーションまたはその他の構成要素に関する所与の管理インターフェースの機能のすべてのトラフィック・コントローラおよびアービタとして動作する。この場合も、ＣＬＩ管理インターフェースおよびＢＧＰアプリケーション４５を例として使用すると、処理ブロック４１０で、ＣＬＩマスタ・エージェント２０が、登録データに従ってコマンドとデータを確認することを含め、着信するＣＬＩコマンドおよび関連する構成データの処理を行う。登録データは、この場合、ＣＬＩコマンド・ツリーを含む。ただし、管理インターフェースに応じて、ＳＮＭＰ管理情報ベース（ＭＩＢ）、およびＸＭＬタグまたはＸＭＬでサポートされる要素、またはマスタ・エージェントが、着信する管理コマンドと構成データを識別して確認し、適切なアプリケーションに向かわせることができるようにする任意の他のデータなどの他の登録データも、本発明の範囲を逸脱することなく使用することができる。
【００４３】
一実施形態では、処理ブロック４１０で、マスタ・エージェント２０が、コマンド、および関連する構成データ（例えば、ＣＬＩコマンドに対するパラメータ）を構文解析し、そのシンタックス、および、存在する場合、ＣＬＩコマンド・パラメータの使用法を、以前に登録時にサブエージェント４２によってマスタ・エージェント２０に供給された登録データに照らして確認する。処理ブロック４３０で、マスタ・エージェント２０が、確認されたコマンドと構成データを適切なサブエージェントに、この場合、ＢＧＰアプリケーション４５のためのＣＬＩサブエージェント４２に送る。マスタ・エージェント２０は、共通メッセージ交換インターフェース１１０を使用して、通信チャネル２５を介してコマンドと構成データをサブエージェント４２に送り、その際、メッセージ・コンテンツ１３６を識別する「ＣＬＩ＿ＣＭＤ」のメッセージ・タグ１３２値、およびメッセージ・タグ１３２の長さ、メッセージ・コンテンツ１３６の長さ、およびメッセージ長１３４自体の長さを含むメッセージ長１３４を含む適切なヘッダ情報を付加する。
【００４４】
一実施形態では、処理ブロック４４０で、ＢＧＰアプリケーション４５のためのＣＬＩサブエージェント４２が、ＣＬＩマスタ・エージェント２０から、メッセージ交換インターフェース１１０においてコマンドと構成データを受け取り、図８にさらに詳細に描いた事前定義されたプロセス５００における処理のためにそのコマンドと構成データをＢＧＰアプリケーション４５に転送する。該当する場合、処理ブロック４５０で、ＣＬＩサブエージェント４２が、アプリケーション４５からフォーマットされた応答データを受け取り、やはり共通メッセージ交換インターフェース１１０を使用し、その応答をメッセージ・コンテンツ１３６の中に挿入し、適切なタグ１３２、およびメッセージ長１３４、または通信チャネル２５を介してメッセージを送信するのに必要とされる可能性がある他のあらゆるヘッダを付加して、その応答をＣＬＩマスタ・エージェント２０に送る。処理ブロック４６０で、マスタ・エージェントが、アプリケーション４５によるあらゆる応答の処理を、メッセージ・ヘッダ、すなわち、メッセージ・タグ１３２およびメッセージ長１３４を除去し、応答を適切な管理インターフェースに、この場合、ＣＬＩ管理インターフェースに返送することによって完了する。
【００４５】
図８は、アプリケーション４５／５５／６５と構成マネージャ・インターフェース４７／５７／６７の間のアプリケーション／構成マネージャ・インターフェース処理５００をさらに詳細に示すフローチャートである。ルータの構成のすべての更新は、構成マネージャ７０によって管理されているので、構成マネージャ・インターフェース４７／５７／６７は、構成に関する所与のアプリケーションの機能のすべてのトラフィック・コントローラおよびアービタとして働く。言い換えれば、所与のアプリケーションが必要とする構成の更新および構成へのアクセスのすべてが、各アプリケーションの構成マネージャ・インターフェース４７／５７／６７を介して扱われる。この場合も、ＣＬＩ管理インターフェースおよびＢＧＰアプリケーション４５を例として使用すると、処理ブロック５１０で、ＢＧＰプロトコル４５用のアプリケーションが、ＣＬＩサブエージェント４２から確認されたコマンドと構成データを受け取り、メッセージ・インターフェース・ヘッダ、すなわち、メッセージ・タグおよびメッセージ長を除去する。処理ブロック５２０で、アプリケーション４５が、ＵＭＯＬ４４を呼び出して、除去処理済みのＣＬＩコマンドおよび構成情報をフォーマットして内部データ構造７４にする。一実施形態では、ＵＭＯＬ内部データ構造７４は、アクションとパラメータの形態をとる。処理ブロック５３０で、アプリケーション４５が、フォーマットされたアクションとパラメータを構成マネージャ・インターフェース４７に送る。処理ブロック５４０で、構成マネージャ・インターフェース４７が、共通メッセージ交換インターフェース１１０を使用して構成マネージャによって発行された定期的ＳＡＶＥ要求、すなわち、「ＳＡＶＥ＿ＲＥＱＵＥＳＴ」というメッセージＴＡＧを有し、通信チャネル７１を介して送られるメッセージの形態の要求に応答してアクションとパラメータを構成マネージャ７０に送る。送られる応答は、「ＳＡＶＥ＿ＣＯＮＴＥＮＴ」というメッセージＴＡＧを有するメッセージの形態をとり、共通メッセージ交換インターフェース１１０に従ったメッセージのメッセージ・コンテンツ１３６が、アプリケーション４２、および汎用管理オブジェクト・レイヤ４４によって生成されたアクションとパラメータから成ることを示す。図９に描いた構成マネージャ６００による処理の後、処理は、処理ブロック５６０に進み、アプリケーション４２が、メッセージ・インターフェース・ヘッダを除去して、メッセージ・コンテンツ１３６に含まれる応答が存在する場合、その応答にアクセスすることができるようにする。その応答が、ユーザを宛先としている場合、アプリケーションは、ＵＭＯＬ４４を呼び出して除去処理済みの応答をフォーマットして、サブエージェント４２を呼び出して、共通メッセージ交換インターフェース１１０および通信チャネル２５を使用して（例えば、メッセージ・タグ、メッセージ長等を付加することにより）マスタ・エージェントにフォーマットされた応答を返送する。
【００４６】
図９は、構成マネージャ処理６００を示すフローチャートである。マスタ・エージェント／サブエージェント・スキームから受け取られたコマンドと構成データを処理するのに必要な詳細なコマンド・シンタックス、コマンド実行順序、確認の知識、およびその他の知識は、アプリケーション・レイヤ４０／５０／６０の中に常駐するので、その知識からもたらされる構成の実際の更新は、構成マネージャ・インターフェース４７／５７／６７を介して構成マネージャ７０によって適用される限られた１組のアクションとパラメータに縮減することができる。したがって、構成マネージャ７０は、アプリケーション４５／５５／６５と実際のルータ構成の間の「ダム（ｄｕｍｂ）」レイヤとして機能する。
【００４７】
一実施形態では、処理ブロック６１０で、構成マネージャ７０が、まず、構成データを保存させる必要がある可能性がある何らかの登録済みアプリケーション４５／５５／６５が存在するかどうかを判定する。各アプリケーションは、始動時に共通メッセージ交換インターフェース１１０を介して構成マネージャ７０に登録していることを思い起されたい。現行で登録済みのアプリケーションが存在しない場合は、構成マネージャ処理は終了する６５０。登録済みアプリケーションが存在する場合、処理ブロック６２０で、構成マネージャ７０が、次の登録済みアプリケーションに関するＳＡＶＥ＿ＲＥＱＵＥＳＴメッセージを生成する。次の登録済みアプリケーションは、他の登録済みアプリケーションの通し番号と比較したアプリケーションの通し番号に基づいて決まる。アプリケーション通し番号は登録時に生成されていることを思い起されたい。アプリケーション通し番号により、構成マネージャが、必要な構成更新の優先順位を保つことが可能になる。構成更新の優先順位は、サポートされているアプリケーションのタイプに依存する。
【００４８】
一実施形態では、ＳＡＶＥ＿ＲＥＱＵＥＳＴメッセージは、適切なメッセージＴＡＧ１３２およびメッセージ長１３４値を伴って共通メッセージ交換インターフェース１１０に従ってフォーマットされ、構成マネージャ７０と構成マネージャ・インターフェース４７の間で通信チャネル７１を介して送られる。処理ブロック６３０で、次の登録済みアプリケーションが、共通メッセージ交換インターフェース１１０に従ってＳＡＶＥ＿ＣＯＮＴＥＮＴを生成する。ＳＡＶＥ＿ＣＯＮＴＥＮＴメッセージ・コンテンツ１３６は、ルータの最新に保存された構成を更新するのに必要とされるコンテンツを含む。一実施形態では、コンテンツは、アプリケーションのＵＭＯＬ４４に従って生成されたアクションとパラメータの形態になっている。このコンテンツは、ＳＮＭＰ　ＭＩＢテーブルＯＩＤであれ、ＸＭＬ要素であれ、またはＣＬＩコマンドであれ、そのコンテンツの出所である管理インターフェースがＣＬＩであるか、ＳＮＭＰであるか、またはＸＭＬであるかにかかわらず、同じ形態、すなわち、アクションとパラメータである。
【００４９】
処理ブロック６４０において、構成マネージャ７０が、ＳＡＶＥ＿ＣＯＮＴＥＮＴメッセージからメッセージ・ヘッダ、すなわち、メッセージＴＡＧ１３２およびメッセージ長１３４を除去し、メッセージ・コンテンツ１３６に従って最新に保存されている構成データを更新する。構成マネージャ処理６００は、構成更新が受け取られるべき現行で登録済みのアプリケーションが存在しなくなるまで処理ブロック６１０で再開される。
【００５０】
したがって、構成管理システム１００が、ネットワーク・デバイス上の構成の動的な管理を容易にする新しい方法および装置を説明した。以上の説明から、本発明の多くの他の変形形態が可能であることが、当分野の技術者には認められよう。詳細には、本発明は、マスタ・エージェント、サブエージェント、アプリケーション、構成マネージャ、および関連する構成要素を含むネットワークにおいて実施されるものとして説明してきたが、本発明の範囲を逸脱することなく、本明細書で説明した論理の一部をネットワーク・デバイスの他の構成要素に分散させることが可能であることに留意されたい。
【００５１】
例えば、本発明の実施形態は、マシン・アクセス可能媒体（コンピュータ可読媒体またはプロセッサ可読媒体とも呼ばれる）に記憶されたソフトウェア製品とすることも可能である。マシン・アクセス可能媒体は、ディスケット、ＣＤ−ＲＯＭ、メモリ・デバイス（揮発性または不揮発性）、または同様の記憶機構を含む任意のタイプの磁気記憶媒体、光記憶媒体、または電気記憶媒体でよい。マシン・アクセス可能媒体は、様々なセットの命令、コード・シーケンス、構成情報、または他のデータを含むことが可能である。例として、共通メッセージ交換インターフェース１１０、マスタ・エージェント１０／２０／３０、サブエージェント４２／５２／６２、アプリケーション４４／５４／６４、構成マネージャ７０、および関連する構成要素に関して本明細書で説明した手続きをマシン・アクセス可能媒体に記憶することができる。さらに、アプリケーションが、マスタ・エージェントおよび構成マネージャにそれぞれ登録するのに使用する登録データ、または構成コマンド、要求、アクション、およびパラメータ、ならびに関連するその他のデータを内部記憶領域の中に、またはマシン・アクセス可能な外部記憶媒体上に記憶することができる。説明した本発明を実施するのに必要な他の命令およびオペレーションもマシン・アクセス可能媒体上に記憶できることが、当分野の技術者には認められよう。
【００５２】
したがって、本発明は、説明した詳細によって限定されない。そうではなく、本発明は、頭記の特許請求の趣旨および範囲に含まれる変更形態および変形形態に実装することができる。
【図面の簡単な説明】
【図１】本発明を組み込んだ構成管理システムの１つの一般化された実施形態を示し、例としての本発明のある形態を実施することができる動作環境を示すブロック図である。
【図２】本発明の一実施形態による、図１の構成管理システムの選択された構成要素をより詳細に示すブロック図である。
【図３】本発明の一実施形態による、図１の共通メッセージ交換インターフェースのデータ・フォーマットを示す図である。
【図４】Ａ：本発明の一実施形態によるＣＬＩベースの管理インターフェースのための図１の共通メッセージ交換インターフェースの例を示す図である。
Ｂ：本発明の一実施形態によるＳＮＭＰベースの管理インターフェースのための図１の共通メッセージ交換インターフェースの例を示す図である。
Ｃ：本発明の一実施形態によるＸＭＬベースの管理インターフェースのための図１の共通メッセージ交換インターフェースの例を示す図である。
【図５】図１〜４に示した例としての本発明のある形態を実施することができる適切な計算環境を示すブロック図である。
【図６】図１〜５に例示した本発明の一実施形態を実行するコンピュータによって行われる方法のある形態を示すフローチャートである。
【図７】図１〜５に例示した本発明の一実施形態を実行するコンピュータによって行われる方法のいくつかの他の形態を示すフローチャートである。
【図８】図１〜５に例示した本発明の一実施形態を実行するコンピュータによって行われる方法のいくつかの他の形態を示すフローチャートである。
【図９】図１〜５に例示した本発明の一実施形態を実行するコンピュータによって行われる方法のいくつかの他の形態を示すフローチャートである。
【符号の説明】
１０、２０、３０　マスタ・エージェント
１５、２５、３５　通信チャネル
４１、４２、４３、５１、５２、５３、６１、６２、６３　サブエージェント
４４、５４、６４　汎用管理オブジェクト・レイヤ
４５、５５、６５　アプリケーション
４７、５７、６７　構成マネージャ・インターフェース
７０　構成マネージャ
７４　内部データ構造
８０　ファイル・システム
１１０　共通メッセージ交換インターフェース
１２０　アクションとパラメータ
【図１】
2004005610.tif 000004
【図２】
2004005610.tif 000005
【図３】
2004005610.tif 000006
【図４】
2004005610.tif 000007
【図５】
2004005610.tif 000008
【図６】
2004005610.tif 000009
【図７】
2004005610.tif 000010
【図８】
2004005610.tif 000011
【図９】
2004005610.tif 000012