(57)【要約】【課題】クライアント端末で印刷の実行を指示してからプリントサーバに印刷ジョブが送信されて印刷が開始されるまでの時間を短くする。【解決手段】印刷ジョブの受信が完了したか否かを判定する受信完了判定部２２と、自サーバ以外の別のプリントサーバに対して未受信の部分の印刷ジョブを転送する印刷ジョブ転送部２３とを備え、各プリントサーバ２００-1，２００-2に対する印刷ジョブの送信速度の違いから、何れかのプリントサーバに対する印刷ジョブの送信が遅れている場合、先に印刷ジョブの受信が完了したプリントサーバから別のプリントサーバに対して未受信の部分の印刷ジョブを転送することにより、クライアント端末１００から当該別のプリントサーバに対して遅い送信速度で未受信の部分の印刷ジョブの投入を続行するよりも、当該別のプリントサーバにおける印刷ジョブの受信が早く完了できるようにする。【選択図】図２
2015130038.tif 000002
【特許請求の範囲】
【請求項１】
クライアント端末において生成された印刷ジョブを、複数のプリントサーバの少なくとも２つに対して投入する印刷ジョブ投入部と、
上記プリントサーバにおいて、上記クライアント端末から投入された上記印刷ジョブの受信が完了したか否かを判定する受信完了判定部と、
上記受信完了判定部により上記印刷ジョブの受信が完了したと判定した場合、上記少なくとも２つのプリントサーバのうち自サーバ以外の別のプリントサーバに対して、当該別のプリントサーバにおいて未受信の部分の印刷ジョブを転送する印刷ジョブ転送部とを備えたことを特徴とする印刷システム。
【請求項２】
上記印刷ジョブ投入部は、上記印刷ジョブを複数のブロックに分割して順次投入し、
上記受信完了判定部は、上記印刷ジョブの全ブロックの受信が完了したか否かを判定し、
上記印刷ジョブ転送部は、上記受信完了判定部により上記印刷ジョブの受信が完了したと判定した場合、上記別のプリントサーバに対して、当該別のプリントサーバにおいて未受信のブロックの印刷ジョブを転送することを特徴とする請求項１に記載の印刷システム。
【請求項３】
上記印刷ジョブ投入部は、上記印刷ジョブ転送部により上記別のプリントサーバに対する上記印刷ジョブの転送が開始された場合、上記別のプリントサーバに対する上記印刷ジョブの投入処理を中止することを特徴とする請求項１に記載の印刷システム。
【請求項４】
複数のプリントサーバを備えたクラスタ環境において、クライアント端末において生成された印刷ジョブを、上記複数のプリントサーバの少なくとも２つに対して投入するようになされた印刷システムに用いられる上記プリントサーバであって、
上記クライアント端末から投入された上記印刷ジョブの受信が完了したか否かを判定する受信完了判定部と、
上記受信完了判定部により上記印刷ジョブの受信が完了したと判定した場合、上記少なくとも２つのプリントサーバのうち自サーバ以外の別のプリントサーバに対して、当該別のプリントサーバにおいて未受信の部分の印刷ジョブを転送する印刷ジョブ転送部とを備えたことを特徴とするプリントサーバ。
【請求項５】
上記受信完了判定部は、上記クライアント端末から複数のブロックに分割して順次投入される上記印刷ジョブの全ブロックの受信が完了したか否かを判定し、
上記印刷ジョブ転送部は、上記受信完了判定部により上記印刷ジョブの受信が完了したと判定した場合、上記別のプリントサーバに対して、当該別のプリントサーバにおいて未受信のブロックの印刷ジョブを転送することを特徴とする請求項４に記載のプリントサーバ。
【請求項６】
複数のプリントサーバを備えたクラスタ環境において、クライアント端末において生成された印刷ジョブを、上記複数のプリントサーバの少なくとも２つに対して投入する方法であって、
上記プリントサーバの受信完了判定部が、上記クライアント端末から投入された上記印刷ジョブの受信が完了したか否かを判定する第１のステップと、
上記プリントサーバの印刷ジョブ転送部が、上記受信完了判定部により上記印刷ジョブの受信が完了したと判定した場合、上記少なくとも２つのプリントサーバのうち自サーバ以外の別のプリントサーバに対して、当該別のプリントサーバにおいて未受信の部分の印刷ジョブを転送する第２のステップとを有することを特徴とする印刷ジョブの投入方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は印刷システム、プリントサーバおよび印刷ジョブの投入方法に関し、特に、複数のプリントサーバを備えたクラスタ環境の印刷システムに用いて好適なものである。
【背景技術】
【０００２】
従来、複数のプリントサーバをクラスタ化した印刷システムが提供されている（例えば、特許文献１参照）。この種の印刷システムでは、１台のプリントサーバでトラブルが発生した場合に、バックアップのプリントサーバが、トラブルが発生したプリントサーバで管理していた印刷ジョブを引き継いで実行するようになされている。
【０００３】
また、複数のプリンタをクラスタ化し、使用中のプリンタに障害が発生した場合に、別のプリンタにおいて代行印刷を行うようになされた印刷システムも提供されている（例えば、特許文献２参照）。特許文献２に記載の画像処理システムでは、プリントサーバが、１つのジョブを複数の画像処理装置（複合機）に分担させて実行させる機能を有し、分散プリントジョブの１つのジョブを複数の画像処理装置に実行させる。そして、１つの画像処理装置で分散プリントジョブを実行できない状況になった場合、その画像処理装置が、プリントサーバから受信したジョブ（分散プリントの割当てられたジョブ）を別の画像処理装置に転送して実行させるようになされている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１５１４７０号公報
【特許文献２】特開２０１３−１０５２９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
複数のプリントサーバまたは複数のプリンタをクラスタ化して印刷システムを構築する場合、何れかのプリントサーバまたはプリンタで障害が発生したときに、印刷を止めずに継続して実行することが求められる。しかしながら、上記特許文献１，２に記載のシステムでは、障害が発生したプリントサーバから別のプリントサーバへ、または障害が発生したプリンタ（画像処理装置）から別のプリンタへと印刷ジョブを転送する必要があり、その間は印刷が一時的に止まってしまうという問題があった。
【０００６】
このような問題を次のような手法によって解決することが考えられる。すなわち、クライアント端末において生成された印刷ジョブを２つのプリントサーバに投入し、その中から主担当として特定したプリントサーバにおいて印刷ジョブに基づいて印刷の実行をプリンタに対して指示する。その後、印刷を実行中のプリントサーバにおける障害の発生が検出された場合、障害が発生したプリントサーバとは別のプリントサーバにおいて、既に投入済みの印刷ジョブに従って印刷実行をプリンタに対して指示する。
【０００７】
このようにすれば、印刷ジョブを実行中のプリントサーバで障害が発生した場合に、そのプリントサーバで実行中の印刷ジョブと同じ印刷ジョブが既に投入されている別のプリントサーバにて印刷ジョブの実行が引き継がれる。これにより、障害の発生に応じて印刷ジョブを引き継ぐ際に、障害が発生したプリントサーバから別のプリントサーバに印刷ジョブを転送することなく印刷を継続して実行することが可能となる。
【０００８】
しかしながら、印刷ジョブが多数のページや画像等の印刷に関するものである場合、印刷ジョブ自体のデータ量が大きくなる。この場合、クライアント端末からプリントサーバに印刷ジョブを送信するのに時間がかかってしまう。上記のようにクライアント端末から２つのプリントサーバに印刷ジョブを送信する場合、両サーバに対する印刷ジョブの送信速度に違いがあるために、主担当のプリントサーバに対する印刷ジョブの送信が遅れて印刷を開始できない状態が発生する可能性がある。この場合、クライアント端末で印刷の実行を指示してから実際に印刷が開始されるまでの時間が長くなってしまうという問題があった。
【０００９】
本発明は、このような問題を解決するために成されたものであり、クライアント端末から複数のプリントサーバに印刷ジョブを送信するようになされた印刷システムにおいて、クライアント端末で印刷の実行を指示してからプリントサーバに印刷ジョブが送信されて印刷が開始されるまでの時間を短くすることができるようにすることを目的とする。
【課題を解決するための手段】
【００１０】
上記した課題を解決するために、本発明では、クライアント端末から印刷ジョブを投入された少なくとも２つのプリントサーバにおいて、印刷ジョブの受信が完了したか否かを判定し、印刷ジョブの受信が完了したと判定した場合、自サーバ以外の別のプリントサーバに対して、当該別のプリントサーバにおいて未受信の部分の印刷ジョブを転送するようにしている。
【発明の効果】
【００１１】
上記のように構成した本発明によれば、クライアント端末から少なくとも２つのプリントサーバに対して印刷ジョブを投入する際に、各サーバに対する印刷ジョブの送信速度の違いから、何れかのプリントサーバに対する印刷ジョブの送信が遅れている場合、先に印刷ジョブの受信が完了したプリントサーバから、まだ受信が完了していない別のプリントサーバに対して未受信の部分の印刷ジョブの転送が行われる。例えば、主担当として特定されたプリントサーバに対する印刷ジョブの送信が遅れている場合、先に印刷ジョブの受信が完了したプリントサーバから、まだ受信が完了していない主担当のプリントサーバに対して未受信の部分の印刷ジョブの転送が行われる。
【００１２】
この場合、クライアント端末から主担当のプリントサーバに対して遅い送信速度で未受信の部分の印刷ジョブの投入を続行するよりも、プリントサーバ間で未受信の部分の印刷ジョブを転送した方が、主担当のプリントサーバにおける印刷ジョブの受信が早く完了する可能性が高くなる。これにより、クライアント端末から主担当のプリントサーバに対して印刷ジョブを投入し終えるまでの時間を短くすることができる。よって、クライアント端末で印刷の実行を指示してからプリントサーバに印刷ジョブが送信されて印刷が開始されるまでの時間を短くすることができる。
【図面の簡単な説明】
【００１３】
【図１】本実施形態による印刷システムの構成例を示す図である。
【図２】本実施形態による印刷システムの機能構成例を示す図である。
【図３】本実施形態による印刷システムの動作例を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、本発明の一実施形態を図面に基づいて説明する。図１は、本実施形態による印刷システムの構成例を示す図である。図１に示すように、本実施形態による印刷システムは、複数のプリントサーバを備えたクラスタ環境の印刷システムであって、クライアント端末１００と、ｎ台のプリントサーバ２００-1，２００-2，・・・２００-n（以下、総称してプリントサーバ２００と記す）と、プリンタ３００とを備えて構成されている。
【００１５】
クライアント端末１００と複数のプリントサーバ２００との間、複数のプリントサーバ２００どうし、および、複数のプリントサーバ２００とプリンタ３００との間は、それぞれ通信ネットワークを介して接続されている。通信ネットワークは、例えばＬＡＮ（Local Area Network）であってもよいし、ＷＡＮ（Wide Area Network）であってもよい。
【００１６】
本実施形態の印刷システムでは、クライアント端末１００において生成された印刷ジョブを、複数のプリントサーバ２００の少なくとも２つに対して投入し、何れか１つのプリントサーバにおいて印刷ジョブに基づいて印刷の実行をプリンタ３００に対して指示する。その後、印刷を実行中のプリントサーバにおける障害の発生が検出された場合、障害が発生したプリントサーバとは別のプリントサーバにおいて、既に投入済みの印刷ジョブに従って印刷実行をプリンタ３００に対して指示する。
【００１７】
図２は、本実施形態による印刷システムの機能構成例を示すブロック図である。図２に示すように、クライアント端末１００は、その機能構成として、印刷ジョブ生成部１１および印刷ジョブ投入部１２を備えている。また、プリントサーバ２００は、その機能構成として、印刷ジョブ記憶部２１、受信完了判定部２２、印刷ジョブ転送部２３、印刷実行制御部２４およびサーバ障害発生検出部２５を備えている。また、プリンタ３００は、その機能構成として、印刷処理部３１を備えている。
【００１８】
クライアント端末１００が備える各機能は、ハードウェア、ＤＳＰ（Digital Signal Processor）、ソフトウェアの何れによっても構成することが可能である。例えばソフトウェアによって構成する場合、上記各機能は、実際にはコンピュータのＣＰＵ、ＲＡＭ、ＲＯＭなどを備えて構成され、ＲＡＭやＲＯＭ、ハードディスクまたは半導体メモリ等の記録媒体に記憶されたプログラムが動作することによって実現される。
【００１９】
プリントサーバ２００やプリンタ３００が備える各機能も同様である。すなわち、これらの機能は、ハードウェア、ＤＳＰ、ソフトウェアの何れによっても構成することが可能である。例えばソフトウェアによって構成する場合、上記各機能は、実際にはコンピュータのＣＰＵ、ＲＡＭ、ＲＯＭなどを備えて構成され、ＲＡＭやＲＯＭ、ハードディスクまたは半導体メモリ等の記録媒体に記憶されたプログラムが動作することによって実現される。
【００２０】
印刷ジョブ生成部１１は、クライアント端末１００を使用するユーザからの印刷指示に従って、印刷ジョブを生成する。例えば、複数ページにわたるドキュメントの印刷指示がユーザによって行われた場合、印刷ジョブ生成部１１は、当該複数ページの印刷ジョブを生成する。
【００２１】
印刷ジョブ投入部１２は、印刷ジョブ生成部１１により生成された印刷ジョブを、ｎ台のプリントサーバ２００の少なくとも２つに対して投入する。ここでは一例として、２台のプリントサーバ２００-1，２００-2に対して印刷ジョブを投入したものとして説明する。このとき印刷ジョブ投入部１２は、２台のプリントサーバ２００-1，２００-2のうち何れか一方を主担当、他方を副担当として印刷ジョブを投入する。
【００２２】
ｎ台のプリントサーバ２００の中からどの２台を選ぶか、２台のうちどちらを主担当とするかについては、任意のルールに基づいて決定することが可能である。例えば、印刷ジョブを投入する時点でプリントサーバ２００にかかっている処理負荷が最も低い方から順番に、主担当および副担当のプリントサーバ２００-1，２００-2を決定する。
【００２３】
この場合、印刷ジョブ投入部１２は、まず全てのプリントサーバ２００にリクエストを送信し、全てのプリントサーバ２００から負荷状況を表す指標値を受信する。負荷状況を表す指標値とは、ＣＰＵの使用率、メモリの使用率、Ｉ／Ｏのレベルなどである。印刷ジョブ投入部１２は、各プリントサーバ２００から受信した負荷状況の指標値をもとに、処理負荷が最も低い方から順番に主担当および副担当のプリントサーバ２００-1，２００-2を決定する。
【００２４】
印刷ジョブ投入部１２は、以上のように決定した主担当および副担当のプリントサーバ２００-1，２００-2に対して、印刷ジョブを送信する。また、印刷ジョブ投入部１２は、どちらが主担当でどちらが副担当であるかを示す割当担当情報もプリントサーバ２００-1，２００-2に送信する。
【００２５】
このとき、印刷ジョブ投入部１２は、印刷ジョブを複数のブロックに分割して順次投入する。なお、ブロックの分割方法は任意に決めることが可能である。例えば、１ページを１ブロックとしてもよいし、所定の複数ページを１ブロックとしてもよい。あるいは、ページ数とは関係なく、所定のデータ量を単位としてブロック分割するようにしてもよい。
【００２６】
プリントサーバ２００の印刷ジョブ記憶部２１は、クライアント端末１００の印刷ジョブ投入部１２により送信された印刷ジョブを、プリンタ３００において印刷が終了するまでの間一時的に記憶する。本実施形態では、クライアント端末１００から２台のプリントサーバ２００-1，２００-2に対して印刷ジョブが送信されているので、同じ印刷ジョブが２台のプリントサーバ２００-1，２００-2の印刷ジョブ記憶部２１に記憶されることになる。
【００２７】
ただし、２台のプリントサーバ２００-1，２００-2における処理負荷の相違や、クライアント端末１００との間における通信負荷の相違などにより、クライアント端末１００から２台のプリントサーバ２００-1，２００-2に対する印刷ジョブの送信速度は異なる。そのため、印刷ジョブの全てのブロックが送信されて印刷ジョブ記憶部２１に記憶し終わるまでには、２台のプリントサーバ２００-1，２００-2の間で時間差が生じる。
【００２８】
受信完了判定部２２は、クライアント端末１００から投入された印刷ジョブの受信が完了したか否かを判定する。具体的には、受信完了判定部２２は、印刷ジョブ記憶部２１に記憶される印刷ジョブを監視することにより、印刷ジョブの全ブロックの受信が完了したか否かを判定する。
【００２９】
例えば、印刷ジョブ投入部１２が印刷ジョブを複数のブロックに分割して投入する際に、最後のブロックに対して最終ブロックであることを示す識別子を付加して投入する。受信完了判定部２２は、この識別子の付いたブロックが印刷ジョブ記憶部２１に記憶されたか否かを監視することにより、印刷ジョブの受信が完了したか否かを判定する。
【００３０】
あるいは、印刷ジョブ投入部１２が印刷ジョブを複数のブロックに分割して投入する際に、分割したブロックの数を最初に２つのプリントサーバ２００-1，２００-2に通知しておく。受信完了判定部２２は、通知された数のブロックが印刷ジョブ記憶部２１に全て記憶されたか否かを監視することにより、印刷ジョブの受信が完了したか否かを判定するようにしてもよい。
【００３１】
印刷ジョブ転送部２３は、受信完了判定部２２により印刷ジョブの受信が完了したと判定した場合、２つのプリントサーバ２００-1，２００-2のうち自サーバ以外の別のプリントサーバに対して、当該別のプリントサーバにおいて未受信のブロックの印刷ジョブを転送する。例えば、主担当のプリントサーバ２００-1の方が印刷ジョブの受信を早く完了した場合、主担当のプリントサーバ２００-1の印刷ジョブ転送部２３が、副担当のプリントサーバ２００-2の印刷ジョブ転送部２３に対して未受信のブロックの印刷ジョブを転送する。
【００３２】
逆に、副担当のプリントサーバ２００-2の方が印刷ジョブの受信を早く完了した場合、副担当のプリントサーバ２００-2の印刷ジョブ転送部２３が、主担当のプリントサーバ２００-1の印刷ジョブ転送部２３に対して未受信のブロックの印刷ジョブを転送する。以下では、副担当のプリントサーバ２００-2の方が印刷ジョブの受信を早く完了した場合を例として説明する。
【００３３】
主担当のプリントサーバ２００-1においてどのブロックが未受信であるかは、副担当のプリントサーバ２００-2から印刷ジョブ転送部２３が主担当のプリントサーバ２００-1に対して問い合わせをすることによって把握することが可能である。主担当のプリントサーバ２００-1では、副担当のプリントサーバ２００-2から問い合わせを受けることで、副担当のプリントサーバ２００-2において自分より早く印刷ジョブの受信が完了したことを把握し、どのブロックまで受信が完了しているのかを副担当のプリントサーバ２００-2に応答する。
【００３４】
また、主担当のプリントサーバ２００-1の印刷ジョブ転送部２３は、自サーバに対して印刷ジョブの転送が開始されることをクライアント端末１００に通知する。なお、主担当のプリントサーバ２００-1に対して印刷ジョブの転送を開始することを副担当のプリントサーバ２００-2からクライアント端末１００に通知するようにしてもよい。
【００３５】
クライアント端末１００の印刷ジョブ投入部１２は、印刷ジョブ転送部２３により印刷ジョブの転送が開始された場合、別のプリントサーバ（上述の例では主担当のプリントサーバ２００-1）に対する印刷ジョブの投入処理を中止する。すなわち、印刷ジョブ投入部１２は、主担当のプリントサーバ２００-1または副担当のプリントサーバ２００-2から印刷ジョブの転送が開始されたことが通知された場合、転送を受ける側となる主担当のプリントサーバ２００-1に対する印刷ジョブの投入処理を中止する。
【００３６】
なお、副担当のプリントサーバ２００-2においてクライアント端末１００から印刷ジョブの受信が完了したことを副担当のプリントサーバ２００-2からクライアント端末１００に通知し、この通知を受けて印刷ジョブ投入部１２が主担当のプリントサーバ２００-1に対する印刷ジョブの投入処理を中止するようにしてもよい。
【００３７】
印刷ジョブの転送を受ける側となる主担当のプリントサーバ２００-1における印刷ジョブ転送部２３は、転送されてきた印刷ジョブのブロックを、クライアント端末１００から受信した印刷ジョブのブロックに続けて印刷ジョブ記憶部２１に記憶させる。なお、印刷ジョブの転送を受けている主担当のプリントサーバ２００-1では、全ブロックの印刷ジョブを印刷ジョブ記憶部２１に記憶し終わっても、印刷ジョブ転送部２３による他のプリントサーバに対する印刷ジョブの転送処理は行わない。
【００３８】
印刷実行制御部２４は、印刷ジョブ記憶部２１に記憶された印刷ジョブに基づいて、プリンタ３００での印刷実行を制御する。具体的には、印刷実行制御部２４は、印刷実行をプリンタ３００に対して指示し、印刷完了通知をプリンタ３００から受信する。プリンタ３００の印刷処理部３１は、プリントサーバ２００から送られてくるコマンドに従って印刷を実行し、印刷が終了したときに印刷完了通知をプリントサーバ２００に返す。
【００３９】
ここで、印刷実行制御部２４により実際にプリンタ３００の印刷実行を制御するのは、原則として、印刷ジョブ投入部１２により印刷ジョブが投入された主担当のプリントサーバ２００-1のみである。副担当に設定されたプリントサーバ２００-2では、印刷ジョブ記憶部２１に印刷ジョブが記憶されていても、プリンタ３００に対する印刷実行の制御は行わない。副担当のプリントサーバ２００-2で印刷実行の制御を行うのは、印刷の実行中に主担当のプリントサーバ２００-1に障害が発生したときである。
【００４０】
サーバ障害発生検出部２５は、プリントサーバ２００における障害の発生を検出する。特に、本実施形態では、主担当とされたプリントサーバ２００-1における障害の発生を検出する。ここで言う障害とは、プリントサーバ２００-1がプリンタ３００に対して印刷実行の制御を継続することができなくなってしまうような障害である。典型的には、プリントサーバ２００-1がダウンもしくはフリーズして動作できない状況、プリントサーバ２００-1が通信ネットワークから切断されて通信できない状況などが該当する。
【００４１】
例えば、各プリントサーバ２００のサーバ障害発生検出部２５は、互いに常時通信をし合っていて、特定の相手と通信ができなくなったときに、その相手のプリントサーバ２００において障害が発生した判断する。すなわち、主担当のプリントサーバ２００-1と副担当のプリントサーバ２００-2とが常時通信をしているときに、主担当のプリントサーバ２００-1に障害が発生すると、副担当のプリントサーバ２００-2は主担当のプリントサーバ２００-1と通信ができなくなる。この場合に副担当のプリントサーバ２００-2のサーバ障害発生検出部２５は、主担当のプリントサーバ２００-1に障害が発生したと判断する。
【００４２】
主担当のプリントサーバ２００-1における障害の発生が副担当のプリントサーバ２００-2のサーバ障害発生検出部２５により検出された場合、副担当のプリントサーバ２００-2の印刷実行制御部２４は、印刷ジョブ記憶部２１に記憶されている印刷ジョブに基づいて、印刷実行をプリンタ３００に対して指示する。
【００４３】
図３は、上記のように構成した本実施形態による印刷システムの動作例を示すフローチャートである。なお、図３に示すフローチャートは、クライアント端末１００において印刷の実行が指示されたときに開始する。まず、クライアント端末１００の印刷ジョブ生成部１１は、ユーザからの印刷指示に従って、印刷ジョブを生成する（ステップＳ１）。
【００４４】
そして、印刷ジョブ投入部１２は、ｎ台のプリントサーバ２００の中から２台のプリントサーバ２００-1，２００-2を主担当および副担当として特定し、特定した２台のプリントサーバ２００-1，２００-2に対して、印刷ジョブ生成部１１により生成された印刷ジョブをブロック単位で順次投入する（ステップＳ２）。このとき、印刷ジョブ投入部１２は、どちらが主担当でどちらが副担当であるかを示す割当担当情報もプリントサーバ２００-1，２００-2に送信する。
【００４５】
２台のプリントサーバ２００-1，２００-2では、クライアント端末１００の印刷ジョブ投入部１２により投入された印刷ジョブをブロック単位で印刷ジョブ記憶部２１に順次記憶させる（ステップＳ３，Ｓ４）。受信完了判定部２２は、印刷ジョブ記憶部２１に記憶される印刷ジョブを監視することにより、印刷ジョブの全ブロックの受信が完了したか否かを判定する（ステップＳ５，Ｓ６）。ここでは一例として、副担当のプリントサーバ２００-2の方が主担当のプリントサーバ２００-1よりも印刷ジョブの受信を早く完了したものとする。
【００４６】
この場合、副担当のプリントサーバ２００-2の印刷ジョブ転送部２３は、主担当のプリントサーバ２００-1においてどのブロックが受信済みであるかを主担当のプリントサーバ２００-1に対して問い合わせる（ステップＳ７）。主担当のプリントサーバ２００-1では、どのブロックまで受信が完了しているのかを副担当のプリントサーバ２００-2に応答するとともに（ステップＳ８）、自サーバに対して印刷ジョブの転送が開始されることをクライアント端末１００に通知する（ステップＳ９）。
【００４７】
この通知を受けて、クライアント端末１００の印刷ジョブ投入部１２は、主担当のプリントサーバ２００-1に対する印刷ジョブの投入処理を中止する（ステップＳ１０）。一方、副担当のプリントサーバ２００-2の印刷ジョブ転送部２３は、主担当のプリントサーバ２００-1の印刷ジョブ転送部２３に対して未受信のブロックの印刷ジョブを転送する（ステップＳ１１）。主担当のプリントサーバ２００-1では、副担当のプリントサーバ２００-2から転送されてきた印刷ジョブのブロックを印刷ジョブ記憶部２１に順次記憶させる（ステップＳ１２）。
【００４８】
主担当のプリントサーバ２００-1における受信完了判定部２２は、印刷ジョブ記憶部２１に記憶される印刷ジョブを監視することにより、印刷ジョブの全ブロックの受信が完了したか否かを判定する（ステップＳ１３）。ここで、印刷ジョブの全ブロックの受信が完了したと判定した場合、主担当のプリントサーバ２００-1の印刷実行制御部２４は、印刷ジョブ記憶部２１に記憶された印刷ジョブに基づいて、印刷実行を指示するコマンドをプリンタ３００に送信する（ステップＳ１４）。
【００４９】
プリンタ３００の印刷処理部３１は、プリントサーバ２００-1から送られてくるコマンドに従って印刷を実行する（ステップＳ１５）。そして、印刷処理部３１は、印刷ジョブによる全ページの印刷が終了したか否かを判定する（ステップＳ１６）。まだ全ページの印刷が終了していない場合、処理はステップＳ１５に戻って印刷実行を継続する。また、印刷処理部３１は、全ページの印刷が終了した時点で、印刷完了通知を主担当のプリントサーバ２００-1に送信する（ステップＳ１７）。
【００５０】
主担当のプリントサーバ２００-1では、印刷完了通知をプリンタ３００から受信すると、印刷実行制御部２４が印刷ジョブ記憶部２１から印刷ジョブを削除し（ステップＳ１８）、図３に示すフローチャートの処理を終了する。なお、図３では図示を省略しているが、副担当のプリントサーバ２００-2においても、プリンタ３００または主担当のプリントサーバ２００-1から印刷完了通知を受けて、印刷実行制御部２４が印刷ジョブ記憶部２１から印刷ジョブを削除する。
【００５１】
印刷ジョブによる全ページの印刷がまだ終了していない状態で、副担当のプリントサーバ２００-2のサーバ障害発生検出部２５は、主担当のプリントサーバ２００-1において障害が発生しているか否かを判定する（ステップＳ１９）。主担当のプリントサーバ２００-1に障害が発生していると判定された場合、副担当のプリントサーバ２００-2では、印刷実行制御部２４が印刷ジョブ記憶部２１に記憶されている印刷ジョブを用いて、当該印刷ジョブの実行を引き継ぐ（ステップＳ２０）。
【００５２】
印刷ジョブを引き継いだ副担当のプリントサーバ２００-2の印刷実行制御部２４は、印刷実行を指示するコマンドをプリンタ３００に送信する（ステップＳ２１）。プリンタ３００の印刷処理部３１は、副担当のプリントサーバ２００-2から送られてくるコマンドに従って印刷を実行し（ステップＳ１５）、その印刷が終了した時点で印刷完了通知を副担当のプリントサーバ２００-2に返す（ステップＳ１７）。副担当のプリントサーバ２００-2では、印刷完了通知をプリンタ３００から受信すると、印刷実行制御部２４が印刷ジョブ記憶部２１から印刷ジョブを削除し（ステップＳ２２）、図３に示すフローチャートの処理を終了する。
【００５３】
なお、図３のフローチャートでは、副担当のプリントサーバ２００-2の方が主担当のプリントサーバ２００-1よりもクライアント端末１００から印刷ジョブの受信を早く完了したものとして説明したが、これとは逆の場合、主担当のプリントサーバ２００-1において印刷ジョブの受信が完了した時点で、プリンタ３００に対して印刷実行を指示を行うとともに、副担当のプリントサーバ２００-2に対して未受信のブロックの印刷ジョブを転送する。
【００５４】
以上詳しく説明したように、本実施形態では、クライアント端末１００から印刷ジョブを投入された２つのプリントサーバ２００-1，２００-2において、印刷ジョブの受信が完了したか否かを判定し、印刷ジョブの受信が完了したと判定した場合、自サーバ以外の別のプリントサーバに対して、当該別のプリントサーバにおいて未受信のブロックの印刷ジョブを転送するようにしている。
【００５５】
このように構成した本実施形態によれば、クライアント端末１００から２つのプリントサーバ２００-1，２００-2に対して印刷ジョブを投入する際に、各プリントサーバ２００-1，２００-2に対する印刷ジョブの送信速度の違いから、主担当のプリントサーバ２００-1に対する印刷ジョブの送信が遅れている場合、先に印刷ジョブの受信が完了した副担当のプリントサーバ２００-2から、まだ受信が完了していない主担当のプリントサーバ２００-1に対して未受信の部分の印刷ジョブの転送が行われる。
【００５６】
この場合、クライアント端末１００から主担当のプリントサーバ２００-1に対して遅い送信速度で未受信の部分の印刷ジョブの投入を続行するよりも、２つのプリントサーバ２００-1，２００-2間で未受信の部分の印刷ジョブを転送した方が、主担当のプリントサーバ２００-1における印刷ジョブの受信が早く完了する可能性が高くなる。これにより、クライアント端末１００から主担当のプリントサーバ２００-1に対して印刷ジョブを投入し終えるまでの時間を短くすることができる。よって、クライアント端末１００で印刷の実行を指示してから少なくとも主担当のプリントサーバ２００-1に印刷ジョブが送信されて印刷が開始されるまでの時間を短くすることができる。
【００５７】
なお、上記実施形態では、クライアント端末１００が印刷ジョブの投入先を決定する例について説明したが、本発明はこれに限定されない。例えば、クライアント端末１００とｎ台のプリントサーバ２００との間に、プリントサーバ２００の負荷状況を監視する端末を設け、この端末において印刷ジョブの投入先を決定するようにしてもよい。
【００５８】
また、上記実施形態において、副担当のプリントサーバ２００-2が主担当のプリントサーバ２００-1から印刷ジョブを引き継ぐ際に、未印刷ページから印刷実行をプリンタ３００に対して指示するようにしてもよい。例えば、プリンタ３００においてページ単位で印刷処理が終了したか否かのステータスを管理し、副担当のプリントサーバ２００-2が印刷ジョブを引き継ぐ際にこのステータスをプリンタ３００に問い合わせて確認することにより、主担当のプリントサーバ２００-1において障害が発生するまでに印刷が終了したページの次の未印刷ページから印刷実行をプリンタ３００に指示する。
【００５９】
あるいは、上述のようにプリンタ３００にてページ単位で管理しているステータス情報をステータスが更新されるたびに主担当のプリントサーバ２００-1に通知し、これを副担当のプリントサーバ２００-2でも共有する。そして、副担当のプリントサーバ２００-2が印刷ジョブを引き継ぐ際に、この共有しているステータスを確認することにより、主担当のプリントサーバ２００-1において障害が発生するまでに印刷が終了したページの次の未印刷ページから印刷実行をプリンタ３００に指示するようにしてもよい。
【００６０】
その他、上記実施形態は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその要旨、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００６１】
１２  印刷ジョブ投入部
２１  印刷ジョブ記憶部
２２  受信完了判定部
２３  印刷ジョブ転送部
２４  印刷実行制御部
２５  サーバ障害発生検出部
３１  印刷処理部
１００  クライアント端末
２００  プリントサーバ
３００  プリンタ
【図１】
2015130038.tif 000003
【図２】
2015130038.tif 000004
【図３】
2015130038.tif 000005