(57)【要約】【課題】負荷の非対称性が発生し得る環境においても、処理の引き渡し元での処理負荷と、処理の引き渡し先での処理負荷とのバランスをとることができるように負荷分散を実現できる負荷分散システムを提供する。【解決手段】再配分部７６は、自身の負荷分散部７１における総負荷が目標負荷より大きい場合に、自身の負荷分散部７１に配分されている処理対象の引き受け側となる他の負荷分散部７１を決定する。このとき、再配分部７６は、自身の負荷分散部７１と接続状態となっている他の各負荷分散部７１のうち、処理対象を引き渡した場合における引き受け側でのその処理対象に関する処理負荷から、自身の負荷分散部７１における処理対象に関する処理負荷を減算した値が最も小さくなる負荷分散部７１を、処理対象の引き受け側の負荷分散部７１として決定する。【選択図】図１８
2014241689.tif 000002
【特許請求の範囲】
【請求項１】
互いに接続されている状態で、処理対象の引き渡しおよび引き受けを行う負荷分散手段を複数備え、
個々の負荷分散手段は、
処理対象に対する処理を行う処理手段と、
処理対象に付随する情報と処理負荷または処理負荷の指標値との関係を定めた処理負荷データベース、および、総負荷と処理効率との関係を定めた関数を示す効用関数情報を記憶する記憶手段と、
自身の負荷分散手段に配分されている処理対象に関して、前記処理負荷データベースに基づいて処理負荷を求め、前記処理負荷の総和として総負荷を算出し、当該総負荷と前記効用関数情報とを用いて、処理負荷の変動に対する処理効率の変動を表す効用情報を生成する効用情報生成手段と、
自身の負荷分散手段と接続状態となっている他の各負荷分散手段との間で効用情報を交換し、自身の負荷分散手段の効用情報と前記他の各負荷分散手段の効用情報とに基づいて、負荷分散後の目標負荷を決定する目標負荷決定手段と、
自身の負荷分散手段における総負荷が目標負荷より大きい場合に、自身の負荷分散手段に配分されている処理対象の引き受け側となる他の負荷分散手段を決定し、前記総負荷が目標負荷よりも小さい場合に、他の負荷分散手段から処理対象を引き受ける再配分手段とを備え、
前記再配分手段は、自身の負荷分散手段と接続状態となっている他の各負荷分散手段のうち、処理対象を引き渡した場合における引き受け側でのその処理対象に関する処理負荷から、自身の負荷分散手段における前記処理対象に関する処理負荷を減算した値が最も小さくなる負荷分散手段を、前記処理対象の引き受け側の負荷分散手段として決定する
ことを特徴とする負荷分散システム。
【請求項２】
目標負荷決定手段は、
自身の負荷分散手段の効用情報と、自身の負荷分散手段と接続状態となっている他の各負荷分散手段の効用情報とが等しくなるように、負荷分散後の目標負荷を決定する
請求項１に記載の負荷分散システム。
【請求項３】
再配分手段は、
処理対象の引き受け側となる他の負荷分散手段を決定した場合、前記処理負荷を前記他の負荷分散手段に引き渡した後の総負荷が目標負荷よりも大きいことを条件に、前記処理負荷を前記他の負荷分散手段に引き渡す
請求項１または請求項２に記載の負荷分散システム。
【請求項４】
再配分手段は、
他の負荷分散手段から処理対象を引き受けた場合、および、他の負荷分散手段に処理対象を引き渡した場合に、自身の負荷分散手段の総負荷の情報を更新する
請求項１から請求項３のうちのいずれか１項に記載の負荷分散システム。
【請求項５】
個々の負荷分散手段は、
自身の負荷分散手段の処理対象と、自身の負荷分散手段と接続状態となっている他の各負荷分散手段の処理対象とを特定し、特定したそれぞれの処理対象に関して、自身の負荷分散手段の処理負荷を求め、当該処理負荷の情報を前記他の各負荷分散手段との間で交換し、処理対象を、その処理対象に関する処理負荷が最も小さい負荷分散手段に引き渡す初期配分手段を備える
請求項１から請求項４のうちのいずれか１項に記載の負荷分散システム。
【請求項６】
記憶手段は、
自身の負荷分散手段と、処理対象の送信元あるいは送信先となる装置との距離に基づいて作成された処理負荷データベースを記憶する
請求項１から請求項５のうちのいずれか１項に記載の負荷分散システム。
【請求項７】
互いに接続されている他の負荷分散装置との間で処理対象の引き渡しおよび引き受けを行う負荷分散装置であって、
処理対象に対する処理を行う処理手段と、
処理対象に付随する情報と処理負荷または処理負荷の指標値との関係を定めた処理負荷データベース、および、総負荷と処理効率との関係を定めた関数を示す効用関数情報を記憶する記憶手段と、
自身の負荷分散装置に配分されている処理対象に関して、前記処理負荷データベースに基づいて処理負荷を求め、前記処理負荷の総和として総負荷を算出し、当該総負荷と前記効用関数情報とを用いて、処理負荷の変動に対する処理効率の変動を表す効用情報を生成する効用情報生成手段と、
自身の負荷分散装置と接続状態となっている他の各負荷分散装置との間で効用情報を交換し、自身の負荷分散装置の効用情報と前記他の各負荷分散装置の効用情報とに基づいて、負荷分散後の目標負荷を決定する目標負荷決定手段と、
自身の負荷分散装置における総負荷が目標負荷より大きい場合に、自身の負荷分散装置に配分されている処理対象の引き受け側となる他の負荷分散装置を決定し、前記総負荷が目標負荷よりも小さい場合に、他の負荷分散装置から処理対象を引き受ける再配分手段とを備え、
前記再配分手段は、自身の負荷分散装置と接続状態となっている他の各負荷分散装置のうち、処理対象を引き渡した場合における引き受け側でのその処理対象に関する処理負荷から、自身の負荷分散装置における前記処理対象に関する処理負荷を減算した値が最も小さくなる負荷分散装置を、前記処理対象の引き受け側の負荷分散装置として決定する
ことを特徴とする負荷分散装置。
【請求項８】
互いに接続されている状態で、処理対象の引き渡しおよび引き受けを行う負荷分散手段を複数備える負荷分散システムに適用される負荷分散方法であって、
個々の負荷分散手段が、
処理対象に対する処理を行い、
処理対象に付随する情報と処理負荷または処理負荷の指標値との関係を定めた処理負荷データベース、および、総負荷と処理効率との関係を定めた関数を示す効用関数情報を記憶し、
自身の負荷分散手段に配分されている処理対象に関して、前記処理負荷データベースに基づいて処理負荷を求め、前記処理負荷の総和として総負荷を算出し、当該総負荷と前記効用関数情報とを用いて、処理負荷の変動に対する処理効率の変動を表す効用情報を生成し、
自身の負荷分散手段と接続状態となっている他の各負荷分散手段との間で効用情報を交換し、自身の負荷分散手段の効用情報と前記他の各負荷分散手段の効用情報とに基づいて、負荷分散後の目標負荷を決定し、
自身の負荷分散手段における総負荷が目標負荷より大きい場合に、自身の負荷分散手段に配分されている処理対象の引き受け側となる他の負荷分散手段を決定し、前記総負荷が目標負荷よりも小さい場合に、他の負荷分散手段から処理対象を引き受け、
引き受け側となる他の負荷分散手段を決定する際に、自身の負荷分散手段と接続状態となっている他の各負荷分散手段のうち、処理対象を引き渡した場合における引き受け側でのその処理対象に関する処理負荷から、自身の負荷分散手段における前記処理対象に関する処理負荷を減算した値が最も小さくなる負荷分散手段を、前記処理対象の引き受け側の負荷分散手段として決定する
ことを特徴とする負荷分散方法。
【請求項９】
互いに接続されている他の負荷分散装置との間で処理対象の引き渡しおよび引き受けを行う負荷分散装置として用いられ、処理対象に付随する情報と処理負荷または処理負荷の指標値との関係を定めた処理負荷データベース、および、総負荷と処理効率との関係を定めた関数を示す効用関数情報を記憶する記憶手段を備えたコンピュータに搭載される負荷分散プログラムであって、
前記コンピュータに、
処理対象に対する処理、
自身のコンピュータに配分されている処理対象に関して、前記処理負荷データベースに基づいて処理負荷を求め、前記処理負荷の総和として総負荷を算出し、当該総負荷と前記効用関数情報とを用いて、処理負荷の変動に対する処理効率の変動を表す効用情報を生成する効用情報生成処理、
自身のコンピュータと接続状態となっている他の各負荷分散装置との間で効用情報を交換し、自身のコンピュータの効用情報と前記他の各負荷分散装置の効用情報とに基づいて、負荷分散後の目標負荷を決定する目標負荷決定処理、および、
自身のコンピュータにおける総負荷が目標負荷より大きい場合に、自身のコンピュータに配分されている処理対象の引き受け側となる他の負荷分散装置を決定し、前記総負荷が目標負荷よりも小さい場合に、他の負荷分散装置から処理対象を引き受ける再配分処理を実行させ、
再配分処理で、自身のコンピュータと接続状態となっている他の各負荷分散装置のうち、処理対象を引き渡した場合における引き受け側でのその処理対象に関する処理負荷から、自身のコンピュータにおける前記処理対象に関する処理負荷を減算した値が最も小さくなる負荷分散装置を、前記処理対象の引き受け側の負荷分散装置として決定させる
ことを特徴とする負荷分散プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、負荷分散システム、負荷分散装置、負荷分散方法および負荷分散プログラムに関し、特に、大規模システムにおいて、各負荷の処理効率性が、処理を実行する装置によって異なる場合であっても、適切に負荷を分散させることができる負荷分散システム、負荷分散装置、負荷分散方法および負荷分散プログラムに関する。
【背景技術】
【０００２】
近年、システムの規模および複雑度は増大の一途をたどっている。
【０００３】
システムの大規模化、複雑化の一例として、ＩＴシステム、ネットワークシステムのクラウド化が挙げられる。クラウド化により、利用者・サービス提供者からみたときの使いやすさが飛躍的に向上した。そして、システム利用に伴うシステム側の負荷もまた、飛躍的に増大した。クラウド化の背景には、安価な大量のサーバ群とネットワーキングの活用があり、インフラストラクチャ側からみたときのクラウドシステムは、複雑化の一途をたどっている。
【０００４】
システムの大規模化、複雑化の他の例として、電力システムの分散化が挙げられる。震災時等における電力システムの不安定化の経験から、電力会社から各家庭や事業所への一方通行的な電力流通への懸念が生じるようになった。より安定的な電力システムとして、家庭等における太陽光発電機、小規模発電機、蓄電池を活用した電力システムへの変化が望まれている。しかし、そのような電力システムを安定的に運用するには、各家庭・事業所を包含するように大規模化したシステムにおいて、その場その場の状況変化に応じて運用方針を容易に変更できる仕組みが求められる。
【０００５】
システムの規模および複雑度の増加の他の例として、無線ネットワークが挙げられる。携帯電話ネットワークを例にとれば、スマートフォンやクラウド化の普及によって、無線ネットワークへの負荷は急激に上昇している。さらに既に携帯電話の普及台数は１人あたり１台を超えている。また、車やパーソナルコンピュータ、健康管理デバイス等にも携帯電話モジュールが付与される場合があり、端末装置の大規模化も並行して進展している。ネットワーク負荷の増大は、携帯電話ネットワーク単体ではなく、無線ＬＡＮ（Local Area Network）、ＷｉＭＡＸ（Worldwide Interoperability for Microwave Access ）、ＺｉｇＢｅｅ（登録商標）等の異種ネットワークとの連携によって解決され得る。しかし、異種システムの混在は、システムの最適化をさらに困難にする。
【０００６】
このように複雑化したシステムにおいて、負荷を好適に割り当てる手法が数多く提案されている。しかし、そのような手法のほとんどはシステム全体の情報を取得できることを前提としている。大規模化したシステムに対して、すべての構成要素から状態情報を取得するのにかかる時間は膨大である。たとえば日本国内であっても、東京と大阪との距離はＲＴＴ（Round-Trip Time ）ベースで２０ｍｓであることから、信頼性を持たせた情報のやりとりには、最低でも１００ｍｓ程度の時間を要する。仮に１００ｍｓの間に状態情報が大きく変動してしまうようでは、最適化の意味をなさない。
【０００７】
一方、全体の情報ではなく局所情報のみを用いることで、最適な負荷配分を決定しようとする手法が提案されている。例えば、特許文献１には、電力系統内の需給バランスをとるための手法として、システムの各発電装置が、各々局所的に得られた情報をもとに、自己の出力を決定する方法が開示されている。そして、特許文献１では、自己の発電装置における発電効率関数の勾配が、他の発電装置の発電効率関数の勾配と等しくなるように、自己の発電装置の出力を制御することが記載されている。
【０００８】
また特許文献２には、相互に関係を持つ複数の機能ブロックの起動状態、停止状態を制御するシステムが記載されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００２−１６５３６５号公報（段落００１６，００１８等参照）
【特許文献２】国際公開第ＷＯ２０１２／１６０９７８号パンフレット（第６頁等参照）
【発明の概要】
【発明が解決しようとする課題】
【００１０】
本発明の発明者は、以下のような考察を行った。
【００１１】
特許文献１，２に記載された技術は、負荷の非対称性を考慮していない。負荷の非対称性とは、処理ブロックの特性や処理の属性によって、処理ブロック間で処理負荷が変動する状態を意味する。ここで、処理ブロックとは、処理を実行する要素である。処理ブロックの例として、発電システムにおける発電装置、クラウドシステムにおけるサーバ等の処理装置、ネットワークシステムにおける通信装置等が挙げられる。負荷の非対称性は、処理ブロック間での処理効率の違いに起因するものでなくても、例えば、処理効率が全く等しい処理ブロックの間であっても発生し得る。
【００１２】
図１９および図２０を用いて、負荷の非対称性をより詳しく説明する。図１９は、負荷の非対称性が発生しない例を示した説明図であり、図１９では発電システムを例示している。図２０は、負荷の非対称性が発生する例を示した説明図であり、図２０では無線ネットワークシステムを例示している。
【００１３】
図１９に示すように、発電装置Ａ１，Ａ２，Ａ３が接続されている状態を考える。発電装置Ａ３は、発電効率関数Ａ３１で表される特性を有し、ある時点で発電出力Ａ３２を得ているとする。このとき、発電装置Ａ３は、発電効率の勾配値Ａ３３も一意に決定できる。なお、発電装置Ａ１，Ａ２も同様に、発電効率関数、発電出力および発電効率の勾配値の情報を有する。
【００１４】
発電装置Ａ３の発電効率の勾配値Ａ３３が、発電装置Ａ１，Ａ２の発電効率の勾配値よりも大きいと判定された場合、発電装置Ａ３は、発電装置Ａ３自身の発電出力を増大させる。一方、発電装置Ａ１，Ａ２は、その分、発電出力を減少させる。換言すれば、発電装置Ａ３は、発電装置Ａ１，Ａ２が担当していた出力負荷を負担すると言うことができる。このとき、例えば、発電装置Ａ１の発電出力を１０ｋＷ、発電装置Ａ２の発電出力を１０ｋＷ、それぞれ減らし、発電装置Ａ３の発電出力を２０ｋＷ増やすと仮定する。発電装置Ａ３が発電装置Ａ１から引き受ける出力の負荷と、発電装置Ａ２から引き受ける出力の負荷とは、１０ｋＷで等しい。そして、発電装置Ａ１，Ａ２のどちらから引き受ける出力であっても、発電装置Ａ３が担当し、かつ同じ１０ｋＷという負荷である限り、発電装置Ａ３での出力にかかる負荷は等しい。このように、どの装置からどの装置に処理が引き渡されたとしても、引き渡し元での処理負荷と引き渡し先での処理負荷とが変動しない状態が、「負荷の非対称性が発生しない」状態である。
【００１５】
次に、図２０に示すように、通信装置Ｂ１，Ｂ２が接続されている状態を考える。通信装置Ｂ２は、通信効率関数Ｂ２１で表される特性を有し、ある時点で通信負荷Ｂ２２を得ているとする。このとき、通信装置Ｂ２は、通信効率の勾配値Ｂ２３も一意に決定できる。なお、無線接続における通信効率関数は、送信権の獲得に関わる特性やトラフィック特性等から、発電効率関数と類似の関数を描くことができる。なお、通信装置Ｂ1も同様に、通信効率関数、通信負荷および通信効率の勾配値の情報を有する。
【００１６】
通信装置Ｂ２の通信効率の勾配値Ｂ２３が、通信装置Ｂ１の通信効率の勾配値よりも大きいと判定された場合、通信装置Ｂ２は、自身の通信負荷を増大させ、通信装置Ａは、通信負荷を減少させる。これを具体的に実現するには、通信装置Ａに接続されている通信端末Ｂ１１，Ｂ１２，・・・のうちの一部の通信端末の接続先を、通信装置Ｂ２に変更すればよい。
【００１７】
例えば、通信端末Ｂ１１の接続先を通信装置Ｂ２に変更するとする。このとき、通信装置Ｂ１に通信端末Ｂ１１が接続されている状態と、通信装置Ｂ２に通信端末Ｂ１１が接続されている状態とでは、通信端末Ｂ１１によって発生する通信装置Ｂ１，Ｂ２の処理負荷は、電波強度の違い等の理由によって異なる。通信装置Ｂ１に近く、通信装置Ｂ２からは非常に遠い通信端末の場合、通信装置Ｂ２に接続されたときには、電波強度が著しく悪化する。その結果、通信装置Ｂ２の通信負荷は著しく大きくなる。また、通信装置Ｂ１に接続されている通信端末Ｂ１１，Ｂ１２，・・・のうち、どの通信端末の接続先を通信装置Ｂ２に変更するのかによっても、通信装置Ｂ２で生じる処理負荷は異なる。このように、どの装置にどのような処理が引き渡されるのかによって、引き渡し元での処理負荷と引き渡し先での処理負荷とが変動する状態が、「負荷の非対称性が発生する」状態である。
【００１８】
負荷の非対称性は、無線ネットワークのような、負荷が装置の空間配置に依存するシステム以外でも発生する。例えば、クラウドシステムであれば、サーバアーキテクチャの違いによっても、負荷の非対称性が発生する。また、発電システムであっても、システム規模が大きくなれば、送電ロスによって負荷の非対称性が発生する。
【００１９】
特許文献１，２に記載された手法では、負荷の非対称性を考慮せずに負荷分散を図っている。
【００２０】
そこで、本発明は、負荷の非対称性が発生し得る環境においても、処理の引き渡し元での処理負荷と、処理の引き渡し先での処理負荷とのバランスをとることができるように負荷分散を実現できる負荷分散システム、負荷分散装置、負荷分散方法および負荷分散プログラムを提供することを目的とする。
【課題を解決するための手段】
【００２１】
本発明による負荷分散システムは、互いに接続されている状態で、処理対象の引き渡しおよび引き受けを行う負荷分散手段を複数備え、個々の負荷分散手段が、処理対象に対する処理を行う処理手段と、処理対象に付随する情報と処理負荷または処理負荷の指標値との関係を定めた処理負荷データベース、および、総負荷と処理効率との関係を定めた関数を示す効用関数情報を記憶する記憶手段と、自身の負荷分散手段に配分されている処理対象に関して、処理負荷データベースに基づいて処理負荷を求め、処理負荷の総和として総負荷を算出し、当該総負荷と効用関数情報とを用いて、処理負荷の変動に対する処理効率の変動を表す効用情報を生成する効用情報生成手段と、自身の負荷分散手段と接続状態となっている他の各負荷分散手段との間で効用情報を交換し、自身の負荷分散手段の効用情報と他の各負荷分散手段の効用情報とに基づいて、負荷分散後の目標負荷を決定する目標負荷決定手段と、自身の負荷分散手段における総負荷が目標負荷より大きい場合に、自身の負荷分散手段に配分されている処理対象の引き受け側となる他の負荷分散手段を決定し、総負荷が目標負荷よりも小さい場合に、他の負荷分散手段から処理対象を引き受ける再配分手段とを備え、再配分手段が、自身の負荷分散手段と接続状態となっている他の各負荷分散手段のうち、処理対象を引き渡した場合における引き受け側でのその処理対象に関する処理負荷から、自身の負荷分散手段における処理対象に関する処理負荷を減算した値が最も小さくなる負荷分散手段を、処理対象の引き受け側の負荷分散手段として決定することを特徴とする。
【００２２】
また、本発明による負荷分散装置は、互いに接続されている他の負荷分散装置との間で処理対象の引き渡しおよび引き受けを行う負荷分散装置であって、処理対象に対する処理を行う処理手段と、処理対象に付随する情報と処理負荷または処理負荷の指標値との関係を定めた処理負荷データベース、および、総負荷と処理効率との関係を定めた関数を示す効用関数情報を記憶する記憶手段と、自身の負荷分散装置に配分されている処理対象に関して、処理負荷データベースに基づいて処理負荷を求め、処理負荷の総和として総負荷を算出し、当該総負荷と効用関数情報とを用いて、処理負荷の変動に対する処理効率の変動を表す効用情報を生成する効用情報生成手段と、自身の負荷分散装置と接続状態となっている他の各負荷分散装置との間で効用情報を交換し、自身の負荷分散装置の効用情報と他の各負荷分散装置の効用情報とに基づいて、負荷分散後の目標負荷を決定する目標負荷決定手段と、自身の負荷分散装置における総負荷が目標負荷より大きい場合に、自身の負荷分散装置に配分されている処理対象の引き受け側となる他の負荷分散装置を決定し、総負荷が目標負荷よりも小さい場合に、他の負荷分散装置から処理対象を引き受ける再配分手段とを備え、再配分手段が、自身の負荷分散装置と接続状態となっている他の各負荷分散装置のうち、処理対象を引き渡した場合における引き受け側でのその処理対象に関する処理負荷から、自身の負荷分散装置における処理対象に関する処理負荷を減算した値が最も小さくなる負荷分散装置を、処理対象の引き受け側の負荷分散装置として決定することを特徴とする。
【００２３】
また、本発明による負荷分散方法は、互いに接続されている状態で、処理対象の引き渡しおよび引き受けを行う負荷分散手段を複数備える負荷分散システムに適用される負荷分散方法であって、個々の負荷分散手段が、処理対象に対する処理を行い、処理対象に付随する情報と処理負荷または処理負荷の指標値との関係を定めた処理負荷データベース、および、総負荷と処理効率との関係を定めた関数を示す効用関数情報を記憶し、自身の負荷分散手段に配分されている処理対象に関して、処理負荷データベースに基づいて処理負荷を求め、処理負荷の総和として総負荷を算出し、当該総負荷と効用関数情報とを用いて、処理負荷の変動に対する処理効率の変動を表す効用情報を生成し、自身の負荷分散手段と接続状態となっている他の各負荷分散手段との間で効用情報を交換し、自身の負荷分散手段の効用情報と他の各負荷分散手段の効用情報とに基づいて、負荷分散後の目標負荷を決定し、自身の負荷分散手段における総負荷が目標負荷より大きい場合に、自身の負荷分散手段に配分されている処理対象の引き受け側となる他の負荷分散手段を決定し、総負荷が目標負荷よりも小さい場合に、他の負荷分散手段から処理対象を引き受け、引き受け側となる他の負荷分散手段を決定する際に、自身の負荷分散手段と接続状態となっている他の各負荷分散手段のうち、処理対象を引き渡した場合における引き受け側でのその処理対象に関する処理負荷から、自身の負荷分散手段における処理対象に関する処理負荷を減算した値が最も小さくなる負荷分散手段を、処理対象の引き受け側の負荷分散手段として決定することを特徴とする。
【００２４】
また、本発明による負荷分散プログラムは、互いに接続されている他の負荷分散装置との間で処理対象の引き渡しおよび引き受けを行う負荷分散装置として用いられ、処理対象に付随する情報と処理負荷または処理負荷の指標値との関係を定めた処理負荷データベース、および、総負荷と処理効率との関係を定めた関数を示す効用関数情報を記憶する記憶手段を備えたコンピュータに搭載される負荷分散プログラムであって、コンピュータに、  処理対象に対する処理、自身のコンピュータに配分されている処理対象に関して、処理負荷データベースに基づいて処理負荷を求め、処理負荷の総和として総負荷を算出し、当該総負荷と効用関数情報とを用いて、処理負荷の変動に対する処理効率の変動を表す効用情報を生成する効用情報生成処理、自身のコンピュータと接続状態となっている他の各負荷分散装置との間で効用情報を交換し、自身のコンピュータの効用情報と他の各負荷分散装置の効用情報とに基づいて、負荷分散後の目標負荷を決定する目標負荷決定処理、および、自身のコンピュータにおける総負荷が目標負荷より大きい場合に、自身のコンピュータに配分されている処理対象の引き受け側となる他の負荷分散装置を決定し、総負荷が目標負荷よりも小さい場合に、他の負荷分散装置から処理対象を引き受ける再配分処理を実行させ、再配分処理で、自身のコンピュータと接続状態となっている他の各負荷分散装置のうち、処理対象を引き渡した場合における引き受け側でのその処理対象に関する処理負荷から、自身のコンピュータにおける処理対象に関する処理負荷を減算した値が最も小さくなる負荷分散装置を、処理対象の引き受け側の負荷分散装置として決定させることを特徴とする。
【発明の効果】
【００２５】
本発明によれば、負荷の非対称性が発生し得る環境においても、処理の引き渡し元での処理負荷と、処理の引き渡し先での処理負荷とのバランスをとりつつ、負荷分散を実現できる。
【図面の簡単な説明】
【００２６】
【図１】本発明の負荷分散システムを適用した無線ネットワークシステムの例を示す模式図である。
【図２】本発明の負荷分散システムを適用した無線ネットワークシステムのシステム構成を示すブロック図である。
【図３】本発明の負荷分散装置の構成例を示すブロック図である。
【図４】処理負荷データベースの一例を示すグラフである。
【図５】効用関数情報の一例を示すグラフである。
【図６】負荷分散システムの初期状態の例を示した模式図である。
【図７】効用情報生成手段の動作を示すフローチャートである。
【図８】比較手段の動作を示すフローチャートである。
【図９】再配分手段の動作を示すフローチャートである。
【図１０】再配分手段の動作を示すフローチャートである。
【図１１】再配分手段での処理対象の選択に関わる指標を示した模式図である。
【図１２】再配分手段の処理を終えた後の状態を示す模式図である。
【図１３】負荷分散システムの初期状態の例を示した模式図である。
【図１４】第２の実施形態の負荷分散装置の構成例を示すブロック図である。
【図１５】初期配分手段の動作を示す概念図である。
【図１６】初期配分手段の動作を示すフローチャートである。
【図１７】各アクセスポイントの初期配分手段がステップＳ１４１〜Ｓ１４４の動作を完了した後の状態を示す模式図である。
【図１８】本発明の負荷分散システムの主要部を示すブロック図である。
【図１９】負荷の非対称性が発生しない例を示した説明図である。
【図２０】負荷の非対称性が発生する例を示した説明図である。
【発明を実施するための形態】
【００２７】
以下、本発明の実施形態を図面を参照して説明する。以下に示す各実施形態では、本発明の負荷分散システムを無線ネットワークシステムに適用し、無線ネットワークシステム内で負荷分散を実現する場合を例にして説明するが、本発明は、無線ネットワークシステム以外のシステムにも適用され得る。
【００２８】
実施形態１．
図１は、本発明の負荷分散システムを適用した無線ネットワークシステムの例を示す模式図である。本発明の負荷分散システムは、複数の負荷分散装置を備える。図１に示す例では、無線ネットワークアクセスポイント（以下、単にアクセスポイントと記す。）１−１，１−２，１−３がそれぞれ、本発明の負荷分散装置としての動作も行う。なお、以下の説明において、図１に示す各アクセスポイント１−１，１−２，１−３を特に区別する必要がない場合には、「アクセスポイント１」と記す。
【００２９】
図２は、本発明の負荷分散システムを適用した無線ネットワークシステムのシステム構成を示すブロック図である。本発明の負荷分散システムは、複数の負荷分散装置（本例では、アクセスポイント１）を備える。そして、各アクセスポイント１には、端末２が接続される（図２参照）。
【００３０】
アクセスポイント１は、複数の端末２のうち、自身に接続されている端末２との間で、通信情報を送受信する。通信情報とは、具体的には、パケットである。通信情報の一例として、インターネットアクセスやメールの送受信の際に端末２から送信されるパケットや、ＶｏＩＰ（Voice over Internet Protocol）におけるパケット等が挙げられるが、通信情報はこれらのパケットに限定されない。
【００３１】
また、アクセスポイント１は、他のアクセスポイント１と通信可能となるように、他のアクセスポイント１に接続されている。あるアクセスポイント１に着目した場合、そのアクセスポイント１に接続されている他のアクセスポイント１を、着目しているアクセスポイント１から見て、隣接するアクセスポイント１と記す。図２に示す例では、アクセスポイント１−１，１−２が接続され、また、アクセスポイント１−２，１−３が接続されている。
【００３２】
図３は、本発明の負荷分散装置の構成例を示すブロック図である。本例では、負荷分散装置は、個々のアクセスポイント１によって実現されている。アクセスポイント（負荷分散装置）１は、負荷分散手段１０と、通信手段１７とを備える。負荷分散手段１０は、記憶手段１１と、効用情報生成手段１３と、比較手段１４と、再配分手段１５と、処理手段１６とを備える。
【００３３】
記憶手段１１は、処理負荷データベース（ＤＢ）１１−１と、効用関数情報１１−２とを記憶する記憶装置である。記憶手段１１は、情報を一時的に、または恒久的に記憶する記憶装置であればよい。記憶手段１１は、例えば、ＤＲＡＭ（Dynamic Random Access Memory）、ＨＤＤ（Hard Disk Drive ）、ＳＳＤ（Solid State Drive ）、ＦＤＤ（Floppy Disk Drive ）、ＭＤ（Magnetic Drive）、ＵＳＢ（Universal Serial Bus）メモリ等のＮＡＮＤフラッシュメモリ等によって実現されてもよい。また、記憶手段１１は、上記以外の記憶装置によって実現されてもよい。
【００３４】
処理負荷データベース１１−１は、処理対象に付随する情報と、処理負荷または処理負荷の指標値との関係を定めたデータベースである。「処理対象」とは、負荷分散装置が処理を行う対象である。本実施形態では、アクセスポイント１が処理を行う対象となる通信情報（パケット）が処理対象に該当する。また、「処理対象に付随する情報」とは、処理対象毎に決定付けられ、処理負荷との間に関連性を有する情報である。本実施形態では、アクセスポイント１から見て、処理対象（パケット）の送受信の相手となる端末２毎に決定付けられ、処理負荷との間に関連性を有する情報として、電波強度の情報を用いる場合を例にして説明する。すなわち、処理対象に付随する情報として、処理対象（パケット）の送受信の相手となる端末２の電波強度の情報を用いる場合を例にする。
【００３５】
図４は、本実施形態における処理負荷データベース１１−１の一例を示すグラフである。図４に例示するグラフでは、通信符号化方式毎に、電波強度と送信成功率との関係を示している。無線ネットワークにおいては、電波強度と送信成功率が密接に関係している。また、通信符号化方式（図４に例示する「ＱＰＳＫ（Quadrature Phase Shift Keying ）」、「１６ＱＡＭ（Quadrature Amplitude Modulation ）」）によっても、その関係は変化する。
【００３６】
図４に示す例では、電波強度が、処理対象に付随する情報である。また、送信成功率が、処理負荷の指標値である。
【００３７】
電波強度は、端末毎、つまり、アクセスポイント１から見たパケットの送受信の相手毎に異なる。また、送信成功率が低ければ、それだけ再送回数が増え、通信負荷が増大する。従って、送信成功率は、処理負荷の指標値として用いることができる。そして、電波強度と送信成功率の関係性が定まれば、処理対象に付随する情報として、パケットの送受信の相手となる端末の電波強度を利用し、処理負荷すなわち通信負荷を得ることできる。
【００３８】
なお、図４では、処理負荷データベース１１−１をグラフ形式で示したが、処理負荷データベース１１−１は、例えば、関数、表、またはプログラムの形式で記憶されていてもよい。処理負荷データベース１１−１が、処理対象に付随する情報から処理負荷を返すように設計されたものであれば、処理負荷データベース１１−１の具体的な形式は限定されない。
【００３９】
電波強度は、アクセスポイント１と端末２との距離に依存し、距離が小さいほど電波強度は強く、距離が大きいほど電波強度は弱い。図４に例示する処理負荷データベース１１−１は、アクセスポイント１と端末２との距離に基づいて作成することができる。
【００４０】
効用関数情報１１−２は、アクセスポイント１の担当する総負荷と、効用との関係を定めた関数である。図５は、本実施の形態における効用関数情報１１−２の一例を示すグラフである。図５に例示するグラフでは、アクセスポイント１の総負荷すなわち通信負荷と、通信効率との関係を示している。図５に示す例では、通信効率が効用に該当する。通信効率は、単位時間あたりの通信に成功した情報量である。
【００４１】
ここで、通信負荷と通信効率との関係を説明する。通信帯域に余裕がある場合には、通信負荷を与えれば、その分を処理することができる。このため、通信負荷が低い場合には、通信負荷を与えれば、それだけ通信効率も上昇する（図５参照）。しかし通信帯域に余裕がなくなってくると、通信負荷を与えても送信待ちの状態になり、処理しきれなくなる。むしろ、通信待ちの端末間で衝突を招き、スループットは低下する。つまり、通信負荷が高い場合には、通信負荷を与えても通信効率の増分は少ないか、むしろ低下する（図５参照）。
【００４２】
なお、図５では、効用関数情報１１−２をグラフ形式で示したが、効用関数情報１１−２は、例えば、関数、表、またはプログラムの形式で記憶されていてもよい。効用関数情報１１−２が、総負荷から効用情報を返すように設計されたものであれば、その具体的な形式は問わない。
【００４３】
なお、効用情報とは、負荷分散装置における処理負荷の変動に対する処理効率の変動を表す情報である。本例では、処理負荷として、通信負荷（端末２毎に処理対象の量を送受信成功率で重み付けし、その総和をとったもの）を用いる。また、処理効率として、通信効率（単位時間あたりの通信に成功した情報量）を用いる。そして、効用情報として、処理負荷を与えたときの処理効率の増減量を用いる。
【００４４】
効用情報生成手段１３は、負荷分散手段１０に配分された処理対象と、処理負荷データベース１１−１と、効用関数情報１１−２とをもとに、自身の効用情報を生成する。効用情報生成手段１３は、配分された処理対象毎（より具体的には、アクセスポイント１から見て処理対象の送受信の相手となる端末２毎）に、処理負荷データベース１１−１に基づいて、各々の端末２毎の処理負荷を得る。続いて、効用情報生成手段１３は、処理対象の送受信の相手となる端末２毎に求めた処理負荷の合計を計算することで、アクセスポイント１に割り当てられた処理負荷の総和である通信負荷を得る。そして、効用情報生成手段１３は、得られた通信負荷を効用関数情報１１−２に当てはめて、効用情報を得る。
【００４５】
効用情報の内容は、効用関数情報１１−２の内容に依存する。本例では、前述のように、処理負荷を与えたときの処理効率の増減量を効用情報として用いる。より具体的には、通信負荷を与えた時の通信効率の変分、すなわち効用関数の勾配値を効用情報として用いる。
【００４６】
比較手段１４は、効用情報生成手段１３によって得られた効用情報を、隣接するアクセスポイント１で同様に得られた効用情報と比較する。このとき、比較手段１４は、その比較手段１４自身が設けられているアクセスポイント１と、隣接する全てのアクセスポイント１との間で、効用情報が等しくなるような目標負荷を決定する。目標負荷とは、負荷分散後における自身のアクセスポイント１の総負荷の目標値である。目標負荷の決定方法として、ラグランジェの未定乗数法を用いる方法や、特許文献１、特許文献２で示された方法を用いることができる。
【００４７】
再配分手段１５は、比較手段１４によって決定された目標負荷を参照して、処理対象を再配分する。具体的には、再配分手段１５は、自アクセスポイント１の負荷分散手段１０の現在の処理負荷が目標負荷よりも低い場合には、処理負荷が目標負荷よりも高いアクセスポイント１から、そのアクセスポイント１の負荷分散手段１０に割り当てられた処理対象を引き受ける。逆に、再配分手段１５は、自アクセスポイント１の負荷分散手段１０の現在の処理負荷が目標負荷よりも高い場合には、負荷分散手段１０に割り当てられている処理対象の一部を、処理負荷が目標処理負荷よりも低いアクセスポイント１に引き渡す。なお、負荷分散手段１０の現在の処理負荷とは、具体的には、処理手段１６の現在の処理負荷である。
【００４８】
ここで、処理対象を引き受けるとは、他のアクセスポイント１から見て処理対象（パケット）の送受信の相手となっている端末２を、そのアクセスポイント１から引き受けることである。このように、他のアクセスポイント１から端末２を引き受ければ、その端末２は自アクセスポイント１の送受信の相手となり、自アクセスポイント１は、その端末２を送信元または宛先とするパケットの処理を引き受けることになる。
【００４９】
また、処理対象を引き渡すとは、自アクセスポイント１から見て送受信の相手となっている端末２を、他のアクセスポイント１に引き渡すことである。このように、他のアクセスポイント１に端末２を引き渡せば、その端末２は他のアクセスポイント１の送受信の相手となる。自アクセスポイント１が担当していたその端末２に関するパケットの処理は、他のアクセスポイント１に移行する。
【００５０】
処理手段１６は、処理対象を処理する。本実施形態の例であれば、処理手段１６は、自アクセスポイント１と接続している端末２との間で、処理対象であるパケットを送受信する。
【００５１】
通信手段１７は、他のアクセスポイント１に備えられた負荷分散手段１０と制御情報や効用情報等を交換するためのインタフェースである。なお、アクセスポイント１同士が交換する制御情報として、他のアクセスポイント１に対する指示がある。通信手段１７の一例として、無線ＬＡＮや３Ｇ（3rd. Generation ）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＺｉｇＢｅｅ、Ｅｔｈｅｒｎｅｔ（登録商標）、特定小電力無線等の各インタフェースが挙げられるが、これらに限定されるものではない。自身以外の負荷分散手段１０と制御情報や効用情報等を交換することが可能であれば、通信手段１７の具体的な形式は問わない。なお、本実施形態では、処理対象がパケットであることから、通信手段１７が、さらに、端末２とのパケット送受信インタフェースとして機能してもよい。
【００５２】
端末２は、複数のアクセスポイント１のうちのいずれか１台を選択し、選択したアクセスポイント１に接続される。接続先となるアクセスポイント１は、アクセスポイント１での負荷分散処理に基づいて決定される。また、端末２はパケットを生成する。また、端末２は、接続中のアクセスポイント１との間でパケットを送受信する。
【００５３】
以下、第１の実施形態における処理経過について説明する。
図６は、負荷分散システムの初期状態の例を示した模式図である。各端末２がそれぞれ、複数台のアクセスポイント１のうち、最も近傍のアクセスポイント１に接続されている状態を想定する。また、通信手段１７を介して、アクセスポイント１−１，１−２が通信可能となるように接続されている。同様に、アクセスポイント１−２，１−３も通信可能となっている。
【００５４】
図６に例示した端末２の配分では、アクセスポイント１−２に接続されている端末２の数が多く、逆に他のアクセスポイント１−１，１−３に接続されている端末２の数は少ない。この状態では、アクセスポイント１−２の総負荷が上昇してしまい、処理負荷に対する通信効率は低くなる。個々の負荷分散装置（アクセスポイント１）は、隣接するアクセスポイント１との間で、処理対象の引き渡し、引き受けを行い、システム全体でみたときの通信効率を引き上げる。
【００５５】
図７は、効用情報生成手段１３の動作を示すフローチャートである。効用情報生成手段１３は、一定周期毎に図７に示す処理を開始してもよい。あるいは、効用情報生成手段１３は、隣接の負荷分散手段１０からのトリガに基づき、処理を開始してもよい。これらは、効用情報生成手段１３の動作開始態様の例示であり、他の態様で効用情報生成手段１３が動作を開始してもよい。
【００５６】
効用情報生成手段１３はまず、自アクセスポイント１の負荷分散手段１０（具体的には、処理手段１６）に配分された処理対象について、処理負荷データベース１１−１に基づき、それぞれ処理負荷を取得する（ステップＳ１１１）。例えば、効用情報生成手段１３は、処理対象の送受信の相手となる端末２毎に、処理対象に付随する情報（本例では、電波強度）を求める。そして、効用情報生成手段１３は、処理対象に付随する情報と、処理負荷データベース１１−１（図４参照）とに基づいて、送信成功率を求める。そして、処理対象の送受信の相手となる端末２毎に、端末２との間で送受信する処理対象の量を、送信成功率で重み付けすることによって、端末２毎の処理負荷を算出する。
【００５７】
次に、効用情報生成手段１３は、送受信の相手となる端末２毎に算出した処理負荷を合算し、自アクセスポイントの負荷分散手段１０（具体的には、処理手段１６）の総負荷を算出する（ステップＳ１１２）。
【００５８】
そして、効用情報生成手段１３は、ステップＳ１１２で算出した総負荷と、効用関数情報１１−２（図５参照）とに基づいて、効用情報を取得する（ステップＳ１１３）。本実施形態では、効用情報として、図５に例示する効用関数情報１１−２における勾配値を用いる。従って、効用情報生成手段１３は、ステップＳ１１２で算出した総負荷に対応する勾配値を、効用関数情報１１−２に基づいて求めればよい。
【００５９】
図８は、比較手段１４の動作を示すフローチャートである。効用情報生成手段１３の動作（ステップＳ１１１〜Ｓ１１３、図７参照）が完了すると、比較手段１４は、以下に示す動作を開始する。
【００６０】
比較手段１４は、まず、現在の総負荷（ステップＳ１１２で得られた総負荷）を暫定的な目標負荷に設定する（ステップＳ１２１）。目標負荷は、負荷分散を行う上での目標となる総負荷である。換言すれば、目標負荷は、負荷分散後における自アクセスポイント１の負荷分散手段１０（具体的には、処理手段１６）の総負荷の目標値である。なお、負荷分散手段１０の処理負荷、総負荷は、具体的には、負荷分散手段１０内の処理手段１６の処理負荷、総負荷である。同様に、負荷分散手段１０の総負荷の目標値は、負荷分散手段１０内の処理手段１６の総負荷の目標値である。
【００６１】
次に、比較手段１４は、自身および隣接の負荷分散手段１０から、効用情報を取得する（ステップＳ１２２）。自身の効用情報は、ステップＳ１１３で得られた効用情報である。また、比較手段１４は、通信手段１７を介して、自アクセスポイント１に隣接する全てのアクセスポイント１に対して効用情報を要求し、それらのアクセスポイント１から効用情報を受信する。続いて、比較手段１４は、得られた効用情報を比較する（ステップＳ１２３）。なお、自アクセスポイント１の効用情報および隣接する全ての効用情報に差が生じていなければ、処理を終了し、次回のステップＳ１１１の開始タイミングまで待機する。
【００６２】
得られた効用情報に差が生じていれば、比較手段１４は、自アクセスポイント１および隣接する全てのアクセスポイント１の全ての負荷分散手段１０で、処理対象の総和を一定に保ちつつ、効用情報が等しくなるように、ステップＳ１２１で設定した目標負荷を増減させる（ステップＳ１２４）。比較手段１４は、例えば、自アクセスポイント１の効用情報、および隣接する全てのアクセスポイント１の効用情報の平均値を算出し、その効用情報の平均値に合わせて、目標負荷を増減させる。各アクセスポイント１が同様にこの処理を行うことで、隣接するアクセスポイント１同士で目標負荷が近づく。ステップＳ１２４では、比較手段１４が、目標負荷を、負荷分散の効果が得られる値に近づけていると言える。
【００６３】
図９および図１０は、再配分手段１５の動作を示すフローチャートである。比較手段１４の動作（ステップＳ１２１〜Ｓ１２４、図８参照）が完了すると、再配分手段１５は、以下に示す動作を開始する。
【００６４】
再配分手段１５は、自アクセスポイント１の負荷分散手段１０に配分された総負荷（ステップＳ１１２で算出された総負荷）と、目標負荷とを比較する（ステップＳ１３１）。総負荷が目標負荷よりも大きい場合（ステップＳ１３１のＹｅｓ）、自アクセスポイント１の負荷分散手段１０で担当している処理対象の一部を、隣接する他のアクセスポイント１の負荷分散手段１０に引き渡すことによって総負荷を減らし、自アクセスポイント１の負荷分散手段１０の総負荷を目標負荷に近づける。逆に、総負荷が目標負荷よりも小さい場合（ステップＳ１３１のＮｏ）、再配分手段１５は、隣接する他のアクセスポイント１の負荷分散手段１０が担当している処理対象を引き受けることによって総負荷を増やし、自アクセスポイント１の負荷分散手段１０の総負荷を目標負荷に近づける。以下、ステップＳ１３１に続く処理について、より詳細に説明する。
【００６５】
総負荷が目標負荷よりも大きい場合（ステップＳ１３１のＹｅｓ）、再配分手段１５は、隣接する各アクセスポイント１の負荷分散手段１０のうち、総負荷が目標負荷より小さくなっている負荷分散手段１０を１つ選択する（ステップＳ１３２）。なお、各アクセスポイント１の再配分手段１５は、通信手段１７を介して、自アクセスポイント１に隣接する全てのアクセスポイント１に対して、負荷分散手段１０の総負荷および目標負荷を要求し、それらのアクセスポイント１から負荷分散手段１０の総負荷および目標負荷の情報を受信する。この情報を用いて、再配分手段１５は、ステップＳ１３２の処理を行えばよい。また、総負荷が目標負荷より小さくなっている隣接する負荷分散手段１０が複数存在する場合、再配分手段１５は、その負荷分散手段１０のうち、例えば、目標負荷と総負荷との差分が最も大きい負荷分散手段１０を選択してもよい。ただし、総負荷が目標負荷より小さくなっている隣接する負荷分散手段１０が複数存在する場合、その負荷分散手段１０のうち、１つの負荷分散手段１０を選択する基準は、他の基準であってもよい。
【００６６】
ステップＳ１３１で選択された他のアクセスポイント１の負荷分散手段１０は、処理対象の引き受け側となる負荷分散手段１０である。
【００６７】
次に、再配分手段１５は、自身の負荷分散手段１０が担当する処理対象のうち、引き受け側の負荷分散手段１０（ステップＳ１３２で選択した負荷分散手段１０）でその処理対象を処理した場合の処理負荷（後述のμΔλ）から、自身の負荷分散手段１０におけるその処理対象の処理負荷（後述のΔλ）を減算した値が最も小さくなるような処理対象を選択する（ステップＳ１３３）。本実施形態では、再配分手段１５は、処理対象（パケット）の送受信の相手となる端末２毎に、引き受け側の負荷分散手段１０（ステップＳ１３２で選択した負荷分散手段１０）に端末２を引き渡した場合における、その引き受け側の負荷分散手段１０でのその端末２に関する処理負荷から、自身の負荷分散手段１０におけるその端末２に関する処理負荷を差し引いた値が最も小さくなる端末２を選択する。端末２によって、処理対象（パケット）の集合を区別できるので、端末２を選択するということは、処理対象の集合を特定することであるということができる。
【００６８】
ステップＳ１３３では、再配分手段１５は、引き受け側の負荷分散手段１０に引き渡された場合に、処理負荷が最も改善することになる処理対象を選択するか、あるいは、処理負荷が改善することになる処理対象がない場合には、処理対象の悪化が最も小さくなるような処理対象を選択することになる。
【００６９】
図１１は、再配分手段１５での処理対象の選択に関わる指標を示した模式図である。図１１（ａ）は、引き渡し側の効用関数情報１１−２を示し、図１１（ｂ）は、引き受け側の効用関数情報１１−２を示している。また、本実施形態では、効用情報として、効用関数情報１１−２が表している関数の勾配値を用いる。処理対象の再配分前における引き渡し側の総負荷、引き受け側の総負荷をそれぞれ、λｃｒｎｔ＿ａ，λｃｒｎｔ＿ｂとする。すると、引き渡し側の負荷分散手段１０の効用情報は、勾配値２１ａで表され、引き受け側の負荷分散手段１０の効用情報は、勾配値２１ｂで表される。この場合、引き渡し側の効用情報が小さく、引き受け側の効用情報が大きいので、引き渡し側から引き受け側に処理対象を引き渡すことによって、互いの効用情報を近づけることができる。
【００７０】
ここで、ある端末２を選択した場合、引き渡し側において、その端末２に関するパケット群の処理負荷がΔλであるとする。引き渡し側の負荷分散手段１０では、引き受け側にその端末２を引き渡した後（換言すれば、その端末２に関するパケット群を引き渡した後）、総負荷がΔλだけ減少する。しかし、処理対象（パケット）の処理負荷は、どのアクセスポイント１の負荷分散手段１０が処理するのかに依存して変化する。従って、引き受け側の負荷分散手段１０がその端末２を引き受けた後には、その引き受け側の負荷分散手段１０では、μΔλの処理負荷が増加する。ここで、μは、端末２に対応する処理対象群毎と、各アクセスポイント１の負荷分散手段１０との組み合わせ毎に決まる係数である。そして、μΔλとΔλとの差分だけ、引き渡し側の総負荷と、引き受け側の総負荷の和も変化する。両者の総負荷の和を小さくするためには、ステップＳ１３３において、以下の式（１）を満たす処理対象を選択すればよい。なお、本実施形態では、再配分手段１５は、ステップＳ１３３において、以下の式（１）を満たす端末２を選択する。上述のように、端末２を選択するということは、処理対象の集合を特定することであると言える。
【００７１】
Minimize Δλ（μ−１）              式（１）
【００７２】
すなわち、再配分手段１５は、ステップＳ１３３において、Δλ（μ−１）が最小となる端末２を選択すればよい。
【００７３】
ここで、μは、端末２の接続先となるアクセスポイント１が変更されたときの、電波強度変化に伴う送信成功率の変化を吸収するためのパラメータである。再配分手段１５は、例えば、電波強度（処理対象に付随する情報）を算出し、処理負荷データベース１１−１に基づいてμを決定してもよい。例えば、再配分手段１５は、以下に示す式（２）の計算によって、μを算出してもよい。
【００７４】
【数１】
2014241689.tif 000003
【００７５】
式（２）において、ｐｂｅｆｏｒｅは、処理の再配分前の送信成功率を表し、ｐａｆｔｅｒは、処理の再配分後の送信成功率を表している。また、ｎは、試行回数を表している。再配分手段１５は、式（２）における送信成功確率を処理負荷データベース１１−１に基づいて特定し、式（２）の計算によって、μを得ることができる。なお、ｎｐ（１−ｐ）ｎ−１は、「試行回数」×「当該試行回数で送信が成功する確率」を示している。この和を計算することで、データあたりの送信回数の期待値が算出される。
【００７６】
あるいは、予め、端末２とアクセスポイント１の組み合わせ毎に定められたμを再配分手段１５が記憶していてもよい。そして、再配分手段１５は、予め記憶していたμを用いて、Δλ（μ−１）が最小となる端末２を選択してもよい。
【００７７】
ステップＳ１３３の次に、再配分手段１５は、選択した処理対象群（換言すれば、選択した端末２）を引き渡した後における自身の負荷分散手段１０の処理負荷が、目標負荷よりも大きいままであるか否かを判定する（ステップＳ１３４）。引き渡し後の処理負荷が目標負荷よりも大きければ（ステップＳ１３４のＹｅｓ）、再配分手段１５は、ステップＳ１１３で選択した処理対象群（換言すれば、選択した端末２）をステップＳ１３２で選択した隣接する負荷分散手段１０に引き渡す（ステップＳ１３５）。そして、再配分手段１５は、自身の負荷分散手段１０における総負荷の情報を更新する（ステップＳ１３６）。
【００７８】
一方、引き渡し後の処理負荷が目標負荷よりも小さくなる場合（ステップＳ１３４のＮｏ）、ステップＳ１１３で選択した処理対象群を他の負荷分散手段１０に引き渡さずに、処理を終了する。
【００７９】
また、ステップＳ１３１において、総負荷が目標負荷よりも小さいと判定した場合（ステップＳ１３１のＮｏ）、再配分手段１５は、隣接するアクセスポイント１の負荷分散手段１０からの要求に従い、その負荷分散手段１０から処理対象群を引き受ける。その後、再配分手段１５は、処理負荷データベース１１−１を参照し、処理対象群の引き受けに伴う処理負荷の増加量を算出し、自身の負荷分散手段１０における総負荷の情報を更新する（ステップＳ１３８）。
【００８０】
ここで、処理対象の引き渡しおよび引き受けの具体的な動作の例を説明する。処理対象を引き渡す場合、再配分手段１５は、その処理対象に対応する端末２に対して、引き受け側のアクセスポイント１に接続先を切り替えるように指示する。さらに、再配分手段１５は、引き受け側のアクセスポイント１の再配分手段１５に対して、その端末２から接続要求があった場合、その接続要求を受け入れ、その端末２と接続状態にするように指示する。この結果、端末２は、引き受け側のアクセスポイント１に接続要求を行い、引き受け側の再配分手段１５はその接続要求を受け入れる。そして、端末２は引き受け側のアクセスポイント１に接続され、両者の間でパケットの送受信が開始される。
【００８１】
処理対象を引き受ける場合、再配分手段１５は、他のアクセスポイント１の再配分手段１５から、端末２を指定され、その端末２からの接続要求を受け入れる旨の指示を受ける。再配分手段１５は、その指示に従って、指定された端末２から接続要求があった場合、その接続要求を受け入れ、その端末２と接続状態にする。そして、端末２は引き受け側のアクセスポイント１に接続され、両者の間でパケットの送受信が開始される。
【００８２】
本実施形態によれば、再配分手段１５が、自身の負荷分散手段１０の総負荷が目標負荷よりも大きい場合、Δλ（μ−１）が最も小さい端末２を選択し、その端末２を、他のアクセスポイント１の負荷分散手段１に引き渡す。従って、負荷の非対称性が発生し得る場合であっても、処理の引き渡し側と、処理の引き受け側とで、処理負荷のバランスを取ることができ、適切に負荷分散を実現できる。Δλ（μ−１）が最も小さい端末２を選択して、他のアクセスポイント１に引き渡すということは、処理負荷が最も改善することになる処理対象を選択しているか、あるいは、処理負荷が改善することになる処理対象がない場合には処理対象の悪化が最も小さくなるような処理対象を選択して、優先的に引き渡していると言える。よって、総負荷の増加を抑えつつ、良好な負荷分散を実現できる。
【００８３】
図１２は、再配分手段１５の処理を終えた後の状態を示す模式図である。図６に示す初期状態では、アクセスポイント１−２に多数の端末２が接続され、各アクセスポイント１の通信負荷に偏りが生じていた。本実施形態の各負荷分散装置の動作により、全てのアクセスポイント１にほぼ均等に端末２が接続されるように、負荷分散が実現される。そして、その結果、各アクセスポイント１の通信負荷の偏りが解消される。
【００８４】
なお、上記の実施形態では、再配分手段１５は、ステップＳ１３４において、自身の負荷分散手段１０の処理負荷が、目標負荷よりも大きいままであるか否かを判定することによって、端末２を他のアクセスポイント１に引き渡すか否かを判定している。再配分手段１５は、ステップＳ１３４において、引き受け側の負荷分散手段１０での端末２の引き受け後の総負荷と、引き受け側の負荷分散手段１０の負荷目標との比較によって、端末２を引き受け側のアクセスポイント１に引き渡すか否かを判定してもよい。このとき、再配分手段１５は、引き受け側の負荷分散手段１０での端末２に関する処理負荷を、その端末２に対応する処理対象の情報、および処理負荷データベース１１−１に基づいて決定する。このような構成では、処理対象の引き受け側の総負荷が必要以上に増大することを防ぎ、より効果的な負荷分散を実現できる。
【００８５】
実施形態２．
第２の実施形態は、初期状態での処理負荷の偏りが大きい場合でも、より効率的な負荷分散を実現可能とする。
【００８６】
図１３は、負荷分散システムの初期状態の例を示した模式図である。図１３に示す例では、各端末２がそれぞれ、ランダムにアクセスポイント１に接続されている状態を想定している。なお、第１の実施形態で示した例と同様に、図１３では、アクセスポイント１−１，１−２が通信可能であり、アクセスポイント１−２，１−３が通信可能である状態を例示している。
【００８７】
図６に例示した初期状態では、各端末２は近傍のアクセスポイント１を接続先としているため、端末２毎の処理負荷は、最も小さい状態になっている。しかし、図１３に例示するように、各端末２がランダムに接続先のアクセスポイント１を決定している場合もある。このような場合には、各アクセスポイント１での総負荷の総和が大きい状態になっている。そのような状態から、第１の実施形態で示した負荷分散動作を行うだけでは、全体の負荷が最適状態よりも大きい状態で負荷分散を終了する可能性がある。第２の実施形態の負荷分散システムは、各アクセスポイント１の総負荷の総和を最小化するように、初期状態の配分を変更し、その後、第１の実施形態と同様の動作を行う。
【００８８】
図１４は、第２の実施形態の負荷分散装置の構成例を示すブロック図である。第２の実施形態においても、負荷分散装置が個々のアクセスポイント１によって実現されている場合を例にして説明する。第１の実施形態と同様の要素については、図３と同一の符号を付し説明を省略する。アクセスポイント（負荷分散装置）１は、負荷分散手段１０ａと、通信手段１７とを備える。負荷分散手段１０ａは、第１の実施形態の負荷分散手段１０の要素（図３参照）に加えて、初期配分手段１２を備える。
【００８９】
初期配分手段１２は、処理負荷を小さくすることを主目的に、処理対象の配分を行う。それぞれのアクセスポイント１に設けられた初期配分手段１２は、自身のアクセスポイント１および隣接するアクセスポイント１の間で、担当している処理対象の引き渡し、引き受けを行い、処理負荷が最も小さくなるように、処理対象の配分を変更する。本実施形態では、初期配分手段１２は、初期状態から、端末２の接続先を変更する。
【００９０】
図１５は、初期配分手段１２の動作を示す概念図である。例えば、無線ネットワークの場合、電波強度は、通信端点間の距離と強い相関を有する。そして、距離が短ければ、電波強度は強くなる。このため、図１５（ａ）に例示する接続状態であると、遠くのアクセスポイント１を接続先としている端末２へのパケット送信やその端末２からのパケット受信による処理負荷は、その端末２の接続先をより端末２により近いアクセスポイント１に変更させることによって、より引き下げることができる。初期配分手段１２は、図１５（ｂ）に例示する状態のように、各端末２が、それぞれ端末２自身に最も近いアクセスポイント１に接続されるように、アクセスポイント１が担当する端末２を変更する。
【００９１】
次に、第２の実施形態の処理経過について説明する。第２の実施形態では、初期配分手段１２の動作から開始する。図１６は、初期配分手段１２の動作を示すフローチャートである。なお、初期配分手段１２は、一定周期毎に図１６に示す処理を開始してもよい。あるいは、初期配分手段１２は、隣接の負荷分散手段１０ａからのトリガに基づき、処理を開始してもよい。これらは、初期配分手段１２の動作開始態様の例示であり、他の態様で初期配分手段１２が動作を開始してもよい。
【００９２】
初期配分手段１２は、自アクセスポイント１の負荷分散手段１０ａ（具体的には処理手段１６）が担当している処理対象に関する情報と、隣接する各アクセスポイント１の負荷分散手段１０ａが担当している処理対象に関する情報とを取得する（ステップＳ１４１）。ここでは、処理対象に関する情報として、処理対象（パケット）の送受信の相手となる端末２の識別情報を取得する場合を例にして説明するが、端末２の識別情報以外の情報を取得してもよい。
【００９３】
ステップＳ１４１では、初期配分手段１２は、自アクセスポイント１に接続されている各端末２の識別情報を取得するとともに、通信手段１７を介して、隣接する各アクセスポイント１に対して、そのアクセスポイント１に接続されている各端末２の識別情報を要求し、それらのアクセスポイント１から端末２の識別情報を受信する。ステップＳ１４１の結果、初期配分手段１２は、自アクセスポイント１に接続されている各端末２の識別情報、および、隣接する各アクセスポイント１に接続されている各端末２の識別情報を取得する。
【００９４】
次に、初期配分手段１２は、処理対象に関する情報（本例では、端末２の識別情報）によって識別される処理対象群毎に、自アクセスポイント１の負荷分散手段１０ａでの処理負荷を取得する（ステップＳ１４２）。初期配分手段１２は、処理負荷データベース１１−１を用いて、処理負荷を導出すればよい。例えば、初期配分手段１２は、ステップＳ１４１で取得した識別情報によって識別される端末２毎に、自アクセスポイント１との距離、あるいは、電波強度を取得し、処理負荷データベース１１−１と突き合わせて、処理負荷を取得してもよい。ステップＳ１４２で初期配分手段１２が処理負荷を取得する方法は、上記の方法に限定されない。
【００９５】
初期配分手段１２は、ステップＳ１４１で、隣接するアクセスポイント１に接続されている端末２の識別情報も取得する。よって、初期配分手段１２は、ステップＳ１４２において、自アクセスポイント１に接続されている端末２だけでなく、隣接するアクセスポイント１に接続されている端末２に関しても、処理負荷を求めることになる。
【００９６】
また、図１６に示すフローチャートの動作は、各アクセスポイント１の初期配分手段１２がそれぞれ行う。従って、各アクセスポイント１の初期配分手段１２がステップＳ１４１，Ｓ１４２の動作を行うことによって、各アクセスポイント１の初期配分手段１２は、それぞれ、自アクセスポイント１に接続されている端末２の処理負荷と、隣接するアクセスポイント１に接続されている端末２を自アクセスポイント１で引き受けた場合の処理負荷を導出した状態になっている。そして、１つの端末２に着目すると、その端末２が現在接続されているアクセスポイント１における処理負荷と、その端末２がそのアクセスポイント１に隣接するアクセスポイント１に接続された場合に、その隣接するアクセスポイント１で生じる処理負荷とが、それぞれ導出されていることになる。
【００９７】
ステップＳ１４２の後、各アクセスポイント１（各負荷分散手段１０ａ）の初期配分手段１２は、それぞれ、隣接する負荷分散手段１０ａの初期配分手段１２との間で、ステップＳ１４２で導出した端末２毎の処理負荷を交換する。そして、各初期配分手段１２は、ステップＳ１４１で取得した識別情報を順次、選択する（換言すれば、ステップＳ１４１で取得した識別情報によって識別される端末２を順次、選択する）。各初期配分手段１２は、選択した端末２毎に、自アクセスポイント１（自装置の負荷分散手段１０ａ）における処理負荷と、隣接する各アクセスポイント１（隣接する各負荷分散手段１０ａ）における処理負荷とを比較し、処理負荷が最小となっている負荷分散手段１０ａで、選択中の端末２を担当すべきであると判定する（ステップＳ１４３）。
【００９８】
ステップＳ１４３に続いて、各アクセスポイント１（各負荷分散手段１０ａ）の初期配分手段１２はそれぞれ、各処理対象を、その処理対象を担当すべきと判定した負荷分散手段１０ａに配分する（ステップＳ１４４）。
【００９９】
本例では、初期配分手段１２は、端末２の引き渡しや引き受けを行うことによって、各アクセスポイント１間での処理対象群の引き渡しや引き受けを行う。
【０１００】
初期配分手段１２は、自アクセスポイント１に接続されている端末２に関し、自身の負荷分散手段１０ａで担当すべきと判定しているのであれば、その端末２に関しては、ステップＳ１４４で受け渡しを行わなくてよい。
【０１０１】
また、初期配分手段１２は、自アクセスポイント１に接続されている端末２に関し、隣接する他のアクセスポイント１の負荷分散手段１０ａで担当すべきと判定しているのであれば、担当すべきと判定したアクセスポイント１の負荷分散手段１０ａに対して、その端末２を引き渡す。
【０１０２】
また、初期配分手段１２は、隣接するアクセスポイント１に接続されている端末２に関し、自身の負荷分散手段１０ａで担当すべきと判定しているのであれば、その隣接するアクセスポイント１の初期配分手段１２から、その端末２を引き受ける。
【０１０３】
ステップＳ１４４において、初期配分手段１２同士が、端末２を引き渡したり、引き受けたりする動作は、第１の実施形態で説明した再配分手段１５による引き渡し、引き受けの動作と同様である。
【０１０４】
初期配分手段１２によるステップＳ１４１〜Ｓ１４４の動作が完了した後に、効用情報生成手段１３、比較手段１４および再配分手段１５は、第１の実施形態と同様の動作を行う。この動作については、第１の実施形態と同様であり、説明を省略する。
【０１０５】
図１７は、各アクセスポイント１の初期配分手段１２がステップＳ１４１〜Ｓ１４４の動作を完了した後の状態を示す模式図である。初期配分手段１２の動作終了後では、個々の端末２は、それぞれ最も処理負荷が小さくなるアクセスポイント１（最も電波強度が強くなるアクセスポイント１、あるいは、最も距離が短いアクセスポイント１）に接続されることになる。
【０１０６】
このように初期配分手段１２の動作によって、初期配分の状態（図１３に例示する状態）から、処理負荷の総和を最小限に抑えた状態（図１７に例示する状態）に変更する。そして、このように、処理負荷の総和を最小限に抑えた状態から、第１の実施形態と同様の動作を開始する。従って、より効率のよい負荷分散を実現することができる。
【０１０７】
次に、上記の各実施形態の変形例について説明する。
【０１０８】
上記の実施形態では、負荷分散手段１０の要素が全てアクセスポイント１に配置されている場合を示したが、負荷分散手段１０の要素が異なる装置に配置されていてもよい。例えば、負荷分散手段１０のうち、処理手段１６のみをアクセスポイント１に配置し、他の要素をアクセスポイント１の外部の装置（図示せず。）に配置する構成であってもよい。そして、その外部の装置が、アクセスポイント１と情報を交換しながら、負荷分散を実現してもよい。そのような構成により、システムの自由度を向上させることができる。
【０１０９】
また、負荷分散手段１０が複数の処理手段１６を担当し、各々の処理手段１６に処理対象を配分する構成であってもよい。そのような構成によれば、単体の装置で複数の処理アーキテクチャを採用する場合において、処理負荷の見積もりや、各種情報の交換に伴う処理を削減することができる。
【０１１０】
ここでは、負荷分散手段１０を例に変形例を説明したが、第２の実施形態の負荷分散手段１０ａに関しても、同様の変形例が適用可能である。
【０１１１】
第１の実施形態の負荷分散手段１０や第２の実施形態の負荷分散手段１０ａは、例えば、記憶装置を備え、負荷分散プログラムに従って動作するコンピュータシステムのＣＰＵによって実現される。この場合、ＣＰＵが、負荷分散プログラムを読み込み、そのプログラムに従って、負荷分散手段１０や負荷分散手段１０ａとして動作すればよい。負荷分散手段１０や負荷分散手段１０ａの一部が、負荷分散プログラムに従って動作するＣＰＵによって実現されてもよい。コンピュータシステムは、ＯＳや、周辺機器等のハードウェアを含んでいてもよい。
【０１１２】
また、負荷分散プログラムは、コンピュータ読み取り可能な記録媒体に記憶されていてもよい。コンピュータ読み取り可能な記録媒体の例として、光磁気ディスク、ＲＯＭ、不揮発性半導体メモリ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等記憶装置が挙げられる。「コンピュータ読み取り可能な記録媒体」は、インターネット等のネットワーク回線や電話回線等のように、プログラムを送信可能な通信線であってもよい。すなわち、短時間の間、動的にプログラムを保持するものであってもよい。そして、プログラムを送受信するサーバ、クライアントからなるコンピュータシステム内部の不揮発性メモリを、「コンピュータ読み取り可能な記録媒体」としてもよい。
【０１１３】
また、負荷分散プログラムが、負荷分散装置の全ての機能を実現してもよい。あるいは、コンピュータシステムに既に記憶されているプログラムと負荷分散プログラムの組み合わせによって、負荷分散装置の各機能が実現されてもよい。
【０１１４】
次に本発明の主要部について説明する。図１８は、本発明の負荷分散システムの主要部を示すブロック図である。本発明の負荷分散システムは、複数の負荷分散部７１（例えば、負荷分散手段１０，１０ａ）を備える。負荷分散部７１は、互いに接続されている状態で、処理対象の引き渡しおよび引き受けを行う。
【０１１５】
また、個々の負荷分散部７１は、処理部７２と、記憶部７３と、効用情報生成部７４と、目標負荷決定部７５と、再配分部７６とを備える。
【０１１６】
処理部７２（例えば、処理手段１６）は、処理対象に対する処理を行う。
【０１１７】
記憶部７３（例えば、記憶手段１１）は、処理対象に付随する情報と処理負荷または処理負荷の指標値との関係を定めた処理負荷データベース、および、総負荷と処理効率との関係を定めた関数を示す効用関数情報を記憶する。
【０１１８】
効用情報生成部７４（例えば、効用情報生成手段１３）は、自身の負荷分散部７１に配分されている処理対象に関して、処理負荷データベースに基づいて処理負荷を求め、処理負荷の総和として総負荷を算出し、当該総負荷と効用関数情報とを用いて、処理負荷の変動に対する処理効率の変動を表す効用情報を生成する。
【０１１９】
目標負荷決定部７５（例えば、比較手段１４）は、自身の負荷分散部７１と接続状態となっている他の各負荷分散部７１との間で効用情報を交換し、自身の負荷分散部７１の効用情報と他の各負荷分散部７１の効用情報とに基づいて、負荷分散後の目標負荷を決定する。
【０１２０】
再配分部７６（例えば、再配分手段１５）は、自身の負荷分散部７１における総負荷が目標負荷より大きい場合に、自身の負荷分散部７１に配分されている処理対象の引き受け側となる他の負荷分散部７１を決定し、総負荷が目標負荷よりも小さい場合に、他の負荷分散部７１から処理対象を引き受ける。
【０１２１】
そして、再配分部７６は、自身の負荷分散部７１と接続状態となっている他の各負荷分散部７１のうち、処理対象を引き渡した場合における引き受け側でのその処理対象に関する処理負荷から、自身の負荷分散部７１における処理対象に関する処理負荷を減算した値が最も小さくなる負荷分散部７１を、処理対象の引き受け側の負荷分散部７１として決定する。
【０１２２】
このような構成によって、負荷の非対称性が発生し得る環境においても、処理の引き渡し元での処理負荷と、処理の引き渡し先での処理負荷とのバランスをとりつつ、負荷分散を実現できる。
【０１２３】
また、目標負荷決定部７５が、自身の負荷分散部７１の効用情報と、自身の負荷分散部７１と接続状態となっている他の各負荷分散部７１の効用情報とが等しくなるように、負荷分散後の目標負荷を決定する構成であってもよい。
【０１２４】
また、再配分部７６が、処理対象の引き受け側となる他の負荷分散部７１を決定した場合、処理負荷を他の負荷分散部７１に引き渡した後の総負荷が目標負荷よりも大きいことを条件に、処理負荷を他の負荷分散部７１に引き渡す構成であってもよい。
【０１２５】
また、再配分部７６が、他の負荷分散部７１から処理対象を引き受けた場合、および、他の負荷分散部７１に処理対象を引き渡した場合に、自身の負荷分散部７１の総負荷の情報を更新する構成であってもよい。
【０１２６】
また、個々の負荷分散部７１が、自身の負荷分散部７１の処理対象と、自身の負荷分散部７１と接続状態となっている他の各負荷分散部７１の処理対象とを特定し、特定したそれぞれの処理対象に関して、自身の負荷分散部７１の処理負荷を求め、当該処理負荷の情報を他の各負荷分散部７１との間で交換し、処理対象を、その処理対象に関する処理負荷が最も小さい負荷分散部７１に引き渡す初期配分部（例えば、処理配分手段１２）を備える構成であってもよい。
【０１２７】
記憶部７３は、自身の負荷分散部７１と、処理対象の送信元あるいは送信先となる装置（例えば、端末２）との距離に基づいて作成された処理負荷データベースを記憶してもよい。
【０１２８】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記の実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【産業上の利用可能性】
【０１２９】
本発明は、負荷分散システムに好適に適用される。
【符号の説明】
【０１３０】
１：アクセスポイント（負荷分散装置）
１０，１０ａ  負荷分散手段
１１  記憶手段
１２  初期配分手段
１３  効用情報生成手段
１４  比較手段
１５  再配分手段
１６  処理手段
１７  通信手段
【図１】
2014241689.tif 000004
【図２】
2014241689.tif 000005
【図３】
2014241689.tif 000006
【図４】
2014241689.tif 000007
【図５】
2014241689.tif 000008
【図６】
2014241689.tif 000009
【図７】
2014241689.tif 000010
【図８】
2014241689.tif 000011
【図９】
2014241689.tif 000012
【図１０】
2014241689.tif 000013
【図１１】
2014241689.tif 000014
【図１２】
2014241689.tif 000015
【図１３】
2014241689.tif 000016
【図１４】
2014241689.tif 000017
【図１５】
2014241689.tif 000018
【図１６】
2014241689.tif 000019
【図１７】
2014241689.tif 000020
【図１８】
2014241689.tif 000021
【図１９】
2014241689.tif 000022
【図２０】
2014241689.tif 000023