(57)【要約】【課題】あるクライアントによる設定を復元する際に、他のクライアントによる設定を維持すること。【解決手段】記憶部１ａは、何れかのクライアントにより更新された設定情報と設定情報の世代と更新を実行したクライアントの識別情報とを対応付けて記憶する。演算部１ｂは、識別情報ＣＬ１のクライアントにより世代Ｇ１への復元が指定されると、記憶部１ａを参照して、世代Ｇ１よりも新しい世代Ｇ２，Ｇ３，Ｇ４の設定情報Ｆ２，Ｆ３，Ｆ４における識別情報ＣＬ１のクライアント以外の他のクライアントによる更新内容を検索する。演算部１ｂは、世代Ｇ１に対応する設定情報Ｆ１に当該更新内容を反映させた設定情報Ｆ１ａを生成し、設定情報Ｆ１ａを用いてネットワーク装置２の設定を行う。【選択図】図１
2015142167.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク装置の設定に用いられる設定情報を管理する管理装置であって、
複数のクライアントの何れかにより更新された設定情報と当該設定情報の世代と更新を実行したクライアントの識別情報とを対応付けて記憶する記憶部と、
何れかのクライアントにより何れかの世代への復元が指定されると、前記記憶部を参照して、指定された世代よりも新しい世代の設定情報における他のクライアントによる更新内容を検索し、指定された世代に対応する第１の設定情報に前記更新内容を反映させた第２の設定情報を生成し、
前記第２の設定情報を用いて前記ネットワーク装置の設定を行う、演算部と、
を有する管理装置。
【請求項２】
前記演算部は、指定された世代から最新の世代までの指定元のクライアントによる更新数と、指定された世代から最新の世代までの他のクライアントによる更新数との比較に応じて、前記第１の設定情報に前記更新内容を反映させることで前記第２の設定情報を生成するか、または、最新の世代の設定情報における前記指定元のクライアントによる更新内容を指定された世代まで戻すことで前記第２の設定情報を生成するか、を選択する、
請求項１記載の管理装置。
【請求項３】
前記演算部は、前記第１の設定情報に他のクライアントによる更新内容を反映させることで、指定された世代よりも新しい世代に対応する設定情報のうち他のクライアントの識別情報に対応する設定情報を更新し、指定された世代よりも新しい世代に対応する設定情報のうち指定元のクライアントの識別情報に対応する設定情報を無効にする、
請求項１または２記載の管理装置。
【請求項４】
ネットワーク装置の設定に用いられる設定情報を管理するための管理プログラムであって、コンピュータに、
複数のクライアントの何れかにより設定情報が更新されると、更新された設定情報と当該設定情報の世代と更新を実行したクライアントの識別情報とを対応付けて取得し、
何れかのクライアントにより何れかの世代への復元が指定されると、取得した情報を参照して、指定された世代よりも新しい世代の設定情報における他のクライアントによる更新内容を検索し、指定された世代に対応する第１の設定情報に前記更新内容を反映させた第２の設定情報を生成し、
前記第２の設定情報を用いて前記ネットワーク装置の設定を行う、
処理を実行させる管理プログラム。
【請求項５】
ネットワーク装置の設定に用いられる設定情報を管理する管理装置が、
複数のクライアントの何れかにより設定情報が更新されると、更新された設定情報と当該設定情報の世代と更新を実行したクライアントの識別情報とを対応付けて取得し、
何れかのクライアントにより何れかの世代への復元が指定されると、取得した情報を参照して、指定された世代よりも新しい世代の設定情報における他のクライアントによる更新内容を検索し、指定された世代に対応する第１の設定情報に前記更新内容を反映させた第２の設定情報を生成し、
前記第２の設定情報を用いて前記ネットワーク装置の設定を行う、
ネットワーク装置の設定情報管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は管理装置、管理プログラムおよびネットワーク装置の設定情報管理方法に関する。
【背景技術】
【０００２】
装置間のデータ転送を制御する種々のネットワーク装置が利用されている。ネットワーク装置は、コンピュータなどの情報処理装置や他のネットワーク装置と接続され、ネットワークを形成する。ネットワーク装置として、例えば、ＯＳＩ（Open Systems Interconnection）参照モデルの第２層でデータ転送を制御するＬ２スイッチや、同第３層でデータ転送を制御するＬ３スイッチおよびルータが考えられる。また、ＯＳＩ参照モデルの第２層以上のレイヤで用いられる１以上のプロトコルを利用してデータ転送を制御するネットワーク装置もある（例えば、ファイアウォールや負荷分散装置など）。
【０００３】
ネットワーク装置には、データ転送を制御するための設定が行われる。例えば、ユーザは設定内容を示すコマンド（設定コマンド）をネットワーク装置に入力することで所望の設定を行える。複数の設定コマンドを含む設定情報をネットワーク装置に入力することで、ネットワーク装置が保持する設定内容を一括して更新することもある。現設定に対応する設定情報をネットワーク装置から取得し、バックアップとして利用することもある。
【０００４】
ところで、装置の設定を過去の設定に戻すことがある。例えば、装置の設定変更後に、その装置やその装置を含むシステムの動作に異常が生じたとき、その設定を正常時の設定に戻すことで異常から復旧し得る。具体的には、次のような方法が考えられている。
【０００５】
例えば、ネットワーク装置のコンフィグ情報を装置単体だけを対象にして管理するのではなく、複数の装置群を対象としたグループの組み合わせで世代管理し、障害発生時には、安定動作時のコンフィグ情報を装置群単位にまとめて配布する提案がある。
【０００６】
また、情報処理装置に設定された定義情報を現在の世代から前の世代の状態へ復元する際に、復元するための逆差分を生成して情報処理装置内の各サブシステム（プログラム）に通知し、定義情報の復元の可否をサブシステム毎に判定させる提案がある。
【０００７】
更に、仮想マシンの構成情報を記録しておき、その仮想マシンがダウンしたとき、その構成情報を用いて新たに仮想マシンを起動させる提案もある。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１０−２７８７４２号公報
【特許文献２】特開平８−１０１７６３号公報
【特許文献３】国際公開第２０１１／１１７９５７号
【発明の概要】
【発明が解決しようとする課題】
【０００９】
複数のクライアント（例えば、ユーザまたはユーザが利用するコンピュータ）によるネットワーク装置の設定変更を許容することがある。一例として、データセンタ内のコンピュータやネットワーク装置のリソースを複数のユーザに貸し出すサービスを考える。ユーザは、借りたリソースを用いて所望のシステムを実現できる。このとき、１つのネットワーク装置が複数のユーザにより共用され得る。例えば、ネットワーク装置内の通信用の複数のポートの一部をあるユーザに利用させ、他の一部を他のユーザに利用させる。ただし、実現したいネットワーク環境は、ユーザ毎に相違し得る。そこで、例えば、各ユーザが利用するポートの設定について、各ユーザによる設定変更を許容することが考えられる。
【００１０】
しかし、この場合、設定の復元が問題となる。例えば、あるクライアントからの要求により、ネットワーク装置の過去の設定を復元することが考えられる。バックアップとして取得されていた過去の設定情報をネットワーク装置に入力して、過去の設定を復元し得る。ところが、その過去の時点よりも後に、他のクライアントにより設定変更が行われていることがある。このため、単に過去の設定情報をネットワーク装置に入力して設定を戻すと、過去の時点よりも後の他のクライアントによる設定変更が無効になるおそれがある。
【００１１】
１つの側面では、本発明は、あるクライアントによる設定を復元する際に、他のクライアントによる設定を維持できる管理装置、管理プログラムおよびネットワーク装置の設定情報管理方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
１つの態様では、ネットワーク装置の設定に用いられる設定情報を管理する管理装置が提供される。この管理装置は、記憶部と演算部とを有する。記憶部は、複数のクライアントの何れかにより更新された設定情報と当該設定情報の世代と更新を実行したクライアントの識別情報とを対応付けて記憶する。演算部は、何れかのクライアントにより何れかの世代への復元が指定されると、記憶部を参照して、指定された世代よりも新しい世代の設定情報における他のクライアントによる更新内容を検索し、指定された世代に対応する第１の設定情報に当該更新内容を反映させた第２の設定情報を生成し、第２の設定情報を用いてネットワーク装置の設定を行う。
【００１３】
また、１つの態様では、ネットワーク装置の設定に用いられる設定情報を管理するための管理プログラムが提供される。この管理プログラムは、コンピュータに、複数のクライアントの何れかにより設定情報が更新されると、更新された設定情報と当該設定情報の世代と更新を実行したクライアントの識別情報とを対応付けて取得し、何れかのクライアントにより何れかの世代への復元が指定されると、取得した情報を参照して、指定された世代よりも新しい世代の設定情報における他のクライアントによる更新内容を検索し、指定された世代に対応する第１の設定情報に当該更新内容を反映させた第２の設定情報を生成し、第２の設定情報を用いてネットワーク装置の設定を行う、処理を実行させる。
【００１４】
また、１つの態様では、ネットワーク装置の設定に用いられる設定情報を管理する管理装置により実行されるネットワーク装置の設定情報管理方法が提供される。このネットワーク装置の設定情報管理方法では、管理装置が、複数のクライアントの何れかにより設定情報が更新されると、更新された設定情報と当該設定情報の世代と更新を実行したクライアントの識別情報とを対応付けて取得し、何れかのクライアントにより何れかの世代への復元が指定されると、取得した情報を参照して、指定された世代よりも新しい世代の設定情報における他のクライアントによる更新内容を検索し、指定された世代に対応する第１の設定情報に当該更新内容を反映させた第２の設定情報を生成し、第２の設定情報を用いてネットワーク装置の設定を行う。
【発明の効果】
【００１５】
１つの側面では、あるクライアントによる設定を復元する際に、他のクライアントによる設定を維持できる。
【図面の簡単な説明】
【００１６】
【図１】第１の実施の形態の情報処理システムを示す図である。
【図２】第２の実施の形態の情報処理システムを示す図である。
【図３】管理サーバのハードウェア例を示す図である。
【図４】管理サーバの機能例を示す図である。
【図５】設定ファイル群の例を示す図である。
【図６】設定ファイルの例を示す図である。
【図７】設定ファイルの例（続き）を示す図である。
【図８】管理テーブルの例を示す図である。
【図９】制約テーブルの例を示す図である。
【図１０】ＧＵＩの例を示す図である。
【図１１】設定変更処理の例を示すフローチャートである。
【図１２】復元処理の例を示すフローチャートである。
【図１３】設定ファイル生成（パターン１）の例を示すフローチャートである。
【図１４】設定ファイル生成（パターン２）の例を示すフローチャートである。
【図１５】設定ファイル生成（パターン１）の具体例を示す図である。
【図１６】設定ファイル生成（パターン１）の具体例（続き）を示す図である。
【図１７】設定ファイル生成（パターン２）の具体例を示す図である。
【図１８】設定ファイル生成（パターン２）の具体例（続き）を示す図である。
【図１９】設定ファイルの他の設定例（その１）を示す図である。
【図２０】設定ファイルの他の設定例（その２）を示す図である。
【図２１】ネットワーク装置の例を示す図である。
【図２２】復元処理の比較例を示す図である。
【発明を実施するための形態】
【００１７】
以下、本実施の形態を図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態の情報処理システムを示す図である。第１の実施の形態の情報処理システムは、管理装置１、ネットワーク装置２、サーバ３，４および端末装置５，６を含む。管理装置１、ネットワーク装置２および端末装置５，６は、ネットワーク７に接続されている。サーバ３，４は、ネットワーク装置２に接続されている。
【００１８】
管理装置１は、ネットワーク装置２の設定に用いられる設定情報を管理する。設定情報は、ネットワーク装置２に対する設定内容を示す複数のコマンド（設定コマンド）を含む情報である。ネットワーク装置２は、サーバ３，４と端末装置５，６との間の通信を中継する。ネットワーク装置２は、設定情報の変更をユーザ単位に管理する機能を有していない。ネットワーク装置２は、現在の自身の設定情報を１つのファイルとして保持する。サーバ３，４は、所定のアプリケーションによるサービスを提供するサーバコンピュータである。端末装置５，６は、ユーザによって操作されるクライアントコンピュータである。
【００１９】
サーバ３は、端末装置５を操作するユーザにより利用される。サーバ４は、端末装置６を操作するユーザにより利用される。サーバ３，４はネットワーク装置２の配下にある。このため、ネットワーク装置２は端末装置５，６を操作する各ユーザにより共用される。端末装置５，６を操作する各ユーザは、管理装置１を介してネットワーク装置２の設定を行える。このため、ネットワーク装置２の設定情報には、複数のユーザの設定内容が混在することになる。
【００２０】
管理装置１は、端末装置５，６を操作する各ユーザによるネットワーク装置２の設定変更を許容する。例えば、管理装置１は、端末装置５を操作するユーザによる、ネットワーク装置２のサーバ３に繋がる通信インタフェース（通信用のポート）の設定変更を許容する。また、例えば管理装置１は、端末装置６を操作するユーザによる、ネットワーク装置２のサーバ４に繋がるポートの設定変更を許容する。管理装置１は、あるユーザが行った設定を他のユーザからは変更できないように制御する。
【００２１】
例えば、管理装置１、ネットワーク装置２、サーバ３，４およびネットワーク７をデータセンタに設けてもよい。端末装置５，６は、インターネットなどを介して、データセンタ内のネットワーク７にアクセスしてもよい。例えば、データセンタに設けられたコンピュータやネットワークのリソースを、複数のユーザに貸し出すというサービスが考えられる。このサービスを利用するユーザは、自身でコンピュータやネットワークなどを用意しなくても、データセンタ内の借りたリソースを用いて所望のシステムを実現し得る。なお、ユーザまたは当該ユーザが操作する端末装置をクライアントということがある。ただし、クライアントは、サーバコンピュータなどの他の装置でもよい。
【００２２】
管理装置１は、記憶部１ａおよび演算部１ｂを有する。記憶部１ａは、ＲＡＭ（Random Access Memory）などの揮発性記憶装置でもよいし、ＨＤＤ（Hard Disk Drive）やフラッシュメモリなどの不揮発性記憶装置でもよい。演算部１ｂは、例えば、プロセッサを含む。プロセッサは、ＣＰＵ（Central Processing Unit）やＤＳＰ（Digital Signal Processor）でもよいし、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）などの特定用途の電子回路でもよい。また、プロセッサは、複数のプロセッサの集合（マルチプロセッサ）でもよい。プロセッサは、例えば、記憶部１ａに記憶されたプログラムを実行するものでもよい。
【００２３】
記憶部１ａは、複数のクライアントの何れかにより更新された設定情報と当該設定情報の世代と更新したクライアントの識別情報とを対応付けて記憶する。クライアントの識別情報は、ユーザの識別情報でもよいし、ユーザが操作する端末装置の識別情報でもよい。
【００２４】
演算部１ｂは、何れかのクライアントにより設定情報が更新されると、更新された設定情報と当該設定情報の世代と更新を実行したクライアントの識別情報とを対応付けて取得し、記憶部１ａに格納する。例えば、演算部１ｂは、更新された設定情報をネットワーク装置２から取得する。より具体的には、設定情報はネットワーク装置２において１つのファイルとして管理されている。演算部１ｂは、その設定情報のファイルをネットワーク装置２から取得する。そして、演算部１ｂは、更新された設定情報と設定情報の世代とクライアントの識別情報との対応関係を示す情報８を生成して記憶部１ａに格納する。
【００２５】
演算部１ｂが、端末装置５，６から設定変更の指示を受信し、その指示に応じてネットワーク装置２の設定を変更してもよい。例えば、演算部１ｂは、端末装置５，６からの設定変更の指示に応じた設定コマンドを生成し、ネットワーク装置２に入力することで、ネットワーク装置２の設定を変更してもよい。その場合、演算部１ｂは、更新後の設定情報をネットワーク装置２から取得する。あるいは、演算部１ｂは、端末装置５，６からの設定変更の指示に応じて、ネットワーク装置２の現在の設定情報を書き換え、ネットワーク装置２に書き換え後の設定情報を入力することで、ネットワーク装置２の設定を変更してもよい。演算部１ｂは、ネットワーク装置２に設定情報を入力することで、その設定情報を取得した時点のネットワーク装置２の設定を一括して復元できる。
【００２６】
端末装置５からの指示で設定変更を行ったなら、更新後の設定情報は、端末装置５または端末装置５を操作するユーザにより更新されたものといえる。端末装置６からの指示で設定変更を行ったなら、更新後の設定情報は、端末装置６または端末装置６を操作するユーザにより更新されたものといえる。ここで、端末装置５または端末装置５を操作するユーザの識別情報を識別情報ＣＬ１とする。端末装置６または端末装置６を操作するユーザの識別情報を識別情報ＣＬ２とする。
【００２７】
例えば、演算部１ｂは、端末装置５からの指示に応じてネットワーク装置２の設定を変更する。すると、更新後の設定情報Ｆ１と設定情報Ｆ１の世代Ｇ１と更新を行ったクライアントの識別情報ＣＬ１とを対応付けて取得し、記憶部１ａに格納する。
【００２８】
続いて、演算部１ｂは、端末装置５からの指示に応じてネットワーク装置２の設定を変更する。すると、更新後の設定情報Ｆ２と設定情報Ｆ２の世代Ｇ２と更新を行ったクライアントの識別情報ＣＬ１とを対応付けて取得し、記憶部１ａに格納する。
【００２９】
続いて、演算部１ｂは、端末装置６からの指示に応じてネットワーク装置２の設定を変更する。すると、更新後の設定情報Ｆ３と設定情報Ｆ３の世代Ｇ３と更新を行ったクライアントの識別情報ＣＬ２とを対応付けて取得し、記憶部１ａに格納する。
【００３０】
更に、演算部１ｂは、端末装置５からの指示に応じてネットワーク装置２の設定を変更する。すると、更新後の設定情報Ｆ４と設定情報Ｆ４の世代Ｇ４と更新を行ったクライアントの識別情報ＣＬ１とを対応付けて取得し、記憶部１ａに格納する。例えば、情報８には、このようにして取得された対応関係が順次登録される。
【００３１】
世代として、設定情報の新旧を判別できる情報を用いることが考えられる。例えば、世代はタイムスタンプでもよいし、バージョンを示す数値や文字列などでもよい。設定情報の新旧を判別できれば、設定情報の識別子（例えば、ファイル名）でもよい。上記の例では、世代Ｇ１が最も古く、世代Ｇ４が最も新しい。世代Ｇ２は、世代Ｇ１よりも新しく、世代Ｇ３よりも古い。世代Ｇ３は、世代Ｇ２よりも新しく、世代Ｇ４よりも古い。
【００３２】
また、演算部１ｂは、何れの端末装置から設定変更の指示を受信したかに応じてクライアントの識別情報を判別してもよい。または、演算部１ｂは、クライアントの識別情報が設定変更の指示に含まれていれば、それを取得してもよい。
【００３３】
演算部１ｂは、何れかのクライアントにより何れかの世代への復元が指定されると、取得した情報（記憶部１ａに記憶された情報）を参照して、指定された世代よりも新しい世代の設定情報における他のクライアントによる更新内容を検索する。
【００３４】
例えば、演算部１ｂは、端末装置５により世代Ｇ１への復元が指定される。演算部１ｂは、世代Ｇ１とともに、クライアントの識別情報ＣＬ１の指定を受け付けてもよい。例えば、識別情報ＣＬ１に対応するユーザが過去の世代Ｇ１の設定を復元したいこともある。その場合、当該ユーザは、端末装置５を操作して、ネットワーク装置２の設定を復元する指示を管理装置１に送信できる。
【００３５】
すると、演算部１ｂは、指定された世代Ｇ１よりも新しい（世代Ｇ１よりも後の）世代Ｇ２，Ｇ３，Ｇ４の設定情報Ｆ２，Ｆ３，Ｆ４における他のクライアント（識別情報ＣＬ１のクライアント以外のクライアント）による更新内容を検索する。上記の例でいえば、設定情報Ｆ３は、識別情報ＣＬ２のクライアントの設定変更によるものである。よって、演算部１ｂは、設定情報Ｆ３での更新内容を取得する。例えば、演算部１ｂは、設定情報Ｆ２，Ｆ３を比較し、設定情報Ｆ２に対する設定情報Ｆ３の差分を検出することで、識別情報ＣＬ２のクライアントによる世代Ｇ３における更新内容を取得できる。更新内容としては、設定コマンドの追加、更新、削除が考えられる。
【００３６】
演算部１ｂは、指定された世代に対応する第１の設定情報に、検索した更新内容を反映させた第２の設定情報を生成し、第２の設定情報を用いてネットワーク装置２の設定を行う。このとき、演算部１ｂは、世代の指定元のクライアントによる更新内容を第２の設定情報に反映させない。
【００３７】
例えば、演算部１ｂは、指定された世代Ｇ１に対応する設定情報Ｆ１に、識別情報ＣＬ２のクライアントによる更新内容を反映させ、識別情報ＣＬ１のクライアントによる更新内容を反映させずに、設定情報Ｆ１ａを生成する。具体的には、上記検索により、識別情報ＣＬ２のクライアントにより追加された設定コマンドがあれば、その設定コマンドを設定情報Ｆ１に追加する。更新された設定コマンドがあれば、設定情報Ｆ１に含まれるその設定コマンドを同様に更新する。削除された設定コマンドがあれば、その設定コマンドを設定情報Ｆ１から削除する。識別情報ＣＬ２のクライアントによる複数の更新内容があれば、古い世代の更新内容から順番に、設定情報Ｆ１に反映させる。
【００３８】
そして、演算部１ｂは、生成した設定情報Ｆ１ａを用いてネットワーク装置２の設定を行う。例えば、演算部１ｂは、設定情報Ｆ１ａをネットワーク装置２に入力し、設定情報Ｆ１ａに含まれる設定コマンドをネットワーク装置２に実行させることで、ネットワーク装置２の設定を行える。
【００３９】
管理装置１によれば、何れかのクライアントにより何れかの世代への復元が指定されると、演算部１ｂにより、記憶部１ａが参照されて、指定された世代よりも新しい世代の設定情報における他のクライアントによる更新内容が検索される。演算部１ｂにより、指定された世代に対応する第１の設定情報に当該更新内容を反映させた第２の設定情報が生成される。演算部１ｂにより、第２の設定情報を用いてネットワーク装置２の設定が行われる。これにより、あるクライアントによる設定を復元する際に、他のクライアントによる設定を維持できる。具体的には次の通りである。
【００４０】
例えば、識別情報ＣＬ１のクライアントからの要求により、ネットワーク装置２の過去の世代Ｇ１の設定を復元する際に、設定情報Ｆ１をネットワーク装置２に入力して、世代Ｇ１の設定を復元することも考えられる。ところが、上記の例では、設定情報Ｆ１の世代Ｇ１よりも新しい世代Ｇ３において、識別情報ＣＬ２のクライアントによりネットワーク装置２の設定変更が行われている。このため、ネットワーク装置２に設定情報Ｆ１を入力して設定を戻すと、世代Ｇ３に対応する設定変更が無かったことになってしまう。すなわち、識別情報ＣＬ２のクライアントによる世代Ｇ３の設定内容がネットワーク装置２から消されてしまう。ネットワーク装置２の設定が端末装置６を操作するユーザの意図する動作と異なると、当該ユーザによるサーバ４の利用に支障を来すおそれもある。
【００４１】
一方、世代Ｇ３の設定情報Ｆ３をネットワーク装置２に入力することで、ネットワーク装置２の設定を復元することも考えられる。識別情報ＣＬ２のクライアントによる設定を維持できるからである。しかし、設定情報Ｆ３には識別情報ＣＬ１のクライアントによる世代Ｇ２の設定変更が反映されている。このため、設定情報Ｆ３をネットワーク装置２に入力しても、要求された設定（世代Ｇ１の設定）を復元できない。
【００４２】
このように、記憶部１ａにバックアップとして取得された設定情報Ｆ１，Ｆ２，Ｆ３，Ｆ４の何れをネットワーク装置２に入力しても、識別情報ＣＬ１のクライアントによる設定に限定して世代Ｇ１の設定に戻すのは困難である。
【００４３】
そこで、管理装置１では、上記のように設定情報Ｆ１ａを生成する。設定情報Ｆ１ａは、識別情報ＣＬ１のクライアントによる世代Ｇ１に対応する設定を含み、識別情報ＣＬ２のクライアントによる世代Ｇ３に対応する設定も含む。よって、設定情報Ｆ１ａをネットワーク装置２に入力して設定すれば、識別情報ＣＬ１のクライアントにとっては世代Ｇ１の時点の設定が復元されたことになり、識別情報ＣＬ２のクライアントにとっては世代Ｇ３の時点の設定が維持されたことになる。このようにして、管理装置１は、あるクライアントによる設定を復元する際に、他のクライアントによる設定を維持できる。
【００４４】
［第２の実施の形態］
図２は、第２の実施の形態の情報処理システムを示す図である。第２の実施の形態の情報処理システムは、管理サーバ１００、Ｌ２スイッチ２００、サーバ３００，３００ａ，３００ｂ、端末装置４００およびルータ５００を含む。管理サーバ１００、Ｌ２スイッチ２００、サーバ３００，３００ａ，３００ｂ、端末装置４００およびルータ５００は、データセンタ内に設けられ、ネットワーク１０に接続されている。
【００４５】
ネットワーク１０は、データセンタ内のＬＡＮ（Local Area Network）である。サーバ３００，３００ａ，３００ｂはＬ２スイッチ２００に接続されている。ルータ５００は、ネットワーク２０にも接続されている。ネットワーク２０は、ＷＡＮ（Wide Area Network）やインターネットなどの広域ネットワークである。
【００４６】
ここで、この情報処理システムを運用する事業者は、データセンタ内のサーバコンピュータやネットワーク装置のリソースを複数のユーザに貸し出す。借主であるユーザを、テナントと呼ぶことがある。テナントは、例えば、企業や企業内部署などの組織であってもよいし、個人であってもよい。各テナントは、自身が保有する端末装置を用いて、ネットワーク２０を介してネットワーク１０にアクセスし、データセンタ内のサーバコンピュータやネットワーク装置を利用し得る。このようなコンピュータの利用形態を、クラウドコンピューティングと呼ぶこともある。
【００４７】
また、第２の実施の形態では、ネットワーク装置として、設定ファイルの変更をテナント単位に管理する機能をもたないものを想定する。ここで、設定ファイルは、ネットワーク装置に対する設定内容を示すコマンド（設定コマンド）を含む情報である。設定ファイルは、コンフィグ情報と呼ばれることもある。
【００４８】
ネットワーク２０には、端末装置２１，２２が接続されている。端末装置２１は、テナントＡにより利用されるクライアントコンピュータである。端末装置２２は、テナントＢにより利用されるクライアントコンピュータである。テナントまたは当該テナントが利用する端末装置を、クライアントということができる。テナントＡ，Ｂは、Ｌ２スイッチ２００およびサーバ３００，３００ａ，３００ｂのリソースの割り当てを受けており、各装置のリソースの少なくとも一部を利用することができる。
【００４９】
例えば、Ｌ２スイッチ２００のリソースとしては、Ｌ２スイッチ２００が有する通信用のインタフェース（通信用のポート）が考えられる。また、例えば、サーバ３００，３００ａ，３００ｂのリソースとしては、サーバ３００，３００ａ，３００ｂが有するプロセッサやＲＡＭが考えられる。あるいは、サーバ３００，３００ａ，３００ｂのリソースを用いて複数の仮想マシンを動作させ、テナントＡ，Ｂへのリソースの割り当てを、仮想マシン単位に行うこともある。テナントＡ，Ｂは、自身でサーバコンピュータやネットワークを用意しなくても、借りたリソースを用いて所望のシステムを実現できる。
【００５０】
管理サーバ１００は、テナントＡ，ＢによるＬ２スイッチ２００およびサーバ３００，３００ａ，３００ｂに対する設定変更を管理するサーバコンピュータである。管理サーバ１００は、テナントＡ，Ｂや情報処理システムの管理者に運用管理用のＧＵＩ（Graphical User Interface）を提供する。例えば、管理サーバ１００は、Ｗｅｂサーバ機能を有し、端末装置２１，２２，４００で動作するＷｅｂブラウザに対して、当該ＧＵＩを提供することが考えられる。
【００５１】
Ｌ２スイッチ２００は、テナントＡ，Ｂによって共用されるネットワーク装置である。Ｌ２スイッチ２００は複数のポートを含む。複数のポートの一部はテナントＡに割り当てられ、他の一部はテナントＢに割り当てられる。テナントＡ，Ｂは、端末装置２１，２２を用いて管理サーバ１００にログインし、管理サーバ１００が提供するＧＵＩを利用できる。例えば、テナントＡ，Ｂは、そのＧＵＩを操作し、実現したいネットワーク環境に応じて、Ｌ２スイッチ２００の設定を変更できる。
【００５２】
サーバ３００，３００ａ，３００ｂは、テナントＡ，Ｂによって利用されるサーバコンピュータである。例えば、テナントＡ，Ｂは、サーバ３００，３００ａ，３００ｂ（あるいは、サーバ３００，３００ａ，３００ｂ上で動作する仮想マシン）に所定のアプリケーションをインストールして、利用することができる。サーバ３００，３００ａ，３００ｂのリソースの割り当て管理やアプリケーションのインストールの管理などは、管理サーバ１００により行われてもよい。
【００５３】
端末装置４００は、情報処理システムを管理する管理者により利用されるクライアントコンピュータである。管理者は、端末装置４００を用いて管理サーバ１００にログインし、管理サーバ１００が提供するＧＵＩを利用できる。例えば、管理者は、そのＧＵＩを操作し、Ｌ２スイッチ２００に対する所定の設定を行える。
【００５４】
ルータ５００は、ネットワーク１０，２０を接続するネットワーク装置である。ここで、管理サーバ１００は、第１の実施の形態における管理装置１の一例である。また、Ｌ２スイッチ２００は、第１の実施の形態におけるネットワーク装置２の一例である。
【００５５】
図３は、管理サーバのハードウェア例を示す図である。管理サーバ１００は、プロセッサ１０１、ＲＡＭ１０２、ＨＤＤ１０３、画像信号処理部１０４、入力信号処理部１０５、読み取り装置１０６、通信インタフェース１０７を有する。各ユニットが管理サーバ１００のバスに接続されている。
【００５６】
プロセッサ１０１は、管理サーバ１００全体を制御する。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、例えばＣＰＵ、ＤＳＰ、ＡＳＩＣまたはＦＰＧＡなどである。プロセッサ１０１は、ＣＰＵ、ＤＳＰ、ＡＳＩＣ、ＦＰＧＡなどのうちの２以上の要素の組み合わせであってもよい。
【００５７】
ＲＡＭ１０２は、管理サーバ１００の主記憶装置である。ＲＡＭ１０２は、プロセッサ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、ＲＡＭ１０２は、プロセッサ１０１による処理に用いる各種データを記憶する。
【００５８】
ＨＤＤ１０３は、管理サーバ１００の補助記憶装置である。ＨＤＤ１０３は、内蔵した磁気ディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ＨＤＤ１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。管理サーバ１００は、フラッシュメモリやＳＳＤ（Solid State Drive）などの他の種類の補助記憶装置を備えてもよく、複数の補助記憶装置を備えてもよい。
【００５９】
画像信号処理部１０４は、プロセッサ１０１からの命令に従って、管理サーバ１００に接続されたディスプレイ１１に画像を出力する。ディスプレイ１１としては、ＣＲＴ（Cathode Ray Tube）ディスプレイ、液晶ディスプレイ（ＬＣＤ：Liquid Crystal Display）、有機ＥＬ（Electro-Luminescence）ディスプレイなど各種のディスプレイを用いることができる。
【００６０】
入力信号処理部１０５は、管理サーバ１００に接続された入力デバイス１２から入力信号を取得し、プロセッサ１０１に出力する。入力デバイス１２としては、マウスやタッチパネルなどのポインティングデバイスやキーボードなどの各種の入力デバイスを用いることができる。管理サーバ１００には、複数の種類の入力デバイスが接続されてもよい。
【００６１】
読み取り装置１０６は、記録媒体１３に記録されたプログラムやデータを読み取る装置である。記録媒体１３として、例えば、フレキシブルディスク（ＦＤ：Flexible Disk）やＨＤＤなどの磁気ディスク、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）などの光ディスク、光磁気ディスク（ＭＯ：Magneto-Optical disk）を使用できる。また、記録媒体１３として、例えば、フラッシュメモリカードなどの不揮発性の半導体メモリを使用することもできる。読み取り装置１０６は、例えば、プロセッサ１０１からの命令に従って、記録媒体１３から読み取ったプログラムやデータをＲＡＭ１０２またはＨＤＤ１０３に格納する。
【００６２】
通信インタフェース１０７は、ネットワーク１０を介して他の装置（端末装置２１，２２，４００やＬ２スイッチ２００など）と通信を行う。通信インタフェース１０７は、有線通信インタフェースでもよいし、無線通信インタフェースでもよい。
【００６３】
図４は、管理サーバの機能例を示す図である。管理サーバ１００は、記憶部１１０、要求受信部１２０、設定処理部１３０および復元部１４０を有する。記憶部１１０は、ＨＤＤ１０３に確保された記憶領域を用いて実現できる。要求受信部１２０、設定処理部１３０および復元部１４０は、プロセッサ１０１によって実行されるプログラムのモジュールであってもよい。
【００６４】
記憶部１１０は、各部の処理に用いられる情報を記憶する。記憶部１１０に記憶される情報は、設定ファイル群、管理テーブルの情報および制約テーブルの情報を含む。
記憶領域１１１に記憶された設定ファイル群は、Ｌ２スイッチ２００の設定内容を示す設定ファイルの集合である。記憶領域１１２に記憶された管理テーブルは、設定ファイル群の世代管理に用いられる情報である。記憶領域１１３に記憶された制約テーブルは、Ｌ２スイッチ２００の設定に対する制約を示す情報である。
【００６５】
ここで、記憶部１１０は、管理サーバ１００による設定対象のネットワーク装置毎に設定ファイル群、管理テーブルおよび制約テーブルの情報を記憶してもよい。例えば、Ｌ２スイッチ２００以外のネットワーク装置も設定対象とするなら、記憶部１１０は、そのネットワーク装置に関する設定ファイル群、管理テーブルおよび制約テーブルの情報も記憶する。
【００６６】
要求受信部１２０は、Ｌ２スイッチ２００に対して設定を行う要求（設定要求）やＬ２スイッチ２００の設定を復元する要求（復元要求）を、端末装置２１，２２，４００から受信する。要求受信部１２０は、Ｌ２スイッチ２００の設定要求を受信すると、その設定要求に応じたＬ２スイッチ２００の設定変更を設定処理部１３０に指示する。設定要求は、要求元のテナントの識別情報（テナントＩＤ（IDentifier））および設定変更の内容を含む。ここで、テナントＩＤは、テナント自体を識別するＩＤでもよいし、そのテナントが利用する端末装置の識別情報でもよい。
【００６７】
要求受信部１２０は、Ｌ２スイッチ２００に対する復元要求を受信すると、復元処理の実行を復元部１４０に指示する。復元要求は、要求元のテナントＩＤと復元先の世代とを含む。
【００６８】
設定処理部１３０は、設定要求に応じて、Ｌ２スイッチ２００の設定を変更する。具体的には、設定処理部１３０は、指定された設定変更の内容に応じた設定コマンドを生成し、Ｌ２スイッチ２００に入力する。例えば、設定処理部１３０は、Ｔｅｌｎｅｔ（Telecommunication network）やＳＳＨ（Secure SHell）などのプロトコルを用いて設定コマンドをＬ２スイッチ２００に入力してもよい。すると、その設定コマンドがＬ２スイッチ２００により実行され、Ｌ２スイッチ２００の設定が変更される。
【００６９】
設定処理部１３０は、Ｌ２スイッチ２００の設定変更を行うと、バックアップとして変更後の設定ファイルをＬ２スイッチ２００から取得する。設定処理部１３０は、Ｌ２スイッチ２００の設定変更を行うたびに設定ファイルを取得してもよいし、設定変更が複数回行われるたびに設定ファイルを取得してもよい。設定処理部１３０は、例えば、ＦＴＰ（File Transfer Protocol）、ＴＦＴＰ（Trivial FTP）およびＳＣＰ（Secure CoPy）などのプロトコルを用いて設定ファイルをＬ２スイッチ２００から取得してもよい。
【００７０】
設定処理部１３０は、取得した設定ファイルを記憶部１１０に格納する（設定ファイル群に追加する）。設定処理部１３０は、新たに格納した設定ファイルのファイル名と世代と設定要求元のテナントＩＤとの対応関係を管理テーブルに登録する。
【００７１】
復元部１４０は、復元要求に応じて、Ｌ２スイッチ２００の設定を指定された世代の設定に復元する。復元をロールバックということもできる。具体的には、復元部１４０は、復元要求で指定された世代よりも新しい世代の設定ファイルにおける、復元要求元以外のテナントまたは管理者による更新内容を検索する。復元部１４０は、指定された世代に対応する設定ファイルに当該更新内容を反映させた設定復元用の設定ファイルを生成する。復元部１４０は、生成した設定ファイルをＬ２スイッチ２００に入力することで、Ｌ２スイッチ２００の設定を行う。復元部１４０は、例えばＦＴＰ、ＴＦＴＰおよびＳＣＰなどのプロトコルを用いて、生成した設定ファイルをＬ２スイッチ２００に入力してもよい。
【００７２】
このとき、復元部１４０は、制約テーブルを参照して、新たに生成された設定ファイルが、Ｌ２スイッチ２００に対する設定の制約を満たしているかを検査する。満たしていれば、当該設定ファイルをＬ２スイッチ２００に入力する。満たしていなければ、復元要求を行ったテナントに、設定エラーを通知する。
【００７３】
ここで、Ｌ２スイッチ２００は、設定ファイルが入力されると、設定ファイルに含まれる設定コマンドを実行し、自身が備えるＲＡＭに保持された設定内容を一括して更新する。また、例えば、Ｌ２スイッチ２００は、自身が備える不揮発性メモリ（ＮＶＲＡＭ：Non Volatile RAM）に設定ファイルを書き込み、設定ファイルのＲＡＭへのリロード時や再電源オン時のコンフィギュレーションに利用する。設定処理部１３０は、これらの処理を行うための所定のコマンドを設定ファイルとともにＬ２スイッチ２００に入力してもよい。過去の設定ファイルを記憶部１１０に保存しておけば、当該設定ファイルを用いてＬ２スイッチ２００の過去の設定を復元できる。このため、設定ファイル群に含まれる設定ファイルをバックアップファイルということができる。
【００７４】
図５は、設定ファイル群の例を示す図である。設定ファイル群１１１ａは、Ｌ２スイッチ２００に関する設定ファイルｆ１０，ｆ１１，ｆ１２，ｆ１３，ｆ１４，ｆ１５を含む。設定ファイルｆ１０，ｆ１１，ｆ１２，ｆ１３，ｆ１４，ｆ１５の順に新しい世代となる。設定ファイルｆ１５は、この時点で最新の世代の設定ファイルである。設定ファイルｆ１０よりも古い世代（前の世代）の設定ファイルについては図示を省略している。
【００７５】
ここで、設定ファイルｆ１０のファイル名は“ＣｏｎｆｉｇＫ”である。“Ｃｏｎｆｉｇ”の文字列の後の“Ｋ”は、世代に対応している。例えば、設定ファイルｆ１０は、設定ｃ０を含む。ここで、設定ｃ０は、１以上の設定コマンドを示す。設定ｃ１は、設定ファイルｆ１０に対する１以上の設定コマンドの追加、更新、削除といった差分の設定内容を示す。以降の設定ｃ２，ｃ３，ｃ４，ｃ５も設定ｃ１と同様に直前の設定ファイルからの差分の設定内容を示す。
【００７６】
設定ファイルｆ１１のファイル名は“ＣｏｎｆｉｇＫ＋１”である。“Ｋ＋１”の文字列は、“ＣｏｎｆｉｇＫ”の世代Ｋよりも１つ後の世代の設定ファイルであることを示す。以下に示す“Ｋ＋２”（世代Ｋよりも２つ後の世代）、“Ｋ＋３”（世代Ｋよりも３つ後の世代）なども同様である。例えば、設定ファイルｆ１１は、設定ファイルｆ１０に対して設定ｃ１の差分がある。
【００７７】
設定ファイルｆ１２のファイル名は“ＣｏｎｆｉｇＫ＋２”である。設定ファイルｆ１２は、設定ファイルｆ１１に対して設定ｃ２の差分がある。設定ファイルｆ１３のファイル名は“ＣｏｎｆｉｇＫ＋３”である。設定ファイルｆ１３は、設定ファイルｆ１２に対して設定ｃ３の差分がある。設定ファイルｆ１４のファイル名は“ＣｏｎｆｉｇＫ＋４”である。設定ファイルｆ１４は、設定ファイルｆ１３に対して設定ｃ４の差分がある。設定ファイルｆ１５のファイル名は“ＣｏｎｆｉｇＫ＋５”である。設定ファイルｆ１５は、設定ファイルｆ１４に対して設定ｃ５の差分がある。
【００７８】
図６は、設定ファイルの例を示す図である。図６では、設定ファイルｆ１０を例示している。図６で示した設定ファイルｆ１０の設定内容を、図５で例示した設定ｃ０と考えてもよい。以下、設定ファイルｆ１０の設定内容を、図６に示した行番号で示す。例えば、テナントＡ，Ｂおよび管理者によるＬ２スイッチ２００の設定変更に応じて、Ｌ２スイッチ２００の設定ファイルは次のように変更される。
【００７９】
２０時に、１３行目〜１７行目までの設定がテナントＡにより削除される。この設定は、テナントＡに割り当てられた所定のポートに対するＶＬＡＮ（Virtual LAN）インタフェースの削除である。この設定は、図５で例示した設定ｃ１（設定ファイルｆ１０に対する設定ファイルｆ１１の差分）に相当する。設定ファイルｆ１１は、設定ファイルｆ１０から当該削除を行った後に相当する。
【００８０】
２１時に、テナントＢにより３２行目〜３４行目に設定が追加される。この設定は、テナントＢに割り当てられた所定のポートに対するＶＬＡＮインタフェースの追加である。この設定は、図５で例示した設定ｃ２（設定ファイルｆ１１に対する設定ファイルｆ１２の差分）に相当する。設定ファイルｆ１２は、設定ファイルｆ１１に当該追加を行った後に相当する。
【００８１】
２２時に、テナントＡにより２０行目の設定が更新される。この設定は、テナントＡのＶＬＡＮインタフェースにおけるＩＰ（Internet Protocol）アドレスの更新である。この設定は、図５で例示した設定ｃ３（設定ファイルｆ１２に対する設定ファイルｆ１３の差分）に相当する。設定ファイルｆ１３は、設定ファイルｆ１２に当該更新を行った後に相当する。
【００８２】
２３時に、管理者により４行目の設定が更新される。この設定は、Ｌ２スイッチ２００に対して設定されていたパスワードの更新である。この設定は、図５で例示した設定ｃ４（設定ファイルｆ１３に対する設定ファイルｆ１４の差分）に相当する。設定ファイルｆ１４は、設定ファイルｆ１３に当該更新を行った後に相当する。
【００８３】
２４時に、テナントＡにより２３行目〜２５行目の設定が追加される。この設定は、テナントＡに割り当てられた所定のポートに対するＶＬＡＮインタフェースの追加である。この設定は、図５で例示した設定ｃ５（設定ファイルｆ１４に対する設定ファイルｆ１５の差分）に相当する。設定ファイルｆ１５は、設定ファイルｆ１４に当該追加を行った後に相当する。
【００８４】
図７は、設定ファイルの例（続き）を示す図である。図７では、設定ファイルｆ１５を例示している。図６で説明したように、設定ファイルｆ１５は、設定ファイルｆ１０に対して設定ｃ１，ｃ２，ｃ３，ｃ４，ｃ５が行われた後の設定ファイルである。
【００８５】
図８は、管理テーブルの例を示す図である。管理テーブル１１２ａは、世代、設定ファイル名およびテナントＩＤの項目を含む。世代の項目には、設定ファイルの世代が登録される。ここでは、一例として、数値を世代として用いる。世代の数値が小さい程古く、世代の数値が大きい程新しい。ただし、タイムスタンプなど、新旧を区別できる他の情報を世代として用いてもよい。設定ファイル名の項目には、設定ファイルのファイル名が登録される。テナントＩＤの項目には、テナントＩＤが登録される。ただし、テナントＩＤの項目には、デフォルトの設定（情報処理システムの運用開始直後の初期設定）であることを示す“ｄｅｆａｕｌｔ”や、管理者による設定変更が行われたことを示す“Ｃｏｍｍａｎｄ”といった情報が登録されることもある。
【００８６】
例えば、管理テーブル１１２ａには、世代が“０”、設定ファイル名が“Ｃｏｎｆｉｇ０”、テナントＩＤが“ｄｅｆａｕｌｔ”という情報が登録されている。これは、ファイル名“Ｃｏｎｆｉｇ０”で示される設定ファイルが、デフォルトの設定であることを示す。デフォルトの設定を記憶しておくことで、次の世代の変更部分を抽出可能となる。
【００８７】
また、管理テーブル１１２ａには、世代が“Ｋ”、設定ファイル名が“ＣｏｎｆｉｇＫ”、テナントＩＤが“ＴｅｎａｎｔＡ”（テナントＡのテナントＩＤ）という情報が登録されている。これは、世代Ｋの設定ファイルｆ１０のファイル名が“ＣｏｎｆｉｇＫ”であり、設定ファイルｆ１０が、テナントＡによる設定変更に伴って取得されたものであることを示す。
【００８８】
また、管理テーブル１１２ａには、世代が“Ｋ＋２”、設定ファイル名が“ＣｏｎｆｉｇＫ＋２”、テナントＩＤが“ＴｅｎａｎｔＢ”（テナントＢのテナントＩＤ）という情報が登録されている。これは、世代Ｋ＋２の設定ファイルｆ１２のファイル名が“ＣｏｎｆｉｇＫ＋２”であり、設定ファイルｆ１２が、テナントＢによる設定変更に伴って取得されたものであることを示す。
【００８９】
また、管理テーブル１１２ａには、世代が“Ｋ＋４”、設定ファイル名が“ＣｏｎｆｉｇＫ＋４”、テナントＩＤが“Ｃｏｍｍａｎｄ”という情報が登録されている。これは、世代Ｋ＋４の設定ファイルｆ１４のファイル名が“ＣｏｎｆｉｇＫ＋４”であり、設定ファイルｆ１４が、管理者による設定変更に伴って取得されたものであることを示す。管理テーブル１１２ａには、他の設定ファイルに関する情報も同様に登録される。
【００９０】
図９は、制約テーブルの例を示す図である。制約テーブル１１３ａは、設定項目および内容の項目を含む。設定項目の項目には、制約の存在する設定項目の名称が登録される。内容の項目には制約の内容が登録される。
【００９１】
例えば、制約テーブル１１３ａには、設定項目が“ＳＮＭＰ（Simple Network Management Protocol）エージェント”、内容が“マネージャ指定の上限４”という情報が登録されている。これは、Ｌ２スイッチ２００で動作するＳＮＭＰエージェントに対して、ＳＮＭＰトラップなどの送信先となるＳＮＭＰマネージャを指定する際に、指定可能なＳＮＭＰマネージャの数の上限が４であることを示す。
【００９２】
制約テーブル１１３ａには、これ以外にも、ネットワーク装置に応じた種々の制約を登録できる。例えば、テナントに利用させるＩＰアドレスやＶＬＡＮインタフェースの数などを制限する場合には、テナント毎のＩＰアドレスやＶＬＡＮインタフェースの上限数を制約テーブル１１３ａに登録することも考えられる。
【００９３】
図１０は、ＧＵＩの例を示す図である。ＧＵＩ３０は、管理サーバ１００により端末装置２１，２２，４００に提供される。ただし、図１０では、テナントＡがＬ２スイッチ２００の設定変更を行う場合を例示している。例えば、テナントＡは、端末装置２１を操作して、管理サーバ１００にログインする。テナントＡは、端末装置２１のディスプレイに表示された所定のメニューからリソースの設定変更を選択する。すると、端末装置２１のディスプレイに、ＧＵＩ３０が表示される。ＧＵＩ３０は、表示フォーム３１、画像領域３２、設定フォーム３３，３４，３５およびボタン３６，３７，３８を含む。
【００９４】
表示フォーム３１は、ログイン中のテナントＡのテナントＩＤを表示するフォームである。画像領域３２は、テナントＡによる設定変更が可能な装置や装置内の部品を表示する領域である。例えば、画像領域３２には、Ｌ２スイッチ２００やＬ２スイッチ２００内のテナントＡに割り当てられたポートを示す画像が表示される。テナントＡは、端末装置２１に接続されたマウスなどのポインティングデバイスを用いてポインタＰ１を操作し、設定の追加、更新、削除を行いたい画像を選択できる。例えば、テナントＡにより設定変更が可能なＬ２スイッチ２００の所定のポート（ポート名“ｅｔｈ０”）を選択すると、設定フォーム３３，３４，３５に当該ポートの設定内容が表示される。
【００９５】
設定フォーム３３，３４，３５は、選択されたポートに関する設定内容を表示し、また、変更後の設定を入力するためのフォームである。例えば、画像領域３２で選択されたポートに対し、次の情報が表示されている。設定フォーム３３には、当該ポートに対して設定されたＶＬＡＮインタフェースの識別情報“ｅｔｈ０．２０”が表示されている。設定フォーム３４には、そのＶＬＡＮインタフェースのＩＰアドレスが表示されている。設定フォーム３５には、そのＩＰアドレスのサブネットマスクが表示されている。複数のＶＬＡＮインタフェースが設定されていれば、設定フォーム３３のプルダウンボタンを選択して、複数のＶＬＡＮインタフェースの識別情報を表示させ、何れかの識別情報を選択することで、設定フォーム３３，３４，３５の表示を変えることもできる。
【００９６】
ボタン３６，３７，３８は、端末装置２１から管理サーバ１００へ設定要求を送信させるためのボタンである。具体的には、ボタン３６は、選択したポートに対する設定を追加するためのボタンである。例えば、テナントＡは、設定フォーム３３，３４，３５に新規のＶＬＡＮインタフェースに関する情報などを入力し、ポインタＰ１によりボタン３６を押下操作することで、新規の設定の追加を管理サーバ１００に要求できる。
【００９７】
ボタン３７は、選択したポートの設定を更新するためのボタンである。例えば、テナントＡは、設定フォーム３３，３４，３５に表示された情報を更新し、ポインタＰ１によりボタン３７を押下操作することで、既存の設定の更新を管理サーバ１００に要求できる。
【００９８】
ボタン３８は、選択したポートに関する設定を削除するためのボタンである。例えば、テナントＡは、設定フォーム３３，３４，３５に何れかのＶＬＡＮインタフェースの情報を表示させた状態で、ポインタＰ１によりボタン３８を押下操作することで、そのＶＬＡＮインタフェースの設定の削除を管理サーバ１００に要求できる。
【００９９】
このように、管理サーバ１００は、テナントＡがログインした場合は、テナントＡにより設定可能な項目のみを含むＧＵＩ３０をテナントＡに提供することで、他のテナントの設定がテナントＡにより変更されることを抑制する。管理サーバ１００は、テナント毎にどのような設定を許容するかという情報を予め保持している。これにより、例えば、あるテナントが設定した内容を他のテナントが削除したり変更したりするような操作（例えば、テナントＡがＶＬＡＮ番号“１５”をあるポートに追加した後、テナントＢがそのＶＬＡＮ番号“１５”を削除する操作）は、制限される。
【０１００】
図１１は、設定変更処理の例を示すフローチャートである。以下、図１１に示す処理をステップ番号に沿って説明する。
（Ｓ１１）要求受信部１２０は、Ｌ２スイッチ２００に対する設定要求を何れかの端末装置から受信する。設定要求は、要求元のテナントＩＤと設定変更の内容とを含む。要求受信部１２０は、Ｌ２スイッチ２００の設定変更を設定処理部１３０に指示する。
【０１０１】
（Ｓ１２）設定処理部１３０は、変更内容に応じた設定コマンドを生成し、Ｌ２スイッチ２００に入力する。例えば、設定処理部１３０は、Ｔｅｌｎｅｔなどのプロトコルを用いて、Ｌ２スイッチ２００に設定コマンドを入力し、実行させることができる。Ｌ２スイッチ２００は、設定コマンドを実行し、自身が保持する設定内容を変更する。
【０１０２】
（Ｓ１３）設定処理部１３０は、設定変更後の設定ファイルをＬ２スイッチ２００から取得する。例えば、設定処理部１３０は、ＴＦＴＰなどのプロトコルを用いて、Ｌ２スイッチ２００から設定ファイルを取得できる。設定処理部１３０は、取得した設定ファイルを記憶部１１０に格納する。このとき、設定処理部１３０は、新たに格納した設定ファイルにファイル名と世代とを付与する。ここでは、世代として、数値（０、１、２、・・・）を付与するものとする。また、設定処理部１３０は、ファイル名として、世代に対応する名称を付与してもよい。
【０１０３】
（Ｓ１４）設定処理部１３０は、新たに取得した設定ファイルのファイル名と世代と設定要求元のテナントＩＤとの対応関係を管理テーブル１１２ａに登録する。
図１２は、復元処理の例を示すフローチャートである。以下、図１２に示す処理をステップ番号に沿って説明する。
【０１０４】
（Ｓ２１）要求受信部１２０は、Ｌ２スイッチ２００に対する復元要求を何れかの端末装置から受信する。復元要求は、要求元のテナントＩＤと復元先の世代ａ（復元先として指定された世代）とを含む。要求受信部１２０は、Ｌ２スイッチ２００の復元処理の実行を復元部１４０に指示する。
【０１０５】
（Ｓ２２）復元部１４０は、復元先の世代ａ（ａは０以上の整数）を変数Ｇ（Ｇは０以上の整数）に代入する。
（Ｓ２３）復元部１４０は、変数ＳＵＭ（ＳＵＭは０以上の整数）に０を代入する。
【０１０６】
（Ｓ２４）復元部１４０は、管理テーブル１１２ａを参照して、世代Ｇに対するテナントＩＤを取得する。
（Ｓ２５）復元部１４０は、ステップＳ２４で取得したテナントＩＤと復元要求の要求元のテナントＩＤとが一致するか否かを判定する。一致する場合、処理をステップＳ２６に進める。一致しない場合、処理をステップＳ２７に進める。
【０１０７】
（Ｓ２６）復元部１４０は、ＳＵＭ＋１を変数ＳＵＭに代入する。ここで、ＳＵＭ＋１の演算は、変数ＳＵＭの代入値に１を加算する演算である。
（Ｓ２７）復元部１４０は、Ｇ＋１を変数Ｇに代入する。ここで、Ｇ＋１の演算は、変数Ｇの代入値に１を加算する演算である。ただし、世代としてタイムスタンプなどの他の情報を用いるなら、Ｇ＋１の演算を、１世代新しい世代を取得する演算と考えてもよい。
【０１０８】
（Ｓ２８）復元部１４０は、変数Ｇの代入値がａ＋ｎ（ｎは１以上の整数）以下であるか否かを判定する。変数Ｇの代入値がａ＋ｎ以下であれば、処理をステップＳ２４に進める。変数Ｇの代入値がａ＋ｎよりも大きければ、処理をステップＳ２９に進める。ここで、ｎは、復元先として指定された世代ａから管理テーブル１１２ａに登録された最新の世代に至るまでの世代数（設定ファイルの数）である。例えば、ａ＝Ｋであり、最新の世代が世代Ｋ＋５であれば、ｎ＝５である。すなわち、世代ａ＋ｎは、管理テーブル１１２ａに登録された最新の世代を表している。ステップＳ２８では、変数Ｇが最新の世代ａ＋ｎ以前であるか否かを判定しているともいえる。
【０１０９】
（Ｓ２９）復元部１４０は、変数ＳＵＭの代入値がｎ／２以上であるか否かを判定する。変数ＳＵＭの代入値がｎ／２以上である場合、処理をステップＳ３０に進める。変数ＳＵＭの代入値がｎ／２よりも小さい場合、処理をステップＳ３３に進める。ここで、ステップＳ２９の処理は、復元先の世代ａから最新の世代Ｇ＋ｎまでの復元要求元のテナントによる更新数（ＳＵＭ）と、復元先の世代ａから最新の世代Ｇ＋ｎまでの他のテナントおよび管理者による更新数（ｎ−ＳＵＭ）とを比較する処理であるといえる。変数ＳＵＭの代入値がｎ／２以上なら、ＳＵＭはｎ−ＳＵＭ以上である。変数ＳＵＭの代入値がｎ／２よりも小さければ、ＳＵＭはｎ−ＳＵＭよりも小さい。
【０１１０】
（Ｓ３０）復元部１４０は、設定ファイル群１１１ａおよび管理テーブル１１２ａに基づいて、設定復元用の設定ファイルの生成処理（パターン１）を行う。パターン１では、復元部１４０は、復元先として指定された世代の設定ファイルに、その世代よりも新しい世代における復元要求元のテナント以外のテナントおよび管理者による設定内容を反映させることで、設定復元用の設定ファイルを生成する。指定された世代よりも新しい世代が複数あれば、復元要求元のテナントによる変更を除去した中間の設定ファイル（中間のバックアップファイル）も順次生成されることになる。詳細については後述する。
【０１１１】
（Ｓ３１）復元部１４０は、制約テーブル１１３ａを参照して、ステップＳ３０で生成した設定復元用の設定ファイルが制約を充足しているか否かを判定する。制約を充足している場合、処理をステップＳ３２に進める。制約を充足していない場合、処理をステップＳ３９に進める。
【０１１２】
（Ｓ３２）復元部１４０は、ステップＳ３０で生成した設定復元用の設定ファイルをＬ２スイッチ２００に入力することで、Ｌ２スイッチ２００の設定を変更する（設定ファイルの適用）。そして、処理をステップＳ３７に進める。
【０１１３】
（Ｓ３３）復元部１４０は、設定ファイル群１１１ａおよび管理テーブル１１２ａに基づいて、設定復元用の設定ファイルの生成処理（パターン２）を行う。パターン２では、最新の世代の設定ファイルを基に、最新の世代から遡って、指定された世代まで復元要求元のテナントの設定を戻すことで、設定復元用の設定ファイルを生成する。詳細については後述する。
【０１１４】
（Ｓ３４）復元部１４０は、制約テーブル１１３ａを参照して、ステップＳ３３で生成した設定復元用の設定ファイルが制約を充足しているか否かを判定する。制約を充足している場合、処理をステップＳ３５に進める。制約を充足していない場合、処理をステップＳ３９に進める。
【０１１５】
（Ｓ３５）復元部１４０は、ステップＳ３３で生成した設定復元用の設定ファイルをＬ２スイッチ２００に入力することで、Ｌ２スイッチ２００の設定を変更する（設定ファイルの適用）。
【０１１６】
（Ｓ３６）復元部１４０は、設定ファイル群１１１ａおよび管理テーブル１１２ａに基づいて、設定復元用の設定ファイルの生成処理（パターン１）を行う。
（Ｓ３７）復元部１４０は、世代ａより後のエントリを管理テーブル１１２ａから削除する。
【０１１７】
（Ｓ３８）復元部１４０は、ステップＳ３０またはステップＳ３６で生成した設定ファイルの情報を管理テーブル１１２ａに登録する。そして、処理を終了する。
（Ｓ３９）復元部１４０は、Ｌ２スイッチ２００に対する設定ファイルの制約を満たさないため、世代ａへの復元を行えない旨を、復元要求元の端末装置に送信する（エラー通知）。そして、処理を終了する。
【０１１８】
図１３は、設定ファイル生成（パターン１）の例を示すフローチャートである。以下、図１３に示す処理をステップ番号に沿って説明する。
（Ｓ４１）復元部１４０は、復元先の世代ａを変数Ｇに代入する。
【０１１９】
（Ｓ４２）復元部１４０は、記憶部１１０から世代Ｇの設定ファイルＦを取得する。
（Ｓ４３）復元部１４０は、管理テーブル１１２ａを参照して、世代Ｇ＋１で設定ファイルの変更を行ったテナントのテナントＩＤは、復元要求元のテナントＩＤと一致するか否かを判定する。一致しない場合、処理をステップＳ４４に進める。一致する場合、処理をステップＳ４７に進める。
【０１２０】
（Ｓ４４）復元部１４０は、世代Ｇの設定ファイルと世代Ｇ＋１の設定ファイルとから、差分（世代Ｇ＋１では世代Ｇの設定内容に対してどのような変更がされたか）を検索する。ステップＳ４４では、復元部１４０は、復元要求元以外のテナントおよび管理者による差分を抽出することになる。
【０１２１】
（Ｓ４５）復元部１４０は、設定ファイルＦに検索した差分を反映させる。例えば、差分が設定の追加なら、設定ファイルＦにその設定を追加する。差分が既存の設定の更新なら、設定ファイルＦの設定も同様に更新する。差分が設定の削除なら、設定ファイルＦからその設定を削除する。
【０１２２】
（Ｓ４６）復元部１４０は、設定ファイルＦを複製し、複製した設定ファイルに所定のファイル名を付与して記憶部１１０に格納する。これにより、設定ファイル群１１１ａに新たな設定ファイルが追加される。
【０１２３】
（Ｓ４７）復元部１４０は、Ｇ＋１を変数Ｇに代入する。
（Ｓ４８）復元部１４０は、Ｇ＝ａ＋ｎであるか、すなわち、変数Ｇの代入値がａ＋ｎに等しいか否かを判定する。Ｇ＝ａ＋ｎであれば、処理を終了する。Ｇ＝ａ＋ｎでなければ、処理をステップＳ４３に進める。
【０１２４】
図１４は、設定ファイル生成（パターン２）の例を示すフローチャートである。以下、図１４に示す処理をステップ番号に沿って説明する。
（Ｓ５１）復元部１４０は、最新の世代ａ＋ｎを変数Ｇに代入する。
【０１２５】
（Ｓ５２）復元部１４０は、記憶部１１０から最新の世代ａ＋ｎの設定ファイルＦを取得する。
（Ｓ５３）復元部１４０は、管理テーブル１１２ａを参照して、世代Ｇで設定ファイルの変更を行ったテナントのテナントＩＤは、復元要求元のテナントＩＤと一致するか否かを判定する。一致する場合、処理をステップＳ５４に進める。一致しない場合、処理をステップＳ５６に進める。
【０１２６】
（Ｓ５４）復元部１４０は、世代Ｇの設定ファイルと世代Ｇ−１の設定ファイルとから、差分（世代Ｇでは世代Ｇ−１の設定内容に対してどのような変更がされたか）を検索する。ステップＳ５４では、復元部１４０は、復元要求元のテナントによる差分を抽出することになる。
【０１２７】
（Ｓ５５）復元部１４０は、検索した差分を設定ファイルＦから除去する。例えば、差分が設定の追加なら、追加された設定を設定ファイルＦから削除する。差分が既存の設定の更新なら、設定ファイルＦにおける更新後の設定を世代Ｇ−１での設定に戻す。差分が設定の削除なら、設定ファイルＦに削除された設定（世代Ｇ−１には存在する設定）を追加する。
【０１２８】
（Ｓ５６）復元部１４０は、Ｇ−１を変数Ｇに代入する。ここで、Ｇ−１の演算は、変数Ｇの代入値から１を減算する演算である。ただし、世代としてタイムスタンプなどの他の情報を用いるなら、Ｇ−１の演算を、１世代古い世代を取得する演算と考えてもよい。
【０１２９】
（Ｓ５７）復元部１４０は、Ｇ＝ａであるか、すなわち、変数Ｇの代入値がａに等しいか否かを判定する。Ｇ＝ａであれば、処理を終了する。Ｇ＝ａでなければ、処理をステップＳ５３に進める。
【０１３０】
このようにして、管理サーバ１００は、設定復元用の設定ファイルを生成し、Ｌ２スイッチ２００の設定を指定された世代へ復元する。特に、管理サーバ１００は、設定復元用の設定ファイルの生成方法として、パターン１，２の方法のうち、演算量のより小さい方を選択する。具体的には、図１２のステップＳ２９においてＳＵＭ＜ｎ／２となる場合、パターン２を選択した方が、パターン１を選択するよりも設定復元用の設定ファイルを生成するための演算コストがより小さい可能性が高い。理由は次の通りである。
【０１３１】
ｎの値は、復元先の世代から最新の世代に至るまでの全テナントおよび管理者による設定変更の回数（更新数）を示す。図１２のステップＳ２９において、ＳＵＭはｎ回のうち復元要求元のテナントによる設定変更の回数（更新数）を示す。ｎ−ＳＵＭが他のテナントおよび管理者による更新数ということになる。よって、ＳＵＭがｎ／２よりも小さいとき（すなわち、復元要求元のテナントの更新数が他のテナントおよび管理者の更新数よりも小さいとき）は、復元要求元のテナントによる差分を検索した方が効率的である。例えば、図１３のステップＳ４４，Ｓ４５の実行回数よりも図１４のステップＳ５４，Ｓ５５の実行回数の方が少なくて済む。この場合、パターン２の方が、パターン１よりも設定復元用の設定ファイルの生成を高速化し得る。このため、ネットワーク装置２の設定の復元も高速化し得る。
【０１３２】
ただし、パターン２を選択する場合、パターン１のように復元要求元のテナントによる変更を除去した中間のバックアップファイルが生成されないことになる。このため、パターン２を選択する場合、管理サーバ１００は、パターン１の設定ファイル生成処理を別途実行することで、当該中間のバックアップファイルを生成する（図１２のステップＳ３６）。なお、管理サーバ１００は、図１２のステップＳ３３〜Ｓ３５の処理と並行して、ステップＳ３６を実行してもよい。
【０１３３】
図１５は、設定ファイル生成（パターン１）の具体例を示す図である。図１５では、直近の世代が世代Ｋ，Ｋ＋１，Ｋ＋２，Ｋ＋３，Ｋ＋４，Ｋ＋５であるときに、管理サーバ１００が世代Ｋへの復元要求をテナントＡから受け付けた場合を例示している。ここで、図１５では設定変更を行ったテナントまたは管理者を示す記号を次のように表記している。テナントＡは“（Ａ）”である。テナントＢは“（Ｂ）”である。管理者は“（Ｃ）”である。
【０１３４】
図１５の例では、ｎ＝５である。また、図１２のステップＳ２９において、ＳＵＭ＝３となる。ＳＵＭ＝３は、ｎ／２＝５／２以上である。よって、管理サーバ１００は、パターン１の方法で復元用の設定ファイルを生成すると決定する。管理サーバ１００は、世代Ｋの設定ファイルｆ１０を記憶部１１０から取得する。以降、管理サーバ１００は次の処理を行う。
【０１３５】
管理サーバ１００は、管理テーブル１１２ａを参照して、世代Ｋ＋１では、テナントＡによる設定変更が行われたことを確認する。テナントＡは復元要求元のテナントだから、世代Ｋと世代Ｋ＋１とで差分を抽出しない。
【０１３６】
管理サーバ１００は、管理テーブル１１２ａを参照して、世代Ｋ＋２では、テナントＢによる設定変更が行われたことを確認する。テナントＢは復元要求元のテナントではないから、世代Ｋ＋１の設定ファイルｆ１１と世代Ｋ＋２の設定ファイルｆ１２との差分を抽出する。この場合、差分は設定ｃ２である。よって、管理サーバ１００は、設定ファイルｆ１０に設定ｃ２を反映した設定ファイルｆ２０を生成する。
【０１３７】
ここで、設定ｃ２は、ＶＬＡＮインタフェースの設定の追加である。したがって、管理サーバ１００は、設定ファイルｆ１０に当該設定を追加することで、設定ファイルｆ２０を生成する。
【０１３８】
管理サーバ１００は、管理テーブル１１２ａを参照して、世代Ｋ＋３では、テナントＡによる設定変更が行われたことを確認する。テナントＡは復元要求元のテナントだから、世代Ｋ＋２と世代Ｋ＋３とで差分を抽出しない。
【０１３９】
管理サーバ１００は、管理テーブル１１２ａを参照して、世代Ｋ＋４では、管理者による設定変更が行われたことを確認する。管理者は復元要求元のテナントではないから、世代Ｋ＋３の設定ファイルｆ１３と世代Ｋ＋４の設定ファイルｆ１４との差分を抽出する。この場合、差分は設定ｃ４である。よって、管理サーバ１００は、設定ファイルｆ２０に設定ｃ４を反映した設定ファイルｆ２１を生成する。
【０１４０】
ここで、設定ｃ４は、パスワードの更新である。したがって、管理サーバ１００は、設定ファイルｆ２０についても同様にパスワードを更新することで、設定ファイルｆ２１を生成する。
【０１４１】
管理サーバ１００は、管理テーブル１１２ａを参照して、世代Ｋ＋５では、テナントＡによる設定変更が行われたことを確認する。テナントＡは復元要求元のテナントだから、世代Ｋ＋４と世代Ｋ＋５とで差分を抽出しない。
【０１４２】
この場合、設定ファイルｆ２１は、テナントＡ以外のテナントまたは管理者による最新の設定を反映させたものであり、設定復元用の設定ファイルとなる。設定ファイルｆ２１は、制約テーブル１１３ａの制約を満たしているとする。管理サーバ１００は、設定ファイルｆ２１をＬ２スイッチ２００に入力することで、Ｌ２スイッチ２００の設定変更を行う。これにより、テナントＡにとっては世代ＫまでＬ２スイッチ２００の設定が復元される。一方、テナントＢにとっては世代Ｋ＋２で行ったＬ２スイッチ２００の設定が維持される。管理者にとっては世代Ｋ＋４で行ったＬ２スイッチ２００の設定が維持される。
【０１４３】
管理サーバ１００は、設定ファイルｆ２０，ｆ２１に対し次のように世代を付与する。設定ファイルｆ２０の世代として、設定ファイルｆ１０の世代Ｋよりも新しい世代Ｋａを付与する。世代Ｋａは世代Ｋ＋２でもよい。設定ファイルｆ２１の世代として、世代Ｋａよりも新しい世代Ｋｂを付与する。世代Ｋｂは世代Ｋ＋４でもよい。世代Ｋｂは、復元直後における最新の世代である。
【０１４４】
図１６は、設定ファイル生成（パターン１）の具体例（続き）を示す図である。管理サーバ１００は、設定ファイルｆ２０，ｆ２１を記憶部１１０に格納する。管理サーバ１００は、設定ファイルｆ１１，ｆ１２，ｆ１３，ｆ１４，ｆ１５に関するエントリを管理テーブル１１２ａから削除する。
【０１４５】
そして、管理サーバ１００は、設定ファイルｆ２０，ｆ２１の情報を管理テーブル１１２ａに登録する。具体的には、管理サーバ１００は、世代“Ｋａ”と設定ファイル名“ＣｏｎｆｉｇＫａ”とテナントＩＤ“ＴｅｎａｎｔＢ”との対応関係を管理テーブル１１２ａに登録する。設定ファイルｆ２０は、設定ファイルｆ１０に対してテナントＢの設定変更（設定ｃ２）が反映されたものだからである。
【０１４６】
また、管理サーバ１００は、世代“Ｋｂ”と設定ファイル名“ＣｏｎｆｉｇＫｂ”とテナントＩＤ“Ｃｏｍｍａｎｄ”との対応関係を管理テーブル１１２ａに登録する。設定ファイルｆ２１は、設定ファイルｆ２０に対して管理者による設定変更（設定ｃ４）が反映されたものだからである。設定ファイルｆ２１は、設定ｃ２，ｃ４が古い世代に対応する方から順番に、設定ファイルｆ１０に反映されたものともいえる。
【０１４７】
このように、管理サーバ１００は、復元先の世代Ｋよりも新しい世代の設定ファイルのうち、復元要求元以外のテナントＩＤに対応する設定ファイルｆ１２，ｆ１４を、新たに生成した設定ファイルｆ２０，ｆ２１に更新する。また、世代Ｋよりも新しい世代の設定ファイルのうち、復元要求元のテナントＩＤに対応する設定ファイルｆ１１，ｆ１３，ｆ１５のエントリを管理テーブル１１２ａから削除することで、復元要求元のテナントＩＤに対応する既存の設定ファイルを無効にする。
【０１４８】
以後、管理サーバ１００は、設定ファイルｆ１１，ｆ１２，ｆ１３，ｆ１４，ｆ１５に代えて、記憶部１１０に格納された設定ファイルｆ２０，ｆ２１をバックアップファイルの新たな系列として用いることができる。管理サーバ１００は、設定ファイルｆ１１，ｆ１２，ｆ１３，ｆ１４，ｆ１５を記憶部１１０から削除してもよい。
【０１４９】
その後は、復元前と同様の運用となる。例えば、テナントＡからの設定変更（設定ｃ６）に応じて、世代Ｋｂ＋１の設定ファイルｆ２２を取得する。また、テナントＢからの設定変更（設定ｃ７）に応じて、世代Ｋｂ＋２の設定ファイルｆ２３を取得する。図１６の管理テーブル１１２ｂでは、設定ファイルｆ２３までの情報が登録された状態を例示している。
【０１５０】
ここで、新たなバックアップファイルを生成することで、その後、復元要求元のテナント以外のテナントにより別の復元要求がなされたときに、管理サーバ１００は、復元処理を適切に行える。例えば、テナントＢにより世代Ｋａを指定した復元要求が行われたとする。管理サーバ１００は、パターン１で設定復元用の設定ファイルを生成するなら、世代Ｋａよりも後に行われたテナントＢ以外のテナント（テナントＡ）や管理者による設定変更を、世代Ｋａの設定ファイルｆ２０に反映させていくことになる。このとき、設定ファイルｆ１１，ｆ１３，ｆ１５は、先のテナントＡによる復元の時点で無効にされている。よって、設定ファイルｆ１１，ｆ１３，ｆ１５におけるテナントＡの設定ｃ１，ｃ３，ｃ５が反映されてしまうことはない。
【０１５１】
図１７は、設定ファイル生成（パターン２）の具体例を示す図である。図１７では、直近の世代が世代Ｋ，Ｋ＋１，Ｋ＋２，Ｋ＋３，Ｋ＋４，Ｋ＋５であるときに、管理サーバ１００が世代Ｋへの復元要求をテナントＢから受け付けた場合を例示している。ここで、図１７では設定変更を行ったテナントまたは管理者を示す記号を図１５と同様に表記している（“（Ａ）”など）。
【０１５２】
図１７の例では、ｎ＝５である。また、図１２のステップＳ２９において、ＳＵＭ＝１となる。ＳＵＭ＝１は、ｎ／２＝５／２よりも小さい。よって、管理サーバ１００は、パターン２の方法で復元用の設定ファイルを生成すると決定する。管理サーバ１００は、世代Ｋ＋５の設定ファイルｆ１５を記憶部１１０から取得する。以降、管理サーバ１００は次の処理を行う。
【０１５３】
管理サーバ１００は、管理テーブル１１２ａを参照して、世代Ｋ＋５では、テナントＡによる設定変更が行われたことを確認する。テナントＡは復元要求元のテナントではないから、世代Ｋ＋４と世代Ｋ＋５とで差分を抽出しない。
【０１５４】
管理サーバ１００は、管理テーブル１１２ａを参照して、世代Ｋ＋４では、管理者による設定変更が行われたことを確認する。管理者は復元要求元のテナントではないから、世代Ｋ＋３と世代Ｋ＋４とで差分を抽出しない。
【０１５５】
管理サーバ１００は、管理テーブル１１２ａを参照して、世代Ｋ＋３では、テナントＡによる設定変更が行われたことを確認する。テナントＡは復元要求元のテナントではないから、世代Ｋ＋２と世代Ｋ＋３とで差分を抽出しない。
【０１５６】
管理サーバ１００は、管理テーブル１１２ａを参照して、世代Ｋ＋２では、テナントＢによる設定変更が行われたことを確認する。テナントＢは復元要求元のテナントだから、世代Ｋ＋１の設定ファイルｆ１１と世代Ｋ＋２の設定ファイルｆ１２との差分を抽出する。この場合、差分は設定ｃ２である。よって、管理サーバ１００は、設定ファイルｆ１５から設定ｃ２を除去した設定ファイルｆ３３を生成する。
【０１５７】
ここで、設定ｃ２は、ＶＬＡＮインタフェースの設定の追加である。したがって、管理サーバ１００は、設定ファイルｆ１５から当該設定を削除することで、設定ファイルｆ３３を生成する。
【０１５８】
管理サーバ１００は、管理テーブル１１２ａを参照して、世代Ｋ＋１では、テナントＡによる設定変更が行われたことを確認する。テナントＡは復元要求元のテナントではないから、世代Ｋと世代Ｋ＋１とで差分を抽出しない。
【０１５９】
この場合、設定ファイルｆ３３は、テナントＢ以外のテナントまたは管理者による最新の設定を反映させたものであり、設定復元用の設定ファイルとなる。設定ファイルｆ３３は、制約テーブル１１３ａの制約を満たしているとする。管理サーバ１００は、設定ファイルｆ３３をＬ２スイッチ２００に入力することで、Ｌ２スイッチ２００の設定変更を行う。これにより、テナントＢにとっては世代ＫまでＬ２スイッチ２００の設定が復元される。一方、テナントＡにとっては世代Ｋ＋１，Ｋ＋３，Ｋ＋５で行ったＬ２スイッチ２００の設定が維持される。管理者にとっては世代Ｋ＋４で行ったＬ２スイッチ２００の設定が維持される。
【０１６０】
また、管理サーバ１００は、設定ファイルｆ１０と設定ファイルｆ３３との間でのテナントＡおよび管理者による設定を順次反映させた設定ファイルｆ３０，ｆ３１，ｆ３２を別途生成する。設定ファイルｆ３０，ｆ３１，ｆ３２の生成方法は、前述のパターン１の設定ファイルの生成方法と同様である。ただし、この場合は、パターン２の生成処理で設定ファイルｆ３３を生成済である。このため、設定ファイルｆ３３を再度生成してもよいし、再度生成しなくてもよい。
【０１６１】
管理サーバ１００は、設定ファイルｆ３０，ｆ３１，ｆ３２，ｆ３３に対し、次のように世代を付与する。設定ファイルｆ３０の世代として、設定ファイルｆ１０の世代Ｋよりも新しい世代Ｋｃを付与する。世代Ｋｃは世代Ｋ＋１でもよい。設定ファイルｆ３１の世代として、世代Ｋｃよりも新しい世代Ｋｄを付与する。世代Ｋｄは世代Ｋ＋３でもよい。設定ファイルｆ３２の世代として、世代Ｋｄよりも新しい世代Ｋｅを付与する。世代Ｋｅは世代Ｋ＋４でもよい。設定ファイルｆ３３の世代として、世代Ｋｅよりも新しい世代Ｋｆを付与する。世代Ｋｆは世代Ｋ＋５でもよい。世代Ｋｆは、復元直後における最新の世代である。
【０１６２】
図１８は、設定ファイル生成（パターン２）の具体例（続き）を示す図である。管理サーバ１００は、設定ファイルｆ３０，ｆ３１，ｆ３２，ｆ３３を記憶部１１０に格納する。管理サーバ１００は、設定ファイルｆ１１，ｆ１２，ｆ１３，ｆ１４，ｆ１５に関するエントリを管理テーブル１１２ａから削除する。
【０１６３】
そして、管理サーバ１００は、設定ファイルｆ３０，ｆ３１，ｆ３２，ｆ３３の情報を管理テーブル１１２ａに登録する。具体的には、管理サーバ１００は、世代“Ｋｃ”と設定ファイル名“ＣｏｎｆｉｇＫｃ”とテナントＩＤ“ＴｅｎａｎｔＡ”との対応関係を管理テーブル１１２ａに登録する。また、世代“Ｋｄ”と設定ファイル名“ＣｏｎｆｉｇＫｄ”とテナントＩＤ“ＴｅｎａｎｔＡ”との対応関係を管理テーブル１１２ａに登録する。また、世代“Ｋｅ”と設定ファイル名“ＣｏｎｆｉｇＫｅ”とテナントＩＤ“Ｃｏｍｍａｎｄ”との対応関係を管理テーブル１１２ａに登録する。更に、世代“Ｋｆ”と設定ファイル名“ＣｏｎｆｉｇＫｆ”とテナントＩＤ“ＴｅｎａｎｔＡ”との対応関係を管理テーブル１１２ａに登録する。
【０１６４】
このように、管理サーバ１００は、復元先の世代Ｋよりも新しい世代の設定ファイルのうち、復元要求元以外のテナントＩＤに対応する設定ファイルｆ１１，ｆ１３，ｆ１４，ｆ１５を、新たに生成した設定ファイルｆ３０，ｆ３１，ｆ３２，ｆ３３に更新する。また、世代Ｋよりも新しい世代の設定ファイルのうち、復元要求元のテナントＩＤに対応する設定ファイルｆ１２のエントリを管理テーブル１１２ａから削除することで、復元要求元のテナントＩＤに対応する既存の設定ファイルを無効にする。
【０１６５】
以後、管理サーバ１００は、設定ファイルｆ１１，ｆ１２，ｆ１３，ｆ１４，ｆ１５に代えて、記憶部１１０に格納された設定ファイルｆ３０，ｆ３１，ｆ３２，ｆ３３をバックアップファイルの新たな系列として用いることができる。管理サーバ１００は、設定ファイルｆ１１，ｆ１２，ｆ１３，ｆ１４，ｆ１５を記憶部１１０から削除してもよい。
【０１６６】
その後は、復元前と同様の運用となる。例えば、テナントＡからの設定変更（設定ｃ８）に応じて、世代Ｋｆ＋１の設定ファイルｆ３４を取得する。また、テナントＢからの設定変更（設定ｃ９）に応じて、世代Ｋｆ＋２の設定ファイルｆ３５を取得する。図１８の管理テーブル１１２ｃでは、設定ファイルｆ３５までの情報が登録された状態を例示している。
【０１６７】
ここで、新たにバックアップファイルを生成する理由は、図１６で説明した理由と同様である。すなわち、その後、復元要求元のテナント以外のテナントにより別の復元要求がなされたときに、管理サーバ１００は、復元処理を適切に行えるようにするためである。例えば、テナントＡにより世代Ｋｃを指定した復元要求が行われたとする。管理サーバ１００は、パターン１で設定復元用の設定ファイルを生成するなら、世代Ｋｃよりも後に行われたテナントＡ以外のテナント（テナントＢ）や管理者による設定変更を、世代Ｋｃの設定ファイルｆ３０に反映させていくことになる。このとき、設定ファイルｆ１２は、先のテナントＢによる復元の時点で無効にされている。よって、設定ファイルｆ１２におけるテナントＢの設定ｃ２が反映されてしまうことはない。
【０１６８】
また、上記のように、管理サーバ１００は、設定復元用の設定ファイルを生成する方法として、パターン１，２のうち、生成に要する演算量がより小さいと推定される方法を選択する（図１２のステップＳ２９）。これにより、設定復元用の設定ファイルの生成を高速化できる。その結果、Ｌ２スイッチ２００の設定変更を高速化できる。
【０１６９】
例えば、管理サーバ１００は、設定復元用の設定ファイルを生成している間は、各テナントによるＬ２スイッチ２００の設定変更を制限することになる。最新の世代の設定ファイルが変更されると、設定の復元を適切に行えないおそれがあるからである。これに対し、サービスの継続的な利用可能性の観点からは、各テナントに対してＬ２スイッチ２００の設定変更を制限する時間は短い方が好ましい。上記のように、管理サーバ１００は、設定ファイルの生成をより高速化できる方法を選択することで、Ｌ２スイッチの設定変更を制限する時間を短縮し得る。
【０１７０】
なお、パターン１，２の方法のうち、何れを選択するかを更に詳細に行ってもよい。例えば、ある世代で行われた設定変更は、設定ファイル内の複数行に渡ることがある（例えば、図６で例示した設定ｃ１，ｃ２，ｃ５）。ある世代で設定変更された行数が多い程、前の世代からの差分を検索したり、設定ファイルに差分を反映させたりする演算コストも大きいと考えられる。そこで、ＳＵＭに設定する値に対して設定ファイル内の行数を考慮してもよい。
【０１７１】
具体的には、図１２のステップＳ２９におけるｎに代えて、指定された復元先の世代から最新の世代までに設定変更（追加、更新、削除）された全ての行数ｍ（ｍは１以上の整数）を用いる。また、図１２のステップＳ２６では、世代Ｇにおいて復元要求元のテナントにより設定変更された行数を変数ＳＵＭに加算する。
【０１７２】
そして、ステップＳ２９の判定では、復元部１４０は、“ＳＵＭはｍ／２以上であるか否か”（復元要求元のテナントの更新数は他のテナントおよび管理者の更新数以上であるか否か）の判定を行う。ＳＵＭがｍ／２以上であれば（復元要求元のテナントの更新数が他のテナントおよび管理者の更新数以上であれば）、ステップＳ３０に進める（パターン１を選択する）。ＳＵＭがｍ／２よりも小さければ（復元要求元のテナントの更新数が他のテナントおよび管理者の更新数よりも小さければ）、ステップＳ３３に進める（パターン２を選択する）。このように、設定変更された行数を考慮した更新数を用いて、パターン１，２の何れを選択するかを判定してもよい。これにより、復元部１４０は、設定復元用の設定ファイルの生成に伴う演算コストの小さい方法をより正確に選択し得る。
【０１７３】
また、上記の説明では、復元要求を受信した後に、変数ＳＵＭの計算を行うものとしたが（図１２のステップＳ２３〜Ｓ２８）、設定要求を受け付ける毎に、ＳＵＭを積算していってもよい。その場合、例えば、設定処理部１３０は、世代とテナント毎のＳＵＭの値（テナント毎のＳＵＭを用意することになる）とを対応付けた情報をＲＡＭ１０２またはＨＤＤ１０３の所定の記憶領域に格納しておく。設定処理部１３０は、何れかのテナントから設定要求を受け付けるたびに、そのテナントに対応するＳＵＭに、１（行数まで考慮する場合は、変更された行数）を加算する。そして、復元部１４０は、何れかのテナントから復元要求を受信すると、ＲＡＭ１０２またはＨＤＤ１０３に記憶された情報から、そのテナントのＳＵＭ値を読み出して、図１２のステップＳ２９を実行する。このとき、復元部１４０は、ステップＳ２２〜Ｓ２８を省略できる。よって、設定復元用の設定ファイルの生成を、更に高速化できる。
【０１７４】
図１９は、設定ファイルの他の設定例（その１）を示す図である。設定ｃ２０は、世代Ｋｇにおける設定である。設定ｃ２０は、設定ファイル内の“ｓｗｉｔｃｈｐｏｒｔ  ｔｒｕｎｋ  ａｌｌｏｗｅｄ  ｖｌａｎ  １０，１２，１３，１５−１８”の記述に相当する。
【０１７５】
設定ｃ２０は、Ｌ２スイッチ２００と他のスイッチ（図２では図示を省略）との間を接続するポート（以下、トランクポートという）で通信を許容するＶＬＡＮ  ＩＤ“１０，１２，１３，１５，１６，１７，１８”を指定している。ただし、“１５−１８”の表記は、“１５，１６，１７，１８”を示す。このように、ネットワーク装置によっては、３つ以上のＶＬＡＮ  ＩＤを指定する場合に、ハイフン“−”記号によりＩＤ指定が略記されるものもある。例えば、世代Ｋｇ以降、世代Ｋｇ＋３までトランクポートに対して次のように設定変更される。
【０１７６】
世代Ｋｇ＋１では、テナントＡによりトランクポートに対してＶＬＡＮ  ＩＤ“１４，１９”が追加される。すると、トランクポートに対するＶＬＡＮ  ＩＤの指定箇所は、“ｖｌａｎ  １０，１２−１９”と書き換えられる。この場合、世代Ｋｇ（設定ｃ２０）からの差分は、“ｓｗｉｔｃｈｐｏｒｔ  ｔｒｕｎｋ  ａｌｌｏｗｅｄ  ｖｌａｎ  １４，１９”（設定ｃ２１）である。
【０１７７】
世代Ｋｇ＋２では、テナントＢによりトランクポートに対してＶＬＡＮ  ＩＤ“２０，２１”が追加される。すると、トランクポートに対するＶＬＡＮ  ＩＤの指定箇所は、“ｖｌａｎ  １０，１２−２１”と書き換えられる。この場合、世代Ｋｇ＋１（設定ｃ２０，ｃ２１を合わせた設定）からの差分は、“ｓｗｉｔｃｈｐｏｒｔ  ｔｒｕｎｋ  ａｌｌｏｗｅｄ  ｖｌａｎ  ２０，２１”（設定ｃ２２）である。
【０１７８】
世代Ｋｇ＋３では、テナントＡによりトランクポートに対してＶＬＡＮ  ＩＤ“２２，２３”が追加され、ＶＬＡＮ  ＩＤ“１５”が削除される。すると、トランクポートに対するＶＬＡＮ  ＩＤの指定箇所は、“ｖｌａｎ  １０，１２−１４，１６−２３”と書き換えられる。この場合、世代Ｋｇ＋２（設定ｃ２０，ｃ２１，ｃ２２を合わせた設定）からの差分は、“ｓｗｉｔｃｈｐｏｒｔ  ｔｒｕｎｋ  ａｌｌｏｗｅｄ  ｖｌａｎ  ２２，２３”および“ｓｗｉｔｃｈｐｏｒｔ  ｔｒｕｎｋ  ａｌｌｏｗｅｄ  ｖｌａｎ  ｒｅｍｏｖｅ  １５”の両方（設定ｃ２３）である。
【０１７９】
その後、管理サーバ１００は、テナントＡにより世代Ｋｇへの復元要求を受け付ける。図１９の例では、ｎ＝３である。そして、図１２のステップＳ２９において、ＳＵＭ＝２となる。ＳＵＭ＝２は、ｎ／２＝３／２以上である。よって、管理サーバ１００は、パターン１の方法で復元用の設定ファイルを生成する。具体的には、設定ｃ２０に、テナントＡ以外のテナントＢによる設定ｃ２２を反映させる。管理サーバ１００は、トランクポートの復元後の設定として、“ｓｗｉｔｃｈｐｏｒｔ  ｔｒｕｎｋ  ａｌｌｏｗｅｄ  ｖｌａｎ  １０，１２，１３，１５−１８，２０，２１”を含む設定ファイルを生成する。この設定ファイルを用いることで、テナントＡにとっては世代ＫｇまでＬ２スイッチ２００の設定が復元される。一方、テナントＢにとっては世代Ｋｇ＋２で行ったＬ２スイッチ２００の設定が維持される。また、上記のように、管理サーバ１００は、ネットワーク装置による設定ファイルの記述方法によらずに、世代間における設定ファイルの差分を抽出できる。
【０１８０】
図２０は、設定ファイルの他の設定例（その２）を示す図である。設定ｃ３０は、世代Ｋｈにおける設定である。設定ｃ３０は、設定ファイル内の“ｓｎｍｐ  ｍａｎａｇｅｒ  ０  １９２．１６８．１．１  ｐｕｂｌｉｃ  ｖ１  ｅｎａｂｌｅ”などを含む４行分（４つの設定コマンド）の記述に相当する。ここで、図２０における各設定の左側に付した数値は行番号を示している。
【０１８１】
設定ｃ３０は、Ｌ２スイッチ２００で動作するＳＮＭＰエージェントに対して、ＳＮＭＰトラップなどの送信先のＳＮＭＰマネージャを指定する設定である。１行分の設定が１つのＳＮＭＰマネージャの指定に相当する。設定ｃ３０では、４つのＳＮＭＰマネージャを指定している。なお、制約テーブル１１３ａで例示されるように、Ｌ２スイッチ２００でのＳＮＭＰマネージャの指定の上限数は４である。例えば、世代Ｋｈ以降、世代Ｋｈ＋２までＳＮＭＰエージェントに対して次のように設定変更される。
【０１８２】
世代Ｋｈ＋１では、テナントＡにより設定ｃ３０の４行目のエントリが削除される。世代Ｋｈからの差分である設定ｃ３１は、当該エントリの削除に相当する。
世代Ｋｈ＋２では、テナントＢにより設定ｃ３１に４行目のエントリが追加される。世代Ｋｈ＋１からの差分である設定ｃ３２は、当該エントリの追加に相当する。
【０１８３】
その後、管理サーバ１００は、テナントＡにより世代Ｋｈへの復元要求を受け付ける。図２０の例では、ｎ＝２である。そして、図１２の手順のステップＳ２９において、ＳＵＭ＝１となる。ＳＵＭ＝１は、ｎ／２＝２／２＝１以上である。よって、管理サーバ１００は、パターン１の方法で復元用の設定ファイルを生成する。具体的には、設定ｃ３０に、テナントＡ以外のテナントＢによる設定ｃ３２を反映させる。管理サーバ１００は、復元後の設定として、“ｓｎｍｐ  ｍａｎａｇｅｒ  ０  １９２．１６８．１．１  ｐｕｂｌｉｃ  ｖ１  ｅｎａｂｌｅ”などを含む５行分の設定ｃ４０を含む設定ファイルを生成する。すると、設定ｃ４０では、５つのＳＮＭＰマネージャが指定されることになる。
【０１８４】
管理サーバ１００は、制約テーブル１１３ａに基づいて、復元後の設定ファイルが制約を満たしているか否かを判定する。復元後の設定ファイルが制約を満たしていなければ、Ｌ２スイッチ２００が正常に動作しないおそれもあるからである。上記の場合、設定ｃ４０ではＳＮＭＰマネージャの上限４に対して５つのＳＮＭＰマネージャが指定されているから、制約違反となる。
【０１８５】
このため、管理サーバ１００は、生成した設定ファイルを用いたＬ２スイッチ２００の設定を行わずに、復元要求元のテナントＡに対し、制約違反により復元を行えない旨を通知する。管理サーバ１００は、同様の通知を管理者に対して行ってもよい。例えば、管理サーバ１００は、テナントＡや管理者の電子メールアドレスを宛先とした電子メールを生成し、送信することで、当該通知を行うことが考えられる。また、管理サーバ１００は、端末装置２１，４００の識別情報を宛先とした所定のメッセージを生成し、送信することで、当該通知を行うことも考えられる。このようにして、Ｌ２スイッチ２００に不正な設定が行われることの防止を図れる。また、テナントＡや管理者に対して、要求された復元を行えない旨を適切に把握させることができる。
【０１８６】
図２１は、ネットワーク装置の例を示す図である。第２の実施の形態では、ネットワーク装置としてＬ２スイッチ２００を例示したが、管理サーバ１００は他の種類のネットワーク装置も同様に管理することができる。具体的には、次の通りである。
【０１８７】
例えば、ネットワーク１０，２０の間やネットワーク１０に負荷分散機能やファイアウォール機能などを備えたサーバコンピュータを設けることもある。その場合、そのサーバコンピュータをネットワーク装置ということができる。サーバコンピュータの負荷分散機能やファイアウォール機能などの少なくとも何れかの機能に関する設定ファイルに対し、複数のテナントによる設定変更を許容することも考えられる。
【０１８８】
例えば、ネットワーク１０，２０の間にブレードサーバ６００を設けてもよい。ブレードサーバ６００は、プロセッサやＲＡＭを内蔵したブレードと呼ばれる装置を複数収容し、ブレード単位にＯＳや仮想マシンを動作させる。ブレードサーバ６００は、ブレード６１０，６２０およびスイッチブレード６３０を有する。
【０１８９】
ブレード６１０は、ハイパーバイザ６１１およびファイアウォール６１２，６１３を有する。ハイパーバイザ６１１は、ブレード６１０のプロセッサやＲＡＭなどのリソースを用いて仮想マシンを動作させるソフトウェアである。ハイパーバイザ６１１は、仮想スイッチ６１１ａを有する。仮想スイッチ６１１ａは、ブレード６１０上で動作する仮想マシンのデータ通信を中継する機能を提供する。ファイアウォール６１２，６１３は、ハイパーバイザ６１１上で動作し、ネットワーク１０に対する所定のアクセスをブロックする。ファイアウォール６１２，６１３は、仮想マシン上で動作するソフトウェアでもよい。
【０１９０】
ブレード６２０もブレード６１０と同様に、ハイパーバイザや仮想マシンなどを有する。例えば、ブレード６２０は、仮想マシンを用いて負荷分散機能やファイアウォール機能などを実現してもよい。スイッチブレード６３０は、ブレード６１０，６２０のデータ通信を中継するスイッチである。
【０１９１】
このように、ブレードサーバ６００により負荷分散機能やファイアウォール機能などを実現し得る。この場合、ブレードサーバ６００をネットワーク装置ということができる。仮想スイッチ６１１ａ、ファイアウォール６１２，６１３およびスイッチブレード６３０などを複数のテナントにより共用させ、各機能に関する設定ファイルの各テナントによる設定変更を許容する場合にも管理サーバ１００による管理方法を適用することができる。
【０１９２】
その他のネットワーク装置についても同様である。例えば、ネットワーク１０に設けた負荷分散装置７００を複数のテナントにより共用させ、負荷分散装置７００に対する各テナントによる設定変更を許容することも考えられる。例えば、サーバ３００，３００ａ，３００ｂ上の複数の実ＩＰアドレスと負荷分散装置７００上の仮想ＩＰアドレスとの対応関係などの設定について、負荷分散装置７００の設定ファイルに対するテナント毎の変更を許容することが考えられる。
【０１９３】
また、ネットワーク装置は、Ｌ３スイッチ、ルータ、ファイアウォール装置、ＩＤＳ（Intrusion Detection System）装置、ＩＰＳ（Intrusion Prevention System）装置およびＵＴＭ（Unified Threat Management）装置などでもよい。例えば、これら装置に対し、通信を許可するトラフィックを選別するルールや不正アクセス検知用のルールなどについて、各装置の設定ファイルに対するテナント毎の変更を許容することが考えられる。
【０１９４】
更に、複数のネットワーク装置を管理する場合、管理サーバ１００は、設定ファイル群、管理テーブルおよび制約テーブルを、管理対象のネットワーク装置毎に、記憶部１１０に保持する。例えば、管理サーバ１００は、ネットワーク装置の識別情報に対応付けて、これらの情報を保持することが考えられる。
【０１９５】
図２２は、復元処理の比較例を示す図である。図２２では、第２の実施の形態による復元方法を用いない場合を比較例として説明する。ここで、比較例の処理に用いるサーバコンピュータを管理サーバ８００とする。図２２で想定する情報処理システムは、図２で例示した情報処理システムと同様である。図２２では設定変更を行ったテナントまたは管理者を示す記号を、図１５と同様に表記している（“（Ａ）”など）。
【０１９６】
例えば、管理サーバ８００は、端末装置２１，２２などからのＬ２スイッチ２００の設定要求を受け付けるたびに、Ｌ２スイッチ２００から設定ファイルを取得し、設定ファイル群１１１ａに追加する。ここで、現在の最新の世代は世代Ｋ＋５であり、世代Ｋ＋５の設定ファイルは設定ファイルｆ１５である。それ以外の設定ファイルとして、管理サーバ８００は、設定ファイルｆ１０，ｆ１１，ｆ１２，ｆ１３，ｆ１４（それぞれ順番に世代Ｋ，Ｋ＋１，Ｋ＋２，Ｋ＋３，Ｋ＋４に相当）を保持している。各設定ファイルの設定内容は図５〜７で例示した通りである。
【０１９７】
例えば、管理サーバ８００は、端末装置２１（テナントＡ）から世代Ｋへの復元要求を受信する。このとき、管理サーバ８００は、設定ファイル群１１１ａから設定ファイルｆ１０を取得し、Ｌ２スイッチ２００に入力することで、Ｌ２スイッチ２００の設定を行うことが考えられる。ところが、設定ファイルｆ１０には、前述のようにテナントＢによる設定ｃ２と管理者による設定ｃ４とが含まれていない。このため、Ｌ２スイッチ２００が設定ファイルｆ１０で設定されると、世代Ｋよりも後に行われたテナントＢによる設定ｃ２と管理者による設定ｃ４とが無かったことになってしまう。
【０１９８】
そこで、管理サーバ１００では、復元先として指定された世代Ｋよりも後に行われた他のテナントや管理者による設定変更を検索し、検索した設定変更を設定ファイルｆ１０に反映させた復元用の設定ファイルを生成する。管理サーバ１００は、生成した設定ファイルをＬ２スイッチ２００に入力して、Ｌ２スイッチ２００の設定を行う。これにより、テナントＡにとっては世代ＫまでＬ２スイッチ２００の設定が復元される。一方、テナントＢや管理者にとっては世代Ｋよりも後に行ったＬ２スイッチ２００の設定ｃ２，ｃ４を維持できる。上記の説明では、テナントおよび管理者の数が３である場合を例示したが、４以上の場合も同様に処理できる。
【０１９９】
以上のように、管理サーバ１００によれば、ネットワーク装置を複数のテナントにより共用させる場合において、テナント間の独立性を保証しながら、ネットワーク装置のテナント毎の設定を自由に復元できる。
【０２００】
なお、第１の実施の形態の情報処理は、演算部１ｂとして用いられるプロセッサに、プログラムを実行させることで実現できる。第２の実施の形態の情報処理は、プロセッサ１０１にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体１３に記録できる。
【０２０１】
例えば、プログラムを記録した記録媒体１３を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。コンピュータは、例えば、記録媒体１３に記録されたプログラムまたは他のコンピュータから受信したプログラムを、ＲＡＭ１０２やＨＤＤ１０３などの記憶装置に格納し（インストールし）、当該記憶装置からプログラムを読み込んで実行してもよい。
【０２０２】
以上の第１，第２の実施の形態を含む実施形態に関し、更に以下の付記を開示する。
（付記１）  ネットワーク装置の設定に用いられる設定情報を管理する管理装置であって、
複数のクライアントの何れかにより更新された設定情報と当該設定情報の世代と更新を実行したクライアントの識別情報とを対応付けて記憶する記憶部と、
何れかのクライアントにより何れかの世代への復元が指定されると、前記記憶部を参照して、指定された世代よりも新しい世代の設定情報における他のクライアントによる更新内容を検索し、指定された世代に対応する第１の設定情報に前記更新内容を反映させた第２の設定情報を生成し、
前記第２の設定情報を用いて前記ネットワーク装置の設定を行う、演算部と、
を有する管理装置。
【０２０３】
（付記２）  前記演算部は、指定された世代から最新の世代までの指定元のクライアントによる更新数と、指定された世代から最新の世代までの他のクライアントによる更新数との比較に応じて、前記第１の設定情報に前記更新内容を反映させることで前記第２の設定情報を生成するか、または、最新の世代の設定情報における前記指定元のクライアントによる更新内容を指定された世代まで戻すことで前記第２の設定情報を生成するか、を選択する、
付記１記載の管理装置。
【０２０４】
（付記３）  前記演算部は、前記第１の設定情報に他のクライアントによる更新内容を反映させることで、指定された世代よりも新しい世代に対応する設定情報のうち他のクライアントの識別情報に対応する設定情報を更新し、指定された世代よりも新しい世代に対応する設定情報のうち指定元のクライアントの識別情報に対応する設定情報を無効にする、
付記１または２記載の管理装置。
【０２０５】
（付記４）  前記記憶部は、前記ネットワーク装置の設定情報に対する制約の情報を記憶し、
前記演算部は、前記第２の設定情報が前記制約を満たす場合に前記第２の設定情報を用いて前記ネットワーク装置の設定を行い、前記第２の設定情報が前記制約を満たさない場合に前記ネットワーク装置の設定を行わずに、前記ネットワーク装置の設定を行えないことを世代の指定元のクライアントに通知する、
付記１乃至３の何れかに記載の管理装置。
【０２０６】
（付記５）  ネットワーク装置の設定に用いられる設定情報を管理するための管理プログラムであって、コンピュータに、
複数のクライアントの何れかにより設定情報が更新されると、更新された設定情報と当該設定情報の世代と更新を実行したクライアントの識別情報とを対応付けて取得し、
何れかのクライアントにより何れかの世代への復元が指定されると、取得した情報を参照して、指定された世代よりも新しい世代の設定情報における他のクライアントによる更新内容を検索し、指定された世代に対応する第１の設定情報に前記更新内容を反映させた第２の設定情報を生成し、
前記第２の設定情報を用いて前記ネットワーク装置の設定を行う、
処理を実行させる管理プログラム。
【０２０７】
（付記６）  ネットワーク装置の設定に用いられる設定情報を管理する管理装置が、
複数のクライアントの何れかにより設定情報が更新されると、更新された設定情報と当該設定情報の世代と更新を実行したクライアントの識別情報とを対応付けて取得し、
何れかのクライアントにより何れかの世代への復元が指定されると、取得した情報を参照して、指定された世代よりも新しい世代の設定情報における他のクライアントによる更新内容を検索し、指定された世代に対応する第１の設定情報に前記更新内容を反映させた第２の設定情報を生成し、
前記第２の設定情報を用いて前記ネットワーク装置の設定を行う、
ネットワーク装置の設定情報管理方法。
【符号の説明】
【０２０８】
１  管理装置
１ａ  記憶部
１ｂ  演算部
２  ネットワーク装置
３，４  サーバ
５，６  端末装置
７  ネットワーク
８  情報
【図１】
2015142167.tif 000003
【図２】
2015142167.tif 000004
【図３】
2015142167.tif 000005
【図４】
2015142167.tif 000006
【図５】
2015142167.tif 000007
【図６】
2015142167.tif 000008
【図７】
2015142167.tif 000009
【図８】
2015142167.tif 000010
【図９】
2015142167.tif 000011
【図１０】
2015142167.tif 000012
【図１１】
2015142167.tif 000013
【図１２】
2015142167.tif 000014
【図１３】
2015142167.tif 000015
【図１４】
2015142167.tif 000016
【図１５】
2015142167.tif 000017
【図１６】
2015142167.tif 000018
【図１７】
2015142167.tif 000019
【図１８】
2015142167.tif 000020
【図１９】
2015142167.tif 000021
【図２０】
2015142167.tif 000022
【図２１】
2015142167.tif 000023
【図２２】
2015142167.tif 000024