(57)【要約】【課題】  本発明は、ワークフロー自動生成システム、および、ワークフロー分析および制御システムを提供する。【解決手段】  本発明のワークフロー自動生成システムは、サービス記述を含む知識データベースと、前記知識データベース内の種々のサービス間の接続性をマッチングすることによって有効なワークフロー・モデルを生成する、ワークフロー・モデリング推論エンジンと、各ワークフローのシミュレーションを実行するシミュレータと、顧客要求を取得し、ワークフローのビューを表示する、グラフィカル・ユーザ・インタフェースと、を備える。【選択図】なし【特許請求の範囲】
【請求項１】
サービス記述を含む知識データベースと、
前記知識データベース内の種々のサービス間の接続性をマッチングすることによって有効なワークフロー・モデルを生成する、ワークフロー・モデリング推論エンジンと、
各ワークフローのシミュレーションを実行するシミュレータと、
顧客要求を取得し、ワークフローのビューを表示する、グラフィカル・ユーザ・インタフェースと、
を備える、ワークフロー自動生成システム。
【請求項２】
前記シミュレータはペトリ・ネット・シミュレータであり、
前記ペトリ・ネット・シミュレータは、各ワークフローをペトリ・ネットにマッピングすることによって、各ワークフローのシミュレーションを実行する、
請求項１に記載のシステム。
【請求項３】
前記グラフィカル・ユーザ・インタフェースは、ユーザへの一連の質問を通じて顧客要求を取得し、
前記一連の質問は、前記顧客要求を満足するワークフロー・オプションを絞り込む、
請求項１に記載のシステム。
【請求項４】
前記グラフィカル・ユーザ・インタフェースは、ワークフローのサービス・ビューと、該ワークフローのプロダクト・ビューと、該ワークフローのペトリ・ネット・ビューと、を表示する、請求項１に記載のシステム。
【請求項５】
実行されるべき種々の印刷ジョブの記述を提供する、ワークフロー・クライアント・サービスと、
プロセスおよびリソース依存性を含む、ワークフローの階層的依存グラフ表示および分析を実行する、ワークフロー分析サービスと、
前記印刷ジョブの実行を制御する、ワークフロー編成器と、
を備える、ワークフロー分析および制御システムであって、
前記ワークフロー・クライアント・サービスが前記ワークフロー分析サービスに入力を提供し、
前記ワークフロー分析サービスが前記ワークフロー編成器に入力を提供し、
前記ワークフロー・クライアント・サービスがＪＤＦの種々の印刷ジョブの記述を提供する、
ワークフロー分析および制御システム。
【請求項６】
前記ワークフロー分析サービスは、
前記ワークフロー・クライアント・サービスの入力のＪ−ＨＤＧ（定義２）表示と、
Ｊ−ＨＤＧの接続行列と、
をさらに備え、
前記接続行列が前記Ｊ−ＨＤＧ（定義２）表示をＪ−ＨＤＧ（定義６）表示に変換する、
請求項５に記載のシステム。
【請求項７】
前記ワークフロー分析サービスは、
前記ワークフロー・クライアント・サービスの入力のＲ−ＨＤＧ（定義３）表示と、
Ｒ−ＨＤＧの接続行列と、
をさらに備え、
前記接続行列がＲ−ＨＤＧ（定義３）表示をＲ−ＨＤＧ（定義６）表示に変換する、
請求項５に記載のシステム。
【請求項８】
前記ワークフロー分析サービスは、
前記ワークフロー・クライアント・サービスの入力のＪ−ＨＤＧ（定義２）表示と、
Ｊ−ＨＤＧの接続行列と、
前記ワークフロー・クライアント・サービスの入力のＲ−ＨＤＧ（定義３）表示と、
Ｒ−ＨＤＧの接続行列と、
をさらに備え、
前記Ｊ−ＨＤＧの接続行列が前記Ｊ−ＨＤＧ（定義２）表示をＪ−ＨＤＧ（定義６）表示に変換し、
前記Ｒ−ＨＤＧ接続行列が前記Ｒ−ＨＤＧ（定義３）表示をＲ−ＨＤＧ（定義６）表示に変換する、
請求項５に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ワークフロー自動生成およびワークフロー分析に関する。
【背景技術】
【０００２】
本開示は印刷ジョブに関連したワークフローについて特定用途を見出し、該特定用途に特に関連して説明する。
【０００３】
本開示の一の態様は、動的ＪＤＦワークフローについての階層的依存グラフに関する。ＪＤＦは、産業協同組合（ｉｎｄｕｓｔｒｙ  ｃｏｎｓｏｒｔｉｕｍ  ｂｏｄｙ）ＣＩＰ４によって提案されたジョブ定義フォーマット（Ｊｏｂ  Ｄｅｆｉｎｉｔｉｏｎ  Ｆｏｒｍａｔ）であり、プリ−プレスから、プレス、ポスト−プレスまでの印刷の生成および生産に含まれるすべての態様に影響する。ＪＤＦは、企業、部署、ソフトウェア、およびシステム間の印刷ジョブを記述するための共通語を提供する。ＪＤＦは、人間、機械、およびコンピュータを組み込むワークフロー自動生成のための基礎も提供する。しかし、ＪＤＦそれ自体は、系統立ったワークフロー仕様言語ではない。その代わりに、ＪＤＦワークフローは、多数のプロセス・ノードを含むジョブ記述として、暗黙的に記述される。ジョブ記述のプロセス・ノードの実行順序は、プロセス・ノード間のリソース依存として、暗黙的に定義される。ＪＤＦは、どのようにして未定義のプロセス・フローのシーケンスを駆動するかを、ＪＤＦベース・システムのＭＩＳまたはコントローラ要素の実装に委ねる。しかしながら、大半の既存の実装では、ＪＤＦワークフローが、実装においてハード−コードされているか、または限定された静的なＪＤＦワークフローのセットがサポートされているか、のいずれかである。十分に動的なＪＤＦワークフローを促進するために、プロセス・ノードとリソースとの間の依存性は、明示的に表現され、追跡されるべきであり、また、実装から完全に分断されるべきである。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明の課題は、上記に鑑み、ワークフロー自動生成システム、および、ワークフロー分析および制御システムを提供することである。
【課題を解決するための手段】
【０００５】
本開示の一の実施形態は、ワークフロー自動生成システムを開示する。本ワークフロー自動生成システムは、サービス記述を含む知識データベースと、知識ベースの種々のサービス間の接続性をマッチングさせることによって有効なワークフロー・モデルを生成するワークフロー・モデリング推論エンジンと、各ワークフローのシミュレーションを実行するシミュレータと、顧客要求を得てワークフローのビューを表示するためのグラフィカル・ユーザ・インタフェースと、を備える。
【０００６】
本開示の他の実施形態は、ワークフロー分析および制御システムを開示する。ワークフロー分析および制御システムは、実行されるべき種々の印刷ジョブの記述を提供するワークフロー顧客サービスと、階層的依存グラフ表示並びにプロセスおよびリソース依存を含むワークフロー分析を実行するワークフロー分析サービスと、印刷ジョブの実行を制御するワークフロー編成器(orchestrator)と、を備え、ワークフロー顧客サービスがワークフロー分析サービスへの入力を提供し、ワークフロー分析サービスがワークフロー編成器への入力を提供する。
【発明を実施するための最良の形態】
【０００７】
図１を参照すると、顧客要求および利用可能なサービスに基づいて有効なワークフロー・モデルを自動生成するために、ワークフロー・モデリング・セールス・ツールが使用される。本ツールは、次の４つの基本要素を有する。（１）サービス記述を含む知識ベース２、（２）知識ベースの種々のサービス間の接続性をマッチングすることとユーザの制限とを満足することによって、すべての有効なワークフロー・モデルを生成する、ワークフロー・モデリング推論エンジン４、（３）ペトリ・ネットにワークフローをマッピングすることによって、各ワークフローのシミレーションを実行する、ペトリ・ネット・シミュレータ６、並びに（４）（ａ）顧客要求を満足するワークフロー・オプションを絞り込む一連の質問１０を通じて顧客要求を得るため、および（ｂ）ワークフローのサービス、製品、およびペトリ・ネットを視覚化するための、ＧＵＩ８。
【０００８】
図２は、図１を参照して記載されたセールス・ツールの実施形態の構成図を図示する。
【０００９】
知識ベース２は、サービス・パラメータの詳細な記述と共に、利用できるサービスの記述を含む。サービス・パラメータは、ＸＭＬベースのＪＤＦおよび他の機能記述フォーマットを含む。サービス構造を、下記に示す。
【００１０】
Service (refID, devId, Service_Details
,[Constraints(InboundConstraints)]
,[Constrains(OutputConstraints)]
,[Attributes(Attributes))
,[Constrains(DataInputConstraints)]
,[Constraints(DataOutputConstraints)]
Product (prodID, prod_Details).
【００１１】
ＲｅｆＩＤは、サービスを表すユニークなＩＤである。入力および出力制限のリストは、サービスが受け入れるかまたはサービスが接続可能である、制御入力および出力から成る。たとえば、ＩｎｂｏｕｎｄＣｏｎｓｔｒａｉｎｔｓの（ｃｏｎｔｒｏｌ＿ｐｏｒｔ，ｔｃｐ＿ｉｐ，２）は、サービスが一度に２つのＴＣＰ/ＩＰ接続を許容することを意味する。数値２は、サービスが処理できるサービスの数を特定する濃度(cardinality)である。同様に、ＤａｔａＩｎｐｕｔＣｏｎｓｔｒａｉｎｔｓの（ｄａｔａ＿ｆｏｒｍａｔ，ｐｄｆ，１）は、サービスが一度に１つのｐｄｆ文書を許容することができることを意味する。Ａｔｔｒｉｂｕｔｅｓは、サービス遅延等のサービス中心パラメータのリストを含み、サービスに特有なさらなる制約を含んでいてもよい。Ｓｅｒｖｉｃｅ＿Ｄｅｔａｉｌｓ制約は、名称、バージョン等、サービスに特有なさらなる情報を含む。ｐｒｏｄＩＤ制約は、サービスがマッピングする製品に関する。製品は、製造業者、バージョン、コスト等の、ユニークなｐｒｏｄＩＤおよびデバイス中心パラメータを含む。サービスは、製品についてｎ対ｎの関係を有する。
【００１２】
図３（Ａ）を参照すると、推論エンジンは、種々のサービス間の有効な接続をチェックすることによって、すべての可能なワークフローを生成する。１つのサービスのすべての制御およびデータ出力パラメータが他のサービスの入力パラメータとマッチする場合には、２つのサービス間には有効な接続がある。ユーザがより多くの特定オプションを選択すると、ワークフロー・オプションは、絞り込まれる。
【００１３】
推論エンジンは、最初に、有効なサービスとユーザ要求とをマッチングさせることによって有効な経路の順列を生成し、次に、可能なワークフロー構造を生成する、すべての有効な経路のすべての組合せを生成する。図３（Ｂ）を参照すると、推論エンジンを用いて生成された有効なワークフローの例は、下記の通りである。
WF = A([], [B, C]), B([A], [D]), C([A], [D]), D([B,C], [E]), E([D], [])
【００１４】
上記構造は、５つのサービス、すなわち、Ａ，Ｂ，Ｃ，Ｄ，Ｅがあることを特定する。各タプル中の第１のリストは入力サービスを特定し、第２のリストは出力サービスのリストを特定する。これは、図３（Ｂ）に示すように、視覚的に表現できる。
【００１５】
ここで、Ａは、Ａが２つのサービスＢおよびＣに接続できることを意味する、２の出力濃度を有する。
【００１６】
上記表示は、各サービスが分岐条件および繰返しを示すように拡張可能である。たとえば、サービスＤについて、Ｄ（ｊ，ｂ，ｉ）は、結合条件と、分岐と、繰返し回数と、を示す。前述の表示Ｄ（ＯR，ＡＮＤ，０）を使用すると、ＤがＯＲ結合とＡＮＤ分岐とを有し、ループが許容されないことを意味する。
【００１７】
図３（Ｂ）に示す上記ワークフロー構造は、分析およびシミュレーションのために、ペトリ・ネット表示に変換できる。ペトリ・ネットは、ＡＮＤ，ＯＲ，ＸＯＲ等の種々の分岐条件のモデリングを可能にする。本ツールは、現在、単純な分岐および結合のワークフローをサポートしており、分岐条件の分析をサポートしていない。シミュレーションを実行するために、タイム・ペトリ・ネットのいくつかの特徴が使用される。
【００１８】
図４に示されるように、１つのサービスは、２つの遷移と1つの場とから成る一般構造を有する。場はトークンを保持し、遷移は、続行する場に利用できる十分なトークンがある時に発火する動的要素である。サービスは、２つの遷移およびその間の場によって表される。第１の遷移はすべての処理前条件が満足された時に発火し、第２の遷移はその処理が完了した時に発火する。これにより、我々は、サービスがまだジョブを処理していることを示す、トークンが中心の場にある時である状態を有することができる。
【００１９】
プロローグ中のトークン／ジョブの表示。
Token (job_id, time_spent, (pending_transition, delay_time))
job_id              −ジョブ数
time_spent          −ワークフローのレディ状態のジョブがキューで費やす時間
pending_transition  −トークンが待機している遷移
delay_time          −遷移における遅延または待ち時間
【００２０】
マーキングは、現在のペトリ・ネットの状態を示し、ペトリ・ネットのすべての場のベクトルである。
【００２１】
４つの場と２つのジョブとを有するペトリ・ネットの状態を示す、最初のマーキングの例：
marking([p1, [(job1, 0, (0, 0)), (job2, 0, (0, 0))], (p2, []), (p3, []), (p4, [])]) 
【００２２】
ここでは、遷移はある遅延と関連しており、また、そこにはグローバルな時計があり、該時計を通じて、能動的な種々の遷移が更新され、いつ発火すべきかを知る。トークンが得られる時に遷移が発火し、トークンは、元の場で、ある時間（遷移の遅延と等しい）待機する。１つ以上の遷移を有する分岐があり１つのトークンが利用できるようになる場合、発火を開始する準備ができた遷移が、ある時間経過後、最初に発火する。２つの遷移の遅延が等しい時には、両方の遷移は同時に発火する。
【００２３】
２つの遷移の遅延の合計は、サービス遅延に等しい。各ジョブは、グローバルな時間と、ネットで費やされた時間と、発火のために各遷移において費やされた時間と、を含む。最初の場のジョブ数と、ペトリ・ネット・ベースのワークフローにかかった合計および平均時間と、に基づいて、スループット合計が得られる。コスト関数は、各製品のコストの総和である。コストは、リソース活用の関数まで、拡張されてもよい。
【００２４】
リアル−タイムのワークフロー・シミュレーションを実行するために、単一のジョブを処理するために必要な様々な種類のリソース、共有されるリソース、および処理されるべき様々な種類のジョブがあってもよい。タイム・ペトリ・ネットは、リソース共有化を実現するために拡張されてもよい。カラー・ペトリ・ネットは、様々な種類のジョブおよび様々な種類のトークンがある時に、システムのモデリングを可能にする。このプロセスは、ジョブのキュー（ｑｕｅｕｅ）を含んでいてもよい。
【００２５】
多くの利用できるペトリ・ネット・ツールは、多くの分析およびシミュレーション・エンジンによって採用されたワークフロー管理連合規格（ＷｏｒｋＦｌｏｗ  Ｍａｎａｇｅｍｅｎｔ  Ｃｏａｌｉｔｉｏｎ  Ｓｔａｎｄａｒｄ）のペトリ・ネット・マークアップ言語（ＰＮＭＬ）を生成することによって、ペトリ・ネット・シミュレーションを実行可能である。
【００２６】
ユーザからワークフロー機能要求を取得するために、ＧＵＩ上でサービスの必要な属性が直接選択される、すなわち、ユーザは質問自動生成モジュールによって生成された質問に答えることができる。それらの質問は、最終的に、ワークフローのセットを絞り込む。
【００２７】
図５に示された質問自動生成モジュールは、あまり技術知識のない者のために開発された。ユーザは、自分の要求事項を満足するのに必要な種々のインタフェースを知っていなくてもよい。容易に理解され、知識ベースのサービス制限にマッピングされるように、質問が作られる。この質問自動生成モジュールは有効なワークフローを探すためのユーザの試行錯誤を最小限にし、選択される最小限の実行可能なセットにワークフローを削減するように制御を行う。サービス制約は、サービスの種類および出力制約等のカテゴリーに分類される。最適化された質問が属性の可能な組合せに基づいて生成される。該属性は最小数のワークフローを生成し、いまだ選択されていないものである。しかしながら、本モジュールはすべての利用できる制限について全数調査を実行するから、あまり効率的な技術ではない。適切な質問を選ぶためには、経験則を有することがより適している。
【００２８】
ユーザは、ユーザ・インタフェースのサービス制約も直接選択できる。サービス制約は、それらの制約の種類に基づいて、分類される。必要な仕様を含むすべての有効なワークフローが取得される。
【００２９】
図９、１０、１１に示されるように、３つの異なるワークフローのビュー、すなわち、サービス・ワークフロー・ビューと、デバイス・ワークフロー・ビューと、ペトリ・ネット・ベース・ワークフロー・ビューと、がそれぞれ生成される。ユーザがＧＵＩ内のワークフローとビューとを選択した時に、ノード位置座標とノード間のアークとから成るＸＭＬファイルが生成される。ここで考慮されたワークフローは、平面かつ非循環のグラフである。これらの座標は、分岐があるところではどこでも、変位を計算することによって生成可能である。
【００３０】
プロローグのワークフロー・モデラーから取得されるワークフロー構造は、分岐および結合を示すために、ネスティングされたリスト構造に変換されてもよい。
【００３１】
任意の二次元の非循環平面状のワークフローが、リストのネスティングとして表現可能である。リストは、大括弧[]に含まれた、コンマによって分離されている、要素の任意の長さの順序列である。要素は、単一のサービスであってもサービスの他のリストであってもよい。サービスは、それらの機能的属性および濃度（接続可能なサービスの数）がマッチする場合には、複数のサービスに接続可能である。
【００３２】
たとえば、図６（Ａ）に示されたワークフローは、［［［Ａ］，［Ｂ］，［Ｃ］］，［Ｄ］］として表すことができる。リスト内のすべての要素がワークフローを表すと仮定されており、すべてのサービスが単一のワークフローとして仮定されている。Ｌ1，Ｌ２が１つの要素（サービス／最小単位）を含む場合には、Ｌ１，Ｌ２がシーケンスに含まれる。すなわち、図６（Ｂ）に示すように、Ｌ１＝［ｓ１］、Ｌ２＝［ｓ２］である場合には、［Ｌ１，Ｌ２］＝［［ｓ１］，［ｓ２］］である。Ｌ１が１つの要素を含みＬ２がＸの要素を含む場合には、Ｌ１はＸ個の要素に接続すべきである。すなわち、Ｌ１＝［ｓ１］、Ｌ２＝［［ｓ２］，［ｓ３］，［ｓ４］］ならば、Ｘ＝３であり、図６（Ｃ）に示すように、［Ｌ１，Ｌ２］＝［［ｓ１］，［［ｓ２］，［ｓ３］，［ｓ４］］］である。Ｌ１がＸ個の要素を含みＬ２が１つの要素を含む場合には、Ｘ個の要素がＬ２に接続すべきである。すなわち、ここでは、図７に示すように、Ｌ１＝［ｓ１］，［ｓ２］，［ｓ３］，［ｓ４］およびＬ２＝［ｓ５］である。このアプローチはより容易な視覚化、分析容易なサブネット、および下記のような各レベルにおける階層的抽象化を可能にする。ＸＹ座標は、グラフを生成する上記構造を解析することによって生成可能である。この表現は、平面かつ非循環グラフには一義的である。自動レイアウト・グラフ・アルゴリズムは、ワークフローを視覚化できる。ＩＬＯＧによって供給されたＳＤＭビューワ（ＳＤＭＶｉｅｗｅｒ）は、市販のグラフ・レイアウト・ソフトウェア・パッケージであり、ＸＭＬファイルおよびスタイル・シートに記載されたビュー・フォーマットに基づいて、グラフを生成する。
【００３３】
図８は、上述のシステムの高水準の図を示す。図９、図１０、および図１２は、それぞれ、サービス、製品、およびペトリ・ネット構成の1つの実施形態を示す、スクリーン・ビューの１つの実施形態を示す。これらの構成は、ユーザ／顧客から視認可能であり、ワークフロー・モデリング・セールス・ツールを提供する。
【００３４】
例示的な実施形態の他の態様である図１２および１３を参照すると、本開示は、プロセスおよびリソース依存の調査を通じて、拡張ＤＡＧ構造である、たとえばＪＤＦ等の階層的依存グラフ（Ｈｉｅｒａｒｃｈｉｃａｌ  Ｄｅｐｅｎｄｅｎｃｅ  Ｇｒａｐｈ（HDG））を提供する、ワークフロー１２０を示す。ＨＤＧは、明白なワークフローの意味規則を提供するばかりでなく、ワークフロー分析１２２用のフォーマットの基礎も提供する。ＨＤＧの接続（ｃｏｎｎｅｃｔｉｖｉｔｙ）行列およびその変換を使用することによって、ＨＤＧの二重形式が構築可能であり、インタラクションの直交ビューおよびワークフロー要素１２４間の依存性を提供する。さらに、ＨＤＧベースのワークフロー分析は、不具合／例外処理のための分析技術を提供する。
【００３５】
ＪＤＦワークフローは、ＸＭＬにおいて遭遇する可能性のあるすべての製造プロセスおよびマテリアルのタイプを記述する階層的ジョブ・ツリー構造を通じて特定される。ＪＤＦワークフローは、各ワークフロー・ジョブの要求事項を満足する、リソース入力／出力リンクを通じて一続きにされている、ＪＤＦノードおよびリソースという２つの基本的要素を含む。種々のニーズに従って、ＪＤＦノードは、プロダクト・ノード（意図レベル）、プロセス・グループ・ノード、およびプロセス・ノード（実行レベル）の種類のいずれであってもよい。一般的に、ＭＩＳ／またはコントローラは、任意のプロダクト・ノードをプロセス・ノードにマッピングする必要があり、最終的に実行のための目的地に送られる。プロセスは、ＰＤＦファイルもしくは面付けデザイン等デジタル・データまたはペーパー・リフト等の物理的アイテムで実行される動作である。リソースは、デジタル・データまたは物理的アイテムそれ自体である。１つのプロセスの出力は次のプロセスの入力になり、その入力リソースが利用できるまではプロセスは開始しない。ＪＤＦは、並行プロセス、発生プロセス、併合プロセス、および動的プロセスを記述するために、これらのビルディング・ブロックをどのように使用するかを詳細に定義する。
【００３６】
図１４および１５は、ＪＤＦジョブ・ツリー構造および対応する処理手順の簡単な説明であり、処理手順はリソースによって連結されており、ＪＤＦルート・ノードｊｄｆは、３つのプロセス・ノードＰ１、Ｐ２、Ｐ３を含む。プロセスＰ１は入力リソースＲ１および出力リソースＲ２を含み、プロセスＰ２は入力リソースＲ３および出力リソースＲ４を有し、プロセスＰ３は入力リソースＲ２およびＲ４並びに出力リソースＲ５を有する。
【００３７】
非循環有向グラフは、同じ頂点で経路が開始・終了することのない、有向グラフである。それは、多くのスケジューリング・アプリケーションにおいて、演算式の一般的構造を表し、タスク・グラフおよび先行関係を表す点で非常に有用なグラフ構造である。階層的依存グラフ（ＨＤＧ）は、非循環有向グラフ（すなわち、ＤＡＧ）を、階層的構造を用いて拡張する。この開示の１つの態様は、２種類のＨＤＧを使用でき、１つの態様はジョブ中心（すなわち、プロセス中心）ＨＤＧ（Ｊ−ＨＤＧ）であり、他の態様はリソース中心ＨＤＧ（Ｒ−ＨＤＧ）である。これらのグラフ構造のフォーマット定義は、次の通りである。
【００３８】
定義１：ＨＤＧは、循環のないグラフＧ＝+Ｖ，Ｅであり、ここでＶ＝｛ｖ｜ｖi∈Ｖ，ｉ＝１，…，［Ｖ］｝は頂点のセットであり、Ｅ＝｛ｅ｜ｅk∈Ｅ，ｋ＝１，…，｜Ｅ｜｝は有向エッジのセットであり、ｅkはラベルを有する順序付けられた頂点のペアである。すなわち、ｅk＝（ｖi，ｖj，λk）であり、ここでｖi，ｖj∈Ｖは、それぞれ、エッジｅkの頂点内および頂点外であり、λkはｅkの記号ラベルである。ＨＤＧ  Ｖ’φＶ内のある頂点については、頂点自体の中にDAGを含んでいてもよい。
【００３９】
Ｊ−ＨＤＧにおいて、ＪＤＦノードは頂点であり、それらの入力エッジは入力リソースでラベル付けされており、出力エッジは出力リソースである。頂点がどのＪＤＦノード・タイプに属するかに従って、Ｊ−ＨＤＧ内の各頂点は、最小単位の要素となるか（すなわち、ＪＤＦプロセス・ノード）、または、さらにＤＡＧ自体に分解されるか（すなわち、ＪＤＦプロダクト・ノードまたはプロセス・グループ・ノード）、のいずれかであってよい。Ｊ−ＨＤＧは、柔軟なＪＤＦ階層的構造を保持するだけでなく、ＪＤＦノード間の制御手順を明示的に表す。Ｊ−ＨＤＧ構造をＭＩＳ／またはコントローラ設計に組み込むことによって、十分に動的なワークフローをサポートできるように、実装において、ハード−コードされたワークフロー制御手順を避けることができる。明示的なジョブ中心依存表示を用いると、Ｊ−ＨＤＧは、ＪＤＦジョブ構造と新生の明示的なワークフロー記述基準との間の中間的なステップでもある（すなわち、ＢＰＥＬ，ＢＰＭＬ）。ＪＤＦを適切にＢＰＥＬからＢＰＭＬへ、あるいは、ＢＰＭＬからＢＰＥＬへマッピングすることにより、最終的に、標準的ワークフロー記述を通じて、ＪＤＦワークフローを切れ目無く編成することができる。
【００４０】
定義２：Ｊ−ＨＤＧはＨＤＧ  Ｇ＝+Ｖ，Ｅであり、ここでＶ＝｛ｖ｜ｖi∈Ｖ，ｉ＝１，…，［Ｖ］｝は頂点のセットであり、Ｅ＝｛ｅ｜ｅk∈Ｅ，ｋ＝１，…，｜Ｅ｜｝は有向エッジのセットである。ＮはＪＤＦノードのセットを表し、ＲはＪＤＦリソースのセットを表す（ＪＤＦノードと直接リンク可能であり、分割したリソースを含む）。任意の所与のＪＤＦジョブ記述の外部のソースおよびターゲットの頂点は、それぞれ、一般的に、αおよびβと表される。それゆえ、任意のｅk∈ＥについてＶ＝ＮＹ｛α，β｝であり、ｅk＝（ｖiｖj，λk）である。ここでｖi，ｖj∈Ｖは、それぞれ、エッジekの頂点内および頂点外であり、λk∈Ｒである。
【００４１】
しかしながら、Ｒ−ＨＤＧにおいて、ＪＤＦリソースは頂点であり、それらの入力エッジはそれらを生産したＪＤＦノードであり、出力エッジはそれらを消費したＪＤＦノードである。すべてのＪＤＦリソースが分割可能であるから、分割リソース部分を有する各ＪＤＦリソースについては、分割された部分間の先行関係はＤＡＧで記述される。それゆえ、Ｒ−ＨＤＧ中の各リソースの頂点は、ＤＡＧそれ自体を潜在的に含む。
【００４２】
定義３：Ｒ−ＨＤＧはＨＤＧ  Ｇ＝+Ｖ，Ｅであり、ここでＶ＝｛ｖ｜ｖj∈Ｖ，ｉ＝１，…，［Ｖ］｝は頂点のセットであり、Ｅ＝｛ｅ｜ｅk∈Ｅ，ｋ＝１，…，｜Ｅ｜｝は有向エッジのセットである。ＮはＪＤＦノードのセットであり、ＲはＪＤＦリソースのセットであり（ＪＤＦノードと直接リンク可能である）、δは分割されたリソース間のリソース先行関係のセットを表す。それゆえ、任意のｅk∈Ｅ，ｅk＝（ｖiｖj，λk）についてＶ＝Ｒであり、ここでｖi，ｖj∈Ｖは、それぞれ、エッジｅkの頂点内および頂点外であり、λk∈ＮＹδである。
【００４３】
図１６（Ａ）はＪＤＦジョブ・ツリー（ワークフロー・インスタンス）の簡単な例を、図１６（Ｂ）はその派生したＪ−ＨＤＧの表示を（１つは上位レベルであり、１つは下位プロセス実行レベルである）を示す。図１６（Ｃ）のプロセス実行レベルにおけるＪＤＦノードは、所与のワークフロー内でスケジュール化および編成化可能な最小ワーク単位である。
【００４４】
図１７（Ａ）はＪＤＦワークフローの例を示す。ワークフローは、分割されたリソースおよび２つのレベル（上位レベル・リソース（図１７（Ｂ））および分割されたリソースレベル（図１７（Ｃ）））における派生したＲ−ＨＤＧ表示を含む。上位レベルのリソースは、ユニークなリソースＩＤによって特定され、ネスティングする分割されたリソースは、一連のリソースＩＤ／パートＩＤ（キー）等として特定される。リソースＲ２は２つの分割されたリソースＲ21およびＲ22を有し、Ｒ21はＲ22に先行する。Ｒ−ＨＤＧは、リソースの種類に従って、フィルタ処理される。たとえば、ドキュメントの種類のＪＤＦリソース（すなわち、ラン・リスト（ＲｕｎＬｉｓｔ）、ファイル・スペック（ＦｉｌｅＳｐｅｃ）等）が特定された場合には、ワークフローのドキュメント中心のビューを提供するために、より単純かつ簡潔なＲ−ＨＤＧサブ−グラフが、形成可能である。
【００４５】
線形グラフとしては、ＨＤＧの構造が、発生（Ｉｎｃｉｄｅｎｃｅ）行列およびその演算（たとえば、加算、乗算、転置等）によって表現可能である。この部分は、さらにＨＤＧ接続行列を定義するために、ＨＤＧ発生行列の定義を提供する。接続行列から、Ｊ−ＨＤＧおよびＲ−ＨＤＧの変換が生じる。
【００４６】
定義４：Ｖ頂点およびＥエッジのＨＤＧ  Ｇの発生行列は、次数［Ｖ］および｜Ｅ｜の行列Ｍ＝［ｍij］であり、ここで、エッジｊが頂点ｉにおいて発生し、頂点ｉから離れた方向に向いている場合にはｍij＝１であり、エッジｊが頂点ｉにおいて発生し、頂点ｉの方向に向いている場合にはｍij＝−１であり、これら以外の場合はｍij＝０である。
【００４７】
たとえば、図１６（Ａ）、（Ｂ）、（Ｃ）の例で与えられた例についてのプロセス実行レベルにおけるＪ−ＨＤＧの発生行列が、図１８に示されている。図１８において、行列Ｍの各列は、丁度２つの非ゼロ数値を有する（１つは+１であり、もう１つは−1である）。+１は列を示す出力エッジであり、−１は列を示す入力エッジである。
【００４８】
定義５：ＨＤＧの接続行列は、ＪＤＦノードと所与のＪ−ＨＤＧまたはＲ−ＨＤＧとの間の接続性を示し、ここでＪ−ＨＤＧの接続行例は、次数｜Ｎ｜および｜Ｒ｜の行列ＣJ-HDG＝［ｃij］であり、ここで各列ｃjは、同じリソース・ラベルを有するＪ−ＨＤＧの発生行列の任意の列の加算である（αおよびβの行を除く）。
【００４９】
たとえば、上記図１７（Ａ）、（Ｂ）、（Ｃ）から派生したＪ−ＨＤＧの接続行列は、次の通りである。図１９に示すように、図１７に示す行列の２つの列（ｅ0およびｅ1）のみが、同じリソース・ラベル（Ｒ０）を共有する。このため、Ｃinterimに示すように、ｃ1＝ｅ0+ｅ1である。図１９に示す最終的な接続行列ＣJ-HDGは、αおよびβの行のみが取り除かれたＣinterimと同じである。図１９では、行列Ｃの各列がユニークなＪＤＦリソースを示し、ここで各正数はそのリソ−スの生産者であることを示し、各負数は同じリソースの消費者であることを示すことに留意されたい。ノードＰiによって生産されたＪＤＦリソースが、たとえば、両ノードＰkおよびＰlによって消費された共有出力リソースである場合には、ｃij＝+２，ｃkj＝−1，およびＣlj＝−１である。同様に、リソースが１つより多いノードによって生産され（すなわち、各ノードが非重複のリソース部分を生産する場合には平行な経路を通じて、または、それ以外の場合には専用経路を通じて、のいずれかのＰiおよびＰk）、ノードＰlによって消費される場合には、ｃij＝+１、ｃkj＝+１、ｃlj＝−２である。所与のワークフローについての最初の入力（たとえば、本例ではＲ０）であるリソースを除いて、行列ＣJ-HDGの列内のすべての非ゼロ数値は負であり、最後の出力リソース（たとえば、本例ではＲ４）はすべて正数である。これら以外の場合には、行列ＣJ-HDGの各列（中間リソース）のすべての非ゼロ数値の合計は０である。
【００５０】
図１９は、プロセス実行レベルにおける、ＪＤＦワークフロー（図１６（Ａ）、（Ｂ）、（Ｃ）で提供された）から派生した接続行列を示す。本行列は、以下に定義される行列ロ−ル−アップ処理を通じて、より高水準（たとえば、ＪＤＦプロセス・グループ・レベル、意図レベル）のワークフローの接続行列に適切に変換可能である。
【００５１】
定義６：行列ロール−アップ処理は、所与の接続行列から次のレベル・アップ接続行列を構築するためのプロセスである。２つのステップが含まれている。（１）次のレベル・アップＨＤＧの隠れエッジを表す列を取り除く。（２）すべての関連する行を同時に加えることによって、次のレベル・アップＨＤＧの単一のノードと衝突する行を併合する。生じる接続行列は、最初の行列と同じ意味規則を保持する。
【００５２】
図２０は、上記行列ロール−アップ処理を適用することによって図１９のＣJ-HDGから変換された接続行列Ｃ’J-HDGを示す。同様に、ロール−アップ処理は、図１７（Ａ）、（Ｂ）、（Ｃ）で提供された例に適用可能である。分割リソースを有する対応する接続行列ＣR-HDGおよびＣ’R-HDGが図２１に示される。
【００５３】
Ｊ−ＨＤＧおよびＲ−ＨＤＧは、直感的にＨＤＧの二重形式であり、Ｊ−ＨＤＧはジョブ中心ビューを提供し、Ｒ−ＨＤＧはリソース中心ビューを提供する。二重ＨＤＧ（たとえば、Ｒ−ＨＤＧ）の構築は、オリジナルのＨＤＧ（たとえば、Ｊ−ＨＤＧ）の接続行列を転置することによって実現でき、逆も同じである。つまり、CJ-HDG＝ｔｒａｎｓｐｏｓｅ（ＣR-HDG）またはＣR-HDG＝ｔｒａｎｓｐｏｓｅ（ＣJ-HDG）である。
【００５４】
定義７：Ｊ−ＨＤＧ→Ｒ−ＨＤＧ変換処理は、次のステップを有する。（１）オリジナルのＪ−ＨＤＧの接続行列を構築する。（２）行と列とを入れ替えることによってオリジナルの接続行列を転置する。（３）各行はＲ−ＨＤＧ内のノードであり、各列はＲ−ＨＤＧ内の有向エッジのラベルである。ここで、負数は入力エッジを表し、正数は出力エッジを表す。数値それ自体はエッジの重みを表し、エッジの重みは含まれるリソース・インスタンスの数を表す。
【００５５】
定義８：定義７と同様に、Ｒ−ＨＤＧ→Ｊ−ＨＤＧ変換処理は、次のステップを有する。（１）オリジナルのＲ−ＨＤＧの接続行列を構築する。（２）行と列とを単に入れ替えることによってオリジナルの接続行列を転置する。（３）各行はＪ−ＨＤＧのノードであり、各列はＪ−ＨＤＧの有向エッジ上のラベルである。ここで、負数は入力エッジを表し、正数は出力エッジを表し、数値それ自体はエッジの重みを表す。（４）グラフを完成するために、外部ソース・ノードαおよびターゲット・ノードβを加える。
【００５６】
図２２（Ａ）、（Ｂ）は、図１６（Ａ）、（Ｂ）、（Ｃ）に示す例のＪ−ＨＤＧから変換されたＲ−ＨＤＧを示す。同様に、図２３は、図１７に示す例のＲ−ＨＤＧから変換されたＪ−ＨＤＧを示す。図２２（Ａ）、（Ｂ）では、すべてのリソースは分割リソースを有しないダイレクト・リソースであり、Ｒ０、Ｒ１、Ｒ２、Ｒ３、Ｒ４のみが上位レベル（すなわち、プロセス・グループ）のワークフローにおいて視認可能であり、他方、Ｒ１’、Ｒ２’、Ｒ３’、Ｒ４’が特定のプロセス・グループの内部のリソースであることに留意されたい。しかしながら、図２３では、リソース構造は２つのレベルであるが、ワークフロー構造は１つのみのレベルである（種々のリソース・ラベルを有する１つの接続形態）。１つのワークフロー・インスタンスが、ジョブ構造および階層的リソース構造の両方を含むことが可能である。
【００５７】
正式なグラフ構造でＪＤＦワークフローおよびその対応する行列を表すことは、目視検査および直感ではなく、厳密な分析手続による正式なワークフロー分析を可能にする。多くの人工知能分野におけるＤＡＧの理論およびその応用（決定木、ベイズ・ネットワーク、機械学習等）は、このようなワークフロー分析フレームワーク［２］の基礎を提供する。Ｊ−ＨＤＧおよびＲ−ＨＤＧにおける異なる抽象化の価値は、それらの視覚化の利益およびオリジナルのＨＤＧと同じ方法で分析可能な結果として得られるＨＤＧの利益による。ＨＤＧで使用される動作および変換は、分析手続の同じコア・セットを用いた分析が可能な他のＨＤＧを生じさせる。これは重大な特徴である。これにより、所与のワークフローの種々の関連した表現を可能にする。
【００５８】
記述されたＪ−ＨＤＧおよびＲ−ＨＤＧの２つのＨＤＧは、所与のＪＤＦワークフローについて直交表現を提供し、ワークフロー要素の明示的な表示（すなわち、プロセス・ノードおよびリソース）を可能にする。ＨＤＧは、所与のワークフロー、たとえばＪＤＦを有効にするために使用される。有効化プロセスは、要素間の循環（すなわち、デッドロック）、リソースの消失または錯綜等の判断を行なう。さらに、ＪＤＦワークフロー実行および管理を促進するために、ＨＤＧは、ＭＩＳ／コントローラに、異なる抽象化を有する意味規則の多い情報を提供する。たとえば、プロセス・ノードが無効にされると、ＨＤＧは、実行できなかった他のプロセスの有効な判断を可能にする。他の例については、リソースが利用できない場合には、ＨＤＧは、実行される他のリソースの有効な判断を可能にする。これらの例は、網羅的なリストではない。図１６（Ａ）、（Ｂ）、（Ｃ）に示すように、プロセス・ノードＰ１が無効にされると、そのＪ−ＨＤＧ、Ｐ３、Ｐ４、Ｐ５は、それらの間の接続性が原因で実行できない。
【００５９】
他方、（図２２（Ａ）、（Ｂ）において）リソースＲ１’がそのＲ−ＨＤＧから判断されるように利用できない場合には、実行されるリソースはＲ3、Ｒ４’、Ｒ５である。Ｊ−ＨＤＧおよびＲ−ＨＤＧの両方から提供された情報に基づいて、ＭＩＳ／コントローラは、詳細なステータスを適切に報告し、それに従って実行を調整する。
【００６０】
不具合／例外が存在する重要なワークフローの単純な失敗が重大な故障につながることがある。それゆえ、任意のワークフロー管理システムは、このような不具合／例外を処理すると共にワークフローの一貫した信頼できる実行を保証する柔軟なメカニズムを必要とする。市販のワークフロー・エンジンにおける不具合／例外処理は、システムの不具合（たとえば、システム・クラッシュ）の後に持続的なデータの復帰を保証するだけである、トランザクション・ベースのメカニズムに大半が限定されている。これは、予想される不具合の非常に柔軟性のない処理をするだけである。本開示は、タスク間（またはリソース間）依存性（Ｊ−ＨＤＧ／Ｒ−ＨＤＧ内の接続情報等）についてのより多くの情報を提供する。その結果、柔軟な不具合処理方法が実現できる。
【００６１】
たとえば、図１６（Ａ）に示されるワークフローを参照して、ドキュメント・リソース（Ｒ１'）を必要とするが、該ドキュメント・リソースを得られないためにプロセスＰ３に不具合が生じたと仮定する。図１６（Ｂ）、（Ｃ）のＪ−ＨＤＧまたは図２２（Ａ）、（Ｂ）のＲ−ＨＤＧを参照すると、プロセスＰ１がＲ１’の生産者であると判断される。それゆえ、Ｐ１が、この不具合の根本原因である。すなわち、Ｐ３のＪ−ＨＤＧの臨時連結は、ｅ２＝（Ｐ１，Ｐ３，Ｒ１'）である。本システムは、この状況およびその根本原因を判断し、本ワークフローの同じ目的を実現する新しい実行経路を構築できる。本例では、新しい実行経路は図２４に示されるプロセスＰ１の再実行プロセスを含んでいてもよい。Ｊ−ＨＤＧまたはＲ−ＨＤＧの分析は、Ｐ１の再実行がプロセスＰ２のステータスおよびその対応するリソースに影響しないと結論付ける。Ｐ４およびＰ５等の残りのプロセスは、Ｐ３の後に実行される。それゆえ、「回復した」実行経路は、ワークフローの一貫性を維持する。つまり、本方法は、Ｊ−ＨＤＧまたはＲ−ＨＤＧに供給された接続性情報を使用しており、残りのワークフロー実行経路を動的に調整する。本方法は、不具合の根本原因を突き止めるから、既存の処理ベース・メカニズムに比べてより柔軟かつ正確である。
【図面の簡単な説明】
【００６２】
【図１】ワークフロー自動生成の実施形態のブロック図である。
【図２】ワークフロー自動生成の他の実施形態のブロック図である。
【図３】（Ａ）は、ワークフロー・モデリング推論エンジンのブロック図であり、（Ｂ）は、有効なワークフローの表示である。
【図４】一般的なサービス構造の表示である。
【図５】顧客要求を取得するための自動質問生成器のブロック図である。
【図６】（Ａ）、（Ｂ）、（Ｃ）は、ワークフローのリスト表示である。
【図７】ワークフローのリスト表示である。
【図８】ワークフロー自動生成の実施形態のブロック図である。
【図９】ワークフロー自動生成のサービス・ビューである。
【図１０】ワークフロー自動生成のプロダクト・ビューである。
【図１１】ワークフロー自動生成のペトリ・ネット・ビューである。
【図１２】入力及び出力を含むワークフロー用のＨＤＧのブロック図である。
【図１３】ワークフロー用のＨＤＧのブロック図である。
【図１４】ＪＤＦジョブ・ツリーの例である。
【図１５】プロセス・シーケンス・チェーンの例である。
【図１６】（Ａ）、（Ｂ）、（Ｃ）はＪＤＦワークフローおよび、関連するＪ−ＨＤＧ表示の例である。
【図１７】（Ａ）、（Ｂ）、（Ｃ）はＪＤＦワークフロー、階層的リソース構造、Ｊ−ＨＤＧおよびＲ−ＨＤＧ表示の例である。
【図１８】発生行列である。
【図１９】接続行列である。
【図２０】変換された接続行列である。
【図２１】Ｒ−ＨＤＧの接続行列である。
【図２２】（Ａ）および（Ｂ）は、変換されたＨＤＧ行列である。
【図２３】変換されたＨＤＧである。
【図２４】回復したＪ−ＨＤＧのブロック図である。
【符号の説明】
【００６３】
２  知識ベース
４  ワークフロー・モデリング推論エンジン
６  ペトリ・ネット・シミュレータ
８  グラフィカル・ユーザ・インタフェース
【図１】
2005317007.tif 000002
【図２】
2005317007.tif 000003
【図３】
2005317007.tif 000004
【図４】
2005317007.tif 000005
【図５】
2005317007.tif 000006
【図６】
2005317007.tif 000007
【図７】
2005317007.tif 000008
【図８】
2005317007.tif 000009
【図９】
2005317007.tif 000010
【図１０】
2005317007.tif 000011
【図１１】
2005317007.tif 000012
【図１２】
2005317007.tif 000013
【図１３】
2005317007.tif 000014
【図１４】
2005317007.tif 000015
【図１５】
2005317007.tif 000016
【図１６】
2005317007.tif 000017
【図１７】
2005317007.tif 000018
【図１８】
2005317007.tif 000019
【図１９】
2005317007.tif 000020
【図２０】
2005317007.tif 000021
【図２１】
2005317007.tif 000022
【図２２】
2005317007.tif 000023
【図２３】
2005317007.tif 000024
【図２４】
2005317007.tif 000025