(57)【要約】【課題】  クライアントとサーバとの間に中継装置が存在する通信システムにおいて，クライアントが取得するコンテンツのリンク情報を書き換えて広域負荷分散を実現する。【解決手段】  クライアントがコンテンツ取得を要求したサーバからの応答に，中継装置が修正プログラムの取得先を示す算譜位置を付加し，クライアントに応答する。なお，算譜位置は応答元サーバと中継装置を識別するタグをパラメータとして含む。クライアントは，中継装置を経由した前記サーバからの応答を受信すると，前記算譜位置が示す宛先（管理サーバ）に，前記パラメータを含む修正プログラム取得要求を送信する。管理サーバは該要求を受信すると，該要求が含む前記パラメータに基づいて，コンテンツのリンクを書き換える修正プログラムを生成し，クライアントに応答する。クライアントは取得した修正プログラムに基づき，コンテンツのリンク先を書き換える。【選択図】  図１
2012234236.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークで接続された，端末とコンテンツサーバと中継装置と管理サーバとを備える通信システムであって，
前記中継装置が，
前記端末から前記コンテンツサーバへのコンテンツ要求を中継する通信中継部と，
前記コンテンツサーバからの，前記コンテンツ要求に対する応答コンテンツに，前記応答コンテンツに含まれる情報を修正する修正プログラムの取得先の位置とパラメータを含む算譜位置を付加する算譜位置付加部と，を備え，
前記端末が，
前記コンテンツ要求を送信するコンテンツ要求部と，
前記算譜位置が示す前記修正プログラムの取得先に，前記算譜位置が示すパラメータを含む算譜要求を送信し，前記修正プログラムを取得する算譜要求部と，
取得した前記プログラムを実行する算譜実行部と，を備え，
前記管理サーバが，前記算譜要求を受信し，前記算譜要求が含むパラメータに従った前記修正プログラムを生成し，前記算譜要求の送信元に応答する算譜応答部を備える
ことを特徴とする通信システム。
【請求項２】
請求項１に記載の通信システムにおいて，
前記管理サーバの前記算譜応答部が，前記算譜要求に応答する前記修正プログラムを，前記算譜要求が含む前記パラメータと，前記サーバの通信負荷情報と，前記コンテンツサーバのアドレス情報と，に基づいて生成する
ことを特徴とする通信システム。
【請求項３】
請求項２に記載の通信システムにおいて，
前記中継装置が，
前記コンテンツサーバの通信負荷をサーバ負荷として計測するサーバ負荷監視部と，
前記サーバ負荷情報を，管理サーバへ送信する負荷情報通信部と，
前記コンテンツサーバのアドレスを，ＶＩＰ情報として，管理サーバへ送信するＶＩＰ情報通信部と，を備え，
前記管理サーバが，
前記サーバ負荷情報を取得する負荷情報取得部と，
前記ＶＩＰ情報を取得するＶＩＰ情報取得部と，を，備える
ことを特徴とする通信システム。
【請求項４】
請求項１から３のいずれか一に記載の通信システムにおいて，
前記中継装置が，自中継装置の通信負荷の程度を示す中継装置負荷指数を計測する中継装置負荷監視部を備え，
前記算譜位置付加部は，前記中継装置負荷監視部が計測した前記中継装置負荷指数が既定の値を超える場合，その結果に基づき付加する前記算譜位置の内容を変更し，
管理サーバの前記算譜応答部は，該変更された前記算譜位置に基づいて，前記修正プログラムの内容を生成する
ことを特徴とする通信システム。
【請求項５】
請求項１から３のいずれか一に記載の通信システムにおいて，
前記中継装置が，さらに，算譜位置付加抑止部を備え，
前記中継装置の前記サーバ負荷監視部が，前記コンテンツサーバの負荷をサーバ負荷指数として計測し，
前記算譜位置付加抑止部は，該サーバ負荷指数が既定の値を超えない場合，前記コンテンツサーバからの応答に前記算譜位置を付加することを抑止する
ことを特徴とする通信システム。
【請求項６】
請求項５に記載の通信システムにおいて，
前記中継装置の前記算譜位置付加抑止部は，さらに，
自中継装置の通信負荷の程度を示す中継装置負荷指数を計測し，
該中継装置負荷指数と前記サーバ負荷指数のうち大きい値が，前記既定の値を超えない場合，前記コンテンツ応答に前記算譜位置を付加することを抑止する
ことを特徴とする通信システム。
【請求項７】
請求項１から６のいずれか一に記載の通信システムにおいて，
前記管理サーバを複数備え，
前記中継装置が，
前記複数の管理サーバ各々の宛先を記憶する管理サーバリストと，
前記算譜位置付加機能が前記算譜位置に含める前記修正プログラムの取得先を，該管理サーバリスト内から，負荷を分散するように選択する管理サーバ決定部と，を備える
ことを特徴とする通信システム。
【請求項８】
ネットワークで接続された，端末とコンテンツサーバと中継装置とを備える通信システムであって，
前記中継装置が，
前記端末から前記コンテンツサーバへのコンテンツ要求を中継する通信中継部と，
前記コンテンツサーバからの応答コンテンツに，前記コンテンツサーバの識別子に従って，前記応答コンテンツに含まれる情報を修正する修正プログラムを生成し，該生成した前記修正プログラムを付加する算譜付加部と，を備え，
前記端末が，
前記コンテンツ要求を送信するコンテンツ要求部と，
前記応答コンテンツに含まれる前記修正プログラムを実行するプログラムを実行する算譜実行部と，を備える
ことを特徴とする通信システム。
【請求項９】
請求項８に記載の通信システムにおいて，
前記中継装置を複数備え，
各々の前記中継装置において，
前記負荷情報通信部が，他の中継装置のサーバ負荷監視部が計測した前記コンテンツサーバの負荷情報を，前記他の中継装置との通信により取得し，
前記ＶＩＰ情報通信部が，前記他の中継装置に接続される前記コンテンツサーバのアドレス情報を，前記他の中継装置との通信により取得し，
前記中継装置の前記算譜付加部が，取得した該コンテンツサーバの負荷情報とアドレス情報に基づいて前記修正プログラムを生成し，該前記修正プログラムを付加する
ことを特徴とする通信システム。
【請求項１０】
請求項８または９に記載の通信システムにおいて，
前記中継装置の前記算譜付加部が，生成した前記修正プログラムを前記応答コンテンツに付加するのではなく，前記応答コンテンツに対して前記修正プログラムを実行し，その結果を前記応答コンテンツとして前記端末に送信する
ことを特徴とする通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
開示される主題は，クライアントからネットワーク経由で要求されたコンテンツを要求元に配信するシステムにおける負荷分散方法及び同システムに関する。
【背景技術】
【０００２】
近年，クライアントからネットワーク経由で要求されたコンテンツを配信するＷｅｂシステム等のサーバにおいて，スマートフォンやリッチコンテンツの普及により通信量が増大し，単一のサーバで要求を処理することが困難になっている。また，災害発生時にもサービスを継続可能にするため，地理的に離れた複数台のサーバでサービスを提供することが望まれる。
【０００３】
これらの課題を解決するため，インターネットなどのネットワーク上における広域負荷分散の技術が存在する。従来，広域負荷分散の技術としてＤＮＳサーバを利用して実現するＤＮＳラウンドロビンが知られている（例えば特許文献１参照）。ＤＮＳラウンドロビンにおいては，サーバのホスト名に対して複数のＩＰアドレスをＤＮＳサーバに登録し，クライアントは複数のＩＰアドレスから宛先とするＩＰアドレスをラウンドロビンにより決定する。
【０００４】
しかし，ＤＮＳラウンドロビンでは，サーバの負荷状況を考慮しない，また，クライアントがＤＮＳ応答の内容をキャッシュするためサーバ構成を変更した場合に負荷分散への反映が遅い，といった課題が存在する。
【０００５】
ＤＮＳラウンドロビンの課題を解決する広域負荷分散技術としては，Ｗｅｂシステムにおいてクライアントに返信するＨＴＭＬ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）ファイル中のリンク情報を書き換えることで，所望のＷｅｂサーバの負荷を低減させる方法も考えられる（例えば特許文献２参照）。
【０００６】
例えば，クライアントがＷｅｂサーバＡにＨＴＭＬファイルの取得要求を行うと，ＷｅｂサーバＡはクライアント端末に返信するＨＴＭＬファイル中に記述されたコンテンツのリンク情報を他のＷｅｂサーバＢに書き換えてから，このＨＴＭＬファイルをクライアントに返信する。クライアントは取得したコンテンツのリンクを経由して新たなコンテンツを取得する際，書き換えられたリンク情報を参照するため，ＷｅｂサーバＢ宛てに要求を送信する。このように，クライアントに応答するコンテンツが含むリンク情報をＷｅｂサーバが書き換えることで，ＷｅｂサーバＡへの接続回数が減り，ＷｅｂサーバＡの負荷を低減することが可能になる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００４−２６０３３２号公報（段落［００１３］）
【特許文献２】特開２００９−２３７８３５号公報（段落［０００９］，及び，図５）
【特許文献３】米国特許出願公開第２００９／０３００１０３号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところで図２に示すように，Ｗｅｂシステムなどを提供する一般的なデータセンターなどでは，セキュリティや運用管理の観点から，クライアントからの要求をサーバに中継する中継装置（リバースプロクシ等）をクライアントとサーバとの間に設置し，各サーバにはプライベートＩＰアドレスを割り当て，中継装置が複数の仮想ＩＰアドレスでクライアントからの要求を受信してサーバに要求を中継する。
【０００９】
そのため，上記リンク情報を書き換える方式では，サーバＡ宛てであるリンク情報をサーバＡ´宛てに書き換えようとしても，サーバＡ´宛てに中継される中継装置の仮想ＩＰアドレスがわからないため，サーバにおけるリンク情報書き換え方式による負荷分散を適用することは困難である。
【００１０】
また，サーバによるリンク情報書き換えには，サーバに独自の機能が必要となるため，既存のＷｅｂシステムへ適用することは難しい。
【課題を解決するための手段】
【００１１】
本明細書では，上記問題点にかんがみた，既存システムに容易に適用可能な，中継装置がサーバの前段に存在する構成においてリンク情報書き換えによる負荷分散方法，および，負荷分散システムが開示される。
【００１２】
開示される通信システムは，コンテンツを提供するコンテンツサーバとクライアントと中継装置がネットワークを介して接続されるシステムにおいて，新たに，中継装置の仮想ＩＰアドレスの情報と，中継装置に接続されるサーバの負荷情報を，中継装置と通信して定期的に取得し，記憶する管理サーバを備えることを一つの特徴とする。
【００１３】
中継装置は，クライアントの要求に対するコンテンツサーバからの応答コンテンツを受信すると，該応答コンテンツに含まれるリンク情報を書き換えるための修正プログラムの取得先を示す算譜（コンピュータに対する処理命令の記述。プログラムと同意）位置を，該応答コンテンツに付加し，要求元クライアントに送信する。なお，該算譜位置は，応答元サーバと中継装置を識別するタグをパラメータとして含む。
【００１４】
クライアントは，中継装置を経由した前記サーバからの応答コンテンツを受信すると，応答コンテンツに付加された算譜位置が示す宛先（管理サーバ）宛てに，前記パラメータを含む修正プログラム取得要求を送信する。
【００１５】
管理サーバは該修正プログラム要求を受信すると，該修正プログラム要求が含む前記パラメータと，管理サーバが記憶する中継装置の仮想ＩＰアドレスの情報と，サーバの負荷情報とに基づいて，応答コンテンツに含まれるリンク情報を書き換える修正プログラムを生成し，クライアントに応答する。
【００１６】
クライアントは取得した修正プログラムに基づき，応答コンテンツに含まれるリンク情報を書き換える。
【発明の効果】
【００１７】
開示に基づき，サーバの前段に中継装置を備えるシステム構成の場合でも，サーバに独自機能を追加することなく，サーバの負荷状況に応じた負荷分散を実現できる。
【図面の簡単な説明】
【００１８】
【図１】実施例１の通信システムの一構成例である。
【図２】クライアント，中継装置，サーバの接続形態の構成図の一例である。
【図３】クライアント，中継装置，サーバ，管理サーバとして使用する情報処理装置の構成図の一例である。
【図４】管理サーバが記憶する中継装置ＶＩＰ情報と，中継装置付加情報の構成図の一例である。
【図５】中継装置が記憶する，識別子情報と，サーバ付加情報と，ＶＩＰ情報の構成図の一例である。
【図６】サーバと中継装置とクライアントと間で通信するコンテンツ要求とコンテンツ応答の構成図の一例である。
【図７】クライアントと管理サーバ間で通信する算譜要求と算譜応答の構成図の一例である。
【図８】管理サーバと中継装置との間で通信する負荷情報要求，負荷情報応答の構成図の一例である。
【図９】管理サーバと中継装置との間で通信するＶＩＰ情報要求，ＶＩＰ情報応答の構成図の一例である。
【図１０】実施例１の通信システムにおいて，クライアントが，サーバからコンテンツを取得し，コンテンツのリンク情報を書き換える通信シーケンスの一例である。
【図１１】管理サーバが中継装置から負荷情報を取得する通信シーケンスの一例である。
【図１２】管理サーバが中継装置からＶＩＰ情報を取得する通信シーケンスの一例である。
【図１３】中継装置の算譜位置付加機能御が応答コンテンツに算譜を付加するフローチャートの一例である。
【図１４】管理サーバの算譜応答機能がプログラムを生成するフローチャートの一例である。
【図１５】クライアントが管理サーバから取得したプログラムに従いリンク情報を書き換えるフローチャートの一例である。
【図１６】実施例２の通信システムの一構成例である。
【図１７】実施例３の通信システムの一構成例である。
【図１８】実施例４の通信システムの一構成例である。
【図１９】実施例５の通信システムの一構成例である。
【図２０】実施例２において，管理サーバの算譜応答機能がプログラムを生成するフローチャートの一例である。
【図２１】実施例５において，中継装置がクライアントに送信するコンテンツの一例である。
【発明を実施するための形態】
【００１９】
以下，図面を参照して，実施の形態を説明する。
【００２０】
なお，以下の各実施例ではクライアントがサーバからコンテンツを取得するプロトコルとしてＨＴＴＰ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）を使用する場合について説明するが，その他のプロトコルであってもよい。
【００２１】
さらに，以下の各実施例では，各機能を，物理的に異なるコンテンツサーバと中継装置と管理サーバが備える場合について説明するが，各機能を，同じ一つの装置が備えてもよい。
【実施例１】
【００２２】
図３は後述する本実施形態のクライアント１００，中継装置２００，管理サーバ４００を実現する電子計算機の物理構成を示した図である。本実施形態の電子計算機は，プログラムを実行し，以下の各処理機能を実現するプロセッサＨ２０１と，実行するプログラムやデータを一時的に保持するメモリ装置Ｈ２０２と，外部からの指示や情報を入力するための入力装置Ｈ２０３と，プログラムの実体，指示，情報等を格納し，データの記憶手段として使用されるディスク装置Ｈ２０４と，外部装置とのデータのやり取りを制御する通信制御装置Ｈ２０５と，装置内部でデータのやり取りをおこなうためのバスなどの内部通信線Ｈ２０６と，電子計算機の内部と外部装置とのデータのやり取りするための外部通信回線Ｈ２０７を備える。
【００２３】
上記プログラムは予め，電子計算機内のメモリ装置Ｈ２０２またはディスク装置Ｈ２０４に格納されていても良いし，必要なときに，上記電子計算機が利用可能な，着脱可能な記憶媒体から，または通信媒体（ネットワーク，または，ネットワークを伝播する搬送波またはデジタル信号）を介して他の装置から，導入されてもよい。
【００２４】
また，以下の各処理機能の処理内容は，ディスク装置Ｈ２０４に格納されているプログラムを，プロセッサＨ２０１が読み出して実行することにより，具現化されるものである
図１に示すように，本実施形態の通信システムは，ネットワークを介して接続される，中継装置２００とコンテンツを提供する1台以上のコンテンツサーバ（単にサーバという）３００〜３００−Ｍを含んで構成されるサーバシステム５００と，サーバシステム５００からコンテンツを取得するクライアント１００と，管理サーバ４００とを含んで構成される。サーバシステム５００は複数存在し（〜５００−Ｎ），全てのサーバシステムはサーバシステム５００と同様にネットワークを介してクライアント１００と管理サーバ４００と接続される。クライアント１００は複数台存在しても良い。クライアント１００と管理サーバ４００とサーバシステム５００との間にはルーターなど一般的な通信中継装置が存在しても良い。
【００２５】
クライアント１００は，例えば，コンテンツ要求機能１０１と算譜実行機能１０２と算譜要求機能１０３を備えるＷｅｂブラウザとして動作する。
【００２６】
コンテンツ要求機能１０１は，コンテンツ要求１０−１を送信し，応答コンテンツ２０−２を受信する。コンテンツを取得する通信プロトコルには例えばＨＴＴＰ，コンテンツとしては例えばＨＴＭＬファイルが考えられる。
【００２７】
算譜実行機能１０２は後述の算譜要求機能１０３が取得した修正プログラムを実行し，サーバ３００から取得した応答コンテンツが含む，他のコンテンツへのリンク情報を書き換える。
【００２８】
算譜要求機能１０３は，コンテンツ要求機能１０１が取得した応答コンテンツから，中継装置２００の算譜位置付加機能２０２が応答コンテンツ２０−２に付加した算譜位置を取得し，該算譜位置が示す宛先（例えば管理サーバ４００）宛てに，算譜要求３０を送信し，応答される算譜応答４０を受信する。
【００２９】
中継装置２００は，通信中継機能２０１と，算譜位置付加機能２０２と，サーバ負荷監視機能２０３と，負荷情報通信機能２０４と，ＶＩＰ情報通信機能２０５と，識別子情報Ｄ３０と，サーバ負荷情報Ｄ４０と，ＶＩＰ情報Ｄ５０を備える。
【００３０】
通信中継機能２０１は，中継装置２００が備える仮想ＩＰアドレスにてクライアント１００からコンテンツ要求１０−１を受信し，受信した仮想ＩＰアドレスに基づいて要求１０−１を転送するサーバを決定する。転送先のサーバを決定後，通信中継機能２０１は該サーバを宛先としてコンテンツ要求１０−２を送信する（以下，本実施例ではサーバ３００を転送先サーバとする）。
【００３１】
仮想ＩＰアドレスと転送先とするサーバの組はＶＩＰ（Ｖｉｒｔｕａｌ  ＩＰ  ａｄｄｒｅｓｓ）情報Ｄ５０として事前に設定する。仮想ＩＰアドレスにより要求を受信し，転送先サーバを決定する技術は公知である。
【００３２】
また，通信中継機能２０１は，サーバ３００からの応答コンテンツ２０−１を受信し，中継装置２００の算譜位置付加機能２０２が応答コンテンツ２０−１を基に作成する応答コンテンツ２０−２を，コンテンツ要求元クライアント１００に送信する。
【００３３】
算譜位置付加機能２０２は，通信中継機能２０１がサーバ３００から受信した応答コンテンツ２０−１に対して，該コンテンツが含むリンク情報を書き換えるための修正プログラムの取得先（例えば管理サーバ４００のＵＲＬ）を含む算譜位置を付加して，応答コンテンツ２０−２を生成する。算譜位置はパラメータとして中継装置２００とサーバ３００とを識別できる中継装置識別子とサーバ識別子を含む。なお，修正プログラムの取得先は事前に設定し，記憶する。
【００３４】
サーバ負荷監視機能２０３は，中継装置２００に接続されるサーバ３００〜３００−Ｍの負荷情報を定期的に取得し，サーバ負荷情報Ｄ３０に記憶する。負荷情報Ｄ３０は，サーバの識別子に加え，例えばサーバが応答するコンテンツの平均応答時間や，サーバの確立済みＴＣＰコネクション数などを含む。サーバの平均応答時間や確立済みＴＣＰコネクション数を取得する技術は公知である。
【００３５】
負荷情報通信機能２０４は，サーバ負荷監視機能２０４が記憶したサーバ負荷情報Ｄ４０の情報を負荷情報応答５０として管理サーバ４００へ，ネットワークを介して定期的に送信する。負荷情報応答５０の送信において，負荷情報応答５０は例えばＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）で記述し，ＨＴＴＰなどのプロトコルにより通信する。
【００３６】
負荷情報応答５０を送信する通信は，中継装置２００から開始しても良いし，管理サーバ４００から開始しても良い。
【００３７】
ＶＩＰ情報通信機能２０５は，中継装置２００が備えるＶＩＰ情報Ｄ５０の情報をＶＩＰ情報応答６０として管理サーバ４００へ，ネットワークを介して送信する。ＶＩＰ情報応答６０の送信において，ＩＰアドレスとポート番号は例えばＸＭＬで記述し，ＨＴＴＰなどのプロトコルにより通信する。ＶＩＰ情報応答６０の送信は，外部操作によりＶＩＰ情報に変更が発生した際に実行しても良いし，定期的に実行しても良い。ＶＩＰ情報応答６０を送信する通信は，中継装置２００から開始しても良いし，管理サーバ４００から開始しても良い。
【００３８】
サーバ３００は，例えば，コンテンツ応答機能３０１を備えるＷｅｂサーバとして動作する。
【００３９】
コンテンツ応答機能３０１は，コンテンツ要求１０−２を受信して，対応するコンテンツ２０−１を応答する。
【００４０】
サーバ３００は一般的なＷｅｂサーバなどであり，サーバ３００を構成する機能は，全て公知の技術である。
【００４１】
管理サーバ４００は，算譜応答機能４０１と，負荷情報取得機能４０２と，ＶＩＰ情報取得機能４０３を備える。
【００４２】
算譜応答機能４０１は，クライアント１００から算譜要求３０を受信すると，算譜要求３０がパラメータとして含む中継装置識別子Ａ３とサーバ識別子Ａ４と，管理サーバ４００が記憶する中継装置ＶＩＰ情報Ｄ１０と中継装置負荷情報Ｄ２０，とに基づいて，コンテンツのリンク情報を書き換える修正プログラムを生成し，算譜応答４０として応答する。
【００４３】
負荷情報取得機能４０２は，中継装置２００の負荷情報通信機能２０４から負荷情報応答５０を受信し，該負荷情報応答５０を基にサーバ毎の負荷指数を計算し，中継装置負荷情報Ｄ２０に記憶，更新する。負荷指数は，例えば負荷情報応答５０がサーバの平均応答時間と確立済みＴＣＰコネクション数を含む場合，予め定めた定数α，βを使用して，下記の式により計算する。
負荷指数  ＝（平均応答時間×α）＋（セッション数×β）    …式１
ＶＩＰ情報取得機能４０３は，中継装置２００のＶＩＰ情報通信機能２０５からＶＩＰ情報応答６０を受信し，中継装置ＶＩＰ情報Ｄ１０に記憶する。
【００４４】
また，ＶＩＰ情報取得機能４０３は，ＶＩＰ情報応答６０が含むＩＰアドレスをホスト名に変換し，中継装置ＶＩＰ情報Ｄ１０に該ホスト名も記憶する。ＩＰアドレスをホスト名に変換する技術は公知であり，例えばＤＮＳ（Ｄｏｍａｉｎ  Ｎａｍｅ  Ｓｙｓｔｅｍ）サーバに問い合わせてホスト名を取得する。
【００４５】
図４は，管理サーバ４００が記憶する中継装置ＶＩＰ情報Ｄ１０，中継装置負荷情報Ｄ２０の一例である。
【００４６】
中継装置ＶＩＰ情報Ｄ１０は，管理サーバ４００のＶＩＰ情報取得機能４０３が中継装置２００のＶＩＰ情報通信機能２０５から取得したＶＩＰ情報応答６０の情報を，中継装置識別子Ｄ１１，サーバ識別子Ｄ１２，仮想ＩＰアドレスＤ１３として記憶する。仮想ＩＰアドレスＤ１３は，中継装置２００のＤ５２に加え，ＶＩＰ情報取得機能４０３が仮想ＩＰアドレスから変換したホスト名も記憶する。
【００４７】
図５は，中継装置２００が記憶する識別子情報Ｄ３０，サーバ負荷情報Ｄ４０，ＶＩＰ情報Ｄ５０の一例である。
【００４８】
識別子情報Ｄ３０は，中継装置４００を一意に識別する識別子Ｄ３１と，中継装置に接続されるサーバ３００〜３００−Ｍを一意に識別するための情報Ｄ３２を記憶する。例えば，中継装置識別子Ｄ３１は一意な値を手動で設定しても良いし，装置毎に一意であるＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレス情報を使用しても良い。サーバを識別する情報Ｄ３２は，例えばサーバのＩＰアドレスＤ３３に対して一意なサーバ識別子Ｄ３４を割り当てる。なお，図２におけるサーバＡとサーバＡ´のようにクライアントからの要求を分散するサーバ群には等しいサーバ識別子Ｄ３４を設定する。
【００４９】
サーバ負荷情報Ｄ４０は，サーバ負荷監視機能２０３が取得したサーバ毎の負荷情報を記憶する。例えば，サーバ識別子Ｄ４１に加え，接続済みＴＣＰセッション数Ｄ４２，平均応答時間Ｄ４０を備える。サーバ識別子Ｄ４１には，識別子情報Ｄ３０で設定したサーバ識別子Ｄ３４の値を使用する。
【００５０】
ＶＩＰ情報Ｄ５０は，中継装置２００の通信中継機能２０１が仮想ＩＰアドレスで受信した要求をどのサーバに転送するかを決定するための情報であり，中継装置が要求を受信する仮想ＩＰアドレスＤ５１と，該要求を転送するサーバのＩＰアドレスＤ５２を記憶する。
【００５１】
図６は，クライアント１００，中継装置２００，サーバ３００間で通信するコンテンツ要求，応答コンテンツの一例である。
【００５２】
コンテンツ要求１０−１は，クライアント１００のコンテンツ要求機能１０１がコンテンツの取得を要求するために送信する要求である。例えば，ＨＴＴＰ通信におけるＨＴＴＰリクエストである。
【００５３】
コンテンツ要求１０−２は，中継装置２００の通信中継機能２０１がクライアント１００から受信したコンテンツ要求１０−１を基に生成し，サーバ３００に送信する要求である。コンテンツ要求１０−１に，ＨＴＴＰのホストヘッダーフィールドのように仮想ＩＰアドレスのホスト名が含まれる場合，通信中継機能２０１は該ホスト名をサーバ３００のホスト名に変更する。なお，本技術は公知である。
【００５４】
応答コンテンツ２０−１は，サーバ３００のコンテンツ応答機能３０１がコンテンツ要求１０−２を受けて中継装置に送信する応答である。応答コンテンツ２０−１は，他のコンテンツの位置を示すリンク情報Ａ１を備える。リンク情報は，例えばＨＴＭＬコンテンツにおいてはアンカータグ内にＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｃｅ  Ｌｏｃａｔｅｒ）を用いて記述される。
【００５５】
応答コンテンツ２０−２は，サーバ３００から受信した応答コンテンツ１０−１に対し，中継装置２００の算譜位置付加機能２０２が，算譜位置Ａ２を付加したものであり，通信中継機能２０１がコンテンツ要求元クライアント１００に送信する応答である。算譜位置Ａ２は，中継装置２００を識別する中継装置識別子Ａ３と，応答コンテンツ元のサーバ３００を識別するサーバ識別子Ａ４を含む。算譜位置Ａ２は，例えばＨＴＭＬコンテンツにおいてはスクリプトタグのＳＲＣ属性値として記述し，中継装置識別子Ａ３とサーバ識別子Ａ４は該属性値のＣＧＩパラメータとして記述する。
【００５６】
図７は，クライアント１００と管理サーバ間で通信する算譜要求，算譜応答の一例である。
【００５７】
算譜要求３０は，クライアント１００のコンテンツ要求機能１０１が取得した応答コンテンツ２０−２に含まれる算譜位置Ａ２が示す宛先（例えば管理サーバ４００とする）に，クライアント１００の算譜要求機能１０３が送信する要求である。なお，算譜要求３０は，応答コンテンツ２０−２の算譜位置Ａ２がパラメータとして含んでいた中継装置識別子Ａ３とサーバ識別子Ａ４の情報を備える。例えば，算譜要求３０がＨＴＴＰリクエストである場合，リクエストＵＲＬのＣＧＩパラメータとして中継装置識別子Ａ３とサーバ識別子Ａ４を備える。
【００５８】
算譜応答４０は，管理サーバ４００の算譜応答機能４０１がクライアント１００から算譜要求３０を受信し，算譜要求３０がパラメータとして含む中継装置識別子Ａ３，サーバ識別子Ａ４と，管理サーバ４００が記憶する中継装置ＶＩＰ情報Ｄ１０と中継装置負荷情報Ｄ２０とに基づいて生成し，クライアントに送信する応答である。該算譜応答４０は，コンテンツが含むリンク情報の文字列を別の文字列に変換する修正プログラムを含む。なお，図７の算譜応答４０は，該修正プログラムをＪａｖａＳｃｒｉｐｔ（登録商標）で記述した例である。
【００５９】
図８は，中継装置２００と管理サーバ４００間で通信する負荷情報要求，負荷情報応答の一例である。なお，本実施例では管理サーバ４００から要求を送信するプル型通信の例を示すが，中継装置２００から情報を通知するプッシュ型通信でも良い。
【００６０】
負荷情報要求５５は，管理サーバ４００の負荷情報取得機能４０２が中継装置２００の負荷情報通信機能２０４に送信し，負荷情報Ｄ４０を要求する。
【００６１】
負荷情報応答５０は，中継装置２００の負荷情報通信機能２０４が，負荷情報要求５５に対して送信する応答であり，中継装置識別子５１と，該中継装置に接続される各サーバのサーバ負荷情報Ｄ４０の情報を負荷情報５２として含む（５１）。
【００６２】
図９は，中継装置２００と管理サーバ４００間で通信するＶＩＰ情報要求，ＶＩＰ情報応答の一例である。なお，本実施例では管理サーバ４００から要求を送信するプル型通信の例を示すが，中継装置２００から情報を通知するプッシュ型通信でも良い。
【００６３】
ＶＩＰ情報要求６５は，管理サーバ４００のＶＩＰ情報取得機能４０３が中継装置２００のＶＩＰ情報通信機能２０に送信し，ＶＩＰ情報Ｄ５０を要求する。
【００６４】
ＶＩＰ情報応答６０は，中継装置２００のＶＩＰ情報通信機能２０５が，ＶＩＰ情報要求６５に対して送信する応答であり，中継装置識別子６１と，該中継装置に接続される各サーバのサーバ識別子Ｄ３４と対応する仮想ＩＰアドレスＤ５１を含んで構成されるＶＩＰ情報６２を含む。
【００６５】
図１０は，サーバ３００からコンテンツを取得するクライアントが，リンク情報の書き換えによりサーバ３００−１からコンテンツを取得する際の通信シーケンスの一例を示す。本シーケンスでは，クライアント１００としてＷｅｂブラウザ，サーバ３００としてＷｅｂサーバ，取得するコンテンツとしてＨＴＭＬファイル，通信プロトコルとしてＨＴＴＰを使用する例を挙げるが，それ以外であっても良い。
【００６６】
はじめにユーザが，クライアント１００（Ｗｅｂブラウザ）が表示するサーバ３００のコンテンツへのリンクやブックマークに登録されたサーバ３００のコンテンツをマウスでクリックすると（Ｕ１０），クライアント１００が中継装置２００の備える仮想ＩＰアドレス宛てにコンテンツ要求１０−１を送信する（Ｓ１）。
【００６７】
中継装置２００の通信中継機能２０１が該コンテンツ要求１０−１を受信すると（Ｓ２），通信中継機能２０１はホストヘッダーフィールドなどを適切な値に書き換えて，コンテンツ要求１０−２をサーバ３００宛てに送信する（Ｓ３）。
【００６８】
サーバ３００のコンテンツ応答機能３０１は，該コンテンツ要求１０−２を受信すると，要求内容に応じた応答コンテンツ２０−１を中継装置２００に送信する（Ｓ４）。
【００６９】
中継装置２００の通信中継機能２０１が該応答コンテンツ２０−１を受信すると（Ｓ４），算譜位置付加機能２０２が応答コンテンツ２０−１に算譜位置Ａ２を付加する（Ｓ１００）。通信中継機能２０１は，算譜位置Ａ２が付加された応答コンテンツ２０−２をコンテンツ要求元のクライアント１００に送信する（Ｓ５）。
【００７０】
クライアント１００のコンテンツ要求機能１０１は，応答コンテンツ２０−２を取得すると（Ｓ６），コンテンツを表示するために応答コンテンツ２０−２を解析する。クライアント１００は，応答コンテンツ２０−２の解析において算譜位置Ａ２を検出すると，算譜位置Ａ２が示すＵＲＬに対して，算譜要求３０を送信する（Ｓ７）。
【００７１】
管理サーバ４００の算譜応答機能４０１は，該算譜要求３０を受信すると（Ｓ８），算譜を作成し（Ｓ１２０），算譜応答４０としてクライアントに送信する（Ｓ９）。
【００７２】
クライアントの算譜要求機能１０３が該算譜応答４０を受信すると（Ｓ１０），算譜実行機能１０２が応答コンテンツ２０−２に含まれるリンク情報を，算譜応答４０が含む修正プログラムに従って書き換え（Ｓ１３０），リンク情報を書き換えたコンテンツをユーザに表示する（Ｕ２０）。
【００７３】
ユーザが更なるコンテンツ取得などの目的で，該ページが含む書き換えられたリンクをクリックすると（Ｕ３０），クライアントはコンテンツ要求１０−１を，書き換えられたリンクの宛先（例えば中継装置２００−１の仮想ＩＰアドレスとする）に送信する。中継装置２００−１は該要求を受信し（Ｓ２１），受信した仮想ＩＰアドレスに従い，コンテンツ要求１０−２をサーバ３００−１に送信する。
【００７４】
図１１は，管理サーバ４００が中継装置２００〜２００−Ｎから情報を取得し，中継装置負荷情報Ｄ１０を生成・更新する際の通信シーケンスの一例である。本通信シーケンスは予め定めた一定の間隔で繰り返し実行する。
【００７５】
管理サーバ４００の負荷情報取得機能４０２は，ネットワーク等を介して接続された各中継装置２００〜２００−Ｎに対して，負荷情報要求５５を送信する（Ｓ５１〜Ｓ５１−Ｎ）。中継装置２００〜２００−Ｎの負荷情報通信機能２０４は，負荷情報要求５５を受信すると（Ｓ５２〜Ｓ５２−Ｎ），各中継装置が備えるサーバ負荷情報Ｄ４０を基に，負荷情報応答５０を作成し，管理サーバ４００宛てに送信する（Ｓ５３〜Ｓ５３−Ｎ）。
【００７６】
管理サーバ４００の負荷情報取得機能４０２は，中継装置２００〜２００−Ｎから負荷情報応答５０を受信すると，それらの情報を基に中継装置負荷情報Ｄ２０に追加・更新する。
【００７７】
図１２は，管理サーバ４００が中継装置２００〜２００−Ｎと通信し，中継装置ＶＩＰ情報Ｄ１０を追加，更新する際の通信シーケンスの一例である。
管理サーバ４００のＶＩＰ情報取得機能４０３は，ネットワーク等を介して接続された各中継装置２００〜２００−Ｎに対して，ＶＩＰ情報要求６５を送信する（Ｓ６１〜Ｓ６１−Ｎ）。中継装置２００〜２００−ＮのＶＩＰ情報通信機能２０５は，ＶＩＰ情報要求６５を受信すると（Ｓ６２〜Ｓ６２−Ｎ），各中継装置が備えるＶＩＰ情報Ｄ５０を基に，ＶＩＰ情報応答６０を作成し，管理サーバ４００宛てに送信する（Ｓ６３〜Ｓ６３−Ｎ）。
【００７８】
管理サーバ４００のＶＩＰ情報取得機能４０３は，中継装置２００〜２００−ＮからＶＩＰ情報応答６０を受信すると，それらの情報を基に中継装置ＶＩＰ情報Ｄ１０に追加・更新する。
【００７９】
また，中継装置ＶＩＰ情報Ｄ５０がＩＰアドレスである場合，管理サーバ４００のＶＩＰ情報通信機能は，該ＩＰアドレスに対応するホスト名を取得し（例えばＤＮＳサーバに問い合わせる），該ホスト名を中継装置ＶＩＰ情報Ｄ１０に追加・更新する。
【００８０】
図１３は中継装置２００の算譜位置付加機能２０２が，サーバ３００からの応答コンテンツ２０−１に算譜位置を付加する処理フローの一例である。本フローは図１０のＳ１００の処理に相当する。
【００８１】
算譜位置付加機能２０２は，まず，応答コンテンツ２０−１内で算譜位置を追加するべき位置を検出する（Ｓ１０１）。追加すべき位置は，コンテンツがＨＴＭＬの場合，例えばＨＥＡＤ要素の先頭である。
【００８２】
次に，予め設定された，修正プログラムを取得する宛先を取得する（Ｓ１０２）。宛先は，通信プロトコルがＨＴＴＰの場合，例えばＵＲＬで記述される。
【００８３】
次に，応答元サーバのアドレスから識別子情報Ｄ３２を参照して，サーバ識別子を取得する（Ｓ１０３）。
【００８４】
同様に，識別子情報Ｄ３１から，中継装置自身の中継装置識別子を取得する（Ｓ１０４）。
【００８５】
Ｓ１０２で取得した宛先に，Ｓ１０３，Ｓ１０４で取得したサーバ識別子と中継装置識別子をパラメータとして付加し（コンテンツがＨＴＭＬでは，例えばＣＧＩパラメータとして），応答コンテンツに適応する形式（コンテンツがＨＴＭＬでは，例えばＳＣＲＩＰＴ要素の形式）で算譜位置を生成し，Ｓ１０１で検出した位置に該算譜位置を追加する（Ｓ１０５）。
【００８６】
図１４は管理サーバ４００の算譜応答機能４０１が，算譜応答を生成する処理フローの一例である。本フローは図１０のＳ１２０の処理に相当する。
【００８７】
算譜応答機能４０１は，まず算譜要求３０が含む中継装置識別子Ａ３とサーバ識別子Ａ４を取得する（Ｓ１２１）。
【００８８】
つぎに，中継装置負荷情報Ｄ２０において，取得した該サーバ識別子と同じサーバ識別子Ｄ２２を有し，負荷指数Ｄ２３が最も低い値の中継装置識別子Ｄ２１を宛先中継装置識別子として取得する（Ｓ１２２）。
【００８９】
宛先中継装置識別子を取得後，中継装置ＶＩＰ情報Ｄ１０において，該宛先中継装置識別子と等しい中継装置識別子Ｄ１１と，サーバ識別子Ａ４に等しいサーバ識別子Ｄ１２を有する仮想ＩＰアドレスＤ１３を取得し，該値を文字列ＡＦとする（Ｓ１２３）。また，該当する仮想ＩＰアドレスＤ１３が複数存在する場合はいずれか１つ選択する（例えば最初にあらわれる値）。
【００９０】
次に，中継装置ＶＩＰ情報Ｄ１０において，Ｓ１２１で取得した中継装置識別子Ａ３，サーバ識別子Ａ４と等しい，中継装置識別子Ｄ１１，サーバ識別子Ｄ１２を有する仮想ＩＰアドレスＤ１３を取得し，該値を文字列ＢＦとする。該当する仮想ＩＰアドレスＤ１３が複数存在する場合は，文字列ＢＦ〜ＢＦ−Ｎとする（Ｓ１２４）。
【００９１】
最後に，クライアントが取得した応答コンテンツ２０−２が含むリンクにおいて，文字列ＢＦ〜ＢＦ−Ｎを文字列ＡＦに置換する指示を作成する（Ｓ１２５）。文字列を置換する修正プログラムの作成は公知の技術で実現可能である。
【００９２】
図１５はクライアント１００の算譜実行機能１０２が，管理サーバ４００からの取得した算譜応答４０を実行し，応答コンテンツ２０−２が含むリンクの内容を書き換える処理フローの一例である。本フローは図１０のＳ１４０の処理に相当する。なお，本処理は，管理サーバ４００の算譜応答機能４０１が応答する算譜応答４０の内容に依存する。
【００９３】
クライアント１００の算譜実行機能１０２は，算譜応答４０の内容に従い，応答コンテンツ２０−２が含む全てのリンク情報を検出する（Ｓ１４１）。リンク情報はＨＴＭＬでは例えばＡ要素（アンカー要素）である。
【００９４】
次に，リンク情報を検出した場合（Ｓ１４１でＹＥＳ）検出した前記リンク情報が含むコンテンツ位置にシーケンスＳ１２０の文字列ＢＦ−１〜ＢＦ−Ｎが含まれるかを判断する（Ｓ１４２）。コンテンツ位置とは，ＨＴＭＬでは例えばＡ要素のＨＲＥＦ属性値である。
【００９５】
リンク情報が文字列ＢＦ−１〜ＢＦ−Ｎを含む場合（Ｓ１４２においてＹＥＳ），文字列ＢＦ−１〜ＢＦ−Ｎを，シーケンスＳ１２０の文字列ＡＦに置換する。
【００９６】
以上，本実施例によれば，サーバの前段に中継装置を備える場合でも，サーバに独自機能を追加することなく，クライアントが取得したコンテンツのリンクを負荷の少ないサーバを宛先とするように書き換えることができ，サーバの負荷状況に応じた広域負荷分散を実現できる。
【実施例２】
【００９７】
第２の実施例は，中継装置自身の負荷が高い場合，後段のサーバの負荷に関わらず，他の中継装置を経由するサーバを宛先とするようにコンテンツのリンク情報を書き換える実施形態である。
【００９８】
図１６は，実施例２のシステムの一構成例である。
【００９９】
実施例２の中継装置２２０は，実施例１の中継装置２００に加え，中継装置負荷監視機能２２１を備える。また，算譜位置付加機能２２２は実施例の算譜位置付加機能２０２と異なる。管理サーバ４２０が備える算譜応答機能４２１は，実施例１の管理サーバ４００が備える算譜応答機能４０１と異なる。その他の構成は実施例１の構成と等しい。
【０１００】
中継装置負荷監視機能２２１は，中継装置２２０のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）使用率や，中継装置２２０の接続済みＴＣＰセッション数などを基に中継装置２２０の負荷指数を定期的に計算する。負荷指数は，例えば予め定めた定数α，βを使用して，下記の式により計算する。
負荷指数  ＝（ＣＰＵ使用率×α）＋（セッション数×β）    …式２
中継装置負荷監視機能２２１が計算する負荷指数が予め定めた値を超える場合，算譜位置付加機能２２２は，応答コンテンツに算譜位置を付加する際に（図７におけるＳ１００），算譜位置Ａ２のパラメータとして中継装置識別子Ａ３は含めるが，サーバ識別子Ａ４を含めない。
【０１０１】
管理サーバ４２０の算譜応答機能４２１が，サーバ識別子Ａ４を含まない算譜要求３０を受信した場合の処理フローの一例を図２０のＳ２２０に示す。
【０１０２】
管理サーバ４２０の算譜応答機能４２１は，サーバ識別子Ａ４を含まない算譜要求３０を受信すると，中継装置識別子Ａ３を取得し，サーバ識別子Ａ４を取得しない（Ｓ２２１）。
【０１０３】
次に，中継装置ＶＩＰ情報Ｄ１０において，取得した中継装置識別子Ａ３と等しい中継装置識別子Ｄ１１の仮想ＩＰアドレスＤ１３を取得し，サーバ識別子Ｄ１２毎（１〜Ｍ）に，文字列１−ＢＦ−１〜Ｍ−ＢＦ−Ｎとする（Ｓ２２２）。
【０１０４】
また，中継装置負荷情報Ｄ２０において，取得した中継装置識別子Ａ３と等しい中継装置識別子Ｄ２１を有するサーバ識別子Ｄ２２毎に，負荷指数Ｄ２３の値が最小となるサーバ識別子Ｄ２２と中継装置識別子Ｄ２１との組み合わせを取得する。該組み合わせの中継装置識別子Ｄ２１が取得した中継装置識別子Ａ３と等しい場合は，２番目に値が小さくなる組み合わせを取得する（Ｓ２２３）。
【０１０５】
中継装置ＶＩＰ情報Ｄ１０において，Ｓ２２３で取得したサーバ識別子Ｄ２２と中継装置識別子Ｄ２１の組み合わせが有する仮想ＩＰアドレスＤ１３を１つ選択し，該仮想ＩＰアドレスＤ１３の値を，サーバ識別子Ｄ１３毎（１〜Ｍ）ごとに，文字列１−ＡＦ〜Ｍ−ＡＦとする（Ｓ２２４）。
【０１０６】
最後に，クライアントが取得した応答コンテンツ２０−２が含むリンクにおいて，文字列１−ＢＦ−Ｘ〜Ｍ−ＢＦ−Ｘ（Ｘは任意文字）を，文字列１−ＡＦ〜Ｍ−ＡＦに置換する修正プログラムを作成する（Ｓ１２５）。文字列を置換する修正プログラムの作成は公知の技術で実現可能である。
【０１０７】
なお，算譜応答機能４２１が，サーバ識別子Ａ４と中継装置識別子Ａ３とを共に含む算譜要求３０を受信した場合は，図１０のＳ１２０の処理フローに等しい。
【０１０８】
以上，本実施例によれば，中継装置自身の負荷が高くなった場合においても，クライアントからの要求を，他の中継装置を経由するサーバ宛てとなるようコンテンツのリンクを書き換えることができ，中継装置が処理のボトルネックとなることを防ぐ。
【実施例３】
【０１０９】
第３の実施例は，中継装置またはサーバ装置の負荷が高い場合に，他のサーバへの負荷分散を実施し，通常時は中継装置が応答コンテンツに算譜位置を付加することを抑止し，中継装置，クライアント，管理サーバにおける処理を低減する実施形態である。
【０１１０】
図１７は，実施例３のシステムの一構成例である。
【０１１１】
図１７の中継装置２３０は，実施例１の中継装置２００に加えて，算譜位置付加抑止機能２３１を備える。それ以外の構成は実施例１の構成と等しい。
【０１１２】
中継装置２３０の算譜位置付加抑止機能２３１は，通信中継機能２０１がサーバから応答コンテンツ２０−１を受信すると，サーバ負荷情報Ｄ４０から該サーバの負荷指数Ｌ１を計算する。負荷指数Ｌ１の計算方法としては，例えば実施例１の式１を使用する。
【０１１３】
算譜位置付加抑止機能２３１は，計算した負荷指数Ｌ１が予め定めた値γ以下である場合，算譜位置付加機能２０２がサーバからの応答コンテンツ２０−１に算譜位置を付加することを抑止する。これにより，クライアントが取得するコンテンツ２０−２のリンク情報は書き換えられない。
【０１１４】
負荷指数Ｌ１がγを超える場合は，算譜位置付加抑止機能２３１は算譜位置の付加を抑止せず，中継装置２３０は実施例１の中継装置２００と同様に処理を行う。
【０１１５】
また，算譜位置付加抑止機能２３１は，実施例２の中継装置負荷監視機能２２１と同様に，中継装置２３０の負荷指数を負荷指数Ｌ２として定期的に計測する機能を備え，負荷指数Ｌ１と負荷指数Ｌ２のうち大きい値と定数γを比較する機能を備えても良い。これにより，サーバ３００〜３００−Ｎの負荷は低いが，中継装置２３０の負荷が高い場合にも，算譜位置を付加できる。
【０１１６】
以上，本実施例によれば，中継装置またはサーバの負荷が高くない場合はコンテンツのリンク書き換えを実施しないことにより，不要な処理や通信を抑えることができる。
【実施例４】
【０１１７】
第４の実施例は，管理サーバを複数台設置し，算譜要求先の管理サーバを複数台に分散することで，管理サーバ1台あたりの処理量を低減する実施形態である。
【０１１８】
図１８は，実施例４のシステムの一構成例である。
【０１１９】
図１８の中継装置２４０は，実施例１の中継装置２００に加え，管理サーバ決定機能２４１と，管理サーバリストＤ６０を備える。また，実施例４の構成は，管理サーバ４００が複数台（４００〜４００−Ｌ）存在し，管理サーバ４００と同様に，管理サーバ，クライアント，中継装置とは全て通信ネットワークを介して接続されている。
【０１２０】
管理サーバリストＤ６０は，通信ネットワークを介して接続されている各管理サーバ（４００〜４００−Ｌ）の宛先（ＨＴＴＰでは例えばＵＲＬ）を記憶する。該リストの情報は手動で設定しても良いし，ネットワークを介して管理サーバから通知しても良い。
【０１２１】
管理サーバ決定機能２４１は，算譜位置付加機能２０２が付加する算譜位置が含む修正プログラムの取得先を，管理サーバリスト内から選択し，算譜位置付加機能２０２は，選択された管理サーバの宛先を算譜要求の宛先となるよう算譜位置を生成する。リストから選択する方式は，リストの先頭から順番に選択するラウンドロビン方式でもよいし，その他の負荷分散方式により選択しても良い。
【０１２２】
以上，本実施例によれば，管理サーバの負荷を複数台に分散させることができ，管理サーバがシステムのボトルネックとなることを防ぐことができる。
【０１２３】
また，本実施例は実施例２および/または３と組み合わせることができる。
【実施例５】
【０１２４】
第５の実施形態は，管理サーバを必要とせずに，中継装置自身がコンテンツのリンクを書き換える修正プログラムを生成し，コンテンツに付加してクライアントに応答し，クライアントが該修正プログラムに従いリンクを書き換える実施形態である。
【０１２５】
図１８は，実施例５のシステムの一構成例である。
【０１２６】
図１８の中継装置２５０は，実施例１の中継装置２００に加え，算譜付加機能２５１と，中継装置ＶＩＰ情報Ｄ１０と，中継装置負荷情報Ｄ２０を備える。また，中継装置２５０の負荷情報通信機能２５４と，ＶＩＰ情報通信機能２５５は，実施例１の中継装置２００の負荷情報通信機能２０４と，ＶＩＰ情報通信機能２０５とは異なる。中継装置２５０は，実施例１の中継装置２００の算譜位置付加機能２０２を備えなくても良い。
【０１２７】
クライアント１５０は実施例１の算譜要求機能１０３を備えなくても良い。
【０１２８】
実施例５のシステムは，実施例１の管理サーバ４００を必要としない。また，中継装置２５０〜２５０−Ｎは，各々が通信ネットワークを介して接続される。
【０１２９】
中継装置２５０の負荷情報通信機能２５４とＶＩＰ情報通信機能２５５は，実施例１における負荷情報通信機能２０４とＶＩＰ情報通信機能２０５の機能に加え，実施例１における管理サーバ４００の負荷情報取得機能４０２と，ＶＩＰ情報取得機能４０３と同様の機能を備える。
【０１３０】
負荷情報通信機能２５４は，自身以外の中継装置に負荷情報要求５５を送信し，各中継装置の負荷情報通信機能２５４が応答する負荷情報応答５０を受信し，中継装置負荷情報Ｄ２０に記憶する。
【０１３１】
ＶＩＰ情報通信機能２５５は，自身以外の中継装置にＶＩＰ情報要求６５を送信し，各中継装置のＶＩＰ情報通信機能２５５が応答するＶＩＰ情報応答６０を受信し，中継装置ＶＩＰ情報Ｄ１０に記憶する。
【０１３２】
各中継装置が備える中継装置ＶＩＰ情報Ｄ１０と，中継装置負荷情報Ｄ２０は，実施例１において管理サーバ４００が備える中継装置ＶＩＰ情報Ｄ１０と，中継装置負荷情報Ｄ２０とに等しい。
【０１３３】
算譜付加機能２５１は，実施例１において管理サーバ４００の算譜応答機能４０１が備える機能と同様に，応答コンテンツ元サーバのサーバ識別子と，自身の中継装置識別子と，中継装置ＶＩＰ情報Ｄ１０と，中継装置負荷情報Ｄ２０とを基に，コンテンツのリンク情報を書き換える修正プログラムＡ５０を生成する機能に加え，該修正プログラムＡ５０を応答コンテンツ２０−１に付加し，応答コンテンツ２０−３を生成する機能を備える。中継装置がサーバからの応答コンテンツに修正プログラムを付加する技術は公知である（例えば特許文献３）。
【０１３４】
クライアント１５０のコンテンツ要求機能１０１が応答コンテンツ２０−３を受信すると，算譜実行機能１０２が該応答コンテンツに含まれる修正プログラムＡ５０に従って，該応答コンテンツ２０−３のリンク情報を書き換える。
【０１３５】
また，算譜付加機能２５１は，生成した修正プログラムＡ５０をコンテンツに付加するのではなく，修正プログラムＡ５０に従って，応答コンテンツ２０−１のリンク情報を書き換えて，応答コンテンツ２０−４を生成し，クライアントに応答しても良い。このとき，修正プログラムＡ５０は付加しない。
【０１３６】
図２１に応答コンテンツ２０−３，２０−４を示す。
【０１３７】
以上，本実施例によれば，中継装置がコンテンツのリンクを書き換える修正プログラムを応答コンテンツに付加することで，管理サーバを必要とせずに，コンテンツのリンクを書き換え，クライアントからのサーバへの要求を分散させることができる。
【０１３８】
また，本実施例は実施例２および/または３と組み合わせることができる。
【符号の説明】
【０１３９】
１００：クライアント，１０１：コンテンツ要求機能，１０２：算譜実行機能，１０３：算譜要求機能，２００：中継装置，２０１：通信中継機能，２０２：算譜位置付加機能，２０３：サーバ負荷監視機能，２０４：負荷情報通信機能，２０５：ＶＩＰ情報通信機能，３００：サーバ，３０１：コンテンツ応答機能，４００：管理サーバ，４０１：算譜応答機能，４０２：負荷情報取得機能４０３：ＶＩＰ情報取得機能，５００：サーバシステム，Ｄ１０：中継装置ＶＩＰ情報，Ｄ２０：中継装置負荷情報，Ｄ３０：識別子情報，Ｄ４０：サーバ負荷情報，Ｄ５０：ＶＩＰ情報，Ｄ６０：管理サーバリスト，Ａ１：リンク情報，Ａ２：算譜位置，Ａ３：中継装置識別子，Ａ４：サーバ識別子，Ｈ２０１：プロセッサ，Ｈ２０２：メモリ装置，Ｈ２０３：入出力装置，Ｈ２０４：ディスク装置，Ｈ２０５：通信制御装置，Ｈ２０６：内部通信線，Ｈ２０７：外部通信回線，２２０：中継装置（実施例２），２２１：中継装置負荷監視機能，４２１：算譜応答機能（実施例２），２３０：中継装置（実施例３），２３１：算譜位置付加抑止機能，
２４０：中継装置（実施例４），２４１：管理サーバ決定機能，２５０：中継装置（実施例５），２５４：負荷情報通信機能（実施例５），２５５：ＶＩＰ情報通信（実施例５）
【図１】
2012234236.tif 000003
【図２】
2012234236.tif 000004
【図３】
2012234236.tif 000005
【図４】
2012234236.tif 000006
【図５】
2012234236.tif 000007
【図６】
2012234236.tif 000008
【図７】
2012234236.tif 000009
【図８】
2012234236.tif 000010
【図９】
2012234236.tif 000011
【図１０】
2012234236.tif 000012
【図１１】
2012234236.tif 000013
【図１２】
2012234236.tif 000014
【図１３】
2012234236.tif 000015
【図１４】
2012234236.tif 000016
【図１５】
2012234236.tif 000017
【図１６】
2012234236.tif 000018
【図１７】
2012234236.tif 000019
【図１８】
2012234236.tif 000020
【図１９】
2012234236.tif 000021
【図２０】
2012234236.tif 000022
【図２１】
2012234236.tif 000023