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