(57)【要約】  複数の処理が実行される順番を示すシーケンスフローと当該処理の各々で処理の対象とされる一つまたは複数のオブジェクトおよび当該オブジェクト各々に対する一つまたは複数の操作とが規定されているシステムが、いずれかの処理で実行を停止した場合に、当該システムの再開を支援する方法をコンピュータに実行させる再開支援プログラムであって、操作に伴って遷移するオブジェクトのバージョンに関するバージョン情報を、オブジェクトごとに処理各々と関連付けて保持し、システムがいずれかの処理で実行を停止した場合に、処理の成否と、処理に関連付けて保持されているオブジェクトおよびオブジェクトごとのバージョン情報と、システムにおいて現に保持されているオブジェクトおよびオブジェクトごとのバージョン情報とに基づいて、複数の処理の中から実行を再開すべき処理を判定する。
2008149416.tif 000002
【特許請求の範囲】
【請求項１】
複数の処理が実行される順番を示すシーケンスフローと当該処理の各々で処理の対象とされる一つまたは複数のオブジェクトおよび当該オブジェクト各々に対する一つまたは複数の操作とが規定されているシステムが、いずれかの処理で実行を停止した場合に、当該システムの再開を支援する方法をコンピュータに実行させる再開支援プログラムであって、
前記操作に伴って遷移する前記オブジェクトのバージョンに関するバージョン情報を、前記オブジェクトごとに前記処理各々と関連付けて保持するバージョン情報保持手順と、
前記システムがいずれかの処理で実行を停止した場合に、実行を停止した処理を示す情報を受け付ける停止情報受付手順と、
前記停止情報受付手順によって前記情報が受け付けられると、受け付けられた当該情報に示される処理の成否と、当該処理に関連付けて前記バージョン情報保持手順によって保持されている前記オブジェクトおよび当該オブジェクトごとの前記バージョン情報と、当該システムにおいて現に保持されているオブジェクトおよび当該オブジェクトごとのバージョン情報とに基づいて、前記複数の処理の中から実行を再開すべき処理を判定する再開処理判定手順と、
をコンピュータに実行させることを特徴とする再開支援プログラム。
【請求項２】
前記再開処理判定手順は、前記停止情報受付手順によって受け付けられた情報に示される処理の他に、前記シーケンスフローの中で当該処理と関連しているその他の処理に関する情報にも基づいて、前記実行を再開すべき処理を判定することを特徴とする請求項１に記載の再開支援プログラム。
【請求項３】
前記バージョン情報保持手順は、前記システムに規定されている情報から作成されることを特徴とする請求項１または２に記載の再開支援プログラム。
【請求項４】
前記バージョン情報保持手順は、前記システムの処理に伴って蓄積されるログ情報から作成されることを特徴とする請求項１または２に記載の再開支援プログラム。
【請求項５】
複数の処理が実行される順番を示すシーケンスフローと当該処理の各々で処理の対象とされる一つまたは複数のオブジェクトおよび当該オブジェクト各々に対する一つまたは複数の操作とが規定されているシステムが、いずれかの処理で実行を停止した場合に、当該システムの再開を支援する再開支援装置であって、
前記操作に伴って遷移する前記オブジェクトのバージョンに関するバージョン情報を、前記オブジェクトごとに前記処理各々と関連付けて保持するバージョン情報保持手段と、
前記システムがいずれかの処理で実行を停止した場合に、実行を停止した処理を示す情報を受け付ける停止情報受付手段と、
前記停止情報受付手段によって前記情報が受け付けられると、受け付けられた当該情報に示される処理の成否と、当該処理に関連付けて前記バージョン情報保持手段によって保持されている前記オブジェクトおよび当該オブジェクトごとの前記バージョン情報と、当該システムにおいて現に保持されているオブジェクトおよび当該オブジェクトごとのバージョン情報とに基づいて、前記複数の処理の中から実行を再開すべき処理を判定する再開処理判定手段と、
を備えたことを特徴とする再開支援装置。
【請求項６】
前記再開処理判定手段は、前記停止情報受付手段によって受け付けられた情報に示される処理の他に、前記シーケンスフローの中で当該処理と関連しているその他の処理に関する情報にも基づいて、前記実行を再開すべき処理を判定することを特徴とする請求項５に記載の再開支援装置。
【請求項７】
前記バージョン情報保持手段は、前記システムに規定されている情報から作成されることを特徴とする請求項５または６に記載の再開支援装置。
【請求項８】
前記バージョン情報保持手段は、前記システムの処理に伴って蓄積されるログ情報から作成されることを特徴とする請求項５または６に記載の再開支援装置。
【請求項９】
複数の処理が実行される順番を示すシーケンスフローと当該処理の各々で処理の対象とされる一つまたは複数のオブジェクトおよび当該オブジェクト各々に対する一つまたは複数の操作とが規定されているシステムが、いずれかの処理で実行を停止した場合に、当該システムの再開を支援する再開支援方法であって、
前記操作に伴って遷移する前記オブジェクトのバージョンに関するバージョン情報を、前記オブジェクトごとに前記処理各々と関連付けて保持するバージョン情報保持工程と、
前記システムがいずれかの処理で実行を停止した場合に、実行を停止した処理を示す情報を受け付ける停止情報受付工程と、
前記停止情報受付工程によって前記情報が受け付けられると、受け付けられた当該情報に示される処理の成否と、当該処理に関連付けて前記バージョン情報保持工程によって保持されている前記オブジェクトおよび当該オブジェクトごとの前記バージョン情報と、当該システムにおいて現に保持されているオブジェクトおよび当該オブジェクトごとのバージョン情報とに基づいて、前記複数の処理の中から実行を再開すべき処理を判定する再開処理判定工程と、
を含んだことを特徴とする再開支援方法。
【請求項１０】
前記再開処理判定工程は、前記停止情報受付工程によって受け付けられた情報に示される処理の他に、前記シーケンスフローの中で当該処理と関連しているその他の処理に関する情報にも基づいて、前記実行を再開すべき処理を判定することを特徴とする請求項９に記載の再開支援方法。
【請求項１１】
前記バージョン情報保持工程は、前記システムに規定されている情報から作成されることを特徴とする請求項９または１０に記載の再開支援方法。
【請求項１２】
前記バージョン情報保持工程は、前記システムの処理に伴って蓄積されるログ情報から作成されることを特徴とする請求項９または１０に記載の再開支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、再開支援プログラムおよび再開支援装置に関する。
【背景技術】
【０００２】
従来より、定型の作業がワークフローとして記述され、記述されたワークフローに従って処理を実行するシステム（ワークフローサービス）が、業務の効率化などの点で優れていることから、ＩＴ（Information  Technology）リソースを操作するシーンなど、様々なシーンで導入されている。ワークフローは、高度のスキルや知識を備えた者によって記述されることから、高度のスキルや知識がワークフローに取り込まれた状態となり、結果として、スキルの低い作業者によってシステムが運用されて処理が実行される場合や、作業者を介さずにシステムによる完全自動実行によって処理が実行される場合においても、安定した品質で作業が行われることになる。【０００３】
ところで、図１５は、従来技術を説明するための図であるが、図１５の（Ａ）に示すワークフローに従って処理を実行するシステムにおいて、フロー実行中に問題が発生し、図１５の（Ｂ）に示すように、システムがフロー４（Ｆ４）で実行を停止した場合に、当該問題が解決した後にシステムを再開させるにあたっては、いずれのフローから実行を再開すべきか、あるいは、再開のために必要な作業は何か、などを判定しなければならない。すなわち、例えば、図１５の（Ｃ）に示すように、最初のフロー１（Ｆ１）からやり直すべきか、図１５の（Ｄ）に示すように、失敗したフロー４（Ｆ４）からやり直すべきか、あるいは、図１５の（Ｅ）に示すように、失敗を回避する特別な処理であるフロー３．５（Ｆ３．５）を行うべきかなどを判定しなければならない。この判定は、高度のスキルや知識を備えた者によって行われたり、あるいは、高度のスキルや知識を備えた者が作成した手引書に従って行なわれるなどしていた。【０００４】
また、例えば、特許文献１に開示されている手法では、ワークフローに従って処理を実行する複数のシステムが、動作の履歴を保持しており、システムダウンからの復旧時には、保持している履歴を活用することで、信頼性を確保するなどしている。【０００５】
【特許文献１】特開平９−５０４０６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、上記した従来の技術では、システムがいずれかの処理で実行を停止した場合に、実行を再開すべき処理を判定することができないという課題があった。すなわち、上記した従来の技術では、システムがいずれかの処理で実行を停止した場合に、高度のスキルや知識を備えた者のような限られた者以外には、実行を再開すべき処理を判定することができず、あるいは、高度のスキルや知識を備えた者が作成した手引書がなければ、実行を再開すべき処理を判定することができない。なお、特許文献１に開示されている手法は、実行を再開すべき処理を判定するものではない。【０００７】
そこで、この発明は、上記した従来技術の課題を解決するためになされたものであり、システムがいずれかの処理で実行を停止した場合に、実行を再開すべき処理を判定することが可能な再開支援プログラムおよび再開支援装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するため、請求項１に係る発明は、複数の処理が実行される順番を示すシーケンスフローと当該処理の各々で処理の対象とされる一つまたは複数のオブジェクトおよび当該オブジェクト各々に対する一つまたは複数の操作とが規定されているシステムが、いずれかの処理で実行を停止した場合に、当該システムの再開を支援する方法をコンピュータに実行させる再開支援プログラムであって、前記操作に伴って遷移する前記オブジェクトのバージョンに関するバージョン情報を、前記オブジェクトごとに前記処理各々と関連付けて保持するバージョン情報保持手順と、前記システムがいずれかの処理で実行を停止した場合に、実行を停止した処理を示す情報を受け付ける停止情報受付手順と、前記停止情報受付手順によって前記情報が受け付けられると、受け付けられた当該情報に示される処理の成否と、当該処理に関連付けて前記バージョン情報保持手順によって保持されている前記オブジェクトおよび当該オブジェクトごとの前記バージョン情報と、当該システムにおいて現に保持されているオブジェクトおよび当該オブジェクトごとのバージョン情報とに基づいて、前記複数の処理の中から実行を再開すべき処理を判定する再開処理判定手順と、をコンピュータに実行させることを特徴とする。【０００９】
また、請求項２に係る発明は、上記の発明において、前記再開処理判定手順は、前記停止情報受付手順によって受け付けられた情報に示される処理の他に、前記シーケンスフローの中で当該処理と関連しているその他の処理に関する情報にも基づいて、前記実行を再開すべき処理を判定することを特徴とする。【００１０】
また、請求項３に係る発明は、上記の発明において、前記バージョン情報保持手順は、前記システムに規定されている情報から作成されることを特徴とする。【００１１】
また、請求項４に係る発明は、上記の発明において、前記バージョン情報保持手順は、前記システムの処理に伴って蓄積されるログ情報から作成されることを特徴とする。【００１２】
また、請求項５に係る発明は、複数の処理が実行される順番を示すシーケンスフローと当該処理の各々で処理の対象とされる一つまたは複数のオブジェクトおよび当該オブジェクト各々に対する一つまたは複数の操作とが規定されているシステムが、いずれかの処理で実行を停止した場合に、当該システムの再開を支援する再開支援装置であって、前記操作に伴って遷移する前記オブジェクトのバージョンに関するバージョン情報を、前記オブジェクトごとに前記処理各々と関連付けて保持するバージョン情報保持手段と、前記システムがいずれかの処理で実行を停止した場合に、実行を停止した処理を示す情報を受け付ける停止情報受付手段と、前記停止情報受付手段によって前記情報が受け付けられると、受け付けられた当該情報に示される処理の成否と、当該処理に関連付けて前記バージョン情報保持手段によって保持されている前記オブジェクトおよび当該オブジェクトごとの前記バージョン情報と、当該システムにおいて現に保持されているオブジェクトおよび当該オブジェクトごとのバージョン情報とに基づいて、前記複数の処理の中から実行を再開すべき処理を判定する再開処理判定手段と、を備えたことを特徴とする。【００１３】
また、請求項６に係る発明は、上記の発明において、前記再開処理判定手段は、前記停止情報受付手段によって受け付けられた情報に示される処理の他に、前記シーケンスフローの中で当該処理と関連しているその他の処理に関する情報にも基づいて、前記実行を再開すべき処理を判定することを特徴とする。【００１４】
また、請求項７に係る発明は、上記の発明において、前記バージョン情報保持手段は、前記システムに規定されている情報から作成されることを特徴とする。【００１５】
また、請求項８に係る発明は、上記の発明において、前記バージョン情報保持手段は、前記システムの処理に伴って蓄積されるログ情報から作成されることを特徴とする。【００１６】
また、請求項９に係る発明は、複数の処理が実行される順番を示すシーケンスフローと当該処理の各々で処理の対象とされる一つまたは複数のオブジェクトおよび当該オブジェクト各々に対する一つまたは複数の操作とが規定されているシステムが、いずれかの処理で実行を停止した場合に、当該システムの再開を支援する再開支援方法であって、前記操作に伴って遷移する前記オブジェクトのバージョンに関するバージョン情報を、前記オブジェクトごとに前記処理各々と関連付けて保持するバージョン情報保持工程と、前記システムがいずれかの処理で実行を停止した場合に、実行を停止した処理を示す情報を受け付ける停止情報受付工程と、前記停止情報受付工程によって前記情報が受け付けられると、受け付けられた当該情報に示される処理の成否と、当該処理に関連付けて前記バージョン情報保持工程によって保持されている前記オブジェクトおよび当該オブジェクトごとの前記バージョン情報と、当該システムにおいて現に保持されているオブジェクトおよび当該オブジェクトごとのバージョン情報とに基づいて、前記複数の処理の中から実行を再開すべき処理を判定する再開処理判定工程と、を含んだことを特徴とする。【００１７】
また、請求項１０に係る発明は、上記の発明において、前記再開処理判定工程は、前記停止情報受付工程によって受け付けられた情報に示される処理の他に、前記シーケンスフローの中で当該処理と関連しているその他の処理に関する情報にも基づいて、前記実行を再開すべき処理を判定することを特徴とする。【００１８】
また、請求項１１に係る発明は、上記の発明において、前記バージョン情報保持工程は、前記システムに規定されている情報から作成されることを特徴とする。【００１９】
また、請求項１２に係る発明は、上記の発明において、前記バージョン情報保持工程は、前記システムの処理に伴って蓄積されるログ情報から作成されることを特徴とする。
【発明の効果】
【００２０】
請求項１、５または９の発明によれば、複数の処理が実行される順番を示すシーケンスフローと当該処理の各々で処理の対象とされる一つまたは複数のオブジェクトおよび当該オブジェクト各々に対する一つまたは複数の操作とが規定されているシステムが、いずれかの処理で実行を停止した場合に、当該システムの再開を支援する方法をコンピュータに実行させる再開支援プログラムであって、操作に伴って遷移するオブジェクトのバージョンに関するバージョン情報を、オブジェクトごとに処理各々と関連付けて保持し、システムがいずれかの処理で実行を停止した場合に、実行を停止した処理を示す情報を受け付け、情報が受け付けられると、受け付けられた情報に示される処理の成否と、処理に関連付けて保持されているオブジェクトおよびオブジェクトごとのバージョン情報と、システムにおいて現に保持されているオブジェクトおよびオブジェクトごとのバージョン情報とに基づいて、複数の処理の中から実行を再開すべき処理を判定するので、システムがいずれかの処理で実行を停止した場合に、実行を再開すべき処理を判定することが可能になる。【００２１】
また、請求項２、６または１０の発明によれば、受け付けられた情報に示される処理の他に、シーケンスフローの中で処理と関連しているその他の処理に関する情報にも基づいて、実行を再開すべき処理を判定するので、システムがいずれかの処理で実行を停止した場合に、シーケンスフロー全体において実行を再開すべき最適な処理を判定することが可能になる。【００２２】
また、請求項３、７または１１の発明によれば、オブジェクトのバージョン情報は、システムに規定されている情報から作成されるので、実行を再開すべき処理を判定する仕組みを、簡易に実現することが可能になる。【００２３】
また、請求項４、８または１２の発明によれば、オブジェクトのバージョン情報は、システムの処理に伴って蓄積されるログ情報から作成されるので、システムに規定されている情報からバージョン情報を作成できない場合などにも、実行を再開すべき処理を判定する仕組みを、実現することが可能になる。
【図面の簡単な説明】
【００２４】
【図１】図１は、実施例１に係る再開支援装置の概要および特徴を説明するための図である。
【図２】図２は、実施例１に係る再開支援装置の構成を示すブロック図である。
【図３】図３は、システムについて説明するための図である。
【図４】図４は、再開処理判定について説明するための図である。
【図５】図５は、再開処理判定のポイントについて説明するための図である。
【図６】図６は、オブジェクトに対する操作について説明するための図である。
【図７】図７は、実施例１におけるシステムについて説明するための図である。
【図８】図８は、実施例１における再開処理判定について説明するための図である。
【図９】図９は、オブジェクトのバージョンについて説明するための図である。
【図１０】図１０は、実施例１におけるバージョン情報保持部について説明するための図である。
【図１１】図１１は、実施例１における再開処理判定について説明するための図である。
【図１２】図１２は、実施例１に係る再開支援装置による処理の手順を示すフローチャートである。
【図１３】図１３は、実施例２における再開処理判定を説明するための図である。
【図１４】図１４は、再開支援プログラムを実行するコンピュータを説明するための図である。
【図１５】図１５は、従来技術を説明するための図である。
【符号の説明】
【００２５】
１０  再開支援装置
１１  入力部
１２  出力部
１３  入出力制御Ｉ／Ｆ部
１４  通信部
２０  記憶部
２１  バージョン情報保持部
２２  判定結果保持部
３０  制御部
３１  停止情報受付部
３２  再開処理判定部
４０  再開支援プログラム（コンピュータ）
４１  キャッシュ
４２  ＲＡＭ
４３  ＨＤＤ
４３ａ  バージョン情報テーブル
４３ｂ  判定結果テーブル
４４  ＲＯＭ
４４ａ  停止情報受付プログラム
４４ｂ  再開処理判定プログラム
４５  ＣＰＵ
４５ａ  停止情報受付プロセス
４５ｂ  再開処理判定プロセス
４６  バス
【発明を実施するための最良の形態】
【００２６】
以下に添付図面を参照して、本発明に係る再開支援プログラムおよび再開支援装置の実施例を説明する。なお、以下では、実施例で用いる主要な用語、実施例１に係る再開支援装置の概要および特徴、実施例１に係る再開支援装置の構成、実施例１に係る再開支援装置による処理の手順、実施例１の効果を順に説明し、続いて、他の実施例について説明する。
【実施例１】
【００２７】
［用語の説明］
まず最初に、以下の実施例で用いる主要な用語を説明する。以下の実施例で用いる「システム」とは、定型の作業などがワークフローとして記述され、記述されたワークフローに従って処理を実行するシステムのことである。かかる「システム」においては、複数の「処理」が実行されることから、複数の「処理」が実行される順番を示す「シーケンスフロー」が規定されることになる。また、当該「処理」の各々においては、「オブジェクト」が「処理」の対象とされることから、一つまたは複数の「オブジェクト」が規定されることになる。さらに、当該「オブジェクト」各々に対しては、「操作」がなされることから、一つまたは複数の「操作」が規定されることになる。この「操作」には、例えば、「Create」、「Read」、「Write」、「Destroy」等があり、「Create」によって「オブジェクト」が生成されたり、「Destroy」によって「オブジェクト」が破棄されるなどする。【００２８】
ところで、「システム」は、規定の「シーケンスフロー」に従って処理を実行するものであり、各々の「処理」においては、規定の「オブジェクト」に対して規定の「操作」を行うことで、処理を実行することになるが、処理の実行中に何らかのエラーが発生すると、「システム」は、いずれかの処理で実行を停止する。【００２９】
実行を停止した「システム」は、エラーが解除された後に再開されることになるが、この時、「システム」は、単に実行を停止した処理から実行を再開すればよいというものではない。上記したように、「システム」は、一つの「処理」の中で、一つまたは複数の「オブジェクト」に対して、一つまたは複数の「操作」を行っているので、いかなる状態で処理の実行を停止したかによって、「システム」が実行を再開すべき処理も異なってくるのである。【００３０】
例えば、「システム」が処理の実行を停止したのが、生成すべき「オブジェクト」の生成前であったのか生成後であったのか、あるいは、破棄すべき「オブジェクト」の破棄前であったのか破棄後であったのか、など、様々な状況が想定されることから、「システム」は、単に実行を停止した処理から実行を再開すればよいというものではなく、再開すべき処理を判定し、処理の再開にあたり必要な作業を行わなければならない。このようなことから、本発明に係る再開支援装置が、複数の処理の中から実行を再開すべき処理をいかにして判定するかが重要となる。【００３１】
［実施例１に係る再開支援装置の概要および特徴］
続いて、図１を用いて、実施例１に係る再開支援装置の概要および特徴を説明する。図１は、実施例１に係る再開支援装置の概要および特徴を説明するための図である。なお、実施例１においては、処理が実行されるシステムと再開支援装置とが異なる装置で構成される手法を想定しているが、本発明はこれに限られるものではなく、システムと再開支援装置とが同じ装置で構成される手法にも、本発明を同様に適用することができる。【００３２】
実施例１に係る再開支援装置は、上記したように、複数の処理が実行される順番を示すシーケンスフローと処理の各々で処理の対象とされる一つまたは複数のオブジェクトおよびオブジェクト各々に対する一つまたは複数の操作とが規定されているシステムが、いずれかの処理で実行を停止した場合に、システムの再開を支援することを概要とし、システムがいずれかの処理で実行を停止した場合に、実行を再開すべき処理を判定することを特徴とする。【００３３】
この主たる特徴について簡単に説明すると、実施例１におけるシステムは、複数の処理が実行される順番を示すシーケンスフローと、処理の各々で処理の対象とされる一つまたは複数のオブジェクトおよびオブジェクト各々に対する一つまたは複数の操作とが規定されている。例えば、図１は、説明の便宜上から、シーケンスフローのうち『処理００４』の処理のみを切り出して図示するものであるが、『処理００４』で処理の対象とされる『オブジェクトＡ』および『オブジェクトＢ』が規定され、また、『オブジェクトＡ』に対する操作として、『Read』、『Write』および『Destroy』が規定され、『オブジェクトＢ』に対する操作として、『Create』が規定されている。【００３４】
また、実施例１に係る再開支援装置は、バージョン情報保持部に、操作に伴って遷移するオブジェクトのバージョンに関するバージョン情報を、オブジェクトごとに処理各々に関連づけて保持する。例えば、図１は、説明の便宜上から、バージョン情報保持部が保持するバージョン情報のうち、『処理００４』に関連づけて保持するバージョン情報のみを切り出して図示するものであるが、『オブジェクトＡ−１』については、操作『Read』、『Write』、および『Destroy』に伴って遷移するバージョン情報として、『１』、『２』、および『２』が、保持されている。【００３５】
このような構成のもと、実施例１におけるシステムが、いずれかの処理で実行を停止した場合に（図１の（１）を参照）、再開支援装置は、実行を停止した処理を示す情報を受け付ける（図１の（２）を参照）。例えば、再開支援装置は、「『処理００４』で実行を停止した。」との情報を、システムから受け付ける。【００３６】
次に、再開支援装置は、情報を受け付けると、受け付けた情報に示される処理の成否と、この処理に関連付けてバージョン情報保持部によって保持されているオブジェクトおよびオブジェクトごとのバージョン情報と、システムにおいて現に保持されているオブジェクトおよびオブジェクトごとのバージョン情報とに基づいて、実行を再開すべき処理を判定する（図１の（３）を参照）。【００３７】
例えば、再開支援装置は、「『処理００４』で実行を停止した。」との情報を受け付けると、受け付けた情報に示される『処理００４』の成否として「『処理００４』は失敗した」との情報と、この『処理００４』に関連付けてバージョン情報保持部によって保持されている『オブジェクトＡ』および『オブジェクトＡ』のバージョン情報、並びに、『処理００４』に関連付けてバージョン情報保持部によって保持されている『オブジェクトＢ』および『オブジェクトＢ』のバージョン情報と、システムに現に保持されているオブジェクトおよびオブジェクトごとのバージョン情報として、「『オブジェクトＡ』が存在し『バージョン２』である、『オブジェクトＢ』は存在しない」との情報とに基づいて、実行を再開すべき処理を判定する。【００３８】
この例であれば、再開支援装置は、『オブジェクトＢ』が存在しないことから、『処理００４』から再開することを検討するが、『処理００４』に必要な『オブジェクトＡ』は『バージョン１』でなければならず、システムに現に保持されている『オブジェクトＡ』は『バージョン２』であることから、結局、再開支援装置は、『バージョン２』の『オブジェクトＡ』を破棄し、『バージョン１』の『オブジェクトＡ』を生成する『処理００２』（図示していない）から実行を再開すべきであることを判定する。【００３９】
このようなことから、本発明に係る再開支援装置によれば、システムがいずれかの処理で実行を停止した場合に、実行を再開すべき処理を判定することが可能になる。【００４０】
［実施例１に係る再開支援装置の構成］
図２〜１１を用いて、実施例１に係る再開支援装置の構成を説明する。図２は、実施例１に係る再開支援装置の構成を示すブロック図であり、図３は、システムについて説明するための図であり、図４は、再開処理判定について説明するための図であり、図５は、再開処理判定のポイントについて説明するための図であり、図６は、オブジェクトに対する操作について説明するための図であり、図７は、実施例１におけるシステムについて説明するための図であり、図８は、実施例１における再開処理判定について説明するための図であり、図９は、オブジェクトのバージョンについて説明するための図であり、図１０は、実施例１におけるバージョン情報保持部について説明するための図であり、図１１は、実施例１における再開処理判定について説明するための図である。【００４１】
図２に示すように、実施例１に係る再開支援装置１０は、入力部１１と、出力部１２と、入出力制御Ｉ／Ｆ部１３と、通信部１４と、記憶部２０と、制御部３０とから構成される。【００４２】
入力部１１は、制御部３０による各種処理に用いるデータや、各種処理をするための操作指示などを、キーボード、マウス、または記憶媒体などによって入力する。具体的には、入力部１１は、後述するバージョン情報保持部２１によって保持されるバージョン情報をキーボードなどによって入力し、バージョン情報保持部２１に保持させるなどする。【００４３】
出力部１２は、制御部３０による各種処理の結果や、各種処理をするための操作指示などを、モニタ、またはプリンタなどに出力する。具体的には、出力部１２は、入力部１１によってバージョン情報を入力させるための画面や、後述する判定結果保持部２２によって保持される判定結果、あるいは、バージョン情報保持部２１によって保持されているバージョン情報などを、モニタに出力するなどする。【００４４】
入出力制御Ｉ／Ｆ部１３は、入力部１１および出力部１２と、記憶部２０および制御部３０との間におけるデータ転送を制御する。【００４５】
通信部１４は、通信用の一般的なライブラリを備え、再開支援装置１０とシステムとの間の通信を行うなどする。具体的には、通信部１４は、システムがいずれかの処理で実行を停止した場合に、実行を停止した処理を示す情報や、現にシステムに保持されているオブジェクトおよびオブジェクトのバージョン情報を、システムから再開支援装置１０に送信するなどする。【００４６】
記憶部２０は、制御部３０による各種処理に用いるデータを記憶し、特に本発明に密接に関連するものとしては、図２に示すように、バージョン情報保持部２１と、判定結果保持部２２とを備える。なお、バージョン情報保持部２１は、特許請求の範囲に記載の「バージョン情報保持手順」に対応する。【００４７】
バージョン情報保持部２１は、操作に伴って遷移するオブジェクトのバージョンに関するバージョン情報を、オブジェクトごとに処理各々と関連付けて保持する。具体的には、バージョン情報保持部２１は、入力部１１によって入力されたバージョン情報や、システムに規定されている情報から作成されたバージョン情報、あるいは、システムの処理に伴って蓄積されるログ情報から作成されたバージョン情報を保持し、保持したバージョン情報は、後述する再開処理判定部２２による処理に利用される。なお、バージョン情報保持部２１が保持するバージョン情報については、後に詳述する。【００４８】
判定結果保持部２２は、判定結果を保持する。具体的には、判定結果保持部２２は、後述する再開処理判定部３２によって判定された判定結果を保持し、保持した判定結果は、出力部１２によって出力されるなどする。【００４９】
制御部３０は、再開支援装置１０を制御して各種処理を実行し、特に本発明に密接に関連するものとしては、図２に示すように、停止情報受付部３１と、再開処理判定部３２とを備える。なお、停止情報受付部３１は、特許請求の範囲に記載の「停止情報受付手順」に対応し、再開処理判定部３２は、特許請求の範囲に記載の「再開処理判定手順」に対応する。【００５０】
停止情報受付部３１は、システムがいずれかの処理で実行を停止した場合に、実行を停止した処理を示す情報を受け付ける。具体的には、停止情報受付部３１は、実行を停止した処理を示す情報を通信部１４を介してシステムから受け付け、受け付けた情報は、再開処理判定部３２による処理に利用される。なお、実施例１においては、停止情報受付部３１が、実行を停止した処理を示す情報をシステムから受け付ける手法について説明するが、本発明はこれに限られるものではなく、実行を停止した処理を示す情報を、再開支援装置１０の利用者による入力によって受け付ける手法など、いずれでもよい。【００５１】
再開処理判定部３２は、停止情報受付部３１によって受け付けられた情報に示される処理の成否と、処理に関連付けてバージョン情報保持部２１によって保持されているオブジェクトおよびオブジェクトごとのバージョン情報と、システムにおいて現に保持されているオブジェクトおよびオブジェクトごとのバージョン情報とに基づいて、実行を再開すべき処理を判定する。具体的には、再開処理判定部３２は、停止情報受付部３１によって情報が受け付けられると、受け付けられた情報に示される処理の成否と、処理に関連付けてバージョン情報保持部２１によって保持されているオブジェクトおよびオブジェクトごとのバージョン情報と、システムにおいて現に保持されているオブジェクトおよびオブジェクトごとのバージョン情報とに基づいて、実行を再開すべき処理を判定し、判定した判定結果を、判定結果保持部２２に保持させる。なお、受け付けた情報に示される処理の成否や、システムにおいて現に保持されているオブジェクトおよびオブジェクトごとのバージョン情報については、再開処理判定部３２は、通信部１４を介してシステムから受け付けたり、あるいは、入力部１１によって再開支援装置１０の利用者による入力を受け付けるなどして、取得する。【００５２】
［再開支援装置に関する詳細説明］
本発明に係る再開支援装置１０は、上記したような各部で構成されるが、以下では、各部の機能について、さらに詳細に説明することとする。まず、本発明に係る再開支援装置１０が再開を支援するシステムについて、図３を用いて説明する。図３の（Ａ）は、複数の処理が実行される順番を示すシーケンスフローと、処理の各々で処理の対象とされる一つまたは複数のオブジェクトおよびオブジェクト各々に対する一つまたは複数の操作とが規定されているシステムを例示するものである。丸、四角、菱形等が処理の各々を意味しており、『００１』〜『００８』の付番が、複数の処理が実行される順番を意味している。すなわち、図３においては、『００１』を開始点として『００８』を終了点とする順番で、複数の処理が実行される。【００５３】
ところで、処理の各々においては、一つまたは複数のオブジェクトが処理の対象とされ、また、オブジェクト各々に対しては、一つまたは複数の操作がなされる。図３の（Ａ）に示すように、処理『００２』では、『オブジェクトＡ』を処理の対象とし、『オブジェクトＡの作成』という操作がなされる。また、処理『００４』では、『オブジェクトＡ』および『オブジェクトＢ』を処理の対象とし、『オブジェクトＡの情報からオブジェクトＢを作成して、オブジェクトＡを消去』という操作がなされる。また、処理『００５』では、『オブジェクトＡ』および『オブジェクトＢ』を処理の対象とし、『オブジェクトＡの情報からオブジェクトＢを作成して、オブジェクトＡを消去』という操作がなされる。また、処理『００７』では、『オブジェクトＢ』を処理の対象とし、『オブジェクトＢの情報から処理を行い、オブジェクトＢを消去』という操作がなされる。なお、図３の（Ｂ）は、上記したような処理の対象や操作（処理各々においてどのようなオブジェクトの入出力があり、オブジェクトがどのような流れで入出力されているか、など）を明らかにしたものである。【００５４】
例えば、図４の（Ａ）に示すように、図３の（Ｂ）に示すシステムが、処理『００４』で実行を停止したとする。この時、オブジェクトに対する操作のみについて考えると、図４の（Ｂ）に示すように、（１）〜（４）の４パターンの状況が想定し得る。すなわち、『オブジェクトＡ』の破棄が成功し、『オブジェクトＢ』の生成も成功したという（１）のパターン、『オブジェクトＡ』の破棄は成功したが、『オブジェクトＢ』の生成は失敗したという（２）のパターン、『オブジェクトＡ』の破棄は失敗したが、『オブジェクトＢ』の生成は成功したという（３）のパターン、『オブジェクトＡ』の破棄が失敗し、『オブジェクトＢ』の生成も失敗したという（４）のパターンである。【００５５】
ここで、『オブジェクトＡ』の破棄が成功すれば、システムにおいて現に保持されているオブジェクトに『オブジェクトＡ』は存在しないことになる。反対に、『オブジェクトＡ』の破棄が失敗すれば、システムにおいて現に保持されているオブジェクトに『オブジェクトＡ』は存在することになる。また、『オブジェクトＢ』の生成が成功すれば、システムにおいて現に保持されているオブジェクトに『オブジェクトＢ』は存在することになる。反対に、『オブジェクトＢ』の生成が失敗すれば、システムにおいて現に保持されているオブジェクトに『オブジェクトＢ』は存在しないことになる。オブジェクトに対する操作の成否として想定し得る４パターンと、システムにおいて現に保持されているオブジェクトの有無との関係を示したものが、図４の（Ｂ）に示す表の、「オブジェクトの有無」の行である。【００５６】
また、図４の（Ａ）に示すように、システムが処理『００４』で実行を停止した場合、処理『００４』自体の処理の成否として、「成功」と「失敗」との２つのパターンが考えられる。そこで、複数の処理の中から実行を再開すべき処理を判定するには、図４の（Ｃ）に示すように、処理『００４』の成否と、パターンごとのオブジェクトの有無とで場合分けをして考える必要がある。なお、処理『００４』の成否が「成功」で、オブジェクトの有無が（２）のパターンという組み合わせや、処理『００４』の成否が「成功」で、オブジェクトの有無が（４）のパターンという組み合わせは、『オブジェクトＢ』が存在しない以上、処理の『００４』の成否が「成功」であることはあり得ないとして、記載されていない。【００５７】
処理『００４』の成否が「成功」で、オブジェクトの有無が（１）のパターンであった場合について説明すると、処理『００４』が成功しているので、図４の（Ａ）に示すように、処理『００４』の次の処理『００６』から実行を再開すべきであると考えられる。ところで、処理『００６』から実行を再開するには、『オブジェクトＡ』が存在せず、『オブジェクトＢ』が存在する必要があるが、（１）のパターンは、まさにこのパターンに該当する。このため、図４の（Ｃ）に示すように、「処理『００６』から実行を再開すべきである」、と判定することになる。【００５８】
処理『００４』の成否が「成功」で、オブジェクトの有無が（３）のパターンであった場合について説明すると、処理『００４』で成功しているので、同様に、次の処理『００６』から実行を再開すべきであると考えられる。ところが、（３）のパターンは、『オブジェクトＡ』が存在するパターンであるので、処理の『００６』から実行を再開するには、『オブジェクトＡ』を破棄する必要がある。このため、図４の（Ｃ）に示すように、「『オブジェクトＡ』を破棄して、処理『００６』から実行を再開すべきである」、と判定することになる。【００５９】
処理『００４』の成否が「失敗」で、オブジェクトの有無が（１）のパターンであった場合について説明すると、処理『００４』で失敗しているので、処理『００４』から実行を再開すべきであると考えられる。ところで、処理『００４』から実行を再開するには、『オブジェクトＡ』が存在して、『オブジェクトＢ』が存在しない必要があるが、（１）のパターンは、『オブジェクトＡ』が存在しないパターンであるので、処理『００４』から実行を再開することができず、『オブジェクトＡ』を作成する処理『００２』まで戻って実行を再開する必要がある。加えて、『オブジェクトＢ』を破棄する必要がある。このため、図４の（Ｃ）に示すように、「『オブジェクトＢ』を破棄して、処理『００２』から実行を再開すべきである」、と判定することになる。【００６０】
処理『００４』の成否が「失敗」で、オブジェクトの有無が（２）のパターンであった場合について説明すると、処理『００４』で失敗しているので、処理『００４』から実行を再開すべきであると考えられるが、（１）のパターンと同様、（２）のパターンは、『オブジェクトＡ』が存在しないパターンであるので、処理『００４』から実行を再開することができず、『オブジェクトＡ』を作成する処理『００２』まで戻って実行を再開する必要がある。なお、『オブジェクトＢ』を破棄する必要はない。このため、図４の（Ｃ）に示すように、「処理『００２』から実行を再開すべきである」、と判定することになる。【００６１】
処理『００４』の成否が「失敗」で、オブジェクトの有無が（３）のパターンであった場合について説明すると、処理『００４』で失敗しているので、処理『００４』から実行を再開すべきであると考えられる。処理『００４』から実行を再開するには、『オブジェクトＡ』が存在して、『オブジェクトＢ』が存在しない必要があるが、（３）のパターンは、『オブジェクトＡ』が存在し、『オブジェクトＢ』も存在するパターンであるので、『オブジェクトＢ』を破棄するだけで、処理『００４』から実行を再開することができる。このため、図４の（Ｃ）に示すように、「『オブジェクトＢ』を破棄して、処理『００４』から実行を再開すべきである」、と判定することになる。【００６２】
処理『００４』の成否が「失敗」で、オブジェクトの有無が（４）のパターンであった場合について説明すると、処理『００４』で失敗しているので、処理『００４』から実行を再開すべきであると考えられる。処理『００４』から実行を再開するには、『オブジェクトＡ』が存在して、『オブジェクトＢ』が存在しない必要があるが、（４）のパターンは、まさにこのパターンに該当する。このため、図４の（４）に示すように、「処理『００４』から実行を再開すべきである」、と判定することになる。【００６３】
これらの判定について考えると、図５に示すように、処理（Action）の成否と、処理に対して入力されるオブジェクト（Input  Object）と、処理から出力されるオブジェクト（Output  Object）と、システムに現に保持されているオブジェクトの有無とが、判定のポイントになると思われる。しかしながら、以下に説明するように、これらの情報だけでは、実行を再開すべき処理を正しく判定できないおそれがある。【００６４】
図３および図４の（Ａ）の例では、一つの処理において、一つのオブジェクトに対する操作として、せいぜい『Read』と『Destroy』とが行なわれる程度の例であったが、実際のシステムでは、例えば、図６に示すように、一つの処理において、一つのオブジェクトに対する操作として、『Destroy』、『Create』、『Read』、および『Write』など、様々な操作が行われることがある。【００６５】
例えば、図７は、図３および図４の（Ａ）で示したシステムとほぼ同様のシステムを示すものであるが、処理『００４』で、『オブジェクトＡ』を『Read』してから『オブジェクトＢ』を『Create』するのみならず、『オブジェクトＡ』を『Read』した後『Write』して、その『Write』後の『オブジェクトＡ』から『オブジェクトＢ』を『Create』する点が異なっている。【００６６】
図８の（Ａ）に示すように、図７に示すシステムが、処理『００４』で実行を停止したとする。上記と同様に、「オブジェクトの有無」のパターンを考えると、図８の（Ｂ）に示すような４パターンを想定し得る。【００６７】
そこで、図８の（Ｃ）に示すように、処理『００４』の成否と、パターンごとのオブジェクトの有無とで場合分けをして、複数の処理の中から実行を再開すべき処理を判定しようとすると、処理『００４』の成否が「失敗」で、オブジェクトの有無が（３）のパターンであった場合と、処理『００４』の成否が「失敗」で、オブジェクトの有無が（４）のパターンであった場合とについては、図４の（Ｃ）で行なった判定と異なる判定をしなければならないことがわかる。【００６８】
つまり、処理『００４』の成否が「失敗」で、オブジェクトの有無が（３）のパターンであった場合について説明すると、まず、処理『００４』で失敗しているので、処理『００４』から実行を再開すべきであると考えられる。処理『００４』から実行を再開するには、『オブジェクトＡ』が存在して、『オブジェクトＢ』が存在しない必要があるが、ここで注意すべきなのは、『Write』前の『オブジェクトＡ』が存在する必要があるのであって、『Write』後の『オブジェクトＡ』が存在するのでは、処理『００４』から実行を再開することができないという点である。言い換えると、処理『００４』において、『Write』前の『オブジェクトＡ』と、『Write』後の『オブジェクトＡ』とは、別物であり、処理『００４』から実行を再開するには、『Write』前の『オブジェクトＡ』が存在する必要があるのである。【００６９】
したがって、処理『００４』の成否が「失敗」で、オブジェクトの有無が（３）のパターンであった場合、存在する『オブジェクトＡ』が、『Write』前であれば、図４の（Ｃ）に示すように、「『オブジェクトＢ』を破棄して、処理『００４』から実行を再開すべきである」、と判定すればよいが、存在する『オブジェクトＡ』が、『Write』後であれば、図４の（Ｃ）に示すように、「『オブジェクトＡ』を破棄し、『オブジェクトＢ』も破棄し、処理『００２』から実行を再開すべきである」、と判定しなければならない。処理『００４』の成否が「失敗」で、オブジェクトの有無が（４）のパターンであった場合も同様である。【００７０】
このように、正しく判定できないおそれがあるために、上記してきたような手法では、間違ったオブジェクトで処理を実行してしまう可能性や、その可能性をおそれるあまりに、戻る必要のない処理まで戻って実行を再開してしまう可能性などが生じる。【００７１】
そこで、本発明に係る再開支援装置１０では、上記した問題をも解決することを目的として、図９に示すような考え方を導入する。例えば、オブジェクトが、図９に示すように、『Create』、『Read』、『Write』、および『Destroy』という操作がなされるライフサイクルに従うものであるとすると、各々の操作に対応づけて、操作に伴って遷移するオブジェクトのバージョンという概念を導入する。図９に示す例はあくまで一例であるが、例えば、『Create』、『Read』という操作に伴っては、オブジェクトのバージョンは遷移しないが、『Write』という操作に伴っては、オブジェクトのバージョンが遷移するものとし、『１』から『２』に遷移させている。また、『Destroy』という操作に伴っても、オブジェクトのバージョンは遷移しないものとする。なお、図９においては、説明の便宜上から、各々の操作に対して、「Task  ID」を付与している。【００７２】
本発明に係る再開支援装置１０では、バージョン情報保持部２１において、操作に伴って遷移するオブジェクトのバージョンに関するバージョン情報を、オブジェクトごとに処理各々と関連づけて保持する。例えば、図１０の（Ａ）に示すようなシステムに対しては、バージョン情報保持部２１は、図１０の（Ｂ）に示すようなバージョン情報を保持することになる。なお、図１０の（Ｂ）は、バージョン情報保持部２１が保持するバージョン情報の一部を示すものである。【００７３】
バージョン情報保持部２１が保持するバージョン情報について、図１０の（Ｂ）を用いて説明する。まず、『ObjectＡ−１』と『ObjectＡ−２』とは、処理『００３』で「Ａ＝１」に分岐した方の『オブジェクトＡ』を『ObjectＡ−１』としており、処理『００３』で「Ａ≠１」に分岐した方の『オブジェクトＡ』を『ObjectＡ−２』としているものである。『ObjectＡ−１』の行をみるとわかるように、実施例１においては、『ObjectＡ−１』は、『Create』、『Read』という操作に伴っては、バージョンは遷移せず、『１』のままであるが、『Write』という操作に伴っては、バージョンが遷移するものとし、『１』から『２』に遷移させている。また、『Destroy』という操作に伴っても、バージョンは遷移せず、『２』のままである。【００７４】
バージョン情報保持部２１が保持するバージョン情報について、さらに一部を抜粋したものが、図１１の（Ａ）である。ここで、図１０の（Ａ）に示すシステムが、処理『００４』で実行を停止したとする。この時、オブジェクトの有無のパターンは、図１１の（Ｂ）のようになり、（３）−１〜（４）−２に示すように、『オブジェクトＡ』については、『Version１』が存在するのか、あるいは、『Version２』が存在するのか、といった２つのパターンに分けて考えることになる。【００７５】
すると、複数の処理の中から実行を再開すべき処理を判定するには、図１１の（Ｃ）に示すように、処理『００４』の成否と、パターンごとのオブジェクトの有無と、オブジェクトごとのバージョン情報とを場合分けして考えることになる。つまり、再開処理判定部３２は、図１１の（Ａ）〜（Ｃ）に示すように、処理『００４』の成否と、処理『００４』に関連付けてバージョン情報保持部２１によって保持されているオブジェクトおよびオブジェクトごとのバージョン情報（図１１の（Ａ）を参照）と、システムにおいて現に保持されているオブジェクトおよびオブジェクトごとのバージョン情報（図１１の（Ｂ）を参照）とに基づいて、実行を再開すべき処理を判定する。【００７６】
例えば、処理『００４』の成否が「失敗」で、オブジェクトの有無が（３）−１のパターンであった場合について説明すると、再開処理判定部３２は、まず、処理『００４』で失敗しているので、処理『００４』から実行を再開すべきであると考える。処理『００４』から実行を再開するには、『Version−１』の『オブジェクトＡ』が存在して、『オブジェクトＢ』が存在しない必要があるが、（３）−１のパターンでは、『Version−１』の『オブジェクトＡ』が存在し、『オブジェクトＢ』が存在していることから、結局、再開処理判定部３２は、図１１の（Ｃ）に示すように、「『オブジェクトＢ』を破棄して、処理『００４』から実行を再開すべきである」、と判定する。【００７７】
一方、処理『００４』の成否が「失敗」で、オブジェクトの有無が（３）−２のパターンであった場合について説明すると、再開処理判定部３２は、まず、処理『００４』で失敗しているので、処理『００４』から実行を再開すべきであると考える。処理『００４』から実行を再開するには、『Version−１』の『オブジェクトＡ』が存在して、『オブジェクトＢ』が存在しない必要があるが、（３）−２のパターンでは、『Version−２』の『オブジェクトＡ』が存在し、『オブジェクトＢ』が存在していることから、結局、再開処理判定部３２は、図１１の（Ｃ）に示すように、「『オブジェクトＡ』を破棄し、『オブジェクトＢ』も破棄して、処理『００２』から実行を再開すべきである」、と判定する。【００７８】
このようにして、本発明における再開支援装置１０においては、間違ったオブジェクトで処理を実行してしまう可能性や、その可能性をおそれるあまりに、戻る必要のない処理まで戻って実行を再開してしまう可能性などを回避している。【００７９】
［実施例１に係る再開支援装置による処理の手順］
次に、図１２を用いて、実施例１に係る再開支援装置による処理を説明する。図１２は、実施例１に係る再開支援装置による処理の手順を示すフローチャートである。【００８０】
まず、再開支援装置１０は、実行を停止した処理を示す情報を、システムから受け付けたか否かを判定する（ステップＳ１２０１）。受け付けていない場合には（ステップＳ１２０１否定）、再開支援装置１０は、実行を停止した処理を示す情報を、システムから受け付けたか否かを判定する処理に戻る。【００８１】
一方、受け付けた場合には（ステップＳ１２０１肯定）、再開支援装置１０は、次に、受け付けた情報に示される処理の成否を取得する（ステップＳ１２０２）。なお、この取得は、実行を停止した処理を示す情報としてシステムから受信することで取得したり、実行を停止した処理を示す情報とともにシステムから受信することで取得したり、システムの利用者によって入力されることで取得するなどする。【００８２】
そして、再開支援装置１０は、処理に関連付けてバージョン情報保持部２１に保持されているオブジェクトおよびバージョン情報を取得する（ステップＳ１２０３）。【００８３】
続いて、再開支援装置１０は、システムにおいて現に保持されているオブジェクトおよびバージョン情報を取得する（ステップＳ１２０４）。なお、この取得は、実行を停止した処理を示す情報としてシステムから受信することで取得したり、実行を停止した処理を示す情報とともにシステムから受信することで取得したり、システムの利用者によって入力されることで取得するなどする。【００８４】
その後、再開支援装置１０は、処理の成否と、バージョン情報保持部２１によって保持されているオブジェクトおよびオブジェクトごとのバージョン情報と、システムにおいて現に保持されているオブジェクトおよびオブジェクトごとのバージョン情報とに基づいて、実行を再開すべき処理を判定する（ステップＳ１２０５）。【００８５】
このようなことから、実施例１に係る再開支援装置１０は、システムがいずれかの処理で実行を停止した場合に、実行を再開すべき処理を判定することが可能になる。【００８６】
なお、実施例１においては、再開支援装置１０が、処理の成否を取得してから、バージョン情報保持部２１に保持されている情報を取得し、その後、システムにおいて現に保持されているオブジェクトおよびバージョン情報を取得する順番について説明したが、本発明はこれに限られるものではない。処理の成否の取得と、システムにおいて現に保持されているオブジェクトおよびバージョン情報の取得とを同時に行なう順番や、その他の順番など、処理の順番はいずれでもよい。【００８７】
［実施例１の効果］
上記してきたように、実施例１によれば、複数の処理が実行される順番を示すシーケンスフローと当該処理の各々で処理の対象とされる一つまたは複数のオブジェクトおよび当該オブジェクト各々に対する一つまたは複数の操作とが規定されているシステムが、いずれかの処理で実行を停止した場合に、当該システムの再開を支援する方法をコンピュータに実行させる再開支援プログラムであって、操作に伴って遷移するオブジェクトのバージョンに関するバージョン情報を、オブジェクトごとに処理各々と関連付けて保持し、システムがいずれかの処理で実行を停止した場合に、実行を停止した処理を示す情報を受け付け、情報が受け付けられると、受け付けられた情報に示される処理の成否と、処理に関連付けて保持されているオブジェクトおよびオブジェクトごとのバージョン情報と、システムにおいて現に保持されているオブジェクトおよびオブジェクトごとのバージョン情報とに基づいて、複数の処理の中から実行を再開すべき処理を判定するので、システムがいずれかの処理で実行を停止した場合に、実行を再開すべき処理を判定することが可能になる。
【実施例２】
【００８８】
さて、これまで実施例１として、再開支援装置が、処理の成否と、バージョン情報保持部によって保持された情報と、現にシステムに保持されているオブジェクトおよびオブジェクトのバージョン情報とに基づいて、実行を再開すべき処理を判定する手法について説明してきたが、本発明はこれに限られるものではない。本発明に係る再開支援装置は、実行を停止した処理そのものに関する上記したような情報の他に、シーケンスフローの中で処理と関連しているその他の処理に関する情報にも基づいて、実行を再開すべき処理を判定することもできる。以下では、シーケンスフローの中で処理と関連しているその他の処理に関する情報にも基づいて、実行を再開すべき処理を判定する再開支援装置について、実施例２として説明する。【００８９】
まず、実施例２における再開処理判定部３２は、停止情報受付部３１によって受け付けられた情報に示される処理の他に、シーケンスフローの中で当該処理と関連しているその他の処理に関する情報にも基づいて、実行を再開すべき処理を判定する。例えば、図１３は、実施例２における再開処理判定を説明するための図であるが、図１３に示すように、システムが、処理『００８』を実行した後、処理『００９』と処理『０１０』とを並行して実行し、その後、処理『００９』の処理結果と処理『０１０』の処理結果とを両方利用して、処理『０１１』を実行するものであるとする。ただし、処理『０１０』の処理結果には期限があり、期限を超えてしまうと、当該処理結果を処理『０１１』で利用することができなくなる性質のものであるとする。【００９０】
このようなシステムが、処理『００９』で実行を停止した場合に、再開処理判定部３２は、処理『００９』のみを単独で考えると、処理『００９』から実行を再開すればよいと判定される場合であっても、シーケンスフローの中で処理『００９』と関連している処理『０１０』や処理『０１１』に関する情報に基づき、すでに処理『０１０』の処理結果が期限を超えてしまっていると考えられれば、処理『００９』から実行を再開するのではなく、処理『００８』から実行を再開するのが最適な再開である、と判定するなどする。【００９１】
このように、原則は、実施例１に係る再開支援装置と同様であるが、実施例２に係る再開支援装置は、再開位置以前の分岐によって発生した処理が再帰的に今後の処理に与える影響などを列挙して判定結果として提示したり、そのような処理がある場合は、その処理も含めて前まで戻る処理を判定結果として提示するなどする。【００９２】
［実施例２の効果］
上記してきたように、実施例２によれば、受け付けられた情報に示される処理の他に、シーケンスフローの中で処理と関連しているその他の処理に関する情報にも基づいて、実行を再開すべき処理を判定するので、システムがいずれかの処理で実行を停止した場合に、シーケンスフロー全体において実行を再開すべき最適な処理を判定することが可能になる。
【実施例３】
【００９３】
さて、これまで本発明の実施例について説明したが、本発明は上記した実施例以外にも、種々の異なる形態にて実施されてよいものである。【００９４】
［バージョン情報の保持］
実施例１においては、バージョン情報保持部が、再開支援装置の利用者によって入力されるなどしたバージョン情報を保持する手法について説明したが、本発明はこれに限られるものではなく、システムに規定されている情報から作成されたバージョン情報を保持する手法などにも、本発明を同様に適用することができる。具体的には、再開支援装置は、ＵＭＬ２．０やＢＰＭＬなどのフロー記述より、オブジェクトへのアクセスを抽出して、オブジェクトのライフサイクル管理表を作成することで、バージョン情報をバージョン情報保持部に保持するなどする。この場合には、オブジェクトのバージョン情報は、システムに規定されている情報から作成されるので、実行を再開すべき処理を判定する仕組みを、簡易に実現することが可能になる。【００９５】
あるいは、システムの処理に従って蓄積されるログ情報から作成されたバージョン情報を保持する手法などにも、本発明を同様に適用することができる。具体的には、再開支援装置は、フロー実行ログ（ＤＢアクセスなどオブジェクトに対する操作のログ）から、オブジェクトのライフサイクル管理表を作成することで、バージョン情報をバージョン情報保持部に保持するなどする。この場合には、オブジェクトのバージョン情報は、システムの処理に伴って蓄積されるログ情報から作成されるので、システムに規定されている情報からバージョン情報を作成できない場合などにも、実行を再開すべき処理を判定する仕組みを、実現することが可能になる。【００９６】
［システム構成］
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理（例えば、再開支援装置が、システムから処理の成否を取得する処理など）の全部または一部を手動的におこなう（例えば、再開支援装置の利用者が、処理の成否を再開支援装置に入力するなど）こともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。【００９７】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示（例えば、図２など）の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。【００９８】
［コンピュータ］
次に、図１４に示すように、再開支援プログラム（コンピュータ）４０は、キャッシュ４１、ＲＡＭ４２、ＨＤＤ４３、ＲＯＭ４４およびＣＰＵ４５をバス４６で接続して構成される。ここで、ＲＯＭ４４には、上記の実施例１と同様の機能を発揮する再開支援プログラム、つまり、図１４に示すように、停止情報受付プログラム４４ａと再開処理判定プログラム４４ｂとがあらかじめ記憶されている。【００９９】
そして、ＣＰＵ４５は、これらのプログラム４４ａおよび４４ｂを読み出して実行することで、図１４に示すように、各プログラム４４ａおよび４４ｂは、停止情報受付プロセス４５ａと再開処理判定プロセス４５ｂとなる。なお、各プロセス４５ａおよび４５ｂは、図２に示した、停止情報受付部３１と再開処理判定部３２とにそれぞれ対応する。【０１００】
そして、ＨＤＤ４３には、図１４に示すように、バージョン情報テーブル４３ａおよび判定結果テーブル４３ｂが設けられる。なお、テーブル４３ａおよび４３ｂは、図２に示した、バージョン情報保持部２１および判定結果保持部２２にそれぞれ対応する。【０１０１】
ところで、上記した各プログラム４４ａおよび４４ｂについては、必ずしもＲＯＭ４４に記憶させておく必要はなく、例えば、コンピュータ４０に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」、または、コンピュータ４０の内外に備えられるハードディスクドライブ（ＨＤＤ）などの「固定用の物理媒体」、さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ４０に接続される「他のコンピュータ（またはサーバ）」に記憶させておき、コンピュータ４０がこれらからプログラムを読み出して実行するようにしてもよい。
【産業上の利用可能性】
【０１０２】
以上のように、本発明に係る再開支援プログラムおよび再開支援装置は、複数の処理が実行される順番を示すシーケンスフローと、処理の各々で処理の対象とされる一つまたは複数のオブジェクトおよびオブジェクト各々に対する一つまたは複数の操作とが規定されているシステムが、いずれかの処理で実行を停止した場合に、システムの再開を支援することに有用であり、特に、システムがいずれかの処理で実行を停止した場合に、実行を再開すべき処理を判定することに適する。
【図１】
2008149416.tif 000003
【図２】
2008149416.tif 000004
【図３】
2008149416.tif 000005
【図４】
2008149416.tif 000006
【図５】
2008149416.tif 000007
【図６】
2008149416.tif 000008
【図７】
2008149416.tif 000009
【図８】
2008149416.tif 000010
【図９】
2008149416.tif 000011
【図１０】
2008149416.tif 000012
【図１１】
2008149416.tif 000013
【図１２】
2008149416.tif 000014
【図１３】
2008149416.tif 000015
【図１４】
2008149416.tif 000016
【図１５】
2008149416.tif 000017
【手続補正書】
【提出日】平成21年12月4日(2009.12.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の処理が実行される順番を示すシーケンスフローと当該処理の各々で処理の対象とされる一つまたは複数のオブジェクトおよび当該オブジェクト各々に対する一つまたは複数の操作とが規定されているシステムが、いずれかの処理で実行を停止した場合に、当該システムの再開を支援する方法をコンピュータに実行させる再開支援プログラムであって、
前記操作に伴って遷移する前記オブジェクトのバージョンに関するバージョン情報を、前記オブジェクトごとに前記処理各々と関連付けて保持するバージョン情報保持手順と、
前記システムがいずれかの処理で実行を停止した場合に、実行を停止した処理を示す情報を受け付ける停止情報受付手順と、
前記停止情報受付手順によって前記情報が受け付けられると、受け付けられた当該情報に示される処理の成否と、当該処理に関連付けて前記バージョン情報保持手順によって保持されている前記オブジェクトおよび当該オブジェクトごとの前記バージョン情報と、当該システムにおいて現に保持されているオブジェクトおよび当該オブジェクトごとのバージョン情報とに基づいて、前記複数の処理の中から実行を再開すべき処理を判定する再開処理判定手順と、
をコンピュータに実行させることを特徴とする再開支援プログラム。
【請求項２】
前記再開処理判定手順は、前記停止情報受付手順によって受け付けられた情報に示される処理の他に、前記シーケンスフローの中で当該処理と関連しているその他の処理に関する情報にも基づいて、前記実行を再開すべき処理を判定することを特徴とする請求項１に記載の再開支援プログラム。
【請求項３】
前記バージョン情報保持手順は、前記システムに規定されている情報から作成されることを特徴とする請求項１または２に記載の再開支援プログラム。
【請求項４】
前記バージョン情報保持手順は、前記システムの処理に伴って蓄積されるログ情報から作成されることを特徴とする請求項１または２に記載の再開支援プログラム。
【請求項５】
複数の処理が実行される順番を示すシーケンスフローと当該処理の各々で処理の対象とされる一つまたは複数のオブジェクトおよび当該オブジェクト各々に対する一つまたは複数の操作とが規定されているシステムが、いずれかの処理で実行を停止した場合に、当該システムの再開を支援する再開支援装置であって、
前記操作に伴って遷移する前記オブジェクトのバージョンに関するバージョン情報を、前記オブジェクトごとに前記処理各々と関連付けて保持するバージョン情報保持手段と、
前記システムがいずれかの処理で実行を停止した場合に、実行を停止した処理を示す情報を受け付ける停止情報受付手段と、
前記停止情報受付手段によって前記情報が受け付けられると、受け付けられた当該情報に示される処理の成否と、当該処理に関連付けて前記バージョン情報保持手段によって保持されている前記オブジェクトおよび当該オブジェクトごとの前記バージョン情報と、当該システムにおいて現に保持されているオブジェクトおよび当該オブジェクトごとのバージョン情報とに基づいて、前記複数の処理の中から実行を再開すべき処理を判定する再開処理判定手段と、
を備えたことを特徴とする再開支援装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、再開支援プログラムおよび再開支援装置に関する。
【背景技術】
【０００２】
従来より、定型の作業がワークフローとして記述され、記述されたワークフローに従って処理を実行するシステム（ワークフローサービス）が、業務の効率化などの点で優れていることから、ＩＴ（Information  Technology）リソースを操作するシーンなど、様々なシーンで導入されている。ワークフローは、高度のスキルや知識を備えた者によって記述されることから、高度のスキルや知識がワークフローに取り込まれた状態となり、結果として、スキルの低い作業者によってシステムが運用されて処理が実行される場合や、作業者を介さずにシステムによる完全自動実行によって処理が実行される場合においても、安定した品質で作業が行われることになる。
【０００３】
ところで、図１５は、従来技術を説明するための図であるが、図１５の（Ａ）に示すワークフローに従って処理を実行するシステムにおいて、フロー実行中に問題が発生し、図１５の（Ｂ）に示すように、システムがフロー４（Ｆ４）で実行を停止した場合に、当該問題が解決した後にシステムを再開させるにあたっては、いずれのフローから実行を再開すべきか、あるいは、再開のために必要な作業は何か、などを判定しなければならない。すなわち、例えば、図１５の（Ｃ）に示すように、最初のフロー１（Ｆ１）からやり直すべきか、図１５の（Ｄ）に示すように、失敗したフロー４（Ｆ４）からやり直すべきか、あるいは、図１５の（Ｅ）に示すように、失敗を回避する特別な処理であるフロー３．５（Ｆ３．５）を行うべきかなどを判定しなければならない。この判定は、高度のスキルや知識を備えた者によって行われたり、あるいは、高度のスキルや知識を備えた者が作成した手引書に従って行なわれるなどしていた。
【０００４】
また、例えば、特許文献１に開示されている手法では、ワークフローに従って処理を実行する複数のシステムが、動作の履歴を保持しており、システムダウンからの復旧時には、保持している履歴を活用することで、信頼性を確保するなどしている。
【０００５】
【特許文献１】特開平９−５０４０６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、上記した従来の技術では、システムがいずれかの処理で実行を停止した場合に、実行を再開すべき処理を判定することができないという課題があった。すなわち、上記した従来の技術では、システムがいずれかの処理で実行を停止した場合に、高度のスキルや知識を備えた者のような限られた者以外には、実行を再開すべき処理を判定することができず、あるいは、高度のスキルや知識を備えた者が作成した手引書がなければ、実行を再開すべき処理を判定することができない。なお、特許文献１に開示されている手法は、実行を再開すべき処理を判定するものではない。
【０００７】
そこで、この発明は、上記した従来技術の課題を解決するためになされたものであり、システムがいずれかの処理で実行を停止した場合に、実行を再開すべき処理を判定することが可能な再開支援プログラムおよび再開支援装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するため、請求項１に係る発明は、複数の処理が実行される順番を示すシーケンスフローと当該処理の各々で処理の対象とされる一つまたは複数のオブジェクトおよび当該オブジェクト各々に対する一つまたは複数の操作とが規定されているシステムが、いずれかの処理で実行を停止した場合に、当該システムの再開を支援する方法をコンピュータに実行させる再開支援プログラムであって、前記操作に伴って遷移する前記オブジェクトのバージョンに関するバージョン情報を、前記オブジェクトごとに前記処理各々と関連付けて保持するバージョン情報保持手順と、前記システムがいずれかの処理で実行を停止した場合に、実行を停止した処理を示す情報を受け付ける停止情報受付手順と、前記停止情報受付手順によって前記情報が受け付けられると、受け付けられた当該情報に示される処理の成否と、当該処理に関連付けて前記バージョン情報保持手順によって保持されている前記オブジェクトおよび当該オブジェクトごとの前記バージョン情報と、当該システムにおいて現に保持されているオブジェクトおよび当該オブジェクトごとのバージョン情報とに基づいて、前記複数の処理の中から実行を再開すべき処理を判定する再開処理判定手順と、をコンピュータに実行させることを特徴とする。
【０００９】
また、請求項２に係る発明は、上記の発明において、前記再開処理判定手順は、前記停止情報受付手順によって受け付けられた情報に示される処理の他に、前記シーケンスフローの中で当該処理と関連しているその他の処理に関する情報にも基づいて、前記実行を再開すべき処理を判定することを特徴とする。
【００１０】
また、請求項３に係る発明は、上記の発明において、前記バージョン情報保持手順は、前記システムに規定されている情報から作成されることを特徴とする。
【００１１】
また、請求項４に係る発明は、上記の発明において、前記バージョン情報保持手順は、前記システムの処理に伴って蓄積されるログ情報から作成されることを特徴とする。
【００１２】
また、請求項５に係る発明は、複数の処理が実行される順番を示すシーケンスフローと当該処理の各々で処理の対象とされる一つまたは複数のオブジェクトおよび当該オブジェクト各々に対する一つまたは複数の操作とが規定されているシステムが、いずれかの処理で実行を停止した場合に、当該システムの再開を支援する再開支援装置であって、前記操作に伴って遷移する前記オブジェクトのバージョンに関するバージョン情報を、前記オブジェクトごとに前記処理各々と関連付けて保持するバージョン情報保持手段と、前記システムがいずれかの処理で実行を停止した場合に、実行を停止した処理を示す情報を受け付ける停止情報受付手段と、前記停止情報受付手段によって前記情報が受け付けられると、受け付けられた当該情報に示される処理の成否と、当該処理に関連付けて前記バージョン情報保持手段によって保持されている前記オブジェクトおよび当該オブジェクトごとの前記バージョン情報と、当該システムにおいて現に保持されているオブジェクトおよび当該オブジェクトごとのバージョン情報とに基づいて、前記複数の処理の中から実行を再開すべき処理を判定する再開処理判定手段と、を備えたことを特徴とする。
【発明の効果】
【００１３】
請求項１または５の発明によれば、複数の処理が実行される順番を示すシーケンスフローと当該処理の各々で処理の対象とされる一つまたは複数のオブジェクトおよび当該オブジェクト各々に対する一つまたは複数の操作とが規定されているシステムが、いずれかの処理で実行を停止した場合に、当該システムの再開を支援する方法をコンピュータに実行させる再開支援プログラムであって、操作に伴って遷移するオブジェクトのバージョンに関するバージョン情報を、オブジェクトごとに処理各々と関連付けて保持し、システムがいずれかの処理で実行を停止した場合に、実行を停止した処理を示す情報を受け付け、情報が受け付けられると、受け付けられた情報に示される処理の成否と、処理に関連付けて保持されているオブジェクトおよびオブジェクトごとのバージョン情報と、システムにおいて現に保持されているオブジェクトおよびオブジェクトごとのバージョン情報とに基づいて、複数の処理の中から実行を再開すべき処理を判定するので、システムがいずれかの処理で実行を停止した場合に、実行を再開すべき処理を判定することが可能になる。
【００１４】
また、請求項２の発明によれば、受け付けられた情報に示される処理の他に、シーケンスフローの中で処理と関連しているその他の処理に関する情報にも基づいて、実行を再開すべき処理を判定するので、システムがいずれかの処理で実行を停止した場合に、シーケンスフロー全体において実行を再開すべき最適な処理を判定することが可能になる。
【００１５】
また、請求項３の発明によれば、オブジェクトのバージョン情報は、システムに規定されている情報から作成されるので、実行を再開すべき処理を判定する仕組みを、簡易に実現することが可能になる。
【００１６】
また、請求項４の発明によれば、オブジェクトのバージョン情報は、システムの処理に伴って蓄積されるログ情報から作成されるので、システムに規定されている情報からバージョン情報を作成できない場合などにも、実行を再開すべき処理を判定する仕組みを、実現することが可能になる。
【発明を実施するための最良の形態】
【００１７】
以下に添付図面を参照して、本発明に係る再開支援プログラムおよび再開支援装置の実施例を説明する。なお、以下では、実施例で用いる主要な用語、実施例１に係る再開支援装置の概要および特徴、実施例１に係る再開支援装置の構成、実施例１に係る再開支援装置による処理の手順、実施例１の効果を順に説明し、続いて、他の実施例について説明する。
【実施例１】
【００１８】
［用語の説明］
まず最初に、以下の実施例で用いる主要な用語を説明する。以下の実施例で用いる「システム」とは、定型の作業などがワークフローとして記述され、記述されたワークフローに従って処理を実行するシステムのことである。かかる「システム」においては、複数の「処理」が実行されることから、複数の「処理」が実行される順番を示す「シーケンスフロー」が規定されることになる。また、当該「処理」の各々においては、「オブジェクト」が「処理」の対象とされることから、一つまたは複数の「オブジェクト」が規定されることになる。さらに、当該「オブジェクト」各々に対しては、「操作」がなされることから、一つまたは複数の「操作」が規定されることになる。この「操作」には、例えば、「Create」、「Read」、「Write」、「Destroy」等があり、「Create」によって「オブジェクト」が生成されたり、「Destroy」によって「オブジェクト」が破棄されるなどする。
【００１９】
ところで、「システム」は、規定の「シーケンスフロー」に従って処理を実行するものであり、各々の「処理」においては、規定の「オブジェクト」に対して規定の「操作」を行うことで、処理を実行することになるが、処理の実行中に何らかのエラーが発生すると、「システム」は、いずれかの処理で実行を停止する。
【００２０】
実行を停止した「システム」は、エラーが解除された後に再開されることになるが、この時、「システム」は、単に実行を停止した処理から実行を再開すればよいというものではない。上記したように、「システム」は、一つの「処理」の中で、一つまたは複数の「オブジェクト」に対して、一つまたは複数の「操作」を行っているので、いかなる状態で処理の実行を停止したかによって、「システム」が実行を再開すべき処理も異なってくるのである。
【００２１】
例えば、「システム」が処理の実行を停止したのが、生成すべき「オブジェクト」の生成前であったのか生成後であったのか、あるいは、破棄すべき「オブジェクト」の破棄前であったのか破棄後であったのか、など、様々な状況が想定されることから、「システム」は、単に実行を停止した処理から実行を再開すればよいというものではなく、再開すべき処理を判定し、処理の再開にあたり必要な作業を行わなければならない。このようなことから、本発明に係る再開支援装置が、複数の処理の中から実行を再開すべき処理をいかにして判定するかが重要となる。
【００２２】
［実施例１に係る再開支援装置の概要および特徴］
続いて、図１を用いて、実施例１に係る再開支援装置の概要および特徴を説明する。図１は、実施例１に係る再開支援装置の概要および特徴を説明するための図である。なお、実施例１においては、処理が実行されるシステムと再開支援装置とが異なる装置で構成される手法を想定しているが、本発明はこれに限られるものではなく、システムと再開支援装置とが同じ装置で構成される手法にも、本発明を同様に適用することができる。
【００２３】
実施例１に係る再開支援装置は、上記したように、複数の処理が実行される順番を示すシーケンスフローと処理の各々で処理の対象とされる一つまたは複数のオブジェクトおよびオブジェクト各々に対する一つまたは複数の操作とが規定されているシステムが、いずれかの処理で実行を停止した場合に、システムの再開を支援することを概要とし、システムがいずれかの処理で実行を停止した場合に、実行を再開すべき処理を判定することを特徴とする。
【００２４】
この主たる特徴について簡単に説明すると、実施例１におけるシステムは、複数の処理が実行される順番を示すシーケンスフローと、処理の各々で処理の対象とされる一つまたは複数のオブジェクトおよびオブジェクト各々に対する一つまたは複数の操作とが規定されている。例えば、図１は、説明の便宜上から、シーケンスフローのうち『処理００４』の処理のみを切り出して図示するものであるが、『処理００４』で処理の対象とされる『オブジェクトＡ』および『オブジェクトＢ』が規定され、また、『オブジェクトＡ』に対する操作として、『Read』、『Write』および『Destroy』が規定され、『オブジェクトＢ』に対する操作として、『Create』が規定されている。
【００２５】
また、実施例１に係る再開支援装置は、バージョン情報保持部に、操作に伴って遷移するオブジェクトのバージョンに関するバージョン情報を、オブジェクトごとに処理各々に関連づけて保持する。例えば、図１は、説明の便宜上から、バージョン情報保持部が保持するバージョン情報のうち、『処理００４』に関連づけて保持するバージョン情報のみを切り出して図示するものであるが、『オブジェクトＡ−１』については、操作『Read』、『Write』、および『Destroy』に伴って遷移するバージョン情報として、『１』、『２』、および『２』が、保持されている。
【００２６】
このような構成のもと、実施例１におけるシステムが、いずれかの処理で実行を停止した場合に（図１の（１）を参照）、再開支援装置は、実行を停止した処理を示す情報を受け付ける（図１の（２）を参照）。例えば、再開支援装置は、「『処理００４』で実行を停止した。」との情報を、システムから受け付ける。
【００２７】
次に、再開支援装置は、情報を受け付けると、受け付けた情報に示される処理の成否と、この処理に関連付けてバージョン情報保持部によって保持されているオブジェクトおよびオブジェクトごとのバージョン情報と、システムにおいて現に保持されているオブジェクトおよびオブジェクトごとのバージョン情報とに基づいて、実行を再開すべき処理を判定する（図１の（３）を参照）。
【００２８】
例えば、再開支援装置は、「『処理００４』で実行を停止した。」との情報を受け付けると、受け付けた情報に示される『処理００４』の成否として「『処理００４』は失敗した」との情報と、この『処理００４』に関連付けてバージョン情報保持部によって保持されている『オブジェクトＡ』および『オブジェクトＡ』のバージョン情報、並びに、『処理００４』に関連付けてバージョン情報保持部によって保持されている『オブジェクトＢ』および『オブジェクトＢ』のバージョン情報と、システムに現に保持されているオブジェクトおよびオブジェクトごとのバージョン情報として、「『オブジェクトＡ』が存在し『バージョン２』である、『オブジェクトＢ』は存在しない」との情報とに基づいて、実行を再開すべき処理を判定する。
【００２９】
この例であれば、再開支援装置は、『オブジェクトＢ』が存在しないことから、『処理００４』から再開することを検討するが、『処理００４』に必要な『オブジェクトＡ』は『バージョン１』でなければならず、システムに現に保持されている『オブジェクトＡ』は『バージョン２』であることから、結局、再開支援装置は、『バージョン２』の『オブジェクトＡ』を破棄し、『バージョン１』の『オブジェクトＡ』を生成する『処理００２』（図示していない）から実行を再開すべきであることを判定する。
【００３０】
このようなことから、本発明に係る再開支援装置によれば、システムがいずれかの処理で実行を停止した場合に、実行を再開すべき処理を判定することが可能になる。
【００３１】
［実施例１に係る再開支援装置の構成］
図２〜１１を用いて、実施例１に係る再開支援装置の構成を説明する。図２は、実施例１に係る再開支援装置の構成を示すブロック図であり、図３は、システムについて説明するための図であり、図４は、再開処理判定について説明するための図であり、図５は、再開処理判定のポイントについて説明するための図であり、図６は、オブジェクトに対する操作について説明するための図であり、図７は、実施例１におけるシステムについて説明するための図であり、図８は、実施例１における再開処理判定について説明するための図であり、図９は、オブジェクトのバージョンについて説明するための図であり、図１０は、実施例１におけるバージョン情報保持部について説明するための図であり、図１１は、実施例１における再開処理判定について説明するための図である。
【００３２】
図２に示すように、実施例１に係る再開支援装置１０は、入力部１１と、出力部１２と、入出力制御Ｉ／Ｆ部１３と、通信部１４と、記憶部２０と、制御部３０とから構成される。
【００３３】
入力部１１は、制御部３０による各種処理に用いるデータや、各種処理をするための操作指示などを、キーボード、マウス、または記憶媒体などによって入力する。具体的には、入力部１１は、後述するバージョン情報保持部２１によって保持されるバージョン情報をキーボードなどによって入力し、バージョン情報保持部２１に保持させるなどする。
【００３４】
出力部１２は、制御部３０による各種処理の結果や、各種処理をするための操作指示などを、モニタ、またはプリンタなどに出力する。具体的には、出力部１２は、入力部１１によってバージョン情報を入力させるための画面や、後述する判定結果保持部２２によって保持される判定結果、あるいは、バージョン情報保持部２１によって保持されているバージョン情報などを、モニタに出力するなどする。
【００３５】
入出力制御Ｉ／Ｆ部１３は、入力部１１および出力部１２と、記憶部２０および制御部３０との間におけるデータ転送を制御する。
【００３６】
通信部１４は、通信用の一般的なライブラリを備え、再開支援装置１０とシステムとの間の通信を行うなどする。具体的には、通信部１４は、システムがいずれかの処理で実行を停止した場合に、実行を停止した処理を示す情報や、現にシステムに保持されているオブジェクトおよびオブジェクトのバージョン情報を、システムから再開支援装置１０に送信するなどする。
【００３７】
記憶部２０は、制御部３０による各種処理に用いるデータを記憶し、特に本発明に密接に関連するものとしては、図２に示すように、バージョン情報保持部２１と、判定結果保持部２２とを備える。なお、バージョン情報保持部２１は、特許請求の範囲に記載の「バージョン情報保持手順」に対応する。
【００３８】
バージョン情報保持部２１は、操作に伴って遷移するオブジェクトのバージョンに関するバージョン情報を、オブジェクトごとに処理各々と関連付けて保持する。具体的には、バージョン情報保持部２１は、入力部１１によって入力されたバージョン情報や、システムに規定されている情報から作成されたバージョン情報、あるいは、システムの処理に伴って蓄積されるログ情報から作成されたバージョン情報を保持し、保持したバージョン情報は、後述する再開処理判定部２２による処理に利用される。なお、バージョン情報保持部２１が保持するバージョン情報については、後に詳述する。
【００３９】
判定結果保持部２２は、判定結果を保持する。具体的には、判定結果保持部２２は、後述する再開処理判定部３２によって判定された判定結果を保持し、保持した判定結果は、出力部１２によって出力されるなどする。
【００４０】
制御部３０は、再開支援装置１０を制御して各種処理を実行し、特に本発明に密接に関連するものとしては、図２に示すように、停止情報受付部３１と、再開処理判定部３２とを備える。なお、停止情報受付部３１は、特許請求の範囲に記載の「停止情報受付手順」に対応し、再開処理判定部３２は、特許請求の範囲に記載の「再開処理判定手順」に対応する。
【００４１】
停止情報受付部３１は、システムがいずれかの処理で実行を停止した場合に、実行を停止した処理を示す情報を受け付ける。具体的には、停止情報受付部３１は、実行を停止した処理を示す情報を通信部１４を介してシステムから受け付け、受け付けた情報は、再開処理判定部３２による処理に利用される。なお、実施例１においては、停止情報受付部３１が、実行を停止した処理を示す情報をシステムから受け付ける手法について説明するが、本発明はこれに限られるものではなく、実行を停止した処理を示す情報を、再開支援装置１０の利用者による入力によって受け付ける手法など、いずれでもよい。
【００４２】
再開処理判定部３２は、停止情報受付部３１によって受け付けられた情報に示される処理の成否と、処理に関連付けてバージョン情報保持部２１によって保持されているオブジェクトおよびオブジェクトごとのバージョン情報と、システムにおいて現に保持されているオブジェクトおよびオブジェクトごとのバージョン情報とに基づいて、実行を再開すべき処理を判定する。具体的には、再開処理判定部３２は、停止情報受付部３１によって情報が受け付けられると、受け付けられた情報に示される処理の成否と、処理に関連付けてバージョン情報保持部２１によって保持されているオブジェクトおよびオブジェクトごとのバージョン情報と、システムにおいて現に保持されているオブジェクトおよびオブジェクトごとのバージョン情報とに基づいて、実行を再開すべき処理を判定し、判定した判定結果を、判定結果保持部２２に保持させる。なお、受け付けた情報に示される処理の成否や、システムにおいて現に保持されているオブジェクトおよびオブジェクトごとのバージョン情報については、再開処理判定部３２は、通信部１４を介してシステムから受け付けたり、あるいは、入力部１１によって再開支援装置１０の利用者による入力を受け付けるなどして、取得する。
【００４３】
［再開支援装置に関する詳細説明］
本発明に係る再開支援装置１０は、上記したような各部で構成されるが、以下では、各部の機能について、さらに詳細に説明することとする。まず、本発明に係る再開支援装置１０が再開を支援するシステムについて、図３を用いて説明する。図３の（Ａ）は、複数の処理が実行される順番を示すシーケンスフローと、処理の各々で処理の対象とされる一つまたは複数のオブジェクトおよびオブジェクト各々に対する一つまたは複数の操作とが規定されているシステムを例示するものである。丸、四角、菱形等が処理の各々を意味しており、『００１』〜『００８』の付番が、複数の処理が実行される順番を意味している。すなわち、図３においては、『００１』を開始点として『００８』を終了点とする順番で、複数の処理が実行される。
【００４４】
ところで、処理の各々においては、一つまたは複数のオブジェクトが処理の対象とされ、また、オブジェクト各々に対しては、一つまたは複数の操作がなされる。図３の（Ａ）に示すように、処理『００２』では、『オブジェクトＡ』を処理の対象とし、『オブジェクトＡの作成』という操作がなされる。また、処理『００４』では、『オブジェクトＡ』および『オブジェクトＢ』を処理の対象とし、『オブジェクトＡの情報からオブジェクトＢを作成して、オブジェクトＡを消去』という操作がなされる。また、処理『００５』では、『オブジェクトＡ』および『オブジェクトＢ』を処理の対象とし、『オブジェクトＡの情報からオブジェクトＢを作成して、オブジェクトＡを消去』という操作がなされる。また、処理『００７』では、『オブジェクトＢ』を処理の対象とし、『オブジェクトＢの情報から処理を行い、オブジェクトＢを消去』という操作がなされる。なお、図３の（Ｂ）は、上記したような処理の対象や操作（処理各々においてどのようなオブジェクトの入出力があり、オブジェクトがどのような流れで入出力されているか、など）を明らかにしたものである。
【００４５】
例えば、図４の（Ａ）に示すように、図３の（Ｂ）に示すシステムが、処理『００４』で実行を停止したとする。この時、オブジェクトに対する操作のみについて考えると、図４の（Ｂ）に示すように、（１）〜（４）の４パターンの状況が想定し得る。すなわち、『オブジェクトＡ』の破棄が成功し、『オブジェクトＢ』の生成も成功したという（１）のパターン、『オブジェクトＡ』の破棄は成功したが、『オブジェクトＢ』の生成は失敗したという（２）のパターン、『オブジェクトＡ』の破棄は失敗したが、『オブジェクトＢ』の生成は成功したという（３）のパターン、『オブジェクトＡ』の破棄が失敗し、『オブジェクトＢ』の生成も失敗したという（４）のパターンである。
【００４６】
ここで、『オブジェクトＡ』の破棄が成功すれば、システムにおいて現に保持されているオブジェクトに『オブジェクトＡ』は存在しないことになる。反対に、『オブジェクトＡ』の破棄が失敗すれば、システムにおいて現に保持されているオブジェクトに『オブジェクトＡ』は存在することになる。また、『オブジェクトＢ』の生成が成功すれば、システムにおいて現に保持されているオブジェクトに『オブジェクトＢ』は存在することになる。反対に、『オブジェクトＢ』の生成が失敗すれば、システムにおいて現に保持されているオブジェクトに『オブジェクトＢ』は存在しないことになる。オブジェクトに対する操作の成否として想定し得る４パターンと、システムにおいて現に保持されているオブジェクトの有無との関係を示したものが、図４の（Ｂ）に示す表の、「オブジェクトの有無」の行である。
【００４７】
また、図４の（Ａ）に示すように、システムが処理『００４』で実行を停止した場合、処理『００４』自体の処理の成否として、「成功」と「失敗」との２つのパターンが考えられる。そこで、複数の処理の中から実行を再開すべき処理を判定するには、図４の（Ｃ）に示すように、処理『００４』の成否と、パターンごとのオブジェクトの有無とで場合分けをして考える必要がある。なお、処理『００４』の成否が「成功」で、オブジェクトの有無が（２）のパターンという組み合わせや、処理『００４』の成否が「成功」で、オブジェクトの有無が（４）のパターンという組み合わせは、『オブジェクトＢ』が存在しない以上、処理の『００４』の成否が「成功」であることはあり得ないとして、記載されていない。
【００４８】
処理『００４』の成否が「成功」で、オブジェクトの有無が（１）のパターンであった場合について説明すると、処理『００４』が成功しているので、図４の（Ａ）に示すように、処理『００４』の次の処理『００６』から実行を再開すべきであると考えられる。ところで、処理『００６』から実行を再開するには、『オブジェクトＡ』が存在せず、『オブジェクトＢ』が存在する必要があるが、（１）のパターンは、まさにこのパターンに該当する。このため、図４の（Ｃ）に示すように、「処理『００６』から実行を再開すべきである」、と判定することになる。
【００４９】
処理『００４』の成否が「成功」で、オブジェクトの有無が（３）のパターンであった場合について説明すると、処理『００４』で成功しているので、同様に、次の処理『００６』から実行を再開すべきであると考えられる。ところが、（３）のパターンは、『オブジェクトＡ』が存在するパターンであるので、処理の『００６』から実行を再開するには、『オブジェクトＡ』を破棄する必要がある。このため、図４の（Ｃ）に示すように、「『オブジェクトＡ』を破棄して、処理『００６』から実行を再開すべきである」、と判定することになる。
【００５０】
処理『００４』の成否が「失敗」で、オブジェクトの有無が（１）のパターンであった場合について説明すると、処理『００４』で失敗しているので、処理『００４』から実行を再開すべきであると考えられる。ところで、処理『００４』から実行を再開するには、『オブジェクトＡ』が存在して、『オブジェクトＢ』が存在しない必要があるが、（１）のパターンは、『オブジェクトＡ』が存在しないパターンであるので、処理『００４』から実行を再開することができず、『オブジェクトＡ』を作成する処理『００２』まで戻って実行を再開する必要がある。加えて、『オブジェクトＢ』を破棄する必要がある。このため、図４の（Ｃ）に示すように、「『オブジェクトＢ』を破棄して、処理『００２』から実行を再開すべきである」、と判定することになる。
【００５１】
処理『００４』の成否が「失敗」で、オブジェクトの有無が（２）のパターンであった場合について説明すると、処理『００４』で失敗しているので、処理『００４』から実行を再開すべきであると考えられるが、（１）のパターンと同様、（２）のパターンは、『オブジェクトＡ』が存在しないパターンであるので、処理『００４』から実行を再開することができず、『オブジェクトＡ』を作成する処理『００２』まで戻って実行を再開する必要がある。なお、『オブジェクトＢ』を破棄する必要はない。このため、図４の（Ｃ）に示すように、「処理『００２』から実行を再開すべきである」、と判定することになる。
【００５２】
処理『００４』の成否が「失敗」で、オブジェクトの有無が（３）のパターンであった場合について説明すると、処理『００４』で失敗しているので、処理『００４』から実行を再開すべきであると考えられる。処理『００４』から実行を再開するには、『オブジェクトＡ』が存在して、『オブジェクトＢ』が存在しない必要があるが、（３）のパターンは、『オブジェクトＡ』が存在し、『オブジェクトＢ』も存在するパターンであるので、『オブジェクトＢ』を破棄するだけで、処理『００４』から実行を再開することができる。このため、図４の（Ｃ）に示すように、「『オブジェクトＢ』を破棄して、処理『００４』から実行を再開すべきである」、と判定することになる。
【００５３】
処理『００４』の成否が「失敗」で、オブジェクトの有無が（４）のパターンであった場合について説明すると、処理『００４』で失敗しているので、処理『００４』から実行を再開すべきであると考えられる。処理『００４』から実行を再開するには、『オブジェクトＡ』が存在して、『オブジェクトＢ』が存在しない必要があるが、（４）のパターンは、まさにこのパターンに該当する。このため、図４の（４）に示すように、「処理『００４』から実行を再開すべきである」、と判定することになる。
【００５４】
これらの判定について考えると、図５に示すように、処理（Action）の成否と、処理に対して入力されるオブジェクト（Input  Object）と、処理から出力されるオブジェクト（Output  Object）と、システムに現に保持されているオブジェクトの有無とが、判定のポイントになると思われる。しかしながら、以下に説明するように、これらの情報だけでは、実行を再開すべき処理を正しく判定できないおそれがある。
【００５５】
図３および図４の（Ａ）の例では、一つの処理において、一つのオブジェクトに対する操作として、せいぜい『Read』と『Destroy』とが行なわれる程度の例であったが、実際のシステムでは、例えば、図６に示すように、一つの処理において、一つのオブジェクトに対する操作として、『Destroy』、『Create』、『Read』、および『Write』など、様々な操作が行われることがある。
【００５６】
例えば、図７は、図３および図４の（Ａ）で示したシステムとほぼ同様のシステムを示すものであるが、処理『００４』で、『オブジェクトＡ』を『Read』してから『オブジェクトＢ』を『Create』するのみならず、『オブジェクトＡ』を『Read』した後『Write』して、その『Write』後の『オブジェクトＡ』から『オブジェクトＢ』を『Create』する点が異なっている。
【００５７】
図８の（Ａ）に示すように、図７に示すシステムが、処理『００４』で実行を停止したとする。上記と同様に、「オブジェクトの有無」のパターンを考えると、図８の（Ｂ）に示すような４パターンを想定し得る。
【００５８】
そこで、図８の（Ｃ）に示すように、処理『００４』の成否と、パターンごとのオブジェクトの有無とで場合分けをして、複数の処理の中から実行を再開すべき処理を判定しようとすると、処理『００４』の成否が「失敗」で、オブジェクトの有無が（３）のパターンであった場合と、処理『００４』の成否が「失敗」で、オブジェクトの有無が（４）のパターンであった場合とについては、図４の（Ｃ）で行なった判定と異なる判定をしなければならないことがわかる。
【００５９】
つまり、処理『００４』の成否が「失敗」で、オブジェクトの有無が（３）のパターンであった場合について説明すると、まず、処理『００４』で失敗しているので、処理『００４』から実行を再開すべきであると考えられる。処理『００４』から実行を再開するには、『オブジェクトＡ』が存在して、『オブジェクトＢ』が存在しない必要があるが、ここで注意すべきなのは、『Write』前の『オブジェクトＡ』が存在する必要があるのであって、『Write』後の『オブジェクトＡ』が存在するのでは、処理『００４』から実行を再開することができないという点である。言い換えると、処理『００４』において、『Write』前の『オブジェクトＡ』と、『Write』後の『オブジェクトＡ』とは、別物であり、処理『００４』から実行を再開するには、『Write』前の『オブジェクトＡ』が存在する必要があるのである。
【００６０】
したがって、処理『００４』の成否が「失敗」で、オブジェクトの有無が（３）のパターンであった場合、存在する『オブジェクトＡ』が、『Write』前であれば、図４の（Ｃ）に示すように、「『オブジェクトＢ』を破棄して、処理『００４』から実行を再開すべきである」、と判定すればよいが、存在する『オブジェクトＡ』が、『Write』後であれば、図４の（Ｃ）に示すように、「『オブジェクトＡ』を破棄し、『オブジェクトＢ』も破棄し、処理『００２』から実行を再開すべきである」、と判定しなければならない。処理『００４』の成否が「失敗」で、オブジェクトの有無が（４）のパターンであった場合も同様である。
【００６１】
このように、正しく判定できないおそれがあるために、上記してきたような手法では、間違ったオブジェクトで処理を実行してしまう可能性や、その可能性をおそれるあまりに、戻る必要のない処理まで戻って実行を再開してしまう可能性などが生じる。
【００６２】
そこで、本発明に係る再開支援装置１０では、上記した問題をも解決することを目的として、図９に示すような考え方を導入する。例えば、オブジェクトが、図９に示すように、『Create』、『Read』、『Write』、および『Destroy』という操作がなされるライフサイクルに従うものであるとすると、各々の操作に対応づけて、操作に伴って遷移するオブジェクトのバージョンという概念を導入する。図９に示す例はあくまで一例であるが、例えば、『Create』、『Read』という操作に伴っては、オブジェクトのバージョンは遷移しないが、『Write』という操作に伴っては、オブジェクトのバージョンが遷移するものとし、『１』から『２』に遷移させている。また、『Destroy』という操作に伴っても、オブジェクトのバージョンは遷移しないものとする。なお、図９においては、説明の便宜上から、各々の操作に対して、「Task  ID」を付与している。
【００６３】
本発明に係る再開支援装置１０では、バージョン情報保持部２１において、操作に伴って遷移するオブジェクトのバージョンに関するバージョン情報を、オブジェクトごとに処理各々と関連づけて保持する。例えば、図１０の（Ａ）に示すようなシステムに対しては、バージョン情報保持部２１は、図１０の（Ｂ）に示すようなバージョン情報を保持することになる。なお、図１０の（Ｂ）は、バージョン情報保持部２１が保持するバージョン情報の一部を示すものである。
【００６４】
バージョン情報保持部２１が保持するバージョン情報について、図１０の（Ｂ）を用いて説明する。まず、『ObjectＡ−１』と『ObjectＡ−２』とは、処理『００３』で「Ａ＝１」に分岐した方の『オブジェクトＡ』を『ObjectＡ−１』としており、処理『００３』で「Ａ≠１」に分岐した方の『オブジェクトＡ』を『ObjectＡ−２』としているものである。『ObjectＡ−１』の行をみるとわかるように、実施例１においては、『ObjectＡ−１』は、『Create』、『Read』という操作に伴っては、バージョンは遷移せず、『１』のままであるが、『Write』という操作に伴っては、バージョンが遷移するものとし、『１』から『２』に遷移させている。また、『Destroy』という操作に伴っても、バージョンは遷移せず、『２』のままである。
【００６５】
バージョン情報保持部２１が保持するバージョン情報について、さらに一部を抜粋したものが、図１１の（Ａ）である。ここで、図１０の（Ａ）に示すシステムが、処理『００４』で実行を停止したとする。この時、オブジェクトの有無のパターンは、図１１の（Ｂ）のようになり、（３）−１〜（４）−２に示すように、『オブジェクトＡ』については、『Version１』が存在するのか、あるいは、『Version２』が存在するのか、といった２つのパターンに分けて考えることになる。
【００６６】
すると、複数の処理の中から実行を再開すべき処理を判定するには、図１１の（Ｃ）に示すように、処理『００４』の成否と、パターンごとのオブジェクトの有無と、オブジェクトごとのバージョン情報とを場合分けして考えることになる。つまり、再開処理判定部３２は、図１１の（Ａ）〜（Ｃ）に示すように、処理『００４』の成否と、処理『００４』に関連付けてバージョン情報保持部２１によって保持されているオブジェクトおよびオブジェクトごとのバージョン情報（図１１の（Ａ）を参照）と、システムにおいて現に保持されているオブジェクトおよびオブジェクトごとのバージョン情報（図１１の（Ｂ）を参照）とに基づいて、実行を再開すべき処理を判定する。
【００６７】
例えば、処理『００４』の成否が「失敗」で、オブジェクトの有無が（３）−１のパターンであった場合について説明すると、再開処理判定部３２は、まず、処理『００４』で失敗しているので、処理『００４』から実行を再開すべきであると考える。処理『００４』から実行を再開するには、『Version−１』の『オブジェクトＡ』が存在して、『オブジェクトＢ』が存在しない必要があるが、（３）−１のパターンでは、『Version−１』の『オブジェクトＡ』が存在し、『オブジェクトＢ』が存在していることから、結局、再開処理判定部３２は、図１１の（Ｃ）に示すように、「『オブジェクトＢ』を破棄して、処理『００４』から実行を再開すべきである」、と判定する。
【００６８】
一方、処理『００４』の成否が「失敗」で、オブジェクトの有無が（３）−２のパターンであった場合について説明すると、再開処理判定部３２は、まず、処理『００４』で失敗しているので、処理『００４』から実行を再開すべきであると考える。処理『００４』から実行を再開するには、『Version−１』の『オブジェクトＡ』が存在して、『オブジェクトＢ』が存在しない必要があるが、（３）−２のパターンでは、『Version−２』の『オブジェクトＡ』が存在し、『オブジェクトＢ』が存在していることから、結局、再開処理判定部３２は、図１１の（Ｃ）に示すように、「『オブジェクトＡ』を破棄し、『オブジェクトＢ』も破棄して、処理『００２』から実行を再開すべきである」、と判定する。
【００６９】
このようにして、本発明における再開支援装置１０においては、間違ったオブジェクトで処理を実行してしまう可能性や、その可能性をおそれるあまりに、戻る必要のない処理まで戻って実行を再開してしまう可能性などを回避している。
【００７０】
［実施例１に係る再開支援装置による処理の手順］
次に、図１２を用いて、実施例１に係る再開支援装置による処理を説明する。図１２は、実施例１に係る再開支援装置による処理の手順を示すフローチャートである。
【００７１】
まず、再開支援装置１０は、実行を停止した処理を示す情報を、システムから受け付けたか否かを判定する（ステップＳ１２０１）。受け付けていない場合には（ステップＳ１２０１否定）、再開支援装置１０は、実行を停止した処理を示す情報を、システムから受け付けたか否かを判定する処理に戻る。
【００７２】
一方、受け付けた場合には（ステップＳ１２０１肯定）、再開支援装置１０は、次に、受け付けた情報に示される処理の成否を取得する（ステップＳ１２０２）。なお、この取得は、実行を停止した処理を示す情報としてシステムから受信することで取得したり、実行を停止した処理を示す情報とともにシステムから受信することで取得したり、システムの利用者によって入力されることで取得するなどする。
【００７３】
そして、再開支援装置１０は、処理に関連付けてバージョン情報保持部２１に保持されているオブジェクトおよびバージョン情報を取得する（ステップＳ１２０３）。
【００７４】
続いて、再開支援装置１０は、システムにおいて現に保持されているオブジェクトおよびバージョン情報を取得する（ステップＳ１２０４）。なお、この取得は、実行を停止した処理を示す情報としてシステムから受信することで取得したり、実行を停止した処理を示す情報とともにシステムから受信することで取得したり、システムの利用者によって入力されることで取得するなどする。
【００７５】
その後、再開支援装置１０は、処理の成否と、バージョン情報保持部２１によって保持されているオブジェクトおよびオブジェクトごとのバージョン情報と、システムにおいて現に保持されているオブジェクトおよびオブジェクトごとのバージョン情報とに基づいて、実行を再開すべき処理を判定する（ステップＳ１２０５）。
【００７６】
このようなことから、実施例１に係る再開支援装置１０は、システムがいずれかの処理で実行を停止した場合に、実行を再開すべき処理を判定することが可能になる。
【００７７】
なお、実施例１においては、再開支援装置１０が、処理の成否を取得してから、バージョン情報保持部２１に保持されている情報を取得し、その後、システムにおいて現に保持されているオブジェクトおよびバージョン情報を取得する順番について説明したが、本発明はこれに限られるものではない。処理の成否の取得と、システムにおいて現に保持されているオブジェクトおよびバージョン情報の取得とを同時に行なう順番や、その他の順番など、処理の順番はいずれでもよい。
【００７８】
［実施例１の効果］
上記してきたように、実施例１によれば、複数の処理が実行される順番を示すシーケンスフローと当該処理の各々で処理の対象とされる一つまたは複数のオブジェクトおよび当該オブジェクト各々に対する一つまたは複数の操作とが規定されているシステムが、いずれかの処理で実行を停止した場合に、当該システムの再開を支援する方法をコンピュータに実行させる再開支援プログラムであって、操作に伴って遷移するオブジェクトのバージョンに関するバージョン情報を、オブジェクトごとに処理各々と関連付けて保持し、システムがいずれかの処理で実行を停止した場合に、実行を停止した処理を示す情報を受け付け、情報が受け付けられると、受け付けられた情報に示される処理の成否と、処理に関連付けて保持されているオブジェクトおよびオブジェクトごとのバージョン情報と、システムにおいて現に保持されているオブジェクトおよびオブジェクトごとのバージョン情報とに基づいて、複数の処理の中から実行を再開すべき処理を判定するので、システムがいずれかの処理で実行を停止した場合に、実行を再開すべき処理を判定することが可能になる。
【実施例２】
【００７９】
さて、これまで実施例１として、再開支援装置が、処理の成否と、バージョン情報保持部によって保持された情報と、現にシステムに保持されているオブジェクトおよびオブジェクトのバージョン情報とに基づいて、実行を再開すべき処理を判定する手法について説明してきたが、本発明はこれに限られるものではない。本発明に係る再開支援装置は、実行を停止した処理そのものに関する上記したような情報の他に、シーケンスフローの中で処理と関連しているその他の処理に関する情報にも基づいて、実行を再開すべき処理を判定することもできる。以下では、シーケンスフローの中で処理と関連しているその他の処理に関する情報にも基づいて、実行を再開すべき処理を判定する再開支援装置について、実施例２として説明する。
【００８０】
まず、実施例２における再開処理判定部３２は、停止情報受付部３１によって受け付けられた情報に示される処理の他に、シーケンスフローの中で当該処理と関連しているその他の処理に関する情報にも基づいて、実行を再開すべき処理を判定する。例えば、図１３は、実施例２における再開処理判定を説明するための図であるが、図１３に示すように、システムが、処理『００８』を実行した後、処理『００９』と処理『０１０』とを並行して実行し、その後、処理『００９』の処理結果と処理『０１０』の処理結果とを両方利用して、処理『０１１』を実行するものであるとする。ただし、処理『０１０』の処理結果には期限があり、期限を超えてしまうと、当該処理結果を処理『０１１』で利用することができなくなる性質のものであるとする。
【００８１】
このようなシステムが、処理『００９』で実行を停止した場合に、再開処理判定部３２は、処理『００９』のみを単独で考えると、処理『００９』から実行を再開すればよいと判定される場合であっても、シーケンスフローの中で処理『００９』と関連している処理『０１０』や処理『０１１』に関する情報に基づき、すでに処理『０１０』の処理結果が期限を超えてしまっていると考えられれば、処理『００９』から実行を再開するのではなく、処理『００８』から実行を再開するのが最適な再開である、と判定するなどする。
【００８２】
このように、原則は、実施例１に係る再開支援装置と同様であるが、実施例２に係る再開支援装置は、再開位置以前の分岐によって発生した処理が再帰的に今後の処理に与える影響などを列挙して判定結果として提示したり、そのような処理がある場合は、その処理も含めて前まで戻る処理を判定結果として提示するなどする。
【００８３】
［実施例２の効果］
上記してきたように、実施例２によれば、受け付けられた情報に示される処理の他に、シーケンスフローの中で処理と関連しているその他の処理に関する情報にも基づいて、実行を再開すべき処理を判定するので、システムがいずれかの処理で実行を停止した場合に、シーケンスフロー全体において実行を再開すべき最適な処理を判定することが可能になる。
【実施例３】
【００８４】
さて、これまで本発明の実施例について説明したが、本発明は上記した実施例以外にも、種々の異なる形態にて実施されてよいものである。
【００８５】
［バージョン情報の保持］
実施例１においては、バージョン情報保持部が、再開支援装置の利用者によって入力されるなどしたバージョン情報を保持する手法について説明したが、本発明はこれに限られるものではなく、システムに規定されている情報から作成されたバージョン情報を保持する手法などにも、本発明を同様に適用することができる。具体的には、再開支援装置は、ＵＭＬ２．０やＢＰＭＬなどのフロー記述より、オブジェクトへのアクセスを抽出して、オブジェクトのライフサイクル管理表を作成することで、バージョン情報をバージョン情報保持部に保持するなどする。この場合には、オブジェクトのバージョン情報は、システムに規定されている情報から作成されるので、実行を再開すべき処理を判定する仕組みを、簡易に実現することが可能になる。
【００８６】
あるいは、システムの処理に従って蓄積されるログ情報から作成されたバージョン情報を保持する手法などにも、本発明を同様に適用することができる。具体的には、再開支援装置は、フロー実行ログ（ＤＢアクセスなどオブジェクトに対する操作のログ）から、オブジェクトのライフサイクル管理表を作成することで、バージョン情報をバージョン情報保持部に保持するなどする。この場合には、オブジェクトのバージョン情報は、システムの処理に伴って蓄積されるログ情報から作成されるので、システムに規定されている情報からバージョン情報を作成できない場合などにも、実行を再開すべき処理を判定する仕組みを、実現することが可能になる。
【００８７】
［システム構成］
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理（例えば、再開支援装置が、システムから処理の成否を取得する処理など）の全部または一部を手動的におこなう（例えば、再開支援装置の利用者が、処理の成否を再開支援装置に入力するなど）こともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００８８】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示（例えば、図２など）の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００８９】
［コンピュータ］
次に、図１４に示すように、再開支援プログラム（コンピュータ）４０は、キャッシュ４１、ＲＡＭ４２、ＨＤＤ４３、ＲＯＭ４４およびＣＰＵ４５をバス４６で接続して構成される。ここで、ＲＯＭ４４には、上記の実施例１と同様の機能を発揮する再開支援プログラム、つまり、図１４に示すように、停止情報受付プログラム４４ａと再開処理判定プログラム４４ｂとがあらかじめ記憶されている。
【００９０】
そして、ＣＰＵ４５は、これらのプログラム４４ａおよび４４ｂを読み出して実行することで、図１４に示すように、各プログラム４４ａおよび４４ｂは、停止情報受付プロセス４５ａと再開処理判定プロセス４５ｂとなる。なお、各プロセス４５ａおよび４５ｂは、図２に示した、停止情報受付部３１と再開処理判定部３２とにそれぞれ対応する。
【００９１】
そして、ＨＤＤ４３には、図１４に示すように、バージョン情報テーブル４３ａおよび判定結果テーブル４３ｂが設けられる。なお、テーブル４３ａおよび４３ｂは、図２に示した、バージョン情報保持部２１および判定結果保持部２２にそれぞれ対応する。
【００９２】
ところで、上記した各プログラム４４ａおよび４４ｂについては、必ずしもＲＯＭ４４に記憶させておく必要はなく、例えば、コンピュータ４０に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」、または、コンピュータ４０の内外に備えられるハードディスクドライブ（ＨＤＤ）などの「固定用の物理媒体」、さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ４０に接続される「他のコンピュータ（またはサーバ）」に記憶させておき、コンピュータ４０がこれらからプログラムを読み出して実行するようにしてもよい。
【産業上の利用可能性】
【００９３】
以上のように、本発明に係る再開支援プログラムおよび再開支援装置は、複数の処理が実行される順番を示すシーケンスフローと、処理の各々で処理の対象とされる一つまたは複数のオブジェクトおよびオブジェクト各々に対する一つまたは複数の操作とが規定されているシステムが、いずれかの処理で実行を停止した場合に、システムの再開を支援することに有用であり、特に、システムがいずれかの処理で実行を停止した場合に、実行を再開すべき処理を判定することに適する。
【図面の簡単な説明】
【００９４】
【図１】図１は、実施例１に係る再開支援装置の概要および特徴を説明するための図である。
【図２】図２は、実施例１に係る再開支援装置の構成を示すブロック図である。
【図３】図３は、システムについて説明するための図である。
【図４】図４は、再開処理判定について説明するための図である。
【図５】図５は、再開処理判定のポイントについて説明するための図である。
【図６】図６は、オブジェクトに対する操作について説明するための図である。
【図７】図７は、実施例１におけるシステムについて説明するための図である。
【図８】図８は、実施例１における再開処理判定について説明するための図である。
【図９】図９は、オブジェクトのバージョンについて説明するための図である。
【図１０】図１０は、実施例１におけるバージョン情報保持部について説明するための図である。
【図１１】図１１は、実施例１における再開処理判定について説明するための図である。
【図１２】図１２は、実施例１に係る再開支援装置による処理の手順を示すフローチャートである。
【図１３】図１３は、実施例２における再開処理判定を説明するための図である。
【図１４】図１４は、再開支援プログラムを実行するコンピュータを説明するための図である。
【図１５】図１５は、従来技術を説明するための図である。
【符号の説明】
【００９５】
１０  再開支援装置
１１  入力部
１２  出力部
１３  入出力制御Ｉ／Ｆ部
１４  通信部
２０  記憶部
２１  バージョン情報保持部
２２  判定結果保持部
３０  制御部
３１  停止情報受付部
３２  再開処理判定部
４０  再開支援プログラム（コンピュータ）
４１  キャッシュ
４２  ＲＡＭ
４３  ＨＤＤ
４３ａ  バージョン情報テーブル
４３ｂ  判定結果テーブル
４４  ＲＯＭ
４４ａ  停止情報受付プログラム
４４ｂ  再開処理判定プログラム
４５  ＣＰＵ
４５ａ  停止情報受付プロセス
４５ｂ  再開処理判定プロセス
４６  バス
【国際調査報告】
2008149416.tif 000018
2008149416.tif 000019
2008149416.tif 000020