(57)【特許請求の範囲】
【請求項１】
コンテンツの配信のために木構造を構成するように接続され、前記木構造において上位に接続される上位のサーバ装置又は下位に接続される下位のサーバ装置を含む他のサーバ装置とアクセスするサーバ装置群の１つであるコンピュータに実行させるサーバ装置切り替えプログラムであって、
前記コンピュータに、
コンテンツ毎にコンテンツの識別情報、該コンテンツの配信のための自装置と、他のサーバ装置との単位時間当たりのアクセス数、並びに、該他のサーバ装置と接続するための接続情報を対応付けたコンテンツ情報を管理部にて管理し、
下位のサーバ装置から、該下位のサーバ装置のアクセス負荷軽減のために該下位のサーバ装置に代って前記木構造においてコンテンツの配信を中継するサーバ装置の切り替えに係るサーバ装置の変更要求を受信した場合に、受信した変更要求が含むコンテンツの識別情報、該コンテンツの配信のために該下位のサーバ装置が他のサーバ装置とアクセスする単位時間当たりのアクセス数を含めた検索要求を、自装置と前記木構造において下位に接続される該変更要求を送信した下位のサーバ装置とは異なる他の下位のサーバ装置に対して送信し、
下位のサーバ装置から前記検索要求に対する検索応答を受信した場合に、少なくとも１つの検索応答が不可を示す情報でないとき、該検索応答が含む第１のアクセス差数のうちの最小数及び前記管理部にて管理する上位及び下位のサーバ装置とのアクセスに係るコンテンツの識別情報に対応するアクセス数の合計値と、前記変更要求が含むアクセス数との差を第２のアクセス差数として算出し、該第２のアクセス差数が第１の閾値を超えるか否かを判定し、
前記第２のアクセス差数が前記第１の閾値を超えないと判定した場合に、受信した検索応答が含む第１のアクセス差数のうちの最小数を送信した下位のサーバ装置にアクセスするための接続情報を含めた前記変更要求に対する変更応答を、前記変更要求を送信した下位のサーバ装置に対して送信する
処理を実行させることを特徴とするサーバ装置切り替えプログラム。
【請求項２】
前記コンピュータに、
前記管理部にて管理する上位及び下位のサーバ装置とのアクセス数の合計数が第２の閾値を超えた場合に、前記管理部にて管理するコンテンツ情報の中からコンテンツ情報を選択し、
選択したコンテンツ情報が含むコンテンツの識別情報、アクセス数を含めた前記サーバ装置の変更要求を、該コンテンツ情報が含む接続情報に対応する上位のサーバ装置に対して送信し、
上位のサーバ装置から前記検索要求を受信した場合に、該検索要求が含むアクセス数と、前記管理部にて管理する上位及び下位のサーバ装置とのアクセスに係るコンテンツの識別情報に対応するアクセス数との和をアクセス合計数として算出し、該アクセス合計数が第３の閾値を超えるか否かを判定し、
前記アクセス合計数が前記第３の閾値を超えないと判定した場合に、前記検索要求が含むアクセス数と、前記管理部にて管理するアクセス数との正の差を第１のアクセス差数として算出し、該第１のアクセス差数を含めた検索応答を、前記検索要求を送信した上位のサーバ装置に対して送信する
処理をさらに実行させることを特徴とする請求項１に記載のサーバ装置切り替えプログラム。
【請求項３】
前記コンピュータに、
上位のサーバ装置から前記サーバの変更要求に対する変更応答を受信した場合に、該変更応答が不可を示す情報でないとき、該変更要求が含むコンテンツの識別情報と、該変更応答が含む接続情報とを含めた通知情報を、該変更要求を送信した下位のサーバ装置に対して通知し、
上位のサーバ装置から前記通知情報を受信した場合に、該通知情報が含む前記接続情報で、前記管理部にて管理する該通知情報が含むコンテンツの識別情報に対応する自装置の上位のサーバ装置とアクセスするための接続情報を更新する
処理をさらに実行させることを特徴とする請求項２に記載のサーバ装置切り替えプログラム。
【請求項４】
前記コンピュータに、
上位のサーバ装置から前記サーバ装置の変更要求に対する変更応答を受信した場合に、該変更応答が不可を示す情報である、又は、前記検索要求に対する全ての検索応答が不可を示す情報である場合に、前記管理部にて管理するコンテンツ情報の中から前回までに選択したコンテンツ情報とは異なるコンテンツ情報を再選択し、
再選択したコンテンツ情報が含むコンテンツの識別情報、アクセス数、並びに、接続情報を含めたサーバ装置の変更要求を、該コンテンツ情報が含む接続情報に対応するサーバ装置に対して送信する
処理をさらに実行させることを特徴とする請求項２又は３に記載のサーバ装置切り替えプログラム。
【請求項５】
前記コンピュータに、
上位のサーバ装置にアクセスすることにより配信されたコンテンツをキャッシュするキャッシュ部に、上位のサーバ装置からの前記検索要求が含むコンテンツの識別情報に対応するコンテンツがキャッシュされている場合に、前記第１のアクセス差数を算出し、前記第１のアクセス差数を含めた検索応答を、前記検索要求を送信したサーバ装置に対して送信する
処理をさらに実行させることを特徴とする請求項２、３又は４に記載のサーバ装置切り替えプログラム。
【請求項６】
コンテンツの配信のために木構造を構成するように接続され、前記木構造において上位に接続される上位のサーバ装置又は下位に接続される下位のサーバ装置を含む他のサーバ装置とアクセスするサーバ装置群の１つであるサーバ装置であって、
コンテンツ毎にコンテンツの識別情報、該コンテンツの配信のための自装置と、他のサーバ装置との単位時間当たりのアクセス数、並びに、該他のサーバ装置と接続するための接続情報を対応付けたコンテンツ情報を管理する管理部と、
下位のサーバ装置から、該下位のサーバ装置のアクセス負荷軽減のために該下位のサーバ装置に代って前記木構造においてコンテンツの配信を中継するサーバ装置の切り替えに係るサーバ装置の変更要求を受信した場合に、受信した変更要求が含むコンテンツの識別情報、該コンテンツの配信のために該下位のサーバ装置が他のサーバ装置とアクセスする単位時間当たりのアクセス数を含めた検索要求を、前記木構造において自装置の下位に接続される該変更要求を送信した下位のサーバ装置とは異なる他の下位のサーバ装置に対して送信する検索要求送信部と、
下位のサーバ装置から前記検索要求に対する検索応答を受信した場合に、少なくとも１つの検索応答が不可を示す情報でないとき、該検索応答が含む第１のアクセス差数のうちの最小数及び前記管理部にて管理する上位及び下位のサーバ装置とのアクセスに係るコンテンツの識別情報に対応するアクセス数の合計値と、前記変更要求が含むアクセス数との差を第２のアクセス差数として算出し、該第２のアクセス差数が第１の閾値を超えるか否かを判定する第１の判定部と、
前記第１の判定部により前記第２のアクセス差数が前記第１の閾値を超えないと判定された場合に、受信した検索応答が含む第１のアクセス差数のうちの最小数を送信した下位のサーバ装置にアクセスするための接続情報を含めた前記変更要求に対する変更応答を、前記変更要求を送信した下位のサーバ装置に対して送信する変更応答送信部と
を備えることを特徴とするサーバ装置。
【請求項７】
前記管理部にて管理するアクセス数の合計数が第２の閾値を超えた場合に、前記管理部にて管理するコンテンツ情報の中からコンテンツ情報を選択する選択部と、
前記選択部により選択されたコンテンツ情報が含むコンテンツの識別情報、アクセス数、並びに、接続情報を含めたサーバ装置の変更要求を、該コンテンツ情報が含む接続情報に対応する上位のサーバ装置に対して送信する変更要求送信部と、
上位のサーバ装置から前記検索要求を受信した場合に、該検索要求が含むアクセス数と、前記管理部にて管理する上位及び下位のサーバ装置とのアクセスに係るコンテンツの識別情報に対応するアクセス数との和をアクセス合計数として算出し、該アクセス合計数が第３の閾値を超えるか否かを判定する第２の判定部と、
前記第２の判定部により前記アクセス合計数が前記第３の閾値を超えないと判定された場合に、前記検索要求が含むアクセス数と、前記管理部にて管理するアクセス数との正の差を第１のアクセス差数として算出し、該第１のアクセス差数を含めた検索応答を、前記検索要求を送信した上位のサーバ装置に対して送信する検索応答送信部と
を備えることを特徴とする請求項６に記載のサーバ装置。
【請求項８】
コンテンツの配信のために木構造を構成するように接続され、前記木構造において上位に接続される上位のサーバ装置又は下位に接続される下位のサーバ装置を含む他のサーバ装置とアクセスするサーバ装置群の１つであるサーバ装置が実行するサーバ装置切り替え方法であって、
コンテンツ毎にコンテンツの識別情報、該コンテンツの配信のための自装置と、他のサーバ装置との単位時間当たりのアクセス数、並びに、該他のサーバ装置と接続するための接続情報を対応付けたコンテンツ情報を管理部にて管理し、
下位のサーバ装置から、該下位のサーバ装置のアクセス負荷軽減のために該下位のサーバ装置に代って前記木構造においてコンテンツの配信を中継するサーバ装置の切り替えに係るサーバ装置の変更要求を受信した場合に、受信した変更要求が含むコンテンツの識別情報、該コンテンツの配信のために該下位のサーバ装置が他のサーバ装置とアクセスする単位時間当たりのアクセス数を含めた検索要求を、前記木構造において自装置の下位に接続される該変更要求を送信した下位のサーバ装置とは異なる他の下位のサーバ装置に対して送信し、
下位のサーバ装置から前記検索要求に対する検索応答を受信した場合に、少なくとも１つの検索応答が不可を示す情報でないとき、該検索応答が含む第１のアクセス差数のうちの最小数及び前記管理部にて管理する上位及び下位のサーバ装置とのアクセスに係るコンテンツの識別情報に対応するアクセス数の合計値と、前記変更要求が含むアクセス数との差を第２のアクセス差数として算出し、該第２のアクセス差数が第１の閾値を超えるか否かを判定し、
前記第２のアクセス差数が前記第１の閾値を超えないと判定した場合に、受信した検索応答が含む第１のアクセス差数のうちの最小数を送信した下位のサーバ装置にアクセスするための接続情報を含めた前記変更要求に対する変更応答を、前記変更要求を送信した下位のサーバ装置に対して送信する
ことを特徴とするサーバ装置切り替え方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、階層的に他のサーバと接続されたサーバの負荷に応じて、接続を切り替えるサーバ接続切り替えプログラム、キャッシュサーバ、コンテンツサーバおよびサーバ接続切り替え方法に関する。
【背景技術】
【０００２】
従来より、ネットワーク中に存在する複数のキャッシュサーバが論理的に多段に接続し、階層的な木構造を形成することで、コンテンツサーバとキャッシュサーバの負荷分散する技術が知られている。このような技術に対して、異なる管理元のサーバ間でもサーバが互いにネゴシエーションすることで接続を切り替え、負荷の偏りを解消する手法が開示されている（特許文献１参照）。
【０００３】
具体的には、接続を切り替える処理として、負荷が高いキャッシュサーバが、切り替え先を検索する際に、切り替え先候補のサーバの負荷が閾値以下であれば、そのサーバを切り替え先として選択し、切り替えを行う。
【０００４】
【特許文献１】特開２００７−２５７３５７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、上記した特許文献１の技術では、切り替え先候補のサーバの負荷が閾値以下であれば、そのサーバを切り替え先として選択するので、図２０に示すように、切り替え先の上位に位置するサーバに対する負荷の増加量については全く考慮されていないという課題があった。
【０００６】
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、切り替え先を検索する際、切り替え先となるサーバが接続可否を判断するだけではなく、その上位サーバへの負荷増加分を最小化するように最適な接続先を選択することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するため、このプログラムは、負荷が所定の閾値を超えた場合に、切り替え対象となるコンテンツの情報、アクセス頻度、および現在の上位サーバへの負荷と切り替えを行った場合の上位サーバへの負荷との差分を示す負荷差分情報を含んだ接続先切り替え要求を上位サーバに対して送信する接続先切り替え要求送信手順と、前記接続先切り替え要求送信手順によって送信された接続先切り替え要求を受信した場合に、前記負荷差分を計算する旨の要求であり、前記コンテンツの情報および前記アクセス頻度を含んだ接続先検索要求を下位サーバに対して送信する接続先検索要求送信手順と、前記接続先検索要求送信手順によって送信された前記接続先検索要求を受信した場合に、要求に含まれる前記コンテンツの情報および前記アクセス頻度を用いて、新たにサーバからの要求を受け付けた場合の負荷を計算し、接続可否を判定する下位接続可否判定手順と、前記下位接続可否判定手順によって接続可であると判定された場合には、上位サーバへの負荷差分を計算し、当該負荷差分を含んだ応答を前記接続先検索要求を送信した上位サーバに送信する応答送信手順と、前記応答送信手順によって前記応答を受信した場合に、当該応答したサーバの中から負荷差分が最も小さいサーバを切り替え先とし、前記接続切り替え要求に含まれる負荷差分を用いて切り替え発生後の自身に対する負荷を計算して接続可否を判定する上位接続可否判定手順と、前記上位接続可否判定手順によって接続可であると判定された場合には、前記接続先切り替え要求を送信したサーバに対して、前記切り替え先を通知する切り替え先通知手順と、をコンピュータに実行させることを要件とする。
【発明の効果】
【０００８】
開示の装置は、切り替え先となるサーバの上位サーバへの負荷増加分を考慮して接続切り替えを行うので、上記した主たる特徴のごとく、切り替え先を検索する際、切り替え先となるサーバが接続可否を判断するだけではなく、その上位サーバへの負荷増加分を最小化するように最適な接続先を選択することが可能である。
【発明を実施するための最良の形態】
【０００９】
以下に添付図面を参照して、この発明に係るサーバ接続切り替えプログラム、キャッシュサーバ、コンテンツサーバおよびサーバ接続切り替え方法の実施例を詳細に説明する。
【実施例１】
【００１０】
以下の実施例では、実施例１に係るキャッシュサーバ切替システムの概要および特徴、キャッシュサーバ切替システムの構成および処理の流れを順に説明し、最後に実施例１による効果を説明する。
【００１１】
［実施例１に係るキャッシュサーバ切替システムの概要および特徴］
まず最初に、図１を用いて、実施例１に係るキャッシュサーバ切替システムの概要および特徴を説明する。図１は、実施例１に係るキャッシュサーバ切替システムの概要および特徴を説明するための図である。
【００１２】
実施例１のキャッシュサーバ切替システム１では、階層的に他のサーバと接続されたサーバの負荷に応じて、接続を切り替えることを概要とする。そして、このキャッシュサーバ切替システム１では、上位サーバへの負荷増加分を最小化するように最適な接続先を選択する点に主たる特徴がある。
【００１３】
この主たる特徴について具体的に説明すると、図１に示すように、キャッシュサーバ切替システム１のキャッシュサーバＡは、負荷の値（例えば、単位時間当たりのアクセス数や単位時間当たりのアクセスコンテンツサイズ）が所定の閾値を超えた場合に、切り替え対象となるコンテンツの情報、アクセス頻度（更新周期）、および現在の上位サーバへの負荷と切り替えを行った場合の上位サーバへの負荷との差分を示す負荷差分情報（参照負荷差分）を含んだ接続先切り替え要求を上位サーバ（図１の例では、コンテンツサーバＳ）に対して送信する（図１の（１）参照）。
【００１４】
そして、コンテンツサーバＳは、送信された接続先切り替え要求を受信した場合に、負荷差分を計算する旨の要求であり、コンテンツの情報およびアクセス頻度を含んだ接続先検索要求を下位サーバ（図１の例では、キャッシュサーバＢ、Ｃ）に対して送信する（図１の（２）参照）。
【００１５】
続いて、キャッシュサーバＢ、Ｃは、送信された接続先検索要求を受信した場合に、要求に含まれるコンテンツの情報およびアクセス頻度を用いて、新たにサーバからの要求を受け付けた場合の負荷を計算し、接続可否を判定する。その結果、接続可であると判定したキャッシュサーバＣは、上位サーバへの負荷差分を計算し、当該負荷差分を含んだ応答をコンテンツサーバＳに送信する（図１の（３）参照）。
【００１６】
そして、コンテンツサーバＳは、応答を受信した場合に、当該応答したサーバの中から負荷差分が最も小さいサーバを切り替え先とし、接続切り替え要求に含まれる負荷差分を用いて切り替え発生後の自身に対する負荷を計算して接続可否を判定する。その結果、コンテンツサーバＳは、接続可であると判定された場合には、接続先切り替え要求を送信したキャッシュサーバＡに対して、切り替え先を通知する（図１の（４）参照）。
【００１７】
その後、キャッシュサーバＡは、切り替え対象（図１の例では、キャッシュサーバＥ）に対して切り替え先（図１の例では、キャッシュサーバＣ）を通知する（図１の（５）参照）。そして、キャッシュサーバＥは、接続要求をキャッシュサーバＣに対して行う（図１の（６）参照）。
【００１８】
このように、キャッシュサーバ切替システムは、切り替え先となるサーバの上位サーバへの負荷増加分を考慮して接続切り替えを行うので、上記した主たる特徴のごとく、切り替え先を検索する際、切り替え先となるサーバが接続可否を判断するだけではなく、その上位サーバへの負荷増加分を最小化するように最適な接続先を選択することが可能である。
【００１９】
［キャッシュサーバ切替システムの構成］
次に、図２を用いて、図１に示したキャッシュサーバ切替システム１の構成を説明する。図２は、実施例１に係るキャッシュサーバ切替システムのネットワーク構成例を示すブロック図である。
【００２０】
図２に例示すように、このキャッシュサーバ切替システム１は、コンテンツサーバ２０、複数のキャッシュサーバ１０、複数のクライアントがそれぞれ階層的に接続されて成るネットワークである。図２の例を用いて具体的に説明すると、コンテンツサーバ２０に直接接続されたキャッシュサーバ１０は、下位のサーバとしてキャッシュサーバ１０Ａ１〜１０Ａｎに接続される。そして、キャッシュサーバ１０は、上位のコンテンツサーバ２０に対して所定のアクセス頻度（例えば、１０秒に１回）で、アクセスするとともに、下位のキャッシュサーバ１０Ａ１〜１０Ａｎから所定のアクセス頻度（例えば、１０秒に１回）で、アクセスを受け付ける。
【００２１】
［キャッシュサーバの構成］
次に、図３〜図５を用いて、図１に示したキャッシュサーバ１０の構成を説明する。図３は、実施例１に係るキャッシュサーバ１０の構成を示すブロック図であり、図４は、接続情報管理ＤＢが保持する情報を説明するための図であり、図５は、被接続情報管理ＤＢが保持する情報を説明するための図である。
【００２２】
図３に示すように、キャッシュサーバ１０は、通信管理部１１、メッセージ制御部１２、接続情報管理部１３、接続情報管理ＤＢ（データベース）１３ａ、被接続情報管理部１４、被接続情報管理ＤＢ１４ａ、負荷情報管理部１５、負荷差分計算部１６を備え、バス等を介して他の装置と接続される。以下にこれらの各部の処理を説明する。
【００２３】
通信管理部１１は、他の装置からコンテンツサーバ宛の通信を受信し、メッセージ制御部１２に渡す。また、通信管理部１１は、メッセージ制御部１２からの要求を受け、メッセージを送信する。メッセージ制御部１２は、各機能からの要求を契機にそれぞれの場合で必要な処理を決定し、各機能の処理を振り分ける。
【００２４】
接続情報管理部１３は、各コンテンツに対する接続先の情報、およびアクセス頻度を管理する。接続情報管理部１３は、これらの情報を接続情報管理データベース１３ａに記憶させる。
【００２５】
接続情報管理ＤＢ１３ａは、各コンテンツに対する接続先の情報とアクセス頻度とが対応付けられた接続サーバ情報テーブルを記憶する。具体的には、接続情報管理ＤＢ１３ａは、図４に例示するように、接続サーバ情報テーブルには、コンテンツの情報と、そのコンテンツの取得先である上位のキャッシュサーバの情報、およびコンテンツのアクセス頻度が保持される。
【００２６】
被接続情報管理部１４は、下位に接続するキャッシュサーバから参照されている各コンテンツの情報を管理する。被接続情報管理部１４は、これらの情報を被接続情報管理データベース１４ａに記憶させる。
【００２７】
被接続情報管理ＤＢ１４ａは、下位に接続するキャッシュサーバと参照されている各コンテンツの情報とが対応付けられた被接続キャッシュサーバ情報テーブルを記憶する。具体的には、被接続情報管理ＤＢ１４ａは、図５に例示するように、被接続キャッシュサーバ情報テーブルには、コンテンツの情報と、そのコンテンツの取得元であるキャッシュサーバの情報、およびコンテンツのアクセス頻度が保持される。
【００２８】
負荷情報管理部１５は、接続情報管理部１３、および被接続情報管理部１４から接続情報管理ＤＢ１３ａおよび被接続情報管理ＤＢ１４ａの情報を取得し、負荷値を計算し、予め設定された閾値を越えると下位キャッシュサーバの接続先切り替えを行う。
【００２９】
負荷差分計算部１６は、接続先切り替え要求を送信する際、または接続先検索要求を受信した際に切り替え発生後の上位サーバに対する負荷差分を計算する。また、負荷差分計算部１６は、切り替え先検索要求に対する応答の中から負荷差分が最小となる下位サーバを判定し、また、自身の負荷状態から接続可否を判定する。また、負荷差分計算部１６は、サーバの情報、または接続不可能であることを通知する。
【００３０】
［コンテンツサーバの構成］
次に、図６を用いて、図１に示したコンテンツサーバ２０の構成を説明する。図６は、実施例１に係るコンテンツサーバの構成を示すブロック図である。同図に示すように、キャッシュサーバ１０と比較して、コンテンツサーバ２０は、接続情報管理部および負荷差分計算部を備えていない。つまり、コンテンツサーバ２０は、最上位のサーバであり、接続される上位サーバがないからである。以下にキャッシュサーバ１０と異なる各部についてのみ処理を説明し、キャッシュサーバ１０と同様の処理を行う各部については説明を省略する。
【００３１】
負荷情報管理部２４は、切り替え先検索要求に対する応答の中から負荷差分が最小となる下位サーバを判定し、また、自身の負荷状態から接続可否を判定する。また、負荷情報管理部２４は、サーバの情報、または接続不可能であることを通知する。
【００３２】
［キャッシュサーバ切替システム１による処理］
次に、図７〜図１９を用いて、実施例１に係るキャッシュサーバ切替システム１による処理を説明する。図７〜図９は、実施例１に係るキャッシュサーバ切替システムによる全体の処理の流れを示すシーケンス図である。図７は、接続先サーバ切り替え処理において、切り替え可能である場合の処理の流れを説明し、図８は、接続先サーバ切り替え処理において、切り替え先が全て接続不可である場合の処理の流れを説明し、図９は、接続先サーバ切り替え処理において、上位サーバが切り替え不可である場合の処理の流れを説明する。なお、図７に示すキャッシュサーバＡ、Ｂ１〜Ｂｎは、コンテンツサーバに対して直接接続される下位のキャッシュサーバであり、キャッシュサーバＣは、キャッシュサーバＡに対して直接接続される下位のキャッシュサーバである。
【００３３】
同図に示すように、キャッシュサーバＡは、負荷が閾値を超えると（ステップＳ１０１）、下位に接続するキャッシュサーバの中から切り替えの対象となるサーバを選択し（ステップＳ１０２）、コンテンツ情報、アクセス頻度および負荷差分の情報を用いて接続先切り替え要求を接続している上位のコンテンツサーバＳに対して送信する（ステップＳ１０３）。なお、より詳しい処理については図７を用いて後に説明する。
【００３４】
そして、コンテンツサーバＳは、コンテンツ情報、アクセス頻度を用いて接続先検索要求を接続している下位のキャッシュサーバＢ１〜Ｂｎに対して送信処理（後に図１１を用いて詳述）を行う（ステップＳ１０４）。
【００３５】
続いて、キャッシュサーバＢ１〜Ｂｎは、接続先検索要求に含まれるコンテンツ情報とアクセス頻度を用いて接続可否判断を行い、接続可である場合は切り替え後の負荷差分を計算（後に図１２を用いて詳述）し（ステップＳ１０５）、接続可であることと負荷差分の値をコンテンツサーバＳに対して応答として返す（ステップＳ１０６）。
【００３６】
その後、コンテンツサーバＳは、接続先検索要求に対する応答を全て受信する、または、要求送信後、一定時間が経過すると、切り替え先の判定処理（後に図１５および図１６を用いて詳述）を行う。また、コンテンツサーバＳは、受信した接続先切り替え要求に含まれる負荷差分と切り替え先として選択されたサーバからの応答に含まれる負荷差分を用いて自身の切り替え可否判断を行う（ステップＳ１０７）。
【００３７】
その結果、コンテンツサーバＳは、切り替え可である場合は切り替え可であることと、切り替え先を含む応答をキャッシュサーバＡに対して送信する（ステップＳ１０８）。接続先切り替え要求に対する応答を受信した下位キャッシュサーバＡは、応答に含まれる接続先の情報をステップＳ１０２で選択された切り替え対象のサーバ（図の例では、キャッシュサーバＣ）へ通知する（ステップＳ１０９）。
【００３８】
そして、キャッシュサーバＡの下位に接続するキャッシュサーバＣは、通知された切り替え先に対してコンテンツの情報とアクセス頻度を用いて接続要求を行う（ステップＳ１１０）。続いて、切り替え先のキャッシュサーバＢ１は、接続要求に対する応答をキャッシュサーバＣに対して送信する（ステップＳ１１１）。接続要求に対する応答を受信したキャッシュサーバＣは、切り替え先通知に対する応答をキャッシュサーバＡに対して送信する（ステップＳ１１２）。
【００３９】
次に、図８を用いて、接続先サーバ切り替え処理において、切り替え先が全て接続不可である場合の処理の流れを説明する。なお、図７と同様の処理については説明を省略する。同図に示すように、キャッシュサーバＢ１〜Ｂｎは、図７と同様に、接続先検索要求に含まれるコンテンツ情報とアクセス頻度を用いて接続可否判断を行った結果（ステップＳ２０５）、接続不可である場合には、接続不可であることをコンテンツサーバＳに対して応答として返す（ステップＳ２０６）。
【００４０】
コンテンツサーバＳは、接続先検索要求に対する応答を全て受信する、または要求送信後、一定時間が経過すると、切り替え先の判定を行う（ステップＳ２０７）。その結果、全ての応答が接続不可であった場合には、切り替え不可であることを応答としてキャッシュサーバＡに対して送信する（ステップＳ２０８）。
【００４１】
そして、接続先切り替え要求に対して切り替え不可である応答を受信した下位キャッシュサーバＡは、異なるキャッシュサーバ、異なるコンテンツを切り替えの対象として再度接続切り替え要求を行う（ステップＳ２０９）。
【００４２】
次に、図９を用いて、接続先サーバ切り替え処理において、上位サーバが切り替え不可である場合の処理の流れを説明する。なお、図７と同様の処理については説明を省略する。同図に示すように、キャッシュサーバＢ１〜Ｂｎは、図７と同様に、接続先検索要求に含まれるコンテンツ情報とアクセス頻度を用いて接続可否判断を行った結果、接続可である場合には切り替え後の負荷差分を計算し（ステップＳ３０５）、接続可であることと負荷差分の値をコンテンツサーバＳに対して応答として返す（ステップＳ３０６）。
【００４３】
そして、コンテンツサーバＳは、接続先検索要求に対する応答を全て受信する、または要求送信後、一定時間が経過すると、切り替え先の判定を行う。また、コンテンツサーバＳは、受信した接続先切り替え要求に含まれる負荷差分と切り替え先として選択されたサーバからの応答に含まれる負荷差分を用いて自身の切り替え可否判断を行い（ステップＳ３０７）、切り替え不可である場合はその応答をキャッシュサーバＡに対して送信する（ステップＳ３０８）。
【００４４】
続いて、接続先切り替え要求に対して切り替え不可である応答を受信した下位キャッシュサーバＡは、異なるキャッシュサーバ、異なるコンテンツを切り替えの対象として再度接続切り替え要求を行う（ステップＳ３０９）。
【００４５】
次に、図１０を用いてキャッシュサーバの負荷が閾値を超えた場合のキャッシュサーバの処理の流れを説明する。図１０は、キャッシュサーバの負荷が閾値を超えた場合のキャッシュサーバの処理の流れを示すシーケンス図である。なお、図１０で説明するキャッシュサーバの処理は、図７におけるキャッシュサーバＡのステップＳ１０１、１０２の処理に対応する。
【００４６】
同図に示すように、コンテンツ参照要求を受信すると（ステップＳ４０１）、通信管理部はそのメッセージをメッセージ制御部に渡す（ステップＳ４０２）。そして、メッセージ制御部は、被接続情報管理機能にコンテンツ参照の情報を渡す（ステップＳ４０３）。
【００４７】
続いて、被接続情報管理部は、被接続情報管理ＤＢを更新し（ステップＳ４０４）、メッセージ制御部に対して応答を返す（ステップＳ４０５）。そして、メッセージ制御部は、負荷情報管理部に対して負荷値を計算するように指示する（ステップＳ４０７）。
【００４８】
その後、負荷情報管理部は、接続情報管理部および被接続情報管理部から各データベースの情報を取得する（ステップＳ４０８、４０９）。また、負荷情報管理部は、負荷値を計算し、計算負荷値が予め設定された閾値を超えているか判定し（ステップＳ４１０）、超えている場合には、メッセージ制御部に対して接続先切り替え要求を送信するように指示する（ステップＳ４１１）。
【００４９】
そして、メッセージ制御部は、被接続情報管理部から切り替え対象となるコンテンツの情報、アクセス頻度を取得し（ステップＳ４１２〜４１４）、接続情報管理部から上位に接続するサーバの情報を取得する（ステップＳ４１５〜４１７）。
【００５０】
続いて、メッセージ制御部は、切り替え対象となるコンテンツの情報、アクセス頻度の情報を負荷差分計算部に渡し、負荷差分の計算を指示する（ステップＳ４１８）。そして、負荷差分計算部は、負荷差分を計算し（ステップＳ４１９）、その値をメッセージ制御部に返す（ステップＳ４２０）。そして、メッセージ制御部は、通信管理部に対してコンテンツの情報、アクセス頻度、負荷差分を含む接続先切り替え要求を渡す。その後、通信管理部は、接続先切り替え要求を上位のサーバに対して送信する（ステップＳ４２１）。
【００５１】
次に、図１１を用いて下位キャッシュサーバからの接続先切り替え要求受信時のキャッシュサーバの処理の流れを説明する。図１１は、下位キャッシュサーバからの接続先切り替え要求受信時のキャッシュサーバ（または、コンテンツサーバ）の処理の流れを示すシーケンス図である。なお、図１１で説明するキャッシュサーバ（または、コンテンツサーバ）の処理は、図７におけるコンテンツサーバＳのステップＳ１０３、１０４の処理に対応する。
【００５２】
同図に示すように、接続先切り替え要求を受信すると、通信管理部は、そのメッセージをメッセージ制御部に渡す（ステップＳ５０１）。そして、メッセージ制御部は、要求に含まれる負荷差分を負荷情報管理部に渡す（ステップＳ５０２）。
【００５３】
さらに、メッセージ制御部は、被接続情報管理部から下位に接続するキャッシュサーバの情報を取得し（ステップＳ５０３〜５０５）、それぞれに対するコンテンツの情報、アクセス頻度を含む接続先検索要求を通信管理部に渡す（ステップＳ５０６）。その後、通信管理部は、下位に接続するキャッシュサーバに対して接続先検索要求を送信する。
【００５４】
次に、図１２および図１３を用いて接続する上位のサーバからの接続先検索要求受信時のキャッシュサーバの処理の流れを説明する。図１２は、接続する上位のサーバからの接続先検索要求受信時のキャッシュサーバの処理の流れを示すシーケンス図であり、図１３は、キャッシュサーバ接続可否判断処理および負荷差分算出処理を説明するフローチャートである。なお、図１２で説明するキャッシュサーバの処理は、図７におけるキャッシュサーバＢ１〜ＢｎのステップＳ１０４〜１０６の処理に対応する。
【００５５】
同図に示すように、接続先検索要求を受信すると、通信管理部は、そのメッセージをメッセージ制御部に渡す（ステップＳ６０１）。そして、メッセージ制御部は、要求に含まれるコンテンツの情報とアクセス頻度を負荷情報管理機能に渡し、接続可否の判断を指示する（ステップＳ６０２）。
【００５６】
負荷情報管理部は、接続情報管理部、および被接続情報管理部から各データベースの情報を取得し（ステップＳ６０３〜６０５）、メッセージ制御部から受信したコンテンツの情報とアクセス頻度を用いて接続可否の判断（後に図１３を用いて詳述）を行い（ステップＳ６０６）、判断の結果をメッセージ制御部に渡す（ステップＳ６０７）。
【００５７】
接続可否の結果を受信したメッセージ制御部は、接続可である場合に接続先検索要求に含まれるコンテンツの情報とアクセス頻度を負荷差分計算機能部に渡し、負荷差分の計算を指示する（ステップＳ６０８）。なお、接続不可である場合には接続負荷である情報を含む応答を通信管理部に渡す。
【００５８】
そして、負荷差分計算部は、コンテンツの情報を用いて接続情報管理部から情報を取得し（ステップＳ６０９〜６１１）、負荷差分を計算し（ステップＳ６１２）、その値をメッセージ制御部に渡す（ステップＳ６１３）。続いて、メッセージ制御部は、接続可である情報と負荷差分の値を含む応答を通信管理部へ渡す（ステップＳ６１４）。その後、通信管理部は、応答を接続先検索要求の送信元へ送信する。
【００５９】
ここで、図１３を用いて、上記ステップＳ６０６のキャッシュサーバ接続可否判断処理および負荷差分算出処理を説明する。同図に示すように、キャッシュサーバ１０は、接続先検索要求に含まれるアクセス頻度ａと既存の負荷ｂを用いて切り替え発生後の負荷値（ａ＋ｂ）を算出する（ステップＳ７０１）。
【００６０】
そして、キャッシュサーバ１０は、算出された値（ａ＋ｂ）が閾値を超えていないか判定する（ステップＳ７０２）。その結果、キャッシュサーバは、負荷値が閾値を超えている場合には（ステップＳ７０２否定）、切り替え不可となり、応答としてＮＧが返ることになる（ステップＳ７０３）。
【００６１】
一方、キャッシュサーバ１０は、負荷値が閾値を超えていない場合には（ステップＳ７０２肯定）、接続先検索要求に含まれるコンテンツ情報から該当するコンテンツを保持しているかを判定する（ステップＳ７０４）。キャッシュサーバ１０は、保持していない場合には（ステップＳ７０４否定）、負荷差分がａとなり、応答としてＯＫと負荷差分の値ａが返ることになる（ステップＳ７０５）。一方、キャッシュサーバ１０は、コンテンツを保持している場合には（ステップＳ７０４肯定）、負荷差分の算出を行う（ステップＳ７０６）。
【００６２】
具体的には、キャッシュサーバ１０は、負荷差分を算出するために、コンテンツに対する既存の負荷（アクセス頻度）と新たに接続する負荷（アクセス頻度）を比べ、大きい値から既存の負荷の値を引く。この値が負荷差分となる。つまり、既存の負荷と新たに接続する負荷が同じ場合、負荷差分は０となる。
【００６３】
次に、図１４を用いて接続先検索要求に対する応答受信時のキャッシュサーバ（または、コンテンツサーバ）の処理の流れを説明する。図１４は、接続先検索要求に対する応答受信時のキャッシュサーバ（または、コンテンツサーバ）の処理の流れを示すシーケンス図である。なお、図１４で説明するキャッシュサーバ（または、コンテンツサーバ）の処理は、図７におけるコンテンツサーバＳのステップＳ１０６の処理に対応する。
【００６４】
接続先検索要求に対する応答を受信すると、通信管理部は、そのメッセージをメッセージ制御部に渡す（ステップＳ８０１）。そして、メッセージ制御部は、応答に含まれる切り替え可否の結果と負荷差分の値（切り替え可の場合のみ）を負荷情報管理部に渡す（ステップＳ８０２）。
【００６５】
次に、図１５〜図１７を用いて、切り替え先判定時のキャッシュサーバ（または、コンテンツサーバ）の処理の流れを説明する。図１５は、切り替え先判定時のキャッシュサーバ（または、コンテンツサーバ）の動作例（接続先検索要求に対する応答を全て受信した場合）を示すシーケンス図であり、図１６は、切り替え先判定時のキャッシュサーバ（または、コンテンツサーバ）の動作例（接続先検索要求送信後、設定されたタイムアウト時間が経過した場合）を示すシーケンス図であり、図１７は、接続先選択処理および接続切り替え可否判定処理を説明するフローチャートである。なお、図１５および図１６で説明するキャッシュサーバ（または、コンテンツサーバ）の処理は、図７におけるコンテンツサーバＳのステップＳ１０７の処理に対応する。
【００６６】
図１５に示すように、接続先検索要求に対する応答を受信すると、通信管理部は、そのメッセージをメッセージ制御機能に渡す（ステップＳ９０１）。メッセージ制御部は、応答に含まれる切り替え可否の結果と負荷差分の値（切り替え可の場合のみ）と応答を全て受信したことを負荷情報管理部へ渡す（ステップＳ９０２）。
【００６７】
負荷情報管理部は、受信済みの負荷差分の値から最小のものを判定し、その値と接続先切り替え要求受信時に取得していた負荷差分の値を用いて自身の切り替え可否を判定処理（後に、図１７を用いて詳述）を行う（ステップＳ９０３）。判定の結果、負荷情報管理部は、切り替え可である場合は切り替え先のサーバ情報をメッセージ制御機能へ渡す（ステップＳ９０４）。なお、負荷情報管理部は、切り替え不可である場合は不可である情報をメッセージ制御機能へ渡す。
【００６８】
そして、メッセージ制御部は、判定の結果を通信管理機能へ渡す（ステップＳ９０５）。続いて、通信管理部は、接続先切り替え要求の送信元へ判定の結果を含む応答を送信する。
【００６９】
また、図１６を用いて、接続先検索要求送信後、接続先検索要求に対する応答を全て受信せずに、設定されたタイムアウト時間が経過した場合を説明する。図１６に示すように、キャッシュサーバ（または、コンテンツサーバ）は、接続先検索要求を送信後、設定されたタイムアウト時間が経過すると（ステップＳ１００１）、メッセージ制御部が負荷情報管理部に対して切り替え先の判定を指示する（ステップＳ１００２）。その後、図１５と同様に、負荷差分の値を用いて自身の切り替え可否を判定し、判定の結果を通信管理機能へ渡す（ステップＳ１００３〜１００４）。
【００７０】
ここで、図１７を用いて、上記ステップＳ９０３、１００３の接続先（切り替え先）選択処理および接続切り替え可否判定処理を説明する。同図に示すように、キャッシュサーバ（または、コンテンツサーバ）は、接続先検索要求の応答に含まれる負荷差分値（ここではａとｂ）を用いて負荷差分値が最小となる切り替え先（ここではサーバＣ、負荷差分値ａ）を判定する（ステップＳ１１０１）。
【００７１】
そして、キャッシュサーバ（または、コンテンツサーバ）は、判定された負荷差分値（ａ）と既存の負荷値（ｓ）、および接続先切り替え要求に含まれていた負荷差分閾値（ｔ）を用いて切り替え後の自身の負荷値を算出する（ステップＳ１１０２）。続いて、キャッシュサーバ（または、コンテンツサーバ）は、算出された負荷値が閾値を超えていないか判定し（ステップＳ１１０３）、算出された負荷値が閾値を超えていない場合には（ステップＳ１１０３肯定）、応答としてＯＫと切り替え先のサーバ情報（ｃ）が返ることになる（ステップＳ１１０５）。一方、キャッシュサーバ（または、コンテンツサーバ）は、算出された負荷値が閾値を超えている場合には（ステップＳ１１０３否定）、応答としてＮＧが返る（ステップＳ１１０４）。
【００７２】
次に、図１８を用いて、接続先切り替え要求に対する応答受信時のキャッシュサーバの処理の流れを説明する。図１８は、接続先切り替え要求に対する応答受信時のキャッシュサーバの処理の流れを示すシーケンス図である。なお、図１８で説明するキャッシュサーバの処理は、図７におけるキャッシュサーバＡのステップＳ１０９の処理に対応する。
【００７３】
コンテンツサーバ（または上位のキャッシュサーバ）から接続先切り替え要求に対する応答を受信すると、通信管理部は、そのメッセージをメッセージ制御部に渡す（ステップＳ１２０１）。そして、メッセージ制御部は、応答に含まれるサーバの情報を含む接続先通知と切り替え対象となっているコンテンツの情報と下位のキャッシュサーバの情報を通信管理部に渡す（ステップＳ１２０２）。その後、通信管理部は、接続先通知を切り替え対象となっている下位のキャッシュサーバへ送信する。
【００７４】
次に、図１９を用いて、接続先通知受信時のキャッシュサーバの処理の流れを説明する。図１９は、接続先通知受信時のキャッシュサーバの処理の流れを示すシーケンス図である。なお、図１９で説明するキャッシュサーバの処理は、図７におけるキャッシュサーバＣのステップＳ１１０の処理に対応する。
【００７５】
上位のキャッシュサーバから接続先通知を受信すると、通信管理部は、そのメッセージをメッセージ制御部に渡す（ステップＳ１３０１）。そして、メッセージ制御部は、通知に含まれるコンテンツの情報と接続先サーバの情報を接続情報管理部に渡す（ステップＳ１３０２）。そして、接続情報管理部は、受け取った情報から接続情報管理ＤＢを更新し（ステップＳ１３０３）、コンテンツの情報とアクセス頻度の情報を含む応答をメッセージ制御部に返す（ステップＳ１３０４）。
【００７６】
メッセージ制御部は、コンテンツの情報とアクセス頻度の情報を含む接続要求と接続先のサーバの情報を通信管理部へ渡す（ステップＳ１３０５）。そして、通信管理部は、接続先のサーバへ接続要求を送信する。
【００７７】
[実施例１の効果]
上述してきたように、キャッシュサーバ切替システムは、切り替え先となるサーバの上位サーバへの負荷増加分を考慮して接続切り替えを行うので、上記した主たる特徴のごとく、切り替え先を検索する際、切り替え先となるサーバが接続可否を判断するだけではなく、その上位サーバへの負荷増加分を最小化するように最適な接続先を選択することが可能である。
【実施例２】
【００７８】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では実施例２として本発明に含まれる他の実施例を説明する。
【００７９】
（１）システム構成等
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００８０】
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００８１】
（２）プログラム
なお、本実施例で説明したサーバ接続切り替え方法は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【産業上の利用可能性】
【００８２】
以上のように、本発明に係るサーバ接続切り替えプログラム、キャッシュサーバ、コンテンツサーバおよびサーバ接続切り替え方法は、階層的に他のサーバと接続されたサーバの負荷に応じて、接続を切り替える場合に有用であり、特に、上位サーバへの負荷増加分を最小化するように最適な接続先を選択することに適する。
【図面の簡単な説明】
【００８３】
【図１】実施例１に係るキャッシュサーバ切替システムの概要および特徴を説明するための図である。
【図２】実施例１に係るキャッシュサーバ切替システムのネットワーク構成例を示すブロック図である。
【図３】実施例１に係るキャッシュサーバの構成を示すブロック図である。
【図４】接続情報管理ＤＢが保持する情報を説明するための図である。
【図５】被接続情報管理ＤＢが保持する情報を説明するための図である。
【図６】実施例１に係るコンテンツサーバの構成を示すブロック図である。
【図７】実施例１に係るキャッシュサーバ切替システムによる全体の処理の流れを示すシーケンス図である。
【図８】実施例１に係るキャッシュサーバ切替システムによる全体の処理の流れを示すシーケンス図である。
【図９】実施例１に係るキャッシュサーバ切替システムによる全体の処理の流れを示すシーケンス図である。
【図１０】キャッシュサーバの負荷が閾値を超えた場合のキャッシュサーバの処理の流れを示すシーケンス図である。
【図１１】下位キャッシュサーバからの接続先切り替え要求受信時のキャッシュサーバ（または、コンテンツサーバ）の処理の流れを示すシーケンス図である。
【図１２】接続する上位のサーバからの接続先検索要求受信時のキャッシュサーバの処理の流れを示すシーケンス図である。
【図１３】キャッシュサーバ接続可否判断処理および負荷差分算出処理を説明するフローチャートである。
【図１４】接続先検索要求に対する応答受信時のキャッシュサーバ（または、コンテンツサーバ）の処理の流れを示すシーケンス図である。
【図１５】切り替え先判定時のキャッシュサーバ（または、コンテンツサーバ）の動作例（接続先検索要求に対する応答を全て受信した場合）を示すシーケンス図である。
【図１６】切り替え先判定時のキャッシュサーバ（または、コンテンツサーバ）の動作例（接続先検索要求送信後、設定されたタイムアウト時間が経過した場合）を示すシーケンス図である。
【図１７】接続先選択処理および接続切り替え可否判定処理を説明するフローチャートである。
【図１８】接続先切り替え要求に対する応答受信時のキャッシュサーバの処理の流れを示すシーケンス図である。
【図１９】接続先通知受信時のキャッシュサーバの処理の流れを示すシーケンス図である。
【図２０】従来技術を説明するための図である。
【符号の説明】
【００８４】
１０  キャッシュサーバ
１１  通信管理部
１２  メッセージ制御部
１３  接続情報管理部
１３ａ  接続情報管理ＤＢ
１４  被接続情報管理部
１４ａ  被接続情報管理ＤＢ
１５  負荷情報管理部
１６  負荷差分計算部
２０  コンテンツサーバ
【図１】
0005169259.tif 000002
【図２】
0005169259.tif 000003
【図３】
0005169259.tif 000004
【図４】
0005169259.tif 000005
【図５】
0005169259.tif 000006
【図６】
0005169259.tif 000007
【図７】
0005169259.tif 000008
【図８】
0005169259.tif 000009
【図９】
0005169259.tif 000010
【図１０】
0005169259.tif 000011
【図１１】
0005169259.tif 000012
【図１２】
0005169259.tif 000013
【図１３】
0005169259.tif 000014
【図１４】
0005169259.tif 000015
【図１５】
0005169259.tif 000016
【図１６】
0005169259.tif 000017
【図１７】
0005169259.tif 000018
【図１８】
0005169259.tif 000019
【図１９】
0005169259.tif 000020
【図２０】
0005169259.tif 000021