(57)【要約】【課題】プルプリント開始時に対象となるプルプリントジョブが複数個存在した場合にも、複数の印刷ジョブの間に他者の印刷が割り込むことを防止する。【解決手段】印刷装置に接続可能な情報処理装置は、ユーザに関連した識別情報を付与して印刷ジョブを登録しておき、印刷対象の印刷ジョブを選択するための特定情報が入力されると、登録された印刷ジョブから、上記付与された識別情報が上記入力された特定情報と対応する印刷ジョブを検索する。そして、複数の印刷ジョブが検索された場合は、これら複数の印刷ジョブに共通の識別情報を付与し、これら複数の印刷ジョブを出力先の印刷装置に関連するプリントキューに登録する。そして、このプリントキューに登録された印刷ジョブの転送が許可された場合に、前記共通の識別情報が付与されている前記複数の印刷ジョブを一括して印刷装置に転送する。【選択図】  図１８
2008077355.tif 000002
【特許請求の範囲】
【請求項１】
印刷装置に接続可能な情報処理装置であって、
印刷ジョブにユーザに関連した識別情報を付与して登録する第１登録手段と、
印刷対象の印刷ジョブを選択するための特定情報を入力する入力手段と、
前記第１登録手段で登録された印刷ジョブから、前記第１登録手段で付与された識別情報が前記入力手段で入力された特定情報と対応する印刷ジョブを検索する検索手段と、
前記検索手段により複数の印刷ジョブが検索された場合に、該複数の印刷ジョブに共通の識別情報を付与して、該複数の印刷ジョブを、出力先の印刷装置に関連するプリントキューに登録する第２登録手段と、
前記プリントキューに登録された前記共通の識別情報が付与されている前記複数の印刷ジョブの一つの転送が許可された場合に、当該複数の印刷ジョブを一括して印刷装置に転送する転送手段とを備えることを特徴とする情報処理装置。
【請求項２】
前記転送手段は、前記複数の印刷ジョブを１セッションで転送することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第１登録手段は、１つの印刷ジョブについてユーザに関連した識別情報を複数登録可能であり、
前記検索手段は、前記特定情報に対応する識別情報を含む印刷ジョブを検索することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記第２登録手段は、前記検索手段で検索された印刷ジョブに複数の識別情報が付与されていた場合、前記特定情報に対応する識別情報のみを有する印刷ジョブを複製して前記プリントキューに登録することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記ユーザに関連した識別情報をユーザに設定させるためのユーザインターフェースを提供する手段を更に備えることを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記ユーザに関連した識別情報は、ユーザの認証情報に基づいて生成されることを特徴とする請求項１に記載の情報処理装置。
【請求項７】
前記第１登録手段は、出力先の印刷装置が未定のプリントキューに印刷ジョブを登録することを特徴とする請求項１に記載の情報処理装置。
【請求項８】
印刷装置と情報処理装置が接続されたプリントシステムであって、
前記情報処理装置が、
印刷ジョブにユーザに関連した識別情報を付与して登録する第１登録手段と、
前記印刷装置から印刷対象の印刷ジョブを選択するための特定情報を入力する入力手段と、
前記第１登録手段で登録された印刷ジョブから、前記第１登録手段で付与された識別情報が前記入力手段で入力された特定情報と対応する印刷ジョブを検索する検索手段と、
前記検索手段により複数の印刷ジョブが検索された場合に、該複数の印刷ジョブに共通の識別情報を付与し、該複数の印刷ジョブを、前記印刷装置を出力先とするプリントキューに登録する第２登録手段と、
前記印刷装置から、前記共通の識別情報が付与されている前記複数の印刷ジョブの一つに転送許可が通知された場合、該複数の印刷ジョブを一括して前記印刷装置に転送する転送手段とを備えることを特徴とするプリントシステム。
【請求項９】
印刷装置に接続可能な情報処理装置による印刷ジョブの転送制御方法であって、
印刷ジョブにユーザに関連した識別情報を付与して予め定められたキューに登録する第１登録工程と、
印刷対象の印刷ジョブを選択するための特定情報を入力する入力工程と、
前記予め定められたキューに登録された印刷ジョブから、前記第１登録工程で付与された識別情報が前記入力工程で入力された特定情報と対応する印刷ジョブを検索する検索工程と、
前記検索工程により複数の印刷ジョブが検索された場合に、該複数の印刷ジョブに共通の識別情報を付与して、該複数の印刷ジョブを、出力先の印刷装置に関連するプリントキューに登録する第２登録工程と、
前記プリントキューに登録された前記共通の識別情報が付与されている前記複数の印刷ジョブの一つの転送が許可された場合に、当該複数の印刷ジョブを一括して印刷装置に転送する転送工程とを備えることを特徴とする印刷ジョブの転送制御方法。
【請求項１０】
印刷装置と情報処理装置が接続されたプリントシステムにおける印刷ジョブの転送制御方法であって、
前記情報処理装置が、ユーザに関連した識別情報を印刷ジョブに付与して登録する第１登録工程と、
前記情報処理装置が前記印刷装置から印刷対象の印刷ジョブを選択するための特定情報を入力する入力工程と、
前記情報処理装置が、前記第１登録工程で登録された印刷ジョブから、前記第１登録工程で付与された識別情報が前記入力工程で入力された特定情報と対応する印刷ジョブを検索する検索工程と、
前記情報処理装置が、前記検索工程により複数の印刷ジョブが検索された場合に、該複数の印刷ジョブに共通の識別情報を付与し、該複数の印刷ジョブを、前記印刷装置を出力先とするプリントキューに登録する第２登録工程と、
前記印刷装置から、前記共通の識別情報が付与されている前記複数の印刷ジョブの一つに転送許可が通知された場合、該複数の印刷ジョブを一括して前記印刷装置に転送する転送工程とを備えることを特徴とする印刷ジョブの転送制御方法。
【請求項１１】
請求項９又は１０に記載の印刷ジョブの転送制御方法をコンピュータに実行させるための制御プログラム。
【請求項１２】
請求項９又は１０に記載の印刷ジョブの転送制御方法をコンピュータに実行させるための制御プログラムを格納したコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、少なくとも１台のクライアントと、クライアントからの印刷要求を受信して印刷を実行する印刷装置とが、互いにネットワークで接続されたネットワークプリントシステム関する。
【背景技術】
【０００２】
近年、パーソナルコンピュータ等の情報処理装置で作成された印刷データを、ネットワークを介して印刷装置に出力するネットワークプリントシステムが一般的なものとなっている。このようなネットワークプリントシステムでは、ネットワークに接続された１台以上のクライアントとしての情報処理装置から、ネットワークを介して印刷装置に印刷要求とともに印刷データが送信される。そして、印刷装置では印刷データを順次受信しイメージを形成し、これを紙等の媒体に印刷する。このように、ネットワークプリントシステムでは、情報処理装置からネットワークを介して印刷装置に印刷要求するプリントシステムが主流となっている。
【０００３】
上記システムでは、印刷装置はネットワークを介して接続された複数の情報処理装置から印刷要求を受けることになるので、排紙された印刷物が他者の印刷物と混じり合ってしまうケースが多々発生する。この状況は、特に機密文書や秘匿性の高い文書を印刷する場合に問題となる。即ち、機密文書を印刷する際には、ユーザは他者の印刷物に交じり合わないように留意して印刷要求を発行させなければならい。また、機密情報を漏らさないためには、排紙された印刷物が他者の目に触れないようにする必要がある。このため、ユーザは、ネットワークを介して接続された印刷装置に印刷要求を発行すべく情報処理装置を操作した後、その印刷装置の設置場所まで赴き、排紙されるまで印刷装置を見張る必要がある。
【０００４】
しかしながら、ネットワークに接続された印刷装置は複数人で共有しているため、印刷要求後すぐにその印刷が開始されるわけではない。例えば、他者の印刷ジョブが既に印刷装置内に登録されていた場合は、それら印刷ジョブが全て印刷されるまで、上記機密情報の印刷は待たされることになる。そのため、ユーザは印刷要求後、印刷装置に赴くタイミングを計る必要が生じ、ユーザビリティが悪いという課題があった。
【０００５】
このような課題を解決するため、特許文献１では、プル型の印刷システム（プルプリント方式）を用いることで、これら課題を解決できる可能性を示唆している。プルプリント方式では、情報処理装置からネットワークを介して印刷装置に送信された印刷要求により印刷を実行するのではなく、印刷装置から印刷すべきドキュメントを探索して印刷を実行する。特許文献１によれば、ゲートウェイに通常のプリントキューと、プル専用のプリントキュー（以下、プルプリントキュー）を設け、出力先が設定されていない印刷ジョブはプルプリントキューにキューイングされる。印刷装置にプルプリントキューのジョブを実行するスタートボタンが設けられ、これが押下されると実行すべきジョブとその出力先がゲートウェイに送信される。そして、プルプリントキューから指定された出力先へ指定されたジョブが送信され、印刷される。
【特許文献１】特開２００４−２２０３５４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した従来技術では、印刷ジョブが複数存在する場合に生じ得る課題については記載されていない。ネットワークによって印刷装置が共有された環境では、印刷ジョブが複数存在した場合、それら複数のジョブとジョブの間に他者の印刷ジョブが割り込む可能性がある。他者の印刷に割り込まれた場合、排紙されたドキュメント中に他者の印刷物が混入することになるので、それを誤って持っていってしまったり、もしくは誤って持っていかれてしまったりする可能性がある。このように、機密文書や秘匿性の高い文書と他者の印刷物とが混在してしまうことは、情報を得る権利のない者がみだりに情報を取得してしまう可能性を生むものである。
【０００７】
また上述した従来技術では、プリントキューが単独でしか存在していないため、複数のグループ（ユーザ又は部門等）の印刷ジョブを登録することが困難である。つまり、プルプリントキューに登録した印刷ジョブは、スタートボタンを押下することで全て印刷開始されてしまうため、複数人で同じプルプリントキューを利用することが困難である。従って、複数人でプルプリントを実行するためには、使用人数分のプルプリントキューを用意する必要がある。
【０００８】
本発明は、上記の課題に鑑みてなされたものであり、その目的は、プルプリント開始時に対象となるプルプリントジョブが複数個存在した場合にも、複数の印刷ジョブをまとめて印刷できるようにすることである。また、複数の印刷ジョブの間に他者の印刷が割り込むことを防止することにある。
【課題を解決するための手段】
【０００９】
上述した目的を達成するための、本発明の一態様による情報処理装置は以下の構成を備える。即ち、
印刷装置に接続可能な情報処理装置であって、
印刷ジョブにユーザに関連した識別情報を付与して登録する第１登録手段と、
印刷対象の印刷ジョブを選択するための特定情報を入力する入力手段と、
前記第１登録手段で登録された印刷ジョブから、前記第１登録手段で付与された識別情報が前記入力手段で入力された特定情報と対応する印刷ジョブを検索する検索手段と、
前記検索手段により複数の印刷ジョブが検索された場合に、該複数の印刷ジョブに共通の識別情報を付与して、該複数の印刷ジョブを、出力先の印刷装置に関連するプリントキューに登録する第２登録手段と、
前記プリントキューに登録された前記共通の識別情報が付与されている前記複数の印刷ジョブの一つの転送が許可された場合に、当該複数の印刷ジョブを一括して印刷装置に転送する転送手段とを備える。
【００１０】
又、上記の目的を達成するための本発明の他の態様によるプリントシステムは以下の構成を備える。即ち、
印刷装置と情報処理装置が接続されたプリントシステムであって、
前記情報処理装置が、
印刷ジョブにユーザに関連した識別情報を付与して登録する第１登録手段と、
前記印刷装置から印刷対象の印刷ジョブを選択するための特定情報を入力する入力手段と、
前記第１登録手段で登録された印刷ジョブから、前記第１登録手段で付与された識別情報が前記入力手段で入力された特定情報と対応する印刷ジョブを検索する検索手段と、
前記検索手段により複数の印刷ジョブが検索された場合に、該複数の印刷ジョブに共通の識別情報を付与し、該複数の印刷ジョブを、前記印刷装置を出力先とするプリントキューに登録する第２登録手段と、
前記印刷装置から、前記共通の識別情報が付与されている前記複数の印刷ジョブの一つに転送許可が通知された場合、該複数の印刷ジョブを一括して前記印刷装置に転送する転送手段とを備える。
【発明の効果】
【００１１】
本発明によれば、プルプリント開始時に対象となるプルプリントジョブが複数個存在した場合にも、複数の印刷ジョブをまとめて印刷できる。また、複数の印刷ジョブの間に他者の印刷が割り込むことを防止することが可能となる。
【発明を実施するための最良の形態】
【００１２】
以下、添付の図面を参照して本発明の好適な実施形態を説明する。
【００１３】
＜システム構成＞
図１は本発明の実施形態に係るプリントシステムの全体構成例を示すブロック図である。第１実施形態のプリントシステムは、情報処理装置により実現されるクライアント（コンピュータ）１０１〜１０３と、印刷装置（プリンタデバイス）としてのネットワークプリンタ１０４〜１０５とを含む。クライアント１０１〜１０３及びネットワークプリンタ１０４〜１０５がネットワーク（ＬＡＮ）１０６を介して互いに通信可能に接続さることにより、全体としてプリントシステムを構成している。
【００１４】
クライアント１０１〜１０３は、印刷制御プログラムを実行可能に格納しており、これを実行することにより、
・プリントシステム内のネットワークプリンタ１０４〜１０５を管理する機能、
・ネットワークで使用されるファイルを蓄積したり、ネットワークの使用状態を監視したりする機能を実現する。
【００１５】
また、プルプリントによる印刷に関して、クライアント１０１〜１０３は、印刷制御プログラムを実行することにより、
・自身により印刷ジョブを作成し、ネットワークプリンタ１０４〜１０５に内臓もしくは接続されたスケジューラにスケジュール要求を発行する機能、
・ネットワークプリンタ１０４〜１０５のスケジューラからの指示により、印刷データの転送を開始する機能を有する。
なお、ここでのスケジューラとは、ソフトウェアを装置上で稼働させることにより構築しても良いし、或は、専用のハードウェアにより構築しても良い。
【００１６】
ネットワークプリンタ１０４〜１０５は、クライアント１０１〜１０３から、印刷データを含む印刷ジョブを受信し、受信した印刷ジョブを解析して印刷する物理的な装置としてのプリンタデバイスである。ネットワークプリンタ１０４〜１０５としては、電子写真方式を採用したレーザービームプリンタやインクジェット方式を採用したインクジェットプリンタや熱転写方式を利用したプリンタ等、あらゆる方式の印刷装置を採用することが出来る。
【００１７】
また、ネットワークプリンタ１０４〜１０５は、
・複数のクライアント１０１〜１０３からの印刷要求を受け付け、受け付けた印刷要求の順序を決定し、印刷指示を発行する機能、
・ネットワークプリンタ１０４〜１０５に転送された印刷ジョブ、ネットワークプリンタ１０４〜１０５の状態を監視し、印刷の終了やプリンタの状態をクライアント１０１〜１０３に通知する機能を有する。
【００１８】
なお、本プリントシステムに含まれる装置間の通信は、イーサネット（登録商標）ケーブルなどを利用した有線通信でも良いし、電波や光などを利用した無線通信でもよい。
【００１９】
＜クライアントの構成＞
図２は、図１で示したクライアント１０１〜１０３のハードウェア構成を説明するブロック図である。図２において、ＣＰＵ２００は、ＨＤ（ハードディスク）２０５に格納されているアプリケーションプログラム、プリンタドライバプログラム、ＯＳや印刷制御プログラム等を読み出してＲＡＭ２０２にロードし、実行する。ＲＯＭ２０１は、基本Ｉ／Ｏプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データを記憶する。ＲＡＭ２０２は、ＣＰＵ２００の主メモリやワークエリア等として機能する。ＲＡＭ２０２には、ＣＰＵ２００の制御の下で、プログラムの実行に必要な情報やファイル等が一時定期に格納される。
【００２０】
ＦＤ（フロッピー（登録商標）ディスク）ドライブ２０３は、記憶媒体としてのＦＤ２０４に記憶されたプログラム等を読み出したり、ＦＤ２０４に対してデータの書き込みを行う。なお、クライアント１０１〜１０３は、ＦＤドライブ２０３に替えて、或いはＦＤドライブ２０３と共に、他の記憶媒体をアクセスするためのドライブを備えても良い。他の記憶媒体としては、例えば、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＰＣカード、ＤＶＤ、ＩＣメモリカード、ＭＯ、メモリスティック等、コンピュータが読み取り可能なあらゆる記憶媒体を用いることができる。
【００２１】
ＨＤ２０５は、大容量メモリとして機能する外部記憶装置であり、アプリケーションプログラム、プリンタドライバプログラム、ＯＳ、印刷制御プログラム、及び関係プログラム等を格納している。さらに、印刷データをスプールするめのスプーラもＨＤ２０５に確保される。
【００２２】
キーボード２０６は、ユーザがクライアントコンピュータ１０１〜１０３に対して、デバイスの制御コマンドの命令等を入力するための指示入力装置である。ディスプレイ２０７は、キーボード２０６から入力したコマンドや、ネットワークプリンタ１０４〜１０５の状態等を表示する表示装置である。なお、実際にはクライアント１０１〜１０３上で稼動するオペレーティングシステムを介してディスプレイ２０７に表示指示がなされる。そして、このオペレーティングシステムに本印刷処理プログラムによりリソースファイルの表示指示が行われ、後述する各表示が実現される。システムバス２０８は、クライアント１０１〜１０３としてのコンピュータ内の、上記各構成間のデータの流れを司る。また、インタフェース２０９は、クライアント１０１〜１０３をネットワークと接続する。クライアント１０１〜１０３はインタフェース２０９を介してネットワーク上の他の装置とデータのやり取りを行う。
【００２３】
＜メモリマップ等の説明＞
図３は、図２に示したＲＡＭ２０２のメモリマップの一例を示す図であり、印刷制御プログラムがＲＡＭ２０２にロードされＣＰＵ２００によって実行可能となった状態のメモリマップを示す。
【００２４】
ＲＡＭ２０２には基本Ｉ／Ｏプログラム３０１が記憶されている。基本Ｉ／Ｏプログラム３０１は、クライアント１０１〜１０３の電源がＯＮされたときに、ＨＤ２０５からＯＳがＲＡＭ２０２にロードされ、ＯＳの動作を開始させるＩＰＬ（イニシャルプログラムローディング）機能などを有しているプログラムである。また、ＲＡＭ２０２には、ＯＳ（オペレーティングシステム）３０２、印刷制御プログラム３０３、関連データ３０４が記憶されている。ワークエリア３０５は、ＣＰＵ２００が各種のプログラムを実行する際に利用される領域である。
【００２５】
印刷制御プログラム３０３及び関連データ３０４は、予めＦＤ２０４からＨＤ２０５にインストールしておき、ＨＤ２０５からＲＡＭ２０２にロードして実行するようにしてもよいし、ＦＤ２０４から直接ＲＡＭ２０２にロードして実行するようにしてもよい。更に、印刷制御プログラム３０３をＲＯＭ２０１に記憶しておき、これをメモリマップの一部となすように構成し、直接ＣＰＵ２００で実行することも可能である。また、各機能をソフトウェアをもって、ハードウェア装置の代替として構成することも出来る。ＣＰＵ２００は、印刷制御プログラム３０３を実行することにより、印刷データを転送したり、印刷ジョブの印刷先の変更を指示したり、印刷順序を変更したりする指示をする機能を実現する。
【００２６】
図４は、図２に示したＦＤ２０４のメモリマップの一例を示す図である。図４において、４００はＦＤ２０４のデータ内容である。データ内容４００は、データの情報を示すボリューム情報４０１と、ディレクトリ情報４０２と、印刷制御プログラム４０３と、その関連データ４０４を含んでいる。
【００２７】
＜ネットワークプリンタの構成＞
図５は、本実施形態に関わるプリントシステムに適用できるネットワークプリンタ１０４〜１０５のハードウェア構成例を説明するブロック図である。
【００２８】
ネットワークプリンタ１０４〜１０５の制御系は、ネットワークプリントサーバ５２１とプリンタコントローラ５２２に分けられる。ネットワークプリントサーバ５２１において、ネットワークプリントサーバ用ＣＰＵ５０１は、書き換え可能なFlashROM５０３に記憶された制御プログラムに基づいて、主としてネットワークに接続されたクライアントとの通信を行う。即ち、ネットワーク１０６に接続されているクライアント１０１〜１０３等の複数の外部装置から所定のネットワーク通信プロトコルを用いて送信される印刷データやプリンタ制御命令等の各種データの送受信を統括的に制御する。そして、拡張インタフェースコントローラ（ＥＸＰＣ）５０７を介して接続されるプリンタコントローラ５２２に対してデータ転送制御を行う。又、５１７は拡張インターフェースコントローラ５０７と拡張インタフェースコントローラ（ＥＸＰＣ）５１３をつなぐインターフェースを表している。
【００２９】
ＲＡＭ５０２はＣＰＵ５０１の主メモリ、ワークエリア等の一時時記憶領域として用いられる。ＬＥＤ５０６はネットワークプリントサーバの動作状態を示す表示部として用いられており、各種動作状態をＬＥＤの点滅パターンや色で示すことが可能となっている。ＬＥＤ５０６により示される動作状態としては、例えば、
・ネットワークコントローラ（ＬＡＮＣ）５０５とローカルエリアネットワーク（ＬＡＮ）５２３の電気的な接続状態（ＬＩＮＫ）、
・ネットワーク通信モード（１０Ｂａｓｅや１００Ｂａｓｅ、全二重、半二重）等があげられる。
【００３０】
外部Ｉ／Ｏインタフェース５１９は、ネットワークプリントサーバ５２１が認識可能な外部装置５２０との情報のやり取りを実現する。外部装置５２０としては例えば、ＩＤカード情報を読み取るＩＤカードリーダや、携帯可能な記憶媒体であるメモリスティックや、表示用補助パネルディスプレイ等があげられる。
【００３１】
プリンタコントローラ５２２において、プリンタコントローラ用ＣＰＵ５０８は、ＲＯＭ５０９に記憶された制御プログラム等に従ってシステムバス５１１に接続される各種デバイスとのアクセスを統括的に制御し、各種制御を実行する。尚、ＣＰＵ５０８が実行する制御プログラムや、各種制御の実行時に参照するリソースデータ（資源情報）は、ディスクコントローラ（ＤＫＣ）５１５を介して接続された外部メモリ５１０から取得されてもよい。ラスタコントローラ５１２は拡張インタフェースコントローラ（ＥＸＰＣ）５１３を介して接続されたネットワークプリントサーバ５２１から受信される印刷データを基に出力画像情報を生成し、プリントエンジン５１６に対して画像信号を出力する。
【００３２】
ＲＡＭ５１４はＣＰＵ５０８の主メモリ、ワークエリア等として機能する。尚、ＲＡＭ５１４のメモリ容量は、図示しない増設ポートに接続されるオプションＲＡＭにより拡張することができる。操作パネル（操作部）５１８には、ネットワークプリンタ１０４〜１０５の動作モード等の設定や印刷データの取り消し等の操作を行うためのボタンおよびネットワークプリンタ１０４〜１０５の動作状態を示す液晶パネルやＬＥＤ等の表示部が配されている。
【００３３】
なお、図５で示したプリントエンジン５１６は既知の印刷技術を利用するものであり、例えば電子写真方式（レーザービーム方式）やインクジェット方式、熱転写方式（昇華）方式が挙げられる。
【００３４】
＜クライアントのソフトウェア構成＞
次に、本プリントシステムのクライアント１０１〜１０３のソフトウェア構成について説明する。図６は、クライアント１０１〜１０３におけるソフトウェア構成の一例を示す図である。それぞれの構成間の矢印は、アプリケーションから発行された描画コマンドを含む印刷ジョブが、どのように処理されるかを示したものである。また、各ブロックで示されたソフトウェア構成は、図２のＣＰＵ２００によって実行されるものである。
【００３５】
通常、Microsoft Word（登録商標）などのアプリケーション６０１は、印刷の指示を受け付けると、一連の描画コマンドを、ＯＳを介して生成する。ＰＤＬドライバ６０２は、ＯＳを介して生成された描画コマンドを受け取り、一連の描画コマンドに基づいてネットワークプリンタ１０４〜１０５で解釈可能なＰＤＬファイルを含む印刷ジョブを生成する。なお、以下の説明ではＰＤＬドライバを例に説明を行うが、これに限定されるものではない。例えば、ＢＤＬ（Band description Language）や、圧縮ビットマップを作成するプリンタドライバ、或いは、アプリケーション及びＯＳによりプリンタドライバを介さずに印刷データを生成する形態などにも適用可能である。
【００３６】
ＰＤＬドライバ６０２は、プリンタデバイスへ印刷ジョブを送信するために、印刷ジョブをスプーラ６０３に渡す。ここではＯＳをWindows（登録商標）と仮定しているのでスプーラ６０３はWindows（登録商標）スプーラである。ただし、本発明を適用するコンピュータのＯＳはWindows（登録商標）に限定されるものではなく、描画命令を備えるものであれば他のＯＳも適用可能であることは言うまでもない。
【００３７】
スプーラ６０３は、ユーザがユーザインタフェースを介して選択し指示したジョブ制御ポートモニタ６０４に印刷ジョブを渡して、ネットワークプリンタ１０４〜１０５等のプリンタデバイス６０６に送信させる手順をとる（矢印ａ）。以下、ネットワークプリンタ１０４〜１０５とプリンタデバイス６０６とは同義である。ここでは、ユーザがあらかじめジョブ制御プリントサービス６０５に印刷データを転送するジョブ制御ポートモニタ６０４を指定して印刷を指示したものとして説明を進める。また、プリンタドライバインタフェースを介して設定された用紙サイズ、ステイプル指示等の印刷設定情報も、ジョブ制御ポートモニタ６０４に送信される。ジョブ制御ポートモニタ６０４はジョブ制御プリントサービス６０５に印刷ジョブを送信する（矢印ｂ）。
【００３８】
また、クライアント（コンピュータ）１０１〜１０３において、別のクライアント６０８のジョブ登録アプリケーション６０９はＡＰＩ６１０を介し、ジョブ制御プリントサービス６０５に印刷データを投入することができる（矢印g）。
【００３９】
ジョブ制御プリントサービス６０５は、転送された印刷ジョブ及びデバイスの状態を管理する機能を備える。また、プリンタデバイス６０６から通知されるデバイス状態やジョブの状態などの情報を管理したり、プリンタデバイス６０６に対して所定の命令を発行したりする機能も備える。これは、複数のネットワークプリンタ１０４〜１０５のデバイス情報やジョブ情報を管理する機能に相当する。そして、印刷データをプリンタデバイス６０６に送信する前に、プリンタデバイス６０６が持つ印刷ジョブの順序管理機能に印刷の要求を発行する（矢印ｃ）。プリンタデバイス６０６の順序管理機能に基づき印刷の実行の順番が到来した場合には、プリンタデバイス６０６からの印刷指示（矢印ｄ）により、プリンタデバイス６０６に印刷データを送信する（矢印ｅ）。プリンタデバイス６０６は、印刷データの完了を確認すると印刷完了の通知をジョブ制御プリントサービス６０５に通知（矢印ｆ）したり、また、プリンタデバイス６０６の状態を通知したりする（矢印ｆ）。
【００４０】
プリントマネージャ６０７は、ユーザが、ジョブ制御プリントサービス６０５内部でプリントジョブがどのような状態にあるかを調べたり、プリントジョブを操作したりするためのユーザインタフェースを提供するプログラムである。プリントマネージャ６０７は、ジョブ制御プリントサービス６０５のソフトウェアのインタフェース（ＡＰＩ：Application Program Interface）を介して、ジョブ制御プリントサービス６０５と情報・指示をやり取りしている。
【００４１】
プリントマネージャ６０７は、主に、ジョブ制御プリントサービス６０５が管理するネットワークプリンタ１０４〜１０５の状態情報をイベントとして取得する機能を備える。イベントの通知の種別としては、トナー残量が少なくなった警告、クライアントとデバイスとの通信障害、メモリ不足、排紙トレイ満載などのエラー／警告情報の通知や、エラー状態から正常状態に復帰した正常情報の通知などが想定される。ここでのジョブ制御プリントサービス６０５はネットワークを介して通信可能な各デバイス（印刷装置）の印刷実行中、電力制御状態、障害情報（紙ジャム）等のステータスの通知を受け付ける機能を備える。更に、プリントマネージャ６０７は、ジョブ制御プリントサービス６０５に対してデバイスを指定したイベントを発行する。ジョブ制御プリントサービス６０５はこの発行されたイベントに基づくデバイスのステータスを認識して、その監視結果をプリントマネージャ６０７に通知する。
【００４２】
＜クライアントからプリンタデバイスへの印刷ジョブの流れ＞
次に、図７を用いてアプリケーション６０１からプリンタデバイス６０６までの印刷ジョブの流れについて説明する。ここで、図６と同じソフトウェア構成について同じ参照番号を付与しており、その機能については詳説しない。
【００４３】
図７に示すように、概念的には、ＰＤＬドライバ６０２、スプーラ６０３、ジョブ制御ポートモニタ６０４は、プリンタデバイス１０４〜１０５ごとに用意されている。ＯＳがWindows（登録商標）ウィンドウズ（登録商標）の場合には、これらをまとめてWindows（登録商標）プリントシステム７００と称する場合もある。
【００４４】
ジョブ制御プリントサービス６０５は、ネットワークプリンタ１０４〜１０５に対応する数のプリントキュー７０１、７０１Ａ及び出力ポート７０２、７０２Ａを含む。また、本実施形態の特徴である、プルプリントキュー７０５及びプルプリントポート７０６を備えている。なお、ジョブ制御プリントサービス６０５が有するプリントキュー及び出力ポートは接続されているプリンタデバイスの数に対応するものであり、２つに限られるものではない。これらのプリントキュー７０１，７０１Ａや出力ポート７０２、７０２Ａ、及びプルプリントポート７０６は、それぞれ後述する図１４における１４０１、１４０２に示されるようなテーブルを有し、ジョブ制御プリントサービス６０５によって管理される。
【００４５】
出力ポート７０２、７０２Ａには対応する印刷装置のＩＰアドレスまたは名前解決（ＤＮＳ：Domain Name System）で使用されるネームが関連付けられている。そして、このＩＰアドレスまたはネームに基づき、ジョブのスケジュール要求先やジョブの送信先が特定されジョブの送信（出力）が行なわれる。また、プルプリントポート７０６にはジョブの送信先は設定されておらず、ジョブの送信は行われない。
【００４６】
印刷を行なう場合、アプリケーション６０１はプリンタを指定して印刷指示を発行する。この印刷指示に基づいてＰＤＬドライバ６０２によって生成された印刷ジョブがジョブ制御ポートモニタ６０４からジョブ制御プリントサービス６０５に渡される。ジョブ制御プリントサービス６０５は、渡された印刷ジョブ情報を、まずプリントキュー７０１に保持し、出力ポート７０２に印刷ジョブの受け付けを指示する。出力ポート７０２は、印刷するジョブを受け付けると、当該出力ポートに設定されたＩＰアドレスに該当するプリンタデバイス６０６の後述するスケジューラに対してスケジュールの要求を発行する。プリンタデバイス６０６のスケジューラは、自身が持つスケジューリング機能に基づいて、複数のジョブ制御プリントサービス６０５から受け付けたジョブのスケジューリング処理を行い、出力ポート７０２に対して印刷指示（ジョブの送信許可）を発行する。印刷指示を受け付けた出力ポート７０２はプリンタデバイス６０６に印刷データを送信する。
【００４７】
またプルプリントポート７０６を指定して印刷を指示した場合は、印刷ジョブはプルプリントキュー７０５に登録され、プルプリントポート７０６内に留置かれる。そして、プリンタデバイスから後述するプルプリント要求を受信すると、受信した情報により特定されたプリントキューに受信した情報により特定された印刷ジョブを再キューイングし、対応する出力ポートから等が印刷ジョブを出力する。尚、再キューイングとは、プルプリントキュー７０５にキューイングされているジョブをプリントキュー（７０１又は７０１Ａ）にキューイングすることである。
【００４８】
＜ネットワークプリンタのソフトウェア構成＞
図８は、ネットワークプリンタ１０４〜１０５内のネットワークプリントサーバ５２１およびプリンタコントローラ５２２における各制御機能を実現するソフトウェア構成を説明するブロック図である。なお、各制御機能は、ＣＰＵ５０１、５０８によって制御プログラムを実行することで実現される。
【００４９】
オペレーティングシステム８０１はネットワークプリントサーバ５２１の基本的なデータの入出力制御を統括する。オペレーティングシステム８０１において、ファイルシステム８０５はプログラム／データ記憶部８０８との入出力制御を行なう。拡張インタフェースドライバ８０７は、プリンタコントローラ５２２と拡張インタフェース５１７を介してプリンタコントローラ５２２との通信を制御する。ネットワークインタフェースドライバ８０６は、ローカルエリアネットワーク（ＬＡＮ１０６）の通信媒体を介してクライアント１０１〜１０３等の外部装置と通信を行なう。
【００５０】
アプリケーションプログラムインタフェース（ＡＰＩ）８０２は、ネットワークプリントサーバ５２１で動作するアプリケーションプログラムに対してオペレーティングシステムが備える各種機能を提供する。ネットワークプリントサーバ５２１で動作するアプリケーションプログラムとしては、ユーザアプリケーション８０３や管理アプリケーション８０４等があげられる。尚、管理アプリケーション８０４は、ネットワークプリンタ１０４〜１０５やユーザアプリケーションの登録・管理を行う。また、アプリケーションプログラムインタフェース８０２が提供する機能の例としては、
・印刷データの送受信機能を提供するデータ転送ＡＰＩ、
・ビットマップ画像や表示メッセージ等のリソースデータの入出力制御を行なうリソース制御ＡＰＩ、
・ネットワークプリンタ１０４〜１０５の再起動や設定値の初期化や設定等の制御を行なうプリンタ制御ＡＰＩ、
・印刷ジョブの取り消しや再印刷指示などを制御するジョブ制御ＡＰＩ、
・ネットワークプリントサーバ５２１の再起動や設定値の初期化や設定、およびアプリケーションプログラムの起動、登録、削除を行なうプリントサーバ制御ＡＰＩがあげられる。
【００５１】
プリンタコントローラ５２２のオペレーティングシステム８１２は、プリンタコントローラ５２２における各種処理制御を統括する。オペレーティングシステム８１２は、プリントエンジン５１６との通信制御を行なうプリントエンジン制御部８１４と、機種依存リソース／プログラム記憶部８１６との入出力制御を行なうファイルシステム８１５を有する。機種依存リソース／プログラム記憶部８１６は、ネットワークプリントサーバ５２１から参照されるビットマップ画像やエラーメッセージ等の機種依存リソースや、ネットワークプリントサーバ上で動作する機種依存アプリケーションプログラム等を記憶する。
【００５２】
拡張インタフェース制御部８１３は、拡張インタフェース５１７を介してネットワークプリントサーバ５２１との通信制御を行なう。また、拡張インタフェース制御部８１３は、各種の論理インタフェースを介してネットワークプリントサーバ５２１から要求された命令をオペレーティングシステム８１２に転送し、その処理結果をネットワークプリントサーバ５２１に対して返信する。拡張インターフェース制御部８１３が備える論理インタフェースとしては、
・制御種別毎に印刷データの入出力を制御するデータ転送論理インタフェース、
・機種依存リソース／プログラム記憶部５０９に記憶された各種データの入出力を制御するリソース制御論理インタフェース、
・ネットワークプリンタ１０４〜１０５の再起動や設定値の初期化や設定等の制御を行なうプリンタ制御論理インタフェース、
・印刷ジョブの取り消しや再印刷指示などを制御するジョブ制御論理インタフェースがあげられる。
【００５３】
ＵＳＢ制御部８１８及びＵＳＢケーブルで接続された認証情報読み取り装置８２０は、図５における外部Ｉ／Ｏインタフェース５１９及び外部装置５２０の具体例である。ＵＳＢ制御部８１８は、認証情報読み取り装置８２０を介して、認証情報記録媒体８２１から認証情報を取得することができる。
【００５４】
ネットワーク制御部８１１は、ネットワークインタフェースドライバ８０６がＬＡＮ１０６を介してクライアント１０１〜１０３からの通知を受け付ける。ネットワーク制御部８１１は、どのクライアントからの通信であるかを判断したり、通信の制御を行うことができる。ＬＰＤ／ＲＡＷ８１０は、クライアントが送信する印刷データを受け付けるプロトコルを制御するモジュールであり、受け付けた印刷データをプリンタコントローラ５２２に渡す機能を有する。
【００５５】
また、ユーザは、アプリケーション８０３の制御プログラムはプリンタコントローラ５２２の機種依存リソース／プログラム記憶部８１６またはネットワークプリントサーバ５２１のプログラム／データ記憶部８０８に格納される。ネットワークプリンタ１０４〜１０５が起動すると記憶部８０８または８１６に格納されたアプリケーションが持つライセンスと、ライセンス記憶部８０９、８１７が持つライセンスとが比較される。比較の結果、ライセンスが一致した場合は適正アプリケーションプログラムであると判断され、アプリケーションプログラムがネットワークプリントサーバ５２１のＲＡＭ５０２にロードされる。
【００５６】
＜ネットワークプリントサーバのアプリケーションソフトウェア構成＞
次に、本実施形態のプルプリントを実現するデバイススケジューラとプルプリントエージェントのソフトウェア構成について説明する。これらのソフトウエアはユーザアプリケーション８０３の一部であり、本プリントシステムのスケジューリング機能やクライアント１０１〜１０３から受け付けた印刷ジョブを管理する機能を有する。図９は本実施形態のデバイススケジューラ９００及びプルプリントエージェント９０６の機能構成を示すブロック図である。
【００５７】
デバイススケジューラ９００において、通信接続管理部９０１は、クライアント１０１〜１０３の接続状況や、クライアントに通知すべき情報を管理する。通信接続管理部９０１は、接続されているクライアントを、図２０に示されるクライアント情報２００２及びクライアント管理キュー２００１を用いて管理する。通信接続管理部９０１は、アプリケーションプログラムインターフェース８０２のデータ転送ＡＰＩ、ネットワークインタフェースドライバ８０６を経由してクライアントと通信を行う。
【００５８】
スケジュール管理部９０２は、ジョブ管理部９０３、デバイス管理部９０４を有し、クライアント１０１〜１０３から受け付けた印刷ジョブのスケジューリングを行う。ジョブ管理部９０３は、クライアント１０１〜１０３が発行したスケジュール要求や、クライアント１０１〜１０３が印刷を実行（印刷ジョブを送信）したジョブを管理する。ジョブ管理部９０３は、クライアントが印刷するジョブの情報２１０２をジョブ管理キュー２１０１で管理している（図２１）。デバイス管理部９０４は、プリンタコントローラ５２２が持つプリンタの状態や受け付けた印刷ジョブの状態をイベントハンドラ９０５経由でプリンタコントローラ５２２から受け付ける。そして、デバイス管理部９０４は、プリンタコントローラ５２２から受け付けたイベントを通信接続管理部９０１やジョブ管理部９０３に通知する。
【００５９】
プルプリントエージェント９０６において、ＵＳＢ管理部９０７は、ＵＳＢ制御部８１８を介し、認証情報（ジョブ情報等）を取得しサーバ通信部９０８に渡す。デバイス管理部９０９はデバイスのアドレス情報等を取得しサーバ通信部９０８に渡す。サーバ通信部９０８は取得した認証情報を基にジョブ特定情報を取得し、それら情報をジョブ制御プリントサービス６０５に送信する。
【００６０】
＜プリントシステムの動作の概略（アクティビティ図）＞
図１０は、本実施形態によるプリントシステムの概略の動作を示すアクティビティ図である。図１０を用いて、本実施形態によるプリントシステムの動作概略を説明する。
【００６１】
まずステップＳ１００１において、プルプルプリントエージェント９０６及びデバイススケジューラ９００の各タスクが初期化される。初期化処理の中でデバイススケジューラ９００は、ステップＳ１００２において、プリンタコントローラ５２２に通知すべきイベントの登録を行なう。これは、プリントエンジン内でジョブが処理された際のジョブ状態変化や、或いは、プリンタのジャムやカバーオープンと言ったエラーなどのデバイス状態変化等を登録したクライアント(デバイススケジューラ９００)へ通知するためのものである。初期化処理が完了するとプルプリントエージェント９０６及びデバイススケジューラ９００はイベント待ちのループに入る。
【００６２】
ステップＳ１００３において、プルプリントエージェント９０６は、認証情報記録媒体８２１が認証情報読取装置８２０に挿入されたことを検知すると、認証情報記録媒体８２１に記録されている認証情報を読み込む。そして、この認証情報を基にジョブを特定するためのジョブ特定情報を得る。ジョブ特定情報を得る手法としては、
・認証情報記憶媒体８２１に書き込まれている情報をそのまま用いる手法、或いは、
・別途認証用の認証サーバを儲け、認証情報記憶媒体８２１に書き込まれている情報を送信し、認証サーバよりジョブ特定情報を得る手法、等があげられる。
【００６３】
続いてステップＳ１００４において、プルプリントエージェント９０６は、プリンタコントローラ５２２を経由してデバイスの構成情報を取得する。ここで取得する構成情報は、用紙残量やトナーの有無と言った消耗品情報と、両面ユニットやステイプル装置（フィニッシャー）の使用可否といった装置情報を含む。また、デバイスのネットワークアドレス等もデバイスの構成情報に含めて考えることができる。
【００６４】
次にステップＳ１００５において、プルプリントエージェント９０６は、ステップＳ１００３で取得したジョブ特定情報とステップＳ１００４で取得したデバイス構成情報をジョブ制御プリントサービス６０５へ通知する。この通知を印刷開始通知と定義する。なお、この印刷開始通知には、ジョブ特定情報及びデバイス構成情報の何れか一方を含ませても良い。ジョブ制御プリントサービス６０５は印刷開始通知を受け取るとジョブ特定情報及びデバイス構成情報から印刷可能なジョブを選択する。この処理は図１７Ａ及び図１７Ｂにより後述する。
【００６５】
ジョブ制御プリントサービス６０５は印刷を実行するために、まずステップＳ１００６においてEvent登録及びジョブのスケジュール予約を行なう。このEvent登録は前述のステップＳ１００２と同様である。また、スケジュール予約は図１７Ａを用いて後述する。続いてステップＳ１００７でスケジュールＵＰを受ける。スケジュールＵＰを受けたときの処理は図χで後述する。ジョブ制御プリントサービス６０５は、ステップＳ１００７でスケジュールＵＰを受けると、ステップＳ１００８で対応するジョブをプリンタコントローラ５２２に送信する（厳密には、ＬＰＤ／ＲＡＷ８１０にジョブが送信される）。このジョブ送信時の処理は図１８を用いて後述する。
【００６６】
＜ジョブ制御プリントサービスにおけるジョブ登録シーケンス＞
図１１Ａは、アプリケーション６０１により生成されたジョブがジョブ制御プリントサービス６０５にプルプリント用のジョブとして登録されるまでの処理を示したフローチャートである。
【００６７】
ステップＳ１１０１において、アプリケーション６０１がジョブを生成する。次に、アプリケーション６０１はプリンタを指定して印刷指示を発行する。ステップＳ１１０２では、この印刷指示に基づいて、ＰＤＬドライバ６０２によって生成された印刷ジョブがジョブ制御ポートモニタ６０４に渡される。ジョブ制御ポートモニタ６０４は、ステップＳ１１０３においてジョブ識別情報を取得し、ステップＳ１１０４において当該印刷ジョブにこのジョブ識別情報を埋め込む。具体的には、図１４におけるジョブ情報１４０２内に当該ジョブ識別情報を書き込む。このジョブ識別情報は図１０においてステップＳ１００３で取得されるジョブ特定情報と対応した情報であり、図１２に示されるようなＧＵＩ（Graphic User Interface）１２０１を用いてユーザにより入力される。
【００６８】
図１２は、ジョブ特定情報としてのジョブ識別情報をユーザが入力するためのＧＵＩの一例を示す図である。ユーザが、印刷指示を行う際にジョブ識別情報を登録するかしないか、つまりプルプリントするかしないかを選択する際に、プルプリントすることを選択するとウィンドウ１２０１が開く。ウィンドウ１２０１において、埋め込み候補リスト１２０５には、実際に印刷ジョブに埋め込むジョブ識別情報が表示される。図１４のジョブ情報１４０２に示されるように、１つの印刷ジョブに対して複数のジョブ識別情報を埋め込むことも可能である。従って、それらジョブ識別情報のいずれかに対応したジョブ特定情報を得ることができるユーザが当該印刷ジョブのプルプリントを行うことができる。登録リスト１２０３はユーザビリティをあげるための表示の一例であり、過去に登録したジョブ識別情報がリスト表示される。登録リスト１２０３から所望のジョブ識別情報を選択することでユーザは容易にジョブ識別情報を登録することができる。登録リスト１２０３は、ユーザの権限によって自動的に表示してもよい。また、登録ボタン１２０２を用いて自由にユーザがジョブ識別情報を入力し、登録することも可能である。そして、ジョブ埋め込みボタン１２０６を押すことで、ジョブ識別情報が印刷ジョブに埋め込まれる。
【００６９】
尚、図１２は一例であり、例えば、ジョブ識別情報にプルプリント回数という属性を追加し、１つの印刷ジョブをプルプリントすることのできる回数を設定できるようにしてもよい。本実施形態では基本的に１つのジョブ識別情報に対して１回のプルプリントが可能としており、プルプリント回数の設定インターフェースは示されていない。尚、クライアント１０１〜１０３に接続された認証情報読取装置８２０から、認証情報記録媒体８２１に記憶されているジョブ特定情報を取得して、これを埋め込むべきジョブ識別情報としてもよい。このようにすれば、認証情報記録媒体８２１から自動的にジョブ識別情報が取得され、印刷ジョブに埋め込まれることになるので、図１２のようなＧＵＩを用いてジョブ識別情報を設定する必要が無くなる。
【００７０】
ジョブ識別情報を印刷ジョブに埋め込むと、処理はステップＳ１１０５に進み、ジョブ情報１４０２のジョブの状態が「停止」に設定される。そして、ステップＳ１１０６において、プルプリントキュー７０５に状態を「停止」にしたジョブを留め置く。このプルプリントキュー７０５は前述したプリントキュー７０１と同等であるが、対応するプリンタへの出力ポートが設定されていない状態となっている。
【００７１】
また、ジョブ制御プリントサービス６０５へのジョブの登録方法としては、アプリケーション６０１から登録する方法の他に、ジョブ登録アプリケーション６０９からジョブを登録する方法もある。この場合、ジョブ登録アプリケーション６０９はジョブ制御プリントサービス６０５と異なるクライアントＰＣ上に存在していても良い。
【００７２】
図１１Ｂは、ジョブ登録アプリケーション６０９からのジョブ登録手順を説明するフローチャートである。ジョブ登録アプリケーション６０９からジョブを登録するためには、まず、ステップＳ１１０７において、ＰＤＬドライバを通したジョブを作成し、ジョブ登録アプリケーション６０９から作成したジョブを選択する。次に、ステップＳ１１０８において、ジョブ登録アプリケーション６０９から、選択した印刷ジョブのジョブ識別情報を取得する。このジョブ識別情報は図１０においてステップＳ１００３で取得されるジョブ特定情報と対応した情報であり、ステップＳ１１０３と同様に、例えば図１２のＧＵＩを用いてユーザが設定できる。ステップＳ１１０９では、このジョブ識別情報を印刷ジョブに埋め込む。尚、ジョブ識別情報を印刷ジョブに埋め込む処理の詳細は後述する。次にステップＳ１１１０でジョブの状態を「停止」にする。そして、ステップＳ１１０６でＡＰＩ６１０を介し、ジョブ制御プリントサービス６０５のプルプリントキュー７０５にジョブを留め置く。
【００７３】
＜プルプリントエージェントからのジョブの特定（印刷開始通知）＞
図１３は、プルプリントエージェント９０６が認証情報を検知し、認証情報記録媒体８２１からプルプリントするために必要な情報をジョブ制御プリントサービス６０５に通知（印刷開始通知）する処理を示すフローチャートである。
【００７４】
ステップＳ１３０１において、プルプリントエージェント９０６は、認証情報読み取り装置８２０が認証情報記録媒体８２１の状態変化を検知したか否かをチェックする。認証情報記録媒体８２１の状態変化とは、例えば、認証情報読み取り装置８２０がカードリーダである場合は、カードが挿入されたことを状態変化として検出する。また、認証情報読み取り装置８２０で認証情報記録媒体８２１をセンサによって検知する場合は、認証情報記録媒体８２１の存在の変化を状態の変化として検出する。また、認証情報読み取り装置８２０にユーザが手等をかざすことにより認証するような生体認証装置の場合も、上記と同様に、認証対象の生体が検知されたことを状態変化とすればよい。
【００７５】
認証情報記録媒体８２１の状態変化が検知された場合は、ステップＳ１３０２において、認証情報記録媒体８２１に認証情報が存在するかどうかをチェックし、存在する場合はその認証情報を取得する。次にステップＳ１３０３において、プルプリントエージェント９０６は、取得した認証情報を基にジョブ特定情報を取得する。このジョブ特定情報の取得手法としては、例えば、認証情報記憶媒体８２１に書き込まれている情報をそのまま用いるようにしてもよいし、別途設けた認証サーバに認証情報を送信し、認証サーバよりジョブ特定情報を得るようにしてもよい。ここで、ジョブ特定情報を得ることが出来なかった場合は処理を終了し、認証情報記憶媒体の形式が不正であることをユーザに通知する。この通知の手段としては、プリンタのＬＥＤ部に文字列として表示する手段、ＢＥＥＰ音を発する機構がある場合に音によって通知する手段、エラーメッセージを印刷する手段等が考えられる。
【００７６】
ジョブ特定情報が得られると、ステップＳ１３０４において、デバイスからデバイスを特定するためのデバイスアドレスとデバイスの構成情報を取得する。構成情報は、用紙残量やトナーの有無と言った消耗品情報と、両面ユニットやステイプル装置（フィニッシャー）の使用可否といった装置情報を含む。
【００７７】
次にステップＳ１３０５で、ジョブ制御プリントサービス６０５の宛先を取得する。このジョブ制御プリントサービス６０５の宛先を取得する手段としては、
・上記認証情報記憶媒体に記憶させておき、認証情報を取得した時点で特定する方法、
・上記認証サーバよりジョブ特定情報を得るときに同時に取得する方法、
・プルプリントエージェントに固定の宛先として記憶しておき、その宛先を利用する方法、等が考えられる。本実施形態では、認証情報を取得した時点で特定する方法を用いて説明する。
【００７８】
次にステップＳ１３０６で、取得したジョブ特定情報及びデバイスアドレス、デバイス構成情報を、上記取得した宛先のジョブ制御プリントサービス６０５に通知する。
【００７９】
＜印刷開始通知によるジョブ制御プリントサービス６０５によるスケジュール登録＞
図１４は、クライアント１０１〜１０３のジョブ制御プリントサービス６０５において、プルプリントキューが保持するジョブ情報１４０２と、複数発生するジョブ情報１４０２を管理するジョブ管理キュー１４０１を示す図である。
【００８０】
ジョブ情報１４０２は、クライアント１０１〜１０３が印刷を開始するために発行するスケジュール要求に付加される印刷ジョブの情報である。ジョブ情報１４０２は、印刷ジョブのドキュメント名、ジョブ管理部９０３が発行したジョブＩＤ、クライアントで印刷を開始したユーザ名、ジョブのページ数、印刷ジョブの状況を表すジョブ状態を含む。又、ジョブ情報１４０２には、クライアント１０１〜１０３が転送する印刷データに含まれるジョブデータＩＤや、印刷したクライアントのＩＰアドレスも登録される。なお、ジョブ情報１４０２における各項目のうち、いくつかは、クライアント１０１〜１０３側からスケジューラに対して発行したスケジュール要求に対する、スケジューラからの応答情報も含まれる。例えば、ジョブ管理部９０３が発行したジョブＩＤは、スケジュール要求に対応するスケジューラからの応答情報である。従って、例えばジョブ管理部９０３が発行したジョブＩＤは、ジョブ制御プリントサービス６０５によるスケジュール要求発行時には未だ設定されていない。
【００８１】
ジョブ状態は、クライアント１０１〜１０３が印刷のスケジュール要求を発行してからジョブがプリンタから無くなるまでの状態を表しており、印刷待機中、スケジュールＵＰ状態、転送中、転送済み、印刷完了等の状態が存在する。ジョブデータＩＤは、印刷データに含まれるジョブのＩＤで、プリンタコントローラ５２２内でジョブ状態を通知するとき等に付加させるＩＤである。又、上述したように、１つ又は複数のジョブ識別情報が登録されている。
【００８２】
ジョブ管理キュー１４０１は、複数のジョブ情報１４０２を管理する管理キューである。ジョブ制御プリントサービス６０５は、ジョブ制御ポートモニタ６０４等から印刷ジョブを受け付けるとそのジョブ情報１４０２を管理キュー１４０１に登録する。また、印刷ジョブの印刷終了の通知をプリンタデバイス６０６から受信すると、該当するジョブ情報が削除される。
【００８３】
図１５は、ジョブ制御プリントサービス６０５が管理するプリントキュー、出力ポートの情報を表している。プリンタ情報１５０１は、ジョブ制御プリントサービス６０５が管理するそれぞれのプリンタの情報を表していて、プリンタ名などの情報が含まれている。ポート情報１５０２は、ジョブ制御プリントサービス６０５が管理する各出力ポートの情報を表していて、印刷するデバイスのＩＰアドレスなどの情報が含まれている。
【００８４】
また、図１６は、認証情報読み取り装置８２０で認証情報記録媒体８２１を検知し、ジョブ特定情報を取得したプルプリントエージェント９０６が、ジョブ制御プリントサービス６０５に送信する印刷開始通知に付随する情報テーブルである。情報テーブル１６０１の内容は、デバイスアドレス、ジョブ特定情報、デバイス構成情報である。
【００８５】
図１７Ａは、クライアントのジョブ制御プリントサービス６０５がプルプリントエージェント９０６から印刷開始通知（ジョブ特定情報等）を受け付けてから、対応する印刷ジョブをスケジューラに登録するまでの流れを示している。
【００８６】
ステップＳ１７０１において、プルプリントエージェント９０６からデバイスアドレス、ジョブ特定情報、デバイス構成情報を取得（情報テーブル１６０１を取得）する。そして、ステップＳ１７０２において、取得したデバイスアドレスに一致するプリントキュー（本例では７０１又は７０１Ａ）を特定する。また、ステップＳ１７０３において、ジョブ制御プリントサービス６０５内で管理されているプルプリントキュー７０５に留置かれている印刷ジョブを調べ、受信したジョブ特定情報より出力する印刷ジョブを特定する。
【００８７】
ステップＳ１７０３におけるジョブ特定処理の詳細について図１７Ｂのフローチャートを参照して説明する。
【００８８】
ステップＳ１８０１において、ステップＳ１７０１で取得した情報の中から、ジョブ特定情報を取得する。次にステップＳ１８０２において、ジョブ制御プリントサービス６０５内で管理されているプルプリントキュー内の全てのジョブを順次検索する。ステップＳ１８０３において、全ての検索が完了したか否かを判定し、全ての検索が完了するまでステップＳ１８０４〜Ｓ１８０７の処理を繰り返す。プルプリントキュー内の全てのジョブの検索が完了した場合は、ステップＳ１８０３からステップＳ１８０８に進む。
【００８９】
ステップＳ１８０４では、各印刷ジョブに対応するジョブ情報１４０２を検索し、各ジョブ情報が有する１つ又は複数のジョブ識別情報とプルプリントエージェント９０６から取得したジョブ特定情報とを比較する。ジョブ特定情報と一致するジョブ識別情報が存在しない場合は、次のジョブ情報を対象とするべくステップＳ１８０３に処理を戻す。ジョブ特定情報と一致するジョブ識別情報が存在する場合は、ステップＳ１８０５に進み、ジョブ情報１４０２内にジョブ識別情報が複数登録されているかを調べる。単独のジョブ識別情報が登録されている場合はステップＳ１８０６において、印刷登録候補リストに検索した印刷ジョブを登録し、ステップＳ１８０３に処理を戻す。一方、複数のジョブ識別情報が登録されている場合はステップＳ１８０７に進み、一致したジョブ識別情報を抜き出し、当該印刷ジョブを複製し、複製した印刷ジョブのジョブ情報１４０２内に抜き出したジョブ識別情報のみを埋め込む。そして、ステップＳ１８０６において、この複製した印刷ジョブを印刷登録候補リストに登録する。
【００９０】
プルプリントキュー内の印刷ジョブの全検索が終了すると、ステップＳ１８０８において、ジョブ登録候補リストに登録されているジョブが（Ａ）０個だった場合、（Ｂ）１個だった場合、（Ｃ）複数個だった場合で処理を分岐する。
（Ａ）０個だった場合：ステップＳ１８０９において、プルプリントエージェント９０６に対してエラー（登録ジョブがない旨）を返し、処理を終了する。
（Ｂ）１個だった場合：ステップＳ１８１０において、印刷登録候補リストの印刷ジョブを登録（再キューイング：Ｓ１７０４の処理）する処理へ進む。
（Ｃ）複数個だった場合：ステップＳ１８１１において、それら全ての印刷ジョブを１つのグループとして、それらジョブ情報１４０２にグループジョブＩＤを登録する。このグループジョブＩＤはグループ毎に違うものを設定する。本実施形態では単に連続したナンバーをグループＩＤとして割り当てる。そして、ステップＳ１８１２において、印刷候補リストの先頭の印刷ジョブの登録処理（再キューイング：Ｓ１７０４の処理）を開始する。
【００９１】
以上の処理により、印刷登録候補リスト内のジョブは単一のジョブ識別情報と、複数のジョブが存在する場合は同一のグループＩＤを含むものとなる。そのようなジョブ識別情報の例を図１４の１４０３に示す。
【００９２】
図１７に戻り、ステップＳ１７０４において、受け付けた印刷ジョブを全てステップＳ１７０２で特定したプリントキュー７０１（又は７０１Ａ）へ再キューイングし、プルプリントキュー７０５から削除する。そして、ジョブ制御プリントサービス６０５は、それら再キューイングした印刷ジョブの情報をプリントキュー７０１（又は７０１Ａ）のジョブ管理キューに登録する。
【００９３】
次に、ステップＳ１７０５において、ジョブ制御プリントサービス６０５は、デバイススケジューラ９００に接続し、接続要求コマンドを発行する。クライアントが接続要求を発行すると、クライアントの情報２００２がデバイススケジューラ９００のクライアント管理キュー２００１に登録され、以降、クライアントとデバイススケジューラ９００間で情報のやり取りが可能となる。ステップＳ１７０６において、ジョブ制御プリントサービス６０５は、デバイススケジューラ９００に対して、ジョブイベント、デバイスイベントを登録する。ジョブイベントが登録されると、自クライアントが印刷したジョブや、他のクライアントが印刷したジョブの状態の変化の通知がデバイススケジューラ９００より当該クライアントへ通知されることになる。また、デバイスイベントを登録すると、プリンタデバイス６０６の状態の変化が通知されるようになる。
【００９４】
ステップＳ１７０７では、デバイススケジューラ９００で管理しているジョブ管理キュー２１０１に登録されているジョブのリストを取得する。このジョブリストとジョブイベントにより、デバイススケジューラ９００が管理するジョブの印刷状況を把握することが可能となる。
【００９５】
以上の処理により、印刷する準備が整い、ジョブ制御プリントサービス６０５は、ステップＳ１７０８において印刷するジョブを全てデバイススケジューラ９００に登録してスケジュール要求する。また、該スケジュール要求に対してスケジューラからジョブ管理部９０３が発行したジョブＩＤ等が返信され、ジョブ情報１４０２として設定される。その後、ステップＳ１７０４に戻り、次の指示（スケジュールＵＰ）を待つ。
【００９６】
＜スケジュールＵＰによる印刷の開始＞
ジョブ制御プリントサービス６０５は、以上のようにしてスケジュール要求を終えた後、デバイススケジューラ９００からスケジュールＵＰのコマンドを受け付けると、対応する印刷ジョブ（印刷データ）をプリンタデバイス６０６へ送信する。以下、ジョブ制御プリントサービス６０５がスケジュールＵＰを受信した場合の処理を図１８のフローチャートにより説明する。
【００９７】
この処理は、プリントキュー７０１（又は７０１Ａ）に登録されているジョブ情報１４０３に、グループジョブＩＤが設定されているかどうかで処理が分かれる。グループジョブＩＤが設定されていない場合（Ａ）はステップＳ１７１０に処理を移行し、設定されている場合（Ｃ）はステップＳ１７１４に処理を移行する。
【００９８】
（Ａ）印刷ジョブにグループジョブＩＤが設定されていない場合。
ステップＳ１７０９Ａにおいてデバイススケジューラ９００からスケジュールＵＰのコマンドを受け付けるとステップＳ１７０９Ｂに進む。ステップＳ１７０９Ｂにおいて、ジョブ制御プリントサービス６０５は、印刷ジョブのジョブ情報１４０３にグループジョブＩＤが設定されているかを調べる。設定されていない場合はステップＳ１７１０に処理を移行する。
【００９９】
ステップＳ１７１０では、ジョブ制御プリントサービス６０５は、転送指示を受けた印刷ジョブの転送を開始する。印刷データの送信が開始されるとステップＳ１７１１において、デバイススケジューラ９００に転送が開始されたことを通知するために、転送開始状態を通知する。ステップＳ１７１２において、印刷データの転送が終了するとステップＳ１７１３においてデバイススケジューラ９００に転送が終了したことを通知する。
【０１００】
（Ｂ）印刷ジョブにグループジョブＩＤが設定されている場合
一方、スケジュールＵＰで指定された印刷ジョブのジョブ情報１４０２にグループジョブＩＤが設定されていた場合は、ステップＳ７１７０９ＢからステップＳ１７１４に進む。ステップＳ１７１４において、ジョブ制御プリントサービス６０５は、ジョブ管理キュー１４０１内に登録されている全てのジョブについて、ジョブ情報１４０２に同じグループジョブＩＤが設定されているかを調べる。そして、同じグループジョブＩＤが設定されているジョブ全てを選択する。そして、ステップＳ１７１５において、選択された全ての印刷ジョブの転送を開始する。このとき、ジョブ制御プリントサービス６０５は、それら全ての印刷ジョブを同一セッションで、ＲＡＷプロトコルによって転送する。即ち、同じグループＩＤが設定されている複数の印刷ジョブについては一括して転送が行われる。
【０１０１】
その後、ステップＳ１７１６において全印刷ジョブの転送が開始されたことをデバイススケジューラに通知する。そして、ステップＳ１７１７により、同一のグループＩＤを持つ全ての印刷ジョブの転送が終了するまでの間、ステップＳ１７１８，Ｓ１７１９の処理が実行される。即ち、ステップＳ１７１８において、ジョブの転送が終了するたびに、ステップＳ１７１９の処理に移行し、ステップＳ１７１９において転送終了した印刷ジョブの転送終了通知をデバイススケジューラ９００に対して送信する。
【０１０２】
このように同一のセッションで同一グループＩＤを有する全ての印刷ジョブを送信し、印刷ジョブの転送を１セッションしか受け付けることができないネットワークプリンタであった場合は、印刷ジョブ間に他者の印刷が割り込むのを防ぐことができる。また、同時に複数セッションを張ることが可能なネットワークプリンタであった場合は、印刷データを送らない仮のセッションを張り１セッションしか印刷できないようにすることで他者の印刷の割り込みを防ぐことが可能である。或いは、ネットワークプリンタに１セッションモードを設定できる機能を持たせるといった方法によって、他者の印刷の割り込みを防ぐことが可能である。
【０１０３】
以上のようにＲＡＷプロトコルを利用した場合は上述した方法で一括して印刷ジョブを送信することで他者の印刷ジョブの割り込みを防ぐことが可能である。一方、ＬＰＤプロトコルで印刷ジョブを転送する場合は、印刷ジョブ毎に送信されるＬＰＤ開始と終了を、それぞれ最初の印刷ジョブの開始時と最後の印刷ジョブの終了時にのみ送信することによって一括した印刷ジョブの送信を実現できる。そして、このような一括した印刷ジョブの送信により、同一グループＩＤを有する複数の印刷ジョブの印刷を、他者に割り込まれることなく実行させることが可能になる。
【０１０４】
＜ジョブ制御プリントサービスにおけるその他の処理＞
図１９は、デバイススケジューラからの通知やコマンドを受け付けた場合のジョブ制御プリントサービス６０５の処理の流れを説明するフローチャートである。
【０１０５】
ステップＳ１９０１では、デバイススケジューラ９００から受信したデータが、ジョブイベントの通知であるか、ジョブリストの返送であるかを判断する。ジョブイベントであった場合は、ステップＳ１９０２に処理を移行し、ジョブリストであった場合はステップＳ１９０８に処理を移行する。ステップＳ１９０８では、ジョブリストが返送されてくると、ジョブ制御プリントサービス６０５が管理するジョブ管理キュー１４０１にジョブリストから得られたジョブ情報を設定する。
【０１０６】
ステップＳ１９０２では、デバイススケジューラから通知されたジョブイベント通知の内、ジョブ完了通知であるか、ジョブ状態変更通知であるかを判断する。ジョブ状態変更通知であれば、ステップＳ１９０９において、該当するジョブ情報のジョブ状態を更新する。ステップＳ１９０２では、受け付けたイベント通知がジョブ完了通知であれば、ステップＳ１９０３に進む。ステップＳ１９０３において、ジョブ制御プリントポート６０５は該当するジョブ情報を、ジョブ管理キュー１４０１から削除する。
【０１０７】
ステップＳ１９０４では、ジョブ管理キュー１４０１に、印刷が終了していない自クライアントのジョブが残されているかを確認する。残されていれば、まだデバイススケジューラ９００とのやり取りが必要であるため、デバイススケジューラとの接続を継続するために、ステップＳ１９０１に処理を移行する。ステップＳ１９０４で、自クライアントのジョブがなければ、ステップＳ１９０５に処理を移行し、デバイススケジューラ９００との接続を終了するための処理を開始する。即ち、ステップＳ１９０５では、接続を開始したときにデバイススケジューラ９００に、登録したジョブイベント、デバイスイベントの登録解除を依頼する。デバイススケジューラ９００は、この依頼によりクライアント情報のイベント登録の内容を削除する。このイベント登録の情報がなければ、デバイススケジューラ９００が管理するジョブの状態が変化されてもイベントが通知されてくることはない。次にステップＳ１９０６において、デバイススケジューラ９００に対して切断の要求を発行する。デバイススケジューラ９００が切断要求を受け付けると、クライアント管理キューから該当するクライアント情報を削除する。ステップＳ１９０７では、デバイススケジューラ９００とのセッションを切断する処理を行い、処理をステップＳ１９０１で待機する。
【０１０８】
＜デバイススケジューラによるクライアント及びジョブの管理＞
図２０は、通信接続管理部９０１が管理する、接続されているジョブ制御プリントサービス６０５のクライアント情報２００２と、複数のクライアント情報２００２を管理するクライアント管理キュー２００１である。クライアント情報２００２は、接続するクライアント毎に通信接続管理部９００が割り振ったクライアントＩＤ、接続するジョブ制御プリントサービス６０５のＩＰアドレス、接続するクライアントが登録したイベントの種類等の情報を持つ。ここで、イベントの種類とは、プリンタコントローラ５２２が発行するデバイス状態のイベントやジョブ状態のイベントの種類を表す。クライアント管理キュー２００１は、接続したジョブ制御プリントサービス６０５のクライアント情報をキューの形式で保持する。クライアントとのセッションが開始されると、該当するクライアントの情報が本管理キューに登録され、切断されると該当するクライアント情報が削除されるようになっている。
【０１０９】
図２１は、ジョブ制御プリントサービス６０５が印刷すべく発行したスケジュール要求に付加するジョブ情報と２１０２、複数発生するジョブ情報を管理するジョブ管理キュー２１０１を示す図である。
【０１１０】
ジョブ情報２１０２は、ジョブ制御プリントサービス６０５が印刷を開始するために発行するスケジュール要求に付加される印刷ジョブの情報である。このジョブ情報２１０２は、印刷ジョブのドキュメント名、ジョブ管理部９０３が発行したジョブＩＤ、クライアントで印刷を開始したユーザ名、ジョブのページ数、印刷ジョブの状況を表すジョブ状態を含む。更に、ジョブ情報２１０２は、ジョブ制御プリントサービス６０５が転送する印刷データに含まれるジョブデータＩＤ、印刷したクライアントのＩＰアドレスが登録される。尚、ジョブ状態は、ジョブ制御プリントサービス６０５が印刷のスケジュール要求を発行してからジョブがプリンタから無くなるまでの状態を表しており、印刷待機中、スケジュールＵＰ状態、転送中、転送済み、印刷完了などの状態が存在する。ジョブデータＩＤは、印刷データに含まれるジョブのＩＤで、プリンタコントローラ５２２内でのジョブ状態を通知するときなどに付加させるＩＤである。
【０１１１】
ジョブ管理キュー２１０１は、複数のジョブ情報２１０２を管理するためのキューであり、ジョブ制御プリントサービス６０５からのスケジュール要求を受け付けるとジョブ情報２１０２がジョブ管理キュー２１０１に登録される。そして、印刷ジョブが印刷終了すると、該当するジョブ情報２１０２が削除されるようになっている。
【０１１２】
＜プリントシステムにおけるプルプリント動作の概要＞
図２２は、クライアント１０１〜１０３のジョブ制御プリントサービス６０５が、ジョブを受け付けた後、プリンタデバイス６０６にスケジュール要求を発行してからプリンタデバイスで印刷が終了するまでのやり取りを説明する図である。
【０１１３】
ジョブ制御プリントサービス６０５は、印刷データを受け付けると、デバイススケジューラ９００とセッション接続を開始する。そして、ジョブ制御プリントサービス６０５は、デバイススケジューラ９００に対して、クライアントの情報を通知する接続要求、ジョブ／デバイス状態を通知してもらうためのイベント登録を行う。また、ジョブ制御プリントサービス６０５は、デバイススケジューラ９００がスケジュール管理するジョブの情報を取得するジョブリスト取得コマンドを発行する。
【０１１４】
デバイススケジューラ９００は、接続要求を受け付けると、クライアント情報２００２をクライアント管理キュー２００１に登録し、イベントの登録を受け付けると該当するクライアント情報の登録イベントに設定する。又、ジョブリスト要求を受け付けると、ジョブ管理キュー２１０１に登録されているジョブ情報のリストを送信する。
【０１１５】
次に、ジョブ制御プリントサービス６０５が印刷を予約するためのスケジュール要求のコマンドを発行する。デバイススケジューラ９００はスケジュール要求を受け付けると、ジョブ管理キュー２１０１にジョブ情報２１０２を登録する。図２２の２２０１に示される印刷データの転送は、同じグループＩＤを有する複数のジョブが存在した場合には、それら複数のジョブのすべてに対応する印刷データを一つのＴＣＰ／ＩＰセッションで順次転送していく。又、転送開始通知及び転送終了通知がＬＰＤ開始と終了に対応する場合は、転送開始通知は複数の印刷ジョブの先頭のデータの転送開始時に通知され、転送終了通知は最終の印刷ジョブのデータの転送終了時に通知される。ジョブ情報２１０２には、ドキュメント名等の情報が設定される。デバイススケジューラ９００は、プリンタデバイス６０６が印刷データを受け付けられるようになったと判断するとスケジュールＵＰを発行し、ジョブ制御プリントサービス６０５に対して印刷データの送信を開始するように促す。尚、印刷データを受け付けられるようになったことの判断については後述する。また、デバイススケジューラ９００は、スケジュールＵＰを発行すると、当該ジョブ情報２１０２のジョブ状態をスケジュールＵＰ状態に更新する。
【０１１６】
ジョブ制御プリントサービス６０５は、スケジュールＵＰを受け付けるとＬＰＤ／ＲＡＷ８１０に印刷データの転送を開始する。又、ジョブ制御プリントサービス６０５は、印刷データの転送を開始すると、デバイススケジューラ９００に対して転送開始の通知を行う。デバイススケジューラ９００は、ジョブ制御プリントサービス６０５から転送開始通知を受けると、ジョブ情報２１０２のジョブ状態を転送中の状態に更新する。
【０１１７】
ＬＰＤ／ＲＡＷ８１０は、印刷データを受け付けるとプリンタコントローラ５２２に印刷データを転送し、プリンタコントローラ５２２による印刷を開始させる。プリンタコントローラ５２２は、印刷を開始すると、ジョブの状態をデバイススケジューラ９００に通知する。デバイススケジューラ９００は、クライアント情報の登録イベントの情報を基に、クライアントにジョブの印刷状態を通知する。
【０１１８】
また、ジョブ制御プリントサービス６０５は、ＬＰＤ／ＲＡＷ８１０への印刷データの転送を終了すると、デバイススケジューラ９００に対して転送終了通知を送信する。デバイススケジューラ９００は、転送終了通知を受けると、ジョブ情報のジョブ状態を転送済の状態に更新する。
【０１１９】
プリンタコントローラ５２２で印刷処理が終了すると、印刷完了の通知をデバイススケジューラ９００に通知する。デバイススケジューラ９００は、クライアント情報の登録イベントの情報を基に、クライアントにジョブの印刷完了の状態を通知する。ジョブ制御プリントサービス６０５は、この通知により、同一グループＩＤを有する全ての印刷ジョブの処理が完了したことを確認する。デバイスからの通知が必要なくなるので、デバイススケジューラ９００からのイベント通知の登録の解除要求を発行する。イベント解除要求を受け付けた、デバイススケジューラ９００は、クライアント情報の登録イベントにイベントを通知しない旨の情報を設定する。
【０１２０】
その後、ジョブ制御プリントサービス６０５は、デバイススケジューラ９００との接続を終了するための切断要求を発行し、セッションを終了する。デバイススケジューラ９００は、切断要求を受け付けると、クライアント管理キューから該当するクライアント情報を削除し、該クライアントとの間の処理を終了する。
【０１２１】
図２３は、ジョブ制御プリントサービス６０５からスケジュール要求を受け付けてからスケジュールＵＰを発行するまでの、デバイススケジューラ９００のスケジュール管理部９０２の処理を説明するフローチャートである。
【０１２２】
ステップＳ２３０１において、ジョブ制御プリントサービス６０５からの通知を受け付けると、スケジュール管理部９０２は、当該通知がスケジュール要求の通知なのか、転送済み状態の通知なのかを判断する。スケジュール要求の通知であれば、ステップＳ２３０２に処理を移行する。ステップＳ２３０２において、スケジュール管理部９０２は、ジョブ管理部９０３で発行したジョブＩＤを設定したジョブ情報を作成し、スケジュール要求に付加された情報をジョブ情報に設定する。そして、スケジュール要求を受け付けた順でこのジョブ情報をジョブ管理キューに登録する。
【０１２３】
次に、ステップＳ２３０３において、ジョブ管理キューに登録されたジョブ情報のジョブ状態を確認する。ジョブ状態がスケジュールＵＰ、転送中のものがあれば、既にあるクライアントに印刷データを転送するように指示しているため、ステップＳ２３０１に処理を戻す。ジョブ状態がスケジュールＵＰ、転送中のものがなければ、ジョブ制御プリントサービス６０５から印刷データが送られてくる予定が無いためステップＳ２３０４に処理を移行し、スケジュールＵＰの発行の準備を行う。
【０１２４】
ステップＳ２３０４では、ジョブ管理キュー２１０１で先にスケジュール要求を受け付けた順からジョブを確認し、スケジュール待機中のジョブがあるかどうかを判断する。スケジュール待機中のジョブが無い場合は、ステップＳ２３０１に処理を戻す。スケジュール待機中のジョブが見つかった場合は、ステップＳ２３０５に処理を移行する。ステップＳ２３０５では、該当するクライアントに対して印刷データの転送を開始させるスケジュールＵＰを通知する。そして、ステップＳ２３０６において、該当するジョブ情報のジョブ状態をスケジュールＵＰ状態に更新し、ステップＳ２３０１に処理を移行する。
【０１２５】
図２４は、デバイス管理部９０４からのジョブ状態通知イベントの受け付け、ジョブ制御プリントサービス６０５からのジョブリスト要求の受け付けに対する、ジョブ管理部９０３の処理を示している。
【０１２６】
ステップＳ２４０１では、通信接続管理部９０１やデバイス管理部９０４からの通知を受け付けると、デバイス管理部９０４からのジョブ状態通知であるか、ジョブ制御プリントサービス６０５からのジョブリスト要求であるかを判断する。デバイス管理部９０４からのジョブ状態通知であれば、ステップＳ２４０２に処理を移行し、該当するジョブ情報のジョブ状態を更新する。そしてステップＳ２４０３において、交信されたジョブ状態が印刷完了の通知であるかを判断する。印刷完了でなければ、ステップＳ２４０４において、通信接続管理部９０１にジョブの状態のイベントをクライアントに発行するように通知する。ステップＳ２４０３において、印刷完了の通知であった場合は、ステップＳ２４０５に処理を移行する。ステップＳ２４０５において、ジョブ管理キュー２１０１から該当するジョブを削除し、ステップＳ２４０６において、通信接続管理部９０１にジョブの完了イベントをクライアントに発行するように通知する。そして、ステップＳ２４０１に戻る。
【０１２７】
一方、ステップＳ２４０１で、受け付けた通知がジョブ制御プリントサービス６０５からのジョブリスト要求であった場合は、ステップＳ２４０７に進む。ステップＳ２４０７において、ジョブ管理キュー２１０１に登録されたジョブ情報のリストを通信接続管理部９０１に通知し、これを要求元のクライアントに送信させる。
【０１２８】
図２５は、プリンタコントローラ５２２からデバイス状態やジョブ状態の通知をイベントハンドラ９０５を経由して受け付け、ジョブ管理部９０３や通信接続管理部９０１に通知するデバイス管理部９０４の処理を説明するフローチャートである。
【０１２９】
デバイススケジューラ９００が起動すると、ステップＳ２５０１において、デバイス管理部９０４がイベントハンドラ９０５を経由してプリンタコントローラ５２２に対してイベント登録の処理を行う。このイベント登録により、デバイスの状態や、プリンタコントローラ５２２が処理する印刷ジョブの状態が変化した場合等に、プリンタコントローラ５２２がそれらの状態をデバイススケジューラ９００（デバイス管理部９０４）に通知するようになる。
【０１３０】
デバイス管理部９０４は、プリンタコントローラ５２２で発生したイベントをイベントハンドラ９０５経由で受け付けると、ステップＳ２５０２において、そのイベントがジョブのイベントであるかデバイスのイベントであるかを判断する。ジョブのイベントであれば、ステップＳ２５０３において、ジョブ管理部９０３にジョブイベントを通知し、ステップＳ２５０２に処理を移行する。また、デバイスのイベントであれば、処理をステップＳ２５０４に移行し、デバイスの状態をデバイス管理部９０４で保持する。そして、ステップＳ２５０５において、通信接続管理部９０１に当該デバイスイベントを通知し、処理をステップＳ２５０２に移行する。
【０１３１】
図２６は、ジョブ制御プリントサービス６０５からの要求や通知、デバイス管理部９０４からの通知、ジョブ管理部９０３への要求や通知を処理する通信接続管理部９０１の処理の流れを説明するフローチャートである。
【０１３２】
ステップＳ２６０１において、通信接続管理部９０１は、ジョブ制御プリントサービス６０５、デバイス管理部９０４、ジョブ管理部９０３から受け付けた通知や要求の種類を判断する。ステップＳ２６０１において受け付けた要求やイベントがジョブ制御プリントサービス６０５からの接続要求であれば、ステップＳ２６０２に移行する。ステップＳ２６０２において、通信接続管理部９０１は、通信接続管理部９０１で発行したクライアントＩＤと要求を発したクライアントのＩＰアドレスを設定したクライアント情報２００２を生成し、クライアント管理キュー２００１に登録する。
【０１３３】
ステップＳ２６０１において受け付けた要求やイベントがジョブ制御プリントサービス６０５からのイベント登録であれば、ステップＳ２６０３に処理を移行する。ステップＳ２６０３において、通信接続管理部９０１は、該当するクライアント情報の登録イベントに通知すべきイベントの種類を設定する。イベントの種類には、ジョブの状態の変化を通知するジョブイベント、デバイスの状態の変化を通知するデバイスイベントがある。
【０１３４】
ステップＳ２６０１において受け付けた要求やイベントがデバイス管理部９０４からのデバイスイベントやジョブ管理部９０３からのジョブイベントであれば、ステップＳ２６０４に進む。ステップＳ２６０４では、これらのイベントを通知すべきクライアントを認識するために、クライアント管理キュー２００１に登録された全てのクライアント情報について、クライアント情報の登録イベントの設定を参照し通知すべきかどうかを判断する。そして、通知すべきと判断されたクライアントのＩＰアドレスを保持する。その後、ステップＳ２６０５において、ステップＳ２６０５でＩＰアドレスが保持された全てのクライアントに対してイベントを送信する。
【０１３５】
ステップＳ２６０１において受け付けた要求やイベントがクライアントからの切断要求であればステップＳ２６０６に処理を移行し、クライアント管理キューから該当するクライアントのクライアント情報を削除する。
【０１３６】
以上説明したように、本実施形態によれば、単独のプルプリントキューに複数の印刷条件を持たせたプルプリントジョブを登録することが可能となる。言い換えれば、プルプリントキューに登録される複数のジョブの中から、ある特定のＩＤ（ジョブ特定情報）を持ったジョブを抽出することができ、ユーザ毎にＩＤを異ならせることで、ジョブ抽出の振る舞いを異ならせることができる。また、プルプリント開始時に、対象となるプルプリントジョブが複数個存在した場合においても、複数の印刷ジョブ間に他者の印刷を割り込ませること無く印刷することが可能となる。
【０１３７】
また、本実施形態によれば、機密文書や秘匿性の高い文書等を印刷する際のユーザビリティを向上することができる。つまり、ユーザは排紙状況を見張るために印刷装置に出向くタイミングを計ることなく、また、複数の印刷ジョブを印刷する際に、印刷物を他者の印刷物が混入することなく安心してまとまった文書として取得することが可能となる。
【０１３８】
以上、実施形態を詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１３９】
尚、本発明は、ソフトウェアのプログラムをシステム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによって前述した実施形態の機能が達成される場合を含む。この場合、供給されるプログラムは実施形態で図に示したフローチャートに対応したプログラムである。
【０１４０】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【０１４１】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であっても良い。
【０１４２】
プログラムを供給するための記録媒体としては以下が挙げられる。例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などである。
【０１４３】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムをハードディスク等の記録媒体にダウンロードすることが挙げられる。この場合、ダウンロードされるプログラムは、圧縮され自動インストール機能を含むファイルであってもよい。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【０１４４】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布するという形態をとることもできる。この場合、所定の条件をクリアしたユーザに、インターネットを介してホームページから暗号を解く鍵情報をダウンロードさせ、その鍵情報を使用して暗号化されたプログラムを実行し、プログラムをコンピュータにインストールさせるようにもできる。
【０１４５】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどとの協働で実施形態の機能が実現されてもよい。この場合、ＯＳなどが、実際の処理の一部または全部を行ない、その処理によって前述した実施形態の機能が実現される。
【０１４６】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれて前述の実施形態の機能の一部或いは全てが実現されてもよい。この場合、機能拡張ボードや機能拡張ユニットにプログラムが書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行なう。
【図面の簡単な説明】
【０１４７】
【図１】実施形態によるプリントシステムの全体構成を示すブロック図である。
【図２】クライアントのハードウェア構成を説明するブロック図である。
【図３】図２に示したＲＡＭ２０２のメモリマップの一例を示す図である。
【図４】図２に示したＦＤ２０４のメモリマップの一例を示す図である。
【図５】実施形態によるネットワークプリンタのハードウェア構成を説明するブロック図である。
【図６】実施形態によるクライアントのプリントシステムに関するソフトウェア構成の例を示す図である。
【図７】クライアントの印刷時の印刷ジョブの流れを説明する図である。
【図８】ネットワークプリンタのソフトウェア構成の例を示す図である。
【図９】ネットワークプリンタのユーザアプリケーションのソフトウェア構成の例を示す図である。
【図１０】実施形態のプリントシステムにおける概略動作を示すアクティビティ図である。
【図１１Ａ】実施形態のジョブ制御プリントサービスがプルプリントキューにジョブを受け付ける処理のフローチャートである。
【図１１Ｂ】実施形態のジョブ制御プリントサービスがプルプリントキューにジョブを受け付ける処理のフローチャートである。
【図１２】印刷ジョブに埋め込むジョブ識別情報をユーザに設定させるためのＧＵＩの例を示す図である。
【図１３】プルプリントエージェントによるジョブの特定処理を説明する処理フローチャートである。
【図１４】ジョブ制御プリントサービスが管理する印刷ジョブの情報とジョブ管理キューを表す図である。
【図１５】ジョブ制御プリントサービスが管理するプリンタキュー、出力ポートの情報を表す図である。
【図１６】プルプリントエージェントがジョブ制御プリントサービスに送信する情報を表す図である。
【図１７Ａ】ジョブ制御プリントサービスがプルプリントエージェントから特定されたジョブをデバイススケジューラに登録する処理を説明するフローチャートである。
【図１７Ｂ】ジョブ制御プリントサービス上の印刷ジョブを特定する処理を示すフローチャートである。
【図１８】ジョブ制御プリントサービスが、デバイススケジューラからスケジュールＵＰコマンドを受信した際の処理を説明するフローチャートである。
【図１９】デバイススケジューラからの通知やコマンドを受け付けた場合のジョブ制御プリントサービスの処理の流れを示すフローチャートである。
【図２０】デバイススケジューラで管理するクライアント情報とクライアント管理キューを示す図である。
【図２１】デバイススケジューラで管理するジョブ情報とジョブ管理キューを示す図である。
【図２２】ジョブ制御プリントサービスとデバイススケジューラ、ＬＰＤ／ＲＡＷ、プリンタコントローラ間の印刷シーケンスを示す図である。
【図２３】ジョブ制御プリントサービスのスケジュール要求の受け付けからスケジュールＵＰを発行するまでのデバイススケジューラでのフローチャートである。
【図２４】ジョブ管理部のジョブ状態通知イベントの受け付けからジョブリスト要求の受け付けに対する処理を示すフローチャートである。
【図２５】プリンタコントローラからのデバイス状態、ジョブ状態通知を受け付けた時のデバイス管理部の処理を示すフローチャートである。
【図２６】クライアントからの要求や通知、デバイス管理部からの通知、ジョブ管理部への要求や通知を処理する通信接続管理部の処理を示すフローチャートである。
【図１】
2008077355.tif 000003
【図２】
2008077355.tif 000004
【図３】
2008077355.tif 000005
【図４】
2008077355.tif 000006
【図５】
2008077355.tif 000007
【図６】
2008077355.tif 000008
【図７】
2008077355.tif 000009
【図８】
2008077355.tif 000010
【図９】
2008077355.tif 000011
【図１０】
2008077355.tif 000012
【図１１Ａ】
2008077355.tif 000013
【図１１Ｂ】
2008077355.tif 000014
【図１２】
2008077355.tif 000015
【図１３】
2008077355.tif 000016
【図１４】
2008077355.tif 000017
【図１５】
2008077355.tif 000018
【図１６】
2008077355.tif 000019
【図１７Ａ】
2008077355.tif 000020
【図１７Ｂ】
2008077355.tif 000021
【図１８】
2008077355.tif 000022
【図１９】
2008077355.tif 000023
【図２０】
2008077355.tif 000024
【図２１】
2008077355.tif 000025
【図２２】
2008077355.tif 000026
【図２３】
2008077355.tif 000027
【図２４】
2008077355.tif 000028
【図２５】
2008077355.tif 000029
【図２６】
2008077355.tif 000030