(57)【要約】      （修正有）【課題】  ワークフローシステムにおいて、実行中のプロセスを編集可能にする。【解決手段】  実行中のプロセスを編集する編集手段２７を有することによって上記課題を解決する。プロセスインスタンスフローと、プロセス定義とを異なる実体として扱い、個別に操作可能としている。従ってプロセスインスタンスフローを変更した場合、該変更は元となったプロセス定義に反映されることはなく、プロセス定義に対する変更も、既にインスタンス化されたプロセスに反映される事は無い。【選択図】  図４
2005259113.tif 000002
【特許請求の範囲】
【請求項１】
実行中のプロセスを編集する編集手段を有することを特徴とするプロセス編集装置。
【請求項２】
前記実行中のプロセスの編集は、該実行中のプロセスを構成する個々の仕事の追加、又は先取り、又は保留であることを特徴とする請求項１記載のプロセス編集装置。
【請求項３】
前記編集手段は、前記実行中のプロセスを、プロセスを管理するプロセス管理装置より取得することを特徴とする請求項１又は２記載のプロセス編集装置。
【請求項４】
前記実行中のプロセスは、プロセスを構成する個々の仕事を含み、該仕事は、進行状況を表す状態情報を含むことを特徴とする請求項１乃至３何れか一項記載のプロセス編集装置。
【請求項５】
前記編集手段は、前記実行中のプロセスを更新する更新要求を、プロセスを管理するプロセス管理装置に送信することを特徴とする請求項１乃至４何れか一項記載のプロセス編集装置。
【請求項６】
前記編集手段は、編集した実行中のプロセスを、プロセスのテンプレートとして登録する登録要求を、プロセスを管理するプロセス管理装置に送信することを特徴とする請求項１乃至５何れか一項記載のプロセス編集装置。
【請求項７】
前記登録に係る画面を表示する登録画面表示手段を更に有することを特徴とする請求項６記載のプロセス編集装置。
【請求項８】
前記実行中のプロセスの編集に係る画面を表示する編集画面表示手段を更に有することを特徴とする請求項１乃至７何れか一項記載のプロセス編集装置。
【請求項９】
プロセスのテンプレートであるプロセス定義と、前記実行中のプロセスと、は異なる実体であり、個別に操作可能であることを特徴とする請求項１乃至８何れか一項記載のプロセス編集装置。
【請求項１０】
プロセスの実行を制御するプロセス実行制御手段を有し、
該プロセス実行制御手段は、要求に応じて、実行中のプロセスを更新することを特徴とするプロセス管理装置。
【請求項１１】
前記実行中のプロセスの更新は、該実行中のプロセスを構成する個々の仕事の追加、又は先取り、又は保留であることを特徴とする請求項１０記載のプロセス管理装置。
【請求項１２】
前記プロセス実行制御手段は、要求に応じて、実行中のプロセスを更新する際、要求元に該実行中のプロセスを更新する権限があるか否かを権限データに基づき判定することを特徴とする請求項１０又は１１記載のプロセス管理装置。
【請求項１３】
前記権限は、実行中のプロセスを構成する個々の仕事の追加権限、又は先取り権限、又は保留権限であることを特徴とする請求項１２記載のプロセス管理装置。
【請求項１４】
前記権限データを格納する権限データ格納手段を更に有することを特徴とする請求項１２又は１３記載のプロセス管理装置。
【請求項１５】
前記プロセス実行制御手段は、要求に応じて、実行中のプロセスを格納する実行中プロセス格納手段より、対応する実行中のプロセスを抽出することを特徴とする請求項１０乃至１４何れか一項記載のプロセス管理装置。
【請求項１６】
前記実行中のプロセスは、プロセスを構成する個々の仕事を含み、該仕事は、進行状況を表す状態情報を含むことを特徴とする請求項１０乃至１５何れか一項記載のプロセス管理装置。
【請求項１７】
前記プロセス実行制御手段は、前記実行中プロセス格納手段より抽出した実行中のプロセスを、実行中のプロセスを編集するプロセス編集装置に送信することを特徴とする請求項１５又は１６記載のプロセス管理装置。
【請求項１８】
前記実行中プロセス格納手段を有することを特徴とする請求項１５乃至１７何れか一項記載のプロセス管理装置。
【請求項１９】
プロセスのテンプレートを管理するプロセステンプレート管理手段を更に有し、
該プロセステンプレート管理手段は、要求に応じて、編集された実行中のプロセスをプロセスのテンプレートとして登録することを特徴とする請求項１０乃至１８何れか一項記載のプロセス管理装置。
【請求項２０】
プロセスのテンプレートであるプロセス定義と、前記実行中のプロセスと、は異なる実体であり、個別に操作可能であることを特徴とする請求項１０乃至１９何れか一項記載のプロセス管理装置。
【請求項２１】
コンピュータに、
実行中のプロセスを編集する編集手順を実行させることを特徴とするプロセス編集プログラム。
【請求項２２】
前記実行中のプロセスの編集は、該実行中のプロセスを構成する個々の仕事の追加、又は先取り、又は保留であることを特徴とする請求項２１記載のプロセス編集プログラム。
【請求項２３】
前記実行中のプロセスを、プロセスを管理するプロセス管理装置より取得する取得手順を更に有することを特徴とする請求項２１又は２２記載のプロセス編集プログラム。
【請求項２４】
前記実行中のプロセスは、プロセスを構成する個々の仕事を含み、該仕事は、進行状況を表す状態情報を含むことを特徴とする請求項２１乃至２３何れか一項記載のプロセス編集プログラム。
【請求項２５】
前記実行中のプロセスを更新する更新要求を、プロセスを管理するプロセス管理装置に送信する更新要求送信手順を更に有することを特徴とする請求項２１乃至２４何れか一項記載のプロセス編集プログラム。
【請求項２６】
編集した実行中のプロセスを、プロセスのテンプレートとして登録する登録要求を、プロセスを管理するプロセス管理装置に送信する登録要求送信手順を更に有することを特徴とする請求項２１乃至２５何れか一項記載のプロセス編集プログラム。
【請求項２７】
前記登録に係る画面を表示する登録画面表示手順を更に有することを特徴とする請求項２６記載のプロセス編集プログラム。
【請求項２８】
前記実行中のプロセスの編集に係る画面を表示する編集画面表示手順を更に有することを特徴とする請求項２１乃至２７何れか一項記載のプロセス編集プログラム。
【請求項２９】
コンピュータに、
要求に応じて、実行中のプロセスを更新するプロセス更新手順を実行させることを特徴とするプロセス管理プログラム。
【請求項３０】
前記実行中のプロセスの更新は、該実行中のプロセスを構成する個々の仕事の追加、又は先取り、又は保留であることを特徴とする請求項２９記載のプロセス管理プログラム。
【請求項３１】
要求に応じて、実行中のプロセスを更新する際、要求元に該実行中のプロセスを更新する権限があるか否かを権限データに基づき判定する判定手順を更に有することを特徴とする請求項２９又は３０記載のプロセス管理プログラム。
【請求項３２】
前記権限は、実行中のプロセスを構成する個々の仕事の追加権限、又は先取り権限、又は保留権限であることを特徴とする請求項３１記載のプロセス管理プログラム。
【請求項３３】
要求に応じて、実行中のプロセスを格納する実行中プロセス格納手段より、対応する実行中のプロセスを抽出するプロセス抽出手順を更に有することを特徴とする請求項２９乃至３２何れか一項記載のプロセス管理プログラム。
【請求項３４】
前記実行中のプロセスは、プロセスを構成する個々の仕事を含み、該仕事は、進行状況を表す状態情報を含むことを特徴とする請求項２９乃至３３何れか一項記載のプロセス管理プログラム。
【請求項３５】
前記プロセス抽出手順において抽出した実行中のプロセスを、実行中のプロセスを編集するプロセス編集装置に送信するプロセス送信手順を更に有することを特徴とする請求項３３又は３４記載のプロセス管理プログラム。
【請求項３６】
要求に応じて、編集された実行中のプロセスをプロセスのテンプレートとして登録する登録手順を更に有することを特徴とする請求項２９乃至３５何れか一項記載のプロセス管理プログラム。
【請求項３７】
請求項２１乃至２８何れか一項記載のプロセス編集プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項３８】
請求項２９乃至３６何れか一項記載のプロセス管理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項３９】
実行中のプロセスを編集する編集段階を有することを特徴とするプロセス編集方法。
【請求項４０】
要求に応じて、実行中のプロセスを更新するプロセス更新段階を有することを特徴とするプロセス管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセス編集装置、プロセス管理装置、プロセス編集プログラム、プロセス管理プログラム、記録媒体、プロセス編集方法及びプロセス管理方法に関する。
【背景技術】
【０００２】
近年、複数の担当者がネットワークを経由して仕事をする際に、該仕事を円滑に進めるため、担当者間で受け渡すドキュメントや情報の流れを管理し、自動化するワークフローシステムが知られている（例えば、非特許文献１〜３参照。）。
【非特許文献１】速水治夫、「ここまできたワークフロー管理システム（１）」情報処理学会誌、Ｖｏｌ．３９、ＮＯ．１１、ｐ１１６０−ｐ１１６５（１９９８）
【非特許文献２】速水治夫、阪口俊昭、渋谷亮一、「ここまできたワークフロー管理システム（２）」情報処理学会誌、Ｖｏｌ．３９、ＮＯ．１２、ｐ１２５８−ｐ１２６３（１９９８）
【非特許文献３】速水治夫、渋谷亮一、鈴木登雄、生駒順一、寺下陽介、植野直樹、金子聡、林潔、「ここまできたワークフロー管理システム（３）」情報処理学会誌  Ｖｏｌ．４０、ＮＯ．５、ｐ５０７−ｐ５１３（１９９９）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、従来のワークフローシステムにおいては、実行中のプロセスを編集することはできない問題があった。
【０００４】
本発明は、上記の点に鑑みなされたもので、実行中のプロセスを編集することを目的とする。
【課題を解決するための手段】
【０００５】
そこで、上記問題を解決するため、本発明のプロセス編集装置は、実行中のプロセスを編集する編集手段を有することを特徴とする。
【０００６】
本発明によれば、実行中のプロセスを編集する編集手段を有することにより、実行中のプロセスを編集することができる。
【０００７】
また、本発明のプロセス管理装置は、プロセスの実行を制御するプロセス実行制御手段を有し、該プロセス実行制御手段は、要求に応じて、実行中のプロセスを更新することを特徴とする。
【０００８】
本発明によれば、プロセスの実行を制御するプロセス実行制御手段を有し、該プロセス実行制御手段は、要求に応じて、実行中のプロセスを更新することにより、実行中のプロセスを更新することができる。
【０００９】
また、上記課題を解決するための手段として、プロセス編集プログラム、プロセス管理プログラム、記録媒体、プロセス編集方法及びプロセス管理方法としてもよい。
【発明の効果】
【００１０】
本発明によれば、実行中のプロセスを編集することができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施の形態について図面に基づいて説明する。
【実施例１】
【００１２】
初めに、サーバ１のハードウェア構成の一例を、図１を用いて説明する。図１は、サーバの一例のハードウェア構成図である。
【００１３】
図１に示されるサーバ１のハードウェア構成は、それぞれバスで相互に接続されている入力装置１１と、表示装置１２と、ドライブ装置１３と、記録媒体１４と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１５と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１６と、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１７と、インターフェース装置１８と、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１９と、から構成されている。
【００１４】
入力装置１１は、サーバ１の利用者が操作するキーボード及びマウス等で構成され、サーバ１に各種操作信号を入力するのに用いられる。表示装置１２は、サーバ１の利用者が利用するディスプレイ等で構成され、各種情報を表示する。インターフェース装置１８は、サーバ１をネットワーク等に接続するインターフェースである。
【００１５】
後述する、ソフトウェアに対応するプログラム、例えばプロセス定義管理部２２、プロセス定義データベース２３、ワークフローエンジン２５、プロセスインスタンスデータベース２６等は、例えばＣＤ−ＲＯＭ等の記録媒体１４によってサーバ１に提供されるか、ネットワークを通じてダウンロードされる。記録媒体１４は、ドライブ装置１３にセットされ、プログラムが記録媒体１４からドライブ装置１３を介してＨＤＤ１９にインストールされる。
【００１６】
ＲＯＭ１５は、データ等を格納する。ＲＡＭ１６は、サーバ１の起動時にＨＤＤ１９からプログラム等を読み出して格納する。ＣＰＵ１７は、ＲＡＭ１６に読み出され格納されたプログラム等に従って処理を実行する。
【００１７】
以下、クライアント３のハードウェア構成の一例を、図２を用いて説明する。図２は、クライアントの一例のハードウェア構成図である。
【００１８】
図２に示されるクライアント３のハードウェア構成は、それぞれバスで相互に接続されている入力装置３１と、表示装置３２と、ドライブ装置３３と、記録媒体３４と、ＲＯＭ３５と、ＲＡＭ３６と、ＣＰＵ３７と、インターフェース装置３８と、ＨＤＤ３９と、から構成されている。
【００１９】
入力装置３１は、クライアント３の利用者が操作するキーボード及びマウス等で構成され、クライアント３に各種操作信号を入力するのに用いられる。表示装置３２は、クライアント３の利用者が利用するディスプレイ等で構成され、各種情報を表示する。インターフェース装置３８は、クライアント３をネットワーク等に接続するインターフェースである。
【００２０】
後述する、ソフトウェアに対応するプログラム、例えばプロセス定義ツール２１、プロセス実行時編集ツール２７、ワークフローアプリケーション２４等は、例えばＣＤ−ＲＯＭ等の記録媒体３４によってクライアント３に提供されるか、ネットワークを通じてダウンロードされる。記録媒体３４は、ドライブ装置３３にセットされ、プログラムが記録媒体３４からドライブ装置３３を介してＨＤＤ３９にインストールされる。
【００２１】
ＲＯＭ３５は、データ等を格納する。ＲＡＭ３６は、クライアント３の起動時にＨＤＤ３９からプログラム等を読み出して格納する。ＣＰＵ３７は、ＲＡＭ３６に読み出され格納されたプログラム等に従って処理を実行する。
【００２２】
以下、本明細書中で用いる用語を、図３を用いて説明する。図３は、明細書中で用いる用語を説明するための図である。
【００２３】
本明細書中では、プロセスとは、ある仕事を遂行するための処理の流れのことである。また、アクティビティとは、プロセスを構成する個々の仕事である。アクティビティは、開始、終了、待機等の状態を持っており、該状態の推移によって、例えば後述するソフトウェア等から成るワークフローシステム（以下、単にワークフローシステムともいう）は、プロセスの進行状況を表現する。また、トランジションは、アクティビティと、アクティビティと、の処理の順序を規定するものである。なお、トランジションも状態を持っており、該状態によって、ワークフローシステムは、接続するアクティビティの状態遷移条件を決定する。
【００２４】
また、フローは、アクティビティと、トランジションと、で表現した処理の流れ図である。また、プロセス定義は、プロセスのテンプレートであり、実行前のプロセスのフローを定義する。また、プロセスインスタンスフローは、実行中のプロセスのフローである。
【００２５】
ここで、プロセスインスタンスは、プロセス定義を実体化したものであり、実際の仕事のコンテンツを含んでいる。上述したプロセスインスタンスフローは、プロセスインスタンスのフロー定義であり、通常は、元になったプロセス定義と同じものである。
【００２６】
しかしながら、後述するように、本ワークフローシステムにおいては、プロセスインスタンスフローと、プロセス定義と、を異なる実体として扱い、個別に操作可能となっている。したがって、本ワークフローシステムにおいて、プロセスインスタンスフローを変更した場合、該変更は、元となったプロセス定義に反映されることはなく、また、プロセス定義に対する変更も、既にインスタンス化されたプロセスに反映されることはない。
【００２７】
以下、サーバ１及びクライアント３に実装されるソフトウェア構成の一例を、図４を用いて説明する。図４は、ソフトウェア構成図（その１）である。
【００２８】
図４に示されるソフトウェア構成は、プロセス定義ツール２１と、プロセス定義管理部２２と、プロセス定義データベース２３と、ワークフローアプリケーション２４と、ワークフローエンジン２５と、プロセスインスタンスデータベース２６と、プロセス実行時編集ツール２７と、を含む。
【００２９】
プロセス定義ツール２１は、プロセス定義を行うツールであり、プロセス定義管理部２２を介して、プロセス定義データベース２３にプロセス定義を登録したり、プロセス定義データベース２３からプロセス定義を取得したりする。また、プロセス定義ツール２１は、ワークフローエンジン２５を介して、プロセスインスタンスデータベース２６よりプロセスインスタンスフローを抽出し、例えば抽出したプロセスインスタンスフローを編集し、該編集したプロセスインスタンスフローをプロセス定義としてプロセス定義管理部２２を介してプロセス定義データベース２３に登録する。
【００３０】
プロセス定義管理部２２は、プロセス定義データベース２３に格納されているプロセス定義を管理する管理部であって、プロセス定義ツール２１からの要求に基づいて、対応するプロセス定義をプロセス定義データベース２３から取得したり、対応するプロセス定義をプロセス定義データベース２３に登録したりする。
【００３１】
プロセス定義データベース２３は、プロセス定義を格納するデータベースである。
【００３２】
ワークフローアプリケーション２４は、アクティビティを実行するアプリケーションであり、ワークフローエンジン２５を介して、プロセスインスタンスデータベース２６に格納されている対応するプロセスインスタンスのプロセス情報やプロセスステータスを取得したり、プロセスステータスを変更したりする。また、ワークフローアプリケーション２４は、ワークフローエンジン２５を介して、プロセス定義データベース２３よりプロセス定義を取得し、該プロセス定義に基づいて、プロセスのインスタンス化を行い、該インスタンス化されたプロセスを、プロセスインスタンスデータベース２６に格納する処理等も行う。
【００３３】
ワークフローエンジン２５は、ワークフローアプリケーション２４からの要求に応じてプロセス定義データベース２３より対応するプロセス定義を取得し、該プロセス定義に基づいて、プロセスのインスタンス化を行い、プロセスインスタンスデータベース２６に格納したり、ワークフローアプリケーション２４からの要求に基づいて、対応するプロセスインスタンスのプロセス情報やプロセスステータスをプロセスインスタンスデータベース２６より取得したり、プロセスインスタンスデータベース２６に格納されている対応するプロセスインスタンスのプロセスステータスを変更したりする。
【００３４】
また、ワークフローエンジン２５は、プロセス実行時編集ツール２７又はプロセス定義ツール２１からの要求に応じて、プロセスインスタンスデータベース２６よりプロセスインスタンスフローを抽出したり、プロセス実行時編集ツール２７からの要求に応じて、プロセスインスタンスデータベース２６に格納されているプロセスインスタンスフローを更新したりする。なお、プロセスインスタンスフローの更新としては、例えば、後述するアクティビティの保留や、アクティビティの先取り、アクティビティの追加等がある。
【００３５】
プロセスインスタンスデータベース２６は、プロセスインスタンスを格納するデータベースである。
【００３６】
プロセス実行時編集ツール２７は、プロセスインスタンスフローを編集するツールであり、ワークフローエンジン２５を介して、プロセスインスタンスデータベース２６よりプロセスインスタンスフローを取得したり、該取得したプロセスインスタンスフローを編集し、該編集したプロセスインスタンスフローを、ワークフローエンジン２５を介してプロセスインスタンスデータベース２６に格納し、プロセスインスタンスフローを更新したりする。
【００３７】
なお、上述したように、例えばプロセス定義ツール２１、プロセス実行時編集ツール２７、ワークフローアプリケーション２４等はクライアント３に実装され、プロセス定義管理部２２、プロセス定義データベース２３、ワークフローエンジン２５、プロセスインスタンスデータベース２６等はサーバ１に実装される。また、例えばプロセス定義ツール２１、プロセス実行時編集ツール２７、ワークフローアプリケーション２４、プロセス定義管理部２２、プロセス定義データベース２３、ワークフローエンジン２５、プロセスインスタンスデータベース２６等を、Ｗｅｂサービスとして実装するようにしてもよい。このような構成とした場合、クライアント３と、サーバ１と、の間では、ＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）やＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）等をベースとしたＳＯＡＰ（Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）に従って、通信が行われる。
【００３８】
以下、プロセス実行時編集ツール２７等におけるプロセスインスタンスフローの編集の一例として、アクティビティの保留を、図５を用いて説明する。図５は、アクティビティ保留処理の一例を説明するためのシーケンス図である。
【００３９】
初めにプロセス実行時編集ツール２７は、ワークフローエンジン２５に対して、プロセスに関連するアクティビティの一覧の取得要求を送信する（シーケンスＳＱ１）。
【００４０】
プロセス実行時編集ツール２７よりプロセスに関連するアクティビティの一覧の取得要求を受信したワークフローエンジン２５は、プロセスインスタンスデータベース２６からプロセスに関連するアクティビティの一覧を取得する（シーケンスＳＱ２）。
【００４１】
ワークフローエンジン２５は、取得したプロセスに関連するアクティビティの一覧を含む、プロセスに関連するアクティビティの一覧の取得応答をプロセス実行時編集ツール２７に送信する（シーケンスＳＱ３）。
【００４２】
プロセスに関連するアクティビティの一覧を取得したプロセス実行時編集ツール２７は、アクティビティの一覧等を含む画面を作成し、ユーザに表示して、該ユーザ等によって指定されたアクティビティの保留の指示要求をワークフローエンジン２５に送信する（シーケンスＳＱ４）。なお、ユーザとは、例えばワークフローの参加者等のことをいう。以下においても同様である。
【００４３】
プロセス実行時編集ツール２７よりアクティビティの保留の指示要求を受信したワークフローエンジン２５は、プロセスインスタンスデータベース２６に格納されている、指定されたアクティビティのステータスを保留に変更する（シーケンスＳＱ５）。
【００４４】
また、ワークフローエンジン２５は、プロセスの駆動処理を実行し、対応するプロセスのアクティビティのステータスを更新する（シーケンスＳＱ６）。
【００４５】
図５に示すような処理を行うことによって、実行中のプロセスに関連するアクティビティを保留にすることができる。
【００４６】
以下、プロセス実行時編集ツール２７等におけるプロセスインスタンスフローの編集の他の例として、アクティビティの先取りを、図６を用いて説明する。図６は、アクティビティ先取り処理の一例を説明するためのシーケンス図である。
【００４７】
初めにプロセス実行時編集ツール２７は、ワークフローエンジン２５に対して、プロセスに関連するアクティビティの一覧の取得要求を送信する（シーケンスＳＱ１０）。
【００４８】
プロセス実行時編集ツール２７よりプロセスに関連するアクティビティの一覧の取得要求を受信したワークフローエンジン２５は、プロセスインスタンスデータベース２６からプロセスに関連するアクティビティの一覧を取得する（シーケンスＳＱ１１）。
【００４９】
ワークフローエンジン２５は、取得したプロセスに関連するアクティビティの一覧を含む、プロセスに関連するアクティビティの一覧の取得応答をプロセス実行時編集ツール２７に送信する（シーケンスＳＱ１２）。
【００５０】
プロセスに関連するアクティビティの一覧を取得したプロセス実行時編集ツール２７は、アクティビティの一覧等を含む画面を作成し、ユーザに表示して、該ユーザ等によって指定されたアクティビティの開始の指示要求をワークフローエンジン２５に送信する（シーケンスＳＱ１３）。
【００５１】
プロセス実行時編集ツール２７よりアクティビティの開始の指示要求を受信したワークフローエンジン２５は、プロセスインスタンスデータベース２６に格納されている、指定されたアクティビティのステータスを開始に変更する（シーケンスＳＱ１４）。
【００５２】
一方、ワークフローアプリケーション２４は、ステータスが開始のアクティビティの一覧の取得要求をワークフローエンジン２５に送信する（シーケンスＳＱ１５）。
【００５３】
ワークフローアプリケーション２４よりステータスが開始のアクティビティの一覧の取得要求を受信したワークフローエンジン２５は、プロセスインスタンスデータベース２６からステータスが開始のアクティビティの一覧を取得する（シーケンスＳＱ１６）。
【００５４】
ワークフローエンジン２５は、取得したステータスが開始のアクティビティの一覧を含む、ステータスが開始のアクティビティの一覧の取得応答をワークフローアプリケーション２４に送信する（シーケンスＳＱ１７）。
【００５５】
ワークフローアプリケーション２４は、ステータスが開始のアクティビティの一覧を含む画面を作成し、ユーザに表示する。例えばユーザが、表示されたアクティビティの一覧からアクティビティを選択して処理を実行すると、ワークフローアプリケーション２４は、ユーザが処理を完了したアクティビティのステータスを、完了に変更する旨の指示要求をワークフローエンジン２５に送信する（シーケンスＳＱ１８）。
【００５６】
ワークフローアプリケーション２４よりアクティビティのステータスを完了に変更する旨の指示要求を受信したワークフローエンジン２５は、プロセスインスタンスデータベース２６に格納されている、指定されたアクティビティのステータスを、完了に変更する（シーケンスＳＱ１９）。
【００５７】
また、ワークフローエンジン２５は、プロセスの駆動処理を実行し、対応するプロセスのアクティビティのステータスを更新する（シーケンスＳＱ２０）。
【００５８】
図６に示すような処理を行うことによって、実行中のプロセスに関連するアクティビティを先取りして実行することができる。
【００５９】
以下、プロセス実行時編集ツール２７等におけるプロセスインスタンスフローの編集の他の例として、アクティビティの追加を、図７を用いて説明する。図７は、アクティビティ追加処理の一例を説明するためのシーケンス図である。
【００６０】
初めにプロセス実行時編集ツール２７は、ワークフローエンジン２５に対して、プロセスに関連するアクティビティの一覧の取得要求を送信する（シーケンスＳＱ３０）。
【００６１】
プロセス実行時編集ツール２７よりプロセスに関連するアクティビティの一覧の取得要求を受信したワークフローエンジン２５は、プロセスインスタンスデータベース２６からプロセスに関連するアクティビティの一覧を取得する（シーケンスＳＱ３１）。
【００６２】
ワークフローエンジン２５は、取得したプロセスに関連するアクティビティの一覧を含む、プロセスに関連するアクティビティの一覧の取得応答をプロセス実行時編集ツール２７に送信する（シーケンスＳＱ３２）。
【００６３】
プロセス実行時編集ツール２７は、ワークフローエンジン２５に対して、アクティビティインスタンスの作成要求を送信する（シーケンスＳＱ３３）。
【００６４】
プロセス実行時編集ツール２７よりアクティビティインスタンスの作成要求を受信したワークフローエンジン２５は、アクティビティインスタンスを生成する（シーケンスＳＱ３４）。
【００６５】
ワークフローエンジン２５は、例えば作成したアクティビティインスタンス（アクティビティ）を含む、アクティビティインスタンスの作成応答をプロセス実行時編集ツール２７に送信する（シーケンスＳＱ３５）。
【００６６】
プロセス実行時編集ツール２７は、アクティビティの一覧及び／又は作成したアクティビティを含む画面を作成し、ユーザに表示して、該ユーザ等によって指定された追加するアクティビティと、追加するアクティビティの位置と、を含むアクティビティの追加の指示要求をワークフローエンジン２５に送信する（シーケンスＳＱ３６）。
【００６７】
プロセス実行時編集ツール２７よりアクティビティの追加の指示要求を受信したワークフローエンジン２５は、追加位置のアクティビティに接続しているトランジションを複製し、該追加位置のアクティビティの識別子を新しいアクティビティの識別子に置き換える（シーケンスＳＱ３７）。なお、このとき、新しいアクティビティの状態及び複製したトランジションの状態は、それぞれ追加位置のアクティビティ及び複製元のトランジションの状態から適切な状態に変更され、設定される。
【００６８】
図７に示すような処理を行うことによって、実行中のプロセスにアクティビティを追加することができる。
【００６９】
以下、アクティビティの追加処理のより具体的な例を、図８を用いて説明する。図８は、アクティビティの追加処理の具体例を説明するための図である。
【００７０】
初めに図８（Ａ）はアクティビティＢの位置に、並列に処理するアクティビティとしてアクティビティＤを追加した例を示している。アクティビティＢの位置に、アクティビティＤを追加するには、アクティビティＡとアクティビティＢとの間に何もしないダミーのアクティビティＥを追加して分岐させ、アクティビティＢとアクティビティＣとの間にダミーのアクティビティＦを追加して結合させる。
【００７１】
図８（Ａ）に示したようなアクティビティの追加を行うと、例えばプロセスインスタンスデータベース２６に含まれるアクティビティのテーブルには、新たに追加されたアクティビティに係る情報が追加される。また、例えばプロセスインスタンスデータベース２６に含まれるトランジションのテーブルは、始点がアクティビティＡで終点がアクティビティＢだったトランジションが、終点がアクティビティＥに変更されたり、始点がアクティビティＢで終点がアクティビティＣだったトランジションが、終点がアクティビティＦに変更されたり、アクティビティＤを追加したことに伴う新たなトランジションが追加されたりする。
【００７２】
次に図８（Ｂ）はアクティビティＣの位置に、並列に処理するアクティビティＥを追加した例を示している。なお、アクティビティＥを追加した図は、図８（Ｂ）の｛｝内で示された図と同等であるため、以下の図においては図８（Ｂ）の｛｝内で示された図のように示す。
【００７３】
また図８（Ｃ）もアクティビティＣの位置に、並列に処理するアクティビティＥを追加した例を示している。ただ、図８（Ｃ）は図８（Ｂ）と比べて、図８（Ｅ）にも示されているように、ＡＮＤ分岐やＡＮＤ結合だけではなく、ＸＯＲ分岐やＸＯＲ結合も含まれている。
【００７４】
なお、図８においては既存のアクティビティの位置に、並列に処理するアクティビティとして新たなアクティビティを追加する例を示したが、例えば、図８（Ｄ）に示されるように、アクティビティＡとアクティビティＢとの間に新たなアクティビティＤを追加するような、直列に処理をするようなアクティビティの追加を行ってもよい。
【００７５】
以下、アクティビティの状態遷移モデルの一例を、図９を用いて説明する。図９は、アクティビティの状態遷移モデルの一例を説明するための図である。
【００７６】
初めに、図９に示されるＮＯＴＡＣＴＩＶＡＴＥＤは、未実行を、ＷＡＩＴＩＮＧは、処理待ちを、ＡＣＴＩＶＡＴＥＤは、処理中を、ＣＯＭＰＬＥＴＥＤは、完了を、ＳＵＳＰＥＮＤＥＤは、保留を、表している。
【００７７】
図９に示されるように、トランジションの状態によって、アクティビティの開始条件が整うと、アクティビティの状態はＮＯＴＡＣＴＩＶＡＴＥＤからＷＡＩＴＩＮＧに遷移する。なお、ここで開始条件が整うとは、アクティビティがＡＮＤ結合の場合は、該アクティビティに向かう全てのトランジションの状態がＯＮになることであり、アクティビティがＸＯＲ結合の場合、該アクティビティに向かうトランジションの少なくとも１つがＯＮになることである。
【００７８】
また、ワークフローエンジン２５等を介してワークフローアプリケーション２４等よりアクティビティの開始を指示されるとアクティビティの状態はＷＡＩＴＩＮＧからＡＣＴＩＶＡＴＥＤに遷移する。また、ワークフローエンジン２５等を介してワークフローアプリケーション２４等よりアクティビティの完了を指示されるとアクティビティの状態はＡＣＴＩＶＡＴＥＤからＣＯＭＰＬＥＴＥＤに遷移する。
【００７９】
また、ワークフローエンジン２５等を介してプロセス実行時編集ツール２７又はワークフローアプリケーション２４等よりアクティビティの状態をＳＵＳＰＥＮＤＥＤに変更するよう指示されるとアクティビティの状態は、ＮＯＴＡＣＴＩＶＡＴＥＤ又はＷＡＩＴＩＮＧ又はＡＣＴＩＶＡＴＥＤからＳＵＳＰＥＮＤＥＤに遷移する。
【００８０】
なお、アクティビティの状態は、後述する図１２に示されるように、プロセスインスタンスデータベース２６のアクティビティテーブルに含まれる。
【００８１】
以下、トランジションの状態遷移モデルの一例を、図１０を用いて説明する。図１０は、トランジションの状態遷移モデルの一例を説明するための図である。
【００８２】
図１０に示されるように、始点のアクティビティの状態がＣＯＭＰＬＥＴＥＤ又はＳＵＳＰＥＮＤＥＤに変化し、且つトランジションの発火条件を満たした場合、トランジションの状態は、ＯＦＦからＯＮに遷移する。より詳細に述べると、アクティビティがＡＮＤ分岐の場合は、アクティビティの状態がＣＯＭＰＬＥＴＥＤ又はＳＵＳＰＥＮＤＥＤに変化したときに、アクティビティから出る全てのトランジションの状態がＯＮに遷移する。一方、アクティビティがＸＯＲ分岐の場合は、アクティビティの状態がＣＯＭＰＬＥＴＥＤ又はＳＵＳＰＥＮＤＥＤに変化したときに、アクティビティからトランジションの発火条件が検査され、トランジションの発火条件が満たされた場合、トランジションの状態がＯＮに遷移する。
【００８３】
また、終点のアクティビティの状態がＷＡＩＴＩＮＧからＡＣＴＩＶＡＴＥＤに変化すると、トランジションの状態は、ＯＮからＯＦＦに遷移する。
【００８４】
なお、終点のアクティビティがＳＵＳＰＥＮＤＥＤに変化する場合は、トランジションの状態は遷移しない。
【００８５】
トランジションの状態は、後述する図１２に示されるように、プロセスインスタンスデータベース２６のトランジションテーブルに含まれる。
【００８６】
以下、アクティビティ及びトランジションの状態遷移の一例を、図１１に示す。図１１は、アクティビティ及びトランジションの状態遷移の一例を示す図である。
【００８７】
また、プロセスインスタンスデータベース２６内のテーブルの一例を、図１２を用いて説明する。図１２は、プロセスインスタンスデータベース内のテーブルの一例を説明するための図である。
【００８８】
図１２に示されるように、アクティビティテーブルには、Ｉｄと、プロセスＩＤと、名前と、ＳＰＬＩＴ型と、ＪＯＩＮ型と、状態と、が項目として含まれる。
【００８９】
ここで、Ｉｄには、アクティビティを識別する識別子が格納される。また、プロセスＩＤには、プロセスを識別する識別子が格納される。また、ＳＰＬＩＴ型には、分岐の型として、ＡＮＤ又はＸＯＲが格納される。また、ＪＯＩＮ型には、結合の型として、ＡＮＤ又はＸＯＲが格納される。また、状態には、アクティビティの状態として、ＮＯＴＡＣＴＩＶＡＴＥＤ又はＷＡＩＴＩＮＧ又はＡＣＴＩＶＡＴＥＤ又はＣＯＭＰＬＥＴＥＤ又はＳＵＳＰＥＮＤＥＤが格納される。
【００９０】
また、図１２に示されるように、トランジションテーブルには、Ｉｄと、プロセスＩＤと、ＦｒｏｍアクティビティＩＤと、ＴｏアクティビティＩＤと、発火条件と、状態と、が項目として含まれる。
【００９１】
ここで、Ｉｄには、トラジションを識別する識別子が格納される。また、プロセスＩＤには、プロセスを識別する識別子が格納される。また、ＦｒｏｍアクティビティＩＤには、始点のアクティビティを識別する識別子が格納される。また、ＴｏアクティビティＩＤには、終点のアクティビティを識別する識別子が格納される。また、発火条件には、トランジションの発火条件が格納される。また、状態には、トランジションの状態としてＯＮ又はＯＦＦが格納される。
【００９２】
以下、プロセス定義ツール２１等におけるプロセスインスタンスフローの再利用処理の一例を、図１３を用いて説明する。図１３は、プロセスインスタンスフローの再利用処理の一例を説明するための図である。
【００９３】
初めにプロセス定義ツール２１は、ワークフローエンジン２５に対して、プロセスインスタンスフローの取得要求を送信する（シーケンスＳＱ４０）。
【００９４】
プロセス定義ツール２１よりプロセスインスタンスフローの取得要求を受信したワークフローエンジン２５は、プロセスインスタンスデータベース２６からプロセスインスタンスフローを取得する（シーケンスＳＱ４１）。
【００９５】
ワークフローエンジン２５は、取得したプロセスインスタンスフローを含む、プロセスインスタンスフローの取得応答をプロセス定義ツール２１に送信する（シーケンスＳＱ４２）。
【００９６】
プロセスインスタンスフローを取得したプロセス定義ツール２１は、プロセスインスタンスフローを含む画面を作成し、ユーザに表示して、ユーザからの要求に基づいて、プロセスインスタンスフローを編集する（シーケンスＳＱ４３）。
【００９７】
プロセス定義ツール２１は、ユーザ等からの要求に基づいて、シーケンスＳＱ４３において編集したプロセスインスタンスフローを含む、該編集したプロセスインスタンスフローをプロセス定義として登録する旨の登録要求を作成し、プロセス定義管理部２２に送信する（シーケンスＳＱ４４）。
【００９８】
編集したプロセスインスタンスフローをプロセス定義として登録する旨の登録要求を受信したプロセス定義管理部２２は、該要求に含まれるプロセスインスタンスフローをプロセス定義としてプロセス定義データベースに登録する（シーケンスＳＱ４５）。
【００９９】
図１３に示すような処理を行うことによって、プロセスインスタンスフローをプロセス定義として再利用することができる。
【０１００】
以下、プロセスの一例を、図１４に示す。図１４は、プロセスの一例を示す図である。なお、図１４では、プロセスの一例として、開発プロセスを示している。また、該開発プロセスは、サブフローとして、要求分析と、仕様分析と、設計と、コーディングとテストと、出荷と、を含んでいる。また、アクティビティとして、分析／検討会議と、会議やレビュー等のミーティングと、ドキュメント作成（要求仕様書、ソフトウェア仕様書、構造設計書、詳細設計書、マニュアル）と、コーディングと、単体テストと、結合テストと、パッケージングと、がある。
【０１０１】
なお、図１４に示される黒丸（●）は、ＡＮＤ結合又はＡＮＤ分岐を表し、その他の分岐は全てＸＯＲ結合又はＸＯＲ分岐を示している。
【０１０２】
以下、アクティビティの保留の一例を、図１５を用いて説明する。図１５は、アクティビティの保留の一例を説明するための図である。
【０１０３】
図１５に示されるように、現在位置は、アクティビティの「単体テスト」が完了し、アクティビティの「コードレビュー」が処理待ちの状態である。
【０１０４】
ここで、例えばユーザがアクティビティの「結合テスト」を急ぐために、アクティビティの「コードレビュー」を後回しにすることにし、所定の操作を行ってアクティビティの「コードレビュー」の状態をＳＵＳＰＥＮＤＥＤにすると、アクティビティの「コードレビュー」とアクティビティの「単体テスト結果報告会議」との間のトランジションがＯＮになる。
【０１０５】
するとアクティビティの「単体テスト結果報告会議」の開始条件が満たされ、アクティビティの「単体テスト結果報告会議」の状態が処理待ちとなり、実行可能となる。
【０１０６】
なお、保留にしたアクティビティは、その後、いつでも実行可能となる。また、例えば図１５に示されるプロセスの終了条件にアクティビティの「コードレビュー」の完了を含めておくことにより、最終的にアクティビティの「コードレビュー」が実行されないことを防ぐことができる。
【０１０７】
以下、アクティビティの保留の場合のアクティビティ及びトランジションの状態遷移の一例を、図１６を用いて示す。図１６は、アクティビティの保留の場合のアクティビティ及びトランジションの状態遷移の一例を示す図である。
【０１０８】
図１６では、ステップ８においてアクティビティＤを保留にした例が示されている。図１６に示されるように、アクティビティ（例えば、アクティビティＤ）を保留にした場合、アクティビティに向かうトランジション（例えば、トランジション（３））の状態は変化しない。
【０１０９】
以下、アクティビティの先取りの一例を、図１７を用いて説明する。図１７は、アクティビティの先取りの一例を説明するための図である。
【０１１０】
図１７に示されるように、現在位置は、アクティビティの「単体テスト」が完了し、アクティビティの「コードレビュー」が処理待ちの状態である。
【０１１１】
ここで、例えばユーザがアクティビティの「結合テスト」を急ぐために、該「結合テスト」を選択し、所定の操作を行ってその状態をＡＣＴＩＶＡＴＥＤにする。
【０１１２】
なお、アクティビティの「結合テスト」が終了した後に、アクティビティの「コードレビュー」と、アクティビティの「単体テスト結果報告会議」と、が終了しても、アクティビティの「結合テスト」の実行は既に終了しているので、アクティビティの「結合テスト」の状態は、ＷＡＩＴＩＮＧにはならない。
【０１１３】
アクティビティの「結合テスト」の実行が終了すると、他のアクティビティの終了状況に関わらず、アクティビティの「コードＦＩＸ承認会議」の状態はＷＡＩＴＩＮＧになる。
【０１１４】
なお、例えば図１７に示されるプロセスの終了条件にアクティビティの「コードレビュー」及びアクティビティの「単体テスト結果報告会議」の完了を含めておくことにより、最終的にアクティビティの「コードレビュー」及びアクティビティの「単体テスト結果報告会議」が実行されないことを防ぐことができる。
【０１１５】
以下、アクティビティの追加の一例を、図１８を用いて説明する。図１８は、アクティビティの追加の一例を説明するための図である。
【０１１６】
図１８に示されるように、現在位置は、アクティビティの「単体テスト結果報告会議」が完了し、アクティビティの「結合テスト」が処理待ちの状態である。
【０１１７】
ここで、例えばユーザがアクティビティの「結合テスト」を指定して、並列に処理をするアクティビティとして「負荷テスト」を追加すると、例えばワークフローエンジン２５は、アクティビティの「結合テスト」のトランジションを複製し、その端点をアクティビティの「結合テスト」からアクティビティの「負荷テスト」に変更する。
【０１１８】
なお、このとき、アクティビティの「単体テスト結果報告会議」から、アクティビティの「負荷テスト」へのトランジションの状態はＯＮとなる。
【０１１９】
以下、クライアント３等に実装されているプロセス実行時編集ツール２７におけるＧＵＩの一例を、図１９に示す。図１９は、プロセス実行時編集ツールにおけるＧＵＩの一例を示す図である。
【０１２０】
例えばユーザは、図１９に示されるように、現在実行中のプロセスのフローのアクティビティの内、「ソフトウェア仕様書作成」にマウスカーソルを置き、右クリックを行う。
【０１２１】
すると、図１９に示されるように、メニューが開き、ユーザがアクティビティの追加を選択すると、右上のペインがアプリケーション一覧に変わる。
【０１２２】
ユーザが、アプリケーション一覧の中からアプリケーションを選択すると、右下のペインのアクティビティ設定項目の内容が変化する。なお、図１９の例においては、ユーザは、アプリケーションとして「ドキュメント作成」を選択している。
【０１２３】
ユーザは、右下のペインにおいてパラメータを設定し、ＯＫボタンを押して、アクティビティを追加する。すると、Ｆｌｏｗ  ｖｉｅｗ画面のプロセスのフローに、追加されたアクティビティ及び該アクティビティに関連するトランジションが反映され、表示される。
【０１２４】
以下、クライアント３等に実装されているプロセス定義ツール２１におけるＧＵＩの一例を、図２０に示す。図２０は、プロセス定義ツールにおけるＧＵＩの一例を示す図である。
【０１２５】
例えば、ユーザが、メニューのインポートからプロセスインスタンスフローを選択すると、右ペインがプロセスインスタンス一覧に変わる。
【０１２６】
ユーザが、プロセスインスタンス一覧からプロセスインスタンスを選択し、ＯＫボタンを押すと、プロセスインスタンスフローが左ペインに表示され、プロセスインスタンス一覧は閉じられる。
【０１２７】
ユーザが、プロセスインスタンスフローを編集した後、メニューから追加を選択すると、編集されたプロセスインスタンスフロー又はプロセスインスタンスが、プロセス定義として登録される。
【実施例２】
【０１２８】
以下、実施例１で示した、アクティビティの先取りや、保留に係る処理の他の例を実施例２に示す。図２１は、アクティビティの先取りの場合のアクティビティ及びトランジションの状態遷移の一例を示す図である。
【０１２９】
図２１では、ステップ４でアクティビティＤを先取りして実行を開始し、ステップ５で実行が完了した例が示されている。図２１に示されるように、アクティビティ（例えば、アクティビティＤ）を先取りにした場合は、該アクティビティ（例えば、アクティビティＤ）に向かうトランジション（例えば、トランジション（３））の状態は変化しない。また、該アクティビティ（例えば、アクティビティ（Ｄ））の先取りが完了した時も、次のアクティビティ（例えば、アクティビティ（Ｅ））に向かうトランジション（例えば、トランジション（５））の状態も変化しない。
【０１３０】
あるステップにおいて、該アクティビティ（例えば、アクティビティ（Ｄ））に向かうトランジション（例えば、トランジション（３））の状態がＯＮになると、次のステップにおいて、該アクティビティ（例えば、アクティビティ（Ｄ））から出るトランジション（例えば、トランジション（５））の状態がＯＮとなり、該アクティビティ（例えば、アクティビティ（Ｄ））に向かうトランジション（例えば、トランジション（３））の状態がＯＦＦとなる。
【０１３１】
現実問題として、定義されているフローと異なる方法で実際の仕事を進める状況は頻繁に発生する。したがって、上述したように、アクティビティの先取り、保留を許す（容易に可能とする）ことにより、プロセス定義と、実行中のプロセスのフローと、が異なることが可能となり、ワークフローを実際の仕事の状況に沿って扱うことができる。なお、それぞれの仕事を異なるプロセス定義として実行するようなワークフローも考えられる。しかし、このようなワークフローでは、仕事を管理する立場の視点から見ると、それぞれの仕事を異なるフローとして状況管理することになり、多くの仕事が存在する場合には、大局的に仕事の状況を把握することが困難となる。
【０１３２】
一方、アクティビティの先取り、保留を許す（容易に可能とする）本発明のワークフローでは、全ての仕事を同一のフローで状況管理することができ、仕事の管理者は、実際には異なるフローで進んでいる仕事を一定のフロー（同一のフロー）から眺めることができ、大局的に各々の仕事の状況を把握することができる。なお、アクティビティの追加を許す（容易に可能とする）ことについても、元のフロー（プロセス定義）を大きく変更する訳ではなく、仕事の状況管理の利点を損なうことはない。
【０１３３】
ここで、実際には異なるフローで進んでいる全ての仕事を一定のフローで判断するためには、アクティビティの削除を行うことは好ましくない。また、フローからアクティビティを削除する際、分岐が複雑なフローの場合には、分岐条件等を保持できず、フローの整合性を保持することが難しいことがある。したがって、本発明では、アクティビティの保留の概念（及びその仕組み）を導入することにより、フローの整合性を保持し、全ての仕事を一定のフローで判断可能としている。
【０１３４】
以下、複数のタスクをそれぞれ異なるフローとして表示した場合の一例を図２２に示す。図２２は、複数のタスクをそれぞれ異なるフローとして表示した、ｖｉｅｗ画面の一例を示す図である。なお、タスクとは、１つのプロセスインスタンスのことである。また、タスクリストとは、タスクのリストのことである。但し、タスクを仕事と読み替えてもよい。
【０１３５】
図２２に示されるようなｖｉｅｗ画面では、ユーザは、それぞれのタスクの全てのフローを詳細に見ないと、それぞれのプロセス状況（各々の仕事の状況）を正しく把握することが困難である。特に複雑なフローの場合は、プロセス状況の把握が一段と困難になる。
【０１３６】
例えば、図２２に示されるｖｉｅｗ画面では、実行中のアクティビティはＢＯＬＤ  Ｉｔａｌｉｃで表示され、完了したアクティビティには下線が引かれて表示されている。また、このようなワークフローでは、基本的にフローどおりに処理が進んでいくため、実行中以前のアクティビティの状態は全て完了となる。
【０１３７】
以下、複数のタスクを一定のフローに当てはめて表示した場合の一例を図２３に示す。図２３は、複数のタスクを一定のフローに当てはめて表示した、本発明に係るｖｉｅｗ画面の一例を示す図である。
【０１３８】
図２３に示されるようなｖｉｅｗ画面では、ユーザは、基本的に実行中のアクティビティを見ればよく、例外的に保留や、先取り等を行ったアクティビティを見ることによって、それぞれのプロセス状況を容易に、正しく把握することができる。
【０１３９】
なお、図２３に示されるｖｉｅｗ画面は、ワークフローアプリケーション２４が作成し、ユーザに提示する。ワークフローアプリケーション２４は、ワークフローエンジン２５より、タスクリストを取得し、図２３に示されるようなｖｉｅｗ画面を作成する。
【実施例３】
【０１４０】
以下、実行中のプロセスに係るオブジェクト（プロセスオブジェクト）に対する各操作の権限（操作権限又はアクセス権又はアクセスコントロール）をワークフローシステムにおいて定義、管理し、各操作要求に対して、該権限をチェックする例を実施例３に示す。
【０１４１】
初めに、サーバ１及びクライアント３に実装されるソフトウェア構成の他の例を、図２４を用いて説明する。図２４は、ソフトウェア構成図（その２）である。
【０１４２】
図２４に示されるソフトウェア構成は、プロセス定義ツール２１と、プロセス定義管理部２２と、プロセス定義データベース２３と、ワークフローアプリケーション２４と、ワークフローエンジン２５と、プロセスインスタンスデータベース２６と、プロセス実行時編集ツール２７と、プロセスオブジェクトＡＣＬ（Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  Ｌｉｓｔ）データベース２８と、を含む。
【０１４３】
ワークフローエンジン２５は、実施例１に示した処理を行うと共に、例えばプロセス実行時編集ツール２７からのプロセスインスタンスフロー更新の要求等に応じて、プロセスオブジェクトＡＣＬデータベース２８において格納及び／又は管理されている、対応するプロセスオブジェクトに対するアクセス権等を参照し、該要求元のユーザ（又はグループ）に有効なアクセス権が存在するか否かを判定（又はチェック）する。
【０１４４】
プロセスオブジェクトＡＣＬデータベース２８は、プロセスオブジェクトに対するアクセス権等を格納及び／又は管理する。
【０１４５】
以下、プロセスオブジェクトの操作権限の一例を、図２５に示す。図２５は、プロセスオブジェクトの操作権限の一例を示す図である。図２５に示されるように、例えばプロセスオブジェクトとして、プロセス、アクティビティ、アプリケーション等が存在する。なお、ここでアプリケーションとは、例えばワークフローアプリケーション２４等である。
【０１４６】
また、プロセスの操作権限として、参照と、アクティビティの追加と、アクティビティの保留と、アクティビティの先取りと、が存在する。また、アクティビティの操作権限として、実行と、参照と、アクティビティの追加（平行）と、アクティビティの追加（前）と、アクティビティの追加（後）と、アクティビティの保留と、アクティビティの先取りと、が存在する。また、アプリケーションの操作権限として、参照と、実行と、が存在する。
【０１４７】
ここで、プロセスの操作権限、参照とは、該当する実行中のプロセス（実行中プロセス）の情報を参照できる権限である。また、プロセスの操作権限、アクティビティの追加とは、該当する実行中プロセスにアクティビティを追加できる権限である。また、プロセスの操作権限、アクティビティの保留とは、該当する実行中プロセスの任意のアクティビティを保留できる権限である。また、プロセスの操作権限、アクティビティの先取りとは、該当する実行中プロセスの任意のアクティビティを先取り実行できる権限である。
【０１４８】
また、アクティビティの操作権限、実行とは、該当するアクティビティの状態がＡＣＴＩＶＡＴＥＤの場合に限り実行できる権限である。また、アクティビティの操作権限、参照とは、該当するアクティビティの情報を参照できる権限である。また、アクティビティの操作権限、アクティビティの追加（平行）とは、該当するアクティビティに平行して実行するアクティビティを追加できる権限であり、且つ、該当するアクティビティと、追加したアクティビティと、に接続するトランジションの結合・分岐条件、発火条件を変更できる権限である。
【０１４９】
また、アクティビティの操作権限、アクティビティの追加（前）とは、該当するアクティビティの前に実行するアクティビティを追加できる権限であり、且つ、追加したアクティビティに接続するトランジションの発火条件を変更できる権限である。また、アクティビティの操作権限、アクティビティの追加（後）とは、該当するアクティビティの後に実行するアクティビティを追加できる権限であり、且つ、追加したアクティビティに接続するトランジションの発火条件を変更できる権限である。
【０１５０】
また、アクティビティの操作権限、アクティビティの保留とは、該当するアクティビティの状態をＳＵＳＰＥＮＤＥＤにできる権限である。また、アクティビティの操作権限、アクティビティの先取りとは、該当するアクティビティの状態をＡＣＴＩＶＡＴＥＤにできる権限である。
【０１５１】
また、アプリケーションの操作権限、参照とは、アクティビティを追加する際に実行するアプリケーションとして指定できる権限である。また、アプリケーションの操作権限、実行とは、該当するアプリケーションを利用できる権限である。なお、アプリケーションの実行権限のないユーザ（又はグループ）を、該アプリケーションを利用するアクティビティの遂行者としては指定できないものとする。
【０１５２】
以下、プロセスオブジェクトＡＣＬデータベース２８のテーブルの一例を、図２６に示す。図２６は、プロセスオブジェクトＡＣＬデータベースのテーブルの一例を示す図である。
【０１５３】
図２６に示されるように、プロセスオブジェクトＡＣＬデータベースのテーブルは、ＳＩＤ（Ｓｅｃｕｒｉｔｙ  Ｉｄｅｎｔｉｆｉｅｒ）と、Ｏｂｊｅｃｔ  ＩＤと、Ｕｓｅｒ／Ｇｒｏｕｐ  ＩＤと、アクセスコントロールと、を項目として含む。
【０１５４】
ＳＩＤには、一意のＩＤが格納される。Ｏｂｊｅｃｔ  ＩＤには、プロセスオブジェクトのＩＤが格納される。Ｕｓｅｒ／Ｇｒｏｕｐ  ＩＤには、ユーザを識別するユーザＩＤ又はグループを識別するグループＩＤが格納される。また、アクセスコントロールには、図２５に示した権限記号（つまり、操作権限又はアクセス権又はアクセスコントロールを識別する情報）が格納される。
【０１５５】
以下、操作権限に係るチェックを含むアクティビティ保留処理の一例を、図２７を用いて説明する。図２７は、操作権限に係るチェックを含むアクティビティ保留処理の一例を説明するためのシーケンス図である。
【０１５６】
初めにプロセス実行時編集ツール２７は、ワークフローエンジン２５に対して、プロセスに関連するアクティビティの一覧の取得要求を送信する（シーケンスＳＱ５０）。
【０１５７】
プロセス実行時編集ツール２７よりプロセスに関連するアクティビティの一覧の取得要求を受信したワークフローエンジン２５は、プロセスインスタンスデータベース２６からプロセスに関連するアクティビティの一覧を取得する（シーケンスＳＱ５１）。
【０１５８】
ワークフローエンジン２５は、取得したプロセスに関連するアクティビティの一覧を含む、プロセスに関連するアクティビティの一覧の取得応答をプロセス実行時編集ツール２７に送信する（シーケンスＳＱ５２）。
【０１５９】
プロセスに関連するアクティビティの一覧を取得したプロセス実行時編集ツール２７は、アクティビティの一覧等を含む画面を作成し、ユーザに表示して、該ユーザ等によって指定されたアクティビティの保留の指示要求をワークフローエンジン２５に送信する（シーケンスＳＱ５３）。
【０１６０】
プロセス実行時編集ツール２７よりアクティビティの保留の指示要求を受信したワークフローエンジン２５は、プロセスオブジェクトＡＣＬデータベース２８に格納されている例えば図２６に示したようなテーブルを参照し、指定されたアクティビティを保留にする操作権限を、該ユーザ又は該ユーザが所属するグループが有しているか否か判定（チェック）する（シーケンスＳＱ５４）。
【０１６１】
ワークフローエンジン２５は、指定されたアクティビティを保留にする操作権限を、該ユーザ又は該ユーザが所属するグループが有していると判定すると、プロセスインスタンスデータベース２６に格納されている、指定されたアクティビティのステータスを保留に変更する（シーケンスＳＱ５５）。
【０１６２】
また、ワークフローエンジン２５は、プロセスの駆動処理を実行し、対応するプロセスのアクティビティのステータスを更新する（シーケンスＳＱ５６）。
【０１６３】
図２７に示すような処理を行うことによって、権限を有するユーザのみ、実行中のプロセスに関連するアクティビティを保留にすることができる。
【０１６４】
以下、操作権限に係るチェックを含むアクティビティ先取り処理の一例を、図２８を用いて説明する。図２８は、操作権限に係るチェックを含むアクティビティ先取り処理の一例を説明するためのシーケンス図である。
【０１６５】
初めにプロセス実行時編集ツール２７は、ワークフローエンジン２５に対して、プロセスに関連するアクティビティの一覧の取得要求を送信する（シーケンスＳＱ６０）。
【０１６６】
プロセス実行時編集ツール２７よりプロセスに関連するアクティビティの一覧の取得要求を受信したワークフローエンジン２５は、プロセスインスタンスデータベース２６からプロセスに関連するアクティビティの一覧を取得する（シーケンスＳＱ６１）。
【０１６７】
ワークフローエンジン２５は、取得したプロセスに関連するアクティビティの一覧を含む、プロセスに関連するアクティビティの一覧の取得応答をプロセス実行時編集ツール２７に送信する（シーケンスＳＱ６２）。
【０１６８】
プロセスに関連するアクティビティの一覧を取得したプロセス実行時編集ツール２７は、アクティビティの一覧等を含む画面を作成し、ユーザに表示して、該ユーザ等によって指定されたアクティビティの開始の指示要求をワークフローエンジン２５に送信する（シーケンスＳＱ６３）。
【０１６９】
プロセス実行時編集ツール２７よりアクティビティの開始の指示要求を受信したワークフローエンジン２５は、プロセスオブジェクトＡＣＬデータベース２８に格納されている例えば図２６に示したようなテーブルを参照し、指定されたアクティビティを先取り実行する操作権限を、該ユーザ又は該ユーザが所属するグループが有しているか否か判定（チェック）する（シーケンスＳＱ６４）。
【０１７０】
ワークフローエンジン２５は、指定されたアクティビティを先取り実行する操作権限を、該ユーザ又は該ユーザが所属するグループが有していると判定すると、プロセスインスタンスデータベース２６に格納されている、指定されたアクティビティのステータスを開始に変更する（シーケンスＳＱ６５）。
【０１７１】
一方、ワークフローアプリケーション２４は、ステータスが開始のアクティビティの一覧の取得要求をワークフローエンジン２５に送信する（シーケンスＳＱ６６）。
【０１７２】
ワークフローアプリケーション２４よりステータスが開始のアクティビティの一覧の取得要求を受信したワークフローエンジン２５は、プロセスインスタンスデータベース２６からステータスが開始のアクティビティの一覧を取得する（シーケンスＳＱ６７）。
【０１７３】
ワークフローエンジン２５は、取得したステータスが開始のアクティビティの一覧を含む、ステータスが開始のアクティビティの一覧の取得応答をワークフローアプリケーション２４に送信する（シーケンスＳＱ６８）。
【０１７４】
ワークフローアプリケーション２４は、ステータスが開始のアクティビティの一覧を含む画面を作成し、ユーザに表示する。例えばユーザが、表示されたアクティビティの一覧からアクティビティを選択して処理を実行すると、ワークフローアプリケーション２４は、ユーザが処理を完了したアクティビティのステータスを、完了に変更する旨の指示要求をワークフローエンジン２５に送信する（シーケンスＳＱ６９）。
【０１７５】
ワークフローアプリケーション２４よりアクティビティのステータスを完了に変更する旨の指示要求を受信したワークフローエンジン２５は、プロセスインスタンスデータベース２６に格納されている、指定されたアクティビティのステータスを、完了に変更する（シーケンスＳＱ７０）。
【０１７６】
また、ワークフローエンジン２５は、プロセスの駆動処理を実行し、対応するプロセスのアクティビティのステータスを更新する（シーケンスＳＱ７１）。
【０１７７】
図２８に示すような処理を行うことによって、権限を有するユーザのみ、実行中のプロセスに関連するアクティビティを先取りして実行することができる。
【０１７８】
以下、操作権限に係るチェックを含むアクティビティ追加処理の一例を、図２９を用いて説明する。図２９は、操作権限に係るチェックを含むアクティビティ追加処理の一例を説明するためのシーケンス図である。
【０１７９】
初めにプロセス実行時編集ツール２７は、ワークフローエンジン２５に対して、プロセスに関連するアクティビティの一覧の取得要求を送信する（シーケンスＳＱ８０）。
【０１８０】
プロセス実行時編集ツール２７よりプロセスに関連するアクティビティの一覧の取得要求を受信したワークフローエンジン２５は、プロセスインスタンスデータベース２６からプロセスに関連するアクティビティの一覧を取得する（シーケンスＳＱ８１）。
【０１８１】
ワークフローエンジン２５は、取得したプロセスに関連するアクティビティの一覧を含む、プロセスに関連するアクティビティの一覧の取得応答をプロセス実行時編集ツール２７に送信する（シーケンスＳＱ８２）。
【０１８２】
プロセス実行時編集ツール２７は、ワークフローエンジン２５に対して、アクティビティインスタンスの作成要求を送信する（シーケンスＳＱ８３）。
【０１８３】
プロセス実行時編集ツール２７よりアクティビティインスタンスの作成要求を受信したワークフローエンジン２５は、アクティビティインスタンスを生成する（シーケンスＳＱ８４）。
【０１８４】
ワークフローエンジン２５は、例えば作成したアクティビティインスタンス（アクティビティ）を含む、アクティビティインスタンスの作成応答をプロセス実行時編集ツール２７に送信する（シーケンスＳＱ８５）。
【０１８５】
プロセス実行時編集ツール２７は、アクティビティの一覧及び／又は作成したアクティビティを含む画面を作成し、ユーザに表示して、該ユーザ等によって指定された追加するアクティビティと、追加するアクティビティの位置と、を含むアクティビティの追加の指示要求をワークフローエンジン２５に送信する（シーケンスＳＱ８６）。なお、プロセス実行時編集ツール２７は、追加するアクティビティの位置を、フロー中のアクティビティインスタンスの位置でワークフローエンジン２５に知らせる。
【０１８６】
プロセス実行時編集ツール２７よりアクティビティの追加の指示要求を受信したワークフローエンジン２５は、プロセスオブジェクトＡＣＬデータベース２８に格納されている例えば図２６に示したようなテーブルを参照し、指定されたアクティビティを、指定された位置（場所）に追加する操作権限を、該ユーザ又は該ユーザが所属するグループが有しているか否か判定（チェック）する（シーケンスＳＱ８７）。
【０１８７】
ワークフローエンジン２５は、指定されたアクティビティを、指定された位置（場所）に追加する操作権限を、該ユーザ又は該ユーザが所属するグループが有していると判定すると、追加位置のアクティビティに接続しているトランジションを複製し、該追加位置のアクティビティの識別子を新しいアクティビティの識別子に置き換える（シーケンスＳＱ８８）。なお、このとき、新しいアクティビティの状態及び複製したトランジションの状態は、それぞれ追加位置のアクティビティ及び複製元のトランジションの状態から適切な状態に変更され、設定される。
【０１８８】
図２９に示すような処理を行うことによって、権限を有するユーザのみ、実行中のプロセスにアクティビティを追加することができる。
【０１８９】
上述したように本発明によれば、実行中のプロセスを編集（及び／又は更新）することができる。
【０１９０】
以上、本発明の好ましい実施例について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【０１９１】
【図１】サーバの一例のハードウェア構成図である。
【図２】クライアントの一例のハードウェア構成図である。
【図３】明細書中で用いる用語を説明するための図である。
【図４】ソフトウェア構成図（その１）である。
【図５】アクティビティ保留処理の一例を説明するためのシーケンス図である。
【図６】アクティビティ先取り処理の一例を説明するためのシーケンス図である。
【図７】アクティビティ追加処理の一例を説明するためのシーケンス図である。
【図８】アクティビティの追加処理の具体例を説明するための図である。
【図９】アクティビティの状態遷移モデルの一例を説明するための図である。
【図１０】トランジションの状態遷移モデルの一例を説明するための図である。
【図１１】アクティビティ及びトランジションの状態遷移の一例を示す図である。
【図１２】プロセスインスタンスデータベース内のテーブルの一例を説明するための図である。
【図１３】プロセスインスタンスフローの再利用処理の一例を説明するための図である。
【図１４】プロセスの一例を示す図である。
【図１５】アクティビティの保留の一例を説明するための図である。
【図１６】アクティビティの保留の場合のアクティビティ及びトランジションの状態遷移の一例を示す図である。
【図１７】アクティビティの先取りの一例を説明するための図である。
【図１８】アクティビティの追加の一例を説明するための図である。
【図１９】プロセス実行時編集ツールにおけるＧＵＩの一例を示す図である。
【図２０】プロセス定義ツールにおけるＧＵＩの一例を示す図である。
【図２１】アクティビティの先取りの場合のアクティビティ及びトランジションの状態遷移の一例を示す図である。
【図２２】複数のタスクをそれぞれ異なるフローとして表示した、ｖｉｅｗ画面の一例を示す図である。
【図２３】複数のタスクを一定のフローに当てはめて表示した、本発明に係るｖｉｅｗ画面の一例を示す図である。
【図２４】ソフトウェア構成図（その２）である。
【図２５】プロセスオブジェクトの操作権限の一例を示す図である。
【図２６】プロセスオブジェクトＡＣＬデータベースのテーブルの一例を示す図である。
【図２７】操作権限に係るチェックを含むアクティビティ保留処理の一例を説明するためのシーケンス図である。
【図２８】操作権限に係るチェックを含むアクティビティ先取り処理の一例を説明するためのシーケンス図である。
【図２９】操作権限に係るチェックを含むアクティビティ追加処理の一例を説明するためのシーケンス図である。
【符号の説明】
【０１９２】
１    サーバ
３    クライアント
１１    入力装置
１２    表示装置
１３    ドライブ装置
１４    記録媒体
１５    ＲＯＭ
１６    ＲＡＭ
１７    ＣＰＵ
１８    インターフェース装置
１９    ＨＤＤ
２１    プロセス定義ツール
２２    プロセス定義管理部
２３    プロセス定義データベース
２４    ワークフローアプリケーション
２５    ワークフローエンジン
２６    プロセスインスタンスデータベース
２７    プロセス実行時編集ツール
２８    プロセスオブジェクトＡＣＬデータベース
３１    入力装置
３２    表示装置
３３    ドライブ装置
３４    記録媒体
３５    ＲＯＭ
３６    ＲＡＭ
３７    ＣＰＵ
３８    インターフェース装置
３９    ＨＤＤ
【図１】
2005259113.tif 000003
【図２】
2005259113.tif 000004
【図３】
2005259113.tif 000005
【図４】
2005259113.tif 000006
【図５】
2005259113.tif 000007
【図６】
2005259113.tif 000008
【図７】
2005259113.tif 000009
【図８】
2005259113.tif 000010
【図９】
2005259113.tif 000011
【図１０】
2005259113.tif 000012
【図１１】
2005259113.tif 000013
【図１２】
2005259113.tif 000014
【図１３】
2005259113.tif 000015
【図１４】
2005259113.tif 000016
【図１５】
2005259113.tif 000017
【図１６】
2005259113.tif 000018
【図１７】
2005259113.tif 000019
【図１８】
2005259113.tif 000020
【図２１】
2005259113.tif 000021
【図２２】
2005259113.tif 000022
【図２３】
2005259113.tif 000023
【図２４】
2005259113.tif 000024
【図２５】
2005259113.tif 000025
【図２６】
2005259113.tif 000026
【図２７】
2005259113.tif 000027
【図２８】
2005259113.tif 000028
【図２９】
2005259113.tif 000029
【図１９】
2005259113.tif 000030
【図２０】
2005259113.tif 000031