(57)【要約】 【課題】  本発明に係る負荷分散装置は、処理を行う情報処理装置に障害が発生した場合においても、情報処理のための再送処理を行わない負荷分散システムを提供することを目的とする。【解決手段】  本発明に係る負荷分散装置は、クライアント端末から依頼があった処理を複数の情報処理装置に供給する負荷分散装置において、該複数の情報処理装置の稼動状況を監視する負荷監視手段と、該複数の情報処理装置の稼動状況に応じて、該複数の情報処理装置の中から、処理を実行する情報処理装置を選択する情報処理装置選択手段と、該情報処理装置が実行した処理の処理結果を受信する受信手段と、該受信手段が該処理結果と同一内容の処理結果をすでに受信したか否かを判断し、同一内容の処理結果を未だ受信していない場合には、該受信した処理結果を取得する処理結果判断手段とを有することを特徴とする。【選択図】  図１
2008077428.tif 000002
【特許請求の範囲】
【請求項１】
クライアント端末から依頼があった処理を複数の情報処理装置に供給する負荷分散装置において、
該複数の情報処理装置の稼動状況を監視する負荷監視手段と、
該複数の情報処理装置の稼動状況に応じて、該複数の情報処理装置の中から、処理を実行する情報処理装置を選択する情報処理装置選択手段と、
該情報処理装置が実行した処理の処理結果を受信する受信手段と、
該受信手段が該処理結果と同一内容の処理結果をすでに受信したか否かを判断し、同一内容の処理結果を未だ受信していない場合には、該受信した処理結果を取得する処理結果判断手段と、
を有することを特徴とする負荷分散装置。
【請求項２】
請求項１に記載の負荷分散装置において、
該処理結果判断手段は、該受信手段が同一内容の処理結果をすでに受信している場合には、該受信した処理結果を破棄することを特徴とする負荷分散装置。
【請求項３】
請求項１に記載の負荷分散装置において、
該処理結果判断手段は、同一内容の処理結果を未だ受信していない場合には、該受信した処理結果を取得し、さらに該処理を実行する情報処理装置であって、該処理結果を送信してない情報処理装置に対して該処理の終了を依頼することを特徴とする負荷分散装置。
【請求項４】
クライアント端末から依頼があった処理を複数の情報処理装置に供給する負荷分散方法において、
該複数の情報処理装置の稼動状況を監視する負荷監視ステップと、
該複数の情報装置の稼動状況に応じて、該複数の情報処理装置の中から、処理を実行する情報処理装置を選択する情報処理装置選択ステップと、
該情報処理装置が実行した処理の処理結果を受信する受信ステップと、
該受信ステップにおいて、該処理結果と同一内容の処理結果をすでに受信したか否かを判断し、同一内容の処理結果を未だ受信していない場合には、該受信した処理結果を取得する処理結果判断ステップと、
を有することを特徴とする負荷分散方法。
【請求項５】
クライアント端末から依頼があった処理を情報処理装置に供給し、コンピュータによって実行される負荷分散プログラムであって、
複数の情報処理装置の稼動状況を監視する負荷監視ステップと、
該複数の情報装置の稼動状況に応じて、該複数の情報処理装置の中から、処理を実行する情報処理装置を選択する情報処理装置選択ステップと、
該情報処理装置が実行した処理の処理結果を受信する受信ステップと、
該受信ステップにおいて、該処理結果と同一内容の処理結果をすでに受信したか否かを判断し、同一内容の処理結果を未だ受信していない場合には、該受信した処理結果を取得する処理結果判断ステップと、
を有することを特徴とする負荷分散プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明は、複数の情報処理装置に情報処理を分散する負荷分散装置に関する。
【背景技術】
【０００２】
負荷分散装置は、クライアント端末から依頼があった処理を複数の情報処理装置に分散して、該処理の効率化を図る装置である。
【０００３】
しかしながら、処理を実行する情報処理装置のうち少なくとも１台に障害が発生した場合、障害が発生した情報処理装置は該分割処理を正常に行うことができない。そのため負荷分散装置は、他の情報処理装置に分割処理を再送しなければならず、分割処理が大幅に遅れてしまうといった問題がある。
【０００４】
また処理を負荷分散する技術に関する特許文献として以下のものが存在する。
【特許文献１】特開平８−２３５１３３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明に係る負荷分散装置は、処理を行う情報処理装置に障害が発生した場合においても、情報処理のための再送処理を行わない負荷分散システムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明に係る負荷分散装置は、クライアント端末から依頼があった処理を複数の情報処理装置に供給する負荷分散装置において、該複数の情報処理装置の稼動状況を監視する負荷監視手段と、該複数の情報処理装置の稼動状況に応じて、該複数の情報処理装置の中から、処理を実行する情報処理装置を選択する情報処理装置選択手段と、該情報処理装置が実行した処理の処理結果を受信する受信手段と、該受信手段が該処理結果と同一内容の処理結果をすでに受信したか否かを判断し、同一内容の処理結果を未だ受信していない場合には、該受信した処理結果を取得する処理結果判断手段とを有することを特徴とする。
【０００７】
また本発明に係る負荷分散装置は、該処理結果判断手段は、該受信手段が同一内容の処理結果をすでに受信している場合には、該受信した処理結果を破棄することを特徴とする。
【０００８】
また本発明に係る負荷分散装置は、該処理結果判断手段は、同一内容の処理結果を未だ受信していない場合には、該受信した処理結果を取得し、さらに該処理を実行する情報処理装置であって、該処理結果を送信してない情報処理装置に対して該処理の終了を依頼することを特徴とする。
【０００９】
また本発明に係る負荷分散方法は、クライアント端末から依頼があった処理を複数の情報処理装置に供給する負荷分散方法において、該複数の情報処理装置の稼動状況を監視する負荷監視ステップと、該複数の情報装置の稼動状況に応じて、該複数の情報処理装置の中から、処理を実行する情報処理装置を選択する情報処理装置選択ステップと、該情報処理装置が実行した処理の処理結果を受信する受信ステップと、該受信ステップにおいて、該処理結果と同一内容の処理結果をすでに受信したか否かを判断し、同一内容の処理結果を未だ受信していない場合には、該受信した処理結果を取得する処理結果判断ステップと、を有することを特徴とする。
【００１０】
さらに本発明に係る負荷分散プログラムは、クライアント端末から依頼があった処理を情報処理装置に供給し、コンピュータによって実行される負荷分散プログラムであって、複数の情報処理装置の稼動状況を監視する負荷監視ステップと、該複数の情報装置の稼動状況に応じて、該複数の情報処理装置の中から、処理を実行する情報処理装置を選択する情報処理装置選択ステップと、該情報処理装置が実行した処理の処理結果を受信する受信ステップと、該受信ステップにおいて、該処理結果と同一内容の処理結果をすでに受信したか否かを判断し、同一内容の処理結果を未だ受信していない場合には、該受信した処理結果を取得する処理結果判断ステップを有することを特徴とする。
【発明の効果】
【００１１】
本発明に係る負荷分散装置は、情報処理装置に処理を分散させると共に、当該処理を複数の情報処理装置に並列処理させることによって、情報処理装置に障害が発生した場合であっても再送することなく処理することができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明を実施するための形態を示す。
【実施例１】
【００１３】
＜負荷分散システム＞
図１は、本実施例に係る負荷分散システムの概念図である。負荷分散システムは、負荷分散装置１００、クライアント端末１０１、１０２、１０３及び情報処理装置１０４、１０５、１０６、１０７、１０８、１０９によって構成される。負荷分散装置１００は、クライアント端末１０１、１０２、１０３と接続している。また負荷分散装置１００は、情報処理装置１０４、１０５、１０６、１０７、１０８、１０９と接続している。
【００１４】
負荷分散装置１００は、情報処理装置１０４、１０５、１０６、１０７、１０８、１０９における障害を監視する。負荷分散装置１００は、情報処理装置１０４、１０５、１０６、１０７、１０８、１０９に所定の時間間隔で監視パケットを送信する。情報処理装置１０４、１０５、１０６、１０７、１０８、１０９は該監視パケットに対する応答パケットを負荷分散装置１００に返信する。これより、負荷分散装置１００は該応答パケットの返信の有無を監視して、情報処理装置１０４、１０５、１０６、１０７、１０８、１０９が正常に動作しているか否かの監視を行っている。負荷分散装置１００が該応答パケットを所定の時間内に受信した場合、負荷分散装置１００は応答パケットを返信した情報処理装置が正常に動作していると判断する。また負荷分散装置１００が応答パケットを所定の時間経過しても受信しない場合には、負荷分散装置１００は応答パケットを返さない情報処理装置に障害が発生していると判断する。
【００１５】
さらに負荷分散装置１００は、情報処理装置１０４、１０５、１０６、１０７、１０８、１０９の稼動状況を監視している。より具体的には負荷分散装置１００は、それぞれの情報処理装置１０４、１０５、１０６、１０７、１０８、１０９の負荷情報を監視している。負荷情報は、それぞれの情報処理装置が有するＣＰＵの負荷率と、情報処理装置が実効している処理の数を示す情報（以下、処理数と呼ぶ。）から構成される情報である。情報処理装置１０４、１０５、１０６、１０７、１０８、１０９は、所定の時間間隔でその時点におけるそれぞれの負荷情報を負荷分散装置１００に通知する。負荷分散装置１００は、管理テーブル７００を格納部５０７に格納している。負荷分散装置１００は、該負荷情報を受信した後、管理テーブル７００に記載の情報処理装置１０４、１０５、１０６、１０７、１０８、１０９のＣＰＵ負荷率と処理数を受信した負荷情報に書き換え、管理テーブル７００を更新する。これにより負荷分散装置は、負荷情報を受信するごとに管理テーブル７００を更新する。負荷分散装置１００は、該管理テーブル７００を参照することにより、情報処理装置１０４、１０５、１０６、１０７、１０８、１０９の稼動状況を把握することができる。
【００１６】
負荷分散装置１００は、クライアント端末１０１、１０２、１０３から処理要求の要求パケットを受けると、該要求パケットに対する処理データを取得する。そして負荷分散処理装置１００は、該処理データを情報処理装置１０４、１０５、１０６、１０７、１０８、１０９に分散して処理を行う。
【００１７】
そして本実施例では、クライアント端末１０１からの１つの処理を２つの分割処理にする場合を例にとり説明する。クライアント端末１０２、１０３もクライアント端末１０１と同様にして処理を要求するが以下の説明では省略する。クライアント端末１０１は、負荷分散装置１００に要求パケット送信する。負荷分散装置１００は、該要求パケットに対応する処理データを２つの分割処理１、２に分割する。負荷分散装置１００は、処理の大きさ（以下、処理サイズ情報と呼ぶ。）と負荷分散装置１００に接続されている情報処理装置の数を参照して、該処理要求に対応する処理を分割する数を決定する。該処理サイズ情報は、該処理データに含まれる情報である。具体的には、負荷分散装置１００は、処理サイズ情報により分割する数が予め設定された分割テーブルを格納部５０７に格納している。負荷分散装置１００は、分割テーブルを参照して、該処理を分割する数を選択する。そして選択した分割数よりも多くの情報処理装置が負荷分散装置１００に接続されている場合には、該選択した分割数の分割処理を生成する。選択した分割数よりも少ない数の分割数よりも負荷分散装置１００に接続されている情報処理装置の数が少ない場合には、負荷分散装置１００に接続されている情報処理装置数の分割処理を生成する。本実施例では、分割テーブルより処理の分割数として２を選択する。負荷分散装置１００に接続されている情報処理装置の数は、情報処理装置１０４〜１０９の６つであり、選択した分割数の２より大きいため、該処理を２つの分割処理１、２に分割する。分割処理１、２は、それぞれが分割処理であることを示す分割ヘッダを有している。分割ヘッダは、分割した処理全体のうち、分割処理１、２がどの部分の処理を行うかも表している。
【００１８】
図１は、負荷分散装置１００が分割処理１を情報処理装置１０４、１０７、１０８に依頼することを模式的に表わしている。負荷分散装置１００は、枠１内にある情報処理装置１０４、１０７、１０８に分割処理１を依頼する。また図２は、負荷分散装置１００が分割処理２を情報処理装置１０５、１０７、１０９に依頼することを模式的に表わしている。負荷分散装置１００は、枠２内にある情報処理装置１０４、１０７、１０８に分割処理２を依頼する。
【００１９】
依頼の判断基準として、負荷分散装置１００は、管理テーブル７００を参照する。具体的には負荷分散装置１００は、管理テーブル７００に記載してある情報処理装置１０４〜１０９のＣＰＵ負荷率を参照して、ＣＰＵ負荷率の低い情報処理装置に分割処理を依頼する。負荷分散処理装置１００は、まず分割処理１を情報処理装置１０４、１０７、１０８に依頼した後、分割処理２を情報処理装置１０５、１０７、１０９に依頼する。また該処理要求には、処理の重要度を示す重要度情報が付加されている。重要度情報は、それぞれの分割処理を何台の情報処理装置によって行うかを示す情報である。本実施例では、重要度情報は、分割処理１、２は共に３台の情報処理装置で実行すること示している。
【００２０】
情報処理装置１０４、１０７、１０８は、分割処理１を実行し、情報処理装置１０５、１０７、１０９は、分割処理２を実行する。情報処理装置１０４、１０７、１０８は分割処理１が終了した場合に、分割処理１の処理結果である分割処理結果１を負荷分散装置１００に送信する。同様にして情報処理装置１０５、１０７、１０９は分割処理２が終了した場合に、分割処理２の処理結果である分割処理結果２を負荷分散装置１００に送信する。
【００２１】
情報処理装置１０４、１０７、１０８は、それぞれ分割処理１を処理する速度は一般的に異なる。そのため一般的に、負荷分散装置１００は、情報処理装置１０４、１０７、１０８それぞれから分割処理結果１を受信するタイミングは異なる。そして負荷分散装置１００は、情報処理装置１０４、１０７、１０８から受信する分割処理結果１が初めて受信したものであるか否かを判断する。負荷分散装置１００は、受信した分割処理結果１が初めて受信したものであると判断した場合には、分割処理結果１をメモリ５０６に格納する。また負荷分散装置１００は、受信した分割処理結果１が初めて受信したものではないと判断した場合には、該分割処理結果１を破棄する。この際に、負荷分散装置１００は、初めに受信した分割処理結果１をメモリ５０６に格納している。
【００２２】
同様にして、負荷分散装置１００は、情報処理装置１０４、１０７、１０８は、それぞれ分割処理１を処理する速度は一般的に異なる。そのため一般的に、負荷分散装置１００は、情報処理装置１０４、１０７、１０８それぞれから分割処理結果１を受信するタイミングは異なる。そして負荷分散装置１００は、情報処理装置１０５、１０７、１０９から受信する分割処理結果２が初めて受信したものであるか否かを判断する。負荷分散装置１００は、受信した分割処理結果２が初めて受信したものであると判断した場合には、分割処理結果２をメモリ５０６に格納する。また負荷分散装置１００は、受信した分割処理結果２が初めて受信したものではないと判断した場合には、該分割処理結果２を破棄する。この際、負荷分散装置１００は、初めに受信した分割処理結果２をメモリ５０６に格納している。負荷分散装置１００は、分割処理結果１及び分割処理結果２をメモリ５０６に格納した後、分割処理結果１及び分割処理結果２を結合して処理結果を生成する。分割処理結果１は分割処理１に対する処理結果であって、分割処理結果２は分割処理２に対する処理結果である。分割処理結果１、２はそれぞれ、分割処理１、２が有する分割ヘッダを有している。負荷分散装置１００は、分割ヘッダを用いて分割処理結果１及び分割処理結果２を結合して処理結果を生成する。
【００２３】
負荷分散装置１００は、該処理結果をクライアント端末１０１に送信する。クライアント端末１０１に該処理結果を送信した後、負荷分散装置１００は、メモリに格納されている該処理結果を削除する。
【００２４】
またクライアント端末１０１、１０２、１０３が負荷分散装置１００に送信する要求パケットは、送信先を示す送信先ＩＰアドレスを有している。該送信先ＩＰアドレスは、負荷分散装置１００のＩＰアドレスである。クライアント端末１０１、１０２、１０３は、該処理要求に付加された該送信先ＩＰアドレスを参照して、該処理要求を負荷分散装置１００に送信する。クライアント端末１０１、１０２、１０３は、該要求パケットに対応する該処理データを複数の分割処理に分割する。負荷分散装置１００は、それぞれの分割処理の送信先ＩＰアドレスとして分割処理を行う情報処理装置のＩＰアドレスを指定する。ここで、例えば分割処理１の送信先ＩＰアドレスは、情報処理装置１０４、１０７、１０８のＩＰアドレスであり、分割処理２の送信先ＩＰアドレスは、情報処理装置１０５、１０７、１０９のＩＰアドレスである。負荷分散装置１００は、それぞれの分割処理に付加されたＩＰアドレスを参照して、分割処理をＩＰアドレスに対応する情報処理装置に送信する。情報処理装置１０４〜１０９は、分割処理結果が得られた後、負荷分散装置１００のＩＰアドレスを付加して、分割処理結果を負荷分散装置１００に送信する。負荷分散装置１００は、分割処理結果を結合して処理結果を生成し、処理結果に処理要求したクライアント端末のＩＰアドレスを付加して、該クライアント端末に該処理結果を送信する。
【００２５】
＜負荷分散装置の構成＞
図５は、本実施例に係る負荷分散装置１００のハードブロック図である。また図６は本実施例に係る処理部５０３の機能ブロック図である。負荷分散装置１００は、受信部５０１、送信部５０２、処理部５０３、送信部５０４、受信部５０５、メモリ５０６、格納部５０７から構成される。
【００２６】
受信部５０１と送信部５０２は、クライアント端末１０１、１０２、１０３と接続されている。受信部５０１は、クライアント端末１０１、１０２、１０３から処理要求を示す要求パケットを受信し、送信部５０２は、クライアント端末１０１、１０２、１０３から受信する要求パケットに対応する処理結果を、該要求パケットを送信したクライアント端末１０１、１０２、１０３に送信する。受信部５０１は、クライアント端末１０１、１０２、１０３から受信する要求パケットを処理部５０３へ送信し、さらに該要求パケットに対応する処理データをクライアント端末１０１、１０２、１０３から受信して処理部５０３に送信する。
【００２７】
また処理部５０３は、クライアント端末１０１、１０２、１０３から受信する処理要求に対応する処理結果を送信部５０２に送信する。また送信部５０４、受信部５０５は、情報処理装置１０４、１０５、１０６、１０７、１０８、１０９と接続されている。処理部５０３は、処理データを分割処理に分割して、分割処理を情報処理装置１０４、１０５、１０６、１０７、１０８、１０９の中から選択した情報処理装置に送信部５０４を用いて送信する。分割処理を受信した情報処理装置は、分割処理の処理結果である分割処理結果を負荷分散装置１００に送信する。負荷分散装置１００は、受信部５０５を用いて、該分割処理結果を受信する。処理部５０３は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などで構成され、図６に記載の処理分割手段６０１、負荷監視手段６０２、情報処理装置選択手段６０３、ＩＰアドレス変換手段６０４、処理結果判断手段６０５、障害監視手段６０６を実行する構成となっている。
【００２８】
格納部５０７には、記載の処理分割手段６０１、負荷監視手段６０２、情報処理装置選択手段６０３、ＩＰアドレス変換手段６０４、処理結果判断手段６０５、障害監視手段６０６のプログラムが格納されている。処理部５０３は、格納部５０７に格納されている記載の処理分割手段６０１、負荷監視手段６０２、情報処理装置選択手段６０３、ＩＰアドレス変換手段６０４、処理結果判断手段６０５、障害監視手段６０６のプログラムを呼び出してそれぞれの処理を実行する。
【００２９】
負荷分散装置１００は、障害監視手段６０６を実行して、送信部５０４より情報処理装置１０４、１０５、１０６、１０７、１０８、１０９へ所定の時間間隔で監視パケットを送信する。情報処理装置１０４、１０５、１０６、１０７、１０８、１０９は該監視パケットに対する応答パケットを負荷分散装置１００に返信する。負荷分散装置は、受信部５０５より該応答パケットを受信する。該障害監視手段６０６は、応答パケットを送信した情報処理装置は正常に動作していると判断する。また所定の時間経過しても負荷分散装置１００が応答パケットを受信しない場合には、障害監視手段６０６は該応答パケットを送信するはずの情報処理装置に障害が発生していると判断し、該情報処理装置との接続を切断する。また情報処理装置１０４、１０５、１０６、１０７、１０８、１０９は、負荷情報を所定の時間間隔で負荷分散装置１００に送信する。負荷分散装置１００は、負荷監視手段６０２を実行して、情報処理装置１０４、１０５、１０６、１０７、１０８、１０９からそれぞれの情報処理装置の該負荷情報を受信する。負荷監視手段６０２は、該負荷情報を受信した後、管理テーブル７００の負荷情報に該当する部分である、情報処理装置１０４、１０５、１０６、１０７、１０８、１０９のＣＰＵ負荷率と処理数を更新する。
【００３０】
そして例えばクライアント端末１０１が、負荷分散装置１００に要求パケットを送信すると、負荷分散装置１００は、処理分割手段６０１を実行して、該処理要求を複数の分割処理に分割する。処理分割手段６０１は処理データに含まれる情報である処理サイズ情報と格納部５０７に格納された分割テーブルを参照する。処理分割手段６０１は、該処理サイズ情報に対応する該分割テーブル内の分割数を選択する。そして処理分割手段６０１は、選択した分割数と負荷分散装置１００に接続されている情報処理装置の数を比較する。選択した分割数よりも多くの情報処理装置が負荷分散装置１００に接続されている場合には、処理分割手段６０１は、該選択した分割数の分割処理を生成する。選択した分割数よりも少ない数の分割数よりも負荷分散装置１００に接続されている情報処理装置の数が少ない場合には、処理分割手段６０１は、負荷分散装置１００に接続されている情報処理装置数の分割処理を生成する。
【００３１】
次に負荷分散装置１００は、情報処理装置選択手段６０３を実行して、該要求パケットに付加されている重要度情報と管理テーブル７００を参照する。情報処理装置選択手段６０３は、該重要度情報から同一の分割処理を依頼する情報処理装置の数を決定する。そして情報処理装置選択手段６０３は管理テーブル７００のＣＰＵ負荷率を参照して、ＣＰＵ負荷率の低い順に、同一の分割処理を依頼する情報処理装置の数だけ情報処理装置を選択する。
【００３２】
そしてＩＰアドレス変換手段６０４は、該分割処理に、選択したすべての情報処理装置のＩＰアドレスを付加し、該分割処理をそれぞれＩＰアドレスを有する情報処理装置に送信する。他の分割処理においても同様にして、分割処理を送信する情報処理装置の数を決定し、ＣＰＵ負荷率の低い順に決定した数の情報処理装置を選択して、それぞれの情報処理装置に分割処理を送信する。
【００３３】
分割処理を実行する情報処理装置は、分割処理が終了した後、分割処理結果を負荷分散装置に送信する。負荷分散装置１００は、受信部５０５を介して分割処理結果を受信する。負荷分散装置１００は、処理結果判断手段６０５を実行して、受信した分割処理結果と同一の内容の処理結果がメモリ５０６に存在するか否かを判断する。メモリ５０６に同一の内容の分割処理結果が存在しない場合には、処理結果判断手段６０５は、受信した分割処理結果をメモリ５０６に格納する。メモリ５０６に同一の内容の分割処理結果がすでに存在する場合には、処理結果判断手段６０５は、受信した分割処理結果を破棄する。同様にして他の分割処理においても、処理結果判断手段６０５は、分割処理結果がすでにメモリ５０６に格納されているかを判断する。メモリ５０６に受信した分割処理結果と同一の内容の分割処理結果が存在しない場合には、処理結果判断手段６０５は、該分割処理結果をメモリ５０６に格納する。メモリ５０６に受信した分割処理結果と同一の内容の分割処理結果が存在する場合には、処理結果判断手段６０５は、該分割処理結果を破棄する。すべての種類の分割処理に対応する分割処理結果を受信した場合、処理結果生成手段６０７を実行して、全ての分割処理結果を結合して処理結果を生成する。処理結果生成手段６０７は、該処理結果を５０６に格納する。
【００３４】
負荷分散装置１００は、該処理結果に対応する処理要求を送信したクライアント端末へ、該処理結果を送信する。クライアント端末１０１に該処理結果を送信した後、負荷分散装置１００は、メモリ５０６に格納されている該処理結果および分割処理結果を削除する。
【００３５】
＜負荷分散処理のフロー＞
図３は、本実施例に係る負荷分散処理のフローチャートである。負荷分散装置１００はクライアント端末１０１、１０２，１０３から要求パケットを受信する（ステップＳ３０１）。処理分割手段６０１は、処理サイズ情報と格納部５０７に格納された分割テーブルを参照し、該処理サイズ情報に対応する該分割テーブル内の分割数を選択する（ステップＳ３０２）。処理分割手段６０１は、選択した分割数と負荷分散装置１００に接続されている情報処理装置の数を比較する（ステップＳ３０３）。選択した分割数よりも多くの情報処理装置が負荷分散装置１００に接続されている場合には、処理分割手段６０１は、該選択した分割数の分割処理を生成する（ステップＳ３０４）。選択した分割数よりも少ない数の分割数よりも負荷分散装置１００に接続されている情報処理装置の数が少ない場合には、処理分割手段６０１は、負荷分散装置１００に接続されている情報処理装置数の分割処理を生成する（ステップＳ３０５）。
【００３６】
次に情報処理装置選択手段６０３は、該処理要求に付加されている重要度情報と管理テーブル７００を参照する。情報処理装置選択手段６０３は、該重要度情報から同一の分割処理を依頼する情報処理装置の数を決定する（ステップＳ３０６）。情報処理装置選択手段６０３は管理テーブル７００のＣＰＵ負荷率を参照して、ＣＰＵ負荷率の低い順に、同一の分割処理を依頼する情報処理装置の数だけ情報処理装置を選択する（ステップＳ３０７）。
【００３７】
そしてＩＰアドレス変換手段６０４は、該分割処理に選択したすべての情報処理装置のＩＰアドレスを付加し、該分割処理をそれぞれＩＰアドレスを有する情報処理装置に送信する（ステップＳ３０８）。他の分割処理においても同様にして、分割処理を送信する情報処理装置の数を決定し、ＣＰＵ負荷率の低い順に決定した数の情報処理装置を選択して、それぞれの情報処理装置に分割処理を送信する。
【００３８】
処理結果判断手段６０５は、受信した分割処理結果と同一の内容の分割処理結果がメモリ５０６に存在するか否かを判断する（ステップＳ３０９）。メモリ５０６に同一の内容の分割処理結果が存在しない場合には、処理結果判断手段６０５は、受信した分割処理結果をメモリ５０６に格納する（ステップＳ３１０）。メモリ５０６に同一の内容の分割処理結果がすでに存在する場合には、処理結果判断手段６０５は、受信した分割処理結果を破棄する（ステップ３１１）。
【００３９】
＜負荷情報監視のフロー＞
図４は、本実施例に係る負荷分散装置１００の負荷情報監視のフローチャートである。障害監視手段６０６は、送信部５０４より情報処理装置１０４、１０５、１０６、１０７、１０８、１０９へ所定の時間間隔で監視パケットを送信する（ステップＳ４０１）。該障害監視手段６０６は、情報処理装置１０４、１０５、１０６、１０７、１０８、１０９からの応答パケットを監視し、所定の時間間隔で応答パケットを受信したか否か判断する（ステップＳ４０２）。該障害監視手段６０６は、応答パケットを送信した情報処理装置は正常に動作していると判断する（ステップＳ４０３）。また所定の時間経過しても負荷分散装置１００が応答パケットを受信しない場合には、障害監視手段６０６は該応答パケットを送信するはずの情報処理装置に障害が発生していると判断し、該情報処理装置との接続を切断する（ステップＳ４０４）。
【００４０】
＜管理テーブル＞
図７は、本実施例に係る管理テーブル７００である。管理テーブル７００には情報処理装置１０４、１０５、１０６、１０７、１０８、１０９それぞれのＩＰアドレス７０１、最大処理性能７０２、ＣＰＵ負荷率７０３、処理数７０４が記載されている。情報処理装置１０４のＩＰアドレス７０１は「１９３．１６８．２５４．２」、最大処理性能７０２は「５０００ｔｐｓ」、ＣＰＵ負荷率７０３は「２０％」、処理数７０４は「１」である。情報処理装置１０５のＩＰアドレス７０１は「１９３．１６８．２５４．３」、最大処理性能７０２は「５０００ｔｐｓ」、ＣＰＵ負荷率７０３は「４０％」、処理数７０４は「１」である。情報処理装置１０６のＩＰアドレス７０１は「１９３．１６８．２５４．４」、最大処理性能７０２は「５０００ｔｐｓ」、ＣＰＵ負荷率７０３は「９０％」、処理数７０４は「３」である。情報処理装置１０７のＩＰアドレス７０１は「１９３．１６８．２５４．５」、最大処理性能７０２は「５０００ｔｐｓ」、ＣＰＵ負荷率７０３は「１０％」、処理数７０４は「０」である。情報処理装置１０８のＩＰアドレス７０１は「１９３．１６８．２５４．６」、最大処理性能７０２は「５０００ｔｐｓ」、ＣＰＵ負荷率７０３は「２５％」、処理数７０４は「１」である。情報処理装置１０９のＩＰアドレス７０１は「１９３．１６８．２５４．７」、最大処理性能７０２は「５０００ｔｐｓ」、ＣＰＵ負荷率７０３は「４５％」、処理数７０４は「１」である。ここで本実施例では、簡略化のため情報処理装置１０４、１０５、１０６、１０７、１０８、１０９の最大処理性能７０２は「５０００ｔｐｓ」と同一である。またｔｐｓは「ｔｒａｎｓａｃｔｉｏｎ  ｐｅｒ  ｓｅｃｏｎｄ」であり、単位時間あたりに実行可能な処理数を意味する単位である。
【００４１】
本実施例において、負荷分散装置１００は分割処理１を依頼する情報処理装置を選択した後、分割処理２を依頼する情報処理装置を選択する。情報処理装置選択手段６０３は、管理テーブル７００のＣＰＵ負荷率７０３を参照して、ＣＰＵ負荷率７０３の低い情報処理装置に分割処理１を依頼する。ＣＰＵ負荷率７０３の低い情報処理装置は、ＣＰＵ負荷率７０３が「２０％」である情報処理装置１０４、ＣＰＵ負荷率７０３が「１０％」である情報処理装置１０７、ＣＰＵ負荷率７０３が「２５％」である情報処理装置１０８である。これにより情報処理装置選択手段６０３は、分割処理１を情報処理装置１０４，１０７、１０８に依頼する。そして情報処理装置１０４、１０５、１０６、１０７、１０８、１０９は、負荷情報を負荷分散装置１００に送信する。負荷監視手段６０２は、情報処理装置１０４、１０５、１０６、１０７、１０８、１０９からそれぞれの情報処理装置の該負荷情報を受信する。負荷監視手段６０２は、該負荷情報を受信した後、管理テーブル７００の負荷情報に該当する部分である、情報処理装置１０４、１０５、１０６、１０７、１０８、１０９のＣＰＵ負荷率７０３と処理数７０４を更新する。
【００４２】
図８は本実施例に係る管理テーブル８００である。管理テーブル８００は、情報処理装置選択手段６０３が分割処理１を情報処理装置１０４，１０７、１０８に依頼し、負荷監視手段６０２が管理テーブル７００を更新した管理テーブルである。
【００４３】
情報処理装置１０４のＩＰアドレス８０１は「１９３．１６８．２５４．２」、最大処理性能８０２は「５０００ｔｐｓ」、ＣＰＵ負荷率８０３は「６０％」、処理数８０４は「２」である。情報処理装置１０５のＩＰアドレス８０１は「１９３．１６８．２５４．３」、最大処理性能８０２は「５０００ｔｐｓ」、ＣＰＵ負荷率８０３は「４０％」、処理数８０４は「１」である。情報処理装置１０６のＩＰアドレス８０１は「１９３．１６８．２５４．４」、最大処理性能８０２は「５０００ｔｐｓ」、ＣＰＵ負荷率８０３は「９０％」、処理数８０４は「３」である。情報処理装置１０７のＩＰアドレス８０１は「１９３．１６８．２５４．５」、最大処理性能８０２は「５０００ｔｐｓ」、ＣＰＵ負荷率８０３は「５５％」、処理数８０４は「１」である。情報処理装置１０８のＩＰアドレス８０１は「１９３．１６８．２５４．６」、最大処理性能８０２は「５０００ｔｐｓ」、ＣＰＵ負荷率８０３は「７５％」、処理数８０４は「２」である。情報処理装置１０９のＩＰアドレス８０１は「１９３．１６８．２５４．７」、最大処理性能８０２は「５０００ｔｐｓ」、ＣＰＵ負荷率８０３は「４５％」、処理数８０４は「１」である。
【００４４】
情報処理装置選択手段６０３は、管理テーブル８００のＣＰＵ負荷率８０３を参照して、ＣＰＵ負荷率８０３の低い情報処理装置に分割処理２を依頼する。ＣＰＵ負荷率８０３の低い情報処理装置は、ＣＰＵ負荷率８０３が「４０％」である情報処理装置１０５、ＣＰＵ負荷率８０３が「５５％」である情報処理装置１０７、ＣＰＵ負荷率８０３が「４５％」である情報処理装置１０９である。これにより情報処理装置選択手段６０３は、分割処理２を情報処理装置１０５，１０７、１０９に依頼する。そして情報処理装置１０４、１０５、１０６、１０７、１０８、１０９は、負荷情報を負荷分散装置１００に送信する。負荷監視手段６０２は、情報処理装置１０４、１０５、１０６、１０７、１０８、１０９からそれぞれの情報処理装置の該負荷情報を受信する。負荷監視手段６０２は、該負荷情報を受信した後、管理テーブル８００の負荷情報に該当する部分である、情報処理装置１０４、１０５、１０６、１０７、１０８、１０９のＣＰＵ負荷率８０３と処理数８０４を更新する。
【実施例２】
【００４５】
第２の実施例では、受信した分割処理結果と同一の内容の分割処理結果がメモリ５０６に存在する場合には、処理結果判断手段６０５が、受信した分割処理結果に対応する分割処理を処理している情報処理装置に対して、分割処理の中止を依頼する。
【００４６】
図９は、本実施例に係る負荷分散処理のフローチャートである。クライアント端末１０１、１０２，１０３が、負荷分散装置１００に要求パケットを送信する（ステップＳ９０１）。処理分割手段６０１は、処理サイズ情報と格納部５０７に格納された分割テーブルを参照し、該処理サイズ情報に対応する該分割テーブル内の分割数を選択する（ステップＳ９０２）。処理分割手段６０１は、選択した分割数と負荷分散装置１００に接続されている情報処理装置の数を比較する（ステップＳ９０３）。選択した分割数よりも多くの情報処理装置が負荷分散装置１００に接続されている場合には、処理分割手段６０１は、該選択した分割数の分割処理を生成する（ステップＳ９０４）。選択した分割数よりも少ない数の分割数よりも負荷分散装置１００に接続されている情報処理装置の数が少ない場合には、処理分割手段６０１は、負荷分散装置１００に接続されている情報処理装置数の分割処理を生成する（ステップＳ９０５）。
【００４７】
そして情報処理装置選択手段６０３は、該処理要求に付加されている重要度情報と管理テーブル７００を参照する。情報処理装置選択手段６０３は、該重要度情報から同一の分割処理を依頼する情報処理装置の数を決定する（ステップＳ９０６）。情報処理装置選択手段６０３は管理テーブル７００のＣＰＵ負荷率を参照して、ＣＰＵ負荷率の低い順に、同一の分割処理を依頼する情報処理装置の数だけ情報処理装置を選択する（ステップＳ９０７）。
【００４８】
そしてＩＰアドレス変換手段６０４は、該分割処理に選択したすべての情報処理装置のＩＰアドレスを付加し、該分割処理をそれぞれＩＰアドレスを有する情報処理装置に送信する（ステップＳ９０８）。他の分割処理においても同様にして、分割処理を送信する情報処理装置の数を決定し、ＣＰＵ負荷率の低い順に決定した数の情報処理装置を選択して、それぞれの情報処理装置に分割処理を送信する。
【００４９】
処理結果判断手段６０５は、受信した分割処理結果と同一の内容の処理結果がメモリ５０６に存在するか否かを判断する（ステップＳ９０９）。メモリ５０６に同一の内容の分割処理結果が存在しない場合には、処理結果判断手段６０５は、受信した分割処理結果をメモリ５０６に格納する（ステップＳ９１０）。メモリ５０６に同一の内容の分割処理結果がすでに存在する場合には、処理結果判断手段６０５は、該分割処理結果に対応する分割処理を処理している情報処理装置に対して、該分割処理の中止を依頼する（ステップ９１１）。分割処理の中止の依頼を受信した情報処理装置は、分割処理が終了する。
【００５０】
次に、以上述べた通信装置の実施形態から抽出される技術的思想を請求項の記載形式に準じて付記として列挙する。本発明に係る技術的思想は上位概念から下位概念まで、様々なレベルやバリエーションにより把握できるものであり、以下の付記に本発明が限定されるものではない。
【００５１】
（付記１）  クライアント端末から依頼があった処理を複数の情報処理装置に供給する負荷分散装置において、
該複数の情報処理装置の稼動状況を監視する負荷監視手段と、
該複数の情報処理装置の稼動状況に応じて、該複数の情報処理装置の中から、処理を実行する情報処理装置を選択する情報処理装置選択手段と、
該情報処理装置が実行した処理の処理結果を受信する受信手段と、
該受信手段が該処理結果と同一内容の処理結果をすでに受信したか否かを判断し、同一内容の処理結果を未だ受信していない場合には、該受信した処理結果を取得する処理結果判断手段と、
を有することを特徴とする負荷分散装置。
【００５２】
（付記２）  付記１に記載の負荷分散装置において、
該処理結果判断手段は、該受信手段が同一内容の処理結果をすでに受信している場合には、該受信した処理結果を破棄することを特徴とする負荷分散装置。
【００５３】
（付記３）  付記１に記載の負荷分散装置において、
該処理結果判断手段は、同一内容の処理結果を未だ受信していない場合には、該受信した処理結果を取得し、さらに該処理を実行する情報処理装置であって、該処理結果を送信してない情報処理装置に対して該処理の終了を依頼することを特徴とする負荷分散装置。
【００５４】
（付記４）  付記１に記載の負荷分散装置は、
該処理結果判断手段において、取得した処理結果を該クライアント端末に送信する送信手段をさらに有することを特徴とする負荷分散装置。
【００５５】
（付記５）  付記１に記載の負荷分散装置において、
該負荷監視手段は、該稼動状況として該情報処理装置のＣＰＵ負荷を監視することを特徴とする負荷分散装置。
【００５６】
（付記６）  付記１に記載の負荷分散装置において、
該負荷監視手段は、該情報処理装置よりそれぞれの情報処理装置の稼動状況を示す負荷情報を取得することを特徴とする負荷分散装置。
【００５７】
（付記７）  付記６に記載の負荷分散装置において、
該負荷監視手段は、所定の時間間隔で該負荷情報を取得することを特徴とする負荷分散装置。
【００５８】
（付記８）  付記７に記載の負荷分散装置において、
該負荷監視手段は、該所定の時間経過しても該負荷情報を受信しない場合は、該負荷情報を送信しない情報処理装置との接続を切り離すことを特徴とする負荷分散装置。
【００５９】
（付記９）  クライアント端末から依頼があった処理を複数の情報処理装置に供給する負荷分散方法において、
該複数の情報処理装置の稼動状況を監視する負荷監視ステップと、
該複数の情報装置の稼動状況に応じて、該複数の情報処理装置の中から、処理を実行する情報処理装置を選択する情報処理装置選択ステップと、
該情報処理装置が実行した処理の処理結果を受信する受信ステップと、
該受信ステップにおいて、該処理結果と同一内容の処理結果をすでに受信したか否かを判断し、同一内容の処理結果を未だ受信していない場合には、該受信した処理結果を取得する処理結果判断ステップと、
を有することを特徴とする負荷分散方法。
【００６０】
（付記１０）  クライアント端末から依頼があった処理を情報処理装置に供給し、コンピュータによって実行される負荷分散プログラムであって、
複数の情報処理装置の稼動状況を監視する負荷監視ステップと、
該複数の情報装置の稼動状況に応じて、該複数の情報処理装置の中から、処理を実行する情報処理装置を選択する情報処理装置選択ステップと、
該情報処理装置が実行した処理の処理結果を受信する受信ステップと、
該受信ステップにおいて、該処理結果と同一内容の処理結果をすでに受信したか否かを判断し、同一内容の処理結果を未だ受信していない場合には、該受信した処理結果を取得する処理結果判断ステップと、
を有することを特徴とする負荷分散プログラム。
【図面の簡単な説明】
【００６１】
【図１】本実施例に係る負荷分散システムの構成図である。
【図２】本実施例に係る負荷分散システムの構成図である。
【図３】本実施例に係る負荷分散処理のフローチャートである。
【図４】本実施例に係る負荷情報監視のフローチャートである。
【図５】本実施例に係る負荷分散装置のハードブロック図である。
【図６】本実施例に係る処理部５０３の機能ブロック図である。
【図７】本実施例に係る管理テーブル７００である。
【図８】本実施例に係る管理テーブル８００である。
【図９】本実施例に係る負荷分散処理のフローチャートである。
【符号の説明】
【００６２】
１００…負荷分散装置
１０１…クライアント端末
１０２…クライアント端末
１０３…クライアント端末
１０４…情報処理装置
１０５…情報処理装置
１０６…情報処理装置
１０７…情報処理装置
１０８…情報処理装置
１０９…情報処理装置
５０１…受信部
５０２…送信部
５０３…処理部
５０４…送信部
５０５…受信部
５０６…メモリ
５０７…格納部
６０１…処理分割手段
６０２…負荷監視手段
６０３…情報処理装置選択手段
６０４…ＩＰアドレス変換手段
６０５…処理結果判断手段
６０６…障害監視手段
６０７…処理結果生成手段
【図１】
2008077428.tif 000003
【図２】
2008077428.tif 000004
【図３】
2008077428.tif 000005
【図４】
2008077428.tif 000006
【図５】
2008077428.tif 000007
【図６】
2008077428.tif 000008
【図７】
2008077428.tif 000009
【図８】
2008077428.tif 000010
【図９】
2008077428.tif 000011