(57)【要約】【課題】自由度があり、設定可能なジョブワークフロー処理用の方法、システム、および装置。【解決手段】本発明の特徴および態様は、設定可能なテンプレートからワークフローモデルを作成することを可能にする。ワークフローモデルは、それぞれが１つまたは複数のプロセスを含む１つまたは複数の段階を含むことができ、各プロセスは、１つまたは複数のステップを含む。段階、プロセス、およびステップは、対応するテンプレートの設定パラメータによって完全に定義され得る。ワークフローモデルを定義する情報と、実行されるジョブについてのジョブ情報とは、統合したデータベース内のエントリとされるので、ワークフローモデル情報およびジョブ情報の作成および更新は、単なるデータベースへの問い合わせおよびデータベースの更新として実行される。【選択図】図６
2009532791.tif 000002
【特許請求の範囲】
【請求項１】
ワークフロー処理システムを管理する方法であって、
前記ワークフロー処理システムによって処理されるべき１つまたは複数のジョブに関するジョブ情報をデータベースに保存する保存ステップと、
前記データベース内の前記ジョブ情報に関連する１つまたは複数のジョブを処理するワークフローモデルを作成するステップであって、前記ワークフローモデルは前記データベースに保存され、前記ワークフローモデルは、設定可能なテンプレートから作成される作成ステップと、
前記データベース内の前記ワークフローモデルを使用して、かつ前記データベース内の前記ジョブ情報を使用して、１つまたは複数のジョブを処理する処理ステップとを含む、ことを特徴とする方法。
【請求項２】
前記作成ステップはさらに、
前記ワークフロー処理システムの１つまたは複数の段階を前記データベースにエントリとして設定し、各段階は１つまたは複数のプロセスを含み、各プロセスは１つまたは複数のステップを含み、前記段階、プロセス、およびステップは、対応するテンプレートにより完全に設定されるステップと、
前記１つまたは複数のステップの間の１つまたは複数の移行処理をエントリとしてデータベースシステムに設定するステップとを含む、ことを特徴とする請求項１に記載の方法。
【請求項３】
前記作成ステップは、
前記ワークフローモデルの前記１つまたは複数のステップに関連する制限を定義する定義ステップと、
前記定義した制限を適用して、設定したすべての段階、プロセス、またはステップを検証する検証ステップとをさらに含む、ことを特徴とする請求項２に記載の方法。
【請求項４】
前記データベースから、１つまたは複数の段階に関する前記データベースから段階情報を取り出し、前記データベースから１つまたは複数の移行処理を取り出す取り出しステップと、
前記データベース内のジョブ情報を使用して、前記取り出した１つまたは複数の移行処理に従って前記取り出した１つまたは複数の段階を実行する実行ステップとをさらに含む、ことを特徴とする請求項１乃至３のいずれか１つに記載の方法。
【請求項５】
ワークフロー処理用のシステムであって、
１つまたは複数のワークフローモデルを保存し、対応するワークフローモデルに従って処理されるジョブに関するジョブ情報を保存するデータベースと、
前記データベースに接続され、前記データベース内の前記ジョブ情報および前記ワークフローモデルを使用してジョブを実行するように構成され、さらに、前記データベースに保存されるワークフローモデルを作成し、修正するように構成される計算ノードとを有し、
前記計算ノードは、テンプレートから前記ワークフローモデルを作成するように構成される、ことを特徴とするシステム。
【請求項６】
前記計算ノードは、主計算ノードとされ、
前記システムは、
ジョブを実行するために、それぞれが前記データベース内の前記ジョブ情報および前記ワークフローモデルにアクセスするように構成された１つまたは複数の補助計算ノードをさらに有する、ことを特徴とする請求項５に記載のシステム。
【請求項７】
前記１つまたは複数の補助計算ノードは、前記主計算ノードに接続され、前記主計算ノードを介して前記データベースに間接的にアクセスする、ことを特徴とする請求項６に記載のシステム。
【請求項８】
ワークフローモデルは、
１つまたは複数の段階を含んでいて、各段階は１つまたは複数のステップを含み、さらに、前記１つまたは複数の段階のそれぞれにある前記１つまたは複数のステップの間の移行処理を含み、
前記テンプレートには、
ワークフローモデルの新たな段階を定義する段階テンプレートと、
ワークフローモデルの段階の新たなプロセスを定義するプロセステンプレートと、
ワークフローモデルにある段階を構成するプロセスの新たなステップを定義するステップテンプレートとがさらにあり、
前記段階テンプレートおよび前記ステップテンプレートはそれぞれ、前記計算ノードが前記新たな段階および前記新たなステップを設定するのを可能にする属性を含む、ことを特徴とする請求項５乃至請求項７のいずれか１項に記載のシステム。
【請求項９】
コンピュータシステムにロードされ、そこで実行されるときに、請求項１乃至請求項４のいずれか１つによる方法のすべてのステップを前記コンピュータシステムに実行させるプログラムコードを有する、ことを特徴とするコンピュータプログラム。
【請求項１０】
関数型データを有するデータ担体であって、
前記関数型データは、
コンピュータシステムにロードされ、それによって実行されるときに、前記コンピュータシステムが、請求項１乃至請求項４による方法のすべてのステップを実行することを可能にする関数型コンピュータデータ構造を有する、ことを特徴とするデータ担体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ワークフローシステムの分野に関し、特に、大半を顧客が設定できるようにし、それと同時に、機能豊富で複雑なワークフロープロセスを定義できるようにするワークフローシステム用設計ツールに関する。
【背景技術】
【０００２】
各種のシステムでは、一続きのステップを通じて情報を処理するプロセスが必要である。
一般的に、そのようなシステムの多くは、ワークフローシステムとしてモデル化、および管理され、各ステップは、入力を受け取り、何らかの態様でその入力を処理し、生成した出力をプロセス内の１つまたは複数の次のステップに送る。
そのようなステップからなる全プロセスは、プロセスまたはジョブといわれることがある。
ワークフローシステムは、ワークフロープロセス全体を通じて、代替のパスまたはオプションに対する条件付き評価を含む、一続きの複雑なステップのモデル化を可能にすることが多い。
【０００３】
そのようなワークフローシステムは、特定の応用分野に係わるプロセスをモデル化するために、幅広い種類のワークフローに頻繁に利用される。
特に、ワークフローシステムを利用して、データ処理システムのワークフローをモデル化することが多く、その場合に、プロセスのステップで入力データを受け取り、これを様々な態様で処理し、生成したデータをプロセスの次のステップに適用する。
ワークフローシステムはまた、例えば、製造環境でよく見られる工程管理システムを含む、他の様々な応用分野の他の多数のシステムをモデル化するのに適用することができる。
【０００４】
ワークフローシステムは、特定のワークフロー処理用途向けにカスタマイズしたコンピュータプログラムを設計し、コーディングするシステムアナリストおよびプログラマによって設計され、コーディングされた専用プログラムとして開発されることもある。
そのようなカスタマイズされたコンピュータプログラムは、基礎をなすプロセスをきわめて綿密にモデル化することができるが、ほとんどの環境では、法外な開発および保守費用がかかる。
その他、より一般的なユーザが、例えば、カスタムコンピュータプログラムを作るのに熟練したスタッフを必要とすることなく、新たなプロセスモデルを作成するためのツールを提供するワークフローモデル化システムもある。
これらのプロセスモデル化用設計ツールは、新たなプロセス用のモデルを作る際と、作成したプロセスモデルを保守する際にエンドユーザの助けとなり、それによって、熟練したコンピュータプログラマおよびシステムアナリストの必要性を低めるか、またはなくす。
技術を持ったエンドユーザによるある程度のカスタム化を可能にする市販製品として、いくつものワークフローシステムを入手することができる。
例えば、ＩＢＭは、印刷システムの管理に関するワークフロープロセスをモデル化するインフォプリントワークフロー（「ＩＰＷ」）と称する製品を提供している。
ＩＰＷは当業者に広く知られており、ＩＰＷに関する情報は、ＷＷＷ．ｉｂｍ．ｃｏｍから容易に入手することができる。
【０００５】
今日ある市販のワークフローモデル化用設計ツール製品には、簡単に使用でき、そのため、コストをかけて訓練されたコンピュータプログラミングの専門家を置く必要がないものもある。
しかし、そのようなシステムのほとんどは過度に単純化されていて、複雑なプロセスをモデル化することができない。
他の市販されているワークフローモデル化設計ツールは複雑であり、そのため、ほとんどのユーザが、必要な設置、設定、およびカスタマイズを行うのに、今まで通り、高度に訓練された専門家の助けを必要とするような設計の複雑さを伴う。
さらに、そのようなシステムは非常に複雑であるので、ワークフロー定義に対するあらゆる保守にも、コストをかけて高度に訓練したコンピュータ専門家の助けが必要なことがある。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
複雑なワークフローシステムをモデル化する場合でさえも高い自由度をもたらし、さらに、あまり技術を持たないエンドユーザがワークフローシステム設計ツールを利用して、ワークフローシステムを容易に定義し、維持することを可能にする、単純で使いやすいアーキテクチャをもたらす改良したワークフローシステムが必要であるのは上記の説明から明らかである。
【課題を解決するための手段】
【０００７】
上記に鑑み、本発明は、第１の態様において、ワークフロー処理システムの管理方法を提示し、その方法は、ジョブ情報をデータベースに保存し、そのジョブ情報は、ワークフロー処理システムによって処理される１つまたは複数のジョブに関することと、データベース内のジョブ情報に関連する１つまたは複数のジョブを処理するワークフローモデルを作成し、そのワークフローモデルはデータベースに保存され、設定可能なテンプレートから作成されることと、データベース内のワークフローモデルを使用し、かつデータベース内のジョブ情報を使用して、１つまたは複数のジョブを処理することを含む。
【０００８】
好ましくは、作成ステップはさらに、ワークフロー処理システムの１つまたは複数の段階をデータベースのエントリとして設定し、各段階は１つまたは複数のプロセスを含み、各プロセスは１つまたは複数のステップを含み、段階、プロセス、およびステップは、対応するテンプレートから完全に設定されることと、１つまたは複数のステップの間の１つまたは複数の移行処理をデータベースシステムのエントリとして設定することとを含む。
【０００９】
好ましくは、作成ステップはさらに、ワークフローモデルの１つまたは複数のステップに関連する制限を定義し、定義した制限を適用することによって、設定したすべての段階、プロセス、またはステップを検証することを含む。
【００１０】
好ましくは、実行ステップはさらに、１つまたは複数の段階に関するデータベースから段階情報を取り出し、かつデータベースから１つまたは複数の移行処理を取り出すことと、データベース内のジョブ情報を使用して、取り出した１つまたは複数の移行処理に従って、取り出した１つまたは複数の段階を実行することとを含む。
【００１１】
方法はさらに、作成したワークフローモデルの実行経過をワークフロー処理システムのユーザに示すことを含むことができる。
【００１２】
方法はさらに、実行中の特定した箇所で作成したワークフロープロセスのこれ以上の実行を中止することを含むことができる。
【００１３】
好ましくは、作成したワークフローモデルは、それぞれが１つまたは複数のステップを含む１つまたは複数の段階を含み、中止ステップはさらに、１つの段階から他の段階への移行処理部で、作成したワークフロープロセスのこれ以上の実行を中止することを含む。
【００１４】
方法はさらに、作成したワークフロープロセスのさらなる実行を再開することを含むことができる。
【００１５】
好ましくは、作成したワークフローモデルは、それぞれが１つまたは複数のステップを含む１つまたは複数の段階を含み、ワークフロー処理システムは、１つまたは複数のワークフローモデルにある１つまたは複数の段階を構成する１つまたは複数のステップを実行するのを可能にするようにそれぞれが構成された複数のサーバを有し、１つまたは複数の段階の１つまたは複数のステップはそれぞれ、負荷属性情報を含み、方法はさらに、負荷属性情報を使用して、複数のサーバノードの作業負荷をバランスさせることを含む。
【００１６】
好ましくは、複数のサーバはそれぞれ、前記各サーバで現在実行しているすべてのステップの負荷を表す現作業負荷レベルを含み、バランスステップはさらに、複数のサーバのうちの、現作業負荷レベルが最も低いサーバ上で、作業負荷モデルにある段階の次のステップを開始することを含む。
【００１７】
第２の態様では、ワークフロー処理用のシステムが提示され、そのシステムは、１つまたは複数のワークフローモデルを保存し、対応するワークフローモデルに従って処理されるジョブに関するジョブ情報を保存するデータベースと、データベースに接続され、データベース内のジョブ情報およびワークフローモデルを使用してジョブを実行するように構成され、さらに、データベースに保存されるワークフローモデルを作成し、修正するように構成された計算ノードとを有し、計算ノードは、テンプレートからワークフローモデルを作成するように構成される。
【００１８】
好ましくは、この計算ノードは主計算ノードとされ、システムはさらに、それぞれがデータベース内のジョブ情報およびワークフローモデルにアクセスするように構成された１つまたは複数の補助計算ノードを有する。
【００１９】
好ましくは、１つまたは複数の補助計算ノードは主計算ノードに接続されて、主計算ノードを介して間接的にデータベースにアクセスする。
【００２０】
好ましくは、ワークフローモデルは、１つまたは複数の段階を含んでいて、各段階は１つまたは複数のステップを含み、ワークフローモデルはさらに、１つまたは複数の段階のそれぞれを構成する１つまたは複数のステップの間の移行処理を有し、テンプレートはさらに、ワークフローモデルの新たな段階を定義する段階テンプレートと、ワークフローモデルにある段階の新たなプロセスを定義するプロセステンプレートと、ワークフローモデルにある段階のプロセスを構成する新たなステップを定義するステップテンプレートとを有し、段階テンプレートおよびステップテンプレートはそれぞれ、計算ノードが新たな段階および新たなステップを設定するのを可能にする属性を含む。
【００２１】
設定可能なテンプレートに基づいてワークフローモデルを設定することと、設定したワークフローモデルをデータベースに保存することと、作成したワークフローモデルに関連するジョブについてのジョブ情報を作成することと、ジョブ情報をデータベースに保存することと、データベース内のジョブ情報を使用し、かつデータベース内のワークフローモデルを使用して、ジョブを実行することとを含むワークフロー処理方法を提示することもできる。
【００２２】
好ましくは、テンプレートには、段階テンプレートとステップテンプレートがあり、設定ステップはさらに、１つまたは複数の設定可能な段階テンプレートを使用して、ワークフローモデル内に１つまたは複数の段階を設定することと、１つまたは複数の設定可能なプロセステンプレートを使用して、ワークフローモデル内に設定した各段階に係わる１つまたは複数のプロセスを設定することと、１つまたは複数の設定可能なステップテンプレートを使用して、ワークフローモデル内に設定した各段階にある各設定したプロセスに係わる１つまたは複数のステップを設定することとを含む。
【００２３】
好ましくは、ジョブは印刷業務の印刷ジョブであり、ワークフローモデルは印刷モデルであり、設定可能な段階テンプレートは、印刷ジョブを印刷する段階に相当し、設定可能なプロセステンプレートは、印刷ジョブを印刷する１つまたは複数の段階のプロセスに相当し、設定可能なステップテンプレートは、印刷ジョブを印刷する１つまたは複数の段階の１つまたは複数のプロセスを構成するステップに相当し、方法はさらに、データベース内のジョブ情報を使用して、１つまたは複数の印刷ジョブの現在の状態を表示することを含み、現在の状態は、印刷ジョブの現在の段階および各印刷ジョブの現在のステップとして示される。
【００２４】
好ましくは、設定可能な段階テンプレートから作成した各段階は、受け取り段階、作成段階、拡張段階、印刷段階、挿入段階、調停段階、および完了段階で構成されるグループから選択された段階とされる。
【００２５】
好ましくは、印刷業務部門は１つまたは複数のプリンタと、１つまたは複数の印刷ジョブ源とを有し、方法はさらに、１つまたは複数のプリンタおよび１つまたは複数の印刷ジョブ源の現在の状態を表示することを含む。
【００２６】
方法はさらに、実行中の任意の箇所でジョブのチェックポイントを設定することを含むことができ、チェックポイントを設定するステップは、チェックポイントを設定したジョブに関連するデータベース内のすべての修正ジョブ情報を保存し、チェックポイントを設定したジョブで使用されるすべての修正データファイルを保存することと、チェックポイントを設定したジョブを復旧させて実行を再開することとを含み、復旧ステップは、保存したジョブ情報をデータベースに戻し、保存したデータファイルを復旧させることを含む。
【００２７】
本発明は、ジョブを実行するために、ワークフローシステムを自由度をもって設定できる方法と、関連するシステムおよび装置とを用いて、上記のおよび他の関連する課題に対処する。
本発明の特徴および態様によって、設定可能なテンプレートからワークフローモデルを作成することが可能になる。
ワークフローモデルは、それぞれが１つまたは複数のプロセスを含む１つまたは複数の段階を含むことができ、各プロセスは、１つまたは複数のステップを含む。
段階、プロセス、およびステップは、対応するテンプレートのパラメータを設定することにより、完全に定義することができる。
ワークフローモデルを定義する情報と、実行すべきジョブ用のすべてのジョブ情報とは、統合したデータベース内のエントリとされるので、ワークフローモデル情報およびジョブ情報の作成および更新は、単にデータベースの問い合わせおよび更新として行われる。
【００２８】
本発明の１つの特徴として、ワークフロー処理システムを管理する方法が提示される。
その方法は、ジョブ情報をデータベースに保存することを含む。
ジョブ情報は、ワークフロー処理システムによって処理される１つまたは複数のジョブと関連する。
方法はまた、データベース内のジョブ情報に関連する１つまたは複数のジョブを処理するワークフローモデルを作成することを含む。
作成したワークフローモデルはデータベースに保存され、ワークフローモデルは、設定可能なテンプレートから作成される。
方法はまた、データベース内のワークフローモデルを使用し、かつデータベース内のジョブ情報を使用して、１つまたは複数のジョブを処理することを含む。
【００２９】
本発明の他の特徴として、ワークフロー処理用のシステムが提示される。
そのシステムは、１つまたは複数のワークフローモデルを保存し、対応するワークフローモデルに従って処理されるジョブに関するジョブ情報を保存するデータベースを有する。
システムはまた、データベースに接続され、データベース内のジョブ情報およびワークフローモデルを使用して、ジョブを実行するように構成された計算ノードを有する。
計算ノードはさらに、データベースに保存されるワークフローモデルを作成し、修正するように構成される。
計算ノードはまた、テンプレートからワークフローモデルを作成するように構成される。
【００３０】
本発明の他の特徴として、ワークフロー処理方法が提示される。
その方法は、設定可能なテンプレートに基づいてワークフローモデルを設定することを含む。
方法はまた、設定したワークフローモデルをデータベースに保存することを含む。
さらに、方法は、作成したワークフローモデルに関連するジョブについてのジョブ情報を作成し、ジョブ情報をデータベースに保存することを含む。
方法は、次にデータベース内のジョブ情報を使用し、かつデータベース内のワークフローモデルを使用して、ジョブを実行することを含む。
【００３１】
本発明は、以下に説明する他の例示的な実施形態を含むことができる。
【発明を実施するための最良の形態】
【００３２】
添付の図面を参照して、以下に本発明の好ましい実施形態を単なる実施例として説明する。
図１乃至図７および以下の説明は、本発明をいかに作り出し、使用するかを当業者に教示するために、本発明の特定の実施形態について例示的に記載している。
この教示を行うために、本発明の中の従来どおりの態様のものの幾つかは、簡略化されるかまたは省略されている。
当業者ならば、これらの実施形態から本発明の範囲に入る変形形態を考えつくであろう。
当業者ならば、以下に説明する特徴をさまざまな方法で組み合わせて、本発明の多数の変形形態を形成できると分かるであろう。
【００３３】
図１は、本発明の特徴および形態に従って、ワークフロー処理システムを自由度をもって作成し、設定するシステム１００のブロック図である。
特に、システム１００は、とりわけ、システム１００の要素によって定義されるワークフローモデルに従って、様々な印刷システムオブジェクト１００を利用して印刷ジョブを行う、または実行する印刷環境に適用されるようなワークフロー処理システムを示している。
主ワークフローサーバ１０２は、ユーザ入力に基づいてワークフローモデルを作成するのに使用される計算ノードである。
ユーザは通常、１つまたは複数の段階を含むようなワークフローモデルを定義することができ、各段階は、１つまたは複数のプロセスを含み、各プロセスは、条件付きプール論理を含むことができる１つまたは複数のステップを含む。
主ワークフローサーバ１０２は、標準化されたテンプレート１０４の属性を設定することで、新たなワークフロープロセスを自由度をもって設定できるようにするテンプレート１０４を使用する。
特に、テンプレート１０４は、新たに定義したワークフローモデルの新たな段階を定義するのに有用な段階テンプレートと、新たに設定した段階内の１つまたは複数のプロセスをそれぞれ定義するのに有用なプロセステンプレートと、新たに定義した各段階の新たに定義した各プロセス内の１つまたは複数のステップを設定するのに有用なステップテンプレートとを含むことができる。
【００３４】
フローは、「受け取り」や「作成」などの段階と、これらの段階内のプロセスに分割される。
プロセスとは、処理するジョブに関する一連の論理活動を行う一続きのステップをいう。
特定のジョブは、各段階で単一のプロセスセットを選択しながら、特定の段階セットを流れる。
プロセスと、プロセスを含む段階とによってグループ分けされたステップの順序集合により、ジョブ用のワークフロー処理が定まる。
【００３５】
本発明の特徴および態様は、段階、プロセス、および状態がシステム内でどのように表されるか、そしてそれらの連結がどのように定義されるかを規定する。
ワークフローシステムのユーザは、幾つかのオファリング（ｏｆｆｅｒｉｎｇ）に適用できる再利用可能なひとそろいの段階およびプロセスを長期にわたって構築している。
例えば、「受け取り」段階とそのプロセスは、おそらく、処理する入力ジョブを受け取るほとんどすべての用途に使用される。
本明細書で下記に記載した例示的な実施形態は、印刷業務用途に必要とされる段階、プロセス、およびステップについて説明する。
下記の実施例は、機能一式を全部説明することを意図されるのではなく、具体的な事例、すなわち印刷業務での印刷ジョブワークフローにアーキテクチャをいかに適用できるかについての１つの具体例を示している。
【００３６】
主ワークフローサーバ１０２は、新たに定義し、設定したワークフローモデルを情報としてワークフローデータベース１０８に保存する。
特に、ワークフローモデルは、ワークフローモデル内のステップからステップに、プロセスからプロセスに、および段階から段階に移動する移行条件だけでなく、設定した段階と、設定したプロセスと、設定したステップとの間の関係も定義するテーブルに保存される。
設定した段階、プロセス、およびステップは、データベース１０８内に新たに作成したエントリに関連する属性値およびパラメータ値を適切に決めることによって設定することができる。
したがって、テンプレート１０４は、そのような設定の開始点となり、様々な属性およびパラメータは、行われるべき特定のタイプのジョブ用の最終的なワークフローモデルを定義する際に、大きな自由度をもたらす。
【００３７】
主ワークフローサーバ１０２は、設定したワークフローモデル情報に加えて、システム１００によって処理されるべき現在のジョブに関する情報も管理する。
現在のジョブは、ジョブの処理を指揮する特定の設定済みワークフローモデルに対応している。
ジョブタイプ属性を使用して、特定のジョブを特定のワークフローモデルに関連付けることができ、ジョブタイプ属性およびワークフローモデルはともに、ワークフローデータベース１０８に保存されている。
主ワークフローサーバ１０２は、実行されるべき特定のジョブについての現在ジョブ情報を取り出し、関連するワークフローモデル情報についての情報を取り出し、関連するジョブ用のワークフローモデル内に設定された段階、プロセス、およびステップを実行するワークフローエンジン処理要素（図示せず）を有するのが好ましい。
【００３８】
ワークフロー処理システム１００の性能を高めるために、１つまたは複数の補助ワークフローサーバ１０６を設けることができる。
各補助ワークフローサーバ１０６はまた、他のジョブに対応する他のワークフローや、特定のジョブ用の特定のワークフローの一部を実行するための計算能力を付加するワークフロー処理エンジン（図示せず）を有することができる。
そのような分散処理には、実行されるべき様々なジョブを様々なサーバ（およびそれらに付属するワークフロー処理エンジン）に分散させるものや、複数のサーバ１０２、１０６にわたって、単一のワークフローから個々のステップ、プロセス、または段階を分散させるものがあり得る。
【００３９】
共通の共有されるワークフローデータベース１０８にアクセスするそうした複数のサーバの連係を単純化するために、補助ワークフローサーバ１０６は、主ワークフローサーバ１０２との連係処理を通じてのみワークフローデータベース１０８にアクセスすることができる。
当業者ならば、ワークフローデータベース１０８に同時にアクセスする際に、１つまたは複数の補助ワークフローサーバ１０６と主ワークフローサーバ１０２との連係処理を確実にするのに役立つ他の相互排除技術および処理連係手法を容易に思いつくであろう。
さらに、ネットワーク記憶装置アーキテクチャおよび他の分散した記憶装置と、処理パラダイムとを使用して、ワークフローデータベース１０８自体を分散させることができる。
分散化技術か集中化技術かといったそのようなことは、当業者にとって公知の設計選択事項である。
【００４０】
これまで説明したように、１つまたは複数の段階を含んでいて、各段階が１つまたは複数のプロセスを含み、各プロセスが１つまたは複数のステップを含むワークフローモデルで記述できる任意のジョブの処理にワークフローシステム１００を適用することができる。
例として、システム１００は、印刷ジョブ用のワークフロージョブを処理するために、主ワークフローサーバ１０２と、オプションとして追加される補助ワークフローサーバ１０６とからアクセスを受ける印刷システムオブジェクト１１０を有する。
ワークフローサーバ（１０２、１０６）は、対応するワークフローモデルに従って特定の印刷ジョブを実行するのに、必要に応じて、様々な印刷システムオブジェクト１１０のいずれかにアクセスすることができる。
印刷システムオブジェクト１１０には、例えば、印刷エンジン１１２、印刷サーバ１１４、後処理要素１１６、ソフトウェアまたは自動ステップ１１８、および手動ステップ１２２を含む、印刷ジョブを実行するのに有用な任意の数量の印刷オブジェクトが含まれ得る。
さらに、印刷システムオブジェクト１１０には、ワークフロージョブ処理を通じて処理され、変換される実印刷ジョブデータを含めることができる。
したがって、印刷ジョブデータ１２０には、未処理の形態の、１つまたは複数の印刷ジョブに関連するデータのほかに、そのデータを各種翻訳したものおよび変換したものがある。
例えば、印刷ジョブデータ１２０は、当業者にとって周知のように、未処理印刷データ、およびラスタ化またはリッピングしたデータをスプールするための印刷スプール機能部として実装することができる。
他の印刷関連データは、印刷スプールデータとともに保存することができる。
例えば、後処理装置の設定および動作を記述する制御ファイルを印刷データ１２０に付属するファイルとして指定することができる。
【００４１】
そのような印刷ジョブワークフロー管理に適用されるようなシステム１００は、印刷ジョブデータ１２０を処理して、最終的に、適切な印刷可能媒体にデータを印刷するために、対応するワークフローモデルの段階、プロセス、およびステップに従って、印刷エンジン、印刷サーバ、後処理要素、ソフトウェア／自動および手動ステップにアクセスすることができる。
【００４２】
当業者ならば、ワークフロー処理システム１００が、関連するジョブのワークフロー処理に係わるあらゆる特定用途オブジェクトにつながるように構成され得ると容易に分かるであろう。
したがって、印刷システム用印刷システムオブジェクト１１０は、単に、システム１００の構造および方法の１つの例示的な応用例にすぎないものである。
図１に示すような印刷環境へのシステム１００の例示的な応用例のさらなる詳細については、本明細書で下記にさらに説明される。
【００４３】
図２は、設定したワークフローモデルに従ってジョブを処理するために、ワークフローモデルを作成、実行する、本発明の特徴および態様に基づいた方法を大まかに説明したフローチャートである。
要素２００では、第１に、設定可能なテンプレートからワークフローモデルを作成することができる。
上記のように、設定可能なテンプレートには、特定の用途向けに特定のワークフローモデルをカスタマイズし、設定するのに全く有用な段階テンプレート、プロセステンプレート、およびステップテンプレートがあり得る。
先行技術とは異なり、自由度のある設定可能なテンプレートからワークフローモデルを作成する場合、ジョブを処理する特定のワークフローモデルを実行する、完全にカスタマイズしたプログラム命令を作成するのに必要とされるような専門技術はあまり必要でない。
さらに、他の先行技術と対照してみると、本発明の特徴および態様に基づいて付与された設定可能なテンプレートは、特定のワークフロー処理用途用の特定の段階、プロセス、およびステップをカスタマイズまたは設定する際に高い自由度をもたらす。
従来からの単純な方のワークフロー処理システムは、設定可能性がほとんどないか、または全くなく、したがって、ワークフロー処理システムによってすでに定義された特定の静的モデルにワークフロー処理用途を合わせるようユーザに強いた。
ユーザは、特定のジョブ用途に対して所望する特定のワークフロー処理を行うために、ワークフローシステムを容易にカスタマイズ、または再設定することがほとんどできないか、または全くできない。
【００４４】
上記のように、ワークフローデータベースに保存された設定済みワークフローモデルは、次いで、ワークフロー処理エンジンを用いて実行することができる。
ワークフローエンジン（図示せず）は、各ワークフローサーバと統合することができ、ワークフローデータベース内の情報を使用して、所望の印刷物を作成するのに必要な処理ステップを管理する。
これらのステップは自動または手動とすることができる。
ステップと、ステップの間の移行処理部とのリストは、データベース内に保持されるので、プロセスを変更するかまたは新たなプロセスを作成する場合、単に、適切なデータベーステーブルを設定すればよい。
ステップはモジュール式であり、連結部を明瞭に定義した作業の実行単位である。
ステップは、ポストスクリプト変換プリンタドライバやＩＢＭ  ＰＳＦプリンタドライバなどのシステムリソースと連動することができる。
ステップは、アドレスクレンジングや在庫管理などのサードパーティ製のソフトウェアと連動することができる。
ステップは、ジョブに関連するデータベースまたはファイルに対して直接に作業を行うことができる。
【００４５】
次いで、要素２０２では、作成したワークフローモデルをワークフローシステムのワークフローデータベースに情報として保存することができる。
ジョブタイプ属性または他の適切な特徴を使用して、新たに設定したモデルを適用することができる特定のタイプのジョブを識別することができる。
ワークフローモデル情報を示すデータベースエントリは、本発明の特徴および態様に基づいて設けられた設定可能なテンプレートを再度利用して、（ＳＱＬクエリ言語などで）データベースへの問い合わせおよび更新作業を行うことにより、容易に再設定することができる。
上記のように、テンプレートから作成されたモデルの各データベースエントリには、各段階、各プロセス、または各ステップを特定の新たなジョブまたは用途用に再設定するのを可能にする、幅広い種類の設定可能な属性およびパラメータ値が含まれ得る。
【００４６】
要素２０４は、新たなジョブを作成し、ジョブ関連情報をワークフローデータベースに保存するさらなる処理を示している。
上記のように、統合したデータベースは、ワークフローモデル情報と個々のジョブに対するジョブ情報の両方を含む。
このため、ワークフローデータベースは、処理されるジョブについてのすべてのデータと、処理される複数のタイプのジョブのそれぞれに対して実行されるワークフロー処理を記述したワークフローモデル情報とを統合する。
データベーステーブルには、ジョブ発行者、現在の処理ステップ、ページ数、コピー数、所望する用紙、仕上げ要求などのすべてのジョブメタデータを含む、システム内の各ジョブに対するエントリが含まれる。
データベースはまた、印刷作業現場を監視するリアルタイムデータの貯蔵庫でもある。
印刷したページ、現在の印刷ジョブ、トナー状態などのプリンタ特性を（プリンタがこれらの項目を通知することができる場合に）データベース内に保持することができる。
インサータやフィニッシャなどを含む任意の印刷所機器に関する同様の情報を保持することもできる。
データベースはまた、各ジョブおよび／または装置の状態が変化した場合に、ジョブおよび装置の履歴を保持する。
これは、整備や普段より有能な作業者を必要とする装置を特定できる関連統計データを、システムが通知できるようにする。
【００４７】
ジョブメタデータは、例えば、課金情報や入金取り消し情報、所望の納期、およびジョブを作成するのに必要な他の情報を含む、ジョブに関連する任意の情報とすることができる。
この情報はジョブチケットに記載されることが多い。
ジョブチケットはデータベース内にあるので、チケット情報にアクセスする必要があるステップは、容易にアクセスすることができる。
メタデータ項目が新規の場合、単に、新たなエントリがデータベースに追加され、新たなメタデータ項目は、システム変更を必要とすることなくシステムを流れる。
【００４８】
実行されるべき１つまたは複数のジョブに関する情報と、１つまたは複数の対応するワークフローモデルとをそのように作成し、保存してしまうと、次いで、要素２０６、２０８を実質的に同時に実行することができる。
要素２０６では通常、ワークフローデータベース内のジョブ情報と、作成したワークフローモデル情報とを使用して、ジョブを実行することができる。
ジョブを実行するには通常、処理されるべき次の段階と、その段階にある次のプロセスおよびステップ用のデータベースから、情報を取り出すことが必要となる。
その場合、実行エンジンが関連するジョブ情報を取り出して、カスタマイズし、設定したワークフローモデルに従って、適切な次のステップを実行する。
最終的に、ジョブを処理するすべてのステップ、プロセス、および段階が完了すると、それとともにジョブの実行が完了し、所望の結果が得られる。
【００４９】
要素２０８では、ジョブを実行する要素２０６の作業と実質的に平行して、ジョブと、様々なジョブに対応する様々なワークフローモデルとに関する状態情報を監視することができる。
ワークフローシステム内で実行される１つまたは複数の各ジョブのそれぞれの処理の進行に従って、そのように監視される状態情報をほぼリアルタイムでフィードバックして、ユーザに提示することができる。
様々なジョブと、現在実行中のワークフローモデルとに関する状態情報をデータベースに保存することもできる。
したがって、要素２０８では通常、ワークフローシステム内にある１つまたは複数のジョブのそれぞれの実行に関する現在の状態情報を取り出し、その取り出した状態情報をほぼリアルタイムでユーザに提示することができる。
【００５０】
当業者ならば、そのような状態情報を提示する各種のグラフィカルユーザインターフェイス技術を容易に思いつくであろう。
さらに、状態情報には、ワークフローシステム内で現在実行中か、または実行待ち行列に入った各ジョブに関する情報のほかに、システムにとって既知の各ジョブを実行するために、ワークフローシステムによって使用される様々な装置、部品、モジュール、および他の要素に関する状態情報も含めることができる。
例えば、上記の印刷システムに適用される状態情報には、システムにとって既知の各印刷エンジンの状態、システムにとって既知の各印刷サーバの状態、システムにとって既知の各後処理要素の状態などを含めることができる。
したがって、単一の統合したデータベース内にワークフローシステムの動作に関するすべての状態情報を保存することができ、要素２０８の作業のとおりに、その状態情報を取り出してユーザに示すことができる。
【００５１】
図７は、そのような状態情報を表示し、装置および／または印刷ジョブの状態を管理するためにユーザとの対話処理をするのに役立つ例示的な表示画面を示している。
表示画面の「システムの概要」部分は、（例えば、「受け取り」、「作成」、「印刷」、「完了」など）各処理段階にある印刷ジョブ数の計数値と、（例えば、「前処理」、「アクティブ」、「手動」、「エラー」などの）各段階の各状態にある印刷ジョブの計数値とを集計している。
例示的な表示画面の「プリンタ」部分は、既知のプリンタおよび各既知のプリンタの状態をユーザに示す。
さらに、画面のこの部分は、選択したプリンタを「有効」または「無効」にするなど、（例えば、画面上の「クリック」ボタンを通じて）ユーザとの対話処理を可能にする。
表示画面のさらに別の部分は、「印刷段階にある実行中のジョブ」に関する状態を詳細に示しており、言い換えると、それぞれのワークフローモデルの「印刷」段階にある、現在印刷中のすべての印刷ジョブに関する詳細を示している。
上記のように、画面のこの部分は、印刷を「中止する」かまたは「継続する」、あるいはジョブを再印刷する必要がある場合に「再処理する」など、選択した印刷ジョブの状態を変えるのに、ユーザとの対話処理を行うための「クリック」ボタンを設けることができる。
当業者ならば、プリンタおよび印刷ジョブに関する、あるいは、より一般的には、本発明の特徴および態様に従ったワークフローシステムの任意のジョブおよび装置に関する状態情報を示すために利用できる様々な等価の表示および対話技術を容易に思いつくであろう。
特に、ワークフローデータベースから対応する情報を取り出すことによって、任意のジョブの現在の、段階、プロセス、ステップ、および状態と、システム内の任意の装置の現在の状態とに関する情報を提示することができる。
【００５２】
図３は、図２の要素２００の作業をさらに詳細に例示したフローチャートである。
上記のように、図２の要素２００では通常、本発明の特徴および態様に従って設けられた設定可能なテンプレートに基づいて新たなワークフローモデルを作成することができる。
したがって、図３の要素３００では、第１に、関連するジョブタイプを処理するのに有用な新たなワークフローモデルを記述するために、ワークフローデータベースに新たなエントリを追加することができる。
次いで、要素３０２では、選択した段階テンプレートを利用して設定される第１の、または次の新たに作成する段階用に、ワークフローデータベースにエントリを追加する。
上記のように、ユーザは、特に所望するワークフロー処理用途やジョブタイプに適合するように容易に設定できる有用な段階テンプレートからなる豊富な集合体を与えられる。
したがって、要素３０２は、対応するテンプレートを選択することによって、ワークフローモデルに追加するのに好ましい段階をユーザが特定する処理を示している。
次いで、選択した段階テンプレートに関連する属性やパラメータ値を設定して、または決めて、要素３０４の作業を行うことで、段階用の新たに作成したデータベースエントリをカスタマイズまたは設定する。
【００５３】
次いで、要素３０６では、新たに作成し、設定した段階に係わる制限規則を定義し、実施することができる。
そのような制限は、目的とする用途に対してユーザ自身が定めた規則に反して、ユーザが新たな段階やステップを誤って設定することがないことを保証する助けとするのに有用である。
そのような規則は、例えば、特定の段階を最初に行ってもよいかまたは最後に行わなければならないかなどを検証する単純な論理断定として定義することができる。
新たに定義した段階に対するデータベースエントリには、新たなワークフローモデルの新たに設定した段階に対して定義されたさらなる制限または検証規則を反映するために、適切に注釈が付けられる。
さらに、定義した規則は、ユーザが継続して新たなワークフローモデルを設定するときに適用される。
したがって、要素３０６は、規則を定義する処理だけでなく、現在の設計を検証するために規則を適用する処理でもある。
他の例示的な制限は、本明細書で下記にさらに詳細に説明される。
【００５４】
要素３０８から要素３１２では、新たに定義し、設定した段階に対応する新たなステップ用の、１つまたは複数の新たなデータベースエントリを同様に追加することができる。
新たに設定した段階に加えられる各ステップは、ワークフローシステムによって提供されたステップテンプレートから所望のステップテンプレートを選択することによって設定される。
次いで、選択したテンプレートを使用して、新たなステップ用の新たなデータベースエントリを作成し、その新たなステップデータベースエントリは、現在定義された新たな段階に対応する。
さらに、要素３１０は、新たに定義した１つのステップから（もしあるならば）この現在定義した段階内のすでに定義した他のステップへの適切な移行処理を定義するさらなる処理を示している。
ステップからステップまたは段階から段階への移行処理は、各種エントリへの注釈として定義され、用意されるか、またはワークフローデータベース内の別のテーブルとして定義されてもよい。
したがって、ユーザは、それぞれが任意の数量のステップを含む任意の数量の段階を設定し、かつステップからステップおよび段階から段階への望ましい移行条件を具体的に定義することによって、複雑なワークフロープロセスを設定することができる。
【００５５】
要素３１４では、現在設定された新たな段階にさらなるステップを定義するのが望ましいかどうかを判断することができる。
要望がある場合、処理は、現在定義された新たな段階にこれ以上ステップを設定する必要がなくなるまで、要素３０８を通り、要素３１４を通って繰り返され続ける。
次いで、処理を要素３１６に留めて、定義された新たなワークフローモデルにさらなる新たな段階を設定することをユーザが望んでいるかどうかを判断する。
要望がある場合、所望する段階がすべて新たなワークフローモデル内に定義されるまで、折り返して要素３０２に戻ることを続ける。
【００５６】
上記のように、本発明の特徴および態様によれば、段階はまた、複数のプロセスを含むことができて、段階内の各プロセスは、１つまたは複数のステップを含むことができる。
図３には示していないが、方法を簡単に修正して、それぞれが１つまたは複数のステップを含む段階内にプロセス定義を追加して組み込むことができると、当業者ならば容易に分かるであろう。
【００５７】
図４は、上記の図２の要素２０６による処理をさらに詳細に例示するフローチャートである。
図２を参照して上記に説明したように、要素２０６では通常、ワークフローデータベースに保存されたジョブ情報を使用し、かつワークフローデータベースに保存された、作成済みのワークフローモデル情報を使用してジョブを実行することができる。
図４の要素４００では、選択したワークフローモデルに関するワークフローデータベースから情報を取り出すことができる。
選択したワークフローモデルは、実行される特定のジョブのタイプと合致するタイプのジョブを処理するようにカスタマイズされ、設定されたワークフローモデルである。
【００５８】
上記のように、ワークフローモデルは、１つまたは複数の作業段階を含む。
次いで、要素４０２では、現在のワークフローモデルに従って現在実行中のジョブに対して、実行すべき段階がさらに残っているかどうかを判断する。
残っていない場合、要素２０６による処理は完了する。
残っている場合、次に要素４０４で、中止処理イベントまたはアクションが発生したかどうかを判断する。
オペレータとの対話処理や他の適切なメカニズムになどから、特定のイベントを検出することによって、ジョブ処理の中止または一時停止を要求することができる。
一般的に、段階の完了時や、次の段階用の処理の開始時に処理を中止することができる。
【００５９】
適切なイベントの検出により処理が中止された場合、要素４０６で、処理の再開を待つことができる。
オペレータの入力や他の適切なメカニズムなどによる別のイベントの検出を受けて、再開を要求することができる。
処理が再開すると、要素４０８では、データベースから取り出した現在のモデル情報から次の段階を取り出すことができる。
次いで要素４１０で、ワークフローモデルの現在実行中の段階に実行すべきステップが残っているかどうかを判断する。
残っていない場合、処理は、（もしあるならば）ワークフローモデルのさらなる段階の処理を続けるために、折り返して要素４０２に戻ることを続ける。
現在の段階に、実行すべきステップがさらに残っている場合、次に要素４１２で、ワークフローデータベース内のモデル情報から次のステップを取り出すことができる。
次いで要素４１４では、現在の段階用のすべてのステップを取り出し、実行してしまうまで、取り出した次のステップを実行し、折り返して要素４１０に戻る。
【００６０】
ワークフローモデルの作成および設定に関して上記に説明したように、各段階は、それぞれが１つまたは複数のステップを含む１つまたは複数のプロセスを含むことができる。
この説明を簡単かつ簡潔にするために、段階内の複数のプロセスの処理については、説明を省略した。
当業者ならば、ワークモデルにある各段階内の１つまたは複数のプロセスの処理を組み込むための、図４の方法に対する適切な修正を容易に思いつくであろう。
＜段階、プロセス、およびステップ＞
【００６１】
ジョブは、ワークフローモデルとして設定され、ワークフローデータベースに保存された段階、プロセス、およびステップに従って実行される。
したがって、本発明の特徴および態様は、ワークフローデータベーステーブルからそのプロセス流れ情報を取り出すワークフローエンジンによってほとんど決まる。
システムのプロセス変更は、簡単な設定作業である、すなわち、データベーステーブルの内容変更である。
唯一必要とされるカスタムコーディングは、以前に定義された段階、プロセス、またはステップ用の各テンプレートが前もって盛り込んでいない新たな処理ステップに必要とされるものである。
既存のプロセスまたは段階にあるステップを再配置したり、削除したりするのにコーディングは必要でなく、設定をするだけでよい。
【００６２】
システムを設定可能にする本発明の特徴はＳＱＬの使用にある。
例えば、特定の待ち行列にあるジョブのリストは、特定の待ち行列名を備えたデータベースエントリを登録する単なるＳＱＬクエリである。
新たな待ち行列を追加するために、ユーザは、対象とする特定の属性値に関連する属性値を備えたジョブを選択するクエリを作成するだけでよい。
ジョブメタデータは、単にデータベーステーブル内の属性と値だけである。
新たなアイテムを追加するには、単に、メタデータテーブルに行を追加する。
そのような単純なデータベーストランザクションは、当業者にとって公知であり、コストのかかるプログラミングの専門技術をほとんど必要としないか、または全く必要としない。
【００６３】
本発明の特徴および態様によれば、ワークフローは、「受け取り」や「作成」などの段階と、これらの段階内のプロセスとに分割される。
プロセスとは、処理するジョブに関する一連の論理活動を行う一続きのステップをいう。
特定のジョブは、各段階で単一のプロセスセットを選択しながら、特定の段階セットを流れる。
プロセスと、プロセスを含む段階とによってグループ分けされたステップの順序集合により、ジョブ用のワークフロー処理が定まる。
【００６４】
本発明の特徴により、段階、プロセス、および状態がシステム内でどのように表されるか、そしてそれらの連結をどのように定義するかが規定される。
ユーザは、新たなワークフローモデルと新たなテンプレートとを作成するシステムを使用するので、彼らは、幾つかのワークフロー処理用途に適用できる再利用可能な段階およびプロセス一式を構築することになる。
例えば、「受け取り」段階とそのプロセスは、おそらく、処理する新たなジョブを受け取るほとんどすべてのワークフロープロセスに使用される。
【００６５】
本明細書での上記の説明は、一般的なワークフロー用途に広範囲に適用可能な特徴および態様を提示している。
本発明の特徴および態様はまた、特定の用途、すなわち、印刷環境での印刷ジョブ用のワークフロー処理に関連させて容易に理解することができる。
データ処理業務用の大規模な印刷設備では、多数の印刷ジョブを作成し、これを同じく多数のプリンタ、印刷サーバ、後処理装置などに分配することができる。
本発明の特徴および態様の特に有用な用途の１つは、そのように大規模な印刷環境での印刷ジョブの処理にまつわるワークフローの管理である。
【００６６】
ジョブおよびデータベース内のワークフローモデルはそれぞれ、ジョブタイプに関連付けることができる。
システムを移動するときにジョブが受け取る、ジョブの「ジョブタイプ」属性に割り当てられた値により、特定のワークフロー処理が決まる。
「ジョブタイプ」により、各ジョブ用のワークフロー内の段階の選択および順番が確定される。
選択した各段階内のプロセスも「ジョブタイプ」により選択される。
これは、ジョブ．プロセス．アフター．段階＿名前（Ｊｏｂ．Ｐｒｏｃｅｓｓ．Ａｆｔｅｒ．ｐｈａｓｅ＿ｎａｍｅ）属性および「移行処理」テーブルエントリによって具現化される。
【００６７】
ワークフローエンジンは、プロセスと段階の間の移行処理を定めず、移行処理は「移行処理」データベーステーブルに託される。
各ステップが完了すると、ワークフローエンジンは、「移行処理」テーブルに従って、ジョブをその出力状態にセットし、次いで、ジョブを次のステップの入力状態にセットするそのチェンジジョブ状態（ＣｈａｎｇｅＪｏｂＳｔａｔｅ）メソッドを呼び出す。
【００６８】
そのような大規模な印刷環境でのワークフロー処理システム用途に対して、容易に設定できる例示的な段階およびステップテンプレートについて、本明細書で下記に説明する。
図５は、上記の印刷環境で印刷ジョブを処理するのに有用な例示的な段階について大まかに説明するブロック図である。
下記の表１は、これらの例示的な段階と、各段階に係わる入力と、各段階によって作成された出力と、各段階の目的および動作に関する説明とについてより完全に記載している。
【００６９】
【表１】
2009532791.tif 000003
表１−印刷ジョブワークフロー処理用の例示的な段階
【００７０】
例示的な印刷ジョブ処理に合わせたワークフローモデルを例示的なデータベーステーブルを用いて定義し、実行するための、段階、プロセス、およびステップの使用法について説明することはさらに有益である。
図６および以下の表を用いて、プロセスまたは段階内にある、およびそれらの間にあるジョブの状態を変える作業を説明する。
図６は、段階、プロセス、およびステップからなる階層を示している。
太い実線の矢印は、「受け取り」、「作成」、および「印刷」段階を通る１つの特定のジョブタイプのパスを示している。
太い点線矢印は、「受け取り」および「印刷」段階のみを使用する別のジョブタイプのパスを示している。
表２は、例示的な「受け取り」段階用の例示的な移行処理テーブル行を示している。
表３は、例示的な「作成」段階用の例示的な移行処理テーブル行を示し、表４は、「印刷」段階用の幾つかの例示的な行を示している。
表５は、図６でパスとして示した２つのジョブ用の関連する例示的なジョブ属性を示している。
【００７１】
【表２】
2009532791.tif 000004
表２−例示的な移行処理テーブル（受け取り段階）
【００７２】
【表３】
2009532791.tif 000005
表３−例示的な移行処理テーブル（作成段階）
【００７３】
【表４】
2009532791.tif 000006
表４−例示的な移行処理テーブル（印刷段階）
【００７４】
【表５】
2009532791.tif 000007
表５−図６のジョブ用の例示的なジョブ属性
【００７５】
以下に、上記の表２〜表５および図６を参照して、例示的なワークフローについて説明する。
図６の実線矢印で示されたジョブは、表５によるジョブＩＤ  ０００１を割り当てられる。
その初期状態は、ステップＡ．１を処理する準備が整い、「レディ」状態にある入力Ｐｒｏｃ１プロセスである。
この状態は、入力Ｐｒｏｃ１：ステップＡ．１：レディと表すことができる。
１．ジョブ  ０００１に対してステップＡ．１が完了する。
チェンジジョブ状態は、ジョブ  ０００１用の現在のプロセス、ステップおよび状態を定めるために、ジョブテーブルに問い合わせる。
チェンジジョブ状態は、ジョブを入力Ｐｒｏｃ１：ステップＡ．１：完了状態に移動させる。
チェンジジョブ状態は、ジョブの現在の状態と合致する行を見つけるために、移行処理テーブルに問い合わせる。
これは、実施例では行  １である。
次いで、チェンジジョブ状態は、「Ｔｏ（ツー）」状態である行  １：入力Ｐｒｏｃ１：ステップＥ：レディにジョブを移動させる。
ここで留意すべきは、この場合のようなプロセス内の移行処理は、条件＿ＡＴＴＲ＿名前（ＣＯＮＤＩＴＩＯＮＡＬ＿ＡＴＴＲ＿ＮＡＭＥ）および条件＿ＡＴＴＲ＿値（ＣＯＮＤＩＴＩＯＮＡＬ＿ＡＴＴＲ＿ＶＡＬＵＥ）に対して値を必要としないことである。
２．ステップＥが完了すると、チェンジジョブ状態は、行  ２に場所を定め、ジョブを入力Ｐｒｏｃ１：ステップＱ：レディに移動させる。
３．ステップＱが完了すると、チェンジジョブ状態は、行  ３に場所を定め、ジョブを入力Ｐｒｏｃ１：ステップＡ．２：レディに移動させる。
ここで留意すべきは、これは、このプロセス内のステップＡの第２の事例であり、その名前「ステップＡ．２」によって第１の事例と区別される。
４．ステップＡ．２が完了すると、チェンジジョブ状態は、行  ４、行  ５に場所を定める。
ジョブの現在の状態に合致する移行処理がテーブル内に２つある。
行  ４はこのジョブタイプに適用され、行  ５は点線矢印のジョブタイプに適用される。
この移行処理は段階を出つつあるので、可能性のある移行処理が複数あり、チェンジジョブ状態は、移行処理の条件＿ＡＴＴＲ＿名前および条件＿ＡＴＴＲ＿値列を参照する。
ジョブのジョブ．プロセス．アフター．受け取り（Ｊｏｂ．Ｐｒｏｃｅｓｓ．Ａｆｔｅｒ．Ｒｅｃｅｉｖｅ）属性値は、行  ４の条件＿ＡＴＴＲ＿値と合致するので、チェンジジョブ状態は、ジョブをＰｒｅＰｒｏｃ２：ステップＤ：レディに移動させる。
チェンジジョブ状態内の同じメカニズムにより、ジョブは、プロセス内のステップからステップに、および１つのプロセスの最後のステップから別のプロセスの最初のステップに移動する。
５．ステップＤが完了すると、チェンジジョブ状態は、行  ６に場所を定め、ジョブをＰｒｅＰｒｏｃ２：ステップＭ：レディに移動させる。
６．ステップＭが完了すると、チェンジジョブ状態は、行  ７に場所を定め、ジョブをプリントＰｒｏｃ：ステップＨ：レディに移動させる。
７．ステップＨが完了すると、チェンジジョブ状態は、行  ８に場所を定め、ジョブをプリントＰｒｏｃ：ステップＪ：レディに移動させる。
８．ステップＪが完了すると、チェンジジョブ状態は、行  ９に場所を定め、ジョブをプリントＰｒｏｃ：ステップＫ：レディに移動させる。
９．ステップＫが完了すると、チェンジジョブ状態は、行  １０に場所を定め、ジョブをプリントＰｒｏｃ：ステップＰ：レディに移動させる。
【００７６】
図６の点線矢印によって示されたジョブは、表５によるジョブＩＤ  ０００２を割り当てられる。
その初期状態は入力Ｐｒｏｃ１：ステップＡ．１：レディである。
１．ステップＡ．１が完了すると、チェンジジョブ状態は、行  １に場所を定め、ジョブを入力Ｐｒｏｃ１：ステップＥ：レディに移動させる。
これは、ジョブＩＤ  ０００１と同じである。
２．ステップＥが完了すると、チェンジジョブ状態は、行  ２に場所を定め、ジョブをＲｅｃｅｉｖｅ：インプットＰｒｏｃ１：ステップＱ：レディに移動させる。
これは、ジョブＩＤ  ０００１と同じである。
３．ステップＱが完了すると、チェンジジョブ状態は、行  ３に場所を定め、ジョブをインプットＰｒｏｃ１：ステップＡ．２：レディに移動させる。
これは、ＪｏｂＩＤ  ０００１と同じである。
４．ステップＡ．２が完了すると、チェンジジョブ状態は、行  ４、行  ５に場所を定める。
ジョブの現在の状態に合致する移行処理がテーブル内に２つある。
ジョブのジョブ．プロセス．アフター．受け取り属性値は、行  ５の条件＿ＡＴＴＲ＿名前と合致するので、チェンジジョブ状態は、ジョブをＰｒｅＰｒｏｃ：ステップＨ：レディに移動させる。
ここで留意すべきは、このジョブは「作成」段階を完全にとばすことである。
５．ステップＨが完了すると、チェンジジョブ状態は、行  ８に場所を定め、ジョブをプリントＰｒｏｃ：ステップＪ：レディに移動させる。
６．ステップＪが完了すると、チェンジジョブ状態は、行  ９に場所を定め、ジョブをプリントＰｒｏｃ：ステップＫ：レディに移動させる。
９．ステップＫが完了すると、チェンジジョブ状態は、行  １０に場所を定め、ジョブをプリントＰｒｏｃ：ステップＰ：レディに移動させる。
【００７７】
今説明した例示的な構造および方法は、それらが様々な印刷ジョブワークフローのほかに、他の応用分野でも使用できるように設定可能であるという点で自由度が大きい。
ステップからステップ、または段階から段階への移行処理は、ジョブ属性に基づいて選択される。
この実施例では、ジョブ．プロセス．アフター．段階＿名前を使用したが、他のワークフローでは、全く異なる属性に基づいて、所望のプロセスまたはステップを選択することができる。
【００７８】
チェンジジョブ状態関数は、これを呼び出すステップを所望の出力状態にして、ジョブテーブル内の現在のジョブの行を更新する。
次いで、チェンジジョブ状態は、現在のジョブを、もしあるならば、次の入力状態に更新する。
このアクションにより、次のステップ用の入力待ち行列にジョブが追加される。
【００７９】
ここで留意すべきは、すべてのステップは、ジョブのタスクを完了したときに、それらの入力待ち行列を自動的に参照するので、新たなタスクのために再スタートされる必要なしに、待ち行列に入ったジョブを処理し続けることである。
待ち行列は、ステップの許可された事例数が、ステップを要求するジョブ数を取り扱うのに十分でない場合か、あるいはジョブが保留されるか、または現在実行中のジョブより優先度が低い場合にのみ生じる。
【００８０】
システムの始動時に、ステップに対して入力状態にあるすべてのジョブは、ステップに対する最大実行総数制限を受けることを条件として開始される。
【００８１】
ステップは、ワークフロー処理の１単位である。
ステップは１つのアクションを行うことができるし、または同じシーケンスで常に起こる幾つかの関連するアクションを行うこともできる。
ステップは以下のことができる。
８．例えば、ラインデータ入力ファイルからＡＦＰファイルを作成するソフトウェア／自動化ステップなどのように、ジョブファイルに基づいて動作する。
９．例えば、ＡＦＰドキュメントのページ数をカウントするステップなどのように、ジョブ属性を設定する。
１０．例えば、ジョブを次のステップに引き渡す前に、オペレータに幾つかの質問をする「品質管理」ステップなどのように、ユーザとの対話処理を要求する。
１１．例えば、印刷用のジョブを提出する「印刷」ステップなどのように、ハードウェア装置マネージャと情報をやりとりする。
【００８２】
ステップが処理する各ジョブは、ジョブ状態を有する。
すべてのステップは少なくとも以下の状態を有する（さらに多くを有してもよい）。
１２．「待機」状態は、ステップで処理するためにジョブが待ち行列に入れられていることを示す。
１３．「処理」状態は、ステップがジョブを実行していることを示す。
１４．「完了」状態は、ステップがジョブに対する処理を完了したことを示す。
１５．「エラー」状態は、ジョブを処理するのにステップが問題を抱えており、ジョブの実行を中断することを示す。
【００８３】
ここで留意すべきは、ステップの中には、「待機」だけでなくさらに多くの入力状態を有し、「処理」だけでなくさらに多くの処理状態を有し、「完了」だけでなくさらに多くの出力状態を有することができるものもある。
例えば、「印刷」ステップにあるジョブは、「スプール」および「印刷」などの様々な印刷段階に相当する多くの処理状態を有する。
【００８４】
ステップは特定の状態（「レディ」が一般的）にあるジョブを要求することができ、ジョブを新たな状態に設定することができる。
ステップがジョブの処理を完了すると、ステップは、チェンジジョブ状態を呼び出して、ジョブの最終状態を設定する。
チェンジジョブ状態は、移行処理テーブルを使用して、ジョブをその出力状態（例えば「完了」）から、ジョブのワークフロー内にある次のステップの適切な入力状態（例えば「レディ」）にどこで移動させるかを見つける。
【００８５】
各ステップが処理時に問題に直面した場合に、各ステップはジョブを「エラ−」状態にすることができる。
ジョブは、オペレータが介入するまで「エラー」状態のままである。
【００８６】
ステップはエラーメッセージを記録するので、オペレータは、問題を修正するのにどのような処置を講ずるべきかが分かる。
エラー状態のジョブは、グラフィカルインターフェイスを使用して、様々な状態に移ることができる。
例示的なオプションには以下がある。
１６．「ジョブ再スタート」、これは、ジョブをワークフローの早期のステップに移す。
１７．「継続」、これは、エラーを解消し、ジョブがプロセス内の次のステップを続行するようにする。
１８．ＦｏｒｃｅＴｏＰｒｏｃｅｓｓＥｎｄ、これは、エラーを解消し、ジョブがプロセスを無事に完了した場合と同様に、ジョブを続行させる。
１９．「浄化」、これは、ジョブを「完了」プロセスに移すので、ジョブをシステムから完全に削除することができる。
＜段階／ステップ制限＞
【００８７】
上記のように、段階テンプレートおよびステップテンプレートは、テンプレートの適切な使用を検証するのに使用される制限または規則を含むことができる。
制限は、新たな段階またはステップがテンプレートから作成されるときに、ワークフローモデルの新たな段階またはステップの作成におけるテンプレートの使用を検証するのに適用または実行される。
【００８８】
これらの制限は、ジョブタイプに対する検証規則であり、例えば、以下のものを含むことができる。
【００８９】
「このステップは「作成」段階においてのみ行われなければならない」や「このステップは段階の最後でなければならない」や「このステップはステップＸの前に行われなければならない」などの「段階−ステップ制限」。
【００９０】
「このステップは、属性ＸＹＺが値をもたなければならないことを必要とする」などの「属性制限」。
特定のステップテンプレートが書き込んだ属性も定義されるので、現在のステップが必要とするすべての属性を、あるステップが書き込んだと断定することによって、ジョブタイプを検証することが可能である。
【００９１】
「このステップはＡＦＰファイルが存在することを必要とする」などの「ファイル制限」。
特定のステップテンプレートが書き込んだファイルも定義されるので、現在のステップが必要とするすべてのファイルを、あるステップが書き込んだと断定することによってジョブのタイプを検証することができる。
【００９２】
これらの制限を段階またはステップに記述することで、ワークフローモデルを設定するための規則が定まり、管理者が新たなワークフローモデルを設定するのをより容易にする。
＜負荷のバランスを取る＞
【００９３】
本発明の特徴および態様は、ワークフローシステムにある複数のサーバ内で実行中のステップの作業負荷をバランスさせる能力をもたらす。
通常、作業負荷のバランスを取ることには少なくとも２つの目的がある。
１つの目的は、どこでステップを実行するかを調整することである。
ステップによっては、特定のサーバでのみ実行しなければならないことがある。
もう１つの目的は、実行中のステップ数を限定することである。
システム上で利用できるリソースの数は限られているので、これらのリソースの過剰な投入を回避するために、ステップ数が限定される。
【００９４】
システム上のステップ作業負荷のバランスを取るのに３種類のオブジェクトが必要とされる。
【００９５】
ステップアダプタマネージャは、ステップによる処理待ち中のジョブ待ち行列と入力ファイルとを保留する。
【００９６】
サーバは、ステップを処理する環境を特定する。
【００９７】
ステップテンプレートは、行われるべき処理を特定する。
【００９８】
各ステップテンプレートは、以下の作業負荷バランス属性を含む。
【００９９】
ステップ  Ｔｅｍｐｌａｔｅ．ＵｓｅＧｅｎｅｒａｌＳｅｒｖｅｒＰｏｏｌ−「Ｙｅｓ」または「Ｎｏ」。
「Ｙｅｓ」の場合、次にステップテンプレートは、通常のプールサーバの中のいずれかのサーバを使用し、そうでない場合、ステップ  Ｔｅｍｐｌａｔｅ．Ｓｅｒｖｅｒｓ属性のサーバのみを使用する。
【０１００】
ステップ  Ｔｅｍｐｌａｔｅ．Ｓｅｒｖｅｒ−このステップテンプレートが処理用に使用できるサーバを記載した「リスト」。
ステップ  Ｔｅｍｐｌａｔｅ．ＵｓｅＧｅｎｅｒａｌＳｅｒｖｅｒＰｏｏｌが「Ｙｅｓ」の場合、この属性は無効になる。
【０１０１】
ステップ  Ｔｅｍｐｌａｔｅ．ＨｉｇｈＲｅｓｏｕｃｅＵｓａｇｅ−「Ｙｅｓ」または「Ｎｏ」のいずれか。
「Ｙｅｓ」の場合、ステップは、サーバのリソース利用限度が高い方にカウントされ、そうでない場合、サーバのリソース利用限度が低い方にカウントされる。
【０１０２】
ステップ  Ｔｅｍｐｌａｔｅ．ＭａｘｉｍｕｍＡｃｔｉｖｅＵｎｉｔおよびＳｔｅｐ  Ｔｅｍｐｌａｔｅ．ＭａｘｉｍｕｍＡｃｔｉｖｅＣｏｕｎｔ−この２つの属性は、動作中とすることができるステップテンプレートの最大事例数を調整する。
これらの属性は、Ｓｅｔ  Ｔｅｍｐｌａｔｅ．ＨｉｇｈＲｅｓｏｕｃｅＵｓａｇｅが「Ｎｏ」に設定された場合にのみ使用される。
単位は、ワークフローシステムごと、サーバごと、入力装置ごと、プリンタごととすることができる。
動作中ステップを調整するために、単位にカウントが適用される。
例えば、単位が「サーバごと」で、カウントが１の場合、各サーバは、所与のあらゆる時点でステップを１事例だけ実行することができる。
これらの属性は、ステップ  Ｔｅｍｐｌａｔｅ．ＨｉｇｈＲｅｓｏｕｃｅＵｓａｇｅが「Ｙｅｓ」に設定された場合に無効に設定される。
値が「Ｎｏ」の場合、これらの属性は必要とされる。
【０１０３】
サーバ用の作業負荷バランス属性は、そのサーバでどのステップを処理できるかを調整し、所与のあらゆる時点で処理できる、リソース利用度が高いステップの数量を調整する。
「サーバ」作業負荷バランス属性は以下とされる。
【０１０４】
Ｓｅｒｖｅｒ．ＩｎＧｅｎｅｒａｌＳｅｒｖｅｒＰｏｏｌ−「Ｙｅｓ」または「Ｎｏ」。
「Ｙｅｓ」の場合、「Ｙｅｓ」に設定されたステップ  Ｔｅｍｐｌａｔｅ．ＵｓｅＧｅｎｅｒａｌＳｅｒｖｅｒＰｏｏｌを有するステップテンプレートが、サーバを使用することができる。
「Ｎｏ」の場合、「Ｙｅｓ」に設定されたステップ  Ｔｅｍｐｌａｔｅ．ＵｓｅＧｅｎｅｒａｌＳｅｒｖｅｒＰｏｏｌを有するステップテンプレートは、サーバを使用しないことになる。
どちらの値も、サーバがステップテンプレートのステップ  Ｔｅｍｐｌａｔｅ．Ｓｅｒｖｅｒ属性に登録されるのを可能にする。
【０１０５】
Ｓｅｒｖｅｒ．ＭａｘＨｉｇｈＵｓａｇｅＳｔｅｐｓ−サーバで同時に動作することができるリソース利用度が高いステップの最大数である。
【０１０６】
Ｓｅｒｖｅｒ．ＭａｘＬｏｗＵｓａｇｅＳｔｅｐｓ−サーバで同時に動作することができるリソース利用度が低いステップの最大数である。
【０１０７】
各サーバは、そのサーバで同時に実行中のステップによる現在の作業負荷を有する。
作業負荷は、サーバで処理しているステップの負荷を合計したものである。
ステップの負荷は計算される。
各サーバに対して、リソース利用度が高いステップに係わる負荷と、リソース利用度が低いステップに係わる別の負荷とがある。
１ステップの負荷は、ステップのリソース利用に応じて、１００をＳｅｒｖｅｒ．ＭａｘＨｉｇｈＵｓａｇｅＳｔｅｐｓかまたはＳｅｒｖｅｒ．ＭａｘＬｏｗＵｓａｇｅＳｔｅｐｓで割ることによって算出される。
Ｓｅｒｖｅｒ．ＭａｘＨｉｇｈＵｓａｇｅＳｔｅｐｓかまたはＳｅｒｖｅｒ．ＭａｘＬｏｗＵｓａｇｅＳｔｅｐｓのいずれかがゼロの場合、そのタイプのステップに対しては、負荷は算出されない。
【０１０８】
何台かのサーバのうちの１台でステップをスタートさせることができる場合、ステップアダプタマネージャは、作業負荷が最も低いサーバでステップをスタートさせる。
ステップは、作業負荷が１００以上のサーバではスタートされない。
リソース利用度が高いステップがなくならないように、サーバの作業負荷は１００を越えてもよいとされるが、作業負荷が１００を超えた場合、ステップが追加されることはない。
＜チェックポイントと再スタート＞
【０１０９】
ステップは、（ステップ：ｒｅｓｔａｒｔ＿ｔｙｐｅによって）再スタート可能に設定することができ、これは、ステップ内かまたは後のステップからかのいずれかのエラー状態のために、ジョブがステップの開始点に戻される得ることを意味する。
【０１１０】
ステップはまた、（ステップ：ｊｏｂ＿ｆｏｒｃｅａｂｌｅ＿ｈｅｒｅによって）強制可能に設定することができ、これは、「エラー」状態にあるジョブが、ユーザインターフェイスからの「強制終了」アクションによって「終了」状態を強いられ得ることを意味する。
ユーザがこのようにエラーを無効にするのを、すべてのステップが可能にすることができるわけではない、すなわち、ｊｏｂ＿ｆｏｒｃｅａｂｌｅ＿ｈｅｒｅが、権限のあるユーザに対してどのステップがアクションを許可し、どれがしないかを決定する。
【０１１１】
ジョブ用の再スタート可能なステップのリストを決定するために、「ステップマネージャ」は、ジョブが「処理」状態に入った各ステップのレコードを（ｒｅｓｔａｒｔ＿ｓｔｅｐｓによって）作る。
ユーザが「Ｐｒｏｃｅｓｓ  Ｊｏｂ  Ａｇａｉｎ」かまたは他の再スタートアクションを選択すると、ユーザインターフェイスには、ユーザが選択できる、リスタート可能なｒｅｓｔａｒｔ＿ｔｙｐｅを備えたステップのリストが供給される。
【０１１２】
再スタートアクションを実行するために、「ステップマネージャ」は、待ち行列に入れられるべきジョブの状態を再スタートステップに変えることができる。
その間のステップ中に設定された可能性のある属性は、問題とならないか、またはステップの実行によってリセットされるかのいずれかであると判断できる。
一方、データファイルは、その間のステップ中に大きく変わった可能性があり、再スタートが成功するように、それらの元の状態に戻されなければならない。
【０１１３】
再スタートを可能にするために、ステップが変わるデータファイルは、後で復元できるように、再スタートアクションの一部として、ステップへのエントリ時にファイルの元の形態の版を保存するチェックポイントを最初に設定される。
前の再スタート可能なステップにジョブを送り返すときに、「ステップマネージャ」は、スプールが確実に元の状態に戻されるように、中間データチェックポイントを再設定しなければならないので、ステップは、以前と同じデータに基づいて作業することができる。
【０１１４】
本発明の実施形態は、完全にハードウェアからなる実施形態か、完全にソフトウェアからなる実施形態か、またはハードウェア要素およびソフトウェア要素を両方含む実施形態の形をとることができる。
好ましい実施形態では、本発明は、限定するものではないが、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むソフトウェアを実装される。
図８は、プログラム命令を実行し、コンピュータ可読の記憶媒体８１２に保存されたデータにアクセスすることで、本発明の特徴および態様をもたらすように構成されたデータ処理装置としてのデータ処理システム８０１を示すブロック図である。
【０１１５】
さらに、本発明は、コンピュータもしくは任意の命令実行システムで、またはそれらと接続して使用するためのプログラムコードを提供する、コンピュータで使用可能なまたはコンピュータ可読の媒体８１２からアクセスできるコンピュータプログラム製品の形態をとることができる。
この説明に当たり、コンピュータで使用可能なまたはコンピュータ可読の媒体は、命令実行システム、装置、またはデバイスで使用するか、もしくはそれらと接続して使用するためのプログラムを含む、保存する、やりとりする、伝播させる、または伝送することができる任意の装置とすることができる。
【０１１６】
媒体は、電子式、磁気式、光学式、電磁式、赤外線式、もしくは半導体式の各システム（もしくは装置もしくはデバイス）または伝搬媒質とすることができる。
コンピュータ可読の媒体例には、半導体メモリまたはソリッドステートメモリ、磁気テープ、取り出し可能なフロッピー（登録商標）ディスク、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、固定式磁気ディスク、および光ディスクがある。
流通している光ディスクの例には、コンパクトディスク−読み取り専用メモリ（ＣＤ−ＲＯＭ）、コンパクトディスク−読み込み／書き出し（ＣＤ−Ｒ／Ｗ）、およびＤＶＤがある。
【０１１７】
プログラムコードを保存し、かつ／または実行するのに適したデータ処理システムは、システムバス８５０を介してメモリ要素８０２に直接的にまたは間接的に接続された少なくとも１つのプロセッサ８００を有する。
メモリ要素には、プログラムコードの実際の実行中に使用されるローカルメモリと、大容量記憶装置と、実行中に大容量記憶装置からコードを取り出さなければならない回数を減らすために、少なくとも何らかのプログラムコードを一時的に保存するキャッシュメモリとがあり得る。
【０１１８】
（限定するものではないが、キーボード、ディスプレイ、ポインティングデバイスなどが含まれる）入力／出力、すなわちＩ／Ｏ装置８０４は、直接かまたは介在Ｉ／Ｏコントローラを介して、システムに接続することができる。
ネットワークアダプタインターフェイス８０８もまた、システムに接続することができて、データ処理システムが、介在するプライベートまたパブリックネットワークを介して、他のデータ処理システムまたは記憶装置とつながるようになるのを可能にする。
現在利用できるタイプのネットワークアダプタやホストインターフェイスアダプタは、モデム、ケーブルモデム、ＩＢＭチャネルアタッチメント、ＳＣＳＩ、ファイバーチャネル、およびイーサネット（登録商標）カードなどほんの数点である。
【０１１９】
本明細書において具体的な実施形態を説明したが、発明の範囲は、これらの具体的な実施形態に限定されるものではない。
【図面の簡単な説明】
【０１２０】
【図１】本発明の特徴および態様に基づいた例示的なワークフローシステムのブロック図である。
【図２】本発明の特徴および態様に従ってワークフローを設定し、実行する例示的な方法について説明するフローチャートである。
【図３】本発明の特徴および態様に従ってワークフローを設定し、実行する例示的な方法について説明するフローチャートである。
【図４】本発明の特徴および態様に従ってワークフローを設定し、実行する例示的な方法について説明するフローチャートである。
【図５】本発明の特徴および態様に従って印刷ジョブを処理する例示的なワークフローの例示的な段階を示す図である。
【図６】本発明の特徴および態様に従って、対応する例示的なワークフローモデルで処理される２つの例示的なジョブの特定の実施例を説明する図である。
【図７】本発明の特徴および態様に従って、ワークフローシステムのジョブおよび装置に関する状態情報を表示する例示的な表示画面である。
【図８】本発明の特徴および態様をもたらすように構成されたデータ処理装置としてのデータ処理システムを示すブロック図である。
【図１】
2009532791.tif 000008
【図２】
2009532791.tif 000009
【図３】
2009532791.tif 000010
【図４】
2009532791.tif 000011
【図５】
2009532791.tif 000012
【図６】
2009532791.tif 000013
【図７】
2009532791.tif 000014
【図８】
2009532791.tif 000015
【国際調査報告】
2009532791.tif 000016
2009532791.tif 000017
2009532791.tif 000018