(57)【要約】【課題】システムのための機械制御をプランニングする改善された技術を提供する。【解決手段】プランナ１０は、１つ以上のジョブ２２を受け取る。プラン生成器２４は、ジョブ要件を解釈し、コンポーネント１２のうちどれがプランを実施することと関連しているかを決定し、関連したコンポーネントの能力及び能力制約条件に基づいてジョブを処理するためにプランの生成を開始する。プラン・テスタ２６は、各コンポーネント１２に対応する、提案されたプランを備えた少なくとも１セットの実行可能命令を照会する。プラン生成器２４は、各々のコンポーネント１２を満たす動作を生成し、最終プランを構築する。【選択図】図１
2008299847.tif 000002
【特許請求の範囲】
【請求項１】
システムのための機械制御をプランニングするための方法であって、
システムによってジョブを処理するためのプランを実行するために使用されるコンポーネントの各々に対し少なくとも１つの能力及び少なくとも１つの能力制約条件を決定することと、
前記コンポーネント、前記少なくとも１つの能力、及び前記少なくとも１つの制約条件に基づいて最初のプランを増加的に構築することと、
前記最初のプランの増加部分を備えた実行可能命令のセットを照会することであって、実行可能命令の各セットが、コンポーネントの異なる１つと関連付けられ、対応するコンポーネントによって実行される動作を表示し、各増加部分が、対応するコンポーネントによって実行されるべき動作を含み、実行可能命令の各セットが、受信した増加部分を実行する、前記照会することと、
照会された組の実行可能命令の各々から前記コンポーネントの各々が増加部分において動作を実行することができることを示す確認を受信すると同時に最終プランを生成すること、
を含む、前記システムのための機械制御をプランニングするための方法。
【請求項２】
さらに、照会された実行可能命令のセット各々から応答を受信することを含み、各応答が、
対応するコンポーネントが所定の時間範囲内のいつでもプランの増加部分内で動作を実行することができることの確認、
対応するコンポーネントがプランの増加部分内で動作を実行できないことの表示、
プランの増加部分内の動作の各々に対する許容時間範囲、
所定の時間範囲内でプランの増加部分における動作の各々を実行するコスト、及び
代用する一連の動作、
のうちの少なくとも１つを含む、請求項１に記載の方法。
【請求項３】
機械制御をプランニングするシステムであって、
処理するジョブを受け取るプランナと、
プラン、及び少なくとも１つの能力に関する少なくとも１つの制約条件を実施するために使用されるシステムの少なくとも１つのコンポーネントの１つ以上の能力に基づいてジョブを処理するためにプランを増加的に生成するプラン生成器と、
対応するコンポーネントによって実行されるべき動作を含むプランの増加部分を備えたコンポーネントの各々に関連付けられる１セットの実行可能命令を照会するプラン・テスタであって、実行可能命令の各セットが、対応するコンポーネントの能力及びそれに関する制約条件を表し、前記実行可能命令のセットが、プランの増加部分内で動作を実行し、実行可能命令の各セットが、対応するコンポーネントが動作を実行できることを確認するときに、前記プラン生成器が、最終プランを生成する、前記プラン・テスタと、
を含む、前記機械制御をプランニングするシステム。
【請求項４】
可動実行可能命令の各セットは、増加されたプラン内の動作が対応するコンポーネントの制約条件を満たすかどうかを決定するために、増加されたプラン上で任意の時間制限された演算を実行する、請求項３に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
一般的に、モジュラ・ハードウェア（例えばコンポーネント、モジュールなど）を備えたシステム（例えば機械、装置など）のためのコントローラの設計者は、システムを構成するコンポーネントの少なくとも１つの設定（例えば能力、能力の制約条件など）を理解せずに、システムのための制御ソフトウェアを設計する。このような知識は、制御ソフトウェアがシステムにロードされた後まで獲得できないこともあり、システム電源はいったん切って入れなおされて、システムは起動する。
【背景技術】
【０００２】
このようなシステムのための制御ソフトウェアを設計するのを容易にする技術の１つは、モデルベースのプランニングを含む。モデルベースのプランニング技術は、システムの各コンポーネントがその動作のモデルを中央プランナ（planner, 計画手段）又はコントローラに送信できるという概念に基づく。このことは、モデリング言語が利用可能であり、これが各々のコンポーネントの能力及びその制約条件に関する関連情報のすべてを取得することができ、すべての考えられる将来のコンポーネントの動作もまた同様に取得できることを想定する。しかしながら、こうした想定は一般に楽観的に過ぎたり、あるいは達成不能であったりする。
【０００３】
従来、このようなモデルは、一定の（fixed）言語に記述され、システムのコントローラへ転送される。コントローラは、システムコンポーネントの能力及び制約条件を決定するために、モデルを解釈する。その後、処理する１つ以上のジョブを受信すると同時に、コントローラは、コンポーネントの能力、及びコンポーネントモデルの各々の内部に記述された能力制約条件に基づいて１つ以上のジョブを処理するためにプラン（plan, 計画）を生成する。
【０００４】
このプランは、次に提案／受諾／確認（ＰＡＣ（propose/accept/confirm））プロトコル又は他の技術を介して実証される。ＰＡＣプロトコルによると、プランは、そのプランによって決定されるように、必要とされるコンポーネントのすべてに提案される。コンポーネントの各々は、提案されたプランを評価し、提案されたプランを受諾若しくは拒絶するかのいずれかによってコントローラに応答する。コンポーネントのすべてが提案されたプランを受諾する場合、コントローラはそのプランを確認することになる。確認されたプランは、実行のために実行エンジン等に送られる。少なくとも１つのコンポーネントがそのプランを拒絶すると、コントローラは新しいプランを生成し、あるいはプランを立て直す。第１のプランを生成し、第１のプランを提案し、第１のプランを拒絶し（reject）、プランを立て直し（即ち、第２のプランを生成し）、第２のプランを提案し、第２のプランを拒絶し、・・・、プランを立て直し（即ち、プランＸを生成し）、プランＸを提案する等というサイクルは、プランが最終的にコンポーネントのすべてによって受諾され、若しくは最終プランに到達することなく終了するまで続くことがある。
【０００５】
一例として、１つ以上のコンポーネントモデルは、コンポーネントの１つ以上の制約条件を取得することはない。したがって、コントローラは既知でない制約条件を満たしていないプランを生成することがあり、このようなプランは対応するコンポーネントによってその後拒絶される。コントローラは、プランが拒絶された理由が分からないので（即ち、満たされていない制約条件に気付いていないので）、コントローラは、この既知でない制約条件を満たしていない新しいプラン又は次のプランを生成することがある。その結果、コンポーネントはこのプランを拒絶することにもなる。結局のところ、コントローラは既知でない制約条件を満たすプランを生成することもでき、コンポーネントのすべてがプランを受諾することになる。しかしながら、コントローラは既知でない制約条件を満たすプランを決して生成するはずはなく、このようなプランはコンポーネントのすべてによって受諾されることない。さらに、各ＰＡＣサイクルが時間を浪費し、確認されたプランを得るための累積時間は、数十ミリ秒、数百ミリ秒、数千ミリ秒かかることがある。このように、プランが最終的に受諾されると、時間及び処理資源は、不完全な情報に基づいてプランを生成し検査することにより、浪費されていた。
【０００６】
関連する先行技術文献情報としては次のものがある。
【特許文献１】米国特許第６，８５６，８４５号明細書
【特許文献２】米国特許出願公開第２００２／０，１５６，７９５号明細書
【特許文献３】米国特許出願公開第２００４／０，０２４，７８７号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述のことを考慮して、改善されたプランニング技術が求められている。
【課題を解決するための手段】
【０００８】
一態様において、システムのための機械制御をプランニング（planning, 計画）するための方法が図示される。この方法は、システムによってジョブを処理するためのプランを実行するために使用される各コンポーネントに対し少なくとも１つの能力及び少なくとも１つの能力の制約条件を決定することを含む。このプラン（plan, 計画）は、コンポーネント、少なくとも１つの能力、及び少なくとも１つの制約条件に基づいて増加的に（incrementally）構築される。少なくとも１セットの実行可能命令（例えば、プラグイン）は、プランの増加（インクリメント、increment）部分で照会（クエリ、query）される。実行可能命令の各セットは、コンポーネントの異なる１つに関連付けられ、対応するコンポーネントによって実行される動作を示す。各々の増加部分は、対応するコンポーネントによって実行されるべき動作を含む。実行可能命令の各セットは、受信した増加部分を実行する。各々のコンポーネントが増加部分において動作を実行することができることを表示する照会された実行可能命令のセットの各々から確認を受信すると同時に、ジョブを処理するための最終プランが連続して生成される。実行可能命令の各セットは、対応するコンポーネントとともに存在し、又は別のコンポーネント（例えば、プラン生成器が位置するところ）に転送される。
【発明を実施するための最良の形態】
【０００９】
図１を参照すると、システムでジョブを処理するためのプランを生成するプランナ１０を備えたシステムが図示される。プランナ１０は、システムコンポーネントの能力、及びこれらの能力に関する制約条件に基づいてプランを生成する。プランを生成する間、プランナ１０はプランの（増加）部分を検査して、こうした部分の内部における動作が、その動作を実行しているコンポーネントの制約条件を満たすことを確実にする。このような検査は、各コンポーネントに対し１セットの実行可能命令（例えば、プラグイン）を介して達成することができる。特定のコンポーネントに対する１セットの実行可能命令は、制約条件によって拘束され、コンポーネントが実行可能な動作を表す。実行可能命令の各セットは、対応するコンポーネントが実行する動作を有する提案されたプランで照会される。プランに含まれる各コンポーネントに対する提案されたプランを実証すると、最終プランが生成され、そのプランを実行することになるコンポーネントに送られる。こうしたコンポーネントは、最終プランを確認し（例えば、必要とされるコンポーネントがプランを介してジョブを処理可能であることを確認し）、又はその最終プランを拒絶する。このように、最終プランを確認するだけの従来の技術と異なり、プランを構成する間に、プランの個々の部分を検査して、最終プランを生成する前に、プランの個々の部分がコンポーネントの制約条件を満たすことを保証する。
【００１０】
マシン、装置、印刷プラットフォームなどでもよいシステムは、コンポーネント１２１、コンポーネント１２２、・・・、コンポーネント１２Ｎなどのモジュラ・ハードウェアを有する（ここでＮは１以上の整数である）。集合的に、コンポーネント１２１、１２２、・・・、及び、１２Ｎは本明細書中でコンポーネント１２と称される。コンポーネント１２の各々は、ジョブを処理するために使用できる１つ以上の能力と関連付けられ、各々の能力は１つ以上の制約条件と関連付けられる。限定されない一例として、システムが多機能印刷プラットフォームである場合、コンポーネント１２はペーパーフィーダ、マーキング・エンジン、フューザなどを有することがある。かかるフューザは印刷媒体上で画像を融着させる能力を有する。この融着能力は、温度及び／又はトナーが制約されたものでもよい。別の限定されない一例において、システムは、個々の能力及びそれら能力に関する制約条件を備えた１つ以上のプレス、スタンパ、コンベヤなどのコンポーネントを有する製造システムでもよい。１つ以上のコンベヤは、ある位置から別の位置に商品を搬送する能力を有することもある。この能力は、速度及び／又は重量が制約されていてもよい。
【００１１】
コンポーネント１２は各々、それらの能力とそれに関する制約条件（例えば、実行可能な動作と、該動作の制限）を記述するモデルと関連付けられる。各モデルは、対応するコンポーネント１２とともに、記憶コンポーネント１４などのシステムの記憶コンポーネントにおいて、又は、システムの外部にある記憶コンポーネント（図示せず）において格納されることができる。プランナ１０には、各モデルに対するアクセスが設けられている。このようなアクセスは一般に、少なくとも読み取り特権（reading privilege）を有する。モデルが、コンポーネント１２とともに、さらに／あるいは外部記憶装置に格納されている場合、このようなアクセスは、ワイヤ、及び／又はワイヤレス・ネットワーク、バス、ポート、バックプレーンなどを介したものであればよい。別の例において、各モデルは、プランナ１０に対して設けられ、記憶コンポーネント１６のプランナ１０内に局所的に格納される。プランナ１０がモデルを解釈する場合に、各モデルは一般に、プランナ１０が解釈できる適切な言語を介して書き込まれる。こうしたモデルがプランナ１０によって解釈されない場合に、各モデルはいずれか１つの言語で書き込まれる。簡潔及び明瞭にするために、図１は、記憶コンポーネント１４に格納されるような１つ以上のモデル１８を示している。しかしながら、上記のように、１つ以上のモデル１８は、他のどこかに格納でき、さらに／あるいは複数の位置に同時に格納できる。
【００１２】
コンポーネント１２の各々は、対応するモデルについて説明したように、対応するコンポーネント１２の動作を実行する１セットの可動実行可能命令（例えばプラグイン）とさらに関連付けられる。こうした動作は、個々のモデルにおいて記述されたように、能力及びそれに関する制約条件に関する。モデルと同様に、可動実行可能命令の各セットは、対応するコンポーネント１２と共に、記憶コンポーネント１４などのシステムの記憶コンポーネントに、システムの外側の記憶コンポーネントなどに格納することができる。プランナ１０には、可動実行可能命令の各セットに対するアクセスが設けられる。このようなアクセスは一般に、少なくとも照会特権（query privilege）を有する。プランナ１０は、ワイヤ及び／又はワイヤレス・ネットワーク、バス、ポート、バックプレーンなどを介して可動実行可能命令の各セットにアクセスすることができる。さらには、あるいはまた、可動実行可能命令の各セットはプランナ１０に提供され、プランナ１０によってアクセスできる記憶コンポーネント１６内に格納されることができる。可動実行可能命令の各セットは、少なくとも１つの他のセットの可動実行可能命令及び／又はそれに関連付けられる（例えば、別のコンポーネントの能力及び制約条件を決定するための）モデルと通信を行ない、さらに／あるいはその対応するモデルにおいて記述された機能及び／又は制約条件を更新することもできる。簡潔及び明瞭にするために、図１では、記憶コンポーネント１４に格納される少なくとも１セットの可動実行可能命令２０を示している。しかしながら、上記のように、少なくとも１セットの可動実行可能命令２０は、他のどこかに格納されてもよく、さらに／あるいは複数の位置に同時に格納されてもよい。可動実行可能命令の各セットは、対応するコンポーネントと通信を行なうことがあってもよく、コンポーネントの最新状態そのものを更新し、異なる照会に回答する方法を調節する。
【００１３】
プラン構成は、処理するジョブを受け取ると同時に、又は受け取ったあとに開始する。このようなジョブは、システムによって受け取られ、プランナ１０、及び／又はコントローラ（図示せず）などの別の適切なコンポーネントに搬送されることができる。参照符号２２に記述されるように、この例では、プランナ１０は１つ以上のジョブを受け取る。このようなジョブは、種々のソースによって提供されることができる。たとえば、ジョブは、システムにおいて、さらに／あるいはシステム自体によって生成されることができる。たとえば、システムは、ユーザがジョブを生成し、及び／又は、ジョブを始動するユーザ・インタフェース（図示せず）を含むことがあり、さらに／あるいは、システムは、１つ以上の目標に基づいて自動的にジョブを生成することもできる。別の例において、コンピュータなどの、処理装置を備えたデバイス（図示せず）は、ワイヤ及び／又はワイヤレス接続によってシステムにジョブを送信することができる。また別の例において、ジョブは携帯用記憶媒体（図示せず）上に格納され、システムに転送されることができる。上記した例は限定されず、説明上の目的に対して提供されるだけであることを理解されたい。
【００１４】
プラン生成器２４は、ジョブ要件（例えば、ジョブを完了するために実行する必要があるものを決定する）を解釈し、コンポーネント１２のうちどれがプランを実施することと関連しているかを決定する。プラン生成器２４は次に、関連したコンポーネントの能力及び能力制約条件に基づいてジョブを処理するためにプランの生成を開始する。プランの増加部分（各々１つ以上の動作などを有する）が構築されると、プラン・テスタ２６は、提案されたプランを備えた少なくとも１セットの実行可能命令を照会する。一例として、プラン・テスタ２６は、コンポーネント１によって実行されるべき提案された動作を有する提案されたプランでコンポーネント１に対応する可動実行可能命令のセットを照会してもよい。提案されたプラン内の動作の各々は、動作名称、及び上下の時間制限を備えた対応する時間範囲と関連付けることができる。
【００１５】
照会された可動実行可能命令の各セットは、提案されたプラン内の動作を実行する。可動実行可能命令は、提案がコンポーネントの制約条件を満たすかどうかを決定するために、提案されたプラン上で任意の及び／又は時間制限された演算を実行することができる。一例において、可動実行可能命令は、コンポーネント１２の状態のその知識（knowledge, ナレッジ）を更新するために、その対応するコンポーネント１２と非同期的に通信することができる。このことは、可動実行可能命令のセットが、現在の能力及び制約条件を表し、未知の能力若しくは制約条件による拒絶の機会を軽減することを確実にする。
【００１６】
動作を実行すると同時に、可動実行可能命令の各セットはプラン・テスタ２６に様々に応答することができる。一例において、この応答は、対応するコンポーネント１２が、例えば所定の時間範囲内におけるどんな時でも、動作を実行可能であるか、又は実行不可能であるかの確認である。さらに又は代替的に、この応答は許容できる時間範囲（例えばより厳しいタイム・ウインドウ）を有することができる。プラン・テスタ２６はプラン生成器２４にこの情報を提供することができ、後者は次のプラン生成のための情報を使用することができる。さらに、あるいはまた、この応答は、時間範囲内で動作を実行するコストを含むこともある。このコストは、持続時間、消耗、電力の使用、トナーの使用、実行の成功確率などの種々の特性と関連付けることができる。この情報は、各モデルにおいて、可動実行可能命令の各セットにおいて特定することができ、さらに／あるいは対応するコンポーネント１２、記憶コンポーネント１４、記憶コンポーネント１６、外部記憶などで格納することができる。一例において、特定のコンポーネント１２に対する可動実行可能命令のセットは、格納された測定基準及び／又は有効期限を更新できる。さらに、あるいはまた、応答は、プランに対する代用シーケンスを有することがある。したがって、一例において、実行可能命令は低レベルのプランニングを提供し、それは、プランナ１０上の負荷を軽減し、総合的にシステム性能を向上させ得る。
【００１７】
各々のコンポーネント１２を満たす動作を生成すると同時に、プラン生成器２４は、最終プランを構築することができる。一例において、プランナ１０は、その後、提案／受諾／確認（ＰＡＣ）などのプロトコルを用いて最終プランを確認する。このようにして、可動実行可能命令のセットは、拒絶されることになるプランの早期発見を行ない、サーチをガイドするために使用され得るコストに関するより正確な情報を提供する。ＰＡＣサイクルが数百ミリ秒の時間を要する可能性があるので、ＰＡＣプロトコルに依存することよりもプランナ１０において出来る限り多くの制約条件を取得することが望ましい。
【００１８】
ＰＡＣなどのプロトコルを使用して、最終プランはまず、関連するコンポーネント１２に提案される。これらコンポーネント１２の各々は、提案された最終プランを受諾若しくは拒絶する。こうしたコンポーネント１２は、それらの対応するセットの可動実行可能命令を介して、プランが各々の制約条件を満たし、ジョブを処理可能であることを既に確認しているので、コンポーネント１２のすべてがプランを受諾する可能性が最も高い。しかしながら、最終プランが拒絶される可能性がある。たとえば、コンポーネント、その能力、及び／又は、能力とジョブの少なくとも一方に関する制約条件が変化したかもしれず、これは、可動実行可能命令のセットを介して低レベルの確認が得られたからである。別の場合において、１つ以上のコンポーネント１２はその後、故障し、動作不能になり、誤動作を生じ、ソフトウェア／ファームウェア・アップデートなどを受信したかもしれない。このような状況は、プランを達成不能にすることがある。プランが何かの理由によって失敗すると、プランナ１０は、プランニングプロセスをもう一度開始し、適切であると考えられるプランニングプロセスにおける段階から始まるようにプログラミングされ得る可能性がある。
【００１９】
確認された最終プランは、実行エンジン２８に提供され、このエンジンはジョブを処理するためにプランを実行する。このような実行は、ジョブの処理を容易にするためにプランの１つ以上の動作を同時に及び／又は連続的に実行する関連するコンポーネント１２を使用することを含む。一例において、プランは単一のジョブと関連付けられ、他の例において、プランは同時に及び／又は連続的に処理される複数のジョブと関連付けられる。
【００２０】
上記のプランニング・システムにより、モデリング言語が無限に拡張可能であるとされ、コンポーネント１２の各々の制約条件は、コントローラの設計者によって予想されるよりもむしろ、デバイスの設計者によって知られている可能性がある。さらに、このシステムにより、モデルが一般的な方法でコンポーネント１２によって更新されることが可能である。たとえば、可動実行可能命令の各セットは、必要に応じて一般の若しくはコンポーネント特定のプロトコルを使用してそのコンポーネント１２と通信を行なうことができる。さらに、このシステムにより、モデリング言語が、従来のプランナで使用されたモデリング言語に対してより簡単であることが可能になる。このことは、プランナ１０がより単純且つ高速であり、モデルの更新がより単純且つ高速である可能性があることを意味する（例えば、実行可能命令はそれらの更新を同時に受信することができる）。さらに、システムは、従来のシステムとの適合性がある。たとえば、比較的単純なケースにおいて、可動実行可能命令のセットが提案されたプランを常に受諾するように、「空（null）のプラグイン」を提供することもある。
【００２１】
図２は、プランを実施しているコンポーネントに関する能力及び制約条件に基づいて、ジョブを処理するためのプランを生成し確認するための方法を示している。ステップ３０において、１セットの可動実行可能命令は、システムの複数のコンポーネントの各々によってアクセス可能とされる。たとえば、可動実行可能命令の各セットが少なくとも照会される可能性がある。可動実行可能命令の各セットは、その対応するコンポーネントの１つ以上の動作を実行する。このような動作は一般に、そのコンポーネントの能力を記述し、そうした能力を制約するモデル内で定義される。任意選択的に、モデルへのアクセスを行なうこともできる。可動実行可能命令のセット、及びモデルのいずれか又は両方とも、例えばその対応するコンポーネント、システム記憶装置、プランナ記憶装置、外部記憶装置などで、種々に格納され得る。
【００２２】
ステップ３２において、各々のコンポーネントの能力及び制約条件が対応するモデルから確認される。これらの能力及び制約条件は、ジョブを処理するためのプランの生成を容易にするために使用される。ステップ３４において、１セット以上の可動実行可能命令は、提案されたプランとともに照会される。こうしたプランは、プランを実行するために対応するコンポーネントによって実行されるであろう動作を有する。各々の提案されたプランは、動作の名称、及び／又は、動作が実行されるべき対応する時間範囲（上下の時間境界がある）を含むこともある。ステップ３６において、照会された可動実行可能命令の各セットは、その提案されたプラン内で動作を実行する。実行可能命令は、提案がコンポーネントの制約条件を満たすかどうかを決定するために任意の及び／又は時間制限された演算を実行することができる。可動実行可能命令の各セットは、その対応するコンポーネントの状態の知識を更新するために対応するコンポーネントとの通信を行なうことができる。
【００２３】
ステップ３８において、可動実行可能命令の各セットは、その照会に応答する。適切な応答は、以下に示す１つ以上を有する。すなわち、コンポーネントが所定の時間範囲内のいつでも動作を実行することができるという確認、コンポーネントが提案されたプラン内で動作を実行できないことの表示、動作に対する許容時間範囲、その時間範囲内の動作とコンポーネントによって処理可能な代用する一連の動作を実行するコスト、さらに他の応答が挙げられる。コンポーネントを満たす動作を生成すると同時に、ステップ４０において最終プランが構築される。最終プランは、確認され、ジョブを処理するために使用される。一例において、ＰＡＣ等の技術は、上記で詳述された最終プランを確認するために使用される。このような技術では、最終プランはまず、ジョブを処理する際に必要とされるコンポーネントに対し提案される。これらのコンポーネントの各々は、提案された最終プランを受諾若しくは拒絶する。受諾すると同時に、プランはジョブを処理するために使用できる。プランが拒絶されると、プランナは別のプランを作成することができる。
【００２４】
図３は、ジョブを処理するためのプランを生成するために本明細書中に記載される技術を用いるシステムの制限されない例を示している。この例において、システムは、１つ以上の印刷媒体フィーダ、クリーナ、充電器、露光機構、フューザ、フィニッシャー、転写要素、光受容体（感光体）、現像剤、出力トレイなど、さらにその他の電子写真コンポーネントなどの複数のコンポーネント４４を有する印刷プラットフォーム４２である。これらのコンポーネントの各々は特定の能力を有し、これらは制約条件と関連付けられる。制限されない例として、フューザー４４ｉは、異なるトナー（例えば、カラートナー、光沢度の低い黒色トナー、光沢度の高い黒色トナー、磁性トナーなど）を使用する印刷プラットフォーム４２の異なる現像システムによって処理される印刷媒体を融合させることができる。この場合、フューザ４４ｉは、（使用するトナーの特定のタイプに関係なく）一般的構成、又は、（例えば、トナー溶融温度及び／又は他のトナー特性を考慮する異なる設定値によって）複数のトナー特定の構成を使用してもよい。このようなシステム上の特定の制約条件は、フューザ暖機（warm-up）時間でもある。印刷プラットフォーム４２の他のコンポーネントもまた、種々の能力及び制約条件と関連付けられる。しかしながら、簡潔さのために、フューザ４４ｉはこの実例の全体にわたって使用されることになる。
【００２５】
コンポーネント４４の各々は、その能力及びそれに関する制約条件を記述するモデルと関連付けられる。たとえば、フューザ４４ｉは、その融合能力及び暖機時間定数を表示するモデル４６と関連付けられる。コンポーネント４４の各々は、その対応するコンポーネントの動作を実行できる可動実行可能命令とも関連付けられる。たとえば、フューザ４４ｉは実行可能命令コンポーネント４８と関連付けられる。これら動作はモデル４６内に記述された機能及び制約条件と関連がある。コンポーネント４４の各々は、関連付けられた実行可能命令及び／又は関連付けられたモデルをプランナ１０に伝達し、又は、各々に対するアクセスをプランナ１０に付与することもある。このようにして、フューザ４４ｉは、モデル４６及び／又は実行可能命令コンポーネント４８をプランナ５０（プランナ１０と実質的に同一であればよい）に付与し、さらに／あるいはプランナ５０に、それらがどこにある場合でも（例えば、フューザ４４ｉ内部、常駐メモリ内、外部メモリ内など）モデル４６及び／又は実行可能命令コンポーネント４８にアクセスさせることを可能にすることができる。
【００２６】
プランナ５０は、モデルにアクセスし、コンポーネントの能力及び制約条件を決定することができる。たとえば、プランナ５０は、モデル４６にアクセスすることができ、フューザ４４ｉの能力及び制約条件を決定する。プランナ５０は、少なくとも１つのプリントジョブ５２などの、ジョブのためのプランのフュージング部分を生成するときに、これらの能力及び制約条件を使用する。プラン生成器５４（これは、プラン生成器２４と実質的に同一であればよい）は、ジョブ、コンポーネントの能力及び制約条件を処理することになるコンポーネントに基づいてプランを生成する。上記のように、プランの種々の部分が構築されると、プラン・テスタ５６（これはプラン・テスタ２６と実質的に同一であればよい）は、提案されたプランを有する適切なセットの実行可能命令を照会する。たとえば、プラン・テスタ５６は、フューザ４４ｉによって実行される動作を有する実行可能命令コンポーネント４８を照会することができる。
【００２７】
照会された実行可能命令は、提案されたプラン内で動作を実行する。既に述べたように、実行可能命令は、提案がコンポーネントの制約条件を満たすかどうかを決定するために任意の、及び／又は、但し時間制限された演算を実行することができる。上記の例を使用して、このことは、ジョブ５２がフューザ４４ｉの暖機時間の範囲内にフューザ暖機時間を含む。動作を実行すると同時に、実行可能命令の各セットは、プラン・テスタ５６にさまざまに応答することができる。適切な応答として、以下の１つ以上が含まれるが、それらに限定されない。すなわち、コンポーネント（例えばフューザ４４ｉ）が所定時間範囲内のいつでも動作（例えば、画像を印刷媒体に融合させること）を実行することができるという確認、コンポーネントが提案されたプラン内で動作を実行できないという表示、動作に対する代替する許容時間範囲、時間範囲内で動作を実行するコスト、コンポーネントによって処理可能な代用する一連の動作、及びその他の応答が含まれる。
【００２８】
コンポーネントを満たす動作を生成すると同時に、最終プランは構築され、上記のようなＰＡＣなどの技術を用いて確認される。この確認された最終プランは、実行エンジン５８に提供され、該エンジンは、プリントジョブを処理するためにプランを実行する。
【００２９】
上記で開示された及びその他の種々の特徴及び機能、あるいはそれらの代替物が多くの他の異なるシステムやアプリケーションに結合されることが望ましいことは理解されたい。さらに、種々の現在では予見されない若しくは予期されない代替物、修正、変更、又はその点における改善は、当業者によってその後実行され得るが、これらもまた添付の請求の範囲によって包含されることが意図される。
【図面の簡単な説明】
【００３０】
【図１】図１は、最終プランを構築し確認する前に、システムのコンポーネントによって処理可能なプランの種々の部分を確認することによって、システムによるジョブの処理のためにプランを生成するプランナを備えた例示的システムを示す図である。
【図２】図２は、プランを実施しているコンポーネントに関する能力及び制約条件に基づいて、ジョブを処理するためのプランを生成し確認する例示的方法を示す図である。
【図３】図３は、ジョブを処理するためにプランの生成を容易にするためにプランナを使用する印刷プラットフォームの一例を示す図である。
【図１】
2008299847.tif 000003
【図２】
2008299847.tif 000004
【図３】
2008299847.tif 000005