(57)【要約】【課題】印刷クライアントが送信した順番で、画像形成装置から印刷出力を得られるように印刷順を制御する。【解決手段】画像形成装置が受信した印刷ジョブを通信パケットレベルでキャプチャし、受信を開始した日時をジョブリストによって管理する。着目印刷ジョブが印刷キューマネージャ１１０に入力されると、印刷ジョブの受信が終了していない先行投入ジョブの有無が判定される。有れば先行投入ジョブの入力を待ち、入力されると先行投入ジョブを印刷キュー１１１に登録し、それに続けて着目印刷ジョブを印刷キュー１１１に登録する。先行投入ジョブが無ければ着目印刷ジョブを印刷キュー１１１に登録する。【選択図】図１
2011165009.tif 000002
【特許請求の範囲】
【請求項１】
印刷ジョブを構成する通信パケットを複数のコネクションを通して並列に受信できる印刷ジョブ管理装置であって、
印刷ジョブの先頭を示す通信パケットを受信した順序に従って印刷ジョブを印刷ジョブキューに登録するキュー管理手段と、
前記キュー管理手段により印刷ジョブキューに登録された順序で印刷ジョブを出力する出力手段と
を備えることを特徴とする印刷ジョブ管理装置。
【請求項２】
前記印刷ジョブの先頭を示す通信パケットは、印刷ジョブを送信する前記コネクションの確立のための確立パケットであり、
前記キュー管理手段は、
前記コネクションの確立のための確立パケットを受信した場合、新たなエントリをジョブリストに設けて該エントリに受信開始日時として前記確立パケットを受信した時刻を登録し、
前記確立パケットにより確立されたコネクションで印刷ジョブＩＤを受信した場合、該ジョブＩＤを前記受信開始日時に対応付けて前記ジョブリストに登録し、
着目印刷ジョブの受信を終了した場合、当該印刷ジョブの通信終了日時を前記ジョブリストに登録し、前記着目印刷ジョブの受信開始日時より早い受信開始日時を持ちかつ受信終了日時が登録されていない先行投入ジョブが前記ジョブリストに登録されているか判定し、
前記先行投入ジョブが前記ジョブリストに登録されていない場合には、前記着目印刷ジョブを印刷ジョブキューに登録し、
前記先行投入ジョブが前記ジョブリストに登録されている場合には、前記先行投入ジョブの受信の終了を待機し、受信が終了すると、前記先行投入ジョブを前記印刷ジョブキューに登録し、その後に前記着目印刷ジョブを前記印刷ジョブキューに登録することで、印刷ジョブの先頭を示す通信パケットを受信した順序に従って印刷ジョブをキューに登録することを特徴とする請求項１に記載の印刷ジョブ管理装置。
【請求項３】
前記キュー管理手段は、前記先行投入ジョブが複数ある場合には、複数の前記先行投入ジョブすべてについて受信の終了を待機し、受信が終了すると、複数の前記先行投入ジョブを受信開始日時の順に前記印刷ジョブキューに登録し、その後に前記着目印刷ジョブを前記印刷ジョブキューに登録することで、印刷ジョブの先頭を示す通信パケットを受信した順序に従って印刷ジョブをキューに登録することを特徴とする請求項２に記載の印刷ジョブ管理装置。
【請求項４】
前記複数のコネクションは、前記印刷ジョブ管理装置に接続されたクライアント装置ごとに確立できることを特徴とする請求項１乃至３のいずれか一項に記載の印刷ジョブ管理装置。
【請求項５】
前記複数のコネクションは、前記印刷ジョブ管理装置に接続されたクライアント装置で実行されるアプリケーションプログラムごとに確立できることを特徴とする請求項１乃至４のいずれか一項に記載の印刷ジョブ管理装置。
【請求項６】
請求項１乃至５のいずれか一項に記載の印刷ジョブ管理装置と、
前記出力手段により出力された印刷ジョブを実行して印刷を行う印刷手段と
を備えることを特徴とする画像形成装置。
【請求項７】
印刷ジョブを構成する通信パケットを複数のコネクションを通して並列に受信できる印刷ジョブ管理装置による印刷ジョブ管理方法であって、
キュー管理手段が、印刷ジョブの先頭を示す通信パケットを受信した順序に従って印刷ジョブを印刷ジョブキューに登録するキュー管理工程と、
出力手段が、前記キュー管理工程により前記印刷ジョブキューに登録された順序で印刷ジョブを出力する出力工程と
を有することを特徴とする印刷ジョブ管理方法。
【請求項８】
印刷ジョブを構成する通信パケットを複数のコネクションを通して並列に受信できる印刷ジョブ管理装置としてコンピュータを機能させるためのプログラムであって、
請求項１乃至５のいずれか一項に記載の印刷ジョブ管理装置の各手段としてコンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば印刷クライアント装置が印刷ジョブを送信した順番で画像形成装置から印刷出力を得ることを保証する印刷ジョブ管理装置及び印刷ジョブ管理方法及び画像形成装置に関する。
【背景技術】
【０００２】
従来の印刷順番を保証する技術には、受信を完了した印刷ジョブを統合処理キューの最後尾に追加することにより、画像形成装置が印刷ジョブを受信した順番で印刷出力を開始するようにしたものがある（例えば、特許文献１等参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１５６５３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
この先行技術では、印刷ジョブのスケジュールを印刷ジョブの受信が完了した時点で行うため、必ずしも印刷クライアントが印刷ジョブの送信を開始した順番と一致しない場合がある。そのため、印刷クライアントにおいて先に印刷が指示された先行ジョブが、その後で印刷指示された後続ジョブにより追い越され、後続ジョブが先に印刷されてしまう場合があった。このような現象は、画像形成装置がマルチセッション接続をサポートし、且つ先行ジョブのデータサイズに対して後続ジョブのデータサイズが極めて小さい場合に発生する可能性が高い。
【０００５】
本発明は上記従来例に鑑みて成されたもので、複数のジョブを非同期に受信可能な画像形成装置において、印刷ジョブを、対応する印刷指示の順序で実行する画像形成装置およびそれによる印刷制御方法を提供することを目的とする。
【０００６】
さらに、あるソースからの印刷ジョブを対応する印刷指示の順序で実行し、ソースの異なる印刷ジョブによる割り込みを防止できる印刷ジョブ管理装置及び印刷ジョブ管理方法及び画像形成装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は上記目的を達成するために以下の構成を有する。
【０００８】
印刷ジョブを構成する通信パケットを複数のコネクションを通して並列に受信できる印刷ジョブ管理装置であって、
印刷ジョブの先頭を示す通信パケットを受信した順序に従って印刷ジョブをジョブキューに登録するキュー管理手段と、
前記キュー管理手段によりジョブキューに登録された順序で印刷ジョブを出力する出力手段とを備える。
【発明の効果】
【０００９】
本発明によれば、印刷ジョブを受信が開始された順番で印刷キューへ保存する制御が可能となる。これにより、後続ジョブの受信完了が先行ジョブを追い越した場合でも、印刷クライアントから送信された順番で印刷出力を得ることが可能となる。
【図面の簡単な説明】
【００１０】
【図１】画像形成装置のデータフロー図
【図２】印刷システムの構成図
【図３】ジョブリスト生成手段を示すフローチャート
【図４】ジョブリストの構成図
【図５】印刷キュー管理手段を示すフローチャート
【図６】プリンタ設定手段のUIを示す図
【図７】画像形成装置のハードウェアブロック図
【図８】第２実施形態における印刷ジョブのスケジューリング処理のフローチャート
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための最良の形態について図面を用いて説明する。図２は、本発明に関わる印刷システムの構成図である。同図において、ＬＡＮ２０１はネットワーク通信媒体であるローカルエリアネットワークであり、たとえばイーサネット（登録商標）である。。ＬＡＮ２０１にはＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）２０３を介して印刷クライアント２０２が接続されている。印刷クライアントは、たとえば文書処理や画像処理等をはじめとして印刷機能を有するアプリケーションプログラムがインストールされたコンピュータである。また、ＬＡＮ２０１には、印刷クライアント２０２から送信される印刷ジョブを受信して、印刷媒体に印刷する機能を有する画像形成装置２０４が、ＮＩＣ１０２を介して接続されている。画像形成装置は例えば複合複写機やプリンタなどであり、印刷クライアントから印刷ジョブを受信して実行する機能を有する。この構成において印刷クライアント２０２は、ＬＡＮ２０１を介して画像形成装置２０４に印刷ジョブを送信することができる。本実施形態では、このネットワークシステムはＴＣＰ／ＩＰネットワークであり、印刷ジョブを構成するデータは、各プロトコルレイヤで定められた手順に従い、メッセージやパケット、フレームといった単位で送信される。また印刷クライアント２０２が複数ある場合、それぞれのクライアントは、クライアント毎のＴＣＰコネクションで画像形成装置２０４と接続される。さらに印刷データは一般に大量であり、かつその順序が重要であることから、本実施形態においては、アプリケーションレイヤのプロトコルではセッションがサポートされる。そしてひとつの印刷ジョブはひとつのセッションで印刷クライアント２０２から画像形成装置２０４に送信される。なおここで説明した本実施形態の画像形成装置の通信プロトコルに関する機能は印刷サーバにより提供され、画像形成装置自体はその印刷サーバにシリアルＩＦ或いはパラレルＩＦで接続されて印刷機能のみを提供する構成であっても良い。
【００１２】
印刷ジョブは、印刷クライアントにおいてアプリケーションプログラム等において印刷の指示がされた際に、例えばひとつの印刷指示に対応して生成される処理の単位である。印刷ジョブにはジョブを定義するジョブヘッダや画像形成装置により処理される印刷データを含む。例えば印刷クライアントで実行中のアプリケーションプログラムにおいて印刷指示がオペレータにより入力されると、アプリケーションはオペレーティングシステムが提供する関数をコールして印刷対象のデータをオペレーティングシステムに引き渡す。オペレーティングシステムは、画像形成装置のベンダにより提供されているドライバプログラムを用いるなどして、印刷対象のデータを画像形成装置が解釈実行可能な形式の印刷データに変換し、その印刷データを含む印刷ジョブを生成して画像形成装置に送信する。印刷ジョブの送信の開始は印刷データの生成が完了してからであっても良いが、印刷指示に応じて、印刷データの生成の完了を待たずに最初のパケットを送信しても良い。
【００１３】
＜画像形成装置のハードウエア＞
図７は、本発明の画像形成装置２０４のハードウェアブロック図である。同図において、ＣＰＵ７０２は本発明の画像形成装置の制御を司る。後述する図３，図５，図８等のフローの処理もＣＰＵ７０２がプログラムを実行することで実現される。ＨＤＤコントローラ７０３はＨＤＤ７０４への読み書きを制御する。ＨＤＤ７０４は、ＣＰＵ７０２によって実行されるプログラムが保存され、且つ大容量データの保存領域としても利用されるハードディスクドライブである。ＲＡＭ７０５は、ＣＰＵ７０２がアクセスするプログラムやデータを一時的に記憶するためのメモリである。ＬＣＤコントローラ７０６は表示部７０７として利用されるＬＣＤへの表示を制御する。ＬＣＤ７０７はユーザへ情報を提供するための表示部である。ＩＯ７０８はデータの入出力を司り、操作部７０９に接続されている、操作部７０９はユーザからの命令を受け付ける。バスセレクタ７１０は外部バスとシステムバス７０１との通信を制御する。リアルタイムクロック（ＲＴＣ）７１１は画像形成装置の時刻を管理するための時計である。ＣＰＵ７０２はＲＴＣ７１１にアクセスしてそのときの日時を読み出すことができる。
【００１４】
＜画像形成装置におけるデータフロー＞
図１は、本発明の画像形成装置２０４のデータの流れを示すデータフロー図である。
同図において、印刷ジョブ１０１は印刷クライアント２０２から送信された印刷ジョブである。ＮＩＣ１０２は、画像形成装置２０４をＬＡＮ２０１へ接続するために用いられる。パケットキャプチャドライバ１０３は、ＮＩＣ１０２で受信された通信パケットをキャプチャする。すなわち、受信パケットを本来の処理経路から複製して取り込む。ジョブリスト生成部１０４はジョブリスト４０１を生成する。ジョブリスト４０１には、印刷ジョブIDごとの受信開始時間、受信終了時間、ソースＩＰアドレス、印刷サービスが含まれる。ＴＣＰ／ＩＰプロトコルスタック１０５はＴＣＰ／ＩＰプロトコルによる通信制御を司る。印刷サービス分配部１０６は受信した印刷ジョブを対応する印刷サービスに振り分ける。印刷サービス１０７、１０８、１０９は、画像形成装置２０４がサポートする印刷サービスであり、例えばＬＰＤ印刷サービス、ＩＰＰ印刷サービス、ＲＡＷデータ印刷サービスなどがこれに該当する。印刷キューマネージャ１１０は、各印刷サービスによって処理された印刷データを、印刷キューへ格納する順番を制御するキュー管理を行う。印刷キュー１１１は印刷データを印刷順に格納する。ＲＩＰ処理部１１２は印刷データをラスタデータに変換する。印刷処理部１１３はラスタデータを紙などの印刷媒体に印刷する。一時待機キュー１１４は印刷キュー１１１への格納を待機させたい印刷データを一時的に保存する場合に利用される格納領域である。図１において、印刷処理部１１３を除いた構成要素、あるいはＲＩＰ１１２と印刷処理部１１３とを除いた構成要素は、画像形成装置本体ではない印刷サーバ等に用意されても良い。そこで図１からＲＩＰ１１２と印刷処理部１１３とを除いた構成をまとめて印刷サーバあるいは印刷ジョブ管理部（印刷ジョブ管理装置）と呼ぶことにする。
【００１５】
図１及び図２を用いて、印刷ジョブ１０１が印刷されるまでの流れを説明する。印刷ジョブ１０１は、印刷クライアント２０２上で実行されるプリンタドライバ（不図示）によって生成される。その際にプリンタドライバは、個々のジョブの識別を容易にするために、ジョブＩＤを印刷ジョブの中に埋め込むことが望ましい。具体的には、印刷ジョブ１０１の非印刷データ部分にジョブＩＤを指定するためのタグを設け、そこに乱数生成アルゴリズムによって生成されたユニークなＩＤを埋め込む。なお本実施形態ではジョブＩＤが印刷ジョブの例えばジョブヘッダに埋め込まれる。こうして生成された印刷ジョブ１０１は、印刷クライアント２０２の利用者による印刷命令を受けて、任意の印刷サービス（例えばＩＰＰなど）によって通信パケット化されて送信される。この通信パケットはＮＩＣ２０３によってＬＡＮ２０１へ送られ、ＮＩＣ１０２によって受信され、画像形成装置２０４に取り込まれる。
【００１６】
ＮＩＣ１０２によって受信された印刷ジョブ１０１の通信パケットは、ＴＣＰ／ＩＰプロトコルスタック１０５によって解釈され、解釈結果に応じて対応する印刷サービスへ分配される（１０６）。もし、印刷クライアント２０２が印刷サービスＡを利用して印刷を行った場合、印刷ジョブ１０１を構成する通信パケットは印刷サービスＡ１０７（例えばＩＰＰなど）へ送られることになる。印刷サービスＡ１０７では、個々の通信パケットを印刷サービスのプロトコルに従って受信し、パケット化されて送られてきた印刷ジョブ１０１を復元する。こうして１つの印刷ジョブ１０１に対応する全ての通信パケットの受信が完了し、印刷ジョブ１０１の復元が完了すると、印刷サービスＡ１０７は、復元した印刷ジョブ１０１を印刷キューマネージャ１１０へ送る。以上は他の印刷サービスにおいても同様である。
【００１７】
一方、ＮＩＣ１０２によって受信された印刷ジョブ１０１の通信パケットは、ＴＣＰ／ＩＰプロトコルスタック１０５へ送られる前の段階で、パケットキャプチャドライバ１０３によってキャプチャされる。この段階でキャプチャされたパケットデータは、ＴＣＰ／ＩＰのヘッダ情報が取り除かれる前のデータであるため、ＴＣＰ／ＩＰにおける受信の開始や終了の判定が可能となる。たとえば印刷ジョブの先頭パケットは当該印刷ジョブを送信するＴＣＰコネクションを確立するためのｓｙｎパケット（確立パケット）である。またＴＣＰコネクションを解除するためのパケットはｆｉｎパケット（解放パケット）である。このキャプチャされたパケットデータは、ジョブリスト生成部１０４によって解析され、ジョブリスト４０１の生成に利用される。クライアント毎のＴＣＰコネクションが確立されれば、画像形成装置２０４は、それらを通して複数のクライアントから複数の印刷ジョブを並列に受信できる。またＴＣＰコネクションはひとつのクライアントのプログラムごとに確立することもできる。その場合、ひとつのクライアントから複数の印刷ジョブが並列に送信されることもあり得る。
【００１８】
＜ジョブリストの生成＞
図３及び図４を用いて、ジョブリスト生成部１０４で実施されるジョブリストの生成フローを説明する。なお図３の手順は、パケットキャプチャドライバ１０３が受信したパケットをキャプチャするつど実行される。
【００１９】
ＴＣＰ／ＩＰプロトコルは、ＴＣＰコネクションを確立するために、初めにＳＹＮパケットによるハンドシェイクを行う。ＣＰＵ７０２は、ＮＩＣ１０２によって受信されたＳＹＮパケットを捕らえることによって、印刷ジョブ１０１の受信開始判定に利用している。ＣＰＵ７０２は、ＳＹＮパケットの受信を待機し（Ｓ３０１）、ＳＹＮパケットの受信が検出されると、ジョブリスト４０１に新たな行を生成する（Ｓ３０２）。またこの時、リアルタイムクロック７１１から日時情報を取得し、受信開始日時としてジョブリスト４０１へ記録する（Ｓ３０３）。
【００２０】
ＣＰＵ７０２は、続いて受信される通信パケットから、ジョブＩＤの検出を待機する（Ｓ３０４）。ジョブＩＤは、印刷ジョブ１０１の中に埋め込まれているため、このジョブＩＤを指定するタグを検出し、そこに埋め込まれたＩＤ情報を抽出し、受信開始日時と対応付けてジョブリスト４０１へ記録する（Ｓ３０５）。対応関係は、たとえばコネクションのＩＤの同一性により判定される。
【００２１】
また、ＴＣＰ／ＩＰプロトコルは、ＴＣＰコネクションを切断するために、ＦＩＮパケットによるハンドシェイクを行う。ＣＰＵ７０２は、このＦＩＮパケットの受信を捕らえることによって、印刷ジョブ１０１の受信完了判定に利用している。ＣＰＵ７０２は、ＦＩＮパケットの受信パケットを待機し（Ｓ３０６）、ＦＩＮパケットの受信が検出されると、ジョブリスト４０１へリアルタイムクロック７１１から取得した日時を受信終了日時として記録する（Ｓ３０７）。ジョブリスト４０１へは、上述した情報以外にも、通信パケットから抽出可能な印刷ジョブ１０１の送信元ＩＰアドレスと、通信に利用された印刷サービスのプロトコルが、ＣＰＵ７０２によって記録される。
【００２２】
ジョブリスト４０１は上述のようにして生成されたジョブリストの例である。ジョブＩＤ４０２はジョブＩＤが記録される列である。受信開始日時４０３は各ジョブＩＤに対応する印刷ジョブ１０１の受信開始日時が記録される列である。受信終了日時４０４は各ジョブＩＤに対応する印刷ジョブ１０１の受信終了日時が記録される列である。送信元アドレス４０５は印刷ジョブ１０１の送信元ＩＰアドレスが記録される列である。印刷サービス４０６は印刷ジョブ１０１の通信に利用された印刷サービスが記録される列である。尚、ジョブリスト４０１は、ＣＰＵ７０２によって、ＲＡＭ７０５の記憶領域に記憶される。こうしてジョブリスト生成部１０４で生成されたジョブリスト４０１は、ＣＰＵ７０２によって印刷キューマネージャ１１０で利用される。また送信元アドレス４０５および印刷サービス４０６は、それぞれ送信元アドレス固定モード、印刷サービス固定モードにおける印刷処理時に参照される。
【００２３】
＜印刷ジョブのスケジューリング＞
図５を用いて、印刷キューマネージャ１１０で実施されるＣＰＵ７０２の動作フローを説明する。  ＣＰＵ７０２は、印刷サービスＡ１０７、印刷サービスＢ１０８、印刷サービスＣ１０９からの印刷ジョブ１０１の入力を待機する（Ｓ５００）。印刷キューマネージャ１１０へは、受信を終了した印刷ジョブが入力される。この印刷ジョブを入力印刷ジョブまたは着目印刷ジョブと呼ぶことにする。ＣＰＵ７０２は、印刷サービス（例えば印刷サービスＡ１０７）から印刷ジョブの入力を検出すると、ジョブの実行順を受信開始順とするか否か判定する（Ｓ５０１）。この判定は、後述の図６のUIにおいてラジオボタン６０４により選択された印刷設定をもとに行う。受信開始順であれば、ジョブリスト４０１を参照する（Ｓ５０２）。それによりＣＰＵ７０２は、ステップＳ５０１で検出された印刷ジョブ１０１よりも先に受信が開始され、未だ当該印刷キューマネージャ１１０に入力されていない先行投入ジョブが有るかを判定する（Ｓ５０３）。ジョブリスト４０１に、ステップＳ５０１で入力された印刷ジョブよりも受信開始日時が早く、かつ受信終了日時が空欄の印刷ジョブが登録されていれば、それが先行投入ジョブであると判断できる。
【００２４】
もしここで先行投入ジョブが無いと判定された場合、ＣＰＵ７０２は、入力された印刷ジョブ１０１を印刷キュー１１１へ保存（登録）し（Ｓ５０６）、入力された印刷ジョブをスケジューリングして処理を終了する。スケジューリングされた印刷ジョブに対応するエントリはジョブリスト４０１から削除される。印刷キュー１１１は、ＨＤＤ７０４の記憶領域に存在し、ＣＰＵ７０２はＨＤＤコントローラ７０３を利用することによって、印刷キュー１１１に対して印刷ジョブを読み書きすることが可能となる。
【００２５】
一方、Ｓ５０３で先行投入ジョブが有ると判定された場合、ＣＰＵ７０２は、先行投入ジョブの入力を一定時間待機する（Ｓ５０４）。ステップＳ５０７では、待機時間オーバがチェックされ、もし待機時間オーバと判定されると、ＣＰＵ７０２は、先行投入ジョブの待機を中止し、入力された印刷ジョブ１０１を印刷キュー１１１へ保存し（Ｓ５０６）、処理を終了する。スケジューリングした印刷ジョブに対応するエントリはジョブリスト４０１から削除される。一方、先行投入ジョブの受信が検出されると、ＣＰＵ７０２は、当該先行投入ジョブを印刷キュー１１１へ保存し（Ｓ５０５）、続いて入力された印刷ジョブ１０１を印刷キュー１１１へ保存する（Ｓ５０６）。これにより、先行投入ジョブが、入力印刷ジョブの前に実行されるようスケジューリングできる。
【００２６】
一方、ステップＳ５０１で受信開始順ではないと判定されると、受信終了順に印刷ジョブはスケジュールされる。そのため、ステップＳ５０６に分岐して印刷ジョブを入力順に印刷ジョブキューに登録すればよい。
【００２７】
なお、このほかソースＩＰ固定機能や印刷サービス固定機能といった、指定された条件を満たす印刷ジョブに限って実行するオプションも、図６に示すように用意される。前者は、実行する印刷ジョブを、指定された発行元からの印刷ジョブに限定するためのオプションで、ソースＩＰ固定機能のオプションが設定されている間は、別途指定されたＩＰアドレスをソースとする印刷ジョブだけが実行される。同一のＩＰアドレスをソースとする印刷ジョブは時系列に入力される。そのため、印刷ジョブのスケジューリングは、受信終了順と同様でよい。このために、例えば該当しない印刷ジョブを破棄する場合、Ｓ５０１でソースＩＰ固定機能が有効ならばＳ５０６に分岐する。また、ステップＳ５０６内ではソースＩＰ固定機能の有効性を判断し、有効でなければ全ての入力印刷ジョブを印刷キュー１１１に登録する。有効で有れば、指定されていないソースＩＰの印刷ジョブを破棄する。そして破棄した印刷ジョブの発行元へはその旨応答する。
【００２８】
一方、印刷サービス固定機能を用いると、指定された印刷サービスが別途指定された特定の印刷サービスであるような印刷ジョブに限って実行される。この場合もソースＩＰの代わりに印刷サービスを限定の基準とするだけで、上述したソースＩＰ固定機能と同様の処理を行えばよい。
【００２９】
図６はプリンタの設定を行うためのＵＩである。同図において、設定ＵＩ６０１は画像形成装置２０４（以下プリンタとも呼ぶ）の設定を利用者が行うためのユーザインターフェースである。このユーザインターフェース画面は、画像形成装置２０４の表示パネルに表示される。チェックボックス６０２は、印刷クライアント２０２等のクライアントからの印刷許可を制御するためのものである。ラジオボタン６０３は印刷ジョブ１０１の受信が終了した順に印刷キューへ送るよう選択するためのボタンである。ラジオボタン６０４は印刷ジョブ１０１の受信が開始した順に印刷キューへ送るよう選択するためのボタンである。ラジオボタン６０３，６０４はそのうちのいずれかが選択される。入力ボックス６０５は先行投入ジョブの受信待機時間を指定するための入力欄である。ここで指定された時間がステップＳ５０７でテストされる待機時間となる。チェックボックス６０６はソースＩＰ固定機能の許可を制御するＵＩである。チェックボックス６０７は印刷サービス固定機能の許可を制御するＵＩである。設定完了ボタン６０８はプリンタの設定ＵＩ６０１での設定を完了させるためのボタンである。尚、このプリンタの設定ＵＩ６０１は、ＣＰＵ７０２によって、表示部７０７へ表示される。また、ユーザの命令は操作部７０９によって入力され、ＣＰＵ７０２はＩＯ７０８を介してこれを解釈し、ユーザの命令に従った処理を実行する。
【００３０】
このユーザインターフェースで入力された設定は、画像形成装置２０４における設定情報の一部として保存され、参照される。ラジオボタン６０３またはラジオボタン６０４の何れかを選択することによって、本発明の印刷ジョブ１０１の受信が開始した順に印刷ジョブ１０１を印刷キューへ送る機能の有効化、無効化が可能となる。また図５のＳ５０７によって待機される先行ジョブの待機時間は固定長でも良いが、ＵＩ６０５を設けることによって、ユーザが任意の待機時間を設定することが可能となる。この値は、ユーザのネットワーク環境や、ユーザが送信する印刷ジョブの大小の比率などに応じて調整することにより、効率の良い印刷処理が可能となる。
【００３１】
図５の説明で述べたように、ソースＩＰ固定機能とは、印刷する順番を特定のＩＰから送られてくる印刷ジョブに固定する機能である。この機能は複数の印刷クライアントから同時に複数の印刷ジョブを送信された場合に有効であり、画像形成装置２０４からの印刷出力に、異なる印刷クライアントのジョブが混ざらないように制御される。図５の説明では、簡単のために該当しない印刷ジョブは破棄されるよう説明したが、該当しない印刷ジョブは待機させても良い。その場合、Ｓ５００の直後、あるいはＳ５０１でＮｏと判定された場合には、固定機能の有効性を判断する。有効でなければ図５の処理を続ける。有効で有れば、ジョブリスト４０１のソースＩＰ情報４０５を参照する。指定されたソースＩＰでなければ一時待機キュー１１４に、指定されたソースＩＰであれば印刷キュー１１１に入力印刷ジョブを登録する。この後、同一ソースＩＰからの印刷ジョブの受信が完了した時点で、印刷キューマネージャ１１０は一時待機キュー１１４から異なるソースＩＰからの印刷ジョブを読み出し、印刷キュー１１１へ登録するよう制御する。同一ソースＩＰからの印刷ジョブの受信を完了したことは、例えば指定されたソースＩＰから印刷ジョブを最後に受信してから一定時間経過したなら完了と判定できる。この場合、指定されたソースＩＰアドレスは、印刷ジョブを最後に受信してから一定時間経過した後の印刷ジョブのソースＩＰアドレスに更新されてもよい。
【００３２】
印刷サービス固定機能とは、印刷の順番を特定の印刷サービスによって送られてくる印刷ジョブに固定する機能である。この機能は複数の印刷クライアントから様々な印刷サービスを用いて同時に複数の印刷ジョブを送信された場合に有効であり、画像形成装置２０４からの印刷出力に、異なる印刷サービスによるジョブが混ざらないように制御される。この機能も、固定されるのがソースＩＰではなく印刷サービスという点を除いて、ソースＩＰ固定と同じ要領で実現される。
【００３３】
この様な手順で印刷キュー１１１に登録された印刷ジョブは、スケジューリングの手順とは非同期に実行される実行手順により登録順に印刷キュー１１１から出力される。出力されたすなわち取り出された印刷ジョブは取り出された順に実行される。印刷ジョブの取出しは例えばＲＩＰ処理部１１２により行われても良いし、不図示のスケジューリングモジュールで行われても良い。また印刷キューマネージャ１１０が図５の手順とは非同期のプロセスを用いて実行しても良い。
【００３４】
以上の手順により、本実施形態によれば、印刷ジョブを画像形成装置が受信を開始した順序にスケジュールでき、印刷ジョブを発生順に出力することを保証できる。
【００３５】
［第２実施形態］
図５の手順は、本発明の原理を簡単に示したものであり、たとえば複数の先行投入ジョブがある場合には図８のような手順となる。本実施形態は、図５の手順に代えて図８の手順を用いることを特徴としている。他の構成は第１の実施形態と同様である。
【００３６】
＜印刷ジョブのスケジューリング＞
図８を用いて、印刷キューマネージャ１１０で実施されるＣＰＵ７０２の動作フローを説明する。図８は、印刷サービスＡ１０７、印刷サービスＢ１０８、印刷サービスＣ１０９からの印刷ジョブ１０１が入力されると開始される。まずＣＰＵ７０２は、印刷順を受信開始順とするオプションが設定されているか判定する（Ｓ８００）。受信開始順であれば、ジョブリスト４０１を参照する（Ｓ８０１）。それによりＣＰＵ７０２は、入力された印刷ジョブ１０１よりも先に受信が開始されたものの、未だ入力されていない先行投入ジョブが有るかを判定する（Ｓ８０２）。ジョブリスト４０１に、入力印刷ジョブよりも受信開始日時が早く、かつ受信終了日時が空欄の印刷ジョブが登録されていれば、それが先行投入ジョブであると判断できる。
【００３７】
もしここで先行投入ジョブが無いと判定された場合、ＣＰＵ７０２は、入力された印刷ジョブ１０１を印刷キュー１１１へ登録する（Ｓ８０３）。キューへ登録するとは、キューの末尾に当該ジョブを付け加えることである。こうして印刷ジョブをスケジューリングすると、一時待機キュー１１４に印刷ジョブが登録されているか判定する（Ｓ８０４）。一時待機キューに印刷ジョブがあれば、入力印刷ジョブは先行投入ジョブであるので、一時待機キュー１１４に登録された印刷ジョブを、その順序で印刷キュー１１１に登録し直す（Ｓ８０５）。その後、Ｓ８０３及びＳ８０５で印刷キュー１１１に登録された印刷ジョブに係るエントリをジョブリスト４０１から削除する（Ｓ８０６）。このときＳ８０８で起動されている待機タイマもキャンセルする。この後新たな印刷ジョブの入力を待つ。
【００３８】
一方、Ｓ８０２で先行投入ジョブが有ると判定された場合、ＣＰＵ７０２は、入力された印刷ジョブを一時待機キュー１１４に受信開始順に登録する（Ｓ８０７）。受信開始順は、例えばジョブリスト４０１を参照することで知ることができる。例えば受信開始日時が入力印刷ジョブより遅い印刷ジョブが既に一時待機キューに登録されているなら、その印刷ジョブの前に入力印刷ジョブを登録する。この後、待機用のタイマを起動し（Ｓ８０８）、印刷ジョブの入力あるいは待機タイマの満了を待つ。待機タイマの設定時間は図６の入力ボックス６０５で指定した時間である。
【００３９】
一方Ｓ８００で受信開始順ではないと判定されると、ステップＳ８０３に進んで入力印刷ジョブを入力順にスケジュールする。この場合一時待機キュー１１４には印刷ジョブは登録されないので、Ｓ８０４の後は必ずＳ８０６となりＳ８０５はスキップされる。
【００４０】
待機時間が所定時間を超えて待機タイマが満了したなら、すなわちタイムアウトとなったならステップＳ８１１がＣＰＵ７０２により実行される。タイムアウトした先行投入ジョブはそれ以降待たれず、本実施形態では印刷ジョブを受信開始順に実行するという原則を維持するために破棄される。そのためＣＰＵ７０２は、全ての先行投入ジョブのエントリをジョブリスト４０１から削除する（Ｓ８１１）。この先行投入ジョブは本実施形態では破棄される（Ｓ８１２）。たとえば、ステップＳ８１１では印刷に失敗した旨を送信元のクライアントに送る。そして、その後、破棄された印刷ジョブのパケットを受信することがあってもそれは破棄される。ステップＳ８１２の後、入力が完了していない先行投入ジョブはなくなったので、ステップＳ８０５に分岐して一時待機キュー１１４内の印刷ジョブを印刷キュー１１１に登録する。
【００４１】
以上の手順により、先行投入ジョブが複数ある場合でも、受信開始日時の順に印刷ジョブをスケジュールすることができる。なおソースＩＰアドレス等の固定機能を用いる場合、Ｓ８００の前、あるいはＳ８００でＮｏと判定された後で固定機能の有効性を判定する。もし有効なら、一時待機キュー１１４と印刷キュー１１１とを第１実施形態で説明したように使い分け、入力印刷ジョブを登録する。また、第１実施形態と同様に一時待機キュー１１４のエントリを印刷キュー１１１に登録する。
【００４２】
［その他の実施例］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2011165009.tif 000003
【図２】
2011165009.tif 000004
【図３】
2011165009.tif 000005
【図４】
2011165009.tif 000006
【図５】
2011165009.tif 000007
【図６】
2011165009.tif 000008
【図７】
2011165009.tif 000009
【図８】
2011165009.tif 000010