(57)【要約】  システム更新装置１０は、更新対象のシステムである更新対象システムの状態を、更新前の状態である初期状態から、更新目的の状態である目的状態へ遷移させるための作業の手順である更新手順に基づいて更新手順の実行中に発生する可能性がある更新対象システムの状態を所定の数だけ生成する状態生成部１１と、更新対象システムの状態を生成された状態から初期状態へ遷移させるための作業の手順であるロールバック手順を生成された状態ごとに生成する手順生成部１２とを備える。
2019155827.tif 000002
【特許請求の範囲】
【請求項１】
更新対象のシステムである更新対象システムの状態を、更新前の状態である初期状態から、更新目的の状態である目的状態へ遷移させるための作業の手順である更新手順に基づいて前記更新手順の実行中に発生する可能性がある前記更新対象システムの状態を所定の数だけ生成する状態生成部と、
前記更新対象システムの状態を生成された状態から前記初期状態へ遷移させるための作業の手順であるロールバック手順を生成された状態ごとに生成する手順生成部とを備える
ことを特徴とするシステム更新装置。
【請求項２】
前記所定の数は、前記更新手順の実行中に発生する可能性がある前記更新対象システムの全ての状態の数である
請求項１記載のシステム更新装置。
【請求項３】
前記更新手順の実行中の前記更新対象システムの最新の状態を記憶する状態記憶部と、
前記更新手順の実行中に例外が発生した前記更新対象システムに対して前記状態記憶部に記憶されている最新の状態に対応するロールバック手順を実行する手順実行部とを備える
請求項１または請求項２記載のシステム更新装置。
【請求項４】
生成されたロールバック手順と、前記ロールバック手順が実行されるときの前記更新対象システムの状態とを関連付けて記憶する手順記憶部を備える
請求項１から請求項３のうちのいずれか１項に記載のシステム更新装置。
【請求項５】
前記手順生成部は、ロールバック手順の実行に要する予定時間を算出し、
前記手順記憶部は、算出された予定時間と前記ロールバック手順とを関連付けて記憶する
請求項４記載のシステム更新装置。
【請求項６】
前記状態生成部は、
前記更新手順を構成する各作業の中から任意の数の実行済みの作業が選択された組合せをそれぞれ算出し、
算出された各組合せに応じた前記更新対象システムの状態を前記更新手順の実行中に発生する可能性がある前記更新対象システムの状態としてそれぞれ生成する
請求項１から請求項５のうちのいずれか１項に記載のシステム更新装置。
【請求項７】
前記更新手順は、２つ以上の作業が順不同に実行可能に並べられた手順である
請求項１から請求項６のうちのいずれか１項に記載のシステム更新装置。
【請求項８】
前記手順生成部は、前記初期状態と前記目的状態とに基づいて前記更新手順を生成する
請求項１から請求項７のうちのいずれか１項に記載のシステム更新装置。
【請求項９】
更新対象のシステムである更新対象システムの状態を、更新前の状態である初期状態から、更新目的の状態である目的状態へ遷移させるための作業の手順である更新手順に基づいて前記更新手順の実行中に発生する可能性がある前記更新対象システムの状態を所定の数だけ生成し、
前記更新対象システムの状態を生成された状態から前記初期状態へ遷移させるための作業の手順であるロールバック手順を生成された状態ごとに生成する
ことを特徴とするシステム更新方法。
【請求項１０】
前記所定の数は、前記更新手順の実行中に発生する可能性がある前記更新対象システムの全ての状態の数である
請求項９記載のシステム更新方法。
【請求項１１】
前記更新手順の実行中の前記更新対象システムの最新の状態を状態記憶部に記憶させ、
前記更新手順の実行中に例外が発生した前記更新対象システムに対して記憶されている最新の状態に対応するロールバック手順を実行する
請求項９または請求項１０記載のシステム更新方法。
【請求項１２】
コンピュータで実行されるときに、
更新対象のシステムである更新対象システムの状態を、更新前の状態である初期状態から、更新目的の状態である目的状態へ遷移させるための作業の手順である更新手順に基づいて前記更新手順の実行中に発生する可能性がある前記更新対象システムの状態を所定の数だけ生成し、
前記更新対象システムの状態を生成された状態から前記初期状態へ遷移させるための作業の手順であるロールバック手順を生成された状態ごとに生成する
システム更新プログラム
を記録したコンピュータ読み取り可能な記録媒体。
【請求項１３】
前記所定の数は、前記更新手順の実行中に発生する可能性がある前記更新対象システムの全ての状態の数である
請求項１２記載の記録媒体。
【請求項１４】
コンピュータで実行されるときに、
前記更新手順の実行中の前記更新対象システムの最新の状態を状態記憶部に記憶させ、
前記更新手順の実行中に例外が発生した前記更新対象システムに対して記憶されている最新の状態に対応するロールバック手順を実行する
請求項１２または請求項１３記載の記録媒体。
【請求項１５】
コンピュータに、
更新対象のシステムである更新対象システムの状態を、更新前の状態である初期状態から、更新目的の状態である目的状態へ遷移させるための作業の手順である更新手順に基づいて前記更新手順の実行中に発生する可能性がある前記更新対象システムの状態を所定の数だけ生成する状態生成処理、および
前記更新対象システムの状態を生成された状態から前記初期状態へ遷移させるための作業の手順であるロールバック手順を生成された状態ごとに生成する手順生成処理
を実行させるためのシステム更新プログラム。
【請求項１６】
前記所定の数は、前記更新手順の実行中に発生する可能性がある前記更新対象システムの全ての状態の数である
請求項１５記載のシステム更新プログラム。
【請求項１７】
コンピュータに、
前記更新手順の実行中の前記更新対象システムの最新の状態を状態記憶部に記憶させる記憶処理、および
前記更新手順の実行中に例外が発生した前記更新対象システムに対して記憶されている最新の状態に対応するロールバック手順を実行する実行処理を実行させる
請求項１５または請求項１６記載のシステム更新プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システム更新装置およびシステム更新方法に関する。
【背景技術】
【０００２】
システムの管理者は、システム構築作業用の手順やシステム更新作業用の手順を、例えば、手順の雛形が蓄積されている記憶部から取得された適切な雛形を基に開発する。しかし、管理者には、状況に応じて手順を最初から手動で開発することが求められる場合がある。【０００３】
例えば、システム更新作業が実行される際、更新前の現在のシステム構成と更新後の目的のシステム構成に対して適切な手順の雛形が記憶部に蓄積されていない場合、管理者には、適切な手順を最初から手動で開発することが求められる。【０００４】
上記のように、要求に応じた手順が手動で開発されるシステム構築作業およびシステム更新作業を、命令的システム構築作業および命令的システム更新作業と呼ぶ。特に、命令的システム更新作業には、更新作業自体が複雑であることが多いため、手順の開発工数が膨大になるという問題がある。【０００５】
命令的システム構築作業および命令的システム更新作業に対して、要求に応じた手順が自動で生成されるシステム構築作業およびシステム更新作業を、宣言的システム構築作業および宣言的システム更新作業と呼ぶ。宣言的システム構築作業および宣言的システム更新作業では、部品等のシステムの構成要素、および構成要素同士の関係性が記憶部に蓄積されている。【０００６】
例えば、宣言的システム更新作業では、蓄積されている情報が用いられて、現在のシステム構成と目的のシステム構成とがそれぞれ構成要素に分解される。次いで、分解された各構成の構成要素同士が比較されることによって、現在のシステム構成を目的のシステム構成に更新可能な作業手順が、更新作業が実行される度に生成される。【０００７】
上記のように、宣言的システム更新作業には、手動での手順の開発が不要になるという利点がある。すなわち、宣言的システム更新作業は、システムの構成を更新目的の構成に自動で更新する作業である。また、宣言的システム構築作業は、構築目的の構成のシステムを自動で構築する作業である。【０００８】
上記の宣言的システム構築技術および宣言的システム更新技術を用いて、現在のシステム構成と目的のシステム構成との差分を基に構築手順や更新手順を自動で生成する技術として、例えば非特許文献１〜非特許文献３に記載されている手順生成装置がある。図１２は、一般的な手順生成装置による手順の自動生成処理の例を示す説明図である。【０００９】
図１２に示すように、手順生成装置には、構成情報としてシステムの構成管理部から現在のシステム構成が入力される。また、手順生成装置には、構成情報としてシステムの管理者から目的のシステム構成が入力される。【００１０】
図１２に示す手順生成装置は、入力された各構成情報をコンパイルすることによって、現在のシステム構成の状態を示す状態情報と、目的のシステム構成の状態を示す状態情報とをそれぞれ生成する。なお、状態情報は、上述したシステムの構成要素、および構成要素同士の関係性を示す。【００１１】
次いで、図１２に示す手順生成装置は、生成された各状態情報を比較することによって、現在のシステム構成の状態と目的のシステム構成の状態との差分である状態差分をとる。次いで、手順生成装置は、状態差分を用いて現在のシステム構成を目的のシステム構成に更新可能な作業手順を探索する。【００１２】
手順探索が行われた結果、図１２に示すようなWorkflowが生成される。また、図１２に示すように、Workflowを構成する各手順は、各システムでそれぞれ実行される。すなわち、図１２に示す手順生成装置を用いて作業手順を開発する管理者は、目的のシステム構成を入力するだけで比較的信頼性の高い作業手順を自動的に取得できる。
【先行技術文献】
【非特許文献】
【００１３】
【非特許文献１】T. Kuroda and A. Gokhale, "Model-Based IT Change Management for Large System Definitions with State-Related Dependencies," 2014 IEEE 18th International Enterprise Distributed Object Computing Conference, Ulm, 2014, pages 170-179.
【非特許文献２】T. Kuroda, M. Nakanoya, A. Kitano and A. Gokhale, "The configuration-oriented planning for fully declarative IT system provisioning automation," NOMS 2016 - 2016 IEEE/IFIP Network Operations and Management Symposium, Istanbul, 2016, pages 808-811.
【非特許文献３】M. Nakanoya, T. Kuroda and A. Kitano, "Automated Change Planning for Differential Update IT Systems with State Constraint," 2016 IEEE 20th International Enterprise Distributed Object Computing Workshop (EDOCW), Vienna, 2016, pages 1-9.
【発明の概要】
【発明が解決しようとする課題】
【００１４】
一般的に、構築作業の手順および更新作業の手順が開発される際、例外が発生した時に実行される作業の手順であるロールバック手順（例外対応手順）の開発も作業が実行される度に求められる。【００１５】
求められるロールバック手順は、例えば通常手順を構成する次の実行対象のタスクが実行不可能である場合に、システムの状態を初期状態に戻すために用いられる手順である。なお、初期状態は、作業が実行される前のシステムの状態である。【００１６】
発生する例外として、例えばリソースの不足、ユーザ割り込みによる停止、更新された後のファームウェアにおける異常の発生、実行予定時間の延長が考えられる。また、例外状態は、通常手順の実行中に発生する可能性がある対象システムの状態以外の対象システムの状態である。【００１７】
例えば、電気通信事業者（キャリア）が設けている通信ネットワークが提供する通信サービスの停止が発生した場合、事業者にとって損害額が大きい。また、通信サービスの停止が発生した場合、電気通信事業者には、関係省庁へ障害を報告することも求められる。【００１８】
上記のように、通信ネットワークの運用では、例外が発生した場合に速やかに通信サービスを復旧させることが要求されるため、安全な復旧作業の計画が予め求められる。例えば、「例外が発生しても高々３０分以内に復旧できることを保証する」という復旧作業の計画が求められる。【００１９】
図１２に示す手順生成装置では、ロールバック手順を生成することが想定されていない。よって、例外が発生した時に手順生成装置が単純に利用される場合、システムの状態を例外が発生した時の状態から初期状態へ遷移させるためのロールバック手順が、例外が発生する度に生成される。次いで、生成されたロールバック手順が実行される。【００２０】
しかし、手順生成装置がロールバック可能な手順を生成できない場合、管理者は、例外への対応に失敗してしまう。また、手順生成装置がロールバック手順を生成するための計算処理の実行に長い時間を掛けた場合、例外への対応が遅れてしまう可能性もある。【００２１】
従って、安全な復旧作業の計画を基に生成されるロールバック手順は、例外が発生する可能性がある全ての時点に対して事前に用意されることが好ましい。なお、全ての時点は、基本的に構築作業中の全時点、または更新作業中の全時点である。【００２２】
また、手順がタスクの半順序集合で表される場合、所定のタスクの実行中に発生する状態は１つに定まらない。順序集合は、順序の概念が定義された集合である。順序集合のうち、半順序集合は、要素間の順序の比較が不可能なケースが許容されている順序集合である。また、順序集合のうち、全順序集合は、要素間の順序の比較が不可能なケースが許容されていない順序集合である。【００２３】
すなわち、全順序集合で表される手順（以下、全順序手順という。）は、タスクが一列に並べられた直列な手順である。また、半順序集合で表される手順（以下、半順序手順という。）は、２つ以上のタスクが順不同に実行可能に並べられた手順である。図１３は、半順序手順の例を示す説明図である。【００２４】
図１３に示す半順序手順は、OpenStack （登録商標）を用いて２つの仮想マシンを構築し、それぞれをアプリケーションサーバとデータベースサーバとして起動させるための手順である。【００２５】
図１３に示す１つの矩形は、１つのタスクを表す。黒色の矩形は、実行済みのタスクを表す。また、白色の矩形は、未実行のタスクを表す。また、図１３に示す矢印は、先に実行されるタスクから後に実行されるタスクに向けて伸びている。【００２６】
図１３に示す半順序手順において、並列に実行可能なタスクの実行順序は、実行時の状況に応じて異なる。例えば、図１３に示すタスク「Create serverXml1 」、タスク「Make directory C」、タスク「Create DBInstance YY」の実行順序は決まっていない。【００２７】
すなわち、図１３に示すような半順序手順に従ってシステムの構築やシステムの更新が実行される場合、実行中に発生する可能性があるシステムの状態は、全順序手順が用いられる場合に比べて多い。しかし、半順序手順が用いられる場合であっても、発生する可能性がある全ての状態に対して、ロールバック手順が事前に用意されることが好ましい。【００２８】
全ての状態に対してロールバック手順を用意する処理には膨大な工数が掛かるため、ロールバック手順は、一般的に構築作業や更新作業における重要な時点に限って用意される。管理者にとって、ロールバック手順の網羅性を高めることと、計画の実行に掛かる工数を下げることを同時に満たすことは困難である。【００２９】
しかし、発生する可能性がある全ての状態に対応できなければ、管理者は、ロールバック手順が用意されていない状態において重大な影響を与える例外が発生した時に、システムを復旧できない可能性がある。全ての状態も含まれる所定の数の状態に対してロールバック手順を用意することは、作業手順計画における一般的な課題である。【００３０】
［発明の目的］
そこで、本発明は、上述した課題を解決する、作業実行中に発生する可能性がある状態に対応したロールバック手順を所定の数の状態に対して用意できるシステム更新装置およびシステム更新方法を提供することを１つの目的とする。
【課題を解決するための手段】
【００３１】
本発明の一実施形態において、システム更新装置は、更新対象のシステムである更新対象システムの状態を、更新前の状態である初期状態から、更新目的の状態である目的状態へ遷移させるための作業の手順である更新手順に基づいて更新手順の実行中に発生する可能性がある更新対象システムの状態を所定の数だけ生成する状態生成部と、更新対象システムの状態を生成された状態から初期状態へ遷移させるための作業の手順であるロールバック手順を生成された状態ごとに生成する手順生成部とを備えることを特徴とする。【００３２】
本発明の一実施形態において、システム更新方法は、更新対象のシステムである更新対象システムの状態を、更新前の状態である初期状態から、更新目的の状態である目的状態へ遷移させるための作業の手順である更新手順に基づいて更新手順の実行中に発生する可能性がある更新対象システムの状態を所定の数だけ生成し、更新対象システムの状態を生成された状態から初期状態へ遷移させるための作業の手順であるロールバック手順を生成された状態ごとに生成することを特徴とする。【００３３】
本発明の一実施形態において、システム更新プログラムを記録したコンピュータ読み取り可能な記録媒体は、コンピュータで実行されるときに、更新対象のシステムである更新対象システムの状態を、更新前の状態である初期状態から、更新目的の状態である目的状態へ遷移させるための作業の手順である更新手順に基づいて更新手順の実行中に発生する可能性がある更新対象システムの状態を所定の数だけ生成し、更新対象システムの状態を生成された状態から初期状態へ遷移させるための作業の手順であるロールバック手順を生成された状態ごとに生成するシステム更新プログラムを記憶する。【００３４】
本発明の一実施形態において、システム更新プログラムは、コンピュータに、更新対象のシステムである更新対象システムの状態を、更新前の状態である初期状態から、更新目的の状態である目的状態へ遷移させるための作業の手順である更新手順に基づいて更新手順の実行中に発生する可能性がある更新対象システムの状態を所定の数だけ生成する状態生成処理、および更新対象システムの状態を生成された状態から初期状態へ遷移させるための作業の手順であるロールバック手順を生成された状態ごとに生成する手順生成処理を実行させることを特徴とする。
【発明の効果】
【００３５】
本発明によれば、作業実行中に発生する可能性がある状態に対応したロールバック手順を所定の数の状態に対して用意できる。
【図面の簡単な説明】
【００３６】
【図１】本発明によるシステム更新装置の第１の実施形態の構成例を示すブロック図である。
【図２】第１の実施形態の網羅的状態生成部１２０による状態生成処理の動作を示すフローチャートである。
【図３】半順序手順の他の例を示す説明図である。
【図４】半順序手順における深さ優先探索処理の例を概念的に示す説明図である。
【図５】網羅的状態生成部１２０が生成する探索ツリーの例を示す説明図である。
【図６】網羅的状態生成部１２０が生成する状態表の例を示す説明図である。
【図７】探索ツリーにおける探索処理の例を概念的に示す説明図である。
【図８】第１の実施形態のシステム更新装置１００による手順生成処理の動作を示すフローチャートである。
【図９】第１の実施形態のシステム更新装置１００による手順実行処理の動作を示すフローチャートである。
【図１０】本発明の各実施形態を適用可能なシステム更新装置のハードウェア構成例を示す説明図である。
【図１１】本発明によるシステム更新装置の概要を示すブロック図である。
【図１２】一般的な手順生成装置による手順の自動生成処理の例を示す説明図である。
【図１３】半順序手順の例を示す説明図である。
【発明を実施するための形態】
【００３７】
実施形態１．
［構成の説明］
以下、本発明の実施形態を、図面を参照して説明する。図１は、本発明によるシステム更新装置の第１の実施形態の構成例を示すブロック図である。
【００３８】
図１に示すように、本実施形態のシステム更新装置１００は、網羅的ロールバック手順生成部１１０と、網羅的状態生成部１２０と、手順実行部１３０と、手順記憶部１４０と、現在状態記憶部１５０とを備える。
【００３９】
なお、ブロック図に記載されている単方向の矢印は、データ（情報）が流れる方向を示す。しかし、各矢印が記載されている箇所において双方向にデータが流れる可能性は排除されていない。
【００４０】
また、図１に示すように、網羅的ロールバック手順生成部１１０は、システム更新装置１００の外部のシステムである手順生成システム２００と通信可能に接続されている。
【００４１】
手順生成システム２００は、対象物の旧状態を示す情報と新状態を示す情報とを基に、対象物の状態を旧状態から新状態へ遷移させるためのタスクの手順を生成する機能を有する。なお、手順生成システム２００は、システム更新装置１００に含まれていてもよい。
【００４２】
また、図１に示すように、手順実行部１３０は、システム更新装置１００の外部のシステムである更新対象システム３００と通信可能に接続されている。
【００４３】
図１に示すシステム更新装置１００は、更新対象システム３００の更新に使用される更新作業手順を、ロールバック手順と併せて生成する。また、システム更新装置１００は、生成された更新作業手順に従って更新対象システム３００を更新する。
【００４４】
また、システム更新装置１００は、更新作業中に例外が発生した時、生成されたロールバック手順に従って更新対象システム３００の状態を、更新作業が実行される前の状態である初期状態に戻す。
【００４５】
網羅的ロールバック手順生成部１１０は、更新作業手順とロールバック手順とを生成するために各構成要素を制御する機能を有する。
【００４６】
図１に示すように、網羅的ロールバック手順生成部１１０には、更新対象システム３００の初期状態を示す情報と、更新対象システム３００の更新作業が実行された後の状態である目的状態を示す情報とが入力される。なお、入力される初期状態を示す情報および目的状態を示す情報は、図１２に示す状態情報に相当する情報である。
【００４７】
また、網羅的ロールバック手順生成部１１０には、図１２に示す現在のシステム構成を示す情報および目的のシステム構成を示す情報が入力されてもよい。システム構成を示す情報が入力される場合、網羅的ロールバック手順生成部１１０は、入力された情報を基に状態を示す情報を生成する。
【００４８】
次いで、網羅的ロールバック手順生成部１１０は、入力された初期状態を示す情報および目的状態を示す情報を、手順生成システム２００に入力する。手順生成システム２００は、入力された情報を基に、更新対象システム３００の更新に使用される更新作業手順を生成する。手順生成システム２００は、生成された更新作業手順を網羅的ロールバック手順生成部１１０に返却する。
【００４９】
次いで、網羅的ロールバック手順生成部１１０は、返却された更新作業手順を網羅的状態生成部１２０に入力する。網羅的状態生成部１２０は、更新作業の実行中に発生する可能性があるシステムの状態を所定の数だけ生成する機能を有する。本実施形態では、網羅的状態生成部１２０が更新作業の実行中に発生する可能性があるシステムの状態を全て生成する場合を例として説明する。
【００５０】
網羅的状態生成部１２０は、生成された状態の集合を網羅的ロールバック手順生成部１１０に返却する。次いで、網羅的ロールバック手順生成部１１０は、初期状態を示す情報と、返却された状態の集合のうちの１つの状態を示す情報を手順生成システム２００に入力する。
【００５１】
手順生成システム２００は、ロールバック手順として、更新対象システム３００の状態を入力された１つの状態から初期状態へ遷移させるためのタスクの手順を生成する。上記のように、手順生成システム２００は、更新作業の実行中に発生する可能性がある各状態に対するロールバック手順をそれぞれ生成する。手順生成システム２００は、生成された各ロールバック手順を網羅的ロールバック手順生成部１１０に返却する。
【００５２】
網羅的ロールバック手順生成部１１０は、返却されたロールバック手順と、ロールバック手順が実行される時点の状態（上記の入力された１つの状態）との組を記憶する。次いで、網羅的ロールバック手順生成部１１０は、生成されたロールバック手順と状態との全ての組を手順記憶部１４０に入力する。手順記憶部１４０は、入力された状態とロールバック手順との組を記憶する機能を有する。
【００５３】
また、網羅的ロールバック手順生成部１１０は、生成された更新作業手順を通常手順として手順実行部１３０に入力する。手順実行部１３０は、更新作業手順を実行することによって更新対象システム３００を更新する機能を有する。
【００５４】
また、網羅的ロールバック手順生成部１１０は、ロールバック手順の実行予定時間であるロールバック予定時間を算出してもよい。具体的には、網羅的ロールバック手順生成部１１０は、ロールバック手順を構成する各タスクの実行予定時間をそれぞれ算出する。
【００５５】
次いで、網羅的ロールバック手順生成部１１０は、生成されたロールバック手順それぞれに対して各タスクの実行予定時間の総和を算出することによって、ロールバック予定時間をそれぞれ算出する。
【００５６】
網羅的ロールバック手順生成部１１０は、生成されたロールバック手順と状態との組に、算出されたロールバック予定時間を含めてもよい。また、網羅的ロールバック手順生成部１１０は、ロールバック予定時間のうちの最長の時間を最長ロールバック予定時間として管理者に提示してもよい。
【００５７】
手順実行部１３０は、更新作業手順を実行する時、更新作業手順を構成するタスクが実行される度に更新対象システム３００の現在状態を示す情報を現在状態記憶部１５０に格納する。現在状態記憶部１５０は、更新対象システム３００の現在状態を記憶する機能を有する。
【００５８】
現在状態は、更新対象システム３００の最新の状態である。すなわち、現在状態記憶部１５０に記憶されている現在状態は、手順実行部１３０から情報が格納される度に更新される。
【００５９】
また、例外が発生した時、更新対象システム３００は、例外が発生したことを手順実行部１３０に通知する。例外が発生したことを通知された手順実行部１３０は、現在状態記憶部１５０に記憶されている現在状態を確認する。
【００６０】
次いで、手順実行部１３０は、確認された現在状態と同じ組に含まれているロールバック手順を手順記憶部１４０から取得する。次いで、手順実行部１３０は、取得されたロールバック手順を実行することによって、更新対象システム３００の状態を初期状態に戻す。
【００６１】
以下、網羅的状態生成部１２０が更新作業の実行中に発生する可能性があるシステムの全ての状態を生成する処理を図２〜図７を参照して説明する。図２は、第１の実施形態の網羅的状態生成部１２０による状態生成処理の動作を示すフローチャートである。
【００６２】
本例では、図３に示す半順序手順に従う更新作業の実行中に発生する可能性があるシステムの全ての状態を生成する場合を考える。図３は、半順序手順の他の例を示す説明図である。
【００６３】
図３に示す半順序手順は、矩形で表されているノードで構成されている。「１」から「８」の番号がそれぞれ付与された各ノードは、タスクi(i=1-8)に対応する。タスクi は、「システムの構成要素Eiの状態を状態Sxに遷移させる」という形式で定義されている。
【００６４】
網羅的状態生成部１２０は、半順序手順のツリーを深さ優先探索しながら探索ツリーを生成する。また、網羅的状態生成部１２０は、深さ優先探索中に現れた状態を状態表に順次記録する（ステップS001）。
【００６５】
図４は、半順序手順における深さ優先探索処理の例を概念的に示す説明図である。図４に示す破線の矢印が、網羅的状態生成部１２０が実行した深さ優先探索の経路を表す。ノード「１」から出発した網羅的状態生成部１２０は、ノード「１」→ノード「２」→ノード「３」と進み、Ａ地点に到達する。
【００６６】
ノード「５」に対応するタスク５は、ノード「４」に対応するタスク４が実行された後でなければ実行不可能である。すなわち、ノード「５」の他のノードに対する依存性が解消されていないため、網羅的状態生成部１２０は、Ａ地点から上に戻る。
【００６７】
深さ優先探索処理の実行と共に、網羅的状態生成部１２０は、探索ツリーを生成する。図５は、網羅的状態生成部１２０が生成する探索ツリーの例を示す説明図である。探索ツリーは、探索履歴を示すツリーである。図５に示す円は、探索されたノードである探索ノードを表す。また、円内に記されている数字は、図３〜図４に示す数字に対応している。
【００６８】
Ａ地点まで進められた段階でノード「１」、ノード「２」、ノード「３」が探索されたため、図５に示すように、探索ノード「１」→探索ノード「２」→探索ノード「３」の順に探索ツリーが構成されている。
【００６９】
なお、網羅的状態生成部１２０は、探索ツリーの各ノードで他に実行可能なノードがあれば枝を付ける（ステップS001）。図５に示す探索ノード「２」から伸びる破線の矢印が示す破線の円は、探索可能であるが未選択な他のノードを表す。
【００７０】
すなわち、ノード「１」からノード「６」が探索されることも可能であるが探索されなかったため、探索ノード「２」にノード「６」の枝が付けられている。同様の理由で、探索ノード「３」にもノード「６」の枝が付けられている。
【００７１】
また、図５に示す二重丸は、手前のノード以上に網羅的状態生成部１２０が深く探索できなかった際の終端を表す。本例の場合、Ａ地点以上に網羅的状態生成部１２０が深く探索できなかったため、探索ノード「３」の後に二重丸が記されている。
【００７２】
また、深さ優先探索処理の実行と共に、網羅的状態生成部１２０は、状態表を生成する。図６は、網羅的状態生成部１２０が生成する状態表の例を示す説明図である。
【００７３】
図６に示す「F 」、「T 」は、「Sx」の「x 」が採り得る値である。図６に示す例では各タスクi が構成要素Eiの状態を状態SFから状態STに遷移させるケースが想定されている。なお、構成要素Eiの状態は、状態ST以外の状態に遷移してもよい。
【００７４】
図６に示す状態表の各行が、更新作業の実行中に発生する可能性がある状態に対応する。例えば、全て「F 」と記載されている行は、まだどのタスクも実行されていない時の更新対象システム３００の状態に対応する。また、E1だけ「T 」と記載されている行は、タスク１だけ実行された時の更新対象システム３００の状態に対応する。
【００７５】
すなわち、網羅的状態生成部１２０は、半順序手順を構成する各タスクの中から任意の数の実行済みのタスクが選択された組合せ（図６に示す各行）をそれぞれ算出している。算出された各組合せは、半順序手順の実行中に発生する可能性がある更新対象システム３００の状態にそれぞれ対応している。
【００７６】
網羅的状態生成部１２０は、深さ優先探索中に現れた状態に対応する行を状態表に順次追加する。なお、本実施形態で生成される各ロールバック手順は、各行に対応付けられる。
【００７７】
次いで、網羅的状態生成部１２０は、ノード「３」→ノード「２」→ノード「４」→ノード「５」と進み、Ｂ地点に到達する。
【００７８】
ノード「８」に対応するタスク８は、ノード「７」に対応するタスク７が実行された後でなければ実行不可能である。すなわち、ノード「８」の他のノードに対する依存性が解消されていないため、網羅的状態生成部１２０は、Ｂ地点から上に戻る。
【００７９】
Ｂ地点まで進められた段階でノード「４」、ノード「５」が探索されたため、図５に示すように、探索ノード「３」→探索ノード「４」→探索ノード「５」→二重丸の順に探索ツリーが構成されている。また、上記と同様の理由で、探索ノード「４」にもノード「６」の枝が付けられている。
【００８０】
次いで、網羅的状態生成部１２０は、ノード「５」→ノード「４」→ノード「２」→ノード「１」→ノード「６」→ノード「７」→ノード「８」→ノード「９」と進み、Ｃ地点に到達する。Ｃ地点まで到達すると他に探索対象のノードがないので、網羅的状態生成部１２０は、深さ優先探索処理を終了する。
【００８１】
Ｃ地点まで進められた段階でノード「６」、ノード「７」、ノード「８」、ノード「９」が探索されたため、図５に示すように、探索ノード「５」→探索ノード「６」→探索ノード「７」→探索ノード「８」→探索ノード「９」→二重丸の順に探索ツリーが構成されている。
【００８２】
ステップS001の処理を終了した後、網羅的状態生成部１２０は、深さ優先探索が行き詰まったか、または状態表に既出の状態に到達したか否かを確認する（ステップS002）。「状態表に既出の状態に到達する」は、深さ優先探索が完了してはいないものの、もはや新しい状態が現れない状況を意味する。深さ優先探索が行き詰まっておらず、かつ状態表に既出の状態に到達していない場合（ステップS002におけるNo）、網羅的状態生成部１２０は、ステップS001の処理を再度実行する。
【００８３】
深さ優先探索が行き詰まった、または状態表に既出の状態に到達した場合（ステップS002におけるYes ）、網羅的状態生成部１２０は、未探索の枝のうち探索ツリーにおいて最も上に近い枝へ戻り、半順序手順の探索を再開する。また、探索を再開する際、網羅的状態生成部１２０は、探索状況も戻す（ステップS003）。
【００８４】
図７は、探索ツリーにおける探索処理の例を概念的に示す説明図である。図７に示す太い方の破線の矢印が、網羅的状態生成部１２０が実行した探索の経路を表す。
【００８５】
Ｃ地点まで進み最初の深さ優先探索が終了した網羅的状態生成部１２０は、探索ツリーを上から探索し、未選択のノードを発見する。次いで、網羅的状態生成部１２０は、最初に発見された未選択のノードを起点に半順序手順の探索を再開する。探索を再開する際、網羅的状態生成部１２０は、探索状況も戻す。
【００８６】
例えば、探索ノード「４」に対応付けられている未選択のノード「６」から探索が再開される場合、網羅的状態生成部１２０は、ノード「１」、ノード「２」、ノード「３」、およびノード「４」が探索された状況まで探索状況を戻した後、ノード「６」から半順序手順を探索する。なお、再開された探索においても、網羅的状態生成部１２０は、探索中に現れた状態に対応する行を状態表に順次追加する。
【００８７】
ステップS003の処理を終了した後、網羅的状態生成部１２０は、探索が行き詰まり、かつ未探索の枝が全て無くなったか否かを確認する（ステップS004）。探索が行き詰まっていない場合、または未探索の枝が存在している場合（ステップS004におけるNo）、網羅的状態生成部１２０は、ステップS003の処理を再度実行する。
【００８８】
探索が行き詰まり、かつ未探索の枝が全て無くなった場合（ステップS004におけるYes ）、網羅的状態生成部１２０は、状態生成処理を終了する。図７に示す例においてステップS004におけるYes の条件が満たされる場合は、未選択の３つのノードからの半順序手順の探索が行き詰まるまで全て実行された場合である。
【００８９】
上記のように未選択のノードからの半順序手順の探索も実行されることによって、半順序手順に従う更新作業の実行中に発生する可能性があるシステムの状態が網羅的に生成される。
【００９０】
［動作の説明］
以下、本実施形態のシステム更新装置１００の手順を生成する動作を図８を参照して説明する。図８は、第１の実施形態のシステム更新装置１００による手順生成処理の動作を示すフローチャートである。
【００９１】
最初に、網羅的ロールバック手順生成部１１０に、更新対象システム３００の初期状態を示す情報と、更新対象システム３００の目的状態を示す情報とが入力される（ステップS101）。
【００９２】
次いで、網羅的ロールバック手順生成部１１０は、入力された初期状態を示す情報および目的状態を示す情報を、手順生成システム２００に入力する。手順生成システム２００は、入力された情報を基に更新作業手順を生成する（ステップS102）。
【００９３】
次いで、手順生成システム２００は、生成された更新作業手順を網羅的ロールバック手順生成部１１０に返却する。網羅的ロールバック手順生成部１１０は、返却された更新作業手順を網羅的状態生成部１２０に入力する。
【００９４】
次いで、網羅的状態生成部１２０は、入力された更新作業手順を用いて、図２に示す状態生成処理を実行する（ステップS103）。網羅的状態生成部１２０は、状態生成処理を実行することによって生成された状態の集合を網羅的ロールバック手順生成部１１０に返却する。
【００９５】
次いで、網羅的ロールバック手順生成部１１０は、初期状態を示す情報と、返却された状態の集合のうちの１つの状態を示す情報を手順生成システム２００に入力する。手順生成システム２００は、入力された情報を基にロールバック手順を生成する。
【００９６】
網羅的ロールバック手順生成部１１０および手順生成システム２００は、上記の処理を生成された状態の集合に含まれる状態の数だけ繰り返し実行する。すなわち、手順生成システム２００は、各状態に対するロールバック手順をそれぞれ生成する（ステップS104）。
【００９７】
次いで、手順生成システム２００は、生成された各ロールバック手順を網羅的ロールバック手順生成部１１０に返却する。網羅的ロールバック手順生成部１１０は、生成されたロールバック手順と状態との全ての組を手順記憶部１４０に入力する。手順記憶部１４０は、生成されたロールバック手順と状態との全ての組を記憶する（ステップS105）。
【００９８】
次いで、網羅的ロールバック手順生成部１１０は、生成された更新作業手順を通常手順として手順実行部１３０に入力する（ステップS106）。更新作業手順を入力した後、システム更新装置１００は、手順生成処理を終了する。
【００９９】
次に、本実施形態のシステム更新装置１００の手順を実行する動作を図９を参照して説明する。図９は、第１の実施形態のシステム更新装置１００による手順実行処理の動作を示すフローチャートである。
【０１００】
手順実行部１３０は、入力された更新作業手順を構成するタスクを実行する。また、手順実行部１３０は、タスクを実行する度に、更新対象システム３００の現在状態を示す情報を現在状態記憶部１５０に格納する（ステップS201）。
【０１０１】
なお、ステップS201で実行されるタスクの数は、１に限られない。また、ステップS201で実行されるタスクの数は、ステップごとに変更されてもよい。
【０１０２】
タスクを実行した後、手順実行部１３０は、更新対象システム３００から例外が発生したことが通知されたか否かを確認する（ステップS202）。例外が発生したことが通知されなかった場合（ステップS202におけるNo）、手順実行部１３０は、ステップS205の処理を行う。
【０１０３】
例外が発生したことが通知された場合（ステップS202におけるYes ）、手順実行部１３０は、現在状態記憶部１５０に記憶されている現在状態を確認する。次いで、手順実行部１３０は、確認された現在状態と同じ組に含まれているロールバック手順を手順記憶部１４０から取得する（ステップS203）。
【０１０４】
次いで、手順実行部１３０は、取得されたロールバック手順を実行する（ステップS204）。ロールバック手順が実行されることによって、更新対象システム３００の状態が初期状態に戻る。ロールバック手順を実行した後、システム更新装置１００は、手順実行処理を終了する。
【０１０５】
ステップS205において、手順実行部１３０は、入力された更新作業手順を構成するタスクのうち、まだ実行されていないタスクが存在するか否かを確認する。まだ実行されていないタスクが存在する場合（ステップS205におけるYes ）、手順実行部１３０は、再度ステップS201の処理を行う。
【０１０６】
更新作業手順を構成する全てのタスクが実行済みである場合（ステップS205におけるNo）、システム更新装置１００は、手順実行処理を終了する。
【０１０７】
［効果の説明］
本実施形態のシステム更新装置１００は、作業実行中に発生する可能性がある状態に対応したロールバック手順を所定の数の状態に対して用意できる。その理由は、網羅的状態生成部１２０が更新作業手順の実行中に発生する可能性がある更新対象システム３００の状態を所定の数だけ生成する。次いで、網羅的ロールバック手順生成部１１０が生成された各状態から初期状態に更新対象システム３００の状態が遷移可能なロールバック手順をそれぞれ生成するためである。
【０１０８】
すなわち、本実施形態のシステム更新装置１００は、ロールバック手順を網羅的に生成できる。よって、本実施形態のシステム更新装置１００が使用されると、半順序手順に従ってシステムの更新作業が実行される場合であっても、例外が発生した作業実行中のいずれの時点からでもロールバック手順が実行される。
【０１０９】
なお、本実施形態の更新作業手順には、構築作業手順も含まれている。システム更新装置１００が構築作業手順を生成する場合、網羅的ロールバック手順生成部１１０には、内容が何も含まれていない情報が初期状態を示す情報として入力される。また、構築作業が実行された後の状態を示す情報が目的状態を示す情報として入力される。
【０１１０】
以下、本実施形態のシステム更新装置１００のハードウェア構成の具体例を説明する。図１０は、本発明の各実施形態を適用可能なシステム更新装置のハードウェア構成例を示す説明図である。
【０１１１】
図１０に示すシステム更新装置１００は、ＣＰＵ（Central Processing Unit ）１０１と、主記憶部１０２と、通信部１０３と、補助記憶部１０４とを備える。また、ユーザが操作するための入力部１０５や、ユーザに処理結果または処理内容の経過を提示するための出力部１０６を備えてもよい。
【０１１２】
システム更新装置１００は、図１０に示すＣＰＵ１０１が図１に示す各構成要素が有する機能を提供するプログラムを実行することによって、ソフトウェアにより実現される。
【０１１３】
すなわち、ＣＰＵ１０１が補助記憶部１０４に格納されているプログラムを、主記憶部１０２にロードして実行し、システム更新装置１００の動作を制御することによって、各機能がソフトウェアにより実現される。
【０１１４】
主記憶部１０２は、データの作業領域やデータの一時退避領域として用いられる。主記憶部１０２は、例えばＲＡＭ（Random Access Memory）である。
【０１１５】
通信部１０３は、有線のネットワークまたは無線のネットワーク（情報通信ネットワーク）を介して、周辺機器との間でデータを入力および出力する機能を有する。
【０１１６】
補助記憶部１０４は、一時的でない有形の記憶媒体である。一時的でない有形の記憶媒体として、例えば磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ（Compact Disk Read Only Memory ）、ＤＶＤ−ＲＯＭ（Digital Versatile Disk Read Only Memory ）、半導体メモリが挙げられる。
【０１１７】
入力部１０５は、データや処理命令を入力する機能を有する。入力部１０５は、例えばキーボードやマウス等の入力デバイスである。
【０１１８】
出力部１０６は、データを出力する機能を有する。出力部１０６は、例えば液晶ディスプレイ装置等の表示装置、またはプリンタ等の印刷装置である。
【０１１９】
また、図１０に示すように、システム更新装置１００において、各構成要素は、システムバス１０７に接続されている。
【０１２０】
補助記憶部１０４は、例えば、図１に示す網羅的ロールバック手順生成部１１０、網羅的状態生成部１２０、および手順実行部１３０を実現するためのプログラムを記憶している。
【０１２１】
また、主記憶部１０２は、例えば、手順記憶部１４０の記憶領域、および現在状態記憶部１５０の記憶領域として利用される。また、網羅的ロールバック手順生成部１１０、網羅的状態生成部１２０、および手順実行部１３０は、通信部１０３を介して通信処理を実行してもよい。
【０１２２】
なお、システム更新装置１００は、ハードウェアにより実現されてもよい。例えば、システム更新装置１００は、内部に図１に示すような機能を実現するＬＳＩ（Large Scale Integration ）等のハードウェア部品が含まれる回路が実装されてもよい。
【０１２３】
また、各構成要素の一部または全部は、汎用の回路（circuitry ）または専用の回路、プロセッサ等やこれらの組み合わせによって実現されてもよい。これらは、単一のチップ（例えば、上記のＬＳＩ）によって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各構成要素の一部または全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
【０１２４】
各構成要素の一部または全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
【０１２５】
次に、本発明の概要を説明する。図１１は、本発明によるシステム更新装置の概要を示すブロック図である。本発明によるシステム更新装置１０は、更新対象のシステムである更新対象システムの状態を、更新前の状態である初期状態から、更新目的の状態である目的状態へ遷移させるための作業（例えば、タスク）の手順である更新手順に基づいて更新手順の実行中に発生する可能性がある更新対象システムの状態を所定の数だけ生成する状態生成部１１（例えば、網羅的状態生成部１２０）と、更新対象システムの状態を生成された状態から初期状態へ遷移させるための作業の手順であるロールバック手順を生成された状態ごとに生成する手順生成部１２（例えば、網羅的ロールバック手順生成部１１０）とを備える。
【０１２６】
そのような構成により、システム更新装置は、作業実行中に発生する可能性がある状態に対応したロールバック手順を所定の数の状態に対して用意できる。
【０１２７】
また、所定の数は、更新手順の実行中に発生する可能性がある更新対象システムの全ての状態の数でもよい。
【０１２８】
そのような構成により、システム更新装置は、作業実行中に発生する可能性がある状態に対応したロールバック手順を全ての状態に対して用意できる。
【０１２９】
また、システム更新装置１０は、更新手順の実行中の更新対象システムの最新の状態を記憶する状態記憶部（例えば、現在状態記憶部１５０）と、更新手順の実行中に例外が発生した更新対象システムに対して状態記憶部に記憶されている最新の状態に対応するロールバック手順を実行する手順実行部（例えば、手順実行部１３０）とを備えてもよい。
【０１３０】
そのような構成により、システム更新装置は、例外が発生した時に速やかにロールバック手順を実行できる。
【０１３１】
また、システム更新装置１０は、生成されたロールバック手順と、ロールバック手順が実行されるときの更新対象システムの状態とを関連付けて記憶する手順記憶部（例えば、手順記憶部１４０）を備えてもよい。
【０１３２】
そのような構成により、システム更新装置は、例外が発生した時の更新対象システムの状態をキーとしてロールバック手順を取得できる。
【０１３３】
また、手順生成部１２は、ロールバック手順の実行に要する予定時間を算出し、手順記憶部は、算出された予定時間とロールバック手順とを関連付けて記憶してもよい。
【０１３４】
そのような構成により、システム更新装置は、ロールバック手順の実行に要する予定時間を利用者に提示できる。
【０１３５】
また、状態生成部１１は、更新手順を構成する各作業の中から任意の数の実行済みの作業が選択された組合せをそれぞれ算出し、算出された各組合せに応じた更新対象システムの状態を更新手順の実行中に発生する可能性がある更新対象システムの状態としてそれぞれ生成してもよい。
【０１３６】
そのような構成により、システム更新装置は、更新手順の実行中に発生する可能性がある更新対象システムの状態を網羅できる。
【０１３７】
また、更新手順は、２つ以上の作業が順不同に実行可能に並べられた手順でもよい。
【０１３８】
そのような構成により、システム更新装置は、半順序手順の実行中に更新対象システムが到達する可能性がある全ての状態に対してロールバック手順を生成できる。
【０１３９】
また、手順生成部１２は、初期状態と目的状態とに基づいて更新手順を生成してもよい。
【０１４０】
そのような構成により、システム更新装置は、更新手順を生成できる。
【０１４１】
以上、実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成および詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１４２】
この出願は、２０１８年２月６日に出願された日本特許出願２０１８−０１９０１４を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【０１４３】
また、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下に限られない。
【０１４４】
（付記１）更新対象のシステムである更新対象システムの状態を、更新前の状態である初期状態から、更新目的の状態である目的状態へ遷移させるための作業の手順である更新手順に基づいて前記更新手順の実行中に発生する可能性がある前記更新対象システムの状態を所定の数だけ生成する状態生成部と、前記更新対象システムの状態を生成された状態から前記初期状態へ遷移させるための作業の手順であるロールバック手順を生成された状態ごとに生成する手順生成部とを備えることを特徴とするシステム更新装置。
【０１４５】
（付記２）前記所定の数は、前記更新手順の実行中に発生する可能性がある前記更新対象システムの全ての状態の数である付記１記載のシステム更新装置。
【０１４６】
（付記３）前記更新手順の実行中の前記更新対象システムの最新の状態を記憶する状態記憶部と、前記更新手順の実行中に例外が発生した前記更新対象システムに対して前記状態記憶部に記憶されている最新の状態に対応するロールバック手順を実行する手順実行部とを備える付記１または付記２記載のシステム更新装置。
【０１４７】
（付記４）生成されたロールバック手順と、前記ロールバック手順が実行されるときの前記更新対象システムの状態とを関連付けて記憶する手順記憶部を備える付記１から付記３のうちのいずれかに記載のシステム更新装置。
【０１４８】
（付記５）前記手順生成部は、ロールバック手順の実行に要する予定時間を算出し、前記手順記憶部は、算出された予定時間と前記ロールバック手順とを関連付けて記憶する付記４記載のシステム更新装置。
【０１４９】
（付記６）前記状態生成部は、前記更新手順を構成する各作業の中から任意の数の実行済みの作業が選択された組合せをそれぞれ算出し、算出された各組合せに応じた前記更新対象システムの状態を前記更新手順の実行中に発生する可能性がある前記更新対象システムの状態としてそれぞれ生成する付記１から付記５のうちのいずれかに記載のシステム更新装置。
【０１５０】
（付記７）前記更新手順は、２つ以上の作業が順不同に実行可能に並べられた手順である付記１から付記６のうちのいずれかに記載のシステム更新装置。
【０１５１】
（付記８）前記手順生成部は、前記初期状態と前記目的状態とに基づいて前記更新手順を生成する付記１から付記７のうちのいずれかに記載のシステム更新装置。
【０１５２】
（付記９）更新対象のシステムである更新対象システムの状態を、更新前の状態である初期状態から、更新目的の状態である目的状態へ遷移させるための作業の手順である更新手順に基づいて前記更新手順の実行中に発生する可能性がある前記更新対象システムの状態を所定の数だけ生成し、前記更新対象システムの状態を生成された状態から前記初期状態へ遷移させるための作業の手順であるロールバック手順を生成された状態ごとに生成することを特徴とするシステム更新方法。
【０１５３】
（付記１０）前記所定の数は、前記更新手順の実行中に発生する可能性がある前記更新対象システムの全ての状態の数である付記９記載のシステム更新方法。
【０１５４】
（付記１１）前記更新手順の実行中の前記更新対象システムの最新の状態を状態記憶部に記憶させ、前記更新手順の実行中に例外が発生した前記更新対象システムに対して記憶されている最新の状態に対応するロールバック手順を実行する付記９または付記１０記載のシステム更新方法。
【０１５５】
（付記１２）コンピュータで実行されるときに、更新対象のシステムである更新対象システムの状態を、更新前の状態である初期状態から、更新目的の状態である目的状態へ遷移させるための作業の手順である更新手順に基づいて前記更新手順の実行中に発生する可能性がある前記更新対象システムの状態を所定の数だけ生成し、前記更新対象システムの状態を生成された状態から前記初期状態へ遷移させるための作業の手順であるロールバック手順を生成された状態ごとに生成するシステム更新プログラムを記録したコンピュータ読み取り可能な記録媒体。
【０１５６】
（付記１３）前記所定の数は、前記更新手順の実行中に発生する可能性がある前記更新対象システムの全ての状態の数である付記１２記載の記録媒体。
【０１５７】
（付記１４）コンピュータで実行されるときに、前記更新手順の実行中の前記更新対象システムの最新の状態を状態記憶部に記憶させ、前記更新手順の実行中に例外が発生した前記更新対象システムに対して記憶されている最新の状態に対応するロールバック手順を実行する付記１２または付記１３記載の記録媒体。
【０１５８】
（付記１５）コンピュータに、更新対象のシステムである更新対象システムの状態を、更新前の状態である初期状態から、更新目的の状態である目的状態へ遷移させるための作業の手順である更新手順に基づいて前記更新手順の実行中に発生する可能性がある前記更新対象システムの状態を所定の数だけ生成する状態生成処理、および前記更新対象システムの状態を生成された状態から前記初期状態へ遷移させるための作業の手順であるロールバック手順を生成された状態ごとに生成する手順生成処理を実行させるためのシステム更新プログラム。
【０１５９】
（付記１６）前記所定の数は、前記更新手順の実行中に発生する可能性がある前記更新対象システムの全ての状態の数である付記１５記載のシステム更新プログラム。
【０１６０】
（付記１７）コンピュータに、前記更新手順の実行中の前記更新対象システムの最新の状態を状態記憶部に記憶させる記憶処理、および前記更新手順の実行中に例外が発生した前記更新対象システムに対して記憶されている最新の状態に対応するロールバック手順を実行する実行処理を実行させる付記１５または付記１６記載のシステム更新プログラム。
【産業上の利用の可能性】
【０１６１】
本発明は、例外処理手順（ロールバック手順）の自動生成の分野に好適に適用される。
【符号の説明】
【０１６２】
１０、１００  システム更新装置
１１  状態生成部
１２  手順生成部
１０１  ＣＰＵ
１０２  主記憶部
１０３  通信部
１０４  補助記憶部
１０５  入力部
１０６  出力部
１０７  システムバス
１１０  網羅的ロールバック手順生成部
１２０  網羅的状態生成部
１３０  手順実行部
１４０  手順記憶部
１５０  現在状態記憶部
２００  手順生成システム
３００  更新対象システム
【図１】
2019155827.tif 000003
【図２】
2019155827.tif 000004
【図３】
2019155827.tif 000005
【図４】
2019155827.tif 000006
【図５】
2019155827.tif 000007
【図６】
2019155827.tif 000008
【図７】
2019155827.tif 000009
【図８】
2019155827.tif 000010
【図９】
2019155827.tif 000011
【図１０】
2019155827.tif 000012
【図１１】
2019155827.tif 000013
【図１２】
2019155827.tif 000014
【図１３】
2019155827.tif 000015
【手続補正書】
【提出日】令和2年7月27日(2020.7.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
更新対象のシステムである更新対象システムの状態を、更新前の状態である初期状態から、更新目的の状態である目的状態へ遷移させるための作業の手順である更新手順に基づいて前記更新手順の実行中に発生する可能性がある前記更新対象システムの状態を所定の数だけ生成する状態生成部と、
前記更新対象システムの状態を生成された状態から前記初期状態へ遷移させるための作業の手順であるロールバック手順を生成された状態ごとに生成する手順生成部とを備える
ことを特徴とするシステム更新装置。
【請求項２】
前記所定の数は、前記更新手順の実行中に発生する可能性がある前記更新対象システムの全ての状態の数である
請求項１記載のシステム更新装置。
【請求項３】
前記更新手順の実行中の前記更新対象システムの最新の状態を記憶する状態記憶部と、
前記更新手順の実行中に例外が発生した前記更新対象システムに対して前記状態記憶部に記憶されている最新の状態に対応するロールバック手順を実行する手順実行部とを備える
請求項１または請求項２記載のシステム更新装置。
【請求項４】
生成されたロールバック手順と、前記ロールバック手順が実行されるときの前記更新対象システムの状態とを関連付けて記憶する手順記憶部を備える
請求項１から請求項３のうちのいずれか１項に記載のシステム更新装置。
【請求項５】
前記手順生成部は、ロールバック手順の実行に要する予定時間を算出し、
前記手順記憶部は、算出された予定時間と前記ロールバック手順とを関連付けて記憶する
請求項４記載のシステム更新装置。
【請求項６】
前記状態生成部は、
前記更新手順を構成する各作業の中から任意の数の実行済みの作業が選択された組合せをそれぞれ算出し、
算出された各組合せに応じた前記更新対象システムの状態を前記更新手順の実行中に発生する可能性がある前記更新対象システムの状態としてそれぞれ生成する
請求項１から請求項５のうちのいずれか１項に記載のシステム更新装置。
【請求項７】
前記更新手順は、２つ以上の作業が順不同に実行可能に並べられた手順である
請求項１から請求項６のうちのいずれか１項に記載のシステム更新装置。
【請求項８】
前記手順生成部は、前記初期状態と前記目的状態とに基づいて前記更新手順を生成する
請求項１から請求項７のうちのいずれか１項に記載のシステム更新装置。
【請求項９】
更新対象のシステムである更新対象システムの状態を、更新前の状態である初期状態から、更新目的の状態である目的状態へ遷移させるための作業の手順である更新手順に基づいて前記更新手順の実行中に発生する可能性がある前記更新対象システムの状態を所定の数だけ生成し、
前記更新対象システムの状態を生成された状態から前記初期状態へ遷移させるための作業の手順であるロールバック手順を生成された状態ごとに生成する
ことを特徴とするシステム更新方法。
【請求項１０】
前記所定の数は、前記更新手順の実行中に発生する可能性がある前記更新対象システムの全ての状態の数である
請求項９記載のシステム更新方法。
【請求項１１】
前記更新手順の実行中の前記更新対象システムの最新の状態を状態記憶部に記憶させ、
前記更新手順の実行中に例外が発生した前記更新対象システムに対して記憶されている最新の状態に対応するロールバック手順を実行する
請求項９または請求項１０記載のシステム更新方法。
【請求項１２】
コンピュータに、
更新対象のシステムである更新対象システムの状態を、更新前の状態である初期状態から、更新目的の状態である目的状態へ遷移させるための作業の手順である更新手順に基づいて前記更新手順の実行中に発生する可能性がある前記更新対象システムの状態を所定の数だけ生成する状態生成処理、および
前記更新対象システムの状態を生成された状態から前記初期状態へ遷移させるための作業の手順であるロールバック手順を生成された状態ごとに生成する手順生成処理
を実行させるためのシステム更新プログラム。
【請求項１３】
前記所定の数は、前記更新手順の実行中に発生する可能性がある前記更新対象システムの全ての状態の数である
請求項１２記載のシステム更新プログラム。
【請求項１４】
コンピュータに、
前記更新手順の実行中の前記更新対象システムの最新の状態を状態記憶部に記憶させる記憶処理、および
前記更新手順の実行中に例外が発生した前記更新対象システムに対して記憶されている最新の状態に対応するロールバック手順を実行する実行処理を実行させる
請求項１２または請求項１３記載のシステム更新プログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００３３
【補正方法】削除
【補正の内容】
【国際調査報告】
2019155827.tif 000016
2019155827.tif 000017
2019155827.tif 000018
2019155827.tif 000019