(57)【特許請求の範囲】
【請求項１】
プロセスを構成する個々のアクティビティ及び当該アクティビティを実行すべき順序関係を含むプロセス定義を記憶した記憶手段を有し、前記プロセス定義を編集可能なプロセス管理装置であって、
プロセスが実行されたとき、当該実行プロセスの実行結果を当該プロセスを構成する個々のアクティビティ毎の実行時間情報を含むログとして前記記憶手段に記録するログ記録手段と、
前記記憶手段から、前記実行プロセスのプロセス定義と、前記ログ記録手段により記録された当該実行プロセスのログとを取得し、取得された当該プロセス定義を構成するアクティビティ間の第１の順序関係と、取得された当該実行プロセスの当該アクティビティ間の前記実行時間情報に基づく第２の順序関係との比較に基づき当該アクティビティ間の順序関係の修正の有無を決定することで前記プロセス定義を再構成する第一再構成手段と、
再構成された前記プロセス定義を前記記憶手段に記憶し登録するプロセス定義登録手段と、
を有することを特徴とするプロセス管理装置。
【請求項２】
前記第一再構成手段は、前記第１の順序関係と前記第２の順序関係とに基づきアクティビティ間の順序関係に差異があるアクティビティ間の順序関係を修正することにより前記プロセス定義を再構成することを特徴とする請求項１に記載のプロセス管理装置。
【請求項３】
前記第一再構成手段は、取得された前記実行プロセスのプロセス定義において、当該プロセス定義を構成するアクティビティ間の第１の順序関係が変更不可として制約されている場合は、前記第１の順序関係と前記第２の順序関係とに基づきアクティビティ間の順序関係に差異がある場合にも前記第１の順序関係を適用して、取得された前記実行プロセスのプロセス定義を再構成すること、
を特徴とする請求項１又は２記載のプロセス管理装置。
【請求項４】
前記記憶手段は、アクティビティ又はプロセスの結果としての成果物同士、アクティビティとアクティビティ又はプロセスの結果としての成果物、及び、アクティビティ同士を依存関係で規定された制約条件を記憶し、
前記第一再構成手段は、前記制約条件を参照し、取得された前記実行プロセスのプロセス定義を構成するアクティビティが、他のアクティビティと依存関係で規定されているとき、当該アクティビティに対し、当該依存関係に従って当該他のアクティビティを順序関係を含めて追加し、取得された前記実行プロセスのプロセス定義を再構成すること、
を特徴とする請求項１ないし３何れか一項記載のプロセス管理装置。
【請求項５】
プロセスを構成する個々のアクティビティ及び当該アクティビティを実行すべき順序関係を含むプロセス定義を複数記憶した記憶手段を有し、前記プロセス定義を編集可能なプロセス管理装置であって、
前記記憶手段から２つの前記プロセス定義を取得し、取得された第１のプロセス定義と、取得された第２のプロセス定義とを合成し、当該第１のプロセス定義を構成するアクティビティ間の第１の順序関係と、当該第２のプロセス定義を構成し、前記第１のプロセス定義の前記アクティビティ間に対応するアクティビティ間の第２の順序関係との比較に基づき当該アクティビティ間の順序関係の修正の有無を決定することで前記プロセス定義を再構成する第二再構成手段と、
再構成された前記プロセス定義を前記記憶手段に記憶し登録するプロセス定義登録手段と、
を有することを特徴とするプロセス管理装置。
【請求項６】
前記第二再構成手段は、
前記第１の順序関係と前記第２の順序関係とに基づきアクティビティ間の順序関係に差異があるアクティビティ間の順序関係を修正することにより前記プロセス定義を再構成することを特徴とする請求項５に記載のプロセス管理装置。
【請求項７】
前記第二再構成手段は、取得された前記第１のプロセス定義において、当該プロセス定義を構成するアクティビティ間の第１の順序関係が変更不可として制約されている場合は、前記第１の順序関係と前記第２の順序関係とに基づきアクティビティ間の順序関係に差異がある場合、差異があるアクティビティ間の順序関係を制約されている前記第１の順序関係を適用して、取得された前記実行プロセスのプロセス定義を再構成すること、
を特徴とする請求項５又は６記載のプロセス管理装置。
【請求項８】
前記記憶手段は、アクティビティ又はプロセスの結果としての成果物同士、アクティビティとアクティビティ又はプロセスの結果としての成果物、及び、アクティビティ同士を依存関係で規定された制約条件を記憶し、
前記第一再構成手段は、前記制約条件を参照し、取得された前記実行プロセスのプロセス定義を構成するアクティビティが、他のアクティビティと依存関係で規定されているとき、当該アクティビティに対し、当該依存関係に従って当該他のアクティビティを順序関係を含めて追加し、取得された前記実行プロセスのプロセス定義を再構成すること、
を特徴とする請求項５ないし７何れか一項記載のプロセス管理装置。
【請求項９】
プロセスを構成する個々のアクティビティ及び当該アクティビティを実行すべき順序関係を含むプロセス定義を記憶した記憶手段を有し、前記プロセス定義を編集可能なプロセス管理装置におけるプロセス管理方法であって、
プロセスが実行されたとき、当該実行プロセスの実行結果を当該プロセスを構成する個々のアクティビティ毎の実行時間情報を含むログとして前記記憶手段に記録するログ記録段階と、
前記記憶手段から、前記実行プロセスのプロセス定義と、前記ログ記録手段により記録された当該実行プロセスのログとを取得し、取得された当該プロセス定義を構成するアクティビティ間の第１の順序関係と、取得された当該実行プロセスの当該アクティビティ間の前記実行時間情報に基づく第２の順序関係との比較に基づき当該アクティビティ間の順序関係の修正の有無を決定することで前記プロセス定義を再構成する第一再構成段階と、
再構成された前記プロセス定義を前記記憶手段に記憶し登録するプロセス定義登録段階と、
を有することを特徴とするプロセス管理方法。
【請求項１０】
前記第一再構成段階は、前記第１の順序関係と前記第２の順序関係とに基づきアクティビティ間の順序関係に差異があるアクティビティ間の順序関係を修正することにより前記プロセス定義を再構成することを特徴とする請求項９に記載のプロセス管理方法。
【請求項１１】
前記第一再構成段階は、取得された前記実行プロセスのプロセス定義において、当該プロセス定義を構成するアクティビティ間の第１の順序関係が変更不可として制約されている場合は、前記第１の順序関係と前記第２の順序関係とに基づきアクティビティ間の順序関係に差異がある場合にも前記第１の順序関係を適用して、取得された前記実行プロセスのプロセス定義を再構成すること、
を特徴とする請求項９又は１０記載のプロセス管理方法。
【請求項１２】
前記記憶手段は、アクティビティ又はプロセスの結果としての成果物同士、アクティビティとアクティビティ又はプロセスの結果としての成果物、及び、アクティビティ同士を依存関係で規定された制約条件を記憶し、
前記第一再構成段階は、前記制約条件を参照し、取得された前記実行プロセスのプロセス定義を構成するアクティビティが、他のアクティビティと依存関係で規定されているとき、当該アクティビティに対し、当該依存関係に従って当該他のアクティビティを順序関係を含めて追加し、取得された前記実行プロセスのプロセス定義を再構成すること、
を特徴とする請求項９ないし１１何れか一項記載のプロセス管理方法。
【請求項１３】
プロセスを構成する個々のアクティビティ及び当該アクティビティを実行すべき順序関係を含むプロセス定義を複数記憶した記憶手段を有し、前記プロセス定義を編集可能なプロセス管理装置におけるプロセス管理方法であって、
前記記憶手段から２つの前記プロセス定義を取得し、取得された第１のプロセス定義と、取得された第２のプロセス定義とを合成し、当該第１のプロセス定義を構成するアクティビティ間の第１の順序関係と、当該第２のプロセス定義を構成し、前記第１のプロセス定義の前記アクティビティ間に対応するアクティビティ間の第２の順序関係との比較に基づき当該アクティビティ間の順序関係の修正の有無を決定することで前記プロセス定義を再構成する第二再構成段階と、
再構成された前記プロセス定義を前記記憶手段に記憶し登録するプロセス定義登録段階と、
を有することを特徴とするプロセス管理方法。
【請求項１４】
前記第二再構成段階は、
前記第１の順序関係と前記第２の順序関係とに基づきアクティビティ間の順序関係に差異があるアクティビティ間の順序関係を修正することにより前記プロセス定義を再構成することを特徴とする請求項１３に記載のプロセス管理方法。
【請求項１５】
前記第二再構成段階は、取得された前記第１のプロセス定義において、当該プロセス定義を構成するアクティビティ間の第１の順序関係が変更不可として制約されている場合は、前記第１の順序関係と前記第２の順序関係とに基づきアクティビティ間の順序関係に差異がある場合、差異があるアクティビティ間の順序関係を制約されている前記第１の順序関係を適用して、取得された前記実行プロセスのプロセス定義を再構成すること、
を特徴とする請求項１３又は１４記載のプロセス管理方法。
【請求項１６】
前記記憶手段は、アクティビティ又はプロセスの結果としての成果物同士、アクティビティとアクティビティ又はプロセスの結果としての成果物、及び、アクティビティ同士を依存関係で規定された制約条件を記憶し、
前記第一再構成段階は、前記制約条件を参照し、取得された前記実行プロセスのプロセス定義を構成するアクティビティが、他のアクティビティと依存関係で規定されているとき、当該アクティビティに対し、当該依存関係に従って当該他のアクティビティを順序関係を含めて追加し、取得された前記実行プロセスのプロセス定義を再構成すること、
を特徴とする請求項１３ないし１５何れか一項記載のプロセス管理方法。
【請求項１７】
請求項９ないし１６何れか一項記載のプロセス管理方法をコンピュータに実行させるためのプロセス管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセス管理装置、プロセス編集装置、プロセス管理プログラム、プロセス編集プログラム、記録媒体、プロセス管理方法及びプロセス編集方法に関する。
【背景技術】
【０００２】
近年、複数の担当者がネットワークを経由して仕事をする際に、該仕事を円滑に進めるため、担当者間で受け渡すドキュメントや情報の流れを管理し、自動化するワークフローシステムが知られている（例えば、非特許文献１〜３参照。）。
【非特許文献１】速水治夫、「ここまできたワークフロー管理システム（１）」情報処理学会誌、Ｖｏｌ．３９、ＮＯ．１１、ｐ１１６０−ｐ１１６５（１９９８）
【非特許文献２】速水治夫、阪口俊昭、渋谷亮一、「ここまできたワークフロー管理システム（２）」情報処理学会誌、Ｖｏｌ．３９、ＮＯ．１２、ｐ１２５８−ｐ１２６３（１９９８）
【非特許文献３】速水治夫、渋谷亮一、鈴木登雄、生駒順一、寺下陽介、植野直樹、金子聡、林潔、「ここまできたワークフロー管理システム（３）」情報処理学会誌  Ｖｏｌ．４０、ＮＯ．５、ｐ５０７−ｐ５１３（１９９９）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
また、ワークフローシステムにおいて、ワークフローの参加者が、例えばワークフローのプロセスの実行後、実行したプロセス等を見直し、該プロセスを編集（又は変更）することが可能なワークフローシステムも考えられる。
【０００４】
しかしながら、このようなワークフローシステムにおいては、ワークフローの参加者が実行後のプロセスを変更することが可能なため、例えば同種の仕事に対して、多くのフローが存在することになり、該フロー等を再利用して、プロセスのテンプレートであるプロセス定義を作成することが困難な問題があった。
【０００５】
また、そのため、最適化されたプロセス定義を、ユーザに提供することが困難な問題があった。
【０００６】
本発明は、上記の点に鑑みなされたもので、最適化されたプロセス定義を提供することを目的とする。
【課題を解決するための手段】
【０００７】
そこで、上記問題を解決するため、本発明は、プロセスを編集可能なプロセス管理装置であって、前記プロセスの実行結果をログとして記録するログ記録手段と、前記ログに基づいて再構成された、プロセスのテンプレートであるプロセス定義を、登録する第一プロセス定義登録手段と、を有することを特徴とする。
【０００８】
本発明によれば、プロセスを編集可能なプロセス管理装置であって、前記プロセスの実行結果をログとして記録するログ記録手段と、前記ログに基づいて再構成された、プロセスのテンプレートであるプロセス定義を、登録する第一プロセス定義登録手段と、を有することにより、最適化されたプロセス定義を提供することができる。
【０００９】
また、上記問題を解決するため、本発明は、プロセスを編集可能なプロセス管理装置であって、プロセスのテンプレートである複数のプロセス定義より、前記プロセスを構成する個々の仕事の順序関係に係る制約情報を抽出する第一制約情報抽出手段と、前記第一制約情報抽出手段において抽出した制約情報に基づいて再構成された前記プロセス定義を登録する第二プロセス定義登録手段と、を有することを特徴とする。
【００１０】
本発明によれば、プロセスを編集可能なプロセス管理装置であって、プロセスのテンプレートである複数のプロセス定義より、前記プロセスを構成する個々の仕事の順序関係に係る制約情報を抽出する第一制約情報抽出手段と、前記第一制約情報抽出手段において抽出した制約情報に基づいて再構成された前記プロセス定義を登録する第二プロセス定義登録手段と、を有することによって、最適化されたプロセス定義を提供することができる。
【００１１】
また、上記問題を解決するため、本発明は、プロセスを編集するプロセス編集装置であって、プロセスの実行結果に基づいて、プロセスのテンプレートであるプロセス定義を再構成する第三再構成手段を有することを特徴とする。
【００１２】
本発明によれば、プロセスを編集するプロセス編集装置であって、プロセスの実行結果に基づいて、プロセスのテンプレートであるプロセス定義を再構成する第三再構成手段を有することによって、最適化されたプロセス定義を提供することができる。
【００１３】
また、上記問題を解決するため、本発明は、プロセスを編集するプロセス編集装置であって、プロセスのテンプレートである複数のプロセス定義より、前記プロセスを構成する個々の仕事の順序関係に係る制約情報を抽出する第二制約情報抽出手段と、前記第二制約情報抽出手段において抽出した制約情報に基づいて、前記プロセス定義を再構成する第四再構成手段と、を有することを特徴とする。
【００１４】
本発明によれば、プロセスを編集するプロセス編集装置であって、プロセスのテンプレートである複数のプロセス定義より、前記プロセスを構成する個々の仕事の順序関係に係る制約情報を抽出する第二制約情報抽出手段と、前記第二制約情報抽出手段において抽出した制約情報に基づいて、前記プロセス定義を再構成する第四再構成手段と、を有することによって、最適化されたプロセス定義を提供することができる。
【００１５】
また、上記課題を解決するための手段として、プロセス管理プログラム、プロセス編集プログラム、記録媒体、プロセス管理方法及びプロセス編集方法としてもよい。
【発明の効果】
【００１６】
本発明によれば、最適化されたプロセス定義を提供することができる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施の形態について図面に基づいて説明する。
【実施例１】
【００１８】
初めに、サーバ１のハードウェア構成の一例を、図１を用いて説明する。図１は、サーバの一例のハードウェア構成図である。
【００１９】
図１に示されるサーバ１のハードウェア構成は、それぞれバスで相互に接続されている入力装置１１と、表示装置１２と、ドライブ装置１３と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１５と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１６と、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１７と、インターフェース装置１８と、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１９と、から構成されている。
【００２０】
入力装置１１は、サーバ１の利用者が操作するキーボード及びマウス等で構成され、サーバ１に各種操作信号を入力するのに用いられる。表示装置１２は、サーバ１の利用者が利用するディスプレイ等で構成され、各種情報を表示する。インターフェース装置１８は、サーバ１をネットワーク等に接続するインターフェースである。
【００２１】
後述する、ソフトウェアに対応するプログラム、例えばプロセス定義管理部２２、ワークフローエンジン２５、プロセス定義データベース２３、プロセス実行ログ２８、プロセスインスタンスデータベース２６等は、例えば、ＣＤ−ＲＯＭ等の記録媒体１４によってサーバ１に提供されるか、ネットワークを通じてダウンロードされる。記録媒体１４は、ドライブ装置１３にセットされ、プログラムが記録媒体１４からドライブ装置１３を介してＨＤＤ１９にインストールされる。
【００２２】
ＲＯＭ１５は、データ等を格納する。ＲＡＭ１６は、サーバ１の起動時にＨＤＤ１９からプログラム等を読み出して格納する。ＣＰＵ１７は、ＲＡＭ１６に読み出され格納されたプログラム等に従って処理を実行する。ＨＤＤ１９は、プログラムや、例えば後述するプロセス定義、アクティビティ順序関係表等を格納する。
【００２３】
以下、クライアント３のハードウェア構成の一例を、図２を用いて説明する。図２は、クライアントの一例のハードウェア構成図である。
【００２４】
図２に示されるクライアント３のハードウェア構成は、それぞれバスで相互に接続されている入力装置３１と、表示装置３２と、ドライブ装置３３と、ＲＯＭ３５と、ＲＡＭ３６と、ＣＰＵ３７と、インターフェース装置３８と、ＨＤＤ３９と、から構成されている。
【００２５】
入力装置３１は、クライアント３の利用者が操作するキーボード及びマウス等で構成され、クライアント３に各種操作信号を入力するのに用いられる。表示装置３２は、クライアント３の利用者が利用するディスプレイ等で構成され、各種情報を表示する。インターフェース装置３８は、クライアント３をネットワーク等に接続するインターフェースである。
【００２６】
後述する、ワークフローアプリケーション２４と、プロセス実行時編集ツール２７と、を含む利用者アプリケーションに対応するプログラム及び／又はプロセス定義編集ツール２１を含む管理用アプリケーションに対応するプログラム等は、例えばＣＤ−ＲＯＭ等の記録媒体３４によってクライアント３に提供されるか、ネットワークを通じてダウンロードされる。記録媒体３４は、ドライブ装置３３にセットされ、プログラムが記録媒体３４からドライブ装置３３を介してＨＤＤ３９にインストールされる。
【００２７】
ＲＯＭ３５は、データ等を格納する。ＲＡＭ３６は、クライアント３の起動時にＨＤＤ３９からプログラム等を読み出して格納する。ＣＰＵ３７は、ＲＡＭ３６に読み出され格納されたプログラム等に従って処理を実行する。なお、クライアント３が、サーバ１より取得した、後述するプロセスインスタンスや、プロセス定義等は、例えばＲＡＭ３６等に一時格納される。
【００２８】
以下、本明細書中で用いる用語を、図３を用いて説明する。図３は、明細書中で用いる用語を説明するための図である。
【００２９】
本明細書中では、プロセスとは、ある仕事を遂行するための処理の流れのことである。また、アクティビティとは、プロセスを構成する個々の仕事である。アクティビティは、開始、終了、待機等の状態を持っており、該状態の推移によって、例えば後述するソフトウェア等から成るワークフローシステム（以下、単にワークフローシステムともいう）は、プロセスの進行状況を表現する。また、トランジションは、アクティビティと、アクティビティと、の処理の順序を規定するものである。なお、トランジションも状態を持っており、該状態によって、ワークフローシステムは、接続するアクティビティの状態遷移条件を決定する。
【００３０】
また、フローは、アクティビティと、トランジションと、で表現した処理の流れ図である。また、プロセス定義は、プロセスのテンプレートであり、実行前のプロセスのフローを定義する。また、プロセスインスタンスフローは、実行中のプロセスのフローである。
【００３１】
ここで、プロセスインスタンスは、プロセス定義を実体化したものであり、実際の仕事のコンテンツを含んでいる。上述したプロセスインスタンスフローは、プロセスインスタンスのフロー定義であり、通常は、元になったプロセス定義と同じものである。
【００３２】
しかしながら、本ワークフローシステムにおいては、プロセスインスタンスフローと、プロセス定義と、を異なる実体として扱い、個別に操作可能となっている。したがって、本ワークフローシステムにおいて、プロセスインスタンスフローを変更した場合、該変更は、元となったプロセス定義に反映されることはなく、また、プロセス定義に対する変更も、既にインスタンス化されたプロセスに反映されることはない。
【００３３】
なお、実行中のプロセスのフロー、つまりプロセスインスタンスフロー、を変更する必然性としては、以下に示すようなものがある。
【００３４】
・一般的に営業活動、生産活動等、遂行に高度な判断を要する知的業務においては、基本的なプロセスは決まっているが、実際の業務において臨機応変にプロセスを変更して業務を進めていくことが多い。したがって、ワークフローシステム等において、個々の業務に最適なプロセスを動的に生成することにより、効率的に業務を進めることができる。
【００３５】
・従来のワークフローシステムでは、基本的なフローに従わざるを得ないため、上述したような知的業務に適用することは困難だった。
【００３６】
・プロセスの実行時にプロセス（又はプロセスのフロー）の変更が可能なワークフローシステムでは、実行時に臨機応変に実際の業務にあわせてプロセスを変更することにより、個々の業務に即したプロセス（又はプロセスのフロー）を作りながら業務を進めることができる。このことにより、従来のワークフローシステムでは適用が困難だった知的業務にも適用が可能となる。また、個々の業務に最適化されたプロセスを再利用することにより、ベストプラクティス（例えば、最適化されたプロセス定義）を、ユーザ間で共有することができる。
【００３７】
以下、サーバ１及びクライアント３に実装されるソフトウェア構成の一例を、図４を用いて説明する。図４は、ソフトウェア構成を示す図（その１）である。
【００３８】
図４に示されるソフトウェア構成は、プロセス定義編集ツール２１と、ワークフローアプリケーション２４と、プロセス実行時編集ツール２７と、プロセス定義管理部２２と、ワークフローエンジン２５と、プロセス定義データベース２３と、プロセスインスタンスデータベース２６と、プロセス実行ログ２８と、を含む。
【００３９】
プロセス定義編集ツール２１は、プロセス定義を編集するツールであり、プロセス定義管理部２２を介して、プロセス定義データベース２３にプロセス定義を登録したり、プロセス定義データベース２３からプロセス定義を取得したりする。また、プロセス定義編集ツール２１は、プロセス定義管理部２２を介して、プロセスインスタンスデータベース２６よりプロセスインスタンスフローを抽出したり、プロセス定義管理部２２を介して、プロセス実行ログ２８よりプロセスの実行結果を取得したり、該取得したプロセスの実行結果等に基づいて、例えばプロセスインスタンスフロー又は該プロセスインスタンスフローの元なったプロセス定義を編集、再構成し、プロセス定義としてプロセス定義管理部２２を介してプロセス定義データベース２３に登録したりする。
【００４０】
なお、プロセス定義の再構成は、プロセス定義管理部２２等が、例えばプロセスインスタンスフローと、プロセス実行ログ２８に記録されているログに基づいて作成されたプロセス実行結果ガントチャートと、に基づいて、行うようにしてもよい。以下においても同様である。
【００４１】
また、プロセス定義編集ツール２１は、例えばプロセス定義管理部２２より提供された後述するプロセス実行結果ガントチャートを表示してユーザに提供する。ユーザは、例えば表示されたプロセス実行結果ガントチャートを参考にして、フローを編集して、プロセス定義を再構成する。
【００４２】
プロセス定義管理部２２は、プロセス定義データベース２３に格納されているプロセス定義を管理する管理部であって、プロセス定義編集ツール２１からの要求に基づいて、対応するプロセス定義をプロセス定義データベース２３から取得したり、対応するプロセス定義をプロセス定義データベース２３に登録したりする。
【００４３】
また、プロセス定義管理部２２は、プロセス定義編集ツール２１からの要求に基づいて、プロセスインスタンスデータベース２６よりプロセスインスタンスフローを抽出し、プロセス定義編集ツール２１に提供したり、プロセス定義編集ツール２１からの要求に基づいて、プロセス実行ログ２８を参照したりする。
【００４４】
また、プロセス定義管理部２２は、プロセス実行ログ２８を参照した結果に基づいて、例えば、後述するようなプロセス実行結果ガントチャートを作成し、プロセス定義編集ツール２１に提供する。なお、プロセス実行結果ガントチャートは、プロセス実行ログ２８の参照結果を受け取ったプロセス定義編集ツール２１において作成、表示するようにしてもよい。以下においても同様である。
【００４５】
プロセス定義データベース２３は、プロセス定義を格納するデータベースである。
【００４６】
ワークフローアプリケーション２４は、アクティビティを実行するアプリケーションであり、ワークフローエンジン２５を介して、プロセスインスタンスデータベース２６に格納されている対応するプロセスインスタンスのプロセス情報やプロセスステータスを取得したり、プロセスステータスを変更したりする。
【００４７】
ワークフローエンジン２５は、ワークフローアプリケーション２４からの要求に応じてプロセス定義管理部２２を介してプロセス定義データベース２３より対応するプロセス定義を取得し、該プロセス定義に基づいて、プロセスのインスタンス化を行い、プロセスインスタンスデータベース２６に格納したり、ワークフローアプリケーション２４からの要求に基づいて、対応するプロセスインスタンスのプロセス情報やプロセスステータスをプロセスインスタンスデータベース２６より取得したり、プロセスインスタンスデータベース２６に格納されている対応するプロセスインスタンスのプロセスステータスを変更したりする。
【００４８】
また、ワークフローエンジン２５は、プロセス実行時編集ツール２７からの要求に応じて、プロセスインスタンスデータベース２６よりプロセスインスタンスフローを抽出したり、プロセス実行時編集ツール２７からの要求に応じて、プロセスインスタンスデータベース２６に格納されているプロセスインスタンスフローを更新したりする。なお、プロセスインスタンスフローの更新としては、例えば、アクティビティの保留や、アクティビティの先取り、アクティビティの追加等がある。
【００４９】
また、ワークフローエンジン２５は、ワークフローアプリケーション２４等からのプロセス（又はアクティビティ）の実行要求に応じて、プロセス（又はアクティビティ）の実行結果をプロセス実行ログ２８に記録する。
【００５０】
プロセスインスタンスデータベース２６は、プロセスインスタンスを格納するデータベースである。
【００５１】
プロセス実行時編集ツール２７は、プロセスインスタンスフローを編集するツールであり、ワークフローエンジン２５を介して、プロセスインスタンスデータベース２６よりプロセスインスタンスフローを取得したり、該取得したプロセスインスタンスフローを編集し、該編集したプロセスインスタンスフローを、ワークフローエンジン２５を介してプロセスインスタンスデータベース２６に格納し、プロセスインスタンスフローを更新したりする。
【００５２】
プロセス実行ログ２８は、プロセス（又はアクティビティ）の実行結果を記録したログである。例えばプロセス実行ログ２８には、実行結果の一例として、プロセスを構成するアクティビティのステータスが変更された時刻や、アクティビティの開始時刻、アクティビティの終了時刻、等のプロセス実行時のアクティビティ毎の実行時間情報が記録されている。
【００５３】
なお、上述したように、例えば管理用アプリケーションに含まれるプロセス定義編集ツール２１及び／又は利用者アプリケーションに含まれるワークフローアプリケーション２４、プロセス実行時編集ツール２７等はクライアント３に実装され、プロセス定義管理部２２、ワークフローエンジン２５、プロセスインスタンスデータベース２６、プロセス実行ログ２８、プロセス定義データベース２３等はサーバ１に実装される。また、例えばプロセス定義編集ツール２１、ワークフローアプリケーション２４、プロセス実行時編集ツール２７、プロセス定義管理部２２、ワークフローエンジン２５、プロセスインスタンスデータベース２６、プロセス実行ログ２８、プロセス定義データベース２３等を、Ｗｅｂサービスとして実装するようにしてもよい。このような構成とした場合、クライアント３と、サーバ１と、の間では、ＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）やＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）等をベースとしたＳＯＡＰ（Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）に従って、通信が行われる。
【００５４】
以下、ワークフローに係るプロセスの実行処理の一例を、図５を用いて説明する。図５は、ワークフローに係るプロセスの実行処理の一例のシーケンス図である。
【００５５】
初めに、ワークフローアプリケーション２４は、ワークフローの参加者（以下、単にユーザともいう）からの要求等に基づいて、プロセスのインスタンス化の要求をワークフローエンジン２５に対して送信する（シーケンスＳＱ１０）。
【００５６】
ワークフローエンジン２５は、プロセスのインスタンス化の要求を受信すると、対応するプロセス定義の取得要求をプロセス定義管理部２２に対して行う（シーケンスＳＱ１１）。
【００５７】
プロセス定義管理部２２は、プロセス定義の取得要求を受け取ると、対応するプロセス定義の取得要求をプロセス定義データベース２３に対して行い（シーケンスＳＱ１２）、プロセス定義を取得する（シーケンスＳＱ１３）。
【００５８】
プロセス定義管理部２２は、取得したプロセス定義を要求元のワークフローエンジン２５に渡す（シーケンスＳＱ１４）。
【００５９】
ワークフローエンジン２５は、プロセス定義を受け取ると、該プロセス定義に基づいて、プロセスのインスタンス化を行い、インスタンス化したプロセス（プロセスインスタンス）をプロセスインスタンスデータベース２６に登録する（シーケンスＳＱ１５）。
【００６０】
ワークフローエンジン２５は、プロセスインスタンスをプロセスインスタンスデータベース２６に登録すると、例えば、該登録したプロセスインスタンスの内容及び登録した日時等をプロセス実行ログ２８に記録する（シーケンスＳＱ１６）。
【００６１】
続いて、ワークフローアプリケーション２４は、ユーザからの要求に応じて、アクティビティの実行開始通知をワークフローエンジン２５に送信する（シーケンスＳＱ１７）。
【００６２】
アクティビティの実行開始通知を受信したワークフローエンジン２５は、プロセスインスタンスデータベース２６に登録されている対応するプロセスインスタンスフローのステータス（プロセスステータス）を例えば開始、に変更する（シーケンスＳＱ１８）。
【００６３】
ワークフローエンジン２５は、プロセスインスタンスデータベース２６に登録されている対応するプロセスインスタンスフローのステータスを変更すると、例えば該変更したステータスの内容及び変更した日時等をプロセス実行ログに記録する（シーケンスＳＱ１９）。
【００６４】
また、ワークフローアプリケーション２４は、シーケンスＳＱ１７において開始したアクティビティを実行し、該アクティビティの実行が完了すると、アクティビティの実行完了通知をワークフローエンジン２５に送信する（シーケンスＳＱ２０）。
【００６５】
アクティビティの実行完了通知を受信したワークフローエンジン２５は、プロセスインスタンスデータベース２６に登録されている対応するプロセスインスタンスフローのステータス（プロセスステータス）を例えば完了、に変更する（シーケンスＳＱ２１）。
【００６６】
ワークフローエンジン２５は、プロセスインスタンスデータベース２６に登録されている対応するプロセスインスタンスフローのステータスを変更すると、例えば該変更したステータスの内容及び変更した日時等をプロセス実行ログに記録する（シーケンスＳＱ２２）。
【００６７】
図５に示したように、プロセス実行時のアクティビティ毎に実行時間情報等をログとして保存することによって、後述するように、該ログの情報に基づいて、プロセス定義を再構成することができる。
【００６８】
以下、プロセス定義の再構成処理の一例を、図６を用いて説明する。図６は、プロセス定義の再構成処理のシーケンス図（その１）である。
【００６９】
初めに、プロセス定義編集ツール２１は、例えばユーザからの要求に基づいて、プロセスインスタンスフローの取得要求をプロセス定義管理部２２に対して送信する（シーケンスＳＱ３０）。
【００７０】
プロセス定義管理部２２は、プロセスインスタンスフローの取得要求を受信すると、対応するプロセスインスタンスフローの取得要求をプロセスインスタンスデータベース２６に対して行い（シーケンスＳＱ３１）、プロセスインスタンスフローを取得する（シーケンスＳＱ３２）。
【００７１】
また、プロセス定義管理部２２は、ログの取得要求を、プロセス実行ログ２８に対して行い（シーケンスＳＱ３３）、ログを取得する（シーケンスＳＱ３４）。
【００７２】
プロセスインスタンスフローと、ログと、を取得すると、プロセス定義管理部２２は、プロセスインスタンスフローにログを付加して（シーケンスＳＱ３５）、プロセス定義編集ツール２１に送信する（シーケンスＳＱ３６）。
【００７３】
プロセス定義編集ツール２１は、ログが付加されたプロセスインスタンスフローに基づいて、プロセス定義を再構成したり（シーケンスＳＱ３７）、複数のプロセスインスタンスフローに基づいて、プロセス定義を再構成したりする（シーケンスＳＱ３８）。なお、プロセス定義編集ツール２１は、後述するように、ログが付加されたプロセスインスタンスフローと、例えばサーバ１より取得したアクティビティの順序関係の制約条件と、に基づいて、フロー（処理の流れ）を編集し、プロセス定義を再構成するようにしてもよいし、複数のプロセスインスタンスフローと、例えばサーバ１より取得したアクティビティの順序関係の制約条件と、に基づいて、フロー（処理の流れ）を編集し、プロセス定義を再構成するようにしてもよい。なお、シーケンスＳＱ３７及びシーケンスＳＱ３８は、どちらか一方のシーケンスが実行されればよい。
【００７４】
プロセス定義編集ツール２１は、再構成したプロセス定義を含む、該プロセス定義の登録要求をプロセス定義管理部２２に送信する（シーケンスＳＱ３９）。
【００７５】
プロセス定義の登録要求を受信したプロセス定義管理部２２は、再構成されたプロセス定義を、プロセス定義データベース２３に登録する（シーケンスＳＱ４０）。
【００７６】
図６に示したような処理を行うことによって、プロセス定義を再構成して、該再構成したプロセス定義を登録することができる。
【００７７】
なお、以下本実施例では説明の簡略化のため、特に言及しない限り、プロセス定義の再構成は、プロセス定義管理部２２が行うものとして説明する。このことは本発明の実施を制限するものではない。
【００７８】
以下、プロセス定義の再構成の一例を、図７から図１２を用いて説明する。図７は、元となったプロセス定義で定義されているフローの一例を示す図である。
【００７９】
図７の例では、日程調整を行って、出張申請を行い、出張承認を得てから、ホテル予約と、航空機予約と、を並列に行うフローとなっている。
【００８０】
以下、図７に示されるフローに基づいて、実際に実行したプロセスの結果、ログ等を参照してプロセス定義管理部２２等が作成したプロセス実行結果ガントチャートの一例を、図８に示す。図８は、プロセス実行結果ガントチャートを示す図（その１）である。
【００８１】
図８の例では、ホテル予約の開始、終了時刻が、出張承認の開始、終了時刻よりも早くなっている。また、ホテル予約の開始時刻と、航空機予約の開始時刻と、が同時になっている。また、航空機予約の開始時刻が出張承認の開始時刻より早く、また、航空機予約の終了時刻が出張承認の終了時刻より遅くなっている。
【００８２】
以下、図７に示されるような、元となったプロセス定義で定義されているフローに基づいて、例えばプロセス定義管理部２２等が作成したアクティビティ順序関係表の一例を、図９に示す。図９は、元となったフローに基づいて作成されたアクティビティ順序関係表（その１）である。
【００８３】
なお、図中の○は、縦軸のアクティビティが、横軸のアクティビティの後にあることを表している。また、図中の×は、縦軸のアクティビティが、横軸のアクティビティの前にあることを表している。また、図中の△は、縦軸のアクティビティと、横軸のアクティビティと、に順序関係がないことを表している。以下の図においても同様である。
【００８４】
プロセス定義管理部２２は、図７に示されるような、元となったプロセス定義で定義されているフローに基づいて、図９に示されるようなアクティビティの順序関係表を作成することができる。
【００８５】
以下、図８に示されるプロセス実行結果のガントチャートに基づいて、例えばプロセス定義管理部２２等が作成したアクティビティ順序関係表の一例を、図１０に示す。図１０は、プロセス実行結果ガントチャートに基づいて作成されたアクティビティ順序関係表（その１）である。
【００８６】
図１０のアクティビティ順序関係表と、図９のアクティビティ順序関係表と、を比較すると、出張承認と、ホテル予約と、の関係及び出張承認と、航空機予約と、の関係が変化していることがわかる。
【００８７】
プロセス定義管理部２２は、図８に示されるような、プロセス実行結果のガントチャートに基づいて、図１０に示されるようなアクティビティの順序関係表を作成することができる。
【００８８】
以下、図９及び図１０、２つのアクティビティ順序関係表に基づいて、例えばプロセス定義管理部２２が作成したアクティビティ順序関係表を、図１１に示す。図１１は、図９及び図１０、２つのアクティビティ順序関係表に基づいて作成されたアクティビティ順序関係表である。
【００８９】
プロセス定義管理部２２は、図１１に示されるように、元となったプロセス定義で定義されているフローに基づいて作成した図９に示したアクティビティ順序関係表と、プロセス実行結果のガントチャートに基づいて作成した図１０に示したアクティビティ順序関係表と、を比較して、変化しているデータは、依存関係無しの状態（△）に変える。
【００９０】
プロセス定義管理部２２は、作成した図１１に示されるようなアクティビティ順序関係表に基づいて、順序関係がないアクティビティはＡＮＤ分岐又はＡＮＤ結合でまとめ、順序関係があるアクティビティは通常のトランジションで繋ぐことによって、フローを再構成する。
【００９１】
以下、再構成されたフローの一例を、図１２に示す。図１２は、再構成されたフローを示す図（その１）である。
【００９２】
例えばプロセス定義管理部２２は、図１２に示されるような再構成したフローを、再構成したプロセス定義として、プロセス定義データベース２３に登録する。
【００９３】
以下、アクティビティの順序関係制約条件を加味したプロセス定義の再構成の一例を、図１３から図１７を用いて説明する。図１３は、プロセス実行結果ガントチャートを示す図（その２）である。
【００９４】
図１３は、図７に示したフローに基づいて、実際に実行したプロセスの結果、ログ等を参照してプロセス定義管理部２２等が作成したプロセス実行結果ガントチャートの他の例である。
【００９５】
以下、図７に示されるような、元となったプロセス定義で定義されているフローに基づいて、例えばプロセス定義管理部２２等が作成したアクティビティ順序関係表の他の例を、図１４に示す。図１４は、元となったフローに基づいて作成されたアクティビティ順序関係表（その２）である。
【００９６】
図１４は、図９に示したアクティビティ順序関係表に比べて、プロセス定義にアクティビティの順序関係の制約条件が定義されている部分が斜線で表示されている。なお、図１４においては、説明の簡略化のため、又はユーザに対する表示上、プロセス定義にアクティビティの順序関係の制約条件が定義されている部分を斜線で表しているが、実際は対応するデータの部分に、○や△や×などの値と共にアクティビティの順序関係の制約条件があることを表すフラグ等が付加されているものとする。以下においても同様である。
【００９７】
プロセス定義管理部２２は、図７に示されるような、元となったプロセス定義で定義されているフローと、アクティビティ順序関係制約条件と、に基づいて、図１４に示されるようなアクティビティの順序関係表を作成することができる。
【００９８】
なお、ここで、アクティビティ順序関係制約条件は、例えばプロセス定義管理部２２等が、複数のプロセス定義を比較等することにより抽出する。
【００９９】
以下、図１３に示されるプロセス実行結果のガントチャートに基づいて、例えばプロセス定義管理部２２等が作成したアクティビティ順序関係表の一例を、図１５に示す。図１５は、プロセス実行結果ガントチャートに基づいて作成されたアクティビティ順序関係表（その２）である。
【０１００】
図１５のアクティビティ順序関係表と、図１４のアクティビティ順序関係表と、を比較すると、日程調整と、出張申請と、の関係、ホテル予約と、日程調整と、の関係、日程調整と、航空機予約と、の関係、出張申請と、ホテル予約と、の関係、出張申請と、航空機予約と、の関係、出張承認と、ホテル予約と、の関係、出張承認と、航空機予約と、の関係が変化していることがわかる。
【０１０１】
プロセス定義管理部２２は、図１３に示されるような、プロセス実行結果のガントチャートに基づいて、図１５に示されるようなアクティビティの順序関係表を作成することができる。
【０１０２】
以下、図１４及び図１５、２つのアクティビティ順序関係表に基づいて、例えばプロセス定義管理部２２が作成したアクティビティ順序関係表を、図１６に示す。図１６は、図１４及び図１５、２つのアクティビティ順序関係表に基づいて作成されたアクティビティ順序関係表である。
【０１０３】
プロセス定義管理部２２は、図１６に示されるように、元となったプロセス定義で定義されているフローに基づいて作成した図１４に示したアクティビティ順序関係表と、プロセス実行結果のガントチャートに基づいて作成した図１５に示したアクティビティ順序関係表と、を比較して、変化しているデータは、依存関係無しの状態（△）に変える。但し、プロセス定義管理部２２は、アクティビティ順序関係制約条件が規定されているアクティビティの関係は、元となったプロセス定義で定義されているフローのアクティビティの順序関係を保持する。
【０１０４】
プロセス定義管理部２２は、作成した図１６に示されるようなアクティビティ順序関係表に基づいて、順序関係がないアクティビティはＡＮＤ分岐又はＡＮＤ結合でまとめる。但し、プロセス定義管理部２２は、間接的な依存関係が存在する場合は、順序関係があるものとして扱う。プロセス定義管理部２２は、順序関係があるアクティビティは通常のトランジションで繋ぐことによって、フローを再構成する。
【０１０５】
以下、再構成されたフローの一例を、図１７に示す。図１７は、再構成されたフローを示す図（その２）である。
【０１０６】
例えばプロセス定義管理部２２は、図１７に示されるような再構成したフローを、再構成したプロセス定義として、プロセス定義データベース２３に登録する。
【０１０７】
以下、複数のプロセス定義の合成の一例を、図１８から図２３を用いて説明する。図１８は、プロセス定義に定義されているフローの一例を示す図である。
【０１０８】
図１８の例では、日程調整を行って、出張申請を行い、出張承認を得てから、ホテル予約と、航空機予約と、を並列に行うフローとなっている。
【０１０９】
以下、図１８に示されるフローに基づいて、例えばプロセス定義管理部２２等が作成したアクティビティ関係制約表の一例を、図１９に示す。図１９は、図１８に示されるフローに基づいて作成されたアクティビティ関係制約表である。
【０１１０】
なお、図１９では、後述する図２１のアクティビティ関係制約表との比較を容易にするため、レンタカー予約の項目が付加されている。
【０１１１】
以下、プロセス定義に定義されているフローの他の例を、図２０を用いて説明する。図２０は、プロセス定義に定義されているフローの他の例を示す図である。
【０１１２】
図２０の例では、日程調整を行って、出張申請を行ってから、ホテル予約と、航空機予約と、レンタカー予約と、を並列に行った後、出張承認を行うフローとなっている。
【０１１３】
以下、図２０に示されるフローに基づいて、例えばプロセス定義管理部２２等が作成したアクティビティ関係制約表の一例を、図２１に示す。図２１は、図２０に示されるフローに基づいて作成されたアクティビティ関係制約表である。
【０１１４】
また、図１９及び図２１、２つのアクティビティ順序関係表に基づいて、例えばプロセス定義管理部２２が作成したアクティビティ順序関係表を、図２２に示す。図２２は、図１９及び図２１、２つのアクティビティ順序関係表に基づいて作成されたアクティビティ順序関係表である。
【０１１５】
プロセス定義管理部２２は、図２２に示されるように、あるプロセス定義で定義されているフローに基づいて作成した図１９に示したアクティビティ順序関係表と、他のプロセス定義で定義されているフローに基づいて作成した図２１に示したアクティビティ順序関係表と、を比較して、順序関係が異なるデータは、全て依存関係無しの状態（△）とする。
【０１１６】
また、プロセス定義管理部２２は、フローによってアクティビティの構成が異なる場合は、存在するアクティビティ間の関係だけを用いて表を作成する。
【０１１７】
プロセス定義管理部２２は、作成した図２２に示されるようなアクティビティ順序関係表に基づいて、順序関係がないアクティビティはＡＮＤ分岐又はＡＮＤ結合でまとめ、順序関係があるアクティビティは通常のトランジションで繋ぐことによって、フローを再構成する。
【０１１８】
以下、再構成されたフローの一例を、図２３に示す。図２３は、再構成されたフローを示す図（その３）である。
【０１１９】
例えばプロセス定義管理部２２は、図２３に示されるような再構成したフローを、再構成したプロセス定義として、プロセス定義データベース２３に登録する。
【０１２０】
以下、プロセス定義編集ツール２１におけるＧＵＩの一例を、図２４を用いて説明する。
【０１２１】
図２４は、プロセス定義編集ツールにおけるＧＵＩの一例を示す図である。
【０１２２】
図２４に示されるように、ユーザが、プロセス定義編集ツール２１を用いて、「編集」の「合成」を選択することによって、プロセス定義管理部２２が、図１８から図２３を用いて説明したような処理を行って、プロセス定義を合成するようにしても良いし、プロセス定義編集ツール２１が、図１８から図２３を用いて説明したような処理を行って、プロセス定義を合成するようにしても良い。
【実施例２】
【０１２３】
上述した実施例１では、元となったフローや、プロセス実行結果ガントチャート等、アクティビティ同士の順序の関係の制約からアクティビティ順序関係表を作成する例を示したが、以下では、他の依存関係（例えば、プロセス又はアクティビティの成果物と、アクティビティと、の依存関係）等に基づいてアクティビティ順序関係表を作成する例等を示す。なお、実施例２では、実施例１とは異なる点について説明を行う。
【０１２４】
以下、サーバ１及びクライアント３に実装されるソフトウェア構成の他の例を、図２５を用いて説明する。図２５は、ソフトウェア構成を示す図（その２）である。
【０１２５】
図２５に示されるソフトウェア構成は、プロセス定義編集ツール２１と、ワークフローアプリケーション２４と、プロセス実行時編集ツール２７と、プロセス定義管理部２２と、ワークフローエンジン２５と、プロセス定義データベース２３と、プロセスインスタンスデータベース２６と、プロセス実行ログ２８と、制約条件データベース２９と、を含む。
【０１２６】
プロセス定義編集ツール２１は、プロセスの定義を行うツールであり、ユーザからのプロセスの定義又はプロセス定義の編集の要求に基づいて、制約条件データベース２９に格納されている制約条件を参照し、ユーザに対して定義又は編集の支援を行ったり、プロセス定義管理部２２を介して、編集した又は新たに作成したプロセス定義をプロセス定義データベース２３に登録したり、プロセス定義管理部２２を介して、プロセス定義データベース２３からプロセス定義を取得したりする。なお、ユーザとは、例えばワークフローの参加者等のことをいう。また、図２５においては、プロセス定義編集ツール２１が、直接制約条件データベース２９に格納されている制約条件を参照するように示してあるが、例えば、プロセス定義管理部２２を介して、制約条件データベース２９に格納されている制約条件を参照するようにしてもよい。以下においても同様である。
【０１２７】
ワークフローエンジン２５は、ワークフローアプリケーション２４等からの要求に応じて、例えばアクティビティ又はプロセスの結果としての成果物を制約条件データベース２９の成果物管理表４１に登録する。
【０１２８】
プロセス実行時編集ツール２７は、プロセスの編集を行うツールであり、ワークフローエンジン２５を介して、プロセスインスタンスデータベース２６よりプロセスインスタンスフローを取得したり、ユーザからのプロセスインスタンスフロー（又はプロセス）の編集の要求に基づいて、制約条件データベース２９に格納されている制約条件を参照し、ユーザに対して編集の支援を行ったり、ユーザが行った編集を反映させたプロセスインスタンスフロー（又はプロセス）を、ワークフローエンジン２５を介してプロセスインスタンスデータベース２６に格納し、プロセスインスタンスフロー（又はプロセス）を更新したりする。なお、図２５においては、プロセス実行時編集ツール２７が、直接制約条件データベース２９に格納されている制約条件を参照するように示してあるが、例えば、ワークフローエンジン２５を介して、直接制約条件データベース２９に格納されている制約条件を参照するようにしてもよい。以下においても同様である。
【０１２９】
制約条件データベース２９は、制約条件を格納するデータベースであり、アクティビティ又はプロセスの結果としての成果物を管理する成果物管理表と４１、アクティビティ同士の関連性を保持するアクティビティ関連表４２と、アクティビティとアクティビティ又はプロセスの結果としての成果物との関連性を保持するアクティビティ成果物関連表４３と、アクティビティ又はプロセスの結果としての成果物同士の関連性を保持する成果物関連表４４と、を含む。なお、制約条件データベース２９は、実施例１に示したアクティビティ順序関係表も、更に含むようにしてもよい。
【０１３０】
以下、制約条件データベース２９に格納されている成果物関連表４４の一例を、図２６に示す。図２６は、成果物関連表を示す図（その１）である。
【０１３１】
図２６（Ａ）は、成果物同士の関連性を包含関係で表した一例である。また、図２６（Ｂ）は成果物同士の関連性を依存関係で表した一例である。
【０１３２】
以下、制約条件データベース２９に格納されているアクティビティ成果物関連表４３の一例を、図２７に示す。図２７は、アクティビティ成果物関連表を示す図（その１）である。
【０１３３】
図２７（Ａ）は、アクティビティと成果物との関連性を包含関係で表し一例である。また、図２７（Ｂ）は、アクティビティと成果物との関連性を依存関係で表した一例である。
【０１３４】
以下、制約条件データベース２９に格納されているアクティビティ関連表４２の一例を、図２８に示す。図２８は、アクティビティ関連表を示す図（その１）である。
【０１３５】
図２８に示されるように、アクティビティ関連表４２には、アクティビティの順序関係（例えば、先行、後続等）や、開始条件（例えば、パラメータと条件等）が含まれている。
【０１３６】
以下、プロセス定義の再構成処理の他の例を、図２９を用いて説明する。図２９は、プロセス定義の再構成処理のシーケンス図（その２）である。
【０１３７】
初めに、プロセス定義編集ツール２１は、例えばユーザからの要求に基づいて、プロセスインスタンスフローの取得要求をプロセス定義管理部２２に対して送信する（シーケンスＳＱ５０）。
【０１３８】
プロセス定義管理部２２は、プロセスインスタンスフローの取得要求を受信すると、対応するプロセスインスタンスフローの取得要求をプロセスインスタンスデータベース２６に対して行い（シーケンスＳＱ５１）、プロセスインスタンスフローを取得する（シーケンスＳＱ５２）。
【０１３９】
また、プロセス定義管理部２２は、ログの取得要求を、プロセス実行ログ２８に対して行い（シーケンスＳＱ５３）、ログを取得する（シーケンスＳＱ５４）。
【０１４０】
プロセスインスタンスフローと、ログと、を取得すると、プロセス定義管理部２２は、プロセスインスタンスフローにログを付加して（シーケンスＳＱ５５）、プロセス定義編集ツール２１に送信する（シーケンスＳＱ５６）。
【０１４１】
プロセス定義編集ツール２１は、ログが付加されたプロセスインスタンスフローに基づいて、プロセス定義を再構成したり（シーケンスＳＱ５７）、複数のプロセスインスタンスフローに基づいて、プロセス定義を再構成したりする（シーケンスＳＱ５８）。なお、シーケンスＳＱ５７及びシーケンスＳＱ５８は、どちらか一方のシーケンスが実行されればよい。
【０１４２】
プロセス定義編集ツール２１は、再構成されたプロセス定義の内容（例えば、再構成されたプロセス定義に含まれるアクティビティ）等に基づいて、制約条件データベース２９に格納されている制約条件を参照する（シーケンスＳＱ５９、シーケンスＳＱ６０）。なお、参照とは、例えば、再構成されたプロセス定義の内容等に基づいて、制約条件データベース２９に格納されている制約条件を検索し、検索結果を取得することである。
【０１４３】
プロセス定義編集ツール２１は、参照した結果に基づいて、再構成されたプロセス定義の内容のチェックを行い（シーケンスＳＱ６１）、チェックの結果、例えば再構成されたプロセス定義の内容（例えば、アクティビティの順序）が、制約条件に反している場合、該制約条件に基づいて、プロセス定義を再構成（又は修正）する。（シーケンスＳＱ６２）。
【０１４４】
プロセス定義編集ツール２１は、再構成したプロセス定義を含む、該プロセス定義の登録要求をプロセス定義管理部２２に送信する（シーケンスＳＱ６３）。
【０１４５】
プロセス定義の登録要求を受信したプロセス定義管理部２２は、再構成されたプロセス定義を、プロセス定義データベース２３に登録する（シーケンスＳＱ６４）。
【０１４６】
図２９に示したような処理を行うことによって、制約条件を加味し、プロセス定義を再構成して、該再構成したプロセス定義を登録することができる。また、図２９に示したような処理を行うことによって、制約条件に反したプロセス定義の再構成を防止することができる。なお、図２９では、プロセス定義編集ツール２１が、プロセス定義を再構成したり、制約条件を参照し、再構成した内容等のチェックを行ったりする例を示したが、これらの処理は、プロセス定義編集ツール２１より要求を受け取ったプロセス定義管理部２２が行うようにしてもよい。以下では説明の簡略化のため、特に言及しない限り、プロセス定義の再構成、制約条件の参照、再構成した内容のチェック等の処理は、プロセス定義管理部２２が行うものとして説明する。なお、このことは本発明の実施を制限するものではない。
【０１４７】
以下、アクティビティ同士の関連性に基づくプロセス定義再構成処理の一例を、図３０を用いて説明する。図３０は、アクティビティ同士の関連性に基づくプロセス定義再構成処理の一例を説明するためのフローチャートである。
【０１４８】
ステップＳ３０においてプロセス定義管理部２２は、例えばログ等に基づいて、プロセス定義にアクティビティを追加する等してプロセス定義を再構成する。なお、ステップＳ３０の処理は、例えば図２９のシーケンスＳＱ５７に対応する。
【０１４９】
ステップＳ３０に続いてステップＳ３１に進み、プロセス定義管理部２２は、ステップＳ３０においてプロセス定義に追加したアクティビティに関連する他のアクティビティを、制約条件データベース２９より検索する。なお、ステップＳ３１の処理は、例えば図２９のシーケンスＳＱ５９及びシーケンスＳＱ６０に対応する。
【０１５０】
ステップＳ３１に続いてステップＳ３２に進み、プロセス定義管理部２２は、ステップＳ３１において検索した検索結果に基づいて、ステップＳ３０においてプロセス定義に追加したアクティビティに関連して、プロセス定義に追加すべきアクティビティが存在するか否かを判定する。なお、ステップＳ３２の処理は、例えば図２９のシーケンスＳＱ６１に対応する。
【０１５１】
プロセス定義管理部２２は、プロセス定義に追加すべきアクティビティが存在すると判定すると（ステップＳ３２においてＹＥＳ）、ステップＳ３３に進み、プロセス定義に追加すべきアクティビティが存在しないと判定すると（ステップＳ３２においてＮＯ）、処理を終了する。
【０１５２】
ステップＳ３３においては、プロセス定義管理部２２が、ステップＳ３０においてプロセス定義に追加したアクティビティに関連するアクティビティをプロセス定義に追加し、プロセス定義を再構成して、ステップＳ３１に戻る。なお、ステップＳ３３の処理は、例えば図２９のシーケンスＳＱ６２に対応する。
【０１５３】
以下、例えばプロセス定義管理部２２等が、成果物関連表４４及びアクティビティ成果物関連表４３から、アクティビティ関連表４２を作成する例を示す。図３１は、成果物関連表を示す図（その２）である。また、図３２は、アクティビティ成果物関連表を示す図（その２）である。
【０１５４】
例えば、図３１及び図３２に示されるような成果物関連表４４及びアクティビティ成果物関連表４３がサーバ１に定義されている場合を考える。なお、図３１では、成果物同士の関連性を包含関係で表している。また、図３２では、アクティビティと成果物との関連性を包含関係で表している。
【０１５５】
例えばプロセス定義管理部２２は、成果物「航空券」に基づき、図３１に示されるような成果物関連表４４を検索し、成果物「航空券」は、成果物「出張許可書」と依存関係がある旨の情報を取得する。次に、プロセス定義管理部２２は、例えば成果物「航空券」に基づき、図３２に示されるようなアクティビティ成果物関連表４３を検索し、成果物「航空券」は、アクティビティ「航空機予約」と依存関係がある旨の情報を取得し、同様に、成果物「出張許可書」に基づき、図３２に示されるようなアクティビティ成果物関連表４３を検索し、成果物「出張許可書」は、アクティビティ「出張承認」と依存関係がある旨の情報を取得する。
【０１５６】
プロセス定義管理部２２は、取得した情報に基づいて、「出張承認」→「航空機予約」というアクティビティの順序関係を生成し、図３３に示されるようなアクティビティ関連表４２を作成する。図３３は、アクティビティ関連表を示す図（その２）である。このように、例えばプロセス定義管理部２２は、成果物関連表４４と、アクティビティ成果物関連表４３と、に基づいて、アクティビティ関連表４２を作成することができる。
【０１５７】
なお、ある成果物に複数のアクティビティが関連している場合、成果物関連表４４又はアクティビティ成果物関連表４３の方が、アクティビティ関連表４２よりも、その関連性をシンプルに記述できる場合もある。
【０１５８】
以下、実施例１の図２２に示したアクティビティ順序関係表と、図３３のアクティビティ関連表４２と、に基づいて、例えばプロセス定義管理部２２が作成したアクティビティ順序関係表を、図３４に示す。図３４は、図２２のアクティビティ順序関係表と、図３３のアクティビティ関連表と、に基づいて作成されたアクティビティ順序関係表である。
【０１５９】
プロセス定義管理部２２は、図２２に示したアクティビティ順序関係表と、図３３に示したアクティビティ関連表４２と、に基づいて、図３４に示されるようなアクティビティ順序関係表を作成する。つまり、プロセス定義管理部２２は、まず、図３３に示したアクティビティ関連表４２が意味するアクティビティ「出張承認」→アクティビティ「航空機予約」というアクティビティ同士の依存関係の情報に基づいて、図２２のアクティビティ順序関係表を修正する（図３４の反転表示参照。）。一方、プロセス定義管理部２２は、図２２に示したアクティビティ順序関係表を作成する際に、アクティビティ「レンタカー予約」→アクティビティ「出張承認」という順序関係がある旨の情報と、アクティビティ「レンタカー予約」と、アクティビティ「航空機予約」と、には順序関係がない旨の情報と、を得たが、図３３に示されるように、アクティビティ関連表４２からは、アクティビティ「レンタカー予約」と、アクティビティ「出張承認」と、には、依存関係が定義されていない旨の情報を得ることができるため、アクティビティ「レンタカー予約」と、アクティビティ「出張承認」と、には、依存関係がないとし、図２２のアクティビティ順序関係表を修正して、図３４に示されるようなアクティビティ順序関係表を作成する。
【０１６０】
プロセス定義管理部２２は、作成した図３４に示されるようなアクティビティ順序関係表に基づいて、順序関係がないアクティビティはＡＮＤ分岐又はＡＮＤ結合でまとめ、順序関係があるアクティビティは通常のトランジションで繋ぐことによって、フローを再構成する。
【０１６１】
以下、再構成されたフローの一例を、図３５に示す。図３５は、再構成されたフローを示す図（その４）である。
【０１６２】
例えばプロセス定義管理部２２は、図３５に示されるような再構成したフローを、再構成したプロセス定義として、プロセス定義データベース２３に登録する。
【０１６３】
図３４及び図３５に示したように、例えばプロセス定義管理部２２は、アクティビティの依存関係を加味して、プロセス定義を再構成することができる。
【０１６４】
上述したように本発明によれば、最適化されたプロセス定義を提供することができる。また、該効果は、例えばプロセスの実行中に該プロセスが編集可能なワークフローシステムにおいて、特に有効となる。何故なら、このようなワークフローシステムにおいては、ワークフローの参加者が実行中のプロセスを編集することが可能なため、例えば同種の仕事に対して、多くのフローが実行結果として存在してしまい、該フロー等を再利用して、プロセスのテンプレートであるプロセス定義を作成することが困難であるからである。
【０１６５】
以上、本発明の好ましい実施例について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【０１６６】
【図１】サーバの一例のハードウェア構成図である。
【図２】クライアントの一例のハードウェア構成図である。
【図３】明細書中で用いる用語を説明するための図である。
【図４】ソフトウェア構成を示す図（その１）である。
【図５】ワークフローに係るプロセスの実行処理の一例のシーケンス図である。
【図６】プロセス定義の再構成処理のシーケンス図（その１）である。
【図７】元となったプロセス定義で定義されているフローの一例を示す図である。
【図８】プロセス実行結果ガントチャートを示す図（その１）である。
【図９】元となったフローに基づいて作成されたアクティビティ順序関係表（その１）である。
【図１０】プロセス実行結果ガントチャートに基づいて作成されたアクティビティ順序関係表（その１）である。
【図１１】図９及び図１０、２つのアクティビティ順序関係表に基づいて作成されたアクティビティ順序関係表である。
【図１２】再構成されたフローを示す図（その１）である。
【図１３】プロセス実行結果ガントチャートを示す図（その２）である。
【図１４】元となったフローに基づいて作成されたアクティビティ順序関係表（その２）である。
【図１５】プロセス実行結果ガントチャートに基づいて作成されたアクティビティ順序関係表（その２）である。
【図１６】図１４及び図１５、２つのアクティビティ順序関係表に基づいて作成されたアクティビティ順序関係表である。
【図１７】再構成されたフローを示す図（その２）である。
【図１８】プロセス定義に定義されているフローの一例を示す図である。
【図１９】図１８に示されるフローに基づいて作成されたアクティビティ関係制約表である。
【図２０】プロセス定義に定義されているフローの他の例を示す図である。
【図２１】図２０に示されるフローに基づいて作成されたアクティビティ関係制約表である。
【図２２】図１９及び図２１、２つのアクティビティ順序関係表に基づいて作成されたアクティビティ順序関係表である。
【図２３】再構成されたフローを示す図（その３）である。
【図２４】プロセス定義編集ツールにおけるＧＵＩの一例を示す図である。
【図２５】ソフトウェア構成を示す図（その２）である。
【図２６】成果物関連表を示す図（その１）である。
【図２７】アクティビティ成果物関連表を示す図（その１）である。
【図２８】アクティビティ関連表を示す図（その１）である。
【図２９】プロセス定義の再構成処理のシーケンス図（その２）である。
【図３０】アクティビティ同士の関連性に基づくプロセス定義再構成処理の一例を説明するためのフローチャートである。
【図３１】成果物関連表を示す図（その２）である。
【図３２】アクティビティ成果物関連表を示す図（その２）である。
【図３３】アクティビティ関連表を示す図（その２）である。
【図３４】図２２のアクティビティ順序関係表と、図３３のアクティビティ関連表と、に基づいて作成されたアクティビティ順序関係表である。
【図３５】再構成されたフローを示す図（その４）である。
【符号の説明】
【０１６７】
１    サーバ
３    クライアント
１１    入力装置
１２    表示装置
１３    ドライブ装置
１４    記録媒体
１５    ＲＯＭ
１６    ＲＡＭ
１７    ＣＰＵ
１８    インターフェース装置
１９    ＨＤＤ
２１    プロセス定義編集ツール
２２    プロセス定義管理部
２３    プロセス定義データベース
２４    ワークフローアプリケーション
２５    ワークフローエンジン
２６    プロセスインスタンスデータベース
２７    プロセス実行時編集ツール
２８    プロセス実行ログ
２９    制約条件データベース
３１    入力装置
３２    表示装置
３３    ドライブ装置
３４    記録媒体
３５    ＲＯＭ
３６    ＲＡＭ
３７    ＣＰＵ
３８    インターフェース装置
３９    ＨＤＤ
４１    成果物管理表
４２    アクティビティ関連表
４３    アクティビティ成果物関連表
４４    成果物関連表
【図１】
0004676784.tif 000002
【図２】
0004676784.tif 000003
【図３】
0004676784.tif 000004
【図４】
0004676784.tif 000005
【図５】
0004676784.tif 000006
【図６】
0004676784.tif 000007
【図７】
0004676784.tif 000008
【図８】
0004676784.tif 000009
【図９】
0004676784.tif 000010
【図１０】
0004676784.tif 000011
【図１１】
0004676784.tif 000012
【図１２】
0004676784.tif 000013
【図１３】
0004676784.tif 000014
【図１４】
0004676784.tif 000015
【図１５】
0004676784.tif 000016
【図１６】
0004676784.tif 000017
【図１７】
0004676784.tif 000018
【図１８】
0004676784.tif 000019
【図１９】
0004676784.tif 000020
【図２０】
0004676784.tif 000021
【図２１】
0004676784.tif 000022
【図２２】
0004676784.tif 000023
【図２３】
0004676784.tif 000024
【図２４】
0004676784.tif 000025
【図２５】
0004676784.tif 000026
【図２６】
0004676784.tif 000027
【図２７】
0004676784.tif 000028
【図２８】
0004676784.tif 000029
【図２９】
0004676784.tif 000030
【図３０】
0004676784.tif 000031
【図３１】
0004676784.tif 000032
【図３２】
0004676784.tif 000033
【図３３】
0004676784.tif 000034
【図３４】
0004676784.tif 000035
【図３５】
0004676784.tif 000036