(57)【特許請求の範囲】
【請求項１】
複数のエリアに分割されたネットワーク内のあるエリアに設置されており、分散配置された複数の候補サーバの中から利用者端末を接続させるサーバを選択するサーバ選択装置において、
当該サーバ選択装置が設置されているエリアを自エリアと定義し、当該エリア以外のあるエリアを他エリアと定義し、
利用者端末識別子と自エリア内候補サーバの識別子リストと他エリア内候補サーバの識別子リストとを受け取り、自エリア内各候補サーバ・利用者端末間距離および他エリア内各候補サーバ・利用者端末間距離を取得する距離情報取得手段と、
サーバ選択時に用いる重み係数を前記候補サーバ毎に記憶する重み係数テーブルと、
前記候補サーバの識別子リストを受け取り、各候補サーバの負荷情報を取得するサーバ負荷情報取得手段と、
前記サーバ負荷情報取得手段を用いて自エリア内の各候補サーバの負荷情報を取得し、それら自エリア内の各候補サーバの負荷情報を他エリアに設置されているサーバ選択装置に通知する自エリア負荷情報通知手段と、
他エリアに設置されているサーバ選択装置から他エリア内の各候補サーバの負荷情報を取得する他エリア負荷情報取得手段と、
自エリア内の各候補サーバの負荷情報を前記サーバ負荷情報取得手段から取得し、前記他エリア負荷情報取得手段から他エリア内の各候補サーバの負荷情報を取得し、それら自エリア内および他エリア内の各候補サーバの負荷情報を考慮して自エリア内および他エリア内の各候補サーバの重み係数を算出して重み係数テーブルを更新する重み係数更新手段と、
自エリア内候補サーバの識別子リストと他エリア内候補サーバの識別子リストを受け取り、前記距離情報取得手段から自エリア内各候補サーバ・利用者端末間距離および他エリア内各候補サーバ・利用者端末間距離を取得し、前記重み係数テーブルから自エリア内および他エリア内の各候補サーバの重み係数を取得して、自エリア内および他エリア内の各候補サーバの重み付け評価値を算出する重み付け評価値算出手段と、
前記重み付け評価値算出手段から自エリア内および他エリア内の各候補サーバの重み付け評価値を取得して各候補サーバの優先度を決定し、この優先度の高い順に選択サーバまた選択エリアとして出力する接続サーバ決定手段と、
を有することを特徴とするサーバ選択装置。
【請求項２】
前記自エリア負荷情報通知手段は、自エリア内の候補サーバ負荷情報を任意に設定可能な周期に従って取得することを特徴とする請求項１に記載のサーバ選択装置。
【請求項３】
前記自エリア負荷情報通知手段は、任意に設定可能な周期に従い自エリア内候補サーバの負荷情報を他エリアのサーバ選択装置に通知し、
前記他エリア負荷情報取得手段は、任意に設定可能な周期に従い他エリアのサーバ選択装置から他エリア内候補サーバの負荷情報を取得することを特徴とする請求項１に記載のサーバ選択装置。
【請求項４】
複数のエリアに分割されたネットワーク内のあるエリアに設置されており、分散配置された複数の候補サーバの中から利用者端末を接続させるサーバを選択するサーバ選択装置において、
当該サーバ選択装置が設置されているエリアを自エリアと定義し、当該エリア以外のあるエリアを他エリアと定義し、
利用者端末識別子と自エリア内候補サーバの識別子リストと他エリアの識別子リストを受け取り、自エリア内各候補サーバ・利用者端末間距離および他エリア・利用者端末間距離を取得する距離情報取得手段と、
サーバ選択時に用いる重み係数を前記候補サーバ毎に記憶する重み係数テーブルと、
前記候補サーバの識別子リストを受け取り、各候補サーバの負荷情報を取得するサーバ負荷情報取得手段と、
前記サーバ負荷情報取得手段を用いて自エリア内の各候補サーバの負荷情報を取得して自エリア全体の負荷情報を算出し、この自エリア負荷情報を他エリアに設置されているサーバ選択装置に通知する自エリア負荷情報通知手段と、
他エリアに設置されているサーバ選択装置から他エリア全体の負荷情報を取得する他エリア負荷情報取得手段と、
自エリア内各候補サーバの負荷情報を前記サーバ負荷情報取得手段から取得し、前記他エリア負荷情報取得手段から他エリア全体の負荷情報を取得し、それら自エリア内の各候補サーバの負荷情報および他エリア全体の負荷情報を考慮して自エリア内の各候補サーバおよび他エリアの重み係数を算出して重み係数テーブルを更新する重み係数更新手段と、
自エリア内候補サーバの識別子リストと他エリアの識別子リストを受け取り、前記距離情報取得手段から自エリア内各候補サーバ・利用者端末間距離および他エリア・利用者端末間距離を取得し、前記重み係数テーブルから自エリア内の各候補サーバおよび他エリアの重み係数を取得して、自エリア内の各候補サーバおよび他エリアの重み付け評価値を算出する重み付け評価値算出手段と、
前記重み付け評価値算出手段から自エリア内の各候補サーバおよび他エリアの重み付け評価値を取得して自エリア内の各候補サーバと他エリアの優先度を決定し、この優先度の高い順に選択サーバまたは選択エリアとして出力する接続サーバ決定手段と
を有することを特徴とするサーバ選択装置。
【請求項５】
前記自エリア負荷情報通知手段は、自エリア全体の負荷情報を任意に設定可能な周期に従って取得することを特徴とする請求項４に記載のサーバ選択装置。
【請求項６】
前記自エリア負荷情報通知手段は、任意に設定可能な周期に従い自エリアの負荷情報を他エリアのサーバ選択装置に通知し、
前記他エリア負荷情報取得手段は、任意に設定可能な周期に従い他エリアのサーバ選択装置から他エリアの負荷情報を取得することを特徴とする請求項４に記載のサーバ選択装置。
【請求項７】
ネットワークを複数のエリアに分割した場合のあるエリア内に存在する利用者を接続させるサーバを、分散配置された複数の候補サーバから選択するサーバ選択装置であって、
利用者が属するエリアと当該エリア内利用者を接続させるサーバとの関係を記述したマッピングテーブルと、
利用者端末識別子を受け取り、利用者の属するエリアを特定する位置情報取得手段と、
前記位置情報取得手段で取得した利用者位置情報と前記マッピングテーブルにより当該利用者を接続させるサーバを特定する接続サーバ決定手段と
を備えたことを特徴とするサーバ選択装置。
【請求項８】
候補サーバの識別子のリストを受け取り、各候補サーバの負荷情報を取得するサーバ負荷情報取得手段と、
前記サーバ負荷情報取得手段で取得した各候補サーバの負荷情報に基づき、他の候補サーバと比較して負荷が大きいサーバを接続サーバとしている利用者従属エリアの接続先サーバを変更するために前記マッピングテーブルを更新するマッピングテーブル更新手段と
を備えたことを特徴とする請求項７に記載のサーバ選択装置。
【請求項９】
前記マッピングテーブル更新手段は、前記マッピングテーブルに記載されている各候補サーバと利用者従属エリアの対応関係情報について、候補サーバ識別子リストに記載されている各候補サーバのうち最も利用者従属エリアに近い候補サーバを選択サーバの初期値とし、
前記サーバ負荷情報取得手段によって取得された負荷が最大のサーバを接続サーバに選択している利用者従属エリアについて、他のサーバと当該エリアとの通信コストが最も低くなる候補サーバに接続サーバを変更した場合の通信コスト増加量を求め、この通信コスト増加量が小さいエリアの接続サーバを変更する
ことを特徴とした請求項８に記載のサーバ選択装置。
【請求項１０】
複数のエリアに分割されたネットワーク内のあるエリアに設置されており、分散配置された複数の候補サーバの中から利用者端末を接続させるサーバを選択するサーバ選択方法において、
当該サーバ選択装置が設置されているエリアを自エリアと定義し、当該エリア以外のあるエリアを他エリアと定義し、
利用者端末識別子と自エリア内候補サーバの識別子リストと他エリア内候補サーバの識別子リストを受け取り、自エリア内各候補サーバ・利用者端末間距離および他エリア内各候補サーバ・利用者端末間距離を取得する距離情報取得段階と、
サーバ選択時に用いる重み係数を前記候補サーバ毎に重み係数テーブルに記憶する重み係数記憶段階と、
前記候補サーバ識別子リストを受け取り、各候補サーバの負荷情報を取得するサーバ負荷情報取得段階と、
前記サーバ負荷情報取得段階を用いて自エリア内の各候補サーバの負荷情報を取得し、それら自エリア内の各候補サーバの負荷情報を他エリアに設置されているサーバ選択装置に通知する自エリア負荷情報通知段階と、
他エリアに設置されているサーバ選択装置から他エリア内の各候補サーバの負荷情報を取得する他エリア負荷情報取得段階と、
自エリア内の各候補サーバの負荷情報を前記サーバ負荷情報取得段階により取得し、前記他エリア負荷情報取得段階により他エリア内の各候補サーバの負荷情報を取得し、それら自エリア内および他エリア内の各候補サーバの負荷情報を考慮して自エリア内および他エリア内の各候補サーバの重み係数を算出して重み係数テーブルを更新する重み係数更新段階と、
自エリア内候補サーバの識別子リストと他エリア内候補サーバの識別子リストを受け取り、前記距離情報取得段階により自エリア内各候補サーバ・利用者端末間距離および他エリア内各候補サーバ・利用者端末間距離を取得し、前記重み係数テーブルから自エリア内および他エリア内の各候補サーバの重み係数を取得して、自エリア内および他エリア内の各候補サーバの重み付け評価値を算出する重み付け評価値算出段階と、
前記重み付け評価値算出段階により自エリア内および他エリア内の各候補サーバの重み付け評価値を取得して各候補サーバの優先度を決定し、この優先度の高い順に選択サーバまたは選択エリアとして出力する接続サーバ決定段階と
を有することを特徴とするサーバ選択方法。
【請求項１１】
前記自エリア負荷情報通知段階は、自エリア内の候補サーバ負荷情報を任意に設定可能な周期に従って取得することを特徴とする請求項１０に記載のサーバ選択方法。
【請求項１２】
前記自エリア負荷情報通知段階は、任意に設定可能な周期に従い自エリア内候補サーバ負荷情報を他エリアのサーバ選択装置に通知し、
前記他エリア負荷情報取得段階は、任意に設定可能な周期に従い他エリアのサーバ選択装置から他エリア内候補サーバ負荷情報を取得する
ことを特徴とする請求項１０に記載のサーバ選択方法。
【請求項１３】
複数のエリアに分割されたネットワーク内のあるエリアに設置されており、分散配置された複数の候補サーバの中から利用者端末を接続させるサーバを選択するサーバ選択方法において、
当該サーバ選択装置が設置されているエリアを自エリアと定義し、当該エリア以外のあるエリアを他エリアと定義し、
利用者端末識別子と自エリア内候補サーバの識別子リストと他エリアの識別子リストを受け取り、自エリア内各候補サーバ・利用者端末間距離および他エリア・利用者端末間距離を取得する距離情報取得段階と、
サーバ選択時に用いる重み係数を前記候補サーバ毎に重み係数テーブルに記憶する重み係数記憶段階と、
前記候補サーバ識別子リストを受け取り、各候補サーバの負荷情報を取得するサーバ負荷情報取得段階と、
前記サーバ負荷情報取得段階を用いて自エリア内の各候補サーバの負荷情報を取得して自エリア全体の負荷情報を算出し、この自エリア負荷情報を他エリアに設置されているサーバ選択装置に通知する自エリア負荷情報通知段階と、
他エリアに設置されているサーバ選択装置から他エリア全体の負荷情報を取得する他エリア負荷情報取得段階と、
自エリア内の各候補サーバの負荷情報を前記サーバ負荷情報取得段階により取得し、前記他エリア負荷情報取得段階により他エリア全体の負荷情報を取得し、それら自エリア内の各候補サーバの負荷情報および他エリア全体の負荷情報を考慮して自エリア内の各候補サーバおよび他エリアの重み係数を算出して重み係数テーブルを更新する重み係数更新段階と、
自エリア内候補サーバの識別子リストと他エリアの識別子リストを受け取り、前記距離情報取得段階により自エリア内各候補サーバ・利用者端末間距離および他エリア・利用者端末間距離を取得し、前記重み係数更新段階により更新された前記重み係数テーブルから自エリア内の各候補サーバおよび他エリアの重み係数を取得して、自エリア内の各候補サーバおよび他エリアの重み付け評価値を算出する重み付け評価値算出段階と、
前記重み付け評価値算出段階により自エリア内の各候補サーバおよび他エリアの重み付け評価値を取得して自エリア内の各候補サーバと他エリアの優先度を決定し、この優先度の高い順に選択サーバまたは選択エリアとして出力する接続サーバ決定段階と
を有することを特徴とするサーバ選択方法。
【請求項１４】
前記自エリア負荷情報通知段階は、自エリア全体の負荷情報を任意に設定可能な周期に従って取得することを特徴とする請求項１３に記載のサーバ選択方法。
【請求項１５】
前記自エリア負荷情報通知段階は、任意に設定可能な周期に従い自エリア負荷情報を他エリアのサーバ選択装置に通知し、
前記他エリア負荷情報取得段階は、任意に設定可能な周期に従い他エリアのサーバ選択装置から他エリアの負荷情報を取得することを特徴とする請求項１３に記載のサーバ選択方法。
【請求項１６】
ネットワークを複数のエリアに分割した場合のあるエリア内に存在する利用者を接続させるサーバを、分散配置された複数の候補サーバから選択するサーバ選択方法であって、
利用者が属するエリアと当該エリア内利用者を接続させるサーバとの関係をマッピングテーブルに記述する段階と、
利用者端末識別子を受け取り、利用者の属するエリアを特定する位置情報取得段階と、
前記位置情報取得段階で取得した利用者位置情報と前記マッピングテーブルにより当該利用者を接続させるサーバを特定する接続サーバ決定段階と
を有することを特徴とするサーバ選択方法。
【請求項１７】
候補サーバの識別子のリストを受け取り、各候補サーバ負荷情報を取得するサーバ負荷情報取得段階と、
前記サーバ負荷情報取得段階で取得した各候補サーバ負荷情報に基づき、他の候補サーバと比較して負荷が大きいサーバを接続サーバとしている利用者従属エリアの接続先サーバを変更するために前記マッピングテーブルを更新するマッピングテーブル更新段階と
を備えたことを特徴とする請求項１６に記載のサーバ選択方法。
【請求項１８】
前記マッピングテーブル更新段階は、前記マッピングテーブルに記載されている各候補サーバと利用者従属エリアの対応関係情報について、候補サーバ識別子リストに記載されている各候補サーバのうち最も利用者従属エリアに近い候補サーバを選択サーバの初期値とし、
前記サーバ負荷情報取得段階によって取得された負荷が最大のサーバを接続サーバに選択している利用者従属エリアについて、他のサーバと当該エリアとの通信コストが最も低くなる候補サーバに接続サーバを変更した場合の通信コスト増加量を求め、この通信コスト増加量が小さいエリアの接続サーバを変更する
ことを特徴とした請求項１７に記載のサーバ選択方法。
【請求項１９】
ネットワークを複数のエリアに分割した場合のあるエリア内に存在する利用者を接続させるサーバを、分散配置された複数の候補サーバから選択するようにコンピュータに機能させるサーバ選択プログラムであって、
利用者が属するエリアと当該エリア内利用者を接続させるサーバとの関係を記述するマッピングテーブルと、
利用者端末識別子を受け取り、利用者の属するエリアを特定する位置情報取得手段と、
前記位置情報取得段階で取得した利用者位置情報と前記マッピングテーブルにより当該利用者を接続させるサーバを特定する接続サーバ決定手段と
してコンピュータを機能させることを特徴とするサーバ選択プログラム。
【請求項２０】
請求項１９に記載の前記サーバ選択プログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データネットワークに関し、より詳細にはある利用者に最適なサーバをサーバ・利用者間距離および各サーバ負荷を考慮して選択するサーバ選択装置、サーバ選択方法、サーバ選択プログラム及び該プログラムを記録した記録媒体に関するものである。
【０００２】
【従来の技術】
近年におけるインターネット利用の急速な普及により、人気のあるコンテンツには常に大量のアクセス要求が発生している。特に、ライブ中継などにおいて短時間に膨大な数のアクセス要求が発生したり、就職情報提供サイトのように特定時期にだけ非常に多くのアクセス要求が発生する場合もある。このように、インターネット利用が当たり前になり膨大なアクセス数への対応を迫られた場合、過負荷のためにサーバがダウンし、サービスが停止してしまうことはサービス提供者にとって最も避けなくてはならない事態である。
【０００３】
大量のアクセス要求によるサーバのダウンを防止する１方法として、ミラーサーバやキャッシュサーバを用意する方法がある。ミラーサーバには、オリジナルサーバ（ミラーサーバやキャッシュサーバとの混同をさけるため、オリジナルのコンテンツを予め保持しているサーバをこのように呼ぶ）と同一のコンテンツがコピーされ（これをミラーリングという）、このミラーサーバにクライアントをアクセスさせることによりサーバ１台あたりのアクセス数が減少し、サーバが過負荷状態に陥ることを回避できる。また、キャッシュサーバにはクライアントが既にアクセスしたコンテンツが一定期間保持され、その期間内に再度同一コンテンツにアクセスする際にはキャッシュサーバからコンテンツが取得可能であるため、オリジナルサーバヘのアクセス数が減少し、オリジナルサーバの負荷が軽減される。
【０００４】
用意されたミラーサーバ、キャッシュサーバはオリジナルサーバと同じ場所に設置されているほうが管理上の負担を軽減できる。しかし、ミラーサーバやキャッシュサーバを分散配置し、利用者を最寄りのミラーサーバ、キャッシュサーバに接続させることで、各サーバの負荷を分散して軽減すると同時にサーバ・利用者間のネットワーク負荷も軽減できる。つまり、アクセス要求の多いコンテンツを有するサーバは、ミラーサーバやキャッシュサーバを用意し、それらを分散配置することでサーバ負荷もネットワーク負荷も軽減できる。
【０００５】
しかし、ミラーサーバやキャッシュサーバを分散配置した場合には以下のような問題点がある。
【０００６】
まず、クライアントがミラーサーバの場所を知らない場合が考えられる。サービス品質の低下を防止するには、サーバヘのアクセス要求が増加するほど多くのミラーサーバを用意することで解決できる。逆に、アクセス要求数が以前ほど多くなければミラーサーバを廃止することもできる。すなわち、ミラーサーバ設置数は変更の自由度が高く、その都度利用者がミラーサーバのＵＲＬ（Uniform Resource Locatorの略。インターネット上の情報源（リソース）の存在場所を示す記述方式であり、情報の住所に相当する。）を覚えることは利用者の負担増を招いてしまう。また、仮にミラーサーバのＵＲＬが与えられたとしても、各利用者がオリジナルサーバとミラーサーバ全ての候補サーバの中から自分に最適なサーバを選択することは困難である。さらに、ミラーサーバ設置数の動的な増減を考慮せずに多くの利用者に同一ミラーサーバのＵＲＬが与えられると、将来的には当該ミラーサーバにアクセス要求が集中してしまうことでミラーサーバが過負荷となってダウンしてしまい、当初の目的であるサービス品質低下防止を達成できなくなる。
【０００７】
よって、ミラーサーバの設置数、設置場所、負荷などを考慮し、利用者を接続させるのに最も適したミラーサーバを選択する必要がある。
【０００８】
以下、従来用いられてきたサーバ選択方式について説明する。
【０００９】
（１）距離最小化方式
距離最小化方式とは、利用者に最寄りのサーバを選択するサーバ選択方式である。ここで距離情報としては、サーバ・利用者端末間の応答時間やネットワーク帯域などを用いることができる。James D. GuytonとMichael F. Schwartsにより、サーバ・利用者間の測定距離に基づいたエリア選択装置が紹介されている（“Locating Nearby Copies of Replicated Internet Servers”, SIGCOMM ‘95）以下で説明する。
【００１０】
本方式によるサーバ選択装置の構成を図１に示す。同装置は距離情報取得手段、距離情報テーブル、評価値算出手段、選択サーバ出力手段から構成される。
以下、観測エリア（サーバ選択装置がいる箇所）から観測対象（例えばミラーサーバや利用者）までに通過する中継器の識別子を観測エリアに近い順に並べた情報を経路情報として定義する。さらに、ある観測対象までの経路情報に含まれる中継器の識別子数を、観測エリア・観測対象間の距離として定義する。
【００１１】
距離情報取得手段は、分散配置されている選択候補サーバのリスト、利用者の位置情報、さらに観測点の位置情報リストを受け取り、観測点からサーバおよび利用者端末までの経路情報を取得し、それら経路情報からサーバ・利用者間の距離を算出する。
【００１２】
（以下、距離情報取得手段の第１段階としての経路情報取得に用いるtracerouteの説明）
経路情報を取得する１手段としてtracerouteがある。以下で、tracerouteについて説明する。
【００１３】
ＩＰパケットにはその生存時間を示すTime-To-Live値（以下ＴＴＬ値）が定義されている。ＴＴＬ値はＩＰパケットがインターネット上で生存可能な最大時間を示し、ルータを通過するたびに１秒ずつ減らされる。ところがＴＴＬ値は整数値であるため、ルータにおけるパケット転送処理に１秒間もかからない場合でも、パケットがルータを通過するたびにＴＴＬ値は１ずつ減らされる。すなわち、ＴＴＬ値はホップカウンタであり、ＴＴＬ値はパケットが通過可能な最大ルータ数を示す値に等しい。転送されるべきパケットのＴＴＬ値が０になると、インターネット上のルータは当該パケットを転送せず、当該パケットの送信元ホストにＴＴＬ値が０になったことを知らせるエラー通知用のＩＣＭＰ（Internet Control Message Protocolの略。ＩＰのエラーメッセージや制御メッセージを転送するプロトコル。）パケットを送り返す。また、インターネット上の端末は受信待機していないポート番号宛てのパケットを受信した場合、当該パケットの送信元ホストに受信待機していないポートにパケットが到着したことを知らせるエラー通知用のＩＣＭＰパケットを送り返す。ＩＣＭＰパケットにはＩＣＭＰパケット送信元のＩＰアドレスが記述される。ここで、tracerouteコマンドはＴＴＬ値を１から順にインクリメントしながら観測対象に向けて探索パケットを送出する。これにより、traceroute実行端末から観測対象までのルータアドレスを得ることができ、取得したルータアドレスをtraceroute実行端末に近い順に並べたものが観測対象までの経路情報となる。tracerouteによる経路情報取得処理は、traceroute実行ホストが目的のホストからＩＣＭＰパケットを受信したときに終了する。図２において、traceroute実行端末から観測対象に対してtracerouteを実行するとＴＴＬ値が小さい場合から順に中継器識別子Ｒ１，Ｒ２，Ｒ３，Ｒ４，Ｒ５が得られ、これがtraceroute実行端末から観測対象までの経路情報となる。
【００１４】
以上のようなtracerouteの性質を用いて観測エリアから観測対象に対してtracerouteを実行すると観測エリア・観測対象間の経路情報が求められる。この経路情報より、上記距離の定義に従って観測エリア・観測対象間の距離が算出される。
【００１５】
距離情報テーブルは、距離情報取得手段が取得した距離情報を、各サーバおよびクライアント毎にまとめ、テーブル形式で保持したものである。いま、ネットワーク上にｎ箇所の観測エリアＰ１，Ｐ２，…，Ｐｎがあるとする。観測エリアＰ１，Ｐ２，…，Ｐｎからネットワーク上のあるサーバＳｉへの距離がそれぞれｓ１，ｓ２，…，ｓｎで与えられるとする。同様に、観測エリアＰ１，Ｐ２，…，Ｐｎからネットワーク上のクライアントＣへの距離がそれぞれｃ１，ｃ２，…，ｃｎで与えられるものとする。このような、各観測エリアからの距離をクライアント毎にまとめ、距離情報テーブルとして保持する。
【００１６】
評価値算出手段は、距離情報テーブルに保持されている各サーバおよびクライアントの距離情報を用いて、各サーバとクライアントの組み合わせについて距離評価値を算出する。ここで距離評価値Ａ（Ｓｉ，Ｃ）は、
A(Si,C)={max(|s1-c1|,|s2-c2|,…,|sn-cn|)+min(s1+c1,s2+c2,…,sn+cn)}/2
で与えられる。この値が小さいほど当該サーバとクライアント間の距離が近いことを意味する。
【００１７】
評価値算出手段は、各サーバについてクライアントとの距離評価値を求め、選択サーバ出力手段に入力する。
【００１８】
選択サーバ出力手段は、評価値に基づいて各サーバの優先度を決定し、サーバリストを作成して出力する。優先度の高いサーバから順に選択される。
【００１９】
（２）負荷均等化方式
負荷均等化方式とは、各サーバの負荷が均等になるように利用者を接続させるサーバを選択する方式である。本方式には、利用者の接続先サーバ選択時に現在の各サーバ負荷を考慮しない静的な方法と、現在のサーバ負荷を考慮する動的な方法の２種類に大別される。
【００２０】
サーバ負荷を考慮しない、静的な接続先サーバ決定方法としては、以下の方法が挙げられる。
・ラウンドロビン法：予め決めた順番に従って各サーバに利用者を接続させる。
・重み付けラウンドロビン法：各サーバの処理性能に応じた重み付けを行い、重み付けを考慮して予め決定した順番に従って各サーバに利用者を接続させる。
・優先順位法：予め各サーバに優先順位を与えておき、一定のアクセス数を割り当てたら次の優先順位のサーバに利用者をアクセスさせる。
【００２１】
また、動的な接続先サーバ選択時では、その時点でのサーバ負荷を取得して負荷の小さなサーバに利用者を接続させる。サーバ負荷の種類によって以下のようなサーバ選択方式がある。
・最小接続数法：最も接続数の少ないサーバに利用者を接続させる。
・最速応答速度法：pingコマンドなどを用いてサーバが起動しているかを確認するヘルスチェックを行い、その応答時間が最も短いサーバに利用者を接続させる。
・ＣＰＵ負荷法：各サーバのＣＰＵ負荷情報を収集し、ＣＰＵ負荷が小さなサーバから順番に利用者を接続させる。
・複合法：上記の複数の指標を組み合わせ、その算出値に基づいて利用者を接続させる。
【００２２】
一般的に、動的なサーバ負荷測定に基づくサーバ選択方式は静的なサーバ選択方式に比べて負荷均等化の効果が期待できる。
【００２３】
【発明が解決しようとする課題】
従来のサーバ選択方式における問題点を以下で説明する。
【００２４】
（１）距離最小化方式
距離最小化方式は、伝送遅延などを考慮してサーバ・利用者間のトラヒックができるだけ少なくなるように設計されている。しかし、サーバ・利用者間距離のみに着目してサーバを選択すると、特定のサーバの近傍に多くの利用者が存在している場合、当該サーバには他サーバに比べて多くのアクセス要求が集中する。その結果、当該サーバの処理能力を上回るアクセス要求が集中し、サービス品質が低下してしまう。
【００２５】
図４のように、同一性能を有する２台のサーバａ，ｂが配置されているとする、サーバａ，ｂを中心として同一半径円内をそれぞれエリアＡ，Ｂとする。図４のようにサーバａ付近にクライアントが集中して存在した場合、サーバ・利用者間距離のみを考慮して接続サーバを決定すると、サーバＡだけにアクセス要求が集中してサーバＡの負荷が増大する。その結果、アクセス要求数がサーバａの許容アクセス数を超えてしまう過負荷状態に陥り、エリアＡ内の他の利用者がサービスを全く受けられない、あるいはサービス品質が著しく低下するという問題が生じる。
【００２６】
また、図５のように、高性能なサーバａと性能の低いサーバｂが配置されていたとする、サーバａ，ｂを中心として同一半径内をそれぞれエリアＡ，Ｂとし、両エリアに同数（Ｎ）の利用者が存在してアクセス要求を行った場合、両サーバの負荷に着目すると、性能が低いサーバｂの負荷の方がサーバａの負荷よりも大きくなる。利用者数Ｎが大きくなるとサーバｂが過負荷となり、サーバｂ近傍の利用者が充分なサービスを受けられなくなる。
【００２７】
（２）負荷均等化方式
負荷均等化方式では、各サーバの処理能力に見合っただけのアクセス要求を受け付けることで、サーバ性能がボトルネックになることによるサービス品質の低下を防止できる。しかし、各サーバの負荷均等化のみに着目したサーバ選択処理を行うと、利用者は処理能力にまだ余裕のあるサーバが近傍にあるにも関わらず遠隔のサーバに誘導され、その結果ネットワークコスト（余計なトラヒック）が増大するという問題が生じる。
【００２８】
図６のように、２台のサーバａ，ｂと利用者１〜４が配置されているとする。利用者１，２，３はサーバａ近傍に位置し、利用者４はサーバｂ近傍に位置する。両サーバの性能は同等であり、最大許容アクセス数Ｎが予め与えられているものとする。両サーバの負荷が均等になるように利用者を割り当てると、サーバ数２、利用者数４であるため、１サーバに対して２利用者がアクセスすることになる。ここで、図６のように利用者１，２をサーバａに、利用者３，４をサーバｂにそれぞれアクセスさせた場合、かつサーバａのアクセス数（＝２）が最大許容アクセス数Ｎよりも小さい場合、クライアント３はサーバ負荷の観点から余裕のあるサーバが近傍にあるにもかかわらず、遠くのサーバを接続先として選択されている。この場合、ネットワークコストが増加し、サービス品質が低下する恐れがある。
【００２９】
別の例として、図７に示すように性能に差がある２台のサーバａ，ｂがそれぞれエリアＡ，Ｂに配置されているとする。サーバａの処理性能はサーバｂの２倍であるとする。さらにエリアＡ，Ｂには同数の利用者が存在するとする。ここで、両サーバの処理性能に応じた負荷分散を行うと、サーバａにアクセスする利用者数はサーバｂにアクセスする利用者数の２倍となるように、各利用者の接続さきサーバが選択される。その結果、図７の場合では利用者１〜４までがサーバａに、利用者５，６がサーバｂにアクセスすることになる。ここで、サーバｂが受け付け可能な最大アクセス数Ｎが２に比べて充分大きな値である場合、利用者４は近傍のサーバｂの処理能力に余裕があるにも関わらず、遠方のサーバａにアクセスしていることになる。このように、サーバの処理性能に着目し、負荷分散を考慮して利用者を接続させるサーバを選択すると、利用者が処理能力に余裕がある近傍のサーバから遠くはなれたサーバに導かれる場合がある。この場合もネットワークコストの増加し、サービス品質の低下を招く。
【００３０】
本発明は、以上で説明した従来のサーバ選択方式の課題を解決する。特に、距離最小化方式の問題点である特定エリアに偏ってクライアントが存在する場合に特定のサーバに負荷が集中する問題を解決し、さらに負荷均等化方式と比較してネットワークコストが抑えられるサーバ選択装置を実現する。また、複数のサーバ選択装置の連携によってサーバ選択を行う場合にも、上記の特徴を有するサーバ選択を実現する。
【００３１】
【課題を解決するための手段】
従来技術における上記問題点を解決するために、本発明ではサーバ・利用者間の距離と各サーバ負荷の両指標に着目して利用者を接続させるべきサーバを決定するサーバ選択装置を、以下で説明する２手法を用いて実現する。
【００３２】
（１）重み係数法
本方式では、従来の距離最小化方式において近傍に多くの利用者を抱えるサーバヘの負荷集中を軽減すると同時に、負荷均等化方式において発生する余計なネットワークトラヒックを軽減する。本方式によるサーバ選択装置の構成を図８に示す。図８のサーバ選択装置は、距離情報取得手段、サーバリストに記載されている各サーバの負荷情報を取得するサーバ負荷情報取得手段、サーバ負荷情報取得手段によって得られた各サーバの負荷情報に基づいて重み係数を決定する重み係数更新手段、重み係数更新手段により得られる各サーバの重み係数を保持する重み係数テーブル、距離情報取得手段で得られたサーバ・利用者間距離と重み付け更新手段で得られた重み係数を用い、各サーバの重み付き評価値を算出する重み付け評価値算出手段、接続サーバ決定手段で構成される。
【００３３】
参考となる発明を以下で述べる。距離情報取得手段は、前記候補サーバの識別子のリストと利用者端末識別子を受け取り、各候補サーバから利用者端末までの経路情報を取得し、その経路情報からサーバ・利用者間距離を算出する。経路情報の例としてはサーバ・利用者端末間を経由するルータのＩＰアドレスがあり、それらルータのＩＰアドレスの数をサーバ・利用者間距離として利用できる。
【００３４】
サーバ負荷情報取得手段は、候補サーバ識別子リストを受け取り、各候補サーバの負荷情報を取得する。ここで、サーバ負荷の種類としては、従来技術の負荷均等化方式の説明で述べたアクセス数、応答速度、ＣＰＵ使用率、メモリ占有率、伝送速度、遅延時間などの指標がある。また、それらの指標を適宜組み合わせて新たに別の指標として定義することもできる。
【００３５】
重み係数更新手段は、サーバ負荷情報取得手段が取得した各候補サーバの負荷情報に対して条件判定処理を行い、各サーバの負荷に応じた重み係数を決定し、重み係数テーブルを更新する。重み係数テーブルには各サーバとその重み係数が対応づけられて記述されている。
【００３６】
重み付け評価値算出手段は、距離情報取得手段から取得したサーバ・利用者端末間距離と、重み係数テーブルから重み係数を取得して各候補サーバの重み付け評価値を算出する。接続サーバ決定手段は、重み付け評価値算出手段より得られる各候補サーバの重み付け評価値を参照して、候補サーバ識別子リストに記載されている各候補サーバを優先度の高い順に選択サーバとして出力する。
【００３７】
このようにサーバ・利用者間距離とサーバ負荷を同時に考慮することで距離最小化方式で発生する特定サーバヘの負荷集中を解決し、負荷均等化方式と比較してもネットワークコストを抑制することができる。
【００３８】
また、参考となる発明によるサーバ選択方法によれば、候補サーバの識別子のリストと利用者端末識別子を受け取り、各候補サーバ・利用者端末間の距離を取得する距離情報取得段階と、サーバ選択時に用いる重み係数を候補サーバ毎に重み係数テーブルに記憶する段階と、候補サーバ識別子リストを受け取り、各候補サーバの負荷情報を取得するサーバ負荷情報取得段階と、サーバ負荷情報取得手段から各候補サーバの負荷情報を取得して重み係数を決定し、重み係数テーブルを更新する重み係数更新段階と、候補サーバ識別子リストを受け取り、距離情報取得手段からサーバ・利用者端末間距離を取得し、重み係数テーブルから重み係数を取得して各候補サーバの重み付け評価値を算出する重み付け評価値算出段階と、重み付け評価値算出手段から候補サーバ識別子リストと各候補サーバの重み付け評価値を取得し、候補サーバ識別子リストに記載されている各候補サーバの優先度を決定し、この優先度の高い順に選択サーバとして出力する接続サーバ決定段階とを有する。
【００３９】
更に、参考となる発明によるサーバ選択プログラムによれば、候補サーバの識別子のリストと利用者端末識別子を受け取り、各候補サーバ・利用者端末間の距離を取得する距離情報取得手段と、サーバ選択時に用いる重み係数を前記候補サーバ毎に重み係数テーブル記憶する手段と、候補サーバ識別子リストを受け取り、各候補サーバの負荷情報を取得するサーバ負荷情報取得手段と、サーバ負荷情報取得手段から各候補サーバの負荷情報を取得して重み係数を決定し、重み係数テーブルを更新する重み係数更新手段と、候補サーバ識別子リストを受け取り、距離情報取得手段からサーバ・利用者端末間距離を取得し、重み係数テーブルから重み係数を取得して各候補サーバの重み付け評価値を算出する重み付け評価値算出手段と、重み付け評価値算出手段から候補サーバ識別子リストと各候補サーバの重み付け評価値を取得し、候補サーバ識別子リストに記載されている各候補サーバの優先度を決定し、この優先度の高い順に選択サーバとして出力する接続サーバ決定手段としてコンピュータを機能させる。
【００４０】
尚、前述したサーバ選択プログラムを記録した記録媒体であってもよい。
【００４１】
上記参考となる発明の１形態に属する発明を述べる。
【００４２】
該サーバ負荷情報取得手段は、任意に設定可能な周期に従って各候補サーバの負荷を取得する手段を含むこととした。
【００４３】
これにより、サービスヘのアクセス数に応じたサーバ負荷情報取得処理が可能となる。例えばアクセス数の多いサービスについては頻繁に各候補サーバの負荷を取得することで特定のサーバが過負荷になる前に利用者を他のサーバに接続させることができる。逆にアクセス数の少ないサービスについては必要最小限のサーバ負荷情報取得を行うことでサーバ負荷情報取得処理を軽減できる。
【００４４】
参考となる発明のサーバ選択方法の他の実施形態によれば、サーバ負荷情報取得段階は、任意に設定可能な周期に従って各候補サーバの負荷を取得することも好ましい。
【００４５】
さらに上記発明の別な１形態に属する発明を述べる。
重み係数更新手段は重み係数がサーバ負荷のｋ乗の値をとるように重み係数を更新する手段を含むこととした。いま、０よりも大きな実数をｋ、ある候補サーバＳｉの負荷情報をＬ（Ｓｉ）、重み係数をＷ（Ｓｉ）とし、Ｗ（Ｓｉ）を次式に従って算出する。
【００４６】
Ｗ（Ｓｉ）＝Ｌ（Ｓｉ）ｋ
【００４７】
候補サーバの負荷と候補サーバ・利用者端末間距離の両方を考慮するサーバ選択処理において、候補サーバ負荷重視あるいは候補サーバ・利用者端末間距離重視のサーバ選択処理の調節を容易に実現することができる。
【００４８】
参考となる発明のサーバ選択方法の他の実施形態によれば、重み係数更新段階は、重み係数を算出する際に、ｋを０以上の実数とし、重み係数がサーバ負荷のｋ乗の値を取るように重み係数を更新する段階を含むことも好ましい。
【００４９】
（請求項１）
本発明は、複数のエリアに分割されたネットワーク内のあるエリアに設置されており、分散配置された複数の候補サーバの中から利用者端末を接続させるサーバを選択するサーバ選択装置において、
当該サーバ選択装置が設置されているエリアを自エリアと定義し、当該エリア以外のあるエリアを他エリアと定義し、
利用者端末識別子と自エリア内候補サーバの識別子リストと他エリア内候補サーバの識別子リストとを受け取り、自エリア内各候補サーバ・利用者端末間距離および他エリア内各候補サーバ・利用者端末間距離を取得する距離情報取得手段と、
サーバ選択時に用いる重み係数を候補サーバ毎に記憶する重み係数テーブルと、
候補サーバの識別子リストを受け取り、各候補サーバの負荷情報を取得するサーバ負荷情報取得手段と、
サーバ負荷情報取得手段を用いて自エリア内の各候補サーバの負荷情報を取得し、それら自エリア内の各候補サーバの負荷情報を他エリアに設置されているサーバ選択装置に通知する自エリア負荷情報通知手段と、
他エリアに設置されているサーバ選択装置から他エリア内の各候補サーバの負荷情報を取得する他エリア負荷情報取得手段と、
自エリア内の各候補サーバの負荷情報をサーバ負荷情報取得手段から取得し、他エリア負荷情報取得手段から他エリア内の各候補サーバの負荷情報を取得し、それら自エリア内および他エリア内の各候補サーバの負荷情報を考慮して自エリア内および他エリア内の各候補サーバの重み係数を算出して重み係数テーブルを更新する重み係数更新手段と、
自エリア内候補サーバの識別子リストと他エリア内候補サーバの識別子リストを受け取り、距離情報取得手段から自エリア内各候補サーバ・利用者端末間距離および他エリア内各候補サーバ・利用者端末間距離を取得し、重み係数テーブルから自エリア内および他エリア内の各候補サーバの重み係数を取得して、自エリア内および他エリア内の各候補サーバの重み付け評価値を算出する重み付け評価値算出手段と、
重み付け評価値算出手段から自エリア内および他エリア内の各候補サーバの重み付け評価値を取得して各候補サーバの優先度を決定し、この優先度の高い順に選択サーバまた選択エリアとして出力する接続サーバ決定手段と、
を有することを特徴とする。
本発明は、複数のエリアに跨ったサーバ選択を行うため、上記参考となる発明に次の各手段を追加して各エリアに配置するものとした。本方式におけるサーバ選択装置の構成を図９に示す。
【００５０】
自エリア負荷情報通知手段は、サーバ負荷情報取得手段を用いてサーバ選択装置が設置されている自エリア内の各候補サーバの負荷情報を取得し、それら自エリア内の各候補サーバの負荷情報を他エリアに設置されているサーバ選択装置に通知する。
【００５１】
他エリア負荷情報取得手段は、他エリアに設置されているサーバ選択装置から他エリア内の各候補サーバの負荷情報を取得し、重み係数更新手段に通知する。
【００５２】
さらに、距離情報取得手段は、利用者端末識別子と自エリア内候補サーバの識別子リストと他エリア内候補サーバの識別子リストを受け取り、自エリア内各候補サーバ・利用者端末間距離および他エリア内各候補サーバ・利用者端末間距離を取得する。
【００５３】
重み係数更新手段は、自エリア内の各候補サーバの負荷情報を請求項１に記載のサーバ負荷情報取得手段から取得し、さらに前記他エリア負荷情報取得手段から他エリア内の各候補サーバの負荷情報を取得し、それら自エリア内および他エリア内の各候補サーバの負荷情報を考慮して自エリア内および他エリア内の各候補サーバの重み係数を算出して重み係数テーブルを更新する。
【００５４】
重み付け評価値算出手段は、自エリア内候補サーバの識別子リストと他エリア内候補サーバの識別子リストを受け取り、前記距離情報取得手段から自エリア内各候補サーバ・利用者端末間距離および他エリア内各候補サーバ・利用者端末間距離を取得し、さらに前記重み係数更新手段により更新された重み係数テーブルから自エリア内および他エリア内の各候補サーバの重み係数を取得して、自エリア内および他エリア内の各候補サーバの重み付け評価値を算出する。
【００５５】
接続サーバ決定手段は、前記重み付け評価値算出手段から自エリア内および他エリア内の各候補サーバの重み付け評価値を取得して各候補サーバの優先度を決定し、この優先度の高い順に選択サーバまたは選択エリアとして出力する。
【００５６】
これにより、自エリアのサーバがいずれも高負荷な状態にある場合には遠隔の処理能力に余裕のあるサーバが選択され、近傍サーバの過負荷によるサービス品質の低下を回避することができる。
【００５７】
（請求項１０）
本発明は、複数のエリアに分割されたネットワーク内のあるエリアに設置されており、分散配置された複数の候補サーバの中から利用者端末を接続させるサーバを選択するサーバ選択方法において、
当該サーバ選択装置が設置されているエリアを自エリアと定義し、当該エリア以外のあるエリアを他エリアと定義し、
利用者端末識別子と自エリア内候補サーバの識別子リストと他エリア内候補サーバの識別子リストを受け取り、自エリア内各候補サーバ・利用者端末間距離および他エリア内各候補サーバ・利用者端末間距離を取得する距離情報取得段階と、
サーバ選択時に用いる重み係数を候補サーバ毎に重み係数テーブルに記憶する重み係数記憶段階と、
候補サーバ識別子リストを受け取り、各候補サーバの負荷情報を取得するサーバ負荷情報取得段階と、
サーバ負荷情報取得段階を用いて自エリア内の各候補サーバの負荷情報を取得し、それら自エリア内の各候補サーバの負荷情報を他エリアに設置されているサーバ選択装置に通知する自エリア負荷情報通知段階と、
他エリアに設置されているサーバ選択装置から他エリア内の各候補サーバの負荷情報を取得する他エリア負荷情報取得段階と、
自エリア内の各候補サーバの負荷情報をサーバ負荷情報取得段階により取得し、他エリア負荷情報取得段階により他エリア内の各候補サーバの負荷情報を取得し、それら自エリア内および他エリア内の各候補サーバの負荷情報を考慮して自エリア内および他エリア内の各候補サーバの重み係数を算出して重み係数テーブルを更新する重み係数更新段階と、
自エリア内候補サーバの識別子リストと他エリア内候補サーバの識別子リストを受け取り、距離情報取得段階により自エリア内各候補サーバ・利用者端末間距離および他エリア内各候補サーバ・利用者端末間距離を取得し、重み係数テーブルから自エリア内および他エリア内の各候補サーバの重み係数を取得して、自エリア内および他エリア内の各候補サーバの重み付け評価値を算出する重み付け評価値算出段階と、
重み付け評価値算出段階により自エリア内および他エリア内の各候補サーバの重み付け評価値を取得して各候補サーバの優先度を決定し、この優先度の高い順に選択サーバまたは選択エリアとして出力する接続サーバ決定段階と
を有することを特徴とする。
【００５８】
（請求項２）
さらに、上記発明の１形態に属する発明を述べる。
【００５９】
自エリア負荷情報取得手段は、自エリア内の各候補サーバの負荷情報を任意に設定可能な周期に従って取得する。
【００６０】
これにより、サービスヘのアクセス数に応じたサーバ負荷情報取得処理が可能となる。例えば、アクセス数の多いサービスについては頻繁に各候補サーバの負荷を取得することで特定のサーバが過負荷になる前に利用者を他のサーバに接続させることができる。逆にアクセス数の少ないサービスについては必要最小限のサーバ負荷情報取得を行うことでサーバ負荷情報取得処理を軽減できる。
【００６１】
（請求項１１）
本発明のサーバ選択方法の他の実施形態によれば、自エリア負荷情報通知段階は、自エリア内の候補サーバ負荷情報を任意に設定可能な周期に従って取得することも好ましい。
【００６２】
（請求項３）
さらに上記発明の１形態に属する発明を述べる。
【００６３】
自エリア負荷情報通知手段は、任意に設定可能な周期に従って自エリアの負荷情報を他エリアのサーバ選択装置に通知する。
【００６４】
また、他エリア負荷情報取得手段は、任意に設定可能な周期に従い他エリアのサーバ選択装置から他エリア内の各候補サーバの負荷情報を取得する。
【００６５】
これにより、サービスヘのアクセス数に応じたサーバ負荷情報取得処理が可能となる。例えば、アクセス数の多いサービスについては頻繁に各候補サーバの負荷および他エリアの負荷を取得することで特定のサーバが過負荷になる前に利用者を他のサーバに接続させることができる。逆にアクセス数の少ないサービスについては必要最小限のサーバ負荷情報取得を行うことでサーバ負荷情報取得処理を軽減できる。
【００６６】
（請求項１２）
本発明のサーバ選択方法の他の実施形態によれば、自エリア負荷情報通知段階は、任意に設定可能な周期に従い自エリア内候補サーバの負荷情報を他エリアのサーバ選択装置に通知し、他エリア負荷情報取得段階は、任意に設定可能な周期に従い他エリアのサーバ選択装置から他エリア内候補サーバの負荷情報を取得することも好ましい。
【００６７】
（請求項４）
本発明は、複数のエリアに分割されたネットワーク内のあるエリアに設置されており、分散配置された複数の候補サーバの中から利用者端末を接続させるサーバを選択するサーバ選択装置において、
当該サーバ選択装置が設置されているエリアを自エリアと定義し、当該エリア以外のあるエリアを他エリアと定義し、
利用者端末識別子と自エリア内候補サーバの識別子リストと他エリアの識別子リストを受け取り、自エリア内各候補サーバ・利用者端末間距離および他エリア・利用者端末間距離を取得する距離情報取得手段と、
サーバ選択時に用いる重み係数を候補サーバ毎に記憶する重み係数テーブルと、
候補サーバの識別子リストを受け取り、各候補サーバの負荷情報を取得するサーバ負荷情報取得手段と、
サーバ負荷情報取得手段を用いて自エリア内の各候補サーバの負荷情報を取得して自エリア全体の負荷情報を算出し、この自エリア負荷情報を他エリアに設置されているサーバ選択装置に通知する自エリア負荷情報通知手段と、
他エリアに設置されているサーバ選択装置から他エリア全体の負荷情報を取得する他エリア負荷情報取得手段と、
自エリア内各候補サーバの負荷情報をサーバ負荷情報取得手段から取得し、他エリア負荷情報取得手段から他エリア全体の負荷情報を取得し、それら自エリア内の各候補サーバの負荷情報および他エリア全体の負荷情報を考慮して自エリア内の各候補サーバおよび他エリアの重み係数を算出して重み係数テーブルを更新する重み係数更新手段と、
自エリア内候補サーバの識別子リストと他エリアの識別子リストを受け取り、距離情報取得手段から自エリア内各候補サーバ・利用者端末間距離および他エリア・利用者端末間距離を取得し、重み係数テーブルから自エリア内の各候補サーバおよび他エリアの重み係数を取得して、自エリア内の各候補サーバおよび他エリアの重み付け評価値を算出する重み付け評価値算出手段と、
重み付け評価値算出手段から自エリア内の各候補サーバおよび他エリアの重み付け評価値を取得して自エリア内の各候補サーバと他エリアの優先度を決定し、この優先度の高い順に選択サーバまたは選択エリアとして出力する接続サーバ決定手段と
を有することを特徴とする。
また、複数のエリアに跨ったサーバ選択を別手法で行うため、上記参考となる発明に次の各手段を追加して各エリアに配置するものとした。本方式におけるサーバ選択装置の構成を図１０に示す。
【００６８】
自エリア負荷情報通知手段は、サーバ負荷情報取得手段を用いてサーバ選択装置が設置されている自エリア内の各候補サーバの負荷情報を取得して自エリア全体の負荷情報を算出し、この自エリア負荷情報を他エリアに設置されているサーバ選択装置に通知する。
【００６９】
他エリア負荷情報取得手段は、他エリアに設置されているサーバ選択装置から他エリア全体の負荷情報を取得し、重み係数更新手段に通知する。
さらに、距離情報取得手段は、利用者端末識別子と自エリア内候補サーバの識別子リストと他エリアの識別子リストを受け取り、自エリア内各候補サーバ・利用者端末間距離および他エリア・利用者端末間距離を取得する。
【００７０】
重み係数更新手段は、自エリア内の各候補サーバの負荷情報をサーバ負荷情報取得手段から取得し、さらに前記他エリア負荷情報取得手段から他エリア全体の負荷情報を取得し、それら自エリア内の各候補サーバの負荷情報および他エリア全体の負荷情報を考慮して自エリア内の各候補サーバおよび他エリアの重み係数を算出して重み係数テーブルを更新する。
【００７１】
重み付け評価値算出手段は、自エリア内候補サーバの識別子リストと他エリアの識別子リストを受け取り、前記距離情報取得手段から自エリア内各候補サーバ・利用者端末間距離および他エリア・利用者端末間距離を取得し、さらに前記重み係数更新手段により更新された重み係数テーブルから自エリア内の各候補サーバおよび他エリアの重み係数を取得して、自エリア内の各候補サーバおよび他エリアの重み付け評価値を算出する。
【００７２】
接続サーバ決定手段は、前記重み付け評価値算出手段から自エリア内の各候補サーバおよび他エリアの重み付け評価値を取得して自エリア内の各候補サーバと他エリアの優先度を決定し、この優先度の高い順に選択サーバまたは選択エリアとして出力する。
【００７３】
これにより、自エリアのサーバがいずれも高負荷な状態にある場合には処理能力に余裕のあるサーバが配置されている他のエリアが選択され、その選択されたエリア内に配置されているサーバを対象に再度サーバ選択を行うことで利用者を接続させるサーバを決定でき、自エリア内のサーバの過負荷によるサービス品質の低下を回避することができる。
【００７４】
（請求項１３）
本発明は、複数のエリアに分割されたネットワーク内のあるエリアに設置されており、分散配置された複数の候補サーバの中から利用者端末を接続させるサーバを選択するサーバ選択方法において、
当該サーバ選択装置が設置されているエリアを自エリアと定義し、当該エリア以外のあるエリアを他エリアと定義し、
利用者端末識別子と自エリア内候補サーバの識別子リストと他エリアの識別子リストを受け取り、自エリア内各候補サーバ・利用者端末間距離および他エリア・利用者端末間距離を取得する距離情報取得段階と、
サーバ選択時に用いる重み係数を候補サーバ毎に重み係数テーブルに記憶する重み係数記憶段階と、
候補サーバ識別子リストを受け取り、各候補サーバの負荷情報を取得するサーバ負荷情報取得段階と、
サーバ負荷情報取得段階を用いて自エリア内の各候補サーバの負荷情報を取得して自エリア全体の負荷情報を算出し、この自エリア負荷情報を他エリアに設置されているサーバ選択装置に通知する自エリア負荷情報通知段階と、
他エリアに設置されているサーバ選択装置から他エリア全体の負荷情報を取得する他エリア負荷情報取得段階と、
自エリア内の各候補サーバの負荷情報をサーバ負荷情報取得段階により取得し、他エリア負荷情報取得段階により他エリア全体の負荷情報を取得し、それら自エリア内の各候補サーバの負荷情報および他エリア全体の負荷情報を考慮して自エリア内の各候補サーバおよび他エリアの重み係数を算出して重み係数テーブルを更新する重み係数更新段階と、
自エリア内候補サーバの識別子リストと他エリアの識別子リストを受け取り、距離情報取得段階により自エリア内各候補サーバ・利用者端末間距離および他エリア・利用者端末間距離を取得し、重み係数更新段階により更新された重み係数テーブルから自エリア内の各候補サーバおよび他エリアの重み係数を取得して、自エリア内の各候補サーバおよび他エリアの重み付け評価値を算出する重み付け評価値算出段階と、
重み付け評価値算出段階により自エリア内の各候補サーバおよび他エリアの重み付け評価値を取得して自エリア内の各候補サーバと他エリアの優先度を決定し、この優先度の高い順に選択サーバまたは選択エリアとして出力する接続サーバ決定段階と
を有することを特徴とする。
【００７５】
（請求項５）
さらに、上記発明の１形態に属する発明を述べる。
【００７６】
自エリア負荷情報取得手段は、自エリア全体の負荷情報を任意に設定可能な周期に従って取得することも好ましい。
【００７７】
これにより、サービスヘのアクセス数に応じたサーバ負荷情報取得処理が可能となる。例えば、アクセス数の多いサービスについては頻繁に各候補サーバの負荷を取得することで特定のサーバが過負荷になる前に利用者を他のサーバに接続させることができる。逆にアクセス数の少ないサービスについては必要最小限のサーバ負荷情報取得を行うことでサーバ負荷情報取得処理を軽減できる。
【００７８】
（請求項１４）
本発明のサーバ選択方法の他の実施形態によれば、自エリア負荷情報通知段階は、自エリア全体の負荷情報を任意に設定可能な周期に従って取得することも好ましい。
【００７９】
（請求項６）
さらに上記発明の１形態に属する発明を述べる。
【００８０】
自エリア負荷情報通知手段は、任意に設定可能な周期に従って自エリアの負荷情報を他エリアのサーバ選択装置に通知する。
【００８１】
また、他エリア負荷情報取得手段は、任意に設定可能な周期に従い他エリアのサーバ選択装置から他エリアの負荷情報を取得する。
【００８２】
これにより、サービスヘのアクセス数に応じたサーバ負荷情報取得処理が可能となる。例えば、アクセス数の多いサービスについては頻繁に各候補サーバの負荷および他エリアの負荷を取得することで特定のサーバが過負荷になる前に利用者を他のサーバに接続させることができる。逆にアクセス数の少ないサービスについては必要最小限のサーバ負荷情報取得を行うことでサーバ負荷情報取得処理を軽減できる。
【００８３】
（請求項１５）
本発明のサーバ選択方法の他の実施形態によれば、自エリア負荷情報通知段階は、任意に設定可能な周期に従い自エリアの負荷情報を他エリアのサーバ選択装置に通知し、他エリア負荷情報取得段階は、任意に設定可能な周期に従い他エリアのサーバ選択装置から他エリアの負荷情報を取得するとも好ましい。
【００８４】
（２）マッピングテーブル法
前記問題を解決するための第２の方法として、マッピングテーブルを用いた手法を以下で説明する。
【００８５】
本方式では、ネットワークを複数のエリアに分割し、各エリア内の利用者を接続させるサーバを分散配置された複数の候補サーバからマッピングテーブルを参照して選択する。マッピングテーブルには、利用者が属するエリアと接続サーバとの関係が記述されている。例えば、エリア１とエリア２はサーバＡに、エリア３はサーバＢに、エリア４と５はサーバＣに、という対応関係がマッピングテーブルに記述される。従って、アクセスを要求している利用者が属するエリアを特定することができれば、その利用者を接続させるサーバを特定することができる。
【００８６】
本方式に基づくサーバ選択装置は、利用者のアクセス要求およびサーバ負荷をエリア毎に考慮してサーバ選択を行う。本発明によるサーバ選択装置の構成を図１１に示す。図１１のエリア選択装置は、位置情報取得手段、マッピングテーブル、接続サーバ決定手段、で構成される。
【００８７】
（請求項７）
本発明を以下で述べる。
位置情報取得手段は、利用者端末識別子を受け取り、利用者の属するエリアを特定する。
【００８８】
マッピングテーブルには、表２のようにエリアと当該エリア内の利用者を接続させるサーバの識別子が対になって記述される。
【００８９】
接続サーバ決定手段は、位置情報取得手段で取得した利用者が属するエリアをマッピングテーブルから探し、そのエリアに対応するサーバを利用者の接続するサーバとして回答する。
【００９０】
（請求項１６）
また、本発明によるサーバ選択方法によれば、ネットワークを複数のエリアに分割した場合のあるエリア内に存在する利用者を接続させるサーバを、分散配置された複数の候補サーバから選択するサーバ選択方法であって、利用者が属するエリアと当該エリア内利用者を接続させるサーバとの関係をマッピングテーブルに記述する段階と、利用者端末識別子を受け取り、利用者の属するエリアを特定する位置情報取得段階と、位置情報取得段階で取得した利用者位置情報とマッピングテーブルより当該利用者を接続させるサーバを特定する接続サーバ決定段階とを有する。
【００９１】
（請求項１９）
更に、本発明によるサーバ選択プログラムによれば、ネットワークを複数のエリアに分割した場合のあるエリア内に存在する利用者を接続させるサーバを、分散配置された複数の候補サーバから選択するようにコンピュータに機能させるサーバ選択プログラムであって、利用者が属するエリアと当該エリア内利用者を接続させるサーバとの関係を記述するマッピングテーブルと、利用者端末識別子を受け取り、利用者の属するエリアを特定する位置情報取得手段と、位置情報取得段階で取得した利用者位置情報と前記マッピングテーブルより当該利用者を接続させるサーバを特定する接続サーバ決定手段としてコンピュータを機能させる。
【００９２】
（請求項２０）
尚、前述したサーバ選択プログラムを記録した記録媒体であってもよい。
【００９３】
（請求項８）
上記発明において負荷分散を考慮してサーバ選択を行うために、サーバ負荷情報取得手段、マッピングテーブル更新手段を追加した。この場合のサーバ選択装置の構成を図１２に示す。
【００９４】
サーバ負荷情報取得手段は、候補サーバ識別子リストを受け取り、各候補サーバの負荷情報を取得する。
【００９５】
マッピングテーブル更新手段は、サーバ負荷情報取得手段で取得した各候補サーバのサーバ負荷情報に基づき、他の候補サーバと比較して負荷が大きいサーバを接続サーバとしているエリアの接続先サーバを変更することでマッピングテーブルを更新する。
【００９６】
接続サーバ決定手段は、位置情報取得手段で取得した当該利用者が属するエリアとマッピングテーブルより、利用者を接続させるサーバを特定する。マッピングテーブル更新にサーバ負荷が考慮されていることにより、利用者の接続先サーバが過負荷状態のため充分なサービスを提供できない問題を解決した。
【００９７】
（請求項１７）
本発明のサーバ選択方法の他の実施形態によれば、候補サーバの識別子のリストを受け取り、各候補サーバの負荷情報を取得するサーバ負荷情報取得段階と、サーバ負荷情報取得段階で取得した各候補サーバのサーバ負荷情報に基づき、他の候補サーバと比較して負荷が大きいサーバを接続サーバとしている利用者従属エリアの接続先サーバを変更するためにマッピングテーブルを更新するマッピングテーブル更新段階とを備えることも好ましい。
【００９８】
（請求項９）
上記発明において通信コスト増加を抑制し、サーバ選択の高速化を実現するために以下の改良を加えた。
【００９９】
マッピングテーブル更新手段は、マッピングテーブルに記載されている各候補サーバと利用者従属エリアとの対応関係情報について、候補サーバ識別子リストに記載されている各候補サーバのうち最も当該利用者の位置に近いサーバを選択サーバの初期値とする手段を含み、さらにサーバ負荷情報取得手段により取得された負荷が最大のサーバを接続サーバに選択している各エリアについて、他のサーバと当該エリアとの通信コストが最も低くなる候補サーバに接続サーバを変更した場合の通信コスト増加量を求め、この通信コスト増加量が小さいエリアの接続サーバを変更する手段を含むこととした。
【０１００】
（請求項１８）
本発明のサーバ選択方法の他の実施形態によれば、マッピングテーブル更新段階は、マッピングテーブルに記載されている各候補サーバと利用者従属エリアの対応関係情報について、候補サーバ識別子リストに記載されている各候補サーバのうち最も利用者従属エリアに近い候補サーバを選択サーバの初期値とする段階を含み、サーバ負荷情報取得段階によって取得された負荷が最大のサーバを接統サーバに選択している利用者従属エリアについて、他のサーバと当該エリアとの通信コストが最も低くなる候補サーバに接続サーバを変更した場合の通信コスト増加量を求め、この通信コスト増加量が小さいエリアの接続サーバを変更する段階を含むことも好ましい。
【０１０１】
以上より、マッピングテーブルの初期状態には各エリアにとっての最寄りサーバが接続先サーバとして記述されており、さらにマッピングテーブル更新時にはサーバ負荷が考慮されているため、利用者の接続先サーバが過負荷状態のため充分なサービスを提供できない問題を解決した。
【０１０２】
【発明の実施の形態】
以下では、図面を用いて本発明を詳細に説明する。尚、以下では、サーバ選択装置を例にとって説明するが、サーバ選択方法、サーバ選択プログラム及びそのプログラムを記録した記録媒体についても同様の構成を有する。
【０１０３】
（実施例１）
参考となるサーバ選択装置の実施例を以下に示す。本実施例におけるサーバ選択装置の構成は図８の通りである。また、参考となるサーバ選択方法について、更にその方法を実行するサーバ選択プログラムについても、同様に説明される。
【０１０４】
最初に距離情報取得手段の実施例を述べる。本実施例では、ある候補サーバＳｉ（ただし０≦ｉ≦Ｎ：Ｎは、０より大きい整数であり、候補サーバ識別子リストに登録されている候補サーバ識別子の数を示す）と利用者端末間のルータの数を距離情報ｄ（Ｕ，Ｓｉ）として定義する。ただし、Ｓｉは候補サーバの識別子、Ｕは利用者端末識別子であり、より具体的には候補サーバおよび利用者端末のホスト名やＩＰアドレスなどである。距離情報取得手段は、候補サーバの識別子のリストＳとＵを受け取り、従来技術の距離最小化方式と同様にＵＮＩＸ環境で動作するtracerouteプログラムを使用し、サーバ選択装置から利用者端末までに経由するルータのＩＰアドレスを得る。このＩＰアドレスは、経路情報を構成する中継器識別子に相当する。ここで各ルータのＩＰアドレスを距離情報取得手段に近い順に並べたものを経路情報と定義し、その長さをｌｕとする。同様に、ある候補サーバＳｉに対してもtracerouteプログラムを実行することで、各候補サーバまでの経路情報を得ることができ、その経路長ｌｉ（ｉ＝０，１，…，Ｎ）が得られる。このようにして得られた利用者端末までの経路長ｌｕ、ある候補サーバまでの経路長ｌｉ、さらに両経路情報の共通経路長ｃを用いて、サーバＳｉと利用者端末Ｕの距離ｄ（Ｕ，Ｓｉ）を次式で求める。
【０１０５】
ｄ（Ｕ，Ｓｉ）＝（ｌｕ＋ｌｉ）−２×ｃ＋１
【０１０６】
距離情報取得の具体例を図１３を用いて説明する。図１３において、Ｔはtraceroute実行端末、Ｓｉは候補サーバ、Ｕは利用者端末である。Ｔはtracerouteコマンドを実行し、Ｓｉまでの経路情報とＵまでの経路情報を取得し、さらにそこからＳｉまでの経路長ｌｉ＝５とＵまでの経路長ｌｕ＝４を算出する。距離情報取得手段は、Ｓｉまでの経路情報とＵまでの経路情報をＴＴＬ値の小さな順に比較し、両経路情報の共通部分および共通部分の経路長ｃ＝３を求める。さらに距離情報取得手段は上記の式に従ってＳｉとＵの間の距離ｄ（Ｕ，Ｓｉ）＝４を算出する。
【０１０７】
本実施例では、サーバ負荷情報取得手段は各サーバにアクセスしている利用者数をサーバ負荷として取得するものとする。すなわち、あるサーバＳｉにアクセスしている利用者数がｍで与えられる場合、サーバＳｉの負荷Ｌ（Ｓｉ）はＬ（Ｓｉ）＝ｍとなる。サーバにアクセスしている利用者数を取得する方法としては、ＵＮＩＸ基本コマンドであるnetstatを用いて当該サービスに対するＴＣＰコネクションの接続数を計数する方法や、同じくＵＮＩＸ基本コマンドであるfingerを用いて当該サーバリソースを使用しているクライアント数を計数する方法などがある。他にも、ＣＰＵ負荷やレスポンスタイムをサーバ負荷として用いる場合もある。このサーバ負荷情報取得手段において、各サーバの負荷を取得するタイミングや周期は、ＵＮＩＸ基本コマンドであるcronを用いるなどして任意に設定可能であるとした。
【０１０８】
次に、重み係数更新手段、重み係数テーブルについて説明する。本実施例における重み係数は、サーバ負荷情報をサーバ選択処理に反映させる度合いを示す係数である。例として、候補サーバＳ１，Ｓ２，…，ＳＮの負荷をそれぞれＬ（Ｓ１），Ｌ（Ｓ２），…，Ｌ（ＳＮ）で、重み係数をＷ（Ｓ１），Ｗ（Ｓ２），…，Ｗ（ＳＮ）で表すとし、両者には次式の関係が成り立っているものとする。
【０１０９】
Ｗ（Ｓｉ）＝Ｌ（Ｓｉ）ｋ
【０１１０】
ここで、ｋは０以上の実数である。以上の式で求められた各サーバの重み係数Ｗ（Ｓｉ）を保持したものが重み係数テーブルである。重み係数テーブルの例を表１に示す。
【０１１１】
【表１】
0003698073.tif 000002
【０１１２】
次に、重み付け評価値算出手段において、ｄ（Ｕ，Ｓｉ）とＷ（Ｓｉ）を用いてＳｉの重み付け評価値ｅ（Ｓｉ）を求める。本実施例では次式に従って各サーバの重み付け評価値を算出する。
【０１１３】
ｅ（Ｓｉ）＝ｄ（Ｕ，Ｓｉ）Ｗ（Ｓｉ）
【０１１４】
最後に、接続サーバ決定手段において、上式で求めた重み付け評価値ｅ（Ｓｉ）が小さい順に候補サーバＳｉの優先度が高くなるように候補サーバ識別子リストを並べ替え、優先度が最も高い候補サーバを利用者端末Ｕの接続先サーバとして出力する。その際、優先度の高い順に候補サーバ識別子リストを並べ直して作成される新しい候補サーバ識別子リストＺを出力する場合も考えられる。
【０１１５】
（実施例２）
請求項１、２および３に記載のサーバ選択装置の実施例を以下に示す。本実施例におけるサーバ選択装置の構成は図９と同様である。請求項１０、１１および１２に記載のサーバ選択方法についても同様に説明される。
【０１１６】
本実施例で示すサーバ選択装置は、先に実施例１で説明したサーバ選択装置に自エリア負荷情報通知手段と他エリア負荷情報取得手段を追加した構成になっている。本実施例では簡単のためにエリア数は２つとし、自エリアをＡ１、他エリアをＡ２とし、自エリアのサーバ選択装置をＲ１、他エリアのサーバ選択装置をＲ２とする。
【０１１７】
Ｒ１の距離情報取得手段は、Ａ１，Ａ２それぞれに分散配置されている候補サーバの識別子のリストＳ１，Ｓ２と利用者端末識別子Ｕを受け取り、各候補サーバ・利用者端末間距離ｄ（Ｕ，Ｓ１ｉ）およびｄ（Ｕ，Ｓ２ｊ）を求める。距離算出方法は実施例１で示した方法と同様である。
【０１１８】
Ｒ１のサーバ負荷情報取得手段は、Ａ１内の候補サーバの識別子リストＳ１を受け取り、各候補サーバＳ１ｉ（ただし０≦ｉ≦Ｎ１、Ｎ１はＡ１に配置されている候補サーバ数）の負荷情報Ｌ（Ｓ１ｉ）を取得する。負荷情報の定義は実施例１と同様であるとする。
【０１１９】
Ｒ１の自エリア負荷情報通知手段は、サーバ負荷情報取得手段から自エリア内の候補サーバＳ１ｉの負荷Ｌ（Ｓ１ｉ）を受け取り、Ｒ２の他エリア負荷情報取得手段にＬ（Ｓ１ｉ）を通知する。通知方法としては、ＵＤＰパケットまたはＴＣＰパケットにＬ（Ｓ１ｉ）を直接記述して送信する方法や、ファイルにＬ（Ｓ１ｉ）を記述しＦＴＰプロトコルを使用して当該ファイルを転送する方法などがある。また自エリア負荷Ｌ（Ｓ１ｉ）を通知するタイミングや周期は、ＵＮＩＸ基本コマンドであるcronを用いるなどして任意に設定可能であるとした。
【０１２０】
一方、Ｒ１の他エリア負荷情報取得手段は、他エリアＡ２内に配置されている候補サーバＳ２ｊ（ただし、０≦ｊ≦Ｎ２。Ｎ２はＡ２内に配置されている候補サーバ数）の負荷Ｌ（Ｓ２ｊ）を取得する。ただしＬ（Ｓ２ｊ）は、Ａ１内の候補サーバの負荷情報Ｌ（Ｓ１ｉ）の算出と同様の処理をＲ２の自エリア負荷情報取得手段が行って求める。Ｌ（Ｓ２ｊ）取得の際には前述の自エリア負荷情報通知手段と同様に、ＵＤＰパケットあるいはＴＣＰパケットにＬ（Ｓ２ｊ）を直接記述して送信する方法や、ファイルにＬ（Ｓ２ｊ）を記述してＦＴＰプロトコルを使用して当該ファイルを転送する方法などがある。また、Ｒ１の他エリア負荷情報取得手段が他エリアＡ２のサーバ選択装置Ｒ２内の自エリア負荷情報通知手段から他エリア負荷情報Ｌ（Ｓ２ｊ）を取得するタイミングや周期を、ＵＮＩＸ基本コマンドであるcronを用いるなどして任意に設定可能であるとした。さらに、他エリアＡ２のサーバ選択装置Ｒ２内の自エリア負荷情報通知手段がエリア負荷情報Ｌ（Ｓ２ｊ）の通知を求められた際には、それに連動してＲ２内のサーバ負荷情報取得手段がエリアＡ２内の各サーバＳ２ｊの負荷情報Ｌ（Ｓ２ｊ）を取得するものとした。
【０１２１】
Ｒ１の他エリア負荷情報取得手段が取得した他エリアの負荷Ｌ（Ｓ２ｊ）は、Ｒ１のサーバ負荷情報取得手段が取得した各候補サーバの負荷Ｌ（Ｓ１ｉ）と共にＲ１の重み係数更新手段に渡される。重み係数更新手段は、Ａ１内の各候補サーバＳ１ｉの重み係数Ｗ（Ｓ１ｉ）とＡ２内の各候補サーバＳ２ｊの重み係数Ｗ（Ｓ２ｊ）を実施例１で示した処理と同様に算出し、求められた重み係数を表１と同様の形式で重み係数テーブルとして保持する。
【０１２２】
その後、Ｒ１の重み付け評価値算出手段はＡ１内の各候補サーバＳ１ｉの重み付け評価値ｅ（Ｓ１ｉ）とＡ２内の各候補サーバＳ２ｊの重み付け評価値ｅ（Ｓ２ｊ）を算出し、接続サーバ決定手段は、評価値ｅ（Ｓ１ｉ），ｅ（Ｓ２ｊ）が小さい順に候補サーバの優先度が高くなるように候補サーバ識別子リストの並べ替えを行い、優先度が最も高い候補サーバを利用者端末Ｕを接続させるサーバとして出力する。その際、優先度の高い順に候補サーバを並べ直して作成される新しい候補サーバ識別子リストＺ１を出力する場合もある。
【０１２３】
（実施例３）
請求項４、５および６に記載のサーバ選択装置の実施例を以下に示す。本実施例におけるサーバ選択装置の構成は図１０と同様である。請求項１３、１４および１５に記載のサーバ選択方法についても同様に説明される。
【０１２４】
本実施例で示すサーバ選択装置は、先に実施例２で説明したサーバ選択装置と同様の構成になっている。本実施例では簡単のためにエリア数は２つとし、自エリアをＡ１、他エリアをＡ２とし、自エリアのサーバ選択装置をＲ１、他エリアのサーバ選択装置をＲ２とする。
【０１２５】
Ｒ１の距離情報取得手段は、Ａ１に分散配置されている候補サーバの識別子のリストＳ１、Ａ１以外のエリア識別子のリストＡ１、利用者端末識別子Ｕを受け取り、各候補サーバ・利用者端末間距離ｄ（Ｕ，Ｓ１ｉ）および各エリア・利用者端末間距離ｄ（Ｕ，Ａ２）を求める。距離算出方法は実施例１で示した方法と同様である。
【０１２６】
Ｒ１のサーバ負荷情報取得手段は、Ａ１内の候補サーバの識別子リストＳ１を受け取り、各候補サーバＳ１ｉ（ただし０≦ｉ≦Ｎ１、Ｎ１はＡ１に配置されている候補サーバ数）の負荷情報Ｌ（Ｓ１ｉ）を取得する。負荷情報の定義は実施例１と同様であるとする。
【０１２７】
Ｒ１の自エリア負荷情報通知手段は、サーバ負荷情報取得手段から自エリア内の候補サーバＳ１ｉ（ただし０≦ｉ≦Ｎ１、Ｎ１はＡ１に配置されている候補サーバ数）の負荷Ｌ（Ｓｉ）を受け取り、自エリア負荷Ｆ（Ａ１）を求める。本実施例では次式に従って自エリア負荷Ｌ（Ａ１）を求める。
【０１２８】
【数１】
0003698073.tif 000003
【０１２９】
上式で自エリア負荷Ｌ（Ａ１）を求めた後、自エリア負荷情報通知手段はＲ２の他エリア負荷情報取得手段にＬ（Ａ１）を通知する。通知方法としては、ＵＤＰパケットまたはＴＣＰパケットにＬ（Ａ１）を直接記述して送信する方法や、ファイルにＬ（Ａ１）を記述しＦＴＰプロトコルを使用して当該ファイルを転送する方法などがある。また、自エリア負荷を算出するタイミングや周期は、ＵＮＩＸ基本コマンドであるcronを用いるなどして任意に設定可能であるとした。さらに、自エリア負荷情報算出が任意のタイミングで行われる際には、それと連動してサーバ負荷情報取得手段が各サーバの負荷情報を取得するものとした。
【０１３０】
一方、Ｒ１の他エリア負荷情報取得手段は、他エリアＡ２の負荷Ｌ（Ａ２）を取得する。ただしＬ（Ａ２）は、前記自エリア負荷Ｌ（Ａ１）の算出と同様の処理をＲ２の自エリア負荷情報取得手段が行って求める。Ｌ（Ａ２）取得の際には前述の自エリア負荷情報通知手段と同様に、ＵＤＰパケットあるいはＴＣＰパケットにＬ（Ａ２）を直接記述して送信する方法や、ファイルにＬ（Ａ２）を記述してＦＴＰプロトコルを使用して当該ファイルを転送する方法などがある。また、他エリア負荷情報取得手段が他エリアＡ２のサーバ選択装置Ｒ２内の自エリア負荷情報通知手段から他エリア負荷情報Ｌ（Ａ２）を取得するタイミングや周期を任意に設定可能であるとした。さらに、他エリアＡ２のサーバ選択装置Ｒ２内の自エリア負荷情報通知手段がエリア負荷情報Ｌ（Ａ２）の通知を求められた際には、それに連動してＲ２内のサーバ負荷情報取得手段がエリアＡ２内の各サーバの負荷情報を取得するものとした。
【０１３１】
Ｒ１の他エリア負荷情報取得手段が取得した他エリアの負荷Ｌ（Ａ２）は、Ｒ１のサーバ負荷情報取得手段が取得した各候補サーバの負荷Ｌ（Ｓ１ｉ）と共に重み係数更新手段に渡される。重み係数更新手段は、実施例１で示した処理と同様の重み係数更新処理を行い、求められた重み係数を表１と同様の形式で重み係数テーブルとして保持する。
【０１３２】
その後、Ｒ１の重み付け評価値算出手段はＡ１内の各候補サーバＳ１ｉの重み付け評価値ｅ（Ｓ１ｉ）とエリアＡ２の重み付け評価値ｅ（Ａ２）を算出し、接続サーバ決定手段は、評価値ｅ（Ｓ１ｉ），ｅ（Ａ２）が小さい順に候補サーバまたは候補エリアの優先度が高くなるようにリストの並べ替えを行い、優先度が最も高い候補サーバを利用者端末Ｕを接続させるサーバとして出力する。その際、優先度の高い順に候補サーバを並べ直して作成される新しい候補サーバ・エリアリストＺ１を出力する場合もある。
【０１３３】
（実施例４）
請求項７に記載のサーバ選択装置の実施例を以下に示す。本実施例におけるサーバ選択装置の構成を図１１に示す。また、請求項１６に記載のサーバ選択方法について、更に請求項２６に記載のサーバ選択プログラムについても、同様に説明される。
【０１３４】
また、本実施例で想定するエリアの概念を図１４に示す。図１４では、サーバ選択装置が取り扱うネットワーク中にサーバＳａ，Ｓｂ，Ｓｃが分散配置されており、不特定多数のクライアントが点在している。また、本実施例ではネットワーク内に識別子が１から７までの７つのエリアが存在している。本実施例における各エリア内の利用者が接続されるサーバと各エリアの対応関係を示すマッピングテーブルを表２に示す。表２では、各エリアから各サーバまでの経路において経由する中継器数が最小となるサーバを当該エリアの接続先サーバとしている。
【０１３５】
【表２】
0003698073.tif 000004
【０１３６】
位置情報取得手段は、利用者識別子Ｕを受け取りtracerouteコマンドを用いて利用者の属するエリアを特定する。利用者の属するエリアの特定に先駆け、当該手段はサーバ選択装置からマッピングテーブルに登録されている各エリアまでの経路情報を予めtracerouteを用いて取得し、経路情報テーブルとして保持しておく。図１４に示したネットワーク構成における経路情報を表３に示す。
【０１３７】
【表３】
0003698073.tif 000005
【０１３８】
当該手段は次にtracerouteを用いてサーバ選択装置から利用者端末までの経路情報を取得し、予め求めた各エリアまでの経路情報と比較して共通経路長が最も長いエリアを特定し、当該利用者はそのエリアに属するものとする。例えば図１４において、サーバ選択装置から利用者端末までの経路情報としてＲ１−Ｒ２−Ｒ７を得たとすると、この経路情報と最も長い共通経路を有するエリアは表３よりエリア４であることから、利用者はエリア４に属することが分かる。位置取得手段はこの結果を接続サーバ決定手段に渡す。
【０１３９】
接続サーバ決定手段は、表２に示したマッピングテーブルを参照し、エリア４の利用者が接続されるサーバがサーバｂであることが分かり、結果として出力する。
【０１４０】
上記発明において負荷分散を考慮してサーバ選択を行うために、請求項１１に記載のサーバ選択装置の実施例を以下に示す。本実施例におけるサーバ選択装置の構成は図１２と同様であり、これは前述の請求項７に記載のサーバ選択装置の構成（図１１参照）にサーバ負荷情報取得手段、マッピングテーブル更新手段を加えた構成になっている。請求項２３に記載のサーバ選択方法についても同様に説明される。
【０１４１】
サーバ負荷情報取得手段は候補サーバの識別子リストＳを受け取り、リストに含まれる各候補サーバＳｉ（ただし０≦ｉ≦Ｎ。Ｎはネットワーク中に配置されている候補サーバ数）の負荷情報を取得する。本実施例では、先に述べた実施例１のサーバ負荷情報取得手段と同様に、サーバにアクセスする利用者数をサーバ負荷として用いる。この場合のサーバ負荷情報取得方法としては、ＵＮＩＸ基本コマンドであるnetstatを用いて当該サービスに対するＴＣＰコネクションの接続数を計数する方法、同じくＵＮＩＸ基本コマンドであるfingerを用いてサーバリソースを使用している利用者数を計数する方法などがある。
【０１４２】
マッピングテーブル更新手段は候補サーバの識別子リストＳとエリアの識別子リストＡを受け取り、各サーバの負荷情報に基づいてマッピングテーブルを更新する。以下、図１４のネットワーク構成を例に、マッピングテーブル更新処理を説明する。図１４で示されるネットワーク中にはＳａ，Ｓｂ，Ｓｃという３つのサーバが配置されているので、Ｓ＝｛Ｓａ，Ｓｂ，Ｓｃ｝である。マッピングテーブルの初期状態は表２の内容と同一であるとする。いま、エリア３とエリア４にいる多くの利用者がサービス要求を行ったとすると、請求項４又は１３に示したサーバ選択の実施例に従ってこれらの利用者を接続させるサーバとしてサーバＢが選択され、その結果サーバＳｂの負荷が高くなっているとする。また、このときエリア６とエリア７にいる利用者からはサービス要求が行われず、両エリアに属する利用者を接続させるサーバＳｃの負荷は低いままであるとする。このような状況下で、エリア５に属する利用者がサービス要求を行った場合、表２のマッピングテーブルをそのまま用いていると当該利用者を接続させるサーバとしてサーバＳｂが選択され、結果としてサーバＳｂの負荷がさらに高まり、サービス提供に支障が生じる。そこで、マッピングテーブルの記述においてサーバＳｂが接続先サーバとなっているエリア３、エリア４、エリア５のうち、いずれかのエリアについては当該エリア内の利用者を他のサーバに接続させるようにマッピングテーブルを更新する。本実施例ではエリア５に属する利用者をサーバＳｃに接続させるように変更する。その結果、マッピングテーブルは表４のように変更される。
【０１４３】
【表４】
0003698073.tif 000006
【０１４４】
以下ではマッピングテーブル更新手段におけるマッピングテーブル更新判断基準について説明する。前提として、図１４のエリア１〜７をＡ１〜Ａ７で表す。また、各エリアからマッピングテーブルによって割り当てられているサーバヘのアクセス数をＣ（Ａｉ）（ただし１≦ｉ≦７）で、各サーバ負荷をＬ（Ｓａ）、Ｌ（Ｓｂ）、Ｌ（Ｓｃ）で表す。さらに、各サーバのリソース上限値（許容しうる負荷の最大値）をＭａｘＬ（Ｓａ），ＭａｘＬ（Ｓｂ），ＭａｘＬ（Ｓｃ）で表す。各サーバにアクセスする利用者数をサーバ負荷として用いているため、マッピングテーブルが表２の場合には以下の式が成り立つ。
【０１４５】
Ｌ（Ｓａ）＝Ｃ（Ａ１）十Ｃ（Ａ２）
Ｌ（Ｓｂ）＝Ｃ（Ａ３）＋Ｃ（Ａ４）＋Ｃ（Ａ５）
Ｌ（Ｓｃ）＝Ｃ（Ａ６）＋Ｃ（Ａ７）
【０１４６】
ここでＬ（Ｓｂ）について以下の条件を満たしたとする。ただし、Ｒａｔｉｏ（Ｓｂ）はマッピングテーブル更新判定閾値であり、サーバ選択装置運用者やサービス提供者が予め値を設定できるものとする。
【０１４７】
Ｌ（Ｓｂ）＞ＭａｘＬ（Ｓｂ）×Ｒａｔｉｏ（Ｓｂ）
【０１４８】
上式を満たした場合、サーバＳｂは過負荷状態にあるとし、サーバＳｂに接続するようにマッピングテーブルに記述されているエリアのいずれかを、他のサーバに接続するようにマッピングテーブルを更新する。
【０１４９】
本実施例では以下のように接続先サーバを変更するエリアを選択する。すなわち、Ｌ（Ｓｂ）を構成する要素Ｃ（Ａ３），Ｃ（Ａ４），Ｃ（Ａ５）のうち最小のものを求め、そのエリアを接続先サーバ変更の対象とする。例えばＣ（Ａ５）が最小であった場合、エリア５の接続先サーバが変更される。また、変更後の接続先サーバを以下のように選択する。すなわち、Ｓｂ以外のサーバについて負荷の大きさを比較し、負荷が最小であるサーバを上記処理で選択された接続先サーバ変更対象エリア（エリア５）の新たな接続先サーバとする。例えばＬ（Ｓａ）＞Ｌ（Ｓｃ）であった場合、エリア５の接続先サーバはＳｃとなる。以上の結果をもとに更新した後のマッピングテーブルは表４のようになる。
【０１５０】
接続サーバ決定手段は、更新後の最新のマッピングテーブルを参照して、利用者の位置からその利用者を接続させるサーバを決定する。
【０１５１】
さらに、上記発明の１形態に属する発明として、請求項９に記載の発明に付いて述べる。本実施例におけるサーバ選択装置の構成は図１２と同様である。請求項１８に記載のサーバ選択方法についても同様に説明される。
【０１５２】
本実施例では、位置情報取得手段が各エリアの距離関係を求め、各エリア内の利用者を接続させるサーバの初期値を決定し、マッピングテーブルを初期化するものとした。具体的には、位置情報取得手段は各エリアまでの経路情報を表３のように求め、長く同一経路を経由する複数のエリアから順に同一サーバにアクセスするようにマッピングテーブルを生成する。表３では、エリア３，４，５がＲ１−Ｒ２まで、エリア６，７がＲ１−Ｒ３までそれぞれ同一経路を経由し、どちらの場合も同一経路長は２である。これよりも長い同一経路を有するエリアは他に無いので、エリア３，４，５は同じサーバｂに、エリア６，７はサーバｃにアクセスするようにマッピングテーブルが生成される。また、エリア１，２はＲ１まで同一経路を経由するので両エリアはサーバａにアクセスするようにマッピングテーブルが生成される。
【０１５３】
さらに本実施例では、マッピングテーブル更新手段があるエリアの新たな接続先サーバを選択する際に、当該エリアと各サーバ間の通信コスト増減を考慮するものとした。すなわち、請求項５又は１４に記載の発明の実施例において、接続先サーバを変更するエリアが特定された場合（前記の例ではエリア５）、新たな接続先候補サーバ（前記の例ではＳａとＳｃ）のその時点での負荷のみを考慮するのではなく、エリア５からサーバａまでの通信コストとエリア５からサーバｃまでの通信コストを比較し、コストの小さくなるサーバを新たな接続先サーバとして選択するものとした。具体的な通信コストとしては、実施例１、２で説明した距離情報と同様に候補サーバ・当該エリア間を中継するルータ数、候補サーバ・当該エリア間のネットワーク帯域、pingなどにより測定可能な応答時間（ＲＴＴ）、さらにはこれらを複数種類用いた指標がある。
【０１５４】
【発明の効果】
請求項１、１３及び２５に記載の発明は、サーバ・利用者間距離とサーバ負荷を同時に考慮することで距離最小化方式で発生する特定サーバヘの負荷集中を解決し、負荷均等化方式と比較してもネットワークコストを抑制することができる。
【０１５５】
本発明は、サービスヘのアクセス数に応じたサーバ負荷情報取得処理が可能となる。例えばアクセス数の多いサービスについては頻繁に各候補サーバの負荷を取得することで特定のサーバが過負荷になる前に利用者を他のサーバに接続させることができる。逆にアクセス数の少ないサービスについては必要最小限のサーバ負荷情報取得を行うことでサーバ負荷情報取得処理を軽減できる。
【０１５６】
本発明は、候補サーバの負荷と候補サーバ・利用者端末間距離の両方を考慮するサーバ選択処理において、候補サーバ負荷重視あるいは候補サーバ・利用者端末間距離重視のサーバ選択処理の調整を容易に実現することができる。
【０１５７】
請求項１および１０に記載の発明は、自エリアのサーバがいずれも高負荷な状態にある場合には遠隔の処理能力に余裕のあるサーバが選択され、近傍サーバの過負荷によるサービス品質の低下を回避することができる。
【０１５８】
請求項２および１１に記載の発明は、サービスヘのアクセス数に応じたサーバ負荷情報取得処理が可能となる。例えば、アクセス数の多いサービスについては頻繁に各候補サーバの負荷を取得することで特定のサーバが過負荷になる前に利用者を他のサーバに接続させることができる。逆にアクセス数の少ないサービスについては必要最小限のサーバ負荷情報取得を行うことでサーバ負荷情報取得処理を軽減できる。
【０１５９】
請求項３および１２に記載の発明は、サービスヘのアクセス数に応じたサーバ負荷情報取得処理が可能となる。例えば、アクセス数の多いサービスについては頻繁に各候補サーバの負荷および他エリアの負荷を取得することで特定のサーバが過負荷になる前に利用者を他のサーバに接続させることができる。逆にアクセス数の少ないサービスについては必要最小限のサーバ負荷情報取得を行うことでサーバ負荷情報取得処理を軽減できる。
【０１６０】
請求項４および１３に記載の発明は、自エリアのサーバがいずれも高負荷な状態にある場合には処理能力に余裕のあるサーバが配置されている他のエリアが選択され、その選択されたエリア内に配置されているサーバを対象に再度サーバ選択を行うことで利用者を接続させるサーバを決定でき、自エリア内のサーバの過負荷によるサービス品質の低下を回避することができる。
【０１６１】
請求項５および１４に記載の発明は、サービスヘのアクセス数に応じたサーバ負荷情報取得処理が可能となる。例えば、アクセス数の多いサービスについては頻繁に各候補サーバの負荷を取得することで特定のサーバが過負荷になる前に利用者を他のサーバに接続させることができる。逆にアクセス数の少ないサービスについては必要最小限のサーバ負荷情報取得を行うことでサーバ負荷情報取得処理を軽減できる。
【０１６２】
請求項６および１５に記載の発明は、サービスヘのアクセス数に応じたサーバ負荷情報取得処理が可能となる。例えば、アクセス数の多いサービスについては頻繁に各候補サーバの負荷および他エリアの負荷を取得することで特定のサーバが過負荷になる前に利用者を他のサーバに接続させることができる。逆にアクセス数の少ないサービスについては必要最小限のサーバ負荷情報取得を行うことでサーバ負荷情報取得処理を軽減できる。
【０１６３】
請求項７、１６および１９に記載の発明は、マッピングテーブル更新にサーバ負荷が考慮されていることにより、利用者の接続先サーバが過負荷状態のため充分なサービスを提供できない問題を解決した。
【０１６４】
請求項９および１８に記載の発明は、マッピングテーブルの初期状態には各エリアにとっての最寄りサーバが接続先サーバとして記述されており、さらにマッピングテーブル更新時にはサーバ負荷が考慮されているため、利用者の接続先サーバが過負荷状態のため充分なサービスを提供できない問題を解決した。
【図面の簡単な説明】
【図１】従来の距離最小化法に基づくサーバ選択装置の構成図である。
【図２】ＵＮＩＸ基本コマンドであるtracerouteを用いてクライアント・サーバ間の距離情報を取得する概要図である。
【図３】距離最小化法によって生じるサーバ選択の第１の問題点を示す図である。
【図４】距離最小化法によって生じるサーバ選択の第２の問題点を示す図である。
【図５】距離最小化法によって生じるサーバ選択の第３の問題点を示す図である。
【図６】負荷均等化法によって生じるサーバ選択の第１の問題点を示す図である。
【図７】負荷均等化法によって生じるサーバ選択の第２の問題点を示す図である。
【図８】重み係数法に基づく第１のサーバ選択装置の構成図である。
【図９】重み係数法に基づく第２のサーバ選択装置の構成図である。
【図１０】重み係数法に基づく第３のサーバ選択装置の構成図である。
【図１１】マッピングテーブル法に基づく第１のサーバ選択装置の構成図である。
【図１２】マッピングテーブル法に基づく第２のサーバ選択装置の構成図である。
【図１３】サーバ・利用者端末間距離算出処理説明のためのネットワーク構成図である。
【図１４】マッピングテーブル方式のサンプルネットワーク構成図である。
【図１】
0003698073.tif 000007
【図２】
0003698073.tif 000008
【図３】
0003698073.tif 000009
【図４】
0003698073.tif 000010
【図５】
0003698073.tif 000011
【図６】
0003698073.tif 000012
【図７】
0003698073.tif 000013
【図８】
0003698073.tif 000014
【図９】
0003698073.tif 000015
【図１０】
0003698073.tif 000016
【図１１】
0003698073.tif 000017
【図１２】
0003698073.tif 000018
【図１３】
0003698073.tif 000019
【図１４】
0003698073.tif 000020