(57)【要約】【課題】  サーバが印刷実行された時刻からの推測により該印刷ジョブを削除してしまう為に、プルプリントサーバから印刷装置に印刷データを送信した後に印刷装置でエラーが発生した場合など、印刷が適切に完了する前に印刷データが削除されてしまう場合がある。そこで、印刷結果に応じて適切に後処理を行なうプルプリントシステムを提供する。【解決手段】  印刷結果を判定する印刷結果判定手段と、印刷結果判定手段による判定の結果、ＯＫと判定された場合に、印刷データ削除する構成とする。プリントサーバ上にスプールされる印刷データは印刷が実行された印刷装置での印刷結果を元にしている為、不用意に印刷ジョブを消去してしまうという事がなくなり、更には、印刷が成功した時に、タイミングよく確実にジョブを消去できるようになり、サーバの負荷及びメンテナンス負荷を軽減する事が可能。【選択図】  図７
2007025970.tif 000002
【特許請求の範囲】
【請求項１】
印刷データをスプールし管理するプリントサーバと、
前記サーバに印刷実行を指示する印刷実行指示手段とを備え、
前記印刷実行指示手段からの指示に従って、前記プリントサーバに留め置かれた印刷データを印刷出力するプルプリントシステムにおいて、
前記実行された印刷ジョブの印刷結果を検知する印刷結果検知手段と、
印刷結果検知手段によって検知された、印刷結果を判定する印刷結果判定手段とを備え、
前記印刷結果判定手段によって判定された前記印刷結果が成功であった場合に前記印刷ジョブを前記サーバから消去するジョブ消去手段を備えた事を特徴とするプルプリントシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プルプリント印刷システムに関する。
【背景技術】
【０００２】
従来、印刷装置上の操作パネル或いは、印刷装置近傍の操作端末等から、サーバ上の印刷ジョブを印刷するプルプリントシステムが考案されている。このようなプルプリントサーバでは、印刷装置による印刷（プルプリント）が完了したタイミングを知ることができなかっため、その印刷完了後の処理を円滑に行うことができなかった。具体的には印刷実行されたジョブを削除するタイミングを決定する事が出来なかった為、その処理は主にユーザ或いは管理者の指示によるか、或いは一定期間後に自動的に削除されるように構成されていた。しかし、この場合には印刷されていない文書も削除されてしまったり、或いは、一定期間内に大量の印刷ジョブが投入された場合には、サーバの負荷を圧迫する結果となっていた。
【０００３】
また、この問題を解決するために、プルプリントサーバが、印刷装置による印刷が完了する印刷完了時刻を推定できるようにして、その印刷完了推定時刻を元に該印刷された印刷ジョブを削除するシステムが考案されている(特許文献１)。
【特許文献１】特開2004-145554号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術においては、サーバが印刷実行された時刻からの推測により該印刷ジョブを削除してしまう為に、プルプリントサーバから印刷装置に印刷データを送信した後に印刷装置でエラーが発生した場合など、印刷が適切に完了する前に印刷データが削除されてしまう場合があった。
【課題を解決するための手段】
【０００５】
上述した問題を解決するために、本発明は、印刷データをスプールし管理するプリントサーバと、前記サーバに印刷実行を指示する印刷実行指示手段とを備え、前期印刷実行指示手段からの指示に従って、前記プリントサーバに留め置かれた印刷データを印刷出力するプルプリントシステムにおいて、前記実行された印刷ジョブの印刷結果を検知する印刷結果検知手段と、印刷結果検知手段によって検知された、印刷結果を判定する印刷結果判定手段とを備え、前記印刷結果判定手段によって判定された前記印刷結果が成功であった場合に前記印刷ジョブを前記サーバから消去するジョブ消去手段を備えた事を特徴とするプルプリントシステム。
【発明の効果】
【０００６】
本発明によれば、プリントサーバ上にスプールされる印刷データは印刷が実行された印刷装置での印刷結果を元にしている為、不用意に印刷ジョブを消去してしまうという事がなくなり、更には、印刷が成功した時に、タイミングよく確実にジョブを消去できるようになり、サーバの負荷及びメンテナンス負荷を軽減する事が可能となる。
【発明を実施するための最良の形態】
【０００７】
以下、本発明の実施の形態を図面に基づいて説明する。
【０００８】
＜システム構成＞
図１は、本発明の実施形態に係るプリントシステムの全体構成を示すブロック図である。本プリントシステムは、情報処理装置としてのクライアント（コンピュータ）１０１〜１０３と、印刷装置（プリントデバイス）としてのネットワークプリンタ１０４〜１０５とを含み、これらが互いに接続されていることにより、全体としてネットワークを構成している。
【０００９】
クライアント（コンピュータ）１０１〜１０３には、印刷制御プログラムが実行可能に格納されており、本プリントシステムに含まれるネットワークプリンタ１０４〜１０５を管理する機能のほか、ネットワークで使用されるファイルを蓄積したり、ネットワークの使用状態を監視したりする機能を有する。具体的には、クライアント（コンピュータ）１０１〜１０３は、自身により印刷ジョブを作成し、ネットワークプリンタ１０４〜１０５のスケジューラにスケジュール要求を発行する機能、ネットワークプリンタ１０４〜１０５のスケジューラからの指示により、印刷データの転送を開始する機能を有する。
【００１０】
ネットワークプリンタ１０４〜１０５は、クライアント（コンピュータ）１０１〜１０３から、印刷データを含む印刷ジョブを受信し、受信した印刷ジョブを解析して印刷する物理的な装置としてのプリントデバイスである。ネットワークプリンタ１０４〜１０５としては、電子写真方式を採用したレーザービームプリンタやインクジェット方式を採用したインクジェットプリンタや熱転写方式を利用したプリンタ等、あらゆる方式の印刷装置を採用することができる。
【００１１】
また、ネットワークプリンタ１０４〜１０５は、複数のクライアント（コンピュータ）１０１〜１０４からの印刷要求を受け付け、受け付けた印刷要求の順序を決定し、印刷指示を発行する機能、ネットワークプリンタ１０４〜１０５に転送された印刷ジョブ、ネットワークプリンタ１０４〜１０５の状態を監視し、印刷の終了やプリンタ状態をクライアント（コンピュータ）１０１〜１０４に通知する機能を有する。
【００１２】
なお、本プリントシステムに含まれる装置間の通信は、Ethernet（登録商標）ケーブルなどを利用した有線通信でもよいし、電波や光などを利用した無線通信でもよい。
【００１３】
＜プリントサーバ及びクライアントの構成＞
図２は、図１に示したクライアント（コンピュータ）１０１〜１０３のハードウェア構成を説明するブロック図である。
【００１４】
図２において、ＣＰＵ２００は、ＨＤ（ハードディスク）２０５に格納されているアプリケーションプログラム、プリンタドライバプログラム、ＯＳや印刷制御プログラム等を読出して実行し、ＲＡＭ２０２にプログラムの実行に必要な情報、ファイル等を一時的に格納制御を行うための制御手段である。
【００１５】
ＲＯＭ２０１は、基本Ｉ／Ｏプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データを記憶する記憶手段である。ＲＡＭ２０２は、ＣＰＵ２００の主メモリやワークエリア等として機能する一時記憶手段である。
【００１６】
ＦＤ（フレキシブルディスク）ドライブ２０３は、後述する図５に示すように記憶媒体としてのＦＤ２０４に記憶されたプログラム等を本コンピュータシステムにロードするための記憶媒体読み込み手段である。なお、クライアント（コンピュータ）１０１〜１０３は、ＦＤドライブ２０３に代えて、或いはＦＤドライブ２０３と共に、他の記憶媒体読込手段を備えてもよい。他の記憶媒体としては、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＰＣカード、ＤＶＤ、ＩＣメモリカード、ＭＯ、メモリスティック等、コンピュータが読み取り可能なあらゆる記憶媒体が挙げられる。
【００１７】
ＨＤ２０５は、大容量メモリとして機能する外部記憶手段であり、アプリケーションプログラム、プリンタドライバプログラム、ＯＳ、印刷制御プログラム、及び関係プログラム等を格納している。さらに、スプール手段であるスプーラはここに確保される。なお、クライアント（コンピュータ）１０１〜１０３ではスプール手段としてスプーラが確保される。
【００１８】
キーボード２０６は、ユーザがプリントサーバ１０１やクライアント１０７、１０８に対して、デバイスの制御コマンドの命令等を入力指示するための指示入力手段である。
【００１９】
ディスプレイ２０７は、キーボード２０６から入力したコマンドや、プリンタ１０４〜１０５の状態等を表示する表示手段である。尚、実際にはクライアント（コンピュータ）１０１〜１０３上で稼動するオペレーティングシステムを介して表示手段に表示指示がなされ、このオペレーティングシステムに本印刷処理プログラムによりリソースファイルの表示指示が行われ、後述する各表示が実現される。２０８はシステムバスであり、クライアント（コンピュータ）１０１〜１０３としてのコンピュータ内のデータの流れを司るものである。
【００２０】
またインタフェース２０９は、入出力手段であり、プリントサーバ１０１またはクライアント１０７，１０８は、インタフェース２０９を介してネットワーク上の他の装置とのデータのやり取りを行う。
【００２１】
＜メモリマップ等の説明＞
図３は、図２に示したＲＡＭ２０２のメモリマップの一例を示す図であり、印刷制御プログラムが、ＲＡＭ２０２にロードされ実行可能となった状態のメモリマップである。
【００２２】
印刷制御プログラム及び関係データは、予めＦＤ２０４からＨＤ２０５にインストールされて、ＨＤ２０５からＲＡＭ２０２にロードするようにしてもよいしＦＤ２０４から直接ＲＡＭ２０２にロードして実行させてもよい。さらに、印刷制御プログラムをＲＯＭ２０１に記憶しておき、これをメモリマップの一部となすように構成し、直接ＣＰＵ２００で実行することも可能である。また、以上の各装置と同等の機能を実現するソフトウェアをもって、ハードウェア装置の代替として構成することもできる。
【００２３】
印刷制御プログラムは、クライアントにおいては、印刷データを転送したり、印刷ジョブの印刷先の変更を指示したり、印刷順序を変更したりする指示をするための制御を行う。
【００２４】
３０１は基本Ｉ／Ｏプログラムを記憶するための領域である。基本Ｉ／Ｏプログラムは、装置（プリントサーバ１０１またはクライアント１０７，１０８）の電源がＯＮされたときに、ＨＤ２０５からＯＳがＲＡＭ２０２に読み込まれ、ＯＳの動作を開始させるＩＰＬ（イニシャルプログラムローデイング）機能などを有しているプログラムである。
【００２５】
３０２はＯＳ（オペレーティングシステム）を記憶する領域であり、３０３は印刷制御プログラムを記憶する領域である。３０４は、関係データを記憶する領域である。３０５はワークエリアで、ＣＰＵ２００が各種のプログラムを実行するための領域である。
【００２６】
図４は、図２に示したＦＤ２０４のメモリマップの一例を示す図である。図４において、４００はＦＤ２０４のデータ内容であり、データの情報を示すボリューム情報４０１と、ディレクトリ情報４０２と、印刷制御プログラム４０３と、その関係データ４０４を含んでいる。
【００２７】
図５は、本発明の実施形態に関わる印刷システムのハードウェア構成を説明するブロック図である。５００はプリンタで、内部で大きくネットワークプリンタサーバ５２０とプリンタコントローラ５１９からなる異なる制御系を司る機器で構成されている。ネットワークプリントサーバ５２０において、５０１はネットワークプリントサーバ用CPUで、書き換え可能なFlashROM５０３に記憶された制御プログラムに基づいてシステムバス５０４に接続されるネットワークコントローラ(LANC５０５)を介してローカルエリアネットワーク(LAN５１２)に接続されたホストコンピュータ等の複数の外部装置(不図示)と所定のネットワーク通信プロトコルを用いて、前記外部装置から送られる印刷データやプリンタ制御命令等の各種データ送受信要求を統括的に制御し、拡張インタフェースコントローラ(EXPC５０７)を介して接続されるプリンタコントローラ５１９に対して適切なデータ転送制御を行なう。
【００２８】
RAM５０２はCPU５０１の主メモリ、ワークエリア等の一時記憶領域をして用いられる。
【００２９】
LED５０６はネットワークプリントサーバの動作状態を示す表示部として用いられており、例えばネットワークコントローラ(LANC５０５)とローカルエリアネットワーク(LAN５１２)の電気的な接続状態(LINK)やネットワーク通信モード(10Baseや100Base、全二重、半二重)等の各種動作状態をLEDの点滅パターンや色で示すこと可能となっている。
【００３０】
さらにネットワークプリントサーバ５２０とプリンタコントローラ５１９を繋ぐ拡張インタフェース５１７は、図示しないコネクタで構成されておりネットワークプリントサーバ５２０のみが着脱し、同じ構成を持つ別のプリンタ５００にネットワークプリントサーバ５２０を装着することも可能な構成となっている。
【００３１】
プリンタコントローラ５１９において、５０８はプリンタコントローラ用CPUで、ROM５０９に記憶された制御プログラム等あるいはディスクコントローラ(DKC５１５)を介して接続された外部メモリ５１０に記憶された制御プログラムやリソースデータ(資源情報)等に基づいてシステムバス５１１に接続される各種デバイスとのアクセスを統括的に制御し、拡張インタフェースコントローラ(EXPC５１３)を介して接続されるネットワークプリントサーバ５２０から受信される印刷データを基にラスタコントローラ５１２によって出力画像情報を生成し、プリントエンジン５１６に対して画像信号を出力する。
【００３２】
５１４はCPU５０８の主メモリ、ワークエリア等として機能するRAMで、図示しない増設ポートに接続されるオプションRAMによりメモリ容量を拡張することができるように構成されている。
【００３３】
５１８は操作パネル（操作部）でプリンタ５００の動作モード等の設定や印刷データの取り消し等の操作を行なうためのボタンおよびプリンタ５００の動作状態を示す液晶パネルやLED等の表示部が配されている。
【００３４】
なお、本図で示したプリンタエンジン５１６は既知の印刷技術を利用するものであり、好適な実施系として例えば電子写真方式(レーザービーム方式)やインクジェット方式、昇華方(熱転写)方式等が挙げられる。
【００３５】
５１９は外部装置５２０と情報のやり取りを行う外部I/Oインタフェースである。
【００３６】
次に、本プリントシステムのクライアントのソフトウェア構成について説明する。図６は、クライアント１０１〜１０３におけるソフトウェア構成の一例を示す図である。（図６中、Windowsは登録商標です。図７においても同様）それぞれの構成間の矢印は、アプリケーションから発行された描画コマンドを含む印刷ジョブが、どのように処理されるかを示したものである。また、各ブロックで示されたソフトウェア構成は、図２のＣＰＵ２００によって実行され、所望の機能を実現する。
【００３７】
通常、文書作成ソフトなどの一般的なアプリケーションプログラム６０１は印刷の指示を受け付けると、一連の描画コマンドをＯＳを介して生成する。ＯＳを介して生成された描画コマンドを受け取ったＰＤＬドライバ６０２は、一連の描画コマンドに基づいてネットワークプリンタ１０４〜１０５で解釈可能なＰＤＬファイルを含む印刷ジョブを生成する。なお、以下の説明ではＰＤＬドライバを例に説明を行うが、これに限定されるものではなく、例えば、ＢＤＬ（Ｂａｎｄ  ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）や、圧縮ビットマップを作成するプリンタドライバ、或いは、アプリケーション及びＯＳによりプリンタドライバを介さずに印刷データを生成する形態などにも適用可能であることはいうまでもない。
【００３８】
ＰＤＬドライバ６０２は、プリントデバイスへ印刷ジョブを送信するためにスプーラ６０３に渡す。
【００３９】
ここではＯＳをウィンドウズ（登録商標）と仮定しているのでスプーラ６０３はウィンドウズ（登録商標）スプーラである。ただし、本発明を適用するコンピュータのＯＳはＷｉｎｄｏｗｓ（登録商標）に限定されるものではなく、描画命令を備えるものであれば他のＯＳも適用可能であることは言うまでもない。
【００４０】
スプーラ６０３は、ユーザがユーザインタフェースを介して選択し指示したポートモニタ６０４に印刷ジョブを渡して、ネットワークプリンタ１０４〜１０５等のプリントデバイスに送信させる手順をとる（矢印ａ）。
【００４１】
ここでは、ユーザはあらかじめプルプリントサーバ６０５に印刷データを転送する、ポートモニタ６０４（以降、ジョブ制御ポートモニタと略記）を指定して印刷を指示したものとして説明を進める。
【００４２】
また、プリンタドライバインタフェースを介して設定された用紙サイズ、ステープル指示等の印刷設定情報も、ジョブ制御ポートモニタ６０４に送信される。ジョブ制御ポートモニタ６０４はプリントサービス６０５（以降、プルプリントサーバと称する）に送信する（矢印ｂ）。
【００４３】
また、クライアント１０１〜１０３においてプルプリントサーバ６０５と別のクライアント６０８のジョブ登録アプリケーション６０９はＡＰＩ６１０を介し、プルプリントサーバ６０５に印刷データを投入する。（矢印g）
プルプリントサーバ６０５は、転送された印刷ジョブ及びデバイスの状態を管理する機能を備える。また、プリントデバイスから通知されるデバイス状態やジョブの状態などの情報を管理したり、また、プリントデバイスに対して所定の命令をする機能も備える。これは、複数のネットワークプリンタ１０４〜１０５のデバイス情報やジョブ情報を管理する機能に相当する。
【００４４】
そして、印刷データをプリンタデバイス６０６に送信する前に、プリンタデバイス６０６が持つ印刷ジョブの順序管理機能に印刷の要求を発行し、順序管理機能に基づき順番が到来した場合には、プリンタデバイス６０６からの印刷指示により、ネットワークプリンタ１０４〜１０５に印刷データを送信する（矢印ｃ、ｄ、ｅ）。
【００４５】
プリンタデバイス６０６は、印刷データの完了を確認すると印刷完了の通知をプルプリントサーバ６０５に通知（矢印ｆ）したり、また、プリンタデバイス６０６の状態を通知する（矢印ｆ）。
【００４６】
プリントマネージャ６０７は、ユーザが、プルプリントサーバ６０５内部でプリントジョブがどのような状態にあるかを調べたり、プリントジョブを操作したりするためのユーザインタフェースを提供するプログラムである。プリントマネージャ６０７は、プルプリントサーバ６０５のソフトウェアのインタフェース（ＡＰＩ：Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）を介して、プルプリントサーバ６０５と情報・指示をやり取りしている。
【００４７】
そして、主に、プルプリントサーバ６０５が管理するネットワークプリンタ１０４〜１０５の状態情報をイベントとして取得する機能を備える。イベントの通知の種別としては、トナー残量が少なくなった警告、クライアントとデバイスとの通信障害、メモリ不足、排紙トレイ満載などのエラー／警告情報の通知や、エラー状態から正常状態に復帰した正常情報の通知などが想定される。ここでのプルプリントサーバ６０５はネットワークを介して通信可能な各デバイス（印刷装置）の印刷実行中、電力制御状態、障害情報（紙ジャム）等のステータスの通知を受け付ける機能を備える。
【００４８】
更に詳細な処理としては、プリントマネージャー６０９がプルプリントサーバ６０５に対してデバイスを指定したイベントを発行し、プルプリントサーバ６０５は発行されたイベントに基づくデバイスのステータスを認識して、監視に基づく結果をプリントマネージャー６０９に通知する。
【００４９】
＜印刷ジョブの流れ＞
次に、図７を用いてアプリケーション６０１からプリントデバイスまでの印刷ジョブの流れについて説明する。ここで、図６と同じソフトウェア構成について同じ参照番号を付与しており、その機能については詳説しない。
【００５０】
図７に示すように、概念的には、ＰＤＬドライバ６０２、スプーラ６０３、ジョブ制御ポートモニタ６０４は、プリントデバイス１０４〜１０５ごとに用意されている。ＯＳがウィンドウズ（登録商標）の場合には、これらをまとめてウィンドウズ（登録商標）プリントシステム７００と称する場合もある。
【００５１】
プルプリントサーバ６０５には、プリントデバイス１０４〜１０５に対応する数のプリントキュー７０１、７０１Ａ及び出力ポート７０２、７０２Ａが含まれている。これらのプリントキューや出力ポート７０２、７０２Ａは、それぞれ１８０１、１８０２に示されるようなテーブルでプルプリントサーバ６０５が管理している。
【００５２】
この出力ポートには対応する印刷装置のＩＰアドレス又は名前解決（ＤＮＳ：Ｄｏｍａｉｎ  Ｎａｍｅ  Ｓｙｓｔｅｍ）で使用されるネームが関連付けられている。そして、このＩＰアドレス又はネームに基づき、ジョブのスケジュール要求先やジョブの送信先が特定されジョブの送信（出力）が行なわれる。
【００５３】
印刷を行なう場合、アプリケーション６０１はプリンタを指定して印刷指示を発行する。この印刷指示に基づいてＰＤＬドライバ６０２によって生成された印刷ジョブがジョブ制御ポートモニタ６０４からプルプリントサーバ６０５に渡されると、その印刷ジョブ情報は、まずプリントキュー７０１に保持され、出力ポート７０２に印刷ジョブを受け付け指示を出す。出力ポート７０２は、印刷するジョブを受け付けると、出力ポートに設定されたＩＰアドレスに該当する、プリンタデバイス６０６の後述するスケジューラに対してスケジュールの要求を発行する。プリンタデバイス６０６の後述するスケジューラは、自身が持つスケジューリング機能に基づいて、複数のプルプリントサーバ６０５から受け付けたジョブのスケジューリング処理を行い、出力ポート７０２に対して印刷指示を発行する。印刷指示を受け付けた出力ポート７０２はプリンタデバイス６０６に印刷データを送信する。
【００５４】
図８は、本発明の実施形態に好適な印刷システムにおけるプリンタ５００内の制御機器であるネットワークプリントサーバ５２０およびプリンタコントローラ５１９の各記憶デバイスに記憶された制御プログラム内のソフトウェア構成を説明するブロック図である。
【００５５】
なお上記各制御プログラムは各制御機器のCPUによってプログラムが解析され処理される。
【００５６】
８０１はネットワークプリントサーバ５２０の基本的なデータの入出力制御を統括するオペレーティングシステムである。さらに前記オペレーティングシステム８０１内にはプログラム/データ記憶部５０９との入出力制御を行なうファイルシステム８０５、プリンタコントローラ５１９と拡張インタフェース５１７を介して通信制御を行なう拡張インタフェースドライバ８０７、ローカルエリアネットワーク(LAN５１２)の通信媒体を介して不図示のホストコンピュータ等の外部装置と通信を行なうネットワークインタフェースドライバ８０６を内包している。
【００５７】
８０２はアプリケーションプログラムインタフェース(API)であり、ネットワークプリントサーバ５０２で動作するユーザアプリケーション８０３やプリンタ５００やユーザアプリケーションの登録・管理を行う管理アプリケーション等のアプリケーションプログラムに対して前記オペレーティングシステムが備える各種機能を提供する。また前記アプリケーションプログラムインタフェース８０２で提供される機能は、印刷データの送受信機能を提供するデータ転送API、ビットマップ画像や表示メッセージ等のリソースデータの入出力制御を行なうリソース制御API、プリンタ５００の再起動や設定値の初期化や設定等の制御を行なうプリンタ制御API、印刷ジョブの取り消しや再印刷指示などを制御するジョブ制御API、ネットワークプリントサーバ５２０の再起動や設定値の初期化や設定、およびアプリケーションプログラムの起動、登録、削除を行なうプリントサーバ制御APIを備える。
【００５８】
８１２はプリンタコントローラ５１９の各種処理制御を統括するオペレーティングシステムであり、内部にプリントエンジンとの通信制御を行なうプリントエンジン制御部８１４およびネットワークプリントサーバ５２０から参照されるビットマップ画像やエラーメッセージ等の機種依存リソースおよびネットワークプリントサーバ上で動作する機種依存アプリケーションプログラム等を記憶する機種依存リソース/プログラム記憶部との入出力制御を行なうファイルシステム８１５を内包している。
【００５９】
８１３は拡張インタフェース制御部であり、拡張インタフェース５１７を介してネットワークプリントサーバ５２０との通信制御を行なう。さらに前記拡張インタフェース制御部は、制御種別毎に印刷データの入出力を制御するデータ転送論理インタフェース、機種依存リソース/プログラム記憶部５０９に記憶された各種データの入出力を制御するリソース制御論理インタフェース、プリンタ５００の再起動や設定値の初期化や設定等の制御を行なうプリンタ制御論理インタフェース、印刷ジョブの取り消しや再印刷指示などを制御するジョブ制御論理インタフェースを備えており、各論理インタフェースを介してネットワークプリントサーバ５２０から要求された命令をオペレーティングシステム８１２に対して転送し、その処理結果をネットワークプリントサーバ５２０に対して返信する。
【００６０】
８１８はＵＳＢ制御部でありＵＳＢケーブルをで接続された外部機器である、認証情報読み取り装置８２０を介し、認証情報記録媒体８２１から認証情報と認証情報記録媒体の存在状態情報を取得する。
【００６１】
８１１は、ネットワークインターフェースドライバ８０６がＬＡＮ５１２を介してクライアント１０１〜１０３からの通知を受け付けると受信の通知を受け付けるネットワーク制御部であり、どのクライアントからの通信を判断することや、通信の制御を行うことができるモジュールである。
【００６２】
８１０は、クライアントが送信する印刷データを受け付けるプロトコルを制御するモジュールであり、受け付けた印刷データをプリンタコントローラに渡すことができる。
【００６３】
また、アプリケーション８０３はプリントコントローラ５１９のプログラム記憶部８１６またはネットワークプリントサーバ５２０のプログラム記憶部８０８に格納される。プリンタ５００が起動するとプログラム記憶部８０８または、に格納されたアプリケーションが持つライセンスと、ライセンス記憶部８０９やプログラム記憶部８１６やライセンス記憶部８１７が持つライセンスと比較し一致しているかどうかを判断する。一致していた場合は適正アプリケーションプログラムであると判断し、アプリケーションプログラムをネットワークプリントサーバ５２０のRAM５１４にロードされる。
【００６４】
次に、本プリントシステムのスケジューリング機能やクライアント１０１〜１０３から受け付けた印刷ジョブの管理機能を持つデバイス上のユーザアプリケーションであるデバイススケジューラ９００とプルプリントエージェント９０６のソフトウェア構成について説明する。
【００６５】
図９は、プリンタのユーザアプリケーションのソフトウェア構成の例を示す図である。
【００６６】
９０１は、印刷するクライアント１０１〜１０３の接続状況や、クライアントに通知すべき情報を管理する通信接続管理部９０１であり、接続しているクライアント情報１００２をクライアント管理キューで管理する。通信接続管理部９０１は、プログラムアプリケーションインターフェース８０２のデータ転送ＡＰＩ、ネットワークインターフェースドライバ８０６を経由してクライアントと通信を行う。
【００６７】
９０２は、クライアント１０１〜１０３から受け付けた印刷ジョブのスケジューリングを行うスケジュール管理部であり、ジョブ管理部９０３、デバイス管理部９０４を持つ。
【００６８】
９０３は、クライアント１０１〜１０３が発行したスケジュール要求や、クライアント１０１〜１０３が印刷したジョブを管理するジョブ管理部９０３である。ジョブ管理部９０３は、クライアントが印刷するジョブの情報１１０２をジョブ管理キュー１１０１で管理している。
【００６９】
９０４は、プリンタコントローラ５１９が持つプリンタの状態や受け付けた印刷ジョブの状態をイベントハンドラ９０５経由で受け付けるデバイス管理部であり、プリンタコントローラ５１９から受け付けたイベントを通信接続管理部９０１やジョブ管理部９０３に通知する。
【００７０】
９０７はＵＳＢ管理部であり８１８ＵＳＢ制御部を介し、認証情報（ジョブ情報等）を取得しサーバ管理部９０８に渡す。９０９はデバイスのアドレス情報等を取得しサーバ管理部９０８に渡す。サーバ管理部９０８は取得した情報をプルプリントサーバ６０５に送信する。
【００７１】
図１０は、本発明の好適な実施例の概略を示すアクティビティ図である。
【００７２】
本図を用いて、本発明の実施例である印刷システムの動作概略を説明する。
【００７３】
まずステップＳ１００１において、プルプルプリントエージェント９０６及びデバイススケジューラ９００の各タスクが初期化される。
【００７４】
初期化処理の中でデバイススケジューラ９００はステップＳ１００２において、プリンタエンジンにイベントの登録を行なう。これは、プリンタエンジン内でジョブが処理された際のジョブ状態変化や、或いは、プリンタのジャムやカバーオープンと言ったエラーなどのデバイス状態変化等を登録したクライアント(デバイススケジューラ９００)へ通知するためのものである。初期化処理が完了するとプルプリンタエージェント９０６及びデバイススケジューラ９００はイベント待ちのループに入る。
【００７５】
ステップＳ１００３において、プルプリンタエージェント９０６は、認証情報記録媒体８２１が認証情報読取装置８２０に挿入された事を検知すると、認証情報記録媒体８２１に記録されている認証情報を読み込み、不図示の認証手段によってカードのオーナーを特定し、ジョブ識別情報を得る。
【００７６】
続いてステップＳ１００４において、プリンタエンジン制御部８１４を経由してデバイスの構成情報を取得する。此処で取得する構成情報は、用紙残量やトナーの有無と言った消耗品情報と、両面ユニットやステイプル装置(フィニッシャー)の使用可否といった装置情報を含む。
【００７７】
プルプリンタエージェント９０６は続いてステップＳ１００５で前記ステップＳ１００３で取得したジョブ識別情報とステップＳ１００４で取得したデバイス構成情報をプルプリントサーバ６０５へと通知する。この通知を印刷開始通知と定義する。プルプリントサーバ６０５は印刷開始を受け取るとジョブ識別情報及びデバイス構成情報から印刷可能なジョブを選択する。この処理は図１６を用いて後述する。
【００７８】
プルプリントサーバ６０５は印刷を実行するために、まずステップＳ１００６においてＥｖｅｎｔ登録及びジョブのスケジュール予約を行なう。このＥｖｅｎｔ予約は前述のステップＳ１００２と同様である。また、スケジュール予約は図１６を用いて後述する。続いてステップＳ１００７でスケジュールＵＰを受ける。スケジュールＵＰを受ける時の処理は図２２で後述する。ステップＳ１００７でスケジュールＵＰを受けるとＳ１００８でジョブを送信する。
【００７９】
プルプリントエージェント９０６は、ステップＳ１００９で記録媒体が取り出されるとそれを検知し、ステップＳ１０１０でジョブキャンセル指示とジョブ保持指示をプルプリントサーバ６０５に出す。プルプリントサーバ６０５はステップＳ１０１１でデバイススケジューラ９００にジョブキャンセル指示を出す。デバイススケジューラ９００はジョブキャンセル指示を受けるとＳ１０１２でプリンタエンジン制御部８１４に対しジョブキャンセル指示を出す。デバイスでジョブがキャンセルが実行されるとＳ１０１３でＥｖｅｎｔでジョブキャンセル終了の通知を受けデバイススケジューラ９００はプルプリントサーバ６０５に対し印刷完了と印刷面数を通知する。プルプリントサーバ６０５では通知を受けた印刷面数がジョブの総面数よりも少ない場合は、ジョブを保持する。この処理については図１８で後述する。
【００８０】
図１１は、プルプリントサーバ６０５にプルプリント用のジョブを登録する処理を示した図である。
【００８１】
ステップＳ１１０１で、アプリケーション６０１でジョブを生成する。次に、アプリケーション６０１はプリンタを指定して印刷指示を発行する。この印刷指示に基づいて、ステップ１１０２で、ＰＤＬドライバ６０２によって生成された印刷ジョブをジョブ制御ポートモニタ６０４に渡される。
【００８２】
ステップＳ１１０３でジョブ識別情報を取得し、ステップＳ１１０４で印刷ジョブにこの情報を埋め込む。ジョブ識別情報は認証記憶媒体８２１に記録しておく情報と同じ物であり、この情報は、不図示のＧＵＩでユーザが情報を入力することにより取得できる。
【００８３】
ステップＳ１１０５でジョブの状態を「停止」にする。Ｓ１１０６でプル用プリンタキューに状態を「停止」にしたジョブを留め置く。
【００８４】
また、ジョブの登録方法ではアプリケーション６０１から登録する方法と他に不図示のジョブ登録アプリケーション６０９からジョブを登録することも可能である。この場合は、ジョブ登録アプリケーション６０９はプルプリントサーバ６０５と異なるクライアントＰＣ上に存在していても良い。
【００８５】
ジョブ登録アプリケーション６０９からジョブを登録するためには、ステップＳ１１０７でＰＤＬドライバを通したジョブを作成し、ジョブ登録アプリケーション６０９から作成したジョブを選択する。次にＳ１１０９でジョブ登録アプリケーション６０９上からジョブ識別情報を指定する。この情報は、認証記憶媒体８２１に記録しておく情報と同じ物とする。次にステップＳ１１１０でジョブの状態を「停止」にする。次にＳ１１０６でＡＰＩ６１０を介し、プル用プリンタキューにジョブを留め置く。
【００８６】
図１２は、プルプリントエージェント９０６で認証情報を検知し、認証情報記録媒体８２１からプルプリントするために必要な情報をプルプリントサーバ６０５に通知するまでの処理について図示したものである。
【００８７】
ステップＳ１２０１では、認証情報読み取り装置８２０が認証情報記録媒体８２１の状態変化を検知し、認証情報記録媒体８２１の状態変化した場合にその変化を検知する。認証情報記録媒体８２１の状態の変化とは、認証情報読み取り装置８２０がカードリーダ等の場合は、カードが抜かれた、または、差された等の変化情報である。また、認証情報読み取り装置８２０で認証情報記録媒体８２１をセンサー検知する場合は、認証情報記録媒体８２１の存在が変化したかどうかの変化情報である。また、認証情報読み取り装置８２０にユーザが手等をかざすことにより認証する装置の場合も、上記と同様である。
【００８８】
ステップＳ１２０１で記録媒体が存在する場合は、ステップＳ１２０３に移行し、記録情報からジョブ識別情報を取得する。
【００８９】
次にステップＳ１２０４でデバイスからデバイスを特定するためのデバイスアドレスとデバイスの構成情報を取得する。此処で取得する構成情報は、用紙残量やトナーの有無と言った消耗品情報と、両面ユニットやステイプル装置(フィニッシャー)の使用可否といった装置情報を含む。
【００９０】
次にステップＳ１２０５で、取得したジョブ識別情報及びデバイスアドレス、デバイス構成情報をプルプリンタサーバ９００に通知する。
【００９１】
ステップＳ１２０２で認証情報記録媒体８２１が存在しない場合は、ステップＳ１２０６に移行し、印刷ジョブのキャンセル、及びジョブの保持命令をプルプリントサーバ６０５に通知する。
【００９２】
図１３は、プルプリントサービス９００が印刷すべく発行したスケジュール要求に付加するジョブ情報と１３０２、複数発生するジョブ情報を管理するジョブ管理キュー１３０１を示す図である。
【００９３】
１３０２は、プルプリントサービス９００が印刷を開始するために発行するスケジュール要求に付加される印刷ジョブの情報である。このジョブ情報１３０２は、印刷ジョブのドキュメント名、ジョブ管理部９０３が発行したジョブＩＤ、クライアントで印刷を開始したユーザ名、ジョブのページ数、印刷ジョブの状況を表すジョブ状態、プルプリントサービス９００が転送する印刷データに含まれるジョブデータＩＤ、印刷したクライアントのＩＰアドレス、ジョブキャンセル時にジョブを保持するかを表すフラグが登録される。
【００９４】
ジョブ状態は、プルプリントサービス９００が印刷のスケジュール要求を発行してからジョブがプリンタから無くなるまでの状態を表しており、印刷待機中、スケジュールアップ状態、転送中、転送済み、印刷完了などの状態が存在する。
【００９５】
ジョブデータＩＤは、印刷データに含まれるジョブのＩＤで、プリンタコントローラ５１９内でのジョブ状態を通知するときなど、付加させるＩＤである。
【００９６】
１３０１は、複数のジョブ情報１３０２を管理する管理キューであり、プルプリントサービス９００からのスケジュール要求を受け付けるとジョブ情報１３０２が管理キューに登録され、印刷ジョブが印刷終了すると、該当するプリンタ情報が削除されるようになっている。
【００９７】
図１４は、プルプリントサーバ６０５が管理するプリンタキュー、出力ポートの情報を表している。
【００９８】
１４０１は、ジョブ制御プリンタサービスが管理するそれぞれのプリンタキューの情報を表していて、プリンタ名などの情報が含まれている。
【００９９】
１４０２は、ジョブ制御プリンタサービスが管理するそれぞれの出力ポートの情報を表していて、印刷するデバイスのＩＰアドレスなどの情報が含まれている。
図１５の１５０１は、認証情報読み取り装置８２０で認証情報記録媒体８２１を検知した後にプルプリントエージェント９０６がプルプリントサーバ６０５に送信する情報を示したテーブルであり、情報テーブルの内容は、デバイスアドレス、ジョブ識別情報、デバイス構成情報である。
【０１００】
図１６では、図２１で示される印刷処理の流れで、クライアント１０１〜１０３のプルプリントサーバ６０５がプルプリントエージェント９０６からジョブ識別情報等を受け付けてから、印刷データの転送までの流れを示している。
【０１０１】
ステップＳ１６０１では、プルプリントエージェント９０６からデバイスアドレス、ジョブ識別情報、デバイス構成情報を取得し、Ｓ１６０２で取得したデバイスアドレスに一致するプリンタキュー７０１を特定する。Ｓ１６０３で特定したプリントキューにジョブ識別情報と一致するジョブが留め置かれているかをチェックする。留め置かれている場合は、Ｓ１６０３に移行する。留め置かれていない場合は、Ｓ１６０４でプルプリントエージェント９０６にエラーを通知し、処理を終了する。
【０１０２】
ステップＳ１６０５では、ジョブ制御ポートモニタから印刷ジョブを受け付けるか、デバイススケジューラ９０から印刷データの転送の開始を指示するスケジュールＵＰのコマンドを受け付けるか判断する。ジョブ制御ポートモニタから印刷ジョブを受け付けるステップＳ１６０６に処理を移行し、スケジュールＵＰのコマンドを受け付けるとステップＳ１６１１に処理を移行する。
【０１０３】
ステップＳ１６０６では、受け付けた印刷ジョブの情報をジョブ情報１３０２に設定し、ジョブ管理キュー１３０１に登録する。
【０１０４】
ジョブ情報１３０２に設定する情報は、プリントシステムから取得したり、印刷データを解析して得られることができる。
【０１０５】
次に、ステップＳ１６０７では、デバイススケジューラ９００に接続し、接続要求コマンドを発行する。クライアントが接続要求を発行すると、クライアントの情報がデバイススケジューラのクライアント管理キューに登録され、以降、クライアントとデバイススケジューラ間で情報のやり取りを行うことができる。
【０１０６】
ステップＳ１６０８では、デバイススケジューラ９００に対して、ジョブイベント、デバイスイベントを登録する。ジョブイベントを登録すると、自クライアントが印刷したジョブや、他のクライアントが印刷したジョブの状態の変化の通知がデバイススケジューラ９０より通知されることになる。また、デバイスイベントを登録すると、プリンタデバイス６０６の状態の変化を通知されるようになる。
【０１０７】
ステップＳ１６０９では、デバイススケジューラ９００で管理しているジョブ管理キュー１３０１に登録されているジョブのリストを取得する。このジョブリストとジョブイベントにより、デバイススケジューラ９００が管理するジョブの印刷状況を把握することが可能となる。
【０１０８】
以上の処理により、印刷する準備が整い、ステップＳ１６１０において印刷するジョブの登録をデバイススケジューラに登録し、ステップＳ１６０５で次の指示を待機する。
【０１０９】
ステップＳ１６０５においてデバイススケジューラから印刷データの転送指示であるスケジュールＵＰのコマンドを受け付けるとステップＳ１６１１に処理を移行する。ステップＳ１６１１では、印刷指示を受けたジョブの転送を開始する。
【０１１０】
印刷データの送信が開始されるとステップＳ１６１２において、デバイススケジューラに転送が開始されたことを通知するために、転送開始状態を通知する。
【０１１１】
ステップＳ１６１３で印刷データの転送が終了するとステップＳ１６１４においてデバイススケジューラ９００に転送が終了したことを通知する。
【０１１２】
図１７は、デバイススケジューラからの通知やコマンドを受け付けた場合のジョブ制御プリントサービス６０５の処理の流れについて説明している。
【０１１３】
ステップＳ１７０１では、デバイススケジューラ９００からジョブイベントの通知または、ジョブリストが返送されてくるかを判断しており、ジョブイベントが来ると、ステップＳ１７０２に処理を移行し、ジョブリストが来るとステップＳ１７０９に処理を移行する。
【０１１４】
ステップＳ１７０９では、ジョブリストが返送されてくるとジョブ制御プリントサービス６０５が管理するジョブ管理キュー１３０１にジョブリストから得られたジョブ情報を設定する。
【０１１５】
ステップＳ１７０２では、デバイススケジューラから通知されたジョブイベント通知の内、ジョブ完了通知であるか、ジョブ状態変更通知であるかを判断し、ジョブ状態変更通知であれば、ステップＳ１７１０において、該当するジョブ情報のジョブ状態を更新する。
【０１１６】
ステップＳ１７０２において、受け付けたイベント通知がジョブ完了通知であれば、ステップＳ１７０３において、完了結果を判定し、印刷結果が成功であれば、ステップＳ１７０４において、該当するジョブ情報及び印刷データを、ジョブ管理キュー１３０１から削除する。
【０１１７】
ステップＳ１７０５では、ジョブ管理キュー１３０１に、印刷が終了していない自クライアントのジョブが残されているかを確認し、残されていれば、まだデバイススケジューラ９００とのやり取りが必要であるため、デバイススケジューラとの接続を継続するために、ステップＳ１７０１に処理を移行する。
【０１１８】
ステップＳ１７０５で、自クライアントのジョブがなければ、ステップＳ２００５に処理を移行し、デバイススケジューラ９００との接続を終了するための処理を開始する。
【０１１９】
ステップＳ１７０６では、接続を開始したときにデバイススケジューラ９００に登録したジョブイベント、デバイスイベントの登録解除を依頼する。デバイススケジューラ９０は、この依頼によりクライアント情報のイベント登録の内容を削除する。このイベント登録の情報がなければ、デバイススケジューラ９００が管理するジョブの状態が変化されてもイベントが通知されてくることはない。
【０１２０】
次にステップＳ１７０７において、デバイススケジューラ９００に対して切断の要求を発行する。デバイススケジューラ９００が切断要求を受け付けると、クライアント管理キューから該当するクライアント情報を削除する。
【０１２１】
ステップＳ１７０８では、デバイススケジューラ９００とのセッションを切断する処理を行い、処理をステップＳ１７０１で待機する
図１８は、プルプリントエージェント９０６で認証情報記録媒体８２１の状態が変化した場合の処理について図示した。
【０１２２】
ステップＳ１８０１で、プルプリントサーバ６０５がプルプリントエージェント９０６から、認証情報記録媒体８２１の状態変化の通知を受けるとステップＳ１８０２で通知された情報から認証情報記録媒体８２１が存在しなくなった場合は、ステップＳ１８０３に移行する。逆に存在するようになった場合は、前述の図１６の処理に移行する。
【０１２３】
ステップ１８０３では、デバイススケジューラ９００にジョブのキャンセルを指示する。
【０１２４】
ステップ１８０４では、ジョブキャンセル終了と共にデバイススケジューラから送られてくる印刷面数情報とジョブの全面数を比較し、その値が一致する場合は、ステップＳ１８０４で１３０２のジョブ保存フラグをＯＦＦにする。一致しない場合は、再印刷を行えるようにステップＳ１８０５でジョブ保存フラグをＯＮにする。
【０１２５】
次にステップＳ１８０７でイベント登録の解除を行う。図１９は、通信管理部９０１が管理する、接続プルプリントサーバ６０５のクライアント情報１９０２と、複数の接続するプルプリントサーバ６０５のクライアント情報１９０２を管理するクライアント管理キュー１９０１である。
【０１２６】
１９０２は、接続するクライアント毎に接続管理部が割り振ったクライアントＩＤ、接続するプルプリントサーバ６０５のＩＰアドレス、接続するクライアントが登録したイベントの種類などの情報を持つクライアント情報である。イベントの種類とは、プリンタコントローラが発行するデバイス状態のイベントやジョブ状態のイベントの種類を表す。
【０１２７】
１９０１は、接続したプルプリントサーバ６０５のクライアント情報をキューの形式で保持する管理キューである。クライアントとのセッションが開始されると、該当するクライアントの情報が本管理キューに登録され、切断すると該当するクライアント情報が削除されるようになっている。
【０１２８】
図２０は、プルプリントサーバ６０５が印刷すべく発行したスケジュール要求に付加するジョブ情報と２００２、複数発生するジョブ情報を管理するジョブ管理キュー２００１を示す図である。
【０１２９】
２００２は、プルプリントサーバ６０５が印刷を開始するために発行するスケジュール要求に付加される印刷ジョブの情報である。このジョブ情報２００２は、印刷ジョブのドキュメント名、ジョブ管理部９０３が発行したジョブＩＤ、クライアントで印刷を開始したユーザ名、ジョブのページ数、印刷ジョブの状況を表すジョブ状態、プルプリントサーバ６０５が転送する印刷データに含まれるジョブデータＩＤ、印刷したクライアントのＩＰアドレスが登録される。
【０１３０】
ジョブ状態は、プルプリントサーバ６０５が印刷のスケジュール要求を発行してからジョブがプリンタから無くなるまでの状態を表しており、印刷待機中、スケジュールアップ状態、転送中、転送済み、印刷完了などの状態が存在する。
【０１３１】
ジョブデータＩＤは、印刷データに含まれるジョブのＩＤで、プリンタコントローラ５１９内でのジョブ状態を通知するときなど、付加させるＩＤである。
【０１３２】
２００１は、複数のジョブ情報１１０２を管理する管理キューであり、プルプリントサーバ６０５からのスケジュール要求を受け付けるとジョブ情報２００２が管理キューに登録され、印刷ジョブが印刷終了すると、該当するプリンタ情報が削除されるようになっている。
【０１３３】
図２１では、クライアント１０１〜１０３のプルプリントサーバ６０５が、ジョブを受け付け後、プリンタデバイス６０６にスケジュール要求を発行するところから、プリンタで印刷が終了するところまでのやり取りについて記載する。
【０１３４】
ジョブ制御プリントサービス６０５は、印刷データを受け付けると、デバイススケジューラ９００とセッション接続を開始する。
【０１３５】
クライアントの情報を通知する接続要求コマンド、ジョブ/デバイス状態を通知してもらうためのイベント登録、デバイススケジューラ９００がスケジュール管理するジョブの情報を取得するジョブリスト取得コマンドを発行する。
【０１３６】
デバイススケジューラは、接続要求を受け付けると、クライアント情報をクライアント管理キューに登録し、イベントの登録を受け付けると該当するクライアント情報の登録イベントに設定する。ジョブリスト要求を受け付けると、ジョブ管理キューに登録されているジョブ情報のリストを送信する。
【０１３７】
次に、プルプリントサーバ６０５が印刷を予約するためのスケジュール要求のコマンドを発行する。デバイススケジューラ９００はスケジュール要求を受け付けると、ジョブ管理キューにジョブ情報を登録する。ジョブ情報には、ドキュメント名等の情報を設定する。デバイススケジューラ９００は、後述する判断でプリンタデバイス６０６が印刷データを受け付けられるようになるとスケジュールＵＰを発行し、ジョブ制御プリントサービス６０５に対して印刷データの送信を開始するように促す。
【０１３８】
また、スケジュールＵＰを発行すると、ジョブ情報のジョブ状態をスケジュールＵＰ状態に更新する。
【０１３９】
ジョブ制御プリントサービス６０５は、スケジュールＵＰを受け付けるとＬＰＤ/ＲＡＷに印刷データの転送を開始し、転送が始まるとデバイススケジューラ９００に対して転送開始の通知を行う。デバイススケジューラ９００は、転送開始通知を受けると、ジョブ情報のジョブ状態に転送中の状態に更新する。
【０１４０】
ＬＰＤ/ＲＡＷが印刷データを受け付けるとプリンタコントローラにデータを転送し、プリンタコントローラで印刷が開始される。プリンタコントローラは、印刷が開始されるとジョブの状態をデバイススケジューラ９００に通知する。デバイススケジューラ９００は、クライアント情報の登録イベントの情報を基に、クライアントにジョブの印刷状態を通知する。
【０１４１】
また、ジョブ制御プリントサービス６０５は印刷データの転送が終了するとデバイススケジューラ９００に対して、転送終了通知を送信する。デバイススケジューラ９００は、転送終了通知を受けると、ジョブ情報のジョブ状態に転送済の状態に更新する。
【０１４２】
プリンタコントローラで印刷処理が終了すると、ジョブの状態として印刷完了の通知をデバイススケジューラ９００に通知する。デバイススケジューラ９００は、クライアント情報の登録イベントの情報を基に、クライアントにジョブの印刷完了の状態を通知する。
【０１４３】
ジョブ制御プリントサービス６０５は、上記通知により印刷が完了したことを確認すると、デバイスからの通知が必要なくなるので、デバイススケジューラ９００からのイベント通知の登録を解除要求を発行する。イベント解除要求を受け付けた、デバイススケジューラ９００は、クライアント情報の登録イベントにイベントを通知しない旨の情報を設定する。
【０１４４】
その後、ジョブ制御プリントサービス６０５は、デバイススケジューラ９００との接続を終了するための切断要求を発行し、セッションを終了する。
【０１４５】
デバイススケジューラ９００は、切断要求を受け付けると、クライアント管理キューから該当するクライアント情報を削除し、該クライアントとの処理を終了する。
【０１４６】
図２２では、プルプリントサーバ６０５のスケジュール要求の受け付けから、スケジュールＵＰを発行するまでのデバイススケジュラのスケジュール管理部の処理の流れについて説明する。
【０１４７】
ステップＳ２２０１において、プルプリントサーバ６０５からの通知を受け付けると、スケジュール要求の通知なのか、転送済み状態の通知なのかを判断する。
スケジュール要求の通知であれば、ステップＳ２２０２に処理を移行し、ジョブ管理部９０３で発行したジョブＩＤを設定したジョブ情報を作成し、スケジュール要求に付加された情報をジョブ情報に設定して、スケジュール要求を受け付けた順でジョブ管理キューに登録する。
【０１４８】
次に、ステップＳ２２０３で、ジョブ管理キューに登録されたジョブ情報のジョブ状態を確認する。ジョブ状態がスケジュールＵＰ、転送中のものがあれば、既にあるクライアントに印刷データを転送するように指示しているため、ステップＳ２２０１に処理を移行する。ジョブ状態がスケジュールＵＰ、転送中のものがなければ、プルプリントサーバ６０５から印刷データが送られてくる予定が無いためステップＳ２２０４に処理を移行し、スケジュールＵＰの発行の準備を行う。
【０１４９】
ステップＳ２２０４では、ジョブ管理キューで先にスケジュール要求を受け付けた順からジョブを確認し、スケジュール待機中のジョブが見つかるとステップＳ２２０５に処理を移行する。
【０１５０】
更に、ステップＳ２２０５で該当するクライアントに対して印刷データの転送を開始させるスケジュールＵＰを通知し、ステップＳ２２０６で、該当するジョブ情報のジョブ状態をスケジュールＵＰ状態に更新し、ステップＳ２２０１に処理を移行する。
【０１５１】
図２３では、後述するデバイス管理からのジョブ状態通知イベントの受け付けからジョブ制御プリントサービス６０５からのジョブリスト要求の受け付けに対する、ジョブ管理部９０３の処理を示している。
【０１５２】
ステップＳ２３０１では、通信接続管理部９０１やデバイス管理部９０４からの通知を受け付けると、デバイス管理部９０４からのジョブ状態通知であるか、ジョブリスト要求であるかを判断する。
【０１５３】
デバイス管理部９０４からのジョブ状態通知であれば、ステップＳ２３０２に処理を移行し、該当するジョブ情報のジョブ状態を更新する。更にステップＳ２３０３に処理を移行し、印刷完了の通知であるかを判断する。印刷完了でなければ処理をステップＳ２３０４に移行し、接続管理部にジョブの状態のイベントをクライアントに発行するように通知する。
【０１５４】
ステップＳ２３０３で、印刷完了の通知であれば、ステップＳ２３０５に処理を移行し、ジョブ管理キューから該当するジョブを削除し、ステップＳ２３０６で、接続管理部にジョブの完了イベントをクライアントに発行するように通知し、処理をステップＳ２３０１に移行する。
【０１５５】
ステップＳ２３０９で、ジョブ制御プリントサービス６０５からのジョブリスト要求の受け付けると、ステップＳ２３０９において、ジョブ管理キューに登録されたジョブ情報のリストを要求元のクライアントに送信するように接続管理部にジョブ情報リストを通知する。
【０１５６】
図２４では、プリンタコントローラからのデバイス状態、ジョブ状態通知をイベントハンドラを経由して受け付け、ジョブ管理部９０３や通信接続管理部９０１に通知するデバイス管理部９０４の処理について記載する。
【０１５７】
ステップＳ２４０１では、デバイススケジューラが起動すると、デバイス管理部９０４がイベントハンドラを経由してプリンタコントローラに対して、デバイスの状態が変更した場合や、プリンタコントローラが処理する印刷ジョブの状態が変更したばあいにそれらの状態を通知するようにイベント登録の処理を行う。
【０１５８】
ステップＳ２４０２では、プリンタコントローラで発生したイベントをイベントハンドラ経由で受け付けるとジョブのイベントであるかデバイスのイベントであるかを判断する。ジョブのイベントであれば、ステップＳ２４０３でジョブ管理部９０３にジョブイベントを通知し、ステップＳ２４０２に処理を移行する。デバイスのイベントであれば、処理をステップＳ２４０４に移行し、デバイスの状態をデバイス管理部９０４で保持した後、ステップＳ２４０５で通信接続管理部９０１にデバイスイベントを通知し、処理をステップＳ２４０２に移行する。
【０１５９】
ジョブ情報のリストを要求元のクライアントに送信するように接続管理部にジョブ情報リストを通知する。
【０１６０】
図２５は、プルプリントサーバ６０５からの要求や通知、デバイス管理部９０４からの通知、ジョブ管理部９０３への要求や通知を処理する通信接続管理部９０１の処理の流れについて記載する。
【０１６１】
ステップＳ２５０１では、プルプリントサーバ６０５やデバイス管理部９０４、ジョブ管理部９０３からの通知や要求を受け付け、どの通知や要求であるかを判断する。
【０１６２】
ステップＳ２５０１において受け付けた要求やイベントがプルプリントサーバ６０５からの接続要求であれば、ステップＳ２５０２に移行し、クライアント管理キューに通信接続管理部９０１で発行したクライアントＩＤと、要求を発したクライアントのＩＰアドレスを設定し、クライアント管理キューにクライアント情報を登録する。
【０１６３】
ステップＳ２５０１において受け付けた要求やイベントがプルプリントサーバ６０５からのイベント登録であれば、ステップＳ２５０３に処理を移行し、該当するクライアント情報の登録イベントに通知するイベントの種類を設定する。イベントの種類には、ジョブの状態の変化を通知するジョブイベント、デバイスの状態の変化を通知するデバイスイベントがある。
【０１６４】
ステップＳ２５０１において受け付けた要求やイベントがデバイス管理部９０４からのデバイスイベントやジョブ管理部９０３からのジョブイベントであれば、ステップＳ２５０４において、これらのイベントを通知すべきクライアントを認識するために、クライアント管理キューに登録された全てのクライアント情報から、クライアント情報の登録イベントの設定を参照し通知すべきかどうかを判断する。通知すべきであると判断した場合には、クライアントのＩＰアドレスを保持し、ステップＳ２５０５において通知すべき全てのクライアントに対してイベントを送信する。
【０１６５】
ステップＳ２５０１において受け付けた要求やイベントがクライアントからの切断要求であればステップＳ２５０６に処理を移行し、クライアント管理キューから該当するクライアントのクライアント情報を削除する。
【図面の簡単な説明】
【０１６６】
【図１】本発明の実施形態としてのプリントシステムの全体構成を示すブロック図である。
【図２】クライアントのハードウェア構成を説明するブロック図である。
【図３】図２に示したＲＡＭ２０２のメモリマップの一例を示す図である。
【図４】図２に示したＦＤ２０４のメモリマップの一例を示す図である。
【図５】プリンタのハードウェア構成を説明するブロック図である。
【図６】クライアントのプリントシステムのソフトウェア構成の例を示す図である。
【図７】クライアントの印刷時の印刷ジョブの流れを示す図である。
【図８】プリンタのソフトウェア構成の例を示す図である。
【図９】プリンタのユーザアプリケーションのソフトウェア構成の例を示す図である。
【図１０】本発明の好適な実施例の概略を示すアクティビティ図である。
【図１１】プルプリントサーバジョブを登録する処理を示すフローチャートである。
【図１２】プルプリントエージェントで検知した情報により行うプルプリントサーバの処理を示すフローチャートである。
【図１３】プルプリントサーバが管理する印刷ジョブの情報とジョブ管理キューを表す図である。
【図１４】プルプリントサーバが管理するプリンタキュー、出力ポートの情報を表す図である。
【図１５】プルプリントエージェントがプルプリントサーバに通知する情報を示す図である。
【図１６】プルプリントサーバが印刷データを特定してから、印刷データの転送までの流れを示すフローチャートである。
【図１７】デバイススケジューラからの通知やコマンドを受け付けた場合のプルプリントサーバの処理の流れを示すフローチャートである。
【図１８】プルプリントエージェントが認証記録装置の状態変化を検知してからプルプリントサーバにその情報を通知するまでの処理のフローチャートである。
【図１９】デバイススケジューラで管理するクライアント情報とクライアント管理キューを示す図である。
【図２０】デバイススケジューラで管理するジョブ情報とジョブ管理キューを示す図である。
【図２１】プルプリントサーバとデバイススケジューラ、ＬＰＤ／ＲＡＷ、プリンタコントローラ間の印刷シーケンスを示す図である。
【図２２】プルプリントサーバのスケジュール要求の受け付けから、スケジュールＵＰを発行するまでのデバイススケジュラのスケジュール管理部の処理の流れを示すフローチャートである。
【図２３】ジョブ管理部９０３のジョブ状態通知イベントの受け付けからジョブリスト要求の受け付けに対する処理を示すフローチャートである。
【図２４】プリンタコントローラからのデバイス状態、ジョブ状態通知を受け付けた時のデバイス管理部の処理を示すフローチャートである。
【図２５】クライアントからの要求や通知、デバイス管理部からの通知、ジョブ管理部９０３への要求や通知を処理する通信接続管理部９０１の処理を示すフローチャートである。
【図１】
2007025970.tif 000003
【図２】
2007025970.tif 000004
【図３】
2007025970.tif 000005
【図４】
2007025970.tif 000006
【図５】
2007025970.tif 000007
【図６】
2007025970.tif 000008
【図７】
2007025970.tif 000009
【図８】
2007025970.tif 000010
【図９】
2007025970.tif 000011
【図１０】
2007025970.tif 000012
【図１１】
2007025970.tif 000013
【図１２】
2007025970.tif 000014
【図１３】
2007025970.tif 000015
【図１４】
2007025970.tif 000016
【図１５】
2007025970.tif 000017
【図１６】
2007025970.tif 000018
【図１７】
2007025970.tif 000019
【図１８】
2007025970.tif 000020
【図１９】
2007025970.tif 000021
【図２０】
2007025970.tif 000022
【図２１】
2007025970.tif 000023
【図２２】
2007025970.tif 000024
【図２３】
2007025970.tif 000025
【図２４】
2007025970.tif 000026
【図２５】
2007025970.tif 000027