(57)【要約】  ネットワーク管理装置（１０）は、複数の通信装置に対する一括した設定を受け付け、複数の通信装置に対して一括した設定を実行すると共に、実行した一括した設定を記憶し、複数の通信装置に対する一括した設定の実行後に、複数の通信装置のうち、一部の通信装置に対する他の設定を受け付けた場合に、一部の通信装置に対する該他の設定を行うと共に、一部の通信装置に対する他の設定を記憶し、複数の通信装置のうちの特定の装置に関する設定のロールバック指示を受けた場合に、ロールバックの過程に特定の装置以外の１又は複数の装置を対象とする一括設定に対応する処理が含まれ、かつ、１又は複数の装置を対象とする設定がなされたことの検出に応じて、検出した一括設定以前へのロールバックの規制、又はアラートの出力を行う。
2017122364.tif 000002
【特許請求の範囲】
【請求項１】
複数の通信装置に対する一括した設定を受け付け、
前記複数の通信装置に対して前記一括した設定を実行すると共に、実行した前記一括した設定を記憶し、
前記複数の通信装置に対する前記一括した設定の実行後に、前記複数の通信装置のうち、一部の通信装置に対する他の設定を受け付けた場合に、前記一部の通信装置に対する該他の設定を行うと共に、前記一部の通信装置に対する前記他の設定を記憶し、
前記複数の通信装置のうちの特定の装置に関する設定のロールバック指示を受けた場合に、ロールバックの過程に前記特定の装置以外の１又は複数の装置を対象とする一括設定に対応する処理が含まれ、かつ、前記１又は複数の装置を対象とする設定がなされたことの検出に応じて、検出した前記一括設定以前へのロールバックの規制、又はアラートの出力を行う、
処理をコンピュータに実行させることを特徴するロールバック処理制御プログラム。
【請求項２】
前記ロールバックの過程に設定権限が許可されていない設定が含まれることを検出した場合に、前記ロールバックを規制制御、又はアラートの出力制御を行う、ことを特徴とする請求項１に記載のロールバック処理制御プログラム。
【請求項３】
前記複数の通信装置に対する前記一括した設定と、前記一部の通信装置に対する前記他の設定とを区別可能に表示し、
表示される前記他の設定に対する選択操作を受け付けた場合に、前記他の設定と、前記一括した設定とを関連付けて表示する、ことを特徴とする請求項１に記載のロールバック処理制御プログラム。
【請求項４】
記憶する前記一括設定、又は前記他の設定対象の通信装置として、管理対象外の通信装置が含まれる場合には、ロールバック指示の受け付けができないことを示す表示を行う、ことを特徴とする請求項１に記載のロールバック処理制御プログラム。
【請求項５】
複数の装置に対する一括した設定後に、該設定の前の状態に戻すロールバック指示を受け付け、
前記複数の装置のうち、少なくともいずれかの装置に対して前記一括した設定後に更なる設定がなされたことを、設定履歴を記憶する記憶部を参照して検出した場合は、前記ロールバック指示を規制し又はアラートを出力し、前記複数の装置のいかなる装置に対しても前記一括した設定後に更なる設定がなされたことを、設定履歴を記憶する記憶部を参照して検出しない場合は、前記ロールバック指示に応じたロールバック処理を実行する、
処理をコンピュータに実行させることを特徴するロールバック処理制御プログラム。
【請求項６】
複数の通信装置に対する一括した設定を受け付け、
前記複数の通信装置に対して前記一括した設定を実行すると共に、実行した前記一括した設定を記憶し、
前記複数の通信装置に対する前記一括した設定の実行後に、前記複数の通信装置のうち、一部の通信装置に対する他の設定を受け付けた場合に、前記一部の通信装置に対する該他の設定を行うと共に、前記一部の通信装置に対する前記他の設定を記憶し、
前記複数の通信装置のうちの特定の装置に関する設定のロールバック指示を受けた場合に、ロールバックの過程に前記特定の装置以外の１又は複数の装置を対象とする一括設定に対応する処理が含まれ、かつ、前記１又は複数の装置を対象とする設定がなされたことの検出に応じて、検出した前記一括設定以前へのロールバックの規制、又はアラートの出力を行う、
処理がコンピュータにより実行されることを特徴するロールバック処理制御方法。
【請求項７】
前記ロールバックの過程に設定権限が許可されていない設定が含まれることを検出した場合に、前記ロールバックを規制制御、又はアラートの出力制御を行う、ことを特徴とする請求項６に記載のロールバック処理制御方法。
【請求項８】
前記複数の通信装置に対する前記一括した設定と、前記一部の通信装置に対する前記他の設定とを区別可能に表示し、
表示される前記他の設定に対する選択操作を受け付けた場合に、前記他の設定と、前記一括した設定とを関連付けて表示する、ことを特徴とする請求項６に記載のロールバック処理制御方法。
【請求項９】
記憶する前記一括設定、又は前記他の設定対象の通信装置として、管理対象外の通信装置が含まれる場合には、ロールバック指示の受け付けができないことを示す表示を行う、ことを特徴とする請求項６に記載のロールバック処理制御方法。
【請求項１０】
複数の通信装置に対する一括した設定を受け付ける受付部と
前記複数の通信装置に対して前記一括した設定を実行すると共に、実行した前記一括した設定を記憶する第１設定部と、
前記複数の通信装置に対する前記一括した設定の実行後に、前記複数の通信装置のうち、一部の通信装置に対する他の設定を受け付けた場合に、前記一部の通信装置に対する該他の設定を行うと共に、前記一部の通信装置に対する前記他の設定を記憶する第２設定部と、
前記複数の通信装置のうちの特定の装置に関する設定のロールバック指示を受けた場合に、ロールバックの過程に前記特定の装置以外の１又は複数の装置を対象とする一括設定に対応する処理が含まれ、かつ、前記１又は複数の装置を対象とする設定がなされたことの検出に応じて、検出した前記一括設定以前へのロールバックの規制、又はアラートの出力を行うロールバック制御部と
を有することを特徴するロールバック処理制御装置。
【請求項１１】
前記ロールバック制御部は、前記ロールバックの過程に設定権限が許可されていない設定が含まれることを検出した場合に、前記ロールバックを規制制御、又はアラートの出力制御を行う、ことを特徴とする請求項１０に記載のロールバック処理制御装置。
【請求項１２】
前記複数の通信装置に対する前記一括した設定と、前記一部の通信装置に対する前記他の設定とを区別可能に表示し、
表示される前記他の設定に対する選択操作を受け付けた場合に、前記他の設定と、前記一括した設定とを関連付けて表示する表示制御部をさらに有することを特徴とする請求項１０に記載のロールバック処理制御装置。
【請求項１３】
記憶する前記一括設定、又は前記他の設定対象の通信装置として、管理対象外の通信装置が含まれる場合には、ロールバック指示の受け付けができないことを示す表示を行う表示制御部をさらに有することを特徴とする請求項１０に記載のロールバック処理制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロールバック処理制御プログラム、ロールバック処理制御方法及びロールバック処理制御装置に関する。
【背景技術】
【０００２】
ネットワークの設定に関する技術の一例として、ＳＤＮ（Software-Defined  Networking）などの技術が知られている。かかるＳＤＮ技術では、企業等の組織内のネットワークに含まれるネットワーク装置に対する設定、例えばＶＬＡＮ（Virtual  Local  Area  Network）やサブネットなどの設定を一括で実行できる機能が提供される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−１９９６２３号公報
【特許文献２】特開２０１５−１４２１６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、上記のネットワークの設定が行われる場合、認識の誤りや操作のミスなどが原因となってネットワークの管理者等が意図する通りの設定を必ずしも実施できるとは限らない。このような場合、ネットワーク装置の設定を変更される前の状態に戻すロールバック処理が行われる場合がある。【０００５】
しかしながら、上記の技術では、次に説明するように、ロールバック処理によりネットワークに不具合が発生する場合がある。【０００６】
例えば、複数のネットワーク装置に対する設定が一括で行われた後、複数のネットワーク装置のうち一部のネットワーク装置に対する設定が個別に行われる場合もある。このような状況で、複数のネットワーク装置に対するロールバック処理が一括で行われた場合、一部のネットワーク装置へ個別に行われた設定が無視された状態で複数のネットワーク装置の設定が一括で設定が行われる前の状態に戻されることになる。この結果、ロールバック処理によりネットワークに不具合が生じる場合がある。【０００７】
１つの側面では、本発明は、ロールバック処理により発生するネットワークの不具合を抑制できるロールバック処理制御プログラム、ロールバック処理制御方法及びロールバック処理制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
一態様では、複数の通信装置に対する一括した設定を受け付け、前記複数の通信装置に対して前記一括した設定を実行すると共に、実行した前記一括した設定を記憶し、前記複数の通信装置に対する前記一括した設定の実行後に、前記複数の通信装置のうち、一部の通信装置に対する他の設定を受け付けた場合に、前記一部の通信装置に対する該他の設定を行うと共に、前記一部の通信装置に対する前記他の設定を記憶し、前記複数の通信装置のうちの特定の装置に関する設定のロールバック指示を受けた場合に、ロールバックの過程に前記特定の装置以外の１又は複数の装置を対象とする一括設定に対応する処理が含まれ、かつ、前記１又は複数の装置を対象とする設定がなされたことの検出に応じて、検出した前記一括設定以前へのロールバックの規制、又はアラートの出力を行う、処理をコンピュータに実行させる。
【発明の効果】
【０００９】
ロールバック処理により発生するネットワークの不具合を抑制できる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例１に係るネットワーク管理システムの構成例を示す図である。
【図２】図２は、実施例１に係るネットワーク管理装置の機能的構成を示すブロック図である。
【図３】図３は、逆コマンドの生成の一例を示す図である。
【図４】図４は、操作履歴データの一例を示す図である。
【図５】図５は、設定操作および設定内容の時系列を示す模式図である。
【図６】図６は、ロールバック一覧画面の一例を示す図である。
【図７】図７は、ロールバック一覧画面の一例を示す図である。
【図８】図８は、ロールバック一覧画面の一例を示す図である。
【図９】図９は、ロールバック一覧画面の一例を示す図である。
【図１０】図１０は、実施例１に係る逆コマンド生成処理の手順を示すフローチャートである。
【図１１】図１１は、実施例１に係るロールバック処理の手順を示すフローチャート（１）である。
【図１２】図１２は、実施例１に係るロールバック処理の手順を示すフローチャート（２）である。
【図１３】図１３は、実施例１及び実施例２に係るロールバック処理制御プログラムを実行するコンピュータのハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１１】
以下に添付図面を参照して本願に係るロールバック処理制御プログラム、ロールバック処理制御方法及びロールバック処理制御装置について説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１２】
［システム構成］
図１は、実施例１に係るネットワーク管理システムの構成例を示す図である。図１に示すネットワーク管理システム１は、ネットワークＮＷを構築するネットワーク装置３０Ａ〜３０Ｃを管理するネットワーク管理サービスを提供するものであり、一例として、ネットワーク装置３０Ａ〜３０Ｃに対する各種設定を実行したり、ネットワーク装置３０Ａ〜３０Ｃへの設定をロールバックしたりすることができる。【００１３】
図１に示すように、ネットワーク管理システム１には、ネットワーク管理装置１０と、ネットワーク装置３０Ａ〜３０Ｃと、クライアント端末５０とが含まれる。以下では、ネットワーク装置３０Ａ〜３０Ｃのことを総称する場合に「ネットワーク装置３０」と記載する場合がある。なお、図１には、３つのネットワーク装置３０Ａ、ネットワーク装置３０Ｂ及びネットワーク装置３０Ｃがネットワーク管理装置１０に収容される場合を例示したが、これに限定されない。すなわち、ネットワーク管理装置１０が収容するネットワーク装置の数３０は任意であってかまわない。【００１４】
ネットワーク管理装置１０は、上記のネットワーク管理サービスを提供するコンピュータである。【００１５】
一実施形態として、ネットワーク管理装置１０は、上記のネットワーク管理サービスを実現するパッケージソフトウェアやオンラインソフトウェアを所望のコンピュータにインストールさせることによってＳＤＮ（Software-Defined  Networking）コントローラとして実装できる。このネットワーク管理装置１０は、ネットワークＮＷの一例として、ＩＰ−ＶＰＮ（Internet  Protocol  Virtual  Private  Network）や広域イーサネット（登録商標）などのキャリアイーサネット（登録商標）の監視、設定や制御などを含む管理を実行することができる。このようにネットワーク管理装置１０により管理されるネットワークＮＷは、物理ネットワークに限定されず、ＳＤＮやＮＦＶ（Network  Function  Virtualization）などの技術により仮想化された仮想ネットワークであってもよい。【００１６】
ネットワーク装置３０は、ネットワークＮＷを構築する装置であり、例えば、ルータやスイッチなどのデータ転送装置を始め、ファイアーウォール、ロードバランサなどを採用することができる。【００１７】
クライアント端末５０は、上記のネットワーク管理サービスの提供を受けるコンピュータであり、一例として、ネットワークＮＷを管理するネットワーク管理者等の関係者により使用される。【００１８】
［ネットワーク管理装置１０の構成］
図２は、実施例１に係るネットワーク管理装置１０の機能的構成を示すブロック図である。図２に示すように、ネットワーク管理装置１０は、通信Ｉ／Ｆ（interface）部１１と、記憶部１３と、制御部１５とを有する。なお、ネットワーク管理装置１０は、図２に示した機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイスなどの機能部を有することとしてもかまわない。【００１９】
通信Ｉ／Ｆ部１１は、他の装置、例えばネットワーク装置３０やクライアント端末５０との間で通信制御を行うインタフェースである。【００２０】
一実施形態として、通信Ｉ／Ｆ部１１は、ＬＡＮカードなどのネットワークインタフェースカードを採用できる。例えば、通信Ｉ／Ｆ部１１は、ネットワークの設定に関するコマンドやその逆コマンドをネットワーク装置３０へ送信したり、ネットワーク装置３０からネットワーク装置３０が記憶する設定ファイル、例えば「running-config」や「startup-config」を受信したりする。また、通信Ｉ／Ｆ部１１は、クライアント端末５０からネットワークの設定に対する編集操作やネットワークの設定に関するロールバック指示を受け付ける。この他、通信Ｉ／Ｆ部１１は、ネットワークの設定を編集する編集画面やロールバックの対象とされる設定操作の一覧が登載されたロールバック一覧画面などをクライアント端末５０へ送信したりする。【００２１】
記憶部１３は、制御部１５で実行されるＯＳ（Operating  System）を始め、上記のネットワーク管理サービスを実現するネットワーク管理プログラムなどの各種プログラムに用いられるデータを記憶する記憶デバイスである。【００２２】
一実施形態として、記憶部１３は、ネットワーク管理装置１０における補助記憶装置として実装することができる。例えば、記憶部１３には、ＨＤＤ（Hard  Disk  Drive）、光ディスクやＳＳＤ（Solid  State  Drive）などを採用できる。なお、記憶部１３は、必ずしも補助記憶装置として実装されずともよく、ネットワーク管理装置１０における主記憶装置として実装することもできる。この場合、記憶部１３には、各種の半導体メモリ素子、例えばＲＡＭ（Random  Access  Memory）やフラッシュメモリを採用できる。【００２３】
記憶部１３は、制御部１５で実行されるプログラムに用いられるデータの一例として、操作履歴データ１３ａと、逆コマンドデータ１３ｂとを記憶する。このように図２に示された操作履歴データ１３ａ及び逆コマンドデータ１３ｂ以外にも、他の電子データを併せて記憶することもできる。【００２４】
例えば、記憶部１３には、ネットワーク管理装置１０及び各ネットワーク装置３０との間で互いが記憶する設定ファイル、例えば「running-config」や「startup-config」を比較することにより差分を抽出するために、各ネットワーク装置３０に記憶された設定ファイルの複製を記憶することができる。また、記憶部１３には、ネットワークの管理者等のユーザの権限を管理するために、ユーザごとにネットワークの設定を許可するネットワーク装置３０またはネットワーク装置３０のグループが規定されたユーザ権限データを記憶することができる。さらに、記憶部１３には、ネットワークの設定コマンドからその逆コマンドを生成するために、設定コマンドのテンプレートを記憶することもできる。この他、記憶部１３には、ネットワークＮＷのトポロジを管理するために、ネットワーク装置３０に関するデバイスデータやネットワーク装置３０が形成するリンクに関するリンクデータなどを記憶することもできる。【００２５】
なお、ここでは、操作履歴データ１３ａ及び逆コマンドデータ１３ｂの説明については、操作履歴データ１３ａ及び逆コマンドデータ１３ｂが生成される処理部の説明がなされる段階で併せて説明することとする。【００２６】
制御部１５は、各種のプログラムや制御データを格納する内部メモリを有し、これらによって各種の処理を実行するものである。【００２７】
一実施形態として、制御部１５は、中央処理装置、いわゆるＣＰＵ（Central  Processing  Unit）として実装される。なお、制御部１５は、必ずしも中央処理装置として実装されずともよく、ＭＰＵ（Micro  Processing  Unit）として実装されることとしてもよい。また、制御部１５は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などのハードワイヤードロジックによっても実現できる。【００２８】
制御部１５は、図示しない主記憶装置として実装されるＤＲＡＭ（Dynamic  Random  Access  Memory）やＳＲＡＭ（Static  Random  Access  Memory）などのＲＡＭのワークエリア上に記憶部１３に記憶されたネットワーク管理プログラムを展開することにより、下記の処理部を仮想的に実現する。例えば、制御部１５は、図２に示すように、第１受付部１５ａと、監視部１５ｂと、設定部１５ｃと、逆コマンド生成部１５ｄと、ロールバック制御部１５ｅと、出力制御部１５ｆと、第２受付部１５ｇとを有する。【００２９】
第１受付部１５ａは、ネットワーク装置３０に対する各種設定を受け付ける処理部である。【００３０】
一実施形態として、第１受付部１５ａは、ネットワーク装置３０に対する各種の設定をＧＵＩ（Graphical  User  Interface）を介して受け付けることができる。例えば、第１受付部１５ａは、物理ネットワークや仮想ネットワークのトポロジが可視化されたマップ上でネットワーク装置３０の指定を受け付けた状態、例えばマウスオーバーがなされた状態で、ネットワーク設定を実施するＧＵＩコンポーネントが操作された場合に、当該ネットワーク装置３０に関する各種設定の新規登録や更新などの編集を受け付けることができる。ここで、第１受付部１５ａは、１つのネットワーク装置３０に対する設定を個別に受け付けることもできるし、複数のネットワーク装置３０、例えばグループ設定が行われたネットワーク装置３０群に対する設定を一括して受け付けることもできる。かかる設定の例として、第１受付部１５ａは、ＶＬＡＮ（Virtual  Local  Area  Network）やサブネットなどの設定を受け付けることができる。その後、第１受付部１５ａは、編集が受け付けられた内容を設定に反映する操作を受け付ける。以下では、設定の編集を受け付ける操作、さらには、編集が受け付けられた内容を設定に反映する操作を総称して「設定操作」と記載する場合がある。【００３１】
監視部１５ｂは、ネットワークＮＷを監視する処理部である。【００３２】
一実施形態として、監視部１５ｂは、あくまで一例として、第１受付部１５ａにより設定操作が受け付けられた場合、例えば１又は複数のネットワーク装置３０に対する設定の新規登録または設定変更が実施される場合、次のような処理を実行する。【００３３】
例えば、監視部１５ｂは、設定操作が行われたネットワーク装置３０から、起動時にＮＶＲＡＭ（Non  Volatile  RAM）等の不揮発性メモリから読み込まれる「startup-config」と、ＲＡＭ上に展開されている「running-config」とを取得する。その上で、監視部１５ｂは、設定操作が行われたネットワーク装置３０から取得された「startup-config」及び「running-config」の２つの設定ファイルを比較することにより、２つの設定ファイルが一致するか否かを判定する。例えば、監視部１５ｂは、２つの設定ファイルからｄｉｆｆやハッシュ値を算出する処理を実行することにより、２つの設定ファイルの差分の有無を判定することができる。【００３４】
ここで、「startup-config」及び「running-config」が一致しない場合、次のような状況を判断できる。例えば、ネットワークの管理者等がtelnetなどのプロトコルを介してネットワーク装置３０に接続し、ＣＬＩ（Command  Line  Interface）などを介して設定が行われた公算が高く、ネットワーク管理装置１０、いわゆるＳＤＮコントローラを介さずに「running-config」が更新された状況を推定できる。以下では、ＣＬＩを介して行われるコマンドによりネットワーク設定が行われることを「外部コマンド操作」と記載する場合がある。このように外部コマンド操作が行われた場合、ネットワーク装置３０から取得された更新後の「running-config」と、記憶部１３がネットワーク装置３０の管理用に記憶する更新前の「running-config」との差分から、更新の内容に対応する設定コマンドを解釈できるとは限らず、逆コマンドも生成できるとは限らない。この場合、外部コマンド操作が行われる以前の操作へのロールバックが実行されると、ネットワークＮＷに不具合が発生する場合もある。よって、外部コマンド操作が行われる以前の操作へのロールバックを規制するために、外部コマンド操作が行われる以前に生成された逆コマンドは無効化される。【００３５】
一方、監視部１５ｂは、「startup-config」及び「running-config」が一致する場合、記憶部１３に記憶された図示しないリンクデータを参照する。かかるリンクデータには、一例として、リンクがトポロジから削除されたか否かを示す削除フラグが含まれる。例えば、削除フラグが「false」であればリンクが削除されておらず、削除フラグが「true」であればリンクが削除されたことを判別できる。このようなリンクデータを参照して、監視部１５ｂは、設定が編集されるネットワーク装置３０を含むリンクに関する削除フラグに「false」が設定されているか否かを判定する。【００３６】
このとき、設定が編集されるネットワーク装置３０を含むリンクに関する削除フラグに「true」が設定されている場合、トポロジから削除されたリンクに含まれるネットワーク装置３０の設定がロールバックされるのを規制するために、削除フラグに「true」が設定される以前に生成された逆コマンドは無効化される。【００３７】
また、監視部１５ｂは、設定が編集されるネットワーク装置３０を含むリンクに関する削除フラグに「false」が設定されている場合、先にネットワーク装置３０から取得された「startup-config」と、記憶部１３がネットワーク装置３０の管理用に記憶する「startup-config」とを比較する。例えば、監視部１５ｂは、２つの「startup-config」の更新日時の一致または不一致を判定したり、２つの「startup-config」からｄｉｆｆやハッシュ値を算出する処理を実行することにより２つの「startup-config」の差分の有無を判定したりすることができる。【００３８】
この結果、２つの「startup-config」が一致しない場合、上記の外部コマンド操作が行われた公算が高いと判断できる。この場合にも、外部コマンド操作が行われる以前の操作へのロールバックを規制するために、外部コマンド操作が行われる以前に生成された逆コマンドは無効化される。【００３９】
なお、ここでは、あくまで一例として、設定操作が行われた場合に、上記３つの判定、すなわちネットワーク装置３０における２つの設定ファイルの比較、リンクの削除フラグの確認およびネットワーク装置３０及びネットワーク管理装置１０間の「startup-config」の比較を行う場合を例示したが、これに限定されない。すなわち、監視部１５ｂは、時間に関する条件にしたがって各ネットワーク装置３０ごとに上記３つの判定を実施することができる。例えば、監視部１５ｂは、前回に判定を行ってから所定の期間、例えば１分間が経過した場合、ネットワーク管理装置１０が保持するシステム時刻が所定の定期時刻に到達する場合、上記３つの判定を実施することができる。この他、監視部１５ｂは、ロールバックが指示された場合にも、ロールバック処理を実行する前に上記３つの判定を実施することもできる。【００４０】
設定部１５ｃは、ネットワーク装置３０に対する各種設定を行う処理部である。【００４１】
一実施形態として、設定部１５ｃは、第１受付部１５ａにより編集が受け付けられた内容に関する設定コマンドをネットワーク装置３０へ送信する。これによって、第１受付部１５ａにより編集が受け付けられた内容がネットワーク装置３０に記憶された「running-config」へ登録される結果、ネットワーク装置３０の設定が更新される。そして、設定部１５ｃは、ネットワーク装置３０から更新後の「startup-config」または「startup-config」の更新日時を取得し、記憶部１３がネットワーク装置３０の管理用に記憶する「startup-config」または「startup-config」の更新日時を上書き更新する。【００４２】
ここで、設定部１５ｃは、ネットワーク装置３０の設定が更新された場合、記憶部１３がロールバック用に記憶する操作履歴データ１３ａを更新する。かかる操作履歴データ１３ａには、「操作Ｎｏ．」、「ユーザ名」、「デバイスグループ名」、「機能種別」、「変更日時」、「内容」、「フラグ１」、「フラグ２」及び「フラグ３」などの項目の一部または全部を含むデータを採用できる。ここで言う「操作Ｎｏ．」とは、設定操作を識別する番号を指し、例えば、最新に行われた設定操作から昇順に連番が採番される。また、「ユーザ名」とは、設定操作を行ったユーザの名称を指す。また、「デバイスグループ名」とは、設定操作が行われたネットワーク装置３０のグループの名称を指す。また、「変更日時」とは、設定操作により設定が変更された日時を指し、例えば、「yyyy／mm／dd  hh／mm／ss」などで表される。また、「設定操作内容」とは、設定操作の内容を指す。また、「フラグ１」は、設定操作が行われた後に当該設定操作が行われたネットワーク装置３０に外部コマンド操作が行われたか否かを示すフラグを指し、例えば、フラグ１が「false」に設定されている場合には外部コマンド操作が行われておらず、フラグ１が「true」に設定されている場合には外部コマンド操作が行われていることを意味する。また、「フラグ２」は、設定操作が行われた後に当該設定操作が行われたネットワーク装置３０を含むリンクが削除または編集されたか否かを示すフラグを指し、例えば、フラグ２が「false」に設定されている場合にはリンクの編集または削除が行われておらず、フラグ２が「true」に設定されている場合にはリンクの編集または削除が行われていることを意味する。また、「フラグ３」は、設定操作のロールバック処理にエラーが発生したか否かを示すフラグを指し、例えば、フラグ３が「false」に設定されている場合には設定操作に対するロールバック処理時が実行されておらず、フラグ３が「true」に設定されている場合にはロールバック処理時にエラーが発生したことを意味する。【００４３】
例えば、設定部１５ｃは、ネットワーク装置３０から取得された「startup-config」及び「running-config」が一致し、ネットワーク装置３０を含むリンクの削除フラグに「false」が設定されており、かつネットワーク管理装置１０及びネットワーク装置３０の間で「startup-config」が一致する場合、第１受付部１５ａを介して受け付けた設定操作に関するレコードを記憶部１３に記憶された操作履歴データ１３ａに追加登録する。このとき、設定部１５ｃは、最新の設定操作から所定数、例えば２０操作までの履歴に関するレコードを操作履歴データ１３ａとして記憶部１３に保持させ、それ以前の設定操作に関するレコードを記憶部１３から削除することもできる。【００４４】
また、設定部１５ｃは、監視部１５ｂにより外部コマンド操作が検出された場合、すなわちネットワーク装置３０から取得された「startup-config」及び「running-config」が一致しない場合、あるいはネットワーク管理装置１０及びネットワーク装置３０の間で「startup-config」が一致しない場合、次のような処理を実行する。すなわち、設定部１５ｃは、記憶部１３に記憶された操作履歴データ１３ａのうち外部コマンド操作が検出されたネットワーク装置３０のデバイス名を設定操作内容のフィールドに含み、かつ外部コマンド操作が検出された時点以前のレコードを検索する。その上で、設定部１５ｃは、当該検索がヒットした全てのレコードが持つフラグ１に「true」を設定する。これによって、フラグ１に「true」が設定されたレコードに関する設定操作のロールバックが規制される。【００４５】
また、設定部１５ｃは、ネットワーク装置３０を含むリンクの削除フラグに「true」が設定されている場合、記憶部１３に記憶された操作履歴データ１３ａのうちリンクの削除が検出されたネットワーク装置３０のデバイス名を設定操作内容のフィールドに含み、かつリンクの削除が検出された以前のレコードを検索する。その上で、設定部１５ｃは、当該検索がヒットした全てのレコードが持つフラグ２に「true」を設定する。これによって、フラグ２に「true」が設定されたレコードに関する設定操作のロールバックが規制される。【００４６】
逆コマンド生成部１５ｄは、逆コマンドを生成する処理部である。【００４７】
一実施形態として、逆コマンド生成部１５ｄは、ネットワーク装置３０から取得された「startup-config」及び「running-config」が一致し、ネットワーク装置３０を含むリンクの削除フラグに「false」が設定されており、かつネットワーク管理装置１０及びネットワーク装置３０の間で「startup-config」が一致する場合、逆コマンドを生成する。例えば、逆コマンド生成部１５ｄは、ネットワーク装置３０から更新後の「running-config」を取得した上で更新前後の「running-config」を比較することにより、２つの「running-config」の差分を抽出する。続いて、逆コマンド生成部１５ｄは、２つの「running-config」の差分から設定操作が設定値の変更であるか否かを判定する。そして、逆コマンド生成部１５ｄは、設定操作が設定値の変更である場合、次のようにして逆コマンドを生成する。すなわち、逆コマンド生成部１５ｄは、当該設定操作が行われたネットワーク装置３０ごとに「running-config」に含まれる項目のうち差分が抽出された項目の設定値を当該設定操作前の設定値へ変更する逆コマンドを生成する。また、逆コマンド生成部１５ｄは、設定操作が設定値の変更でない場合、２つの「running-config」の差分から設定操作が初期値、例えばエンプティ等からの変更、すなわち新規登録であるか否かを判定する。このとき、逆コマンド生成部１５ｄは、設定操作が新規登録である場合、次のようにして逆コマンドを生成する。すなわち、逆コマンド生成部１５ｄは、当該設定操作が行われたネットワーク装置３０ごとに「running-config」に含まれる項目のうち差分が抽出された項目の設定値を削除する逆コマンドを生成する。なお、初期値がＮＵＬＬ値である場合には、差分が抽出された項目の設定値を初期値、すなわちＮＵＬＬ値へ変更する逆コマンドを生成することとすればよい。さらに、逆コマンド生成部１５ｄは、設定操作が設定値の変更でも新規登録でもない場合、２つの「running-config」の差分から設定操作が削除であるか否かを判定する。このとき、逆コマンド生成部１５ｄは、設定操作が設定値の削除である場合、次のようにして逆コマンドを生成する。すなわち、逆コマンド生成部１５ｄは、当該設定操作が行われたネットワーク装置３０ごとに「running-config」に含まれる項目のうち差分が抽出された項目の設定値を当該削除操作前の設定値で新規登録する逆コマンドを生成する。このように生成された逆コマンドは、操作履歴データ１３ａのフィールド「操作Ｎｏ．」の値と関連付けられた状態で記憶部１３に記憶された逆コマンドデータ１３ｂへ追加登録される。【００４８】
図３は、逆コマンドの生成の一例を示す図である。図３には、デバイスＡのＶＬＡＮ設定が行われた例が示されている。図３に示すデバイスＡの例では、操作１によりＶＬＡＮ  ＩＤを設定ａ０から設定ａ１へ変更する更新、すなわちＶＬＡＮ  ＩＤを「１０」から「１００」へ変更する更新が行われている。この場合、ＶＬＡＮ  ＩＤの設定値を「１０」に変更する逆コマンドが生成される。さらに、操作２によりＶＬＡＮ  ＩＤを設定ａ１から設定ａ２へ変更する更新、すなわちＶＬＡＮ  ＩＤを「１００」から「２００」へ変更する更新が行われている。この場合、ＶＬＡＮ  ＩＤの設定値を「１００」に変更する逆コマンドが生成される。さらに、操作３によりＶＬＡＮ  ＩＤを設定ａ２から設定ａ３へ変更する更新、すなわちＶＬＡＮ  ＩＤを「２００」から「３００」へ変更する更新が行われている。この場合、ＶＬＡＮ  ＩＤの設定値を「２００」に変更する逆コマンドが生成される。【００４９】
一方、逆コマンド生成部１５ｄは、ネットワーク装置３０から取得された「startup-config」及び「running-config」が一致しない場合、ネットワーク装置３０を含むリンクの削除フラグに「true」が設定されている場合、あるいはネットワーク管理装置１０及びネットワーク装置３０の間で「startup-config」が一致しない場合、当該ネットワーク装置３０に関する逆コマンドを無効化する。例えば、逆コマンド生成部１５ｄは、記憶部１３に記憶された逆コマンドデータ１３ｂのうち外部コマンド操作が検出されたネットワーク装置３０またはリンクの削除が検出されたネットワーク装置３０に関する逆コマンドを削除する。【００５０】
ロールバック制御部１５ｅは、ロールバック処理の制御を行う処理部である。【００５１】
一実施形態として、ロールバック制御部１５ｅは、クライアント端末５０からロールバックの対象とされる設定操作の一覧を含むロールバック一覧画面の閲覧要求を受け付けた場合、記憶部１３に記憶された操作履歴データ１３ａを読み出す。続いて、ロールバック制御部１５ｅは、操作履歴データ１３ａに含まれるレコードのうちレコードを１つ選択する。例えば、ロールバック制御部１５ｅは、最新の設定操作に関するレコードから順にレコードを１つずつ選択することができる。【００５２】
続いて、ロールバック制御部１５ｅは、先に選択された操作履歴データ１３ａのレコードが持つロールバックエラーのフラグ３に「false」が設定されているか否かを判定する。このとき、ロールバックエラーのフラグ３に「true」が設定されている場合、先に選択されたレコードに対応する設定操作のロールバック処理が過去に実施されているものの、その結果がエラーであったことがわかる。この場合、ロールバック制御部１５ｅは、当該レコードに関するロールバックのステータスに「ロールバックエラー」を割り当てる。【００５３】
一方、ロールバック制御部１５ｅは、ロールバックエラーのフラグ３に「false」が設定されている場合、先に選択された操作履歴データ１３ａのレコードに対応する設定操作がユーザ権限の範囲内か否かをさらに判定する。例えば、ロールバック制御部１５ｅは、記憶部１３に記憶されたユーザ権限データのうち、ロールバック一覧画面の閲覧要求を行うクライアント端末５０がネットワーク管理システム１にログイン認証に成功したアカウントのユーザ名に対応するユーザ権限を特定する。その上で、ロールバック制御部１５ｅは、先に選択された操作履歴データ１３ａのレコードに含まれるフィールド「デバイスグループ名」が先に特定されたユーザ権限の範囲内であるか否かを判定する。このとき、設定操作がユーザ権限の範囲外である場合、ロールバック制御部１５ｅは、先に選択された操作履歴データ１３ａのレコードに関するロールバックのステータスに「ロールバック不可」を割り当てる。【００５４】
また、ロールバック制御部１５ｅは、設定操作がユーザ権限の範囲内である場合、先に選択された操作履歴データ１３ａのレコードが持つ外部コマンド操作のフラグ１に「false」が設定されているか否かをさらに判定する。このとき、外部コマンド操作のフラグ１に「true」が設定されている場合、当該レコードに対応する設定操作が行われた後に外部コマンド操作が実施されていることがわかる。この場合、ロールバック制御部１５ｅは、当該レコードに関するロールバックのステータスに「ロールバック不可」を割り当てる。【００５５】
また、ロールバック制御部１５ｅは、外部コマンド操作のフラグ１に「false」が設定されている場合、次のような処理をさらに実行する。すなわち、ロールバック制御部１５ｅは、記憶部１３に記憶された図示しないデバイスデータに含まれるネットワーク装置３０のうち、先に選択された操作履歴データ１３ａのレコードが持つフィールド「設定操作内容」に含まれるネットワーク装置３０の削除フラグに「false」が設定されているか否かを判定する。このとき、ネットワーク装置３０の削除フラグに「true」が設定されている場合、当該レコードに対応する設定操作が行われた後にネットワーク装置３０に関するデータがデバイスデータから削除されていることがわかる。この場合、ロールバック制御部１５ｅは、当該レコードに関するロールバックのステータスに「ロールバック不可」を割り当てる。【００５６】
また、ロールバック制御部１５ｅは、ネットワーク装置３０の削除フラグに「false」が設定されている場合、先に選択された操作履歴データ１３ａのレコードが持つリンクの編集・削除のフラグ２に「false」が設定されているか否かをさらに判定する。このとき、リンクの編集・削除のフラグ２に「true」が設定されている場合、当該レコードに対応する設定操作が行われた後にネットワーク装置３０を含むリンクがトポロジから削除されていることがわかる。この場合、ロールバック制御部１５ｅは、当該レコードに関するロールバックのステータスに「ロールバック不可」を割り当てる。【００５７】
また、ロールバック制御部１５ｅは、リンクの編集・削除のフラグ２に「false」が設定されている場合、先に選択された操作履歴データ１３ａのレコードが持つフィールド「設定操作内容」に含まれるネットワーク装置３０ごとに、ロールバック一覧画面の閲覧要求を受け付けた時点から遡って最初の設定操作、すなわち最新の設定操作であるかをさらに判定する。このとき、全てのネットワーク装置３０において最新の設定操作である場合、ロールバック処理の実行に支障がない公算が高いことを判断できる。この場合、ロールバック制御部１５ｅは、当該レコードに関するロールバックのステータスに「ロールバック可」を割り当てる。一方、いずれかのネットワーク装置３０において最新の設定操作でない場合、先に選択された操作履歴データ１３ａのレコードに対応する設定操作よりも前に行われた設定操作の中でもフィールド「設定操作内容」に含まれるネットワーク装置３０よりも先に行われた関連の設定操作に関するロールバック処理が実行されることを条件に、先に選択された操作履歴データ１３ａのレコードに対応する設定操作のロールバックを許可してもよいことがわかる。この場合、ロールバック制御部１５ｅは、当該レコードに関するロールバックのステータスに「ロールバック待ち」を割り当てる。【００５８】
このように操作履歴データ１３ａに含まれるレコードに対応する設定操作ごとに当該設定操作が「ロールバック可」、「ロールバック待ち」、「ロールバック不可」または「ロールバックエラー」のいずれかに分類されることになる。【００５９】
出力制御部１５ｆは、クライアント端末５０に対する出力制御を行う処理部である。【００６０】
一実施形態として、出力制御部１５ｆは、ロールバック制御部１５ｅにより設定操作ごとに割り当てられたロールバックのステータスにしたがってロールバック一覧画面をクライアント端末５０に表示させる。例えば、出力制御部１５ｆは、操作履歴データ１３ａに含まれる各レコードが持つフィールド「操作Ｎｏ．」が小さい順に各レコードが持つフィールの情報の一部又は全部を登載すると共に、各レコードに割り当てられたロールバックのステータス「ロールバック可」、「ロールバック待ち」、「ロールバック不可」または「ロールバックエラー」に対応するアイコン等のマークを対応付けることにより、ロールバック一覧画面の表示用データを生成する。このように生成された表示用データを用いて、出力制御部１５ｆは、ロールバック一覧画面をクライアント端末５０に表示させる。【００６１】
第２受付部１５ｇは、ロールバック指示を受け付ける処理部である。【００６２】
一実施形態として、第２受付部１５ｇは、出力制御部１５ｆによりロールバック一覧画面がクライアント端末５０に表示された状態でロールバック指示を受け付ける。具体的には、第２受付部１５ｇは、ロールバック一覧画面に含まれるレコードの一覧の中からいずれかのレコードを選択することにより、ロールバック処理を実行する設定操作の指定を受け付ける。例えば、ロールバックのステータスとして「ロールバック可」が割り当てられたレコードが選択された場合、ロールバック処理の実行指示を受け付けるＧＵＩコンポーネント、例えば実行ボタンがアクティブな状態で出力制御部１５ｆにより表示される。また、ロールバックのステータスとして「ロールバック待ち」が割り当てられたレコードが選択された場合、出力制御部１５ｆにより次のような表示が行われる。すなわち、当該選択されたレコードに対応する設定操作よりも前に行われた設定操作であり、かつ当該選択されたレコードが持つフィールド「設定操作内容」に含まれるネットワーク装置３０に関する設定操作が先に行われた関連の設定操作に対応するレコードが他のレコードの表示形態と異なる区別可能な表示形態、例えば文字や塗り潰しの表示色の変更、「関連ロールバック」等のアイコンの表示、あるいは網掛け等の強調表示で表示されると共に、ロールバック処理の実行指示を受け付けるＧＵＩコンポーネントが非アクティブな状態で表示される。また、ロールバックのステータスとして「ロールバック不可」が割り当てられたレコードが選択された場合、ロールバック処理の実行指示を受け付けるＧＵＩコンポーネントが非アクティブな状態で表示される。【００６３】
このように設定操作の指定が受け付けられた状態で、第２受付部１５ｇは、上記のＧＵＩコンポーネントを介して、ロールバック処理の実行指示をさらに受け付ける。ここで、ＧＵＩコンポーネントが操作された場合、ＧＵＩコンポーネントがアクティブな状態であれば、当該指定が受け付けられた設定操作に対応する逆コマンドを実行することにより、設定操作をロールバックするロールバック処理がロールバック制御部１５ｅにより実施される。このようにロールバック処理が実行された場合、当該ロールバック処理により設定が更新された後の「startup-config」をロールバック処理が実行された各ネットワーク装置３０から取得した上で記憶部１３がネットワーク装置３０の管理用に記憶する「startup-config」または「startup-config」の更新日時が上書き更新される。これと共に、当該ロールバック処理が実行された設定操作に対応するレコードが操作履歴データ１３ａから削除される。一方、ＧＵＩコンポーネントがアクティブな状態でなければ、当該指定が受け付けられた設定操作をロールバックするロールバック処理は規制される。【００６４】
［ロールバック制御の具体例］
図４〜図９を用いて、ロールバック制御の具体例について説明する。図４は、操作履歴データ１３ａの一例を示す図である。図５は、設定操作および設定内容の時系列を示す模式図である。図６〜図９は、ロールバック一覧画面の一例を示す図である。【００６５】
図４には、操作１〜操作７の計７個の設定操作に関するレコードが示されている。ここでは、説明の便宜上、７つのレコードを抜粋して例示したが、ロールバック一覧画面に表示されるレコード数はこれに限定されない。図４に示す操作履歴データ１３ａの場合、各設定操作とその設定操作の内容は図５に示す模式図の通りとなる。なお、図４及び図５に示すデバイスＡ、デバイスＢ及びデバイスＣには、次のようなグループ設定がなされているものとする。すなわち、図５に示すように、グループＡには、デバイスＡが含まれ、グループＢには、デバイスＢが含まれると共に、グループＣには、デバイスＣが含まれる。また、グループＺには、デバイスＡ及びデバイスＢが含まれる。さらに、グループＸには、デバイスＡ、デバイスＢ及びデバイスＣが含まれる。【００６６】
図５に示す操作７では、デバイスＡのＶＬＡＮ  ＩＤを「初期値」から「２」へ新規登録することにより、デバイスＡの設定ファイルが初期状態の「ａ０」から「ａ１」へ更新されたことを意味する。そして、図５に示す操作６では、デバイスＡのルーティングのデフォルトルートが変更されることにより、デバイスＡの設定ファイルが「ａ１」から「ａ２」へ更新されたことを意味する。その後、図５に示す操作５では、デバイスＡ、デバイスＢ及びデバイスＣのＶＬＡＮ  ＩＤが一括設定されている。すなわち、デバイスＡのＶＬＡＮ  ＩＤを「２」から「３」へ更新することにより、デバイスＡの設定ファイルが「ａ２」から「ａ３」へ更新されたことを意味する。これと共に、デバイスＢのＶＬＡＮ  ＩＤを「初期値」から「３」へ新規登録することにより、デバイスＢの設定ファイルが初期状態の「ｂ０」から「ｂ１」へ更新されたことを意味する。さらに、デバイスＣのＶＬＡＮ  ＩＤを「初期値」から「３」へ新規登録することにより、デバイスＣの設定ファイルが初期状態の「ｃ０」から「ｃ１」へ更新されたことを意味する。【００６７】
続いて、図５に示す操作４では、デバイスＡ及びデバイスＢのＶＬＡＮ  ＩＤが一括設定されている。すなわち、デバイスＡのＶＬＡＮ  ＩＤを「３」から「４」へ更新することにより、デバイスＡの設定ファイルが「ａ３」から「ａ４」へ更新されたことを意味する。これと共に、デバイスＢのＶＬＡＮ  ＩＤを「３」から「４」へ更新することにより、デバイスＢの設定ファイルが「ｂ１」から「ｂ２」へ更新されたことを意味する。そして、図５に示す操作３では、デバイスＢのＶＬＡＮ  ＩＤを「４」から「５」へ更新することにより、デバイスＢの設定ファイルが「ｂ２」から「ｂ３」へ更新されたことを意味する。続いて、図５に示す操作２では、デバイスＡのＶＬＡＮ  ＩＤを「４」から「６」へ更新することにより、デバイスＡの設定ファイルが「ａ４」から「ａ５」へ更新されたことを意味する。さらに、図５に示す操作１では、デバイスＡのＶＬＡＮ  ＩＤを「６」から「７」へ更新することにより、デバイスＡの設定ファイルが「ａ５」から「ａ６」へ更新されたことを意味する。【００６８】
ここで、図４に示す操作１及び操作３に対応するレコードが「ロールバック可」に分類されると共に、図４に示す操作１及び操作３に対応するレコード以外のレコードが「ロールバック待ち」に分類される。なぜなら、各レコードのフラグ１〜フラグ３には「true」が設定されておらず、かつ操作１及び操作３に対応するレコード以外のレコードには、フィールド「設定操作内容」に含まれるデバイスの中に先に設定操作が行われたデバイスが存在するからである。【００６９】
このような設定操作の履歴の下、全体管理者権限を持つユーザ、すなわち図４に示したユーザの中では全体管理者３及び全体管理者４などの場合、図６に示すロールバック一覧画面がクライアント端末５０に表示される。図６の上段には、一覧の中のレコードが未選択の状態である場合のロールバック一覧画面６００が示されていると共に、図６の下段には、一覧の中のレコードのうち操作５に対応するレコードが選択された状態である場合のロールバック一覧画面６２０が示されている。【００７０】
図６に示すロールバック一覧画面６００の通り、全体管理者３及び全体管理者４は、全てのデバイスに対する設定操作を行う権限を有するので、図４に示した操作履歴データ１３ａに含まれる全てのレコードが表示される。そして、ロールバック処理を実行する設定操作が指定されていない状態では、操作１及び操作３に対応するレコードには、当該レコードのロールバックに関するステータスが「ロールバック可」であることを示すアイコンが対応付けて表示される。この段階では、ロールバック処理の実行指示を受け付ける実行ボタン６１０は非アクティブな状態で表示される。仮に操作１及び操作３に対応するレコードが選択された場合、当該実行ボタン６１０の状態がアクティブに切り替わる。【００７１】
このとき、一覧の中のレコードのうち操作５に対応するレコードが選択された場合、クライアント端末５０の表示は、図６の上段に示すロールバック一覧画面６００から図６の下段に示すロールバック一覧画面６２０へ遷移する。図６に示すロールバック一覧画面６２０の通り、選択が行われた操作５に対応するレコードが他のレコードの表示形態とは異なる表示形態、図中では一番濃いハッチングで表示される。さらに、選択が行われた操作５よりも前に行われた設定操作であり、かつ操作５に対応するレコードが持つフィールド「設定操作内容」に含まれるデバイスＡ、デバイスＢまたはデバイスＣに関する設定操作が先に行われた関連の操作１〜４に対応するレコードが他のレコードの表示形態と異なる区別可能な表示形態、例えば２番目に濃いハッチングで表示される。このとき、関連の操作１〜４に対応するレコードのうち、現状でロールバックが可能である操作１及び操作３に対応するレコードには、「ロールバック可」であることを示すアイコンが対応付けて表示される。また、「ロールバック待ち」に分類された操作２及び操作４に対応するレコードには、同様に「ロールバック待ち」に分類された操作５に対応するレコードと共に「関連ロールバック」であることを示すアイコンが対応付けて表示される。この場合、関連の操作１〜４のロールバックが実行されなければ、操作５のロールバックは実行できないので、実行ボタン６３０は非アクティブな状態で表示される。かかるロールバック一覧画面６２０によれば、操作５のロールバックの前に行った方がよい操作１〜４のロールバックが一目で把握できる。【００７２】
また、デバイスグループ管理者権限を持つユーザ、すなわち図４に示したユーザの中ではＧｒｐＡ管理者５の場合、図７に示すロールバック一覧画面がクライアント端末５０に表示される。図７の上段には、一覧の中のレコードが未選択の状態である場合のロールバック一覧画面７００が示されている。図７の中段には、一覧の中のレコードのうち操作４に対応するレコードが選択された状態である場合のロールバック一覧画面７２０が示されている一方で、図７の下段には、ロールバック一覧画面７２０上で操作１及び操作２のロールバックが実行された場合のロールバック一覧画面７４０が示されている。なお、図７では、図４に示した操作履歴データ１３ａとの対応を明記する観点から図４に示した操作履歴データ１３ａの「操作Ｎｏ．」と、図７に示すロールバック一覧画面７００、７２０及び７４０の「操作Ｎｏ．」との対応関係を一致させた例を示したが、ユーザ権限またはロールバックの実行により欠番が発生した場合には一覧の上から昇順に採番し直すこともできるのは言うまでもない。【００７３】
図７に示すロールバック一覧画面７００の通り、ＧｒｐＡ管理者５は、デバイスＡに対する設定操作を行う権限しか持たない。このため、ＧｒｐＡ管理者５には、図４に示した操作履歴データ１３ａに含まれる全てのレコードが表示される訳ではない。具体的には、操作３に対応するレコードは、デバイスＢに対する設定操作であり、ＧｒｐＡ管理者５のユーザ権限の範疇であるデバイスＡが含まれないので、一覧上に表示されない。さらに、一覧上の操作４及び操作５には、ＧｒｐＡ管理者５のユーザ権限の範囲外のデバイスＢ、デバイスＣに対する設定操作も含まれるので、どういう操作を行ったかは公開されず、設定操作内容には非公開のマーク「−」が表示される。さらに、操作４及び操作５は、操作４及び操作５を全体管理者にロールバックしてもらうことができるので、「ロールバック不可」のアイコンは付与されない。【００７４】
このようにロールバック処理を実行する設定操作が指定されていない状態では、操作１に対応するレコードには、当該レコードのロールバックに関するステータスが「ロールバック可」であることを示すアイコンが対応付けて表示される。この段階では、ロールバック処理の実行指示を受け付ける実行ボタン７１０は非アクティブな状態で表示される。仮に操作１に対応するレコードが選択された場合、当該実行ボタン７１０の状態がアクティブに切り替わる。【００７５】
このとき、一覧の中のレコードのうち操作４に対応するレコードが選択された場合、クライアント端末５０の表示は、図７の上段に示すロールバック一覧画面７００から図７の中段に示すロールバック一覧画面７２０へ遷移する。図７に示すロールバック一覧画面７２０の通り、選択が行われた操作４に対応するレコードが他のレコードの表示形態とは異なる表示形態、図中では一番濃いハッチングで表示される。さらに、選択が行われた操作４よりも前に行われた設定操作であり、かつ操作４に対応するレコードが持つフィールド「設定操作内容」に含まれるデバイスＡまたはデバイスＢに関する設定操作が先に行われた関連の操作１〜２に対応するレコードが他のレコードの表示形態と異なる区別可能な表示形態、例えば２番目に濃いハッチングで表示される。このとき、関連の操作１及び操作２に対応するレコードのうち、現状でロールバックが可能である操作１に対応するレコードには、「ロールバック可」であることを示すアイコンが対応付けて表示される。また、「ロールバック待ち」に分類された操作２に対応するレコードには、同様に「ロールバック待ち」に分類された操作４に対応するレコードと共に「関連ロールバック」であることを示すアイコンが対応付けて表示される。この場合、関連の操作１〜２のロールバックが実行されなければ、操作４のロールバックは実行できないので、実行ボタン７３０は非アクティブな状態で表示される。かかるロールバック一覧画面７２０によれば、操作４のロールバックの前に行った方がよい操作１〜２のロールバックが一目で把握できる。【００７６】
そして、ロールバック一覧画面７２０上で操作１及び操作２のロールバックが実行された場合、クライアント端末５０の表示は、図７の中段に示すロールバック一覧画面７２０から図７の下段に示すロールバック一覧画面７４０へ遷移する。図７に示すロールバック一覧画面７４０の通り、ロールバックが実行済みである操作１及び操作２が一覧から削除されると共に、その後に選択が行われた操作４に対応するレコードが他のレコードの表示形態とは異なる表示形態、図中では一番濃いハッチングで表示される。さらに、選択が行われた操作４は、ＧｒｐＡ管理者５のユーザ権限の範囲外であるデバイスＢのロールバックが条件となるので、実行ボタン７５０は非アクティブな状態で表示される。この場合、ＧｒｐＡ管理者５は、ＧｒｐＺ管理者１、全体管理者３または全体管理者４に、ロールバック実行を依頼することになる。【００７７】
続いて、ロールバック不可の場合の表示について説明する。例えば、操作２及び操作３の間の期間、例えば２０１５年の５月１０日に、デバイスＡに接続されているリンクが変更または削除された場合を想定する。この場合、図４に示した操作履歴データ１３ａに含まれるフラグ２のカラムのうち操作４〜操作７のカラムには「true」が設定されることになる。これら操作４〜操作７をロールバックしてしまうとネットワークＮＷ全体としての整合性が取れなくなってしまう可能性が高い。このため、図８の上段に示すロールバック一覧画面８００が表示される。なお、図８に示すロールバック一覧画面８００、８２０、８４０には、全体管理者権限を持つユーザへの表示が示されていることとする。【００７８】
図８に示すロールバック一覧画面８００では、操作４〜操作７に対応するレコードには、各レコードのロールバックに関するステータスが「ロールバック不可」であることを示すアイコンが対応付けて表示される。一方、操作１及び操作２は、デバイスＡのリンクが変更された後にＶＬＡＮ設定が行われたので、ロールバックしてもネットワーク構成全体としての整合性は取れる可能性が高い。よって、操作１および操作２は、ロールバック不可とはされない。すなわち、操作１に対応するレコードには、ロールバックに関するステータスが「ロールバック可」であることを示すアイコンが対応付けて表示されると共に、操作２に対応するレコードは、「ロールバック待ち」に分類されているので、いずれのレコードも選択されていない現状ではアイコンが付与されずに無印で表示される。なお、例えば、操作２に対応するレコードが選択された場合、操作２に対応するレコードには、ロールバックに関するステータスが「ロールバック待ち」であることを示すアイコンを対応付けて表示することもできる。加えて、操作３は、リンクを変更したデバイスＡとは関係のないデバイスＢに対する操作であるので、「ロールバック不可」とはされず、ロールバックに関するステータスが「ロールバック可」であることを示すアイコンが対応付けて表示される。このような状況の下、ロールバック不可のレコードが選択されたとしても、実行ボタン８１０の状態は非アクティブで表示される。【００７９】
次に、操作１の後に、デバイスＡがトポロジから削除された場合を想定する。この場合、図８の中段に示すロールバック一覧画面８２０が表示される。図８に示すロールバック一覧画面８２０では、フィールド「設定操作内容」にデバイスＡが含まれる操作１、２、４〜７に対応するレコードには、各レコードのロールバックに関するステータスが「ロールバック不可」であることを示すアイコンが対応付けて表示される。このため、デバイスＡに対して行った操作のロールバックは一切できない状態となる。一方、操作３は、トポロジから削除されたデバイスＡとは関係のないデバイスＢに対する操作であるので、「ロールバック不可」とはされず、ロールバックに関するステータスが「ロールバック可」であることを示すアイコンが対応付けて表示される。このような状況の下、ロールバック不可のレコードが選択されたとしても、実行ボタン８３０の状態は非アクティブで表示される。【００８０】
次に、操作２及び操作３の間の期間、例えば２０１５年の５月１０日に、デバイスＡに外部コマンド操作が実行された場合を想定する。この場合、図４に示した操作履歴データ１３ａに含まれるフラグ１のカラムのうち操作４〜操作７のカラムには「true」が設定されることになる。これら操作４〜操作７をロールバックしてしまうと、外部コマンド操作が行われた日時以前の操作４〜操作７に、ＳＤＮコントローラが把握可能な範囲で設定を戻すこともできなくはないが、ネットワークＮＷ全体としての整合性が取れなくなってしまう可能性があるので、敢えて操作４〜操作７は「ロールバック不可」とされる。この結果、図８の下段に示すロールバック一覧画面８４０が表示される。【００８１】
図８に示すロールバック一覧画面８４０では、操作４〜操作７に対応するレコードには、各レコードのロールバックに関するステータスが「ロールバック不可」であることを示すアイコンが対応付けて表示される。一方、操作１及び操作２は、デバイスＡのリンクが変更された後にＶＬＡＮ設定が行われたので、ロールバックしてもネットワーク構成全体としての整合性は取れる可能性が高い。よって、操作１および操作２は、ロールバック不可とはされない。すなわち、操作１に対応するレコードには、ロールバックに関するステータスが「ロールバック可」であることを示すアイコンが対応付けて表示されると共に、操作２に対応するレコードは、「ロールバック待ち」に分類されているので、いずれのレコードも選択されていない現状ではアイコンが付与されずに無印で表示される。なお、例えば、操作２に対応するレコードが選択された場合、操作２に対応するレコードには、ロールバックに関するステータスが「ロールバック待ち」であることを示すアイコンを対応付けて表示することもできる。加えて、操作３は、外部コマンド操作が行われたデバイスＡとは関係のないデバイスＢに対する操作であるので、「ロールバック不可」とはされず、ロールバックに関するステータスが「ロールバック可」であることを示すアイコンが対応付けて表示される。このような状況の下、ロールバック不可のレコードが選択されたとしても、実行ボタン８５０の状態は非アクティブで表示される。【００８２】
続いて、ロールバックエラーの場合の表示について説明する。例えば、操作３のロールバックを実行したが、デバイスＢの電源が落ちていた等の原因により失敗したケースを想定する。この場合、図４に示した操作履歴データ１３ａに含まれるフラグ３のカラムのうち操作３のカラムには「true」が設定されることになる。この場合、図９に示すロールバック一覧画面９００が表示される。図９に示すロールバック一覧画面９００では、図６に示したロールバック一覧画面６００と比べて、操作３に対応するレコードの表示が異なる。すなわち、操作３に対応するレコードには、ロールバックに関するステータスが「ロールバックエラー」であることを示すアイコンが対応付けて表示される。これは、操作３は元々「ロールバック可」であったので、ユーザがロールバックを実行したが、結果としてロールバックが失敗してしまったことを表す。この場合、ロールバック失敗の原因が、デバイスＢの電源断やネットワーク断など、一時的な要因であれば再度実行して成功する可能性がある。このため、再度、操作３に対応するレコードを選択して実行することが可能である。すなわち、ロールバックエラー状態の操作３に対応するレコードが選択された場合、実行ボタン９１０の状態はアクティブに切り替わる。このような状況の下、例えば、操作４に対応するレコードが選択されると、操作１、操作２、操作３の順番にロールバックするように、関連ロールバックのアイコンが操作１、操作２、操作３の各レコードに対応付けて表示される。【００８３】
［処理の流れ］
次に、本実施例に係るネットワーク管理装置１０の処理の流れについて説明する。なお、ここでは、ネットワーク管理装置１０が実行する（１）逆コマンド生成処理を説明した後に、（２）ロールバック処理について説明することとする。【００８４】
（１）逆コマンド生成処理
図１０は、実施例１に係る逆コマンド生成処理の手順を示すフローチャートである。この処理は、一例として、第１受付部１５ａにより設定の編集が受け付けられた場合に開始される。図１０に示すように、第１受付部１５ａにより設定操作が受け付けられると（ステップＳ１０１）、例えば、監視部１５ｂは、ステップＳ１０１で設定操作が行われたネットワーク装置３０から「startup-config」及び「running-config」を取得する（ステップＳ１０２）。【００８５】
その上で、監視部１５ｂは、ステップＳ１０２で取得された「startup-config」及び「running-config」の２つの設定ファイルを比較することにより、２つの設定ファイルが一致するか否かを判定する（ステップＳ１０３）。【００８６】
ここで、「startup-config」及び「running-config」が一致しない場合（ステップＳ１０３Ｎｏ）、設定部１５ｃは、ステップＳ１０１で編集が受け付けられた内容に関する設定コマンドをネットワーク装置３０へ送信することによりネットワーク装置３０の設定を更新する（ステップＳ１１１）。この場合、設定部１５ｃは、記憶部１３に記憶された逆コマンドデータ１３ｂのうち外部コマンド操作が検出されたネットワーク装置３０に関する操作履歴レコードのフラグ１を「true」に設定することにより無効化する（ステップＳ１１２）。【００８７】
一方、「startup-config」及び「running-config」が一致する場合（ステップＳ１０３Ｙｅｓ）、監視部１５ｂは、記憶部１３に記憶された図示しないリンクデータを参照して、ステップＳ１０１で設定の編集が受け付けられたネットワーク装置３０を含むリンクに関する削除フラグに「false」が設定されているか否かを判定する（ステップＳ１０４）。【００８８】
このとき、リンクに関する削除フラグに「true」が設定されている場合（ステップＳ１０４Ｎｏ）、設定部１５ｃは、ステップＳ１０１で編集が受け付けられた内容に関する設定コマンドをネットワーク装置３０へ送信することによりネットワーク装置３０の設定を更新する（ステップＳ１１１）。この場合も、設定部１５ｃは、記憶部１３に記憶された逆コマンドデータ１３ｂのうちリンクの削除が検出されたネットワーク装置３０に関する操作履歴レコードのフラグ２を「true」に設定することにより無効化する（ステップＳ１１２）。【００８９】
一方、リンクに関する削除フラグに「false」が設定されている場合（ステップＳ１０４Ｙｅｓ）、監視部１５ｂは、ステップＳ１０２でネットワーク装置３０から取得された「startup-config」と、記憶部１３がネットワーク装置３０の管理用に記憶する「startup-config」とを比較する（ステップＳ１０５）。【００９０】
ここで、２つの「startup-config」が一致しない場合（ステップＳ１０５Ｎｏ）、上記の外部コマンド操作が行われた公算が高いと判断できる。この場合、設定部１５ｃは、ステップＳ１０１で編集が受け付けられた内容に関する設定コマンドをネットワーク装置３０へ送信することによりネットワーク装置３０の設定を更新する（ステップＳ１１１）。この場合にも、設定部１５ｃは、記憶部１３に記憶された逆コマンドデータ１３ｂのうち外部コマンド操作が検出されたネットワーク装置３０に関する操作履歴レコードのフラグ１を「true」に設定することにより無効化する（ステップＳ１１２）。【００９１】
一方、ネットワーク管理装置１０及びネットワーク装置３０の間で「startup-config」が一致する場合（ステップＳ１０５Ｙｅｓ）、設定部１５ｃは、ステップＳ１０１で編集が受け付けられた内容に関する設定コマンドをネットワーク装置３０へ送信することによりネットワーク装置３０の設定を更新する（ステップＳ１０６）。【００９２】
その後、逆コマンド生成部１５ｄは、ネットワーク装置３０から更新後の「running-config」を取得した上で更新前後の「running-config」を比較することにより、２つの「running-config」の差分を抽出する（ステップＳ１０７）。【００９３】
続いて、逆コマンド生成部１５ｄは、２つの「running-config」の差分から設定操作が設定値の変更であるか否かを判定する（ステップＳ１０８）。そして、設定操作が設定値の変更である場合（ステップＳ１０８Ｙｅｓ）、逆コマンド生成部１５ｄは、次のようにして逆コマンドを生成する。すなわち、逆コマンド生成部１５ｄは、当該設定操作が行われたネットワーク装置３０ごとに「running-config」に含まれる項目のうち差分が抽出された項目の設定値を当該設定操作前の設定値へ変更する逆コマンドを生成する（ステップＳ１０９）。【００９４】
また、設定操作が設定値の変更でない場合（ステップＳ１０８Ｎｏ）、逆コマンド生成部１５ｄは、２つの「running-config」の差分から設定操作が新規登録であるか否かを判定する（ステップＳ１１０）。そして、設定操作が新規登録である場合（ステップＳ１１０Ｙｅｓ）、逆コマンド生成部１５ｄは、当該設定操作が行われたネットワーク装置３０ごとに「running-config」に含まれる項目のうち差分が抽出された項目の設定値を削除する逆コマンドを生成する（ステップＳ１１０１）。一方、設定操作が新規登録でない場合（ステップＳ１１０Ｎｏ）、設定操作が設定値の削除であると判明する。この場合、逆コマンド生成部１５ｄは、当該設定操作が行われたネットワーク装置３０ごとに「running-config」に含まれる項目のうち差分が抽出された項目の設定値を当該削除操作前の設定値で新規登録する逆コマンドを生成する（ステップＳ１１０２）。【００９５】
その上で、設定部１５ｃは、ネットワーク装置３０から更新後の「startup-config」または「startup-config」の更新日時を取得し、記憶部１３がネットワーク装置３０の管理用に記憶する「startup-config」または「startup-config」の更新日時を上書き更新する（ステップＳ１１３）。【００９６】
その後、設定部１５ｃは、ステップＳ１０１で受け付けた設定操作に関するレコードを記憶部１３に記憶された操作履歴データ１３ａに追加登録し（ステップＳ１１４）、処理を終了する。ここで、ステップＳ１１４では、ステップＳ１０３の分岐でＮｏと判定された場合、設定部１５ｃは、記憶部１３に記憶された操作履歴データ１３ａのうち外部コマンド操作が検出されたネットワーク装置３０のデバイス名を設定操作内容のフィールドに含み、かつ外部コマンド操作が検出された時点以前のレコードが持つフラグ１に「true」を設定する。また、ステップＳ１１４では、ステップＳ１０４の分岐でＮｏと判定された場合、設定部１５ｃは、記憶部１３に記憶された操作履歴データ１３ａのうちリンクの削除が検出されたネットワーク装置３０のデバイス名を設定操作内容のフィールドに含み、かつリンクの削除が検出された時点以前のレコードが持つフラグ２に「true」を設定する。また、ステップＳ１１４では、ステップＳ１０５の分岐でＮｏと判定された場合、設定部１５ｃは、記憶部１３に記憶された操作履歴データ１３ａのうち外部コマンド操作が検出されたネットワーク装置３０のデバイス名を設定操作内容のフィールドに含み、かつ外部コマンド操作が検出された時点以前のレコードが持つフラグ１に「true」を設定する。【００９７】
（２）ロールバック処理
図１１及び図１２は、実施例１に係るロールバック処理の手順を示すフローチャートである。この処理は、一例として、クライアント端末５０からロールバックの対象とされる設定操作の一覧を含むロールバック一覧画面の閲覧要求を受け付けた場合に開始される。【００９８】
図１１に示すように、ロールバック制御部１５ｅは、記憶部１３に記憶された操作履歴データ１３ａを読み出す（ステップＳ３０１）。続いて、ロールバック制御部１５ｅは、操作履歴データ１３ａに含まれるレコードのうちレコードを１つ選択する（ステップＳ３０２）。【００９９】
続いて、ロールバック制御部１５ｅは、ステップＳ３０２で選択された操作履歴データ１３ａのレコードが持つロールバックエラーのフラグ３に「false」が設定されているか否かを判定する（ステップＳ３０３）。【０１００】
このとき、ロールバックエラーのフラグ３に「true」が設定されている場合（ステップＳ３０３Ｎｏ）、ステップＳ３０２で選択されたレコードに対応する設定操作のロールバック処理が過去に実施されているものの、その結果がエラーであったことがわかる。この場合、ロールバック制御部１５ｅは、当該レコードに関するロールバックのステータスに「ロールバックエラー」を割り当てる（ステップＳ３０４）。その後、ステップＳ３１３の処理へ移行する。【０１０１】
一方、ロールバックエラーのフラグ３に「false」が設定されている場合（ステップＳ３０３Ｙｅｓ）、ロールバック制御部１５ｅは、ステップＳ３０２で選択された操作履歴データ１３ａのレコードに対応する設定操作がユーザ権限の範囲内か否かをさらに判定する（ステップＳ３０５）。このとき、設定操作がユーザ権限の範囲外である場合（ステップＳ３０５Ｎｏ）、ロールバック制御部１５ｅは、ステップＳ３０２で選択された操作履歴データ１３ａのレコードに関するロールバックのステータスに「一覧表示対象外」を割り当てる（ステップＳ３０５１）。その後、ステップＳ３１３の処理へ移行する。【０１０２】
また、設定操作がユーザ権限の範囲内である場合（ステップＳ３０５Ｙｅｓ）、ロールバック制御部１５ｅは、ステップＳ３０２で選択された操作履歴データ１３ａのレコードが持つ外部コマンド操作のフラグ１に「false」が設定されているか否かをさらに判定する（ステップＳ３０７）。このとき、外部コマンド操作のフラグ１に「true」が設定されている場合（ステップＳ３０７Ｎｏ）、当該レコードに対応する設定操作が行われた後に外部コマンド操作が実施されていることがわかる。この場合、ロールバック制御部１５ｅは、当該レコードに関するロールバックのステータスに「ロールバック不可」を割り当てる（ステップＳ３０６）。その後、ステップＳ３１３の処理へ移行する。【０１０３】
また、外部コマンド操作のフラグ１に「false」が設定されている場合（ステップＳ３０７Ｙｅｓ）、ロールバック制御部１５ｅは、次のような処理をさらに実行する。すなわち、ロールバック制御部１５ｅは、記憶部１３に記憶された図示しないデバイスデータに含まれるネットワーク装置３０のうち、先に選択された操作履歴データ１３ａのレコードが持つフィールド「設定操作内容」に含まれるネットワーク装置３０の削除フラグに「false」が設定されているか否かを判定する（ステップＳ３０８）。【０１０４】
このとき、ネットワーク装置３０の削除フラグに「true」が設定されている場合（ステップＳ３０８Ｎｏ）、当該レコードに対応する設定操作が行われた後にネットワーク装置３０に関するデータがデバイスデータから削除されていることがわかる。この場合、ロールバック制御部１５ｅは、当該レコードに関するロールバックのステータスに「ロールバック不可」を割り当てる（ステップＳ３０６）。その後、ステップＳ３１３の処理へ移行する。【０１０５】
また、ネットワーク装置３０の削除フラグに「false」が設定されている場合（ステップＳ３０８Ｙｅｓ）、ロールバック制御部１５ｅは、ステップＳ３０２で選択された操作履歴データ１３ａのレコードが持つリンクの編集・削除のフラグ２に「false」が設定されているか否かをさらに判定する（ステップＳ３０９）。このとき、リンクの編集・削除のフラグ２に「true」が設定されている場合（ステップＳ３０９Ｎｏ）、当該レコードに対応する設定操作が行われた後にネットワーク装置３０を含むリンクがトポロジから削除されていることがわかる。この場合、ロールバック制御部１５ｅは、当該レコードに関するロールバックのステータスに「ロールバック不可」を割り当てる（ステップＳ３０６）。その後、ステップＳ３１３の処理へ移行する。【０１０６】
また、リンクの編集・削除のフラグ２に「false」が設定されている場合（ステップＳ３０９Ｙｅｓ）、ロールバック制御部１５ｅは、ステップＳ３０２で選択された操作履歴データ１３ａのレコードが持つフィールド「設定操作内容」に含まれるネットワーク装置３０ごとに、ロールバック一覧画面の閲覧要求を受け付けた時点から遡って最初の設定操作、すなわち最新の設定操作であるかをさらに判定する（ステップＳ３１０）。【０１０７】
ここで、全てのネットワーク装置３０において最新の設定操作である場合（ステップＳ３１０Ｙｅｓ）、ロールバック処理の実行に支障がない公算が高いことを判断できる。この場合、ロールバック制御部１５ｅは、当該レコードに関するロールバックのステータスに「ロールバック可」を割り当てる（ステップＳ３１１）。【０１０８】
一方、いずれかのネットワーク装置３０において最新の設定操作でない場合（ステップＳ３１０Ｎｏ）、ステップＳ３０２で選択された操作履歴データ１３ａのレコードに対応する設定操作よりも前に行われた設定操作の中でもフィールド「設定操作内容」に含まれるネットワーク装置３０よりも先に行われた関連の設定操作に関するロールバック処理が実行されることを条件に、先に選択された操作履歴データ１３ａのレコードに対応する設定操作のロールバックを許可してもよいことがわかる。この場合、ロールバック制御部１５ｅは、当該レコードに関するロールバックのステータスに「ロールバック待ち」を割り当てる（ステップＳ３１２）。【０１０９】
その後、操作履歴データ１３ａに含まれる各レコードが選択されるまで（ステップＳ３１３Ｎｏ）、上記のステップＳ３０２〜ステップＳ３１２までの処理が繰り返し実行される。そして、操作履歴データ１３ａに含まれる各レコードが選択された場合（ステップＳ３１３Ｙｅｓ）、出力制御部１５ｆは、ロールバック制御部１５ｅにより設定操作ごとに割り当てられたロールバックのステータスにしたがってロールバック一覧画面をクライアント端末５０に表示させる（ステップＳ３１４）。【０１１０】
その後、第２受付部１５ｇは、ロールバック一覧画面に含まれるレコードの一覧の中からいずれかのレコードの選択を受け付ける（ステップＳ３１５）。このとき、ロールバックのステータスとして「ロールバック可」が割り当てられたレコードが選択された場合（ステップＳ３１６Ｙｅｓ）、出力制御部１５ｆは、ロールバック処理の実行指示を受け付ける実行ボタンをアクティブな状態で表示させる（ステップＳ３１７）。【０１１１】
また、ロールバックのステータスとして「ロールバック待ち」が割り当てられたレコードが選択された場合（ステップＳ３１８Ｙｅｓ）、出力制御部１５ｆにより次のような表示が行われる。すなわち、出力制御部１５ｆは、ステップＳ３１５で選択されたレコードに対応する設定操作よりも前に行われた設定操作であり、かつ当該選択されたレコードが持つフィールド「設定操作内容」に含まれるネットワーク装置３０に関する設定操作が先に行われた関連の設定操作に対応するレコードが他のレコードの表示形態と異なる区別可能な表示形態、例えば文字や塗り潰しの表示色の変更、あるいは網掛け等の強調表示で表示させると共に、実行ボタンを非アクティブな状態で表示させる（ステップＳ３１９及びステップＳ３２０）。【０１１２】
また、ロールバックのステータスとして「ロールバック不可」が割り当てられたレコードが選択された場合（ステップＳ３１８Ｎｏ）、出力制御部１５ｆは、実行ボタンを非アクティブな状態で表示させる（ステップＳ３２０）。【０１１３】
その後、ロールバックの実行ボタンが操作されるまで（ステップＳ３２１Ｎｏ）、上記のステップＳ３１５〜ステップＳ３２０の処理が繰り返し実行される。そして、ロールバックの実行ボタンが操作された場合（ステップＳ３２１Ｙｅｓ）、ロールバック制御部１５ｅは、実行ボタンの状態がアクティブであるか否かを判定する（ステップＳ３２２）。【０１１４】
ここで、実行ボタンの状態がアクティブである場合（ステップＳ３２２Ｙｅｓ）、ロールバック制御部１５ｅは、当該指定が受け付けられた設定操作に対応する逆コマンドを実行することにより、設定操作をロールバックするロールバック処理を実行する（ステップＳ３２３）。なお、実行ボタンの状態が非アクティブである場合（ステップＳ３２２Ｎｏ）、当該指定が受け付けられた設定操作のロールバック処理は規制される。この場合、ステップＳ３１５の処理に戻る。【０１１５】
その後、ロールバック制御部１５ｅは、当該ロールバック処理により設定が更新された後の「startup-config」をロールバック処理が実行された各ネットワーク装置３０から取得した上で記憶部１３がネットワーク装置３０の管理用に記憶する「startup-config」または「startup-config」の更新日時を上書き更新する（ステップＳ３２４）と共に、当該ロールバック処理が実行された設定操作に対応するレコードを操作履歴データ１３ａから削除する（ステップＳ３２５）。その後、ステップＳ３０１で説明した操作履歴データの取得に戻り、以降の処理を繰り返し実行する。【０１１６】
［効果の一側面］
上述してきたように、本実施例に係るネットワーク管理装置１０は、複数のネットワーク装置に対する一括設定が行われた操作のロールバックが指示された場合、一括設定の後にネットワーク装置に個別設定が行われたか否かによりロールバックを規制する。したがって、本実施例に係るネットワーク管理装置１０によれば、ロールバック処理により発生するネットワークの不具合を抑制できる。
【実施例２】
【０１１７】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。【０１１８】
［逆コマンド］
上記の実施例１では、外部コマンド操作が検出された場合、逆コマンドの生成を規制する場合を例示したが、外部コマンドにより行われた設定であっても、更新前後の設定ファイルの差分から逆コマンドを割り出す解釈が可能である設定であれば、ロールバックを実行することとしてもかまわない。【０１１９】
［ロールバック］
上記の実施例１では、ネットワーク管理システム１が操作を１つずつロールバックさせる場合を例示したが、一度に複数の操作をロールバックさせることもできる。この場合、一連の逆コマンドを実行することとしてもよいし、一連の逆コマンドが同種のコマンドであるか否かを判定し、同種のコマンドである場合、ロールバックが指定された操作、すなわち複数の操作のうち最も古くに行われた操作に対応する逆コマンドだけを実行させることもできる。例えば、全ての逆コマンドが設定値の変更である場合、一度の設定値の変更によりロールバックが指定された操作の直前の操作まで設定を戻すこともできる。【０１２０】
［分散および統合］
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、第１受付部１５ａ、監視部１５ｂ、設定部１５ｃ、逆コマンド生成部１５ｄ、ロールバック制御部１５ｅ、出力制御部１５ｆまたは第２受付部１５ｇをネットワーク管理装置１０の外部装置としてネットワーク経由で接続するようにしてもよい。また、第１受付部１５ａ、監視部１５ｂ、設定部１５ｃ、逆コマンド生成部１５ｄ、ロールバック制御部１５ｅ、出力制御部１５ｆまたは第２受付部１５ｇを別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記のネットワーク管理装置１０の機能を実現するようにしてもよい。【０１２１】
［ロールバック処理制御プログラム］
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図１３を用いて、上記の実施例と同様の機能を有するロールバック処理制御プログラムを実行するコンピュータの一例について説明する。【０１２２】
図１３は、実施例１及び実施例２に係るロールバック処理制御プログラムを実行するコンピュータのハードウェア構成例を示す図である。図１３に示すように、コンピュータ１００は、操作部１１０ａと、スピーカ１１０ｂと、カメラ１１０ｃと、ディスプレイ１２０と、通信部１３０とを有する。さらに、このコンピュータ１００は、ＣＰＵ１５０と、ＲＯＭ１６０と、ＨＤＤ１７０と、ＲＡＭ１８０とを有する。これら１１０〜１８０の各部はバス１４０を介して接続される。【０１２３】
ＨＤＤ１７０には、図１３に示すように、上記の実施例１で示した第１受付部１５ａ、監視部１５ｂ、設定部１５ｃ、逆コマンド生成部１５ｄ、ロールバック制御部１５ｅ、出力制御部１５ｆまたは第２受付部１５ｇと同様の機能を発揮するロールバック処理制御プログラム１７０ａが記憶される。このロールバック処理制御プログラム１７０ａは、図２に示した第１受付部１５ａ、監視部１５ｂ、設定部１５ｃ、逆コマンド生成部１５ｄ、ロールバック制御部１５ｅ、出力制御部１５ｆまたは第２受付部１５ｇの各構成要素と同様、統合又は分離してもかまわない。すなわち、ＨＤＤ１７０には、必ずしも上記の実施例１で示した全てのデータが格納されずともよく、処理に用いるデータがＨＤＤ１７０に格納されればよい。【０１２４】
このような環境の下、ＣＰＵ１５０は、ＨＤＤ１７０からロールバック処理制御プログラム１７０ａを読み出した上でＲＡＭ１８０へ展開する。この結果、ロールバック処理制御プログラム１７０ａは、図１３に示すように、ロールバック処理制御プロセス１８０ａとして機能する。このロールバック処理制御プロセス１８０ａは、ＲＡＭ１８０が有する記憶領域のうちロールバック処理制御プロセス１８０ａに割り当てられた領域にＨＤＤ１７０から読み出した各種データを展開し、この展開した各種データを用いて各種の処理を実行する。例えば、ロールバック処理制御プロセス１８０ａが実行する処理の一例として、図１０〜図１２に示す処理などが含まれる。なお、ＣＰＵ１５０では、必ずしも上記の実施例１で示した全ての処理部が動作せずともよく、実行対象とする処理に対応する処理部が仮想的に実現されればよい。【０１２５】
なお、上記のロールバック処理制御プログラム１７０ａは、必ずしも最初からＨＤＤ１７０やＲＯＭ１６０に記憶されておらずともかまわない。例えば、コンピュータ１００に挿入されるフレキシブルディスク、いわゆるＦＤ、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させる。そして、コンピュータ１００がこれらの可搬用の物理媒体から各プログラムを取得して実行するようにしてもよい。また、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ１００に接続される他のコンピュータまたはサーバ装置などに各プログラムを記憶させておき、コンピュータ１００がこれらから各プログラムを取得して実行するようにしてもよい。
【符号の説明】
【０１２６】
１    ネットワーク管理システム
１０    ネットワーク管理装置
１１    通信Ｉ／Ｆ部
１３    記憶部
１３ａ  操作履歴データ
１３ｂ  逆コマンドデータ
１５    制御部
１５ａ  第１受付部
１５ｂ  監視部
１５ｃ  設定部
１５ｄ  逆コマンド生成部
１５ｅ  ロールバック制御部
１５ｆ  出力制御部
１５ｇ  第２受付部
３０Ａ，３０Ｂ，３０Ｃ    ネットワーク装置
【図１】
2017122364.tif 000003
【図２】
2017122364.tif 000004
【図３】
2017122364.tif 000005
【図４】
2017122364.tif 000006
【図５】
2017122364.tif 000007
【図６】
2017122364.tif 000008
【図７】
2017122364.tif 000009
【図８】
2017122364.tif 000010
【図９】
2017122364.tif 000011
【図１０】
2017122364.tif 000012
【図１１】
2017122364.tif 000013
【図１２】
2017122364.tif 000014
【図１３】
2017122364.tif 000015
【手続補正書】
【提出日】平成30年6月14日(2018.6.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の通信装置に対する一括した設定を受け付け、
前記複数の通信装置に対して前記一括した設定を実行すると共に、実行した前記一括した設定を記憶し、
前記複数の通信装置に対する前記一括した設定の実行後に、前記複数の通信装置のうち、一部の通信装置に対する他の設定を受け付けた場合に、前記一部の通信装置に対する該他の設定を行うと共に、前記一部の通信装置に対する前記他の設定を記憶し、
前記複数の通信装置のうちの特定の装置に関する設定のロールバック指示を受けた場合に、ロールバックの過程に前記特定の装置以外の１又は複数の装置を対象とする一括設定に対応する処理が含まれ、かつ、前記１又は複数の装置を対象とする設定がなされたことの検出に応じて、検出した前記一括設定以前へのロールバックの規制、又はアラートの出力を行う、
処理をコンピュータに実行させることを特徴するロールバック処理制御プログラム。
【請求項２】
前記ロールバックの過程に設定権限が許可されていない設定が含まれることを検出した場合に、前記ロールバックを規制制御、又はアラートの出力制御を行う、ことを特徴とする請求項１に記載のロールバック処理制御プログラム。
【請求項３】
前記複数の通信装置に対する前記一括した設定と、前記一部の通信装置に対する前記他の設定とを区別可能に表示し、
表示される前記他の設定に対する選択操作を受け付けた場合に、前記他の設定と、前記一括した設定とを関連付けて表示する、ことを特徴とする請求項１に記載のロールバック処理制御プログラム。
【請求項４】
記憶する前記一括設定、又は前記他の設定対象の通信装置として、管理対象外の通信装置が含まれる場合には、ロールバック指示の受け付けができないことを示す表示を行う、ことを特徴とする請求項１に記載のロールバック処理制御プログラム。
【請求項５】
複数の装置に対する一括した設定後に、該設定の前の状態に戻すロールバック指示を受け付け、
前記複数の装置のうち、少なくともいずれかの装置に対して前記一括した設定後に更なる設定がなされたことを、設定履歴を記憶する記憶部を参照して検出した場合は、前記ロールバック指示を規制し又はアラートを出力し、前記複数の装置のいかなる装置に対しても前記一括した設定後に更なる設定がなされたことを、設定履歴を記憶する記憶部を参照して検出しない場合は、前記ロールバック指示に応じたロールバック処理を実行する、
処理をコンピュータに実行させることを特徴するロールバック処理制御プログラム。
【請求項６】
複数の通信装置に対する一括した設定を受け付け、
前記複数の通信装置に対して前記一括した設定を実行すると共に、実行した前記一括した設定を記憶し、
前記複数の通信装置に対する前記一括した設定の実行後に、前記複数の通信装置のうち、一部の通信装置に対する他の設定を受け付けた場合に、前記一部の通信装置に対する該他の設定を行うと共に、前記一部の通信装置に対する前記他の設定を記憶し、
前記複数の通信装置のうちの特定の装置に関する設定のロールバック指示を受けた場合に、ロールバックの過程に前記特定の装置以外の１又は複数の装置を対象とする一括設定に対応する処理が含まれ、かつ、前記１又は複数の装置を対象とする設定がなされたことの検出に応じて、検出した前記一括設定以前へのロールバックの規制、又はアラートの出力を行う、
処理がコンピュータにより実行されることを特徴するロールバック処理制御方法。
【請求項７】
複数の通信装置に対する一括した設定を受け付ける受付部と
前記複数の通信装置に対して前記一括した設定を実行すると共に、実行した前記一括した設定を記憶する第１設定部と、
前記複数の通信装置に対する前記一括した設定の実行後に、前記複数の通信装置のうち、一部の通信装置に対する他の設定を受け付けた場合に、前記一部の通信装置に対する該他の設定を行うと共に、前記一部の通信装置に対する前記他の設定を記憶する第２設定部と、
前記複数の通信装置のうちの特定の装置に関する設定のロールバック指示を受けた場合に、ロールバックの過程に前記特定の装置以外の１又は複数の装置を対象とする一括設定に対応する処理が含まれ、かつ、前記１又は複数の装置を対象とする設定がなされたことの検出に応じて、検出した前記一括設定以前へのロールバックの規制、又はアラートの出力を行うロールバック制御部と
を有することを特徴するロールバック処理制御装置。
【国際調査報告】
2017122364.tif 000016
2017122364.tif 000017