(57)【要約】【課題】１つの側面では、ワークフローにより所定順序に従って複数のノードの処理を進める場合に、退避するデータ量を削減する。【解決手段】複数のノードを含むワークフローにおいて、ノード毎に、管理情報（２９）が記憶部（２４）に記憶される。管理情報（２９）は、ノードを示す情報を、ノードで用いるデータ項目を示す情報に対応付けたバージョン情報と、ノードで少なくとも一部のデータが更新されたことを示すフラグ情報とを含む。判定部（１８）は、ノードの処理を進める場合に、管理情報（２９）のうち、バージョン情報と、対象ノードより前の参照ノードのフラグ情報とに基づいて、対象ノードにおけるデータ項目のデータを退避するか否かを判定する。その判定結果に基づいて、対象ノードにおけるデータ項目のデータが退避される。これにより、退避するデータ量を削減できる。【選択図】図１
2015185014.tif 000002
【特許請求の範囲】
【請求項１】
ワークフローにより所定順序に従って複数のノードの処理を進める場合に、複数のノード毎に、前記ノードを示す情報を、前記ノードで用いるデータ項目を示す情報に対応付けたバージョン情報と、前記ノードで少なくとも一部のデータが更新されたことを示すフラグ情報とを含む管理情報が記憶部に記憶され、前記記憶部に記憶された前記管理情報のうち、次のノードへ処理を進める場合の現在のノードを対象ノードとし、かつ該対象ノードより前のノードのうち該対象ノードのデータ項目を示す情報に対応づけられたバージョン情報に値を有するノードを参照ノードとし、該参照ノードのデータ項目を示す情報に対応付けられたバージョン情報と、前記参照ノードのフラグ情報とに基づいて、前記対象ノードにおけるデータ項目のデータを退避するか否かを判定し、
判定結果に基づいて、前記対象ノードにおけるデータ項目のデータを退避する
ことを含む処理をコンピュータに実行させるためのワークフロー制御プログラム。
【請求項２】
前記参照ノードのデータ項目を示す情報に対応付けられたバージョン情報が設定されていない場合、または、前記参照ノードのデータ項目を示す情報に対応付けられたバージョン情報の間で相違するバージョン情報の値が設定されている場合、または、前記参照ノードで少なくとも一部のデータが更新されたことを示すフラグ情報が設定されている場合、前記対象ノードにおけるデータ項目のデータを退避することを判定する
請求項１に記載のワークフロー制御プログラム。
【請求項３】
前記参照ノードのデータ項目を示す情報に対応付けられたバージョン情報の間でバージョン情報の値が同じでかつ、前記参照ノードでデータが更新されていないことを示すフラグ情報が設定されている場合、前記対象ノードにおけるデータ項目のデータを退避しないことを判定する
請求項１または請求項２に記載のワークフロー制御プログラム。
【請求項４】
前記ワークフローにおいてデータを復元する場合に入力されたノードの位置を示す情報と、前記管理情報と、前記退避したデータとに基づいて、入力されたノードのデータを復元する
請求項１〜請求項３の何れか１項に記載のワークフロー制御プログラム。
【請求項５】
コンピュータが、
ワークフローにより所定順序に従って複数のノードの処理を進める場合に、複数のノード毎に、前記ノードを示す情報を、前記ノードで用いるデータ項目を示す情報に対応付けたバージョン情報と、前記ノードで少なくとも一部のデータが更新されたことを示すフラグ情報とを含む管理情報が記憶部に記憶され、前記記憶部に記憶された前記管理情報のうち、次のノードへ処理を進める場合の現在のノードを対象ノードとし、かつ該対象ノードより前のノードのうち該対象ノードのデータ項目を示す情報に対応づけられたバージョン情報に値を有するノードを参照ノードとし、該参照ノードのデータ項目を示す情報に対応付けられたバージョン情報と、前記参照ノードのフラグ情報とに基づいて、前記対象ノードにおけるデータ項目のデータを退避するか否かを判定し、
判定結果に基づいて、前記対象ノードにおけるデータ項目のデータを退避する
ことを含むワークフロー制御方法。
【請求項６】
ワークフローにより所定順序に従って複数のノードの処理を進める場合に、複数のノード毎に、前記ノードを示す情報を、前記ノードで用いるデータ項目を示す情報に対応付けたバージョン情報と、前記ノードで少なくとも一部のデータが更新されたことを示すフラグ情報とを含む管理情報が記憶される記憶部と、
前記記憶部に記憶された前記管理情報のうち、次のノードへ処理を進める場合の現在のノードを対象ノードとし、かつ該対象ノードより前のノードのうち該対象ノードのデータ項目を示す情報に対応づけられたバージョン情報に値を有するノードを参照ノードとし、該参照ノードのデータ項目を示す情報に対応付けられたバージョン情報と、前記参照ノードのフラグ情報とに基づいて、前記対象ノードにおけるデータ項目のデータを退避するか否かを判定する判定部と、
判定結果に基づいて、前記対象ノードにおけるデータ項目のデータを退避する退避部と、
を備えたワークフロー制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の技術は、ワークフロー制御プログラム、ワークフロー制御方法、及びワークフローシステムに関する。
【背景技術】
【０００２】
業務に含まれる複数の作業の各々をノードとして、各ノードにおける処理内容及び各ノードの順序を定義して、各ノードの順序に従って処理を進めるワークフローシステムが知られている。ワークフローシステムでは、例えばシステム障害への対応として、現在のノードより前のノードにおける状態に復旧できるように、各ノードにおけるデータを記録する場合がある。
【０００３】
例えば、ワークフローシステムで、データが更新されたときに更新結果のデータを記録し、指定されたノードのデータを取り出して、現在のノードより前のノードにおける状態に復旧する技術が知られている。また、更新されるデータを管理する技術の一例として、更新されたことを示す更新フラグをファイル毎に対応づけた管理テーブルを記憶し、管理テーブルを参照して公開中のファイルに更新フラグが設定された場合にファイルの公開を禁止する技術がある。さらに、ファイルの作成日時、ユーザ名、及びバージョンの値等の更新履歴を用いてファイルのバージョン管理を行う技術も知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平９−９１４０２号公報
【特許文献２】特開２０１３−９７７５５号公報
【特許文献３】特開２００６−３５０８２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、ワークフローシステムでは、各ノードの順序に従って処理を進める経路は、ノードにおける条件分岐処理、及び現在のノードより前のノードへ戻す処理等があり、予め決定することが困難な場合がある。従って、システム障害への対応を想定すると、ワークフローシステムによる各ノードの処理を進めつつ、各ノードにおけるデータを記録することで、データを退避する。ところが、各ノードにおけるデータを記録する場合、処理を進めるノード毎に記録するデータ量が増加する。また、ノードにおける条件分岐処理、及び現在のノードより前のノードへ戻す処理等により、ノードにおけるデータを重複して記録する場合もある。
【０００６】
１つの側面では、ワークフローにより所定順序に従って複数のノードの処理を進める場合に、退避するデータ量を削減することを目的とする。
【課題を解決するための手段】
【０００７】
開示の技術は、所定順序に従って複数のノードの処理を進めるワークフローにおいて、複数のノード毎に、管理情報が記憶部に記憶される。管理情報は、ノードを示す情報を、ノードで用いるデータ項目を示す情報に対応付けたバージョン情報と、ノードで少なくとも一部のデータが更新されたことを示すフラグ情報とを含む。ノードの処理を進める場合に、管理情報のうち、バージョン情報と、対象ノードより前の参照ノードのフラグ情報とに基づいて、対象ノードにおけるデータ項目のデータを退避するか否かを判定する。バージョン情報は、対象ノードのデータ項目に対応する対象ノードより前の参照ノードのデータ項目に対応付けられる。データを退避するか否かを示す判定結果に基づいて、対象ノードにおけるデータ項目のデータが退避される。
【発明の効果】
【０００８】
１つの態様では、ワークフローの各ノードにおいてデータを退避するときに、退避するデータ量を削減することができる、という効果を有する。
【図面の簡単な説明】
【０００９】
【図１】ワークフローシステムの一例を示すブロック図である。
【図２】コンピュータで実現するワークフローシステムの一例を示すブロック図である。
【図３】ワークフローシステムの一例を機能的に示すブロックである。
【図４】ワークフロー制御情報データベースの一例を示すイメージ図である。
【図５】実行履歴情報データベースの一例を示すイメージ図である。
【図６】データ項目の定義情報の一例を示すイメージ図である。
【図７】データ項目情報データベースの一例を示すイメージ図である。
【図８】退避データ情報データベースの一例を示すイメージ図である。
【図９】退避データ情報データベースの一例を示すイメージ図である。
【図１０】退避データ管理情報データベースの一例を示すイメージ図である。
【図１１】ワークフローの一連の流れ一例を示すイメージ図である。
【図１２】ワークフロー制御部の処理の流れの一例を示すフローチャートである。
【図１３】ノード移動処理の流れの一例を示すフローチャートである。
【図１４】データ退避復元管理部の処理の流れの一例を示すフローチャートである。
【図１５】データ退避処理の流れの一例を示すフローチャートである。
【図１６】ワークフローの一部のノードでのデータ関係の一例を示すイメージ図である。
【図１７】ワークフローの一部のノードでのデータ関係の一例を示すイメージ図である。
【図１８】端末装置と、データ退避復元管理部と、ワークフロー制御部との間の情報授受の一例を示すイメージ図である。
【図１９】端末装置と、データ退避復元管理部と、ワークフロー制御部との間の情報授受の一例を示すイメージ図である。
【図２０】復元処理の流れの一例を示すフローチャートである。
【図２１】リカバリ処理の流れの一例を示すフローチャートである。
【図２２】端末装置と、データ退避復元管理部と、ワークフロー制御部との間の情報授受の一例を示すイメージ図である。
【図２３】端末装置と、データ退避復元管理部と、ワークフロー制御部との間の情報授受の一例を示すイメージ図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照して開示の技術の実施形態の一例を詳細に説明する。本実施形態は、多数のノードを複数の情報処理装置で実行することで、全体の処理時間を短縮する場合に開示の技術を適用するものである。
【００１１】
図１に、本実施形態に係るワークフローシステム１０の一例を示す。ワークフローシステム１０は、ワークフロー制御装置１１を備えており、ワークフロー制御装置１１は各種の指示を出力する操作装置２６に接続される。ワークフロー制御装置１１はＣＰＵ１２及びメモリ１４を含んでおり、メモリ１４にはワークフロー制御プログラム１６が記憶される。ＣＰＵ１２は、メモリ１４に記憶されるワークフロー制御プログラム１６を実行することによって、判定部１８、退避部２０、及び復元部２２として動作する。ＣＰＵ１２には、記憶部２４が接続される。記憶部２４には、所定順序に従って複数のノードの処理を進めるワークフローの管理情報２９が記憶される。管理情報２９は、ノード毎に、ノードを示す情報を、ノードで用いるデータ項目を示す情報に対応付けたバージョン情報と、ノードで少なくとも一部のデータが更新されたことを示すフラグ情報とを含む。また、記憶部２４には、ノードにおけるデータ項目のデータ２７、及びデータ項目のデータ２７を退避した退避データ２８が記憶される。
【００１２】
ワークフローシステム１０は、業務に対応するワークフローに含まれる複数のノードの処理を進める。複数のノードの処理を進める場合、次のノードへ処理を進めるための現在のノードを対象ノードとする。また、対象ノードより前のノードのうち該対象ノードのデータ項目を示す情報に対応づけられたバージョン情報に値を有するノードを参照ノードとする。ワークフローシステム１０では、ＣＰＵ１２がワークフロー制御プログラム１６を実行することにより、判定部１８、退避部２０、及び復元部２２による処理が実行される。判定部１８は、記憶部２４に記憶された管理情報２９のうち、参照ノードのデータ項目を示す情報に対応付けられたバージョン情報と、参照ノードのフラグ情報とに基づいて、対象ノードにおけるデータ項目のデータ２７を退避するか否かを判定する。また、退避部２０は、判定部１８の判定結果に基づいて、対象ノードにおけるデータ項目のデータ２７を退避データ２８として退避する。復元部は、ワークフロー上で復元するノードとして入力された復元ポイントで、退避データ２８をデータ２７として復元する。
【００１３】
なお、ワークフローシステム１０は開示の技術におけるワークフローシステムの一例であり、判定部１８、退避部２０、及び復元部２２は開示の技術における判定部、退避部、及び復元部の一例である。また、ワークフロー制御プログラム１６は開示の技術におけるワークフロー制御プログラムの一例である。
【００１４】
図２に、ワークフローシステム１０に含まれるワークフロー制御装置１１及び操作装置２６をコンピュータで実現可能なシステムの一例としてコンピュータシステム３０の一例を示す。また、図３に、図２に示すコンピュータシステム３０を機能的なブロックにより表現した一例を示す。図２及び図３に示すワークフローシステム１０としてのコンピュータシステム３０は、ワークフロー制御装置１１としてのサーバ装置３２、及び操作装置２６としての複数（図２及び図３では３台）の端末装置７０を備える。
【００１５】
サーバ装置３２はＣＰＵ３４、メモリ３６、及び不揮発性の格納部４２を備える。ＣＰＵ３４、メモリ３６、及び格納部４２は、バス６４を介して互いに接続される。また、サーバ装置３２では、記録媒体３９に対して読み書きするための装置（ＩＯ装置）３８がバス６４に接続される。さらに、サーバ装置３２はコンピュータネットワーク６９に接続するためのインタフェースを含む通信制御部４０を備える。なお、格納部４２はＨＤＤ(Hard Disk Drive)やフラッシュメモリ等によって実現できる。
【００１６】
格納部４２には、ＯＳ(Operating System)４４、サーバ装置３２をワークフロー制御装置１１として機能させるための制御プログラム４６、及びデータベース（以下、ＤＢと略記する。）５２が記憶される。格納部４２に格納された制御プログラム４６は、ワークフロー制御プロセス４８、及びデータ退避復元管理プロセス５０を含む。ＣＰＵ３４は、制御プログラム４６を格納部４２から読み出してメモリ３６に展開し、制御プログラム４６が有する各プロセスを実行する。
【００１７】
サーバ装置３２のＣＰＵ３４が制御プログラム４６を格納部４２から読み出してメモリ３６に展開し、制御プログラム４６を実行することで、サーバ装置３２が図１に示すワークフロー制御装置１１として動作する。また、ＣＰＵ３４が制御プログラム４６を格納部４２から読み出してメモリ３６に展開し、制御プログラム４６に含まれるワークフロー制御プロセス４８を実行することで、サーバ装置３２は図３に示すワークフロー制御部６８として動作する。さらに、ＣＰＵ３４が制御プログラム４６のデータ退避復元管理プロセス５０を実行することで、サーバ装置３２は図３に示すデータ退避復元管理部６６として動作する。
【００１８】
サーバ装置３２で動作するワークフロー制御部６８（図３）は、ワークフローに含まれるノードの処理を進める制御、つまりノードの移動制御、及びノードで用いるデータの更新等の時期の制御、つまりワークフローにおける処理のタイミング制御を行う。また、サーバ装置３２で動作するデータ退避復元管理部６６（図３）は、ワークフロー制御部６８からの要請に応じて、ノードにおけるデータを退避したり、指示されたノードまでデータを復元（リカバリ）したりする制御を行う。
【００１９】
なお、ＣＰＵ３４がデータ退避復元管理プロセス５０を実行することで、サーバ装置３２は図１に示す判定部１８、退避部２０、及び復元部２２として動作する。つまり、制御プログラム４６に含まれるデータ退避復元管理プロセス５０は、図１に示すワークフロー制御プログラム１６の一例である。
【００２０】
図２及び図３では、コンピュータシステム３０に、単体のサーバ装置３２を含む一例を示すが、サーバ装置３２は複数のサーバ装置を含んでもよい。例えば、サーバ装置３２として、詳細を後述するデータ退避復元管理部６６及びワークフロー制御部６８の各々のを独立したサーバ装置で提供してもよい。
【００２１】
また、サーバ装置３２はコンピュータネットワーク６９に接続することに限定されない。例えば、サーバ装置３２は、端末装置７０に有線接続または無線接続により直接接続してもよい。
【００２２】
図２に示すように、サーバ装置３２の格納部４２に記憶されるＤＢ５２は、ワークフロー制御情報ＤＢ５４、実行履歴情報ＤＢ５６、データ項目情報ＤＢ５８、退避データ情報ＤＢ６０、及び退避データ管理情報ＤＢ６２を含む。
【００２３】
図４〜図１０に、ＤＢ７０に格納される各種ＤＢの一例を示す。図４に、ワークフロー制御情報ＤＢ５４の一例を示す。ワークフロー制御情報ＤＢ５４は、ワークフローを示す情報８０と、ワークフローのノードの各々で用いるデータ項目を示す情報８２とを含む。本実施形態は、ワークフローを示す情報８０の一例として、ワークフローが第１ノード〜第４ノードの４個のノードを含み、第１ノード〜第４ノードの順に処理が進められる場合を説明する。図４に示す一例は、ワークフローとして申請から承認までの一連の処理を示す。第１ノード８０−１は、「申請」のノードであり、ワークフロー制御情報は、第１ノード８０−１に、第１ノード８０−１のデータ項目８２−１が対応づけられて登録される。第２ノード８０−２は、「チェック」のノードであり、ワークフロー制御情報は、第２ノード８０−２に、第２ノード８０−２のデータ項目８２−２が対応づけられて登録される。同様に、第３ノード８０−３は、「承認」のノードであり、ワークフロー制御情報は、第３ノード８０−３に、第３ノード８０−３のデータ項目８２−３が対応づけられて登録される。また、第４ノードは、「確定」のノードであり、ワークフロー制御情報は、第４ノード８０−４に、第４ノード８０−４のデータ項目８２−４が対応づけられて登録される。
【００２４】
図５に、実行履歴情報ＤＢ５６の一例を示す。実行履歴情報ＤＢ５６には、ワークフロー制御部６８が実行するワークフローの実行履歴を示す情報が蓄積される。図５では実行履歴情報ＤＢ５６に、「実行順序」、「ノード名」、「実行日時」、及び「処理ＩＤ」の情報の各々が対応付けて登録されるワークフローの実行履歴を示す情報の一例を示す。「実行順序」を示す情報は、ワークフローにおいて実行されるノードの順序を示す情報であり、「ノード名」を示す情報は、ノードを識別するためのノードの名称を示す情報である。また、「実行日時」を示す情報はノードの実行開始時刻を示す情報であり、「処理ＩＤ」を示す情報はノードの実行を識別するための識別情報である。
【００２５】
図６に、データ項目の定義情報５７の一例を示す。データ項目の定義情報５７は、ワークフローのノードで用いるデータ項目の定義を示す情報が登録される。図６ではデータ項目の定義情報５７に、「データ項目」、「名称」、及び「データ型」の情報の各々が対応付けて登録される一例を示す。「データ項目」に示す情報は、ノードのデータ項目を識別するための識別情報であり、「名称」に示す情報は、ノードの内容等を示すノードの名称を示す情報である。「データ型」に示す情報は、「名称」に示す情報を登録するときのデータの型を示す情報である。
【００２６】
図７に、データ項目情報ＤＢ５８の一例を示す。データ項目情報ＤＢ５８には、ノードで用いるデータ項目の具体的内容を示す情報が登録される。図７ではデータ項目情報ＤＢ５８に、「データ項目」、「名称」、及び、「値」の情報の各々が対応付けて登録されるデータ項目情報の一例を示す。「データ項目」を示す情報は、データ項目の定義情報５７で定義されるノードのデータ項目を識別するための識別情報であり、「名称」に示す情報は、ノードの内容等を示すノードの名称を示す情報である。また、「値」を示す情報は、「名称」に示す情報の内容を示す情報である。なお、「名称」の情報は、「データ項目」の情報を兼ねてもよい。
【００２７】
図８及び図９に、退避データ情報ＤＢ６０の一例を示す。退避データ情報ＤＢ６０には、ノードで退避するデータを示す情報が蓄積される。ここで、ノードにおいて退避するデータは、ノードで用いるデータから退避用のデータを再作成して、退避データとすることが一般的である。本実施形態では、退避データを再作成する処理の負荷を軽減するために、各ノードのデータ項目の定義情報から、各ノードの変更対象のデータ項目に対応するデータ保持オブジェクトを生成して、退避データとする。つまり、ノードのデータ項目の定義情報から生成したデータ保持オブジェクトを退避データの形式に転用する。具体的には、ノードのデータ項目の定義情報によるデータ保持オブジェクトを直列化した情報をノードで退避するデータを示す情報（退避データ）として退避データ情報ＤＢ６０に登録する（詳細は後述）。
【００２８】
図８に、ノードのデータ項目に対応する退避用データの一例として、「データ項目」及び「値」の各情報が対応付けて登録される退避用データＤＢ６０Ａを示す。「データ項目」を示す情報は、データ項目の定義情報５７で定義されるノードのデータ項目を識別するための識別情報であり、「値」を示す情報は、データ項目の内容を示す情報である。図９には、退避データの一例として、「処理ＩＤ」及び「退避データ」の各情報が対応付けて登録されるデータ保持オブジェクトＤＢ６０Ｂを示す。「処理ＩＤ」を示す情報はノードの実行を識別するための識別情報であり、「退避データ」を示す情報は、データ保持オブジェクトを示す情報である。データ保持オブジェクトを示す情報は、ノードのデータ項目の名称と値とを、ノードで用いるデータ項目について、直列化したデータである。図８に示す退避用データから生成されるデータ保持オブジェクトは、「Ｄ１」、「Ｖａｌｕｅ−１−１」、「Ｄ２」、「Ｖａｌｕｅ−２−１」、・・・、となる。なお、図８に退避用データＤＢ６０Ａを示し、図９にデータ保持オブジェクトＤＢ６０Ｂを示したが、両方のＤＢを退避データ情報ＤＢ６０として登録することに限定されない。つまり、データ項目の定義情報５７で定義されるノードのデータ項目と値からデータ保持オブジェクトを生成することができる。従って、本実施形態では、各ノードの変更対象のデータ項目に対応するデータ保持オブジェクトをノードのデータ項目定義情報から生成されるデータ保持オブジェクトを用いて、データを操作することができる。
【００２９】
図１０に、退避データ管理情報ＤＢ６２の一例を示す。退避データ管理情報ＤＢ６２には、データを退避するための判定に用いる情報が登録される。図１０では退避データ管理情報ＤＢ６２に、「処理ＩＤ」、「データ項目バージョン」及び「更新フラグ」の情報の各々が対応付けて登録される退避データ管理情報の一例を示す。「処理ＩＤ」を示す情報はノードの実行を識別するための識別情報である。「データ項目バージョン」を示す情報には対象ノードで利用するデータ項目に、データのバージョンを示す情報が格納される。「更新フラグ」には、対象ノードでデータが更新されるときにＯＮの文字情報が格納される（セットされる）。なお、「データ項目バージョン」の情報は、ワークフローで用いるデータ項目の各々（図１０では、Ｄ１，Ｄ２，Ｄ３，Ｄ４）に対応して情報が登録される。
【００３０】
図２に示すように、サーバ装置３２は、複数の端末装置７０の各々に、コンピュータネットワーク６９を介して接続される。なお、図２では、コンピュータシステム３０に、３台の端末装置７０を含む一例を示すが、端末装置７０は３台に限定されるものではなく、詳細を後述するクライアント機能を実行できればよく、１台以上の端末装置７０を含めばよい。
【００３１】
端末装置７０の各々はＣＰＵ７１、メモリ７２、及び操作プログラム７４が記録された不揮発性の記録部７３を備える。ＣＰＵ７１、メモリ７２、及び記録部７３は、バス７９を介して互いに接続される。また、端末装置７０は、ディスプレイ等の表示部７５、キーボード及びマウス等の入力部７６を備え、表示部７５及び入力部７６はバス７９に接続される。また、端末装置７０は、記録媒体３９に対して読み書きするためのＩＯ装置７７がバス７９に接続される。さらに、端末装置７０はコンピュータネットワーク６９に接続するためのインタフェースを含む通信制御部７８を備える。なお、記録部７３はＨＤＤやフラッシュメモリ等によって実現できる。
【００３２】
以下の説明で、複数の端末装置７０又は端末装置７０に含まれる要素について個別に対象とする場合は、端末装置７０Ａ，７０Ｂ，７０Ｃで示すように、符号に記号を付与して表記し、端末装置７０同士又は計算機に含まれる要素同士を区別して扱う。本実施形態では、ワークフローを操作する操作者が利用する端末装置７０を、ワークフロークライアント側の端末装置７０Ａとして説明する。また、ワークフロー制御部６８に対して入出力を実行するユーザシステムを、ユーザシステム側の端末装置７０Ｂとして説明する。さらに、ワークフローの運用管理を実行する操作者が利用する端末装置７０を、運用管理クライアント側の端末装置７０Ｃとして説明する。
【００３３】
次に、本実施形態の作用を説明する。以下の説明では、申請から承認までのノードを含むワークフローの一例を説明する。図１１に、ワークフローのノードとして申請から承認までの一連の流れ一例を示す。図１１に示す一例では、「申請」の第１ノード８０−１で、データ項目８２−１のデータが更新される更新処理８０−１Ａ、及び「確定」の第４ノードで、データ項目８２−４が更新される更新処理８０−４Ａを含む。
【００３４】
図１２に、ワークフローシステム１０をコンピュータシステム３０で実現する場合におけるサーバ装置３２で動作するワークフロー制御部６８の処理の流れの一例を示す。ワークフロー制御部６８では、図１２に示す処理ルーチンが所定時間ごとに実行される。つまり、サーバ装置３２のＣＰＵ３４は、制御プログラム４６に含まれるワークフロー制御プロセス４８を実行することで、ワークフロー制御部６８として動作し、図１２に示す処理ルーチンを所定時間ごとに実行する。
【００３５】
ワークフロー制御部６８は、ステップ１００で、端末装置７０から送信される情報を受信したか否かを判断する。端末装置７０から送信される情報は、ワークフローを示す情報８０における処理を、現在のノードから次のノードへ移動する指示を示す情報、及びリカバリポイントへデータを復元する指示を示す情報を含む。ワークフロー制御部６８は、ステップ１００で、否定判断した場合にはそのまま本処理ルーチンを終了する。一方、ステップ１００で肯定判断されると、ワークフロー制御部６８は、ステップ１０２で、受信した情報がノード移動指示を示す情報か否かを判断する。ワークフロー制御部６８は、ノード移動指示を示す情報を受信した場合、ステップ１０２で肯定判断し、現在のノードから次のノードへ移動する場合におけるノード移動処理（詳細は後述）を実行した後に、本処理ルーチンを終了する。
【００３６】
また、リカバリポイントへデータを復元する指示を示す情報を受信した場合、ワークフロー制御部６８は、ステップ１０２で否定判断した後に、ステップ１０６で、肯定判断する。ワークフロー制御部６８は、ステップ１０６で、肯定判断した場合、ステップ１０８で、指示されたリカバリポイントへ復元する復元処理（詳細は後述）を実行した後に、本処理ルーチンを終了する。なお、ステップ１００で受信した情報がノード移動指示を示す情報及びリカバリ指示を示す情報の何れでもない場合、ワークフロー制御部６８は、ステップ１０２及びステップ１０６の両方で否定判断し、本処理ルーチンを終了する。
【００３７】
次に、図１２に示すステップ１０４のノード移動処理をさらに説明する。図１２に示すステップ１０４のノード移動処理では、図１３に示す処理ルーチンが実行される。
【００３８】
ワークフロー制御部６８は、ステップ１１０で、端末装置７０から送信される情報を受け取る。端末装置７０から送信される情報の一例には、ワークフロークライアント側の端末装置７０Ａから送信されるデータ項目のデータを変更する内容を含む変更の指示、及びワークフローにおける処理を、現在のノードから次のノードへ移動する指示を示す情報がある。変更の指示、及びノード移動の指示を示す情報は、ユーザシステム側の端末装置７０Ｂから送信される場合もある。また、ワークフロー制御部６８は、ステップ１１０で、端末装置７０、つまり、ワークフロークライアント側の端末装置７０Ａまたはユーザシステム側の端末装置７０Ｂが応答を要求することを示す情報も受け取る。
【００３９】
また、ワークフロー制御部６８は、ステップ１１２で、既存の処理ＩＤより大小比較で大きい値の新規のＩＤを割り当てる。つまり、ノード移動指示がなされた現在のノードから移動する次のノードの処理ＩＤとして、新規の処理ＩＤを割り当てる。処理ＩＤの一例には、１から１づつインクリメントする数値を示す情報がある。次に、ワークフロー制御部６８は、ステップ１１４で、データ退避復元管理部６６へデータ退避処理の実行を要求する。データ退避復元管理部６６は、データ退避処理を実行し、完了すると完了を示す情報を返信する（詳細は後述）。ワークフロー制御部６８は、データ退避復元管理部６６から完了を示す情報を受信するまで、ステップ１１６で否定判断を繰り返し、受信するとステップ１１８へ処理を移行する。ステップ１１８では、ワークフロー制御部６８は、ステップ１１０で受け取った指示内容に従って、ワークフロー制御情報、実行履歴情報及びデータ項目情報を変更する。次に、ワークフロー制御部６８は、ステップ１２０において、端末装置７０から応答を要求することを示す情報を受け取ったか否かを判別することにより、処理結果の応答が要求されたか否かを判断する。ワークフロー制御部６８は、ステップ１２０で否定判断した場合、そのまま本処理ルーチンを終了し、肯定判断した場合、ステップ１２２で端末装置７０へ処理結果を返信する応答を行った後に本処理ルーチンを終了する。
【００４０】
次に、データ退避復元管理部６６の動作を説明する。
【００４１】
図１４に、ワークフローシステム１０をコンピュータシステム３０で実現する場合におけるサーバ装置３２で動作するデータ退避復元管理部６６の処理の流れの一例を示す。データ退避復元管理部６６では、図１４に示す処理ルーチンが所定時間ごとに実行される。つまり、サーバ装置３２のＣＰＵ３４は、制御プログラム４６に含まれるデータ退避復元管理プロセス５０を実行することで、データ退避復元管理部６６として動作し、図１４に示す処理ルーチンを所定時間ごとに実行する。
【００４２】
データ退避復元管理部６６は、ステップ２００で、ワークフロー制御部６８から送信される要求を示す情報を受信したか否かを判断する。ワークフロー制御部６８から送信される情報は、ノードのデータを退避するデータ退避処理の実行を要求する情報、及びリカバリポイントへデータを復元するリカバリ処理の実行を要求する情報を含む。データ退避復元管理部６６は、ステップ２００で、否定判断した場合にはそのまま本処理ルーチンを終了する。一方、ステップ２００で肯定判断されると、データ退避復元管理部６６は、ステップ２０２で、受信した要求情報がデータ退避処理の実行を要求する情報か否かを判断する。データ退避復元管理部６６は、データ退避処理の実行を要求する情報を受信した場合、ステップ２０２で肯定判断し、ノードを移動する場合における現在のノードのデータを退避するデータ退避処理（詳細は後述）を実行した後に、本処理ルーチンを終了する。
【００４３】
また、リカバリポイントへデータを復元するリカバリ処理の実行を要求する情報を受信した場合、データ退避復元管理部６６は、ステップ２０２で否定判断した後に、ステップ２０６で、肯定判断する。データ退避復元管理部６６は、ステップ２０６で、肯定判断した場合、ステップ２０８で、指示されたリカバリポイントへ復元するリカバリ処理（詳細は後述）を実行した後に、本処理ルーチンを終了する。なお、ステップ２００で受信した情報がデータ退避処理の実行要求を示す情報及びリカバリ処理の実行要求を示す情報の何れでもない場合、データ退避復元管理部６６は、ステップ２０２及びステップ２０６の両方で否定判断し、本処理ルーチンを終了する。
【００４４】
次に、図１４に示すステップ２０４のデータ退避処理をさらに説明する。ステップ２０４のデータ退避処理では、退避データ管理情報は、ノードの処理毎にデータ項目バージョンと更新フラグを保持する。つまり、退避データ管理情報は、ワークフローの処理毎に１個を保持する。また、データ退避処理では、データ項目バージョンは、データが退避されたタイミングで格納される。そして、データ退避処理では、更新フラグは、現ノードから次ノードへ移動するタイミングでノードのデータ項目が更新された場合に値「ＯＮ」が設定される。なお、更新フラグは、ノードでデータが非更新の場合は、データが更新されていないことを示す情報、例えば値「ＯＦＦ」を設定することができる。なお、ノードでデータが非更新の場合、更新フラグをリセット（値をセットしない）してもよい。さらに、データ退避処理では、現ノードから次ノードに移動するタイミングにおいて、現ノードのデータ項目に対応するデータ項目バージョンについて、退避データ管理情報を参照して求める。データ項目バージョンの一例には、処理ＩＤと同じ値を持つ情報がある。また、データ退避処理では、ノード毎にノードのデータ項目を退避データ管理情報が持つバージョン情報と更新フラグに基づいて、データを退避するか否かを判断し、判断結果に基づいてデータを退避する処理、またはデータを退避しない処理を行う。なお、データを退避しない処理とは、データを退避する処理を行うことなく次処理へ移行する、何もしない処理である。
【００４５】
ノードにおけるデータを退避するか否かの判定条件の一例を示す。第１判定条件は、データ項目バージョンが存在しない初期状態であれば、データ退避を実行すると判定する条件である。第２判定条件は、現ノードのデータ項目の各々に対応する最新のデータ項目バージョンが、データ項目間で異なるバージョンである場合、データ退避を実行すると判定する条件である。第３判定条件は、最新のデータ項目バージョンの更新フラグが設定されている場合、データ退避を実行すると判定する条件である。第４判定条件は、第１判定条件、第２判定条件、および第３判定条件に該当しない場合、データ退避は不要とし、データ退避を実行しないと判定する条件である。
【００４６】
詳細には、図１４に示すステップ２０４のデータ退避処理では、図１５に示す処理ルーチンが実行される。
【００４７】
データ退避復元管理部６６は、ステップ２１０で、退避データ管理情報を参照し、現ノードのデータ項目に対応する最新のデータ項目バージョンをデータ項目毎に求める。つまり、データ退避復元管理部６６は、現ノードのデータ項目に対応する現ノードよりより前でかつ最新のデータ項目のデータ項目バージョンを、現ノードのデータ項目の各々について求める。
【００４８】
次に、データ退避復元管理部６６は、ステップ２１２で、求めたデータ項目バージョンは全て存在するか否かを判断する。つまり、データ退避復元管理部６６は、現ノードのデータ項目の各々に対応する最新のデータ項目バージョンが全て存在するか否かを判断する。データ退避復元管理部６６は、ステップ２１２で肯定判断すると、ステップ２１４へ処理を移行し、否定判断すると、ステップ２２４へ処理を移行する。
【００４９】
ステップ２１２で肯定判断すると、データ退避復元管理部６６は、ステップ２１４で、求めたデータ項目バージョンが全て同じデータ項目バージョンの値であるか否かを判断する。データ退避復元管理部６６は、ステップ２１４で肯定判断すると、ステップ２１６へ処理を移行し、否定判断すると、ステップ２２４へ処理を移行する。
【００５０】
ステップ２１４で肯定判断すると、データ退避復元管理部６６は、ステップ２１６で、退避データ管理情報を参照し、データ項目毎のデータ項目バージョンに対応する更新フラグを求める。つまり、データ退避復元管理部６６は、ステップ２１０で求めた現ノードのデータ項目毎の最新のデータ項目バージョンに対応する更新フラグを求める。
【００５１】
次に、データ退避復元管理部６６は、ステップ２１８において、ステップ２１６で求めた更新フラグが全てオフか否かを判断する。データ退避復元管理部６６は、ステップ２１８で肯定判断すると、ステップ２２０へ処理を移行し、否定判断すると、ステップ２２４へ処理を移行する。
【００５２】
ステップ２１８で肯定判断すると、データ退避復元管理部６６は、ステップ２２０で、データ項目のデータの変更が指示されているか否かを判断する。データ退避復元管理部６６は、ステップ２２０で肯定判断すると、ステップ２２２で、ステップ２１６で求めた更新フラグをオン（「ＯＮ］）に設定した後に、本処理ルーチンを終了し、否定判断すると、そのまま本処理ルーチンを終了する。なお、ステップ２２２では、データ退避処理の完了を示す情報を、ワークフロー制御部６８へ返信する。
【００５３】
また、データ退避復元管理部６６は、ステップ２２４で、退避データ管理情報に、新しい処理ＩＤの値をキーとする現ノードの情報として、データ項目バージョンと更新フラグとを含むデータを追加する。つまり、退避データ管理情報に、新しい処理ＩＤの値をキーとする情報を含むデータを追加する。新しい処理ＩＤの値をキーとする情報は、現ノードのデータ項目に対応するデータ項目バージョンに、新しい処理ＩＤの値または一意の値を有する情報を含む。また、新しい処理ＩＤの値をキーとする情報は、データ項目のデータが更新される場合、更新フラグの値がオンである情報も含む。
【００５４】
さらに、データ退避復元管理部６６は、ステップ２２６で、退避データ情報に、新しい処理ＩＤの値をキーとする現ノードのデータ項目の値を有するデータを追加する。本実施形態では、退避データ情報は、ノードのデータ項目定義情報から、各ノードの変更対象のデータ項目に対応するデータ保持オブジェクトを生成したデータである。なお、ステップ２２６では、データ退避処理の完了を示す情報を、ワークフロー制御部６８へ返信する。
【００５５】
次に、データ退避復元管理部６６で実行されるデータ退避処理について具体的に説明する。図１６及び図１７に、第１ノード８０−１〜第４ノード８０−４における各種データの関係を示す。
【００５６】
まず、第１ノード８０−１では、退避データ管理情報が参照され、現ノードのデータ項目に対応する最新のデータ項目バージョンがデータ項目毎に求められ（工程Ｌ０１）、第１ノード８０−１におけるデータを退避するか否かが判定される（工程Ｌ０２）。第１ノード８０−１は、ワークフローの最初のノードであるため、第１ノード８０−１より最新のデータ項目バージョンは存在しない。従って、第１判定条件によりデータを退避すると判定され、退避データ管理情報に、新しい処理ＩＤの値をキーとする情報を含むデータが追加される（工程Ｌ０３）。第１ノード８０−１では、データ項目のデータが更新されるので、更新フラグの値がオンである情報も追加される。また、第１ノード８０−１では、退避するデータとして、第１ノード８０−１のデータ項目定義情報から定まるデータ保持オブジェクトである退避データ情報が生成され、記憶される（工程Ｌ０４）。
【００５７】
第２ノード８０−２でも同様に、退避データ管理情報が参照され、最新のデータ項目バージョンが求められ（工程Ｌ０１）、第２ノード８０−２におけるデータを退避するか否かが判定される（工程Ｌ０２）。第２ノード８０−２では、最新のデータ項目バージョンが同一であるが、更新フラグの値がオンであるため、第３判定条件によりデータを退避すると判定され、退避データ管理情報に、新しい処理ＩＤの値をキーとする情報を含むデータが追加される（工程Ｌ０３）。第２ノード８０−２では、データ項目のデータが更新されないので、更新フラグは設定されない。また、第２ノード８０−２でも、退避するデータとして、第２ノード８０−２のデータ項目定義情報から定まるデータ保持オブジェクトである退避データ情報が生成され、記憶される（工程Ｌ０４）。
【００５８】
また、第３ノード８０−３でも、退避データ管理情報が参照され、最新のデータ項目バージョンが求められ（工程Ｌ０１）、第３ノード８０−３におけるデータを退避するか否かが判定される（工程Ｌ０２）。第３ノード８０−３では、最新のデータ項目バージョンが同一であるため、第４判定条件によりデータを退避しないと判定され、退避データ管理情報に、データは追加されない（工程Ｌ０３）。また、第３ノード８０−３では、データ保持オブジェクトである退避データ情報も生成されない（工程Ｌ０４）。
【００５９】
さらに、第４ノード８０−４でも同様に、退避データ管理情報が参照され、最新のデータ項目バージョンが求められ（工程Ｌ０１）、第４ノード８０−４におけるデータを退避するか否かが判定される（工程Ｌ０２）。第４ノード８０−４では、最新のデータ項目バージョンが相違するため、第２判定条件によりデータを退避すると判定され、退避データ管理情報に、新しい処理ＩＤの値をキーとする情報を含むデータが追加される（工程Ｌ０３）。第４ノード８０−４では、データ項目のデータが更新されるので、更新フラグの値がオンである情報も追加される。また、第４ノード８０−４でも、退避するデータとして、第４ノード８０−４のデータ項目定義情報から定まるデータ保持オブジェクトである退避データ情報が生成され、記憶される（工程Ｌ０４）。
【００６０】
次に、ワークフローシステム１０をコンピュータシステム３０で実現する場合における情報の流れについて具体的に説明する。図１８及び図１９に、ワークフロークライアント側の端末装置７０Ａ、データ退避復元管理部６６、及びワークフロー制御部６８の間における情報の流れの一例を示す。なお、図１８及び図１９では、第２ノード８０−２においてデータ項目のデータの変更を指示する場合における情報の流れの一例を示す。
【００６１】
申請者は、ワークフロークライアント側の端末装置７０Ａを操作して、ワークフロー制御部６８へ変更を指示する（工程Ｌ１０）。図１８に示す例では、データ項目「Ｄ２」である「宿泊場所」を「ＸＹＺホテル」に変更する指示、データ項目「Ｄ３」である「宿泊費」を「\18,500-」に変更する指示、データ項目「Ｄ４」である「払出日」を「2013/12/19」に変更する指示が含まれる。また、工程Ｌ１０における指示には、次のノードへ進める指示も含まれる。ワークフロー制御部６８は、端末装置７０Ａからの指示に応じて、ワークフロー制御情報とデータ項目情報とに基づく、データ退避復元管理部６６へデータ退避処理の実行を要求する（工程Ｌ１１）。データ退避復元管理部６６は、ワークフロー制御部６８からの要求に応じて、退避データ管理情報のデータに基づき、データ退避が必要か否かを判定し、データを退避すると判定した場合、退避データ情報にデータ項目の値を格納する（工程Ｌ１２）。
【００６２】
次に、データ退避復元管理部６６は、退避データ管理情報を追加または変更する（工程Ｌ１３）。ワークフロー制御部６８は、ワークフロー制御情報およびデータ項目情報を変更し、またワークフロー処理の実行を、実行履歴情報に追加する（工程Ｌ１４）。さらに、ワークフロー制御部６８は、ワークフロークライアント側の端末装置７０Ａから応答要求がなされている場合、ワークフロークライアント側の端末装置７０Ａへ処理結果を通知する（工程Ｌ１５）。
【００６３】
次に、ワークフロー制御部６８で実行される図１２に示すステップ１０８の復元処理をさらに説明する。図１２に示すステップ１０８の復元処理では、図２０に示す処理ルーチンが実行される。
【００６４】
ワークフロー制御部６８は、ステップ１３０で、端末装置７０から送信される情報を受け取る。リカバリ指示を示す情報の一例には、運用管理クライアント側の端末装置７０Ｃから送信されるリカバリポイントへデータを復元する指示を示す情報がある。また、ワークフロー制御部６８は、ステップ１３０で、端末装置７０、つまり、運用管理クライアント側の端末装置７０Ｃが応答を要求することを示す情報も受け取る。
【００６５】
また、ワークフロー制御部６８は、ステップ１３２で、実行履歴情報を参照し、リカバリ指示に対応する処理ＩＤを復元処理ＩＤとして求める。次に、ワークフロー制御部６８は、ステップ１３４で、データ退避復元管理部６６へリカバリ処理の実行を要求する。データ退避復元管理部６６は、リカバリ処理を実行し、完了すると完了を示す情報を返信する（詳細は後述）。ワークフロー制御部６８は、データ退避復元管理部６６から完了を示す情報を受信するまで、ステップ１３６で否定判断を繰り返し、受信するとステップ１３８へ処理を移行する。ステップ１３８では、ワークフロー制御部６８は、リカバリ処理から返されたリカバリ用退避データと、リカバリ指示とを基にして、ワークフロー制御情報、実行履歴情報及びデータ項目情報を変更する。次に、ワークフロー制御部６８は、ステップ１４０において、端末装置７０から応答を要求することを示す情報を受け取ったか否かを判別することにより、処理結果の応答が要求されたか否かを判断する。ワークフロー制御部６８は、ステップ１４０で否定判断した場合、そのまま本処理ルーチンを終了し、肯定判断した場合、ステップ１４２で端末装置７０へ処理結果を返信する応答を行った後に本処理ルーチンを終了する。
【００６６】
次に、データ退避復元管理部６６で実行される図１４に示すステップ２０８のリカバリ処理をさらに説明する。図１４に示すステップ２０８のリカバリ処理では、図２１に示す処理ルーチンが実行される。
【００６７】
データ退避復元管理部６６は、ステップ２３０で、リカバリ用退避データがそろったことを判断するための、データ項目の各々に対応する判定フラグの値をＯＦＦする。つまり、ステップ２３０では、データ項目の各々に判定フラグを対応付けて、判定フラグの値がＯＦＦに設定される。
【００６８】
次に、データ退避復元管理部６６は、ステップ２３２で、退避データ管理情報から、処理ＩＤが復元処理ＩＤの値以上のデータを順番に探索する。次に、データ退避復元管理部６６は、ステップ２３４で、探索結果のデータから、１つのデータを抽出し、次のステップ２３６で、データの内容が有るか否かを判断する。データ退避復元管理部６６は、ステップ２３６で否定判断すると、ステップ２４８へ処理を移行する。
【００６９】
ステップ２３６で肯定判断すると、データ退避復元管理部６６は、ステップ２３８で、抽出したデータのデータ項目バージョンのうち、値が設定されている全てのデータ項目について、判定フラグの状態を確認する。次に、データ退避復元管理部６６は、ステップ２４０で、状態がオフである判定フラグが有るか否かを判断し、肯定判断すると、ステップ２４２へ処理を移行し、否定判断すると、ステップ２３４へ処理を戻す。
【００７０】
ステップ２４０で肯定判断すると、データ退避復元管理部６６は、ステップ２４２で、退避データ情報を参照し、抽出したデータの処理ＩＤに対応するデータを取り出し、リカバリ用退避データとして保持する。次に、データ退避復元管理部６６は、抽出したデータのデータ項目バージョンのうち、値が設定されているデータ項目について、判定フラグの値をＯＮに設定する。また、データ退避復元管理部６６は、ステップ２４６で、全てのデータ項目の判定フラグがＯＮであるか否かを判断し、否定判断した場合にはステップ２３４へ処理を戻し、肯定判断した場合には、ステップ２４８へ処理を移行する。
【００７１】
データ退避復元管理部６６は、ステップ２４８で、退避データ管理情報と、退避データ情報とに基づき、処理ＩＤの値が復元処理ＩＤの値以上のデータを削除する。また、データ退避復元管理部６６は、ステップ２５０で、保持したリカバリ用退避データを、ワークフロー制御部６８へ返信する。
【００７２】
次に、ワークフローシステム１０をコンピュータシステム３０で実現する場合における情報の流れについて具体的に説明する。図２２及び図２３に、運用管理クライアント側の端末装置７０Ｃ、データ退避復元管理部６６、及びワークフロー制御部６８の間における情報の流れの一例を示す。なお、図２２及び図２３では、運用管理者が、故障が発生したワークフロー処理に対して実行順序が第２ノード８０−２の状態に戻すリカバリ処理を指示する場合における情報の流れの一例を示す。
【００７３】
運用管理者は、運用管理クライアント側の端末装置７０Ｃを操作して、故障が発生したワークフロー処理に対して実行順序が第２ノード８０−２の状態に戻すリカバリ処理を指示する（工程Ｌ２０）。ワークフロー制御部６８は、実行履歴情報から実行順序２に対応する処理ＩＤを求めて、データ退避復元管理部６６へリカバリに必要な退避データの抽出を依頼する（工程Ｌ２１）。データ退避復元管理部６６は、退避データ管理情報からリカバリに必要な退避データを判断し、退避データ情報に格納されている退避データを取り出してワークフロー制御部６８に渡す（工程Ｌ２２）。なお、工程Ｌ２２では、退避データ管理情報と退避データ情報とに基づいて、リカバリ対象の処理ＩＤ以降のデータを削除する。
【００７４】
次に、ワークフロー制御部６８は、リカバリに必要な退避データを使ってワークフロー制御情報およびデータ項目情報を変更する（工程Ｌ２３）。また、工程Ｌ２３では、ワークフロー制御部６８は、リカバリ処理の実行を、実行履歴情報に追加する。さらに、ワークフロー制御部６８は、運用管理クライアント側の端末装置７０Ｃから応答要求がなされている場合、運用管理クライアント側の端末装置７０Ｃへ処理結果を通知する（工程Ｌ２４）。
【００７５】
なお、ＣＰＵ３４により実行されるステップ２１２〜ステップ２２０の処理は、サーバ装置３２がワークフローシステムとして動作する場合における判定部の処理に対応する一例である。また、ＣＰＵ３４により実行されるステップ２２４及びステップ２２６の処理は、サーバ装置３２がワークフローシステムとして動作する場合における退避部の処理に対応する一例である。さらに、ＣＰＵ３４により実行されるステップ２４８及びステップ２５０の処理は、サーバ装置３２がワークフローシステムとして動作する場合における復元部の処理に対応する一例である。
【００７６】
以上説明したように、本実施形態は、ノード毎にノードのデータ項目のデータを、退避データ管理情報に含まれるバージョン情報と更新フラグとに基づいて、退避するか否かを判断するので、最小限のデータを退避すればよく、退避データ量を削減できる。また、データを退避しない場合に、データを退避する処理を削減でき、処理コストを抑制できる。
【００７７】
また、本実施形態では、バージョン情報と更新フラグとに基づいて、データを退避することを判定するので、ノード毎にデータを退避することに比べて、退避データ量を削減できる。
【００７８】
また、本実施形態では、ワークフローに含まれる最初のノードについて、データ項目のデータを退避するので、最初のノードから確実にデータを退避できる。
【００７９】
また、本実施形態では、現在のノードより前のノードのデータ項目に対応付けられたバージョン情報が同じでかつ、データが更新されていない場合、データを退避しないので、重複したデータを退避することを抑制できる。
【００８０】
また、本実施形態では、ノード毎に、ノードで用いるデータ項目を示す情報に対応付けたバージョン情報と、ノードで少なくとも一部のデータが更新されたことを示すフラグ情報とを含む情報を、退避データ管理情報に追加して記憶する。従って、退避データ管理情報を参照することにより、ノードにおけるデータ項目のバージョンとノードでデータが更新されたこととを確認できる。
【００８１】
また、本実施形態では、ノードで退避するデータ項目のデータは、ノードで用いるデータ項目のデータを組み合わせて生成したデータであるので、退避データを再作成する処理を抑制できる。
【００８２】
さらに、本実施形態では、入力されたノードの位置を示す情報と、退避データ管理情報と、退避したデータとに基づいて、入力されたノードのデータを復元する。退避データ管理情報によって、入力されたノードの位置に対応するノードのデータを復元するためのデータ項目を含むノードを迅速に特定できる。また、退避データ管理情報によって、退避されるデータも迅速に特定できる。
【００８３】
さらに、本実施形態では、ノード毎に、退避する個々のデータをつなげて保持するので、退避したデータからデータ項目のデータを抽出することで、容易にデータを復元できる。
【００８４】
なお、上記ではワークフローシステム１０をサーバ装置３２により実現する一例を説明した。しかし、これらの構成に限定されるものではなく、上記説明した要旨を逸脱しない範囲において、各種の改良及び変更を行っても良いのはもちろんである。
【００８５】
また、上記ではプログラムが記憶部に予め記憶（インストール）されている態様を説明したが、これに限定されるものではない。例えば、開示の技術におけるプログラムは、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等の記録媒体に記録されている形態で提供することも可能である。
【００８６】
以上の実施形態に関し、更に以下の付記を開示する。
【００８７】
（付記１）
ワークフローにより所定順序に従って複数のノードの処理を進める場合に、複数のノード毎に、前記ノードを示す情報を、前記ノードで用いるデータ項目を示す情報に対応付けたバージョン情報と、前記ノードで少なくとも一部のデータが更新されたことを示すフラグ情報とを含む管理情報が記憶部に記憶され、前記記憶部に記憶された前記管理情報のうち、次のノードへ処理を進める場合の現在のノードを対象ノードとし、かつ該対象ノードより前のノードのうち該対象ノードのデータ項目を示す情報に対応づけられたバージョン情報に値を有するノードを参照ノードとし、該参照ノードのデータ項目を示す情報に対応付けられたバージョン情報と、前記参照ノードのフラグ情報とに基づいて、前記対象ノードにおけるデータ項目のデータを退避するか否かを判定し、
判定結果に基づいて、前記対象ノードにおけるデータ項目のデータを退避する
ことを含む処理をコンピュータに実行させるためのワークフロー制御プログラム。
【００８８】
（付記２）
前記参照ノードのデータ項目を示す情報に対応付けられたバージョン情報が設定されていない場合、または、前記参照ノードのデータ項目を示す情報に対応付けられたバージョン情報の間で相違するバージョン情報の値が設定されている場合、または、前記参照ノードで少なくとも一部のデータが更新されたことを示すフラグ情報が設定されている場合、前記対象ノードにおけるデータ項目のデータを退避することを判定する
付記１に記載のワークフロー制御プログラム。
【００８９】
（付記３）
対象ノードがワークフローに含まれる最初のノードである場合に、前記参照ノードのデータ項目を示す情報に対応付けられたバージョン情報が設定されていない場合として、前記対象ノードにおけるデータ項目のデータを退避することを判定する
付記２に記載のワークフロー制御プログラム。
【００９０】
（付記４）
前記参照ノードのデータ項目を示す情報に対応付けられたバージョン情報の間でバージョン情報の値が同じでかつ、前記参照ノードでデータが更新されていないことを示すフラグ情報が設定されている場合、前記対象ノードにおけるデータ項目のデータを退避しないことを判定する
付記１〜付記３の何れか１項に記載のワークフロー制御プログラム。
【００９１】
（付記５）
前記対象ノードを示す情報を、前記対象ノードで用いるデータ項目を示す情報に対応付けたバージョン情報と、前記対象ノードで少なくとも一部のデータが更新されたことを示すフラグ情報とを含む前記対象ノードの情報を、前記管理情報に含めて前記記憶部に記憶する
付記１〜付記４の何れか１項に記載のワークフロー制御プログラム。
【００９２】
（付記６）
対象ノードで退避するデータ項目のデータは、対象ノードで退避するデータ項目のデータを組み合わせて生成したデータである
付記１〜付記５の何れか１項に記載のワークフロー制御プログラム。
【００９３】
（付記７）
前記ワークフローにおいてデータを復元する場合に入力されたノードの位置を示す情報と、前記管理情報と、前記退避したデータとに基づいて、入力されたノードのデータを復元する
付記１〜付記６の何れか１項に記載のワークフロー制御プログラム。
【００９４】
（付記８）
前記退避したデータの一部を抽出して前記データを復元する
付記７に記載のワークフロー制御プログラム。
【００９５】
（付記９）
コンピュータが、
ワークフローにより所定順序に従って複数のノードの処理を進める場合に、複数のノード毎に、前記ノードを示す情報を、前記ノードで用いるデータ項目を示す情報に対応付けたバージョン情報と、前記ノードで少なくとも一部のデータが更新されたことを示すフラグ情報とを含む管理情報が記憶部に記憶され、前記記憶部に記憶された前記管理情報のうち、次のノードへ処理を進める場合の現在のノードを対象ノードとし、かつ該対象ノードより前のノードのうち該対象ノードのデータ項目を示す情報に対応づけられたバージョン情報に値を有するノードを参照ノードとし、該参照ノードのデータ項目を示す情報に対応付けられたバージョン情報と、前記参照ノードのフラグ情報とに基づいて、前記対象ノードにおけるデータ項目のデータを退避するか否かを判定し、
判定結果に基づいて、前記対象ノードにおけるデータ項目のデータを退避する
ことを含むワークフロー制御方法。
【００９６】
（付記１０）
前記参照ノードのデータ項目を示す情報に対応付けられたバージョン情報が設定されていない場合、または、前記参照ノードのデータ項目を示す情報に対応付けられたバージョン情報の間で相違するバージョン情報の値が設定されている場合、または、前記参照ノードで少なくとも一部のデータが更新されたことを示すフラグ情報が設定されている場合、前記対象ノードにおけるデータ項目のデータを退避することを判定する
付記９に記載のワークフロー制御方法。
【００９７】
（付記１１）
前記参照ノードのデータ項目を示す情報に対応付けられたバージョン情報の間でバージョン情報の値が同じでかつ、前記参照ノードでデータが更新されていないことを示すフラグ情報が設定されている場合、前記対象ノードにおけるデータ項目のデータを退避しないことを判定する
付記９または付記１０に記載のワークフロー制御方法。
【００９８】
（付記１２）
前記ワークフローにおいてデータを復元する場合に入力されたノードの位置を示す情報と、前記管理情報と、前記退避したデータとに基づいて、入力されたノードのデータを復元する
付記９〜付記１１の何れか１項に記載のワークフロー制御方法。
【００９９】
（付記１３）
ワークフローにより所定順序に従って複数のノードの処理を進める場合に、複数のノード毎に、前記ノードを示す情報を、前記ノードで用いるデータ項目を示す情報に対応付けたバージョン情報と、前記ノードで少なくとも一部のデータが更新されたことを示すフラグ情報とを含む管理情報が記憶される記憶部と、
前記記憶部に記憶された前記管理情報のうち、次のノードへ処理を進める場合の現在のノードを対象ノードとし、かつ該対象ノードより前のノードのうち該対象ノードのデータ項目を示す情報に対応づけられたバージョン情報に値を有するノードを参照ノードとし、該参照ノードのデータ項目を示す情報に対応付けられたバージョン情報と、前記参照ノードのフラグ情報とに基づいて、前記対象ノードにおけるデータ項目のデータを退避するか否かを判定する判定部と、
判定結果に基づいて、前記対象ノードにおけるデータ項目のデータを退避する退避部と、
を備えたワークフロー制御システム。
【０１００】
（付記１４）
前記判定部は、前記参照ノードのデータ項目を示す情報に対応付けられたバージョン情報が設定されていない場合、または、前記参照ノードのデータ項目を示す情報に対応付けられたバージョン情報の間で相違するバージョン情報の値が設定されている場合、または、前記参照ノードで少なくとも一部のデータが更新されたことを示すフラグ情報が設定されている場合、前記対象ノードにおけるデータ項目のデータを退避することを判定する
付記１３に記載のワークフロー制御システム。
【０１０１】
（付記１５）
前記判定部は、前記参照ノードのデータ項目を示す情報に対応付けられたバージョン情報の間でバージョン情報の値が同じでかつ、前記参照ノードでデータが更新されていないことを示すフラグ情報が設定されている場合、前記対象ノードにおけるデータ項目のデータを退避しないことを判定する
付記１３または付記１４に記載のワークフロー制御システム。
【０１０２】
（付記１６）
前記ワークフローにおいてデータを復元する場合に入力されたノードの位置を示す情報と、前記管理情報と、前記退避したデータとに基づいて、入力されたノードのデータを復元する
付記１３〜付記１５の何れか１項に記載のワークフロー制御システム。
【符号の説明】
【０１０３】
１０    ワークフローシステム
１２    ＣＰＵ
１４    メモリ
１６    ワークフロー制御プログラム
１８    判定部
２０    退避部
２２    復元部
２４    記憶部
３２    サーバ装置
３４    ＣＰＵ
３６    メモリ
３９    記録媒体
４２    格納部
４６    制御プログラム
４８    ワークフロー制御プロセス
５０    データ退避復元管理プロセス
【図１】
2015185014.tif 000003
【図２】
2015185014.tif 000004
【図３】
2015185014.tif 000005
【図４】
2015185014.tif 000006
【図５】
2015185014.tif 000007
【図６】
2015185014.tif 000008
【図７】
2015185014.tif 000009
【図８】
2015185014.tif 000010
【図９】
2015185014.tif 000011
【図１０】
2015185014.tif 000012
【図１１】
2015185014.tif 000013
【図１２】
2015185014.tif 000014
【図１３】
2015185014.tif 000015
【図１４】
2015185014.tif 000016
【図１５】
2015185014.tif 000017
【図１６】
2015185014.tif 000018
【図１７】
2015185014.tif 000019
【図１８】
2015185014.tif 000020
【図１９】
2015185014.tif 000021
【図２０】
2015185014.tif 000022
【図２１】
2015185014.tif 000023
【図２２】
2015185014.tif 000024
【図２３】
2015185014.tif 000025