(57)【要約】【課題】プルプリントシステムにおける印刷対象データの指定を容易に行えるようにする。【解決手段】情報処理装置と印刷装置が通信可能な印刷システムにおいて、情報処理装置は、印刷装置から送信されてくる印刷ジョブを特定の識別情報に基づいて読み込みが可能な形態で、保持する。印刷装置が、情報処理装置へ識別情報を伴う要求を発行すると、情報処理装置は、発行された要求を受信し、この受信した要求に含まれる識別情報に基づいて印刷ジョブを読み込む。そして、情報処理装置は、この読み込まれた印刷ジョブを印刷装置へ出力する。また、情報処理装置は、要求を受信した後に、識別情報を含む更なる情報を印刷装置から受信した場合であって、更なる情報に含まれる識別情報が特定の識別情報であった場合には、印刷ジョブに対する処理を変更する。【選択図】    図８
2011253568.tif 000002
【特許請求の範囲】
【請求項１】
印刷装置と通信可能なサーバ装置であって、
印刷指示に応じて印刷ジョブを生成するジョブ生成手段と、
前記ジョブ生成手段で生成された印刷ジョブを特定の識別情報に関連付けて保持する保持手段と、
印刷装置から識別情報を含む要求を受信する第１受信手段と、
前記第１受信手段により受信した要求に含まれる識別情報が前記特定の識別情報であった場合に、前記特定の識別情報に関連付けられている前記印刷ジョブを前記保持手段から読み出し、読み出された前記印刷ジョブを前記印刷装置へ出力する出力手段と、
前記第１受信手段により前記要求を受信した後に、識別情報を含む更なる情報を印刷装置から受信した場合であって、前記更なる情報に含まれる識別情報が前記特定の識別情報であった場合には、前記印刷ジョブに対する処理を変更するジョブ制御手段と、を備えることを特徴とするサーバ装置。
【請求項２】
前記ジョブ制御手段は、
前記更なる情報に含まれる識別情報が前記特定の識別情報であった場合に、前記出力手段による出力先の印刷装置から、該印刷装置が印刷の実行が可能な正常状態か、印刷の実行ができない異常状態かを示す通知を受信し、
前記通知が異常状態を示す場合、前記特定の識別情報により関連付けられている前記印刷ジョブをキャンセルすることを特徴とする請求項１に記載のサーバ装置。
【請求項３】
前記ジョブ制御手段は、
前記更なる情報に含まれる識別情報が前記特定の識別情報であった場合に、前記出力手段による出力先の印刷装置から、該印刷装置が印刷の実行が可能な正常状態か、印刷の実行ができない異常状態かを示す通知を受信し、
前記更なる情報の送信元の印刷装置が前記出力先の印刷装置とは異なる別の印刷装置であった場合に、前記通知が正常状態を示す場合は、前記印刷装置と前記別の印刷装置による分散印刷を実行し、前記通知が異常状態を示す場合は前記別の印刷装置による代行印刷を実行することを特徴とする請求項１に記載のサーバ装置。
【請求項４】
前記ジョブ制御手段は、
前記更なる情報に含まれる識別情報が前記特定の識別情報であった場合に、前記出力手段による出力先の印刷装置から、該印刷装置が印刷の実行が可能な正常状態か、印刷の実行ができない異常状態かを示す通知を受信し、
前記通知が正常状態を示す場合に前記特定の識別情報に関連付けられている前記印刷ジョブの実行を一時停止することを特徴とする請求項１に記載のサーバ装置。
【請求項５】
実行中の印刷ジョブの進行状況の通知を受信する第３受信手段と、
前記第３受信手段で受信された進行状況の通知に基づくジョブ状況情報を前記実行中の印刷ジョブに対応付けて前記保持手段に保持させる保持制御手段とを更に備えることを特徴とする請求項１乃至４のいずれか１項に記載のサーバ装置。
【請求項６】
前記出力手段は、前記第１受信手段により受信した要求に含まれる識別情報に基づき読み込まれる印刷ジョブに対応して前記ジョブ状況情報が保持されている場合、そのジョブ状況情報に基づいて印刷ジョブを再出力することを特徴とする請求項５に記載のサーバ装置。
【請求項７】
前記第１受信手段で受信した要求に含まれる出力先情報を前記印刷ジョブの出力先に設定する出力先設定手段を更に備えることを特徴とする請求項１乃至６のいずれか１項に記載のサーバ装置。
【請求項８】
情報処理装置と印刷装置が通信可能な印刷システムであって、
前記情報処理装置は、
印刷ジョブを生成するジョブ生成手段と、
前記ジョブ生成手段で生成された印刷ジョブを特定の識別情報に関連付けて保持する保持手段とを備え、
前記印刷装置は、
前記情報処理装置へ識別情報を含む要求を発行する発行手段を備え、
前記情報処理装置は、
前記印刷装置から前記要求を受信する第１受信手段と、
前記第１受信手段により受信した前記要求に含まれる識別情報が前記特定の識別情報であった場合に、前記特定の識別情報に関連付けられている前記印刷ジョブを前記保持手段から読み出し、読み出された前記印刷ジョブを前記印刷装置へ出力する出力手段と、
前記第１受信手段により前記要求を受信した後に、識別情報を含む更なる情報を印刷装置から受信した場合であって、前記更なる情報に含まれる識別情報が前記特定の識別情報であった場合には、前記印刷ジョブに対する処理を変更するジョブ制御手段と、を備えることを特徴とする印刷システム。
【請求項９】
印刷装置と通信可能なサーバ装置によるジョブ制御方法であって、
ジョブ生成手段が、印刷指示に応じて印刷ジョブを生成するジョブ生成工程と、
保持手段が、前記ジョブ生成工程で生成された印刷ジョブを特定の識別情報に関連付けて、保持部に保持する保持工程と、
第１受信手段が、印刷装置から識別情報を含む要求を受信する第１受信工程と、
出力手段が、前記第１受信工程で受信した要求に含まれる識別情報が前記特定の識別情報であった場合に、前記特定の識別情報に関連付けられている前記印刷ジョブを前記保持部から読み出し、該読み出された前記印刷ジョブを前記印刷装置へ出力する出力工程と、
ジョブ制御手段が、前記第１受信工程で前記要求を受信した後に、識別情報を含む更なる情報を印刷装置から受信した場合であって、前記更なる情報に含まれる識別情報が前記特定の識別情報であった場合には、前記印刷ジョブに対する処理を変更するジョブ制御工程と、を有することを特徴とするジョブ制御方法。
【請求項１０】
前記ジョブ制御工程では、
前記更なる情報に含まれる識別情報が前記特定の識別情報であった場合に、前記出力工程における出力先の印刷装置から、該印刷装置が印刷の実行が可能な正常状態か、印刷の実行ができない異常状態かを示す通知を受信し、
前記通知が異常状態を示す場合、前記特定の識別情報により関連付けられている前記印刷ジョブをキャンセルすることを特徴とする請求項９に記載のジョブ制御方法。
【請求項１１】
前記ジョブ制御工程では、
前記更なる情報に含まれる識別情報が前記特定の識別情報であった場合に、前記出力工程における出力先の印刷装置から、該印刷装置が印刷の実行が可能な正常状態か、印刷の実行ができない異常状態かを示す通知を受信し、
前記更なる情報の送信元の印刷装置が前記出力先の印刷装置とは異なる別の印刷装置であった場合に、前記通知が正常状態を示す場合は、ジョブ制御手段が、前記印刷装置と前記別の印刷装置による分散印刷を実行し、前記通知が異常状態を示す場合は前記ジョブ制御手段が前記別の印刷装置による代行印刷を実行することを特徴とする請求項９に記載のジョブ制御方法。
【請求項１２】
前記ジョブ制御工程では、
前記更なる情報に含まれる識別情報が前記特定の識別情報であった場合に、前記出力工程における出力先の印刷装置から、該印刷装置が印刷の実行が可能な正常状態か、印刷の実行ができない異常状態かを示す通知を受信し、
前記通知が正常状態を示す場合に、ジョブ制御手段が、前記特定の識別情報に関連付けられている前記印刷ジョブの実行を一時停止することを特徴とする請求項９に記載のジョブ制御方法。
【請求項１３】
第３受信手段が、実行中の印刷ジョブの進行状況の通知を受信する第３受信工程と、
保持制御手段が、前記第３受信工程で受信された進行状況の通知に基づくジョブ状況情報を前記実行中の印刷ジョブに対応付けて前記保持部に保持させる保持制御工程とを更に備えることを特徴とする請求項９乃至１２のいずれか１項に記載のジョブ制御方法。
【請求項１４】
前記出力工程では、前記第１受信工程により受信した要求に含まれる識別情報に基づき読み込まれる印刷ジョブに対応して前記ジョブ状況情報が保持されている場合、そのジョブ状況情報に基づいて印刷ジョブを再出力することを特徴とする請求項１３に記載のジョブ制御方法。
【請求項１５】
出力先設定手段が、前記第１受信工程で受信した要求に含まれる出力先情報を前記印刷ジョブの出力先に設定する出力先設定工程を更に備えることを特徴とする請求項９乃至１４のいずれか１項に記載のジョブ制御方法。
【請求項１６】
情報処理装置と印刷装置が通信可能な印刷システムによるジョブ制御方法であって、
前記情報処理装置において、印刷ジョブを生成するジョブ生成工程と、
前記情報処理装置において、前記ジョブ生成工程で生成された印刷ジョブを特定の識別情報に関連付けて保持部に保持する保持工程と、
前記印刷装置において、前記情報処理装置へ識別情報を含む要求を発行する発行工程と、
前記情報処理装置において、前記印刷装置から前記要求を受信する第１受信工程と、
前記情報処理装置において、前記第１受信工程で受信した要求に含まれる識別情報が前記特定の識別情報であった場合に、前記特定の識別情報に関連付けられている前記印刷ジョブを前記保持部から読み出し、読み出された前記印刷ジョブを前記情報処理装置から前記印刷装置へ出力する出力工程と、
前記情報処理装置において、前記第１受信工程で前記要求を受信した後に、識別情報を含む更なる情報を印刷装置から受信した場合であって、前記更なる情報に含まれる識別情報が前記特定の識別情報であった場合には、前記印刷ジョブに対する処理を変更するジョブ制御手段と、を有することを特徴とするジョブ制御方法。
【請求項１７】
請求項９乃至１６のいずれか１項に記載されたジョブ制御方法をコンピュータに実行させるためのコンピュータプログラム。
【請求項１８】
請求項９乃至１６のいずれか１項に記載されたジョブ制御方法をコンピュータに実行させるためのコンピュータプログラムを格納したことを特徴とする記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷システム、サーバ装置及びジョブ制御方法に関し、特に、印刷装置側からの要求に従って印刷ジョブの出力を行う仕組みに関する。
【背景技術】
【０００２】
印刷装置側から印刷対象データの指定を行い、該指定に基づく印刷対象データ或は該印刷対象データに基づく印刷ジョブを、通信回線を介して、当該印刷装置側に取り込み、該取り込んだデータに基づく印刷出力を行うシステムが提案されている。これは、所謂プルプリントシステムとして知られている。例えば、特開平０８−２６３４１４号公報（特許文献１）に該技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平０８−２６３４１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、プルプリントシステムでは、ユーザがプリントサーバ側から取り込むべき印刷ジョブのジョブ名を印刷装置の操作部から指定する必要があり、ユーザは煩雑な作業が強いられてしまう。一方、印刷ジョブのジョブ名ではなく、印刷対象とするデータの場所（所謂ＵＲＬ）を印刷装置の操作部から指定し、プルプリントを行うという技術も知られているが、やはり、ユーザに煩雑な作業を強いるという点では、共通の課題を抱えていた。
【０００５】
本発明は上記の課題に鑑みてなされたものであり、プルプリントシステムにおける印刷対象データの指定を容易に行えるようにすることを目的とする。
また、更に、印刷ジョブに対する制御も容易に行えるようにすることを目的とする。
【課題を解決するための手段】
【０００６】
上記の目的を達成するための本発明の一態様によるサーバシステムは以下の構成を備える。即ち、
印刷装置と通信可能なサーバ装置であって、
印刷指示に応じて印刷ジョブを生成するジョブ生成手段と、
前記ジョブ生成手段で生成された印刷ジョブを特定の識別情報に関連付けて保持する保持手段と、
印刷装置から識別情報を含む要求を受信する第１受信手段と、
前記第１受信手段により受信した要求に含まれる識別情報が前記特定の識別情報であった場合に、前記特定の識別情報に関連付けられている前記印刷ジョブを前記保持手段から読み出し、読み出された前記印刷ジョブを前記印刷装置へ出力する出力手段と、
前記第１受信手段により前記要求を受信した後に、識別情報を含む更なる情報を印刷装置から受信した場合であって、前記更なる情報に含まれる識別情報が前記特定の識別情報であった場合には、前記印刷ジョブに対する処理を変更するジョブ制御手段と、を備える。
【発明の効果】
【０００７】
本願発明によれば、従来のプルプリントシステムに比較し、ユーザに煩雑な作業を強いることなく、容易にユーザが印刷出力すべき出力物を得ることができるようになる。
【０００８】
また、さらに、印刷ジョブに対する制御も容易に行える。
【図面の簡単な説明】
【０００９】
【図１】実施形態によるプリントシステムの全体構成例を示すブロック図である。
【図２】実施形態のネットワークプリンタ（プリントデバイスとも言う）のハードウェア構成例を説明するブロック図である。
【図３】クライアントＰＣにおける、プルプリントサーバ及びその周辺のソフトウェア構成例を示す図である。
【図４】プルプリントサーバ及びその周辺のソフトウエアにおける、印刷時の印刷ジョブの流れの一例を示す図である。
【図５】ネットワークプリンタのソフトウェア構成の例を示す図である。
【図６】ネットワークプリンタのユーザアプリケーションのソフトウェア構成の例を示す図である。
【図７】プルプリントサーバとデバイススケジューラ、ＬＰＤ／ＲＡＷ、プリンタコントローラ間の印刷シーケンス例を示す図である。
【図８】実施形態の動作概略を説明する図である。
【図９】プルプリントサーバにジョブを登録する処理の一例を示すフローチャートである。
【図１０】プルプリントサーバが管理する印刷ジョブの情報とジョブ管理キューの一例を表す図である。
【図１１】プルプリントサーバが管理するプリントキュー、出力ポートの情報の一例を表す図である。
【図１２】プルプリントエージェントでユーザ識別情報を取得し、その情報をプルプリントサーバに通知する処理の一例を示すフローチャートである。
【図１３】プルプリントエージェントがプルプリントサーバに通知する情報の一例を示す図である。
【図１４】プルプリントサーバが印刷データを特定してから、印刷データの転送までの流れの一例を示すフローチャートである。
【図１５】デバイススケジューラで管理するクライアント情報とクライアント管理キューの一例を示す図である。
【図１６】デバイススケジューラで管理するジョブ情報とジョブ管理キューの一例を示す図である。
【図１７】プルプリントサーバからの要求や通知、デバイス管理部からの通知、ジョブ管理部への要求や通知を処理する通信接続管理部の処理の一例を示すフローチャートである。
【図１８】プルプリントサーバのスケジュール要求の受け付けから、スケジュールＵＰを発行するまでのデバイススケジュラ−のスケジュール管理部の処理の流れの一例を示すフローチャートである。
【図１９】ジョブ管理部のジョブ状態通知イベントの受け付けからジョブリスト要求の受け付けに対する処理の一例を示すフローチャートである。
【図２０】プリンタコントローラからのデバイス状態、ジョブ状態通知を受け付けた時のデバイス管理部の処理の一例を示すフローチャートである。
【図２１】デバイススケジューラからの通知やコマンドを受け付けた場合のプルプリントサーバの処理の流れの一例を示すフローチャートである。
【図２２】ジョブキャンセル・保持命令を受信したときのプルプリントサーバの処理の一例を説明するフローチャートである。
【図２３】第２実施形態によるプルプリントサーバとデバイススケジューラ、ＬＰＤ／ＲＡＷ、プリンタコントローラ間の印刷シーケンスの一例を示す図である。
【図２４】プルプリントサーバからスケジュール要求を受信し、スケジュールＵＰから印刷処理を完了するまでのデバイススケジューラの処理の一例を示すフローチャートである。
【図２５Ａ】プルプリントサーバによるジョブ制御の処理の一例を説明するフローチャートである。
【図２５Ｂ】プルプリントサーバによるジョブ制御の処理の一例を説明するフローチャートである。
【図２６】プルプリントサーバがジョブ管理キューによって管理するジョブ情報の一例を表す図である。
【図２７】印刷ジョブの保持機構の一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、添付の図面を参照して本発明の好適な実施形態を説明する。
［第１実施形態］
＜システム構成＞
図１は、本実施形態に係るプリントシステムの全体構成を示すブロック図である。本プリントシステムは、情報処理装置としてのクライアントＰＣ（コンピュータ）１０１〜１０３と、印刷装置（プリントデバイス）としてのネットワークプリンタ１０４〜１０５とを含む。これら装置が互いに接続されていることにより、全体としてネットワークを構成している。
【００１１】
クライアントＰＣ１０１〜１０３には、印刷制御プログラムが実行可能に格納されている。クライアントＰＣ１０１〜１０３は、本プリントシステムに含まれるネットワークプリンタ１０４〜１０５を管理する機能のほか、ネットワークで使用されるファイルを蓄積したり、ネットワークの使用状態を監視したりする機能を有する。具体的には、クライアントＰＣ１０１〜１０３は、自身により印刷ジョブを作成し、ネットワークプリンタ１０４〜１０５のスケジューラにスケジュール要求を発行する機能を有する。また、クライアントＰＣ１０１〜１０３は、ネットワークプリンタ１０４〜１０５のスケジューラからの指示により、印刷データの転送を開始する機能を有する。
【００１２】
ネットワークプリンタ１０４〜１０５は、クライアントＰＣ１０１〜１０３から、印刷データを含む印刷ジョブを受信し、受信した印刷ジョブを解析して印刷する物理的な装置としてのプリントデバイスである。なお、ネットワークプリンタ１０４〜１０５としては、電子写真方式を採用したレーザービームプリンタやインクジェット方式を採用したインクジェットプリンタや熱転写方式を利用したプリンタ等、あらゆる方式の印刷装置を採用することができる。
【００１３】
また、ネットワークプリンタ１０４〜１０５は、
・複数のクライアントＰＣ１０１〜１０３からの印刷要求を受け付け、受け付けた印刷要求の順序を決定し、印刷指示を発行する機能や、
・ネットワークプリンタ１０４〜１０５に転送された印刷ジョブ、ネットワークプリンタ１０４〜１０５の状態を監視し、印刷の終了やプリンタ状態をクライアントＰＣ１０１〜１０３に通知する機能を有する。
【００１４】
なお、本プリントシステムに含まれる装置間の通信は、イーサネット（登録商標）ケーブルなどを利用した有線通信でもよいし、電波や光などを利用した無線通信でもよい。
【００１５】
図２は、本実施形態に関わる印刷システムのハードウェア構成を説明するブロック図である。ネットワークプリンタ１０４，１０５（以下、ネットワークプリンタ）は、大きく分けてネットワークプリントサーバ２２０とプリンタコントローラ２１９という、異なる制御系を司る２つのデバイスで構成されている。ネットワークプリントサーバ２２０において、ネットワークプリントサーバ用ＣＰＵ２０１（以下、ＣＰＵ２０１）は、書き換え可能なフラッシュＲＯＭ２０３に記憶された制御プログラムに基づいて各種制御を実現する。例えば、ＣＰＵ２０１は、システムバス２０４に接続されるネットワークコントローラ（ＬＡＮＣ２０５）を用いて、ローカルエリアネットワーク（ＬＡＮ２１２）に接続されたホストコンピュータ等の複数の外部装置（不図示）との通信を制御する。ＣＰＵ２０１は、この通信において所定のネットワーク通信プロトコルを用い、外部装置から送られる印刷データやプリンタ制御命令等の各種データ送受信要求を統括的に制御する。そして、拡張インターフェースコントローラ（ＥＸＰＣ２０７）を介して接続されるプリンタコントローラ２１９に対して適切なデータ転送制御が行なわれる。
【００１６】
ＲＡＭ２０２はＣＰＵ２０１の主メモリ、ワークエリア等の一時記憶領域として用いられる。ＬＥＤ２０６はネットワークプリントサーバの各種動作状態をＬＥＤの点滅パターンや色で示す表示部である。表示される動作状態としては、ネットワークコントローラ（ＬＡＮＣ２０５）とローカルエリアネットワーク（ＬＡＮ２１２）の電気的な接続状態（ＬＩＮＫ）やネットワーク通信モード（１０Ｂａｓｅや１００Ｂａｓｅ、全二重、半二重）等が挙げられる。
【００１７】
さらにネットワークプリントサーバ２２０とプリンタコントローラ２１９を繋ぐ拡張インターフェース２１７は、図示しないコネクタで構成されている。ネットワークプリントサーバ２２０は着脱可能であり、例えばプリント基板によって構成され、同様の構成を持つ別のプリンタにこのネットワークプリントサーバ２２０を装着することも可能となっている。
【００１８】
プリンタコントローラ２１９において、プリンタコントローラ用ＣＰＵ２０８は、システムバス２１１に接続される各種デバイスとのアクセスを統括的に制御する。ＣＰＵ２０８は、ＲＯＭ２０９に記憶された制御プログラム等あるいはディスクコントローラ（ＤＫＣ２１５）を介して接続された外部メモリ２１０に記憶された制御プログラムやリソースデータ（資源情報）等に基づいて上記制御を実現する。例えば、ＣＰＵ２０８は、拡張インターフェースコントローラ（ＥＸＰＣ２１３）を介して接続されるネットワークプリントサーバ２２０から受信される印刷データに基づいてラスタコントローラ２２３に出力画像情報を生成させる。そして、プリンタエンジン２１６に対して、生成した画像信号を出力させる。なお、プリンタエンジン２１６は既知の印刷技術を利用するものである。好適な実施例としては、例えば電子写真方式（レーザービーム方式）やインクジェット方式、昇華方式、熱転写方式等が挙げられる。
【００１９】
ＲＡＭ２１４はＣＰＵ２０８の主メモリ、ワークエリア等として機能するＲＡＭであり、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。操作パネル（操作部）２１８は、ネットワークプリンタ１０４の動作モード等の設定や印刷データの取り消し等の操作をユーザに行うためのボタンを有する。また、ネットワークプリンタ１０４の動作状態を示す液晶パネルやＬＥＤ等の表示部も操作パネル２１８に配されている。なお、外部Ｉ／Ｏインターフェース２２２は外部装置２２１と情報のやり取りを行う。
【００２０】
次に、本プリントシステムのクライアントＰＣ１０１〜１０３内に存在するプルプリントサーバ３０５のソフトウェア構成について説明する。なお、プルプリントサーバのことを複数のソフトウェア機能から構成されるという意味で、サーバシステムと呼ぶこともある。以下では、プルプリントサーバという用語を用いて説明を行う。図３は、プルプリントサーバ３０５におけるソフトウェア構成の一例を示す図である。それぞれの構成間の矢印は、アプリケーションから発行された描画コマンドを含む印刷ジョブが、どのように処理されるかを示したものである。また、各ブロックで示されたソフトウェア構成は、クライアントＰＣ内のＣＰＵ（不図示）が所定の制御プログラムを実行することにより実現される。なお、図３では、ネットワークプリンタ１０４，１０５をプリントデバイス３０６で示している。
【００２１】
通常、Ｍｉｃｒｏｓｏｆｔ  Ｗｏｒｄ（登録商標）などの一般的なアプリケーションプログラム３０１は印刷の指示を受け付けると、一連の描画コマンドをＯＳを介して生成する。この上位からの描画コマンドをＯＳを介して受け取ったＰＤＬ（ページ記述言語）ドライバ３０２は、一連の描画コマンドに基づいてネットワークプリンタ１０４〜１０５で解釈可能なＰＤＬファイルを含む印刷ジョブを生成する。
【００２２】
ＰＤＬドライバ３０２は、プリントデバイス３０６へ印刷ジョブを送信するために、生成した印刷ジョブをスプーラ３０３に渡す。ここではＯＳをＷｉｎｄｏｗｓ（登録商標）と仮定しているのでスプーラ３０３はウィンドウズ（登録商標）スプーラである。ただし、本発明を適用するコンピュータのＯＳはＷｉｎｄｏｗｓ（登録商標）に限定されるものではなく、描画命令を備えるものであれば他のＯＳも適用可能であることは言うまでもない。
【００２３】
スプーラ３０３は、ユーザがユーザインターフェースを介して選択し指示したポートモニタ３０４に印刷ジョブを渡して、ネットワークプリンタ１０４〜１０５等のプリントデバイス３０６に送信させる手順をとる（矢印ａ）。ここでは、ユーザはあらかじめプルプリントサーバ３０５に印刷データを転送するためのポートモニタ３０４（以降、ジョブ制御ポートモニタと略記）を指定して印刷を指示したものとして説明を進める。
【００２４】
プリンタドライバインターフェースを介して設定された用紙サイズ、ステープル指示等の印刷設定情報も、ジョブ制御ポートモニタ３０４に送信される。ジョブ制御ポートモニタ３０４はプリントサービスを行うプルプリントサーバ３０５に印刷ジョブと印刷設定情報を送信する（矢印ｂ）。また、クライアントＰＣ１０１〜１０３においてプルプリントサーバ３０５と別のプルプリントサーバ３０８のジョブ登録アプリケーション３０９はＡＰＩ３１０を介し、プルプリントサーバ３０５に印刷データを投入する（矢印ｇ）。このように上位のアプリケーションが様々な場所に存在する場合に本実施形態を適用することができる。
【００２５】
プルプリントサーバ３０５は、転送された印刷ジョブ及びデバイスの状態を管理する機能を備える。また、プルプリントサーバ３０５は、プリントデバイス３０６から通知されるデバイス状態やジョブの状態などの情報を管理したり、プリントデバイス３０６に対して所定の命令をする機能も備える。これは、複数のプリントデバイス（本例では、ネットワークプリンタ１０４，１０５）のデバイス情報やジョブ情報を管理する機能に相当する。プルプリントサーバ３０５は、印刷データをプリントデバイス３０６に送信する前に、プリントデバイス３０６が持つ印刷ジョブの順序管理機能に印刷の要求を発行する。そして、順序管理機能に基づき印刷実行の順番が到来した場合には、プリントデバイス３０６からの印刷指示により、プリントデバイス３０６に印刷データを送信する（矢印ｃ、ｄ、ｅ）。また、プルプリントサーバ３０５は、印刷中にプルプリントエージェント６０６（図６）で認証情報記録媒体５２１の存在が検知できなくなるとプリントデバイス３０６に対して印刷のキャンセル（停止・中断）を指示する（Ｓ２２０３）。なお、プルプリントサーバ３０５の動作については、後述の図６や図２２で詳しく説明する。
【００２６】
プリントデバイス３０６は、自身の状態をプルプリントサーバ３０５に通知する（矢印ｆ）。例えば、プリントデバイス３０６は、印刷データの完了を確認すると、印刷完了の通知をプルプリントサーバ３０５に対して行う。
【００２７】
プリントマネージャ３０７は、ユーザが、プルプリントサーバ３０５内部で印刷ジョブがどのような状態にあるかを調べたり、印刷ジョブを表示・操作する為のユーザインターフェースを提供したりするプログラムである。プリントマネージャ３０７は、プルプリントサーバ３０５のソフトウェアのインターフェース（ＡＰＩ：Application Program Interface）を介して、プルプリントサーバ３０５と情報・指示をやり取りしている。そして、プリントマネージャ３０７は、やり取りした情報に基づく表示を行う。そして、主に、プルプリントサーバ３０５が管理するプリントデバイス３０６の状態情報をイベントとして取得する機能を備える。イベントの通知の種別としては、トナー残量が少なくなった警告、プルプリントサーバとデバイスとの通信障害、メモリ不足、排紙トレイ満載などのエラー／警告情報の通知や、エラー状態から正常状態に復帰した正常情報の通知などが想定される。またイベントの通知の種別として印刷排紙完了面数、印刷ジョブ終了ステータス等のジョブの進行状況も挙げることもできる。ここでのプルプリントサーバ３０５はネットワークを介して通信可能な各デバイス（印刷装置）の印刷実行中、電力制御状態、障害情報（紙ジャム）等のステータスの通知を受け付ける機能を備える。
【００２８】
更に詳細な処理として、プリントマネージャ３０７はプルプリントサーバ３０５に対してデバイスを指定したイベントを発行する。プルプリントサーバ３０５は発行されたイベントが指定するデバイスのステータスを認識し、監視に基づく結果をプリントマネージャ３０７に通知する。
【００２９】
＜印刷ジョブの流れ＞
次に、図４を用いてアプリケーション３０１からプリントデバイス３０６までの印刷ジョブの流れについて説明する。ここで、図３と同じソフトウェア構成について同じ参照番号を付与している。
【００３０】
図４に示すように、概念的には、ＰＤＬドライバ３０２、スプーラ３０３、ジョブ制御ポートモニタ３０４は、プリントデバイス毎（３０６，３０６Ａ）に用意されている。ＯＳがＷｉｎｄｏｗｓ（登録商標）の場合には、これらをまとめてウィンドウズ（登録商標）プリントシステム４００と称する場合もある。なお、プリントデバイス３０６，３０６Ａはネットワークプリンタ１０５，１０６に対応する。
【００３１】
プルプリントサーバ３０５には、プリントデバイス（３０６，３０６Ａ）に対応する数のプリントキュー４０１、４０１Ａ及び出力ポート４０２、４０２Ａが含まれている。これらのプリントキュー４０１、４０１Ａや出力ポート４０２、４０２Ａは、それぞれ図１０や図１１で示されるような情報によりプルプリントサーバ３０５が管理している。
【００３２】
この出力ポート４０２，４０２Ａには対応する印刷装置のＩＰアドレス又は名前解決（ＤＮＳ：Domain Name System）で使用されるネームが関連付けられている。そして、このＩＰアドレス又はネームに基づき、ジョブのスケジュール要求先やジョブの送信先が特定され、ジョブの送信（出力）が行なわれる。
【００３３】
印刷を行う場合、アプリケーション３０１はプリンタを指定して印刷指示を発行する。この印刷指示に基づいてＰＤＬドライバ３０２によって生成された印刷ジョブがジョブ制御ポートモニタ３０４からプルプリントサーバ３０５に渡される。その印刷ジョブがプルプリントの場合、プルプリントサーバ３０５は当該印刷ジョブをプリントキュー４０１（プルプリント用）に保持する。また、通常プリントの印刷ジョブであった場合、プルプリントサーバ３０５は、当該印刷ジョブをプリントキュー４０１Ａ（通常プリント用）に保持し、出力ポート４０２に印刷ジョブの受け付け指示を出す。つまり、キューへの印刷ジョブ登録で、即時に、スケジュール要求を発行する（図７の７０１）。出力ポート４０２は、印刷するジョブを受け付ける。なお、印刷ジョブがプルプリントか通常プリントかは、ＰＤＬドライバによって提供されるユーザインターフェースによってユーザが設定することができる。
【００３４】
後に詳述するが、プルプリントエージェント６０６（図６）は、認証情報記録媒体５２１（図５）から読み取られる所定の情報を検知する。そして該検知に応じて、ユーザ識別情報とデバイスアドレスを含む情報１３０１（図１３）をプルプリントサーバ３０５に送る。ここでユーザ識別情報とは、ある特定の個人を識別する情報、又は、部門を識別する為の情報を指す。この情報としては、例えば、文字データやビットデータなどを適用できる。プルプリントサーバ３０５は、このユーザ識別情報を含む又は関連付けられた印刷ジョブが１つ又は複数存在する場合に、デバイスアドレスに該当するプリントデバイス３０６にスケジュールの要求を発行する。より詳細には、該当するプリントデバイスのデバイススケジューラに対してスケジュール要求を発行する（図７）。プリントデバイス３０６のデバイススケジューラは、自身が持つスケジューリング機能に基づいて、複数のプルプリントサーバ３０５から受け付けたジョブのスケジューリング処理を行い、プルプリントサーバ３０５に対して印刷指示を発行する。印刷指示を受け付けたプルプリントサーバ３０５は、出力ポート４０２を介してプリントデバイス３０６に印刷データを出力する。
【００３５】
また、印刷中に、プルプリントエージェント６０６において認証情報記録媒体５２１の存在が検知できなくなると、プルプリントサーバ３０５はプリントデバイス３０６に対し印刷ジョブのキャンセルを指示する（後述の図２２のＳ２２０３）。デバイススケジューラはその指示に従い印刷処理をキャンセルし、ジョブの進行状況（例えば印刷排紙完了面数等のジョブ進行状況）をプルプリントサーバ３０５に通知する（図８のＳ８１４）。プルプリントサーバ３０５はその通知された進行状況に基づくジョブ状況情報（印刷又は排紙が完了した印刷面数）を印刷ジョブと対応付けて保持する。このジョブ状況情報とは印刷ジョブについてどれほどまでの印刷が完了しているかを識別する為の情報を指す。つまりプルプリントサーバ３０５が印刷ジョブの再出力開始ページを識別できれば、再出力先ページそのものであっても良いし、印刷が完了しているページであっても良い。そして、再度、認証情報記録媒体５２１がプルプリントエージェント６０６により検知された場合は、プルプリントエージェントから通知されてくるユーザ識別情報に対応して保持してある印刷面数からジョブ出力を開始する。
【００３６】
図５は、本実施形態に係る印刷システムにおけるプリントデバイス３０６内のネットワークプリントサーバ２２０およびプリンタコントローラ２１９の各記憶デバイスに記憶された制御プログラム内のソフトウェア構成を説明するブロック図である。なお、図５中に示されるソフトウェア構成は本発明に係る主要な箇所を示したものであり、勿論、印刷出力処理を行う為のほかのソフトウェア構成も実際には含まれる。また図示された各制御プログラムは、各制御機器のＣＰＵ（ＣＰＵ２０１，２０８）によってプログラムが解析され処理される。
【００３７】
オペレーティングシステム５０１はネットワークプリントサーバ２２０の基本的なデータの入出力制御を統括する。さらに、オペレーティングシステム５０１は、ファイルシステム５０５、拡張インターフェースドライバ５０７、ネットワークインターフェースドライバ５０６を内包している。ファイルシステム５０５は、プログラム／データ記憶部５０８及びライセンス記憶部５０９との入出力制御を行う。拡張インターフェースドライバ５０７は、プリンタコントローラ２１９と拡張インターフェース２１７を介して通信制御を行う。ネットワークインターフェースドライバ５０６は、ＬＡＮＣ２０５を制御し、ローカルエリアネットワーク（ＬＡＮ２１２）の通信媒体を介して不図示のホストコンピュータ等の外部装置と通信を行う。
【００３８】
アプリケーションプログラムインターフェース（ＡＰＩ）５０２は、アプリケーションプログラムに対して上記オペレーティングシステムが備える各種機能を提供する。アプリケーションプログラムとしては、ネットワークプリントサーバ２２０で動作するユーザアプリケーション５０３やプリンタ２００やユーザアプリケーションの登録・管理を行う管理アプリケーション５０４等が挙げられる。また、アプリケーションプログラムインターフェース５０２が提供する機能（ＡＰＩ）は以下のとおりである。データ転送ＡＰＩは、印刷データの送受信機能を提供する。リソース制御ＡＰＩは、ビットマップ画像や表示メッセージ等のリソースデータの入出力制御を行う。プリンタ制御ＡＰＩは、プリンタ２００の再起動や設定値の初期化や設定等の制御を行う。ジョブ制御ＡＰＩは、印刷ジョブの取り消しや再印刷指示などを制御する。プリントサーバ制御ＡＰＩは、ネットワークプリントサーバ２２０の再起動や設定値の初期化や設定、およびアプリケーションプログラムの起動、登録、削除を行う。
【００３９】
プリンタコントローラ２１９のオペレーティングシステム５１２は、プリンタコントローラ２１９の各種処理制御を統括する。オペレーティングシステム５１２は、プリンタエンジン制御部５１４とファイルシステム５１５を含む。プリンタエンジン制御部５１４はプリンタエンジン２１６との通信制御を行う。また、ファイルシステム５１５は、機種依存リソース／プログラム記憶部５１６及びライセンス記憶部５１７との入出力制御を行う。機種依存リソース／プログラム記憶部５１６は、ネットワークプリントサーバ２２０から参照されるビットマップ画像やエラーメッセージ等の機種依存リソース及びネットワークプリントサーバ上で動作する機種依存アプリケーションプログラム等を記憶する。
【００４０】
拡張インターフェース制御部５１３は、拡張インターフェース２１７を介してネットワークプリントサーバ２２０との通信制御を行う。また、拡張インターフェース制御部５１３は、各論理インターフェースを介してネットワークプリントサーバ２２０から要求された命令をオペレーティングシステム５１２に対して転送し、その処理結果をネットワークプリントサーバ２２０に対して返信する。図５では、拡張インターフェース制御部５１３が備える論理インターフェースとして、データ転送論理インターフェース、リソース制御論理インターフェース、プリンタ制御論理インターフェース、ジョブ制御論理インターフェースが示されている。データ転送論理インターフェースは制御種別毎に印刷データの入出力を制御する。リソース制御論理インターフェースは機種依存リソース／プログラム記憶部５１６に記憶された各種データの入出力を制御する。プリンタ制御論理インターフェースは、プリントデバイス３０６の再起動や設定値の初期化や設定等の制御を行う。ジョブ制御論理インターフェースは、印刷ジョブの取り消しや再印刷指示などを制御する。
【００４１】
ネットワークプリントサーバ２２０において、ＵＳＢ制御部５１８は、ＵＳＢケーブル５１９で接続された外部機器である、認証情報読取装置５２０を介し、認証情報記録媒体５２１から認証情報と認証情報記録媒体の存在状態情報を取得する。認証情報は、上述した、印刷ジョブに含めたユーザ識別情報に対応する。また、存在状態情報は、認証情報記録媒体５２１が認証情報読取装置５２０に装着されているか否かを示す。認証情報記録媒体５２１を物理的に検知し、該検知信号を存在状態情報としても認証情報記録媒体５２１の存在、即ち解除されたことを識別できる。この存在状態情報を検知することでユーザ識別情報を入力できない状態、即ち認証情報記録媒体５２１が除去されたことを検知できる。
【００４２】
なお、本実施形態では、ユーザの存在または、ユーザを特定、認証するための装置として、ＵＳＢを介して接続された認証情報読取装置５２０と認証情報記録媒体５２１を用いているがこれに限られるものではない。例えば認証情報読取装置５２０と認証情報記録媒体５２１に代えて、接続式不揮発性記録媒体（ＩＣカード等）、赤外線等によるユーザの検出、静脈認証装置、指紋認証読取装置、角膜認証読取装置、音声認証読取装置等を認証情報取得機器として用いることがでる。従って、図５に示したＵＳＢ制御部５１８は、“ＵＳＢ制御”に限られるものではなく、実装された認証情報取得機器に応じた接続プロトコルを制御する制御部となる。
【００４３】
ネットワーク制御部５１１は、ネットワークインターフェースドライバ５０６がＬＡＮ２１２を介してクライアントＰＣ１０１〜１０３からの通知を受け付けた場合に、受信の通知を受け付ける。ネットワーク制御部５１１は、この通知に基づいて、どのプルプリントサーバ３０５からの通信であるかを判断したり、通信の制御を行ったりすることができる。
【００４４】
ＬＰＤ／ＲＡＷ５１０は、プルプリントサーバ３０５が送信する印刷データを受け付けるプロトコルを制御するモジュールであり、受け付けた印刷データをプリンタコントローラ２１９に渡すことができる。
【００４５】
また、ユーザアプリケーション５０３はプリントコントローラ２１９の機種依存リソース／プログラム記憶部５１６またはネットワークプリントサーバ２２０のプログラム／データ記憶部５０８に格納される。プリントデバイス３０６が起動すると、ＣＰＵ２０１は、プログラム／データ記憶部５０８または５１６に格納されたユーザアプリケーション５０３が持つライセンスと、ライセンス記憶部５０９または５１７が持つライセンスとを比較する。こうして、ＣＰＵ２０１は両者が一致しているかどうかを判断する。一致していた場合は適正アプリケーションプログラムであると判断し、アプリケーションプログラムをネットワークプリントサーバ２２０のＲＡＭ２０２にロードする。
【００４６】
次に、本実施形態のプルプリントを実現するデバイススケジューラ６００とプルプリントエージェント６０６のソフトウェア構成について図６を用いて説明する。
【００４７】
デバイススケジューラ６００及びプルプリントエージェント６０６は、デバイス上のユーザアプリケーション５０３であり、本プリントシステムのスケジューリング機能や、プルプリントサーバ３０５から受け付けた印刷ジョブを管理する管理機能を持つ。
【００４８】
通信接続管理部６０１は、クライアントＰＣ１０１〜１０３の接続状況や、プルプリントサーバ３０５に通知すべき情報を管理する。通信接続管理部６０１は、接続しているクライアントを表すクライアント情報１５０２（図１５）をクライアント管理キュー１５０１で管理する。なお、通信接続管理部６０１は、プログラムアプリケーションインターフェース５０２のデータ転送ＡＰＩ、ネットワークインターフェースドライバ５０６を経由してプルプリントサーバ３０５と通信を行う。
【００４９】
スケジュール管理部６０２は、クライアントＰＣ１０１〜１０３のプルプリントサーバ３０５から受け付けた印刷ジョブのスケジューリングを行う。スケジュール管理部６０２は、ジョブ管理部６０３とデバイス管理部６０４を有する。ジョブ管理部６０３は、クライアントＰＣ１０１〜１０３のプルプリントサーバ３０５が発行したスケジュール要求や、プルプリントサーバ３０５が印刷を要求するジョブを管理する。ジョブ管理部６０３は、プルプリントサーバ３０５が印刷を要求するジョブの情報（図１６のジョブ情報１６０２）をジョブ管理キュー１６０１（図１６）で管理している。デバイス管理部６０４は、プリンタコントローラ２１９からプリンタの状態や受け付けた印刷ジョブの状態を示す情報（イベント）をイベントハンドラ６０５を介して受け付ける。デバイス管理部６０４は、プリンタコントローラ２１９から受け付けたイベントを通信接続管理部６０１やジョブ管理部６０３に通知する。
【００５０】
プルプリントエージェント６０６はＵＳＢ管理部６０７、サーバ通信部６０８、デバイス管理部６０９を有する。ＵＳＢ管理部６０７はＵＳＢ制御部５１８を介して認証情報（ユーザ識別情報）を取得し、サーバ通信部６０８に渡す。デバイス管理部６０９は当該プリントデバイスのアドレス情報等を取得し、サーバ通信部６０８に渡す。サーバ通信部６０８は取得した情報をプルプリントサーバ３０５に送信する。
【００５１】
図７は、クライアントＰＣ１０１〜１０３のプルプリントサーバ３０５が、プルプリントエージェント６０６から認証情報を受け付けた後、プリントデバイス３０６にスケジュール要求を発行し、印刷が終了するまでの処理について示す図である。
【００５２】
プルプリントサーバ３０５は、認証情報を受け付けると、デバイススケジューラ６００とセッション接続を開始する。セッション接続が開始されると、プルプリントサーバ３０５は、自身のクライアント情報（図１５のクライアント情報１５０２に示す内容を含む）を通知する接続要求コマンドをデバイススケジューラ６００に送信する。また、プルプリントサーバ３０５は、デバイススケジューラ６００にジョブ／デバイス状態を通知させるためのイベント登録を要求する。更に、プルプリントサーバ３０５は、デバイススケジューラ６００がスケジュール管理するジョブの情報を取得するジョブリスト取得コマンドを発行し、ジョブリストを取得する。一方、デバイススケジューラ６００は、接続要求を受け付けると、これに含まれるクライアント情報１５０２（図１５）をクライアント管理キュー１５０１（図１５）により登録する。また、デバイススケジューラ６００は、イベント登録の要求を受け付けると、これを該当するクライアント情報（図１５の１５０２）の登録イベントに設定する。更に、デバイススケジューラ６００は、ジョブリスト要求を受け付けると、ジョブ管理キュー１６０１（図１６）に登録されているジョブ情報１６０２のリストを、ジョブリストとしてプルプリントサーバ３０５へ送信する。
【００５３】
次に、プルプリントサーバ３０５が印刷を予約するためのスケジュール要求のコマンドを発行する。スケジュール要求には印刷すべきジョブのジョブ情報１００２（図１０）が付加されている。但し、「ジョブＩＤ」については、図７の「スケジュール要求」に応じて、デバイススケジューラ６００により生成され返信されたものが設定される。
【００５４】
デバイススケジューラ６００はスケジュール要求を受け付けると、ジョブ管理キュー１６０１（図１６）にジョブ情報１６０２（図１６）を登録する。ここで、図１６中のジョブＩＤは図１０におけるジョブＩＤと同じもの、或は、対応するものであり、上に説明したジョブ管理部６０３が発行したものに相当する。ジョブ情報１６０２には、ドキュメント名等の情報が設定される。デバイススケジューラ６００は、当該プリントデバイス３０６が、印刷データを受け付けられるようになったかどうかを判断する（判断方法については後述する）。受け付けられるようになったと判断した場合、ジョブ管理キュー１６０１に従って処理すべきジョブを特定し、その依頼元のプルプリントサーバに当該ジョブのスケジュールＵＰを発行する。なお、クライアント情報１５０２とジョブ情報１６０２の何れにも「クライアントＩＰアドレス」が記録されている。従って、クライアント管理キュー１５０１によって登録されたクライアント情報のうち、どのクライアント情報がジョブの依頼元のクライアントのものであるかは、クライアントＩＰアドレスを参照することで判断できる。このスケジュールＵＰの発行により、印刷データの送信を開始するようにプルプリントサーバ３０５を促す。また、デバイススケジューラ６００は、スケジュールＵＰを発行すると、当該ジョブのジョブ情報１６０２におけるジョブ状態を「スケジュールＵＰ」に更新する。 
プルプリントサーバ３０５は、スケジュールＵＰを受け付けると、ＬＰＤ／ＲＡＷ５１０へ印刷データの転送を開始し、転送が始まるとデバイススケジューラ６００に対して転送開始を通知する。デバイススケジューラ６００は、この転送開始通知を受けると、当該ジョブのジョブ情報１６０２におけるジョブ状態を「転送中」に更新する。
【００５５】
ＬＰＤ／ＲＡＷ５１０は、印刷データを受け付けるとプリンタコントローラ２１９にデータを転送する。プリンタコントローラ２１９は、ＬＰＤ／ＲＡＷ５１０から転送されたデータに基づいて印刷を開始する。プリンタコントローラ２１９は、印刷を開始すると、当該ジョブの印刷状態をデバイススケジューラ６００に通知する。デバイススケジューラ６００は、クライアント情報１５０２（図１５）の登録イベントの情報を基に、プルプリントサーバ３０５にジョブの印刷状態（制御対象のジョブの進行状況）を通知する。
【００５６】
プルプリントサーバ３０５は、ＬＰＤ／ＲＡＷ５１０への印刷データの転送が終了すると、デバイススケジューラ６００に対して転送終了通知を送信する。デバイススケジューラ６００は、転送終了通知を受けると、ジョブ情報１６０２のジョブ状態を「転送済」に更新する。
【００５７】
その後、プリンタコントローラ２１９で印刷処理が終了すると、ジョブの印刷状態として印刷完了の通知をデバイススケジューラ６００に通知する。デバイススケジューラ６００は、クライアント情報１５０２の登録イベントの情報を基に、プルプリントサーバ３０５にジョブの印刷完了を通知する（印刷状態通知）。
【００５８】
プルプリントサーバ３０５は、ジョブの印刷完了を示す印刷状態通知により印刷が完了したことを確認すると、以降はプリントデバイスからの通知は不要となる。従って、プルプリントサーバ３０５は、デバイススケジューラ６００からのイベント通知に関する登録イベントを解除するためのイベント解除要求を発行する。デバイススケジューラ６００は、イベント解除要求を受け付けると、クライアント情報１５０２の登録イベントにイベントを通知しない旨の情報を設定する。
【００５９】
その後、プルプリントサーバ３０５は、デバイススケジューラ６００との接続を終了するための切断要求を発行し、本セッションを終了する。デバイススケジューラ６００は、切断要求を受け付けると、クライアント管理キュー１５０１から該当するクライアント情報を削除し、プルプリントサーバ３０５との処理を終了する。
【００６０】
図８は、本実施形態の概略動作を示す図である。図８を用いて、本実施形態の印刷システムによる動作概略を説明する。
【００６１】
まずＳ８０１において、プルプリントエージェント６０６及びデバイススケジューラ６００の各タスクが初期化される。この初期化処理の中で、デバイススケジューラ６００は、プリンタエンジン制御部５１４にイベントの登録（イベント登録）を行う（Ｓ８０２）。これはプリンタエンジン２１６内でジョブが処理された際のジョブ状態変化や、プリンタにおけるエラーの発生（ジャムやカバーオープン等）などのデバイス状態変化等をデバイススケジューラ６００を介してプルプリントサーバ３０５へ通知するためのものである。上述したようにデバイススケジューラ６００は初期化処理が完了するとイベント待ちのループに入る。また、プルプリントエージェント６０６も初期処理の完了でイベント待ちのループに入る。
【００６２】
プルプリントエージェント６０６は、認証情報記録媒体５２１が認証情報読取装置５２０に挿入されたことを検知すると、認証情報記録媒体５２１に記録されている認証情報を読み込む（Ｓ８０３）。そして、不図示の認証機構によってカード（認証情報記録媒体５２１）のオーナーを特定し、ユーザ識別情報を得る。また、プルプリントエージェント６０６は、プリンタエンジン制御部５１４を経由して当該プリントデバイスの構成情報を取得する（Ｓ８０４）。此処で取得する構成情報とは、用紙残量やトナーの有無と言った消耗品情報と、両面ユニットやステイプル装置（フィニッシャー）の使用可否といった装置情報を含む。
【００６３】
続いて、プルプリントエージェント６０６は、Ｓ８０３で取得したユーザ識別情報とＳ８０４で取得したデバイス構成情報をプルプリントサーバ３０５へ通知する（Ｓ８０５）。本実施形態では、この通知をセッション開始通知と定義する。プルプリントサーバ３０５はセッション開始通知を受け取るとユーザ識別情報及びデバイス構成情報から印刷可能なジョブを選択する。この処理は図１４を用いて後述する。
【００６４】
プルプリントサーバ３０５は印刷を実行するために、まずイベント登録及びジョブのスケジュール予約を行う（Ｓ８０６）。このイベント登録は図７により前述したとおりである。また、スケジュール予約については図１４を用いて後述する。続いて、プルプリントサーバ３０５はデバイススケジューラ６００よりスケジュールＵＰを受信する（Ｓ８０７）。スケジュールＵＰを受信した際のプルプリントサーバ３０５の処理の詳細は図２２により後述する。プルプリントサーバ３０５は、スケジュールＵＰを受信すると、事前に通知されたユーザ識別情報に対応する１つ又は複数の印刷ジョブをプルプリントキューから読込、プリンタエンジン制御部５１４に出力する（Ｓ８０８）。より正確には、プルプリントサーバ３０５はＬＰＤ／ＲＡＷ５１０に印刷データを転送し、ＬＰＤ／ＲＡＷ５１０は印刷データをイメージに展開してプリンタコントローラ２１９へ転送する。
【００６５】
また、プルプリントエージェント６０６は、認証情報記録媒体５２１が取り出され、ユーザ識別情報を入力できなくなったことを検知すると（Ｓ８０９）、該検知に応じた通知をプリントサーバ３０５に行う（Ｓ８１０）。例えば認証情報記録媒体５２１が取り外し検知に応じた通知としてキャンセル指示とジョブ保持指示をプルプリントサーバ３０５に出す。なお、図８中には、「ジョブキャンセル＆保持命令」と記載されているが通知内容としてこれに限定される訳ではない。プルプリントサーバ３０５が印刷ジョブ制御を行うかを識別可能するための通知であれば、例えば、認証情報記録媒体５２１が取り出されたことを示す情報であっても良い。プルプリントサーバ３０５は、Ｓ８１０のプリンタからの通知に応じて、デバイススケジューラ６００にジョブ制御指示としてキャンセル指示を出す（Ｓ８１１）。デバイススケジューラ６００はジョブキャンセル指示を受けると、プリンタエンジン制御部５１４に対しジョブキャンセル指示を出す（Ｓ８１２）。このジョブキャンセル指示を受けてプリンタエンジン制御部５１４は現在印刷中の処理を終了させ、ジョブのキャンセルを実行する。こうしてジョブのキャンセルが実行されると、デバイススケジューラ６００にジョブキャンセルを通知するイベントが発行される（Ｓ８１３）。デバイススケジューラ６００は、プリンタエンジン制御部５１４からジョブキャンセルの通知を受けると、プルプリントサーバ３０５に対して印刷が完了し実際に排紙完了した印刷面数を通知する（Ｓ８１４）。プルプリントサーバ３０５は、通知を受けた印刷面数が当該ジョブの総面数よりも少ない場合は、後に継続した印刷を可能にするべく、当該ジョブを保持する処理を行うが、この詳細については図２２のフローチャートを参照して後述する。
【００６６】
図９は、プルプリントサーバ３０５にプルプリント用のジョブを登録する処理を説明するフローチャートである。
【００６７】
図９（ａ）はアプリケーション３０１からジョブを登録する処理を示している。Ｓ９０１において、アプリケーション３０１はジョブを生成し、プリンタを指定して印刷指示を発行する。９０２において、この印刷指示に基づいてＰＤＬドライバ３０２は、印刷ジョブを生成し、スプーラ３０３を介して印刷所ブをジョブ制御ポートモニタ３０４に渡す。そして、ジョブ制御ポートモニタ３０４は、当該印刷ジョブをプルプリントサーバ３０５に渡す。以下、Ｓ９０３〜Ｓ９０６の処理はプルプリントサーバ３０５の処理である。
【００６８】
即ち、Ｓ９０３において、プルプリントサーバ３０５は、ユーザ識別情報を取得し、Ｓ９０４においてこのユーザ識別情報を印刷ジョブに埋め込む。本実施形態では、プルプリントサーバ３０５は、印刷ジョブに対応するジョブ情報１００２を生成し、これにユーザ識別情報を記述する。なお、ユーザ識別情報は認証情報記録媒体５２１に記録しておく認証情報と同じ情報であり、本実施形態では、不図示のＧＵＩを提供してユーザに情報を入力させることにより認証情報は取得されるものとする。もちろん、識別情報が登録されたＩＣカードからカードリーダによって識別情報を読み取り、ユーザ識別情報として用いるようにしてもよい。
【００６９】
次に、Ｓ９０５で、プルプリントサーバ３０５は、ジョブ状態を「停止」にする。そしてＳ９０６で、プルプリントサーバ３０５は、プル用のプリントキュー４０１に状態を「停止」にしたジョブを留め置く。
【００７０】
また、ジョブの登録方法ではアプリケーション３０１から登録する方法の他にジョブ登録アプリケーション３０９からジョブを登録することも可能である。この場合、ジョブ登録アプリケーション３０９は、図３に示すようにプルプリントサーバ３０５と異なるクライアントＰＣ上に存在していても良い。ジョブ登録アプリケーション３０９には、例えば帳票印刷データを出力するアプリケーションや、カタログ印刷データを出力するカタログ出力アプリケーション等を適用できる。
【００７１】
図９（ｂ）はジョブ登録アプリケーションからジョブを登録する処理を説明するフローチャートである。Ｓ９１１において、ジョブ登録アプリケーション３０９は、ＰＤＬドライバを用いて作成された印刷ジョブを選択する。次に、Ｓ９１２において、ジョブ登録アプリケーション３０９上からユーザ識別情報を取得し、Ｓ９１３においてこのユーザ識別情報を選択された印刷ジョブに埋め込む。例えば、上述したように、ジョブ情報１００２の「ユーザ識別情報」として記述する。なお、このユーザ識別情報は、認証情報記録媒体５２１に記録しておく認証情報と同じ情報である。
【００７２】
次に、Ｓ９１４でジョブの状態を「停止」にする。そして、Ｓ９１５においてＡＰＩ６１０を介して、プル用のプリントキュー４０１にジョブを留め置く。
【００７３】
以上のような登録処理により、ある特定のユーザが作成する複数の印刷ジョブには共通のユーザ識別情報が含まれることになる。このようなユーザ識別情報は、所定のユーザインターフェースを介してユーザから直接入力されるものとしたが、ユーザ識別情報の管理方法はこれに限られるものではない。例えば、メモリカードに記録されたユーザＩＤを読み出し、これをユーザ識別情報として用いてもよい。更に、ユーザＩＤを本実施形態のプルプリントで用いるユーザ識別情報と対応付けて管理しておき、ユーザＩＤの指定に応じて対応するユーザ識別情報を取得して印刷ジョブに関連付けるようにしてもよい。そして、本実施形態では、このユーザ識別情報によりプルプリントにおける印刷ジョブの指定がなされる。なお、上記の登録においてはユーザ識別情報を印刷ジョブ（ジョブ情報）に埋め込んでユーザ識別情報を印刷情報に関連付けているが、リンク情報を用いるなどして関連付けるようにしてもよい。
【００７４】
図１０は、プルプリントサーバ３０５が印刷すべく発行したスケジュール要求に付加されるジョブ情報１００２と、プルプリントサーバ３０５が複数のジョブ情報を管理するために用いるジョブ管理キュー１００１のデータ構成例を示す図である。図１０に示されるジョブ管理キュー及びジョブ情報はプルプリントサーバ３０５側に保持される。ジョブ管理キュー１００１はプルプリント用のプリントキュー４０１に対応する。なお、図示されるジョブ管理キュー１００１では、ジョブ情報そのものではなく、ジョブ情報とのリンクを示すジョブＩＤが管理されている。ここでこのジョブ管理キュー１００１は、上に説明した図８のプリントキュー４０１、４０１Ａに相当させることができる。
【００７５】
ジョブ情報１００２は、プルプリントサーバ３０５が印刷を開始するために発行するスケジュール要求に付加される印刷ジョブの情報である。ジョブ情報１００２において、「ドキュメント名」は当該印刷ジョブのドキュメント名を、「ジョブＩＤ」はジョブ管理部６０３が発行したジョブＩＤを示す。また、このジョブＩＤは、図７等で説明したスケジュール要求に応じてデバイススケジューラ６００からプルプリントサーバ３０５に応答され、プルプリントサーバ３０５により管理される。また、「ユーザ名」はクライアントで印刷を開始したユーザ名を示す。「ページ数」はジョブのページ数を、「ジョブ状態」は印刷ジョブの状況を表す。「ジョブ保持フラグ」は、ジョブキャンセル時に当該ジョブを保持するかを表すフラグである。また、「再印刷開始ページ」には、印刷が中断されたジョブについて、どこまで印刷ジョブが完了したかを示すジョブ進行状況情報に基づいて、当該ジョブの再印刷時の開始ページが登録される。この再印刷開始ページから印刷を再開することにより、処理が中断された印刷ジョブを、その中断位置から再開させることができる。よって、ファースト印刷時は、「再印刷開始ページ」には０が設定されている。「ユーザ識別情報」は上述のとおりである。
【００７６】
ここで「再印刷開始ページ」とは、図８のＳ８１４の印刷進行状況に示す情報に基づき算出されたジョブ状態状況情報に相当する。但し、「再印刷開始ページ」に限られるものではない。再度プリンタ側からユーザ識別情報が入力され、該入力されたユーザ識別情報に対応して読込まれる印刷ジョブの出力開始ページを特定できる情報であれば、他の情報であっても良い。例えば、「再印刷開始ページ」の変わりにＳ８１４の通知情報（ジョブ進行状況情報）をそのまま格納し、再度ユーザ識別情報の入力があった場合に、格納された通知情報に元に再印刷開始ページを算出しても良い。
【００７７】
また、認証情報記録媒体５２１が検知できなくなり、ジョブキャンセルを実行する場合は（後述のＳ２２０３）、まず、ジョブ情報１００２のジョブ保持フラグをＯＮに設定し、当該ジョブをプルプリントサーバ３０５で保持する。また、このとき、ジョブキャンセル時点での印刷完了ページがデバイススケジューラ６００から通知されるので、プルプリントサーバ３０５は通知された値に１をプラスし、ジョブ情報１００２の「再印刷開始ページ」に設定する。再度、認証情報記録媒体５２１が検知されると、プルプリントサーバ３０５は保存されているジョブを再印刷させる。このとき、再印刷は「再印刷開始ページ」に設定されているページから印刷を行う。
【００７８】
「ジョブ状態」は、プリントサーバ３０５が印刷のスケジュール要求を発行してからジョブがプリンタから無くなるまでのジョブの状態を表している。ジョブの状態としては、印刷待機中、スケジュールＵＰ状態、転送中、転送済み、印刷完了などの状態がある。
【００７９】
「ジョブＩＤ」は、印刷データに含まれるジョブのＩＤで、プリントデバイス側からプリンタコントローラ２１９内のジョブ状態をプリントサーバ側に通知する時などに付加させる情報である。
【００８０】
ジョブ管理キュー１００１は、複数のジョブ情報１００２を管理するための管理キューである。上位アプリケーションからの印刷要求を受け付けると、ジョブ情報１００２がジョブ管理キュー１００１に登録される。また、印刷ジョブが印刷終了すると、該当するジョブ情報はジョブ管理キュー１００１から削除される。
【００８１】
一方、印刷のスケジュール要求が発行された場合、ジョブ管理キュー１００１、ジョブ情報１００２に関連して、指定された出力先の情報も管理される。その様子を図１１に示す。図１１は、プルプリントサーバ３０５が管理するプリンタ情報１１０１とポート情報１１０２のデータ構成例を表している。
【００８２】
プリンタ情報１１０１は、プルプリントサーバ３０５が管理するそれぞれのプリントキューの情報を表している。プリンタ情報には、「プリンタ名」などの情報が含まれている。ポート情報１１０２は、ジョブ制御プリンタサービスが管理するそれぞれの出力ポートの情報を表している。ポート情報１１０２には、印刷するデバイスの「ＩＰアドレス」などの情報が含まれる。
【００８３】
なお、後述のＳ１４０２でプリントキュー、出力ポートを特定すると、プルプリントエージェント６０６から送信された情報１３０１（図１３）の内のデバイスアドレスがポート情報１１０２の「ＩＰアドレス」にセットされる。また、プルプリントエージェント６０６から送信された情報の内のデバイス構成はポート情報１１０２の「デバイス構成」にセットされる。
【００８４】
図１２は、プルプリントエージェント６０６で認証情報を検知し、認証情報記録媒体５２１からプルプリントするために必要な情報をプルプリントサーバ３０５に通知するまでの処理を示すフローチャートである。
【００８５】
まず、認証情報読取装置５２０は認証情報記録媒体５２１の状態変化を検知する。認証情報記録媒体５２１の状態変化とは、例えば認証情報読取装置５２０がカードリーダの場合には、認証情報記録媒体５２１（カード）が抜かれた、または、挿入された等の変化を指す。また、例えば認証情報読取装置５２０が認証情報記録媒体５２１を赤外線センサー等で検知する場合、認証情報記録媒体５２１の状態変化とは認証情報記録媒体５２１の存在状態（有無）が変化したかどうかを指す。また、認証情報読取装置５２０にユーザが手等をかざすことにより認証する装置（手のひらの静脈パターンを用いた認証）の場合も、上記と同様である。この場合、例えばプルプリントによる印刷の実行中、手をかざし続けることになる。Ｓ１２０１では、プルプリントエージェント６０６は、上述のような認証情報記録媒体５２１の状態変化の検知を認証情報読取装置５２０から受信する。
【００８６】
認証情報記録媒体５２１の状態の変化が検知され、認証情報記録媒体５２１が存在すると判定された場合、処理はＳ１２０２からＳ１２０３に移行し、プルプリントエージェント６０６は、認証情報記録媒体５２１から認証情報（ユーザ識別情報）を取得する。次にＳ１２０４において、プルプリントエージェント６０６は、当該プリントデバイスから、当該デバイスを特定するためのデバイスアドレスを取得するとともに、デバイスの構成情報を取得（図８のＳ８０４）する。此処で取得する構成情報は、用紙残量やトナーの有無と言った消耗品情報と、両面ユニットやステイプル装置（フィニッシャー）の使用可否といった装置情報を含む。次にＳ１２０５において、プルプリントエージェント６０６は、Ｓ１２０３で取得した識別情報及びＳ１２０４で取得したデバイスアドレス及びデバイス構成情報をプルプリントサーバ３０５に通知する（Ｓ８０５）。
【００８７】
一方、Ｓ１２０２において、認証情報記録媒体５２１が存在しない場合は、認証情報の入力の解除がなされたものとして、処理はＳ１２０６に移行する。Ｓ１２０６では、プルプリントエージェント６０６は、印刷継続フラグに基づき処理を分岐する。この印刷継続フラグは予め認証情報記録媒体５２１に記憶させておき、認証情報読取装置５２０に読み取らせることによりネットワークプリンタ１０４に入力できる。また、ネットワークプリンタ１０４の操作部から設定させるようにしても良いし、或は、印刷ジョブに印刷継続フラグの情報を含ませ、該含ませた印刷継続フラグをネットワークプリンタ１０４が読み込むようにしても良い。
【００８８】
この印刷継続フラグがＯＦＦであった場合はＳ１２０７に移行する。Ｓ１２０７では、印刷ジョブのキャンセル及びジョブの保持命令をプルプリントサーバ３０５に通知する（Ｓ８１０）。なお、図８のＳ８１０で説明したように、Ｓ１２０７の通知は、プルプリントサーバ３０５が印刷ジョブ制御を行うかを識別可能するための通知であればよく、例えば、認証情報記録媒体５２１が取り出されたことを示す情報であっても良い。一方、Ｓ１２０６において、印刷継続フラグがＯＮであった場合は、Ｓ１２０７によるジョブのキャンセルを行わずに処理を終了する。
【００８９】
図１３はプルプリントエージェント６０６がＳ１２０５においてプルプリントサーバ３０５に送る情報のデータ構成例を示す図である。情報テーブル１３０１は、認証情報読取装置５２０で認証情報記録媒体５２１を検知した後にプルプリントエージェント６０６がプルプリントサーバ３０５に送信する情報が登録されている。情報テーブル１３０１の内容は、「デバイスアドレス」、「識別情報」、「デバイス構成情報」、「印刷継続フラグ」である。
【００９０】
「ユーザ識別情報」は、プルプリントの対象となるジョブを特定するために用いる情報を指す。なお、本実施形態では、プルプリントの対象となるジョブを特定するために各々のジョブに関連付けされているジョブの作成者（ユーザ名）を用いるがこれに限られるものではない。ジョブを固有に識別するジョブＩＤやジョブ名を利用してもよい。
【００９１】
「印刷継続フラグ」は、この値がＯＮの場合は、印刷中に認証情報読取装置５２０から記録情報記録媒体５２１が検知できなくなってもジョブをキャンセルせず、そのまま印刷を継続するモードとすることを示す。「印刷継続フラグ」の値がＯＦＦの場合（デフォルトはＯＦＦ）は、記録情報記録媒体５２１が検知できなくなるとジョブがキャンセルされる。
【００９２】
図１４は、クライアントＰＣ１０１〜１０３のプルプリントサーバ３０５が、プルプリントエージェント６０６から図１３に示す情報を受け付けることで実行する印刷データの転送処理を説明するフローチャートである。
【００９３】
Ｓ１４０１において、プルプリントサーバ３０５は、プルプリントエージェント６０６からデバイスアドレス、ユーザ識別情報、デバイス構成情報（図１３）を取得する。次に、Ｓ１４０２において、プルプリントサーバ３０５は、プリントキュー４０１を特定する。そして、Ｓ１４０３において、プルプリントサーバ３０５は、プリントキュー４０１（プルプリント用）に、上記ユーザ識別情報と一致するジョブが留め置かれているかをチェックする。該当するジョブが留め置かれている場合は、Ｓ１４０４において、プルプリントサーバ３０５は、図１１のプリンタ情報１１０１及びポート情報１１０２に、Ｓ１４０１で取得したデバイスアドレスとデバイス構成情報を設定してＳ１４０５に処理を移行する。該当するジョブが留め置かれていない場合は、Ｓ１４０３からＳ１４２０へ進み、プルプリントサーバ３０５は、プルプリントエージェント６０６にエラーを通知し、処理を終了する。
【００９４】
Ｓ１４０５では、プルプリントサーバ３０５は、デバイススケジューラ６００に対しイベント未登録であるか、または、デバイススケジューラ６００から印刷データの転送の開始を指示するスケジュールＵＰのコマンドを受け付けたか、を判断する。イベント未登録の場合は、Ｓ１４０６に移行する。なお、イベント未登録の状態か否かの判定は、例えば、Ｓ１４０７のイベント登録処理が実行済みか否かにより行うことができる。また、スケジュールＵＰのコマンドを受け付けるとＳ１４１０に処理を移行する。
【００９５】
イベント未登録の場合は図７の７０１に示されるやり取りが行われる。まず、Ｓ１４０６において、プルプリントサーバ３０５は、デバイススケジューラ６００に接続するための接続要求コマンドを発行する。接続要求には、自身のＩＰアドレス（クライアントＩＰアドレス）が含まれる。プルプリントサーバ３０５が接続要求を発行すると、プルプリントサーバ３０５の情報がデバイススケジューラ６００のクライアント管理キュー１５０１（図１５）に登録される（図１７により後述する）。この登録により、プルプリントサーバ３０５とデバイススケジューラ６００間で情報のやり取りを行うことが可能となる。次に、Ｓ１４０７では、プルプリントサーバ３０５は、デバイススケジューラ６００に対して、ジョブイベント、デバイスイベントを登録する。この処理により、当該プルプリントサーバ３０５に対応したクライアント情報１５０２の登録イベントに必要なイベントが登録される。ジョブイベントを登録すると、プルプリントサーバ３０５が印刷したジョブや、他のクライアントが印刷したジョブの状態の変化がデバイススケジューラ６００より通知されることになる。また、デバイスイベントを登録すると、プリントデバイス３０６の状態の変化がデバイススケジューラ６００よりプルプリントサーバ３０５へ通知されるようになる。
【００９６】
Ｓ１４０８では、プルプリントサーバ３０５は、デバイススケジューラ６００で管理しているジョブ管理キュー１６０１に登録されているジョブＩＤのリスト（ジョブリスト）を取得する。このジョブリストとジョブイベントにより、デバイススケジューラ６００が管理するジョブの印刷状況を把握することが可能となる。以上の処理により印刷する準備が整う。Ｓ１４０９では、プルプリントサーバ３０５は、デバイスアドレスで特定されるプルプリント用プリントキューからユーザ識別情報が一致する印刷ジョブを選択する。そして、スケジュール要求とともに選択した印刷ジョブのジョブ情報を送ることにより、選択した印刷ジョブをデバイススケジューラに登録させる。そしてＳ１４０５に戻り、次の指示を待機する。なお、Ｓ１４０９によるスケジュール要求により、印刷対象のジョブがデバイススケジューラ６００のジョブ管理キュー１６０１に登録され、管理されることになる。
【００９７】
一方、Ｓ１４０５においてデバイススケジューラから印刷データの転送指示であるスケジュールＵＰのコマンドを受け付けると、処理はＳ１４１０に移行する。Ｓ１４１０では、プルプリントサーバ３０５は、印刷対象のジョブのジョブ情報１００２の「再印刷開始ページ」を印刷ジョブに設定する。Ｓ１４１１では、プルプリントサーバ３０５は、転送指示を受けたジョブの転送を開始する。印刷データの送信が開始されると、Ｓ１４１２において、プルプリントサーバ３０５は、デバイススケジューラ６００に転送が開始されたこと（転送開始状態）を通知する。Ｓ１４１３で印刷データの転送が終了すると、Ｓ１４１４においてプルプリントサーバ３０５は、デバイススケジューラ６００に転送が終了したことを通知する。
【００９８】
図１５は、デバイススケジューラ６００の通信接続管理部６０１が管理するクライアント情報１５０２とクライアント管理キュー１５０１を示す図である。
【００９９】
クライアント情報１５０２は、接続するクライアントＰＣ毎に通信接続管理部６０１が割り振った「クライアントＩＤ」、接続するクライアントＰＣのＩＰアドレスを示す「クライアントＩＰアドレス」を含む。また、クライアント情報１５０２は、接続するクライアントＰＣのプルプリントサーバ３０５が登録したイベントの種類を示す「登録イベント」を含む。イベントの種類とは、プリンタコントローラ２１９が発行するデバイス状態のイベントやジョブ状態のイベントの種類を表す。
【０１００】
クライアント管理キュー１５０１は、接続したプルプリントサーバ３０５のクライアント情報１５０２をキューの形式で保持する。クライアントとのセッションが開始されると、該当するクライアントの情報が本管理キューに登録され、切断すると該当するクライアント情報が削除されるようになっている。
【０１０１】
図１６は、プルプリントサーバ３０５が印刷すべく発行したスケジュール要求に付加するジョブ情報１６０２と、複数発生するジョブ情報を管理するジョブ管理キュー１６０１を示す図である。ジョブ管理キュー１６０１及びジョブ情報１６０２は、プリントデバイス側に保持される。
【０１０２】
ジョブ情報１６０２は、プルプリントサーバ３０５が印刷を開始するために発行するスケジュール要求に付加される印刷ジョブの情報である。このジョブ情報１６０２は、印刷ジョブの「ドキュメント名」、デバイススケジューラ６００のジョブ管理部６０３が発行した「ジョブＩＤ」、プルプリントサーバ３０５で印刷を開始した「ユーザ名」、ジョブの「ページ数」を含む。また、ジョブ情報１６０２には、印刷ジョブの状況を表す「ジョブ状態」、プルプリントサーバ３０５が転送する印刷データに含まれる「ジョブデータＩＤ」、印刷したプルプリントサーバ３０５のＩＰアドレスを示す「クライアントＩＰアドレス」が登録される。
【０１０３】
なお、「ジョブ状態」は、プルプリントサーバ３０５が印刷のスケジュール要求を発行してからジョブがプリンタから無くなるまでの状態を表しており、印刷待機中、スケジュールアップ状態、転送中、転送済み、印刷完了などの状態が存在する。「ジョブデータＩＤ」は、印刷データに含まれるジョブのＩＤで、プリンタコントローラ２１９内でのジョブ状態を通知するときなどに付加させるＩＤである。「ジョブデータＩＤ」はプルプリントサーバ３０５が転送する印刷データに含まれるジョブデータのＩＤである。「ＩＰアドレス」は印刷したクライアントのＩＰアドレスを示す。
【０１０４】
ジョブ管理キュー１６０１は、複数のジョブ情報１６０２を管理するための管理キューである。プルプリントサーバ３０５からスケジュール要求を受け付けると、ジョブ情報１６０２が管理キューに登録される。また、対応する印刷ジョブの印刷が終了すると、該当するジョブ情報が削除されるようになっている。
【０１０５】
次に、図１７のフローチャートにより、プルプリントサーバ３０５からの要求や通知、デバイス管理部６０４からの通知、ジョブ管理部６０３への要求や通知を処理する通信接続管理部６０１による処理を説明する。
【０１０６】
Ｓ１７０１では、通信接続管理部６０１は、プルプリントサーバ３０５やデバイス管理部６０４、ジョブ管理部６０３からの通知や要求を受け付け、どの通知や要求であるかを判断する。
【０１０７】
Ｓ１７０１において受け付けた要求やイベントがプルプリントサーバ３０５からの接続要求であれば、処理はＳ１７０２に移行する。Ｓ１７０２において、通信接続管理部６０１は、クライアント情報１５０２に自身が発行したクライアントＩＤと要求を発したプルプリントサーバ３０５のＩＰアドレスを設定し、クライアント管理キュー１５０１にクライアント情報１５０２を登録する。Ｓ１７０１において受け付けた要求やイベントが、プルプリントサーバ３０５からのイベント登録の場合、処理はＳ１７０３に移行する。Ｓ１７０３において、通信接続管理部６０１は、該当するクライアント情報１５０２の登録イベントに、プルプリントサーバから登録すべく要求された通知すべきイベントの種類を設定する。イベントの種類には、ジョブの状態の変化を通知するジョブイベント、デバイスの状態の変化を通知するデバイスイベントがある。
【０１０８】
Ｓ１７０１において受け付けた要求やイベントがデバイス管理部６０４からのデバイスイベントやジョブ管理部６０３からのジョブイベントであれば、処理はＳ１７０４に進む。Ｓ１７０４では、通信接続管理部６０１は、クライアント管理キュー１５０１に登録された全てのクライアント情報１５０２からクライアント情報の登録イベントの設定を参照し、プルプリントサーバ３０５にイベントを通知すべきかどうかを判断する。通知すべきであると判断した場合には、通信接続管理部６０１は、プルプリントサーバ３０５のＩＰアドレスを保持し、Ｓ１７０５において通知すべき全てのプルプリントサーバ３０５に対してイベントを送信する。
【０１０９】
Ｓ１７０１において受け付けた要求やイベントがプルプリントサーバ３０５からの切断要求であれば、処理はＳ１７０６に移行する。Ｓ１７０６では、クライアント管理キュー１５０１から該当するプルプリントサーバ３０５のクライアント情報１５０２を削除する。 
図１８は、プルプリントサーバ３０５からのスケジュール要求の受け付けから、スケジュールＵＰを発行するまでのスケジュール管理部６０２による処理を説明するフローチャートである。
【０１１０】
Ｓ１８０１において、スケジュール管理部６０２は、プルプリントサーバ３０５からの通知を受け付けると、その通知がスケジュール要求なのか、転送済み状態の通知（図７の転送終了通知）なのかを判断する。スケジュール要求の通知であれば、Ｓ１８０２に処理を移行する。Ｓ１８０２では、スケジュール管理部６０２は、ジョブ管理部６０３で発行したジョブＩＤと、スケジュール要求に付加された情報が設定されたジョブ情報１６０２を作成する。そして、スケジュール管理部６０２は、スケジュール要求を受け付けた順でジョブ管理キューに登録し、処理をＳ１８０３へ進める。一方、転送済み状態の通知であった場合は、処理はＳ１８０１から直接Ｓ１８０３へ進む。
【０１１１】
次に、Ｓ１８０３において、スケジュール管理部６０２は、ジョブ管理キュー１６０１に登録されているジョブ情報１６０２のジョブ状態を確認する。ジョブ状態がスケジュールＵＰ或いは転送中のものがあれば、既にあるプルプリントサーバに印刷データを転送するように指示しているので、スケジュール管理部６０２は、Ｓ１８０１に処理を戻す。一方、ジョブ状態がスケジュールＵＰまたは転送中のものがなければ、プルプリントサーバ３０５から印刷データが送られてくる予定が無い。従って、処理はＳ１８０４に移行し、スケジュール管理部６０２は、スケジュールＵＰの発行の準備を行う。Ｓ１８０４では、スケジュール管理部６０２は、ジョブ管理キュー１６０１で先にスケジュール要求を受け付けた順からジョブを確認し、スケジュール待機中のジョブが見つかるとＳ１８０５に処理を移行させる。Ｓ１８０５では、スケジュール管理部６０２は、該当するクライアントに対して印刷データの転送を開始させるスケジュールＵＰを通知する。そして、Ｓ１８０６において、スケジュール管理部６０２は、該当するジョブ情報１６０２のジョブ状態をスケジュールＵＰ状態に更新し、Ｓ１８０１に処理を移行する。
【０１１２】
図１９は、デバイス管理部６０４からのジョブ状態通知イベントの受け付けと、プルプリントサーバ３０５からのジョブリスト要求の受け付けに対する、ジョブ管理部６０３の処理を示すフローチャートである。
【０１１３】
Ｓ１９０１において、ジョブ管理部６０３は、通信接続管理部６０１やデバイス管理部６０４からの通知を受け付けると、その通知がデバイス管理部６０４からのジョブ状態通知であるか、プルプリントサーバ３０５からのジョブリスト要求であるかを判断する。
【０１１４】
ジョブ状態通知であると判定されると、処理はＳ１９０１からＳ１９０２に移行し、ジョブ管理部６０３は、該当するジョブ情報のジョブ状態を更新する。そして、Ｓ１９０３に処理において、ジョブ管理部６０３は、当該ジョブ状態通知が印刷完了の通知であるかを判断する。印刷完了の通知でなければ、ジョブ管理部６０３は、処理をＳ１９０４に移行し、通信接続管理部６０１にジョブの状態のイベントをクライアントに発行するように通知する。
【０１１５】
一方、Ｓ１９０３で、印刷完了の通知であれば、処理をＳ１９０５に移行する。Ｓ１９０５において、ジョブ管理部６０３は、ジョブ管理キューから該当するジョブを削除する。そして、Ｓ１９０６において、ジョブ管理部６０３は、通信接続接続管理部６０１にジョブの完了イベントをプルプリントサーバ３０５に発行するように通知し、処理をＳ１９０１に戻す。
【０１１６】
Ｓ１９０１において、プルプリントサーバ３０５からのジョブリスト要求の受け付けると、処理はＳ１９０７へ進む。Ｓ１９０７では、ジョブ管理部６０３は、ジョブ管理キュー１６０１に登録されたジョブ情報１６０２のリストを要求元のプルプリントサーバ３０５に送信するように通信接続管理部６０１にジョブ情報リストを通知する。
【０１１７】
尚、別の実施形態としてデバイススケジューラ６００がプルプリントエージェント６０６に対して１ページ印刷するごとに印刷ページを通知するようにしてもよい。そして、プルプリントエージェント６０６はその値を認証情報記録媒体５２１に記録する。このようにすれば、印刷中に突然プリントデバイスの電源がＯＦＦされた場合やネットワークが断線しプルプリントサーバ３０５に印刷面数情報を通知できない場合でも、再印刷時に認証情報記録媒体５２１に記録した印刷面数を元に再印刷を行うことができる。
【０１１８】
図２０は、プリンタコントローラ２１９からのデバイス状態、ジョブ状態通知をイベントハンドラを経由して受け付け、ジョブ管理部６０３や通信接続管理部６０１に通知するデバイス管理部６０４の処理を示すフローチャートである。
【０１１９】
デバイススケジューラ６００が起動すると、Ｓ２００１において、デバイス管理部６０４は、イベントハンドラ６０５を経由してプリンタコントローラ２１９に対してイベントの登録を行う（Ｓ８０２）。ここでは、デバイスの状態が変更した場合や、プリンタコントローラ２１９が処理する印刷ジョブの状態が変更した場合に、それらの状態を通知するようにイベント登録を行う。
【０１２０】
次に、Ｓ２００２では、デバイス管理部６０４は、プリンタコントローラ２１９で発生したイベントをイベントハンドラ６０５経由で受け付ける。イベントを受け付けると、デバイス管理部６０４は、それがジョブのイベントであるかデバイスのイベントであるかを判断する。ジョブのイベントであれば、Ｓ２００３において、デバイス管理部６０４は、ジョブ管理部６０３にジョブイベントを通知し、Ｓ２００２に処理を移行する。 
デバイスのイベントであれば、処理はＳ２００４に移行して、デバイス管理部６０４は、当該デバイスの状態をデバイス管理部６０４で保持する。その後、Ｓ２００５において、デバイス管理部６０４は、通信接続管理部６０１にデバイスイベントを通知し、処理をＳ２００２に移行する。
【０１２１】
図２１は、デバイススケジューラ６００からの通知やコマンドを受け付けた場合のプルプリントサーバ３０５の処理を示すフローチャートである。
【０１２２】
Ｓ２１０１において、プルプリントサーバ３０５は、デバイススケジューラ６００からジョブイベントが通知されたか、ジョブリストが返送されてきたかを判断する。ジョブイベントが通知された場合には、処理はＳ２１０２に移行し、ジョブリストが返送された場合には、処理はＳ２１０８に移行する。プルプリントサーバ３０５は、ジョブリストが返送されてくると、Ｓ２１０８において、プルプリントサーバ３０５が管理するジョブ管理キュー１００１で管理されるジョブ情報１００２にジョブリストから得られたジョブ情報を設定する。
【０１２３】
Ｓ２１０２において、プルプリントサーバ３０５は、デバイススケジューラ６００から通知されたジョブイベント通知が、ジョブ完了通知であるか、ジョブ状態変更通知（ステータス通知）であるかを判断する。ジョブ状態変更通知（ステータス通知）の場合、プルプリントサーバ３０５は、Ｓ２１０９において、該当するジョブ情報１００２のジョブ状態を更新する。
【０１２４】
受け付けたイベント通知がジョブ完了通知であれば、処理はＳ２１０２からＳ２１０３に進む。Ｓ２１０３において、プルプリントサーバ３０５は、該当するジョブ情報を、ジョブ管理キュー１００１から削除する。Ｓ２１０４では、プルプリントサーバ３０５は、ジョブ管理キュー１００１に、印刷が終了していないジョブが残されているかを確認する。印刷が終了していないジョブが残されていれば、まだデバイススケジューラ６００とのやり取りが必要である。そのため、プルプリントサーバ３０５は、デバイススケジューラ６００との接続を継続するために、Ｓ２１０１に処理を移行する。Ｓ２１０４で、自クライアントのジョブがなければ、プルプリントサーバ３０５は、Ｓ２１０５に処理を移行し、デバイススケジューラ６００との接続を終了するための処理を開始する。
【０１２５】
まず、Ｓ２１０５において、プルプリントサーバ３０５は、接続を開始したときにデバイススケジューラ６００に登録したジョブイベント、デバイスイベントの登録解除を依頼する。デバイススケジューラ６００は、この依頼によりクライアント情報１５０２のイベント登録の内容を削除する。このイベント登録の情報がなければ、デバイススケジューラ６００が管理するジョブの状態が変化されてもイベントが通知されてくることはない。次にＳ２１０６において、プルプリントサーバ３０５は、デバイススケジューラ６００に対して切断の要求を発行する。デバイススケジューラ６００が切断要求を受け付けると、クライアント管理キュー１５０１から該当するクライアント情報１５０２を削除する。Ｓ２１０７では、プルプリントサーバ３０５は、デバイススケジューラ６００とのセッションを切断する処理を行い、処理をＳ２１０１に戻して待機状態とする。
【０１２６】
図２２は、プルプリントエージェント６０６からＳ８１０（又はＳ１２０７）に対応した通知を受信した場合のプルプリントサーバ３０５の処理を説明するフローチャートである。Ｓ２２０１で、プルプリントサーバ３０５は、プルプリントエージェント６０６からジョブキャンセル・保持命令（Ｓ８１０（又はＳ１２０７）に対応した通知）を受信すると、処理をＳ２２０２に進める。Ｓ２２０２では、プルプリントサーバ３０５は、Ｓ２２０１で受信した通知に対応するユーザ識別情報の印刷ジョブを対象に、デバイススケジューラ６００にジョブのキャンセルを指示する（Ｓ８１１）。
【０１２７】
図８により上述したように、ジョブのキャンセルが指示されたデバイススケジューラ６００は、プリンタエンジン制御部５１４に対してジョブキャンセル指示を出す（Ｓ８１２）。またそれとともに、プルプリントサーバ３０５に対して印刷ジョブの進行状況を表す印刷面数を通知する（Ｓ８１４）。なお、ここで通知される印刷面数は、当該キャンセル指示によって印刷を終えた時点の印刷済み或は排紙済みとなった面数（＝ページ数）である。プルプリントサーバ３０５は、Ｓ２２０３において、デバイススケジューラ６００からのこの印刷面数の通知を受け取る（Ｓ８１４）。
【０１２８】
Ｓ２２０４では、プルプリントサーバ３０５は、デバイススケジューラ６００から通知された印刷面数情報と当該ジョブの全面数（ジョブ情報１６０２のページ数）を比較する。印刷面数情報と当該ジョブの全面数が一致する場合は、当該ジョブの印刷が完了していると判断し、Ｓ２２０６でジョブ情報１００２のジョブ保持フラグをＯＦＦにする。一致しない場合は、再印刷を行えるようにＳ２２０５でジョブ保持フラグをＯＮにする。ジョブ保持フラグについては図１０で説明した通りである。続いて、Ｓ２２０７で、プルプリントサーバ３０５は、通知を受けた印刷面数（印刷済みの面数）に１をプラスし、ジョブ情報１００２の再印刷開始ページ（ジョブ進行状況情報）にセットする。また、プルプリントサーバ３０５は、スケジュールＵＰ（Ｓ２４０３でＹＥＳと判断される場合）が指示されていない１又は複数のジョブがプリントキュー４０１に保持されている場合には、それらジョブについてジョブ進行状況をゼロと見なす処理を実行する。なお、キャンセルの通知を受けたデバイススケジューラ６００は当該ジョブの削除及び当該ジョブに関するイベント登録の解除を行う（Ｓ１７０６）。
【０１２９】
なお、図２２のフローチャートの説明においては、プルプリントサーバ３０５による印刷ジョブの制御として、ジョブキャンセルを例に説明したが、その他の印刷ジョブ制御にも応用することができる。例えば、プルプリントサーバ３０５からの印刷ジョブ出力を停止し印刷ジョブの実行を一時停止する印刷ジョブ制御にも応用できる。なお、一時停止の印刷ジョブ制御についても、図２２のフローチャートを適用できることは当業者であれば明白であろう。
【０１３０】
以上のように、第１実施形態によれば、クライアントＰＣ（情報処理装置）とプリントデバイス（印刷装置）が通信可能な印刷システムが開示される。このシステムにおいて、プルプリントサーバ３０５は、アプリケーション３０１等で生成された１又は複数の印刷ジョブを、プリントデバイスから送信されてくるユーザ識別情報に基づいて読み込みが可能な形態でプルプリントキューに保持する。ここで、ユーザ識別情報は、あるユーザが生成した印刷ジョブには共通して付与される識別情報であるので、１又は複数の印刷ジョブに共通した識別情報となる。一方、プリントデバイスでは、認証情報読取装置５２０が認証情報記録媒体５２１から認証情報を読み取る。プリントデバイスは、この認証情報を識別情報として用いて要求（Ｓ８０５、Ｓ８０７）を発行する。プルプリントサーバ３０５は、発行された要求を受信し、受信した要求に含まれる識別情報に基づいて１又は複数の印刷ジョブを読込み、該読込まれた印刷ジョブをプリントデバイスへ出力する。
【０１３１】
即ち、第１実施形態によれば、ユーザ識別情報をジョブに関連付けて保存しておき、印刷装置から識別情報を入力し、それをサーバに通知することにより、識別情報に対応したジョブをサーバからダウンロードし印刷出力する。このため、従来のプルプリント方式のようにジョブを印刷装置から直接指定することが不要となる。従って、例えば、毎朝本社から各ユーザＩＤが関連付けられたジョブがサーバに登録され、ユーザが印刷装置に備えられたカードリーダにカードを通すだけで、カードに記録されたユーザＩＤがサーバに通知され、その結果、手軽に印刷ができるようになる。
【０１３２】
なお、上記第１実施形態では、ユーザ識別情報を印刷ジョブに関連付けてプルプリント時の印刷ジョブの指定に用いるがこれに限られるものではない。複数の印刷ジョブに共通して関連付けが可能な情報であればよく、印刷ジョブに与える識別情報そのものであってもよい。
［第２実施形態］
第１実施形態で説明したようなプルプリントシステムにおいて、印刷予約を行なったホストコンピュータが印刷予約到来時あるいは印刷データ送信中にダウンもしくは通信異常が発生する場合がある。このような場合、プリントデバイス３０６（ネットワークプリンタ１０４，１０５）は、そのホストコンピュータからの転送終了通知を待ち続け、他のホストコンピュータからの印刷データの送信処理が延々と待たされてしまう可能性がある。第２実施形態では、このような不具合を解消する構成を説明する。
【０１３３】
図２３は、プルプリントサーバ３０５が、プルプリントエージェント６０６から認証情報を受け付けた後、プリントデバイス３０６にスケジュール要求を発行し、印刷が終了するまでの処理について示す図である。
【０１３４】
プルプリントサーバ３００とデバイススケジューラ６００との間のセッション開始から、プルプリントサーバ３０５がデバイススケジューラ６００から印刷状態通知を受信するまでの手順は図７と同様である。
【０１３５】
図７で説明したように、印刷データの転送が開始されると、デバイススケジューラ６００は、クライアント情報の登録イベントの情報を基に、クライアントにジョブの印刷状態を通知する。更に、第２実施形態では、プルプリントサーバ３０５は印刷データの転送が終了するまでの間、印刷データ転送ステータスの通知間隔に従い、デバイススケジューラ６００に対して転送中（出力中）の通知を行う。なお、この印刷データ転送ステータス通知間隔は、スケジュールＵＰに含まれているものとしてもよいし、予めシステムで設定されたもの（例えば所定の時間間隔）であってもよい。
【０１３６】
以後、プルプリントサーバ３０５からＬＰＤ／ＲＡＷ５１０への印刷データ転送終了の通知から、プルプリントサーバ３０５とデバイススケジューラ６００との間のセッション終了までの手順は図７と同様である。
【０１３７】
次に、デバイススケジューラ６００が上記転送中通知をどのように利用するかを説明する。図２４は、プルプリントサーバ３０５からスケジュール要求を受信し、スケジュールＵＰから印刷処理を完了するまでのデバイススケジューラ６００の処理を示すフローチャートである。
【０１３８】
Ｓ２４０１で、デバイススケジューラ６００は、クライアント１０１〜１０３のプルプリントサーバ３０５からスケジュール要求を受信すると、Ｓ２４０２においてジョブ管理キュー最下位にジョブ情報の登録を行う。Ｓ２４０３では、デバイススケジューラ６００は、ジョブ管理キューに登録されたジョブ情報が存在するかを判断し、ジョブ情報が存在する場合には、処理をＳ２４０４に進める。Ｓ２４０４では、デバイススケジューラ６００は、ジョブ管理キューの最上位に位置するジョブ情報を登録したクライアント（プルプリントサーバ）に対してスケジュールＵＰ要求を送信する。ここで、スケジュールＵＰ要求は、印刷データの送信要求並びに印刷データ転送ステータスの通知間隔情報を含む
Ｓ２４０５では、デバイススケジューラ６００は、印刷データ転送ステータスの受信タイムアウトを計測するためのタイマーを初期化し、スタートさせる。Ｓ２４０６において、デバイススケジューラ６００は、印刷データの転送終了通知の受信判定を行う。転送終了通知を受信していない場合は、Ｓ２４０７に進み、デバイススケジューラ６００は、転送中ステータス（転送中通知）の受信判定を行う。転送中ステータスを受信済の場合には、処理はＳ２４０５に戻り、デバイススケジューラ６００は、タイマーを初期化し、再スタートさせる。一方、転送中ステータスを受信していない場合には、処理はＳ２４０７からＳ２４０８に進み、デバイススケジューラ６００は上記タイマーのタイムアウトを判定する。タイムアウトが発生していない場合には、処理はＳ２４０６に戻る。タイムアウトが発生している場合には、デバイススケジューラ６００は転送ステータスの受信タイムアウトであると判定し、処理をＳ２４０９に進め、当該印刷データの受信処理を中止する。そして、Ｓ２４１０にて、デバイススケジューラ６００は、クライアント１０１〜１０３で動作するジョブ制御プリントサービスに対して当該ジョブが削除（キャンセル）されたことを通知する。その後、Ｓ２４１１に進み、デバイススケジューラ６００は、ジョブ管理キューから当該ジョブ情報を削除し、処理を先頭に戻す。
【０１３９】
Ｓ２４０６において印刷データの転送終了通知が受信済であった場合は、処理はＳ２４１２に進む。Ｓ２４１２では、デバイススケジューラ６００は、プルプリントサーバ３０５に当該ジョブの印刷完了の通知を行う。そして、Ｓ２４１１にて、デバイススケジューラ６００は、ジョブ管理キューの当該ジョブ情報を削除し、処理を先頭に戻す。
【０１４０】
以上のように、第２実施形態によれば、例えば印刷予約を行なったホストコンピュータに印刷データ送信中のダウンや通信異常が発生した場合、デバイススケジューラ６００は転送中通知の受信によりこれを認識することができる。その結果、データ送信中のホストコンピュータのダウンや通信異常によって他のホストコンピュータからの印刷データの送信処理が延々と待たされてしまうような不具合を防止できる。
【０１４１】
［第３実施形態］
上述の第１及び第２実施形態では、プルプリントエージェント６０６による認証情報の検知の有無に応じて、ジョブのキャンセルや一時停止等の印刷ジョブ制御を行う構成を説明した（図１２、図２３）。一方、どのように認証情報記録媒体５２１からの認証情報を検知した場合に、印刷ジョブを制御するかについて、更に別の変形例も想定される。第３実施形態ではそのような変形例について説明を行う。
【０１４２】
例えば、図１２では、Ｓ１２０２において認証情報記録媒体５２１が存在しない場合に、認証情報の入力が解除されたとみなし、プルプリントサーバ３０５に印刷ジョブの制御依頼指示が行われる。しかし、Ｓ１２０２で認証情報記録媒体５２１が存在しないか否かを判定するのではなく、認証情報記憶媒体５２１からの認証情報の検知が新たに、或は、再度行われたか否かの検知を行わせるようにしても良い。例えば、認証情報による認証が取れている状態で、認証情報記録媒体が取り出され、再度認証情報記録媒体の挿入が検知されることにより、認証情報の入力が解除されたとみなすようにしてもよい。
【０１４３】
例えば、図８のＳ８０３で、認証情報読取装置５２０は、認証情報記録媒体５２１が付近にかざされたことを無線通信を介して検知する。この時、認証情報読取装置５２０が認証情報記録媒体５２１を無線通信を介して検知できる距離は１０センチ前後としておけば、付近を通過した人が所有する認証情報記録媒体５２１を誤検知する可能性は低くなる。また、この無線通信にはＲＦＩＤ技術等を利用し実現できる。なお、ＲＦＩＤとは、ＲＡＤＩＯ  ＦＲＥＱＵＥＮＣＹ  ＩＤＥＮＴＩＦＩＣＡＴＩＯＮ  ＳＹＳＴＥＭの略字である。
【０１４４】
また、認証情報読取装置５２０は、一旦、認証情報記録媒体５２１を検知すると所定時間は重複検知をしない。従ってユーザは、認証情報読取装置５２０に一旦、認証情報記録媒体５２１をかざした後、所定時間経過後、再度、認証情報記録媒体５２１を認証情報読取装置５２０にかざすことにより、第１、２実施形態における、認証情報記録媒体５２１の認証情報の入力解除と同様のことを行える。また、無線通信により一旦、認証情報記録媒体５２１からの認証情報を検知すると、それが検知されなくなったのを条件に、再度の認証情報の入力があったと見なしても良い。
【０１４５】
このように、認証情報記録媒体５２１からの認証情報の検知方法を異ならせても、第１、２実施形態の各種処理を実現できる。
【０１４６】
［第４実施形態］
上述の第１乃至３実施形態では、プルプリントエージェント６０６の認証情報の検知態様に応じて、プルプリントサーバ３０５が、ジョブのキャンセルや一時停止等の印刷ジョブ制御を行う場合を説明してきた。しかし、プルプリントエージェント６０６及びプルプリントサーバ３０５の連携により、更に様々な態様の印刷ジョブ制御を行うこともできる。以下では、その具体例を、図２５Ａ，Ｂのフローチャートを用いて以下説明する。
【０１４７】
ここで、図２５Ａ，Ｂの各ステップの処理は、プルプリントサーバ３０５が図１４で説明したＳ１４０６乃至Ｓ１４０９の処理を実行し、少なくともスケジュール要求を行った後に、印刷ジョブ制御を実行する場合の処理とする。また、場合によっては、図１４のＳ１４１０以降（スケジュールＵＰの受信以降）の処理が行われ、印刷ジョブの出力が既に行われている途中に実行される処理とも想定できる。
【０１４８】
＜図２５Ａのフローチャート＞
まず、Ｓ２５０１では、プルプリントサーバ３０５は、図１３で説明した情報を受信したか否かを判定する。この図１３の情報は第１実施形態で説明したように、プルプリントエージェント６０６が認証情報読取装置５２０で認証情報記録媒体５２１を検知したことに応じて、プルプリントサーバ３０５に通知する情報に対応する。例えば、第３実施形態で説明したように、認証情報記録媒体５２１を一旦認識させた後、認証情報記録媒体５２１を再度認識させることにより、Ｓ２５０２以降の処理が実行される。
【０１４９】
次に、Ｓ２５０２で、プルプリントサーバ３０５は、第１実施形態で説明したＳ１４０３と同様に、プリントキュー４０１（プルプリント用）に、図１３に含まれるユーザ識別情報と一致するジョブが留め置かれているかをチェックする。この時、検索対象の印刷ジョブ及び検索結果の印刷ジョブは、共に１以上であってもよい。ユーザ識別情報と一致する１以上のジョブが溜め置かれていない場合、処理はＳ２５０１の判断処理に戻る。一方、ユーザ識別情報と一致する１以上のジョブが溜め置かれている場合には、処理はＳ２５０３に移る。なお、Ｓ２５０３以降の処理は１以上の各ジョブ夫々について個別に行われるものとする。
【０１５０】
Ｓ２５０３では、プルプリントサーバ３０５は、Ｓ２５０２でユーザ識別情報と一致すると判定された１以上のジョブの各々について、ジョブの状態が一時停止中か否か（Ｓ２５１３で停止処理されたジョブであるか否か）を判定する。また、印刷面数は、Ｓ２５０３でユーザ識別情報と一致すると判定された１以上の各々のジョブについて判定する。即ち、Ｓ２５０３以降の各ステップの処理は、Ｓ２５０３でユーザ識別情報と一致すると判定された各々のジョブについて行わせるものとする。
【０１５１】
そして、Ｓ２５０３でＹＥＳと判定すると処理をＳ２５０８に移行する。一方、Ｓ２５０３でＮＯと判定した場合、Ｓ２５０４で、デバイススケジューラ６００から当該ジョブに関して印刷面数の通知を受け取る。ここでの印刷面数はＳ２２０３で説明したものと同様である。
【０１５２】
Ｓ２５０５では、プルプリントサーバ３０５は、Ｓ２２０４と同様にデバイススケジューラ６００から通知された印刷面数情報と当該ジョブの全面数（ジョブ情報１００２或はジョブ情報１６０２のページ数）を比較する。そして、一致している場合には、プルプリントサーバ３０５は、Ｓ２２０６と同様の処理をＳ２５１４で行う。なお、Ｓ２５１４では、既にジョブの印刷が完了していると判断するので、詳しい説明は省略する。一方、Ｓ２５０５でＮＯと判定した場合、Ｓ２５０６及びＳ２５０７で、プルプリントサーバ３０５は、上述のＳ２２０５及びＳ２２０７と同様の処理を行う。なおＳ２５０５で参照されるジョブ情報は基本的に図１０にて説明したものと同様であるが、更に、図１０のジョブ情報に加えて印刷出力先プリンタのデバイスアドレス（図１３に示される情報から取得される）が含まれる。
【０１５３】
Ｓ２５０８では、プルプリントサーバ３０５は、Ｓ２５０１で受信した図１３に含まれるデバイスアドレスが、予め図１０の形式で保存されたジョブ情報に含まれるデバイスアドレスから、変更されているかを判定する。Ｓ２５０８でＹＥＳと判定した場合は、図２５Ｂのフローチャート（Ｓ２５１５以降）へ処理を移行し、プリンタが変更された場合のジョブ制御処理を実行する。また、Ｓ２５０８でデバイスアドレスの一致が確認できれば、プリンタの変更は無しと判定し、Ｓ２５０９で当該デバイスの状態を調査する。
【０１５４】
ここでデバイスの状態は、図１３に含まれる「デバイスアドレス」に基づき、任意のタイミングでプルプリントサーバ３０５がプリンタから取得する。また、任意のタイミングで取得したデバイスの状態をキャッシュとして保持し、取得とは非同期のタイミングでプルプリントサーバ３０５が参照しても良い。
【０１５５】
そして、Ｓ２５０９でデバイス状態が異常と判定された場合、Ｓ２５１２でプルプリントサーバ３０５は、当該印刷ジョブの処理をキャンセルし、Ｓ２５０１に処理を戻す。これにより、例えば、プリントデバイスで用紙無し等が発生し、ユーザが印刷ジョブをキャンセルしたいケースに対応できる。即ち、プリントデバイスで用紙無しが発生した場合に、ユーザは認証情報記録媒体５２１をプリントデバイスに認識させることで、当該ジョブをキャンセルさせることができる。
【０１５６】
一方、Ｓ２５０９でデバイス状態が正常と判定された場合は、Ｓ２５１０において、プルプリントサーバ３０５は、Ｓ２５０２でユーザ識別情報に一致すると判定されたジョブの状態が停止中であるか否かを判定する。この判定は、注目しているジョブの図１０で説明したジョブ情報に含まれる「ジョブ状態」の欄を参照して行うことができる。そして、Ｓ２５１０でＹＥＳと判定された場合（ジョブ状態が停止中を示す場合）には、Ｓ２５１１でプルプリントサーバ３０５からプリンタへのジョブの再出力を行う。一方、Ｓ２５１０でＮＯと判定された場合には、プルプリントサーバ３０５は、注目しているジョブ（Ｓ２５０２でユーザ識別情報に一致すると判定されたジョブ）の状態をＳ２５１３で一時停止にする。ここで、Ｓ２５１１の処理は、図１４のＳ１４１０乃至１４１１に対応し、一方、Ｓ２５１３の処理は、図２２の処理に対応する。このように、図２５のフローチャートによっても、図２２と同様に印刷ジョブのキャンセル及び一時停止のジョブ制御を行える。この処理により、当該ジョブのスケジュールＵＰ待ち、或いは当該ジョブのプリント処理中の任意のタイミングで、ユーザが認証情報記録媒体５２１をプリントデバイスに認識させることで当該ジョブを一時停止させることができる。
【０１５７】
＜図２５Ｂのフローチャート＞
次に図２５Ｂのフローチャートについて詳しく説明する。Ｓ２５０２で該当ジョブが有りと判定され、且つ、図１３の情報が以前とは別のプリンタのプリントエージェントから通知されていれば、Ｓ２５０８でプリンタ変更有りと判定し図２５Ｂのフローチャートの処理を移行する。例えば、ユーザが先に認証情報記録媒体５２１を検出させたプリントデバイスとは異なるプリントデバイスで認証情報記録媒体５２１を検出させた場合に、以前とは別のプリンタのプリントエージェントから通知が発行されることになる。
【０１５８】
まずＳ２５１５では、現在着目しているジョブ情報に含まれるデバイスアドレス（変更前のデバイスアドレス）に対応したプリンタの状態が正常か否かを判定する。ここでジョブの状態の取得方法については、Ｓ２５０９で説明した通りである。Ｓ２５１５でデバイス状態が異常と判定されればＳ２５１６以降で代行印刷処理を、一方、Ｓ２５１５でデバイス状態が正常と判定されればＳ２５１９以降で分散印刷処理を行う。
【０１５９】
＜代行印刷処理＞
最初に代行印刷処理について説明を行う。まず、Ｓ２５１６で、プルプリントサーバ３０５は、変更前のプリンタに対してジョブキャンセルの処理を行う。このジョブキャンセル処理は、図２２で説明したＳ２２０２以降の処理と同様の処理で実現することができる。なお、Ｓ２２０３乃至Ｓ２２０７の処理は、Ｓ２５０４乃至Ｓ２５０７、Ｓ２５１４において実行された処理と同様の処理である。従って、ステップＳ２５１６でＳ２２０３乃至Ｓ２２０７の処理を実行すれば、Ｓ２５０４乃至Ｓ２５０７、Ｓ２５１４の処理が繰り返し実行されることになる。従って、Ｓ２５１６では、Ｓ２２０３乃至Ｓ２２０７の処理を省略することも可能である。
【０１６０】
次に、Ｓ２５１７で、プルプリントサーバ３０５は、ジョブ情報中のデバイスアドレスを、Ｓ２５０８でプリンタ変更有りと判定された変更後の別のプリンタのデバイスアドレスに設定し、ジョブ情報を更新する。このジョブ情報は図１０で説明したものと同様のものであり、第４実施形態では、図２６に示した通りである。例えば変更前のプリンタがデバイスアドレスＡに対応し、変更後のプリンタがデバイスアドレスＢに対応する場合には、プルプリントサーバ３０５が保持するジョブ情報２６０１はジョブ情報２６０２に変更される。
【０１６１】
次に、Ｓ２５１８では、プルプリントサーバ３０５は、更新されたジョブ情報に基づき、印刷出力が行われていない続きのページから印刷出力を行わせるよう代行先のプリンタへジョブを出力する代行出力処理を行う。その後、Ｓ２５０１へ処理を戻す。
【０１６２】
尚、第１実施形態においても、図２２の処理によって印刷が中断された後に、それまで使用していたプリントデバイスとは別のプリントデバイスにより認証情報記録媒体の検出を行わせることで、代行印刷を行わせることができる。即ち、別のプリントデバイスにより認証情報記録媒体の検出を行わせて、図１４のＳ１４１０〜Ｓ１４１４の処理を実行させるようにすれば、ユーザの意思により、任意のプリンタで代行印刷を行わせることができる。そして、上述したように、第４実施形態においても、図１４のＳ１４１０乃至Ｓ１４１４の処理と同様に、ユーザの意思により、任意のプリンタで代行印刷を行わせることができる。
【０１６３】
＜分散印刷処理＞
一方、Ｓ２５１５で正常と判断された場合には、Ｓ２５０８で変更有りと判定された変更後のプリンタに変更前のプリンタに割り当てられたジョブの一部を割り当て、分散印刷を行わせる。具体的には、まず、Ｓ２５１９で、変更前のプリンタに割り当てられたジョブの一部（例えば半分）を別のプリンタで印刷させるジョブを作成する。例えば、変更前のプリンタのジョブの後半ページ（例えば、全ページの半分＋１ページ）を印刷開始ページとするジョブを作成する。
【０１６４】
そして、Ｓ２５２０でＳ２５１９で作成した新たなジョブに対してジョブ情報（図２６）を作成すると共に、対応するジョブ管理キュー（図１０で説明したものに相当）に新規に生成したジョブＩＤを登録する。また、新たに作成されたジョブ情報ではなく、分割されたジョブ情報の印刷範囲（終了印刷ページ）の更新も行う。
【０１６５】
そしてＳ２５１２で、新規に作成したジョブ情報に基づく、ユーザが認証情報記録媒体５２１をかざしたプルプリントエージェントを備えるプリンタに対して、ジョブを出力し、分散印刷を実現する。
【０１６６】
以上のように第４実施形態では、プルプリントサーバ３０５が、プリントデバイス（印刷装置）から、識別情報の入力状態を示す通知を受信したことに応じて種々の印刷ジョブの制御が行われる。例えば、上記通知が示す印刷装置の状態（Ｓ２５０９）、或は、ジョブの状態（Ｓ２５１０）、或は、前記通知の出力元の印刷装置（Ｓ２５０８）に応じて、異なるジョブ制御が行われる。例えば、上記通知により、ジョブ実行の一時停止（Ｓ２５１３）、及び代行印刷処理（Ｓ２５１６〜Ｓ２５１８）、及び分散印刷処理（Ｓ２５１９〜Ｓ２５２１）等の何れかが実行される。
【０１６７】
このように、第４実施形態では、認証情報記録媒体５２１を用いて、印刷ジョブのキャンセル、一時停止を行わせることができる。更に、別のプリントデバイスに認証情報記録媒体５２１を検出させることで、代行印刷や分散印刷を行わせることができる。
【０１６８】
［第５実施形態］
上述の第１乃至第４実施形態では、プルプリントサーバ３０５保持される印刷ジョブにユーザ識別情報を含ませる、又は、関連付けるよう説明してきた。そして、プルプリントエージェント６０６からユーザ識別情報がプルプリントサーバ３０５に通知された場合に、通知されたユーザ識別情報と、印刷ジョブに含まれる、又は、関連付けられた印刷ジョブを特定し出力するよう説明した。
【０１６９】
しかしながら、本願発明における、プルプリントサーバ３０５の１つ又は複数の印刷ジョブの保持のさせ方はこれに限定されない。例えば、図２７に示されるような保持機能により１つ又は複数の印刷ジョブを保持するようにしても良い。以下、図２７について、どのように１つ又は複数の印刷ジョブを保持しているかについて説明する。
【０１７０】
まず、図中のプルプリントサーバ３０５は、図８にて説明した、プルプリントサーバに相当する。図２７中の４０１Ａは、図８のプリントキュー４０１Ａに相当する。
【０１７１】
図中２７０１は、図８におけるＳ８０５の矢印を示す。２７０２は図８の４０１（図８の４０１Ａでは無い）のプルプリントキューに印刷ジョブを蓄積する代わりに、１つ又は複数の印刷ジョブを蓄積する仮想プリントキューに相当する。また、２７０３は別の仮想プリントキューに相当する。
【０１７２】
ここで、第３実施形態特有の部分として、この仮想プリントキュー２７０２，２７０３にユーザ識別情報が関連付けられている点である。図２７では、仮想プリントキュー２７０２に“ユーザ識別情報ｎ”が、仮想プリントキュー２７０３に“ユーザ識別情報ｎ+１”が夫々関連付けらている。そして、プルプリントエージェント６０６から、何れかのユーザ識別情報が通知されてくると、通知されたユーザ識別情報に該当する仮想プリントキューを検索する。なお、プルプリントエージェント６０６からユーザ識別情報が通知される条件については、上述のように、認証情報記録媒体５２１が取り外される場合であることに変わりはない。
【０１７３】
そして、仮想プリントキューが特定されると、該特定された仮想プリントキューに登録された１つ又は複数の印刷ジョブがプリントキュー４０１Ａに登録され、該登録に応じて、デバイススケジューラ６００に対してスケジュール要求が即時発行される。図２５では、“ユーザ識別情報ｎ＋１”が通知されているので、通知された“ユーザ識別情報ｎ+１”に基づき、仮想プリントキュー２７０３が検索される。そして、この仮想プリントキュー２７０３に登録されている１つの印刷ジョブがプリントキュー４０１Ａに登録される。
【０１７４】
以上のように、図２７によれば、印刷ジョブに含まれる、又は、関連付けら得ているユーザ識別情報を用いなくとも、仮想プリントキューのユーザ識別情報を検索するのみで容易に印刷すべき１つ又は複数の印刷ジョブを特定することができる。なお、この第３実施形態でも、第１及び第２実施形態と同様に、印刷ジョブにユーザ識別情報を含ませる、又は、関連付けるようにしても良い。
【０１７５】
このように、印刷装置からの送信されてくるユーザ識別情報に基づき１又は複数の印刷ジョブを読込可能な形態で保持するプルプリントサーバ３０５は、様々な形態で、１つ又は複数の印刷ジョブを保持することができる。
【０１７６】
［他の実施形態］
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０１７７】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１７８】
従って、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【０１７９】
プログラムを供給するための記憶媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤなどを用いることができる。
【０１８０】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１８１】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、該ホームページから本発明のコンピュータプログラムそのもの、もしくは、圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバやｆｔｐサーバ等も本発明の請求項に含まれるものである。
【０１８２】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１８３】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけではない。例えばそのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行う。そして、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１８４】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込ませる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１８５】
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施形態の有機的な組み合せを含む）が可能であり、それらを本発明の範囲から排除するものではない。
【図１】
2011253568.tif 000003
【図２】
2011253568.tif 000004
【図３】
2011253568.tif 000005
【図４】
2011253568.tif 000006
【図５】
2011253568.tif 000007
【図６】
2011253568.tif 000008
【図７】
2011253568.tif 000009
【図８】
2011253568.tif 000010
【図９】
2011253568.tif 000011
【図１０】
2011253568.tif 000012
【図１１】
2011253568.tif 000013
【図１２】
2011253568.tif 000014
【図１３】
2011253568.tif 000015
【図１４】
2011253568.tif 000016
【図１５】
2011253568.tif 000017
【図１６】
2011253568.tif 000018
【図１７】
2011253568.tif 000019
【図１８】
2011253568.tif 000020
【図１９】
2011253568.tif 000021
【図２０】
2011253568.tif 000022
【図２１】
2011253568.tif 000023
【図２２】
2011253568.tif 000024
【図２３】
2011253568.tif 000025
【図２４】
2011253568.tif 000026
【図２５Ａ】
2011253568.tif 000027
【図２５Ｂ】
2011253568.tif 000028
【図２６】
2011253568.tif 000029
【図２７】
2011253568.tif 000030