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