(57)【要約】【課題】  少なくとも１つの分散先印刷装置が印刷可能な状態にあれば、印刷ジョブ送信元から印刷ジョブが送信されるようにする。【解決手段】  通信部１０４はＳＮＭＰによって各分散先候補プリンタのＭＩＢからプリンタ状態情報を取得する。プリンタ状態情報管理部１０２は、取得したプリンタ状態情報でもって、個別プリンタ状態情報記憶部１１４のプリンタ状態情報を更新する。プリンタ状態情報管理部１０２は個別プリンタ状態情報記憶部１１４のプリンタ状態情報を参照して、何れかのプリンタ状態情報がオンライン状態であることを示している場合には、そのオンライン状態であることを示しているプリンタ状態情報のうち、優先順位の最も高いプリンタのプリンタ状態情報を分散印刷用プリンタ状態情報とし、ＭＩＢ格納部１１２の分散印刷用ＭＩＢを更新する。【選択図】  図１
2006277501.tif 000002
【特許請求の範囲】
【請求項１】
印刷ジョブ送信元から送信された印刷ジョブを受信して、該印刷ジョブを複数の分散先印刷装置に分散することが可能な分散印刷制御装置であって、
各分散先印刷装置から、それぞれ、その分散先印刷装置における複数の印刷可能動作条件のうち、特定の印刷可能動作条件を満たすか否かを示す状態情報を取得する状態情報取得部と、
各分散先印刷装置ごとに取得した前記状態情報を記憶する情報記憶部と、
前記情報記憶部に記憶された前記状態情報を参照して、分散印刷用状態情報を生成する情報生成部と、
生成された前記分散印刷用状態情報を記憶する分散印刷用状態情報記憶部と、
分散印刷を行う際に、前記印刷ジョブ送信元から取得要求があった場合に、前記分散印刷用状態情報を応答として返す情報応答部と、を備え、
前記情報生成部は、各分散先印刷装置ごとに取得した前記状態情報のうち、少なくとも１つの分散先印刷装置について、その状態情報が、前記特定印刷可能動作条件を満たすことを示している場合に、前記分散印刷用状態情報が、前記特定印刷可能条件を満たすことを示すように、前記分散印刷用状態情報を生成することを特徴とする分散印刷制御装置。
【請求項２】
請求項１に記載の分散印刷装置制御装置において、
前記分散先印刷装置における前記特定印刷可能動作条件は、その分散先印刷装置がオンライン状態であるという条件であることを特徴とする分散印刷制御装置。
【請求項３】
請求項１に記載の分散印刷装置制御装置において、
前記分散先印刷装置における前記特定印刷可能動作条件は、その分散先印刷装置が印刷中でないという条件であることを特徴とする分散印刷制御装置。
【請求項４】
請求項１に記載の分散印刷装置制御装置において、
前記分散先印刷装置における前記特定印刷可能動作条件は、その分散先印刷装置がトナー残量が０％でないという条件であることを特徴とする分散印刷制御装置。
【請求項５】
請求項１ないし請求項４のうちの任意の１つに記載の分散先印刷装置において、
前記状態情報取得部は、前記状態情報を、各分散先印刷装置のＭＩＢ（Management Information Base）から取得することを特徴とする分散印刷制御装置。
【請求項６】
請求項１ないし請求項５のうちの任意の１つに記載の分散先印刷装置において、
前記分散印刷用状態情報記憶部は、前記分散印刷用状態情報を、ＭＩＢの少なくとも一部として記憶することを特徴とする分散印刷制御装置。
【請求項７】
請求項１ないし請求項６のうちの任意の１つに記載の分散印刷制御装置において、
前記分散印刷制御装置は、印刷装置に内蔵または接続されていることを特徴とする分散印刷制御装置。
【請求項８】
印刷ジョブ送信元から送信された印刷ジョブを複数の分散先印刷装置に分散するための分散印刷制御方法であって、
（ａ）各分散先印刷装置から、それぞれ、その分散先印刷装置における複数の印刷可能動作条件のうち、特定の印刷可能動作条件を満たすか否かを示す状態情報を取得する工程と、
（ｂ）各分散先印刷装置ごとに取得した前記状態情報に基づいて、分散印刷用状態情報を生成する工程と、
（ｃ）分散印刷を行う際に、前記印刷ジョブ送信元から取得信要求があった場合に、前記分散印刷用状態情報を応答として返す工程と、
を備え、
工程（ｂ）は、
（ｂ−１）各分散先印刷装置ごとに取得した前記状態情報のうち、少なくとも１つの分散先印刷装置について、その状態情報が、前記特定印刷可能動作条件を満たすことを示しているか否かを判定する工程と、
（ｂ−２）判定の結果、前記状態情報が、前記特定印刷可能動作条件を満たすことを示している場合に、前記分散印刷用状態情報が、前記特定印刷可能条件を満たすことを示すように、前記分散印刷用状態情報を生成する工程と、
を含む分散印刷制御方法
【請求項９】
記憶部を備えたコンピュータによって、印刷ジョブ送信元から送信された印刷ジョブを受信して、該印刷ジョブを複数の分散先印刷装置に分散するためのコンピュータプログラムであって、
各分散先印刷装置から、それぞれ、その分散先印刷装置における複数の印刷可能動作条件のうち、特定の印刷可能動作条件を満たすか否かを示す状態情報を取得する機能と、
各分散先印刷装置ごとに取得した前記状態情報を前記記憶部に格納する機能と、
前記記憶部に格納された前記状態情報を参照して、分散先印刷装置ごとに取得した前記状態情報のうち、少なくとも１つの分散先印刷装置について、その状態情報が、前記特定印刷可能動作条件を満たすことを示している場合に、分散印刷用状態情報が、前記特定印刷可能条件を満たすことを示すように、前記分散印刷用状態情報を生成する機能と、
生成された前記分散印刷用状態情報を前記記憶部に格納する機能と、
分散印刷を行う際に、前記印刷ジョブ送信元から取得要求があった場合に、前記分散印刷用状態情報を応答として返す機能と、
を前記コンピュータに実現させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散印刷を行う際に、印刷ジョブ送信元から取得要求があった場合に、分散先印刷装置の動作状態に関する情報を応答として返す技術に関するものである。
【背景技術】
【０００２】
近年、ネットワーク上に存在する複数のプリンタに印刷ジョブを分散して分散印刷を行う技術として、次のような技術が提案されている。
【０００３】
すなわち、印刷ジョブ送信元となるクライアントコンピュータが、分散印刷したい印刷ジョブを、分散元となるプリンタに送信すると、その分散元プリンタでは、ネットワーク上に存在する、自己も含めた複数のプリンタの中から、分散先となるプリンタを決定し、それら分散先プリンタに対して、印刷ジョブを送信し、それら分散先プリンタでは、それぞれ、送信された印刷ジョブに基づいて印刷を行うことにより、分散印刷を実行する。
【０００４】
また、このような技術以外にも、関連する技術として、従来では、例えば、下記の特許文献１に記載のものが知られている。
【０００５】
【特許文献１】特開２００２−１６３０８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記した従来の技術においては、クライアントコンピュータが、分散印刷したい印刷ジョブを分散元プリンタに送信する場合、それに先だって、クライアントコンピュータは、分散元プリンタのＭＩＢ（Management Information Base）を参照して、分散元プリンタが印刷可能な動作状態にあるかどうかを判断する。その結果、分散元プリンタが、例えば、オフライン状態にあるなど、印刷可能な状態にない場合には、クライアントコンピュータは、分散元プリンタに対して、印刷ジョブを送信せず、分散印刷が実行されない。
【０００７】
しかしながら、そのような場合においても、ネットワーク上に存在する他のプリンタの中には、印刷可能な動作状態にあるものもあり、そのようなプリンタを分散先プリンタとすれば、分散印刷を実行することは可能である。
【０００８】
すなわち、上記した従来の技術においては、分散元プリンタが印刷可能な状態にない場合、他のプリンタが例え印刷可能な動作状態にあったとしても、クライアントコンピュータから分散元プリンタに印刷ジョブが送信されないため、分散印刷を実行することができないという問題があった。
【０００９】
従って、本発明の目的は、上記した従来技術の問題点を解決し、少なくとも１つの分散先印刷装置が印刷可能な状態にあれば、印刷ジョブ送信元から印刷ジョブが送信されるようにするための技術に関するものである。
【課題を解決するための手段】
【００１０】
上記した目的の少なくとも一部を達成するために、本発明の分散印刷制御装置は、印刷ジョブ送信元から送信された印刷ジョブを受信して、該印刷ジョブを複数の分散先印刷装置に分散することが可能な分散印刷制御装置であって、
各分散先印刷装置から、それぞれ、その分散先印刷装置における複数の印刷可能動作条件のうち、特定の印刷可能動作条件を満たすか否かを示す状態情報を取得する状態情報取得部と、
各分散先印刷装置ごとに取得した前記状態情報を記憶する情報記憶部と、
前記情報記憶部に記憶された前記状態情報を参照して、分散印刷用状態情報を生成する情報生成部と、
生成された前記分散印刷用状態情報を記憶する分散印刷用状態情報記憶部と、
分散印刷を行う際に、前記印刷ジョブ送信元から取得要求があった場合に、前記分散印刷用状態情報を応答として返す情報応答部と、を備え、
前記情報生成部は、各分散先印刷装置ごとに取得した前記状態情報のうち、少なくとも１つの分散先印刷装置について、その状態情報が、前記特定印刷可能動作条件を満たすことを示している場合に、前記分散印刷用状態情報が、前記特定印刷可能条件を満たすことを示すように、前記分散印刷用状態情報を生成することを要旨とする。
【００１１】
このように、本発明の分散印刷制御装置では、少なくとも１つの分散先印刷装置が印刷可能な状態にあれば、分散印刷用状態情報は、特定印刷可能条件を満たすことを示すことになる。従って、分散印刷を行う場合、印刷ジョブ送信元が、取得要求に対して、そのような分散印刷用状態情報を応答として受け取れば、印刷ジョブ送信元は、その分散印刷用状態情報に基づいて、送信先の印刷装置は印刷可能な状態にあると判断して、分散印刷制御装置に対して印刷ジョブを送信することになる。
【００１２】
よって、本発明の分散印刷制御装置によれば、少なくとも１つの分散先印刷装置が印刷可能な状態にあれば、印刷ジョブ送信元から分散印刷制御装置に対して、印刷ジョブを送信させることが可能となる。従って、分散印刷制御装置が、送信された印刷ジョブを印刷可能な状態にある分散先印刷装置に分散することにより、分散印刷を実行することが可能となる。
【００１３】
本発明の分散印刷制御装置において、前記分散先印刷装置における前記特定印刷可能動作条件は、その分散先印刷装置がオンライン状態であるという条件であってもよいし、その分散先印刷装置が印刷中でないという条件であってもよいし、その分散先印刷装置がトナー残量が０％でないという条件であってもよい。いずれの条件も、印刷可能動作条件として、有効であるからである。
【００１４】
本発明の分散印刷制御装置において、前記状態情報取得部は、前記状態情報を、各分散先印刷装置のＭＩＢから取得することが好ましい。ＭＩＢは、ＳＮＭＰ（Simple Network Management Protocol）で管理されるネットワーク機器が、自己の状態を外部に知らせるために公開する情報のことであり、通常、いずれの印刷装置も有しているからである。
【００１５】
本発明の分散印刷制御装置において、前記分散印刷用状態情報記憶部は、前記分散印刷用状態情報を、ＭＩＢの少なくとも一部として記憶することが好ましい。このように、ＭＩＢとして記憶することにより、印刷ジョブ送信元は分散印刷制御装置から、ＳＮＭＰを用いて容易に情報を取得することができるからである。
【００１６】
なお、本発明は、上記した分散印刷制御装置などの装置発明の態様に限ることなく、分散印刷制御方法などの方法発明としての態様で実現することも可能である。さらには、それら方法や装置を構築するためのコンピュータプログラムとしての態様や、そのようなコンピュータプログラムを記録した記録媒体としての態様や、上記コンピュータプログラムを含み搬送波内に具現化されたデータ信号など、種々の態様で実現することも可能である。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施の形態を実施例に基づいて以下の順序で説明する。
Ａ．分散印刷システムの構成：
Ｂ．分散印刷システムの動作概要：
Ｃ．プリンタＰＲＴ０の構成：
Ｄ．分散印刷用プリンタ状態情報生成処理：
Ｅ．実施例の効果：
Ｆ．変形例：
【００１８】
Ａ．分散印刷システムの構成：
図１は本発明の一実施例としての分散印刷制御装置を備える分散印刷システムを示す説明図である。図１に示す分散印刷システムは、クライアントコンピュータＣＬと、複数のプリンタＰＲＴ０〜ＰＲＴ３と、を備えており、各機器は互いにローカルエリアネットワーク（ＬＡＮ）を介して接続されている。各機器間の通信は、ＴＣＰ／ＩＰプロトコルをベースとしているため、各機器には、それぞれ、ＩＰアドレスが予め割り振られている。なお、厳密に言えば、これらＩＰアドレスは、クライアントコンピュータＣＬ，プリンタＰＲＴ０〜ＰＲＴ３自体に設定されているわけではなく、ＴＣＰ／ＩＰのネットワークから見た場合のノード（すなわち、具体的には、ＴＣＰ／ＩＰ通信を行うためにネットワークに接続されているネットワークボードなど）に設定されている。
【００１９】
これらプリンタのうち、プリンタＰＲＴ０には、本実施例の分散印刷制御装置であるカスタムネットワークボードＣＮＢが取り付けられている。このカスタムネットワークボードＣＮＢは、受信した印刷ジョブを複数のプリンタに分散して、分散印刷を実行するための分散印刷制御機能を有している。従って、プリンタＰＲＴ０は、分散元プリンタとして機能する。一方、他のプリンタＰＲＴ１〜ＰＲＴ３には、それぞれ、標準のネットワークボード（図示せず）が取り付けられている。これらプリンタＰＲＴ１〜ＰＲＴ３は、分散先プリンタとなり得る。なお、分散元プリントして機能するＰＲＴ０も、分散先プリンタとなり得る。
【００２０】
Ｂ．分散印刷システムの動作概要：
図１に示す分散印刷システムでは、クライアントコンピュータＣＬにおいて、プリンタドライバ（図示せず）が起動している。プリンタドライバは、分散印刷したい印刷ジョブを、分散元プリンタであるプリンタＰＲＴ０に送信する。かかる印刷ジョブは、前段部分であるジョブ制御言語の部分と、後段部分である印刷コマンドと、に分かれており、このうち、ジョブ制御言語部分には、印刷部数情報が記載されている。また、印刷ジョブの前には、ヘッダが付加されており、そのヘッダには、印刷ジョブの送信先である機器のＩＰアドレス（送信先ＩＰアドレス）と、その機器内における送信先であるソフトウェアを特定するポート番号（送信先ポート番号）とが含まれている。印刷ジョブは、このヘッダに従って、送信先ＩＰアドレスを有する機器に送信され、受信したその機器内では、送信先ポート番号のポートで待機しているソフトウェアに渡される。具体的には、送信先ＩＰアドレスとしてプリンタＰＲＴ０のＩＰアドレスが、送信先ポート番号として「５９１００」が、それぞれ記載されている。
【００２１】
本実施例では、印刷プロトコルとして無手順プロトコルを用いている。無手順プロトコルでは、通常、ボート番号として「９１００」が割り当てられているが、本実施例では、クライアントコンピュータＣＬから分散元プリンタであるプリンタＰＲＴ０に印刷ジョブを送信する際、ボート番号として通常の「９１００」ではなく、「５９１００」を用いる。
【００２２】
プリンタＰＲＴ０では、カスタムネットワークボードＣＮＢが、送信された印刷ジョブを受信すると、ヘッダに従ってポート番号「５９１００」に待機しているソフトウェアに、その印刷ジョブを渡す。本実施例では、ポート番号「５９１００」には、分散印刷制御機能を実現するための分散印刷ソフトウェアが待機している。それにより、カスタムネットワークボードＣＮＢは、その分散印刷ソフトウェアに従って、印刷ジョブのジョブ制御言語部分から印刷部数情報を取得すると共に、ＬＡＮ上に存在するプリンタのうち、分散先指定ファイル（後述する）によって指定された分散先候補プリンタの中から、分散先プリンタを決定し、さらに、各分散先プリンタに対する分散部数を決定する。例えば、このとき、分散先プリンタとして、分散元プリンタであるプリンタＰＲＴ０自身と、プリンタＰＲＴ１〜ＰＲＴ３と、がそれぞれ決定されたものとする。
【００２３】
次に、カスタムネットワークボードＣＮＢは、印刷ジョブのジョブ制御言語部分に含まれる印刷部数情報を、決定した分散部数に変更すると共に、ヘッダに含まれる送信先ポート番号を「５９１００」ではなく、「９１００」に変更した上で、各分散先プリンタＰＲＴ０〜ＰＲＴ３に、それぞれ、印刷ジョブを送信する。
【００２４】
分散先プリンタのうち、例えば、プリンタＰＲＴ１では、送信された印刷ジョブを受信すると、ヘッダに従ってポート番号「９１００」に待機しているソフトウェアに、その印刷ジョブを渡す。ポート番号「９１００」は、前述したとおり、印刷プロトコルである無手順プロトコルに対して、通常割り当てられているポート番号であるので、印刷ジョブは、プリンタＰＲＴ１内の印刷制御ソフトウェアに渡される。それにより、プリンタＰＲＴ１は、その印刷制御ソフトウェアに従って、その印刷ジョブに基づき、印刷部数情報より得られた分散部数だけ印刷を行う。
【００２５】
他のプリンタＰＲＴ２，ＰＲＴ３は、もちろんのこと、プリンタＰＲＴ０においても、同様に、送信された印刷ジョブに基づいて、分散部数だけ印刷が実行される。
【００２６】
さて、このような分散印刷を行う場合、クライアントコンピュータＣＬにおいては、プリンタドライバが、分散印刷したい印刷ジョブを、分散元プリンタＰＲＴ０に送信するのに先だって、プリンタの動作状態を確認する。
【００２７】
このとき、従来においては、前述したとおり、クライアントコンピュータのプリンタドライバが、分散元プリンタＰＲＴ０のＭＩＢ（Management Information Base）からプリンタ状態情報を取得して、分散元プリンタＰＲＴ０が印刷可能な動作状態にあるかどうかを判断し、その結果、オフライン状態にあるなど、印刷可能な状態にない場合には、クライアントコンピュータＣＬのプリンタドライバは、分散元プリンタＰＲＴ０に対して、印刷ジョブを送信しない。従って、他のプリンタＰＲＴ１〜ＰＲＴ３が、例え、印刷可能な動作状態にあったとしても、クライアントコンピュータＣＬから分散元プリンタＰＲＴ０に印刷ジョブが送信されないため、分散印刷を実行することができないという問題があった。
【００２８】
これに対し、本実施例においては、プリンタＰＲＴ０に取り付けられたカスタムネットワークボードＣＮＢが、ＬＡＮ上に存在するプリンタのうち、分散先指定ファイルによって指定された分散先候補プリンタに対し、それら各プリンタのＭＩＢから、定期的に、プリンタ状態情報を取得し、取得したそれらプリンタ状態情報をプリンタごとに個別に記憶する。そして、カスタムネットワークボードＣＮＢは、記憶されたプリンタ状態情報を参照して、分散印刷用のプリンタ状態情報を生成し、生成したその分散印刷用プリンタ状態情報を分散印刷用ＭＩＢの一部として記憶する。このとき、個別に記憶されたプリンタ状態情報のうち、少なくとも１つのプリンタについて、そのプリンタ状態情報が、オンライン状態であることを示している場合には、カスタムネットワークボードＣＮＢは、分散印刷用プリンタ状態情報がオンライン状態であることを示すように、その分散印刷用プリンタ状態情報を生成する。
【００２９】
従って、クライアントコンピュータＣＬにおいて、プリンタドライバが、分散印刷したい印刷ジョブを分散元プリンタＰＲＴ０に送信するのに先だって、プリンタの動作状態を確認する際に、分散元プリンタＰＲＴ０のＭＩＢではなく、カスタムネットワークボードＣＮＢの備える分散印刷用ＭＩＢから分散印刷用プリンタ状態情報を取得すれば、その分散印刷用プリンタ状態情報に基づいて、オンライン状態にあるかどうかを判断することになる。よって、少なくとも１つのプリンタがオンライン状態にあれば、クライアントコンピュータＣＬのプリンタドライバは、オンライン状態にあると判断して、分散元プリンタＰＲＴ０に対して、印刷ジョブを送信する。
【００３０】
この結果、分散元プリンタＰＲＴ０が、例え、オフライン状態にあって、印刷可能な状態にない場合でも、他のプリンタＰＲＴ１〜ＰＲＴ３が、オンライン状態であれば、クライアントコンピュータＣＬから分散元プリンタＰＲＴ０に印刷ジョブが送信されるため、オンライン状態にある他のプリンタＰＲＴ１〜ＰＲＴ３によって、分散印刷を実行することが可能となる。
【００３１】
Ｃ．プリンタＰＲＴ０の構成：
それでは、本実施例の分散印刷制御装置であるカスタムネットワークボードＣＮＢを備えるプリンタＰＲＴ０について、さらに詳しく説明する。
【００３２】
図２は図１におけるプリンタＰＲＴ０の構成を主として示すブロック図である。図２に示すプリンタＰＲＴ０は、プリンタ本体ＰＲＢと、上述したカスタムネットワークボードＣＮＢと、を備えている。
【００３３】
このうち、プリンタ本体ＰＲＢは、主として、プリンタコントローラ１５０と、メモリ１５２と、プリンタエンジン１５４と、を備えている。プリンタコントローラ１５０は、カスタムネットワークボードＣＮＢから印刷ジョブを受け取り、その印刷ジョブに従ってプリンタエンジン１５４を制御し、印刷を実行させる。メモリ１５２には、プリンタＰＲＴ０のＭＩＢが格納されている。プリンタエンジン１５４は、実際に印刷を行う機構部分である。
【００３４】
一方、本発明の特徴部分であるカスタムネットワークボードＣＮＢは、主として、ＣＰＵ１００と、メモリ１１０と、を備えている。また、この他、実際にネットワーク通信を行うための通信用インタフェースなども備えているが、説明の便宜上、省略されている。
【００３５】
ＣＰＵ１００は、メモリ１１０より、上記した分散印刷ソフトウェアなどのプログラムを読み出して、実行することにより、プリンタ状態情報管理部１０２，通信部１０４および分散印刷処理部１０６として機能する。このうち、分散印刷処理部１０６は、分散印刷を行う際に、前述したように、分散先プリンタの決定や、分散先プリンタに対する分散部数の決定や、印刷ジョブに含まれる印刷部数情報の変更や、ヘッダに含まれる送信先ポート番号の変更などを行う。また、プリンタ状態情報管理部１０２，通信部１０４については、後ほど詳しく説明する。なお、これら機能ブロックはハードウェア的に構築しても構わない。
【００３６】
一方、メモリ１１０は、上記したプログラム（図示せず）を格納する他、各種データを格納するために、ＭＩＢ格納部１１２，個別プリンタ状態情報記憶部１１４，分散先指定ファイル格納部１１６および印刷ジョブバッファ部１１８を備えている。このうち、ＭＩＢ格納部１１２は、上記した分散印刷用ＭＩＢを格納する。また、個別プリンタ状態情報記憶部１１４は、各分散先候補プリンタのＭＩＢから取得したプリンタ状態情報を分散先候補プリンタごとに個別に記憶する。分散先指定ファイル格納部１１６は、前述の分散先指定ファイルを格納する。この分散先指定ファイルは、ＬＡＮに接続されている複数のプリンタの中で、分散印刷における分散先として使用したいプリンタを、分散先候補プリンタとして、予め指定するために用いる。印刷ジョブバッファ部１１８は、クライアントコンピュータＣＬから送信された印刷ジョブを一時的に格納するための格納部である。
【００３７】
さて、図２において、その他、クライアントコンピュータＣＬにおいては、プリンタドライバを備えている。また、プリンタＰＲＴ１〜ＰＲＴ３においては、各プリンタのＭＩＢをそれぞれ備えている。なお、クライアントコンピュータＣＬは、この他、コンピュータとして機能するための各種ハードウェアやソフトウェアを備えており、また、プリンタＰＲＴ１〜ＰＲＴ３も、この他、プリンタとして機能するための各種ハードウェアやソフトウェアを備えているが、説明の便宜上、省略されている。
【００３８】
なお、本実施例において、カスタムネットワークボードＣＮＢは、請求項における分散印刷制御装置に相当し、クライアントコンピュータＣＬは、請求項における印刷ジョブ送信元に相当し、プリンタＰＲＴ０〜ＰＲＴ３は、請求項における分散先印刷装置に相当する。また、プリンタ状態情報管理部１０２は、請求項における情報生成部に相当し、通信部１０４は、請求項における状態情報取得部と情報応答部に相当し、個別プリンタ状態情報記憶部１１４は、請求項における情報記憶部に相当し、ＭＩＢ格納部１１２は、請求項における分散印刷用状態情報記憶部に相当する。
【００３９】
Ｄ．分散印刷用プリンタ状態情報生成処理：
それでは、本実施例の特徴部分である分散印刷用プリンタ状態情報生成処理について、図３〜図５を用いて、以下説明する。
【００４０】
図３は図２のカスタムネットワークボードＣＮＢによって行われる分散印刷用プリンタ状態情報生成処理ルーチンを示すフローチャートである。図３に示す分散印刷用プリンタ状態情報生成処理ルーチンは、所定の時間間隔で繰り返し実行される。かかる処理ルーチンが実行されると、まず、プリンタ状態情報管理部１０２が、分散先指定ファイル格納部１１６に格納された分散先指定ファイルを参照し、ＬＡＮ上に存在するプリンタの中から、分散先指定ファイルによって指定された分散先候補プリンタを特定する（ステップＳ１０２）。
【００４１】
図４は図２の分散先指定ファイル格納部１１６に格納されている分散先指定ファイルの一例を示す説明図である。図４に示すように、分散先指定ファイルには、各分散先候補プリンタについて、それぞれ、そのプリンタ名と、そのＩＰアドレスと、その優先順位と、が列挙して記載されている。図４に示す例では、分散先候補プリンタとして、プリンタＰＲＴ０，ＰＲＴ１，ＰＲＴ２，ＰＲＴ３が指定されている。また、優先順位としては、高い方からＰＲＴ３，ＰＲＴ１，ＰＲＴ０，ＰＲＴ２の順に、順位が割り当てられている。かかる優先順位は、例えば、各分散先プリンタに対する分散部数を決定する際に利用される。
【００４２】
次に、通信部１０４は、特定した各分散先候補プリンタに対して、ＬＡＮを介して、それぞれアクセスし（ステップＳ１０４）、ＳＮＭＰによって、その分散先候補プリンタのＭＩＢからＯｂｊｅｃｔＩＤ：hrPrinterDetectedErrorStatus  1.3.6.1.2.1.25.3.5.1.2.1の値を含むプリンタ状態情報を取得するように、取得要求を出す。これに対して、各分散先候補プリンタは、ＭＩＢから、hrPrinterDetectedErrorStatusの値を含むプリンタ状態情報を取得して、プリンタＰＲＴ０のカスタムネットワークボードＣＮＢに応答として返す（ステップＳ１０６）。なお、このとき、カスタムネットワークボードＣＮＢの取り付けられているプリンタＰＲＴ０については、通信部１０４は、直接、プリンタ本体ＰＲＢにアクセスし、プリンタコントローラ１５０を介して、メモリ１５２に格納されているＭＩＢから、hrPrinterDetectedErrorStatusの値を取得する。
【００４３】
一方、個別プリンタ状態情報記憶部１１４には、前述したとおり、分散先候補プリンタごとに個別に、プリンタ状態情報が記憶されている。本実施例においては、上記したように、分散先候補プリンタとして、プリンタＰＲＴ０，ＰＲＴ１，ＰＲＴ２，ＰＲＴ３が指定されているため、個別プリンタ状態情報記憶部１１４には、図２に示すように、プリンタＰＲＴ０のプリンタ状態情報と、プリンタＰＲＴ１のプリンタ状態情報と、プリンタＰＲＴ２のプリンタ状態情報と、プリンタＰＲＴ３のプリンタ状態情報と、が記憶されている。
【００４４】
そこで、プリンタ状態情報管理部１０２は、各分散先候補プリンタごとに、取得したプリンタ状態情報でもって、個別プリンタ状態情報記憶部１１４に記憶された、対応するプリンタ状態情報をそれぞれ更新する（ステップＳ１０８）。
【００４５】
図５は図２の個別プリンタ状態情報記憶部１１４に格納される分散先候補プリンタごとのプリンタ状態情報と、ＭＩＢ格納部１１２に格納されている分散印刷用ＭＩＢの一例を示す説明図である。上述したように、取得した各プリンタ状態情報には、それぞれ、hrPrinterDetectedErrorStatusの値が含まれているため、個別プリンタ状態情報記憶部１１４に記憶されている各プリンタ状態情報にも、図５に示すように、hrPrinterDetectedErrorStatusの値がそれぞれ含まれる。
【００４６】
ここで、hrPrinterDetectedErrorStatusの値は、３２ビットの値であり、bit0からbit31までの値を持っている。このとき、bit1 == 1 であった場合、対象となるプリンタがオフライン状態（OFFLINE）であることを表し、bit1==0 であった場合、オンライン状態（ONLINE）であることを表す。
【００４７】
図５に示す例では、プリンタＰＲＴ０のプリンタ状態情報とプリンタＰＲＴ３のプリンタ状態情報については、それぞれ、hrPrinterDetectedErrorStatusの値がオフライン状態であることを示し、プリンタＰＲＴ１のプリンタ状態情報とプリンタＰＲＴ２のプリンタ状態情報については、それぞれ、hrPrinterDetectedErrorStatusの値がオンライン状態であることを示している。
【００４８】
そこで、プリンタ状態情報管理部１０２は、個別プリンタ状態情報記憶部１１４に記憶されているプリンタ状態情報を参照して、プリンタＰＲＴ０〜ＰＲＴ３の各プリンタ状態情報のうち、何れかのプリンタ状態情報が、オンライン状態であることを示しているか否かを判定する（ステップＳ１１０）。判定の結果、何れかのプリンタ情報がオンライン状態であることを示している場合には、そのオンライン状態であることを示しているプリンタ状態情報のうち、優先順位の最も高いプリンタのプリンタ状態情報を分散印刷用プリンタ状態情報とする。そして、その分散印刷用プリンタ状態情報でもって、ＭＩＢ格納部１１２に格納されている分散印刷用ＭＩＢを更新して（ステップＳ１１４）、処理をリターンする。
【００４９】
図５に示す例では、上述したとおり、ＰＲＴ１のプリンタ状態情報とプリンタＰＲＴ２のプリンタ状態情報とが、それぞれ、オンライン状態であることを示しているので、「何れかのプリンタ情報がオンライン状態であることを示している場合」に該当する。従って、プリンタ情報がオンライン状態であることを示しているプリンタＰＲＴ１およびプリンタＰＲＴ２のうち、優先順位が高いのは、前述したとおり、プリンタＰＲＴ１であるので、このプリンタＰＲＴ１のプリンタ状態情報を分散印刷用プリンタ状態情報とする。従って、分散印刷用プリンタ状態情報はオンライン状態であることを示すことになるので、この情報でもって、ＭＩＢ格納部１１２に格納されている分散印刷用ＭＩＢを更新すれば、分散印刷用ＭＩＢも、図５に示すように、hrPrinterDetectedErrorStatusの値がオンライン状態であることを示すことになる。
【００５０】
一方、ステップＳ１１０の判定の結果、何れのプリンタ状態情報もオンライン状態であることを示していない、すなわち、全てのプリンタ状態情報がオフライン状態であることを示している場合には、分散先候補プリンタのうち、優先順位の最も高いプリンタのプリンタ状態情報を分散印刷用プリンタ状態情報とし、その分散印刷用プリンタ状態情報でもって、ＭＩＢ格納部１１２に格納されている分散印刷用ＭＩＢを更新して（ステップＳ１１６）、処理をリターンする。この場合、全てのプリンタ状態情報がオフライン状態であることを示しているので、優先順位の最も高いプリンタのプリンタ状態情報を分散印刷用プリンタ状態情報とすると、この分散印刷用プリンタ状態情報も、当然にオフライン状態であることを示すことになる。従って、この情報でもって、ＭＩＢ格納部１１２に格納されている分散印刷用ＭＩＢを更新すれば、分散印刷用ＭＩＢは、hrPrinterDetectedErrorStatusの値がオフライン状態であることを示すことになる。
【００５１】
こうして、図３に示す処理ルーチンが実行されるたびに、個別プリンタ状態情報記憶部１１４において、各分散先候補プリンタごとに記憶されているプリンタ状態情報がそれぞれ更新されると共に、それらに基づいて生成される分散印刷用プリンタ状態情報も更新され、結果として、ＭＩＢ格納部１１２に格納されている分散印刷用ＭＩＢも更新される。
【００５２】
一方、クライアントコンピュータＣＬにおいて、プリンタドライバは、分散印刷したい印刷ジョブを分散元プリンタＰＲＴ０に送信する際に、その送信に先だって、プリンタの動作状態を確認する。すなわち、プリンタドライバは、ＬＡＮを介して、分散元プリンタＰＲＴ０にアクセスし、ＳＮＭＰによって、プリンタ状態情報の取得要求を出す。通常、ＳＮＭＰには、ボート番号として「１６１」が割り当てられているが、本実施例では、分散印刷を行う際において、クライアントコンピュータＣＬがプリンタＰＲＴ０からプリンタ状態情報を取得する場合には、ボート番号として通常の「１６１」ではなく、「５９０９９」を用いる。
【００５３】
プリンタＰＲＴ０のカスタムネットワークボードＣＮＢにおいて、通信部１０４が、クライアントコンピュータＣＬから、ＳＮＭＰによって、ポート番号として「５９０９９」を用いて、プリンタ状態情報の取得要求を受けると、通信部１０４は、プリンタ本体ＰＲＢのメモリ１５２に格納されたＭＩＢではなく、ＭＩＢ格納部１１２に格納された分散印刷用分散印刷用ＭＩＢから、分散印刷用プリンタ状態情報を取得して、クライアントコンピュータＣＬに応答として返す。
従って、プリンタドライバは、分散印刷用分散印刷用ＭＩＢから取得した分散印刷用プリンタ状態情報に基づいて、プリンタの動作状態を確認することになる。
【００５４】
よって、分散先候補プリンタのうち、少なくとも１つのプリンタがオンライン状態にあれば、前述したとおり、分散印刷用プリンタ状態情報はオンライン状態であることを示すことになるので、クライアントコンピュータＣＬのプリンタドライバは、その分散印刷用プリンタ情報に基づいて、プリンタはオンライン状態にあると判断する。その結果、プリンタドライバは、分散印刷したい印刷ジョブを分散元プリンタＰＲＴ０に対して送信する。
【００５５】
Ｅ．実施例の効果：
以上説明したように、本実施例によれば、分散元プリンタＰＲＴ０が、例え、オフライン状態にあって、印刷可能な状態にない場合でも、分散先候補プリンタにおける、他のプリンタＰＲＴ１〜ＰＲＴ３の何れかが、オンライン状態であれば、クライアントコンピュータＣＬから分散元プリンタＰＲＴ０に印刷ジョブが送信されるため、オンライン状態にある他のプリンタＰＲＴ１〜ＰＲＴ３によって、分散印刷を実行することが可能となる。
【００５６】
Ｆ．変形例：
なお、本発明は上記した実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様にて実施することが可能である。
【００５７】
上記した実施例においては、プリンタの印刷可能動作条件の１つとして、オンライン状態にあるという条件を採用し、オンライン状態にあるかどうかを判断するために、各分散先候補プリンタのＭＩＢから、ＯｂｊｅｃｔＩＤ：hrPrinterDetectedErrorStatus  1.3.6.1.2.1.25.3.5.1.2.1の値を含むプリンタ状態情報を取得するようにしたが、本発明はこれに限定されるものではない。
【００５８】
例えば、プリンタの印刷可能動作条件の他の１つとして、印刷中でないという条件を採用し、印刷中でないかどうかを判断するために、各分散先候補プリンタのＭＩＢから、ＯｂｊｅｃｔＩＤ：hrPrinterStatus    1.3.6.1.2.1.25.3.5.1.1.1の値を含むプリンタ状態情報を取得してもよい。ここで、hrPrinterStatusの値は、３２ビットの整数値であり、その値が３であった場合、対象となるプリンタが印刷中でない、すなわち、待機中であることを表し、４であった場合、印刷中であることを表す。
【００５９】
従って、このような条件を採用した場合には、分散元プリンタＰＲＴ０が、例え、印刷中にあって、印刷可能な状態にない場合でも、分散先候補プリンタにおける、他のプリンタＰＲＴ１〜ＰＲＴ３の何れかが、印刷中でなければ、クライアントコンピュータＣＬから分散元プリンタＰＲＴ０に印刷ジョブが送信されるため、印刷中でない他のプリンタＰＲＴ１〜ＰＲＴ３によって、分散印刷を実行することが可能となる。
【００６０】
また、プリンタの印刷可能動作条件のさらに１つとして、トナー残量が０％ではないという条件を採用し、トナー残量０％でないかどうかを判断するために、各分散先候補プリンタのＭＩＢから、ＯｂｊｅｃｔＩＤ：prtMarkerSuppliesLevel    1.3.6.1.2.1.43.11.1.1.9.1の値を含むプリンタ状態情報を取得してもよい。ここで、prtMarkerSuppliesLevelの値は、３２ビットの整数値であり、０から１００までの範囲でトナー残量を％にて表す。その値が０であった場合、トナー残量が０％であることを表す。
【００６１】
従って、このような条件を採用した場合には、分散元プリンタＰＲＴ０が、例え、トナー残量０％であって、印刷可能な状態にない場合でも、分散先候補プリンタにおける、他のプリンタＰＲＴ１〜ＰＲＴ３の何れかが、トナー残量０％でなければ、クライアントコンピュータＣＬから分散元プリンタＰＲＴ０に印刷ジョブが送信されるため、トナー残量０％でない他のプリンタＰＲＴ１〜ＰＲＴ３によって、分散印刷を実行することが可能となる。
【００６２】
この他、プリンタの印刷可能動作条件としては、例えば、エラー状態でないという条件や、印刷用紙があるという条件など、種々の条件を採用することができる。また、プリンタの印刷可能動作条件として、これらの条件を複数組み合わせて採用するようにしてもよい。
【００６３】
上記した実施例においては、個別プリンタ状態情報記憶部１１４に記憶されているプリンタ状態情報を参照して、分散印刷用プリンタ状態情報を生成する場合、何れかのプリンタ状態情報がオンライン状態であることを示しているか否かを判定し、何れかのプリンタ情報がオンライン状態であることを示している場合には、そのオンライン状態であることを示しているプリンタ状態情報のうち、優先順位の最も高いプリンタのプリンタ状態情報を分散印刷用プリンタ状態情報としていた。しかしながら、本発明はこれに限定されるものではない。例えば、個別プリンタ状態情報記憶部１１４に記憶されているプリンタ状態情報を参照して、何れかのプリンタ状態情報がオンライン状態であることを示している場合には、分散印刷用プリンタ状態情報がオンライン状態であることを示すように、分散印刷用プリンタ状態情報を生成し、全てのプリンタ状態情報がオンライン状態であることを示している場合には、分散印刷用プリンタ状態情報がオフライン状態であることを示すように、分散印刷用プリンタ状態情報を生成するようにしてもよい。より具体的には、プリンタ状態情報におけるhrPrinterDetectedErrorStatusのbit1の値は、前述したように、０がオンライン状態，１がオフライン状態を表すので、全てのプリンタ状態情報について、この値の論理積をとり、その論理積の値が０であった場合には、分散印刷用プリンタ状態情報におけるhrPrinterDetectedErrorStatusのbit1の値を０（すなわち、オンライン状態）とし、論理積の値が１であった場合には、分散印刷用プリンタ状態情報におけるhrPrinterDetectedErrorStatusのbit1の値を１（すなわち、オフライン状態）とするようにすればよい。
【００６４】
上記した実施例では、分散印刷制御装置を、プリンタＰＲＴ０に内蔵されたカスタムネットワークボードＣＮＢとして構成するようにしたが、本発明はこれに限定されるものではなく、分散印刷制御装置をプリンタＰＲＴ０と別体とし、ＵＳＢ接続，ＩＥＥＥ１３９４バス接続，パラレル接続，シリアル接続などの有線接続や、ブルートゥース接続，無線ＬＡＮ接続，赤外線接続などの無線接続で接続するようにしてもよい。
【図面の簡単な説明】
【００６５】
【図１】本発明の一実施例としての分散印刷制御装置を備える分散印刷システムを示す説明図である。
【図２】図１におけるプリンタＰＲＴ０の構成を主として示すブロック図である。
【図３】図２のカスタムネットワークボードＣＮＢによって行われる分散印刷用プリンタ状態情報生成処理ルーチンを示すフローチャートである。
【図４】図２の分散先指定ファイル格納部１１６に格納されている分散先指定ファイルの一例を示す説明図である。
【図５】図２の個別プリンタ状態情報記憶部１１４に格納される分散先候補プリンタごとのプリンタ状態情報と、ＭＩＢ格納部１１２に格納されている分散印刷用ＭＩＢの一例を示す説明図である。
【符号の説明】
【００６６】
１００...ＣＰＵ
１０２...プリンタ状態情報管理部
１０４...通信部
１０６...分散印刷処理部
１１０...メモリ
１１２...ＭＩＢ格納部
１１４...個別プリンタ状態情報記憶部
１１６...分散先指定ファイル格納部
１１８...印刷ジョブバッファ部
１５０...プリンタコントローラ
１５２...メモリ
１５４...プリンタエンジン
ＣＬ...クライアントコンピュータ
ＰＲＴ０〜ＰＲＴ３...プリンタ
ＣＮＢ...カスタムネットワークボード
ＰＲＢ...プリンタ本体
【図１】
2006277501.tif 000003
【図２】
2006277501.tif 000004
【図３】
2006277501.tif 000005
【図４】
2006277501.tif 000006
【図５】
2006277501.tif 000007