(57)【特許請求の範囲】
【請求項１】
複数の装置の装置機能を決定し、前記決定された装置機能に基づいて複数のジョブのジョブ・チケットを生成するように動作可能であるワークフロー・フロントエンドと、
ジョブを扱うように要求された装置の１つ以上の動作パラメータを定義する少なくとも１つの処理を含むジョブ・チケットをそれぞれ有する複数のジョブを格納するように動作可能であるジョブ・キューと、
前記装置の少なくとも１つの共通の動作パラメータを定義する処理を前記ジョブから識別し、前記装置の前記少なくとも１つの共通の動作パラメータを定義する処理に基づいて、前記複数の装置での処理について前記複数のジョブをスケジューリングするように動作可能であるスケジュール・プロセッサと
を有するジョブ・スケジューラ・システム。
【請求項２】
前記スケジュール・プロセッサは、前記少なくとも１つの共通の動作パラメータを定義する処理を有するジョブが前記装置で連続して実行されるように、実行するジョブをスケジューリングするように更に動作可能である、請求項１に記載のジョブ・スケジューラ・システム。
【請求項３】
前記スケジュール・プロセッサは、前記装置の共通の媒体を定義する処理を前記ジョブから識別し、前記装置の共通の媒体を定義する処理に基づいて、実行するジョブをスケジューリングするように更に動作可能である、請求項１に記載のジョブ・スケジューラ・システム。
【請求項４】
前記共通の媒体は、特定のサイズ、輝度及び重さの用紙を有する、請求項３に記載のジョブ・スケジューラ・システム。
【請求項５】
前記スケジュール・プロセッサは、前記装置の共通の構成を定義する処理を前記ジョブから識別し、前記装置の共通の構成を定義する処理に基づいて、実行するジョブをスケジューリングするように更に動作可能である、請求項１に記載のジョブ・スケジューラ・システム。
【請求項６】
前記装置はプリンタを有し、
前記プリンタの共通の構成は、前記プリンタの共通の仕上げ構成を有する、請求項５に記載のジョブ・スケジューラ・システム。
【請求項７】
ジョブ・スケジューラ・システムにおいてジョブをスケジューリングする方法であって、
前記ジョブ・スケジューラ・システムのワークフロー・フロントエンドが、複数の装置の装置機能を決定し、前記決定された装置機能に基づいて複数のジョブのジョブ・チケットを生成するステップと、
前記ジョブ・スケジューラ・システムのジョブ・キューが、ジョブを扱うように要求された装置の１つ以上の動作パラメータを定義する少なくとも１つの処理を含むジョブ・チケットをそれぞれ有する複数のジョブを受領するステップと、
前記ジョブ・スケジューラ・システムのスケジュール・プロセッサが、前記装置の少なくとも１つの共通の動作パラメータを定義する処理を前記ジョブから識別するステップと、
前記ジョブ・スケジューラ・システムの前記スケジュール・プロセッサが、前記装置の前記少なくとも１つの共通の動作パラメータを定義する処理に基づいて、前記複数の装置での処理について前記複数のジョブをスケジューリングするステップと
を有する方法。
【請求項８】
前記ジョブをスケジューリングするステップは、前記少なくとも１つの共通の動作パラメータを定義する処理を有するジョブが前記装置で連続して実行されるように、実行するジョブをスケジューリングするステップを有する、請求項７に記載の方法。
【請求項９】
前記装置の少なくとも１つの共通の動作パラメータを定義する処理を前記ジョブから識別するステップは、前記装置の共通の媒体を定義する処理を前記ジョブから識別するステップを有し、
前記ジョブをスケジューリングするステップは、前記装置の共通の媒体を定義する処理に基づいて、実行するジョブをスケジューリングするステップを有する、請求項７に記載の方法。
【請求項１０】
前記共通の媒体は、特定のサイズ、輝度及び重さの用紙を有する、請求項９に記載の方法。
【請求項１１】
前記装置の少なくとも１つの共通の動作パラメータを定義する処理を前記ジョブから識別するステップは、前記装置の共通の構成を定義する処理を前記ジョブから識別するステップを有し、
前記ジョブをスケジューリングするステップは、前記装置の共通の構成を定義する処理に基づいて、実行するジョブをスケジューリングするステップを有する、請求項７に記載の方法。
【請求項１２】
前記装置はプリンタを有し、
前記プリンタの共通の構成は、前記プリンタの共通の仕上げ構成を有する、請求項１１に記載の方法。
【請求項１３】
コンピュータ・システムに、ジョブをスケジューリングする方法を実行させるプログラムであって、
前記方法は、
複数の装置の装置機能を決定し、前記決定された装置機能に基づいて複数のジョブのジョブ・チケットを生成するステップと、
ジョブを扱うように要求された装置の１つ以上の動作パラメータを定義する少なくとも１つの処理を含むジョブ・チケットをそれぞれ有する複数のジョブを受領するステップと、
前記装置の少なくとも１つの共通の動作パラメータを定義する処理を前記ジョブから識別するステップと、
前記装置の前記少なくとも１つの共通の動作パラメータを定義する処理に基づいて前記複数の装置での処理について前記複数のジョブをスケジューリングするステップと
を有するプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷分野に関し、特に、プリントショップ等の装置でインテリジェントにジョブをスケジューリングすることに関する。
【背景技術】
【０００２】
一般的には、プリントショップは、典型的には商用印刷サービスを提供するために、印刷が実施される場所を示す。顧客は、カタログ、マニュアル、本、雑誌、パンフレット等を印刷するためにプリントショップを使用する。プリントショップは、数名の顧客用の長い連続運転時間（run-length）のジョブを印刷する大規模なインライン・プリンタ（すなわち、連続送りプリンタ）を実装する大規模制作プリントショップでもよい。例えば、大規模制作プリントショップは、クレジットカード会社の顧客用請求書を印刷してもよい。ほとんどのプリントショップは、多くの異なる顧客用の短い連続運転時間のジョブを印刷する小規模なプリントショップである。例えば、小規模なプリントショップは、様々な異なる顧客の雑誌、カタログ、本、パンフレット等を印刷することがある。
【０００３】
ほとんどの小規模なプリントショップは、多くの異なる顧客にサービス提供するため、小規模なプリントショップは、異なるジョブを扱うために、ワークフロー及びシステム構成を変更することができなければならない。一般的には、ワークフローは、印刷サービスを提供するプリントショップでのリソース、装置及び役目の何らかの構成を示す。例えば、小規模なプリントショップは、白黒プリンタと、カラープリンタと、裁断装置と、紙綴じ装置（binding  device）とを含むことがある。１人の顧客のワークフローについて、プリントショップは、カラープリンタと裁断装置とを使用し、この顧客のパンフレットを生成することがある。他の顧客のワークフローについて、プリントショップは、カラープリンタと白黒プリンタと裁断装置と紙綴じ装置とを使用し、この顧客の本を生成することがある。小規模なプリントショップの柔軟性の必要性及び新規の大規模なインライン装置のコストのため、プリントショップの多くの装置は、インライン装置とは対照的に、オフライン装置又はニアライン（near-line）装置である。従って、迅速に構成を切り替えて異なる種類のジョブを扱うために、小規模なプリントショップは、インライン・システムを再構成する必要はないが、その代わりに、オフライン装置又はニアライン装置を使用する可能性がある。
【０００４】
プリントショップのワークフロー・アーキテクチャは、ジョブが生成又は作成され、その後にプリントショップの装置で実行されるプラットフォームである。現在実施されている典型的なワークフロー・アーキテクチャは、プリントショップの１つ以上のコンピュータで実行されるソフトウェアを有する。ソフトウェアは、プリントショップで使用される特定の装置と、プリントショップで扱われるジョブの種類とに基づいて、プリントショップ毎にカスタマイズされている。例えば、プリントショップが２つの異なるベンダからの２つのプリンタと他のベンダからの裁断装置とを有する場合、そのプリントショップにカスタマイズされたソフトウェアは、使用されるこれらの特定の装置に基づいてプログラムされている。
【０００５】
カスタマイズされたソフトウェアにより、プリントショップのオペレータは、１つ以上のジョブの生成、ジョブの管理、ジョブのスケジューリング等を実行することが可能になる。このような機能を提供するために、プリントショップの装置毎（すなわち、プリンタ、裁断装置、紙綴じ装置等）の動作パラメータ、機能及び他の情報は、カスタマイズされたソフトウェアに定義される。カスタマイズされたソフトウェアは、プリントショップの装置とこれらの関連する所定の機能とをプリントショップのオペレータに表示するジョブ・エディタを提供してもよい。プリントショップのオペレータは、プリントショップの１つ以上の装置を選択し、ジョブに対して各装置で実行される処理を定義することにより、ジョブを生成してもよい。例えば、まず、プリントショップのオペレータは、カラープリンタを選択し、特定の印刷可能ファイル（例えば、PDFファイル）を印刷し、印刷ページを生成してもよい。次に、プリントショップのオペレータは、折りたたみ装置を選択し、印刷ページで１つ以上の折り目をつけて、パンフレットを生成してもよい。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
複数のジョブがジョブ・エディタを通じて生成されるときに、カスタマイズされたソフトウェアは、装置で実行するために、ジョブを待ち行列に入れる。ソフトウェアは、待ち行列にあるジョブをプリントショップのオペレータに表示するユーザ・インタフェースを提供する。プリントショップのオペレータは、最初に実行される処理を選択し、次に実行される処理を選択すること等により、ジョブが実行される順序をスケジューリングしてもよい。ジョブを実行する順序をスケジューリングする現在の方法の１つの問題は、これが手動で実行されており、プリントショップのオペレータの主観的な意思決定に基づいて実行されているという点にある。待ち行列にあるキューを単に見ることにより、プリントショップのオペレータは、他の方法でジョブを実行することより効率的な順序でジョブを実行し得るジョブの共通性を認識していない可能性がある。例えば、ジョブA-Cがこの順序で実行のために待ち行列に入れられたことを仮定する。ジョブA及びジョブBが共に同じ用紙で同じ仕上げ動作で印刷されるものであり、ジョブBが異なる用紙で異なる仕上げ動作で印刷されるものである場合、ジョブBの前にジョブA及びジョブCを印刷する方が効率的になる可能性がある。プリントショップのオペレータは、ジョブをスケジューリングする最も効率的な順序を認識していない可能性がある。
【課題を解決するための手段】
【０００７】
本発明の実施例は、ジョブの共通の動作パラメータに基づいてジョブをスケジューリングすることで、前記及び他の関連する問題を解決する。一実施例のジョブ・スケジューラは、ジョブ・キューとスケジュール・プロセッサとを含む。ジョブ・キューは、プリントショップ等の装置で実行される複数のジョブを受領して格納する。各ジョブは、ジョブについて実行される１つ以上の処理を定義する。ジョブの各処理は、処理を実行する装置の１つ以上の動作パラメータを定義する。例えば、装置がプリンタを有する場合、処理の動作パラメータは、印刷処理で使用される媒体の種類（81/2×11のサイズ、90の輝度、20ポンドの用紙等）を定義してもよい。他の例では、動作パラメータは、プリンタの仕上げ構成（出力を右上角でとめる等）でもよい。
【０００８】
ジョブ・キューに格納されるジョブをスケジューリングするために、スケジュール・プロセッサは、装置で１つ以上の共通の（すなわち、同じ又は等価な）動作パラメータを定義する処理をジョブから識別する。スケジュール・プロセッサは、共通の動作パラメータを定義する処理に基づいて、実行するジョブをスケジューリングする。例えば、スケジュール・プロセッサは、装置で共通の媒体（例えば、特定のサイズの用紙、輝度、重さ）を規定する処理をジョブから識別し、装置で共通の媒体を定義する処理に基づいて実行するジョブをスケジューリングしてもよい。他の例として、スケジュール・プロセッサは、装置で共通の構成（例えば、プリンタでの共通の仕上げ構成）を定義する処理をジョブから識別し、装置で共通の構成を定義する処理に基づいて実行するジョブをスケジューリングしてもよい。スケジュール・プロセッサは、共通の動作パラメータを定義する処理を有するジョブが装置で連続して実行されるように、実行するジョブをスケジューリングしてもよい。
【０００９】
ジョブでの処理の動作パラメータを調べることにより、有利な点がある。スケジュール・プロセッサは、インテリジェントにジョブをスケジューリングすることができる。ジョブを実行するスケジュールを手動で主観的に決定するプリントショップのオペレータ又は他のユーザに依存する代わりに、スケジュール・プロセッサは、処理の動作パラメータに基づいて、ジョブを実行する最適な順序を決定することができる。従って、プリントショップは効率的に運営することができる。
【００１０】
本発明は、以下に記載する他の例示的な実施例を含んでもよい。
【図面の簡単な説明】
【００１１】
【図１】本発明の例示的な実施例でのワークフロー・アーキテクチャ
【図２】本発明の例示的な実施例でのワークフロー・フロントエンド
【図３】本発明の例示的な実施例でのサービス・バス
【図４】本発明の例示的な実施例でのサービス・プロバイダ
【図５】本発明の例示的な実施例でジョブ・チケットを生成して実行する方法を示すフローチャート
【図６】本発明の例示的な実施例でのプリントショップの他のワークフロー・アーキテクチャ
【図７】本発明の例示的な実施例でプリンタのサービス・プロバイダとサービス・バスとの間で交換されるメッセージ
【図８】本発明の例示的な実施例で紙綴じ装置のサービス・プロバイダとサービス・バスとの間で交換されるメッセージ
【図９】本発明の例示的な実施例で裁断装置のサービス・プロバイダとサービス・バスとの間で交換されるメッセージ
【図１０】本発明の例示的な実施例でサービス・プロバイダが装置内に実装されたワークフロー・アーキテクチャ
【図１１】本発明の例示的な実施例でのジョブ・スケジューラ
【図１２】本発明の例示的な実施例でジョブをスケジューリングする方法を示すフローチャート
【図１３】本発明の例示的な実施例で所望の機能を実行するためにプログラム命令を使用したコンピュータ可読媒体を実行するように動作可能なコンピュータ・システム
【発明を実施するための形態】
【００１２】
全ての図面で、同じ参照符号は、同じ要素又は同じ種類の要素を表す。
【００１３】
図１〜図１３及び以下の説明は、本発明をどのように作成して利用するかを当業者に教示するための本発明の特定の例示的な実施例を示す。この教示の目的のために、本発明のいくつかの通常の側面は簡略化または省略されている。当業者は、これらの実施例から、本発明の範囲内に入る様々な変形例を認識するであろう。当業者は、以下に説明する特徴が様々な方法で組み合わされて本発明の複数の変形例を形成できることを認識する。その結果、本発明は、以下に説明する特定の実施例に限定されるものではなく、特許請求の範囲及びその均等物のみによって限定される。
【００１４】
ここに提供される実施例は、プリントショップ等でジョブをスケジューリングするシステム及び方法について説明する。システム及び方法は、特定のワークフロー・アーキテクチャに実装されてもよい。このため、ワークフロー・アーキテクチャについて、図１〜１０に示し、以下に説明する。このアーキテクチャで及び場合によっては他のアーキテクチャでスケジューリングするシステム及び方法は、図１１〜１２に示されている。
【００１５】
＜ワークフロー・アーキテクチャ＞
図１は、本発明の例示的な実施例でのワークフロー・アーキテクチャ100を示している。ワークフロー・アーキテクチャ100は、プリントショップに実装されてもよい。ワークフロー・アーキテクチャ100は、処理を実行するようにそれぞれ動作可能な複数の装置101-104を含む、或いは複数の装置101-104で実装される。例えば、装置101-104は、印刷処理、裁断処理、紙綴じ処理又は他の種類のプリントショップの処理を実行してもよい。「装置（device）」という用語は、一般的に処理を実行するように動作可能な機械的な装置を示すが、ここで用いられる「装置」は、処理を実行することができる人を示してもよい。装置101-104は、インライン装置、ニアライン（near-line）装置又はオフライン装置でもよい。
【００１６】
ワークフロー・アーキテクチャ100は、この実施例ではマルチレイヤ・プラットフォームとして実装される。第１のレイヤ（レイヤ１）は、装置レベルのレイヤである。レイヤ１は、１つ以上のサービス・プロバイダ111-114で構成される。サービス・プロバイダ111-114は、装置101-104にそれぞれ関連する。サービス・プロバイダは、装置101-104の機能を監視、格納及び／又は報告するように動作可能な何らかのシステム、ソフトウェア又はモジュールを有する。装置機能（デバイスケーパビリティー）は、装置により提供される活動、動作又はサービスを記述又は指示する何らかのデータ又は情報を有する。装置機能は、装置により提供される活動の入力リソース、装置により提供される活動の出力リソース、及び／又は活動、動作若しくはサービスを実行するために使用される何らかの動作パラメータ若しくは装置構成を定義してもよい。サービス・プロバイダ111-114は、関連する装置の現在の機能をリアルタイムで決定することができる。例えば、サービス・プロバイダ111-114は、装置に問い合わせを送出すること又は装置から更新情報を受領すること等により、関連する装置を繰り返し監視するように動作可能でもよい。装置の装置機能を繰り返し監視することにより、サービス・プロバイダ111-114は、装置のリアルタイムの装置機能を決定してもよい。これらのリアルタイムの装置機能は、アーキテクチャ100が全ての装置の現在又は実行時の装置機能を常に有するように報告されてもよい。
【００１７】
サービス・プロバイダはまた、関連する装置を使用して１つ以上の処理を実行するように動作可能でもよい。例えば、サービス・プロバイダがプリンタに関連する場合、サービス・プロバイダは、プリンタで印刷処理を実行するように動作可能でもよい。
【００１８】
アーキテクチャ100の第２のレイヤ（レイヤ２）はサービス・バス122である。サービス・バスは、プリントショップの装置機能を格納又は統合し、印刷ジョブのようなジョブを実行（管理）するように動作可能な何らかのシステム、ソフトウェア又はモジュールを有する。印刷ジョブは、プリントショップで実行される１つ以上の処理を定義する何らかのタスクを有する。例えば、印刷ジョブは、印刷処理、裁断処理、紙綴じ処理等を定義してもよい。
【００１９】
アーキテクチャ100の第３のレイヤ（レイヤ３）は、ワークフロー・フロントエンド132である。ワークフロー・フロントエンドは、ユーザがジョブ・チケットを生成することを可能にするユーザ・インタフェースを提供するように動作可能な何らかのシステム、ソフトウェア又はモジュールを有する。ワークフロー・フロントエンドは、ユーザがサービス・バス122で実行されているジョブの状態を見ること及び／又はサービス・バス122のジョブを管理することを可能にするユーザ・インタフェースを提供するように更に動作可能である。１つのワークフロー・フロントエンド132が図１に示されているが、他の実施例では、複数のワークフロー・フロントエンドが実装されてもよい。
【００２０】
図２は、本発明の例示的な実施例でのワークフロー・フロントエンド132を示している。この実施例では、ワークフロー・フロントエンド132は、ジョブ・エディタ202と、ワークフロー・コントローラ204とを含む。ジョブ・エディタ202は、ユーザが印刷ジョブ又は他の種類のジョブのジョブ・チケットを生成することを可能にする。ジョブ・エディタ202は、サービス・バス122から、（元々は各サービス・プロバイダ111-114により報告された）プリントショップの装置101-104の装置機能を受領する。ジョブ・エディタ202は、装置及び装置の機能をユーザに表示するユーザ・インタフェースを提供する。ユーザ・インタフェースは、ユーザが情報を見ること及び命令を入力することを可能にするグラフィカル・ユーザ・インタフェース（GUI：graphical  user  interface）又は他の種類のユーザ相互作用機構を有してもよい。例えば、ジョブ・エディタ202は、装置101-104及び装置101-104の機能をユーザに列挙するユーザ・インタフェースを提供してもよい。ユーザ・インタフェースを通じて、ユーザは、特定の装置101-104及び装置101-104により実行される特定の処理（又は活動）を選択することにより、ジョブのジョブ・チケットを定義してもよい。一例として、ユーザは、ドキュメントを印刷する装置101を選択し、印刷されたドキュメントに折り目をつける装置102を選択してもよい。装置及び処理を選択する際のユーザからの入力に基づいて、ジョブ・エディタ202は、ジョブ・チケットを生成し、実行するためにジョブ・チケットをサービス・バス122に送出する。ジョブ・エディタ202はまた、ユーザが装置101-104の構成を設定又は変更することを可能にしてもよい。
【００２１】
使用され得る１つの種類のジョブ・チケットは、ジョブ定義フォーマット（JDF：Job  Definition  Format）のジョブ・チケットである。JDFジョブ・チケットは、XMLフォーマットであり、ジョブ・チケット、メッセージ記述及びメッセージ交換を記述する。JDFジョブ・チケットは、（存在する場合には）何のファイルが入力として必要であるか、どこにファイルが存在するか、及び装置が何の処理を実行すべきかを装置が決定することを可能にする情報を含む。他のメッセージは、ジョブ・メッセージング・フォーマット（JMF：Job  Messaging  Format）メッセージとして、ワークフロー・アーキテクチャ100で通信されてもよい。JMFは、JDF仕様の一部である。JMFメッセージは、XMLフォーマットであり、イベント（開始、終了、エラー）、状態（利用可能、オフライン、紙詰まり等）、結果（カウント、無駄等）及び他の詳細の通信を可能にする。
【００２２】
ワークフロー・コントローラ204は、サービス・バス122用のユーザ・インタフェース機能を提供する。ユーザがジョブ・エディタ202を通じてジョブ・チケットを生成すると、ジョブ・チケットは、実行のためにサービス・バス122に送出される。サービス・バス122は、実行のためにジョブ・チケットをスケジューリングし、スケジューリングされた通りにジョブ・チケットを実行する。ワークフロー・コントローラ204は、ジョブ・チケットのスケジュールをユーザに表示し、また、ユーザがジョブ・チケットのスケジュールを変更することを可能にするユーザ・インタフェースを提供する。ジョブ・チケットがサービス・バス122で実行されると、ワークフロー・コントローラ204は、状態を表示するユーザ・インタフェースを提供する。ユーザはまた、サービス・バス122で待ち行列にあるジョブ・チケット又は実行されているジョブ・チケットを管理してもよい。
【００２３】
図３は、本発明の例示的な実施例でのサービス・バス122を示している。この実施例では、サービス・バス122は、統合装置機能データベース302と、ジョブ・スケジューラ304と、ジョブ・スケジューラ304と、ジョブ・コントローラ306とを含む。統合装置機能データベース302は、サービス・プロバイダ111-114から装置機能の報告又は指示を受領し、装置機能を格納するように動作可能な何らかのシステム、ソフトウェア又はモジュールを有する。統合装置機能データベース302は、利用可能な全体の処理を表す装置機能ファイルに装置機能を格納してもよい。例えば、装置機能ファイルは、プリントショップで（実行時に）利用可能な全体の処理を表してもよい。
【００２４】
統合装置機能データベース302は、必要に応じて又は所望の通りにサービス・プロバイダ111-114を登録又は登録解除するように更に動作可能でもよい。例えば、装置101-104（図１参照）が一時的又は永続的にサービスを中止すると、統合装置機能データベース302は、装置がサービス停止中の間に、その装置101-104についてサービス・プロバイダ111-114を登録解除してもよい。
【００２５】
ジョブ・スケジューラ304は、ワークフロー・フロントエンド132からジョブ・チケットを受領して格納し、実行のために格納されたジョブ・チケットをスケジューリングするように動作可能な何らかのシステム、ソフトウェア又はモジュールを有する。例えば、受領したジョブ・チケットは、JDFジョブ・チケットでもよい。ジョブ・スケジューラ304は、アルゴリズム（例えば、FIFO(先入れ先出し)法）、オペレータからの命令又は他の方法に従って、ジョブ・チケットをスケジューリングしてもよい。
【００２６】
ジョブ・コントローラ306は、ジョブ・チケット（又はジョブ・チケットにより定義されたジョブ）を実行するように動作可能な何らかのシステム、ソフトウェア又はモジュールを有する。ジョブ・コントローラ306がジョブ・スケジューラ304によりスケジューリングされた通りに実行するジョブ・チケットを受領すると、ジョブ・コントローラ306は、ジョブ・チケットに定義された処理を識別し、ジョブ・チケットに定義された処理を実行するサービス・プロバイダ111-114を識別するように動作可能である。ジョブ・コントローラ306はまた、識別された処理が実行されることを要求する処理メッセージを生成するように動作可能である。処理メッセージは、装置が１つ以上の処理を実行又は実施することを要求又は命令する何らかの種類のメッセージを有する。一例では、処理メッセージは、JDFジョブ・チケットである。ジョブ・コントローラ306は、処理メッセージで要求された処理が実行され得るように、処理メッセージを識別されたサービス・プロバイダ111-114に送出するように更に動作可能である。
【００２７】
ジョブ・コントローラ306はまた、ジョブ・チケットの処理の状態を受領するように動作可能である。ジョブ・コントローラ306は、（例えば、１つの装置101-104が処理を実行することができない場合）１つの装置101-104（図１参照）を他の装置で置換すること等により、１つ以上の処理の状態に基づいてジョブ・チケットを変更してもよい。ジョブ・コントローラ306はまた、ユーザに表示するために、処理の状態をワークフロー・コントローラ204（図２参照）に提供してもよい。
【００２８】
図４は、本発明の例示的な実施例でのサービス・プロバイダ111-114を示している。この実施例では、サービス・プロバイダ111-114は、装置機能データベース402と、処理コントローラ404とを含む。装置機能データベース402は、装置101-104の機能を監視し、その装置機能を決定し、関連する装置101-104の装置機能を格納し、装置101-104の装置機能をサービス・バス122に報告するように動作可能な何らかのシステム、ソフトウェア又はモジュールを有する。
【００２９】
装置101-104の装置機能は、様々な方法でサービス・プロバイダ111-114に定義されてもよい。例えば、装置製造者は、ワークフロー・アーキテクチャ100について示されたフォーマットに従って、装置の装置機能を定義してもよい。他の例では、ワークフロー・アーキテクチャの製造者又はプロバイダは、プリントショップの一部になり得る複数の装置の装置機能又はサービス・プロバイダを定義してもよい。新規の装置がプリントショップに追加されると、適切なサービス・プロバイダが起動されてもよい。他の例では、オペレータが、ワークフロー・フロントエンド132等を通じて装置の装置機能を動的に定義してもよい。
【００３０】
処理コントローラ404は、装置101-104で１つ以上の処理を実行するように動作可能な何らかのシステム、ソフトウェア又はモジュールを有する。処理コントローラ404がサービス・バス122から処理メッセージを受領すると、処理コントローラ404は、処理メッセージで実行される処理を識別し、関連する装置101-104を使用して処理を実行するように動作可能である。例えば、処理メッセージがJDFジョブ・チケットを有する場合、処理コントローラ404は、JDFジョブ・チケットを処理し、（存在する場合には）何のファイルが入力として必要であるか、どこにファイルが存在するか、及び装置が何の処理を実行すべきかを識別する。処理コントローラ404は、JDFジョブ・チケットを関連する装置101-104と互換性のあるフォーマットの装置特有の動作コマンドに変換し、装置特有の動作コマンドを関連する装置101-104に送出し、JDFジョブ・チケットで識別された処理を実行してもよい。
【００３１】
処理コントローラ404はまた、関連する装置101-104で実行される処理の状態を監視するように動作可能である。処理コントローラ404はまた、処理の状態をサービス・バス122に報告するように動作可能である。処理コントローラ404は、処理の状態をサービス・バス122に報告するために、JMFメッセージを使用してもよい。
【００３２】
このマルチレイヤ・ワークフロー・アーキテクチャ100（図１参照）は、プリントショップ又は他のアプリケーションの柔軟なプラットフォームを提供するという利点がある。サービス・プロバイダ111-114は、装置101-104の装置機能をサービス・バス122に報告することができ、次に、サービス・バス122は、装置機能をワークフロー・フロントエンド132に提供することができるため、ジョブ・チケットを生成する際に、全ての装置101-104の現在又はリアルタイムの機能がユーザに利用可能になる。このように、例えば、新規の装置がプリントショップに追加されると、新規の装置に関連するサービス・プロバイダは、新規の装置の装置機能をサービス・バス122に報告し、新規の装置の機能は、ジョブ・チケットを生成する際にオペレータに利用可能になる。同様に、既存の装置101-104が変更される場合、変更される装置101-104に関連するサービス・プロバイダ111-114は、新規の装置機能をサービス・バス122に報告し、変更された装置101-104の機能は、ジョブ・チケットを生成する際にユーザに利用可能になる。新規に追加された装置又は変更された装置のサービス・プロバイダは、装置機能をサービス・バスに自動的に報告することができるため、装置は、プリントショップ等で効率的に追加又は変更可能になる。
【００３３】
＜ジョブ・チケットの扱い方＞
どのようにワークフロー・アーキテクチャ100がプリントショップで動作するかを示すために、図５は、本発明の例示的な実施例でジョブ・チケットを生成して実行する方法500を示すフローチャートである。方法500のステップは、図１のワークフロー・アーキテクチャ100を参照して記載されるが、方法500は、他の実施例では他のアーキテクチャ及び他の装置を通じて実行されてもよい。図５のフローチャートのステップは、必ずしも包括的ではなく、図示しない他のステップを含んでもよい。
【００３４】
前述のように、サービス・プロバイダ111-114は、関連する装置101-104の装置機能を装置機能データベース402等（図４参照）に格納する。ステップ502において、サービス・プロバイダ111-114は、装置101-104の装置機能をサービス・バス122にそれぞれ報告する。サービス・プロバイダ111-114は、１つ以上のトリガーに従って装置機能を報告してもよい。例えば、サービス・プロバイダ111-114は、関連する装置101-104が動作し始めたときに、又は関連する装置101-104又はその動作パラメータに変化が生じたときに、装置機能を報告してもよい。或いは、サービス・プロバイダ111-114は、装置機能を定期的に（毎分、毎時等）報告してもよい。或いは、サービス・プロバイダ111-114は、サービス・バス122による要求に応じて、装置機能を報告してもよい。
【００３５】
ステップ504において、サービス・バス122は、サービス・プロバイダ111-114から装置機能を受領する。統合装置機能データベース302（図３参照）は、各サービス・プロバイダ111-114からの装置機能をプリントショップ用の統合装置機能ファイルに統合してもよい。統合装置機能ファイルは、プリントショップで利用可能な全体の処理を表す。統合装置機能データベース302は、装置101-104の装置機能を監視する。例えば、統合装置機能データベース302は、サービス・プロバイダ111-114に定期的に問い合わせ、装置機能が最新のものであることを確保してもよい。ステップ504において、サービス・バス122はまた、プリントショップの装置101-104の装置機能をワークフロー・フロントエンド132に提供する。
【００３６】
ステップ506において、ワークフロー・フロントエンド132は、ジョブ・エディタ202（図２参照）等でサービス・バス122から装置機能を受領する。ジョブ・エディタ202は、装置101-104の装置機能をプリントショップのオペレータに表示又は提供するユーザ・インタフェースを提供する。このことにより、プリントショップのオペレータ（又は他のユーザ）は、装置機能に基づいてジョブ・チケットを定義することが可能になる。装置機能は、利用可能な装置101-104と、装置101-104により提供される活動、動作又はサービスとを示すため、プリントショップのオペレータ（又は他のユーザ）は、装置機能の一部として、１つ以上の装置101-104と、装置101-104により実行される１つ以上の処理とを選択してもよい。ステップ508において、プリントショップのオペレータからの入力に応じて、ジョブ・エディタ202は、プリントショップのジョブ・チケットを生成する。ジョブ・チケットは、プリントショップの装置101-104の装置機能に基づいて生成されるため、ジョブ・チケットは、サービス・バス122で実行可能であると実質的に保証される。ステップ508において、ワークフロー・フロントエンド132は、ジョブ・チケットをサービス・バス122に送出する。
【００３７】
１つの代替例では、ワークフロー・フロントエンド132は、プリントショップの装置101-104の装置機能を示すウェブページを生成してもよい。ワークフロー・フロントエンド132により生成されたウェブページは、プリントショップにより提供されるオンラインショップの一部でもよい。顧客はウェブページを見て、装置機能の一部として、１つ以上の装置101-104と、装置101-104により実行される１つ以上の処理とを選択してもよい。ジョブ・チケットは、顧客側で生成されてもよく、顧客による選択に基づいてジョブ・エディタ202で生成されてもよい。ジョブ・チケットが顧客側で生成される場合、ワークフロー・フロントエンド132は、ネットワーク（インターネット等）で顧客から生成されたジョブ・チケットを受領する。顧客により生成されたジョブ・チケットは、独自フォーマットでもよい。このように、ワークフロー・フロントエンド132が顧客から独自フォーマットでジョブ・チケットを受領すると、ワークフロー・フロントエンド132は、独自フォーマットのジョブ・チケットをJDFジョブ・チケットに変換する。ワークフロー・フロントエンド132は、JDFジョブ・チケットをサービス・バス122に送出してもよい。
【００３８】
サービス・バス122は、ジョブ・スケジューラ304（図３参照）等でジョブ・チケットを受領する。ジョブ・スケジューラ304は、アルゴリズム又はプリントショップのオペレータの入力に従って、ジョブ・チケットをスケジューリングする。何らかの時点で、ジョブ・スケジューラ304は、実行のためにジョブ・チケットをジョブ・コントローラ306に出力する。ステップ510において、ジョブ・コントローラ306は、ジョブ・チケットを処理し、ジョブ・チケットに定義された処理を識別し、処理を実行するために動作可能なサービス・プロバイダ111-114を識別する。例えば、ジョブ・チケットがJDFフォーマットである場合、ジョブ・コントローラ306は、JDFジョブ・チケットを処理し、ジョブについて定義された処理を識別する。ステップ512において、ジョブ・コントローラ306は、実行される処理を示す処理メッセージを生成する。個々の処理毎に、ジョブ・コントローラ306は、（存在する場合には）何のファイルが入力として必要であるか、どこにファイルが存在するか、及びサービス・プロバイダ111-114が何の処理を実行すべきかを示すJDFジョブ・チケットを生成してもよい。ステップ512において、ジョブ・コントローラ306は、処理メッセージをサービス・プロバイダ111-114に送る。
【００３９】
１つ以上のサービス・プロバイダ111-114は、サービス・バス122から処理メッセージを受領する。ステップ514において、処理コントローラ404（図４参照）を通じて、処理メッセージを受領したサービス・プロバイダ111-114は、関連する装置101-104を使用して、処理メッセージに示された処理を実行する。例えば、処理メッセージがJDFジョブ・チケットである場合、サービス・プロバイダ111-114は、JDFジョブ・チケットを関連する装置101-104と互換性のあるフォーマットの装置特有の動作コマンドに変換してもよい。サービス・プロバイダ111-114は、装置特有の動作コマンドを関連する装置101-104に送出し、JDFジョブ・チケットで識別された処理を実行する。
【００４０】
サービス・プロバイダ111-114は、関連する装置101-104を使用して実行される処理の状態をそれぞれ識別することができる。サービス・プロバイダ111-114は、処理の状態をサービス・バス122に送出する。サービス・バス122は、ジョブの処理の状態をワークフロー・フロントエンド132に送出する。処理の状態は、ワークフロー・アーキテクチャ100内でJMFメッセージで送出されてもよい。ワークフロー・フロントエンド132は、ワークフロー・コントローラ204等を通じて、処理の状態をプリントショップのオペレータに示す。プリントショップのオペレータは、全体のジョブの状態を監視してもよい。
【００４１】
プリントショップのオペレータは、サービス・バス122で実行されているジョブ・チケットを管理又は変更してもよい。例えば、１つの装置101-104がエラーに直面した場合又は利用不可能になった場合、プリントショップのオペレータは、ジョブ・チケットを変更し、新規の装置101-104又は新規の処理を定義してもよい。同様に、サービス・バス122は、処理の状態に基づいてジョブ・チケットを自動的に変更してもよい。１つの装置101-104がエラーに直面した場合又は利用不可能になった場合、サービス・バス122は、ジョブ・チケットを変更し、この装置をプリントショップの他の装置と交換し、処理を実行することができる。
【００４２】
＜例示１＞
図６〜９は、プリントショップで特定のジョブ・チケットを扱う例を示している。この例のプリントショップは、図１に示すものと同様のワークフロー・アーキテクチャを使用してもよい。図６は、本発明の例示的な実施例でのプリントショップのワークフロー・アーキテクチャ600を示している。この実施例のプリントショップは、カラープリンタ601と、第１のベンダからの白黒プリンタ602と、第２のベンダからの白黒プリンタ603とを含む。プリントショップはまた、紙綴じ機（binder）604と、製本機605とを含む。紙綴じ機604及び製本機605はオフライン装置である。プリントショップはまた、多刃裁断機606と、ギロチン裁断機607とを含む。双方の裁断機606-607はニアライン装置である。当業者は、プリントショップが必要に応じて多くの装置又は少ない装置を含んでもよいことを認識する。
【００４３】
図１に示すワークフロー・アーキテクチャ100と同様に、ワークフロー・アーキテクチャ600は、複数のサービス・プロバイダ611-617と、サービス・バス122と、ワークフロー・フロントエンド132とを有するマルチレイヤ・プラットフォームとして実装される。サービス・プロバイダ611-617は、プリントショップの装置601-607にそれぞれ関連する。サービス・プロバイダ611は、カラープリンタ601に関連し、カラープリンタ601の装置機能を格納する。サービス・プロバイダ612は、白黒プリンタ602に関連し、白黒プリンタ602の装置機能を格納する。サービス・プロバイダ613は、白黒プリンタ603に関連し、白黒プリンタ603の装置機能を格納する。サービス・プロバイダ614は、紙綴じ機604に関連し、紙綴じ機604の装置機能を格納する。サービス・プロバイダ615は、製本機605に関連し、製本機605の装置機能を格納する。サービス・プロバイダ616は、多刃裁断機606に関連し、多刃裁断機606の装置機能を格納する。サービス・プロバイダ617は、ギロチン裁断機607に関連し、ギロチン裁断機607の装置機能を格納する。図６のサービス・プロバイダは、関連する装置の外部として示されているが、サービス・プロバイダは、装置内に統合されてもよい。図１０は、サービス・プロバイダ611-617が装置601-607内に実装されたワークフロー・アーキテクチャ600を示している。
【００４４】
動作中の何らかの時点で、サービス・バス122がプリントショップの各装置の装置機能についてのリアルタイム情報を有するように、各サービス・プロバイダ611-617は、関連する装置601-607の装置機能をサービス・バス122に報告する。装置機能は、XMLのような宣言型言語で提供されてもよい。例えば、以下にサービス・プロバイダ612により提供される仕上げ用のプリンタ602の装置機能の例を示す。
【表１】
0005407535.tif 000002
【００４５】
以下に、サービス・プロバイダ612により提供される異なる種類の媒体（すなわち、用紙）を提供又は処理するプリンタ602の装置機能の例を示す。
【表２】
0005407535.tif 000003
【００４６】
サービス・バス122は、サービス・プロバイダ611-617から装置機能を受領し、装置機能を統合装置機能データベースに統合する。装置機能データベースは、プリントショップで利用可能な全体の処理及び装置を表す。サービス・バス122は、ワークフロー・フロントエンド132からの要求等に応じて、統合装置機能ファイルをワークフロー・フロントエンド132に提供する。
【００４７】
ワークフロー・フロントエンド132は、統合装置機能ファイルを受領したことに応じて、統合装置機能ファイルに示された装置機能に基づいて装置601-607を使用して実行され得る動作又はサービスを表示又は指示するユーザ・インタフェースを提供する。装置機能は、利用可能な装置601-607と利用可能な処理とを示すため、プリントショップのオペレータは、装置機能の一部として、１つ以上の装置601-607と、装置601-607により実行される１つ以上の処理とを選択してもよい。この実施例では、プリントショップのオペレータが紙綴じ後の取扱説明書を制作しようとしていることを仮定する。
【００４８】
取扱説明書を制作するために、まず、プリントショップのオペレータは、取扱説明書を印刷する１つのプリンタ601-603を選択し、また、選択されたプリンタで印刷される印刷可能ファイル（PDFファイル等）を示してもよい。取扱説明書の内部ページは白黒であるため、この例では、プリントショップのオペレータが、取扱説明書のページを印刷するために、ユーザ・インタフェースを通じて白黒プリンタ602を選択することを仮定する。取扱説明書はまた、何らかの方法で紙綴じされるため、次に、プリントショップのオペレータは、取扱説明書のページを綴じるために、ユーザ・インタフェースを通じて紙綴じ機604又は製本機605を選択してもよい。この例では、プリントショップのオペレータが、取扱説明書の印刷ページを綴じるためにユーザ・インタフェースを通じて紙綴じ機604を選択することを仮定する。取扱説明書の所望のサイズは、白黒プリンタ602で利用可能な用紙より小さくてもよいため、次に、プリンタショップのオペレータは、印刷ページを正確なサイズに裁断する又は切り落とすために、１つの裁断機606-607を選択してもよい。この例では、プリントショップのオペレータが、紙綴じ後の印刷ページを裁断するために、ユーザ・インタフェースを通じてギロチン裁断機607を選択することを仮定する。
【００４９】
特定の処理を実行するために白黒プリンタ602、紙綴じ機604及び裁断機607を選択することに加えて、プリントショップのオペレータは、これらの装置の動作パラメータを見て、所望の通りに動作パラメータを設定又は変更してもよい。例えば、プリントショップのオペレータは、白黒プリンタ602から特定の種類の用紙を選択してもよい。プリントショップのオペレータは、裁断機607の裁断パラメータを設定してもよい。各装置の調整可能なパラメータは、ユーザ・インタフェースを通じてワークフロー・フロントエンド132により表示される。
【００５０】
プリントショップのオペレータからの入力に応じて、ワークフロー・フロントエンド132は、ジョブのジョブ・チケットを生成する。ジョブ・チケットは、白黒プリンタ602、紙綴じ機604及び裁断機607の装置機能に基づいて生成されるため、ジョブ・チケットは、サービス・バス122で実行可能であると実質的に保証される。この例では、ジョブ・チケットは、JDFジョブ・チケットを有する。JDFジョブ・チケットは、白黒プリンタ602、紙綴じ機604及び裁断機607により実行される処理を記述する。JDFジョブ・チケットはまた、取扱説明書のPDFファイルの位置を含む。ワークフロー・フロントエンド132は、JDFジョブ・チケットをサービス・バス122に送出する。
【００５１】
サービス・バス122は、JDFジョブ・チケットを受領し、JDFジョブ・チケットを処理し、ジョブに定義された処理を識別する。サービス・バス122はまた、処理を実行するように動作可能なサービス・プロバイダ611-617を識別する。処理を実行するように動作可能なサービス・プロバイダは、サービス・プロバイダ612、614及び617である。サービス・バス122は、サービス・プロバイダ612、614及び617のそれぞれについて、他のJDFジョブ・チケットを生成する、或いはJDFジョブ・チケットを再利用する。JDFジョブ・チケットは、（存在する場合には）何のファイルが入力として必要であるか、どこにファイルが存在するか、及び何の処理が実行されるべきかをそれぞれ示す。サービス・バス122は、JDFジョブ・チケットを（白黒プリンタ602に関連する）サービス・プロバイダ612に送る。
【００５２】
サービス・プロバイダ612は、サービス・バス122からJDFジョブ・チケットを受領する。JDFジョブ・チケットはXMLフォーマットで記述されている。例えば、以下に実行する仕上げの種類を示すサービス・プロバイダ612に送出されるJDFジョブ・チケットの抜粋の例を示す。
【表３】
0005407535.tif 000004
【００５３】
図７は、本発明の例示的な実施例でサービス・プロバイダ612とサービス・バス122との間で交換されるメッセージを示している。サービス・プロバイダ612は、サービス・バス122からJDFジョブ・チケットとPDFファイルとを受領する。JDFジョブ・チケットは、サービス・プロバイダ612が白黒プリンタ602で印刷処理を実行してPDFファイルを印刷することを要求する。従って、サービス・プロバイダ612は、JDFジョブ・チケットを白黒プリンタ602と互換性のあるフォーマットの装置特有の動作コマンドに変換する。例えば、サービス・プロバイダは、PDFファイル及びJDFジョブ・チケットをPostScript（PS）ファイルに変換してもよい。サービス・プロバイダ612は、PostScriptファイルを白黒プリンタ602に送出し、白黒プリンタ602がPostScriptファイルを印刷する。
【００５４】
サービス・プロバイダ612はまた、白黒プリンタ602での印刷処理の状態を監視する。状態をサービス・バス122に報告するために、サービス・バス122が印刷ジョブの全体の状態を監視し得るように、サービス・プロバイダ612は、状態を示すJMFメッセージをサービス・バス122に返送する。例えば、サービス・プロバイダ612は、いつ印刷処理が終了したかを示すJMFメッセージを送出してもよい。
【００５５】
印刷処理が終了した後、白黒プリンタ602からの出力は、取扱説明書の印刷ページを有する。ワークフローの次のステップは、印刷ページを綴じることである。紙綴じ機604がオフライン装置であるため、白黒プリンタ602からの出力は、入力として自動的に紙綴じ機604に送出されない。従って、サービス・バス122は、印刷ページを紙綴じ機604に手動で挿入するようにプリントショップのオペレータに指示する。サービス・バス122はまた、JDFジョブ・チケットを（紙綴じ機604に関連する）サービス・プロバイダ614に送る。
【００５６】
図８は、本発明の例示的な実施例でサービス・プロバイダ614とサービス・バス122との間で交換されるメッセージを示している。サービス・プロバイダ614は、サービス・バス122からJDFジョブ・チケットを受領する。JDFジョブ・チケットは、サービス・プロバイダ614が紙綴じ機604で紙綴じ処理を実行して取扱説明書の印刷ページを綴じることを要求する。紙綴じ機604はオフライン装置であるため、サービス・プロバイダ614は、装置特有の動作コマンドを紙綴じ機604に提供することができない。その代わりに、サービス・プロバイダ614は、紙綴じ機604をどのように構成して動作するかをプリントショップのオペレータに命令する人間可読命令を生成する。プリントショップのオペレータは、サービス・プロバイダ614からの命令に従い、紙綴じ機604を動作する。
【００５７】
サービス・プロバイダ614はまた、紙綴じ機604での紙綴じ処理の状態を監視する。サービス・プロバイダ614は、紙綴じ処理の状態（例えば、完了又は未完了）としてプリントショップのオペレータからの入力に依存してもよい。サービス・バス122が印刷ジョブの全体の状態を監視し得るように、サービス・プロバイダ614は、状態を示すJMFメッセージをサービス・バス122に返送する。例えば、サービス・プロバイダ614は、いつ紙綴じ処理が終了したかを示すJDFメッセージを送出してもよい。
【００５８】
紙綴じ処理が終了した後、紙綴じ機604からの出力は、適切なサイズに裁断される必要のある取扱説明書の紙綴じ後の印刷ページを有する。ワークフローの次のステップは、紙綴じ後の印刷ページを所望のサイズに裁断することである。裁断機607はニアライン装置であるため、紙綴じ機604からの出力は、入力として裁断機607に自動的に送出されない。従って、サービス・バス122は、紙綴じ後の印刷ページを裁断機607に手動で挿入するようにプリントショップのオペレータに指示する。サービス・バス122はまた、JDFジョブ・チケットを（裁断機607に関連する）サービス・プロバイダ617に送る。
【００５９】
図９は、本発明の例示的な実施例でサービス・プロバイダ617とサービス・バス122との間で交換されるメッセージを示している。サービス・プロバイダ617は、サービス・バス122からJDFジョブ・チケットを受領する。JDFジョブ・チケットは、サービス・プロバイダ617が裁断機607で裁断処理を実行して取扱説明書の紙綴じ後の印刷ページを裁断することを要求する。従って、サービス・プロバイダ617は、JDFジョブ・チケットを裁断機607と互換性のあるフォーマットの装置特有の動作コマンドに変換し、装置特有の動作コマンドを裁断機607に送出する。裁断機607は、動作コマンドを実行し、紙綴じ後の印刷ページを裁断する。
【００６０】
サービス・プロバイダ617はまた、裁断機607での裁断処理の状態を監視する。サービス・バス122が印刷ジョブの全体の状態を監視し得るように、サービス・プロバイダ617は、状態を示すJMFメッセージをサービス・バス122に返送する。例えば、サービス・プロバイダ617は、いつ裁断処理が終了したかを示すJMFメッセージを送出してもよい。
【００６１】
裁断処理が終了した後、裁断機607からの出力は、完成した紙綴じ後の取扱説明書を有する。サービス・バス122は、印刷ジョブを再び実行し、所望の通りに取扱説明書の他のコピーを生成してもよい。
【００６２】
プリントショップのオペレータは、サービス・バス122で実行されているジョブを管理又は変更してもよい。例えば、白黒プリンタ602がエラーに直面した場合又は利用不可能になった場合、プリントショップのオペレータは、ジョブ・チケットを変更し、代わりに白黒プリンタ603を利用してもよい。サービス・バス122は、変更されたジョブ・チケットを格納する。
【００６３】
＜印刷ジョブのスケジューリング＞
本発明の他の実施例は、プリントショップ等で実行されるジョブをスケジューリングするシステム及び方法を有する。図１１は、本発明の例示的な実施例でのジョブ・スケジューラ304を示している。この実施例のジョブ・スケジューラ304は、ジョブ・キュー1102と、スケジュール・プロセッサ1104とを含む。ジョブ・キュー1102は、実行する１つ以上のジョブを格納するように動作可能な何らかのシステム、ソフトウェア又はモジュールである。スケジュール・プロセッサ1104は、装置101-104（図１参照）でジョブを実行する順序をスケジューリングする何らかのシステム、ソフトウェア又はモジュールを有する。ジョブ・スケジューラ304はサービス・バス122に実装されたものとして示されているが、当業者は、ジョブ・スケジューラ304がワークフロー・フロントエン132又は他のシステムに実装されてもよいことを認識する。
【００６４】
図１２は、本発明の例示的な実施例でジョブをスケジューリングする方法1200を示すフローチャートである。方法1200のステップは、図３のジョブ・スケジューラ304を参照して記載されるが、方法1200は、他の実施例では他のアーキテクチャ及び他の装置を通じて実行されてもよい。図１２のフローチャートのステップは、必ずしも包括的ではなく、図示しない他のステップを含んでもよい。
【００６５】
ステップ1202において、ジョブ・キュー1102は、ワークフロー・フロントエンド132から複数のジョブを受領し、ジョブを格納する。ジョブは、JDFジョブ・チケットの形で定義されてもよい。ジョブ・キュー1102に格納されるジョブをスケジューリングするために、スケジュール・プロセッサ1104は、格納されたジョブのそれぞれを処理する。ジョブを処理する際に、スケジュール・プロセッサ1104は、プリントショップのオペレータ又は他のユーザにより各ジョブに定義された処理を識別する。前述のように、ジョブに定義された各処理は、処理が実行されるときの装置の１つ以上の動作パラメータを定義してもよい。例えば、装置がプリンタを有する場合、処理の動作パラメータは、印刷処理で使用される媒体の種類（81/2×11のサイズ、90の輝度、20ポンドの用紙等）を定義してもよい。他の例では、動作パラメータは、プリンタの仕上げ構成（出力を右上角でステープルでとめる等）でもよい。
【００６６】
ステップ1206において、スケジュール・プロセッサ1104は、装置で１つ以上の共通の（すなわち、同じ又は等価な）動作パラメータを定義する処理をジョブから識別する。例えば、スケジュール・プロセッサ1104は、プリンタで同じ種類の媒体を使用する処理、プリンタで同じ種類の仕上げ構成を使用する処理、裁断機で同じ大きさを使用する処理等を識別する。スケジュール・プロセッサ1104は、共通の動作パラメータを定義する処理を有するジョブが一緒にグループ化されるように、これらの処理を論理的にグループ化する。
【００６７】
ステップ1206を記述する他の方法は、スケジュール・プロセッサ1104がジョブの処理で要求された装置機能の共通の部分を識別することである。前述のように、各処理は、装置（図１に示す装置等）の装置機能の一部である。従って、各処理は、装置の全体の装置機能の一部を記述又は要求する。スケジュール・プロセッサ1104は、装置機能の同じ又は共通の部分を要求する処理をジョブで識別してもよい。例えば、プリンタが２穴の穴抜き機能を有することを装置機能が示しており、プリンタの出力が２穴の穴抜きをされることを２つ以上のジョブの処理が要求する場合、スケジュール・プロセッサ1104は、これらの処理が同じ２穴の穴抜きを要求していることを識別してもよい。
【００６８】
ステップ1208において、スケジュール・プロセッサ1104は、共通の動作パラメータを定義する処理（又は装置機能の共通の部分を要求する処理）に基づいて、実行するジョブをスケジューリングする。スケジュール・プロセッサ1104は、共通の動作パラメータを定義する処理を有するジョブが装置で連続して実行されるように、実行するジョブをスケジューリングしてもよい。例えば、２つのジョブがプリンタで同じ種類の用紙を必要とする処理を有する場合、スケジュール・プロセッサ1104は、プリンタの用紙が異なる種類の用紙を必要とする他の中間のジョブで変更される必要がないように、これらの２つのジョブを連続してスケジューリングしてもよい。
【００６９】
ジョブの処理が１つのジョブの処理と１つの種類の動作パラメータを共有し、また、他のジョブの処理と他の種類の動作パラメータを共有する例が存在し得る。異なるジョブの共通の動作パラメータの間で競合が存在する場合、スケジュール・プロセッサ1104は、様々な方法で競合を解決してもよい。一実施例では、スケジュール・プロセッサ1104は、共通の動作パラメータの優先度又は重要度に基づいてジョブのスケジューリングを解決してもよい。例えば、ジョブA及びジョブBの双方が特定の種類の用紙を必要とする処理を含み、ジョブA及びジョブCの双方が特定の種類の仕上げ処理を必要とする処理を含むことを仮定する。スケジュール・プロセッサ1104は、共通の種類の用紙に基づいてA、Bの後にCのようにジョブをスケジューリングしてもよく、共通の仕上げ構成に基づいてA、Cの後にBのようにジョブをスケジューリングしてもよい。どのスケジュールが効率的であるかを決定するために、スケジュール・プロセッサ1104は、共通の動作パラメータに優先度を付けてもよい。例えば、プリンタの仕上げ構成を変更するより、プリンタの用紙を変更することが困難であるため、スケジュール・プロセッサ1104は、用紙の種類を定義する動作パラメータが仕上げ構成を定義する動作パラメータより高い優先度を有すると決定してもよい。このような場合、スケジュール・プロセッサ1104は、ジョブA、Bの次にCのようにジョブをスケジューリングする。
【００７０】
ジョブでの処理の動作パラメータを調べることにより、スケジュール・プロセッサ1104は、インテリジェントにジョブをスケジューリングすることができると言う利点がある。ジョブを実行するスケジュールを手動で主観的に決定するプリントショップのオペレータ又は他のユーザに依存する代わりに、スケジュール・プロセッサ1104は、処理の動作パラメータに基づいて、ジョブを実行する最適な順序を決定することができる。従って、プリントショップは効率的に印刷作製を運営することができる。
【００７１】
また、サービス・バス122にジョブ・スケジューラ304（図３参照）を実装することにより、ジョブのスケジューリングが集約される。従って、サービス・バス122に接続された複数のフロントエンド132（図１参照）が存在する場合、各ワークフロー・フロントエンド132は、ジョブを生成してジョブをサービス・バス122に送出することができる。ジョブ・スケジューラ304は、複数のワークフロー・フロントエンド132から全てのジョブをスケジューリングしてもよい。各ワークフロー・フロントエンド132からのジョブのスケジューリングは、サービス・バス122で集約される。これは、複数のワークフロー・フロントエンド132からの複数のジョブをスケジューリングする効率的な方法である。
【００７２】
＜例示２＞
ジョブ・スケジューラ304がワークフロー・フロントエンド132（図６参照）から４つの印刷ジョブを受領することを仮定する。印刷ジョブAは２つの処理を定義する。１つの処理は、プリンタ601への印刷であり、他の処理は、インライン穴空け仕上げを有するプリンタ602への印刷である。印刷ジョブBは、中綴じ仕上げを有するプリンタ602への印刷の処理を定義する。印刷ジョブCは、インライン穴空け仕上げを有するプリンタ602への印刷の処理を定義する。印刷ジョブDは、中綴じ仕上げを有するプリンタ602への印刷の処理を定義する。
【００７３】
ジョブ・キュー1102（図１１参照）は、印刷ジョブA-Dを格納する。印刷ジョブA-Dを実行するスケジュールを決定するために、スケジュール・プロセッサ1104は、印刷ジョブA-Dのそれぞれに定義された処理を識別する。スケジュール・プロセッサ1104はまた、装置で１つ以上の共通の動作パラメータを定義する処理を印刷ジョブA-Dから識別する。この例では、スケジュール・プロセッサ1104は、印刷ジョブAがインライン穴空け仕上げを必要とするプリンタ602の処理を定義しており、印刷ジョブCもインライン穴空け仕上げを必要とするプリンタ602の処理を定義していることを識別する。同様に、スケジュール・プロセッサ1104は、印刷ジョブBがインライン中綴じ仕上げを必要とするプリンタ602の処理を定義しており、印刷ジョブDもインライン中綴じ仕上げを必要とするプリンタ602の処理を定義していることを識別する。スケジュール・プロセッサ1104は、共通の動作パラメータを有するこれらの処理を同じ論理でグループ化する。
【００７４】
スケジュール・プロセッサ1104は、共通の動作パラメータを定義する処理に基づいて、実行する印刷ジョブA-Dをスケジューリングする。この例では、印刷ジョブA及びCの双方は、インライン穴空け仕上げを必要とするプリンタ602の処理を定義している。従って、スケジュール・プロセッサ1104は、最初に印刷ジョブAをスケジューリングし、次に印刷ジョブCをスケジューリングする。これにより、これらはプリンタ602で連続して実行される。印刷ジョブB及びDの双方は、インライン中綴じ仕上げを必要とするプリンタ602の処理を定義している。従って、スケジュール・プロセッサ1104は、次に印刷ジョブBをスケジューリングし、次に印刷ジョブDをスケジューリングする。これにより、これらはプリンタ602で連続して実行される。印刷ジョブA-Dの動作パラメータに基づいて、スケジュール・プロセッサ1104は、以下のスケジュールが最も効率的であることを決定する。
印刷ジョブA
印刷ジョブC
印刷ジョブB
印刷ジョブD
＜例示３＞
ジョブ・スケジューラ304がワークフロー・フロントエンド132（図６参照）から印刷ジョブ（印刷ジョブA-D）を再び受領したことを仮定する。印刷ジョブAは、用紙81/2×11、20lb、92GEの輝度で、プリンタ602への印刷の処理を定義する。印刷ジョブBは、用紙81/2×11、24lb、96GEの輝度で、プリンタ602への印刷の処理を定義する。印刷ジョブCは、用紙11×17、24lb、96GEの輝度で、プリンタ602への印刷の処理を定義する。印刷ジョブDは、用紙81/2×11、20lb、92GEの輝度で、プリンタ602への印刷の処理を定義する。
【００７５】
ジョブ・キュー1102（図１１参照）は、印刷ジョブA-Dを格納する。印刷ジョブA-Dを実行するスケジュールを決定するために、スケジュール・プロセッサ1104は、印刷ジョブA-Dのそれぞれに定義された処理を識別する。スケジュール・プロセッサ1104はまた、装置で１つ以上の共通の動作パラメータを定義する処理を印刷ジョブA-Dから識別する。この例では、スケジュール・プロセッサ1104は、印刷ジョブA及びDの双方が、用紙81/2×11、20lb、92GEの輝度を必要とするプリンタ602の処理を定義していることを識別する。次に、スケジュール・プロセッサ1104は、共通の動作パラメータを有する処理を同じ論理でグループ化する。
【００７６】
スケジュール・プロセッサ1104は、共通の動作パラメータを定義する処理に基づいて、実行する印刷ジョブA-Dをスケジューリングする。この例では、ジョブA及びDの双方は、用紙81/2×11、20lb、92GEの輝度を必要とするプリンタ602の処理を定義している。従って、スケジュール・プロセッサ1104は、最初に印刷ジョブAをスケジューリングし、次に印刷ジョブDをスケジューリングする。これにより、これらはプリンタ602で連続して実行される。印刷ジョブB及びCは、共通の用紙を共有しないが、共通の動作パラメータを共有し得る。印刷ジョブA-Dの動作パラメータに基づいて、スケジュール・プロセッサ1104は、以下のスケジュールが最も効率的であることを決定する。
印刷ジョブA
印刷ジョブD
印刷ジョブB
印刷ジョブC
＜結び＞
本発明の実施例は、完全にハードウェアの実施例、完全にソフトウェアの実施例又はハードウェアとソフトウェアとの双方の要素を含む実施例の形を取ることができる。一実施例では、本発明はソフトウェアで実装される。ソフトウェアは、これに限られないが、ファームウェア、常駐ソフトウェア、マイクロコード等を含む。図１３は、プログラムされた命令を実行し、コンピュータ可読記憶媒体1312に記憶されたデータにアクセスすることにより、本発明の特徴及び側面を提供するように動作可能なコンピュータ・システム1300を示すブロック図である。
【００７７】
更に、本発明の実施例は、コンピュータ若しくは何らかの命令実行システムによる使用されるプログラム・コード又はこれと共に使用されるプログラム・コードを提供する、コンピュータ使用可能媒体又はコンピュータ可読媒体1312からアクセス可能なコンピュータ・プログラム・プロダクトの形を取ることができる。この説明の目的で、コンピュータ使用可能媒体又はコンピュータ可読媒体は、命令実行システム、装置若しくはデバイスにより使用されるプログラム又はこれらと共に使用されるプログラムを包含、格納、通信、伝搬又は転送することができる何らかの装置でもよい。
【００７８】
この媒体は、電子的、磁気的、光学的、電磁的、赤外線又は半導体システム（又は装置若しくはデバイス）又は伝搬媒体でもよい。コンピュータ可読媒体の例は、半導体又は固体メモリ、磁気テープ、取り外し可能コンピュータ・ディスク、ランダム・アクセス・メモリ（RAM）、読み出し専用メモリ（ROM）、剛性の磁気ディスク及び光ディスクを含む。光ディスクの現在の例は、コンパクト・ディスク‐読み出し専用メモリ（CD-ROM）、コンパクト・ディスク‐読み出し／書き込み（CD-R/W）及びDVDを含む。
【００７９】
プログラム・コードを格納及び／又は実行するのに適したコンピュータ・システム1300は、システム・バス1350を通じてメモリ要素1304に直接または間接に結合された少なくとも１つのプロセッサ1302を含む。メモリ要素1304は、プログラム・コードの実際の実行中に使用されるローカル・メモリ、大容量記憶装置、及び実行中に大容量記憶装置からコードを取得しなければならない回数を減らすために少なくとも一部のプログラム・コードの一時記憶を提供するキャッシュ・メモリを含んでもよい。
【００８０】
入出力又はI/Oデバイス1306（これに限られないが、キーボード、ディスプレイ、ポインティング・デバイス等を含む）は、直接に又は介在するI/Oコントローラを通じてシステムに結合されてもよい。コンピュータ・システム1300が他のデータ処理システム又は記憶装置に、介在するプライベート・ネットワーク又は公共ネットワークを通じて結合されることができるようにするために、ネットワーク・アダプタ・インターフェース1308がシステムに結合されてもよい。モデム、ケーブル・モデム、IBMチャネル（IBM  Channel）・アタッチメント、SCSI、ファイバー・チャネル（Fibre  Channel）及びイーサネット（登録商標）・カードは、ネットワーク又はホスト・インタフェース・アダプタの現在利用可能な種類のほんの数例である。プロセッサ1302により生成されたプレゼンテーションデータの提示のために、印刷システム及びディスプレイのような１つ以上のプレゼンテーション・デバイス（presentation  device）とインタフェース接続するプレゼンテーション・デバイス・インタフェース1310がシステムに結合されてもよい。
【００８１】
特定の実施について説明したが、本発明の範囲はこれらの特定の実施例に限定されない。本発明の範囲は、特許請求の範囲及びその均等物により定義される。
【図１】
0005407535.tif 000005
【図２】
0005407535.tif 000006
【図３】
0005407535.tif 000007
【図４】
0005407535.tif 000008
【図５】
0005407535.tif 000009
【図６】
0005407535.tif 000010
【図７】
0005407535.tif 000011
【図８】
0005407535.tif 000012
【図９】
0005407535.tif 000013
【図１０】
0005407535.tif 000014
【図１１】
0005407535.tif 000015
【図１２】
0005407535.tif 000016
【図１３】
0005407535.tif 000017