(57)【要約】【課題】プロセスの実行を効率的におこなわせること。【解決手段】負荷分散装置１０１ａは、クライアント１０２からプロセスに関する情報を受信するプロセス情報受信部４０１と、受信されたプロセスに関する情報に基づいて、複数のプロセス処理サーバ１０１ｂ〜１０１ｎの中からプロセスを処理させるサーバを決定する決定部４０２と、決定されたサーバに関する情報をクライアント１０２へ送信するサーバ情報送信部４０３と、を備え、クライアント１０２は、送信されたサーバに関する情報を受信するサーバ情報受信部４１２と、受信された情報にかかるプロセス処理サーバ１０１ｂ〜１０１ｎへ、プロセス処理要求に関する情報を送信するプロセス要求送信部４１３とを備える。【選択図】図４
2007200349.tif 000002
【特許請求の範囲】
【請求項１】
複数のサーバと複数のクライアントとがネットワークを介して接続され、前記クライアントからのプロセス要求に基づいて前記サーバが処理をおこない、処理結果を前記クライアントへ送信するサーバ・クライアント・システムにおいて、
前記サーバのうちの少なくともいずれか一つが、
前記クライアントから前記プロセスに関する情報を前記ネットワークを介して受信するプロセス情報受信手段と、
前記プロセス情報受信手段によって受信されたプロセスに関する情報に基づいて、前記複数のサーバの中から前記プロセスを処理させるサーバを決定する決定手段と、
前記決定手段によって決定されたサーバに関する情報を前記クライアントへ送信するサーバ情報送信手段と、
を備え、
前記クライアントは、
前記サーバ情報送信手段によって送信されたサーバに関する情報を前記ネットワークを介して受信するサーバ情報受信手段と、
前記サーバ情報受信手段によって受信された情報にかかるサーバへ、前記プロセス処理要求に関する情報を送信するプロセス要求送信手段と、
を備えたことを特徴とするサーバ・クライアント・システム。
【請求項２】
前記決定手段は、
各サーバにおけるリソースのパラメータを軸とした空間上において、前記プロセスのリソース消費量を各サーバの現リソース消費量を表わす点に加えたことによって求められるリソース消費量の予想点の、原点とパラメータの使用可能な最大容量を結ぶ直線との第１の距離を算出する第１の距離算出手段と、
各サーバにおけるリソースのパラメータを軸として空間上において、前記プロセスのリソース消費量を、各サーバの現リソース消費量を表わす点に加えたことによって求められるリソース消費量の予想点の、原点との第２の距離を算出する第２の距離算出手段と、
を備え、
前記第１の距離および前記第２の距離の一方ないしは両方の値に基づいて、前記プロセスを処理させるサーバを決定することを特徴とする請求項１に記載のサーバ・クライアント・システム。
【請求項３】
前記パラメータには、前記サーバのＣＰＵの負荷量、システムメモリの負荷量、グラフィック処理ユニットの負荷量、ビデオメモリの負荷量およびネットワークインターフェースカードの負荷量の少なくともいずれか一つを含むことを特徴とする請求項２に記載のサーバ・クライアント・システム。
【請求項４】
複数のサーバと複数のクライアントとがネットワークを介して接続され、前記クライアントからのプロセス要求に基づいて前記サーバが処理をおこない、処理結果を前記クライアントへ送信するサーバ・クライアント・システムにおける前記サーバの負荷を分散する負荷分散装置であって、
前記クライアントから前記プロセスに関する情報を前記ネットワークを介して受信するプロセス情報受信手段と、
前記プロセス情報受信手段によって受信されたプロセスに関する情報に基づいて、前記複数のサーバの中から前記プロセスを処理させるサーバを決定する決定手段と、
前記決定手段によって決定されたサーバに関する情報を前記クライアントへ送信するサーバ情報送信手段と、
を備えたことを特徴とする負荷分散装置。
【請求項５】
前記決定手段は、
各サーバにおけるリソースのパラメータを軸とした空間上において、前記プロセスのリソース消費量を各サーバの現リソース消費量を表わす点に加えたことによって求められるリソース消費量の予想点の、原点とパラメータの使用可能な最大容量を結ぶ直線との第１の距離を算出する第１の距離算出手段と、
各サーバにおけるリソースのパラメータを軸として空間上において、前記プロセスのリソース消費量を、各サーバの現リソース消費量を表わす点に加えたことによって求められるリソース消費量の予想点の、原点との第２の距離を算出する第２の距離算出手段と、
を備え、
前記第１の距離および前記第２の距離の一方ないしは両方の値に基づいて、前記プロセスを処理させるサーバを決定することを特徴とする請求項４に記載の負荷分散装置。
【請求項６】
前記パラメータには、前記サーバのＣＰＵの負荷量、システムメモリの負荷量、グラフィック処理ユニットの負荷量、ビデオメモリの負荷量およびネットワークインターフェースカードの負荷量の少なくともいずれか一つを含むことを特徴とする請求項５に記載の負荷分散装置。
【請求項７】
複数のサーバと複数のクライアントとがネットワークを介して接続され、前記クライアントからのプロセス要求に基づいて前記サーバが処理をおこない、処理結果を前記クライアントへ送信するサーバ・クライアント・システムにおける前記サーバの負荷を分散する負荷分散方法であって、
前記クライアントから前記プロセスに関する情報を前記ネットワークを介して受信するプロセス情報受信工程と、
前記プロセス情報受信工程によって受信されたプロセスに関する情報に基づいて、前記複数のサーバの中から前記プロセスを処理させるサーバを決定する決定工程と、
前記決定工程によって決定されたサーバへ、前記プロセス処理要求に関する情報を送信するプロセス要求送信工程と、
を含んだことを特徴とする負荷分散方法。
【請求項８】
前記決定工程は、
各サーバにおけるリソースのパラメータを軸とした空間上において、前記プロセスのリソース消費量を各サーバの現リソース消費量を表わす点に加えたことによって求められるリソース消費量の予想点の、原点とパラメータの使用可能な最大容量を結ぶ直線との第１の距離を算出する第１の距離算出工程と、
各サーバにおけるリソースのパラメータを軸として空間上において、前記プロセスのリソース消費量を、各サーバの現リソース消費量を表わす点に加えたことによって求められるリソース消費量の予想点の、原点との第２の距離を算出する第２の距離算出工程と、
を含み、
前記第１の距離および前記第２の距離の一方ないしは両方の値に基づいて、前記プロセスを処理させるサーバを決定することを特徴とする請求項７に記載の負荷分散方法。
【請求項９】
前記パラメータには、前記サーバのＣＰＵの負荷量、システムメモリの負荷量、グラフィック処理ユニットの負荷量、ビデオメモリの負荷量およびネットワークインターフェースカードの負荷量の少なくともいずれか一つを含むことを特徴とする請求項８に記載の負荷分散方法。
【請求項１０】
複数のサーバと複数のクライアントとがネットワークを介して接続され、前記クライアントからのプロセス要求に基づいて前記サーバが処理をおこない、処理結果を前記クライアントへ送信するサーバ・クライアント・システムにおける前記サーバの負荷を分散する負荷分散プログラムであって、
前記クライアントから前記プロセスに関する情報を前記ネットワークを介して受信するプロセス情報受信工程と、
前記プロセス情報受信工程によって受信されたプロセスに関する情報に基づいて、前記複数のサーバの中から前記プロセスを処理させるサーバを決定する決定工程と、
を前記サーバに実行させることを特徴とする負荷分散プログラム。
【請求項１１】
前記決定工程は、
各サーバにおけるリソースのパラメータを軸とした空間上において、前記プロセスのリソース消費量を各サーバの現リソース消費量を表わす点に加えたことによって求められるリソース消費量の予想点の、原点とパラメータの使用可能な最大容量を結ぶ直線との第１の距離を算出する第１の距離算出工程と、
各サーバにおけるリソースのパラメータを軸として空間上において、前記プロセスのリソース消費量を、各サーバの現リソース消費量を表わす点に加えたことによって求められるリソース消費量の予想点の、原点との第２の距離を算出する第２の距離算出工程と、
を含み、
前記第１の距離および前記第２の距離の一方ないしは両方の値に基づいて、前記プロセスを処理させるサーバを決定することを特徴とする請求項１０に記載の負荷分散プログラム。
【請求項１２】
前記パラメータには、前記サーバのＣＰＵの負荷量、システムメモリの負荷量、グラフィック処理ユニットの負荷量、ビデオメモリの負荷量およびネットワークインターフェースカードの負荷量の少なくともいずれか一つを含むことを特徴とする請求項１１に記載の負荷分散プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、サーバに対するアクセスを分散させるサーバ・クライアント・システム、負荷分散装置、負荷分散方法および負荷分散プログラムに関し、特に、サーバの稼働状態を監視し、評価することによって複数のサーバの中から最適なサーバを選択するサーバ・クライアント・システム、負荷分散装置、負荷分散方法および負荷分散プログラムに関する。
【背景技術】
【０００２】
従来、クライアント上のアプリケーションプログラムからサーバに対しネットワークを介してサーバプログラムの実行を要求するサーバ・クライアント型のシステムが普及している。このシステムでは、クライアントからのプログラム実行の要求に対して、プログラムの実行結果であるサービスを提供するサーバが、そのサービスを提供するためのプログラムの処理単位となるプロセスを起動する。サーバ上で、Ｗｅｂコンテンツ配信プログラムや業務ソフトウエアやゲームソフトウエアなどのプロセスが起動されると、要求したクライアントに対してテキストデータや画像データなどのサービスが提供される。
【０００３】
このようなサーバ・クライアント・システムの処理を複数のサーバを利用しておこなう場合、一部のサーバに偏って負荷がかかることを防ぐため、クライアントから送信される要求処理を負荷分散させる技術がある。たとえば、Ｗｅｂコンテンツの配信をおこなうＷｅｂサーバの場合、クライアントからのアクセスを複数用意したサーバに順番に処理を振り分けるラウンドロビン方式や、複数のサーバの中からセッション数が最小のサーバを選択するリーストコネクション方式などの方法により、プロセスを割り当てるためのサーバを選択している。
【０００４】
このラウンドロビン方式やリーストコネクション方式を用いて負荷分散させると、実行されるプロセスが消費するリソース（たとえば、ＣＰＵやメモリなど、パーソナルコンピュータが備える資源）の消費量や、サーバが備えるリソースの量とは関係無くサーバの割り当てがおこなわれる。
【０００５】
図１９は、サーバが備えるリソース量とプロセスが消費するリソース量との関係の一例を示す説明図である。図１９において、サーバプログラムを実行するためのサーバのＣＰＵの消費量をＸ座標、メモリの消費量をＹ座標としている。図１９に示すＸ座標上のＸmaxは、ＣＰＵ消費量の最大値である１００％を表し、Ｙ座標上のＹmaxは、メモリ消費量の最大値である１００％を表す。そして、ＣＰＵとメモリとがそれぞれ１００％消費される理想的な位置を座標１９０２が示している。このサーバ上で、ＣＰＵとメモリを消費するプロセス１９０１が実行されると、ＣＰＵの消費量が１００％より低いにも関わらずメモリの消費量が１００％となる。
【０００６】
また、図２０は、サーバが備えるリソース量とプロセスが消費するリソース量との関係の他の一例を示す説明図である。図２０においては、図１９と同様に、サーバプログラムを実行するためのサーバのＣＰＵの消費量をＸ座標、メモリの消費量をＹ座標としている。また、Ｘ座標上のＸmaxは、ＣＰＵ消費量の最大値である１００％を表し、Ｙ座標上のＹmaxは、メモリ消費量の最大値である１００％を表す。そして、ＣＰＵとメモリとがそれぞれ１００％消費される理想的な位置を座標２００２が示している。このサーバ上で、ＣＰＵとメモリを消費するプロセス２００１が実行されると、図１９とは逆に、メモリの消費量が１００％より低いにも関わらずＣＰＵの消費量が１００％となる。
【０００７】
また、負荷分散装置が、複数のサーバのそれぞれのセッション数を把握し、そのセッション数と各サーバごとのマシン性能によって予め決めた重み付けとにより、複数のサーバの中から適切なサーバを選択しセッションを割り当てるシステムが存在する（たとえば、下記特許文献１参照。）。
【０００８】
【特許文献１】特開２００２−２６９０６１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述したラウンドロビン方式やリーストコネクション方式による負荷分散では、サーバが備えるリソースやプロセスが消費するリソースとは関係なく、クライアントとのセッション数などによって負荷分散されてしまうことになる。これによって、実行要求されたプロセスがサーバで起動される際にリソースの過不足が判断されるため、要求に対する応答に遅延時間ができ、クライアントに対して待ち時間が発生してしまうという問題があった。
【００１０】
一方、サーバとして使用する装置の性能によっても各サーバが備えることができるリソースの量が異なるため、ラウンドロビン方式やリーストコネクション方式などのように、単にセッション数のみで負荷分散する方式を使用した場合に、負荷分散後のリソースの使用量が考慮されず、リソースの残量が少ないサーバや、リソースの消費量に偏りがあるサーバにプロセスを割り当ててしまうという問題があった。
【００１１】
また、ＣＰＵもしくはメモリのいずれかの消費量に偏りがあるサーバに対してプロセスを実行させると、消費量の少ない方のリソースに空き領域があるにも関わらず消費量の多い方のリソース領域のみが不足することによって、新たなプロセスを実行させることができなくなる。このような、リソースの消費量に偏りがあるサーバは、リソースが均等に消費されたサーバに比べて実行可能なプロセスの数が少なくなってしまうという問題があった。
【００１２】
この発明は、上述した従来技術による問題点を解消するため、プロセスの実行を割り当てるサーバのリソースや稼働状態を数値評価することによって一ヵ所ないしは複数ヵ所に配備された複数のサーバの中から最適なサーバを選択し、各サーバにてプロセスの実行を効率的におこなわせることが可能なサーバ・クライアント・システム、負荷分散装置、負荷分散方法および負荷分散プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記課題を解決するために、この発明にかかるサーバ・クライアント・システムは、複数のサーバと複数のクライアントとがネットワークを介して接続され、前記クライアントからのプロセス要求に基づいて前記サーバが処理をおこない、処理結果を前記クライアントへ送信するサーバ・クライアント・システムにおいて、前記サーバのうちの少なくともいずれか一つが、前記クライアントから前記プロセスに関する情報を前記ネットワークを介して受信するプロセス情報受信手段と、前記プロセス情報受信手段によって受信されたプロセスに関する情報に基づいて、前記複数のサーバの中から前記プロセスを処理させるサーバを決定する決定手段と、前記決定手段によって決定されたサーバに関する情報を前記クライアントへ送信するサーバ情報送信手段と、を備え、前記クライアントが、前記サーバ情報送信手段によって送信されたサーバに関する情報を前記ネットワークを介して受信するサーバ情報受信手段と、前記サーバ情報受信手段によって受信された情報にかかるサーバへ、前記プロセス処理要求に関する情報を送信するプロセス要求送信手段と、を備えたことを特徴とする。
【００１４】
また、この発明の負荷分散装置は、複数のサーバと複数のクライアントとがネットワークを介して接続され、前記クライアントからのプロセス要求に基づいて前記サーバが処理をおこない、処理結果を前記クライアントへ送信するサーバ・クライアント・システムにおける前記サーバの負荷を分散する負荷分散装置であって、前記クライアントから前記プロセスに関する情報を前記ネットワークを介して受信するプロセス情報受信手段と、前記プロセス情報受信手段によって受信されたプロセスに関する情報に基づいて、前記複数のサーバの中から前記プロセスを処理させるサーバを決定する決定手段と、前記決定手段によって決定されたサーバに関する情報を前記クライアントへ送信するサーバ情報送信手段と、を備えたことを特徴とする。
【００１５】
また、この発明の負荷分散方法は、複数のサーバと複数のクライアントとがネットワークを介して接続され、前記クライアントからのプロセス要求に基づいて前記サーバが処理をおこない、処理結果を前記クライアントへ送信するサーバ・クライアント・システムにおける前記サーバの負荷を分散する負荷分散方法であって、前記クライアントから前記プロセスに関する情報を前記ネットワークを介して受信するプロセス情報受信工程と、前記プロセス情報受信工程によって受信されたプロセスに関する情報に基づいて、前記複数のサーバの中から前記プロセスを処理させるサーバを決定する決定工程と、前記決定工程によって決定されたサーバへ、前記プロセス処理要求に関する情報を送信するプロセス要求送信工程と、を含んだことを特徴とする。
【００１６】
また、この発明の負荷分散プログラムは、複数のサーバと複数のクライアントとがネットワークを介して接続され、前記クライアントからのプロセス要求に基づいて前記サーバが処理をおこない、処理結果を前記クライアントへ送信するサーバ・クライアント・システムにおける前記サーバの負荷を分散する負荷分散プログラムであって、前記クライアントから前記プロセスに関する情報を前記ネットワークを介して受信するプロセス情報受信工程と、前記プロセス情報受信工程によって受信されたプロセスに関する情報に基づいて、前記複数のサーバの中から前記プロセスを処理させるサーバを決定する決定工程と、を前記サーバに実行させることを特徴とする。
【００１７】
ここで、決定手段（工程）は、各サーバにおけるリソースのパラメータを軸とした空間上において、前記プロセスのリソース消費量を各サーバの現リソース消費量を表わす点に加えたことによって求められるリソース消費量の予想点の、原点とパラメータの使用可能な最大容量を結ぶ直線との第１の距離を算出する第１の距離算出手段（工程）と、各サーバにおけるリソースのパラメータを軸として空間上において、前記プロセスのリソース消費量を、各サーバの現リソース消費量を表わす点に加えたことによって求められるリソース消費量の予想点の、原点との第２の距離を算出する第２の距離算出手段（工程）と、を備え（含み）、前記第１の距離および前記第２の距離の一方ないしは両方の値に基づいて、前記プロセスを処理させるサーバを決定するようにしてもよい。
【００１８】
また、前記パラメータには、前記サーバのＣＰＵの負荷量、システムメモリの負荷量、グラフィック処理ユニットの負荷量、ビデオメモリの負荷量およびネットワークインタフェースカードの負荷量の少なくともいずれか一つを含むようにしてもよい。
【発明の効果】
【００１９】
本発明によれば、プロセスの実行を割り当てるサーバのリソースや稼働状態を数値評価することによって一ヵ所ないしは複数ヵ所に配備された複数のサーバの中から最適なサーバを選択し、各サーバにてプロセスの実行を効率的におこなわせることが可能になるという効果を奏する。
【発明を実施するための最良の形態】
【００２０】
以下に添付図面を参照して、この発明にかかるサーバ・クライアント・システム、負荷分散装置、負荷分散方法および負荷分散プログラムの好適な実施の形態を詳細に説明する。
【００２１】
（システム構成）
まず、この発明の本実施の形態にかかる負荷分散装置を含むサーバ・クライアント・システムのシステム構成について説明する。図１は、この発明の本実施の形態にかかるサーバ・クライアント・システムのシステム構成を示す概要図である。図１において、サーバ１０１ａ〜１０１ｎは、端末装置（クライアント）１０２あるいは電話局１０５とがそれぞれ、インターネットなどのネットワーク１００を介して接続し構成されている。また、電話局１０５には無線基地局１０４が接続され、携帯電話機１０３はこの無線基地局１０４を介してサーバ１０１ａ〜１０１ｎと接続される。
【００２２】
サーバ１０１ａ〜１０１ｎは、たとえば、ＰＣサーバと呼ばれるサーバ用途に使用されるパーソナルコンピュータであり、Ｗｅｂコンテンツの配信やネットワークゲーム配信などをおこなうサービス事業者により管理、運営されている。そして、ＰＣサーバに専用のアプリケーションソフトウエアをインストールすることにより負荷分散機能を備えた負荷分散装置となる。負荷分散機能を備えたサーバはシステム全体内で１つないしは複数台存在することが可能である。ここでは、サーバ１０１ａを負荷分散装置として以下説明をおこなう。
【００２３】
したがって、サーバ１０１ａ以外のサーバ（プロセス処理サーバ）１０１ｂ〜１０１ｎについても同様に専用のアプリケーションソフトウエアをインストールすることによって負荷分散機能を備えた負荷分散装置となり得ることができ、負荷分散装置１０１ａとして起動しているサーバ１０１ａが障害により停止した場合には、サーバ１０１ｂ〜１０１ｎのいずれかが負荷分散装置１０１ａとして切り替わり、代理をおこなうことができる。
【００２４】
負荷分散装置１０１ａは、後述するユーザが使用する端末装置１０２や携帯電話機１０３からプロセスの実行要求があった場合、そのプロセスの実行をサーバ１０１ｂ〜１０１ｎに対して割り振る。サーバ１０１ｂ〜１０１ｎは、要求されたプロセスを実行し、その実行結果となるサービスをネットワーク１００を介して後述する端末装置１０２や携帯電話機１０３に対して提供する。
【００２５】
端末装置１０２は、たとえばパーソナルコンピュータなどの情報端末装置であり、個人や企業などで使用されている。また、携帯電話機１０３は、たとえばＮＴＴドコモ社の「ｉモード（登録商標）」や、ａｕ社の「ｅｚｗｅｂ（登録商標）」のように、少なくともインターネットへの接続が可能で、ブラウザやＪａｖａ（登録商標）アプリケーションなどを用いてネットワーク１００へアクセスする情報通信機能を備えた携帯電話機である。そして、無線基地局１０４は、電話局１０５から受信した通信データを携帯電話機１０３へ無線電波にして送信し、さらに、携帯電話機１０３から受信した無線電波を電話局１０５に対して送信する。電話局１０５は、携帯電話機１０３と負荷分散装置１０１ａとサーバ１０１ｂ〜１０１ｎとの間でデータ通信をおこなう際の回線交換をおこなう。
【００２６】
携帯電話機１０３に対するシステムは、携帯電話機の代わりに無線ＬＡＮアダプタを装着／内蔵したノートＰＣやＰＤＡとし、携帯電話の無線基地局１０４の代わりに無線ＬＡＮの基地局とした場合、いわゆるホットスポットサービスのためのシステムと読み代えることもでき、同様に本発明が有効に動作する形態である。
【００２７】
また、負荷分散装置１０１ａと、サーバ１０１ｂ〜１０１ｎと、端末装置１０２あるいは携帯電話機１０３との間でおこなうネットワーク１００を介した通信においては、ＳＳＬ方式等を利用したセキュリティ機能や、暗号化技術等を用い、秘密保持を確保するようにするとよい。
【００２８】
（ハードウエア構成）
つぎに、この発明の本実施の形態にかかる端末装置およびサーバのハードウエア構成について説明する。図２は、この発明の本実施の形態にかかるサーバ・クライアント・システムの負荷分散装置および端末装置およびサーバのハードウエア構成を示すブロック図である。
【００２９】
図２において、端末装置１０２と負荷分散装置１０１ａとサーバ１０１ｂ〜１０１ｎとは、ＣＰＵ２０１と、ＲＯＭ２０２と、ＲＡＭ２０３と、ＨＤＤ（ハードディスクドライブ）２０４と、ＨＤ（ハードディスク）２０５と、ＦＤＤ（フレキシブルディスクドライブ）２０６と、着脱可能な記録媒体の一例としてのＦＤ（フレキシブルディスク）２０７と、ディスプレイ２０８と、ネットワークＩ／Ｆ（インタフェース）２０９と、キーボード２１０と、マウス２１１と、プリンタ２１２と、ＣＤ−ＲＯＭドライブ２１３と、着脱可能な記録媒体の一例としてのＣＤ−ＲＯＭ２１４と、スピーカ２１５とを備えている。また、各構成部はバス２００によってそれぞれ接続されている。
【００３０】
ここで、ＣＰＵ２０１は、端末装置１０２、負荷分散装置１０１ａ、サーバ１０１ｂ〜１０１ｎのそれぞれの全体の制御を司る。ＲＯＭ２０２は、基本入出力プログラムや、ブートプログラムなどのプログラムを記憶している。ＲＡＭ２０３は、ＣＰＵ２０１のワークエリアとして使用される。ＨＤＤ２０４は、ＣＰＵ２０１の制御にしたがってＨＤ２０５に対するデータのリード／ライトを制御する。ＨＤ２０５は、ＨＤＤ２０４の制御で書き込まれたデータを記憶する。
【００３１】
ＦＤＤ２０６は、ＣＰＵ２０１の制御にしたがってＦＤ２０７に対するデータのリード／ライトを制御する。ＦＤ２０７は、ＦＤＤ２０６の制御で書き込まれたデータを記憶する。着脱可能な記録媒体として、ＦＤ２０７の他、ＣＤ−ＲＷ、ＭＯ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）などであってもよい。ディスプレイ２０８は、カーソル、メニュー、あるいは文書、画像、機能情報などのデータに関するウインドウ（ブラウザ）を表示する。たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどである。
【００３２】
ネットワークＩ／Ｆ２０９は、ネットワーク１００に接続され、このネットワーク１００を介して端末装置１０２に接続される。そして、ネットワークＩ／Ｆ２０９は、ネットワーク１００と内部とのインタフェースを司り、負荷分散装置１０１ａ、サーバ１０１ｂ〜１０１ｎ、端末装置１０２からのデータの入出力を制御する。ネットワークＩ／Ｆ２０９は、たとえば、モデムやＬＡＮアダプタなどである。
【００３３】
キーボード２１０は、文字、数値、各種指示などの入力のためのキーを備え、データ入力をおこなう。マウス２１１は、カーソルの移動や範囲選択、あるいはウインドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様の機能を備えるものであれば、トラックボール、ジョイスティック、およびゲームパッドなどであってもよい。そして、プリンタ２１２は、文書データを印刷する。たとえば、レーザプリンタ、インクジェットプリンタなどである。ＣＤ−ＲＯＭドライブ２１３は、ＣＰＵ２０１の制御にしたがってＣＤ−ＲＯＭ２１４に対するデータのリードを制御する。ＣＤ−ＲＯＭ２１４は、着脱可能な記録媒体である。スピーカ２１５（ヘッドフォン、イヤフォンを含む）は、音声や音楽などを出力する。
【００３４】
つぎに、この発明の本実施の形態にかかる携帯電話機のハードウエア構成について説明する。図３は、この発明の本実施の形態にかかるサーバ・クライアント・システムの携帯電話機のハードウエア構成を示すブロック図である。図３において、携帯電話機１０３は、ＣＰＵ３０１と、ＲＯＭ３０２と、ＲＡＭ３０３と、ディスプレイ３０４と、操作キー３０５と、マイク３０６と、スピーカ３０７と、通信制御部３０８と、アンテナ３０９と、外部接続端子３１０と、外部記憶装置３１１とを備え、アンテナ３０９は無線基地局１０４と通信接続している。また、各構成部はバス３００によってそれぞれ接続されている。
【００３５】
ここで、ＣＰＵ３０１は、携帯電話機１０３全体の制御を司る。ＲＯＭ３０２は、基本入出力プログラムや、ブートプログラムなどのプログラムを記憶している。ＲＡＭ３０３は、ＣＰＵ３０１のワークエリアとして使用される。ディスプレイ３０４は、液晶ディスプレイであり、文書、画像、機能情報などのデータに関するウインドウ（ブラウザ）を表示する。操作キー３０５は、文字、数字、各種指示などを入力する。マイク３０６は、入力した音声を電気信号に変換する。スピーカ３０７は、入力した電気信号を音声に変換して出力する。通信制御部３０８は、アンテナ３０９を介して無線基地局１０４と電波の送受信をし、制御をおこなう。外部接続端子３１０は、フラッシュメモリなどの外部記憶装置３１１との接続口となる。
【００３６】
（機能的構成）
つぎに、この発明の本実施の形態にかかるサーバ・クライアント・システムの機能的構成について説明する。図４は、この発明の本実施の形態にかかるサーバ・クライアント・システムの機能的構成を示すブロック図である。図４において、サーバ・クライアント・システムを構成する負荷分散装置１０１ａは、プロセス情報受信部４０１と、決定部４０２と、サーバ情報送信部４０３とを備えており、さらに、決定部４０２には距離算出部４０４が含まれる。また、サーバ・クライアント・システムを構成するクライアント１０２は、プロセス情報送信部４１１と、サーバ情報受信部４１２と、プロセス要求送信部４１３とを備えている。
【００３７】
プロセス情報受信部４０１は、クライアント１０２からプロセスに関する情報をネットワーク１００を介して受信する。また、決定部４０２は、プロセス情報受信部４０１によって受信されたプロセスに関する情報に基づいて、複数のプロセス処理サーバ１０１ｂ〜１０１ｎの中からプロセスを処理させるサーバを決定する。ここで、距離算出部４０４は、リソースのパラメータを軸とした空間上において、プロセスのリソース消費量の、原点とパラメータの使用可能な最大容量を結ぶ直線との距離を算出する。そして、距離算出部４０４によって算出された距離に基づいて、プロセスを処理させるサーバを決定する。また、サーバ情報送信部４０３は、決定部４０２によって決定されたサーバに関する情報をクライアント１０２へ送信する。
【００３８】
一方、プロセス情報送信部４１１は、プロセス要求をおこなう前に、プロセスに関する情報をネットワーク１００を介して負荷分散装置１０１ａに送信する。また、サーバ情報受信部４１２は、負荷分散装置１０１ａのサーバ情報送信部４０３によって送信されたサーバに関する情報をネットワーク１００を介して受信する。また、プロセス要求送信部４１３は、サーバ情報受信部４１２によって受信された情報にかかるサーバ、すなわち負荷分散装置１０１ａの決定部４０２によって決定されたサーバ（プロセス処理サーバ１０１ｂ〜１０１ｎのいずれか）へ、プロセス処理要求に関する情報を送信する。そうして、このプロセス要求に基づいて上記サーバが処理をおこない、処理結果をクライアント１０２へ送信することになる。
【００３９】
（負荷分散の処理手順）
つぎに、この発明の本実施の形態にかかる負荷分散装置１０１ａを用いた負荷分散方法の処理手順の概要について説明する。図５は、この発明の本実施の形態にかかる負荷分散装置を用いた負荷分散方法の処理手順の概要を示す説明図である。図５において、負荷分散装置１０１ａは、端末装置１０２ａ〜１０２ｎから要求されるプロセス（たとえば、オンラインゲームなどのゲームプロセス）の実行を負荷分散し、サーバ１０１ｂ〜１０１ｎを割り当てる。
【００４０】
端末装置１０２ａを利用してオンラインゲームをおこなう場合、端末装置１０２ａから負荷分散装置１０１ａに対し、矢印５０１に示すゲームプロセス実行が要求される。プロセス実行が要求された負荷分散装置１０１ａは、サーバ１０１ｂ〜１０１ｎの中からゲームプロセスを実行させるためのゲームサーバを評価する。ゲームサーバの評価は、サーバ１０１ｂ〜１０１ｎの各々が備えるリソースに基づいておこなわれる。そして、負荷分散装置１０１ａによる評価の結果、矢印５０２に示すようにサーバ１０１ｂが負荷分散先として決定される。ゲームサーバが決定されると、負荷分散装置１０１ａからゲームプロセス実行が要求され、サーバ１０１ｂにてゲームプロセスが実行される。これにより、端末装置１０２ａからゲームの利用を開始することができる。
【００４１】
上述した通り、負荷分散装置１０１ａは、端末装置１０２ａ〜１０２ｎからゲームプロセスが実行要求されることをきっかけとし、サーバ１０１ｂ〜１０１ｎの中からこのゲームプロセスを実行する最適なものを選択する。また、上述したようなオンラインゲームに限らず、他のアプリケーションソフトウエアによるプロセスを実行させる際にも、負荷分散装置１０１ａを用いて負荷分散させることができる。
【００４２】
つぎに、この発明の本実施の形態にかかるサーバのリソース量とプロセスが消費するリソース量との関係について説明する。図６および図７は、この発明の本実施の形態にかかる理想的なプロセスの割り当ての一例を示す説明図である。図６において、サーバ１０１ｂ〜１０１ｎのＣＰＵの消費量をＸ座標、メモリの消費量をＹ座標として示している。このグラフは、サーバ１０１ｂ〜１０１ｎで実行されるプロセスによって使われるリソースの消費傾向を表す。
【００４３】
図６に示すグラフの特徴は、サーバ１０１ｂが備えたものであるとして以下説明をおこなう。このグラフではＣＰＵ消費量の最大値である１００％に当たる量を２０という数値で表している。これは、後述する図７にて示すサーバ１０１ｃが備えるＣＰＵの消費量との比を表す数値（サーバ１０１ｃのＣＰＵの消費量は１０とする）であり、サーバ１０１ｂはサーバ１０１ｃの２倍のＣＰＵを消費できる性能を備えることを表す。
【００４４】
つぎに、メモリ消費量の最大値である１００％に当たる量を１０という数値で表している。これは、ＣＰＵの場合と同様、後述する図７にて示すサーバ１０１ｃが備えるメモリの消費量との比を表す数値（図７ではメモリの消費量は２０とする）であり、サーバ１０１ｂはサーバ１０１ｃの１／２倍のメモリを消費できる性能を備えることを表す。
【００４５】
図６のグラフ内に示すプロセス６０１は、サーバ１０１ｂ上で実行されるプロセスのＣＰＵとメモリの消費量を表したものである。このプロセス６０１が実行されることによって占有されるＣＰＵおよびメモリのそれぞれの消費量は、ＣＰＵが１０とメモリが５となり、それぞれサーバ１０１ｂが備えるリソースの半分を占める。
【００４６】
１つ目のプロセス６０１が起動された状態は、原点からＣＰＵの消費量の１０の位置とメモリの消費量の５の位置までの矩形として表すことができ、消費されるＣＰＵとメモリの最大値は座標６０２として表される（以下、一つのプロセスによって消費されるＣＰＵとメモリの最大値からなる座標を「消費リソース座標」という）。さらに、２つ目のプロセス６０１が実行されると、１つ目のプロセス６０１の座標６０２を開始点とし、階段状に表すことができる。この２つ目のプロセス６０１が割り当てられることにより、ＣＰＵとメモリの消費量がサーバ１０１ｂのそれぞれのリソースの最大値となり、この最大値を示す座標が座標６０３として表される。
【００４７】
このように、プロセス６０１が２つ実行されると、サーバ１０１ｂにおけるＣＰＵおよびメモリの消費量はともに最大値となり、他のプロセスを割り当てる残りのリソースがＣＰＵとメモリともに無くなり、リソースが理想的に消費された状態となる。
【００４８】
また図７において、サーバ１０１ｂ〜１０１ｎのＣＰＵの消費量をＸ座標、メモリの消費量をＹ座標として示している。このグラフは、サーバ１０１ｂ〜１０１ｎで実行されるプロセスによって使われるリソースの消費傾向を表すものである。
【００４９】
図７に示すグラフの特徴は、サーバ１０１ｃが備えたものであるとして以下説明をおこなう。このグラフではＣＰＵ消費量の最大値である１００％に当たる量を１０という数値で表している。これは、前述した図６のサーバ１０１ｂが備えるＣＰＵの消費可能な量の１／２倍を表し、サーバ１０１ｂのＣＰＵの消費量の１／２倍のＣＰＵを消費できる性能を備えることを表す。
【００５０】
つぎに、メモリ消費量の最大値である１００％に当たる量を２０という数値で表している。これは、ＣＰＵの場合と同様、前述した図６のサーバ１０１ｂが備えるメモリの消費可能な量の２倍を表し、サーバ１０１ｂのメモリの消費量の２倍のメモリを消費できる性能を備えることを表す。
【００５１】
図７のグラフ内に示すプロセス７０１は、サーバ１０１ｃ上で実行されるプロセスのＣＰＵとメモリの消費量を表したものである。このプロセス７０１が実行されることによって占有されるＣＰＵおよびメモリのそれぞれの消費量は、ＣＰＵが５とメモリが１０となり、それぞれサーバ１０１ｃが備えるリソースの半分を占める。
【００５２】
１つ目のプロセス７０１が起動された状態は、原点からＣＰＵの消費量の５の位置とメモリの消費量の１０の位置までの矩形として表すことができ、消費されるＣＰＵとメモリの最大値は座標７０２として表される。さらに、２つ目のプロセス７０１が実行されると、１つ目のプロセス７０１の座標７０２を開始点とし、階段状に表すことができる。この２つ目のプロセス７０１が割り当てられることにより、ＣＰＵとメモリの消費量がサーバ１０１ｃのそれぞれのリソースの最大値となり、この最大値を示す座標が座標７０３として表される。
【００５３】
このように、プロセス７０１が２つ実行されると、サーバ１０１ｃにおけるＣＰＵおよびメモリの消費量はともに最大値となり、他のプロセスを割り当てる残りのリソースがＣＰＵとメモリともに無くなり、リソースが理想的に消費された状態となる。
【００５４】
つぎに、この発明の本実施の形態にかかるサーバにおける最適なリソース消費について説明する。図８〜図１０は、本実施の形態にかかるサーバ・クライアント・システムのサーバにおける最適なリソース消費の一例を表す説明図である。図８において、ＣＰＵの消費量をＸ座標、メモリの消費量をＹ座標として示している。図８および後述する図９、図１０では、サーバ１０１ｄ〜１０１ｆのサーバがある場合、それぞれのサーバによって消費可能なリソースの量が異なることを示している。
【００５５】
まず、図８のグラフの特徴は、サーバ１０１ｄが備えたものとして説明をおこなう。このグラフでは、ＣＰＵ消費量の最大値である１００％に当たる量を最大値８０１にて表している。これは、後述する図９のＣＰＵ消費量の最大値の８０％を表し、さらに、図１０のＣＰＵ消費量の最大値の５０％を表す。そして、メモリ消費量の最大値である１００％に当たる量を最大値８０２として表している。これは、後述する図９のメモリの消費量の最大値と同じ量を表し、さらに、図１０のメモリの消費量の最大値の２倍となる２００％を表す。
【００５６】
そして、図８のグラフに示すように、最初に起動されたプロセス８０３が原点の位置から記載され、プロセス８０３に続いて起動されるプロセスがプロセス８０４〜８０８まで時系列に階段状に記載されて、最終的にはＣＰＵ消費量の最大値８０１とメモリ消費量の最大値８０２との交点となる座標８０９に到達する。このことによって、サーバ１０１ｄはＣＰＵとメモリが理想的に消費された状態となっている。
【００５７】
図９において、グラフは、ＣＰＵの消費量をＸ座標、メモリの消費量をＹ座標として示している。図９では図８と同様、サーバ１０１ｄ〜１０１ｆのサーバがある場合、それぞれのサーバにより消費できるリソースの量に違いがあることを示している。
【００５８】
図９に示すグラフの特徴は、サーバ１０１ｅが備えたものとして以下説明をおこなう。このグラフではＣＰＵ消費量の最大値である１００％に当たる量を最大値９０１として表している。これは、前述した図８のＣＰＵ消費量の最大値の１２５％を表し、さらに、後述する図１０のＣＰＵ消費量の最大値の６２．５％を表す。
【００５９】
つぎに、メモリ消費量の最大値である１００％に当たる量を最大値９０２として表している。これは、前述した図８のメモリの消費量の最大値と同じ量を表し、さらに、後述する図１０のメモリの消費量の最大値の２倍となる。
【００６０】
そして、図９のグラフに示すように、最初に起動されたプロセス９０３が原点の位置から記載され、プロセス９０３に続いて起動されるプロセスがプロセス９０４〜９０８まで時系列に階段状に記載されていき、最終的にはＣＰＵ消費量の最大値９０１とメモリ消費量の最大値９０２との交点となる座標９０９に到達する。このことにより、サーバ１０１ｅはＣＰＵとメモリが理想的に消費された状態となっている。
【００６１】
図１０において、ＣＰＵの消費量をＸ座標、メモリの消費量をＹ座標として示している。図１０では図８、図９と同様、サーバ１０１ｄ〜１０１ｆのサーバがある場合、それぞれのサーバにより消費できるリソースの量に違いがあることを示している。
【００６２】
図１０に示すグラフの特徴は、サーバ１０１ｆが備えたものとして以下説明をおこなう。このグラフではＣＰＵ消費量の最大値である１００％に当たる量を最大値１００１として表している。これは、前述した図８のＣＰＵ消費量の最大値の２００％を表し、さらに、図９のＣＰＵ消費量の最大値の１６０％を表す。そして、メモリ消費量の最大値である１００％に当たる量を最大値１００２として示し、この最大値１００２は、前述した図８および図９のメモリの消費量の最大値の５０％となっている。
【００６３】
そして、図１０のグラフに示すように、最初に起動されたプロセス１００３が原点の位置から記載され、プロセス１００３に続いて起動されるプロセスがプロセス１００４〜１００８まで時系列に階段状に記載されていき、最終的にはＣＰＵ消費量の最大値１００１とメモリ消費量の最大値１００２との交点となる座標１００９に到達する。このことにより、サーバ１０１ｆはＣＰＵとメモリが理想的に消費された状態となっている。
【００６４】
つぎに、この発明の本実施の形態にかかるサーバのリソース消費例について説明する。図１１は、この発明の本実施の形態にかかるサーバのリソース消費例を示す説明図である。図１１において、Ｘ座標上のＸmaxは、ＣＰＵ消費量の最大値となる１００％が示され、Ｙ座標上のＹmaxは、メモリ消費量の最大値となる１００％が示されている。
【００６５】
折れ線１１０１は、ＣＰＵおよびメモリのリソースを各プロセスの発生ごとに割り当て、最終的にＣＰＵ消費量の最大値であるＸmaxと、メモリ消費量の最大値であるＹmaxとの交点の座標１１０２に到達した例を示す。これにより、折れ線１１０１が、ＣＰＵとメモリの消費量に無駄が無いプロセスの割り当てがおこなわれた場合のグラフであることを示し、リソースが理想的に消費された結果を表している。
【００６６】
折れ線１１０３は、ＣＰＵおよびメモリのリソースを各プロセスの発生ごとに割り当てた結果、ＣＰＵ消費量がその最大値であるＸmaxに達する前にメモリ消費量が最大値であるＹmaxに到達した例を示している。このことは、折れ線１１０３が、メモリの消費量に対してＣＰＵの消費量に無駄ができた場合のグラフであることを示し、区間１１０５が示す量だけ使用可能なＣＰＵが残ったことを示している。
【００６７】
折れ線１１０６は、ＣＰＵおよびメモリのリソースを各プロセスの発生ごとに割り当てた結果、メモリ消費量がその最大値であるＹmaxに達する前にＣＰＵ消費量が最大値であるＸmaxに到達した例を示している。このことは、折れ線１１０６が、ＣＰＵの消費量に対してメモリの消費量に無駄ができた場合のグラフであることを示し、区間１１０８が示す量だけ使用可能なメモリが残ったことを示している。
【００６８】
従来の負荷分散装置によるプロセスの割り当て方は、サーバのリソース消費量を判断せずに負荷分散をおこなうため、前述した折れ線１１０３，１１０６にて示したような、リソースが均等に消費されない状態となるのが通常である。これに対してリソースであるＣＰＵとメモリとが均等に消費されるようなプロセスの割り当てがおこなわれると、折れ線１１０１のように、消費されない無駄なリソースが残ることを防止することができる。
【００６９】
（サーバの評価方法）
つぎに、この発明の本実施の形態にかかる負荷分散装置によるサーバの評価方法について説明する。図１２は、この発明の本実施の形態にかかる負荷分散装置によるサーバの評価方法の概要を示す説明図である。図１２において、グラフ１２０２，１２０３は、ＣＰＵの消費量をＸ座標、メモリの消費量をＹ座標として示している。以下、グラフ１２０２はサーバ１０１ｂのリソース消費の内容を示し、グラフ１２０３はサーバ１０１ｃのリソース消費の内容を示すものである。
【００７０】
まず、グラフ１２０２はグラフ１２０３と比較して、ＣＰＵ消費量の最大値が２倍とメモリ消費量の最大値が１／２倍のリソースを備えたサーバの特性を示している。グラフ１２０２にはプロセス１２０４，１２０５が既に割り当てられ実行されている。一方、グラフ１２０３はグラフ１２０２と比較してＣＰＵ消費量の最大値が１／２倍とメモリ消費量の最大値が２倍のリソースを備えたサーバの特性を示している。グラフ１２０３にはプロセス１２１０，１２１１が既に割り当てられ実行されている。以下では、プロセス１２０１の実行要求が発生した場合、プロセス１２０１を、グラフ１２０２またはグラフ１２０３のいずれの特性を備えたサーバに負荷分散すると最適にリソースが消費されるかを判断する方法を説明する。
【００７１】
グラフ１２０３にてプロセス１２０１を実行させた場合、プロセス１２１１の頂点１２１１ａからプロセス１２０１分のリソース消費量が加わることにより、消費されるリソース全体を表す座標（消費リソース座標）は座標１２１５となる。そして、ＣＰＵおよびメモリの消費量の最大値との交点の座標１２１３と原点とを結んだ直線をリソース消費最適線１２１２（以下、ＣＰＵおよびメモリの消費量の最大値からなる交点の座標と、原点とを結んだ直線をリソース消費最適線と呼ぶ）とし、座標１２１５からこのリソース消費最適線１２１２に対して垂線１２１４を引く。
【００７２】
一方、グラフ１２０２にてプロセス１２０１を実行させた場合、プロセス１２０５の頂点１２０５ａからプロセス１２０１分のリソース消費量が加わることにより、消費されるリソース全体を表す座標（消費リソース座標）は座標１２０９となる。そして、ＣＰＵおよびメモリの消費量の最大値との交点の座標１２０７と原点とを結んだ直線をリソース消費最適線１２０６とし、座標１２０９からこのリソース消費最適線１２０６に対して垂線１２０８を引く。
【００７３】
そして、垂線１２０８と、垂線１２１４との長さを比較すると、垂線１２０８の長さの方が短くなることが示される。このことは、プロセス１２０１を、サーバ１０１ｃにて実行させるより、サーバ１０１ｂにて実行させた方が、サーバ１０１ｂのリソースであるメモリの消費量とＣＰＵの消費量のバランスが均等に近くなることを示している。よって、プロセス１２０１を実行させるサーバとして、グラフ１２０３の特性を備えたサーバ１０１ｃが選択されず、グラフ１２０２の特性を備えたサーバ１０１ｂが選択される。サーバ１０１ｂにてプロセス１２０１が実行されると、リソースが最適に消費されることになる。
【００７４】
このとき、垂線１２０８と１２１４の長さが等しく、どちらのサーバが選択された場合も同様にリソースがより適切に消費されると判断できる場合も存在し得る。このような場合には、消費リソース座標１２０９、１２１５と原点との距離１２１６と１２１７を比較し、その長さの短いサーバを割り当てる。このようにすることで、リソース消費最適線との距離が同様のサーバが存在した場合によりリソース消費量が小さいサーバを割り当てることが可能となる。加えて、リソース消費量とリソース消費最適線からの距離の両方を同時に加味したい場合は垂線（１２０８、１２１４）と原点との距離（１２１６、１２１７）を乗じた面積（１２０８×１２１６、１２１４×１２１７）がより小さい値を持つサーバを選択することによって実現できる。
【００７５】
つぎに、この発明の本実施の形態にかかる割り当てサーバの評価方法の関数について説明する。図１３は、この発明の本実施の形態にかかる割り当てサーバの評価方法の関数の一例を示す説明図である。図１３において、Ｘ座標上のＸmaxは、ＣＰＵ消費量の最大値となる１００％が表され、Ｙ座標上のＹmaxは、メモリ消費量の最大値となる１００％が表されている。そして、リソースのパラメータを軸とした空間上で原点とパラメータの使用可能な最大容量、すなわちＸmaxとＹmaxとの交点の座標を（ｘｍａｘ，ｙｍａｘ）とし、（ｘｍａｘ，ｙｍａｘ）と原点（０，０）とを結んだ直線をリソース消費最適線１３０１とする。なお、図１３に示すグラフの特徴は、サーバ１０１ｂが備えたものとして以下説明をおこなう。
【００７６】
まず、１つ目に実行中のプロセス１３０２は、プロセス１３０２によって消費されるメモリの消費量とＣＰＵの消費量とを縦横の各辺の長さとした原点からの矩形として示される。これは、各プロセスが消費するリソースを表す矩形としたものである。このプロセス１３０２によって表される矩形の原点からの対角の頂点は座標１３０２ａとして示される。
【００７７】
実行中の２つ目のプロセス１３０３は、座標１３０２ａを開始点とし、プロセス１３０３によって消費されるメモリの消費量とＣＰＵの消費量とを縦横の各辺の長さとした矩形として示すことができる。この矩形の開始点である座標１３０２ａからの対角の頂点は座標１３０３ａとして示される。
【００７８】
そして、新たに割り当てる３つ目のプロセスが、プロセス１３０４である場合、座標１３０３ａを開始点とし、ＣＰＵの使用量をｃｘ、メモリの使用量をｃｙとした矩形として図１３のように示される。矩形の開始点である座標１３０３ａの対角を示す頂点は座標１３０４ａとして示される。
つぎに、座標１３０４ａからリソース消費最適線１３０１に対して下ろす垂線１３０９の距離を求める。まず、図１３のグラフ上に示されるｘおよびｙの位置の値は以下の式（１）、式（２）にて表される。
【００７９】
ｙ＝ｆｘｙ（ｘ）＝（ｙｍａｘ／ｘｍａｘ）×ｘ・・・（１）
ｘ＝ｆｙｘ（ｙ）＝（ｘｍａｘ／ｙｍａｘ）×ｙ・・・（２）
【００８０】
前述したように、１つ目のプロセス１３０２と２つ目のプロセス１３０３とが消費する消費リソース座標は座標１３０３ａによって示されている。そして、３つ目のプロセスが消費する消費リソース座標は座標１３０４ａとして示している。この座標１３０４ａの座標は（ｘ１，ｙ１）＝（ｘ０＋ｃｘ，ｙ０＋ｃｙ）として表される。
【００８１】
一方、縦軸と並行な座標１３０４ａを通る直線と、リソース消費最適線１３０１との交点を座標１３０５とする。また、横軸と並行な座標１３０４ａを通る直線と、リソース消費最適線１３０１との交点を座標１３０６とする。座標１３０４ａと座標１３０５とを結ぶ直線を直線１３０７とし、直線１３０７の長さは以下の式（３）にて与えられる。
【００８２】
Δｙ＝｜ｆｘｙ（ｘ１）−ｙ１｜・・・（３）
【００８３】
また、座標１３０４ａと座標１３０６とを結ぶ直線を直線１３０８とし、直線１３０８の長さは以下の式（４）で与えられる。
【００８４】
Δｘ＝｜ｆｙｘ（ｙ１）−ｘ１｜・・・（４）
【００８５】
座標１３０４ａからリソース消費最適線１３０１へ引く垂線を垂線１３０９とし、垂線１３０９の長さは以下の式（５）にて与えられる。
【００８６】
ｄｉｓｘｙ＝ΔｘΔｙ／√（Δｘ２  ＋  Δｙ２）・・・（５）
【００８７】
このｄｉｓｘｙが、座標１３０４ａのリソース消費最適線１３０１からの距離であり、負荷分散装置１０１ａが複数のサーバの中からプロセスを実行させるためのサーバを決定するときに評価する値となる。
【００８８】
そして、つぎに、前述したＣＰＵとメモリ以外にも他のパラメータを含むｎ次元関数の場合の消費リソース座標からリソース消費最適線への距離を求める式の説明をおこなう。まず、リソースとして用いるパラメータがｎ個（ｘｉ）（１≦ｉ≦ｎ）のｎ次ユークリッド空間上で求めることができるリソース消費最適線は、２次元の場合を用いて以下の式（６）にて表される（１≦ｉ≦ｎ）。
【００８９】
ｘｉ＋１＝ｆｘｉ ｘ（ｉ＋１）ｍｏｄ ｎ（ｘｉ）＝（ｘ（ｉ＋１）ｍｏｄ ｎ ｍａｘ／ｘｉ ｍａｘ）×ｘｉ
・・・（６）
【００９０】
現在のサーバのリソースの消費量を（ｘｉ０）（１≦ｉ≦ｎ）、プロセスのリソースの使用量を（ｃｉ）（１≦ｉ≦ｎ）としたとき、
【００９１】
ｘｉ１＝ｘｉ０＋ｃｉ・・・（７）
【００９２】
このとき、式（８）を、
【００９３】
Δｘ（ｉ＋１）ｍｏｄ ｎ＝｜ｆｘｉ ｘ（ｉ＋１）ｍｏｄ ｎ（ｘｉ１）−ｘ（ｉ＋１）ｍｏｄ ｎ １｜
・・・（８）
【００９４】
とし（１≦ｉ≦ｎ）、ｎ次元ユークリッド空間上での点（ｘｉ１）（１≦ｉ≦ｎ）とリソース消費最適線１３０１との距離は以下の式（９）のように表記できる。
【００９５】
【数１】
2007200349.tif 000003
【００９６】
したがって、負荷分散装置１０１ａは、負荷分散の対象となるサーバ１０１ｂ〜１０１ｎのそれぞれの式（５）あるいは式（９）にて示される距離（ｄｉｓ）を算出し、その距離が最も短いサーバに対してプロセスの実行処理を割り当てる。
【００９７】
また、ｎ次元ユークリッド空間上での点（ｘｉ１）（１≦ｉ≦ｎ）と原点との距離１３１０は式（１０）のように表記できる。
【００９８】
【数２】
2007200349.tif 000004
【００９９】
したがって垂線の長さｄｉｓが等しいサーバの中から１つを選択する場合にはｄｉａｇの値が小さいものを選択し、プロセスの実行処理を割り当てる。さらに垂線の長さｄｉｓと原点との距離ｄｉａｇを同時に評価したい場合にはｄｉｓ×ｄｉａｇの値が最も小さいサーバに対して処理を割り当てる。
【０１００】
なお、前述したＣＰＵとメモリ以外のリソースとは、たとえば、ＧＰＵやビデオメモリ、ネットワークインターフェースカードなどである。ＧＰＵは、３Ｄグラフィックを利用するゲームにてレンダリングやジオメトリ演算をハードウエアにておこなうためのグラフィックチップである。また、ビデオメモリは、ＧＰＵが画像処理の演算をおこなう際に使用するＧＰＵ内に備えるメモリである。また、ネットワークインターフェースカードは、例えばイーサネット（登録商標）アダプタであり、１００Ｂａｓｅ、１０００Ｂａｓｅ−ＴＸ等を終端するものである。
【０１０１】
つぎに、この発明の本実施の形態にかかる負荷分散装置によるサーバの評価および決定の処理の内容について説明する。図１４は、この発明の本実施の形態にかかる負荷分散装置によるサーバの評価および決定の処理手順の一例を示すフローチャートである。図１４のフローチャートにおいて、まず、負荷分散装置１０１ａがサーバ１０１ｂ〜１０１ｎを評価するときに用いるパラメータを設定する（ステップＳ１４０１）。パラメータは、たとえば、ＣＰＵの消費量や、メモリの消費量や、ＧＰＵの消費量や、ＧＰＵの備えるビデオメモリの消費量や、ネットワークインターフェースカードの帯域消費量などである。
【０１０２】
つぎに、複数のプロセスの実行時にそれぞれが使用するリソースの使用量を、各パラメータごとに定義して設定する（ステップＳ１４０２）。そして、サーバ１０１ｂ〜１０１ｎごとに、ステップＳ１４０２にて定義したパラメータであるリソースの最大値の設定をおこなう（ステップＳ１４０３）。
【０１０３】
つぎに、ステップＳ１４０１にて設定した各パラメータのリソース消費量について、サーバ１０１ｂ〜１０１ｎごとに取得し、監視する（ステップＳ１４０４）。クライアントである端末装置１０２や携帯電話機１０３からプロセス実行の要求が有ったか否かを判断する（ステップＳ１４０５）。プロセス実行の要求が無かった場合（ステップＳ１４０５：Ｎｏ）にはステップＳ１４０４に戻り、サーバ１０１ｂ〜１０１ｎの各サーバごとに消費されたリソースの消費量を監視する（ステップＳ１４０４）処理を引き続きおこなう。
【０１０４】
一方、クライアントである端末装置１０２からプロセス実行の要求が有った場合（ステップＳ１４０５：Ｙｅｓ）には、このプロセスを実行するためのサーバの候補をサーバ１０１ｂ〜１０１ｎの中から選択する（ステップＳ１４０６）。これは、ステップＳ１４０１にて設定したパラメータのいずれについてもその使用量が最大値を超えないサーバをサーバ１０１ｂ〜１０１ｎの中から選択するものである。そして、ステップＳ１４０６にて選択された候補の中から、さらに、先述した図１３の消費リソース座標１３０４ａからリソース消費最適線１３０１に下ろす垂線１３０９の距離を求めることで評価をおこない、距離が一番短い、たとえば、サーバ１０１ｂを負荷分散先として決定する（ステップＳ１４０７）。
【０１０５】
また、Ｓ１４０６のサーバ候補の選択では前述のように消費リソース座標１３０４ａからのリソース消費最適線１３０１に下ろす垂線１３０９の長さに加え、消費リソース座標１３０４ａと原点との距離１３１０を合わせて評価することができる。垂線１３０９の長さが等しいサーバが存在した場合には原点との距離１３１０が小さいサーバを選択することでよりリソース消費量の小さいサーバを選択できる。あるいは垂線１３０９の長さと原点との距離１３１０をかけ合わせた値の最も小さいサーバを選択することで、最適なリソース消費を実現し、かつリソース消費量が小さいサーバにプロセスを割り当てることができる。
【０１０６】
負荷分散装置１０１ａは、ステップＳ１４０７にて決定した負荷分散先のサーバ１０１ｂに対し、プロセスの実行要求をおこなう（ステップＳ１４０８）。そして、クライアントである端末装置１０２に対してプロセスが実行されたことを示すため、負荷分散先のサーバ１０１ｂにアクセスするための情報であるＩＰアドレスやサービスポート番号などの通知をおこなう（ステップＳ１４０９）。サーバ１０１ｂへアクセスするための情報を通知された端末装置１０２は、サーバ１０１ｂへ直接アクセスすることが可能となり、処理を終了する。
【０１０７】
つぎに、この発明の本実施の形態にかかる負荷分散装置によるサーバの評価および決定の処理手順の内容について説明する。図１５は、この発明の本実施の形態にかかる負荷分散装置によるサーバの評価および決定の処理手順の一例を示す概要図である。図１５において、負荷分散装置１０１ａは、端末装置１０２ａ〜１０２ｎから要求されるプロセスの実行を、サーバ１０１ｂ〜１０１ｎに対して負荷分散することが示される。図１５において、負荷分散装置１０１ａは、以下の手順により処理をおこなう。
【０１０８】
（１）負荷分散をおこなう際の評価に用いるパラメータを設定する。
（２）各サーバにて実行されるプロセスが消費する各パラメータごとの使用量を定義し、設定する。この設定は、新しいプロセスが追加されるたびにおこなう。たとえば、ＣＰＵ、メモリ、ＧＰＵ、ビデオメモリ、の４つのパラメータを使用する場合、実行されるプロセスが３Ｄゲームであれば、ＣＰＵとメモリに加え、ＧＰＵとビデオメモリについてもリソースが消費される。また、実行されるプロセスが２Ｄゲームであれば、ＧＰＵとビデオメモリのリソースは消費されない。このようにプロセスの内容によって消費されるリソースは異なる。
【０１０９】
（３）各サーバごとに備える各パラメータの最大値の設定をおこなう。この設定は、管理者などにより負荷分散装置１０１ａに対し手作業にて設定してもよいし、あるいは、各サーバをネットワーク１００を介して順にモニタリングし、設定値を取得させるようにしてもよい。また、ゲームや他のアプリケーションサーバなど、その使用目的に応じて多様なサーバ１０１ｂ〜１０１ｎが設置される可能性があるため、個々のパラメータに最大容量を設定できるようにする。この処理は矢印１５０１ａにて示される。
【０１１０】
（４）パラメータとして設定したリソースについて、サーバ１０１ｂ〜１０１ｎの各サーバごとに消費された量を監視する。この処理は、矢印１５０１ａにて示されるもので、負荷分散装置１０１ａからサーバ１０１ｂ〜１０１ｎに対して順にモニタリングをおこない、消費量を取得する。
【０１１１】
（５）クライアントである端末装置１０２ａからプロセス実行の要求を受け付ける。それと同時に、受け付けたプロセスが使用する各リソースの量を取得する。この処理は矢印１５０２にて示される。
【０１１２】
（６）負荷分散装置１０１ａは、プロセスを実行するためのサーバの候補をサーバ１０１ｂ〜１０１ｎの中から選択する。実行要求を受け付けたプロセスが使用するリソースの消費量が、各サーバのリソースの最大値を超えていないかをチェックし、超えていないものを候補として選択する。
【０１１３】
（７）負荷分散装置１０１ａは、（６）で選択された候補の中から、さらに、先述した図１３の消費リソース座標１３０４ａからリソース消費最適線１３０１に下ろす垂線１３０９の距離あるいは消費リソース座標１３０４ａと原点との距離１３１０を求めることで評価をおこない、垂線の長さが一番短い、あるいは垂線の長さが同じ場合は原点からの距離１３１０が短い、あるいは垂線の長さと原点からの距離を乗じた値が最も小さい、たとえば、サーバ１０１ｂを負荷分散先として決定する。
【０１１４】
（８）負荷分散装置１０１ａは、ステップＳ１４０７にて決定した負荷分散先のサーバ１０１ｂに対し、プロセスの実行要求をおこなう。このとき、サーバ１０１ｂが実行要求を認証済みクライアントからのアクセスのみ受け付ける場合には、端末装置１０２ａからＩＤ、ＩＰアドレス、サービスポート番号、暗号化の鍵、トークンなどもサーバ１０１ｂへ送信する。この処理は、矢印１５０１ａにて示される。
【０１１５】
（９）クライアントである端末装置１０２ａに対してプロセスが実行されたことを示すため、負荷分散先のサーバ１０１ｂの情報の通知をおこなう。この情報とは、端末装置１０２ａがサーバ１０１ｂへアクセスするときに必要とする。たとえば、端末装置１０２ａがサーバ１０１ｂへ直接アクセスする際には、サーバ１０１ｂのＩＰアドレス、ポート番号、認証・暗号化に関わる鍵やトークンを指す。この処理は、矢印１５０２にて示される。
【０１１６】
（１０）サーバ１０１ｂへアクセスするための情報を通知された端末装置１０２ａは、サーバ１０１ｂへアクセスすることが可能となる。（９）にて通知を受けた情報に基づき、端末装置１０２ａからサーバ１０１ｂへアクセスすることが可能となる。サーバ１０１ｂ側では、認証されたクライアントからのアクセスか否かをＩＰアドレスやＩＤやトークンなどが一致しているかによって確認する。暗号化鍵が受け渡しされている場合には通信が暗号化される。この処理は、矢印１５０３にて示される。
【０１１７】
（プロセスの情報の内容）
つぎに、この発明の本実施の形態にかかる負荷分散装置が保持するプロセスの情報について説明する。図１６は、この発明の本実施の形態にかかるプロセスの情報を保持するテーブルの一例を示す説明図である。図１６において、プロセス情報テーブル１６００は、プロセスの情報を保持するためのデータ内容を格納しており、プロセスを一意に識別するためのＩＤと、プロセスの名称であるプロセス名と、プロセスが実行の際に使用するＣＰＵの使用量と、プロセスが実行の際に使用するメモリの使用量との各項目からなる。
【０１１８】
ＩＤのデータ属性はテキスト型、あるいは数値だけで表すことができる場合には整数型などとする。プロセス名のデータ属性はテキスト型などとし、ＣＰＵの使用量と、メモリの使用量のデータ属性は、浮動小数点型などの属性として定義する。
【０１１９】
まず、ＩＤが１００のレコードが示すプロセスのデータ内容は、プロセス名がプロセス１、ＣＰＵの使用量が０．１５、メモリの使用量が０．２である。つぎに、ＩＤが１１０のレコードが示すプロセスのデータ内容は、プロセス名がプロセス２、ＣＰＵの使用量が０．２、メモリの使用量が０．４であり、ＣＰＵとメモリの使用量についてはＩＤが１００の場合も同様である。これは、ＩＤが１００あるいは１１０のプロセスをそれぞれ実行した場合に、実行されたサーバにて消費されるＣＰＵとメモリの消費量の値が、それぞれテーブルに登録されたＣＰＵとメモリの使用量の数値分だけ増加することを示す。
【０１２０】
負荷分散装置１０１ａは、端末装置１０２からプロセスの実行の要求を受けると、プロセス情報テーブル１６００のプロセス情報を利用し、負荷を分散するためのサーバを選択する。なお、分散するためのサーバ１０１ｂ〜１０１ｎの数が少ない場合などは、上述したテーブルのようなデータベースを使ったテーブル管理をせず、テキストファイルなどによる参照用のファイルに記述しておく方が手間が少ない場合がある。そのような場合は、テーブル内容を必要に応じて参照用ファイルとして作成し、そのフォーマットも任意に決めることができるものとする。
【０１２１】
（テーブルの情報）
つぎに、この発明の本実施の形態にかかる負荷分散装置が保持するサーバ情報について説明する。図１７は、この発明の本実施の形態にかかるサーバ・クライアント・システムのサーバの情報を保持するテーブルの一例を示す説明図である。図１７において、サーバ情報テーブル１７００は、サーバの情報を保持するためのデータを格納しており、サーバを一意に識別するための接続先サーバ名と、各サーバで使用中のＣＰＵの使用率と、各サーバで使用中のメモリの使用率との各項目からなる。
【０１２２】
接続先サーバ名のデータ属性はテキスト型、あるいは、数値だけで表される場合には整数型などとする。ＣＰＵの使用率およびメモリの使用率のデータ属性は、浮動小数点型とする。ここで、サーバ情報テーブル１７００に示されるＣＰＵあるいはメモリの使用率とは、サーバ１０１ａ，１０１ｂ，１０１ｃのそれぞれで既に使用されているＣＰＵあるいはメモリの割合を数値として表したものである。なお、サーバ１０１ｂ，１０１ｃ，１０１ｄにおけるＣＰＵおよびメモリの使用率の最大値は１．０（＝１００％）とする。負荷分散装置１０１ａは、これらの値を各サーバから定期的にモニタリングしてテーブルにセットしたり、あるいは、負荷分散をおこなう際に必要に応じて取得したりしてもよい。そして、以下では、図１６に示したＩＤが１００のプロセス１を、サーバ１０１ｂ，１０１ｃ，１０１ｄのいずれのサーバに負荷分散するかについての評価をおこなう。
【０１２３】
まず、サーバ情報テーブル１７００の１段目に示す接続先サーバ名が１０１ｂのレコードは、既に使用されているＣＰＵの使用率が０．９で、メモリの使用率は０．８８である。このサーバ１０１ｂはＣＰＵおよびメモリともに使用率が高く、図１６に示したプロセス１のＣＰＵの使用量およびメモリの使用量を加算すると、それぞれ最大値の１．０（＝１００％）を超えるため、既にプロセス１を実行させるためのリソースの空きが無いことが分かる。
【０１２４】
２段目に示す接続サーバ名が１０１ｃのレコードは、ＣＰＵの使用率が０．５で、メモリの使用率が０．２である。このサーバ１０１ｃに、図１６に示したプロセス１のＣＰＵの使用量およびメモリの使用量を加算した場合、ＣＰＵの使用率が０．６５、メモリの使用率が０．４となるため、ともに１．０（＝１００％）未満であり、プロセス１を実行させるためのリソースの空きがあることが分かる。
【０１２５】
３段目に示す接続サーバ名が１０１ｄのレコードは、ＣＰＵの使用率が０．３で、メモリの使用率が０．２である。このサーバ１０１ｄに、図１６に示したプロセス１のＣＰＵの使用量およびメモリの使用量を加算した場合、ＣＰＵの使用率が０．４５、メモリの使用率が０．４となるため、ともに１．０（＝１００％）未満であり、プロセス１を実行させるためのリソースの空きがあることが分かる。
【０１２６】
さらに、式（５）を用いて、これらサーバ１０１ｃとサーバ１０１ｄの消費リソース座標からリソース消費最適線へ下ろす垂線の距離ｄｉｓをそれぞれ求めると、サーバ１０１ｃでの距離は約０．１７７となり、サーバ１０４ｃでの距離は約０．０３５となる。これにより、負荷分散装置１０１ａは、距離の短いサーバ１０１ｄを最適なサーバとして選択し、割り当てる。
【０１２７】
また、消費リソース座標と原点との距離ｄｉａｇについては、式（１０）よりサーバ１０１ｃが約０．７６３、サーバ１０１ｄが約０．６０２となり、両者の積（ｄｉｓ×ｄｉａｇ）の値はサーバ１０１ｃの場合約０．１３５、サーバ１０１ｄの場合約０．０２１となり、リソース消費最適線の長さ、消費リソース座標と原点との距離の両者を同時に考慮した場合でもサーバ１０１ｄを最適なサーバに選択し、割り当てる。
【０１２８】
なお、負荷を分散するためのサーバが、サーバ１０１ｂ，１０１ｃ，１０１ｄといった数が少ない場合には、上述のようなデータベースを使ったテーブル管理をせず、テキストファイルなどによる参照用のファイルに記述し、更新させる方が手間が少ない場合がある。そのような場合は、図１７に示したテーブル内容を必要に応じてテキストファイルとして書き出してもよく、そのフォーマットは任意に決めて作成してよいものとする。また、図示していないが、上述したＣＰＵやメモリの使用率だけでなく、各サーバにアクセスするためのＩＰアドレスやポート番号などの項目も必要に応じてセットしてもよい。
【０１２９】
（サーバの地域分散の内容）
つぎに、この発明の本実施の形態にかかる地域ごとに管理されるサーバの負荷分散について説明する。図１８は、この発明の本実施の形態にかかるサーバ・クライアント・システムのサーバの地域分散の一例を示す説明図である。図１８において、地域Ａには端末装置１０２ａと、負荷分散装置１８０１ａと、センタ１８０３に設置されるサーバ１８０３ａ〜１８０３ｎとが設置され、地域Ｂには端末装置１０２ｂと、負荷分散装置１８０１ｂと、センタ１８０４に設置されるサーバ１８０４ａ〜１８０４ｎとが設置され、店舗Ｃには端末装置１０２ｃと、負荷分散装置１８０１ｃと、センタ１８０５に設置されるサーバ１８０５ａ〜１８０５ｎとが設置される。これらにより、地域あるいは店舗ごとに分散された各装置を用いた複合的なサーバ・クライアント・システムの一例を示す。
【０１３０】
地域Ａに設置される端末装置１０２ａからのプロセス実行要求の流れを示すｌｉｎｅＡ１は、ユーザナビゲーション１８０２によりｌｉｎｅＡ２を通じて負荷分散装置１８０１ａに送信される。ここで、ユーザナビゲーション１８０２とは、クライアントのＩＰアドレスから地域を判別してルーティングしたり、ローカルのＤＮＳサーバのアドレスから各地域を判別してルーティングをおこなうシステムをいう。これにより、クライアントの各地域を特定し、クライアントに最も近い（ネットワーク的にデータ伝送の遅延が小さい）地域に設置されたサーバを優先的に割り当てることができる。そして、ｌｉｎｅＡ２を通じて負荷分散装置１８０１ａに送信されたプロセスの実行要求は、ｌｉｎｅＡ３を通じて同じ地域Ａに設置されるサーバ１８０３ａに負荷分散し、プロセスの実行要求を送信する。
【０１３１】
また、地域Ｂに設置される端末装置１０２ｂからのプロセス実行要求を示すｌｉｎｅＢ１は、ユーザナビゲーション１８０２によりｌｉｎｅＢ２を通じて負荷分散装置１８０１ｂに送信される。ここで、通常は地域Ｂ内に設置されたサーバ１８０４ａ〜１８０４ｎのいずれかにプロセスの実行要求が送信される。しかし、負荷分散装置１８０１ａと負荷分散装置１８０１ｂとが、配下のサーバ群のリソース監視情報を交換するような仕組みとした場合、ｌｉｎｅＢ３を通じて他の地域Ａに設置されたサーバ１８０３ａに対して負荷分散させることができるようになる。また、負荷分散装置１８０１ｂによって地域Ａ、Ｂおよび店舗Ｃの全てのサーバのリソースを監視させれば、地域Ａに設置されたサーバ１８０３ａ以外にも他の全てのサーバの中から負荷分散させるサーバを選択させることができるようになる。
【０１３２】
また、店舗Ｃに設置される端末装置１０２ｃからのプロセス実行要求を示すｌｉｎｅＣ１は、ユーザナビゲーション１８０２によりｌｉｎｅＣ２を通じて負荷分散装置１８０１ｃに送信される。負荷分散装置１８０１ｃでは、店舗Ｃ内のサーバ１８０５ａ〜１８０５ｎの中から負荷分散可能なものを評価する。しかし、端末装置１０２ｃと同じ店舗Ｃ内に割り当て可能なリソースを備えたサーバが無い場合は、ｌｉｎｅＣ３を通じて隣の地域Ｂにあるサーバ１８０４ｎに負荷分散させ、充当させるようにすることができる。
【０１３３】
また、ゲームなどを含む多くのインターネットアプリケーションへのアクセスは、時刻に応じてアクセス頻度が変動することが知られている。例えば夜１０時にアクセスのピークを迎え、ピークの前後の例えば夜９時、１１時のアクセス頻度がピーク時よりも何割か小さいアプリケーションを想定する。東西の時差を考慮した場合、前後１時間の地域に配備されたサーバは、ピーク時間帯を迎えている地域のサーバのリソースが枯渇していた場合に、余剰リソースとしてピーク時間帯のクライアントからのプロセス処理要求を受け付け処理するといった東西地域負荷分散が可能となる。赤道上でも平均的な１時間時差は１７００ｋｍ弱であり、伝播遅延によるラウンドトリップタイムは約１７ｍｓである。ゲームなど、頻繁にサーバ、クライアント間の通信が行われるアプリケーションにおいても充分に活用できる遅延であり、時刻によってピークを迎えるアプリケーションを有効に負荷分散できる。
【０１３４】
なお、実行要求されたプロセスが消費するリソース容量さえ残っていれば、負荷分散先となるサーバは地域を問わずどこに設置されていても構わない。このことにより、一般的にあまりリソースの消費が激しくないＷｅｂサーバとして使用されているホスティングサーバや、各地にあるネットワークカフェなどに設置された複数のＰＣサーバなどのリソースを部分的に借り受け、負荷分散させるためのサーバとして契約することにより、冗長性を持った負荷分散をおこなうことができるようになる。
【０１３５】
以上説明したように、本実施の形態によれば、端末装置１０２から実行要求のあったプロセスの実行時のリソース消費量を用いて評価することにより、そのプロセスが実行可能なサーバをサーバ１０１ｂ〜１０１ｎの中から選択することができるようになる。また、実行させるプロセスが新規追加あるいは修正されるごとに、最新のリソース消費量を登録することにより、プロセスの実行を常に最適なサーバに割り当てることができるようになる。そして、実行要求のあったプロセスのリソース消費量と、常に監視しているサーバ１０１ｂ〜１０１ｎが備えているリソースの残量とを用いてサーバを選択するため、プロセスが消費するリソース量とサーバのリソース残量とがミスマッチすることを防止することができる。
【０１３６】
また、実行要求のあったプロセスのリソース消費量と、常に監視しているサーバ１０１ｂ〜１０１ｎの備えるリソースの残量とを用い、サーバのリソースが無駄なく消費される関数にて評価することにより、リソースが無駄なく消費される最適なサーバを選択することができるようになる。そして、消費されるリソースの量がプロセスごとに異なるゲームやアプリケーションプログラムなどを実行させるサーバを、複数の中から柔軟に選択することができるようになる。
【０１３７】
また、備えるリソースの量が一様でない複数のサーバの中から、実行させたいプロセスが消費するリソースに合ったリソースの残量を持つサーバを柔軟に選択することができるようになる。これによって、理想的なサーバリソースの消費をおこなうことができ、複数のサーバ全体の同時処理プロセス（ゲーム数など）が最大化でき、各サーバの各リソースパラメータについて、無駄なく容量を使い切ることができる。
【０１３８】
また、本実施の形態の負荷分散装置１０１ａを使用すると、リソースの残量が不足してプロセスが実行できない、あるいは、プロセスがキューイングされてしまう可能性があるサーバなどに負荷分散されることを防ぐことができるので、プロセスの実行要求に対する待ち時間を減少させることができる。
【０１３９】
なお、本実施の形態で説明した負荷分散方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
【産業上の利用可能性】
【０１４０】
以上のように、この発明にかかるサーバ・クライアント・システム、負荷分散装置、負荷分散方法および負荷分散プログラムは、負荷分散をおこなう先のサーバのリソースをバランスよく消費させるために有用であり、特に、ゲームなど多くのユーザから実行要求のあるプロセスを複数のサーバに割り当てる場合に適している。
【図面の簡単な説明】
【０１４１】
【図１】この発明の本実施の形態にかかるサーバ・クライアント・システムのシステム構成を示す概要図である。
【図２】この発明の本実施の形態にかかるサーバ・クライアント・システムの負荷分散装置および端末装置およびサーバのハードウエア構成を示すブロック図である。
【図３】この発明の本実施の形態にかかるサーバ・クライアント・システムの携帯電話機のハードウエア構成を示すブロック図である。
【図４】この発明の本実施の形態にかかるサーバ・クライアント・システムの機能的構成を示すブロック図である。
【図５】この発明の本実施の形態にかかる負荷分散装置を用いた負荷分散方法の処理手順の概要を示す説明図である。
【図６】この発明の本実施の形態にかかる理想的なプロセスの割り当ての一例を示す説明図である。
【図７】この発明の本実施の形態にかかる理想的なプロセスの割り当ての別の一例を示す説明図である。
【図８】この発明の本実施の形態にかかるサーバ・クライアント・システムのサーバにおける最適なリソース消費の一例を表す説明図である。
【図９】この発明の本実施の形態にかかるサーバ・クライアント・システムのサーバにおける最適なリソース消費の別の一例を表す説明図である。
【図１０】この発明の本実施の形態にかかるサーバ・クライアント・システムのサーバにおける最適なリソース消費の別の一例を表す説明図である。
【図１１】この発明の本実施の形態にかかるリソースの消費例を示す説明図である。
【図１２】この発明の本実施の形態にかかる負荷分散装置によるサーバの評価方法の概要を示す説明図である。
【図１３】この発明の本実施の形態にかかる割り当てサーバの評価方法の関数の一例を示す説明図である。
【図１４】この発明の本実施の形態にかかる負荷分散装置によるサーバの評価および決定の処理手順の一例を示すフローチャートである。
【図１５】この発明の本実施の形態にかかる負荷分散装置によるサーバの評価および決定の処理手順の一例を示す概要図である。
【図１６】この発明の本実施の形態にかかるプロセスの情報を保持するテーブルの一例を示す説明図である。
【図１７】この発明の本実施の形態にかかるサーバ・クライアント・システムのサーバの情報を保持するテーブルの一例を示す説明図である。
【図１８】この発明の本実施の形態にかかるサーバ・クライアント・システムのサーバの地域分散の一例を示す説明図である。
【図１９】サーバが備えるリソース量とプロセスが消費するリソース量との関係の一例を示す説明図である。
【図２０】サーバが備えるリソース量とプロセスが消費するリソース量との関係の別の一例を示す説明図である。
【図１】
2007200349.tif 000005
【図２】
2007200349.tif 000006
【図３】
2007200349.tif 000007
【図４】
2007200349.tif 000008
【図５】
2007200349.tif 000009
【図６】
2007200349.tif 000010
【図７】
2007200349.tif 000011
【図８】
2007200349.tif 000012
【図９】
2007200349.tif 000013
【図１０】
2007200349.tif 000014
【図１１】
2007200349.tif 000015
【図１２】
2007200349.tif 000016
【図１３】
2007200349.tif 000017
【図１４】
2007200349.tif 000018
【図１５】
2007200349.tif 000019
【図１６】
2007200349.tif 000020
【図１７】
2007200349.tif 000021
【図１８】
2007200349.tif 000022
【図１９】
2007200349.tif 000023
【図２０】
2007200349.tif 000024
【手続補正書】
【提出日】平成19年4月24日(2007.4.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のサーバと複数のクライアントとがネットワークを介して接続され、前記クライアントからのプロセス要求に基づいて前記サーバが処理をおこない、処理結果を前記クライアントへ送信するサーバ・クライアント・システムにおいて、
前記サーバのうちの少なくともいずれか一つが、
前記クライアントから前記プロセスに関する情報を前記ネットワークを介して受信するプロセス情報受信手段と、
前記プロセス情報受信手段によって受信されたプロセスに関する情報に基づいて、前記複数のサーバの中から前記プロセスを処理させるサーバを決定する決定手段と、
前記決定手段によって決定されたサーバに関する情報を前記クライアントへ送信するサーバ情報送信手段と、
を備え、
前記クライアントは、
前記サーバ情報送信手段によって送信されたサーバに関する情報を前記ネットワークを介して受信するサーバ情報受信手段と、
前記サーバ情報受信手段によって受信された情報にかかるサーバへ、前記プロセス処理要求に関する情報を送信するプロセス要求送信手段と、
を備え、
前記決定手段は、
各サーバにおけるリソースのパラメータを軸とした空間上において、前記プロセスのリソース消費量を、各サーバの現リソース消費量を表わす点に加えたことによって求められるリソース消費量の予想点の、原点とパラメータの使用可能な最大容量を結ぶ直線との第１の距離を算出する第１の距離算出手段と、
各サーバにおけるリソースのパラメータを軸とした空間上において、前記プロセスのリソース消費量を、各サーバの現リソース消費量を表わす点に加えたことによって求められるリソース消費量の予想点の、原点との第２の距離を算出する第２の距離算出手段と、
を備え、
前記サーバのうちの少なくともいずれか一つを含む所定の範囲の地域（以下、「自地域」という）内、および前記自地域外の地域（以下、「他地域」という）内の、少なくともいずれか一方に設けられたサーバの現リソース消費量に関する情報を取得し、取得した前記現リソース消費量に関する情報に基づき算出される前記第１の距離の値、あるいは前記第１の距離および前記第２の距離の値に基づいて、前記プロセスを処理させるサーバを決定することを特徴とするサーバ・クライアント・システム。
【請求項２】
前記決定手段は、
前記リソース消費量の予想点を含む最大容量を持つサーバが前記自地域内に存在するか否かを判断する判断手段を備え、
前記判断手段によって、前記リソース消費量の予想点を含む最大容量を持つサーバが前記自地域内に存在しないと判断された場合に、前記他地域に設けられたサーバの中から、前記プロセスを処理させるサーバを決定することを特徴とする請求項１に記載のサーバ・クライアント・システム。
【請求項３】
前記決定手段は、
前記他地域に設けられたサーバのうち、前記自地域と異なるタイムゾーンに設けられたサーバに関する情報を抽出する抽出手段を備え、
前記抽出手段によって抽出された前記異なるタイムゾーンに設けられたサーバに関する情報から、前記プロセスを処理させるサーバを決定することを特徴とする請求項１または２に記載のサーバ・クライアント・システム。
【請求項４】
前記決定手段は、
前記現リソース消費量の少ないサーバの中から、選択的に前記プロセスを処理させるサーバを決定することを特徴とする請求項１〜３のいずれか一つに記載のサーバ・クライアント・システム。
【請求項５】
前記パラメータには、前記サーバのＣＰＵの負荷量、システムメモリの負荷量、グラフィック処理ユニットの負荷量、ビデオメモリの負荷量およびネットワークインターフェースカードの負荷量の少なくともいずれか一つを含むことを特徴とする請求項１〜４のいずれか一つに記載のサーバ・クライアント・システム。
【請求項６】
複数のサーバと複数のクライアントとがネットワークを介して接続され、前記クライアントからのプロセス要求に基づいて前記サーバが処理をおこない、処理結果を前記クライアントへ送信するサーバ・クライアント・システムにおける前記サーバの負荷を分散する負荷分散装置であって、
前記クライアントから前記プロセスに関する情報を前記ネットワークを介して受信するプロセス情報受信手段と、
前記プロセス情報受信手段によって受信されたプロセスに関する情報に基づいて、前記複数のサーバの中から前記プロセスを処理させるサーバを決定する決定手段と、
前記決定手段によって決定されたサーバに関する情報を前記クライアントへ送信するサーバ情報送信手段と、
を備え、
前記決定手段は、
各サーバにおけるリソースのパラメータを軸とした空間上において、前記プロセスのリソース消費量を、各サーバの現リソース消費量を表わす点に加えたことによって求められるリソース消費量の予想点の、原点とパラメータの使用可能な最大容量を結ぶ直線との第１の距離を算出する第１の距離算出手段と、
各サーバにおけるリソースのパラメータを軸とした空間上において、前記プロセスのリソース消費量を、各サーバの現リソース消費量を表わす点に加えたことによって求められるリソース消費量の予想点の、原点との第２の距離を算出する第２の距離算出手段と、
を備え、
自装置を含む所定の範囲の地域（以下、「自地域」という）内、および前記自地域外の地域（以下、「他地域」という）内の、少なくともいずれか一方に設けられたサーバの現リソース消費量に関する情報を取得し、取得した前記現リソース消費量に関する情報に基づき算出される前記第１の距離の値、あるいは前記第１の距離および前記第２の距離の値に基づいて、前記プロセスを処理させるサーバを決定することを特徴とする負荷分散装置。
【請求項７】
前記決定手段は、
前記リソース消費量の予想点を含む最大容量を持つサーバが前記自地域内に存在するか否かを判断する判断手段を備え、
前記判断手段によって、前記リソース消費量の予想点を含む最大容量を持つサーバが前記自地域内に存在しないと判断された場合に、前記他地域に設けられたサーバの中から、前記プロセスを処理させるサーバを決定することを特徴とする請求項６に記載の負荷分散装置。
【請求項８】
前記決定手段は、
前記他地域に設けられたサーバのうち、前記自地域と異なるタイムゾーンに設けられたサーバに関する情報を抽出する抽出手段を備え、
前記抽出手段によって抽出された前記異なるタイムゾーンに設けられたサーバに関する情報から、前記プロセスを処理させるサーバを決定することを特徴とする請求項６または７に記載の負荷分散装置。
【請求項９】
前記決定手段は、
前記現リソース消費量の少ないサーバの中から、選択的に前記プロセスを処理させるサーバを決定することを特徴とする請求項６〜８のいずれか一つに記載の負荷分散装置。
【請求項１０】
前記パラメータには、前記サーバのＣＰＵの負荷量、システムメモリの負荷量、グラフィック処理ユニットの負荷量、ビデオメモリの負荷量およびネットワークインターフェースカードの負荷量の少なくともいずれか一つを含むことを特徴とする請求項６〜９のいずれか一つに記載の負荷分散装置。
【請求項１１】
複数のサーバと複数のクライアントとがネットワークを介して接続され、前記クライアントからのプロセス要求に基づいて前記サーバが処理をおこない、処理結果を前記クライアントへ送信するサーバ・クライアント・システムにおける前記サーバの負荷を分散する負荷分散プログラムであって、
前記クライアントから前記プロセスに関する情報を前記ネットワークを介して受信するプロセス情報受信工程と、
前記プロセス情報受信工程によって受信されたプロセスに関する情報に基づいて、前記複数のサーバの中から前記プロセスを処理させるサーバを決定する決定工程と、
を前記サーバに実行させるものであり、
前記決定工程は、
各サーバにおけるリソースのパラメータを軸とした空間上において、前記プロセスのリソース消費量を、各サーバの現リソース消費量を表わす点に加えたことによって求められるリソース消費量の予想点の、原点とパラメータの使用可能な最大容量を結ぶ直線との第１の距離を算出する第１の距離算出工程と、
各サーバにおけるリソースのパラメータを軸とした空間上において、前記プロセスのリソース消費量を、各サーバの現リソース消費量を表わす点に加えたことによって求められるリソース消費量の予想点の、原点との第２の距離を算出する第２の距離算出工程と、
を含み、
自装置を含む所定の範囲の地域（以下、「自地域」という）内、および前記自地域外の地域（以下、「他地域」という）内の、少なくともいずれか一方に設けられたサーバの現リソース消費量に関する情報を取得し、取得した前記現リソース消費量に関する情報に基づき算出される前記第１の距離の値、あるいは前記第１の距離および前記第２の距離の値に基づいて、前記プロセスを処理させるサーバを決定することを特徴とする負荷分散プログラム。
【請求項１２】
前記パラメータには、前記サーバのＣＰＵの負荷量、システムメモリの負荷量、グラフィック処理ユニットの負荷量、ビデオメモリの負荷量およびネットワークインターフェースカードの負荷量の少なくともいずれか一つを含むことを特徴とする請求項１１に記載の負荷分散プログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
上記課題を解決するために、この発明にかかるサーバ・クライアント・システムは、複数のサーバと複数のクライアントとがネットワークを介して接続され、前記クライアントからのプロセス要求に基づいて前記サーバが処理をおこない、処理結果を前記クライアントへ送信するサーバ・クライアント・システムにおいて、前記サーバのうちの少なくともいずれか一つが、前記クライアントから前記プロセスに関する情報を前記ネットワークを介して受信するプロセス情報受信手段と、前記プロセス情報受信手段によって受信されたプロセスに関する情報に基づいて、前記複数のサーバの中から前記プロセスを処理させるサーバを決定する決定手段と、前記決定手段によって決定されたサーバに関する情報を前記クライアントへ送信するサーバ情報送信手段と、を備え、前記クライアントは、前記サーバ情報送信手段によって送信されたサーバに関する情報を前記ネットワークを介して受信するサーバ情報受信手段と、前記サーバ情報受信手段によって受信された情報にかかるサーバへ、前記プロセス処理要求に関する情報を送信するプロセス要求送信手段と、を備え、前記決定手段は、各サーバにおけるリソースのパラメータを軸とした空間上において、前記プロセスのリソース消費量を、各サーバの現リソース消費量を表わす点に加えたことによって求められるリソース消費量の予想点の、原点とパラメータの使用可能な最大容量を結ぶ直線との第１の距離を算出する第１の距離算出手段と、各サーバにおけるリソースのパラメータを軸とした空間上において、前記プロセスのリソース消費量を、各サーバの現リソース消費量を表わす点に加えたことによって求められるリソース消費量の予想点の、原点との第２の距離を算出する第２の距離算出手段と、を備え、前記サーバのうちの少なくともいずれか一つを含む所定の範囲の地域（以下、「自地域」という）内、および前記自地域外の地域（以下、「他地域」という）内の、少なくともいずれか一方に設けられたサーバの現リソース消費量に関する情報を取得し、取得した前記現リソース消費量に関する情報から算出される前記第１の距離の値、あるいは前記第１の距離および前記第２の距離の値に基づいて、前記プロセスを処理させるサーバを決定することを特徴とする。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】変更
【補正の内容】
【００１４】
また、この発明にかかるサーバ・クライアント・システムは、前記リソース消費量の予想点を含む最大容量を持つサーバが前記自地域内に存在するか否かを判断する判断手段を備え、前記判断手段によって、前記リソース消費量の予想点を含む最大容量を持つサーバが前記自地域内に存在しないと判断された場合に、前記他地域に設けられたサーバの中から、前記プロセスを処理させるサーバを決定することを特徴とする。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
また、この発明の負荷分散装置は、複数のサーバと複数のクライアントとがネットワークを介して接続され、前記クライアントからのプロセス要求に基づいて前記サーバが処理をおこない、処理結果を前記クライアントへ送信するサーバ・クライアント・システムにおける前記サーバの負荷を分散する負荷分散装置であって、前記クライアントから前記プロセスに関する情報を前記ネットワークを介して受信するプロセス情報受信手段と、前記プロセス情報受信手段によって受信されたプロセスに関する情報に基づいて、前記複数のサーバの中から前記プロセスを処理させるサーバを決定する決定手段と、前記決定手段によって決定されたサーバに関する情報を前記クライアントへ送信するサーバ情報送信手段と、を備え、前記決定手段は、各サーバにおけるリソースのパラメータを軸とした空間上において、前記プロセスのリソース消費量を、各サーバの現リソース消費量を表わす点に加えたことによって求められるリソース消費量の予想点の、原点とパラメータの使用可能な最大容量を結ぶ直線との第１の距離を算出する第１の距離算出手段と、各サーバにおけるリソースのパラメータを軸とした空間上において、前記プロセスのリソース消費量を、各サーバの現リソース消費量を表わす点に加えたことによって求められるリソース消費量の予想点の、原点との第２の距離を算出する第２の距離算出手段と、を備え、自装置を含む所定の範囲の地域（以下、「自地域」という）内、および前記自地域外の地域（以下、「他地域」という）内の、少なくともいずれか一方に設けられたサーバの現リソース消費量に関する情報を取得し、取得した前記現リソース消費量に関する情報から算出される前記第１の距離の値、あるいは前記第１の距離および前記第２の距離の値に基づいて、前記プロセスを処理させるサーバを決定することを特徴とする。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１６
【補正方法】変更
【補正の内容】
【００１６】
また、この発明にかかる負荷分散装置は、前記リソース消費量の予想点を含む最大容量を持つサーバが前記自地域内に存在するか否かを判断する判断手段を備え、前記判断手段によって、前記リソース消費量の予想点を含む最大容量を持つサーバが前記自地域内に存在しないと判断された場合に、前記他地域に設けられたサーバの中から、前記プロセスを処理させるサーバを決定することを特徴とする。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００１７
【補正方法】変更
【補正の内容】
【００１７】
また、この発明の負荷分散プログラムは、複数のサーバと複数のクライアントとがネットワークを介して接続され、前記クライアントからのプロセス要求に基づいて前記サーバが処理をおこない、処理結果を前記クライアントへ送信するサーバ・クライアント・システムにおける前記サーバの負荷を分散する負荷分散プログラムであって、前記クライアントから前記プロセスに関する情報を前記ネットワークを介して受信するプロセス情報受信工程と、前記プロセス情報受信工程によって受信されたプロセスに関する情報に基づいて、前記複数のサーバの中から前記プロセスを処理させるサーバを決定する決定工程と、を前記サーバに実行させるものであり、前記決定工程は、各サーバにおけるリソースのパラメータを軸とした空間上において、前記プロセスのリソース消費量を、各サーバの現リソース消費量を表わす点に加えたことによって求められるリソース消費量の予想点の、原点とパラメータの使用可能な最大容量を結ぶ直線との第１の距離を算出する第１の距離算出工程と、各サーバにおけるリソースのパラメータを軸とした空間上において、前記プロセスのリソース消費量を、各サーバの現リソース消費量を表わす点に加えたことによって求められるリソース消費量の予想点の、原点との第２の距離を算出する第２の距離算出工程と、を含み、自装置を含む所定の範囲の地域（以下、「自地域」という）内、および前記自地域外の地域（以下、「他地域」という）内の、少なくともいずれか一方に設けられたサーバの現リソース消費量に関する情報を取得し、取得した前記現リソース消費量に関する情報に基づき算出される前記第１の距離の値、あるいは前記第１の距離および前記第２の距離の値に基づいて、前記プロセスを処理させるサーバを決定することを特徴とする。