(57)【要約】【課題】  従来、複数の印刷ジョブを複数の印刷装置に分散して処理するような印刷システムでは、特定の印刷装置に印刷ジョブが集中し、印刷ジョブの処理が滞るために、印刷を完了するまでに時間がかかるという問題があった。【解決手段】  少なくとも前回の分散先となった印刷装置を特定する特定情報を記憶する記憶部と制御部とを備え、制御部は、前記印刷ジョブが所定の条件に従って送信されてきた場合に、特定情報に基づき、印刷装置のうち前回の分散先となった印刷装置以外の印刷装置の中から今回の分散先となる印刷装置を決定し、決定した印刷装置に、送信されてきた印刷ジョブを分散すると共に、今回の分散先となった印刷装置を特定する情報を、特定情報として、前記記憶部に記憶させる。【選択図】  図１
2005316543.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して送信される複数の印刷ジョブを、前記ネットワークに接続された２以上の印刷装置に１印刷ジョブずつ分散することが可能な分散印刷制御装置であって、
前記印刷装置のうち、少なくとも前回の分散先となった印刷装置を特定する特定情報を記憶する記憶部と、
制御部と、
を備え、
前記制御部は、前記印刷ジョブが所定の条件に従って送信されてきた場合に、前記特定情報に基づき、前記印刷装置のうち、前回の分散先となった前記印刷装置以外の印刷装置の中から今回の分散先となる印刷装置を決定し、決定した前記印刷装置に前記送信されてきた印刷ジョブを送信すると共に、今回の分散先となった前記印刷装置を特定する情報を、前記特定情報として、前記記憶部に記憶させることを特徴とする分散印刷制御装置。
【請求項２】
請求項１に記載の分散印刷制御装置において、
前記記憶部は、前記特定情報の他に、前記印刷装置の予め指定された順序を示す順序情報を記憶し、
前記制御部は、今回の分散先となる前記印刷装置を決定する際、前記特定情報と前記順序情報とに基づき、前回の分散先となった前記印刷装置の次の順序の印刷装置を特定し、特定した前記印刷装置を、今回の分散先となる前記印刷装置として決定することを特徴とする分散印刷制御装置。
【請求項３】
請求項１に記載の分散印刷制御装置において、
前記制御部は、今回の分散先となる前記印刷装置を決定する際、前記印刷装置の中から、少なくともオンライン状態である印刷装置を候補印刷装置として検索し、前記特定情報に基づき、前記候補印刷装置のうち、前回の分散先となった前記印刷装置以外の印刷装置の中から今回の分散先となる前記印刷装置を決定することを特徴とする分散印刷制御装置。
【請求項４】
請求項１に記載の分散印刷制御装置であって、
前記記憶部は、前記特定情報の他に、前記印刷装置の予め指定された順序を示す順序情報を記憶し、
前記制御部は、今回の分散先となる前記印刷装置を決定する際、前記印刷装置の中から、少なくともオンライン状態である印刷装置を候補印刷装置として検索し、前記特定情報と前記順序情報とに基づき、前記印刷装置が前記候補印刷装置に含まれているかを、前回の分散先となった前記印刷装置の次の順序の印刷装置から前記順序情報が示す順序で確認し、最初に前記候補印刷装置に含まれていると確認した印刷装置を、今回の分散先となる前記印刷装置として決定することを特徴とする分散印刷制御装置。
【請求項５】
請求項１ないし請求項４のいずれかに記載の分散印刷制御装置において、
前記所定の条件に従って送信されてきた場合には、特定のポート番号を指定して前記印刷ジョブが送信されてきた場合、特定の印刷プロトコルで前記印刷ジョブが送信されてきた場合、印刷プロトコル上の特定のコマンドで前記印刷ジョブが送信されてきた場合、及び特定の印刷コマンドを含んで前記印刷ジョブが送信されてきた場合のうち、少なくとも１つの場合を含むことを特徴とする分散印刷制御装置。
【請求項６】
請求項１ないし請求項４のいずれかに記載の分散印刷制御装置において、
前記所定の条件に従って送信されてきた場合には、特定のポート番号を指定して前記印刷ジョブが送信されてきた場合を含むと共に、前記制御部は、分散先となる前記印刷装置に前記印刷ジョブを送信する際、前記特定のポート番号とは異なるポート番号を指定して前記印刷ジョブを送信することを特徴とする分散印刷制御装置。
【請求項７】
請求項１ないし請求項４のいずれかに記載の分散印刷制御装置において、
前記所定の条件に従って送信されてきた場合には、特定の印刷プロトコルで前記印刷ジョブが送信されてきた場合を含むと共に、前記制御部は、分散先となる前記印刷装置に前記印刷ジョブを送信する際、前記特定の印刷プロトコルとは異なる印刷プロトコルで前記印刷ジョブを送信することを特徴とする分散印刷制御装置。
【請求項８】
請求項１ないし請求項４のいずれかに記載の分散印刷制御装置において、
前記所定の条件に従って送信されてきた場合には、印刷プロトコル上の特定のコマンドで前記印刷ジョブが送信されてきた場合を含むと共に、前記制御部は、分散先となる前記印刷装置に前記印刷ジョブを送信する際、前記特定のコマンドとは異なるコマンドで前記印刷ジョブを送信することを特徴とする分散印刷制御装置。
【請求項９】
請求項１ないし請求項４のいずれかに記載の分散印刷制御装置において、
前記所定の条件に従って送信されてきた場合には、特定の印刷コマンドを含んで前記印刷ジョブが送信されてきた場合を含むと共に、前記制御部は、分散先となる前記印刷装置に前記印刷ジョブを送信する際、前記特定の印刷コマンドとは異なる印刷コマンドを含めて前記印刷ジョブを送信することを特徴とする分散印刷制御装置。
【請求項１０】
請求項１ないし請求項９のいずれかに記載の分散印刷制御装置であって、
前記ネットワークに接続された印刷装置のうち、少なくとも１つの特定印刷装置に、内蔵または接続されていることを特徴とする分散印刷制御装置。
【請求項１１】
請求項１０に記載の分散印刷制御装置において、
前記制御部は、前記分散先印刷装置として、前記特定印刷装置を特定することを許容することを特徴とする分散印刷装置。
【請求項１２】
請求項１０または請求項１１に記載の分散印刷制御装置において、
前記制御部は、分散先となる前記印刷装置を決定する際、前記印刷装置の中から、前記特定印刷装置と同一機種の印刷装置を抽出し、該同一機種の印刷装置の中から、分散先となる前記印刷装置を決定することを特徴とする分散印刷制御装置。
【請求項１３】
請求項１２に記載の分散印刷制御装置において、
分散先指定ファイルを有すると共に、
前記制御部は、前記印刷装置の中から、前記特定印刷装置と同一機種の印刷装置を抽出する際、前記分散先指定ファイルの指定内容に基づいた範囲内で、前記同一機種の印刷装置を抽出することを特徴とする分散印刷制御装置。
【請求項１４】
ネットワークに接続された印刷装置であって、
請求項１ないし請求項１３のいずれかに記載の分散印刷制御装置を内蔵することを特徴とする印刷装置。
【請求項１５】
ネットワークを介して送信される複数の印刷ジョブを、前記ネットワークに接続された２以上の印刷装置に１印刷ジョブずつ分散するための印刷ジョブ分散方法であって、
（ａ）前記印刷装置のうち、少なくとも前回の分散先となった印刷装置を特定する特定情報を、記憶する工程と、
（ｂ）前記印刷ジョブを含む通信データを受信する工程と、
（ｃ）受信した前記通信データが所定の条件に従って送信されてきた場合に、記憶した前記特定情報に基づき、前記印刷装置のうち、前回の分散先となった前記印刷装置以外の印刷装置の中から今回の分散先となる印刷装置を決定する工程と、
（ｄ）前記工程（ｃ）で決定した前記印刷装置に前記送信されてきた印刷ジョブを送信する工程と、
（ｅ）今回の分散先となった前記印刷装置を特定する情報を、前記特定情報として、記憶する工程と、
を備える印刷ジョブ分散方法。
【請求項１６】
分散印刷制御装置によって、ネットワークを介して送信される複数の印刷ジョブを、前記ネットワークに接続された２以上の印刷装置に１印刷ジョブずつ分散させるためのコンピュータプログラムであって、
前記印刷装置のうち、少なくとも前回の分散先となった印刷装置を特定する特定情報を、前記分散印刷制御装置の備える記憶部に記憶させる手順と、
前記印刷ジョブを含む通信データを受信する手順と、
受信した通信データが所定の条件に従って送信されてきた場合に、記憶した前記特定情報に基づき、前記印刷装置のうち、前回の分散先となった前記印刷装置以外の印刷装置の中から今回の分散先となる印刷装置を決定する手順と、
決定した前記印刷装置に前記送信されてきた印刷ジョブを送信する手順と、
今回の分散先となった前記印刷装置を特定する情報を、前記特定情報として、前記記憶部に記憶させる手順と、
を前記分散印刷制御装置の備えるコンピュータに実行させるためのコンピュータプログラム。
【請求項１７】
請求項１６に記載のコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークに接続された２以上の印刷装置に印刷ジョブを分散して、印刷を行う技術に関し、特に、前回印刷ジョブを分散した印刷装置には、次回分散する際に、できるだけ分散しないようにする技術に関する。
【背景技術】
【０００２】
近年、複数のプリンタを同一ネットワークに接続し、ユーザが複数のプリンタを使い分けることができる印刷システムが普及しつつある。そして、このような印刷システムにおいて印刷ジョブを各プリンタに分散して並行処理することにより、短時間で印刷を完了する、いわゆる分散印刷も提案されている（例えば、特許文献１参照）。
【０００３】
【特許文献１】特開２００２−２１５３６８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、例えば、複数の印刷ジョブを複数のプリンタに分散して処理するような印刷システムでは、前回分散先プリンタとなっていないプリンタがあるにもかかわらず、このプリンタを選択せず、前回分散先プリンタとなったプリンタを、次回も分散先プリンタとして決定する場合があった。その結果、特定のプリンタに印刷ジョブが集中し、印刷ジョブの処理が滞るために、印刷を完了するまでに時間がかかるという問題があった。
【０００５】
本発明は、上述の課題を解決するためになされたものであり、分散印刷を行う際に、前回印刷ジョブを分散した印刷装置には、次回分散する際に、できるだけ分散しないようにすることで、特定の印刷装置に印刷ジョブが集中することを避け、印刷を短時間で完了することを目的とする。
【課題を解決するための手段】
【０００６】
前述の課題の少なくとも一部を解決するために、本発明の分散印刷制御装置は、ネットワークを介して送信される複数の印刷ジョブを、前記ネットワークに接続された２以上の印刷装置に１印刷ジョブずつ分散することが可能な分散印刷制御装置であって、前記印刷装置のうち、少なくとも前回の分散先となった印刷装置を特定する特定情報を記憶する記憶部と、制御部と、を備え、前記制御部は、前記印刷ジョブが所定の条件に従って送信されてきた場合に、前記特定情報に基づき、前記印刷装置のうち、前回の分散先となった前記印刷装置以外の印刷装置の中から今回の分散先となる印刷装置を決定し、決定した前記印刷装置に前記送信されてきた印刷ジョブを送信すると共に、今回の分散先となった前記印刷装置を特定する情報を、前記特定情報として、前記記憶部に記憶させることを要旨とする。
【０００７】
このように、本発明における分散印刷制御装置は、前回の分散先となった印刷装置を特定する特定情報を記憶するようにしているので、今回の分散先となる印刷装置を決定する際、この特定情報に基づくことにより、前回の分散先となった印刷装置を、今回の分散先となる印刷装置として決定することを避けることができる。従って、特定の印刷装置に印刷ジョブが集中することを避け、印刷を短時間で完了することができる。
【０００８】
なお、本発明の分散印刷制御装置において、前記記憶部は、前記特定情報の他に、前記印刷装置の予め指定された順序を示す順序情報を記憶し、前記制御部は、今回の分散先となる前記印刷装置を決定する際、前記特定情報と前記順序情報とに基づき、前回の分散先となった前記印刷装置の次の順序の印刷装置を特定し、特定した前記印刷装置を、今回の分散先となる前記印刷装置として決定することが好ましい。
【０００９】
このように、上記分散印刷制御装置が、印刷装置の順序を示す順序情報を記憶しておくことで、今回の分散先となる印刷装置を決定する際、この順序情報と特定情報とから、前回の分散先となった印刷装置の次の順序の印刷装置を、今回の分散先として決定することができる。そして、このように分散先を決定することで、ひとたび分散先となった印刷装置を、次に分散先として決定するのは、予め指定された順序が一巡した後とすることができ、印刷装置の中で、印刷ジョブを分散してから最も時間の経った印刷装置を、今回の分散先として決定することができる。従って、より早く印刷ジョブの処理に取りかかる可能性が高い印刷装置に、印刷ジョブを分散することができるので、印刷を短時間で完了することができる。
また、それぞれの印刷装置を、予め指定された順序で分散先として決定することになるので、それぞれの印刷装置に分散する印刷ジョブをほぼ同数とすることができ、特定の印刷装置に印刷ジョブが集中することを避け、印刷を短時間で完了することができる。
【００１０】
また、本発明の分散印刷制御装置において、前記制御部は、今回の分散先となる前記印刷装置を決定する際、前記印刷装置の中から、少なくともオンライン状態である印刷装置を候補印刷装置として検索し、前記特定情報に基づき、前記候補印刷装置のうち、前回の分散先となった前記印刷装置以外の印刷装置の中から今回の分散先となる前記印刷装置を決定することが好ましい。
【００１１】
このようにすることで、少なくとも用紙切れ等の理由でエラーが発生して印刷することができない印刷装置を、分散先となる印刷装置として決定することを避けることができる。従って、印刷を短時間で完了することが可能となるからである。
【００１２】
なお、本発明の分散印刷制御装置において、前記記憶部は、前記特定情報の他に、前記印刷装置の予め指定された順序を示す順序情報を記憶し、前記制御部は、今回の分散先となる前記印刷装置を決定する際、前記印刷装置の中から、少なくともオンライン状態である印刷装置を候補印刷装置として検索し、前記特定情報と前記順序情報とに基づき、前記印刷装置が前記候補印刷装置に含まれているかを、前回の分散先となった前記印刷装置の次の順序の印刷装置から前記順序情報が示す順序で確認し、最初に前記候補印刷装置に含まれていると確認した印刷装置を、今回の分散先となる前記印刷装置として決定することが好ましい。
【００１３】
このように、印刷装置の順序を示す順序情報を記憶しておくことで、この順序情報と特定情報とから、前回の分散先となった印刷装置の次の順序の印刷装置から始め、順序情報が示す順序で、候補印刷装置に含まれているかを確認することができる。そして、最初に候補印刷装置に含まれていると確認した印刷装置を、今回の分散先として決定するので、少なくとも用紙切れ等の理由でエラーが発生して印刷することができない印刷装置を、分散先として決定することを避けることができると共に、印刷装置の中で、印刷ジョブを分散してからより時間の経った印刷装置を、今回の分散先として決定することができる。従って、より早く印刷ジョブの処理に取りかかる可能性が高い印刷装置に、印刷ジョブを分散することができ、印刷を短時間で完了することができる。
【００１４】
なお、本発明の分散印刷制御装置において、前記所定の条件に従って送信されてきた場合には、特定のポート番号を指定して前記印刷ジョブが送信されてきた場合、特定の印刷プロトコルで前記印刷ジョブが送信されてきた場合、印刷プロトコル上の特定のコマンドで前記印刷ジョブが送信されてきた場合、及び特定の印刷コマンドを含んで前記印刷ジョブが送信されてきた場合のうち、少なくとも１つの場合を含むことが好ましい。
【００１５】
このように構成することで、コンピュータ等に特別なソフトウェアをインストールしたりする必要がなく、また、分散印刷を行う場合、ユーザは、コンピュータ等から分散印刷制御装置に印刷ジョブを送信する際に、コンピュータ等において、ポート番号の指定を特定のポート番号に変更する，用いる印刷プロトコルを特定の印刷プロトコルに変更する，印刷プロトコル上で用いるコマンドを特定のコマンドに変更する，または印刷ジョブに含める印刷コマンドを特定の印刷コマンドに変更するだけでよいため、ユーザの負担を大幅に軽減することができる。
【００１６】
なお、本発明の分散印刷制御装置において、前記所定の条件に従って送信されてきた場合には、特定のポート番号を指定して前記印刷ジョブが送信されてきた場合を含むと共に、前記制御部は、分散先となる前記印刷装置に前記印刷ジョブを送信する際、前記特定のポート番号とは異なるポート番号を指定して前記印刷ジョブを送信することが好ましい。
【００１７】
このように構成することで、コンピュータ等に特別なソフトウェアをインストールしたりする必要がなく、また、分散印刷を行う場合、ユーザは、コンピュータ等から分散印刷制御装置に印刷ジョブを送信する際に、コンピュータ等において、ポート番号の指定を特定のポート番号に変更するだけでよいため、ユーザの負担を大幅に軽減することができる。また、例えば、分散印刷制御装置が特定の印刷装置に内蔵されていて、分散印刷制御装置の１つとしてその特定印刷装置が含まれている場合に、印刷ジョブをその特定印刷装置に分散しても、そのときに指定されるポート番号は特定のポート番号とは異なるため、その分散した印刷ジョブを、特定のポート番号を指定して送信されてきた印刷ジョブと判断することがなく、さらに再分散、再々分散など、無限に分散するようなことがない。
【００１８】
なお、本発明の分散印刷制御装置において、前記所定の条件に従って送信されてきた場合には、特定の印刷プロトコルで前記印刷ジョブが送信されてきた場合を含むと共に、前記制御部は、分散先となる前記印刷装置に前記印刷ジョブを送信する際、前記特定の印刷プロトコルとは異なる印刷プロトコルで前記印刷ジョブを送信することが好ましい。
【００１９】
このように構成することで、コンピュータ等に特別なソフトウェアをインストールしたりする必要がなく、また、分散印刷を行う場合、ユーザは、コンピュータ等から分散印刷制御装置に印刷ジョブを送信する際に、コンピュータ等において、用いる印刷プロトコルを特定の印刷プロトコルに変更するだけでよいため、ユーザの負担を大幅に軽減することができる。また、例えば、分散印刷制御装置が特定の印刷装置に内蔵されていて、分散印刷制御装置の１つとしてその特定印刷装置が含まれている場合に、印刷ジョブをその特定印刷装置に分散しても、そのときに用いられる印刷プロトコルは特定の印刷プロトコルとは異なるため、その分散した印刷ジョブを、特定の印刷プロトコルで送信されてきた印刷ジョブと判断することがなく、さらに再分散、再々分散など、無限に分散するようなことがない。
【００２０】
なお、本発明の分散印刷制御装置において、前記所定の条件に従って送信されてきた場合には、印刷プロトコル上の特定のコマンドで前記印刷ジョブが送信されてきた場合を含むと共に、前記制御部は、分散先となる前記印刷装置に前記印刷ジョブを送信する際、前記特定のコマンドとは異なるコマンドで前記印刷ジョブを送信することが好ましい。
【００２１】
このように構成することで、コンピュータ等に特別なソフトウェアをインストールしたりする必要がなく、また、分散印刷を行う場合、ユーザは、コンピュータ等から分散印刷制御装置に印刷ジョブを送信する際に、コンピュータ等において、印刷プロトコル上で用いるコマンドを特定のコマンドに変更するだけでよいため、ユーザの負担を大幅に軽減することができる。また、例えば、分散印刷制御装置が特定の印刷装置に内蔵されていて、分散印刷制御装置の１つとしてその特定印刷装置が含まれている場合に、印刷ジョブをその特定印刷装置に分散しても、そのときに用いられるコマンドは特定のコマンドとは異なるため、その分散した印刷ジョブを、特定のコマンドで送信されてきた印刷ジョブと判断することがなく、さらに再分散、再々分散など、無限に分散するようなことがない。
【００２２】
なお、本発明の分散印刷制御装置において、前記所定の条件に従って送信されてきた場合には、特定の印刷コマンドを含んで前記印刷ジョブが送信されてきた場合を含むと共に、前記制御部は、分散先となる前記印刷装置に前記印刷ジョブを送信する際、前記特定の印刷コマンドとは異なる印刷コマンドを含めて前記印刷ジョブを送信することが好ましい。
【００２３】
このように構成することで、コンピュータ等に特別なソフトウェアをインストールしたりする必要がなく、また、分散印刷を行う場合、ユーザは、コンピュータ等から分散印刷制御装置に印刷ジョブを送信する際に、コンピュータ等において、印刷ジョブに含める印刷コマンドを特定の印刷コマンドに変更するだけでよいため、ユーザの負担を大幅に軽減することができる。また、例えば、分散印刷制御装置が特定の印刷装置に内蔵されていて、分散印刷制御装置の１つとしてその特定印刷装置が含まれている場合に、印刷ジョブをその特定印刷装置に分散しても、そのときに印刷ジョブに含まれる印刷コマンドは特定の印刷コマンドとは異なるため、その分散した印刷ジョブを、特定の印刷コマンドを含んで送信されてきた印刷ジョブと判断することがなく、さらに再分散、再々分散など、無限に分散するようなことがない。
【００２４】
本発明の分散印刷制御装置において、前記ネットワークに接続された印刷装置のうち、少なくとも１つの特定印刷装置に、内蔵または接続されていてもよい。
【００２５】
特定印刷装置に内蔵または接続された分散印刷制御装置において、前記制御部は、前記分散先となる印刷装置として、前記特定印刷装置を特定することを許容することが好ましい。
【００２６】
このように構成することで、特定印刷装置自身を分散先となる印刷装置の候補に組み入れることができ、分散先となる印刷装置の選択範囲を広げることができる。
【００２７】
特定印刷装置に内蔵または接続された分散印刷制御装置において、前記制御部は、分散先となる前記印刷装置を決定する際、前記印刷装置の中から、前記特定印刷装置と同一機種の印刷装置を抽出し、該同一機種の印刷装置の中から、分散先となる前記印刷装置を決定することが好ましい。
【００２８】
分散印刷制御装置が特定印刷装置に内蔵もしくは接続されている場合、分散印刷制御装置に送信されてくる印刷ジョブは、特定印刷装置用の印刷ジョブとして送信されてくるため、その印刷ジョブが分散される印刷装置も、特定印刷装置と同一機種であれば、それら分散先となる印刷装置において、印刷ジョブのデータ変換などをすることなく、適正な印刷を行わせることができる。
【００２９】
特定印刷装置に内蔵または接続された分散印刷制御装置において、分散先指定ファイルを有すると共に、前記制御部は、前記印刷装置の中から、前記特定印刷装置と同一機種の印刷装置を抽出する際、前記分散先指定ファイルの指定内容に基づいた範囲内で、前記同一機種の印刷装置を抽出することが好ましい。
【００３０】
このように、分散先指定ファイルを用いることにより、分散先となる印刷装置の候補を、予め、所望の印刷装置に絞り込むことができる。
【００３１】
なお、本発明は、上記した分散印刷制御装置としての構成の他、その分散印刷制御装置を内蔵する印刷装置としても構成することができる。また、そのような装置発明の態様に限ることなく、印刷ジョブ分散方法などの方法発明としての態様で実現することも可能である。さらには、それら方法や装置を構成するためのコンピュータプログラムとしての態様や、そのようなコンピュータプログラムを記録した記録媒体としての態様や、上記コンピュータプログラムを含み搬送波内に具現化されたデータ信号など、種々の態様で実現することも可能である。
【００３２】
本発明をコンピュータプログラムまたはそのプログラムを記録した記録媒体等として構成する場合には、印刷装置を制御するプログラム全体として構成するものとしてもよいし、本発明の機能を果たす部分のみを構成するものとしてもよい。また、記録媒体としては、ＲＯＭカートリッジ、パンチカード、バーコードなどの符合が印刷された印刷物、コンピュータの内部記憶装置（ＲＡＭやＲＯＭなどのメモリ）および外部記憶装置などコンピュータが読み取り可能な種々の媒体を利用できる。
【発明を実施するための最良の形態】
【００３３】
以下、本発明を実施するための最良の形態を実施例に基づいて以下の順序で説明する。
Ａ．第１の実施例：
Ａ１．システムの概要：
Ａ２．プリンタの構成：
Ａ３．通常印刷処理：
Ａ４．分散印刷処理：
Ａ５．実施例の効果：
Ｂ．第２の実施例：
Ｂ１．プリンタの構成：
Ｂ２．通常印刷処理：
Ｂ３．分散印刷処理：
Ｂ４．実施例の効果：
Ｃ．変形例
Ｃ１．変形例１：〜Ｃ１２．変形例１２：
【００３４】
Ａ．第１の実施例：
Ａ１．システムの概要：
図１は、本発明の第１の実施例としてのプリンタＰＲＴ１を備える印刷システムの構成を示す説明図である。この印刷システムでは、図示するように、クライアントＰＣ（以下、クライアントと略す）ＣＬ、複数のプリンタＰＲＴ１〜ＰＲＴ５を備えており、クライアントＣＬ及びプリンタＰＲＴ１〜ＰＲＴ４は、ローカルエリアネットワークＬＡＮ１に接続され、また、プリンタＰＲＴ５は、ローカルエリアネットワークＬＡＮ２に接続されている。そして、ローカルエリアネットワークＬＡＮ１、ＬＡＮ２は、互いにルータＲＴで接続されている。
【００３５】
各機器間の通信は、ＴＣＰ／ＩＰプロトコルをベースとしているため、各機器には、それぞれ、ＩＰアドレスが予め固定で割り振られている。説明の便宜上、クライアントＣＬには「ＩＰｃ」、プリンタＰＲＴ１〜ＰＲＴ４には、それぞれ「ＩＰ１１〜ＩＰ１４」、プリンタＰＲＴ５には「ＩＰ２５」なるアドレスが設定されているものとする。なお、厳密に言えば、これらＩＰアドレスは、クライアントＣＬ，プリンタＰＲＴ１〜ＰＲＴ５自体に設定されているわけではなく、ＴＣＰ／ＩＰのネットワークから見た場合のノード（すなわち、具体的には、ＴＣＰ／ＩＰ通信を行うためにネットワークに接続されているネットワークボードなど）に設定されている。
【００３６】
これらプリンタのうち、プリンタＰＲＴ１には、カスタムネットワークボードＣＮＢが取り付けられている。このカスタムネットワークボードＣＮＢは、受信した印刷ジョブを他のプリンタに分散して、分散印刷を実行するための分散印刷制御機能を備えており、請求項における分散印刷制御装置に相当する。一方、他のプリンタには、それぞれ、標準のネットワークボード（図示せず）が取り付けられている。
【００３７】
一例として図中には、クライアントＣＬからプリンタＰＲＴ１に、複数の通信データＤＴ１〜ＤＴ４が、この順番に送信される場合を例示した。なお、これら通信データＤＴ１〜ＤＴ４には、それぞれ別々の印刷ジョブが含まれている。
【００３８】
図２は、このような印刷ジョブを含む通信データの構成を概念的に示す説明図である。図２に示すように、通信データは、大きく分けて、ヘッダと、印刷ジョブデータと、に分かれている。
【００３９】
このうち、ヘッダには、その通信データの発信元である機器のＩＰアドレス（発信元ＩＰアドレス）と、その機器内における発信元であるソフトウェアを特定するポート番号（発信元ポート番号）と、を含む他、その通信データの送信先である機器のＩＰアドレス（送信先ＩＰアドレス）と、その機器内における送信先であるソフトウェアを特定するポート番号（送信先ポート番号）とを含んでいる。発信元である機器のソフトウェアから発信された通信データは、送信先ＩＰアドレスに従って、そのＩＰアドレスを有する機器に送信され、更に、受信した機器内では、送信先ポート番号に従って、その番号のポートで待機しているソフトウェアに渡される。
【００４０】
なお、ＴＣＰ／ＩＰ通信の場合、通信データは、通常、パケットとして通信される。従って、実際には、一連の印刷ジョブデータは、時分割された上で、各時分割データの前に上述のヘッダを付けたパケットとして、それぞれ、送信されることになる。
【００４１】
図１に戻って、通信データＤＴ１には、送信先ＩＰアドレスとして「ＩＰ１１」が、送信先ポート番号として「１９１００」が、それぞれ記載されている。
【００４２】
本実施例では、印刷プロトコルとして無手順プロトコルを用いている。無手順プロトコルでは、通常、ポート番号として「９１００」が割り当てられているが、本実施例では、クライアントＣＬから分散印刷制御機能を有するプリンタＰＲＴ１に印刷ジョブを送信する際、ポート番号として通常の「９１００」ではなく、「１９１００」を用いる。
【００４３】
本実施例におけるプリンタＰＲＴ１のカスタムネットワークボードＣＮＢでは、ポート番号「１９１００」に分散印刷制御機能を実現するための分散印刷ソフトウェアが待機している。そして、上記通信データＤＴ１を送信するためにクライアントＣＬから接続があると、この分散印刷ソフトウェアに従ってＣＰＵにより実現される機能部が、まず、分散先指定ファイルＦａを読み出し、記載されている全てのＩＰアドレスのプリンタに対して、オンライン状態かつプリンタＰＲＴ１と同一機種であるかを問い合わせて、このようなプリンタを抽出する。
次に、上記機能部は、先頭番号ファイルＦｂを読み出し、先頭番号ファイルＦｂに記載された順序番号に相当するＩＰアドレスのプリンタが、先に抽出されたプリンタの中にあるか否かを判定し、あると判定した場合には、そのプリンタを分散先プリンタとして決定する。そして、分散先プリンタを決定すると、上記機能部は、決定した分散先プリンタの次の順序のプリンタの順序番号を、先頭番号ファイルＦｂに上書きする。
【００４４】
具体的には、例えば、図１に示す分散先指定ファイルＦａで指定されたプリンタＰＲＴ１〜ＰＲＴ３及びＰＲＴ５が、全てオンライン状態かつプリンタＰＲＴ１と同一機種のプリンタとして抽出されたものとした場合、先頭番号ファイルＦｂに記載された順序番号「２」に対応するＩＰアドレス（ＩＰ１２）のプリンタであるプリンタＰＲＴ２は、先に抽出されたプリンタの中にあるので、このプリンタＰＲＴ２を分散先プリンタとして決定する。そして、先頭番号ファイルＦｂに、プリンタＰＲＴ２の次の順序のプリンタＰＲＴ３の順序番号「３」を上書きする。
【００４５】
そして、上記機能部は、通信データＤＴ１を受信すると、送信先ポート番号を「１９１００」ではなく、「９１００」に変更した上で、決定した分散先プリンタであるプリンタＰＲＴ２に印刷ジョブを含む通信データＤＴ１'を送信する。このとき、通信データＤＴ１'には、送信先ＩＰアドレスとして「ＩＰ１２」が、送信先ポート番号として「９１００」が、それぞれ記載される。
【００４６】
プリンタＰＲＴ２の標準ネットワークボードは、この通信データＤＴ１'を受信すると、ポート番号「９１００」に待機しているソフトウェアに、印刷ジョブデータを渡す。ポート番号「９１００」は、前述したとおり、印刷プロトコルである無手順プロトコルに対して、通常割り当てられているポート番号であるので、印刷ジョブデータは、プリンタＰＲＴ２内の印刷制御ソフトウェアに渡されて、その印刷ジョブに従った印刷が実行される。
【００４７】
一方、プリンタＰＲＴ１の制御部は、前述のように、順序番号「３」を、先頭番号ファイルＦｂに上書きした後に、通信データＤＴ２を送信するためにクライアントＣＬから次の接続があると、上述と同様に、分散先プリンタの決定の処理を開始する。そして、今回は、先頭番号ファイルＦｂに順序番号として、「３」と、３番が記載されているので、少なくとも順序番号「３」に対応するプリンタＰＲＴ３が、オンライン状態かつプリンタＰＲＴ１と同一機種のプリンタとして抽出された場合には、このプリンタＰＲＴ３を分散先プリンタとして決定することになる。そして、この場合、上記機能部は、図示するように、送信先ＩＰアドレスとして「ＩＰ１３」が、送信先ポート番号として「９１００」が、それぞれ記載された通信データＤＴ２'をプリンタＰＲＴ３に送信することになる。
【００４８】
そして、上記機能部は、その後に受信した通信データＤＴ３、ＤＴ４についても同様にして、それぞれ分散先プリンタを決定することになるが、少なくともプリンタＰＲＴ５，ＰＲＴ１が、それぞれオンライン状態かつプリンタＰＲＴ１と同一機種であれば、プリンタＰＲＴ５，ＰＲＴ１を、それぞれ分散先プリンタとして決定し、図１に示すように、通信データＤＴ３'、ＤＴ４'を送信することになる。
このようにして、前回印刷ジョブを分散したプリンタには、次回分散する際には、できるだけ分散しないようにして、複数の印刷ジョブを複数のプリンタに分散することになる。
【００４９】
Ａ２．プリンタの構成：
図３は、図１におけるプリンタＰＲＴ１の構成を主として示す説明図である。プリンタＰＲＴ１は、プリンタ本体ＰＲＢと、上述したカスタムネットワークボードＣＮＢと、を備えている。このうち、プリンタ本体ＰＲＢは、主として、プリンタエンジン４１と、プリンタコントローラ４２と、を備えている。プリンタエンジン４１は、実際に印刷を行う機能部分である。プリンタコントローラ４２は、カスタムネットワークボードＣＮＢから印刷ジョブデータを受取り、その印刷ジョブに従ってプリンタエンジン４１を制御し、印刷を実行させる。
【００５０】
一方、カスタムネットワークボードＣＮＢは、主として、ＣＰＵ２０と、メモリ３０と、を備えている。また、この他、実際にネットワーク通信を行うための通信用インタフェースなども備えているが、説明の便宜上、省略されている。
【００５１】
ＣＰＵ２０は、メモリ３０より、上記した分散印刷ソフトウェアなどのプログラムを読み出して実行することにより、図示した各機能ブロックとして機能する。なお、各機能ブロックをハードウェア的に構築しても構わない。このようなＣＰＵ２０が、請求項に記載の制御部に相当する。
【００５２】
これら機能ブロックのうち、ＴＣＰ／ＩＰ解釈部２１は、ＴＣＰ／ＩＰプロトコルを解釈して、ネットワークを介して外部との通信を行う。具体的には、受信した通信データに含まれる送信先ＩＰアドレスや送信先ポート番号を検出したり、送信する通信データに送信先ＩＰアドレスや送信先ポート番号を付与したりする。無手順プロトコル解釈部２２Ａ，２２Ｂは、印刷プロトコルである無手順プロトコルを解釈する。本実施例では、説明の便宜上、通信データが、送信先ポート番号として通常の「９１００」で送信されている場合には、無手順プロトコル解釈部２２Ｂが機能し、特定の「１９１００」で送信されている場合には、無手順プロトコル解釈部２２Ａが機能するものとしている。
【００５３】
また、親タスク処理部２３は、親タスクを実行する。具体的には、分散先プリンタを決定したり、後述する子タスク処理部を生成したりする。子タスク処理部は、子タスクを実行する。具体的には、クライアントＣＬから受信した印刷ジョブを、決定した分散先プリンタに転送する。この子タスク処理部は、初期状態では存在しないが、クライアントＣＬから接続がある度に、親タスク処理部２３によって生成される。なお、図３では、２つの子タスク処理部２４Ａ，２４Ｂが生成されたものとして例示している。
【００５４】
一方、メモリ３０は、上記したプログラムを格納する他、前述の分散先指定ファイルＦａや先頭番号ファイルＦｂなど各種データを記憶する。また、メモリ３０内には、１つ１つの子タスク処理部に対応して、子タスク用ワークエリアが確保される。この子タスク用ワークエリアは、子タスク処理部が子タスクを実行する際に、ワークエリアとして用いられる。図３では、子タスク処理部２４Ａ，２４Ｂに対応して、それぞれ、子タスク用ワークエリア３１Ａ，３１Ｂが確保されたものとして例示している。
この子タスク用ワークエリアは、図示するように、接続情報格納部３２、印刷ジョブ格納部３３から成る。接続情報格納部３２は、分散先プリンタのＩＰアドレスなどを格納するための格納部であり、印刷ジョブ格納部３３は、クライアントＣＬから受信した印刷ジョブを一時的に格納するための格納部である。なお、この子タスク用ワークエリアは、子タスク処理部が処理を終えて消滅する際に解放されることになる。
【００５５】
さて、図３において、その他、クライアントＣＬにおいては、アプリケーション１３の他、機能ブロックとして、無手順プロトコル解釈部１２やＴＣＰ／ＩＰ解釈部１１を備えている。また、プリンタＰＲＴ２においては、プリンタエンジン５４やプリンタコントローラ５３の他、機能ブロックとして、無手順プロトコル解釈部５２やＴＣＰ／ＩＰ解釈部５１を備えている。このうち、無手順プロトコル解釈部１２，無手順プロトコル解釈部５２は、プリンタＰＲＴ１において、送信先ポート番号として通常の「９１００」で送信された通信データを扱う無手順プロトコル解釈部２２Ｂと同じ機能を有している。また、ＴＣＰ／ＩＰ解釈部１１，５１も、プリンタＰＲＴ１におけるＴＣＰ／ＩＰ解釈部２１と、プリンタエンジン５４やプリンタコントローラ５３も、プリンタＰＲＴ１におけるプリンタエンジン４１やプリンタコントローラ４２と、それぞれ同一の機能や構成を有している。  また、プリンタＰＲＴ２は、図示せざるメモリを備えており、印刷中であっても、別の印刷ジョブを受信することができ、受信した印刷ジョブをこのメモリに格納する。
【００５６】
Ａ３：通常印刷処理：
分散印刷処理を説明する前に、通常の印刷処理について簡単に説明する。なお、印刷ジョブをクライアントＣＬからプリンタＰＲＴ１に送信し、プリンタＰＲＴ１のみで印刷を実行する場合を例として説明する。この場合、印刷ジョブは、図３において、破線で示す経路をたどって転送される。なお、クライアントＣＬにおけるプリンタドライバ（図示せず）において、印刷プロトコルの設定は、無手順プロトコルに設定されているものとする。
【００５７】
ユーザがクライアントＣＬに印刷命令を出すと、クライアントＣＬでは、アプリケーション１３が、印刷ジョブを、無手順プロトコル解釈部１２，ＴＣＰ／ＩＰ解釈部１１を介してプリンタＰＲＴ１に送信する。このとき、無手順プロトコル解釈部１２は、印刷プロトコルである無手順プロトコルに従って、印刷ジョブを含む通信データを送信し、また、ＴＣＰ／ＩＰ解釈部１１は、その通信データの送信先ＩＰアドレスとして、プリンタＰＲＴ１の「ＩＰ１１」を指定すると共に、送信先ポート番号として、無手順プロトコルに通常割り当てられている「９１００」を指定する。
【００５８】
プリンタＰＲＴ１では、ＴＣＰ／ＩＰ解釈部２１が、通信データに含まれる送信先ＩＰアドレス「ＩＰ１１」に従って、その通信データを受信し、さらに、その通信データに含まれる送信先ポート番号が「９１００」であるので、「９１００」で送信された通信データを扱う無手順プロトコル解釈部２２Ｂに渡す。無手順プロトコル解釈部２２Ｂは、無手順プロトコルに従って、印刷ジョブを含む通信データを受取り、印刷ジョブをプリンタコントローラ４２に渡す。プリンタコントローラ４２は、受け取った印刷ジョブに従って、プリンタエンジン４１に印刷を実行させる。
【００５９】
Ａ４．分散印刷処理：
次に、分散印刷処理について詳細に説明する。まず、前提として、ユーザにより、プリンタＰＲＴ１の電源が投入されると、プリンタ本体ＰＲＢ及びカスタムネットワークボードＣＮＢが起動して、親タスク処理部２３が、プリンタコントローラ４２から、自己のプリンタＰＲＴ１の機種名を取得するものとする。具体的には、親タスク処理部２３が、送信先ＩＰアドレスとして、自己プリンタＰＲＴ１のＩＰアドレス「ＩＰ１１」を指定して、ＳＮＭＰ（Simple Network Management Protocol）で機種名を問い合わせることにより、ＣＰＵ２０が、バスを介してプリンタコントローラ４２に機種名を要求し、その応答を受け取ることにより、取得するものとする。このように、電源が投入されるたびに自己プリンタの機種名を問い合わせるようにしているのは、カスタムネットワークボードＣＮＢは、プリンタに着脱可能であり、かつ、複数の種類のプリンタで使えるため、カスタムネットワークボードＣＮＢが、異なる機種のプリンタに装着されることがあるからである。
また、プリンタＰＲＴ１のメモリ３０には、前述した分散先指定ファイルＦａ及び先頭番号ファイルＦｂが、予め記憶されているものとする。ここで、分散先指定ファイルＦａ及び先頭番号ファイルＦｂについて詳細を説明する。
【００６０】
分散先指定ファイルＦａは、ユーザが、分散先プリンタとして希望するプリンタと、このプリンタの順序と、をプリンタＰＲＴ１に指定するために用いられるファイルであり、図１に示すように、分散先プリンタとして希望するプリンタのＩＰアドレスが、これらプリンタの順序を示す順序番号と共に列挙して記載されている。そして、このような分散先指定ファイルＦａは、以下のようにして生成され、プリンタＰＲＴ１のメモリ３０に記憶される。
【００６１】
すなわち、ユーザが、ネットワークに接続された端末から、プリンタＰＲＴ１が備える図示せざるＷＷＷサーバ部に接続すると、このＷＷＷサーバ部は、分散先プリンタとして希望するプリンタを指定するためのホームページを端末に返し、ユーザはこのホームページ上で分散先プリンタとして希望するプリンタを指定することで、分散先指定ファイルＦａが生成され、プリンタＰＲＴ１のメモリ３０に格納される。
【００６２】
図４は、端末のブラウザウィンドウＢＷに表示された、分散先プリンタとして希望するプリンタを指定するためのホームページを示す説明図である。図４において（Ａ）は、初期状態のホームページを示し、（Ｂ）は、１番目のプリンタを指定する時のホームページを示し、（Ｃ）は、プリンタの指定が完了した時のホームページを示す。このホームページは、指定するプリンタのＩＰアドレスを入力するＩＰアドレス入力欄Ｌ１〜Ｌ５の他、プルダウンボタンＢＰ，検索ボタンＢＡ，ＯＫボタンＢＢ等の各種ボタンを備えている。
【００６３】
図４（Ａ）に示す初期状態のホームページが表示された後、ユーザが検索ボタンＢＡを押下すると、親タスク処理部２３は、ＳＮＭＰを用いて、ローカルエリアネットワークＬＡＮ１に接続された各機器に、機種名の問い合わせをブロードキャストし、応答のあった機器のうち、プリンタＰＲＴ１と同一機種のプリンタのＩＰアドレスをリストアップする。なお、ここでは、ＩＰ１１〜ＩＰ１４がリストアップされたものとする。
【００６４】
続いて、ユーザが、１番目の分散先プリンタとして希望するプリンタを指定するために、ＩＰアドレス入力欄Ｌ１の横にあるプルダウンボタンＢＰを押下すると、図４（Ｂ）に示すように、ドロップダウンリストＤＬが表示される。このドロップダウンリストＤＬには、先にリストアップされたＩＰアドレスが表示されており、ユーザは、希望するプリンタのＩＰアドレスを選択することで、このＩＰアドレスをＩＰアドレス入力欄Ｌ１に入力する。そして、２番目の候補として希望するプリンタについては、同様にして、ＩＰアドレス表示欄Ｌ２にＩＰアドレスを入力するといったように、ＩＰアドレス表示欄を順次変えてＩＰアドレスを入力することで、分散先プリンタとして希望するプリンタの順序も併せて指定することができる。もちろん、検索してリストアップされたプリンタを選択しないこともできる。
【００６５】
なお、ローカルエリアネットワークＬＡＮ１とは別のローカルエリアネットワークＬＡＮ２に接続されたプリンタＰＲＴ５には、前述の機種名の問い合わせは、自分の属するＬＡＮ内へのブロードキャストであるために届かない。従って、プリンタＰＲＴ５は、この問い合わせに応答しないので、ドロップダウンリストＤＬには、プリンタＰＲＴ５のＩＰアドレス２５は表示されない。そこで、プリンタＰＲＴ５を指定する場合には、ＩＰアドレス表示欄に、ＩＰアドレス（ＩＰ２５）を直接入力するようにする。
そして、ユーザが、図４（Ｃ）に示すように、ＩＰアドレスＩＰ１１，ＩＰ１２，ＩＰ１３，ＩＰ２５のプリンタを、この順番で指定した後、ＯＫボタンＢＢを押下すると、分散先指定ファイルＦａが生成されて、メモリ３０に記憶される。なお、この時の分散先指定ファイルＦａの中身は、図１に示すごとくなる。
【００６６】
図５は、分散先指定ファイルＦａで指定された、分散先プリンタとして希望するプリンタの順序を概念的に示す説明図である。なお、ＩＰアドレスＩＰ１１，ＩＰ１２，ＩＰ１３，ＩＰ２５と、これらＩＰアドレスのプリンタ（プリンタＰＲＴ１〜ＰＲＴ３及びＰＲＴ５）の順序を分かり易く示すため、ＩＰアドレスを円で囲んで各プリンタを示し、矢印で順序を示している。なお、かっこ内は、各プリンタの順序番号を示している。
前述のようにして、プリンタＰＲＴ１，ＰＲＴ２，ＰＲＴ３，ＰＲＴ５を、この順番で指定した場合、順序番号１〜４は、希望するプリンタの優先順位を示すものではなく、図５に示すように、指定したプリンタ間の前後関係を示している。例えば、プリンタＰＲＴ１に着目すると、１つ前の順序のプリンタはプリンタＰＲＴ５であって、１つ後の順序のプリンタはプリンタＰＲＴ２であると、というプリンタ間の前後関係を示している。
【００６７】
一方、先頭番号ファイルＦｂは、親タスク処理部２３が、分散先プリンタを１台決定するために用いられるファイルであり、図１に示すように、分散先指定ファイルＦａに記載された１〜４までの順序番号のいずれか１つが記載されている。この記載されている順序番号は、初期値は「１」であるが、その後、親タスク処理部２３によって、分散先プリンタが決定される度に書き換えられることになる。なお、先頭番号ファイルＦｂの書き換えについては、後ほど詳細を説明する。
【００６８】
以上の前提を踏まえた上で、複数の印刷ジョブをクライアントＣＬからプリンタＰＲＴ１に送信し、前回分散したプリンタには、次回分散する際に、できるだけ分散しないようにして、印刷ジョブを分散し、印刷を実行し得る場合を例として説明する。
【００６９】
分散印刷を行う際には、ユーザは、クライアントＣＬにおけるプリンタドライバにおいて、印刷プロトコルの設定が、無手順プロトコルに設定されていることを確認した上で、ポート番号の設定を、通常の「９１００」から特定の「１９１００」に変更する。すなわち、本実施例では、ここでのポート番号の設定を切り換えることにより、通常の「９１００」では通常印刷を、特定の「１９１００」では分散印刷を、それぞれ選択することになる。
【００７０】
そこで、ユーザがクライアントＣＬに、印刷命令を出すと、クライアントＣＬでは、アプリケーション１３が、印刷ジョブを無手順プロトコル解釈部１２，ＴＣＰ／ＩＰ解釈部１１を介して、プリンタＰＲＴ１に通信データＤＴ１を送信する。ここで、この通信データＤＴ１の送信に先立ち、クライアントＣＬのＴＣＰ／ＩＰ解釈部１１は、プリンタＰＲＴ１のＴＣＰ／ＩＰ解釈部２１に対して、クライアントＣＬ〜プリンタＰＲＴ１間の接続を確立するために、ポート番号を「１９１００」とした接続要求を送信する。
【００７１】
一方、プリンタＰＲＴ１では、ポート番号「１９１００」の接続要求を受信すると、ＴＣＰ／ＩＰ解釈部２１は、クライアントＣＬからポート番号「１９１００」の接続要求があった旨を、ポート番号が「１９１００」なので、無手順プロトコル解釈部２２Ａを介して、親タスク処理部２３に通知すると共に、クライアントＣＬのＴＣＰ／ＩＰ解釈部１１に接続応答を返して、クライアントＣＬ〜プリンタＰＲＴ１間の接続を確立する。
【００７２】
図６は、プリンタＰＲＴ１における親タスクの処理手順を示すフローチャートである。
親タスク処理部２３は、ポート番号「１９１００」に接続があったか否かを判定しており（ステップＳ１０２）、上記のように、接続要求があった旨を通知されることで、接続があったと判定すると、分散先プリンタ決定処理を実行する（ステップＳ１０４）。この分散先プリンタ決定処理では、分散先プリンタが１台決定することになるが、後述するように、前回分散先プリンタとなったプリンタと同じプリンタをできるだけ選択しないようにしている。なお、分散先プリンタ決定処理の詳細については後ほど説明するが、ここでは、プリンタＰＲＴ２が分散先プリンタとして決定したものとする。
【００７３】
分散先プリンタを決定した後、親タスク処理部２３は、子タスク処理部２４Ａを生成し、メモリ３０に、子タスク用ワークエリア３１Ａを確保する（ステップＳ１０６）。
そして、親タスク処理部２３は、この子タスク用ワークエリア３１Ａの接続情報格納部３２に、分散先プリンタであるプリンタＰＲＴ２のＩＰアドレスＩＰ１２の他、クライアントＣＬ〜プリンタＰＲＴ１間の接続を確立した際に得られた、クライアントＣＬのＩＰアドレスＩＰｃ及びポート番号（例えば、「４００００」）と、プリンタＰＲＴ１のＩＰアドレスＩＰ１１及びポート番号「１９１００」と、から成る接続情報を格納する（ステップＳ１０８）。
【００７４】
ステップＳ１０８の処理が終わると、親タスク処理部２３は、再びステップＳ１０２の処理に戻るので、クライアントＣＬから次の通信データＤＴ２を送信するのに先立って、接続要求を受信すると、プリンタＰＲＴ１では、前述のようにして、先ほど生成した子タスク処理部２４Ａとは別に、新たに子タスク処理部２４Ｂを生成することになる。このようにして、プリンタＰＲＴ１では、複数の子タスク処理部が生成されることになる。
【００７５】
前述のように、クライアントＣＬ〜プリンタＰＲＴ１間の接続が確立された後、クライアントＣＬは、プリンタＰＲＴ１に通信データＤＴ１を送信することになるが、このとき、クライアントＣＬの無手順プロトコル解釈部１２は、印刷プロトコルである無手順プロトコルに従って、印刷ジョブを含む通信データを送信し、また、ＴＣＰ／ＩＰ解釈部１１は、その通信データの送信先ＩＰアドレスとして、プリンタＰＲＴ１の「ＩＰ１１」を指定すると共に、送信先ポート番号として、通常の「９１００」ではなく、「１９１００」を指定する。これにより、通信データＤＴ１には、送信先ＩＰアドレスとして「ＩＰ１１」が、送信先ポート番号として「１９１００」が、それぞれ記載されることになる。
【００７６】
プリンタＰＲＴ１では、ＴＣＰ／ＩＰ解釈部２１が、通信データＤＴ１に含まれる送信先ＩＰアドレス「ＩＰ１１」に従って、その通信データを受信し、さらに、その通信データに含まれる送信先ポート番号が「１９１００」であるので、ポート番号「１９１００」で送信された通信データを扱う無手順プロトコル解釈部２２Ａに渡す。
【００７７】
一方、親タスク処理部２３によって生成された前述の子タスク処理部２４Ａは、ポート番号「１９１００」に、印刷ジョブが着信するまで待機している。無手順プロトコル解釈部２２Ａは、無手順プロトコルに従って、印刷ジョブを含む通信データＤＴ１を受け取ると、その印刷ジョブデータを、ポート番号「１９１００」に待機している子タスク処理部２４Ａに渡す。すると、子タスク処理部２４Ａは、子タスクの処理を実行することになる。
【００７８】
図７は、プリンタＰＲＴ１における子タスクの処理手順を示すフローチャートである。この子タスクは、子タスク処理部毎に実行される。
子タスク処理部２４Ａは、無手順プロトコル解釈部２２Ａから渡された印刷ジョブデータを印刷ジョブ格納部３３に格納する（ステップＳ２０２）。
【００７９】
次に、親タスク処理部２３によって接続情報格納部３２に格納された分散先プリンタのＩＰアドレス及び接続情報を読み出して、プリンタＰＲＴ１〜分散先プリンタとの間の接続を確立した後、印刷ジョブ格納部３３に格納した印刷ジョブを分散先プリンタに転送する（ステップＳ２０４）。
具体的には、プリンタＰＲＴ１〜分散先プリンタとの間の接続を確立した後、格納した印刷ジョブを無手順プロトコル解釈部２２Ｂ，ＴＣＰ／ＩＰ解釈部２１を介して、分散先プリンタであるプリンタＰＲＴ２に送信することになる。このとき、無手順プロトコル解釈部２２Ｂは、印刷プロトコルである無手順プロトコルに従って、その印刷ジョブを含む通信データを送信する。また、ＴＣＰ／ＩＰ解釈部２１は、その通信データの送信先ＩＰアドレスとして、プリンタＰＲＴ２のＩＰアドレスＩＰ１２を指定すると共に、送信先ポート番号としては、受信した際のポート番号「１９１００」ではなく、無手順プロトコルで通常割り当てられるポート番号「９１００」を指定する。従って、プリンタＰＲＴ１からプリンタＰＲＴ２に送信される通信データＤＴ１'には、送信先ＩＰアドレスとして「ＩＰ１２」が、送信先ポート番号として「９１００」が、それぞれ記載されることになる。
【００８０】
受信した全ての印刷ジョブを分散先プリンタに転送すると、子タスク処理部２４Ａは、子タスク用ワークエリア３１Ｂを解放し、自分自身を消滅させる（ステップＳ２０６）。
【００８１】
同様にして、上記の子タスク処理部２４Ｂも、次に決定された分散先プリンタに、クライアントＣＬから受信した通信データＤＴ２に含まれる印刷ジョブを、通信データＤＴ２'として転送することになる。
【００８２】
では、以下、本発明の特徴部分である、親タスク処理部２３が実行する分散先決定処理について、詳細を説明する。
【００８３】
図８は、親タスク処理部２３が実行する分散先プリンタ決定処理の手順を示すフローチャートである。
まず、親タスク処理部２３は、後述するタイマ（図示せず）をリセットし、計時動作を開始する（ステップＳ３０２）。
【００８４】
次に、親タスク処理部２３は、メモリ３０に記憶された分散先指定ファイルＦａを読み出し、記載されているプリンタのＩＰアドレスをリストアップする（ステップＳ３０４）。
そして、リストアップしたＩＰアドレスの機器に対して、ＳＮＭＰを利用してその機種名を問い合わせ、自己プリンタＰＲＴ１と同一機種のプリンタを候補プリンタとして抽出する（ステップＳ３０６）。このように、自己プリンタＰＲＴ１と同一機種のプリンタを、分散先プリンタの候補として抽出するのは、分散印刷を行う際に、各分散先プリンタにおいて、印刷ジョブのデータ変換などをすることなく、適正な印刷を行わせるためである。この結果、各分散先プリンタでの印刷物の品質、例えば、解像度やフォントなどを統一することができる。
【００８５】
なお、既述したとおり、親タスク処理部２３は、プリンタＰＲＴ１の電源投入時に、プリンタＰＲＴ１の機種名を既に取得しているので、それに基づいて、自己プリンタＰＲＴ１と同一機種のプリンタを抽出する。
【００８６】
また、分散先指定ファイルＦａで指定されているＩＰアドレスの機器に対しても、機種名の問い合わせを行うのは、次の理由による。すなわち、分散先指定ファイルＦａ作成後に、機器の入れ替え等により、分散先指定ファイルＦａに記載されていたＩＰアドレスが、自己プリンタＰＲＴ１と異機種のプリンタに割り振られたり、プリンタ以外の機器に割り振られたりする可能性があるので、自己プリンタＰＲＴ１と同一機種であるのかの確認を行うためである。更に、分散先指定ファイルで指定されているＩＰアドレスの機器が、実際に電源が投入されていて、オンライン状態である、つまり、ネットワーク経由で到達可能であるかも同時に確認するためである。
【００８７】
従って、候補プリンタとしては、
１）オンライン状態である。
２）自己プリンタＰＲＴ１と同一機種ある。
の２つの条件を全て満たすプリンタを選択することになる。
【００８８】
このうち、上記１）「オンライン状態である。」という条件を課すことにより、電源が投入されていないプリンタや、用紙切れやトナー切れ（あるいはインク切れ）、あるいは紙詰まりなど、エラーを発生していてすぐには印刷できないプリンタを、分散先プリンタの候補から排除することができる。既述したとおり、プリンタＰＲＴ１〜５は、印刷中であっても印刷ジョブデータを受信することができるので、「印刷ジョブデータを受信中」もしくは「印刷ジョブデータを印刷中」といった条件については課していない。
なお、自己プリンタＰＲＴ１も、上記１）の条件を満たせば、候補プリンタとして選択されることになる。
【００８９】
次に、親タスク処理部２３は、１台以上候補プリンタが抽出されたか否かを判定し（ステップＳ３０８）、抽出されている場合には、親タスク処理部２３は、メモリ３０に記憶された先頭番号ファイルＦｂを読み出し、記載されている順序番号を確認する（ステップＳ３１０）。
【００９０】
次に、確認した順序番号に対応するプリンタが、候補プリンタの中にあるか否かを判定し（ステップＳ３１２）、あると判定した場合には、このプリンタを分散先プリンタとして決定する（ステップＳ３１６）。このように、先頭番号ファイルＦｂに記載された順序番号は、分散先プリンタを決定する際に、候補プリンタの中にあれば、つまり、「オンライン状態である。」「自己のプリンタＰＲＴ１と同一機種のプリンタである。」という２つの条件を満たしていれば、分散先プリンタとして決定すべきプリンタの順序番号を示している。
【００９１】
一方、確認した順序番号に対応するプリンタが、候補プリンタの中にないと判定した場合には、次の順序番号を確認し（ステップＳ３１４）、ステップＳ３１２に戻って、確認した次の順序番号に対応するプリンタが候補プリンタの中にあるか否かを判定する。こうして親タスク処理部２３は、分散先プリンタを決定するまで、同様の処理を繰り返す。
【００９２】
そして、前述のように分散先プリンタを決定すると、親タスク処理部２３は、決定した分散先プリンタの次の順序の順序番号を、分散先指定ファイルＦａに上書きする（ステップＳ３１８）。従って、親タスク処理部２３は、次に分散先プリンタを決定する際には、前回の分散先プリンタの次の順序のプリンタが候補プリンタの中にあれば、このプリンタを分散先プリンタとして決定することとなる。
【００９３】
ここで、分散先プリンタが決定される様子を具体的に説明する。
図９は、分散先プリンタが決定される様子を概念的に示す説明図である。図９において、（Ａ）は、通信データＤＴ１に含まれる印刷ジョブの分散先プリンタが決定される様子を示し、（Ｂ）は、通信データＤＴ１の次に受信する通信データＤＴ２に含まれる印刷ジョブの分散先プリンタが決定される様子を示す。
なお、図中に示す円や矢印は、図５と同様であるので説明を省略する。ただし、太線の円は、候補プリンタとして抽出されたプリンタを示し、破線の円は、候補プリンタとして抽出されなかったプリンタを示すものとする。
【００９４】
図９（Ａ）に示すように、通信データＤＴ１に含まれる印刷ジョブの分散先プリンタを決定する際に、親タスク処理部２３が、候補プリンタとして、プリンタＰＲＴ１，２，４のプリンタを抽出し、先頭番号ファイルＦｂの順序番号「２」を確認した場合、順序番号「２」に対応するプリンタＰＲＴ２が候補プリンタの中にあると判定することになるので、このプリンタＰＲＴ２を分散先プリンタとして決定する。従って、ステップＳ３１８の処理において、親タスク処理部２３は、先頭番号ファイルＦｂの順序番号を、分散先プリンタとして決定したプリンタＰＲＴ２の順序番号「２」の次の順序の「３」に上書きすることになる。
【００９５】
そして、図９（Ｂ）に示すように、上記通信データＤＴ１の次の通信データＤＴ２に含まれる印刷ジョブの分散先プリンタを決定する際、親タスク処理部２３が、候補プリンタとして、前回と同様にプリンタＰＲＴ１，２，４のプリンタを抽出したものとする。そして、前述のように先頭番号ファイルＦｂに記載されている順序番号は「３」となっているので、親タスク処理部２３は、この「３」を確認することとなる。従って、親プリンタ処理部２３は、順序番号「３」に対応するプリンタＰＲＴ３が候補プリンタの中にないと判定するので、プリンタＰＲＴ３の次の順序番号の「４」を確認することとなる。そして、順序番号「４」に対応するプリンタＰＲＴ４は、候補プリンタの中にあるので、プリンタＰＲＴ４を分散先プリンタとして決定することになる。
そして、親タスク処理部２３は、先頭番号ファイルＦｂの順序番号を、分散先プリンタとして決定したプリンタＰＲＴ４の順序番号「４」の次の順序の「１」に上書きすることになる。
【００９６】
以上のようにして、分散先プリンタが決定され、子タスク処理部によって、通信データＤＴ１に含まれる印刷ジョブは、プリンタＰＲＴ２に送信され、通信データＤＴ２に含まれる印刷ジョブは、図１と異なり、プリンタＰＲＴ４に送信され、それぞれのプリンタＰＲＴ２，ＰＲＴ４で印刷が実行されることになる。
【００９７】
図８に戻って、ステップＳ３０８の処理において、１台も候補プリンタが抽出されないと判定した場合には、親タスク処理部２３は、再度、分散先指定ファイルＦａに記載されたＩＰアドレスの機器に対して機器名を問い合わせ、候補プリンタの抽出を実行するようにしているが、ほとんど時間が経っていない場合には、リストアップされたＩＰアドレスの機器が、用紙切れ等によりオフラインの状態のままである可能性が高いので、再び候補プリンタを抽出しない可能性がある。
【００９８】
そこで、１台も候補プリンタを抽出しない場合には、まず、一定時間（例えば、５秒など）待機する（ステップＳ３２０）。そして、親タスク処理部２３は、タイマによる計時開始から、例えば５分など所定時間経過したか否かを判定し（ステップＳ３２２）、未だその時間を経過していなければ、ステップＳ３０４の処理に戻って、ステップＳ３０４及びステップＳ３０６の処理を実行し、候補プリンタの抽出を行う。こうして、親タスク処理部２３は、候補プリンタとして１台以上抽出するまで、同様の処理を繰り返す。なお、この間、タイマの計時動作は継続させる。このように、所定の期間、上記の処理を繰り返すことにより、その期間中に、用紙切れだったプリンタに用紙が補充され、オンライン状態になったり、電源がオフ状態であったプリンタに電源が投入され、電源オンの状態になったりした場合には、これらのプリンタを候補プリンタとして抽出することが可能になる。
【００９９】
しかし、タイマによる計時開始から所定時間経過しても、候補プリンタとして１台のプリンタも選択できない場合には、親タスク処理部２３は、自己のプリンタＰＲＴ１を、無条件で候補プリンタとして抽出する（ステップＳ３２４）。そして、次に親タスク処理部２３は、前述したステップＳ３１８の処理を実行するので、この場合、自己プリンタＰＲＴ１の次のプリンタＰＲＴ２の順序番号「２」を先頭番号ファイルＦｂに上書きすることになる。
【０１００】
Ａ５．実施例の効果：
以上説明したように、本実施例において、分散印刷制御機能を有するプリンタＰＲＴ１では、先頭番号ファイルＦｂに、前回分散先プリンタとして決定したプリンタの次の順序のプリンタを示す順序番号を記載するようにしている。そして、次回分散先プリンタを決定する際に、この先頭番号ファイルＦｂに記載された順序番号に対応するプリンタを、まず候補プリンタの中にあるかを判定するようにして、仮に候補プリンタの中にない場合には、前回の分散先プリンタが最後となる順序で、次々と他のプリンタについて判定するようにしている。
従って、前回の分散先プリンタは、次回分散する際には、できるだけ分散先プリンタとならないようにすることができるので、特定のプリンタに印刷ジョブが集中することを避け、印刷を短時間で完了することが可能となる。
【０１０１】
また、上記プリンタＰＲＴ１では、分散先指定ファイルＦａに記載されたＩＰアドレスのプリンタの中から候補プリンタを抽出するようにしているので、ユーザは、分散先プリンタとして希望するプリンタを、この分散先指定ファイルＦａに記載することで、プリンタＰＲＴ１に対して指定することができる。
【０１０２】
また、プリンタＰＲＴ１では、分散先プリンタを決定する前に、予め指定されたプリンタに対して、機器名を問い合わせるようにしているので、用紙切れ等の理由でオフライン状態であるプリンタや、プリンタ以外の機器を、分散先プリンタの候補から排除することができるので、このようなプリンタ又は機器を分散先プリンタとして選択することを避けることができる。従って、印刷を短時間で完了することが可能となる。
【０１０３】
Ｂ．第２の実施例：
上記した第１の実施例においては、クライアントＣＬから分散印刷制御機能を有するプリンタＰＲＴ１に印刷ジョブを送信する際と、プリンタＲＰＴ１から分散先プリンタに印刷ジョブを送信する際において、それぞれ、印刷プロトコルとして同じプロトコル（すなわち、無手順プロトコル）を用いるが、ポート番号として異なるポート番号（すなわち、「９１００」と「１９１００」）を用いることにより、分散印刷を実現するようにしていたが、本実施例においては、クライアントＣＬから分散印刷制御機能を有するプリンタＰＲＴ１に印刷ジョブを送信する際と、プリンタＰＲＴ１から分散先プリンタに印刷ジョブを送信する際において、それぞれ、印刷プロトコルとして異なるプロトコルを用いることによって、分散印刷を実現する。
【０１０４】
Ｂ１．プリンタの構成：
図１０は、本発明の第２の実施例としてのプリンタＰＲＴ１の構成を主として示す説明図である。本実施例において、図１０に示す構成が、第１の実施例における図３に示した構成と異なる点は、無手順プロトコル解釈部２２Ａに代えて、ＬＰＲ解釈部２５を用いた点（ただし、無手順プロトコル解釈部２２Ｂはそのまま）と、それに応じて、クライアントＣＬでも、ＬＰＲ解釈部１４を設けた点である。それ以外の構成は、図３に示した構成と同じである。
【０１０５】
図１０において、ＬＰＲ解釈部２５，１４は、それぞれ、印刷プロトコルであるＬＰＲ（Line Printer daemon protocol）を解釈する。
【０１０６】
Ｂ２．通常印刷処理：
分散印刷処理を説明する前に、通常の印刷処理について簡単に説明する。なお、印刷ジョブを、クライアントＣＬからプリンタＰＲＴ１に送信し、プリンタＰＲＴ１のみで印刷を実行する場合を例として説明する。この場合、印刷ジョブは、図１０において、破線で示す経路をたどって転送される。なお、クライアントＣＬにおけるプリンタドライバ（図示せず）において、印刷プロトコルの設定は、無手順プロトコルに設定されているものとする。
【０１０７】
ユーザがクライアントＣＬに印刷命令を出すと、クライアントＣＬでは、アプリケーション１３が、印刷ジョブを、無手順プロトコル解釈部１２，ＴＣＰ／ＩＰ解釈部１１を介して、プリンタＰＲＴ１に送信する。このとき、無手順プロトコル解釈部１２は、印刷プロトコルである無手順プロトコルに従って、印刷ジョブを含む通信データを送信し、また、ＴＣＰ／ＩＰ解釈部１１は、その通信データの送信先ＩＰアドレスとして、プリンタＰＲＴ１の「ＩＰ１１」を指定する。
【０１０８】
プリンタＰＲＴ１では、ＴＣＰ／ＩＰ解釈部２１が、通信データに含まれる送信先ＩＰアドレス「ＩＰ１１」に従って、その通信データを受信する。無手順プロトコル解釈部２２Ｂは、無手順プロトコルに従って、印刷ジョブを含む通信データを受取り、印刷ジョブをプリンタコントローラ４２に渡す。プリンタコントローラ４２は、受け取った印刷ジョブに従って、プリンタエンジン４１に印刷を実行させる。
【０１０９】
Ｂ３．分散印刷処理：
次に、分散印刷処理について説明する。分散印刷を行う際には、ユーザは、クライアントＣＬにおけるプリンタドライバにおいて、印刷プロトコルの設定を、無手順プロトコルからＬＰＲに変更する。すなわち、本実施例では、ここでの印刷プロトコルの設定を切り換えることにより、無手順プロトコルでは通常印刷を、ＬＰＲでは分散印刷を、それぞれ選択することになる。
【０１１０】
そこで、ユーザがクライアントＣＬに、印刷命令を出すと、クライアントＣＬでは、アプリケーション１３が、印刷ジョブをＬＰＲ解釈部１４，ＴＣＰ／ＩＰ解釈部１１を介してプリンタＰＲＴ１に送信する。ここで、この印刷ジョブの送信に先立ち、クライアントＣＬのＴＣＰ／ＩＰ解釈部１１は、プリンタＰＲＴ１のＴＣＰ／ＩＰ解釈部２１に対して、クライアントＣＬ〜プリンタＰＲＴ１間の接続を確立するために、接続要求を送信する。
【０１１１】
一方、プリンタＰＲＴ１では、接続要求を受信すると、ＴＣＰ／ＩＰ解釈部２１は、クライアントＣＬから接続要求があった旨を、ＬＰＲ解釈部２５を介して親タスク処理部２３に通知すると共に、クライアントＣＬのＴＣＰ／ＩＰ解釈部１１に接続応答を返して、クライアントＣＬ〜プリンタＰＲＴ１間の接続を確立する。
【０１１２】
こうして、本実施例において、親タスク処理部２３に、接続要求があった旨が通知してから、分散先プリンタが決定されて子タスク処理部が生成されるまでの処理については、第１の実施例と同様であるので、それらについての説明は省略する。なお、ここで、例えば、分散先プリンタとしてプリンタＰＲＴ２が決定され、子タスク処理部２４Ａが生成されたものとする。
【０１１３】
その後、子タスク処理部２４Ａは、印刷ジョブ格納部３３に格納した印刷ジョブを、ＬＰＲ解釈部２５ではなく、無手順プロトコル解釈部２２Ｂ，ＴＣＰ／ＩＰ解釈部２１を介して、プリンタＰＲＴ２に送信する。このとき、無手順プロトコル解釈部２２Ｂは、印刷プロトコルである無手順プロトコルに従って、その印刷ジョブを含む通信データを送信する。また、ＴＣＰ／ＩＰ解釈部２１は、その通信データの送信先ＩＰアドレスとして、プリンタＰＲＴ２の「ＩＰ１２」を指定する。
【０１１４】
分散先プリンタであるプリンタＰＲＴ２では、図１０に示すように、ＴＣＰ／ＩＰ解釈部５１が、通信データに含まれる送信先ＩＰアドレス「ＩＰ１２」に従って、その通信データを受信し、無手順プロトコル解釈部５２に渡す。無手順プロトコル解釈部５２は、無手順プロトコルに従って、印刷ジョブを含む通信データを受取り、印刷ジョブをプリンタコントローラ５３に渡す。プリンタコントローラ５３は、印刷ジョブに従って、プリンタエンジン５４に印刷を実行させる。
【０１１５】
以上のようにして、分散先プリンタであるプリンタＰＲＴ２において、印刷が実行されることになる。
なお、以上説明した処理以外の処理については、第１の実施例と同様であるので、それらについての説明は省略する。
【０１１６】
Ｂ４．実施例の効果：
以上説明したように、本実施例においては、第１の実施例と同様に、分散印刷制御機能を有するプリンタＰＲＴ１では、先頭番号ファイルＦｂに、前回分散先プリンタとして決定したプリンタの次の順序のプリンタを示す順序番号を記載するようにしている。そして、次回分散先プリンタを決定する際に、この先頭番号ファイルＦｂに記載された順序番号に対応するプリンタを、まず候補プリンタの中にあるかを判定するようにして、仮に候補プリンタの中にない場合には、前回の分散先プリンタが最後となる順序で、次々と他のプリンタについて判定するようにしている。
従って、前回の分散先プリンタは、次回分散する際には、できるだけ分散先プリンタとならないようにすることができるので、特定のプリンタに印刷ジョブが集中することを避け、印刷を短時間で完了することが可能となる。
【０１１７】
また、上記プリンタＰＲＴ１では、第１の実施例と同様に、分散先指定ファイルＦａに記載されたＩＰアドレスのプリンタの中から候補プリンタを抽出するようにしているので、ユーザは、分散先プリンタとして希望するプリンタを、この分散先指定ファイルＦａに記載することで、プリンタＰＲＴ１に対して指定することができる。
【０１１８】
また、上記プリンタＰＲＴ１では、第１の実施例と同様に、分散先プリンタを決定する前に、予め指定されたプリンタに対して、機器名を問い合わせるようにしているので、用紙切れ等の理由でオフライン状態であるプリンタや、プリンタ以外の機器を、分散先プリンタの候補から排除することができるので、このようなプリンタ又は機器を分散先プリンタとして選択することを避けることができる。従って、印刷を短時間で完了することが可能となる。
【０１１９】
Ｃ．変形例
なお、本発明は、前述の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において、種々の態様において実施することが可能であり、例えば以下のような変形も可能である。
【０１２０】
Ｃ１．変形例１：
前述の第１の実施例及び第２の実施例において、先頭番号ファイルＦｂには、前回の分散先プリンタとなったプリンタの次の順序のプリンタの順序番号を記載するようにしていたが、これに変えて、前回分散先プリンタとなったプリンタの順序番号を記載するようにしても構わない。この場合、図８に示すステップＳ３１２の処理において、親タスク処理部２３は、先頭番号ファイルＦｂに記載されている順序番号の次の順序番号に対応するプリンタが候補プリンタの中にあるかを判定するようにすればよい。
なお、分散先プリンタを決定する際に、親タスク処理部２３が、前回の分散先プリンタがどのプリンタであったかを確認することができればよいので、前回分散先プリンタの順序番号に代えて、前回の分散先プリンタのＩＰアドレスなど、前回の分散先プリンタを特定できる情報を先頭番号ファイルに記載するようにしても構わない。
【０１２１】
Ｃ２．変形例２：
前述の第１の実施例及び第２の実施例において、前回の分散先プリンタとなったプリンタの次の順序のプリンタの順序番号を記載した先頭番号ファイルＦｂを、分散先指定ファイルＦａとは別に設けていたが、これに代えて、分散先指定ファイルの中に、前回の分散先プリンタの次の順序のプリンタがどれであるかを示すようにして、先頭番号ファイルを設けないようにしてもよい。例えば、分散先プリンタが決定した後に、決定した分散先プリンタの次の順序のプリンタのＩＰアドレスが先頭となるように、分散先指定ファイルを書き換えるようにしてもよい。
【０１２２】
Ｃ３．変形例３：
前述の第１の実施例及び第２の実施例において、候補プリンタの条件として、「オンライン状態である。」「分散印刷制御機能を有するプリンタと同一機種である。」という２つの条件を課していたが、これら２つの条件の他、「印刷中である」または「印刷ジョブデータが所定量以上格納されている。」といった条件を追加して課すようにしても構わない。このような条件を追加して課すことで、印刷ジョブの処理により早く着手する可能性の高いプリンタを、分散先プリンタとして決定することができ、印刷をより短時間で完了することが可能となる。
【０１２３】
Ｃ４．変形例４：
前述の第１の実施例及び第２の実施例では、印刷システムとして、複数の印刷ジョブを複数のプリンタに分散して処理するものとしていたが、本発明は、１つの印刷ジョブを複数のプリンタに分散して処理する印刷システムに適用してもよい。このような印刷システムとして、例えば、複数部を印刷する印刷ジョブを受信すると、１部を印刷する印刷ジョブを複数生成して、これら新たに生成した印刷ジョブを複数のプリンタに分散するような部数分散システムの場合、この新たに生成した印刷ジョブの送信先となるプリンタを、本発明における分散先指定ファイル及び先頭番号ファイルを用いて複数個決定し、決定した複数個のプリンタに順次この新たに生成した印刷ジョブを送信するようにしてもよい。
【０１２４】
Ｃ５．変形例５：
前述の第１の実施例及び第２の実施例では、図７に示すように、子タスク処理部は、受信した印刷ジョブデータを印刷ジョブ格納部に格納した後に、分散先プリンタとの間の接続を確立してから、格納した印刷ジョブを転送するようにしていたが、これに代えて、印刷ジョブを受信する前に、分散先プリンタとの接続を予め確立しておき、印刷ジョブを受信したら格納することなく、分散先プリンタに転送するようにしてもよい。
このようにすることで、印刷ジョブ格納部の容量を減すことができ、メモリ全体の容量を減らすことができる。
【０１２５】
Ｃ６．変形例６：
前述の第１の実施例では、印刷プロトコルとして無手順プロトコルを用いたが、ポート番号の変更が可能であれば、ＬＰＲ，ＩＰＰ（Internet Printing Protocol），ＦＴＰ（File Transfer Protocol），ＳＭＢ（Server Message Block），ＡｐｐｌｅＴａｌｋなど、別の印刷プロトコルを用いるようにしてもよい。また、第２の実施例では、印刷プロトコルとして、ＬＰＲと無手順プロトコルの組み合わせで用いるようにしたが、互いに異なっていれば、別の印刷プロトコル同士の組み合わせで用いるようにしてもよい。
【０１２６】
Ｃ７．変形例７：
前述の第１の実施例及び第２の実施例では、クライアントから分散印刷制御機能を有するプリンタであるプリンタＰＲＴ１に印刷ジョブを送信する際と、プリンタＲＰＴ１から分散先プリンタに印刷ジョブを送信する際において、それぞれ、異なるポート番号もしくは異なるプロトコルを用いることにより、分散印刷を実現するようにしていたが、印刷ジョブデータ内に含める印刷コマンドとして異なる印刷コマンドを用いたり、印刷プロトコル上で用いるコマンドとして、異なるコマンド（異なる属性（コマンドオプション等）を付加した同一コマンドを含む）を用いることにより、分散印刷を実現するようにしてもよい。
【０１２７】
Ｃ８．変形例８：
前述の第１の実施例及び第２の実施例では、ＬＡＮに接続されている各機器には、ＩＰアドレスが固定で割り振られていたが、ＤＨＣＰ（Dynamic Host Configuration Protocol）サーバなどによって、動的にＩＰアドレスを割り振るようにしてもよい。ただし、前述の第１の実施例のように、ポート番号「１９１００」とポート番号「９１００」を使い分けてＩＰアドレスでプリンタを特定する場合には、分散印刷制御機能を有するプリンタ（プリンタＰＲＴ１）には予めＩＰアドレスを固定で割り振っておいた方が好ましい。
【０１２８】
Ｃ９．変形例９：
前述の第１の実施例及び第２の実施例では、送信先の指定や、候補プリンタの抽出や、分散先指定ファイルにおける分散先を希望するプリンタの指定などにおいて、ＩＰアドレスを用いるようにしていたが、ＩＰアドレスに代えて、ＭＡＣ（Media Access Control）アドレスやWindows（登録商標）プリンタ名など、プリンタを特定するための他の情報を用いるようにしてもよい。このようにすることで、ＤＨＣＰ等により、動的にＩＰアドレスが割り振られる場合であっても、プリンタを特定することができるようになる。
【０１２９】
Ｃ１０．変形例１０：
前述の第１の実施例及び第２の実施例では、分散先指定ファイルは、分散先として希望するプリンタのＩＰアドレスを、それぞれ指定するようにしていたが、本発明は、これに限定されるものではなく、例えば、希望するプリンタのＩＰアドレスの範囲を指定するようにしてもよい。
【０１３０】
Ｃ１１．変形例１１：
前述の実施例１及び実施例２では、カスタムネットワークボードＣＮＢによる、自己プリンタＰＲＴ１の機種名取得は、プリンタＰＲＴ１の電源投入時に行っていたが、本発明はこれに限定されるものではなく、少なくとも、分散先プリンタを決定するのに際して、図８のステップＳ３０６の処理（オンラインかつ自己プリンタと同一機種のプリンタの抽出）よりも前に行っていればよい。従って、例えば、このステップＳ３０６の直前で、自己プリンタＰＲＴ１の機種名取得の処理を行うようにしてもよい。
【０１３１】
Ｃ１２．変形例１２：
前述の第１の実施例及び第２の実施例では、分散印刷制御装置を、プリンタＰＲＴ１に内蔵されたカスタムネットワークボードＣＮＢとして構成するようにしていたが、本発明は、これに限定されるものではなく、分散印刷制御装置をプリンタＰＲＴ１と別体とし、ＵＳＢ接続，ＩＥＥＥ１３９４バス接続，パラレル接続，シリアル接続などの有線接続や、ブルートゥース接続，無線ＬＡＮ接続，赤外線接続などの無線接続で接続するようにしてもよい。
【図面の簡単な説明】
【０１３２】
【図１】本発明の第１の実施例としてのプリンタＰＲＴ１を備える印刷システムの構成を示す説明図。
【図２】印刷ジョブを含む通信データの構成を概念的に示す説明図。
【図３】図１におけるプリンタＰＲＴ１の構成を主として示す説明図。
【図４】端末のブラウザウィンドウＢＷに表示された、分散先プリンタとして希望するプリンタを指定するためのホームページを示す説明図。
【図５】分散先指定ファイルＦａで指定された、分散先プリンタとして希望するプリンタの順序を概念的に示す説明図。
【図６】プリンタＰＲＴ１における親タスクの処理手順を示すフローチャート。
【図７】プリンタＰＲＴ１における子タスクの処理手順を示すフローチャート。
【図８】親タスク処理部２３が実行する分散先プリンタ決定処理の手順を示すフローチャート。
【図９】分散先プリンタが決定される様子を概念的に示す説明図。
【図１０】本発明の第２の実施例としてのプリンタＰＲＴ１の構成を主として示す説明図。
【符号の説明】
【０１３３】
１１，２１，５１...ＴＣＰ／ＩＰ解釈部
１２，２２Ａ，２２Ｂ，５２...無手順プロトコル解釈部
１３...アプリケーション
１４，２５...ＬＰＲ解釈部
２０...ＣＰＵ
２３...親タスク処理部
２４Ａ，２４Ｂ...子タスク処理部
３０...メモリ
３１Ａ，３１Ｂ...子タスク用ワークエリア
３２...接続情報格納部
３３...印刷ジョブ格納部
４１，５４...プリンタエンジン
４２，５３...プリンタコントローラ
ＢＡ...検索ボタン
ＢＢ...ＯＫボタン
ＢＰ...プルダウンボタン
ＢＷ...ブラウザウィンドウ
ＣＬ...クライアント
ＣＮＢ...カスタムネットワークボード
Ｆａ...分散先指定ファイル
Ｆｂ...先頭番号ファイル
Ｌ１〜Ｌ５...ＩＰアドレス入力欄
ＤＬ...ドロップダウンリスト
ＰＲＢ...プリンタ本体
ＰＲＴ１〜ＰＲＴ５...プリンタ
【図１】
2005316543.tif 000003
【図２】
2005316543.tif 000004
【図３】
2005316543.tif 000005
【図４】
2005316543.tif 000006
【図５】
2005316543.tif 000007
【図６】
2005316543.tif 000008
【図７】
2005316543.tif 000009
【図８】
2005316543.tif 000010
【図９】
2005316543.tif 000011
【図１０】
2005316543.tif 000012
【手続補正書】
【提出日】平成17年4月12日(2005.4.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１
【補正方法】変更
【補正の内容】
【請求項１】
ネットワークを介して送信される複数の印刷ジョブを、前記ネットワークに接続された２以上の印刷装置に分散することが可能な分散印刷制御装置であって、
前記印刷装置のうち、少なくとも前回の分散先となった印刷装置を特定する特定情報を記憶する記憶部と、
制御部と、
を備え、
前記制御部は、前記印刷ジョブが所定の条件に従って送信されてきた場合に、前記特定情報に基づき、前記印刷装置のうち、前回の分散先となった前記印刷装置以外の印刷装置の中から今回の分散先となる印刷装置を決定し、決定した前記印刷装置に前記送信されてきた印刷ジョブを送信すると共に、今回の分散先となった前記印刷装置を特定する情報を、前記特定情報として、前記記憶部に記憶させることを特徴とする分散印刷制御装置。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１５
【補正方法】変更
【補正の内容】
【請求項１５】
ネットワークを介して送信される複数の印刷ジョブを、前記ネットワークに接続された２以上の印刷装置に分散するための印刷ジョブ分散方法であって、
（ａ）前記印刷装置のうち、少なくとも前回の分散先となった印刷装置を特定する特定情報を、記憶する工程と、
（ｂ）前記印刷ジョブを含む通信データを受信する工程と、
（ｃ）受信した前記通信データが所定の条件に従って送信されてきた場合に、記憶した前記特定情報に基づき、前記印刷装置のうち、前回の分散先となった前記印刷装置以外の印刷装置の中から今回の分散先となる印刷装置を決定する工程と、
（ｄ）前記工程（ｃ）で決定した前記印刷装置に前記送信されてきた印刷ジョブを送信する工程と、
（ｅ）今回の分散先となった前記印刷装置を特定する情報を、前記特定情報として、記憶する工程と、
を備える印刷ジョブ分散方法。
【手続補正３】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１６
【補正方法】変更
【補正の内容】
【請求項１６】
分散印刷制御装置によって、ネットワークを介して送信される複数の印刷ジョブを、前記ネットワークに接続された２以上の印刷装置に分散させるためのコンピュータプログラムであって、
前記印刷装置のうち、少なくとも前回の分散先となった印刷装置を特定する特定情報を、前記分散印刷制御装置の備える記憶部に記憶させる手順と、
前記印刷ジョブを含む通信データを受信する手順と、
受信した通信データが所定の条件に従って送信されてきた場合に、記憶した前記特定情報に基づき、前記印刷装置のうち、前回の分散先となった前記印刷装置以外の印刷装置の中から今回の分散先となる印刷装置を決定する手順と、
決定した前記印刷装置に前記送信されてきた印刷ジョブを送信する手順と、
今回の分散先となった前記印刷装置を特定する情報を、前記特定情報として、前記記憶部に記憶させる手順と、
を前記分散印刷制御装置の備えるコンピュータに実行させるためのコンピュータプログラム。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
前述の課題の少なくとも一部を解決するために、本発明の分散印刷制御装置は、ネットワークを介して送信される複数の印刷ジョブを、前記ネットワークに接続された２以上の印刷装置に分散することが可能な分散印刷制御装置であって、前記印刷装置のうち、少なくとも前回の分散先となった印刷装置を特定する特定情報を記憶する記憶部と、制御部と、を備え、前記制御部は、前記印刷ジョブが所定の条件に従って送信されてきた場合に、前記特定情報に基づき、前記印刷装置のうち、前回の分散先となった前記印刷装置以外の印刷装置の中から今回の分散先となる印刷装置を決定し、決定した前記印刷装置に前記送信されてきた印刷ジョブを送信すると共に、今回の分散先となった前記印刷装置を特定する情報を、前記特定情報として、前記記憶部に記憶させることを要旨とする。