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