(57)【要約】【課題】  複雑なワークフロー問題に対して、より柔軟なカスタム化された解決策をオファーすることのできる改良されたワークフロー・システムおよび方法を提供する。【解決手段】  ワークフロー・システムが、ワークフローからタスク・クエリを受け取るためのマッチメーキング・ユニット、およびそれぞれがタスク定義を提供する複数のタスク定義者ユニットを包含する。マッチメーキング・ユニットは、タスク定義者ユニットと通信し、タスク定義をタスク・クエリに照らし、各タスク定義に関連付けされた１ないしは複数のプロパティを基礎として評価し、かつその評価に基づいて、１ないしは複数のタスク定義をオファーとしてワークフローへ提供する。【選択図】      図１
2005196768.tif 000002
【特許請求の範囲】
【請求項１】
ワークフローからタスク・クエリを受け取るためのマッチメーキング・ユニット（１０２）、および
それぞれがタスク定義を提供する複数のタスク定義者ユニット（１１２）を包含し、
それにおいて前記マッチメーキング・ユニット（１０２）が、前記タスク定義者ユニット（１１２）との通信に適合されており、それぞれの前記タスク定義者ユニット（１１２）によって提供される前記タスク定義を前記タスク・クエリに照らし、各タスク定義に関連付けされた１ないしは複数のプロパティを基礎として評価し、かつ前記評価に基づいて、１ないしは複数の前記タスク定義をオファーとして前記ワークフローへ提供する、ワークフロー・システム。
【請求項２】
さらに、
複数のアクター／サービス・インスタンス（３０６）のそれぞれに関連付けされたデータをストアするためのアクター／サービス・データベース（３０４）、および
アクター／サービス選択ユニット（３０２）を包含し、
それにおいて前記アクター／サービス選択ユニット（３０２）は、前記アクター／サービス・データベース（３０４）との通信に適合されており、前記複数のアクター／サービス・インスタンス（３０６）のそれぞれに関連付けされた前記データに基づいて選択されたタスクを処理するために、前記アクター／サービス・インスタンス（３０６）の１ないしは複数を選択する、請求項１に記載のワークフロー・システム。
【請求項３】
前記タスク定義に関連付けされた前記１ないしは複数のプロパティは動的であり、前記マッチメーキング・ユニット（１０２）は、前記クエリを受け取った前記ワークフローのプロパティを、前記タスク定義者ユニット（１１２）の１ないしは複数へ提供し、それによって前記タスク定義者ユニット（１１２）は、受け取った前記ワークフローのプロパティに基づいて前記動的プロパティの特定の値もしくは複数の値を前記マッチメーキング・ユニット（１０２）へ提供する、請求項１または２に記載のワークフロー・システム。
【請求項４】
さらに、前記タスク定義の１ないしは複数に関連付けされた前記ワークフロー外のデータを送受するためのインターフェース・ユニット（１１５）を包含し、それにおいて前記タスク定義者ユニット（１１２）のそれぞれは、前記データに基づいて前記タスク定義を更新する、請求項１〜３のいずれかに記載のワークフロー・システム。
【請求項５】
前記マッチメーキング・ユニット（１０２）は、前記ワークフローのアクティビティの終了時に前記ワークフローから前記タスク・クエリを受け取る、請求項１〜４のいずれかに記載のワークフロー・システム。
【請求項６】
さらに、前記ワークフローに関連付けされたワークフロー・データをストアするためのデータベース（２０６）を包含し、それにおいて前記データベース（２０６）は、中央リポジトリとして機能し、かつ前記ワークフロー内の現在のタスクもしくは複数タスクと通信し、かつ前記タスク・クエリは、前記データベース（２０６）内にストアされている前記データを基礎とする、請求項１〜５のいずれかに記載のワークフロー・システム。
【請求項７】
前記マッチメーキング・ユニット（１０２）および／または前記タスク定義者ユニット（１１２）および／または前記アクター／サービス・データベース（３０４）および／または前記アクター／サービス選択ユニット（３０２）が、コンピュータ・ネットワーク上のサイトとして具体化される、請求項１〜６のいずれかに記載のワークフロー・システム。
【請求項８】
ワークフローからタスク・クエリを受け取るためのステップ、
それぞれがタスク定義を提供する複数のタスク定義者ユニットを維持するステップ、
それぞれの前記タスク定義を前記タスク・クエリに照らし、各タスク定義に関連付けされた１ないしは複数のプロパティを基礎として評価するステップ、および
前記評価に基づいて、１ないしは複数の前記タスク定義をオファーとして前記ワークフローへ提供するステップ、
を包含するワークフロー方法。
【請求項９】
さらに、
複数のアクター／サービス・インスタンスのそれぞれに関連付けされたデータを包含するデータベースを維持するステップ、および
前記複数のアクター／サービス・インスタンスのそれぞれに関連付けされた前記データに基づいて選択されたタスクを処理するために、前記アクター／サービス・インスタンスの１ないしは複数を選択するステップ、
を包含する請求項８に記載のワークフロー方法。
【請求項１０】
前記タスク定義に関連付けされた前記１ないしは複数のプロパティは動的であり、さらに前記方法が、前記タスクの前記評価において、前記ワークフローのプロパティに基づいて前記動的プロパティの特定の値もしくは複数の値を使用するステップを包含する、請求項８または９に記載のワークフロー方法。
【請求項１１】
前記タスク定義が、前記ワークフロー外のプロパティを基礎として更新される、請求項８〜１０のいずれかに記載のワークフロー方法。
【請求項１２】
前記タスク・クエリが、前記ワークフローのアクティビティの終了時に前記ワークフローから受け取られる、請求項８〜１１のいずれかに記載のワークフロー方法。
【請求項１３】
さらに、前記ワークフローに関連付けされたワークフロー・データのためのデータベースを維持するステップを包含し、それにおいて前記データベースは中央リポジトリとして機能し、かつ前記ワークフロー内の現在のタスクもしくは複数タスクと通信し、かつ前記タスク・クエリは、前記データベース内にストアされている前記データを基礎とする、請求項８〜１２のいずれかに記載のワークフロー方法。
【請求項１４】
請求項１〜１３のいずれかの方法における各ステップをコンピュータに実行させる、プログラム。
【請求項１５】
請求項１４に記載のプログラムを記録した、コンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、広くワークフロー・システムおよび方法に関する。
【背景技術】
【０００２】
ワークフロー・テクノロジは、特定の目標を達成することが企図されたタスクのセットの定義、作成、調整、およびマネージを補助することを意図している。ワークフローは、通常、遂行されるべきタスクのステップ・バイ・ステップの定義および各タスクのロー・レベルの詳細な記述を使用する。可能タスクおよび可能コントロール・フローの完全な仕様は、ワークフロー仕様の一部であり、タスクが開始する前に利用可能となっている必要がある。
【０００３】
通常、適切な選択評価基準を伴うタスク・オプションが、ワークフロー内の代替として可能であり、かつ利用できるが、それらは一般にあらかじめ定義されている必要があり、かつワークフロー仕様内に含められていることが期待される。現在のもっとも進んだワークフロー・システムは、タスク・オプションの仕様、およびそれらの選択ならびに構成を取り巻く意志決定を、ワークフローのモノリシックな記述へ埋め込む。
【０００４】
ワークフローは、しばしば、異なる領域からの専門知識を必要とするビジネス・プロセスを規定し、したがってすべてを包含、すなわち広い分野の専門知識がカバーされていなければならないことがある。そのためワークフロー・プログラマのタスクは、相当に困難なものとなる。これらのプログラマは、ワークフロー言語に精通している必要があるだけでなく、すべての関連分野における専門知識を有しているか、あるいは少なくともその種の専門家と話し合い、その知識をワークフローの集中記述へ抽出できる必要がある。したがって現在のワークフロー・システムは、通常、しばしば理想的には高いレベルの柔軟性ならびに適用性をもって解決されることになる複雑なワークフロー問題に対して、静的であり、かつ硬直した解決策を提供する。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
この分野には、複雑なワークフロー問題に対して、より柔軟なカスタム化された解決策をオファーできる改良されたワークフロー・システムおよび方法を提供することが求められている。
【０００６】
本発明の第１の側面によれば、ワークフローからタスク・クエリを受け取るためのマッチメーキング・ユニット、およびそれぞれがタスク定義を提供する複数のタスク定義者ユニットを包含するワークフロー・システムが提供される。マッチメーキング・ユニットは、タスク定義者ユニットと通信し、それぞれのタスク定義者ユニットによって提供されるタスク定義をタスク・クエリに照らし、各タスク定義に関連付けされた１ないしは複数のプロパティを基礎として評価し、かつその評価に基づいて、１ないしは複数のタスク定義をオファーとしてワークフローへ提供する。
【０００７】
好適には、さらにこのワークフロー・システムが、複数のアクター／サービス・インスタンスのそれぞれに関連付けされたデータをストアするためのアクター／サービス・データベース、およびアクター／サービス選択ユニットを包含する。このアクター／サービス選択ユニットは、アクター／サービス・データベースと通信し、複数のアクター／サービス・インスタンスのそれぞれに関連付けされたデータに基づいて選択されたタスクを処理するために、アクター／サービス・インスタンスの１ないしは複数を選択する。
【０００８】
本発明の第２の側面によれば、ワークフローからタスク・クエリを受け取るためのステップ、それぞれがタスク定義を提供する複数のタスク定義者ユニットを維持するステップ、およびそれぞれのタスク定義をタスク・クエリに照らし、各タスク定義に関連付けされた１ないしは複数のプロパティを基礎として評価するステップを包含するワークフロー方法が提供される。この評価に基づいて、１ないしは複数のタスク定義がオファーとしてワークフローへ提供される。
【０００９】
本発明の第３の側面によれば、ワークフロー方法を行うべくコンピュータに指示するための、メディア上に記録されたコンピュータ・プログラムが提供される。このプログラムは、ワークフローからタスク・クエリを受け取るためのコード、それぞれがタスク定義を提供する複数のタスク定義者ユニットを維持するためのコード、およびそれぞれのタスク定義をタスク・クエリに照らし、各タスク定義に関連付けされた１ないしは複数のプロパティを基礎として評価するためのコードを包含する。さらにこのプログラムは、その評価に基づいて、１ないしは複数のタスク定義をオファーとしてワークフローへ提供するためのコードを包含する。
【課題を解決するための手段】
【００１０】
本発明は上記課題を解決するために発明されたものであって、ワークフローからタスク・クエリを受け取るためのマッチメーキング・ユニット（１０２）、および、それぞれがタスク定義を提供する複数のタスク定義者ユニット（１１２）を包含し、それにおいて前記マッチメーキング・ユニット（１０２）が、前記タスク定義者ユニット（１１２）との通信に適合されており、それぞれの前記タスク定義者ユニット（１１２）によって提供される前記タスク定義を前記タスク・クエリに照らし、各タスク定義に関連付けされた１ないしは複数のプロパティを基礎として評価し、かつ前記評価に基づいて、１ないしは複数の前記タスク定義をオファーとして前記ワークフローへ提供する、ワークフロー・システムである。さらに、複数のアクター／サービス・インスタンス（３０６）のそれぞれに関連付けされたデータをストアするためのアクター／サービス・データベース（３０４）、およびアクター／サービス選択ユニット（３０２）を包含し、それにおいて前記アクター／サービス選択ユニット（３０２）は、前記アクター／サービス・データベース（３０４）との通信に適合されており、前記複数のアクター／サービス・インスタンス（３０６）のそれぞれに関連付けされた前記データに基づいて選択されたタスクを処理するために、前記アクター／サービス・インスタンス（３０６）の１ないしは複数を選択する、ワークフロー・システムを含む。
【発明を実施するための最良の形態】
【００１１】
ここで説明する好ましい実施態様は、複雑なワークフロー問題に対して、より柔軟であり、かつカスタム化された解決策を容易にするためのワークフロー・システムおよび方法を提供する。
【００１２】
図１は、本発明の一実施態様におけるワークフロー・システム１００を略図的に示している。このワークフロー・システム１００は、マッチメーキング・エンジン１０２およびタスク・プール１０４を包含する。タスク・アドバタイズメントは、タスク定義者、たとえば１１２とマッチメーキング・エンジン１０２の間において伝達され、それが番号１１０によって示されている。各アドバタイズメントは、１つのタスク定義およびそのタスク定義に関連付けされた１ないしは複数のプロパティからなり、このタスク定義に基づいてマッチメーキング・プロセスが、クエリを順次各アドバタイズメントに照らして評価する。
【００１３】
ワークフローのアクティビティ『Ａ』（実行されるタスク１０６）が完了するとき、そのワークフローは、目標、履歴、ワークフロー・プロパティ、規則、ワークフロー・ポリシー、およびサーチ・ポリシー等の関連情報を組織化し、番号１０８に示されているように、マッチメーキング・エンジン１０２を呼び出して次の適切なタスク定義を要求する。この要求がクエリを構成する。マッチメーキング・エンジン１０２においてはマッチメーキング・プロセスが開始され、このクエリが、タスク・プール１０４内のタスク定義者、たとえば１１２からの複数のタスク・アドバタイズメントのそれぞれに照らして評価される。
【００１４】
特定のタスク・アドバタイズメントのタスク定義に関連付けされた１ないしは複数のプロパティが動的であるとしてマークされている場合には、マッチメーキング・エンジン１０２がワークフロー・クエリから必要なプロパティを収集し、番号１１３に示されているように、それらを関連するタスク定義者、たとえば１１２へ提供する。この関連するタスクのタスク定義者、たとえば１１２は、続いてワークフロー・クエリのプロパティに基づいて動的タスク定義のプロパティの値もしくは複数の値を、番号１１４に示されているように、マッチメーキング・エンジン１０２へ返す。
【００１５】
これは、タスクを、手近にある特定のワークフローのために特別にカスタム化することを可能にする。例示の実施態様においてタスク定義者、たとえば１１２を通じてもたらされるカスタム化は、さらに、インターフェース１１５を介して受け取ることのできる関連情報を伴う、ワークフロー／タスクに影響を及ぼすことのある任意のほかの現在の外部状況を基礎とすることができる。ここで注意を要するが、各タスク定義は、手近にある問題、タスクがどのように指定されているかということ、および利用可能なワークフロー・マネジメント・システムに基づく１ないしは複数のサブ・タスクを含むことができる。
【００１６】
タスクは、多数の異なる方法において定義可能であり、それには、限定の意図ではないが、コード・セグメントとしてウェブ・サービスの起動を指定するＢＰＥＬ（ビジネス・プロセス・エクシキューション・ランゲージ（Ｂｕｓｉｎｅｓｓ  Ｐｒｏｃｅｓｓ  Ｅｘｅｃｕｔｉｏｎ  Ｌａｎｇｕａｇｅ））の使用、あるいはワークフロー・システムによる解釈もしくは起動が可能なスクリプト言語内への記述が含まれる。
【００１７】
マッチメーキング・エンジン１０２は、マッチメーキング・プロセスを完了し、番号１１６に示されているように、展開中のワークフローの目標に調和するタスク定義を含む１ないしは複数のオファー（『Ｃ』）をそのワークフローへ送る。選択されたタスク１１８（または並列して実行される複数のタスク）は、アクティブ化の準備の整った状態に置かれる。この時点において、以前に終了したアクティビティ１０６が次へ進んでワークフローのコントロールをタスク１１８へ渡すことが可能となり、その後それがアクティブ化され、そのワークフローの現在のアクティビティとなる。
【００１８】
図２は、別の例とする実施態様における別のワークフロー・システム２００を略図的に示している。このワークフロー・システム２００は、ウェブ・サービス・マッチメーキング・エンジン２０２およびタスク・プール２０４を包含する。さらにワークフロー・システム２００は、展開中のワークフローの履歴を保持する中央リポジトリとして機能するデータベース２０６を包含する。ワークフロー・システム２００においては、データベース２０６内にストアされている展開中のワークフローの履歴データをマッチメーキング・エンジン２０２へ、この例の実施態様においては実行されるタスク２０８を介して提供し、マッチメーキング・プロセス内に含まれるようにすることが可能である。マッチメーキング・エンジン２０２は、図１に示した実施態様を参照して前述した説明のとおり、タスク・プール２０４内のタスク定義者、たとえば２１２と連絡してマッチメーキング・プロセスを行い、１ないしは複数のタスクのオファーを識別する（マッチメーキング・エンジン１０２、タスク・プール１０４、およびタスク定義者、たとえば１１２と対照されたい）。
【００１９】
インターフェース・ユニット２１５も提供されており、図１を参照して説明したインターフェース１１５と同じ機能を有する。
【００２０】
この場合においても、選択されたタスクもしくは複数タスク２１０が、アクティブ化の準備の整った状態に置かれる。この後、以前に終了したアクティビティ２０８が次へ進んでワークフローのコントロールをタスク２１０へ渡し、その後それがアクティブ化され、そのワークフローの現在のアクティビティとなる。
【００２１】
この実施態様のワークフロー・システム２００において中央データベース２０６を使用する１つの利点は、ワークフローが並列タスクに分割された場合に、それぞれの展開中のフローが、ほかのフローがどのような状態にあるかを明らかにできることである。並列フローの同期および結合もまた、中央データベース２０６の使用によって容易になり、それを介して並列フローが交換を行うことができる。
【００２２】
図３は、ワークフロー・システム１００または２００（図１または２をそれぞれ参照されたい）に対する拡張である。この拡張３００は、アクター／サービス・インスタンス選択ユニット３０２、および複数のアクター／サービス・インスタンス、たとえば３０６に関連付けされているデータをストアしているプールまたはデータベース３０４を包含している。
【００２３】
ワークフローによって次のタスクが選択され（図１または２を参照した前述の説明を参照されたい）、アクティビティ３０８がアクティブ化されると、アクター／サービス選択ユニット３０２が、アクティビティ３０８の一部として開始されるクエリに応答してアクター／サービス・インスタンスの選択についてアクター／サービス・プール３０４へ問い合わせを行い、選択されたタイプのサービスをそのタスクの一部として規定する。この選択／問い合わせは、図１または２を参照して前述したタスク・クエリとタスク・プールからのアドバタイズメントのマッチングに類似である。
【００２４】
その後、アクター／サービス選択ユニット３０２からの応答またはオファーは、アクティビティ３０８による選択ならびにアクティブ化のために１ないしは複数の利用可能なアクター／サービス・インスタンス、たとえば図３の『Ｂ』を識別する。タスク選択が成功した後に、希望されているサービスの実行に利用できるアクター／サービス・インスタンスがないとわかるといったことも生じ得る。そのような場合にワークフローは、図１または２を参照して説明を前述したように、新たなタスク選択へ『戻る』ことができる。新たなタスク選択は、更新後のワークフロー・プロパティを基礎とし、今回は特定のアクター／サービス・インスタンスが利用できないことを考慮に入れる。ここで注意されたいが、アクター／サービス選択ユニット３０２は、マッチメーキング・エンジン１０２または２０２（それぞれ図１または２）と同一もしくは類似のプラットフォーム、たとえば同一のウェブ・サービス・マッチメーキング・エンジン上において具体化することができる。
【００２５】
図４は、本発明を具体化するワークフロー方法を要約したフローチャート４００である。実行されたタスクが完了すると、それが関連するワークフロー情報を組織化し、ステップ４０２において、マッチメーキング・エンジンを呼び出して次の適切なタスク定義を要求する。マッチメーキング・プロセスが開始され、ステップ４０４において、クエリがタスク・アドバタイズメントに照らして評価される。マッチメーキング・プロセスの完了時に、ステップ４０６において、展開中のワークフローの目標に調和するタスクを含んだ１ないしは複数のオファーがワークフローへ送られる。ステップ４０８においては、オファーされたタスクから選択されたタスクが識別され、アクティブ化のための準備がなされる。以前に実行されたタスクに関連付けされたアクティビティ（ステップ４０２と対照されたい）が先へ進み、ステップ４１０において、選択されたタスクへコントロールを渡し、最後にステップ４１２において、その選択されたタスクがアクティブ化され、現在のアクティビティとなる。
【００２６】
電子行政プロセス環境におけるワークフローの１つの例は、個人、家族、またはビジネスの移転となろう。この種のプロセスは、通常、登録抹消および異なる地方支部における登録、各種行政部門に対する状況の変更の通知、ビジネスの場合にはライセンスの申請、銀行とのインタラクション等を必要とする。
【００２７】
一例のシナリオにおいては、地方支部が、それがサポートする、すなわち異なるプロセスのそれぞれについてそれが多数のタスク定義者を維持している多数の異なるプロセスの記述をアドバタイズすることになる。プロセスの１つは、その地方支部から転出する住民のためのプロセスとなる。アドバタイズメントは、地方支部の名前、その場所、そのプロセスの記述またはそのプロセスの記述を有しているかそれを開始することのできるウェブ・サイトに対する参照からなるとすることができる。このアドバタイズメントに関連付けされるある動的プロパティを、転出する住民を個人または家族として区別するものとしてもよい。この種の場合においては、いくつかの異なる手続きがその後に続くことになる。異なる地方支部は、それら自体の異なる記述およびそれぞれがオファーするプロセスをアドバタイズし、可能タスクのプールを構築することになる。
【００２８】
このシナリオにおいて、タスク・クエリは、転出する住民の詳細、それらの住民がどこからどこへ移動するかについての表示、および家族状態を包含することができる。このタスク・クエリは、その地方支部を去るカスタマによってマッチメーキング・エンジンへ送り込まれることになり、マッチメーキング・エンジンは、それぞれの既存のアドバタイズメントに照らしてそのクエリの比較ならびに評価を行うことになる。タスク・クエリ内の情報は、アドバタイズメントの中の動的プロパティの評価において使用されることになる。適切な地方支部からのアドバタイズメントは、そのカスタマがどこから転出するのか、そのカスタマがどのような状況にあるのか、さらにそれぞれのアドバタイズメントならびにそれらに関連付けされたプロパティとのマッチングをどのように行うのかということを基礎として選択されることになる。
【００２９】
以下においては、説明した実施態様のいくつかの利点ならびに特徴を要約する。
【００３０】
従来技術のワークフロー・システムおよび方法におけるようにタスクのフローをあらかじめ指定することに代えて、例示の実施態様は、ワークフローの進捗に従って次のタスクまたは複数タスクの動的な選択を提供する。これは、従来技術のワークフロー・システムおよび方法における意志決定の埋め込みポイントを、対称マッチメーキング・エンジンに対する呼び出しに置き換えることによって達成され、それにおいては、タスク・プール・ユニットからタスク定義が広告される。
【００３１】
例示の実施態様においては、展開中のワークフローならびにタスクの両方が、ほかの関係者から何を要求するか、および選択評価基準は何かということを記述することができる。このように対称マッチメーキングが使用されて、展開中のワークフロー内において次に実行されるべきタスクが選択され、同時に、その特定のワークフローのためにそのタスクをカスタム化する準備も行われる。
【００３２】
これらの特徴は、次のように要約することができる。
【００３３】
●  タスクの選択肢が、すべてのアクティビティのそれぞれの終了時に提供される。
●  選択肢のプールがワークフローの外へ移動され、ワークフローは、次に実行されるべきタスクをそこでサーチすることができる。
●  選択が部分的に行われること、あるいは完全にワークフローの外側で行われるようにすることができる。
●  選択は、２ウェイ（対称）選択に、すなわちワークフローが次のタスクを選択し、そのタスクがそのワークフローを選択するべく拡張される。
【００３４】
この例示の実施態様においては、各タスクが、その特徴設定に関連する属性に関してそれ自体の記述を提供する。これらの属性のいくつかは、ハイ・レベルの目標とそのタスクの間の関係を参照することができる。各タスクは、さらに、ワークフローの進捗についてそれ自体を適切であるとする基礎となる条件／規則を提供する。
【００３５】
一方、ワークフローは、それ自体の記述を提供し、それにはそのワークフローに関連付けされた目標、履歴、および条件／規則が含まれる。この目標は、そのワークフローには何を達成することが期待されているかについての記述であり、それに対してワークフローの履歴は、この目標を達成するためにすでに何が行われたかについての記述である。ワークフローのオーナーがそのワークフローならびにその展開への適用を希望する条件／規則は、目標を達成することのできる方法に対する制約を指定するポリシーを含むことができる。これはたとえば、次のタスクのサーチの範囲に関するコスト、割り付け可能なリソース、法的制限または好み、および地理的／部門的な制限といった形式にすることができる。
【００３６】
上記の情報のすべては、例示の実施態様の対称マッチメーキング・プロセスで使用され、それもまた次に挙げる特徴を選択プロセスへ提供する。
【００３７】
●  タスクのカスタム化。
●  関心レート、リソースの使用、プロバイダの状況、利用可能な専門知識、地理的な場所、前後関係等のワークフローならびにタスク環境の最新値。
【００３８】
例示の実施態様においては、動的に延期される選択を行い、かつ対称マッチメーキング・エンジンの動的なプロパティを使用することによって、そのワークフローならびにその状況のもっともその時点に近い視点を考慮することが可能になる。したがってワークフローがアクティビティの選択を行うだけでなく、事実上、タスクもワークフローを選択する。これは、前述したとおり、マッチメーキング・プロセスの対称な性質からもたらされる。
【００３９】
例示の実施態様は、意志決定プロセスが完全に定式化されて、スクリプトがそれを実行することのできる完全に自動化されたワークフローについて、あるいは意志決定プロセスがスクリプトと明確な人為介入の組み合わせとなる半自動ワークフローについて具体化することが可能である。
【００４０】
例示の実施態様におけるマッチメーキング・エンジンの利用は、次に挙げる事項を含む多数の利点を提供する。
【００４１】
●  ワークフローの展開。展開の動的側面は、次のタスク（１ないしは複数）の選択を可能な限り遅くまで、すなわち先行するアクティビティの終了まで延期することによって達成される。これは、もっともその時点で新しい状況を基礎とする選択を可能にする。
●  意志決定の強調のシフト。対称マッチメーキング・プロセスは、専門家のところへ決定の強調をシフトすることを容易にする。展開中のワークフローが次のアクティビティを選択できる一方、ワークフローの、それ自体の記述、その履歴、およびその目標を参照する規則を定義することによって、タスクもワークフローを選択することができる。このことは、選択の強調をワークフローからタスク定義へシフトすることを可能にする。このことは領域の専門家に優位性を与え、それぞれの専門知識をそのワークフローの展開における決定因子とすることが、ワークフロー（オーナー）の好みを考慮しつつ可能になる。
【００４２】
ここで説明した実施態様においては、領域の専門家がワークフローの進捗に利用される。タスク間の相互依存性をもっともよく知り、したがって何を並列に行い得るか、また何が行い得ないかを理解することは応用領域であり、それはそのタスク定義する者となる。すなわち、（何が行われるべきか、どのような順序でそれが行われるべきか、またそれが連続的に行われるべきか、並列して行われるべきかに関して）利用可能なオプションは、タスク定義者によって、したがって例示の実施態様におけるタスク・アドバタイザによって記述されることが適切である。ワークフローのユーザまたはオーナーは、それぞれの好みを指定することができるが、選択の責任は、多くの場合（特にユーザがその分野に特別な専門知識を有していない場合）に、そのアクティビティのプロバイダ／アドバタイザに伴う。
【００４３】
対称マッチメーキング・プロセスは、両サイドに対して、それぞれ自体を記述する、およびそれぞれが何を探しているかを記述するプロパティを提供することを許す。両サイドは、アドバタイズメントの選択または非選択を行う規則も提供する。消費者オーナー・サイドにプロパティの提供を許可することによって、これらのプロパティを調べる規則が、消費サイドおよびタスク／アクティビティ・プロバイダ・サイド両方の言語において効果的に表現される。この『翻訳』能力は、ワークフローの目標ならびに展開履歴からタスクのセットおよびそれらの間のコントロール・フローへの翻訳を容易にする。選択の第２のレベルは、図３に示した実施態様の中で述べたとおり、特定のアクターならびにリソースをサーチしてそのタスクをアクティビティとして規定するときに行うことができる。
【００４４】
対称マッチメーキング・プロセスは、プロパティへの値の割り付けをマッチメーキング時まで延期することを容易にし、アドバタイズメントもしくは外部プログラムへの出口または入力にスクリプトを取り付けることを可能にする。値の解決は、展開中のワークフローの詳細のクエリから、したがってその特定の状況ならびに好みを考慮に入れて獲得することができる。タスク定義は、マッチメーキング時に修正可能であり、かつカスタム化された形式で展開中のワークフローへ返すことができる。プロパティ値の解決の延期は、タスクが、そのタスクを実行するためのリソースならびに専門知識の可用性へアクセスすることを可能にする。
【００４５】
マッチメーキング・プロセスは、タスク定義ならびに関連する規則の分散に使用可能であり、異なる領域、部門、機構、コングロマリット、および市場等が、ある目標を異なる方法で達成する類似もしくは異なるタスクをオファーすることを可能にする。その後、互いを知るマッチメーキング・エンジンのネットワークが、適切なタスク定義を見つけることのできる専門知識の外部領域へ向かってそのワークフローをリダイレクトすることができる。分散自体は、異なるレベルで生じることが可能であり、タスク定義およびその実行のいずれも分散させることができる。分散は、独特の利点を提供するが、分散されたワークフロー定義および実行空間のマネジメントに問題も生じる。
【００４６】
異なる柔軟性の程度を利用することが可能であり、それは、完全なあらかじめ定義済みのワークフローから、各アクティビティの終了時に決定を行う完全に開かれた漸進性のワークフローまで及ぶ。それに加えて、同一の目標を、以下の事項に応じて異なって実行することができる。
【００４７】
●  正式の定義もしくは厳格な優先順位はないが、何らかの相互依存性が存在するプロセス（住宅の購入、ビジネスまたは個人の転居、家族の死亡、ビジネスの開設、失職、長引く病気）。
●  応用領域間または組織間において異なる利用可能タスクの定義。各組織は、類似の目標を達成する独自の方法を有することができる。
●  タスクの局所性（電子行政の例を参照されたい）。タスクは、組織の境界または地理的境界を渡ることが可能であり、その後はフローが、局所的な考察ならびにポリシー／規則によって決定されることになる。
●  目標に到達し得る方法に影響を与える、利用可能なリソースの違いおよび多様性。
【００４８】
例示の実施態様は、タスクの古い定義とインストール中の新しい定義の間の遷移に関する要求に応じる。両方のバージョンは、有効な限り、適切な選択条件が適用されることを条件として共存可能である。タスクを定義する責任を専門家のところへ分散させることは、大規模のモノリシックな、かつ複雑なワークフロー定義を維持する問題を緩和する。
【００４９】
本発明を具体化する１つの特定の応用がビジネス・ツー・カスタマ（Ｂ２Ｃ）システム内にあり、それにおいては、カスタマ／クライアントがビジネス／サーバと対話し、カスタマが展開中のワークフローを担当する。Ｂ２Ｃ環境においては、それに代えて専門家がカスタマを代表してワークフローの使用またはコントロールすることができ、カスタマとともに意志決定を行う。
【００５０】
本発明を具体化するもう１つの特定の応用は、ビジネス・ツー・ビジネス（Ｂ２Ｂ）環境内にあり、たとえば、互いに依存する多数の関連アイテムを異なるサプライヤから購入することをその企図とする１つの組織内のワークフローがある。
【００５１】
本発明の実施態様は、意志決定プロセスが、スクリプトと明確な人為介入の組み合わせになる半自動で具体化してもよく、また意志決定プロセスが完全に定式化されて、スクリプトがそれを実行することのできる完全自動で具体化してもよい。
【００５２】
図５は、ここで説明したようなテクニックの具体化に使用することのできるコンピュータ・システム５００を示した概略図である。コンピュータ・システム５００上にインストールされた適切なオペレーティング・システムの下にコンピュータ・ソフトウエアが実行されて、ここで説明したテクニックの実施を援助する。このコンピュータ・ソフトウエアは、任意の適切なコンピュータ・プログラミング言語を使用してプログラムされ、特定のステップを達成するための多様なソフトウエア・コード手段を包含しているものと考えることができる。
【００５３】
コンピュータ・システム５００のコンポーネントには、コンピュータ５２０、キーボード５１０ならびにマウス５１５、およびビデオ・ディスプレイ５９０が含まれる。コンピュータ５２０は、プロセッサ５４０、メモリ５５０、入力／出力（Ｉ／Ｏ）インターフェース５６０、５６５、ビデオ・インターフェース５４５、およびストレージ・デバイス５５５を含んでいる。
【００５４】
プロセッサ５４０は、中央処理ユニット（ＣＰＵ）であり、オペレーティング・システムならびにそのオペレーティング・システムの下に実行されるコンピュータ・ソフトウエアを実行する。メモリ５５０は、ランダム・アクセス・メモリ（ＲＡＭ）および読み出し専用メモリ（ＲＯＭ）を含み、プロセッサ５４０の管理の下に使用される。
【００５５】
ビデオ・インターフェース５４５は、ビデオ・ディスプレイ５９０へ接続され、ビデオ・ディスプレイ５９０上に表示するためのビデオ信号を提供する。コンピュータ５２０を操作するユーザ入力は、キーボード５１０ならびにマウス５１５から提供される。ストレージ・デバイス５５５は、ディスク・ドライブもしくはそのほかの任意の適切なストレージ・メディアを含むことができる。
【００５６】
コンピュータ５２０内のそれぞれのコンポーネントは、データ・バス、アドレス・バス、およびコントロール・バスを含む内部バス５３０へ接続されており、コンピュータ５２０のコンポーネントがバス５３０を介して互いに通信することを可能にする。
【００５７】
コンピュータ・システム５００は、入力／出力（Ｉ／Ｏ）インターフェース５６５を介し、インターネット５８０として表されているネットワークへの通信チャンネル５８５を使用して、１ないしは複数の、ほかの類似のコンピュータへ接続することができる。
【００５８】
コンピュータ・ソフトウエアは、ポータブル・ストレージ・メディア上に記録されることもあり、その場合にはコンピュータ・ソフトウエア・プログラムが、コンピュータ・システム５００によってストレージ・デバイス５５５からアクセスされる。それに代えてコンピュータ・ソフトウエアが、コンピュータ５２０によってインターネット５８０から直接的にアクセスされるようにすることも可能である。いずれの場合においてもユーザは、キーボード５１０ならびにマウス５１５を使用してコンピュータ・システム５００とインタラクションを行い、コンピュータ５２０上において実行されているプログラム済みのコンピュータ・ソフトウエアを操作することができる。
【００５９】
このほかの構成もしくはタイプのコンピュータ・システムについても、ここで述べたテクニックの具体化に等しく使用することができる。上記のコンピュータ・システム５００は、ここで説明したテクニックの具体化に適した特定タイプのシステムの一例として述べられているに過ぎない。
【００６０】
当業者には明らかであろうが、各種の変形および修正を、ここで説明したテクニックならびに構成に対して行うことができる。
【図面の簡単な説明】
【００６１】
【図１】本発明を具体化するワークフロー・システムの概略図である。
【図２】本発明を具体化する別のワークフロー・システムの概略図である。
【図３】図１または２のワークフロー・システムに対する拡張を示した概略図である。
【図４】本発明を具体化するワークフロー方法のフローチャートである。
【図５】図１〜４を参照して説明したテクニックを実施するために適したコンピュータ・システムの概略図である。
【符号の説明】
【００６２】
１００  ワークフロー・システム
１０２  マッチメーキング・エンジン
１０４  タスク・プール
１０６  アクティビティ；タスク
１０８  クエリ
１１０  タスク・アドバタイズメント
１１２  タスク定義者
１１４  プロパティの値
１１５  インターフェース
１１６  オファー
１１８  タスク
２００  ワークフロー・システム
２０２  マッチメーキング・エンジン；ウェブ・サービス・マッチメーキング・エンジン
２０４  タスク・プール
２０６  データベース
２０８  タスク；アクティビティ
２１０  タスク
２１２  タスク定義者
２１５  インターフェース・ユニット
３００  拡張
３０２  アクター／サービス・インスタンス選択ユニット；アクター／サービス選択ユニット
３０４  アクター／サービス・プール；プールまたはデータベース
３０６  アクター／サービス・インスタンス
３０８  アクティビティ
４００  フローチャート
５００  コンピュータ・システム
５１０  キーボード
５１５  マウス
５２０  コンピュータ
５３０  内部バス
５４０  プロセッサ
５４５  ビデオ・インターフェース
５５０  メモリ
５５５  ストレージ・デバイス
５６０  入力／出力（Ｉ／Ｏ）インターフェース
５６５  入力／出力（Ｉ／Ｏ）インターフェース
５８０  インターネット
５８５  通信チャンネル
５９０  ビデオ・ディスプレイ
【図１】
2005196768.tif 000003
【図２】
2005196768.tif 000004
【図３】
2005196768.tif 000005
【図４】
2005196768.tif 000006
【図５】
2005196768.tif 000007