(57)【要約】【課題】印刷実行中のプリントサーバで障害が発生した場合に、別のプリントサーバが印刷を継続して実行する際の停止時間を短くし、かつ、２重印刷も回避できるようにする。【解決手段】クライアント端末１００から２つのプリントサーバ２００-1，２００-2に印刷ジョブを投入し、主担当のプリントサーバ２００-1からプリンタ３００に対して印刷の実行を１ページずつ順次指示し、印刷状況を示すステータス情報を２つのプリントサーバ２００-1，２００-2にて共有する。主担当のプリントサーバ２００-1で障害が発生した場合、副担当のプリントサーバ２００-2が、投入済みの印刷ジョブに従って、プリントサーバ２００-1，２００-2間で共有しているステータス情報に基づき未印刷ページから印刷実行をプリンタ３００に指示することにより、障害が発生したときのページの続きから印刷を直ちに実行することができるようにする。【選択図】図２
2015138405.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では、印刷ジョブ記憶部２１に印刷ジョブが記憶されていても、プリンタ３００に対する印刷実行の制御は行わない。副担当のプリントサーバ２００-2で印刷実行の制御を行うのは、印刷の実行中（主担当のプリントサーバ２００-1からプリンタ３００に対して全ページ分のコマンドを送信し終わるまでの間）に主担当のプリントサーバ２００-1に障害が発生したときである。
【００２８】
ステータス情報共有管理部２３は、印刷実行制御部２２がプリンタ３００から受信した印刷完了通知に基づいて、どのページまで印刷が完了したかを示すステータス情報を生成する。そして、同じ印刷ジョブが投入された２台のプリントサーバ２００-1，２００-2のステータス情報記憶部２４にステータス情報をそれぞれ記憶させて共有する。
【００２９】
具体的には、実際に印刷実行の制御を行っている主担当のプリントサーバ２００-1において、ステータス情報共有管理部２３が、プリンタ３００から１ページ毎に受信する印刷完了通知に基づいて、どのページまで印刷が完了したかを示すステータス情報を生成し、自身のステータス情報記憶部２４に記憶させる。また、生成したステータス情報を副担当のプリントサーバ２００-2に送信する。副担当のプリントサーバ２００-2では、ステータス情報共有管理部２３が、主担当のプリントサーバ２００-1から受信したステータス情報を自身のステータス情報記憶部２４に記憶させる。
【００３０】
主担当のプリントサーバ２００-1において、印刷実行制御部２２は、ステータス情報記憶部２４に記憶された印刷のステータス情報をクライアント端末１００に通知することにより、印刷がどこまで完了しているかをユーザに報知する。なお、後述するように副担当のプリントサーバ２００-2が主担当のプリントサーバ２００-1から印刷ジョブを引き継いだ後は、副担当のプリントサーバ２００-2において、印刷実行制御部２２が印刷のステータス情報をクライアント端末１００に通知する。
【００３１】
サーバ障害発生検出部２５は、プリントサーバ２００における障害の発生を検出する。特に、本実施形態では、主担当とされたプリントサーバ２００-1における障害の発生を検出する。ここで言う障害とは、プリントサーバ２００-1がプリンタ３００に対して印刷実行の制御を継続することができなくなってしまうような障害である。典型的には、プリントサーバ２００-1がダウンもしくはフリーズして動作できない状況、プリントサーバ２００-1が通信ネットワークから切断されて通信できない状況などが該当する。
【００３２】
例えば、各プリントサーバ２００のサーバ障害発生検出部２５は、互いに常時通信をし合っていて、特定の相手と通信ができなくなったときに、その相手のプリントサーバ２００において障害が発生した判断する。すなわち、主担当のプリントサーバ２００-1と副担当のプリントサーバ２００-2とが常時通信をしているときに、主担当のプリントサーバ２００-1に障害が発生すると、副担当のプリントサーバ２００-2は主担当のプリントサーバ２００-1と通信ができなくなる。この場合に副担当のプリントサーバ２００-2のサーバ障害発生検出部２５は、主担当のプリントサーバ２００-1に障害が発生したと判断する。
【００３３】
主担当のプリントサーバ２００-1における障害の発生が副担当のプリントサーバ２００-2のサーバ障害発生検出部２５により検出された場合、副担当のプリントサーバ２００-2の印刷実行制御部２２は、印刷ジョブ記憶部２１に記憶されている印刷ジョブに基づいて、ステータス情報記憶部２４に記憶されているステータス情報により印刷の完了が示されているページの次の未印刷ページから印刷実行をプリンタ３００に対して順次指示する。
【００３４】
図３は、上記のように構成した第１の実施形態による印刷システムの動作例を示すフローチャートである。なお、図３に示すフローチャートは、クライアント端末１００において印刷の実行が指示されたときに開始する。まず、クライアント端末１００の印刷ジョブ生成部１１は、ユーザからの印刷指示に従って、印刷ジョブを生成する（ステップＳ１）。
【００３５】
そして、印刷ジョブ投入部１２は、ｎ台のプリントサーバ２００の中から２台のプリントサーバ２００-1，２００-2を主担当および副担当として特定し、特定した２台のプリントサーバ２００-1，２００-2に対して、印刷ジョブ生成部１１により生成された印刷ジョブを投入する（ステップＳ２）。このとき、印刷ジョブ投入部１２は、どちらが主担当でどちらが副担当であるかを示す割当担当情報もプリントサーバ２００-1，２００-2に送信する。
【００３６】
２台のプリントサーバ２００-1，２００-2では、クライアント端末１００の印刷ジョブ投入部１２により投入された印刷ジョブを印刷ジョブ記憶部２１に記憶させる（ステップＳ３，Ｓ４）。次に、主担当とされたプリントサーバ２００-1の印刷実行制御部２２は、印刷ジョブ記憶部２１に記憶された印刷ジョブに基づいて、１ページ目の印刷実行を指示するコマンドをプリンタ３００に送信する（ステップＳ５）。
【００３７】
プリンタ３００の印刷処理部３１は、主担当のプリントサーバ２００-1から送られてくるコマンドに従って１ページ目の印刷を実行し（ステップＳ６）、その印刷が終了した時点で印刷完了通知を主担当のプリントサーバ２００-1に返す（ステップＳ７）。
【００３８】
ここで、印刷処理部３１は、ステップＳ３で主担当のプリントサーバ２００-1から送られてきた印刷ジョブによる全ページの印刷が終了したか否かを判定する（ステップＳ８）。まだ全ページの印刷が終了していない場合、処理はステップＳ６に戻り、印刷を続行する。一方、全ページの印刷が終了した場合、図３に示すフローチャートの処理は終了する。
【００３９】
主担当のプリントサーバ２００-1では、１ページ目の印刷完了通知をプリンタ３００から受信すると、ステータス情報共有管理部２３が、どのページまで印刷が完了したかを示すステータス情報を生成し、自身のステータス情報記憶部２４に記憶させる（ステップＳ９）。また、ステータス情報共有管理部２３は、生成したステータス情報を副担当のプリントサーバ２００-2に送信する（ステップＳ１０）。
【００４０】
副担当のプリントサーバ２００-2では、ステータス情報共有管理部２３が、主担当のプリントサーバ２００-1からステータス情報を受信したか否かを判定し（ステップＳ１１）、受信した場合にはそのステータス情報を自身のステータス情報記憶部２４に記憶させる（ステップＳ１２）。その後、副担当のプリントサーバ２００-2のサーバ障害発生検出部２５は、主担当のプリントサーバ２００-1において障害が発生しているか否かを判定する（ステップＳ１３）。障害が発生していない場合、処理はステップＳ１１に戻る。
【００４１】
一方、主担当のプリントサーバ２００-1では、ステップＳ１０でステータス情報共有管理部２３がステータス情報を副担当のプリントサーバ２００-2に送信した後、印刷実行制御部２２は、ステップＳ３で印刷ジョブ記憶部２１に記憶された印刷ジョブによる全ページの印刷が終了したか否かを判定する（ステップＳ１４）。まだ全ページの印刷が終了していない場合、処理はステップＳ５に戻り、２ページ目以降の印刷実行を継続する。
【００４２】
以上のように、ステップＳ５〜Ｓ１４の処理を繰り返すことにより、１コマンドにつき１ページの印刷が印刷ジョブの１ページ目から順次実行され、１ページの印刷が終了する毎に、２台のプリントサーバ２００-1，２００-2でステータス情報が共有される。
【００４３】
そして、ステップＳ１４で全ページの印刷が終了したと判定された場合、印刷実行制御部２２が印刷ジョブ記憶部２１から印刷ジョブを削除し（ステップＳ１５）、図３に示すフローチャートの処理を終了する。なお、図３では図示を省略しているが、副担当のプリントサーバ２００-2においても、ステータス情報記憶部２４に記憶されているステータス情報に基づいて全ページの印刷が終了したと判定された場合、印刷実行制御部２２が印刷ジョブ記憶部２１から印刷ジョブを削除する。
【００４４】
これに対し、上記ステップＳ１３において、主担当のプリントサーバ２００-1に障害が発生しているとサーバ障害発生検出部２５にて判定された場合、副担当のプリントサーバ２００-2では、印刷実行制御部２２がステータス情報記憶部２４に記憶されているステータス情報を確認して、印刷ジョブの実行を引き継ぐ（ステップＳ１６）。
【００４５】
印刷ジョブを引き継いだ副担当のプリントサーバ２００-2の印刷実行制御部２２は、ステータス情報記憶部２４に記憶されているステータス情報を確認して、未印刷ページから印刷実行を指示するコマンドをプリンタ３００に送信する（ステップＳ１７）。プリンタ３００の印刷処理部３１は、副担当のプリントサーバ２００-2から送られてくるコマンドに従って１ページ分の印刷を実行し（ステップＳ１８）、その印刷が終了した時点で印刷完了通知を副担当のプリントサーバ２００-2に返す（ステップＳ１９）。
【００４６】
ここで、印刷処理部３１は、ステップＳ４で主担当のプリントサーバ２００-1から送られてきた印刷ジョブによる全ページの印刷が終了したか否かを判定する（ステップＳ２０）。まだ全ページの印刷が終了していない場合、処理はステップＳ１８に戻り、印刷を続行する。一方、全ページの印刷が終了した場合、図３に示すフローチャートの処理は終了する。
【００４７】
副担当のプリントサーバ２００-2では、印刷完了通知をプリンタ３００から受信すると、ステータス情報共有管理部２３が、どのページまで印刷が完了したかを示すステータス情報を生成し、自身のステータス情報記憶部２４に記憶させる（ステップＳ２１）。
【００４８】
その後、印刷実行制御部２２は、ステップＳ１６で引き継いだ印刷ジョブによる全ページの印刷が終了したか否かを判定する（ステップＳ２２）。まだ全ページの印刷が終了していない場合、処理はステップＳ１７に戻り、続きのページの印刷実行を継続する。一方、全ページの印刷が終了したと判定された場合、印刷実行制御部２２が印刷ジョブ記憶部２１から印刷ジョブを削除し（ステップＳ２３）、図３に示すフローチャートの処理を終了する。
【００４９】
以上詳しく説明したように、第１の実施形態では、クライアント端末１００において生成された印刷ジョブを２台のプリントサーバ２００-1，２００-2に投入し、主担当とされた１つのプリントサーバ２００-1において、１ページ目から印刷の実行をプリンタ３００に対して順次指示し、１ページ毎に印刷完了通知をプリンタ３００から受信する。そして、どのページまで印刷が完了したかを示すステータス情報を２台のプリントサーバ２００-1，２００-2で共有する。
【００５０】
その後、印刷を実行中のプリントサーバ２００-1における障害の発生が検出された場合、副担当のプリントサーバ２００-2において印刷ジョブを引き継ぐ。このとき、印刷実行制御部２２が、印刷ジョブ記憶部２１に既に記憶されている印刷ジョブに従って、ステータス情報記憶部２４において共有しているステータス情報に基づき未印刷ページから印刷実行をプリンタ３００に対して順次指示するようにしている。
【００５１】
このように構成した第１の実施形態によれば、印刷ジョブを実行中である主担当のプリントサーバ２００-1で障害が発生した場合に、そのプリントサーバ２００-1で実行中の印刷ジョブと同じ印刷ジョブが既に投入されている副担当のプリントサーバ２００-2にて印刷ジョブの実行が引き継がれる。しかも、副担当のプリントサーバ２００-2のステータス情報記憶部２４には、障害が発生するまでに実行された印刷のステータス情報が記憶されているので、そのステータス情報を参照することにより、障害が発生したときのページの続きから、投入済みの印刷ジョブに基づいて、印刷のためのコマンドを直ちに発行することができる。これにより、障害の発生に応じて印刷ジョブを引き継ぐ際に、未印刷ページの印刷ジョブを新たに生成することなく、印刷を停止せずに継続して実行することができるとともに、２重印刷を回避することができる。
【００５２】
（第２の実施形態）
次に、本発明の第２の実施形態を図面に基づいて説明する。図４は、第２の実施形態による印刷システムの構成例を示す図である。図４に示すように、第２の実施形態による印刷システムは、複数のプリントサーバおよび複数のプリンタを備えたクラスタ環境の印刷システムであって、クライアント端末１００と、ｎ台のプリントサーバ２００と、ｍ台のプリンタ３００-1，３００-2，・・・３００-m（以下、総称してプリンタ３００と記す）とを備えて構成されている。
【００５３】
図５は、第２の実施形態による印刷システムの機能構成例を示すブロック図である。なお、この図５において、図２に示した符号と同一の符号を付したものは同一の機能を有するものであるので、ここでは重複する説明を省略する。図５に示すように、プリントサーバ２００は、その機能構成として、プリンタ障害発生検出部２６をさらに備えている。また、印刷実行制御部２２およびステータス情報共有管理部２３に代えて印刷実行制御部２２Ａおよびステータス情報共有管理部２３Ａを備えている。
【００５４】
印刷実行制御部２２Ａは、ｍ台のプリンタ３００の中から１台を特定して１ページ目から印刷実行を順次指示する。ｍ台のプリンタ３００の中からどの１台を選ぶかについては、任意のルールに基づいて決定することが可能である。例えば、クライアント端末１００で印刷の実行を指示するときに、どのプリンタ３００を使用するのかを同時に指示するようにする。印刷実行制御部２２Ａは、この指示に従って１台のプリンタ３００を特定して印刷実行を指示する。
【００５５】
ステータス情報共有管理部２３Ａは、印刷実行制御部２２Ａがプリンタ３００から受信した印刷完了通知に基づいて、ｍ台のプリンタ３００のうちどのプリンタにおいてどのページまで印刷が完了したかを示すステータス情報を生成する。そして、ｎ台のプリントサーバ２００のステータス情報記憶部２４にステータス情報をそれぞれ記憶させて共有する。
【００５６】
プリンタ障害発生検出部２６は、印刷を実行中のプリンタ３００における障害の発生を検出する。ここで言う障害とは、プリンタ３００が印刷の実行を継続することができなくなってしまうような障害である。例えば、プリンタ３００が通信ネットワークから切断されて通信できない状況や、紙切れ・紙詰まりなどの状況が該当する。具体的には、印刷実行制御部２２Ａがプリンタ３００にコマンドを送信しても送信エラーが返ってきてしまったり、印刷完了通知が一定時間以上返信されなくなってしまったりしたときに、プリンタ障害発生検出部２６はプリンタ３００に障害が発生した判定する。
【００５７】
印刷実行中のプリンタ３００における障害の発生がプリンタ障害発生検出部２６により検出された場合、印刷実行制御部２２Ａは、ステータス情報記憶部２４に記憶されているステータス情報を参照して、印刷の完了が示されているページの次の未印刷ページから印刷実行を別のプリンタ３００に対して順次指示する。ここで選定する別のプリンタ３００は、印刷を実行していない空き状態のプリンタであるのが好ましい。
【００５８】
第２の実施形態では、どのプリンタ３００において印刷が実行中であるかのステータス情報をｎ台のプリントサーバ２００で共有している。そのため、障害の発生に応じて印刷実行制御部２２Ａが別のプリンタ３００に対して印刷実行の指示を開始する際に、その時点でｍ台のプリンタ３００に問い合わせをして印刷状況を確認することなく、印刷未実行のプリンタ３００を直ちに特定して印刷を継続して実行することができる。
【００５９】
なお、印刷未実行のプリンタ３００が存在しない場合は、印刷終了までの残りページ数が最も少ないプリンタ３００を特定して印刷ジョブの実行を引き継ぐのが好ましい。残りページ数が最も少ないプリンタ３００がどれであるかについても、ｎ台のプリントサーバ２００間で共有しているステータス情報を参照することにより、直ちに確認することが可能である。
【００６０】
（第３の実施形態）
次に、本発明の第３の実施形態を図面に基づいて説明する。第３の実施形態による印刷システムの全体構成は、図１と同様である。図６は、第３の実施形態による印刷システムの機能構成例を示すブロック図である。なお、この図６において、図２に示した符号と同一の符号を付したものは同一の機能を有するものであるので、ここでは重複する説明を省略する。
【００６１】
図６に示すように、プリントサーバ２００は、その機能構成として、印刷実行制御部２２に代えて印刷実行制御部２２Ｂを備えている。一方、プリントサーバ２００は、図２の実施形態では備えていたステータス情報共有管理部２３およびステータス情報記憶部２４を備えていない。また、プリンタ３００は、その機能構成として、印刷処理部３１に代えて印刷処理部３１Ｂを備えるとともに、ステータス情報管理部３２をさらに備えている。
【００６２】
プリントサーバ２００の印刷実行制御部２２Ｂは、印刷ジョブ記憶部２１に記憶された印刷ジョブに基づいて、全ページの印刷ジョブにより印刷実行をプリンタ３００に対して指示する。すなわち、印刷実行制御部２２Ｂは、印刷ジョブ記憶部２１に記憶された印刷ジョブを再構成することなくプリンタ３００に送信することにより、印刷実行を指示する。第３の実施形態では、主担当のプリントサーバ２００-1においても、印刷ジョブをプリンタ３００に送信している際に主担当のプリントサーバ２００-1に障害が発生した場合に印刷ジョブを引き継ぐ副担当のプリントサーバ２００-2においても、プリンタ３００に対して全ページの印刷実行を指示する。
【００６３】
プリンタ３００の印刷処理部３１Ｂは、プリントサーバ２００から送られてくる印刷ジョブに従って、１ページずつ印刷を実行する。ステータス情報管理部３２は、印刷処理部３１Ｂによる印刷の実行結果に基づいて、どのページまで印刷が完了したかを示すステータス情報を生成して内部メモリ（図示せず）に記憶させる。ここで、ステータス情報管理部３２は、印刷処理部３１Ｂにより１ページの印刷が終わる都度、ステータス情報を更新して内部メモリに逐次記憶させる。また、ステータス情報管理部３２は、内部メモリに記憶させた印刷のステータス情報を所定タイミング毎にプリントサーバ２００に送信する。
【００６４】
第３の実施形態において、印刷処理部３１Ｂは、主担当のプリントサーバ２００-1から全ページの印刷ジョブが送られてきた場合、１ページ目から印刷を実行する。一方、印刷処理部３１Ｂは、副担当のプリントサーバ２００-2から全ページの印刷ジョブが送られてきた場合、内部メモリに記憶されているステータス情報により印刷の完了が示されているページを破棄（スキップ）して、次の未印刷ページから印刷を実行する。
【００６５】
なお、プリンタ３００が印刷のステータス情報を送信する所定タイミング毎とは、ｎページ（ｎは１以上、印刷ジョブの最大ページ数以下の任意の値）の印刷が完了するタイミング毎であってもよいし、所定の時間毎であってもよい。あるいは、所定の時間毎にプリントサーバ２００の印刷実行制御部２２Ｂから問い合わせを受けて、その問い合わせに対する応答としてステータス情報を送信するようにしてもよい。プリントサーバ２００とプリンタ３００との間で頻繁に通信が発生することを避けるために、以下では、所定時間毎の問い合わせに応答してステータス情報を送信する例について説明する。
【００６６】
例えば、プリンタ３００がＳＮＭＰ（Simple Network Management Protocol）を利用しているネットワーク機器の場合、ＭＩＢ（Management Information Base）の仕組みを用いて、プリンタ３００のステータス情報を外部に知らせることが可能である。印刷実行制御部２２Ｂは、このＭＩＢの仕組みを利用してプリンタ３００に問い合わせを行うことにより、プリンタ３００からステータス情報を取得する。
【００６７】
主担当のプリントサーバ２００-1において、印刷実行制御部２２Ｂは、プリンタ３００から受信した印刷のステータス情報をクライアント端末１００に通知することにより、印刷がどこまで完了しているかをユーザに報知する。なお、副担当のプリントサーバ２００-2が主担当のプリントサーバ２００-1から印刷ジョブを引き継いだ後は、副担当のプリントサーバ２００-2において、印刷実行制御部２２Ｂが印刷のステータス情報をクライアント端末１００に通知する。
【００６８】
図７は、上記のように構成した第３の実施形態による印刷システムの動作例を示すフローチャートである。なお、図７に示すフローチャートは、クライアント端末１００において印刷の実行が指示されたときに開始する。まず、クライアント端末１００の印刷ジョブ生成部１１は、ユーザからの印刷指示に従って、印刷ジョブを生成する（ステップＳ３１）。
【００６９】
そして、印刷ジョブ投入部１２は、ｎ台のプリントサーバ２００の中から２台のプリントサーバ２００-1，２００-2を主担当および副担当として特定し、特定した２台のプリントサーバ２００-1，２００-2に対して、印刷ジョブ生成部１１により生成された印刷ジョブを投入する（ステップＳ３２）。このとき、印刷ジョブ投入部１２は、どちらが主担当でどちらが副担当であるかを示す割当担当情報もプリントサーバ２００-1，２００-2に送信する。
【００７０】
２台のプリントサーバ２００-1，２００-2では、クライアント端末１００の印刷ジョブ投入部１２により投入された印刷ジョブを印刷ジョブ記憶部２１に記憶させる（ステップＳ３３，Ｓ３４）。次に、主担当とされたプリントサーバ２００-1の印刷実行制御部２２Ｂは、印刷ジョブ記憶部２１に記憶された全ページの印刷ジョブをプリンタ３００に送信することにより、印刷の実行を指示する（ステップＳ３５）。
【００７１】
プリンタ３００の印刷処理部３１Ｂは、主担当のプリントサーバ２００-1から送られてくる印刷ジョブを受信しながら、１ページ目から印刷を実行する（ステップＳ３６）。また、ステータス情報管理部３２は、どのページまで印刷が完了したかを示すステータス情報を生成して内部メモリに記憶させる（ステップＳ３７）。
【００７２】
主担当のプリントサーバ２００-1では、ステップＳ３５で印刷ジョブの送信を開始した後、所定時間が経過したタイミングで、プリンタ３００に対してステータス情報の問い合わせを行う（ステップＳ３８）。プリンタ３００のステータス情報管理部３２は、この問い合せに応じて、内部メモリに記憶されているステータス情報を主担当のプリントサーバ２００-1に返信する（ステップＳ３９）。
【００７３】
ここで、印刷処理部３１Ｂは、主担当のプリントサーバ２００-1から送られてきた印刷ジョブによる全ページの印刷が終了したか否かを判定する（ステップＳ４０）。まだ全ページの印刷が終了していない場合、処理はステップＳ３６に戻り、印刷を続行する。一方、全ページの印刷が終了した場合、図７に示すフローチャートの処理は終了する。
【００７４】
主担当のプリントサーバ２００-1では、ステップＳ３８で印刷実行制御部２２Ｂがプリンタ３００に問い合わせを行った後、プリンタ３００から返信されてきたステータス情報に基づいて、ステップＳ３５でプリンタ３００に送信した印刷ジョブによる全ページの印刷が終了したか否かを判定する（ステップＳ４１）。まだ全ページの印刷が終了していない場合、処理はステップＳ３８に戻り、さらに所定時間が経過したタイミングでステータス情報の問い合わせを再び行う。
【００７５】
一方、全ページの印刷が終了したと判定された場合、印刷実行制御部２２Ｂが印刷ジョブ記憶部２１から印刷ジョブを削除し（ステップＳ４２）、図７に示すフローチャートの処理を終了する。なお、図７では図示を省略しているが、主担当のプリントサーバ２００-1から副担当のプリントサーバ２００-2に印刷が終了したことを通知し、これに応じて副担当のプリントサーバ２００-2においても、印刷実行制御部２２Ｂが印刷ジョブ記憶部２１から印刷ジョブを削除する。
【００７６】
このように、主担当のプリントサーバ２００-1とプリンタ３００との間でステップＳ３５〜Ｓ４２の処理を行っているのと並行して、副担当のプリントサーバ２００-2では、サーバ障害発生検出部２５が、主担当のプリントサーバ２００-1において障害が発生しているか否かを判定する（ステップＳ４３）。ここで、主担当のプリントサーバ２００-1に障害が発生していると判定された場合、副担当のプリントサーバ２００-2では、印刷実行制御部２２Ｂが印刷ジョブの実行を引き継ぐ（ステップＳ４４）。
【００７７】
印刷ジョブを引き継いだ副担当のプリントサーバ２００-2の印刷実行制御部２２Ｂは、印刷ジョブ記憶部２１に記憶された全ページの印刷ジョブをプリンタ３００に送信することにより、印刷の実行を指示する（ステップＳ４５）。プリンタ３００の印刷処理部３１Ｂは、副担当のプリントサーバ２００-2から全ページの印刷ジョブが送られてきた場合、内部メモリに記憶されているステータス情報により印刷の完了が示されているページを確認する（ステップＳ４６）。そして、印刷処理部３１Ｂは、印刷が完了しているページをスキップして、次の未印刷ページから印刷を実行する（ステップＳ４７）。
【００７８】
また、ステータス情報管理部３２は、どのページまで印刷が完了したかを示すステータス情報を生成して内部メモリに記憶させる（ステップＳ４８）。印刷ジョブを引き継いだ副担当のプリントサーバ２００-2では、ステップＳ４５で印刷ジョブの送信を開始した後、所定時間が経過したタイミングで、プリンタ３００に対してステータス情報の問い合わせを行う（ステップＳ４９）。プリンタ３００のステータス情報管理部３２は、この問い合せに応じて、内部メモリに記憶されているステータス情報を副担当のプリントサーバ２００-21に返信する（ステップＳ５０）。
【００７９】
ここで、印刷処理部３１Ｂは、ステップＳ４５で副担当のプリントサーバ２００-2から改めて送られてきた印刷ジョブによる全ページの印刷が終了したか否かを判定する（ステップＳ５１）。まだ全ページの印刷が終了していない場合、処理はステップＳ４７に戻り、印刷を続行する。一方、全ページの印刷が終了した場合、図７に示すフローチャートの処理は終了する。
【００８０】
副担当のプリントサーバ２００-2では、ステップＳ４９で印刷実行制御部２２Ｂがプリンタ３００に問い合わせを行った後、プリンタ３００から返信されてきたステータス情報に基づいて、ステップＳ４５でプリンタ３００に送信した印刷ジョブによる全ページの印刷が終了したか否かを判定する（ステップＳ５２）。まだ全ページの印刷が終了していない場合、処理はステップＳ４９に戻り、さらに所定時間が経過したタイミングでステータス情報の問い合わせを再び行う。一方、全ページの印刷が終了したと判定された場合、印刷実行制御部２２Ｂが印刷ジョブ記憶部２１から印刷ジョブを削除し（ステップＳ５２）、図７に示すフローチャートの処理を終了する。
【００８１】
以上詳しく説明したように、第３の実施形態では、クライアント端末１００において生成された印刷ジョブを２台のプリントサーバ２００-1，２００-2に投入し、主担当とされた１つのプリントサーバ２００-1において、クライアント端末１００から投入された全ページの印刷ジョブをプリンタ３００に送信して印刷の実行を指示する。そして、この指示を受けてプリンタ３００が印刷を実行し、印刷のステータス情報を内部メモリに逐次更新して記憶させる。
【００８２】
その後、印刷を実行中（印刷ジョブの送信中）である主担当のプリントサーバ２００-1における障害の発生が検出された場合、副担当のプリントサーバ２００-2において印刷ジョブを引き継ぐ。このとき、副担当のプリントサーバ２００-2においても、クライアント端末１００から投入された全ページの印刷ジョブをそのままプリンタ３００に送信して印刷の実行を指示する。そして、この指示を受けたプリンタ３００において、内部メモリに記憶されているステータス情報を参照して、未印刷のページから印刷を実行するようにしている。
【００８３】
このように構成した第３の実施形態によれば、印刷ジョブを送信中である主担当のプリントサーバ２００-1で障害が発生した場合に、印刷ジョブを引き継いだ副担当のプリントサーバ２００-2は、既にクライアント端末１００から投入済みの印刷ジョブをそのままプリンタ３００に送信して印刷の実行を指示すればよい。そして、プリンタ３００側において、印刷済みのページをスキップして未印刷のページから印刷を実行することができる。これにより、障害の発生に応じて副担当のプリントサーバ２００-2が印刷ジョブを引き継ぐ際に、未印刷ページの印刷ジョブを新たに生成することなく、一時的な停止時間を短くして印刷を継続して実行することができるとともに、２重印刷を回避することができる。
【００８４】
（第４の実施形態）
次に、本発明の第４の実施形態を図面に基づいて説明する。第４の実施形態による印刷システムの全体構成は、図１と同様である。図８は、第４の実施形態による印刷システムの機能構成例を示すブロック図である。なお、この図８において、図２および図６に示した符号と同一の符号を付したものは同一の機能を有するものであるので、ここでは重複する説明を省略する。
【００８５】
図８に示すように、プリントサーバ２００は、その機能構成として、図２に示した印刷実行制御部２２に代えて印刷実行制御部２２Ｃを備えている。また、プリンタ３００は、その機能構成として、図２に示した印刷処理部３１に代えて印刷処理部３１Ｂを備えるとともに、ステータス情報管理部３２をさらに備えている。印刷処理部３１Ｂおよびステータス情報管理部３２は、図６に示したものと同じ機能を有するものである。
【００８６】
プリントサーバ２００の印刷実行制御部２２Ｃは、印刷ジョブ記憶部２１に記憶された印刷ジョブに基づいて印刷実行をプリンタ３００に対して指示し、所定タイミング毎に印刷のステータス情報をプリンタ３００から取得する。所定のタイミング毎というのは、第３の実施形態で説明したのと同様である。以下では、プリントサーバ２００からの所定時間毎の問い合わせに応答してプリンタ３００がステータス情報を送信する例について説明する。
【００８７】
第４の実施形態では、プリントサーバ２００が主担当であるか、印刷ジョブを引き継いだ副担当であるかによって、プリンタ３００に送信する印刷ジョブの内容が異なる。すなわち、主担当のプリントサーバ２００-1の場合、印刷実行制御部２２Ｃは、第３の実施形態と同様に全ページの印刷ジョブにより印刷実行をプリンタ３００に対して指示する。すなわち、印刷実行制御部２２Ｃは、印刷ジョブ記憶部２１に記憶された印刷ジョブを再構成することなくプリンタ３００に送信する。
【００８８】
これに対して、印刷ジョブを送信中である主担当のプリントサーバ２００-1に障害が発生した場合に印刷ジョブを引き継いだ副担当のプリントサーバ２００-2の場合、印刷実行制御部２２Ｃは、印刷ジョブ記憶部２１に記憶された印刷ジョブに基づいて、ステータス情報記憶部２４に記憶されているステータス情報により印刷の完了が示されているページの次のページからの印刷ジョブ（以下、完了未通知ページの印刷ジョブという）を生成し、これに基づいて印刷実行をプリンタ３００に対して指示する。すなわち、印刷実行制御部２２Ｃは、印刷ジョブ記憶部２１に記憶された印刷ジョブに基づいて、完了未通知ページの印刷ジョブを再構成してプリンタ３００に送信する。
【００８９】
ステータス情報共有管理部２３は、印刷実行制御部２２Ｃがプリンタ３００から所定時間毎に取得した印刷のステータス情報に基づいて、どのページまで印刷が完了したかを示すステータス情報を生成する。そして、同じ印刷ジョブが投入された２台のプリントサーバ２００-1，２００-2のステータス情報記憶部２４にステータス情報をそれぞれ記憶させて共有する。なお、プリンタ３００においてはステータス情報管理部３２により内部メモリのステータス情報が１ページ毎に更新される一方、プリントサーバ２００-1，２００-2においてはステータス情報共有管理部２３によりステータス情報記憶部２４のステータス情報が所定時間毎に更新されるため、両者のステータス情報に相違が出る時間帯が生じる。
【００９０】
プリンタ３００の印刷処理部３１Ｂは、プリントサーバ２００から送られてくる印刷ジョブに従って、１ページずつ印刷を実行する。具体的には、印刷処理部３１Ｂは、主担当のプリントサーバ２００-1から全ページの印刷ジョブが送られてきた場合、１ページ目から印刷を実行する。一方、副担当のプリントサーバ２００-2から完了未通知ページの印刷ジョブが送られてきた場合、印刷処理部３１Ｂは、当該完了未通知ページのうち、内部メモリに記憶されているステータス情報により印刷の完了が示されているページを破棄（スキップ）して、次の未印刷ページから印刷を実行する。
【００９１】
図９は、上記のように構成した第４の実施形態による印刷システムの動作例を示すフローチャートである。なお、図９に示すフローチャートは、クライアント端末１００において印刷の実行が指示されたときに開始する。まず、クライアント端末１００の印刷ジョブ生成部１１は、ユーザからの印刷指示に従って、印刷ジョブを生成する（ステップＳ６１）。
【００９２】
そして、印刷ジョブ投入部１２は、ｎ台のプリントサーバ２００の中から２台のプリントサーバ２００-1，２００-2を主担当および副担当として特定し、特定した２台のプリントサーバ２００-1，２００-2に対して、印刷ジョブ生成部１１により生成された印刷ジョブを投入する（ステップＳ６２）。このとき、印刷ジョブ投入部１２は、どちらが主担当でどちらが副担当であるかを示す割当担当情報もプリントサーバ２００-1，２００-2に送信する。
【００９３】
２台のプリントサーバ２００-1，２００-2では、クライアント端末１００の印刷ジョブ投入部１２により投入された印刷ジョブを印刷ジョブ記憶部２１に記憶させる（ステップＳ６３，Ｓ６４）。次に、主担当とされたプリントサーバ２００-1の印刷実行制御部２２Ｃは、印刷ジョブ記憶部２１に記憶された全ページの印刷ジョブをプリンタ３００に送信することにより、印刷の実行を指示する（ステップＳ６５）。
【００９４】
プリンタ３００の印刷処理部３１Ｂは、主担当のプリントサーバ２００-1から送られてくる印刷ジョブを受信しながら、１ページ目から印刷を実行する（ステップＳ６６）。また、ステータス情報管理部３２は、どのページまで印刷が完了したかを示すステータス情報を生成して内部メモリに記憶させる（ステップＳ６７）。
【００９５】
主担当のプリントサーバ２００-1では、ステップＳ６５で印刷ジョブの送信を開始した後、所定時間が経過したタイミングで、プリンタ３００に対してステータス情報の問い合わせを行う（ステップＳ６８）。プリンタ３００のステータス情報管理部３２は、この問い合せに応じて、内部メモリに記憶されているステータス情報を主担当のプリントサーバ２００-1に返信する（ステップＳ６９）。
【００９６】
ここで、印刷処理部３１Ｂは、主担当のプリントサーバ２００-1から送られてきた印刷ジョブによる全ページの印刷が終了したか否かを判定する（ステップＳ７０）。まだ全ページの印刷が終了していない場合、処理はステップＳ６６に戻り、印刷を続行する。一方、全ページの印刷が終了した場合、図９に示すフローチャートの処理は終了する。
【００９７】
主担当のプリントサーバ２００-1では、ステップＳ６８で印刷実行制御部２２Ｃがプリンタ３００に問い合わせを行った後、ステータス情報の通知をプリンタ３００から受信すると、ステータス情報共有管理部２３が、どのページまで印刷が完了したかを示すステータス情報を生成し、自身のステータス情報記憶部２４に記憶させる（ステップＳ７１）。また、ステータス情報共有管理部２３は、生成したステータス情報を副担当のプリントサーバ２００-2に送信する（ステップＳ７２）。
【００９８】
副担当のプリントサーバ２００-2では、ステータス情報共有管理部２３が、主担当のプリントサーバ２００-1からステータス情報を受信したか否かを判定し（ステップＳ７３）、受信した場合にはそのステータス情報を自身のステータス情報記憶部２４に記憶させる（ステップＳ７４）。その後、副担当のプリントサーバ２００-2のサーバ障害発生検出部２５は、主担当のプリントサーバ２００-1において障害が発生しているか否かを判定する（ステップＳ７５）。障害が発生していない場合、処理はステップＳ７３に戻る。
【００９９】
一方、主担当のプリントサーバ２００-1では、ステップＳ７２でステータス情報共有管理部２３がステータス情報を副担当のプリントサーバ２００-2に送信した後、印刷実行制御部２２Ｃは、ステータス情報記憶部２４に記憶されたステータス情報に基づいて、ステップＳ６５でプリンタ３００に送信した印刷ジョブによる全ページの印刷が終了したか否かを判定する（ステップＳ７６）。まだ全ページの印刷が終了していない場合、処理はステップＳ６８に戻り、さらに所定時間が経過したタイミングでステータス情報の問い合わせを再び行う。
【０１００】
一方、全ページの印刷が終了したと判定された場合、印刷実行制御部２２Ｃが印刷ジョブ記憶部２１から印刷ジョブを削除し（ステップＳ７７）、図９に示すフローチャートの処理を終了する。なお、図９では図示を省略しているが、副担当のプリントサーバ２００-2においても、ステータス情報記憶部２４に記憶されているステータス情報に基づいて全ページの印刷が終了したと判定された場合、印刷実行制御部２２Ｃが印刷ジョブ記憶部２１から印刷ジョブを削除する。
【０１０１】
これに対し、上記ステップＳ７５において、主担当のプリントサーバ２００-1に障害が発生しているとサーバ障害発生検出部２５にて判定された場合、副担当のプリントサーバ２００-2では、印刷実行制御部２２Ｃが印刷ジョブの実行を引き継ぐ（ステップＳ７８）。印刷ジョブを引き継いだ副担当のプリントサーバ２００-2の印刷実行制御部２２Ｃは、ステータス情報記憶部２４に記憶されているステータス情報を確認して、印刷の完了が示されているページの次のページからの完了未通知ページの印刷ジョブをプリンタ３００に送信することにより、印刷の実行を指示する（ステップＳ７９）。
【０１０２】
プリンタ３００の印刷処理部３１Ｂは、副担当のプリントサーバ２００-2から完了未通知ページの印刷ジョブが送られてきた場合、内部メモリに記憶されているステータス情報により印刷の完了が示されているページを確認する（ステップＳ８０）。そして、印刷処理部３１Ｂは、完了未通知ページのうち印刷が完了しているページをスキップして、次の未印刷ページから印刷を実行する（ステップＳ８１）。
【０１０３】
また、ステータス情報管理部３２は、どのページまで印刷が完了したかを示すステータス情報を生成して内部メモリに記憶させる（ステップＳ８２）。印刷ジョブを引き継いだ副担当のプリントサーバ２００-2では、ステップＳ７９で印刷ジョブの送信を開始した後、所定時間が経過したタイミングで、プリンタ３００に対してステータス情報の問い合わせを行う（ステップＳ８３）。プリンタ３００のステータス情報管理部３２は、この問い合せに応じて、内部メモリに記憶されているステータス情報を副担当のプリントサーバ２００-21に返信する（ステップＳ８４）。
【０１０４】
ここで、印刷処理部３１Ｂは、ステップＳ７９で副担当のプリントサーバ２００-2から改めて送られてきた印刷ジョブによる全ページの印刷が終了したか否かを判定する（ステップＳ８５）。まだ全ページの印刷が終了していない場合、処理はステップＳ８１に戻り、印刷を続行する。一方、全ページの印刷が終了した場合、図９に示すフローチャートの処理は終了する。
【０１０５】
副担当のプリントサーバ２００-2では、ステップＳ８３で印刷実行制御部２２Ｃがプリンタ３００に問い合わせを行った後、ステータス情報の通知をプリンタ３００から受信すると、ステータス情報共有管理部２３が、どのページまで印刷が完了したかを示すステータス情報を生成し、自身のステータス情報記憶部２４に記憶させる（ステップＳ８６）。
【０１０６】
その後、印刷実行制御部２２Ｃは、ステータス情報記憶部２４に記憶されたステータス情報に基づいて、ステップＳ７９でプリンタ３００に送信した印刷ジョブによる全ページの印刷が終了したか否かを判定する（ステップＳ８７）。まだ全ページの印刷が終了していない場合、処理はステップＳ８３に戻り、さらに所定時間が経過したタイミングでステータス情報の問い合わせを再び行う。一方、全ページの印刷が終了したと判定された場合、印刷実行制御部２２Ｃが印刷ジョブ記憶部２１から印刷ジョブを削除し（ステップＳ８８）、図９に示すフローチャートの処理を終了する。
【０１０７】
以上詳しく説明したように、第４の実施形態では、クライアント端末１００において生成された印刷ジョブを２台のプリントサーバ２００-1，２００-2に投入し、主担当とされた１つのプリントサーバ２００-1において、クライアント端末１００から投入された全ページの印刷ジョブをプリンタ３００に送信して印刷の実行を指示する。そして、この指示を受けてプリンタ３００が印刷を実行し、印刷のステータス情報を内部メモリに逐次更新して記憶させる。また、主担当のプリントサーバ２００-1からプリンタ３００に対して定期的にステータス情報の問い合わせを行い、プリンタ３００から取得したステータス情報を２台のプリントサーバ２００-1，２００-2で共有する。
【０１０８】
その後、印刷を実行中（印刷ジョブの送信中）である主担当のプリントサーバ２００-1における障害の発生が検出された場合、副担当のプリントサーバ２００-2において印刷ジョブを引き継ぐ。このとき、副担当のプリントサーバ２００-2では、印刷実行制御部２２Ｃが、印刷ジョブ記憶部２１に既に記憶されている印刷ジョブを用いて、ステータス情報記憶部２４において共有しているステータス情報に基づき完了未通知ページの印刷ジョブを再構築してプリンタ３００に送信する。そして、プリンタ３００において、内部メモリに記憶されているステータス情報を参照して、完了未通知ページのうち実際に印刷が完了しているページをスキップして、次の未印刷のページから印刷を実行するようにしている。
【０１０９】
このように構成した第４の実施形態によれば、印刷ジョブの送信中である主担当のプリントサーバ２００-1で障害が発生した場合に、印刷ジョブを引き継いだ副担当のプリントサーバ２００-2において、既にクライアント端末１００から投入済みである全ページの印刷ジョブから完了未通知ページの印刷ジョブを再構築する必要はある。しかし、プリンタ３００側において、副担当のプリントサーバ２００-2から送られてきた印刷ジョブの中から既に印刷済みでスキップすべきページの枚数を減らすことができる。このため、スキップするページを確認するために要する時間を削減することができる。これにより、障害の発生に応じて副担当のプリントサーバ２００-2が印刷ジョブを引き継ぐ際に、一時的な停止時間を短くして印刷の実行を継続することができるとともに、２重印刷を回避することができる。
【０１１０】
（第５の実施形態）
次に、本発明の第５の実施形態を図面に基づいて説明する。第５の実施形態による印刷システムの全体構成は、図１と同様である。図１０は、第５の実施形態による印刷システムの機能構成例を示すブロック図である。なお、この図１０において、図８に示した符号と同一の符号を付したものは同一の機能を有するものであるので、ここでは重複する説明を省略する。
【０１１１】
図１０に示すように、プリントサーバ２００は、その機能構成として、図８に示した印刷実行制御部２２Ｃに代えて印刷実行制御部２２Ｄを備えている。また、プリンタ３００は、その機能構成として、図８に示した印刷処理部３１Ｂに代えて印刷処理部３１Ｄを備えている。
【０１１２】
プリントサーバ２００の印刷実行制御部２２Ｄは、印刷ジョブ記憶部２１に記憶された印刷ジョブに基づいて印刷実行をプリンタに対して指示し、所定タイミング毎に印刷のステータス情報をプリンタ３００から取得する。所定のタイミング毎というのは、第３の実施形態で説明したのと同様である。以下では、プリントサーバ２００からの所定時間毎の問い合わせに応答してプリンタ３００がステータス情報を送信する例について説明する。第５の実施形態では、主担当のプリントサーバ２００-1のみならず、副担当のプリントサーバ２００-2においても、印刷実行制御部２２Ｄがプリンタ３００に対して全ページの印刷ジョブを送信して印刷実行を指示する。
【０１１３】
プリンタ３００の印刷処理部３１Ｄは、２台のプリントサーバ２００-1，２００-2からそれぞれ全ページの印刷ジョブが送られてきた場合、そのうちの１つの印刷ジョブに基づいて１ページ目から印刷を実行する。ここで採用する印刷ジョブは、どちらのプリントサーバ２００-1，２００-2から送られてきたものでもよいが、例えば主担当のプリントサーバ２００-1から送られてきた印刷ジョブに基づいて印刷を実行するものとする。印刷実行制御部２２Ｄは、どちらの印刷ジョブが主担当のものであるかを識別できるように、例えば役割担当情報を印刷ジョブに付加して送信する。
【０１１４】
プリンタ３００において印刷ジョブの受信が完了する前に主担当のプリントサーバ２００-1において障害が発生した場合、主担当のプリントサーバ２００-1から送られてくる印刷ジョブの受信が中断される。この場合、印刷処理部３１Ｄは、副担当のプリントサーバ２００-2から同時に受信中の別の印刷ジョブに基づいて、続きのページから印刷を実行する。
【０１１５】
主担当のプリントサーバ２００-1において、印刷実行制御部２２Ｄは、プリンタ３００に対して所定時間毎にステータス情報の問い合わせを行う。ステータス情報管理部３２は、その問い合わせに対する応答として、内部メモリに記憶されているステータス情報を主担当のプリントサーバ２００-1に送信する。主担当のプリントサーバ２００-1のステータス情報共有管理部２３は、印刷実行制御部２２Ｄがプリンタ３００から所定時間毎に取得したステータス情報に基づいて、どのページまで印刷が完了したかを示すステータス情報を生成し、これをステータス情報記憶部２４に記憶させて副担当のプリントサーバ２００-2と共有するとともに、クライアント端末１００に通知する。
【０１１６】
一方、副担当のプリントサーバ２００-2において、印刷実行制御部２２Ｄは、プリンタ３００に対するステータス情報の問い合わせは原則として行わない。副担当のプリントサーバ２００-2において印刷実行制御部２２Ｄがプリンタ３００に対してステータス情報の問い合わせを行うのは、主担当のプリントサーバ２００-1における障害の発生がサーバ障害発生検出部２５により検出された場合である。
【０１１７】
すなわち、副担当のプリントサーバ２００-2の印刷実行制御部２２Ｄは、主担当のプリントサーバ２００-1における障害の発生がサーバ障害発生検出部２５により検出された場合、プリンタ３００に対して所定時間毎にステータス情報の問い合わせを行い、その応答としてステータス情報をプリンタ３００から取得する。そして、副担当のプリントサーバ２００-2のステータス情報共有管理部２３は、プリンタ３００から所定時間毎に取得したステータス情報に基づいて、どのページまで印刷が完了したかを示すステータス情報を生成し、これをステータス情報記憶部２４に記憶させるとともに、クライアント端末１００に通知する。
【０１１８】
図１１は、上記のように構成した第５の実施形態による印刷システムの動作例を示すフローチャートである。なお、図１１に示すフローチャートは、クライアント端末１００において印刷の実行が指示されたときに開始する。まず、クライアント端末１００の印刷ジョブ生成部１１は、ユーザからの印刷指示に従って、印刷ジョブを生成する（ステップＳ９１）。
【０１１９】
そして、印刷ジョブ投入部１２は、ｎ台のプリントサーバ２００の中から２台のプリントサーバ２００-1，２００-2を主担当および副担当として特定し、特定した２台のプリントサーバ２００-1，２００-2に対して、印刷ジョブ生成部１１により生成された印刷ジョブを投入する（ステップＳ９２）。このとき、印刷ジョブ投入部１２は、どちらが主担当でどちらが副担当であるかを示す割当担当情報もプリントサーバ２００-1，２００-2に送信する。
【０１２０】
２台のプリントサーバ２００-1，２００-2では、クライアント端末１００の印刷ジョブ投入部１２により投入された印刷ジョブを印刷ジョブ記憶部２１に記憶させる（ステップＳ９３，Ｓ９４）。次に、２台のプリントサーバ２００-1，２００-2の印刷実行制御部２２Ｄは、印刷ジョブ記憶部２１に記憶された全ページの印刷ジョブをプリンタ３００に送信することにより、印刷の実行を指示する（ステップＳ９５，Ｓ９６）。
【０１２１】
プリンタ３００の印刷処理部３１Ｄは、主担当のプリントサーバ２００-1から送られてくる印刷ジョブを受信しながら、１ページ目から印刷を実行する（ステップＳ９７）。また、ステータス情報管理部３２は、どのページまで印刷が完了したかを示すステータス情報を生成して内部メモリに記憶させる（ステップＳ９８）。
【０１２２】
主担当のプリントサーバ２００-1では、ステップＳ９５で印刷ジョブの送信を開始した後、所定時間が経過したタイミングで、プリンタ３００に対してステータス情報の問い合わせを行う（ステップＳ９９）。プリンタ３００のステータス情報管理部３２は、この問い合せに応じて、内部メモリに記憶されているステータス情報を主担当のプリントサーバ２００-1に返信する（ステップＳ１００）。
【０１２３】
ここで、印刷処理部３１Ｄは、主担当のプリントサーバ２００-1から送られてきた印刷ジョブによる全ページの印刷が終了したか否かを判定する（ステップＳ１０１）。全ページの印刷が終了した場合、図９に示すフローチャートの処理は終了する。一方、まだ全ページの印刷が終了していない場合、印刷処理部３１Ｄは、主担当のプリントサーバ２００-1から送られてくる印刷ジョブの受信が中断されたか否かを判定する（ステップＳ１０２）。ここで、印刷ジョブの受信が中断されていない場合、処理はステップＳ９７に戻り、印刷を続行する。一方、主担当のプリントサーバ２００-1から送られてくる印刷ジョブの受信が中断された場合、処理はステップＳ１１２に遷移する。
【０１２４】
主担当のプリントサーバ２００-1では、ステップＳ９９で印刷実行制御部２２Ｄがプリンタ３００に問い合わせを行った後、ステータス情報の通知をプリンタ３００から受信すると、ステータス情報共有管理部２３が、どのページまで印刷が完了したかを示すステータス情報を生成し、自身のステータス情報記憶部２４に記憶させる（ステップＳ１０３）。また、ステータス情報共有管理部２３は、生成したステータス情報を副担当のプリントサーバ２００-2に送信する（ステップＳ１０４）。
【０１２５】
副担当のプリントサーバ２００-2では、ステータス情報共有管理部２３が、主担当のプリントサーバ２００-1からステータス情報を受信したか否かを判定し（ステップＳ１０５）、受信した場合にはそのステータス情報を自身のステータス情報記憶部２４に記憶させる（ステップＳ１０６）。その後、副担当のプリントサーバ２００-2のサーバ障害発生検出部２５は、主担当のプリントサーバ２００-1において障害が発生しているか否かを判定する（ステップＳ１０７）。障害が発生していない場合、処理はステップＳ１０５に戻る。
【０１２６】
一方、主担当のプリントサーバ２００-1では、ステップＳ１０４でステータス情報共有管理部２３がステータス情報を副担当のプリントサーバ２００-2に送信した後、印刷実行制御部２２Ｄは、ステータス情報記憶部２４に記憶されたステータス情報に基づいて、ステップＳ９５でプリンタ３００に送信した印刷ジョブによる全ページの印刷が終了したか否かを判定する（ステップＳ１０８）。まだ全ページの印刷が終了していない場合、処理はステップＳ９９に戻り、さらに所定時間が経過したタイミングでステータス情報の問い合わせを再び行う。
【０１２７】
一方、全ページの印刷が終了したと判定された場合、印刷実行制御部２２Ｄが印刷ジョブ記憶部２１から印刷ジョブを削除し（ステップＳ１０９）、図１１に示すフローチャートの処理を終了する。なお、図１１では図示を省略しているが、副担当のプリントサーバ２００-2においても、ステータス情報記憶部２４に記憶されているステータス情報に基づいて全ページの印刷が終了したと判定された場合、印刷実行制御部２２Ｄが印刷ジョブ記憶部２１から印刷ジョブを削除する。
【０１２８】
これに対し、上記ステップＳ１０７において、主担当のプリントサーバ２００-1に障害が発生しているとサーバ障害発生検出部２５にて判定された場合、副担当のプリントサーバ２００-2では、所定時間が経過したタイミングで、プリンタ３００に対してステータス情報の問い合わせを行う（ステップＳ１１０）。プリンタ３００のステータス情報管理部３２は、この問い合せに応じて、内部メモリに記憶されているステータス情報を副担当のプリントサーバ２００-21に返信する（ステップＳ１１１）。
【０１２９】
その後、プリンタ３００の印刷処理部３１Ｄは、ステップＳ９６で副担当のプリントサーバ２００-2から送られてきている印刷ジョブに従って、主担当のプリントサーバ２００-1から送られてきていた印刷ジョブの受信が中断したときのページの次のページから印刷を続行する（ステップＳ１１２）。また、ステータス情報管理部３２は、どのページまで印刷が完了したかを示すステータス情報を生成して内部メモリに記憶させる（ステップＳ１１３）。
【０１３０】
ここで、印刷処理部３１Ｄは、副担当のプリントサーバ２００-2から送られてきた印刷ジョブによる全ページの印刷が終了したか否かを判定する（ステップＳ１１４）。全ページの印刷が終了した場合、図１１に示すフローチャートの処理は終了する。一方、まだ全ページの印刷が終了していない場合、処理はステップＳ１１１に戻る。
【０１３１】
副担当のプリントサーバ２００-2では、ステップＳ１１０で印刷実行制御部２２Ｄがプリンタ３００に問い合わせを行った後、ステータス情報の通知をプリンタ３００から受信すると、ステータス情報共有管理部２３が、どのページまで印刷が完了したかを示すステータス情報を生成し、自身のステータス情報記憶部２４に記憶させる（ステップＳ１１５）。その後、印刷実行制御部２２Ｄは、ステータス情報記憶部２４に記憶したステータス情報に基づいて、ステップＳ９６でプリンタ３００に送信した印刷ジョブによる全ページの印刷が終了したか否かを判定する（ステップＳ１１６）。
【０１３２】
まだ全ページの印刷が終了していない場合、処理はステップＳ１１０に戻り、さらに所定時間が経過したタイミングでステータス情報の問い合わせを再び行う。一方、全ページの印刷が終了したと判定された場合、印刷実行制御部２２Ｄが印刷ジョブ記憶部２１から印刷ジョブを削除し（ステップＳ１１７）、図１１に示すフローチャートの処理を終了する。
【０１３３】
以上詳しく説明したように、第５の実施形態では、クライアント端末１００において生成された印刷ジョブを２台のプリントサーバ２００-1，２００-2に投入し、その全ページの印刷ジョブを２台のプリントサーバ２００-1，２００-2からプリンタ３００に送信して印刷の実行を指示する。このときプリンタ３００の印刷処理部３１Ｄでは、主担当のプリントサーバ２００-1から送られてくる印刷ジョブを受信しながら、当該印刷ジョブに従って１ページ目から印刷を実行する。
【０１３４】
その後、印刷を実行中（印刷ジョブの送信中）である主担当のプリントサーバ２００-1において障害が発生し、プリンタ３００において主担当のプリントサーバ２００-1からの印刷ジョブの受信が中断された場合、印刷処理部３１Ｄは、副担当のプリントサーバ２００-2からも同時に受信中の印刷ジョブに従って、中断したページの続きのページから印刷を続行するようにしている。
【０１３５】
このように構成した第５の実施形態によれば、印刷ジョブを送信中である主担当のプリントサーバ２００-1で障害が発生した場合でも、副担当のプリントサーバ２００-2からの印刷ジョブは引き続きプリンタ３００に届くので、プリンタ３００では印刷を継続することができる。このように、主担当のプリントサーバ２００-1で障害が発生した時点で印刷ジョブを再構築する必要がなく、プリンタ３００側でページの破棄（スキップ）を行う必要もないので、印刷を停止することなく継続することができるとともに、２重印刷を回避することができる。
【０１３６】
なお、上記第１〜第５の実施形態では、クライアント端末１００が印刷ジョブの投入先を決定する例について説明したが、本発明はこれに限定されない。例えば、クライアント端末１００とｎ台のプリントサーバ２００との間に、プリントサーバ２００の負荷状況を監視する端末を設け、この端末において印刷ジョブの投入先を決定するようにしてもよい。
【０１３７】
また、上記第２の実施形態では、クライアント端末１００で印刷の実行を指示するときに、どのプリンタ３００を使用するのかを同時に指示する例について説明したが、本発明はこれに限定されない。例えば、印刷実行の指示を開始する際に、その時点で印刷未実行のプリンタ３００を特定して印刷実行を指示するようにしてもよい。
【０１３８】
また、上記第３〜第５の実施形態では、プリントサーバ２００のみをクラスタ化する例について説明したが、第２の実施形態と同様に、プリンタ３００もさらにクラスタ化するようにしてもよい。また、上記第５の実施形態では、プリンタ３００に問い合わせて取得した印刷のステータス情報を２台のプリントサーバ２００-1，２００-2で共有する例について説明したが、ステータス情報を共有することは必須ではない。
【０１３９】
その他、上記第１〜第５の実施形態は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその要旨、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【０１４０】
１２  印刷ジョブ投入部
２２，２２Ａ，２２Ｂ，２２Ｃ，２２Ｄ  印刷実行制御部
２３，２３Ａ  ステータス情報共有管理部
２４  ステータス情報記憶部
２５  サーバ障害発生検出部
２６  プリンタ障害発生検出部
３１，３１Ｂ，３１Ｄ  印刷処理部
３２  ステータス情報管理部
１００  クライアント端末
２００  プリントサーバ
３００  プリンタ
【図１】
2015138405.tif 000003
【図２】
2015138405.tif 000004
【図３】
2015138405.tif 000005
【図４】
2015138405.tif 000006
【図５】
2015138405.tif 000007
【図６】
2015138405.tif 000008
【図７】
2015138405.tif 000009
【図８】
2015138405.tif 000010
【図９】
2015138405.tif 000011
【図１０】
2015138405.tif 000012
【図１１】
2015138405.tif 000013