(57)【要約】【課題】Ｌ４ロードバランサーを経由するデータ転送の遅延低減に有用な転送制御を実現する。【解決手段】情報機器は、クライアントからのサーバーに対するリクエストのＬ４ロードバランサーへの送信におけるデータ転送速度の推移を監視し、データ転送速度が通常時のデータ転送速度よりも小さい閾値速度以下になったときに、送信を開始していないリクエストについての送信を保留し、Ｌ４ロードバランサーにおけるパーシステンス継続時間以上の長さの設定時間が経過した後に送信を再開する。【選択図】図２
2014170379.tif 000002
【特許請求の範囲】
【請求項１】
ロードバランサーと通信する情報機器であって、
クライアントからのサーバーに対するリクエストを前記ロードバランサーに送信する送信部と、
前記送信部によって前記ロードバランサーへの前記リクエストの送信が行なわれている期間中に、当該送信におけるデータ転送速度を周期的に取得する取得部と、
前記取得部によって取得されたデータ転送速度が通常時のデータ転送速度よりも小さい予め設定された閾値速度以下であるときに、送信を開始していないリクエストについての送信を前記送信部に保留させる保留指示部と、
前記保留指示部によって前記送信部に対して保留が指示されたときに行われていた前記リクエストの送信が終了してから前記ロードバランサーにおけるパーシステンス継続時間以上の長さの予め設定された設定時間が経過した後に、前記送信部に前記送信の保留を解除させて前記ロードバランサーへの送信を再開させる再開指示部と、を備える
ことを特徴とする情報機器。
【請求項２】
前記送信部による送信の対象となるリクエストをスプールするスプーラーと、
前記取得されたデータ転送速度が前記閾値速度以下であるときに、前記スプーラーによってスプールされている前記リクエストのうちの送信を開始していないリクエストを当該取得されたデータ転送速度で送信する場合における送信の開始から終了までの時間である第１の推定所要時間、および当該リクエストを前記通常時のデータ転送速度で送信する場合における送信の開始から終了までの時間である第２の推定所要時間と前記設定時間との合計時間を算出する算出部とを、さらに備え、
前記保留指示部は、算出された前記合計時間が前記第１の推定所要時間よりも短い場合に、送信を開始していない前記リクエストの送信を前記送信部に保留させ、算出された前記合計時間が前記第１の推定所要時間以上である場合には、前記送信部に対して当該リクエストの送信の保留を指示しない
請求項１記載の情報機器。
【請求項３】
ロードバランサーと通信する情報機器において実行されるコンピュータープログラムであって、
前記情報機器が有するコンピューターに、
クライアントからのサーバーに対するリクエストを前記ロードバランサーに送信する処理と、
前記ロードバランサーへの前記リクエストの送信が行なわれている期間中に、当該送信におけるデータ転送速度を周期的に取得する処理と、
取得されたデータ転送速度が通常時のデータ転送速度よりも小さい予め設定された閾値速度以下であるときに、送信を開始していないリクエストについての送信を保留する処理と、
前記送信を開始していないリクエストについての送信を保留したときに行われていた前記リクエストの送信が終了してから予め設定され設定時間が経過した後に、前記送信の保留を解除して前記ロードバランサーへの送信を再開する処理と、を実行させる
ことを特徴とするコンピュータープログラム。
【請求項４】
前記コンピューターに、
送信の対象となるリクエストをスプールする処理、および
前記取得されたデータ転送速度が前記閾値速度以下であるときに、スプールされている前記リクエストのうちの送信を開始していないリクエストを、当該取得されたデータ転送速度で送信する場合における送信の開始から終了までの時間である第１の推定所要時間、および当該リクエストを前記通常時のデータ転送速度で送信する場合における送信の開始から終了までの時間である第２の推定所要時間と前記設定時間との合計時間を算出する処理を、さらに実行させるとともに、
送信を保留する前記処理として、算出された前記合計時間が前記第１の推定所要時間よりも短い場合に、送信を開始していない前記リクエストについての送信を保留し、算出された前記合計時間が前記第１の推定所要時間以上である場合には、送信を保留しない処理を実行させる
請求項３記載のコンピュータープログラム。
【請求項５】
複数のクライアント端末のそれぞれから印刷ジョブを受け取る第１サーバー、印刷装置に印刷ジョブを送信する複数の第２サーバー、および前記第１サーバーから送信される複数の印刷ジョブを前記複数の第２サーバーに割り振るロードバランサーを備える印刷システムであって、
前記ロードバランサーは、前記複数の第２サーバーのうちの割振り先に定めた第２サーバーへパーシステンス継続時間より長く途絶えることなく前記第１サーバーから印刷ジョブが送信されている状態では割振り先の設定を維持し、前記パーシステンス継続時間にわたって前記第１サーバーからの印刷ジョブの送信が途絶えたときに割振り先の設定の維持を解除するパーシステンス機能を有しており、
前記第１サーバーは、
前記複数のクライアント端末から受け取った印刷ジョブを前記ロードバランサーに送信する送信部と、
前記送信部によって前記ロードバランサーへの前記印刷ジョブの送信が行なわれている期間中に、当該送信におけるデータ転送速度を周期的に取得する取得部と、
前記取得部によって取得されたデータ転送速度が通常時のデータ転送速度よりも小さい予め設定された閾値速度以下であるときに、送信を開始していない印刷ジョブについての送信を前記送信部に保留させる保留指示部と、
前記保留指示部によって前記送信部に対して保留が指示されたときに行われていた前記印刷ジョブの送信が終了してから前記ロードバランサーにおける前記パーシステンス継続時間以上の長さの予め設定された設定時間が経過した後に、前記送信部に前記送信の保留を解除させて前記ロードバランサーへの送信を再開させる再開指示部と、を備える
ことを特徴とする印刷システム。
【請求項６】
前記第１サーバーは、
前記送信部による送信の対象となる印刷ジョブをスプールするスプーラーと、
前記取得されたデータ転送速度が前記閾値速度以下であるときに、前記スプーラーによってスプールされている前記印刷ジョブのうちの送信を開始していない印刷ジョブを、当該取得されたデータ転送速度で送信する場合における送信の開始から終了までの時間である第１の推定所要時間、および当該印刷ジョブを前記通常時のデータ転送速度で送信する場合における送信の開始から終了までの時間である第２の推定所要時間と前記設定時間との合計時間を算出する算出部とを、さらに備え、
前記保留指示部は、算出された前記合計時間が前記第１の推定所要時間よりも短い場合に、送信を開始していない前記印刷ジョブの送信を前記送信部に保留させ、算出された前記合計時間が算出された前記第１の推定所要時間以上である場合には、前記送信部に対して当該印刷ジョブの送信の保留を指示しない
請求項５記載の印刷システム。
【請求項７】
転送先を選択するロードバランサーを用いて第１情報機器から複数の第２情報機器のいずれかへデータを転送するデータ転送方法であって、
前記ロードバランサーが転送先の選択動作として、前記第１の情報機器を特定する識別情報に基づいて負荷分散を行なう場合において、
前記第１の情報機器が、前記ロードバランサーへの前記データの送信におけるデータ転送速度の推移を監視し、前記データ転送速度が通常時のデータ転送速度よりも小さい閾値速度以下になったときに転送を中断し、前記ロードバランサーが転送先を再選択する状態になる時間が経過した後に転送を再開する
ことを特徴とするデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロードバランサーを経由させてデータを転送する技術に関する。
【背景技術】
【０００２】
複数のサーバーを備えるクライアントサーバーシステムにおいて、複数のサーバーに対して負荷を分散させるロードバランサー（負荷分散装置）が用いられている。例えば、特許文献１において、負荷分散装置に対するクライアントからのアクセスを監視し、アクセスの増減に応じて稼動させるサーバーの台数を増減するクライアントサーバーシステムが開示されている。
【０００３】
ロードバランサーを備える印刷システムにおけるジョブの制御に関する先行技術がある。特許文献２に記載された配信印刷システムでは、印刷を要求するジョブがロードバランサーによって複数のプリントサーバーのいずれかに割り当てられる。ジョブが割り当てられたプリントサーバーは当該ジョブが指定するプリンターに当該ジョブを投入する。その際、ジョブを投入したプリントサーバーがデータベースに登録される。これにより、ジョブの実行中止やプリンターの変更といったジョブコントロールを、複数のプリントサーバーのうちのジョブを投入したプリントサーバーに対して指示することが可能になる。
【０００４】
ロードバランサーの一種として、いわゆるＬ４ロードバランサーがある。Ｌ４ロードバランサーは、ＯＳＩ参照モデル(OSI: Open Systems Interconnection)における第４層（レイヤ４）であるトランスポート層までの情報に基づいて負荷分散を行なう。トランスポート層は、ＴＣＰ／ＩＰ(Transmission Control Protocol/Internet Protocol)を用いるネットワークにおいてＴＣＰとＵＤＰ(User Datagram Protocol)とが対応する層である。つまり、Ｌ４ロードバランサーは、受信したパケットを、トランスポート層のプロトコル（ＴＣＰ／ＵＤＰ）と第３層であるネットワーク層におけるＩＰアドレスとによって判別する。Ｌ４ロードバランサーには、広く知られる他の一種であるＬ７ロードバランサーとは違ってアプリケーション層の情報を参照しないことから、Ｌ７ロードバランサーと比べて分散性能が高いという利点がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−１６３２４１号公報
【特許文献２】特開２００９−１５１４６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述のＬ４ロードバランサーを用いるネットワークでは、送信元に固有のＩＰアドレスでパケットが判別されるので、パーシステンス継続時間内に受信した同じ送信元からのパケットの転送先を固定化するパーシステンス機能に起因する負荷の集中が起こり得る。例えば、１台の情報機器から多数のリクエストが順次に連続的にＬ４ロードバランサーを介してサーバークラスタへ送信される場合において、クライアントの同異にかかわらず全てのリクエストがサーバークラスタ内の一つのサーバーに割り当てられてしまう。通常、サーバーにおける処理速度は負荷が過度に集中すると大幅に低下する。サーバーの処理速度の低下は、サーバーへのパケットの転送の遅延を招く。
【０００７】
本発明は、このような事情に鑑み、Ｌ４ロードバランサーを経由するデータ転送の遅延低減に有用な転送制御を実現することを目的としている。
【課題を解決するための手段】
【０００８】
上記目的を達成する装置は、ロードバランサーと通信する情報機器であって、クライアントからのサーバーに対するリクエストを前記ロードバランサーに送信する送信部と、前記送信部によって前記ロードバランサーへの前記リクエストの送信が行なわれている期間中に、当該送信におけるデータ転送速度を周期的に取得する取得部と、前記取得部によって取得されたデータ転送速度が通常時のデータ転送速度よりも小さい予め設定された閾値速度以下であるときに、送信を開始していないリクエストについての送信を前記送信部に保留させる保留指示部と、前記保留指示部によって前記送信部に対して保留が指示されたときに行われていた前記リクエストの送信が終了してから前記ロードバランサーにおけるパーシステンス継続時間以上の長さの予め設定された設定時間が経過した後に、前記送信部に前記送信の保留を解除させて前記ロードバランサーへの送信を再開させる再開指示部と、を備える。
【発明の効果】
【０００９】
本発明によれば、Ｌ４ロードバランサーを使用する負荷分散環境でのデータ転送の遅延低減に有用な転送制御を実現することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態に係る印刷システムの構成を示す図である。
【図２】プリントサーバーにおけるジョブ転送制御を示す図である。
【図３】プリントサーバーにおけるジョブ転送制御によって生じるロードバランサーによる転送先の切替えの例を示す図である。
【図４】プリントサーバーのハードウェア構成を示す図である。
【図５】プリントサーバーの機能構成を示す図である。
【図６】プリントサーバーの動作の概要を示すフローチャートである。
【図７】プリントサーバーにおいて実行される転送処理ルーチンのフローチャートである。
【図８】プリントサーバーにおける転送モニターの保留指示動作を示すフローチャートである。
【発明を実施するための形態】
【００１１】
図１に負荷分散環境の一例としてネットワーク上の複数の機器から構成される印刷システム１が示されている。印刷システム１は、いわゆるプルプリントシステムであり、保存されているジョブ（印刷ジョブ）を印刷装置が保存先から取り込んで実行する。印刷システム１では、負荷分散に関わる第１情報機器としてのプリントサーバー１０からロードバランサー２０を経由して第２情報機器としての複数の管理サーバー３１，３２，３３のいずれかへジョブが転送される。
【００１２】
プルプリントに際して、まず、パーソナルコンピューターやスマートフォンといったクライアント端末５，６，７，８のユーザーがドキュメントの印刷を指示する。指示を受けたクライアント端末５，６，７，８は、印刷を要求する所定データ形式のジョブを生成してプリントサーバー１０に送る。ジョブにはユーザー情報が含まれる。ジョブがドキュメントデータ（印刷データ）を含んでいてもよいし、予めドキュメントサーバーに保存されているドキュメントを印刷対象として指定する情報をドキュメントデータの代わりに含んでいてもよい。
【００１３】
プリントサーバー１０は、クライアント端末５，６，７，８から受け取ったジョブをいったんスプール１１０としてのメモリに蓄え、サーバー３０を宛先とするパケットに変換してロードバランサー２０に送信する。ここでのサーバー３０は、複数の管理サーバー３１，３２，３３を実体とする仮想のサーバーである。ジョブの送信に際して規定数以下の複数のジョブを一括に扱うことが可能である。
【００１４】
ロードバランサー２０は、プリントサーバー１０から受信したパケットを、複数の管理サーバー３１，３２，３３のうちから負荷分散アルゴリズムに従って選択した一つに転送する。負荷分散アルゴリズムは最も負荷の小さいサーバーにリクエストを割り振る方式（例えば最少接続方式）である。ロードバランサー２０における転送先の選択によって、複数の管理サーバー３１，３２，３３のいずれかにジョブが割り振られる。
【００１５】
管理サーバー３１，３２，３３は、それぞれに割り振られたジョブに対する認証処理を行なう。そして、管理サーバー３１，３２，３３は、適正であると判別したジョブをジョブサーバー３５に保存させる。管理サーバー３１，３２，３３は、ジョブサーバー３５における保存状況を示す情報を共有する。
【００１６】
ジョブが保存された後、クライアント端末５，６，７，８において印刷を指示したユーザーは、複数の印刷装置４１，４２，４３に印刷を実行させることができる。ユーザーは印刷装置４１，４２，４３のいずれかを任意に選び、選んだ印刷装置を操作して自己に関わるジョブの一覧表示を指示する。指示を受けた印刷装置は、ロードバランサー４０を介して接続されるサーバー３０に対して、保存されているジョブを問い合わせる。問合せは、ロードバランサー４０が選択した管理サーバー３１，３２，３３のいずれかに届く。問合せを受けた管理サーバーから提供されるジョブ情報を、問合せ元の印刷装置が表示する。ユーザーが実行させたいジョブを指定して印刷の実行を指示すると、印刷装置はサーバー３０を介してジョブサーバー３５からジョブを取得し、取得したジョブが指定するドキュメントを印刷する。印刷装置４１，４２，４３はＭＦＰ(Multi-functional Peripheral)またはネットワークプリンティングの可能な他の画像形成装置であればよい。
【００１７】
このような印刷システム１において、ロードバランサー２０としてＬ４ロードバランサーが使用される。ただし、Ｌ４スイッチ専用機である必要はなく、ロードバランサー２０はＬ４スイッチモードとＬ７スイッチモードとの切替えが可能な装置であってもよい。
【００１８】
ロードバランサー２０は、ＯＳＩ参照モデルにおける第４層以下の情報に基づいて、プリントサーバー１０からのパケットの転送先（管理サーバー３１，３２，３３のいずれか）を選択する。第４層以下の情報とは、第４層（トランスポート層）のプロトコルによって認識される情報（例えばポート番号）および第３層（ネットワーク層）のプロトコルによって認識される情報（例えばＩＰアドレス）である。このことは、プリントサーバー１０から送信されるジョブについて、それを生成したクライアント端末５，６，７，８が区別されないことを意味する。言い換えれば、ジョブをサーバー３０に対するリクエストとしてみたとき、ロードバランサー２０は全てのリクエストについて、「サーバー３０に対するクライアントがプリントサーバー１０である」と認識する。
【００１９】
そして、このロードバランサー２０にはパーシステンス機能が備わっている。ここでいうパーシステンス機能とは、指定されているパーシステンス継続時間内にクライアントが同一である複数のリクエストが順に入力されたときに、先に入力されたリクエストに対して選択した転送先を、後に入力されたリクエストに対しても選択する機能である。つまり、ロードバランサー２０は、パーシステンス継続時間内の同一のクライアントからのリクエストに対して転送先を固定化する。
【００２０】
ロードバランサー２０へジョブを送信するプリントサーバー１０は、送信タイミングを特徴付ける動作をする転送モニター１２０を有している。転送モニター１２０は、ジョブが転送されるサーバー３０における負荷に依存するデータ転送速度（データ転送率ともいう）を監視する。データ転送速度が低下したとき、転送モニター１２０は後述のようにプリントサーバー１０に送信を中断させ、それによってロードバランサー２０に転送先の固定を解除させる。
【００２１】
図２はプリントサーバー１０におけるジョブ転送制御を示している。図２の上段部に複数のジョブ（図ではＪＯＢ−１〜１２と記されている）の転送期間を示すタイミングチャートが描かれている。図２の中段部のグラフは、ロードバランサー２０において転送先が固定された状態での転送先のサーバーにおける負荷の推移を示し、下段部のグラフはデータ転送速度Ｒの推移を示している。
【００２２】
時刻ｔ１において、三つのジョブ（ＪＯＢ−１〜３）を一括したジョブグループ９１の転送、すなわち各ジョブに対応したパケットの送信が開始されている。ジョブグループ９１の三つのジョブは、例えば同じクライアント端末から連続的に受け取ったことから転送に際して一括に扱われる。ジョブグループ９１の転送途中の時刻ｔ２において、二つのジョブを一括したジョブグループ９２の転送が開始されている。例示では、時刻ｔ１から時刻ｔ２までの時間がパーシステンス継続時間よりも短いので、ジョブグループ９２は先のジョブグループ９１と同じ転送先へ転送される。これにより、プリントサーバー１０は、ロードバランサー３０が選択した管理サーバー３１，３２，３３のいずれかに合計五つのジョブを並行して送信することになる。
【００２３】
時刻ｔ３において四つのジョブからなるジョブグループ９３の転送が開始され、さらに時刻ｔ４において一つのジョブ９４の転送が開始されている。時刻ｔ４では先に開始された転送が継続中であるので、転送先の管理サーバーは合計１０個のジョブ（ＪＯＢ−１〜１０）の受信処理を行なうことになる。
【００２４】
並行受信するジョブの数が増えるにつれて、転送先の管理サーバーに加わる付加が増大する。本例では、管理サーバー３１，３２，３３のそれぞれの処理能力で決まる所定量よりも負荷が小さいときにはデータ転送速度Ｒが通常時のデータ転送速度Ｒｓにほぼ保たれ、負荷が所定値を超えてさらに増大するにつれてデータ転送速度Ｒが低下する。
【００２５】
データ転送速度Ｒが通常時のデータ転送速度Ｒｓから閾値速度Ｒｔｈまで低下した時刻ｔ５において、この時点でスプールされておりかつ転送が開始されていないジョブ（これを「未転送開始ジョブ」と呼称する）９５，９６について、プリントサーバー１０は必要に応じて転送を保留する。保留が必要な場合とは、保留をすることによって未転送開始ジョブ９５，９６の転送終了時期が早くなると予測される場合である。保留の要否は未転送開始ジョブ９５，９６のデータ量に依存する。なお、保留中であってもパケットの生成といった送信準備を進めることはできる。
【００２６】
転送先の管理サーバーでは、ジョブの受信が終了した後、ジョブを認証したり、ジョブサーバーへ転送したりというようにジョブの受信に付随する処理が行なわれる。また、印刷装置４１，４２，４３からのアクセスに応答する場合もある。したがって、ジョブの受信が終了したとしても直ちに負荷が低下するとは限らず、高負荷状態の続く場合がある。
【００２７】
プリントサーバー１０は、未転送開始ジョブ９５，９６の転送を保留する場合、保留の開始する時点で転送途中である全てのジョブの転送が終了する時刻ｔ６から保留設定時間Ｔ２が経過する時刻ｔ７まで保留状態を維持する。そして、時刻ｔ７で保留を解除し、未転送開始ジョブ９５，９６の転送を開始する。さらにその後、時刻ｔ５以降にスプールされたジョブの転送を開始する。
【００２８】
保留設定時間Ｔ２は、ロードバランサー３０において設定されたパーシステンス継続時間（Ｔ１）と同じかまたは適切なマージンをパーシステンス継続時間に加算した長さの時間である。時刻ｔ６から保留設定時間Ｔ２にわたってプリントサーバー１０からの送信が途絶えることにより、ロードバランサー３０において転送先の固定が解除される。すなわち、ロードバランサー３０がその後のプリントサーバー１０からのアクセスに対して改めて転送先を選択する状態になる。
【００２９】
ロードバランサー３０が改めて転送先を選択するとき、以前の最後に選択した管理サーバー（例えば管理サーバー３１）の負荷が他の管理サーバー（例えば管理サーバー３２，３３）の負荷よりも小さい場合、以前に続いて再び管理サーバー３１が転送先として選択される。管理サーバー３１の負荷よりも他の管理サーバー３２，３３の一方または両方の負荷が小さい場合には、転送先が切り替わる。いずれにしても、改めて転送先が選択されることによって、転送を保留する直前と比べて転送先の負荷が小さくなり得る。低負荷状態の管理サーバーが配送先になれば、データ転送速度の低下した高負荷状態の管理サーバーに未転送開始ジョブ９５，９６を転送するよりも早く未転送開始ジョブ９５，９６の転送を終了することができる。
【００３０】
図３において、ロードバランサー（ＬＢ）２０による転送先の切替えが模式的に示されている。ジョブグループ９２に対してロードバランサー２０が選択した転送先は管理サーバー３１である。ジョブグループ９２に続いてパーシステンス継続時間Ｔ１以内の時間間隔でプリントサーバー１０から送信されたジョブグループ９３も、管理サーバー３１に転送される。同様にジョブ９４も、管理サーバー３１に転送される。ところが、ジョブ９４の転送終了からパーシステンス継続時間Ｔ１が経過した後に送信されたジョブグループ９７は、ジョブ９４の転送先の管理サーバー３１とは異なる管理サーバー３３に転送される。
【００３１】
以下、プリントサーバー１０の構成および動作をさらに詳しく説明する。
【００３２】
図４はプリントサーバー１０のハードウェア構成を示している。プリントサーバー１０は、制御プログラムや各種アプリケーションを実行するコンピューターとしてのＣＰＵ(Central Processing Unit)１２、制御プログラムを記憶するＲＯＭ（Read Only Memory）１３、プログラム実行のワークエリアとされるＲＡＭ（Random Access Memory）１４を有する。ストレージ１５はハードディスクドライブまたは他の大容量不揮発性の記憶デバイスであり、プログラム、各種データ、受信したジョブなどを記憶する。通信インタフェース１６はプリントサーバー１０をネットワークに接続する。リムーバブルメモリドライブ１７は、例えばリムーバブルメモリからのプログラムのインストールに用いられる。
【００３３】
図５はプリントサーバー１０の機能構成を示している。プリントサーバー１０は、スプーラー１０１、送信部１０２、および転送モニター１２０を有している。これらの構成要素は、ＣＰＵ１２が所定の制御プログラムを実行することによって実現される機能要素である。
【００３４】
スプーラー１０１は、通信インタフェース１６が受信したクライアント端末５，５，６，７からのジョブを所定のメモリ（図１のスプール１１０）に格納し、これによって一時的に保存されるジョブを管理する。送信部１０２による送信の進行に合わせて、スプーラー１０１は順次にジョブを送信部１０２に引き渡す。
【００３５】
送信部１０２は、通信インタフェース１６を介して接続されるロードバランサー２０に送信すべきジョブに対応するパケットを送信する。送信されたパケットはロードバランサー２０からロードバランサー２０が選択する転送先に転送される。送信部１０２は、未転送開始ジョブについてのパケットを通信インタフェース１６に送る送信動作の開始を、転送モニター１２０からの保留指示に従って保留する。保留後に転送モニター１２０から再開が指示されると、送信部１０２は未転送開始ジョブの送信を開始する。
【００３６】
動作モニター１２０は、データ転送速度Ｒを取得する取得部１２２、送信部１０２に保留指示を与える保留指示部１２４、保留指示に関わる時間を算出する算出部１２６、および送信部１０２に再開指示を与える再開指示部１２８を備える。
【００３７】
取得部１２２は、送信部１０２から通知される送信動作のステータスによって示されるデータ転送が行なわれている期間中に、通信インタフェース１６における送信のデータ転送速度Ｒを周期的に取得する。そして、取得するごとにデータ転送速度Ｒを保留指示部１２４に通知する。
【００３８】
データ転送速度Ｒの取得には、ベンチマークテストの手法を用いて取得部１２２がデータ転送速度Ｒを算出する形態と、ネットワーク使用状況を監視するプログラムが別途に搭載されている場合にそのプログラムからデータ転送速度Ｒを取り込む形態とがある。取得の周期は、パーシステンス継続時間Ｔ１に応じて設定される。例えば、パーシステンス継続時間Ｔ１が１０秒である場合、その百分の一から十分の一である０．１〜１秒の範囲内の周期を設定すればよい。データ転送速度Ｒを算出する場合、取得の周期に相応する時間内の伝送ビット数を周期で除した商をデータ転送速度Ｒとしてもよいし、周期に相応する時間を等分割した分割時間ごとのデータ転送速度の平均値をデータ転送速度Ｒとしてもよい。
【００３９】
保留指示部１２４は、取得部１２２から通知されたデータ転送速度Ｒが閾値以下であるときに（図２参照）、算出部１２６に算出指示を与える。指示を受けた算出部１２６は、推定所要時間ＴＸおよび合計時間ＴＹを算出して保留指示部１２４に通知する。推定所要時間ＴＸは、未転送開始ジョブをデータ転送速度Ｒで送信すると仮定した場合における送信の開始から終了までの時間である。合計時間ＴＹは、通常時のデータ転送速度Ｒｓで未転送開始ジョブを送信すると仮定した場合における送信の開始から終了までの時間である推定所要時間ＴＸｓに保留設定時間Ｔ２を加算した時間である。保留指示部１２４は、合計時間ＴＹが推定所要時間ＴＸよりも短い場合に、送信部１０２に保留指示を与える。
【００４０】
再開指示部１２８には保留指示部１２４から保留指示を送信部１０２に与えたことが通知される。再開指示部１２８は、未転送開始ジョブの送信が保留されたときに転送途中であったジョブの転送が終了してから保留設定時間Ｔ２が経過した時点で、送信部１０２に再開指示を与える。
【００４１】
図６のフローチャートはプリントサーバー１０の動作の概要を示している。プリントサーバー１０は、クライアント端末５，６，７，８からのジョブの受信（Ｓ０１）、ジョブを順序良く転送するためのスプール処理（Ｓ０２）、およびジョブをサーバー３０へ送信する転送処理（Ｓ０３）を繰り返し実行する。
【００４２】
図７は転送処理ルーチンのフローチャートである。
【００４３】
送信部１０２はスプーラー１０１と連携して次の転送の対象とするジョブを決定する（Ｓ１１）。このとき、複数のジョブを一括に対象とする場合がある。続いて、送信部１０２は、対象に決めたジョブの転送を開始し（Ｓ１２）、転送モニター１２０にステータスとして「開始」を通知する（Ｓ１３）。すなわち、データ転送速度Ｒを監視すべきであることを知らせる。
【００４４】
保留指示の有無がチェックされ（Ｓ１４）、保留指示が無ければ（Ｓ１４でＮＯ）、フローはステップＳ２１へ進む。転送中のジョブのパケットを送り出す送信処理が行なわれ（Ｓ２１）、未転送のジョブの有無がチェックされる（Ｓ２２）。未転送のジョブが有れば、フローはステップＳ１１に戻る。未転送のジョブが無ければ、転送が終了した時点で転送モニター１２０にステータスとして「終了」が通知され（Ｓ２３）、フローは図６のメインルーチンへ戻る。
【００４５】
一方、保留指示があった場合（Ｓ１４でＹＥＳ）、送信部１０２は、転送途中のジョブがなくなるまで、転送中のジョブのパケットを送り出す送信処理を続ける（Ｓ１５、Ｓ１６）。転送途中であったジョブのパケットの送信が終了すると（Ｓ１６でＹＥＳ）、送信部１０２は、転送モニター１２０にステータスとして「保留」を通知する（Ｓ１７）。この通知を受けて、転送モニター１２０の再開指示部１２８が保留設定時間Ｔ２を計時するための保留タイマーをセットする（Ｓ１８）。保留タイマーの計時が終了すると（Ｓ１９でＹＥＳ）、再開指示部１２８が送信部１０２に再開指示を与える（Ｓ２０）。フローはステップＳ１１に戻り、未転送のジョブの転送が開始される。
【００４６】
図８は転送モニター１２０の保留指示動作を示すフローチャートである。
【００４７】
取得部１２２は送信部１０２がジョブの転送を開始するのを待つ（Ｓ３１）。転送が開始されると（Ｓ３１でＹＥＳ）、取得部１２２はデータ転送速度Ｒを取得して保持指示部１２４に通知する（Ｓ３２）。保持指示部１２４によってデータ転送速度Ｒが閾値以下であるかどうかが判定される（Ｓ３３）。データ転送速度Ｒが閾値より大きい場合（Ｓ３３でＮＯ）、フローはステップＳ３１へ戻る。転送中においてデータ転送速度Ｒの取得と閾値との比較とが繰り返されることになる。
【００４８】
データ転送速度Ｒが閾値以下であった場合（Ｓ３３でＹＥＳ）、フローはステップ３４へ進む。ここで、具体例として、通常データ転送速度Ｒｓを「１Ｇｂｐｓ（１ギガビット毎秒）」とし、閾値を「０．６Ｇｂｐｓ」とし、取得された最新のデータ転送速度Ｒを「０．５６Ｇｂｐｓ」とする。
【００４９】
ステップＳ３４において、保持指示部１２４から算出指示を受けた算出部１２６が、スプーラー１０１からのジョブ情報に基づいて、未転送開始ジョブのデータ量ＤＱを算出する。図２の例のように未転送開始ジョブ９５，９６が複数であれば、各ジョブのデータ量の総和をデータ量ＤＱとして算出する。具体例として、データ量ＤＱの算出値を「１６０Ｇビット」とする。
【００５０】
続いて、算出部１２６は、上述の推定所要時間ＴＸを算出する（Ｓ３５）。具体例ではデータ量ＤＱが「１６０Ｇビット」でデータ転送速度Ｒが「０．５６Ｇｂｐｓ」であるので、推定所要時間ＴＸは次の式のとおり約２８０秒になる。
ＴＸ＝１６０[Gbit]／０．５６[Gbit/sec.]≒２８０[sec.]
さらに続いて、算出部１２６は、上述の推定所要時間ＴＸｓおよび合計時間ＴＹを算出する(Ｓ３６、Ｓ３７)。具体例では、通常データ転送速度Ｒｓが「１Ｇｂｐｓ」であるので、推定所要時間ＴＸｓは約１６０秒になる。また、保留設定時間Ｔ２をパーシステンス継続時間Ｔ１と同じく「１０秒」とし、推定所要時間ＴＸｓを１６０秒にみなすと、合計時間ＴＹは１７０秒となる。
ＴＸｓ＝１６０[Gbit]／１[Gbit/sec.]≒１６０[sec.]
ＴＹ＝ＴＸｓ＋Ｔ２＝１６０[sec.]＋１０[sec.]＝１７０[sec.]
算出された推定所要時間ＴＸと合計時間ＴＹとを保留指示部１２４が比較する（Ｓ３８）。具体例では合計時間ＴＹが推定所要時間ＴＸよりも短い（１７０秒＜２８０秒）。この例のように合計時間ＴＹが推定所要時間ＴＸよりも短い場合（Ｓ３８でＹＥＳ）、保留指示部１２４は送信部１０２に未転送開始ジョブの転送開始を保留させる（Ｓ３９）。その後、フローはステップＳ３１に戻る。
【００５１】
合計時間ＴＹが推定所要時間ＴＸよりも長い場合（Ｓ３８でＮＯ）、フローは直ちにステップＳ３１に戻る。この場合、未転送開始ジョブの転送開始は保留されず、パケットの準備が整って転送開始が可能になった時点で未転送開始ジョブの転送が開始される。転送開始を保留しないのは、保留によって転送の開始が遅れるので、たとえ通常データ転送速度Ｒｓで転送することができたとしても、データ転送速度Ｒの低い状態で転送を行なう方が未転送開始ジョブの転送を早期に終えることができるからである。
【００５２】
以上の実施形態によれば、ロードバランサー２０が管理サーバー３１，３２，３３のうちの最も負荷の小さい一つを転送先に選択するので、全ての管理サーバー３１，３２，３３が過負荷状態でない限り、転送先が切り替わることによって通常時のデータ転送速度Ｒｓでの転送が可能になる。
【００５３】
上述の実施形態において、ロードバランサー２０の負荷分散アルゴリズムは、必ずしも転送先候補のうちの最も負荷の小さい一つを選択するアルゴリズムである必要はない。選択ごとに転送先を変更するアルゴリズムであってもよい。転送先が切り替わりさえすればデータ転送速度の低下した状態からそうでない状態へ通信環境の好転する可能性がある。
【００５４】
印刷システム１のネットワーク構成は適宜変更することができる。プリントサーバー１０に接続されるクライアント端末５，６，７，８の個数は図１の例示における「４」に限らない。ロードバランサー２０にジョブを送信する機器としてプリントサーバー１０および他の機器を接続してもよい。ロードバランサー２０がジョブを割り当てる管理サーバー３１，３２，３３の個数は例示の「３」に限らない。
【符号の説明】
【００５５】
１    印刷システム
５，６，７，８    クライアント端末（クライアント）
１０    プリントサーバー（情報機器、第１情報機器、第１サーバー）
２０    ロードバランサー
３０    サーバー
３１，３２，３３    管理サーバー（第２情報機器、第２サーバー）
９１，９２，９３，９７    ジョブグループ（リクエスト）
９４    ジョブ（リクエスト）
９５，９６    未転送開始ジョブ（送信を開始していないリクエスト）
１０１    スプーラー
１０２    送信部
Ｒ    データ転送速度
Ｒｓ    通常時のデータ転送速度
Ｒｔｈ    閾値速度
１２２    取得部
１２４    保留指示部
１２６    算出部
１２８    再開指示部
Ｔ１    パーシステンス継続時間
Ｔ２    保留設定時間（設定時間）
ＴＸ    推定所要時間（第１の推定所要時間）
ＴＸｓ    推定所要時間（第２の推定所要時間）
ＴＹ    合計時間
４１，４２，４３    印刷装置
【図１】
2014170379.tif 000003
【図２】
2014170379.tif 000004
【図３】
2014170379.tif 000005
【図４】
2014170379.tif 000006
【図５】
2014170379.tif 000007
【図６】
2014170379.tif 000008
【図７】
2014170379.tif 000009
【図８】
2014170379.tif 000010