(57)【特許請求の範囲】
【請求項１】
１台以上のクライアント装置と処理内容に応じた２種類以上のサーバとの間に配置され、該クライアント装置から受信したリクエストを該サーバのいずれかに転送し、該リクエストに対して該サーバから返却されるレスポンスを該クライアント装置に転送する負荷制御装置を有するシステムにおける負荷制御方法において、
前記負荷制御装置は、
前記クライアント装置からリクエストを取得する第１の種別のサーバ及び、該リクエストを実際に処理する第２の種別のサーバの状態を定期的に監視し、該サーバの負荷状態を表すパラメータをサーバ状態情報として収集して、サーバＩＤ、アドレス、サーバ種別と共に記憶手段に格納する状態監視ステップと、
前記クライアント装置からのリクエストを受信し、前記記憶手段に保持されている前記サーバ状態情報を参照して、該リクエストの処理内容に応じて接続する第１の種別のサーバを選択する第１の種別サーバ選択ステップと、
前記前記第１の種別のサーバに前記リクエストを送信するリクエスト転送ステップと、
前記第１の種別のサーバから前記リクエストに対するレスポンスを取得し、前記記憶手段の前記サーバ状態情報を参照して、該レスポンスに記載されている処理を行う処理能力に余裕がある第２の種別のサーバを選択する第２の種別サーバ選択ステップと、
前記第２の種別サーバ選択ステップで選択された前記第２の種別のサーバのアドレスを前記レスポンスに書き込むレスポンス書き換えステップと、
前記レスポンス書き換えステップで前記第２の種別のサーバのアドレスに書き換えられた前記レスポンスを前記クライアント装置に送信するレスポンス送信ステップと、を行い、
前記クライアント装置は、
前記負荷制御装置から受信した前記書き換えられたレスポンスのアドレスに基づいて、前記第２の種別のサーバと接続するステップを行う
ことを特徴とする負荷制御方法。
【請求項２】
前記状態監視ステップにおいて、
サーバ毎に、前記サーバ状態情報として、
サーバの演算装置の負荷、
サーバのメモリの使用量、
サーバ内の温度、
サーバに対して接続しているクライアント装置の数、
サーバに対して接続しているクライアント装置のうち、現在使用中のクライアント装置の数、
サーバが使用しているネットワークの帯域、
の少なくとも１つのパラメータを取得して、前記記憶手段に格納し、
前記第２の種別サーバ選択ステップにおいて、
前記記憶手段から各サーバのパラメータを読み出して、各パラメータ毎に最も数値が小さいサーバに得点を与え、合計得点が最も高いサーバを、前記第２の種別のサーバとして選択する
請求項１記載の負荷制御方法。
【請求項３】
１台以上のクライアント装置と処理内容に応じた２種類以上のサーバとの間に配置され、該クライアント装置から受信したリクエストを該サーバのいずれかに転送し、該リクエストに対して該サーバから返却されるレスポンスを該クライアント装置に転送する負荷制御方法を行う２台以上の負荷制御装置を有するシステムにおける負荷制御方法であって、
各負荷制御装置は、
各負荷制御装置に直接接続されるサーバの状態を定期的に監視し、所定の閾値以内の該サーバの負荷状態を表すパラメータをサーバ状態情報として収集して、提供可能なコンテンツ種別、サーバＩＤ、アドレス、サーバ種別と共に記憶手段に格納する第１のサーバ状態情報収集ステップと、
前記クライアント装置からのリクエストを受信し、前記記憶手段を参照して、該リクエストの内容に応じて、接続する第１の種別のサーバを選択する第１の種別サーバ選択ステップと、
前記第１の種別のサーバに前記リクエストを送信するリクエスト転送ステップと、
前記記憶手段に格納されている情報を他の負荷制御装置と交換する状態情報交換ステップと、
前記他の負荷制御装置から取得した前記情報を前記記憶手段に格納する第２のサーバ状態情報収集ステップと、
前記他の負荷制御装置から取得した情報を含む前記記憶手段を参照して、前記クライアント装置の接続する宛先として、前記リクエストに対して提供可能なコンテンツ種別を有し、処理能力に余裕がある第２の種別のサーバを選択する第２の種別サーバ選択ステップと、
前記第１の種別のサーバから受信したレスポンスに、前記第２の種別サーバ選択ステップで選択された前記第２の種別のサーバのアドレスを書き込むレスポンス書き換えステップと、
前記レスポンス書き換えステップで書き換えられたレスポンスを前記クライアント装置に送信するレスポンス送信ステップと、を行い、
前記クライアント装置は、
前記負荷制御装置から受信した前記書き換えられたレスポンスに基づいて、前記第２の種別のサーバと接続するステップを行う
ことを特徴とする負荷制御方法。
【請求項４】
前記第１のサーバ状態情報収集ステップにおいて、
自負荷制御装置に直接接続されるサーバから、前記サーバ状態情報として、
サーバの演算装置の負荷、
サーバのメモリの使用量、
サーバ内の温度、
サーバに対して接続しているクライアント装置の数、
サーバに対して接続しているクライアント装置のうち、現在使用中のクライアント装置の数、
サーバが使用しているネットワークの帯域、
の少なくとも１つのパラメータを取得して、前記記憶手段に格納し、
前記状態情報交換ステップにおいて、
前記記憶手段から各サーバ毎の、各パラメータの全て、または、いずれかの組み合わせ、または、いずれか１つを、前記他の負荷制御装置に対して送信する
請求項３記載の負荷制御方法。
【請求項５】
１台以上のクライアント装置と処理内容に応じた２種類以上のサーバとの間に配置され、該クライアント装置から受信したリクエストを該サーバのいずれかに転送し、該リクエストに対して該サーバから返却されるレスポンスを該クライアント装置に転送する負荷制御装置であって、
前記クライアント装置及び前記サーバとの通信を行う通信手段と、
種類の異なる各サーバ毎に、サーバ群の代表ホスト名またはアドレス、処理対象情報、サーバ状態情報を格納する記憶手段と、
前記クライアント装置からリクエストを取得する第１の種別のサーバ及び、該リクエストを実際に処理する第２の種別のサーバの状態を定期的に監視し、該サーバの負荷状態を表すパラメータを前記サーバ状態情報として収集して、サーバＩＤ、アドレス、サーバ種別と共に前記記憶手段に格納する状態監視手段と、
前記クライアント装置から受信したリクエストの内容に基づいて、前記記憶手段に保持されている前記サーバ状態情報を参照して、該リクエストの処理内容に応じて接続する第１の種別のサーバを選択する第１の種別サーバ選択手段と、
前記リクエストを、前記通信手段を介して該第１の種別のサーバに転送するリクエスト転送手段と、
前記第１の種別のサーバから前記リクエストに対するレスポンスを取得し、前記記憶手段の前記サーバ状態情報を参照して、該レスポンスに記載されている処理を行う処理能力に余裕がある第２の種別のサーバを選択する第２の種別サーバ選択手段と、
前記第２の種別サーバ選択手段で選択されたサーバのアドレスを、前記レスポンスに書き込み、前記クライアント装置に前記通信手段を介して送信するレスポンス書き換え手段と、
を有することを特徴とする負荷制御装置。
【請求項６】
前記状態監視手段は、前記サーバ状態情報として、
サーバの演算装置の負荷、
サーバのメモリの使用量、
サーバ内の温度、
サーバに対して接続しているクライアント装置の数、
サーバに対して接続しているクライアント装置のうち、現在使用中のクライアント装置の数、
サーバが使用しているネットワークの帯域、
の少なくとも１つのパラメータを取得して、前記記憶手段に格納する手段を含み、
第２の種別サーバ選択手段は、
前記記憶手段から各サーバのパラメータを読み出して、各パラメータ毎に最も数値が小さいサーバに得点を与え、合計得点が最も高いサーバを、前記第２の種別のサーバとして選択する手段を含む
請求項５記載の負荷制御装置。
【請求項７】
１台以上のクライアント装置と処理内容に応じた２種類以上のサーバとの間に配置され、該クライアント装置から受信したリクエストを該サーバのいずれかに転送し、該リクエストに対して該サーバから返却されるレスポンスを該クライアント装置に転送する負荷制御装置が複数台存在するシステムにおける負荷制御装置であって、
前記クライアント装置、前記サーバ及び他の負荷制御装置との通信を行う通信手段と、
他の負荷制御装置から取得したサーバ状態情報及び、自負荷制御装置に直接接続される種類の異なる各サーバ毎の、サーバ群の代表ホスト名またはアドレス、処理対象情報、サーバ状態情報を格納する記憶手段と、
各負荷制御装置に直接接続されるサーバの状態を定期的に監視し、該サーバの負荷状態を表すパラメータを前記サーバ状態情報として収集して、提供可能なコンテンツ種別、サーバＩＤ、アドレス、サーバ種別と共に前記記憶手段に格納する第１のサーバ状態情報収集手段と、
前記クライアント装置からのリクエストを受信し、前記記憶手段を参照して、該リクエストの内容に応じて接続する第１の種別のサーバを選択する第１の種別サーバ選択手段と、
前記第１の種別のサーバに前記リクエストを送信するリクエスト転送手段と、
前記記憶手段に格納されている前記情報を他の負荷制御装置と交換する状態情報交換手段と、
他の負荷制御装置から取得した前記情報を前記記憶手段に格納する第２のサーバ状態情報収集手段と、
前記他の負荷制御装置から取得した前記情報を含む前記記憶手段を参照して、前記クライアント装置の接続する宛先として、前記リクエストに対して提供可能なコンテンツ種別を有し、処理能力に余裕がある第２の種別のサーバを選択する第２の種別サーバ選択手段と、
前記第１の種別のサーバから受信したレスポンスに、前記第２の種別サーバ選択手段で選択された前記第２の種別のサーバのアドレスを書き込むレスポンス書き換え手段と、
前記レスポンス書き換え手段で書き換えられたレスポンスを前記クライアント装置に送信するレスポンス送信手段と、
を有することを特徴とする負荷制御装置。
【請求項８】
前記第１のサーバ状態情報収集手段は、
自負荷制御装置に直接接続されるサーバから、前記サーバ状態情報として、
サーバの演算装置の負荷、
サーバのメモリの使用量、
サーバ内の温度、
サーバに対して接続しているクライアント装置の数、
サーバに対して接続しているクライアント装置のうち、現在使用中のクライアント装置の数、
サーバが使用しているネットワークの帯域、
の少なくとも１つのパラメータを取得して、前記記憶手段に格納する手段を含み、
前記状態情報交換手段は、
前記記憶手段から各サーバ毎の、各パラメータの全て、または、いずれかの組み合わせ、または、いずれか１つを、前記他の負荷制御装置に対して送信する手段を含む
請求項７記載の負荷制御装置。
【請求項９】
請求項５乃至８のいずれか１項に記載の負荷制御装置を構成する各手段としてコンピュータを機能させる負荷制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、負荷制御方法及び装置及びプログラムに係り、特に、特定のサーバへ通信が集中しサーバが過負荷に陥らないよう、負荷分散を行う負荷制御装置及び方法及びプログラムに関する。詳しくは、処理内容に応じてサーバを複数種類設置しており、処理が進むに従ってサーバの種類が変遷する場合における負荷制御方法及び装置及びプログラムに関する。
【背景技術】
【０００２】
従来技術として、サーバのリソース情報を用いて転送先を決定する技術がある。これは、コンテンツにおける特徴毎に当該コンテンツを配信するコンテンツサーバを決定するための選択基準を設定し、クライアント装置から要求されたコンテンツを配信するコンテンツサーバを要求されたコンテンツの特性に該当する選択基準に基づいて決定する技術である（例えば、特許文献１参照）。
【０００３】
また、コンテンツの配信の際にサーバから直接配信する技術がある（例えば、非特許文献１参照）。
【０００４】
以下に、従来の負荷制御装置を用いた負荷制御方法について説明する。図８は、従来の負荷制御システムの構成を示す。
【０００５】
クライアント装置１がサーバ５，６にアクセスしようとした場合、負荷制御装置４に対してアクセスし、負荷制御装置４は、そのリクエストを最適なサーバ５または６のいずれかに転送する。サーバ５または６からのリプライは、同じく負荷制御装置４に送られ、負荷制御装置４がリクエストの送信元であるクライアント装置１に転送する。負荷制御装置４に対して新たなクライアント装置から新しいリクエストが送られるたびに、最適なサーバを選択して転送することにより、負荷分散を行う。
【特許文献１】特開２００３−２５６３１０号公報
【非特許文献１】"Bridge-Path vs. Route-Path Server Load Balancing"(http://oreilly.net.com/pub/a/oreilly/networking/news/bourke_1100.html)
【発明の開示】
【発明が解決しようとする課題】
【０００６】
以下では、例えば、特許文献１に示される従来技術における課題を図９を参照して説明する。
【０００７】
クライアント装置７またはクライアント装置８からＷｅｂサーバ１１〜１３への送られるリクエストは、負荷制御装置１０を経由し、パケットの流れｂ、ａの順にで送られ、また、Ｗｅｂサーバからのレスポンスは、パケットの流れａ，ｂの順に負荷制御装置１０を経由してクライアント装置７，８に送られる。ストリームサーバ１４〜１８の場合も同様にパケットの流れｄ、ｃの順に負荷制御装置１０を経由してクライアント装置７，８に送られる。すなわち、ストリームサーバ１４〜１８からクライアント装置へ配信されるコンテンツとしての映像ストリームもこの負荷制御装置１０を通って配信されるため、高精細映像のコンテンツなど帯域が大きい場合や、クライアント装置７，８の同時接続数が多い場合などに負荷制御装置１０がボトルネックとなり配信がうまく行えない場合がある。
【０００８】
また、非特許文献１のＤＳＲ(Direct Server Return)構成に示される従来技術における課題を図１０を参照して説明する。
【０００９】
ＤＳＲ構成の場合、各サーバ２７〜２９へのリクエストは、パケットの流れｅ、ｆや、パケットの流れｇ、ｈのように負荷制御装置を経由するが、各サーバからクライアントへの送信は、パケットの流れｉ，ｊのように、サーバからクライアント装置２３，２４へ直接コンテンツとしての映像ストリームを配信することが可能である。このため、ダウンロードにおける問題は生じにくいが、コンテンツを取得するリクエストや、コンテンツを制御するためのコマンドの送信などの、ストリームサーバ３０〜３４へのリクエストが常に負荷制御装置２６を経由し、選択された最適なストリームサーバへ転送されるため、そもそもコンテンツへのリクエストが集中した場合や、例えば、ビデオオンデマンドで早送り、巻き戻しなどを多用した場合などのコマンドのリクエストが集中した場合、負荷制御装置２６がボトルネックとなる可能性がある。
【００１０】
このように、従来技術ではコンテンツへのアクセスやコンテンツ配信時に負荷制御装置を経由することによるボトルネックが懸念される。
【００１１】
本発明は、上位の点に鑑みなされたもので、負荷制御装置によるボトルネックが生じないよう、コンテンツへのアクセス及びコンテンツ配信時共に負荷制御装置を経由せずに、かつ、最適なサーバの負荷分散が可能な負荷制御装置及び方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
図１は、本発明の原理を説明するための図である。
【００１３】
本発明（請求項１）は、１台以上のクライアント装置と処理内容に応じた２種類以上のサーバとの間に配置され、該クライアント装置から受信したリクエストを該サーバのいずれかに転送し、該リクエストに対して該サーバから返却されるレスポンスを該クライアント装置に転送する負荷制御装置を有するシステムにおける負荷制御方法において、
負荷制御装置は、
クライアント装置からリクエストを取得する第１の種別のサーバ及び、該リクエストを実際に処理する第２の種別のサーバの状態を定期的に監視し、該サーバの負荷状態を表すパラメータをサーバ状態情報として収集して（ステップ１）、サーバＩＤ、アドレス、サーバ種別と共に記憶手段に格納する（ステップ２）状態監視ステップと、
クライアント装置からのリクエストを受信し（ステップ３）、記憶手段に保持されているサーバ状態情報を参照して、該リクエストの処理内容に応じて接続する第１の種別のサーバを選択する（ステップ４）第１の種別サーバ選択ステップと、
第１の種別のサーバにリクエストを送信するリクエスト転送ステップ（ステップ５）と、
第１の種別のサーバからリクエストに対するレスポンスを取得し（ステップ６）、記憶手段のサーバ状態情報を参照して、該レスポンスに記載されている処理を行う処理能力に余裕がある第２の種別のサーバを選択する（ステップ７）第２の種別サーバ選択ステップと、
第２の種別サーバ選択ステップで選択された第２の種別のサーバのアドレスをレスポンスに書き込むレスポンス書き換えステップ（ステップ８）と、
レスポンス書き換えステップで第２の種別のサーバのアドレスに書き換えられたレスポンスをクライアント装置に送信するレスポンス送信ステップ（ステップ９）と、を行い、
クライアント装置は、
負荷制御装置から受信した書き換えられたレスポンスのアドレスに基づいて、第２の種別のサーバと接続するステップを行う（ステップ１０）。
【００１４】
また、本発明（請求項２）は、状態監視ステップにおいて、
サーバ毎に、サーバ状態情報として、
サーバの演算装置の負荷、
サーバのメモリの使用量、
サーバ内の温度、
サーバに対して接続しているクライアント装置の数、
サーバに対して接続しているクライアント装置のうち、現在使用中のクライアント装置の数、
サーバが使用しているネットワークの帯域、
の少なくとも１つのパラメータを取得して、記憶手段に格納し、
第２の種別サーバ選択ステップにおいて、
記憶手段から各サーバのパラメータを読み出して、各パラメータ毎に最も数値が小さいサーバに得点を与え、合計得点が最も高いサーバを、第２の種別のサーバとして選択する。
【００１５】
本発明（請求項３）は、１台以上のクライアント装置と処理内容に応じた２種類以上のサーバとの間に配置され、該クライアント装置から受信したリクエストを該サーバのいずれかに転送し、該リクエストに対して該サーバから返却されるレスポンスを該クライアント装置に転送する請求項１記載の負荷制御方法を行う２台以上の負荷制御装置を有するシステムにおける負荷制御方法であって、
各負荷制御装置は、
各負荷制御装置に直接接続されるサーバの状態を定期的に監視し、所定の閾値以内の該サーバの負荷状態を表すパラメータをサーバ状態情報として収集して、提供可能なコンテンツ種別、サーバＩＤ、アドレス、サーバ種別と共に記憶手段に格納する第１のサーバ状態情報収集ステップと、
クライアント装置からのリクエストを受信し、記憶手段を参照して、該リクエストの内容に応じて、接続する第１の種別のサーバを選択する第１の種別サーバ選択ステップと、
第１の種別のサーバにリクエストを送信するリクエスト転送ステップと、
記憶手段に格納されている情報を他の負荷制御装置と交換する状態情報交換ステップと、
他の負荷制御装置から取得した情報を記憶手段に格納する第２のサーバ状態情報収集ステップと、
他の負荷制御装置から取得した情報を含む記憶手段を参照して、クライアント装置の接続する宛先として、リクエストに対して提供可能なコンテンツ種別を有し、処理能力に余裕がある第２の種別のサーバを選択する第２の種別サーバ選択ステップと、
第１の種別のサーバから受信したレスポンスに、第２の種別サーバ選択ステップで選択された第２の種別のサーバのアドレスを書き込むレスポンス書き換えステップと、
レスポンス書き換えステップで書き換えられたレスポンスをクライアント装置に送信するレスポンス送信ステップと、を行い、
クライアント装置は、
負荷制御装置から受信した書き換えられたレスポンスに基づいて、第２の種別のサーバと接続するステップを行う。
【００１６】
また、本発明（請求項４）は、第１のサーバ状態情報収集ステップにおいて、
自負荷制御装置に直接接続されるサーバから、サーバ状態情報として、
サーバの演算装置の負荷、
サーバのメモリの使用量、
サーバ内の温度、
サーバに対して接続しているクライアント装置の数、
サーバに対して接続しているクライアント装置のうち、現在使用中のクライアント装置の数、
サーバが使用しているネットワークの帯域、
の少なくとも１つのパラメータを取得して、記憶手段に格納し、
状態情報交換ステップにおいて、
記憶手段から各サーバ毎の、各パラメータの全て、または、いずれかの組み合わせ、または、いずれか１つを他の負荷制御装置に対して送信する。
【００１７】
図２は、本発明の原理構成図である。
【００１８】
本発明（請求項５）は、１台以上のクライアント装置と処理内容に応じた２種類以上のサーバとの間に配置され、該クライアント装置から受信したリクエストを該サーバのいずれかに転送し、該リクエストに対して該サーバから返却されるレスポンスを該クライアント装置に転送する負荷制御装置であって、
クライアント装置及びサーバとの通信を行う通信手段１００と、
種類の異なる各サーバ毎に、サーバ群の代表ホスト名またはアドレス、処理対象情報、サーバ状態情報を格納する記憶手段２００と、
クライアント装置からリクエストを取得する第１の種別のサーバ及び、該リクエストを実際に処理する第２の種別のサーバの状態を定期的に監視し、該サーバの負荷状態を表すパラメータをサーバ状態情報として収集して、サーバＩＤ、アドレス、サーバ種別と共に記憶手段２００に格納する状態監視手段３００と、
クライアント装置から受信したリクエストの内容に基づいて、記憶手段２００に保持されているサーバ状態情報を参照して、該リクエストの処理内容に応じて接続する第１の種別のサーバを選択する第1の種別サーバ選択手段４１０と、
該リクエストを、通信手段１００を介して該第１の種別のサーバに転送するリクエスト転送手段と、
第１の種別のサーバからリクエストに対するレスポンスを取得し、記憶手段２００のサーバ状態情報を参照して、該レスポンスに記載されている処理を行う処理能力に余裕がある第２の種別のサーバを選択する第２の種別サーバ選択手段４２０と、
第２の種別サーバ選択手段４２０で選択されたサーバのアドレスを、レスポンスに書き込み、クライアント装置に通信手段１００を介して送信するレスポンス書き換え手段６００と、を有する。
【００１９】
また、本発明（請求項６）は、状態監視手段３００において、
サーバ状態情報として、
サーバの演算装置の負荷、
サーバのメモリの使用量、
サーバ内の温度、
サーバに対して接続しているクライアント装置の数、
サーバに対して接続しているクライアント装置のうち、現在使用中のクライアント装置の数、
サーバが使用しているネットワークの帯域、
の少なくとも１つのパラメータを取得して、記憶手段２００に格納する手段を含み、
第２の種別サーバ選択手段４２０において、
記憶手段２００から各サーバのパラメータを読み出して、各パラメータ毎に最も数値が小さいサーバに得点を与え、合計得点が最も高いサーバを、第２の種別のサーバとして選択する手段を含む。
【００２０】
本発明（請求項７）は、１台以上のクライアント装置と処理内容に応じた２種類以上のサーバとの間に配置され、該クライアント装置から受信したリクエストを該サーバのいずれかに転送し、該リクエストに対して該サーバから返却されるレスポンスを該クライアント装置に転送する負荷制御装置が複数台存在するシステムにおける負荷制御装置であって、
クライアント装置、サーバ及び他の負荷制御装置との通信を行う通信手段と、
他の負荷制御装置から取得したサーバ状態情報及び、自負荷制御装置に直接接続される種類の異なる各サーバ毎の、サーバ群の代表ホスト名またはアドレス、処理対象情報、サーバ状態情報を格納する記憶手段と、
各負荷制御装置に直接接続されるサーバの状態を定期的に監視し、該サーバの負荷状態を表すパラメータをサーバ状態情報として収集して、提供可能なコンテンツ種別、サーバＩＤ、アドレス、サーバ種別と共に記憶手段に格納する第１のサーバ状態情報収集手段と、
クライアント装置からのリクエストを受信し、記憶手段を参照して、該リクエストの内容に応じて接続する第１の種別のサーバを選択する第１の種別サーバ選択手段と、
第１の種別のサーバにリクエストを送信するリクエスト転送手段と、
記憶手段に格納されている情報を他の負荷制御装置と交換する状態情報交換手段と、
他の負荷制御装置から取得した情報を記憶手段に格納する第２のサーバ状態情報収集手段と、
他の負荷制御装置から取得した情報を含む記憶手段を参照して、クライアント装置の接続する宛先として、リクエストに対して提供可能なコンテンツ種別を有し、処理能力に余裕がある第２の種別のサーバを選択する第２の種別サーバ選択手段と、
第１の種別のサーバから受信したレスポンスに、第２の種別サーバ選択手段で選択された第２の種別のサーバのアドレスを書き込むレスポンス書き換え手段と、
レスポンス書き換え手段で書き換えられたレスポンスをクライアント装置に送信するレスポンス送信手段と、を有する。
【００２１】
また、本発明（請求項８）は、第１のサーバ状態情報収集手段において、
自負荷制御装置に直接接続されるサーバから、サーバ状態情報として、
サーバの演算装置の負荷、
サーバのメモリの使用量、
サーバ内の温度、
サーバに対して接続しているクライアント装置の数、
サーバに対して接続しているクライアント装置のうち、現在使用中のクライアント装置の数、
サーバが使用しているネットワークの帯域、
の少なくとも１つのパラメータを取得して、記憶手段に格納する手段を含み、
状態情報交換手段は、
記憶手段から各サーバ毎の、各パラメータの全て、または、いずれかの組み合わせ、または、いずれか１つを他の負荷制御装置に対して送信する手段を含む。
【００２２】
本発明（請求項９）は、請求項５乃至８のいずれか１項に記載の負荷制御装置を構成する各手段としてコンピュータを機能させる負荷制御プログラムである。
【発明の効果】
【００２３】
処理が進むに従って、サーバの種類が変遷する場合において、クライアント装置が次の処理を行うサーバに関する情報を、現在のサーバから得られるレスポンスに記載された情報によって得ることは、例えば、Ｗｅｂサーバからストリームサーバやアプリケーションサーバへの遷移など、一般に広く行われている技術である。
【００２４】
本発明によれば、この第１の種別のサーバから得られる、次の処理を行うべき第２の種別のサーバの情報をクライアント装置に転送することにより、クライアント装置が最適なサーバへ接続することが可能となる。直接接続することによって、従来技術のようにコンテンツやサービスを提供する第２の種別のサーバへのリクエストが負荷制御装置を経由することなく、また、第２の種別のサーバからのコンテンツ配信もクライアント装置へ直接行われることにより、ボトルネックを回避することが可能となる。
【００２５】
また、複数の負荷分散装置との間でリモートでサーバの情報を交換することにより、ローカルの負荷分散のみならず、グローバルな負荷分散が可能となる。
【発明を実施するための最良の形態】
【００２６】
以下、図面と共に本発明の実施の形態を説明する。
【００２７】
［第１の実施の形態］
図３は、本発明の第１の実施の形態における負荷制御システムの構成を示す。
【００２８】
同図に示すシステムは、クライアント装置４１，４２、ネットワーク４３、負荷制御装置４４及び２種類のサーバ群から構成され、サーバ群としてＷｅｂサーバ４５〜４７と映像・音声コンテンツを提供するストリームサーバ４８〜５２が存在する。
【００２９】
負荷制御装置４４は、クライアント装置４１，４２とＷｅｂサーバ４５〜４７及びストリームサーバ４８〜５２の間に配置され、クライアント装置４１，４２から受信したリクエストをＷｅｂサーバ４５〜４７のいずれかに転送し、リクエストに対するＷｅｂサーバからのレスポンスを、選択したストリームサーバ４８〜５２のいずれかのアドレスに書き換えてクライアント装置に転送する。
【００３０】
クライアント装置４１，４２は、負荷制御装置４４にリクエストを送信し、負荷制御装置４４から所望のコンテンツを取得可能なストリームサーバのアドレスを含むレスポンスを取得し、負荷制御装置４４を介在させないで、直接ストリームサーバからコンテンツを取得する。
【００３１】
図４は、本発明の第１の実施の形態における負荷制御装置の構成を示す。
【００３２】
負荷制御装置４４は、通信部１００、サーバ情報記憶部２００、サーバ管理部３００、書き換え部６００から構成される。
【００３３】
サーバ管理部３００は、Ｗｅｂサーバ４４〜４７、ストリームサーバ４８〜５２のトラフィックの状態を定期的に監視すると共に、監視したサーバの状態情報、サーバの種別、サーバＩＤまたはアドレス等を取得してサーバ情報記憶部４４３に格納することにより管理する。
【００３４】
サーバ管理部３００がサーバを監視することにより取得する状態情報のパラメータは、
・サーバの演算装置の負荷；
・サーバのメモリの使用量；
・サーバ内の温度；
・サーバに対して接続しているクライアント装置の数；
・サーバに対して接続しているクライアント装置のうち、現在使用中のクライアント装置の数；
・サーバが使用しているネットワークの帯域；
であり、サーバ毎にサーバ情報記憶部２００に格納する。
【００３５】
サーバ選択部４００は、クライアント装置４１，４２からのリクエストに基づいて、サーバ情報記憶部２００を参照して、リクエストを転送する適切なサーバを決定する。このとき、サーバ選択部４００は、クライアント装置４１，４２からのリクエストを受信すると、当該リクエストの処理要求（例えば、Windows Mediaメタファイル要求）に基づいて、サーバ情報記憶部２００を参照してＷｅｂサーバ群から１つのＷｅｂサーバ（第１の種別のサーバ）を選択する。そして、選択されたＷｅｂサーバに対してリクエストを転送し、当該リクエストに対応するレスポンス（例えば、Windows Mediaメタファイル）を受信する。次に、当該レスポンスに基づいて、サーバ情報記憶部２００を参照し、実質的に処理を行うストリームサーバ（第２の種別のサーバ）を選択する。
【００３６】
Ｗｅｂサーバからのレスポンスに指定されているストリームサーバが複数存在しているため、この中から１つのストリームサーバを選択する方法として以下のような方法がある。
【００３７】
＜ストリームサーバの選択方法>
１）  サーバ情報記憶部２００から各サーバの少なくとも１つの状態情報のパラメータを読み出して、最も数値が小さいサーバに得点を与え、その合計得点が最も高いサーバを選択する。なお、利用するパラメータは、上記の少なくとも１つ、または、全てのパラメータ、または、いくつかのパラメータの組み合わせのいずれかとする。
【００３８】
これにより、最も負荷の少ないサーバを容易に選択することができる。
【００３９】
２）  サーバ情報記憶部２００から各サーバの状態情報の少なくとも１つのパラメータを読み出して、予めサーバ毎に設定された閾値または、全サーバ共通で設定された閾値と比較して、閾値以下のサーバのみを選択候補とし、その中から上記１）の方法により合計得点を求め、最も合計得点の高いサーバを選択する。また、閾値と比較して当該閾値を超えている場合には、閾値を下回るまで選択対象から除外するものとする。
【００４０】
このようにサーバ毎に最適な制限値を設けることによって、コンテンツを直接クライアント装置に提供するサーバ（ストリームサーバ）に性能差がある場合においても、特定のサーバが過負荷に陥ることなく、サービスを継続することができる。
【００４１】
また、サーバ情報記憶部２００から読み出した全てのサーバのパラメータが閾値を超えていて、選択対象となるサーバが存在しない場合には、予め設定された時間待ち合わせ、再度サーバ情報記憶部２００からパラメータを読み出して、上記の判定を行う。このとき、再度全てのサーバのパラメータが閾値を超えている場合には、通信部１００を介して、クライアント装置４１，４２にビジーを通知するか、または、ビジー処理を行うサーバがある場合には、当該サーバにクライアント装置からのリクエストと共に、ビジー状態を通知する。
【００４２】
これにより、システム全体の許容量を越えるほどのアクセスが集中した場合でも、システムが過負荷に陥ることなく運用が可能であり、かつ、条件を満たさないからといって即拒絶するのではなく、予め設定した時間サーバが再び選択可能となるのを待つことによって、クライアントの無駄なリロードを抑え、システム全体の効率を高めることが期待できる。
【００４３】
書き換え部６００は、サーバ選択部４００において、ストリームサーバ（第２の種別のサーバ）が選択されると、当該サーバのアドレスをＷｅｂサーバからのレスポンスに書き込み、通信部１００を介してクライアント装置に送信する。
【００４４】
以下では、Ｗｅｂサーバ４５〜４７とストリームサーバ４８〜５２の２種からなるサーバ群を例とし、クライアント装置４１，４２は、Ｗｅｂサーバ４５〜４７のいずれかにアクセスし、希望するストリームサーバを選択することによって、ストリームサーバとコンテンツの情報を得るものである。例えば、ストリームサーバとして、Microsoft社のWindows Media Serverを用いる場合は、Ｗｅｂサーバから返されるストリームサーバとコンテンツの情報を記したレスポンスとして、Windows Mediaメタファイルと呼ばれる形式を取得することができる。
【００４５】
以下に、一連の処理について説明する。
【００４６】
図５は、本発明の第１の実施の形態における処理のシーケンスチャートである。
【００４７】
以下では、クライアント装置４１からリクエストが送信され、Ｗｅｂサーバ４６、ストリームサーバ４８を選択するものとして説明する。また、Ｗｅｂサーバを選択するための、代表ホスト名、アドレス、処理内容等のＷｅｂのサーバ情報は、予め収集されてサーバ情報記憶部２００に格納されているものとする。
【００４８】
各ストリームサーバ４８〜５２からは、データが流れるネットワーク４３とは別ネットワークを形成し、パケットの流れＣのように、各サーバの状態を、例えば、ＳＮＭＰ(Simple Network Management Protocol)を用いて定期的に取得し（ステップ１０１）、各ストリームサーバから取得したサーバ情報のパラメータの閾値と所定の閾値とを比較して、閾値以内のパラメータを持つサーバ情報をサーバ情報記憶部２００に格納する（ステップ１０２）。
【００４９】
クライアント装置４１にとっては、負荷制御装置４４がＷｅｂサーバ群４５〜４７を代表するホスト名及びアドレスで見えているため、クライアント装置４１は、Ｗｅｂサーバ４５〜４７のいずれかに対してWindows Mediaメタファイルを要求するためのリクエストをパケットの流れＡに沿ってネットワーク４３を介して負荷制御装置４４に送信する（ステップ１０３）。
【００５０】
負荷制御装置４４は、クライアント装置４１からリクエストを受信すると、サーバ選択部４００は、当該リクエストに基づいてサーバ情報記憶部２００を参照して、当該リクエストを送信可能なＷｅｂサーバを選択する（ステップ１０４）。Webサーバの選択には、従来の負荷制御装置が行っている選択手段、例えば、最も少ないコネクション数のＷｅｂサーバを選択する、などの方法を用いる。ここでは、Ｗｅｂサーバ４６を選択したものとする。
【００５１】
負荷制御装置４４は、Ｗｅｂサーバ４６に対してパケットの流れＢに沿ってリクエストを送信する（ステップ１０５）。
【００５２】
次に、Ｗｅｂサーバ４６よりWindows Mediaメタファイルがレスポンスとしてパケットの流れＢに沿って負荷制御装置４４に送信される（ステップ１０６）。
【００５３】
負荷制御装置４４のサーバ選択部４００は、Ｗｅｂサーバ４６から取得したレスポンスに基づいて、サーバ情報記憶部２００を参照して、最適なストリームサーバを選択する（ステップ１０７）。ここでは、ストリームサーバ４９を選択したものとする。このとき、どのサーバも選択できなかった場合には、所定の時間待ち合わせを行い、再度、サーバを選択し、所定の待ち時間を経過してもサーバが選択できない場合には、ビジー通知をリクエスト送信元のクライアント装置４１に送信する（ステップ１０８）。
【００５４】
ストリームサーバが選択された場合には、負荷制御装置４４の書き換え部６００は、選択したストリームサーバ４９の情報（アドレス）を用いてWindows Mediaメタファイルを書き換え（ステップ１０９）、書き換えたWindows Mediaメタファイルをクライアント装置４１に送信する（ステップ１１０）。
【００５５】
クライアント装置４１は、取得したWindows Mediaメタファイル内に記述されているアドレスを用いてストリームサーバ４９へ接続する（ステップ１１１）。これにより、クライアント装置４１は、パケットの流れＤに沿ってストリームサーバ４９と通信を行うことができる。
【００５６】
上記のように本実施の形態によれば、クライアント装置４１は、負荷制御装置４４を経由することなくストリームサーバ４９に直接アクセスし、コンテンツを取得することができ、負荷制御装置４４によるボトルネックを解消することができる。
【００５７】
［第２の実施の形態］
第１の実施の形態では、１つの負荷制御装置において負荷制御を行う例を説明したが、本実施の形態では、第１の実施の形態で示した負荷制御装置を複数台用い、収集した各サーバの各パラメータを負荷制御装置同士で交換する例を説明する。
【００５８】
図６は、本発明の第２の実施の形態における負荷制御システムの構成を示す。
【００５９】
同図に示すシステムは、クライアント装置５７，５８と、拠点５９，６３，６９のシステムがネットワークを介して接続されている。
【００６０】
拠点５９には、１台の負荷制御装置６０とＷｅｂサーバ群６１、ストリームサーバ群６２があり、拠点６３には１台の負荷制御装置６４とストリームサーバ群６５があり、拠点６６には、１台の負荷制御装置６７とストリームサーバ群６８がある。
【００６１】
各拠点の各負荷制御装置６０，６４，６７は、前述の図４と同様の構成を有し、サーバ情報記憶部２００には、全てのサーバ群の情報が格納される。
【００６２】
本実施の形態における負荷制御装置の構成は、図４に示す構成と同様であるが、通信部１００は、自装置配下のサーバ及びクライアント装置のみならず、他の負荷制御装置との送受信を行う。また、サーバ管理部３００は、第１の実施の形態の機能に加えて、他の負荷制御装置から取得したサーバ情報も管理し、サーバ情報記憶部２００に格納する。
【００６３】
図７は、本発明の第２の実施の形態における処理のシーケンスチャートである。
【００６４】
以下では、拠点５９の負荷制御装置６０において、拠点６３の負荷制御装置６４及び拠点６６の負荷制御装置６７からサーバ情報を収集し、クライアント装置５７からのリクエストに応じる例を説明する。
【００６５】
最初に、各負荷制御装置６０、６４，６７では、当該負荷制御装置配下のＷｅｂサーバ群及びストリームサーバ群からサーバ情報を定期的に収集し（ステップ２０１）、収集したサーバ情報のパラメータの値と所定の閾値を比較して、閾値以内のパラメータを各負荷制御装置内のサーバ情報記憶部２００に格納する（ステップ２０２）。なお、各負荷制御装置におけるサーバ情報の収集及びサーバ情報のパラメータと所定の閾値の比較は、前述の第１の実施の形態で示した方法と同様である。
【００６６】
負荷制御装置６４，６７は、閾値をチェックしたパラメータからなるサーバ情報を負荷制御装置６０に対して、パケットの流れＡ，Ｂに従って送信する（ステップ２０３）。
【００６７】
負荷制御装置６０は、他の負荷制御装置６４，６７から受信したサーバ情報（ストリームサーバのパラメータ）をサーバ情報記憶部２００にサーバ毎に格納する（ステップ２０４）。
【００６８】
ここで、負荷制御装置６０がクライアント装置５７からリクエストを受信すると（ステップ２０５）、当該リクエストに基づいて、サーバ情報記憶部２００を参照してＷｅｂサーバ群６１の中から１つのＷｅｂサーバを選択する（ステップ２０６）。選択方法については、第１の実施の形態と同様である。選択されたＷｅｂサーバに対してクライアント装置５７からのリクエストを送信する（ステップ２０７）。Ｗｅｂサーバは、リクエストに対するレスポンスを負荷制御装置６０に返却する（ステップ２０８）。Ｗｅｂサーバを選択する処理及びＷｅｂサーバからのレスポンスを送信する処理については、第１の実施の形態と同様である。
【００６９】
負荷制御装置６０は、Ｗｅｂサーバから取得したレスポンスに基づいて、サーバ情報記憶部２００を参照して、格納されている全てのサーバの中から提供可能コンテンツの種別及び状態情報のパラメータに基づいてストリームサーバを選択する（ステップ２０９）。ここでは、拠点６６のストリームサーバ群６８のストリームサーバが選択されたものとする。Ｗｅｂサーバから返却されたレスポンスに選択されたストリームサーバのアドレスを書き込み（ステップ２１０）、クライアント装置５７に送信する（ステップ２１１）。これにより、クライアント装置５７と拠点６６のストリームサーバ群の１つのストリームサーバが接続される（ステップ２１２）。
【００７０】
なお、上記の例では、Ｗｅｂサーバ群６１を配下に持つ負荷制御装置６０が、他の負荷制御装置６４，６７からリモート情報を採取する例を示しているが、全ての拠点にＷｅｂサーバが存在し、互いにサーバ情報を送信しあう構成としてもよい。この場合、各拠点のＷｅｂサイトのうちどこに接続するかは、ＤＮＳラウンドロビン等の既存技術を利用することで実現可能である。
【００７１】
また、各負荷分散制御装置同士が代表値のみを互いにやり取りする場合は、最適なサーバを表す情報としてサーバ群の代表となるサーバ名（サーバＩＤ）または、アドレスが得られることがある。この場合、実際に接続するサーバの情報を得るには、代表するホスト名または、アドレスに接続を試みた際に、再度、書き換え部６００においてレスポンスの書き換えを行い、最終的な接続先を得るようにしてもよい。
【００７２】
本実施の形態によれば、ローカルの負荷分散だけではなく、グローバルに負荷分散が可能となり、サイトが接続するネットワークの帯域の負荷分散を行うことができる。
【００７３】
なお、上記の負荷制御装置の機能をプログラムとして構築し、負荷制御装置として利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。
【００７４】
また、構築されたプログラムを、ハードディスクや、フレキシブルディスク、ＣＤ−ＲＯＭ等の可搬記憶媒体に格納し、コンピュータにインストールするまたは、配布することも可能である。
【００７５】
なお、本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において種々変更・応用が可能である。
【産業上の利用可能性】
【００７６】
本発明は、サーバのリソースの過負荷を分散するためのシステムに適用可能である。
【図面の簡単な説明】
【００７７】
【図１】本発明の原理を説明するための図である。
【図２】本発明の原理構成図である。
【図３】本発明の第１の実施の形態における負荷制御システムの構成図である。
【図４】本発明の第１の実施の形態における負荷制御装置の構成図である。
【図５】本発明の第１の実施の形態における処理のシーケンスチャートである。
【図６】本発明の第２の実施の形態における負荷制御システムの構成図である。
【図７】本発明の第２の実施の形態における処理のシーケンスチャートである。
【図８】従来の負荷制御システムの構成図である。
【図９】従来技術の課題を説明するための図（その１）である。
【図１０】従来技術の課題を説明するための図（その２）である。
【符号の説明】
【００７８】
４１，４２，５７，５８  クライアント装置
４４，６０，６４，６７  負荷制御装置
４５，４６，４７  Ｗｅｂサーバ
４８，４９，５０，５１，５２  ストリームサーバ
６１  Ｗｅｂサーバ群
６２，６５，６８  ストリームサーバ群
５９，６３，６６  拠点
１００  通信手段、通信部
２００  記憶手段、サーバ情報記憶部
３００  状態監視手段、サーバ管理部
４００  サーバ選択部
４１０  １の種別サーバ選択手段
４２０  第２の種別サーバ選択手段
６００  レスポンス書き換え手段
【図１】
0004729549.tif 000002
【図２】
0004729549.tif 000003
【図３】
0004729549.tif 000004
【図４】
0004729549.tif 000005
【図５】
0004729549.tif 000006
【図６】
0004729549.tif 000007
【図７】
0004729549.tif 000008
【図８】
0004729549.tif 000009
【図９】
0004729549.tif 000010
【図１０】
0004729549.tif 000011