(57)【要約】  本発明のコンテンツ配信装置は、コンテンツの送信を要求する要求メッセージを受信し、要求メッセージの送信主体が、要求したコンテンツを保持して、要求したコンテンツを他の装置に転送する中継装置であれば、当該中継装置に対して要求されたコンテンツを送信し、要求メッセージの送信主体が要求したコンテンツを再生するコンテンツ再生装置であれば、当該コンテンツ再生装置に対して、要求されたコンテンツを過去に送信した中継装置から、当該コンテンツを取得するように指示する。
2012011450.tif 000002
【特許請求の範囲】
【請求項１】
リクエストに応じて、当該リクエストの送信元にコンテンツを送信するコンテンツ配信装置であって、
上記リクエストの送信元が、リクエストしたコンテンツを保持して、リクエストしたコンテンツをコンテンツ再生装置に転送する中継装置であるか、リクエストしたコンテンツを再生するコンテンツ再生装置であるか、を判定する判定手段と、
上記判定手段が上記リクエストの送信元が中継装置であると判定した場合、当該リクエストに応じて、リクエストされたコンテンツを、当該リクエストの送信元である中継装置に送信するコンテンツ送信手段と、
上記コンテンツ送信手段が送信したコンテンツを識別するコンテンツ識別情報と、その送信先である中継装置またはその転送先であるコンテンツ再生装置のアドレスとを対応付けて、コンテンツ格納先情報を生成するコンテンツ格納先情報生成手段と、
上記判定手段が上記リクエストの送信元がコンテンツ再生装置であると判定した場合、当該リクエストに応じて、上記コンテンツ格納先情報において、リクエストされたコンテンツを示すコンテンツ識別情報に対応付けられたアドレスの示す中継装置またはコンテンツ再生装置から当該コンテンツを取得するように、当該リクエストの送信元であるコンテンツ再生装置に指示するコンテンツ取得先指示手段と、を備えることを特徴とするコンテンツ配信装置。
【請求項２】
上記判定手段は、上記リクエストが当該リクエストの転送経路を示す転送経路情報を含む場合、上記リクエストの送信元が上記中継装置であると判定する一方、上記リクエストが上記転送経路情報を含まない場合、上記リクエストの送信元が上記コンテンツ再生装置であると判定することを特徴とする請求項１に記載のコンテンツ配信装置。
【請求項３】
上記コンテンツ取得先指示手段は、リクエストされたコンテンツを示すコンテンツ識別情報に対応付けられたアドレスを含む上記コンテンツ格納先情報が複数存在する場合、当該コンテンツ格納先情報に含まれるアドレスを複数含むコンテンツ格納先リストを作成し、作成したコンテンツ格納先リストに含まれるアドレスの示す中継装置またはコンテンツ再生装置の何れかから上記コンテンツを取得するように、上記リクエストの送信元であるコンテンツ再生装置に指示することを特徴とする請求項１または２に記載のコンテンツ配信装置。
【請求項４】
上記コンテンツ格納先情報生成手段は、上記コンテンツ送信手段が送信したコンテンツを示すコンテンツ識別情報に、当該コンテンツを上記コンテンツ送信手段が送信した日時を対応付けて、上記コンテンツ格納先情報を生成するものであり、
上記コンテンツ取得先指示手段は、上記複数のコンテンツ格納先情報に含まれる上記複数のアドレスを、対応付けられている日時が新しい順に並べて、上記複数のアドレスに優先順位を付加して上記コンテンツ格納先リストを作成することを特徴とする請求項３に記載のコンテンツ配信装置。
【請求項５】
上記コンテンツ格納先情報に含まれるアドレスに基づいて、当該アドレスの示す中継装置またはコンテンツ再生装置と、上記コンテンツ取得先指示手段がコンテンツの取得先を指示するコンテンツ再生装置との物理的またはネットワーク構造上の距離を算出する距離算出手段をさらに備え、
上記コンテンツ取得先指示手段は、上記複数のコンテンツ格納先情報に含まれる上記複数のアドレスを、上記距離算出手段が算出した距離が短い順に並べて、上記複数のアドレスに優先順位を付加して上記コンテンツ格納先リストを作成することを特徴とする請求項３に記載のコンテンツ配信装置。
【請求項６】
上記リクエストに応じたレスポンスの送信先と、当該レスポンスの送信日時とを対応付けて、レスポンス送信記録を作成する送信記録作成手段をさらに備え、
上記コンテンツ取得先指示手段は、上記送信記録作成手段が作成したレスポンス送信記録を参照して、上記コンテンツ格納先情報において、リクエストされたコンテンツに対応付けられたアドレスの示す中継装置またはコンテンツ再生装置であって、一定時間以内の上記レスポンス送信記録に含まれていない上記レスポンスの送信先から、当該コンテンツを取得するように、上記リクエストの送信元であるコンテンツ再生装置に指示することを特徴とする請求項１〜５の何れか１項に記載のコンテンツ配信装置。
【請求項７】
請求項３に記載のコンテンツ配信装置にリクエストを送信し、当該リクエストに対するレスポンスとして上記コンテンツ格納先リストを受信し、受信したコンテンツ格納先リストに含まれるアドレスの示す中継装置またはコンテンツ再生装置の何れかからリクエストしたコンテンツを取得するコンテンツ再生装置であって、
上記コンテンツを取得する受信速度が、予め定めた受信速度よりも遅い場合、上記コンテンツを取得する取得先の中継装置またはコンテンツ再生装置を、コンテンツ格納先リストに含まれるアドレスの示す他の中継装置またはコンテンツ再生装置に変更することを特徴とするコンテンツ再生装置。
【請求項８】
請求項４または５に記載のコンテンツ配信装置にリクエストを送信し、当該リクエストに対するレスポンスとして上記コンテンツ格納先リストを受信し、受信したコンテンツ格納先リストにおいて、優先順位が最も高いアドレスの示す中継装置またはコンテンツ再生装置からリクエストしたコンテンツを取得するコンテンツ再生装置であって、
上記コンテンツを取得する受信速度が、予め定めた受信速度よりも遅い場合、上記コンテンツを取得する取得先の中継装置またはコンテンツ再生装置を、コンテンツ格納先リストにおいて優先順位が次のアドレスの示す中継装置またはコンテンツ再生装置に変更する中継装置変更手段を備えることを特徴とするコンテンツ再生装置。
【請求項９】
請求項１〜６の何れか１項に記載のコンテンツ配信装置と、
上記コンテンツ配信装置にコンテンツの送信をリクエストして、リクエストしたコンテンツを保持して、リクエストしたコンテンツをコンテンツ再生装置に転送する中継装置と、
上記コンテンツ配信装置にコンテンツの送信をリクエストして、上記コンテンツ配信装置から指示された装置から、リクエストしたコンテンツを取得するコンテンツ再生装置とを含むことを特徴とするコンテンツ配信システム。
【請求項１０】
リクエストに応じて、当該リクエストの送信元にコンテンツを送信するコンテンツ配信装置の制御方法であって、
上記リクエストの送信元が、リクエストしたコンテンツを保持して、リクエストしたコンテンツをコンテンツ再生装置に転送する中継装置であるか、リクエストしたコンテンツを再生するコンテンツ再生装置であるか、を判定する判定ステップと、
上記判定ステップにおいて上記リクエストの送信元が中継装置であると判定した場合、当該リクエストに応じて、リクエストされたコンテンツを、当該リクエストの送信元である中継装置に送信するコンテンツ送信ステップと、
上記コンテンツ送信ステップにおいて送信したコンテンツを示すコンテンツ識別情報と、その送信先である中継装置またはその転送先であるコンテンツ再生装置のアドレスとを対応付けて、コンテンツ格納先情報を生成するコンテンツ格納先情報生成ステップと、
上記判定ステップにおいて上記リクエストの送信元がコンテンツ再生装置であると判定した場合、当該リクエストに応じて、上記コンテンツ格納先情報において、リクエストされたコンテンツを示すコンテンツ識別情報に対応付けられたアドレスの示す中継装置またはコンテンツ再生装置から当該コンテンツを取得するように、当該リクエストの送信元であるコンテンツ再生装置に指示するコンテンツ取得先指示ステップと、を含むことを特徴とするコンテンツ配信装置の制御方法。
【請求項１１】
リクエストに応じて、当該リクエストの送信元にコンテンツを送信するコンテンツ配信装置であって、
上記リクエストの送信元が、リクエストしたコンテンツを保持して、リクエストしたコンテンツをコンテンツ再生装置に転送する中継装置であるか、リクエストしたコンテンツを再生するコンテンツ再生装置であるか、を判定する判定手段と、
上記判定手段が上記リクエストの送信元がコンテンツ再生装置であると判定した場合、当該リクエストに応じて、予め定められた他のコンテンツ配信装置のうち、当該リクエストされたコンテンツを有する他のコンテンツ配信装置のアドレスを取得するコンテンツ格納先情報取得手段と、
上記コンテンツ格納先情報取得手段が取得したアドレスの示す他のコンテンツ配信装置からコンテンツを取得するように、上記リクエストの送信元であるコンテンツ再生装置に指示するコンテンツ取得先指示手段と、を備えることを特徴とするコンテンツ配信装置。
【請求項１２】
上記コンテンツ格納先情報取得手段は、上記予め定められた他のコンテンツ配信装置に対して、上記リクエストされたコンテンツを有するか否かの問い合わせを送信し、当該問い合わせに対して上記リクエストされたコンテンツを有すると応答した他のコンテンツ配信装置のアドレスを取得することを特徴とする請求項１１に記載のコンテンツ配信装置。
【請求項１３】
上記コンテンツ格納先情報取得手段が取得した、コンテンツを有する他のコンテンツ配信装置のアドレスと、当該コンテンツを示すコンテンツ識別情報とを対応付けてコンテンツ格納先情報を生成して、記憶部に格納するコンテンツ格納先情報生成手段をさらに備え、
上記コンテンツ格納先情報取得手段は、上記記憶部からコンテンツ格納先情報を読み出し、読み出したコンテンツ格納先情報が上記リクエストされたコンテンツを示すコンテンツ識別情報を含む場合、当該コンテンツ格納先情報から当該コンテンツ識別情報と対応付けられたアドレスを取得し、一方、読み出したコンテンツ格納先情報が上記リクエストされたコンテンツを示すコンテンツ識別情報を含まない場合、上記問い合わせを送信し、上記リクエストされたコンテンツを有する他のコンテンツ配信装置のアドレスを取得することを特徴とする請求項１２に記載のコンテンツ配信装置。
【請求項１４】
上記コンテンツ格納先情報取得手段は、上記リクエストされたコンテンツを有する複数のコンテンツ配信装置の各々のアドレスを取得し、取得した各アドレスと、当該コンテンツを示すコンテンツ識別情報とを含むコンテンツ格納先サーバリストを作成し、
上記コンテンツ取得先指示手段は、上記コンテンツ格納先情報取得手段が作成したコンテンツ格納先サーバリストに含まれるアドレスの示す他のコンテンツ配信装置からコンテンツを取得するように、上記リクエストの送信元であるコンテンツ再生装置に指示することを特徴とする請求項１１〜１３の何れか１項に記載のコンテンツ配信装置。
【請求項１５】
請求項１４に記載のコンテンツ配信装置にリクエストを送信し、当該リクエストに対するレスポンスとして上記コンテンツ格納先サーバリストを受信し、受信したコンテンツ格納先サーバリストに含まれる何れかのアドレスの示す他のコンテンツ配信装置からリクエストしたコンテンツを取得するコンテンツ再生装置であって、
上記コンテンツを取得する受信速度が、予め定めた受信速度よりも遅い場合、上記コンテンツを取得する取得先の他のコンテンツ配信装置を、コンテンツ格納先サーバリストに含まれる上記アドレスとは別のアドレスの示す他のコンテンツ配信装置に変更する取得先変更手段を備えることを特徴とするコンテンツ再生装置。
【請求項１６】
請求項１１〜１４の何れか１項に記載のコンテンツ配信装置と、
上記コンテンツ配信装置にコンテンツの送信をリクエストして、リクエストしたコンテンツを保持して、リクエストしたコンテンツをコンテンツ再生装置に転送する中継装置と、
上記コンテンツ配信装置にコンテンツの送信をリクエストして、上記コンテンツ配信装置から指示された装置から、リクエストしたコンテンツを取得するコンテンツ再生装置とを含むことを特徴とするコンテンツ配信システム。
【請求項１７】
リクエストに応じて、当該リクエストの送信元にコンテンツを送信するコンテンツ配信装置の制御方法であって、
上記リクエストの送信元が、リクエストしたコンテンツを保持して、リクエストしたコンテンツをコンテンツ再生装置に転送する中継装置であるか、リクエストしたコンテンツを再生するコンテンツ再生装置であるか、を判定する判定ステップと、
上記判定ステップにおいて上記リクエストの送信元がコンテンツ再生装置であると判定された場合、当該リクエストに応じて、上記コンテンツ配信装置と接続された他のコンテンツ配信装置のうち、当該リクエストされたコンテンツを有する他のコンテンツ配信装置のアドレスを取得するコンテンツ格納先情報取得ステップと、
上記コンテンツ格納先情報取得ステップにおいて取得されたアドレスの示す他のコンテンツ配信装置からコンテンツを取得するように、上記リクエストの送信元であるコンテンツ再生装置に指示するコンテンツ取得先指示ステップと、を含むことを特徴とするコンテンツ配信装置の制御方法。
【請求項１８】
リクエストに応じて、当該リクエストの送信元にデータを送信するコンテンツ配信装置であって、
コンテンツと、コンテンツのメタデータであって、コンテンツを識別するコンテンツ識別情報と当該コンテンツを有する他のコンテンツ配信装置のアドレスとが対応付けられているコンテンツ格納先情報または当該コンテンツ格納先情報の所在を示す格納先アドレスを含むメタデータと、を管理する管理手段と、
上記リクエストが、コンテンツリクエストまたはメタデータリクエストの何れであるかを判定するリクエスト判定手段と、
上記リクエスト判定手段が上記コンテンツリクエストであると判定した場合、リクエストされたコンテンツを、当該リクエストの送信元の装置に送信する一方、上記リクエスト判定手段が上記メタデータリクエストであると判定した場合、リクエストされたメタデータを当該リクエストの送信元の装置に送信する送信手段とを備えることを特徴とするコンテンツ配信装置。
【請求項１９】
上記リクエスト判定手段は、上記リクエストが、コンテンツリクエスト、メタデータリクエスト、格納先アドレスを用いたコンテンツ格納先情報リクエストの何れであるかを判定し、
上記リクエスト判定手段が上記格納先アドレスを用いたコンテンツ格納先情報リクエストであると判定した場合、上記送信手段は、上記格納先アドレスによりその所在が示されるコンテンツ格納先情報を上記リクエストの送信元の装置に送信することを特徴とする請求項１８に記載のコンテンツ配信装置。
【請求項２０】
上記予め定められた他のコンテンツ配信装置に対して、所定のコンテンツを有するか否かの問い合わせを送信し、当該問い合わせに対して上記所定のコンテンツを有すると応答した他のコンテンツ配信装置のアドレスを取得するコンテンツ格納先情報取得手段と、
上記コンテンツ格納先情報取得手段が取得した、上記所定のコンテンツを有する他のコンテンツ配信装置のアドレスと、当該所定のコンテンツを識別するコンテンツ識別情報とを対応付けてコンテンツ格納先情報を生成して、記憶部に格納するコンテンツ格納先情報生成手段と、
上記記憶部に格納されているコンテンツ格納先情報を更新するか否かを判定する更新判定手段とをさらに備え、
上記リクエスト判定手段が上記格納先アドレスを用いたコンテンツ格納先情報リクエストであると判定した場合で、かつ、上記更新判定手段が上記格納先アドレスによりその所在が示されるコンテンツ格納先情報を更新すると判定した場合、コンテンツ格納先情報取得手段が上記問い合わせを送信して、上記アドレスを取得し、上記コンテンツ格納先情報生成手段が当該アドレスに基づいてコンテンツ格納先情報を生成し、上記送信手段が、当該コンテンツ格納先情報を上記リクエストの送信元の装置に送信し、
上記リクエスト判定手段が上記格納先アドレスを用いたコンテンツ格納先情報リクエストであると判定した場合で、かつ、上記更新判定手段が上記格納先アドレスによりその所在が示されるコンテンツ格納先情報を更新しないと判定した場合、上記送信手段が、上記格納先アドレスによりその所在が示されるコンテンツ格納先情報を上記リクエストの送信元の装置に送信することを特徴とする請求項１９に記載のコンテンツ配信装置。
【請求項２１】
上記メタデータは、コンテンツを所定の時間間隔で分割して得られる単位毎に設定したコンテンツ格納先情報の所在を示す格納先アドレスを複数含むものであることを特徴とする請求項２０に記載のコンテンツ配信装置。
【請求項２２】
上記コンテンツは、複数のメディアセグメントを含み、
上記所定の時間間隔で分割されたコンテンツは、少なくとも１つのメディアセグメントを含むものであることを特徴とする請求項２１に記載のコンテンツ配信装置。
【請求項２３】
上記メタデータは、上記コンテンツ格納先情報を複数含むコンテンツ格納先サーバリストまたは当該コンテンツ格納先サーバリストの所在を示す格納先アドレスを含むものであることを特徴とする請求項２０〜２２の何れか１項に記載のコンテンツ配信装置。
【請求項２４】
請求項２３に記載のコンテンツ配信装置にメタデータリクエストを送信し、当該リクエストのレスポンスとして上記メタデータを受信し、受信したメタデータに従って、コンテンツを取得するコンテンツ再生装置であって、
上記受信したメタデータに含まれるコンテンツ格納先サーバリストを受信すると、または、上記受信したメタデータに含まれる格納先アドレスを用いたコンテンツ格納先情報リクエストを送信し、当該リクエストのレスポンスとしてコンテンツ格納先サーバリストを受信すると、受信したコンテンツ格納先サーバリストに含まれる何れかのコンテンツ格納先情報の示すアドレスの示す他のコンテンツ配信装置からコンテンツを取得するコンテンツ取得手段と、
上記コンテンツ取得手段のコンテンツを取得する受信速度が、予め定めた受信速度よりも遅い場合、上記コンテンツを取得する取得先の他のコンテンツ配信装置を、コンテンツ格納先サーバリストに含まれる上記アドレスとは別のアドレスの示す他のコンテンツ配信装置に変更する取得先変更手段とを備えることを特徴とするコンテンツ再生装置。
【請求項２５】
請求項１８〜２３の何れか１項に記載のコンテンツ配信装置と、
上記コンテンツ配信装置にコンテンツの送信をリクエストして、リクエストしたコンテンツを保持して、リクエストしたコンテンツをコンテンツ再生装置に転送する中継装置と、
上記コンテンツ配信装置にコンテンツを要求するコンテンツリクエストを送信して、当該コンテンツ配信装置からコンテンツを取得するコンテンツ再生装置であって、上記コンテンツ配信装置にコンテンツのメタデータを要求するメタデータリクエストを送信して、当該コンテンツ配信装置からメタデータを受信し、受信したメタデータに基づいて、当該メタデータに対応するコンテンツを取得するコンテンツ再生装置とを含むことを特徴とするコンテンツ配信システム。
【請求項２６】
リクエストに応じて、当該リクエストの送信元にデータを送信するコンテンツ配信装置の制御方法において、コンテンツと、コンテンツのメタデータであって、コンテンツを識別するコンテンツ識別情報と当該コンテンツを有する他のコンテンツ配信装置のアドレスとが対応付けられているコンテンツ格納先情報または当該コンテンツ格納先情報の所在を示す格納先アドレスを含むメタデータと、を管理するコンテンツ配信装置の制御方法であって、
上記リクエストが、コンテンツリクエストまたはメタデータリクエストの何れであるかを判定するリクエスト判定ステップと、
上記リクエスト判定ステップにおいて上記コンテンツリクエストであると判定された場合、リクエストされたコンテンツを、当該リクエストの送信元の装置に送信する送信ステップと、
上記リクエスト判定ステップにおいて上記メタデータリクエストであると判定された場合、リクエストされたメタデータを当該リクエストの送信元の装置に送信する送信ステップとを含むことを特徴とするコンテンツ配信装置の制御方法。
【請求項２７】
請求項１〜６、１１〜１４、１８〜２３の何れか１項に記載のコンテンツ配信装置を動作させるための制御プログラムであって、コンピュータを上記各手段として機能させるための制御プログラム。
【請求項２８】
請求項２７に記載の制御プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンテンツを再生するクライアントからの要求に応じて、サーバからクライアントにコンテンツを配信するコンテンツ配信サービスに関するものである。
【背景技術】
【０００２】
従来から、通信ネットワークを介した動画などのコンテンツの提供を行う技術が広く用いられている。例えば、コンテンツを再生するクライアントからの要求に応じて、コンテンツを管理するサーバからクライアントにコンテンツを配信するビデオ・オン・デマンド（ＶＯＤ）サービス等がある。ＶＯＤ等のコンテンツ配信サービスでは、ストリーミング方式、ダウンロード方式またはプログレッシブダウンロード方式によって、クライアントにコンテンツを提供している。【０００３】
下記の特許文献１には、プログレッシブダウンロード方式によるコンテンツ配信サービスの一例が記載されている。特許文献１には、クライアントからサーバにＨＴＴＰでコンテンツのリクエストを送信し、クライアントがこのリクエストに対する応答として受信したコンテンツを再生するコンテンツ配信サービスシステムが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】日本国公開特許公報「特開２００５−１１０２４４号公報（公開日：２００５年４月２１日）」
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ストリーミング方式、ダウンロード方式、及び、プログレッシブダウンロード方式であっても、複数のクライアントに対してそれぞれ異なるコンテンツを配信するコンテンツ配信サービスを行う場合には、サーバとクライアントとの間で大量の連続的なデータ伝送が必要となる。クライアントの数が増え、サーバからのデータ送出に用いられるネットワークおよびサーバに対する負荷が許容量以上に増大すると、データ伝送の遅延等が発生し、コンテンツ配信サービスのサービス品質が低下するという問題がある。【０００６】
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、サーバからクライアントにコンテンツを配信するコンテンツ配信システムにおいて、サーバからのデータ送出に用いられるネットワークおよびサーバに対する負荷の増大を抑制するコンテンツ配信装置、コンテンツ再生装置、コンテンツ配信システム、コンテンツ配信装置の制御方法、制御プログラム、および、記録媒体を実現することにある。
【課題を解決するための手段】
【０００７】
本発明に係るコンテンツ配信装置は、上記課題を解決するために、リクエストに応じて、当該リクエストの送信元にコンテンツを送信するコンテンツ配信装置であって、上記リクエストの送信元が、リクエストしたコンテンツを保持して、リクエストしたコンテンツをコンテンツ再生装置に転送する中継装置であるか、リクエストしたコンテンツを再生するコンテンツ再生装置であるか、を判定する判定手段と、上記判定手段が上記リクエストの送信元が中継装置であると判定した場合、当該リクエストに応じて、リクエストされたコンテンツを、当該リクエストの送信元である中継装置に送信するコンテンツ送信手段と、上記コンテンツ送信手段が送信したコンテンツと、その送信先である中継装置またはその転送先であるコンテンツ再生装置のアドレスとを対応付けて、コンテンツ格納先情報を生成するコンテンツ格納先情報生成手段と、上記判定手段が上記リクエストの送信元がコンテンツ再生装置であると判定した場合、当該リクエストに応じて、上記コンテンツ格納先情報において、リクエストされたコンテンツに対応付けられたアドレスの示す中継装置またはコンテンツ再生装置から当該コンテンツを取得するように、当該リクエストの送信元であるコンテンツ再生装置に指示するコンテンツ取得先指示手段と、を備えることを特徴としている。【０００８】
本発明に係るコンテンツ配信装置の制御方法は、上記課題を解決するために、リクエストに応じて、当該リクエストの送信元にコンテンツを送信するコンテンツ配信装置の制御方法であって、上記リクエストの送信元が、リクエストしたコンテンツを保持して、リクエストしたコンテンツをコンテンツ再生装置に転送する中継装置であるか、リクエストしたコンテンツを再生するコンテンツ再生装置であるか、を判定する判定ステップと、上記判定ステップにおいて上記リクエストの送信元が中継装置であると判定した場合、当該リクエストに応じて、リクエストされたコンテンツを、当該リクエストの送信元である中継装置に送信するコンテンツ送信ステップと、上記コンテンツ送信ステップにおいて送信したコンテンツと、その送信先である中継装置またはその転送先であるコンテンツ再生装置のアドレスとを対応付けて、コンテンツ格納先情報を生成するコンテンツ格納先情報生成ステップと、上記判定ステップにおいて上記リクエストの送信元がコンテンツ再生装置であると判定した場合、当該リクエストに応じて、上記コンテンツ格納先情報において、リクエストされたコンテンツに対応付けられたアドレスの示す中継装置またはコンテンツ再生装置から当該コンテンツを取得するように、当該リクエストの送信元であるコンテンツ再生装置に指示するコンテンツ取得先指示ステップと、を含むことを特徴としている。【０００９】
上記の構成によれば、中継装置からリクエストを受信すると、コンテンツ送信手段がリクエストされたコンテンツを、当該リクエストの送信元である中継装置に送信し、コンテンツ格納先情報生成手段が上記コンテンツ送信手段が送信したコンテンツと、その送信先である中継装置またはその転送先であるコンテンツ再生装置のアドレスとを対応付けて、コンテンツ格納先情報を生成する。また、コンテンツ再生装置からリクエストを受信すると、コンテンツ取得先指示手段が上記コンテンツ格納先情報において、リクエストされたコンテンツに対応付けられたアドレスの示す中継装置またはコンテンツ再生装置から当該コンテンツを取得するように、当該リクエストの送信元であるコンテンツ再生装置に指示する。ここで、上記中継装置および上記コンテンツ再生装置は、取得したコンテンツを保持するため、上記コンテンツ格納先情報は、どの中継装置またはコンテンツ再生装置がどのコンテンツを保持しているかを示す情報である。【００１０】
すなわち、コンテンツ配信装置は、過去に送信したコンテンツと、当該コンテンツを保持する中継装置またはコンテンツ再生装置とを対応付けて把握しておき、或るコンテンツ再生装置からリクエストを受信すると、リクエストの送信元のコンテンツ再生装置に直接コンテンツを送信せずに、リクエストされたコンテンツを保持している中継装置またはコンテンツ再生装置から当該コンテンツを取得するように、リクエストの送信元のコンテンツ再生装置に対して指示する。リクエストの送信元のコンテンツ再生装置は、指示された中継装置またはコンテンツ再生装置からリクエストしたコンテンツを取得するため、指示された中継装置またはコンテンツ再生装置が当該コンテンツを保持している場合、リクエストの送信元のコンテンツ再生装置と、指示された中継装置またはコンテンツ再生装置との両者だけでコンテンツの送受信が完了する。つまり、コンテンツ配信装置がコンテンツの送信処理を実行せずに、リクエストの送信元のコンテンツ再生装置がコンテンツを取得することができる。【００１１】
よって、コンテンツ配信装置からのデータ送出に用いられるネットワークおよびコンテンツ配信装置に対する負荷を抑制することができるという効果を奏する。ここで、コンテンツ配信装置、中継装置、コンテンツ再生装置が実行する処理の中で、コンテンツの送受信処理が最も負荷の掛かる処理であり、それらの装置間のネットワークにおいてもコンテンツの送受信が最も負荷が掛かる。従って、例えば、コンテンツ再生装置の個数が増えて、コンテンツ配信装置に対するリクエストが増えたとしても、コンテンツ配信装置からのデータ送出に用いられるネットワークおよびコンテンツ配信装置に対する負荷の増大を抑制することができるため、コンテンツ配信装置の処理能力の拡大や上記ネットワークの容量の増大を図ることなく、多数のコンテンツ再生装置がコンテンツを取得することができる。
【発明の効果】
【００１２】
以上のように、本発明に係るコンテンツ配信装置は、上記リクエストの送信元が、リクエストしたコンテンツを保持して、リクエストしたコンテンツをコンテンツ再生装置に転送する中継装置であるか、リクエストしたコンテンツを再生するコンテンツ再生装置であるか、を判定する判定手段と、上記判定手段が上記リクエストの送信元が中継装置であると判定した場合、当該リクエストに応じて、リクエストされたコンテンツを、当該リクエストの送信元である中継装置に送信するコンテンツ送信手段と、上記コンテンツ送信手段が送信したコンテンツと、その送信先である中継装置またはその転送先であるコンテンツ再生装置のアドレスとを対応付けて、コンテンツ格納先情報を生成するコンテンツ格納先情報生成手段と、上記判定手段が上記リクエストの送信元がコンテンツ再生装置であると判定した場合、当該リクエストに応じて、上記コンテンツ格納先情報において、リクエストされたコンテンツに対応付けられたアドレスの示す中継装置またはコンテンツ再生装置から当該コンテンツを取得するように、当該リクエストの送信元であるコンテンツ再生装置に指示するコンテンツ取得先指示手段と、を備えている構成である。【００１３】
また、本発明に係るコンテンツ配信装置の制御方法は、上記リクエストの送信元が、リクエストしたコンテンツを保持して、リクエストしたコンテンツをコンテンツ再生装置に転送する中継装置であるか、リクエストしたコンテンツを再生するコンテンツ再生装置であるか、を判定する判定ステップと、上記判定ステップにおいて上記リクエストの送信元が中継装置であると判定した場合、当該リクエストに応じて、リクエストされたコンテンツを、当該リクエストの送信元である中継装置に送信するコンテンツ送信ステップと、上記コンテンツ送信ステップにおいて送信したコンテンツと、その送信先である中継装置またはその転送先であるコンテンツ再生装置のアドレスとを対応付けて、コンテンツ格納先情報を生成するコンテンツ格納先情報生成ステップと、上記判定ステップにおいて上記リクエストの送信元がコンテンツ再生装置であると判定した場合、当該リクエストに応じて、上記コンテンツ格納先情報において、リクエストされたコンテンツに対応付けられたアドレスの示す中継装置またはコンテンツ再生装置から当該コンテンツを取得するように、当該リクエストの送信元であるコンテンツ再生装置に指示するコンテンツ取得先指示ステップと、を含む。【００１４】
よって、コンテンツ配信装置からのデータ送出に用いられるネットワークおよびコンテンツ配信装置に対する負荷を抑制することができるという効果を奏する。【００１５】
本発明のさらに他の目的、特徴、及び優れた点は、以下に示す記載によって十分わかるであろう。また、本発明の利益は、添付図面を参照した次の説明で明白になるであろう。
【図面の簡単な説明】
【００１６】
【図１】本発明の第１の実施形態を示すものであり、第１の実施形態に係るコンテンツ配信システムの概要およびコンテンツ配信システムを構成する各装置の要部構成を示す図である。
【図２】上記コンテンツ配信システムに含まれる送信ログ記憶部が記憶する送信ログの一例を示す図である。
【図３】上記コンテンツ配信システムに含まれるコンテンツ格納先情報記憶部が記憶するコンテンツ格納先情報の一例を示す図である。
【図４】上記コンテンツ配信システムを構成するサーバが実行する処理の一例を示すフローチャートである。
【図５】上記コンテンツ配信システムを構成するプロキシが実行する処理の一例を示すフローチャートである。
【図６】上記コンテンツ配信システムを構成するクライアントが実行する処理の一例を示すフローチャートである。
【図７】第１の実施形態の実施例におけるコンテンツ配信システムの動作シーケンスの一例を示す図である。
【図８】リクエストまたはレスポンスとして送受信されるＨＴＴＰメッセージの一例を示す図であり、図８の（ａ）、（ｃ）および（ｄ）は図７のリクエストの、図８の（ｂ）、（ｅ）および（ｆ）はレスポンスのＨＴＴＰメッセージをそれぞれ示している。
【図９】リクエストまたはレスポンスとして送受信されるＨＴＴＰメッセージの一例を示す図であり、図９の（ａ）、（ｃ）および（ｄ）は図７のリクエストの、図９の（ｂ）、（ｅ）および（ｆ）はレスポンスのＨＴＴＰメッセージをそれぞれ示している。
【図１０】リクエストまたはレスポンスとして送受信されるＨＴＴＰメッセージの一例を示す図であり、図１０の（ａ）、（ｃ）および（ｄ）は図７のリクエストの、図１０の（ｂ）、（ｅ）および（ｆ）はレスポンスのＨＴＴＰメッセージをそれぞれ示している。
【図１１】本発明の第２の実施形態を示すものであり、第２の実施形態に係るコンテンツ配信システムの概要およびコンテンツ配信システムを構成する各装置の要部構成を示す図である。
【図１２】上記コンテンツ配信システムに含まれる送信ログ記憶部が記憶する送信ログの一例を示す図である。
【図１３】上記コンテンツ配信システムに含まれるコンテンツ格納先情報記憶部が記憶するコンテンツ格納先情報の一例を示す図である。
【図１４】上記コンテンツ配信システムを構成するサーバが実行する処理の一例を示すフローチャートである。
【図１５】上記コンテンツ配信システムを構成するクライアントがコンテンツ再生装置として実行する処理の一例を示すフローチャートである。
【図１６】上記コンテンツ配信システムを構成するクライアントが中継装置として実行する処理の一例を示すフローチャートである。
【図１７】第２の実施形態の実施例におけるコンテンツ配信システムの動作シーケンスの一例を示す図である。
【図１８】リクエストまたはレスポンスとして送受信されるＨＴＴＰメッセージの一例を示す図であり、図１８の（ａ）、（ｃ）および（ｄ）は図１７のリクエストの、図１８の（ｂ）、（ｅ）および（ｆ）はレスポンスのＨＴＴＰメッセージをそれぞれ示している。
【図１９】リクエストまたはレスポンスとして送受信されるＨＴＴＰメッセージの一例を示す図であり、図１９の（ａ）、（ｃ）および（ｄ）は図１７のリクエストの、図１９の（ｂ）、（ｅ）および（ｆ）はレスポンスのＨＴＴＰメッセージをそれぞれ示している。
【図２０】本発明の第３の実施形態を示すものであり、第３の実施形態に係るコンテンツ配信システムの概要およびコンテンツ配信システムを構成する各装置の要部構成を示す図である。
【図２１】上記コンテンツ配信システムで取り扱うコンテンツのフォーマットを示す図である。
【図２２】上記コンテンツ配信システムを構成するサーバが実行する処理の一例を示すフローチャートである。
【図２３】上記コンテンツ配信システムを構成するクライアントがコンテンツ再生装置として実行する処理の一例を示すフローチャートである。
【図２４】第３の実施形態の実施例におけるコンテンツ配信システムの動作シーケンスの一例を示す図である。
【図２５】上記コンテンツ配信システムに含まれる送信ログ記憶部が記憶する送信ログの一例を示す図である。
【図２６】上記コンテンツ配信システムに含まれるコンテンツ格納先情報記憶部が記憶するコンテンツ格納先情報の一例を示す図である。
【図２７】リクエストまたはレスポンスとして送受信されるＨＴＴＰメッセージの一例を示す図であり、図２７の（ａ）、（ｃ）および（ｄ）は図２４のリクエストの、図２７の（ｂ）、（ｅ）および（ｆ）はレスポンスのＨＴＴＰメッセージをそれぞれ示している。
【図２８】リクエストまたはレスポンスとして送受信されるＨＴＴＰメッセージの一例を示す図であり、図２８の（ａ）および（ｂ）は図２４のリクエストの、図２８の（ｃ）および（ｄ）はレスポンスのＨＴＴＰメッセージをそれぞれ示している。
【図２９】本発明の第４の実施形態を示すものであり、第４の実施形態に係るコンテンツ配信システムの概要およびコンテンツ配信システムを構成する各装置の要部構成を示す図である。
【図３０】上記コンテンツ配信システムに含まれるコンテンツ格納先情報記憶部が記憶するコンテンツ格納先情報の一例を示す図である。
【図３１】上記コンテンツ配信システムを構成するサーバが実行する処理の一例を示すフローチャートである。
【図３２】上記コンテンツ配信システムを構成するクライアントがコンテンツ再生装置として実行する処理の一例を示すフローチャートである。
【図３３】第４の実施形態の実施例におけるコンテンツ配信システムの動作シーケンスの一例を示す図である。
【図３４】レスポンスとして送受信されるＨＴＴＰメッセージの一例を示す図である。
【図３５】本発明の第５の実施形態に係るコンテンツ配信システムで取り扱うコンテンツのメタデータであるＭＰＤデータの一例を示す図である。
【図３６】上記コンテンツ配信システムで取り扱うＭＰＤデータの一例を示す図である。
【図３７】上記コンテンツ配信システムで取り扱う外部リソースの一例を示す図である。
【図３８】上記コンテンツ配信システムで取り扱うＭＰＤデータおよび外部リソースの一例を示す図である。
【図３９】上記コンテンツ配信システムを構成するサーバが実行する処理の一例を示すフローチャートである。
【図４０】上記コンテンツ配信システムを構成するクライアントがコンテンツ再生装置として実行する処理の一例を示すフローチャートである。
【図４１】第５の実施形態の実施例におけるコンテンツ配信システムの動作シーケンスの一例を示す図である。
【発明を実施するための形態】
【００１７】
＜第１の実施形態＞
本発明の第１の実施形態について図１から図１０に基づいて説明すると以下の通りである。まず、本実施形態のコンテンツ配信システム１の概要について、図１に基づいて説明する。
【００１８】
〔コンテンツ配信システム１の概要〕
図１は、第１の実施形態に係るコンテンツ配信システム１の概要およびコンテンツ配信システム１を構成する各装置の要部構成を示す図である。図１に示すように、コンテンツ配信システム１は、サーバ（コンテンツ配信装置）２、プロキシ（中継装置、コンテンツ取得装置）３ａおよび３ｂ、並びに、クライアント（コンテンツ再生装置、コンテンツ取得装置）４ａおよび４ｂを含む。また、コンテンツ配信システム１は、サーバ２と接続しているコンテンツ格納部５と、プロキシ３ａ、３ｂとそれぞれ接続しているキャッシュ格納部６ａ、６ｂとを含む。
【００１９】
図１に示すように、サーバ２、プロキシ３ａおよび３ｂ、並びに、クライアント４ａおよび４ｂは、それぞれネットワーク７を介して接続されている。なお、ネットワーク７は、上記の各装置が相互に通信可能なものであればよく、有線通信のネットワークであってもよいし、無線通信のネットワークであってもよい。
【００２０】
なお、以下では、プロキシ３ａおよび３ｂを総称してプロキシ３と称し、キャッシュ格納部６ａおよび６ｂを総称してキャッシュ格納部６と称し、クライアント４ａおよび４ｂを総称してクライアント４と称する。
【００２１】
また、図１に示す例では、コンテンツ配信システム１が、プロキシ３を２つ、クライアント４を２つ含んでいるが、これに限るものではない。コンテンツ配信システム１が、プロキシを１つまたは３つ以上含んでいてもよく、クライアント４を３つ以上含んでいてもよい。すなわち、コンテンツ配信システム１は、プロキシ３を少なくとも１つ、また、クライアント４を複数含んでいればよい。
【００２２】
また、本実施形態では、サーバ２が配信するコンテンツは、ＶＯＤサービス用の映像コンテンツであり、コンテンツのフォーマットは、ＭＰ４ファイルフォーマットとする。さらに、コンテンツ配信システム１におけるネットワーク７上の伝送プロトコルは、汎用的なファイル伝送プロトコルとして広く用いられているＨＴＴＰを用いるものとする。なお、本実施形態において、サーバ２が配信するコンテンツや、コンテンツ配信システム１におけるネットワーク７上の伝送プロトコルは、これに限るものではない。
【００２３】
〔サーバ２について〕
サーバ２は、プロキシ３およびクライアント４（コンテンツ取得装置）からコンテンツの送信を要求する要求メッセージ（リクエスト）を受信して、受信した要求メッセージに対する応答メッセージ（レスポンス）を送信するコンテンツ配信装置である。上述のように、サーバ２は、動画などのコンテンツを格納するコンテンツ格納部５と接続されており、コンテンツ格納部５に格納されているコンテンツを管理する。なお、コンテンツ格納部５は、サーバ２に内蔵されていてもよい。
【００２４】
なお、サーバ２は、不特定多数の装置に同じコンテンツを同時に配信してもよいし、単一の装置にコンテンツを配信してもよいし、決められた複数の装置に対して、同時に同じコンテンツを配信してもよい。
【００２５】
図１に示すように、サーバ２は、サーバ２の動作を統括して制御するサーバ制御部１４と、サーバ２が外部の装置と通信するためのサーバ通信部１１と、サーバ２が送信したレスポンスを記憶する送信ログ記憶部１２と、コンテンツ格納先情報（詳細は後述）を記憶するコンテンツ格納先情報記憶部１３とを備えている。また、サーバ制御部１４には、レスポンス実行部（判定手段、コンテンツ送信手段、コンテンツ取得先指示手段、送信記録作成手段）１５、中継装置特定部（コンテンツ取得先指示手段、距離算出手段）１６、および、コンテンツ格納先情報生成部（コンテンツ格納先情報生成手段）１７が含まれている。
【００２６】
レスポンス実行部１５は、サーバ通信部１１を介して、コンテンツの送信を要求する要求メッセージを受信すると、当該要求メッセージを送信した装置（プロキシ３またはクライアント４）に応じて、受信した要求メッセージに対する応答メッセージを上記装置に送信する。
【００２７】
具体的には、レスポンス実行部１５は、コンテンツの送信を要求する要求メッセージを受信するのを待っており、サーバ通信部１１を介して、コンテンツの送信を要求する要求メッセージを受信すると、受信した要求メッセージのヘッダを確認して、受信した要求メッセージがプロキシ３を経由して送信されたものであるか否かを判定する。例えば、レスポンス実行部１５は、要求メッセージを受信すると、受信した要求メッセージに、「Via」ヘッダが含まれる場合、受信した要求メッセージが、クライアント４からの要求メッセージを受けてプロキシ３が送信したものであると判定し、一方、受信した要求メッセージに、「Via」ヘッダが含まれていない場合、クライアント４から、直接、要求メッセージが送信されたものであると判定してもよい。
【００２８】
レスポンス実行部１５は、クライアント４から、直接、コンテンツを要求する要求メッセージを受信すると、中継装置特定部１６に対して、クライアント４が要求したコンテンツを保持する（可能性のある）プロキシ３のアドレス情報（例えば、プロキシ３のＵＲＩ等）を特定するように指示する。そして、レスポンス実行部１５は、中継装置特定部１６から、クライアント４が要求するコンテンツを保持するプロキシ３のアドレス情報を受信すると、クライアント４からの要求メッセージに対する応答として、中継装置特定部１６が特定したアドレス情報から要求したコンテンツを取得するように指示した応答メッセージをクライアント４に送信する。例えば、レスポンス実行部１５は、応答メッセージとして「305 USE Proxy」を用いて、「Location」フィールドに、中継装置特定部１６が特定したアドレス情報を与えることで、クライアント４に対して、クライアント４が要求したコンテンツを保持する（可能性のある）プロキシ３に対して、コンテンツの要求メッセージを送信するよう指示する。
【００２９】
また、レスポンス実行部１５は、プロキシ３から、コンテンツを要求する要求メッセージを受信すると、受信した要求メッセージが「If-Modified-Since」等の条件付要求であるか否かを判定する。受信した要求メッセージが条件付要求でなければ、レスポンス実行部１５は、要求されたコンテンツをコンテンツ格納部５から読み出し、プロキシ３からの要求メッセージに対する応答として、読み出したコンテンツをプロキシ３に送信する。
【００３０】
一方、受信した要求メッセージが条件付要求であれば、レスポンス実行部１５は、続いて、プロキシ３が保持しているコンテンツのデータが最新のデータであるか否かを判定する。換言すると、レスポンス実行部１５は、プロキシ３が保持しているコンテンツのデータと、コンテンツ格納部５に格納されている同じコンテンツのデータとが同一であるか否かを判定する。
【００３１】
プロキシ３が保持しているコンテンツのデータが最新のデータでなければ、レスポンス実行部１５は、要求されたコンテンツをコンテンツ格納部５から読み出し、プロキシ３からの要求メッセージに対する応答として、読み出したコンテンツをプロキシ３に送信する。また、プロキシ３が保持しているコンテンツのデータが最新のデータであれば、レスポンス実行部１５は、プロキシ３からの要求メッセージに対する応答として、プロキシ３が保持しているコンテンツのデータが最新のデータであることを示す応答メッセージをプロキシ３に送信する。レスポンス実行部１５は、例えば、プロキシ３が保持しているコンテンツのデータが最新のデータであることを示す応答メッセージとして「304 NOT modified」をプロキシ３に送信する。
【００３２】
また、レスポンス実行部１５は、送信した応答メッセージから送信ログ（レスポンス送信記録）を作成して、作成した送信ログを送信ログ記憶部１２に記憶する。レスポンス実行部１５が作成する送信ログについて、詳細は後述する。
【００３３】
なお、レスポンス実行部１５は、プロキシ３にコンテンツを送信する際に、コンテンツのヘッダに、例えば、「Cache-Control: must-revalidate」もしくは「Cache-Control: proxy-revalidate」を追加してもよい。これにより、コンテンツ送信先のプロキシ３がキャッシュ格納部６に保持したコンテンツを他の要求に従って利活用、つまり送信する場合に、プロキシ３に対して、送信する前にそのコンテンツが最新バージョンかどうかをサーバ２へ必ず確認させることができる。
【００３４】
中継装置特定部１６は、レスポンス実行部１５の指示に従って、クライアント４が要求したコンテンツを保持している（可能性のある）プロキシ３を特定するものである。
【００３５】
具体的には、中継装置特定部１６は、レスポンス実行部１５から指示を受けて、コンテンツ格納先情報記憶部１３からコンテンツ格納先情報を読み出す。中継装置特定部１６は、読み出したコンテンツ格納先情報を参照して、クライアント４が要求するコンテンツに対応付けられているプロキシ３のアドレス情報（例えば、ＵＲＩ等）を、コンテンツの取得先のアドレス情報として特定する。中継装置特定部１６は、特定したアドレス情報をレスポンス実行部１５に送信する。
【００３６】
また、中継装置特定部１６は、コンテンツ格納先情報記憶部１３に、クライアント４が要求するコンテンツを含むコンテンツ格納先情報が格納されていない場合、クライアント４が要求するコンテンツごとに、予め定められた（デフォルトの）アドレス情報を当該コンテンツの取得先のアドレス情報として特定してもよい。また、中継装置特定部１６は、コンテンツ格納先情報記憶部１３に、クライアント４が要求するコンテンツを含むコンテンツ格納先情報が格納されていない場合、サーバ２とネットワーク７を介して接続しているプロキシ３の中からランダムに、当該コンテンツの取得先を特定してもよい。
【００３７】
また、中継装置特定部１６は、クライアント４が要求するコンテンツに対応付けられているプロキシ３のアドレス情報を含むコンテンツ格納先情報がコンテンツ格納先情報記憶部１３に複数存在する場合、複数のアドレス情報をコンテンツの取得先のアドレス情報として特定し、特定した複数のアドレス情報を含むコンテンツ格納先リストを作成してもよい。中継装置特定部１６は、複数のアドレス情報をコンテンツの取得先のアドレス情報として特定した場合、複数のアドレス情報に優先順位を付加してコンテンツ格納先リストを作成してもよい。
【００３８】
また、中継装置特定部１６は、クライアント４が要求するコンテンツに対応付けられているプロキシ３のアドレス情報を含むコンテンツ格納先情報がコンテンツ格納先情報記憶部１３に複数存在する場合、直近の（コンテンツ格納先情報に含まれる日時が最も新しい）コンテンツ格納先情報に含まれるプロキシ３のアドレス情報をコンテンツの取得先のアドレス情報として特定してもよい。中継装置特定部１６は、複数のアドレス情報をコンテンツの取得先のアドレス情報として特定した場合、例えば、コンテンツ格納先情報に含まれる日時が新しい順番に従って、複数のアドレス情報に優先順位を付加してコンテンツ格納先リストを作成してもよい。
【００３９】
また、中継装置特定部１６は、クライアント４が要求するコンテンツに対応付けられているプロキシ３のアドレス情報を含むコンテンツ格納先情報がコンテンツ格納先情報記憶部１３に複数存在する場合、クライアント４との物理的またはネットワーク構造上の距離に基づいて、最も上記距離が短い、コンテンツ格納先情報に含まれるプロキシ３のアドレスをコンテンツの取得先のアドレスとして特定してもよい。中継装置特定部１６は、複数のアドレス情報をコンテンツの取得先のアドレス情報として特定した場合、例えば、クライアント４との物理的またはネットワーク構造上の距離に基づいて、上記距離が短い順に、複数のアドレス情報に優先順位を付加してコンテンツ格納先リストを作成してもよい。つまり、中継装置特定部１６は、コンテンツ格納先情報に含まれるアドレスに基づいて、当該アドレスの示すプロキシ３と、リクエストの送信元のクライアント４との物理的またはネットワーク構造上の距離を算出し、上記複数のコンテンツ格納先情報に含まれる上記複数のアドレスを、算出した距離が短い順に並べて、上記複数のアドレスに優先順位を付加して上記コンテンツ格納先リストを作成してもよい。
【００４０】
例えば、要求メッセージを送信したクライアント４のＵＲＩ、および、サーバ２とネットワーク７を介して接続しているプロキシ３のＵＲＩをサーバ２が既知の場合、中継装置特定部１６は、要求メッセージを送信したクライアント４のＵＲＩから、当該クライアント４のドメイン名を割り出し、割り出したドメイン名のレベル順に、当該クライアント４からの物理的、もしくは、ネットワーク構造的な距離が近い順にプロキシ３を並べて、複数のアドレス情報に優先順位を付加してコンテンツ格納先リストを作成してもよい。
【００４１】
具体的には、例えばクライアント４のＵＲＩが「http://client.co.jp」の場合、中継装置特定部１６は、第２レベルドメイン名まで考慮して、第２レベルドメイン名が「co.jp」であるプロキシ３を選出して、選出したプロキシ３を、クライアント４からの物理的、もしくは、ネットワーク構造的な距離が近い順に並べて、コンテンツ格納先リストを作成してもよい。このとき、第２レベルドメイン名が「co.jp」であるプロキシ３がなければ、第１レベルドメイン名が「jp」であるプロキシ３を選出して、選出したプロキシ３を、クライアント４からの物理的、もしくは、ネットワーク構造的な距離が近い順に並べて、コンテンツ格納先リストを作成してもよい。
【００４２】
また、クライアント４のＵＲＩが、「co.jp」といった属性型ＪＰドメイン名でなく、「kaisha.chiyoda.tokyo.jp」または「pref.fukuoka.jp」といった都道府県ラベルや市区町村ラベルの付いた地域型ＪＰドメイン名の場合、中継装置特定部１６は、クライアント４の都道府県ラベルまたは市区町村ラベルと同じラベル、もしくは当該ラベルと近隣のラベルの付いたプロキシ３を選出して、コンテンツ格納先リストを作成してもよい。
【００４３】
同様に、例えば、要求メッセージを送信したクライアント４のＩＰアドレス、および、サーバ２とネットワーク７を介して接続しているプロキシ３のＩＰアドレスをサーバ２が既知の場合、中継装置特定部１６は、要求メッセージを送信したクライアント４のＩＰアドレスの上位ビット側のネットワークアドレス部を参照して、当該クライアント４と物理的、もしくは、ネットワーク構造的な距離の近いプロキシ３を選出してもよい。
【００４４】
他にも、例えば、一般的なルーティング技術やネットワーク監視、アクセス解析等の手法を活用して、予め、サーバ２とクライアント４との間の接続経路やネットワーク状況を調べておき、中継装置特定部１６が調査した内容に基づいて、より適切なプロキシを選定してもよい。例えば、クライアント４へコンテンツを取得するプロキシ３を指定する前に、「traceroute」もしくは「tracert」コマンドを用いて、サーバ２とクライアント４との接続経路を調査し、その結果に基づき、中継装置特定部１６がクライアント４により近いプロキシ３を選出してもよい。
【００４５】
さらに、中継装置特定部１６は、プロキシ３の負荷状況も考慮して、クライアント４の要求するコンテンツを保持する（可能性のある）プロキシ３であって、負荷の少ないプロキシ３を特定しても良い。より詳細には、中継装置特定部１６は、送信ログ記憶部１２に格納されている送信ログも参照して、コンテンツの取得先のアドレス情報を特定してもよい。
【００４６】
例えば、中継装置特定部１６は、送信ログ記憶部１２に格納されている送信ログを参照して、各プロキシ３が一定時間以内にコンテンツの送受信処理をしたか否かを判断し、一定時間以内にコンテンツの送受信処理をしていないプロキシ３であって、読み出したコンテンツ格納先情報において、クライアント４が要求するコンテンツに対応付けられているプロキシ３のアドレス情報を、コンテンツの取得先のアドレス情報として特定してもよい。なお、対応付けられているコンテンツに応じて、上記一定時間を設定してもよい。
【００４７】
また、クライアント４が要求するコンテンツに対応付けられているプロキシ３のアドレス情報を含むコンテンツ格納先情報がコンテンツ格納先情報記憶部１３に複数存在する場合、中継装置特定部１６は、一定時間以上コンテンツの送受信処理をしていないプロキシ３であって、直近のコンテンツ格納先情報に含まれるプロキシ３のアドレス情報をコンテンツの取得先のアドレス情報として特定してもよい。
【００４８】
さらに、中継装置特定部１６は、プロキシ３からサーバ２へのアクセス数も考慮して、クライアント４の要求するコンテンツを保持する（可能性のある）プロキシ３を特定しても良い。例えば、サーバ２に対するアクセス数の多いプロキシ３ほど、多くのコンテンツをキャッシュしていると考えられるので、サーバ２に対するアクセス数が予め定めた下限値以上のプロキシ３を特定しても良い。なお、中継装置特定部１６は、サーバ２に対するアクセス数を、送信ログ記憶部１２に格納されている送信ログを参照して特定してもよい。そして、コンテンツ格納先情報において、クライアント４が要求するコンテンツに対応付けられているプロキシ３のうち、サーバ２に対するアクセス数が予め定めた下限値以上のプロキシ３のアドレス情報を、コンテンツの取得先のアドレス情報として特定してもよい。
【００４９】
また、クライアント４が要求するコンテンツに、複数のアドレス情報が対応付けられている場合、中継装置特定部１６は、サーバ２に対するアクセス数が最も大きいプロキシ３のアドレス情報をコンテンツの取得先のアドレス情報として特定してもよい。
【００５０】
さらに、中継装置特定部１６は、特定のプロキシ３に対するアクセスを集中させないようにするため、サーバ２に対するアクセス数が予め定めた上限値以下のプロキシ３を特定しても良い。
【００５１】
コンテンツ格納先情報生成部１７は、送信ログ記憶部１２に格納されている送信ログから、コンテンツを保持する（可能性のある）プロキシ３のアドレス情報を特定するためのコンテンツ格納先情報を生成して、コンテンツ格納先情報記憶部１３に格納するものである。
【００５２】
具体的には、コンテンツ格納先情報生成部１７は、サーバ２がプロキシ３にコンテンツを送信したことを示す送信ログを参照して、サーバ２が送信したコンテンツと、コンテンツの送信先のプロキシ３のアドレス情報と、サーバ２が当該コンテンツを送信した日時とを対応付けて、コンテンツ格納先情報を生成する。また、コンテンツ格納先情報生成部１７は、プロキシ３の保持しているコンテンツが最新バージョンであることを応答メッセージとしてサーバ２が送信したことを示す送信ログを参照して、サーバ２が最新バージョンであることを確認したコンテンツと、当該コンテンツを保持しているプロキシ３のアドレス情報と、サーバ２が当該応答メッセージを送信した日時とを対応付けて、コンテンツ格納先情報を生成する。
【００５３】
なお、コンテンツ格納先情報生成部１７は、所定の送信ログが送信ログ記憶部１２に追加される度に、コンテンツ格納先情報を生成してもよいし、所定期間ごとに、送信ログを読み出して、コンテンツ格納先情報を生成してもよい。
【００５４】
送信ログ記憶部１２は、サーバ２がプロキシ３またはクライアント４に送信した応答メッセージの送信日時と、当該応答メッセージの送信先の装置のアドレス情報と、当該応答メッセージの内容と、当該応答メッセージに対応する要求メッセージで要求されたコンテンツとが対応付けられた送信ログを記憶するものである。送信ログ記憶部１２が記憶する送信ログは、例えば、図２に示すデータであってよい。図２は、送信ログ記憶部１２が記憶する送信ログの一例を示す図である。
【００５５】
図２に示すように、送信ログは、応答メッセージの送信日時である「Date」と、当該応答メッセージの送信先の装置のアドレス情報である「送信先アドレス」と、当該応答メッセージの内容を示す「送信内容」と、当該応答メッセージに対応する要求メッセージで要求されたコンテンツを示す「コンテンツＩＤ」とが対応付けられている。
【００５６】
「送信内容」として、応答メッセージの内容である「200 OK」、「305 Use Proxy」または「304 Not Modified」が格納されている。ここで、「送信内容」が「305 Use Proxy」の場合、図２に示すように、「305 Use Proxy (proxy1)」として、（）内に指定するプロキシ３を示す情報が含まれているものとする。
【００５７】
「200 OK」は、コンテンツのリクエストに対してコンテンツを送信するときに送信する応答メッセージに含まれるものであるから、「200 OK」の応答メッセージを送信した送信ログを、コンテンツ送信ログと呼ぶ。また、「305 Use Proxy」は、指定したプロキシからコンテンツを取得させる応答メッセージに含まれるものであるから、「305 Use Proxy」の応答メッセージを送信した送信ログを、取得指示ログと呼ぶ。そして、「304 Not Modified」は、コンテンツが最新バージョンであることを通知する応答メッセージに含まれるものであるから、「304 Not Modified」の応答メッセージを送信した送信ログを、バージョン通知ログと呼ぶ。
【００５８】
レスポンス実行部１５が送信した応答メッセージから送信ログを作成することにより、上述のように、コンテンツ格納先情報生成部１７は、送信ログから、コンテンツを保持する（可能性のある）プロキシ３のアドレス情報を特定するためのコンテンツ格納先情報を作成することができる。また、中継装置特定部１６は、送信ログを参照して、一定時間以内にコンテンツの送受信処理をしていないプロキシ３を特定することができる。
【００５９】
例えば、中継装置特定部１６は、送信ログ記憶部１２に格納されている送信ログを参照して、一定時間以内の送信ログにおいて、送信内容が「200 OK」または「304 Not Modified」に対応付けられているプロキシ３を、一定時間以内にコンテンツの送受信処理をしたプロキシ３として判定する。
【００６０】
コンテンツ格納先情報記憶部１３は、コンテンツと、当該コンテンツを保持する（可能性のある）プロキシ３のアドレス情報と、当該プロキシ３が当該コンテンツを取得した日時とが対応付けられたコンテンツ格納先情報を記憶するものである。コンテンツ格納先情報記憶部１３が記憶するコンテンツ格納先情報は、例えば、図３に示すデータであってよい。図３は、コンテンツ格納先情報記憶部１３が記憶するコンテンツ格納先情報の一例を示す図である。コンテンツ格納先情報は、換言すると、コンテンツと、当該コンテンツの格納先を示すアドレス情報とが対応付けられた情報である。
【００６１】
図３に示すように、コンテンツ格納先情報は、プロキシ３がコンテンツを取得した日時である「Date」と、当該コンテンツを示す「コンテンツＩＤ」（コンテンツ識別情報）と、当該コンテンツを保持するプロキシ３のアドレス情報である「格納先アドレス」とが対応付けられている。
【００６２】
コンテンツ格納先情報生成部１７が送信ログからコンテンツ格納先情報を生成することにより、上述のように、中継装置特定部１６は、コンテンツ格納先情報を参照して、コンテンツを保持する（可能性のある）プロキシ３のアドレス情報を特定することができる。
【００６３】
なお、送信ログ記憶部１２およびコンテンツ格納先情報記憶部１３は、コンテンツ格納部５と同様に、サーバ２が内蔵する代わりに、サーバ２と接続されている外部の記憶装置であってもよい。
【００６４】
〔プロキシ３について〕
プロキシ３は、リクエストされたコンテンツを送信する装置であると共に、コンテンツをリクエストして取得する装置である。上述のように、プロキシ３は、サーバ２から受信したコンテンツ等を格納するキャッシュ格納部６と接続されており、リクエストされたコンテンツがキャッシュ格納部６にあれば、キャッシュ格納部６から読み出してクライアント４に送信し、キャッシュ格納部６になければサーバ２にリクエストする。なお、キャッシュ格納部６は、プロキシ３に内蔵されていてもよい。
【００６５】
図１に示すように、プロキシ３は、プロキシ３の動作を統括して制御するプロキシ制御部２２と、プロキシ３が外部の装置と通信するためのプロキシ通信部２１とを備えている。また、プロキシ制御部２２には、レスポンス／リクエスト実行部２３が含まれている。
【００６６】
レスポンス／リクエスト実行部２３は、クライアント４から受信した、コンテンツを要求する要求メッセージで指定されたコンテンツをクライアント４に送信するものである。
【００６７】
具体的には、レスポンス／リクエスト実行部２３は、クライアント４からコンテンツの送信を要求する要求メッセージを待っており、プロキシ通信部２１を介して、クライアント４から要求メッセージを受信すると、要求されたコンテンツがキャッシュ格納部６に格納されているか否かを確認する。
【００６８】
要求されたコンテンツがキャッシュ格納部６に格納されていない場合、レスポンス／リクエスト実行部２３は、クライアント４から送信された要求メッセージの「Host」フィールドを確認して、「Host」フィールドに記述されているＵＲＩの示すサーバ２に対して、クライアント４が要求するコンテンツの要求メッセージを送信する。そして、レスポンス／リクエスト実行部２３は、サーバ２からコンテンツを取得し、取得したコンテンツをキャッシュ格納部６に格納する。レスポンス／リクエスト実行部２３は、取得したコンテンツをキャッシュ格納部６に格納した後、クライアント４へ要求されたコンテンツを送信する。
【００６９】
また、要求されたコンテンツがキャッシュ格納部６に格納されている場合、レスポンス／リクエスト実行部２３は、キャッシュ格納部６に保持しているコンテンツのデータが最新のデータであるか否かをサーバ２に確認するために、要求メッセージに当該コンテンツをプロキシ３が取得した時間情報を記述した「If-Modified-Since」を付加して条件付要求の要求メッセージを作成して、作成した条件付要求の要求メッセージをサーバ２に送信する。
【００７０】
条件付要求の要求メッセージの応答として、サーバ２から「304 NOT Modified」の応答メッセージを受信した場合、レスポンス／リクエスト実行部２３は、キャッシュ格納部６に格納されているコンテンツは最新のデータであると判断して、キャッシュ格納部６から、保持しているコンテンツを読み出し、読み出したコンテンツをクライアント４に送信する。
【００７１】
一方、キャッシュ格納部６に格納されているコンテンツが最新のデータでなければ、条件付要求の要求メッセージの応答として、サーバ２から最新バージョンのコンテンツが送信され、レスポンス／リクエスト実行部２３は、サーバ２から送信されたコンテンツを取得する。レスポンス／リクエスト実行部２３は、取得したコンテンツをキャッシュ格納部６に格納した後、クライアント４へ要求されたコンテンツを送信する。
【００７２】
なお、コンテンツをクライアント４へ送信する際には、送信するコンテンツのヘッダに、サーバ２が付与した、例えば「Cache-Control: must-revalidate」もしくは「Cache-Control: proxy-revalidate」の記述をそのまま保持して、コンテンツを送信してもよい。これにより、コンテンツ送信先のクライアント４が取得したコンテンツを他の要求に従って送信する場合に、クライアント４に対して、送信する前にそのコンテンツが最新バージョンかどうかをサーバ２へ必ず確認させることができる。
【００７３】
すなわち、本実施形態では、プロキシ３は、コンテンツのリクエストを送信してコンテンツを取得する装置であって、リクエストしたコンテンツを保持して、リクエストしたコンテンツを転送先である他の装置（例えば、クライアント４）に転送する中継装置である。
【００７４】
〔クライアント４について〕
クライアント４は、コンテンツをリクエストして取得し、取得したコンテンツを再生する装置である。同図には示していないが、クライアント４は、ユーザ操作を受け付ける入力部を備えており、この入力部で受け付けた入力操作に基づき、コンテンツをリクエストする。
【００７５】
図示のように、クライアント４は、クライアント４の動作を統括して制御するクライアント制御部３２と、クライアント４が外部の装置と通信するためのクライアント通信部３１を備えている。また、クライアント制御部３２には、リクエスト実行部３３およびコンテンツ再生部３４が含まれている。
【００７６】
リクエスト実行部３３は、コンテンツの送信を要求する要求メッセージを生成し、クライアント通信部３１を介してサーバ２に送信し、これに対する応答として応答メッセージを受信する。本発明では、上述のように、リクエスト実行部３３は、サーバ２から応答メッセージとして、プロキシを特定する情報と、当該プロキシにコンテンツを要求する要求メッセージを送信する指示を受信する。リクエスト実行部３３は、サーバ２から上記応答メッセージを受信すると、サーバ２の指示に従って、指定されたプロキシ３に対して、コンテンツの送信を要求する要求メッセージを送信する。そして、リクエスト実行部３３は、サーバ２に指定されたプロキシ３からコンテンツを取得する。
【００７７】
コンテンツ再生部３４は、リクエスト実行部３３が取得したコンテンツを再生する。例えば、取得したコンテンツが動画像のコンテンツである場合には、コンテンツ再生部３４は、取得したコンテンツをデコードし、これにより得られた映像及び音声を外部の表示装置（図示せず）に出力させる。
【００７８】
すなわち、本実施形態では、クライアント４は、コンテンツのリクエストを送信してコンテンツを取得する装置であって、リクエストしたコンテンツを取得して再生するコンテンツ再生装置である。
【００７９】
〔各装置が実行する処理について〕
次に、サーバ２、プロキシ３およびクライアント４の各装置が実行する処理について、図４から６に基づいて説明する。まずは、サーバ２が実行する処理について図４に基づいて説明する。
【００８０】
〔サーバ２が実行する処理について〕
図４は、サーバ２が実行する処理の一例を示すフローチャートである。レスポンス実行部１５は、コンテンツの送信を要求する要求メッセージを受信するのを待っており、サーバ通信部１１を介して、コンテンツの送信を要求する要求メッセージを受信すると（Ｓ４０１）、受信した要求メッセージのヘッダを確認して、受信した要求メッセージがプロキシ３を経由して送信されたものであるか否かを判定する（Ｓ４０２）。
【００８１】
受信した要求メッセージを送信した主体がクライアント４である場合、（Ｓ４０２でＮＯ）、中継装置特定部１６に対して、クライアント４がコンテンツを取得する、その取得先のプロキシ３を特定するように指示する。中継装置特定部１６は、レスポンス実行部１５から指示を受けて、コンテンツ格納先情報記憶部１３からコンテンツ格納先情報を読み出す（Ｓ４０３）。中継装置特定部１６は、読み出したコンテンツ格納先情報を参照して、クライアント４が要求するコンテンツに対応付けられているプロキシ３のＵＲＩを、コンテンツの取得先のアドレス情報として特定する（Ｓ４０４）。中継装置特定部１６は、特定したアドレス情報をレスポンス実行部１５に送信する。レスポンス実行部１５は、中継装置特定部１６が特定したアドレス情報の示すアドレスに存在するプロキシ３から、要求したコンテンツを取得するように指示した応答メッセージを、クライアント４に送信する（Ｓ４０５）。レスポンス実行部１５は、クライアント４に送信した応答メッセージから送信ログを作成し、作成した送信ログを送信ログ記憶部１２に追加する（Ｓ４１０）。
【００８２】
一方、受信した要求メッセージを送信した主体がプロキシ３である場合（Ｓ４０２でＹＥＳ）、レスポンス実行部１５は、続いて、受信した要求メッセージが「If-Modified-Since」等の条件付要求であるか否かを判定する（Ｓ４０６）。受信した要求メッセージが条件付要求でなければ（Ｓ４０６でＮＯ）、レスポンス実行部１５は、プロキシ３から要求されたコンテンツをコンテンツ格納部５から読み出し、プロキシ３からの要求メッセージに対する応答として、読み出したコンテンツをプロキシ３に送信する（Ｓ４０７）。そして、レスポンス実行部１５は、プロキシ３に送信した応答メッセージから送信ログを作成し、作成した送信ログを送信ログ記憶部１２に追加する（Ｓ４１０）。
【００８３】
受信した要求メッセージが条件付要求であれば（Ｓ４０６でＹＥＳ）、レスポンス実行部１５は、さらに、プロキシ３が保持しているコンテンツのデータが最新のデータであるか否かを判定する（Ｓ４０８）。プロキシ３が保持しているコンテンツのデータが最新のデータでなければ（Ｓ４０８でＮＯ）、レスポンス実行部１５は、プロキシ３から要求されたコンテンツをコンテンツ格納部５から読み出し、プロキシ３からの要求メッセージに対する応答として、読み出したコンテンツをプロキシ３に送信する（Ｓ４０７）。一方、プロキシ３が保持しているコンテンツのデータが最新のデータであれば（Ｓ４０８でＹＥＳ）、レスポンス実行部１５は、プロキシ３からの要求メッセージに対する応答として、プロキシ３が保持しているコンテンツのデータが最新のデータであることを示す応答メッセージをプロキシ３に送信する（Ｓ４０９）。そして、レスポンス実行部１５は、プロキシ３に送信した応答メッセージを送信ログ記憶部１２に追加する（Ｓ４１０）。
【００８４】
なお、Ｓ４０７において、レスポンス実行部１５は、プロキシ３にコンテンツを送信する際に、コンテンツのヘッダに、例えば、「Cache-Control: must-revalidate」もしくは「Cache-Control: proxy-revalidate」を追加する。これにより、コンテンツ送信先のプロキシ３がキャッシュ格納部６に保持したコンテンツを他の要求に従って送信する場合に、プロキシ３に対して、送信する前にそのコンテンツが最新バージョンかどうかをサーバへ必ず確認させることができる。
【００８５】
〔プロキシ３が実行する処理について〕
次に、プロキシ３が実行する処理について図５に基づいて説明する。図５は、プロキシ３が実行する処理の一例を示すフローチャートである。
【００８６】
図５に示すように、レスポンス／リクエスト実行部２３は、クライアント４からコンテンツの送信を要求する要求メッセージを待っており、プロキシ通信部２１を介して、クライアント４から要求メッセージを受信すると（Ｓ４２１）、要求されたコンテンツがキャッシュ格納部６に格納されているか否かを確認する（Ｓ４２２）。
【００８７】
要求されたコンテンツがキャッシュ格納部６に格納されていない場合（Ｓ４２２でＮＯ）、レスポンス／リクエスト実行部２３は、クライアント４から送信された要求メッセージの「Host」フィールドを確認して、「Host」フィールドに記述されているＵＲＩの示すサーバ２に対して、クライアント４が要求するコンテンツの要求メッセージを送信する（Ｓ４２３）。そして、レスポンス／リクエスト実行部２３は、サーバ２からコンテンツを取得し（Ｓ４２４）、取得したコンテンツをキャッシュ格納部６に格納する（Ｓ４２５）。レスポンス／リクエスト実行部２３は、取得したコンテンツをキャッシュ格納部６に格納した後、クライアント４へ要求されたコンテンツを送信する（Ｓ４２６）。
【００８８】
要求されたコンテンツがキャッシュ格納部６に格納されている場合（Ｓ４２２でＹＥＳ）、レスポンス／リクエスト実行部２３は、要求メッセージに当該コンテンツを取得した時間情報を記述した「If-Modified-Since」を付加して条件付要求の要求メッセージを作成して、作成した条件付要求の要求メッセージをサーバ２に送信する（Ｓ４２７）。
【００８９】
条件付要求の要求メッセージの応答として、サーバ２から「304 NOT Modified」の応答メッセージを受信した場合（Ｓ４２８でＹＥＳ）、レスポンス／リクエスト実行部２３は、キャッシュ格納部６から、保持しているコンテンツを読み出し、読み出したコンテンツをクライアント４に送信する（Ｓ４２６）。
【００９０】
一方、キャッシュ格納部６に格納されているコンテンツが最新のデータでなければ、条件付要求の要求メッセージの応答として、サーバ２から最新バージョンのコンテンツが送信され、レスポンス／リクエスト実行部２３は、サーバ２から送信された最新バージョンのコンテンツを取得する（Ｓ４２４）。レスポンス／リクエスト実行部２３は、取得したコンテンツをキャッシュ格納部６に格納した後（Ｓ４２５）、クライアント４へ要求されたコンテンツを送信する（Ｓ４２６）。
【００９１】
なお、Ｓ４２６において、コンテンツをクライアント４へ送信する際には、送信するコンテンツのヘッダに、サーバ２が付与した、例えば「Cache-Control: must-revalidate」もしくは「Cache-Control: proxy-revalidate」の記述をそのまま保持して、コンテンツを送信する。これにより、コンテンツ送信先のクライアント４が取得したコンテンツを他の要求に従って送信する場合に、送信する前に、クライアント４に対して、そのコンテンツが最新バージョンかどうかを必ずサーバ２へ確認しなければならない状態を保つことができる。
【００９２】
〔クライアント４が実行する処理について〕
次に、クライアント４が実行する処理について図６に基づいて説明する。図６は、クライアント４が実行する処理の一例を示すフローチャートである。
【００９３】
図６に示すように、リクエスト実行部３３は、サーバ２にコンテンツの送信を要求する要求メッセージを送信する（Ｓ４４１）。リクエスト実行部３３は、要求メッセージに対する応答として、指定されたプロキシ３からコンテンツを取得するように指示した応答メッセージを受信する（Ｓ４４２）。リクエスト実行部３３は、サーバ２の指示に従って、サーバ２から指定されたプロキシ３に対して、要求メッセージを送信する（Ｓ４４３）。そして、リクエスト実行部３３は、要求メッセージを送信したプロキシ３から、その応答として、コンテンツを取得する（Ｓ４４４）。
【００９４】
〔実施例１〕
以下、図７に実施例１を示し、本実施形態についてさらに詳しく説明する。実施例１では、クライアント４に対して、コンテンツを取得させるプロキシ３を指示するコンテンツ配信システム１の動作例を示す。図７は、実施例１におけるコンテンツ配信システム１の動作シーケンスの一例を示す図である。
【００９５】
なお、実施例１では、前提として、コンテンツ格納部５にコンテンツ１およびコンテンツ２が格納されており、キャッシュ格納部６ａおよび６ｂには、何もキャッシュされておらず、サーバ２は、デフォルトとして、コンテンツ１の取得先をプロキシ３ａとし、コンテンツ２の取得先をプロキシ３ｂとして設定しているものとする。また、実施例１では、図７に示す処理の開始時に、送信ログ記憶部１２およびコンテンツ格納先情報記憶部１３には、それぞれ、送信ログおよびコンテンツ格納先情報が記憶されていないとする。そして、レスポンス実行部１５が図２に示す送信ログを、応答メッセージを送信するごとに作成し、コンテンツ格納先情報生成部１７が図３に示すコンテンツ格納先情報を、コンテンツ送信ログまたはバージョン通知ログ（「送信内容」が「200 OK」または「304 Not Modified」である送信ログ）が送信ログ記憶部１２に追加される度に、作成するものとする。
【００９６】
また、クライアント４が要求メッセージを送信して、当該要求メッセージに対応する応答メッセージを受信するまでを１つのセッションとする。
【００９７】
図７に示すように、まず、セッション１１０において、クライアント４ａがコンテンツ１の送信を要求する要求メッセージをサーバ２に送信する（リクエスト１１１）。リクエスト１１１を受信したサーバ２では、レスポンス実行部１５は、中継装置特定部１６に取得先のプロキシ３を特定するように指示する。中継装置特定部１６は、指示を受けて、コンテンツ格納先情報記憶部１３のコンテンツ格納先情報を確認する（処理１１２）。ここでは、コンテンツ格納先情報記憶部１３には、コンテンツ１の取得先を示すコンテンツ格納先情報が無いため、中継装置特定部１６は、コンテンツ１の取得先として、デフォルトで設定されているプロキシ３ａをコンテンツ１の取得先として特定する。レスポンス実行部１５は、中継装置特定部１６が特定したアドレス情報の示すプロキシ３から、要求したコンテンツを取得するように指示した応答メッセージを、クライアント４ａに送信する（レスポンス１１３）。そして、レスポンス実行部１５は、送信した応答メッセージに基づいて、送信ログを作成し、送信ログ記憶部１２に追加する（処理１１４）。
【００９８】
次に、セッション１２０において、レスポンス１１３を受信したクライアント４ａは、サーバ２の指示に従って、プロキシ３ａに対して、コンテンツ１の送信を要求する要求メッセージを送信する（リクエスト１２１）。リクエスト１２１を受信したプロキシ３ａは、コンテンツ１がキャッシュ格納部６ａに格納されているかどうかを確認する（処理１２２）。ここでは、キャッシュ格納部６ａにコンテンツ１が格納されていないため、リクエスト１２１に基づく要求メッセージをサーバ２に送信する（リクエスト１２３）。リクエスト１２３を受信したサーバ２では、リクエスト１２３がプロキシ３ａから送信されているため、レスポンス実行部１５がプロキシ３ａにコンテンツ１を送信する（レスポンス１２４）。レスポンス１２４を受信したプロキシ３ａは、取得したコンテンツ１をキャッシュ格納部６ａに格納してキャッシュ登録する（処理１２５）。キャッシュ登録した後、プロキシ３ａは、リクエスト１２１に対する応答として、クライアント４ａにコンテンツ１を送信する（レスポンス１２６）。なお、レスポンス実行部１５は、レスポンス１２４を送信した後、送信した応答メッセージに基づいて、送信ログを作成し、送信ログ記憶部１２に追加する（処理１２７）。また、コンテンツ格納先情報生成部１７は、コンテンツ１とプロキシ３ａのアドレス情報とを対応付けてコンテンツ格納先情報を生成し、コンテンツ格納先情報記憶部１３に格納する（処理１２８）。
【００９９】
次に、セッション１３０およびセッション１４０において、クライアント４ｂがコンテンツ２を取得する。セッション１３０およびセッション１４０における、クライアント４ｂ、プロキシ３ｂおよびサーバ２の動作は、セッション１１０およびセッション１２０における、クライアント４ａ、プロキシ３ａおよびサーバ２の動作と扱うデータが異なるだけで同様のため、ここでは説明を省略する。
【０１００】
セッション１４０終了後には、プロキシ３ａのキャッシュ格納部６ａにコンテンツ１がキャッシュ登録され、プロキシ３ｂのキャッシュ格納部６ｂにコンテンツ２がキャッシュ登録された状態である。すなわち、コンテンツ格納先情報記憶部１３にコンテンツ１とプロキシ３ａとが対応付けられたコンテンツ格納先情報と、コンテンツ２とプロキシ３ｂとが対応付けられたコンテンツ格納先情報とが格納されている状態である。
【０１０１】
この状態で次に、セッション１５０において、クライアント４ａがコンテンツ２の送信を要求する要求メッセージをサーバ２に送信する（リクエスト１５１）。リクエスト１５１を受信したサーバ２では、レスポンス実行部１５は、中継装置特定部１６に取得先のプロキシ３を特定するように指示する。中継装置特定部１６は、指示を受けて、コンテンツ格納先情報記憶部１３のコンテンツ格納先情報を確認する（処理１５２）。ここでは、コンテンツ格納先情報記憶部１３には、コンテンツ２とプロキシ３ｂとが対応付けられているコンテンツ格納先情報があるため、中継装置特定部１６は、コンテンツ２の取得先としてプロキシ３ｂを特定する。レスポンス実行部１５は、中継装置特定部１６が特定したプロキシ３ｂから、要求したコンテンツを取得するように指示した応答メッセージを、クライアント４ａに送信する（レスポンス１５３）。そして、レスポンス実行部１５は、送信した応答メッセージに基づいて、送信ログを作成し、送信ログ記憶部１２に追加する（処理１５４）。
【０１０２】
次に、セッション１６０において、レスポンス１５３を受信したクライアント４ａは、サーバ２の指示に従って、プロキシ３ｂに対して、コンテンツ２の送信を要求する要求メッセージを送信する（リクエスト１６１）。リクエスト１６１を受信したプロキシ３ｂは、コンテンツ２がキャッシュ格納部６ｂに格納されているかどうかを確認する（処理１６２）。キャッシュ格納部６ｂにはコンテンツ２が既に格納されているため、プロキシ３ｂは、キャッシュ格納部６ｂに格納されているコンテンツ２が最新のデータであるかどうかをサーバ２に確認するため、リクエスト１２１に基づく要求メッセージに「If-Modified-Since」を付加して条件付要求としてサーバ２に送信する（リクエスト１６３）。リクエスト１６３を受信したサーバ２では、リクエスト１６３がプロキシ３ｂを経由しており、条件付要求の要求メッセージであるため、レスポンス実行部１５が、プロキシ３ｂが保持しているコンテンツ２が最新のデータであるかどうかを確認する（処理１６４）。レスポンス実行部１５は、プロキシ３ｂが保持しているコンテンツ２が最新のデータであると判定して、プロキシ３ｂに「304 NOT Modified」の応答メッセージを送信する（レスポンス１６５）。レスポンス１６５を受信したプロキシ３ｂは、キャッシュ格納部６ｂに格納しているコンテンツ２を読み出し、リクエスト１６１に対する応答として、クライアント４ａに読み出したコンテンツ２を送信する（レスポンス１６６）。なお、レスポンス実行部１５は、レスポンス１６５を送信した後、送信した応答メッセージに基づいて、送信ログを作成し、送信ログ記憶部１２に追加する（処理１６７）。また、コンテンツ格納先情報生成部１７は、コンテンツ２とプロキシ３ｂのアドレス情報とを対応付けてコンテンツ格納先情報を生成し、コンテンツ格納先情報記憶部１３に格納する（処理１６８）。
【０１０３】
上述のように、本実施形態では、クライアント４は、サーバ２に対してコンテンツを要求すると、サーバ２は、過去に同じコンテンツをプロキシ３に送信していた場合、当該プロキシ３が当該コンテンツをキャッシュしていると判断し、クライアント４に対して、要求したコンテンツを保持していると判断したプロキシ３から、当該コンテンツを取得するように指示する。
【０１０４】
本実施形態では、ＭＰ４ファイルフォーマットの動画コンテンツを用いたＶＯＤサービスを想定しているため、サーバ２、プロキシ３、ネットワーク７への負荷という観点では、「コンテンツの送受信」が最も負荷のかかる動作となる。
【０１０５】
従って、実施例１におけるセッション１１０〜１２０も、セッション１３０〜１４０も、リクエストとレスポンスの往復は、従来方法に比べて増えているが、「コンテンツの送受信」に関しては、プロキシ３を経由するだけでほとんど変わらない。しかしながら、セッション１１０〜１２０およびセッション１３０〜１４０を実行したことによって、セッション１６０における「コンテンツ送受信」がプロキシ３ｂとクライアント４ａとの間だけで済むようになるため、サーバ２の処理負荷およびサーバ２−プロキシ３間のネットワークの伝送情報量（ネットワーク負荷）が特に小さくなっている。
【０１０６】
ここでは、説明の便宜のため、プロキシ３を２台、クライアント４を２台、サーバ２が管理するコンテンツを２種類という最も簡単な例を示したが、実際のＶＯＤ等のコンテンツ配信サービスの場合は、はるかに大規模なシステムで多種多量のコンテンツ送受信が行われるため、ここに示したサーバ２とサーバ２−プロキシ３間のネットワークへの負荷軽減効果は、非常に高くなる。言い換えれば、従来方法では、クライアント４の台数が多くなると、特にサーバ２の処理負荷およびサーバ２−クライアント４間のネットワークへの負荷がクライアント４の台数に応じて非常に大きくなっていた。しかしながら、本発明を用いることで、サーバ２はプロキシ３の処理能力やキャッシュ機能を効率よく活用することができるようになり、結果的に、サーバ２およびサーバ２−プロキシ３間のネットワークに掛かる負荷をプロキシ３またはプロキシ３−クライアント４間のネットワークへ分散させることが可能となる。
【０１０７】
〔実施例１におけるＨＴＴＰメッセージ〕
続いて、図７の動作シーケンス図で使用されるリクエストおよびレスポンスの詳細を図８〜図１０に基づいて説明する。図８〜図１０は、リクエストまたはレスポンスとして送受信されるＨＴＴＰメッセージの一例を示す図であり、図８は、セッション１１０およびセッション１２０におけるＨＴＴＰメッセージの一例を示す図であり、図９は、セッション１３０およびセッション１４０におけるＨＴＴＰメッセージの一例を示す図であり、図１０は、セッション１５０およびセッション１６０におけるＨＴＴＰメッセージの一例を示す図である。
【０１０８】
図８の（ａ）は、図７に示すリクエスト１１１の、図８の（ｂ）はレスポンス１１３の、図８の（ｃ）はリクエスト１２１の、図８の（ｄ）はリクエスト１２３の、図８の（ｅ）はレスポンス１２４の、図８の（ｆ）はレスポンス１２６のＨＴＴＰメッセージをそれぞれ示している。
【０１０９】
また、図９の（ａ）は、図７に示すリクエスト１３１の、図９の（ｂ）はレスポンス１３３の、図９の（ｃ）はリクエスト１４１の、図９の（ｄ）はリクエスト１４３の、図９の（ｅ）はレスポンス１４４の、図９の（ｆ）はレスポンス１４６のＨＴＴＰメッセージをそれぞれ示している。
【０１１０】
また、図１０の（ａ）は、図７に示すリクエスト１５１の、図１０の（ｂ）はレスポンス１５３の、図１０の（ｃ）はリクエスト１６１の、図１０の（ｄ）はリクエスト１６３の、図１０の（ｅ）はレスポンス１６５の、図１０の（ｆ）はレスポンス１６６のＨＴＴＰメッセージをそれぞれ示している。
【０１１１】
〔セッション１１０およびセッション１２０におけるＨＴＴＰメッセージ〕
まず、セッション１１０およびセッション１２０におけるＨＴＴＰメッセージを図８に基づいて説明する。なお、図９の（ａ）〜（ｆ）は、図８の（ａ）〜（ｆ）にそれぞれ対応しており、図９では、図８のコンテンツ１がコンテンツ２に、プロキシ３ａがプロキシ３ｂに、クライアント４ａがクライアント４ｂに変更しているだけであるから、図９に基づく、セッション１３０およびセッション１４０におけるＨＴＴＰメッセージの説明は省略する。なお、ここでは、ＨＴＴＰメッセージに含まれる要素のうち、本発明に特有の要素を中心に説明し、公知の要素については適宜説明を省略する。
【０１１２】
（コンテンツを要求するリクエスト１１１）
図８の（ａ）に示すように、クライアント４ａからサーバ２に対してコンテンツ１を要求するリクエスト１１１に対応するＨＴＴＰメッセージには、リクエストラインと付加情報を通知するヘッダが含まれる。
【０１１３】
図８の（ａ）のリクエストラインには、コンテンツを取得するメソッドを示す「ＧＥＴ」の後に取得するコンテンツを特定する情報が記述されている。具体的には、「／コンテンツ名」の形式で記述されている。つまり、図８の（ａ）のＨＴＴＰメッセージは、「content 1」が示すコンテンツ１の送信を要求するリクエストということになる。
【０１１４】
また、図８の（ａ）のヘッダには、リクエスト先のサーバを特定する「Host」ヘッダが含まれており、この「Host」ヘッダに、サーバ２のアドレスを示す「example.com」が記述されている。
【０１１５】
また、図８の（ａ）のヘッダには、クライアント４ａが処理可能なデータ形式を示す「Accept」ヘッダが含まれており、この「Accept」ヘッダに、ＭＰ４フォーマットの動画データを示す情報「video/mp4」が記述されている。これにより、このリクエストを送信した装置であるクライアント４ａは、ＭＰ４フォーマットの動画データを受信可能であることをリクエストの送信先の装置であるサーバ２に伝えることができる。
【０１１６】
（コンテンツの取得先を指示するレスポンス１１３）
図８の（ｂ）に示すように、サーバ２からクライアント４ａに対してコンテンツ１の取得先を指示するレスポンス１１３に対応するＨＴＴＰメッセージには、レスポンスラインとヘッダが含まれる。
【０１１７】
図８の（ｂ）のレスポンスラインには、「Location」ヘッダで指定したプロキシ３を使用するように指示する情報が記述されている。具体的には、「ステータス番号 メッセージ」の形式で記述されている。つまり、図８の（ｂ）のＨＴＴＰメッセージは、下記の「Location」ヘッダで指定したプロキシ３を使用してコンテンツ１を要求するように指示したレスポンスということになる。
【０１１８】
また、図８の（ｂ）のヘッダには、使用するプロキシを特定する「Location」ヘッダが含まれており、この「Location」ヘッダに、使用するプロキシ３のアドレスを示すアドレス情報「http://example-proxy1.com」が記述されている。これにより、このレスポンスを受信した装置であるクライアント４ａは、コンテンツ１を要求する相手先であるプロキシ３のアドレス情報を知ることができる。
【０１１９】
（指定されたプロキシ３にコンテンツを要求するリクエスト１２１）
図８の（ｃ）に示すように、クライアント４ａからプロキシ３ａに対してコンテンツ１を要求するリクエスト１２１に対応するＨＴＴＰメッセージには、リクエストラインとヘッダが含まれる。
【０１２０】
図８の（ｃ）のリクエストラインには、コンテンツを取得するメソッドを示す「ＧＥＴ」の後にリクエスト対象となるコンテンツのＵＲＩが記述されている。具体的には、「http://コンテンツを管理するサーバ名／コンテンツ名」が記述されている。つまり、図８の（ｃ）のＨＴＴＰメッセージは、サーバ２の管理するコンテンツ１の送信を要求するリクエストということになる。
【０１２１】
また、図８の（ｃ）のヘッダには、リクエスト１１１と同様に、「Host」ヘッダおよび「Accept」ヘッダが含まれている。
【０１２２】
（プロキシ３ａからサーバ２にコンテンツを要求するリクエスト１２３）
図８の（ｄ）に示すように、プロキシ３ａからサーバ２に対してコンテンツ１を要求するリクエスト１２３に対応するＨＴＴＰメッセージには、リクエストラインとヘッダが含まれる。
【０１２３】
図８の（ｄ）のリクエストラインには、コンテンツを取得するメソッドを示す「ＧＥＴ」の後にリクエスト対象となるコンテンツのＵＲＩが記述されている。具体的には、「／コンテンツ名」が記述されている。つまり、図８の（ａ）のＨＴＴＰメッセージは、「content 1」が示すコンテンツ１の送信を要求するリクエストということになる。
【０１２４】
また、図８の（ｄ）のヘッダには、リクエスト１１１と同様に、「Host」ヘッダおよび「Accept」ヘッダが含まれている。さらに、メッセージの転送経路を示す「Via」ヘッダが含まれており、この「Via」ヘッダに、メッセージを経由した装置のアドレスを示す「example-proxy1.com」が記述されている。これにより、このリクエストを受信した装置であるサーバ２が、どの装置（この場合、プロキシ３ａ）を経由して当該リクエストが送信されてきたかを知ることができる。
【０１２５】
（サーバ２からプロキシ３ａにコンテンツを送信するレスポンス１２４）
図８の（ｅ）に示すように、サーバ２からプロキシ３ａに対してコンテンツ１を送信するレスポンス１２４に対応するＨＴＴＰメッセージには、レスポンスライン、ヘッダ、および「content1」を格納するボディが含まれる。
【０１２６】
図８の（ｅ）のレスポンスラインには、リクエストを正常に受け付けたことを示す、つまり、要求したコンテンツを送信することを示す情報が記述されている。具体的には、「ステータス番号 応答メッセージ」の形式で記述されている。
【０１２７】
ヘッダには、送信するコンテンツに関する情報が記述される。図示の例では、コンテンツを送信した日時を示す「Date」ヘッダ、送信するコンテンツのキャッシュに関する指示を示す「Cache-Control」ヘッダ、および、送信するコンテンツの種別を示す「Content-Type」ヘッダが含まれている。
【０１２８】
図示の例では、「Cache-Control」ヘッダに、送信したコンテンツのキャッシュを他に送信する前に、キャッシュしているコンテンツが最新のデータであるかどうかを必ず確認させることを示す「must-revalidate」が記述されている。また、「Content-Type」ヘッダに、送信するコンテンツがＭＰ４フォーマットの動画データであることを示す「video/mp4」が記述されている。
【０１２９】
そして、ボディには、コンテンツ１のデータを示す「[binary-data: content1]」が記述されている。
【０１３０】
（プロキシ３ａからクライアント４ａにコンテンツを送信するレスポンス１２６）
図８の（ｆ）に示すように、プロキシ３ａからクライアント４ａに対してコンテンツ１を送信するレスポンス１２６に対応するＨＴＴＰメッセージには、レスポンスライン、ヘッダ、およびボディが含まれる。
【０１３１】
図８の（ｆ）のレスポンスラインには、リクエストを正常に受け付けたことを示す、つまり、要求したコンテンツを送信することを示す情報が記述されている。具体的には、「ステータス番号 応答メッセージ」の形式で記述されている。
【０１３２】
ヘッダには、送信するコンテンツに関する情報が記述される。図示の例では、送信するコンテンツのキャッシュに関する指示を示す「Cache-Control」ヘッダ、送信するコンテンツの種別を示す「Content-Type」ヘッダ、および、メッセージの転送経路を示す「Via」ヘッダが含まれている。
【０１３３】
図示の例では、レスポンス１２４と同様に、「Cache-Control」ヘッダに「must-revalidate」が記述されており、「Content-Type」ヘッダに「video/mp4」が記述されている。また、「Via」ヘッダは、「Via」ヘッダを含むリクエストが装置を経由して送信されてきたことを示す。「Via」ヘッダには、経由した装置のアドレスを示すアドレス情報が記述されており、レスポンス１２４では、経由した装置であるプロキシ３ａのアドレスを示すアドレス情報「example-proxy1.com」が記述されている。
【０１３４】
そして、ボディには、コンテンツ１のデータ実体（バイナリデータ）が含まれており、コンテンツ１のデータを示す「[binary-data: content1]」が記述されている。
【０１３５】
〔セッション１５０およびセッション１６０におけるＨＴＴＰメッセージ〕
次に、セッション１５０およびセッション１６０におけるＨＴＴＰメッセージを図１０に基づいて説明する。なお、図１０の（ａ）〜（ｃ）、（ｆ）は、図８の（ａ）〜（ｃ）、（ｆ）にそれぞれ対応しており、図１０では、図８のコンテンツ１がコンテンツ２に、プロキシ３ａがプロキシ３ｂに変更しているだけであるから、リクエスト１５１、レスポンス１５３、リクエスト１６１およびレスポンス１６６のＨＴＴＰメッセージの説明は省略する。
【０１３６】
（プロキシ３ｂからサーバ２に条件付でコンテンツを要求するリクエスト１６３）
図１０の（ｄ）に示すように、プロキシ３ｂからサーバ２に対して条件付でコンテンツ２を要求するリクエスト１６３に対応するＨＴＴＰメッセージには、リクエストラインおよびヘッダが含まれる。
【０１３７】
図１０の（ｄ）のリクエストラインには、コンテンツを取得するメソッドを示す「ＧＥＴ」の後にリクエスト対象となるコンテンツのＵＲＩが記述されている。具体的には、「／コンテンツ名」が記述されている。
【０１３８】
また、図１０の（ｄ）のヘッダには、当該ヘッダに記述した日時以降に新しいデータに更新していれば、最新のデータのコンテンツを要求することを示す「If-Modified-Since」ヘッダ、「Accept」ヘッダ、「Host」ヘッダ、および、「Via」ヘッダが含まれている。ここでは、「If-Modified-Since」ヘッダに、リクエスト１６３で要求したコンテンツ２をプロキシ３ｂがキャッシュした日時を示す「Sun, 31 May 2013 15:03:08 GMT」が記述されている。これにより、このリクエスト１６３を受信した装置であるサーバ２が、プロキシ３ｂがキャッシュした日時から、プロキシ３ｂが保持しているコンテンツ２が最新のデータであるか否かを判定することができる。
【０１３９】
（サーバ２からプロキシ３ｂに対するレスポンス１６５）
図１０の（ｅ）に示すように、サーバ２からプロキシ３ｂに対して、プロキシ３ｂが保持するコンテンツ２が最新のデータであることを示すレスポンス１６５に対応するＨＴＴＰメッセージには、レスポンスラインおよびヘッダが含まれる。
【０１４０】
図１０の（ｅ）のレスポンスラインには、プロキシ３ｂがキャッシュ日時以降に、そのキャッシュしているコンテンツを更新していないことを示す応答メッセージとそのステータス番号が記述されている。具体的には、「ステータス番号 応答メッセージ」が記述されている。
【０１４１】
また、図１０の（ｅ）のヘッダには、レスポンス１６５を送信した日時を示す「Date」ヘッダが含まれている。
【０１４２】
＜第２の実施形態＞
本発明の第２の実施形態では、サーバ２の処理負荷およびサーバ２からのデータ送出に用いられるネットワークの負荷をより広く分散できるように、クライアント４がプロキシの機能を備え、クライアント４がプロキシとして振舞う例を示す。
【０１４３】
より詳細には、本実施形態では、クライアント４が記憶部を備え、取得したコンテンツをキャッシュ登録し、サーバ２が過去に送信した応答メッセージから、コンテンツを保持している（可能性のある）装置（プロキシ３またはクライアント４）を特定し、コンテンツを要求した装置（クライアント４）に対して、特定した装置から当該コンテンツを取得するように指示する。
【０１４４】
すなわち、本実施形態では、クライアント４は、コンテンツのリクエストを送信してコンテンツを取得する装置であって、リクエストしたコンテンツを保持して、リクエストしたコンテンツを他の装置に転送する中継装置（プロキシ）として動作したり、コンテンツのリクエストを送信してコンテンツを取得する装置であって、リクエストしたコンテンツを取得して再生するコンテンツ再生装置として動作したりする。
【０１４５】
なお、以下では、プロキシ３およびプロキシとして動作するクライアント４を、中継装置と称し、リクエストしたコンテンツを取得して再生するクライアント４を、コンテンツ再生装置と称する。
【０１４６】
本実施形態について図１１から図１９に基づいて説明すると以下の通りである。第２の実施形態は、第１の実施形態と異なり、クライアント４がプロキシの機能を有しているだけであり、その他の点では、第１の実施形態と同様のため、主に、第１の実施形態と異なる点について説明する。
【０１４７】
〔コンテンツ配信システム１ａの概要〕
まず、本実施形態のコンテンツ配信システム１ａの概要について、図１１に基づいて説明する。図１１は、第２の実施形態に係るコンテンツ配信システム１ａの概要およびコンテンツ配信システム１ａを構成する各装置の要部構成を示す図である。図１１に示すように、コンテンツ配信システム１ａは、サーバ２、プロキシ３、並びに、クライアント４ｃおよび４ｄを含む。また、コンテンツ配信システム１ａは、サーバ２と接続しているコンテンツ格納部５と、プロキシ３と接続しているキャッシュ格納部６と、クライアント４ｃ、４ｄとそれぞれ接続しているクライアント記憶部８ｃ、８ｄとを含む。
【０１４８】
なお、以下では、クライアント記憶部８ｃ、８ｄを総称してクライアント記憶部８と称する。
【０１４９】
本実施形態におけるプロキシ３は、第１の実施形態におけるプロキシ３と構成およびその動作処理が同一であるため、ここでは、プロキシ３の詳細について説明を省略する。
【０１５０】
〔サーバ２について〕
本実施形態におけるサーバ２は、第１の実施形態におけるサーバ２と同じ構成である。ただし、クライアント４がプロキシとして動作することもあるため、レスポンス実行部１５、中継装置特定部１６、および、コンテンツ格納先情報生成部１７の動作が一部異なっている。
【０１５１】
レスポンス実行部１５は、サーバ通信部１１を介して、中継装置またはコンテンツ再生装置から、コンテンツの送信を要求する要求メッセージを受信すると、当該要求メッセージが中継装置から送信されたものであるか否かに応じて、受信した要求メッセージに対する応答メッセージを中継装置またはコンテンツ再生装置に送信する。
【０１５２】
具体的には、レスポンス実行部１５は、コンテンツの送信を要求する要求メッセージを受信するのを待っており、サーバ通信部１１を介して、コンテンツの送信を要求する要求メッセージを受信すると、受信した要求メッセージのヘッダを確認して、受信した要求メッセージが中継装置を経由して送信されたものであるか否かを判定する。例えば、レスポンス実行部１５は、要求メッセージを受信すると、受信した要求メッセージに、「Via」ヘッダ（転送経路情報）が含まれる場合、受信した要求メッセージが、コンテンツ再生装置からの要求メッセージを受けて中継装置が送信したものであると判定し、一方、受信した要求メッセージに、「Via」ヘッダが含まれていない場合、コンテンツ再生装置から、直接、要求メッセージが送信されたものであると判定してもよい。
【０１５３】
レスポンス実行部１５は、受信した要求メッセージが中継装置から送信されたものでない場合、つまり、要求メッセージの送信元の装置であるコンテンツ再生装置から、直接、コンテンツを要求する要求メッセージを受信すると、中継装置特定部１６に対して、コンテンツ再生装置が要求したコンテンツを保持する（可能性のある）中継装置のアドレス情報（例えば、プロキシ３またはクライアント４のＵＲＩ等）を特定するように指示する。そして、レスポンス実行部１５は、中継装置特定部１６から、コンテンツ再生装置が要求するコンテンツを保持する中継装置のアドレス情報を受信すると、コンテンツ再生装置からの要求メッセージに対する応答として、中継装置特定部１６が特定したアドレス情報で特定される装置から、コンテンツを取得するように指示する応答メッセージをコンテンツ再生装置に送信する。例えば、レスポンス実行部１５は、応答メッセージとして「305 USE Proxy」を用いて、「Location」フィールドに、中継装置特定部１６が特定したアドレス情報を与えることで、コンテンツ再生装置に対して、コンテンツ再生装置が要求したコンテンツを保持する（可能性のある）中継装置に対して、コンテンツの要求メッセージを再送するよう指示する。
【０１５４】
また、レスポンス実行部１５は、受信した要求メッセージが中継装置を経由して送信されたものである場合、つまり、中継装置から要求メッセージを受信した場合には、続いて、受信した要求メッセージが「If-Modified-Since」等の条件付要求であるか否かを判定する。受信した要求メッセージが条件付要求でなければ、レスポンス実行部１５は、要求されたコンテンツをコンテンツ格納部５から読み出し、要求メッセージに対する応答として、読み出したコンテンツを、要求メッセージを送信した中継装置に送信する。
【０１５５】
一方、受信した要求メッセージが条件付要求であれば、レスポンス実行部１５は、続いて、要求メッセージを送信した中継装置が保持しているコンテンツのデータが最新のデータであるか否かを判定する。換言すると、レスポンス実行部１５は、要求メッセージを送信した中継装置が保持しているコンテンツのデータと、コンテンツ格納部５に格納されている同じコンテンツのデータとが同一であるか否かを判定する。
【０１５６】
要求メッセージを送信した中継装置が保持しているコンテンツのデータが最新のデータでなければ、レスポンス実行部１５は、要求されたコンテンツをコンテンツ格納部５から読み出し、要求メッセージに対する応答として、読み出したコンテンツを、要求メッセージを送信した中継装置に送信する。また、要求メッセージを送信した中継装置が保持しているコンテンツのデータが最新のデータであれば、レスポンス実行部１５は、要求メッセージに対する応答として、要求メッセージを送信した中継装置が保持しているコンテンツのデータが最新のデータであることを示す応答メッセージを、要求メッセージを送信した中継装置に送信する。レスポンス実行部１５は、例えば、要求メッセージを送信した中継装置が保持しているコンテンツのデータが最新のデータであることを示す応答メッセージとして「304 NOT modified」を、要求メッセージを送信した中継装置に送信する。
【０１５７】
また、レスポンス実行部１５は、第１の実施形態と同様に、送信した応答メッセージから送信ログを作成して、作成した送信ログを送信ログ記憶部１２に記憶する。
【０１５８】
なお、レスポンス実行部１５は、第１の実施形態と同様に、要求メッセージを送信した中継装置にコンテンツを送信する際に、コンテンツのヘッダに、例えば、「Cache-Control: must-revalidate」もしくは「Cache-Control: proxy-revalidate」を追加してもよい。これにより、コンテンツを取得した中継装置が取得したコンテンツを他の要求に従って送信する場合に、コンテンツを取得した中継装置に対して、送信する前にそのコンテンツが最新バージョンかどうかをサーバ２へ必ず確認させることができる。
【０１５９】
中継装置特定部１６は、レスポンス実行部１５の指示に従って、コンテンツ再生装置が要求したコンテンツを保持している（可能性のある）中継装置を特定するものである。
【０１６０】
具体的には、中継装置特定部１６は、レスポンス実行部１５から指示を受けて、コンテンツ格納先情報記憶部１３からコンテンツ格納先情報を読み出す。中継装置特定部１６は、読み出したコンテンツ格納先情報を参照して、コンテンツ再生装置が要求するコンテンツに対応付けられている中継装置のアドレス情報を、コンテンツの取得先のアドレス情報として特定する。中継装置特定部１６は、特定したアドレス情報をレスポンス実行部１５に送信する。
【０１６１】
また、中継装置特定部１６は、コンテンツ格納先情報記憶部１３に、コンテンツ再生装置が要求するコンテンツを含むコンテンツ格納先情報が格納されていない場合、コンテンツ再生装置が要求するコンテンツごとに、予め定められた（デフォルトの）アドレス情報を当該コンテンツの取得先のアドレス情報として特定してもよい。また、中継装置特定部１６は、コンテンツ格納先情報記憶部１３に、コンテンツ再生装置が要求するコンテンツを含むコンテンツ格納先情報が格納されていない場合、サーバ２とネットワーク７を介して接続している中継装置の中からランダムに、当該コンテンツの取得先を特定してもよい。
【０１６２】
また、中継装置特定部１６は、コンテンツ再生装置が要求するコンテンツに対応付けられている中継装置のアドレス情報を含むコンテンツ格納先情報がコンテンツ格納先情報記憶部１３に複数存在する場合、複数のアドレス情報をコンテンツの取得先のアドレス情報として特定し、特定した複数のアドレス情報を含むコンテンツ格納先リストを作成してもよい。中継装置特定部１６は、複数のアドレス情報をコンテンツの取得先のアドレス情報として特定した場合、複数のアドレス情報に優先順位を付加してコンテンツ格納先リストを作成してもよい。
【０１６３】
また、中継装置特定部１６は、実施形態１と同様に、コンテンツ格納先情報に含まれる日時に基づいて、コンテンツの取得先を特定してもよい。また、コンテンツ再生装置と中継装置との物理的、もしくは、ネットワーク構造的な距離に基づいて、コンテンツの取得先を特定してもよい。さらに、中継装置特定部１６は、中継装置の負荷状況も考慮して、コンテンツ再生装置の要求するコンテンツを保持する（可能性のある）中継装置であって、負荷の少ない中継装置を特定しても良い。より詳細には、中継装置特定部１６は、送信ログ記憶部１２に格納されている送信ログも参照して、コンテンツの取得先のアドレス情報を特定してもよい。加えて、中継装置特定部１６は、中継装置からサーバ２へのアクセス数も考慮して、コンテンツ再生装置の要求するコンテンツを保持する（可能性のある）中継装置を特定しても良い。なお、本実施形態において、中継装置特定部１６が実行するコンテンツ再生装置の要求するコンテンツを保持する（可能性のある）中継装置を特定する処理は、実施形態１における、中継装置特定部１６が実行するクライアント４の要求するコンテンツを保持する（可能性のある）プロキシ３を特定する処理と同様であるので、具体的な処理に関する説明を省略する。
【０１６４】
コンテンツ格納先情報生成部１７は、送信ログ記憶部１２に格納されている送信ログから、コンテンツを保持する（可能性のある）中継装置のアドレス情報を特定するためのコンテンツ格納先情報を生成して、コンテンツ格納先情報記憶部１３に格納するものである。第２の実施形態では、第１の実施形態と異なり、コンテンツ格納先情報生成部１７は、コンテンツを保持する（可能性のある）装置として、プロキシ３だけではなくクライアント４も含める。
【０１６５】
具体的には、コンテンツ格納先情報生成部１７は、サーバ２が中継装置にコンテンツを送信したことを示す送信ログ（コンテンツ送信ログ）を参照して特定した、サーバ２が送信したコンテンツと、コンテンツの送信先のアドレス情報と、サーバ２が当該コンテンツを送信した日時とを対応付けて、コンテンツ格納先情報を生成する。コンテンツの送信先装置は、そのコンテンツを格納していると考えられるからである。
【０１６６】
また、コンテンツ格納先情報生成部１７は、中継装置の保持しているコンテンツが最新バージョンであることを応答メッセージとしてサーバ２が送信したことを示す送信ログ（バージョン通知ログ）を参照して特定した、最新バージョンであることを確認したコンテンツと、当該コンテンツを保持している装置（中継装置）のアドレス情報と、サーバ２が当該応答メッセージを送信した日時とを対応付けて、コンテンツ格納先情報を生成する。最新バージョンであることを示す応答メッセージの送信先装置は、そのコンテンツの最新バージョンを格納しているからである。
【０１６７】
さらに、コンテンツ格納先情報生成部１７は、サーバ２がコンテンツ再生装置に対して、装置を指定してコンテンツを取得させるコンテンツ取得指示の送信示す送信ログ（取得指示ログ）を参照して特定した、コンテンツと、当該コンテンツ取得指示の送信先のアドレス情報と、当該応答メッセージの送信日時とを対応付けて、コンテンツ格納先情報を生成してもよい。コンテンツ取得指示の送信先の装置は、その後コンテンツを取得し格納している可能性が高いためである。
【０１６８】
なお、コンテンツ取得指示の送信先の装置は、その後コンテンツの取得に失敗する可能性もあるので、コンテンツ送信ログと取得指示ログの両方を用いてコンテンツ格納先情報を生成しても良い。つまり、取得指示ログと、サーバ２からその中継装置にコンテンツを送信したことを示すコンテンツ送信ログが存在する場合に、当該コンテンツと、取得指示ログの送信先アドレスと、コンテンツ送信ログの日時とを対応付けてコンテンツ格納先情報としてもよい。コンテンツ取得指示でコンテンツ取得先に指定した中継装置がコンテンツを格納していなかった場合、サーバ２にそのコンテンツをリクエストすると考えられ、サーバ２がそのリクエストに応えていた場合には、そのコンテンツは中継装置を介してコンテンツ取得指示の送信先装置に送信されるからである。
【０１６９】
また、コンテンツ格納先情報生成部１７は、取得指示ログとバージョン通知ログとを参照して、コンテンツ格納先情報を生成してもよい。すなわち、ある中継装置からコンテンツを取得するよう指示したコンテンツ取得指示を送信したことを示すコンテンツ送信ログと、その中継装置にそのコンテンツが最新バージョンであることを通知したことを示すバージョン通知ログとが存在する場合、当該コンテンツと、上記コンテンツ取得指示の送信先アドレスと、バージョン通知ログに含まれる日時とを対応付けて、コンテンツ格納先情報を生成してもよい。
【０１７０】
なお、コンテンツ格納先情報生成部１７は、所定の送信ログが送信ログ記憶部１２に追加される度に、コンテンツ格納先情報を生成してもよいし、所定期間ごとに、送信ログを読み出して、コンテンツ格納先情報を生成してもよい。
【０１７１】
本実施形態におけるコンテンツ格納先情報生成部１７の具体的な動作例について、図１２および図１３に基づいて説明する。図１２は、送信ログ記憶部１２が記憶する送信ログの一例を示す図である。また、図１３は、コンテンツ格納先情報記憶部１３が記憶するコンテンツ格納先情報の一例を示す図である。ここでは、図１２に示す送信ログに基づいて、図１３に示すコンテンツ格納先情報を作成するコンテンツ格納先情報生成部１７の動作例を説明する。
【０１７２】
まず、コンテンツ格納先情報生成部１７は、送信内容が「200 OK」である送信ログ（コンテンツ送信ログ）４２を参照して、送信ログ４２に含まれる「content1」と、「http://example-proxy1.com」と、「Sun, 31 May 2013 13:53:38 GMT」とを対応付けて、図１３に示すコンテンツ格納先情報４５を作成する。
【０１７３】
次に、コンテンツ格納先情報生成部１７は、送信内容が「305 Use Proxy (proxy1)」である送信ログ（取得指示ログ）４１、および、「200 OK」であり、送信ログ４１とコンテンツＩＤが同じであり、かつ送信ログ４１の送信内容に示されている「proxy1」に対して応答したことを示す送信ログ４２からコンテンツ格納先情報４６を生成する。すなわち、「content1」と、送信ログ４１に含まれる送信先アドレス「http://example-client1.com」と、送信ログ４２の送信日時「Sun, 31 May 2013 13:53:38 GMT」とを対応付けて、図１３に示すコンテンツ格納先情報４６を作成する。
なお、「http://example-proxy1.com」にも「content1」は格納されていると考えられるので、「http://example-proxy1.com」をアドレス情報に追加しても良い。
【０１７４】
次に、コンテンツ格納先情報生成部１７は、送信内容が「304 Not Modified」である送信ログ（バージョン通知ログ）４４を参照して、送信ログ４４に含まれる「content1」と、「http://example-client1.com」と、「Mon, 01 Jun 2013 08:05:30 GMT」とを対応付けて、図１３に示すコンテンツ格納先情報４７を作成する。
【０１７５】
最後に、コンテンツ格納先情報生成部１７は、送信内容が「305 Use Proxy (client1)」（取得指示ログ）である送信ログ４３、および、「304 Not Modified」であり、送信ログ４３とコンテンツＩＤが同じであり、かつ送信ログ４３の送信内容に示されている「client1」に対して応答したことを示す送信ログ４４からコンテンツ格納先情報４６を生成する。すなわち、「content1」と、送信ログ４３に含まれる送信先アドレス「http://example-client2.com」と、送信ログ４４の送信日時「Mon, 01 Jun 2013 08:05:30 GMT」とを対応付けて、図１３に示すコンテンツ格納先情報４７を作成する。なお、「http://example-client1.com」にも「content1」は格納されているので、「http://example-client1.com」をアドレス情報に追加しても良い。
【０１７６】
〔クライアント４について〕
本実施形態におけるクライアント４は、プロキシとしても機能するため、第１の実施形態と異なり、クライアント制御部３２が、リクエスト実行部３３の代わりに、レスポンス／リクエスト実行部３５を含む。また、コンテンツをキャッシュするクライアント記憶部８がクライアント４と接続されている。なお、クライアント記憶部８は、クライアント４に内蔵されていてもよい。
【０１７７】
レスポンス／リクエスト実行部３５は、クライアント４がコンテンツ再生装置として動作する場合、リクエスト実行部３３と同様の動作処理を実行する。
【０１７８】
具体的には、レスポンス／リクエスト実行部３５は、コンテンツの送信を要求する要求メッセージを生成し、クライアント通信部３１を介してサーバ２に送信し、これに対する応答として応答メッセージを受信する。そして、レスポンス／リクエスト実行部３５は、サーバ２から応答メッセージとして、中継装置を特定する情報と、当該中継装置にコンテンツを要求する要求メッセージを送信する指示を受信する。レスポンス／リクエスト実行部３５は、サーバ２から上記応答メッセージを受信すると、サーバ２の指示に従って、指定された中継装置に対して、コンテンツの送信を要求する要求メッセージを送信する。そして、レスポンス／リクエスト実行部３５は、サーバ２に指定された中継装置からコンテンツを取得する。レスポンス／リクエスト実行部３５は、取得したコンテンツをクライアント記憶部８に格納する。
【０１７９】
また、レスポンス／リクエスト実行部３５は、クライアント４が中継装置として動作する場合、プロキシ３のリクエスト実行部２３と同様の動作処理を実行する。
【０１８０】
具体的には、レスポンス／リクエスト実行部３５は、コンテンツ再生装置から受信した、コンテンツを要求する要求メッセージで指定されたコンテンツをコンテンツ再生装置に送信するものである。
【０１８１】
より詳細には、レスポンス／リクエスト実行部３５は、コンテンツ再生装置からコンテンツの送信を要求する要求メッセージを待っており、クライアント通信部３１を介して、コンテンツ再生装置から要求メッセージを受信すると、要求されたコンテンツがクライアント記憶部８に格納されているか否かを確認する。
【０１８２】
要求されたコンテンツがクライアント記憶部８に格納されていない場合、レスポンス／リクエスト実行部３５は、コンテンツ再生装置から送信された要求メッセージのHostフィールドを確認して、Hostフィールドに記述されているＵＲＩの示すサーバ２に対して、コンテンツ再生装置が要求するコンテンツの要求メッセージを送信する。そして、レスポンス／リクエスト実行部３５は、サーバ２からコンテンツを取得し、取得したコンテンツをクライアント記憶部８に格納する。レスポンス／リクエスト実行部３５は、取得したコンテンツをクライアント記憶部８に格納した後、コンテンツ再生装置へ要求されたコンテンツを送信する。
【０１８３】
また、要求されたコンテンツがクライアント記憶部８に格納されている場合、レスポンス／リクエスト実行部３５は、クライアント記憶部８に保持しているコンテンツのデータが最新のデータであるか否かをサーバ２に確認するために、要求メッセージに当該コンテンツを中継装置が取得した時間情報を記述した「If-Modified-Since」を付加して条件付要求の要求メッセージを作成して、作成した条件付要求の要求メッセージをサーバ２に送信する。
【０１８４】
条件付要求の要求メッセージの応答として、サーバ２から「304 NOT Modified」の応答メッセージを受信した場合、レスポンス／リクエスト実行部３５は、クライアント記憶部８に格納されているコンテンツは最新のデータであると判断して、クライアント記憶部８から、保持しているコンテンツを読み出し、読み出したコンテンツをコンテンツ再生装置に送信する。
【０１８５】
一方、クライアント記憶部８に格納されているコンテンツが最新のデータでなければ、条件付要求の要求メッセージの応答として、サーバ２から最新バージョンのコンテンツが送信され、レスポンス／リクエスト実行部３５は、サーバ２から送信されたコンテンツを取得する。レスポンス／リクエスト実行部３５は、取得したコンテンツをクライアント記憶部８に格納した後、コンテンツ再生装置へ要求されたコンテンツを送信する。
【０１８６】
なお、コンテンツをコンテンツ再生装置へ送信する際には、送信するコンテンツのヘッダに、サーバ２が付与した、例えば「Cache-Control: must-revalidate」もしくは「Cache-Control: proxy-revalidate」の記述をそのまま保持して、コンテンツを送信してもよい。これにより、コンテンツ送信先のコンテンツ再生装置が取得したコンテンツを他の要求に従って送信する場合に、コンテンツ再生装置に対して、送信する前にそのコンテンツが最新バージョンかどうかをサーバ２へ必ず確認させることができる。
【０１８７】
〔各装置が実行する処理について〕
次に、サーバ２およびクライアント４が実行する処理について、図１４から１６に基づいて説明する。第２の実施形態におけるプロキシ３が実行する処理は、第１の実施形態と同様であるため説明は省略する。
【０１８８】
〔サーバ２が実行する処理について〕
まずは、サーバ２が実行する処理について図１４に基づいて説明する。図１４は、サーバ２が実行する処理の一例を示すフローチャートである。
【０１８９】
レスポンス実行部１５は、コンテンツの送信を要求する要求メッセージを受信するのを待っており、サーバ通信部１１を介して、コンテンツの送信を要求する要求メッセージを受信すると（Ｓ５０１）、受信した要求メッセージのヘッダを確認して、受信した要求メッセージが中継装置から送信されたものであるか否かを判定する（Ｓ５０２）。
【０１９０】
受信した要求メッセージを送信した主体がコンテンツ再生装置である場合、（Ｓ５０２でＮＯ）、中継装置特定部１６に対して、コンテンツ再生装置がコンテンツを取得する、その取得先の中継装置を特定するように指示する。中継装置特定部１６は、レスポンス実行部１５から指示を受けて、コンテンツ格納先情報記憶部１３からコンテンツ格納先情報を読み出す（Ｓ５０３）。中継装置特定部１６は、読み出したコンテンツ格納先情報を参照して、コンテンツ再生装置が要求するコンテンツに対応付けられている中継装置のＵＲＩを、コンテンツの取得先のアドレス情報として特定する（Ｓ５０４）。中継装置特定部１６は、特定したアドレス情報をレスポンス実行部１５に送信する。レスポンス実行部１５は、中継装置特定部１６が特定したアドレス情報の示すアドレスに存在する中継装置から、要求したコンテンツを取得するように指示した応答メッセージを、コンテンツ再生装置に送信する（Ｓ５０５）。レスポンス実行部１５は、コンテンツ再生装置に送信した応答メッセージから送信ログを作成し、作成した送信ログを送信ログ記憶部１２に追加する（Ｓ５１０）。
【０１９１】
一方、受信した要求メッセージを送信した主体が中継装置である場合（Ｓ５０２でＹＥＳ）、レスポンス実行部１５は、続いて、受信した要求メッセージが「If-Modified-Since」等の条件付要求であるか否かを判定する（Ｓ５０６）。受信した要求メッセージが条件付要求でなければ（Ｓ５０６でＮＯ）、レスポンス実行部１５は、中継装置から要求されたコンテンツをコンテンツ格納部５から読み出し、中継装置からの要求メッセージに対する応答として、読み出したコンテンツを中継装置に送信する（Ｓ５０７）。そして、レスポンス実行部１５は、中継装置に送信した応答メッセージから送信ログを作成し、作成した送信ログを送信ログ記憶部１２に追加する（Ｓ５１０）。
【０１９２】
受信した要求メッセージが条件付要求であれば（Ｓ５０６でＹＥＳ）、レスポンス実行部１５は、さらに、中継装置が保持しているコンテンツのデータが最新のデータであるか否かを判定する（Ｓ５０８）。中継装置が保持しているコンテンツのデータが最新のデータでなければ（Ｓ５０８でＮＯ）、レスポンス実行部１５は、中継装置から要求されたコンテンツをコンテンツ格納部５から読み出し、中継装置からの要求メッセージに対する応答として、読み出したコンテンツを中継装置に送信する（Ｓ５０７）。一方、中継装置が保持しているコンテンツのデータが最新のデータであれば（Ｓ５０８でＹＥＳ）、レスポンス実行部１５は、中継装置からの要求メッセージに対する応答として、中継装置が保持しているコンテンツのデータが最新のデータであることを示す応答メッセージを中継装置に送信する（Ｓ５０９）。そして、レスポンス実行部１５は、中継装置に送信した応答メッセージを送信ログ記憶部１２に追加する（Ｓ５１０）。
【０１９３】
なお、Ｓ５０７において、レスポンス実行部１５は、中継装置にコンテンツを送信する際に、コンテンツのヘッダに、例えば、「Cache-Control: must-revalidate」もしくは「Cache-Control: proxy-revalidate」を追加する。これにより、コンテンツ送信先の中継装置が保持したコンテンツを他の要求に従って送信する場合に、中継装置に対して、送信する前にそのコンテンツが最新バージョンかどうかをサーバへ必ず確認させることができる。
【０１９４】
〔クライアント４が実行する処理について〕
次に、クライアント４が実行する処理について図１５および図１６に基づいて説明する。上述のように、クライアント４は、中継装置として動作したり、コンテンツ再生装置として動作したりする。まず、コンテンツ再生装置として動作する場合にクライアント４が実行する処理について図１５に基づいて説明する。
【０１９５】
（クライアント４であるコンテンツ再生装置が実行する処理について）
図１５は、クライアント４であるコンテンツ再生装置が実行する処理の一例を示すフローチャートである。図１５に示すように、レスポンス／リクエスト実行部３５は、サーバ２にコンテンツの送信を要求する要求メッセージを送信する（Ｓ５２１）。レスポンス／リクエスト実行部３５は、要求メッセージに対する応答として、指定された中継装置から、要求したコンテンツを取得するように指示した応答メッセージを受信する（Ｓ５２２）。レスポンス／リクエスト実行部３５は、サーバ２の指示に従って、サーバ２から指定された中継装置に対して、要求メッセージを送信する（Ｓ５２３）。そして、レスポンス／リクエスト実行部３５は、要求メッセージを送信した中継装置から、その応答として、コンテンツを取得する（Ｓ５２４）。
【０１９６】
（クライアント４である中継装置が実行する処理について）
次に、中継装置として動作する場合にクライアント４が実行する処理について図１６に基づいて説明する。図１６は、クライアント４である中継装置が実行する処理の一例を示すフローチャートである。
【０１９７】
図１６に示すように、レスポンス／リクエスト実行部３５は、コンテンツ再生装置（他のクライアント４）からコンテンツの送信を要求する要求メッセージを待っており、クライアント通信部３１を介して、コンテンツ再生装置から要求メッセージを受信すると（Ｓ５４１）、要求されたコンテンツがクライアント記憶部８に格納されているか否かを確認する（Ｓ５４２）。
【０１９８】
要求されたコンテンツがクライアント記憶部８に格納されていない場合（Ｓ５４２でＮＯ）、レスポンス／リクエスト実行部３５は、コンテンツ再生装置から送信された要求メッセージのHostフィールドを確認して、Hostフィールドに記述されているＵＲＩの示すサーバ２に対して、コンテンツ再生装置が要求するコンテンツの要求メッセージを送信する（Ｓ５４３）。そして、レスポンス／リクエスト実行部３５は、サーバ２からコンテンツを取得し（Ｓ５４４）、取得したコンテンツをクライアント記憶部８に格納する（Ｓ５４５）。レスポンス／リクエスト実行部３５は、取得したコンテンツをクライアント記憶部８に格納した後、コンテンツ再生装置へ要求されたコンテンツを送信する（Ｓ５４６）。
【０１９９】
要求されたコンテンツがクライアント記憶部８に格納されている場合（Ｓ５４２でＹＥＳ）、レスポンス／リクエスト実行部３５は、要求メッセージに当該コンテンツを自装置が取得した時間情報を記述した「If-Modified-Since」を付加して条件付要求の要求メッセージを作成して、作成した条件付要求の要求メッセージをサーバ２に送信する（Ｓ５４７）。
【０２００】
条件付要求の要求メッセージの応答として、サーバ２から「304 NOT Modified」の応答メッセージを受信した場合（Ｓ５４８でＹＥＳ）、レスポンス／リクエスト実行部３５は、クライアント記憶部８から、保持しているコンテンツを読み出し、読み出したコンテンツをコンテンツ再生装置に送信する（Ｓ４２６）。
【０２０１】
一方、クライアント記憶部８に格納されているコンテンツが最新のデータでなければ、条件付要求の要求メッセージの応答として、サーバ２から最新バージョンのコンテンツが送信され、レスポンス／リクエスト実行部３５は、サーバ２から送信された最新バージョンのコンテンツを取得する（Ｓ５４４）。レスポンス／リクエスト実行部３５は、取得したコンテンツをクライアント記憶部８に格納した後（Ｓ５４５）、コンテンツ再生装置へ要求されたコンテンツを送信する（Ｓ５４６）。
【０２０２】
なお、Ｓ５４６において、コンテンツをコンテンツ再生装置へ送信する際には、送信するコンテンツのヘッダに、サーバ２が付与した、例えば「Cache-Control: must-revalidate」もしくは「Cache-Control: proxy-revalidate」の記述をそのまま保持して、コンテンツを送信する。これにより、コンテンツ送信先のコンテンツ再生装置が取得したコンテンツを他の要求に従って送信する場合に、送信する前に、コンテンツ再生装置に対して、そのコンテンツが最新バージョンかどうかを必ずサーバ２へ確認しなければならない状態を保つことができる。
【０２０３】
〔実施例２〕
以下、図１７に実施例２を示し、本実施形態についてさらに詳しく説明する。実施例２では、クライアント４ｄであるコンテンツ再生装置に対して、コンテンツを取得させる中継装置（クライアント４ｃ）を指示するコンテンツ配信システム１ａの動作例を示す。図１７は、実施例２におけるコンテンツ配信システム１ａの動作シーケンスの一例を示す図である。
【０２０４】
なお、実施例２では、前提として、コンテンツ格納部５にコンテンツ１が格納されており、キャッシュ格納部６およびクライアント記憶部８ｃ、８ｄには、何もキャッシュされておらず、サーバ２は、デフォルトとして、コンテンツ１の取得先をプロキシ３として設定しているものとする。また、実施例２では、図１７に示す処理の開始時に、送信ログ記憶部１２およびコンテンツ格納先情報記憶部１３には、それぞれ、送信ログおよびコンテンツ格納先情報が記憶されていないとする。そして、レスポンス実行部１５が図１２に示す送信ログを、応答メッセージを送信するごとに作成し、コンテンツ格納先情報生成部１７が図１３に示すコンテンツ格納先情報を、コンテンツ送信ログまたはバージョン通知ログ（「送信内容」が「200 OK」または「304 Not Modified」である送信ログ）が送信ログ記憶部１２に追加される度に、作成するものとする。
【０２０５】
また、コンテンツ再生装置が要求メッセージを送信して、当該要求メッセージに対応する応答メッセージを受信するまでを１つのセッションとする。
【０２０６】
図１７に示すように、まず、セッション２１０において、クライアント４ｃがコンテンツ１の送信を要求する要求メッセージをサーバ２に送信する（リクエスト２１１）。リクエスト２１１を受信したサーバ２では、レスポンス実行部１５は、中継装置特定部１６に取得先の中継装置を特定するように指示する。中継装置特定部１６は、指示を受けて、コンテンツ格納先情報記憶部１３のコンテンツ格納先情報を確認する（処理２１２）。ここでは、コンテンツ格納先情報記憶部１３には、コンテンツ１の取得先を示すコンテンツ格納先情報が無いため、中継装置特定部１６は、コンテンツ１の取得先として、デフォルトで設定されているプロキシ３をコンテンツ１の取得先として特定する。レスポンス実行部１５は、中継装置特定部１６が特定したアドレス情報に対応するプロキシ３から、要求したコンテンツを取得するように指示した応答メッセージを、クライアント４ｃに送信する（レスポンス２１３）。そして、レスポンス実行部１５は、送信した応答メッセージに基づいて、送信ログを作成し、送信ログ記憶部１２に追加する（処理２１４）。
【０２０７】
次に、セッション２２０において、レスポンス２１３を受信したクライアント４ｃは、サーバ２の指示に従って、プロキシ３に対して、コンテンツ１の送信を要求する要求メッセージを送信する（リクエスト２２１）。リクエスト２２１を受信したプロキシ３は、コンテンツ１がキャッシュ格納部６に格納されているかどうかを確認する（処理２２２）。ここでは、キャッシュ格納部６にコンテンツ１が格納されていないため、リクエスト２２１に基づく要求メッセージをサーバ２に送信する（リクエスト２２３）。リクエスト２２３を受信したサーバ２では、リクエスト２２３に「Via」ヘッダが含まれているため、レスポンス実行部１５がプロキシ３にコンテンツ１を送信する（レスポンス２２４）。レスポンス２２４を受信したプロキシ３は、取得したコンテンツ１をキャッシュ格納部６に格納してキャッシュ登録する（処理２２５）。キャッシュ登録した後、プロキシ３は、リクエスト２２１に対する応答として、クライアント４ｃにコンテンツ１を送信する（レスポンス２２６）。クライアント４ｃは、プロキシ３からコンテンツ１を取得すると、取得したコンテンツ１をクライアント記憶部８ｃに格納してキャッシュ登録する（処理２２７）。なお、レスポンス実行部１５は、レスポンス２２４を送信した後、送信した応答メッセージに基づいて、送信ログを作成し、送信ログ記憶部１２に追加する（処理２２８）。また、コンテンツ格納先情報生成部１７は、コンテンツ１とプロキシ３のアドレス情報とを対応付けてコンテンツ格納先情報を生成し、コンテンツ格納先情報記憶部１３に格納する。さらに、コンテンツ格納先情報生成部１７は、コンテンツ１とクライアント４ｃのアドレス情報とを対応付けてコンテンツ格納先情報を生成し、コンテンツ格納先情報記憶部１３に格納する（処理２２９）。
【０２０８】
セッション２２０終了後には、プロキシ３のキャッシュ格納部６、および、クライアント４ｃのクライアント記憶部８ｃにコンテンツ１がそれぞれキャッシュ登録された状態である。すなわち、コンテンツ格納先情報記憶部１３にコンテンツ１とプロキシ３とが対応付けられたコンテンツ格納先情報と、コンテンツ１とクライアント４ｃとが対応付けられたコンテンツ格納先情報とが格納されている状態である。つまり、この状態では、プロキシ３だけでなくクライアント４ｃも、コンテンツ１の取得先の中継装置の候補である。
【０２０９】
この状態で次に、セッション２３０において、クライアント４ｄがコンテンツ１の送信を要求する要求メッセージをサーバ２に送信する（リクエスト２３１）。リクエスト２３１を受信したサーバ２では、レスポンス実行部１５は、中継装置特定部１６に取得先の中継装置を特定するように指示する。中継装置特定部１６は、指示を受けて、コンテンツ格納先情報記憶部１３のコンテンツ格納先情報を確認する（処理２３２）。ここでは、コンテンツ格納先情報記憶部１３には、コンテンツ１と対応付けられている格納先として、プロキシ３ｂと、クライアント４ｃとが存在し、クライアント４ｃを含むコンテンツ格納先情報の方が新しいため、中継装置特定部１６は、コンテンツ１の取得先としてクライアント４ｃを特定する。レスポンス実行部１５は、中継装置特定部１６が特定したクライアント４ｃから、要求したコンテンツを取得するように指示した応答メッセージを、クライアント４ｄに送信する（レスポンス２３３）。そして、レスポンス実行部１５は、送信した応答メッセージに基づいて、送信ログを作成し、送信ログ記憶部１２に追加する（処理２３４）。
【０２１０】
次に、セッション２４０において、レスポンス２３３を受信したクライアント４ｄは、サーバ２の指示に従って、クライアント４ｃに対して、コンテンツ１の送信を要求する要求メッセージを送信する（リクエスト２４１）。リクエスト２４１を受信したクライアント４ｃは、コンテンツ１がクライアント記憶部８ｃに格納されているかどうかを確認する（処理２４２）。クライアント記憶部８ｃにはコンテンツ１が既に格納されているため、クライアント４ｃは、クライアント記憶部８ｃに格納されているコンテンツ１が最新のデータであるかどうかをサーバ２に確認するため、リクエスト２４１に基づく要求メッセージに「If-Modified-Since」を付加して条件付要求としてサーバ２に送信する（リクエスト２４３）。リクエスト２４３を受信したサーバ２では、リクエスト２４３に「Via」ヘッダが含まれており、リクエスト２４３が条件付要求の要求メッセージであるため、レスポンス実行部１５が、クライアント４ｃが保持しているコンテンツ１が最新のデータであるかどうかを確認する（処理２４４）。レスポンス実行部１５は、クライアント４ｃが保持しているコンテンツ１が最新のデータであると判定して、クライアント４ｃに「304 NOT Modified」の応答メッセージを送信する（レスポンス２４５）。レスポンス２４５を受信したクライアント４ｃは、クライアント記憶部８ｃに格納しているコンテンツ１を読み出し、リクエスト２４１に対する応答として、クライアント４ｄに読み出したコンテンツ１を送信する（レスポンス２４６）。なお、レスポンス実行部１５は、レスポンス２４５を送信した後、送信した応答メッセージに基づいて、送信ログを作成し、送信ログ記憶部１２に追加する（処理２４７）。また、コンテンツ格納先情報生成部１７は、コンテンツ１とクライアント４ｃのアドレス情報とを対応付けてコンテンツ格納先情報を生成し、コンテンツ格納先情報記憶部１３に格納する。さらに、コンテンツ格納先情報生成部１７は、コンテンツ１とクライアント４ｄのアドレス情報とを対応付けてコンテンツ格納先情報を生成し、コンテンツ格納先情報記憶部１３に格納する（処理２４８）。
【０２１１】
上述のように、本実施形態では、クライアント４がコンテンツ再生装置として動作したり、中継装置として動作したりする。そのため、サーバ２が中継装置として特定する装置の選択肢が増えるため、サーバ２の処理負荷およびサーバ２サーバからのデータ送出に用いられるネットワークの負荷を、クライアント４、および、クライアント４−クライアント４間のネットワークも含めたより広範囲のネットワークへ分散することができる。
【０２１２】
〔実施例２におけるＨＴＴＰメッセージ〕
続いて、図１７の動作シーケンス図で使用されるリクエストおよびレスポンスの詳細を図１８〜図１９に示す。図１８〜図１９は、リクエストまたはレスポンスとして送受信されるＨＴＴＰメッセージの一例を示す図であり、図１８は、セッション２１０およびセッション２２０におけるＨＴＴＰメッセージの一例を示す図であり、図１９は、セッション２３０およびセッション２４０におけるＨＴＴＰメッセージの一例を示す図である。
【０２１３】
図１８の（ａ）は、図１７に示すリクエスト２１１の、図１８の（ｂ）はレスポンス２１３の、図１８の（ｃ）はリクエスト２２１の、図１８の（ｄ）はリクエスト２２３の、図１８の（ｅ）はレスポンス２２４の、図１８の（ｆ）はレスポンス２２６のＨＴＴＰメッセージをそれぞれ示している。
【０２１４】
また、図１９の（ａ）は、図１７に示すリクエスト２３１の、図１９の（ｂ）はレスポンス２３３の、図１９の（ｃ）はリクエスト２４１の、図１９の（ｄ）はリクエスト２４３の、図１９の（ｅ）はレスポンス２４５の、図１９の（ｆ）はレスポンス２４６のＨＴＴＰメッセージをそれぞれ示している。
【０２１５】
図１８の（ａ）〜（ｆ）は、図８の（ａ）〜（ｆ）にそれぞれ対応しており、図１８では、図８のクライアント４ａがクライアント４ｃに、プロキシ３ａがプロキシ３に変更されている。それ以外の内容は既に説明したとおりである。また、図１９の（ａ）〜（ｆ）は、図１０の（ａ）〜（ｆ）にそれぞれ対応しており、図１９では、図１０のコンテンツ２がコンテンツ１に、クライアント４ａがクライアント４ｄに、プロキシ３ｂがクライアント４ｃに変更されている。それ以外の内容は既に説明したとおりである。
【０２１６】
＜第３の実施形態＞
本発明の第３の実施形態では、コンテンツ再生装置と中継装置との間のネットワークの負荷をより広く分散できるように、サーバ２がコンテンツ取得先の中継装置を複数指定し、コンテンツ再生装置が指定された複数の中継装置の中から、中継装置を選択してコンテンツを取得する例を示す。
【０２１７】
より詳細には、本実施形態では、コンテンツ再生装置であるクライアント４が、サーバ２から指定された複数の中継装置の中から１つの中継装置を選択し、選択した中継装置からコンテンツを取得する。このコンテンツの取得中に、コンテンツの取得に関して遅延が発生した場合、サーバ２から指定された複数の中継装置の中から別の中継装置を再度選択して、コンテンツを取得する中継装置を変更する。
【０２１８】
本実施形態について図２０から図２８に基づいて説明すると以下の通りである。第３の実施形態は、第２の実施形態と比べて、クライアント４の構成と、サーバ２が管理するコンテンツのデータ形式が異なるだけであり、その他は同様のため、主に、第２の実施形態と異なる点について説明する。
【０２１９】
〔コンテンツ配信システム１ｂの概要〕
まず、本実施形態のコンテンツ配信システム１ｂの概要について、図２０に基づいて説明する。図２０は、第３の実施形態に係るコンテンツ配信システム１ｂの概要およびコンテンツ配信システム１ｂを構成する各装置の要部構成を示す図である。図２０に示すように、コンテンツ配信システム１ｂは、サーバ２、プロキシ３ａ、３ｂおよび３ｃ、並びに、クライアント４ｅおよび４ｆを含む。また、コンテンツ配信システム１ｂは、サーバ２と接続しているコンテンツ格納部５と、プロキシ３ａ、３ｂ、３ｃとそれぞれ接続しているキャッシュ格納部６ａ、６ｂ、６ｃと、クライアント４ｅ、４ｆとそれぞれ接続しているクライアント記憶部８ｅ、８ｆとを含む。
【０２２０】
本実施形態におけるプロキシ３は、第１の実施形態におけるプロキシ３と構成およびその動作処理が同一であるため、ここでは、プロキシ３の詳細について説明を省略する。
【０２２１】
〔サーバ２について〕
本実施形態におけるサーバ２は、第２の実施形態におけるサーバ２と同じ構成であり、第２の実施形態におけるサーバ２と同様の動作を実行する。ただし、コンテンツ再生装置にコンテンツの取得先の中継装置を選択させるために、本実施形態におけるサーバ２は、コンテンツ再生装置が要求するコンテンツを保持する（可能性のある）中継装置を複数特定し、特定した複数の中継装置のアドレス情報を含むコンテンツ格納先リストをコンテンツ再生装置に提示し、コンテンツ再生装置に対して、提示したコンテンツ格納先リストに含まれるアドレス情報の示すアドレスに存在する中継装置の何れかからコンテンツを取得するように指示するものとする。
【０２２２】
具体的には、レスポンス実行部１５は、コンテンツ再生装置から、直接、コンテンツを要求する要求メッセージを受信すると、中継装置特定部１６に対して、コンテンツ再生装置が要求したコンテンツを保持する（可能性のある）中継装置のアドレス情報（例えば、プロキシ３またはクライアント４のＵＲＩ等）を特定するように指示する。そして、レスポンス実行部１５は、中継装置特定部１６から、コンテンツ再生装置が要求するコンテンツを保持する中継装置のアドレス情報を複数含むコンテンツ格納先リストを受信すると、コンテンツ再生装置からの要求メッセージに対する応答として、中継装置特定部１６が作成したコンテンツ格納先リストに含まれるアドレス情報の示すアドレスに存在する中継装置の何れかから、要求したコンテンツを取得するように指示した応答メッセージをコンテンツ再生装置に送信する。
【０２２３】
なお、レスポンス実行部１５のその他の処理については、第２の実施形態と同様であるため、ここでは説明を省略する。
【０２２４】
中継装置特定部１６は、レスポンス実行部１５の指示に従って、コンテンツ再生装置が要求したコンテンツを保持している（可能性のある）中継装置を複数特定し、特定した複数の中継装置のアドレス情報を含むコンテンツ格納先リストを作成するものである。
【０２２５】
具体的には、中継装置特定部１６は、レスポンス実行部１５から指示を受けて、コンテンツ格納先情報記憶部１３からコンテンツ格納先情報を読み出す。中継装置特定部１６は、読み出したコンテンツ格納先情報を参照して、コンテンツ再生装置が要求するコンテンツに対応付けられている中継装置のアドレス情報を複数特定し、特定した複数のアドレス情報を含むコンテンツ格納先リストを作成する。中継装置特定部１６は、作成したコンテンツ格納先リストをレスポンス実行部１５に送信する。
【０２２６】
また、中継装置特定部１６は、コンテンツ格納先情報記憶部１３に、コンテンツ再生装置が要求するコンテンツを含むコンテンツ格納先情報が格納されていない場合、もしくは、コンテンツ再生装置が要求するコンテンツを含むコンテンツ格納先情報が１つしか格納されていない場合、コンテンツ再生装置が要求するコンテンツごとに、予め定められた（デフォルトの）アドレス情報を当該コンテンツの取得先のアドレス情報として特定し、複数のアドレス情報を含むコンテンツ格納先リストを作成してもよい。また、中継装置特定部１６は、コンテンツ格納先情報記憶部１３に、コンテンツ再生装置が要求するコンテンツを含むコンテンツ格納先情報が格納されていない場合、もしくは、コンテンツ再生装置が要求するコンテンツを含むコンテンツ格納先情報が１つしか格納されていない場合、サーバ２とネットワーク７を介して接続している中継装置の中からランダムに、当該コンテンツの取得先を特定して、コンテンツ格納先リストを作成してもよい。
【０２２７】
また、中継装置特定部１６は、特定した複数のアドレス情報に優先順位を付加してコンテンツ格納先リストを作成してもよい。このとき、第２の実施形態と同様に、コンテンツ格納先情報に含まれる日時、コンテンツ再生装置と中継装置との物理的、もしくは、ネットワーク構造的な距離、中継装置の負荷状況、送信ログ記憶部１２に格納されている送信ログ等に基づいて、優先順位を決定してもよい。
【０２２８】
〔クライアント４について〕
本実施形態におけるクライアント４は、コンテンツ再生装置として機能する際に、第２の実施形態と異なり、サーバ２から送信されたコンテンツ格納先リストを受信して、受信したコンテンツ格納先リストに含まれるアドレス情報の示すアドレスに存在する中継装置の何れかからリクエストしたコンテンツを取得する。
【０２２９】
図２０に示すクライアント４では、クライアント制御部３２に、レスポンス／リクエスト実行部３５の他、第２の実施形態では含まれていなかった、が、クライアント状況判断部３６と、中継装置選択部（中継装置変更手段）３７とが含まれている。
【０２３０】
レスポンス／リクエスト実行部３５は、サーバ２から応答メッセージとして、コンテンツ格納先リストと、当該コンテンツ格納先リストに含まれるアドレス情報の示すアドレスに存在する中継装置の何れかにコンテンツを要求する要求メッセージを送信する指示とを受信する。
【０２３１】
レスポンス／リクエスト実行部３５がコンテンツ格納先リストおよび上記指示を受信すると、中継装置選択部３７は、レスポンス／リクエスト実行部３５が受信したコンテンツ格納先リストに含まれるアドレス情報の中から何れか１つを選択する。中継装置選択部３７は、選択したアドレス情報の示すアドレスに存在する中継装置からコンテンツを取得するようにレスポンス／リクエスト実行部３５に指示する。
【０２３２】
ここで、中継装置選択部３７は、コンテンツ格納先リストに含まれるアドレス情報に優先順位が付加されていなければ（サーバ２からコンテンツを取得する中継装置を選択する順序を指示されていなければ）、コンテンツ格納先リストに含まれるアドレス情報の中からランダムに選択してもよいし、予め定められたルール（デフォルト）に基づいて選択してもよいし、自装置との物理的、もしくは、ネットワーク構造的な距離が最も短い中継装置を選択してもよい。
【０２３３】
一方、コンテンツ格納先リストに含まれるアドレス情報に優先順位が付加されている場合、中継装置選択部３７は、優先順位が最も高いアドレス情報を選択する。
【０２３４】
また、中継装置選択部３７は、中継装置選択部３７が選択した中継装置から、レスポンス／リクエスト実行部３５が取得しているコンテンツの取得速度（コンテンツの受信速度）が予め定めた受信速度よりも遅いことを示す遅延情報をクライアント状況判断部３６から受信すると、コンテンツを取得する取得先の中継装置を、コンテンツ格納先リストに含まれるアドレス情報の示すアドレスに存在する他の中継装置に変更し、変更した他の中継装置からコンテンツを取得するように、レスポンス／リクエスト実行部３５に指示する。
【０２３５】
ここで、中継装置選択部３７は、コンテンツ格納先リストに含まれるアドレス情報に優先順位が付加されていなければ、他の中継装置を、コンテンツ格納先リストに含まれるアドレス情報の中からランダムに選択してもよいし、予め定められたルール（デフォルト）に基づいて選択してもよいし、自装置との物理的、もしくは、ネットワーク構造的な距離が次に短い中継装置を選択してもよい。
【０２３６】
一方、コンテンツ格納先リストに含まれるアドレス情報に優先順位が付加されている場合、中継装置選択部３７は、次に優先順位の高いアドレス情報を選択する。
【０２３７】
クライアント状況判断部３６は、予め定められた事象の発生を検出する。具体的には、クライアント状況判断部３６は、コンテンツ再生装置が中継装置から要求したコンテンツを取得する際に、予定よりも遅延してコンテンツが受信されたという事象を検出する。この事象は、コンテンツ再生装置と中継装置との間のネットワークの通信状況の良し悪し、および／または、当該中継装置に対する負荷の大きさを示す事象である。クライアント状況判断部３６は、予定よりも遅延してコンテンツが受信されたという事象を検出すると、検出した事象を示す遅延情報を中継装置選択部３７に送信する。
【０２３８】
〔コンテンツのフォーマット〕
続いて、本実施形態において、コンテンツ格納部５に格納されているコンテンツのフォーマットを、図２１の（ａ）に基づいて説明する。図２１の（ａ）は、コンテンツのフォーマットの一例を示す図である。
【０２３９】
図２１の（ａ）に示すように、コンテンツを示すデータであるメディアファイルは、予め定められた単位でフラグメント化されている。この単位は特に限定されず、例えば１分といった時間単位でフラグメント化されていてもよいし、画像符号化におけるＧＯＰ（Group Of Picture）単位等でフラグメント化されていてもよい。
【０２４０】
以降の説明では、このフラグメントをムービーフラグメントと呼び、ムービーフラグメントで構成されるメディアファイルの具体例としてＭＰ４ファイルを用いる。
【０２４１】
メディアファイルをＭＰ４ファイルとする場合、フラグメント内の映像・音声を管理するヘッダ情報を格納した「ｍｏｏｆ」と、クライアントで再生される映像・音声などのデータが格納された「ｍｄａｔ」で構成されたフラグメントがムービーフラグメントに相当する。
【０２４２】
ここで、ＭＰ４ファイルにおいては、「ｍｏｏｆ」、「ｍｄａｔ」以外に、メディアファイル全体に係る情報、例えば、画像解像度やプロファイル情報等、クライアント４におけるコンテンツ再生部３４の初期化に必要な情報（再生情報）が前述の「ｍｏｏｆ」、「ｍｄａｔ」とは別の「ｍｏｏｖ」に格納されている。
【０２４３】
このため、「ｍｏｏｖ」に格納された再生情報は、再生開始前にクライアント４へ通知する必要がある。「ｍｏｏｖ」に格納された再生情報は、ムービーフラグメントとは別の手順で通知してもよく、必ずしも「ｍｏｏｖ」をムービーフラグメントに含める必要はないが、以降の説明では、各メディアファイルの先頭のムービーフラグメントが「ｍｏｏｖ」を含む例を説明する。つまり、図２１の（ａ）の「再生装置の初期化に必要な情報」は、「ｍｏｏｖ」である。
【０２４４】
また、図２１に示す通り、各メディアファイル内のムービーフラグメントには、先頭のムービーフラグメントから順に「movie fragment 1」、「movie fragment 2」と連番を付している。なお、各ムービーフラグメントには１秒分の映像データが含まれるものとする。
【０２４５】
〔コンテンツの伝送フォーマット〕
次に、本発明のコンテンツ配信システム１ｂにおいて、コンテンツの伝送単位について説明する。コンテンツ配信システム１ｂにおいては、サーバ２、プロキシ３およびクライアント４の間では、コンテンツをメディアセグメントと呼ぶ単位に分割し、ＨＴＴＰを用いて伝送を行う。
【０２４６】
図２１の（ｂ）は、コンテンツ配信システム１ｂがコンテンツの伝送単位として扱うメディアセグメントの概念を示す図であり、コンテンツ配信システム１ｂにおけるコンテンツの伝送単位の一例を示している。
【０２４７】
メディアセグメントは、少なくとも１つのムービーフラグメントを含んで構成されるものである。別の観点からは、コンテンツは１つ以上のメディアセグメントで構成されており、各メディアセグメントは１つ以上のムービーフラグメントで構成されていると言える。通常、メディアセグメントは、所定のコンテンツにおいて、再生時間の連続する２つ以上のムービーフラグメントを含んで構成されるが、１つのムービーフラグメントで構成されてもよいし、再生時間が連続しないムービーフラグメントで構成されていてもよい。
【０２４８】
具体的には、図２１の（ｂ）は、複数のムービーフラグメントをひとまとめにして、１つのメディアセグメントとしている例である。これにより、各ムービーフラグメントを別個に伝送する場合と比べて、コンテンツを送信するメッセージの数を減らすことができるので、コンテンツを効率よく送信することができる。
【０２４９】
図２１の（ｂ）の例では、「movie fragment 1〜60」をまとめて、１つのメディアセグメント「media segment 1」とし、「movie fragment 61〜120」をまとめて、１つのメディアセグメント「media segment 2」としている。なお、メディアセグメントは、所定のコンテンツにおける再生時間の連続する２つ以上のムービーフラグメントを含むものであればよく、１つのメディアセグメントに含まれるムービーフラグメントの数は特に限定されない。本実施形態では、図示のように、１つのメディアセグメントに６０個のムービーフラグメントが含まれているものとする。
【０２５０】
〔各装置が実行する処理について〕
次に、サーバ２およびコンテンツ再生装置として機能するクライアント４が実行する処理について、図２２および図２３に基づいて説明する。第３の実施形態におけるプロキシ３が実行する処理は、第１の実施形態と同様であり、第３の実施形態における中継装置として機能するクライアント４が実行する処理は、第２の実施形態と同様であるため説明は省略する。
【０２５１】
〔サーバ２が実行する処理について〕
まずは、サーバ２が実行する処理について図２２に基づいて説明する。図２２は、サーバ２が実行する処理の一例を示すフローチャートである。
【０２５２】
レスポンス実行部１５は、コンテンツの送信を要求する要求メッセージを受信するのを待っており、サーバ通信部１１を介して、コンテンツの送信を要求する要求メッセージを受信すると（Ｓ６０１）、受信した要求メッセージのヘッダを確認して、受信した要求メッセージが中継装置から送信されたものであるか否かを判定する（Ｓ６０２）。
【０２５３】
受信した要求メッセージを送信した主体がコンテンツ再生装置である場合、（Ｓ６０２でＮＯ）、中継装置特定部１６に対して、コンテンツ再生装置がコンテンツを取得する、その取得先の中継装置を複数特定するように指示する。中継装置特定部１６は、レスポンス実行部１５から指示を受けて、コンテンツ格納先情報記憶部１３からコンテンツ格納先情報を読み出す（Ｓ６０３）。中継装置特定部１６は、読み出したコンテンツ格納先情報を参照して、コンテンツ再生装置が要求するコンテンツに対応付けられている中継装置のＵＲＩを複数特定し、特定した複数のアドレス情報を含むコンテンツ格納先リストを作成する（Ｓ６０４）。中継装置特定部１６は、作成したコンテンツ格納先リストをレスポンス実行部１５に送信する。レスポンス実行部１５は、中継装置特定部１６が作成したコンテンツ格納先リストに含まれるアドレス情報の示すアドレスに存在する中継装置の何れかから、要求したコンテンツを取得するように指示した応答メッセージを、コンテンツ再生装置に送信する（Ｓ６０５）。レスポンス実行部１５は、コンテンツ再生装置に送信した応答メッセージから送信ログを作成し、作成した送信ログを送信ログ記憶部１２に追加する（Ｓ６１０）。
【０２５４】
なお、受信した要求メッセージを送信した主体が中継装置である場合の処理（Ｓ６０６〜Ｓ６０９）は、第２の実施形態におけるサーバ２の処理（図１４のＳ５０６〜Ｓ５０９）と同様であるため、ここでは説明を省略する。
【０２５５】
〔コンテンツ再生装置として機能するクライアント４が実行する処理について〕
次に、コンテンツ再生装置として機能するクライアント４が実行する処理について図２３に基づいて説明する。図２３は、コンテンツ再生装置として機能するクライアント４が実行する処理の一例を示すフローチャートである。
【０２５６】
レスポンス／リクエスト実行部３５は、サーバ２にコンテンツの送信を要求する要求メッセージを送信する（Ｓ６２１）。レスポンス／リクエスト実行部３５は、要求メッセージに対する応答として、コンテンツ格納先リストと、当該コンテンツ格納先リストに含まれるアドレス情報の示すアドレスに存在する中継装置の何れかにコンテンツを要求する要求メッセージを送信する指示とを含む応答メッセージ受信する（Ｓ６２２）。
【０２５７】
中継装置選択部３７は、レスポンス／リクエスト実行部３５が上記応答メッセージを受信すると、レスポンス／リクエスト実行部３５が受信したコンテンツ格納先リストに含まれるアドレス情報の中から何れか１つを選択する（Ｓ６２３）。中継装置選択部３７は、選択したアドレス情報の示すアドレスに存在する中継装置からコンテンツを取得するようにレスポンス／リクエスト実行部３５に指示する。
【０２５８】
中継装置選択部３７からの指示を受けたレスポンス／リクエスト実行部３５は、中継装置選択部３７が選択した中継装置に対して、要求メッセージを送信する（Ｓ６２４）。要求メッセージを受信した中継装置は、この要求メッセージに対する応答メッセージとして、まず、ヘッダを送信するので、レスポンス／リクエスト実行部３５はこれを受信し（Ｓ６２５）、その旨をクライアント状況判断部３６に通知する。
【０２５９】
この通知を受信したクライアント状況判断部３６は、ムービーフラグメントの受信時間を評価するため、タイマを初期化し、時間のカウントを開始させる。また、クライアント状況判断部３６は、この評価に用いる変数（カウンタ）を初期化（Ｎ1＝Ｎ2＝０）しておく（Ｓ６２６）。なお、タイマの初期値としては、例えば直前に送信したムービーフラグメントのタイムスタンプの値から予め定めた閾値Ｔthを引いた値等を用いてもよい。
【０２６０】
そして、要求メッセージを受信した中継装置は、Ｓ６２４で受信した要求メッセージに対する応答メッセージとして、ヘッダの後に複数のムービーフラグメントをマルチパート化したボディを送信するので、レスポンス／リクエスト実行部３５はムービーフラグメントを受信し（Ｓ６２７）、その旨をクライアント状況判断部３６に通知する。
【０２６１】
また、レスポンス／リクエスト実行部３５は、受信したヘッダに含まれる「Content-Type」ヘッダの値から、MIMEマルチパート形式でムービーフラグメントを受信したと判断し、その旨をコンテンツ再生部３４に通知すると共に、受信したムービーフラグメントをコンテンツ再生部３４に送信する。そして、コンテンツ再生部３４は、受信したムービーフラグメントの「X-Timestamp」ヘッダを参照して、そのムービーフラグメントのタイムスタンプを特定し、タイムスタンプを参照しながらムービーフラグメントを再生する。
【０２６２】
ここで、クライアント状況判断部３６は、受信時間の評価を行う（Ｓ６２８）。具体的には、クライアント状況判断部３６は、Ｓ６２６でカウントを開始したタイマの示す時間ｔと、Ｓ６２７で受信したムービーフラグメントのタイムスタンプＴfr（X-Timestampの値）とを比較する。
【０２６３】
この比較の結果、ｔ＜Ｔfr−Ｔthであった場合には、予定受信時間より十分に早いと判断（通信状況が良いことを示す事象を検出したと判断）し、Ｓ６２９に進む。これに対し、Ｔfr＋Ｔth＞ｔであった場合には、遅延が生じていると判断（通信状況が悪いことを示す事象を検出したと判断）し、Ｓ６３０に進む。一方、上記の何れにも該当しない場合（｜ｔ−Ｔfr｜≦Ｔthの場合）には、Ｓ６３１に進む。
【０２６４】
つまり、クライアント状況判断部３６は、応答メッセージに含まれるムービーフラグメント１つの受信を開始した後、その次に受信するフラグメントの受信開始までの時間ｔをカウントし、先のムービーフラグメントに対応付けられたタイムスタンプの値と、次のムービーフラグメントに対応付けられたタイムスタンプの値との差をＴfrとし、予め定めたゼロ以上の閾値をＴthとして、Ｔfr＋Ｔth＞ｔであった場合には通信状況が悪いことを示す事象を検出したと判断し、ｔ＜Ｔfr−Ｔthであった場合には通信状況が良いことを示す事象を検出したと判断する。
【０２６５】
Ｓ６２９では、クライアント状況判断部３６は、予定受信時間より十分に早くムービーフラグメントを受信した回数のカウンタであるＮ1をインクリメントする。この後、処理はＳ６３１に進む。
【０２６６】
Ｓ６３０では、クライアント状況判断部３６は、ムービーフラグメントを遅延して受信した回数のカウンタであるＮ2をインクリメントする。この後、処理はＳ６３１に進む。
【０２６７】
Ｓ６３１では、レスポンス／リクエスト実行部３５は、Ｓ６２４で送信したリクエストで指定されるメディアセグメントに含まれる全てのムービーフラグメントを送信したかを確認し、未受信のものが確認された場合（Ｓ６３１でＮＯ）には、Ｓ６２７の処理に戻る。
【０２６８】
一方、全て受信済みであることを確認した場合（Ｓ６３１でＹＥＳ）には、レスポンス／リクエスト実行部３５は、リクエスト対象となっているコンテンツの全てのメディアセグメントを受信したかを確認（Ｓ６３２）し、全て受信済みであることを確認した場合（Ｓ６３２でＹＥＳ）には処理を終了する。一方、未受信のものが確認された場合（Ｓ６３２でＮＯ）には、クライアント状況判断部３６は、Ｓ６２９およびＳ６３０で求めたＮ1、Ｎ2を用い、Ｎ2−Ｎ1＞０であるか否かを判定する（Ｓ６３３）。
【０２６９】
Ｎ2−Ｎ1＞０でなければ、つまり、Ｎ2−Ｎ1≦０であれば、中継装置を変更せず、Ｓ６２３で選択した中継装置に対して、メディアセグメント番号をインクリメントした要求メッセージを送信する（Ｓ６２４）。この要求メッセージに対する応答メッセージとして、レスポンス／リクエスト実行部３５はヘッダを受信し（Ｓ６２５）、その旨をクライアント状況判断部３６に通知する。そして、クライアント状況判断部３６は、次のメディアセグメントに含まれるムービーフラグメントの受信時間を評価するため、タイマを再度初期化し、時間のカウントを開始させる。また、クライアント状況判断部３６は、この評価に用いる変数（カウンタ）も再度初期化（Ｎ1＝Ｎ2＝０）する。そして、レスポンス／リクエスト実行部３５は、次のメディアセグメントに含まれるムービーフラグメントを受信する（Ｓ６２７）。
【０２７０】
一方、Ｎ2−Ｎ1＞０であれば、クライアント状況判断部３６は、コンテンツの取得に遅延が生じていることを示す遅延情報を中継装置選択部３７に送信する。中継装置選択部３７は、クライアント状況判断部３６から遅延情報を受信すると、コンテンツ格納先リストに含まれるアドレス情報であって、現在選択しているアドレス情報とは異なる他のアドレス情報を選択する（Ｓ６３４）。中継装置選択部３７は、選択したアドレス情報の示すアドレスに存在する中継装置からコンテンツを取得するようにレスポンス／リクエスト実行部３５に指示する。
【０２７１】
中継装置選択部３７からの指示を受けたレスポンス／リクエスト実行部３５は、中継装置選択部３７が選択した中継装置に対して、メディアセグメント番号をインクリメントした要求メッセージを再度送信する（Ｓ６２４）。
【０２７２】
なお、上記では、メディアセグメント単位でコンテンツを取得する中継装置の再選択を行う（Ｓ６３４）例を示したが、ムービーフラグメント単位で中継装置の再選択を行ってもよい。この場合には、例えば、Ｓ６２８で行う受信時間の評価結果に応じて、中継装置を変更し、変更した中継装置に対して要求メッセージを新たに送信し、先に送信した要求メッセージに基づいて送信される、以降のムービーフラグメントを破棄してもよい。
【０２７３】
例えば、クライアント状況判断部３６は、受信に要した時間が予定時間より十分に早かったムービーフラグメントの数Ｎ1と、送信に遅延が生じたムービーフラグメントの数Ｎ2とを、Ｓ６２９、６３０でカウントしておいてもよい。そして、１つのメディアセグメントの送信完了後、Ｎ2−Ｎ1＞０であれば、全体的に遅延があると判断（通信状況が悪いことを示す事象を検出したと判断）して、その旨を中継装置選択部３７に通知すればよい。
【０２７４】
また、上記では、Ｓ６３３において、クライアント状況判断部３６は、Ｎ2−Ｎ1＞０であるか否かを判定して、コンテンツの取得に際し遅延が生じているか否かを判断していたが、これに限るものではない。例えば、ムービーフラグメントを遅延して受信した回数のカウンタであるＮ2の上限値を予め定めておき、Ｎ2の値が予め定めた上限値を超えた時点で、それ以降のムービーフラグメントを破棄して、別の中継装置に切り替えてもよい。
【０２７５】
〔実施例３〕
以下、図２４に実施例３を示し、本実施形態についてさらに詳しく説明する。実施例３では、クライアント４ｅであるコンテンツ再生装置に対して、コンテンツ格納先リストに含まれるアドレス情報の何れかからコンテンツの取得を指示するコンテンツ配信システム１ｂの動作例を示す。図２４は、実施例３におけるコンテンツ配信システム１ｂの動作シーケンスの一例を示す図である。
【０２７６】
なお、実施例３では、前提として、コンテンツ格納部５に図２１に示すフォーマットのコンテンツ１が格納されており、キャッシュ格納部６ａ、６ｃおよびクライアント記憶部８ｆには、コンテンツ１が既にキャッシュされているものとする。また、サーバ２は、コンテンツ格納先情報に含まれる日時に基づいて、複数のアドレス情報に優先順位を付加してコンテンツ格納先リストを作成するものとする。また、実施例３では、図２５に示す処理の開始時に、送信ログ記憶部１２には、図２５に示す送信ログ５１〜５３が記憶されており、コンテンツ格納先情報記憶部１３には、図２６に示すコンテンツ格納先情報６１〜６３が記憶されているものとする。そして、レスポンス実行部１５が図２５に示す送信ログ５４〜５６を、応答メッセージを送信するごとに作成し、コンテンツ格納先情報生成部１７が図２６に示すコンテンツ格納先情報６４〜６７を、コンテンツ送信ログまたはバージョン通知ログ（「送信内容」が「200 OK」または「304 Not Modified」である送信ログ）が送信ログ記憶部１２に追加される度に、作成するものとする。
【０２７７】
また、コンテンツ再生装置が要求メッセージを送信して、当該要求メッセージに対応する応答メッセージを受信するまでを１つのセッションとする。
【０２７８】
図２４に示すように、セッション３１０において、クライアント４ｅがコンテンツ１の送信を要求する要求メッセージをサーバ２に送信する（リクエスト３１１）。リクエスト３１１を受信したサーバ２では、レスポンス実行部１５は、中継装置特定部１６に取得先の中継装置を複数特定するように指示する。中継装置特定部１６は、指示を受けて、コンテンツ格納先情報記憶部１３のコンテンツ格納先情報を確認する（処理３１２）。ここでは、コンテンツ格納先情報記憶部１３には、コンテンツ１と対応付けられている格納先として、プロキシ３ａ、３ｃおよびクライアント４ｆが存在するため、コンテンツ格納先情報に含まれる日時に基づいて、中継装置特定部１６は、プロキシ３ａ、クライアント４ｆ、プロキシ３ｃの優先順位をそれぞれ１、２、３とし、プロキシ３ａ、クライアント４ｆおよびプロキシ３ｃのアドレス情報を含む、優先順位を付加したコンテンツ格納先リストを作成する。レスポンス実行部１５は、中継装置特定部１６が作成したコンテンツ格納先リストに含まれるアドレス情報を優先順位の高い順に選択し、選択したアドレス情報の示すアドレスに存在する中継装置から、要求したコンテンツを取得するように指示した応答メッセージを、クライアント４ｅに送信する（レスポンス３１３）。つまり、レスポンス実行部１５は、まず、プロキシ３ａからコンテンツを取得するように指示し、プロキシ３ａからコンテンツが取得できない、または、取得速度が遅い場合に、クライアント４ｆ、プロキシ３ｃの順番でコンテンツの取得を実行するようにクライアント４ｅに指示する。そして、レスポンス実行部１５は、送信した応答メッセージに基づいて、送信ログを作成し、送信ログ記憶部１２に追加する（処理３１４）。
【０２７９】
レスポンス３１３を受信したクライアント４ｅでは、中継装置選択部３７がサーバ２の指示に基づいて、優先順位が最も高いプロキシ３ａを、コンテンツの取得先の中継装置として選択する（処理３２０）。そして、中継装置選択部３７は、レスポンス／リクエスト実行部３５に対して、プロキシ３ａからコンテンツ１を取得するように指示する。
【０２８０】
次に、セッション３３０において、中継装置選択部３７から指示を受けたレスポンス／リクエスト実行部３５は、プロキシ３ａに対して、コンテンツ１の送信を要求する要求メッセージを送信する（リクエスト３３１）。リクエスト３３１を受信したプロキシ３ａは、コンテンツ１がキャッシュ格納部６ａに格納されているかどうかを確認する（処理３３２）。キャッシュ格納部６ａにはコンテンツ１が既に格納されているため、プロキシ３ａは、キャッシュ格納部６ａに格納されているコンテンツ１が最新のデータであるかどうかをサーバ２に確認するため、リクエスト３３１に基づく要求メッセージに「If-Modified-Since」を付加して条件付要求としてサーバ２に送信する（リクエスト３３３）。リクエスト３３３を受信したサーバ２では、リクエスト３３３に「Via」ヘッダが含まれており、リクエスト３３３が条件付要求の要求メッセージであるため、レスポンス実行部１５が、プロキシ３ａが保持しているコンテンツ１が最新のデータであるかどうかを確認する（処理３３４）。レスポンス実行部１５は、プロキシ３ａが保持しているコンテンツ１が最新のデータであると判定して、プロキシ３ａに「304 NOT Modified」の応答メッセージを送信する（レスポンス３３５）。レスポンス３３５を受信したプロキシ３ａは、キャッシュ格納部６ａに格納しているコンテンツ１を読み出し、リクエスト３３１に対する応答として、クライアント４ｅに読み出したコンテンツ１を送信する（レスポンス３３６）。クライアント４ｅは、レスポンス３３６を受信して、「movie fragment1〜60」を順に取得する。なお、レスポンス実行部１５は、レスポンス３３５を送信した後、送信した応答メッセージに基づいて、送信ログを作成し、送信ログ記憶部１２に追加する（処理３３７）。また、コンテンツ格納先情報生成部１７は、コンテンツ１とプロキシ３ａのアドレス情報とを対応付けてコンテンツ格納先情報を生成し、コンテンツ格納先情報記憶部１３に格納する。さらに、コンテンツ格納先情報生成部１７は、コンテンツ１とクライアント４ｅのアドレス情報とを対応付けてコンテンツ格納先情報を生成し、コンテンツ格納先情報記憶部１３に格納する（処理３３８）。
【０２８１】
クライアント状況判断部３６は、ムービーフラグメントを受信するごとに受信時間の評価を行い、１つのメディアセグメントを受信した時点で、Ｎ2−Ｎ1＞０であったとする。このとき、クライアント状況判断部３６は、プロキシ３ａから取得するコンテンツ１の受信速度が予め定めた受信速度より遅いと判断し、その旨を示す遅延情報を中継装置選択部３７に通知する（処理３４０）。
【０２８２】
中継装置選択部３７は、クライアント状況判断部３６から遅延の通知を受けると、現在コンテンツの取得先の中継装置として選択しているプロキシ３ａから、優先順位が２番目に高いクライアント４ｆに変更する（処理３５０）。つまり、中継装置選択部３７は、再選択して、クライアント４ｆをコンテンツの取得先の中継装置として決定する。そして、中継装置選択部３７は、レスポンス／リクエスト実行部３５に対して、クライアント４ｆからコンテンツ１を取得するように指示する。
【０２８３】
次に、セッション３６０において、中継装置選択部３７から指示を受けたレスポンス／リクエスト実行部３５は、現在、「movie fragment1〜60」まで受信しているため、クライアント４ｆに対して、コンテンツ１の「movie fragment61」以降の送信を要求する要求メッセージを送信する（リクエスト３６１）。リクエスト３６１を受信したクライアント４ｆは、コンテンツ１がクライアント記憶部８ｆに格納されているかどうかを確認する（処理３６２）。クライアント記憶部８ｆにはコンテンツ１が既に格納されているため、クライアント４ｆは、クライアント記憶部８ｆに格納されているコンテンツ１が最新のデータであるかどうかをサーバ２に確認するため、リクエスト３６１に基づく要求メッセージに「If-Modified-Since」を付加して条件付要求としてサーバ２に送信する（リクエスト３６３）。リクエスト３６３を受信したサーバ２では、リクエスト３６３に「Via」ヘッダが含まれており、リクエスト３６３が条件付要求の要求メッセージであるため、レスポンス実行部１５が、クライアント４ｆが保持しているコンテンツ１が最新のデータであるかどうかを確認する（処理３６４）。レスポンス実行部１５は、クライアント４ｆが保持しているコンテンツ１が最新のデータであると判定して、クライアント４ｆに「304 NOT Modified」の応答メッセージを送信する（レスポンス３６５）。レスポンス３６５を受信したクライアント４ｆは、クライアント記憶部８ｆに格納しているコンテンツ１の「movie fragment61」以降のデータを順次読み出し、リクエスト３６１に対する応答として、クライアント４ｅに読み出したコンテンツ１の「movie fragment61」以降を順番に送信する（レスポンス３６６）。クライアント４ｅは、レスポンス３６６を受信して、「movie fragment61」以降を順に取得する。なお、レスポンス実行部１５は、レスポンス３６５を送信した後、送信した応答メッセージに基づいて、送信ログを作成し、送信ログ記憶部１２に追加する（処理３６７）。また、コンテンツ格納先情報生成部１７は、コンテンツ１とクライアント４ｆのアドレス情報とを対応付けてコンテンツ格納先情報を生成し、コンテンツ格納先情報記憶部１３に格納する。さらに、コンテンツ格納先情報生成部１７は、コンテンツ１とクライアント４ｅのアドレス情報とを対応付けてコンテンツ格納先情報を生成し、コンテンツ格納先情報記憶部１３に格納する（処理３６８）。
【０２８４】
上述のように、本実施形態では、コンテンツ再生装置は、サーバ２から複数の中継装置のアドレス情報を含むコンテンツ格納先リストを受信し、コンテンツ格納先リストに含まれるアドレス情報の示すアドレスに存在する中継装置の何れかからコンテンツを取得する。そして、コンテンツ再生装置は、コンテンツの取得に遅延が生じると、コンテンツを取得する中継装置を、コンテンツ格納先リストに含まれるアドレス情報の示すアドレスに存在する他の中継装置に変更する。そのため、ネットワーク（特に、コンテンツ再生装置と中継装置との間のネットワーク）の負荷を時間的にも効率よく分散できるようになり、コンテンツ配信システム１ｂにおいて、よりきめ細かい制御が可能となる。結果的により多数のコンテンツ再生装置に対してより高いサービス品質を保つことができる。
【０２８５】
〔実施例３におけるＨＴＴＰメッセージ〕
続いて、図２４の動作シーケンス図で使用されるリクエストおよびレスポンスの詳細を図２７〜図２８に示す。図２７〜図２８は、リクエストまたはレスポンスとして送受信されるＨＴＴＰメッセージの一例を示す図であり、図２７は、セッション３１０およびセッション３３０におけるＨＴＴＰメッセージの一例を示す図であり、図２８は、セッション３６０におけるＨＴＴＰメッセージの一例を示す図である。
【０２８６】
図２７の（ａ）は、図２４に示すリクエスト３１１の、図２７の（ｂ）はレスポンス３１３の、図２７の（ｃ）はリクエスト３３１の、図２７の（ｄ）はリクエスト３３３の、図２７の（ｅ）はレスポンス３３５の、図２７の（ｆ）はレスポンス３３６のＨＴＴＰメッセージをそれぞれ示している。
【０２８７】
また、図２８の（ａ）は、図２４に示すリクエスト３６１の、図２８の（ｂ）はレスポンス３６３の、図２８の（ｃ）はリクエスト３６５の、図２８の（ｄ）はリクエスト３６６のＨＴＴＰメッセージをそれぞれ示している。
【０２８８】
〔セッション３１０およびセッション３３０におけるＨＴＴＰメッセージ〕
まず、セッション３１０およびセッション３３０におけるＨＴＴＰメッセージを図２７に基づいて説明する。なお、図２７の（ｃ）〜（ｅ）は、図１０の（ｃ）〜（ｅ）にそれぞれ対応しており、図２７では、図１０のコンテンツ２がMIMEマルチパート形式のコンテンツ１に変更しており、クライアント４ａがクライアント４ｅに、プロキシ３ｂがプロキシ３ａに変更しているだけであるから、セッション３３０のリクエスト３３１、リクエスト３３３およびレスポンス３３６のＨＴＴＰメッセージの説明は省略する。また、図２８の（ａ）〜（ｄ）は、図２７の（ｃ）〜（ｆ）にそれぞれ対応しており、図２８では、図２７のコンテンツ１の「media segment1」が「media segment2」に、プロキシ３ａがクライアント４ｆに変更しているだけであるから、セッション３６０におけるＨＴＴＰメッセージの説明は省略する。なお、ここでは、ＨＴＴＰメッセージに含まれる要素のうち、本発明に特有の要素を中心に説明し、公知の要素については適宜説明を省略する。
【０２８９】
（コンテンツを要求するリクエスト３１１）
図２７の（ａ）に示すように、クライアント４ｅからサーバ２に対してコンテンツ１の「media segment1」を要求するリクエスト３１１に対応するＨＴＴＰメッセージには、リクエストラインとヘッダが含まれる。
【０２９０】
図２７の（ａ）のリクエストラインには、コンテンツを取得するメソッドを示す「ＧＥＴ」の後に取得するコンテンツを特定する情報が記述されている。具体的には、「／コンテンツ名／メディアセグメント番号」の形式で記述されている。つまり、図２７の（ａ）のＨＴＴＰメッセージは、「content 1」の「０」番目（先頭部分）の「media segment1」に対するリクエストということになる。
【０２９１】
また、図２７の（ａ）のヘッダには、クライアント４ｅが処理可能なデータ形式を示す「Accept」ヘッダが含まれており、この「Accept」ヘッダに、ＭＰ４フォーマットの動画データを示す情報「video/mp4」が記述されている。それに加えて、MIMEマルチパート形式を示す情報「multipart/media-segment」が記述されている。これにより、このリクエストを送信した装置であるクライアント４ｅは、ＭＰ４フォーマットの動画データをMIMEマルチパート形式で受信可能であることをリクエストの送信先の装置であるサーバ２に伝えることができる。
【０２９２】
また、図２７の（ａ）のヘッダには、リクエスト先のサーバを特定する「Host」ヘッダが含まれており、この「Host」ヘッダに、サーバ２のアドレスを示す「example.com」が記述されている。
【０２９３】
（コンテンツの取得先を指示するレスポンス３１３）
図２７の（ｂ）に示すように、サーバ２からクライアント４ｅに対してコンテンツ１の取得先を指示するレスポンス３１３に対応するＨＴＴＰメッセージには、レスポンスラインとヘッダが含まれる。
【０２９４】
図２７の（ｂ）のレスポンスラインには、プロキシ３を使用するように指示する情報が、「ステータス番号 メッセージ」の形式で記述されている。
【０２９５】
また、図２７の（ｂ）のヘッダには、使用する中継装置を特定する「Location」ヘッダが含まれている。つまり、図２７の（ｂ）のＨＴＴＰメッセージは、下記の「Location」ヘッダで指定した中継装置を使用してコンテンツ１を要求するように指示したレスポンスということになる。図示の例では、この「Location」ヘッダに、プロキシ３ａのアドレスを示すアドレス情報「http://example-proxy1.com」が記述されている。これにより、このレスポンスを受信した装置であるクライアント４ｅは、コンテンツ１を要求する相手先である中継装置（プロキシ３ａ）のアドレス情報を知ることができる。
【０２９６】
さらに、図２７の（ｂ）のヘッダには、コンテンツ１を保持する、その他の中継装置のアドレス情報を示す「X-Alternative-Proxy-List」ヘッダが含まれており、この「X-Alternative-Proxy-List」ヘッダに、その他の中継装置（ここでは、クライアント４ｆおよびプロキシ３ｃ）のアドレスを示すアドレス情報「http://example-client2.com, http://example-proxy3.com」が記述されている。これにより、このレスポンスを受信した装置であるクライアント４ｅは、「Location」ヘッダで指定された中継装置以外にも、コンテンツ１を保持している（可能性のある）中継装置が提示され、コンテンツ１を取得する中継装置を、「Location」ヘッダまたは「X-Alternative-Proxy-List」ヘッダに含まれるアドレス情報の示すアドレスに存在する中継装置から選択することができる。なお、ヘッダの名称中の「X」は、そのヘッダを本実施形態で新規に定義したことを示している。
【０２９７】
（プロキシ３ａからクライアント４ｅにコンテンツを送信するレスポンス３３６）
図２７の（ｆ）に示すように、プロキシ３ａからクライアント４ｅに対してコンテンツ１の「media segment1」を送信するレスポンス３３６に対応するＨＴＴＰメッセージには、レスポンスライン、ヘッダ、およびボディが含まれる。
【０２９８】
図２７の（ｆ）のレスポンスラインには、リクエストを正常に受け付けたことを示す、つまり、要求したコンテンツを送信することを示す情報が記述されている。具体的には、「ステータス番号 応答メッセージ」の形式で記述されている。
【０２９９】
ヘッダには、送信するコンテンツに関する情報が記述される。図示の例では、送信するコンテンツの種別を示す「Content-Type」ヘッダ、送信するコンテンツの格納場所（例えば、ＵＲＩ等）を示す「Content-Location」ヘッダ、送信するコンテンツのキャッシュに関する指示を示す「Cache-Control」ヘッダ、メッセージの転送経路を示す転送経路情報である「Via」ヘッダ、および、送信するメディアセグメントのコンテンツ全体に対する位置を示す「X-Media-Segment-Index」ヘッダが含まれている。
【０３００】
図示の例では、「Content-Type」ヘッダにMIMEマルチパート形式を示す情報である「multipart/media-segment」が記述されている。これにより、このヘッダを受信した装置（クライアント４ｅ）は、このヘッダの次に受信するコンテンツが、MIMEマルチパート形式で送信されたメディアセグメントであることを認識することができる。そして、このヘッダには、パートの切れ目が「THIS#STRING#SEPARATES」であることを示す情報「boundary=THIS#STRING#SEPARATES」が含まれている。
【０３０１】
また、「Content-Location」ヘッダには、「http://www.example.com/content1/0」というＵＲＩが記述されている。上述のように、このＵＲＩの末尾の「0」は、コンテンツの先頭部分の「media segment1」を示している。そして、これに続く「media segment2」のＵＲＩは「http://www.example.com/content1/1」となっている。このように、メディアセグメントを連番で示すことにより、このレスポンスを受信した装置（クライアント４ｅ）は、この番号をインクリメントしたＵＲＩを、次に要求するメディアセグメントのＵＲＩとすることができる。
【０３０２】
また、「Cache-Control」ヘッダに「must-revalidate」が記述されており、「Via」ヘッダに「example-proxy1.com」が記述されている。
【０３０３】
さらに、図示の例では、「X-Media- Segment-Index」ヘッダが含まれている。このヘッダは、コンテンツの全体に対する当該メディアセグメントの再生位置を示すものである。図２７の（ｆ）では、「1/60」と記述されており、これは、コンテンツ全体で６０のメディアセグメントがあるうち、１番目のメディアセグメントを示している。この情報により、コンテンツの全長及び現在の再生位置が把握できるので、この情報を参照して、コンテンツ中の任意のメディアセグメントにアクセスすることもできる。
【０３０４】
ボディには、メディアセグメントを構成する複数のムービーフラグメントがMIMEマルチパート形式で記述される。ここでは、１つのメディアセグメントに１〜６０までの６０のムービーフラグメントが含まれている。
【０３０５】
また、各パート（フラグメント毎）にはヘッダを記述することができる。図示の例では、ムービーフラグメントのコンテンツ種別を示す「Content-Type」ヘッダ、当該ムービーフラグメントのタイムスタンプを示す「X-Timestamp」ヘッダが記述されている。この「X-Timestamp」ヘッダの示すタイムスタンプを参照することにより、ムービーフラグメントを解析することなく、そのムービーフラグメントの再生時間（再生開始タイミング）を特定することができる。そして、各パートには、そのパートのムービーフラグメントのデータ実体（バイナリデータ）が含まれる。
【０３０６】
〔クライアントがMIMEマルチパート形式のデータを処理することができない場合〕
本実施形態では、クライアント４であるコンテンツ再生装置がMIMEマルチパート形式のデータを処理可能な場合、すなわちリクエストメッセージの「Accept」ヘッダの値に「multipart/media-segment」が含まれている場合について説明したが、コンテンツ再生装置がMIMEマルチパート形式のデータを処理できないこと（リクエストメッセージの「Accept」ヘッダの値に「multipart/media-segment」が含まれていないこと）も考えられる。
【０３０７】
このような場合、中継装置やサーバ２は、MIMEマルチパート形式で応答するのではなく、メディアセグメント内のすべてのムービーフラグメントを結合したものを１つのボディとして応答すればよい。これにより、MIMEマルチパート形式のデータを処理できないコンテンツ再生装置が、受信したコンテンツを再生することが可能となる。
【０３０８】
＜第４の実施の形態＞
本発明の第４の実施形態では、同一のコンテンツを複数のサーバ２が管理している場合に、コンテンツ再生装置とサーバ２との間のネットワークの負荷およびサーバ２の処理負荷をより広く分散できるように、コンテンツリクエストを受信したサーバ２がコンテンツ取得先のサーバ２を複数指定し、コンテンツ再生装置が指定された複数のサーバ２の中から、サーバ２を選択してコンテンツを取得する例を示す。
【０３０９】
より詳細には、本実施形態では、コンテンツ再生装置であるクライアント４が、コンテンツリクエストの送信先のサーバ２から指定された複数のサーバ２の中から１つのサーバ２を選択し、選択したサーバ２からコンテンツを取得する。このコンテンツの取得中に、コンテンツの取得に関して遅延が発生した場合、コンテンツリクエストの送信先のサーバ２から指定された複数のサーバ２の中から別のサーバ２を再度選択して、コンテンツを取得するサーバ２を変更する。
【０３１０】
本実施形態について図２９から図３４に基づいて説明すると以下の通りである。第４の実施形態は、第３の実施形態と比べて、コンテンツ配信システムがサーバ２を複数備えていることと、サーバ２およびクライアント４の構成とが異なるだけであり、その他は同様のため、主に、第３の実施形態と異なる点について説明する。
【０３１１】
〔コンテンツ配信システム１ｃの概要〕
まず、本実施形態のコンテンツ配信システム１ｃの概要について、図２９に基づいて説明する。図２９は、第４の実施の形態に係るコンテンツ配信システム１ｃの概要およびコンテンツ配信システム１ｃを構成する各装置の要部構成を示す図である。
【０３１２】
図２９に示すように、コンテンツ配信システム１ｃは、サーバ２ａ、２ｂおよび２ｃ、プロキシ３ａ、３ｂおよび３ｃ、並びに、クライアント４ｇおよび４ｈを含む。また、コンテンツ配信システム１ｃは、サーバ２ａ、２ｂ、２ｃとそれぞれ接続しているコンテンツ格納部５ａ、５ｂ、５ｃと、プロキシ３ａ、３ｂ、３ｃとそれぞれ接続しているキャッシュ格納部６ａ、６ｂ、６ｃと、クライアント４ｇ、４ｈとそれぞれ接続しているクライアント記憶部８ｇ、８ｈとを含む。
【０３１３】
本実施形態におけるプロキシ３は、第３の実施形態におけるプロキシ３と構成および動作処理が同一であるため、ここではプロキシ３の詳細について説明を省略する。
【０３１４】
〔サーバ２について〕
本実施形態におけるサーバ２ａ、２ｂおよび２ｃは、第３の実施形態におけるサーバ２と異なり、中継装置特定部１６に代えて、取得先特定部１８を備える。また、コンテンツ格納先情報記憶部１３は、コンテンツを保持する中継装置のアドレス情報を含むコンテンツ格納先情報だけではなく、コンテンツを保持するサーバ２のアドレス情報を含むコンテンツ格納先情報も記憶する。本実施形態におけるサーバ２ａ、２ｂおよび２ｃは、それ以外の構成は第３の実施形態におけるサーバ２と同様の構成である。
【０３１５】
本実施形態におけるサーバ２は、コンテンツ再生装置にコンテンツの取得先のサーバ２を選択させるために、コンテンツ再生装置が要求するコンテンツを保持する（可能性のある）サーバ２を複数特定し、特定した複数のサーバ２のアドレス情報を含むコンテンツ格納先サーバリストをコンテンツ再生装置に提示し、コンテンツ再生装置に対して、提示したコンテンツ格納先サーバリストに含まれるアドレス情報の示すアドレスに存在するサーバ２の何れかからコンテンツを取得するように指示するものとする。
【０３１６】
具体的には、レスポンス実行部１５は、コンテンツ再生装置から、直接、コンテンツを要求する要求メッセージを受信すると、取得先特定部１８に対して、コンテンツ再生装置が要求したコンテンツを保持する（可能性のある）サーバ２のアドレス情報（例えば、サーバ２のＵＲＩ等）を特定するように指示する。そして、レスポンス実行部１５は、取得先特定部１８から、コンテンツ再生装置が要求するコンテンツを保持するサーバ２のアドレス情報を複数含むコンテンツ格納先サーバリストを受信すると、コンテンツ再生装置からの要求メッセージに対する応答として、取得先特定部１８が作成したコンテンツ格納先サーバリストに含まれるアドレス情報の示すアドレスに存在するサーバ２の何れかから、要求したコンテンツを取得するように指示した応答メッセージをコンテンツ再生装置に送信する。
【０３１７】
また、レスポンス実行部１５は、他のサーバ２のレスポンス実行部１５からコンテンツの有無に関する問い合わせがあった場合、自装置と接続するコンテンツ格納部５が問い合わせのあったコンテンツを保持しているか否かを確認する。そして、レスポンス実行部１５は、他のサーバ２に対してコンテンツの有無を応答する。例えば、サーバ２ｂのレスポンス実行部１５からサーバ２ａのレスポンス実行部１５に対してコンテンツの有無に関する問い合わせがあった場合、サーバ２ａのレスポンス実行部１５は、コンテンツ格納部５ａが保持するコンテンツを確認し、コンテンツの有無をサーバ２ｂに対して応答する。
【０３１８】
なお、レスポンス実行部１５のその他の処理については、第３の実施形態と同様であるため、ここでは説明を省略する。
【０３１９】
取得先特定部１８は、レスポンス実行部１５の指示に従って、コンテンツ再生装置が要求したコンテンツを保持している（可能性のある）サーバ２を複数特定し、特定した複数のサーバ２のアドレス情報を含むコンテンツ格納先サーバリストを作成するものである。
【０３２０】
具体的には、取得先特定部１８は、レスポンス実行部１５から指示を受けて、コンテンツ格納先情報記憶部１３からコンテンツ格納先情報を読み出す。取得先特定部１８は、読み出したコンテンツ格納先情報を参照して、コンテンツ再生装置が要求するコンテンツに対応付けられているサーバ２のアドレス情報を複数特定し、特定した複数のアドレス情報を含むコンテンツ格納先サーバリストを作成する。取得先特定部１８は、作成したコンテンツ格納先サーバリストをレスポンス実行部１５に送信する。
【０３２１】
取得先特定部１８は、コンテンツ格納先情報記憶部１３からコンテンツ格納先情報を読み出す際に、例えば、コンテンツ格納先情報記憶部１３にサーバ２のアドレス情報を含むコンテンツ格納先情報が存在しない場合、あるいは、コンテンツ格納先情報が古い場合（コンテンツ格納先情報が含む日時が所定時間前のものである場合）、コンテンツ格納先情報記憶部１３が記憶するサーバ２のアドレス情報を含むコンテンツ格納先情報を更新する。
【０３２２】
取得先特定部１８は、コンテンツ格納先情報の更新が必要であると判断すると、他のサーバ２に対して、要求されたコンテンツを有するかどうかの問い合わせをレスポンス実行部１５を経由して行う。そして、各サーバ２からの応答に基づいて、要求されたコンテンツを有すると応答したサーバ２のアドレス情報を特定し、特定したアドレス情報を含むコンテンツ格納先サーバリストを生成し、レスポンス実行部１５へ通知する。また、取得先特定部１８は、各サーバ２からの応答に基づいて、要求されたコンテンツと、当該コンテンツを有すると応答したサーバ２のアドレス情報と、当該応答を受信した日時とを対応付けてコンテンツ格納先情報を生成し、生成したコンテンツ格納先情報をコンテンツ格納先情報記憶部１３に格納する。
【０３２３】
なお、取得先特定部１８は、所定時間ごとにコンテンツ格納先情報の更新を行ってもよい。
【０３２４】
また、取得先特定部１８がコンテンツ格納先情報を更新する際に、各サーバ２へのコンテンツの有無の問い合わせを行ってから、その応答を受信するまでの時間を計測し、その時間に基づいてサーバ２に順位付けを行ってもよい。すなわち、上記時間が長い（問い合わせに対する応答に時間がかかった）サーバ２に対しては順位を低く設定し、上記時間が短いサーバ２に対しては順位を高く設定してもよい。そして、取得先特定部１８は、作成したコンテンツ格納先サーバリストに含まれるサーバ２のアドレス情報に対して、設定した順位を対応付けてもよい。
【０３２５】
また、第３の実施形態と同様に、コンテンツ再生装置とサーバ２との物理的、もしくは、ネットワーク構造的な距離、サーバ２の負荷状況などに基づいて、サーバ２の優先順位を決定してもよい。
【０３２６】
また、取得先特定部１８は、コンテンツを保持するサーバ２のアドレス情報を含むコンテンツ格納先サーバリストだけではなく、第３の実施形態と同様に、コンテンツを保持する（可能性のある）中継装置のアドレス情報を含むコンテンツ格納先リストを作成してもよい。
【０３２７】
コンテンツ格納先情報記憶部１３は、中継装置のアドレス情報を含むコンテンツ格納先情報に加えて、コンテンツと、当該コンテンツを保持するサーバ２のアドレス情報と、当該サーバ２からの更新の応答を受信した日時とが対応付けられたコンテンツ格納先情報を記憶するものである。コンテンツ格納先情報記憶部１３が記憶するコンテンツ格納先情報は、例えば、図３０に示すデータであってよい。図３０は、コンテンツ格納先情報記憶部１３が記憶するコンテンツ格納先情報の一例を示す図である。
【０３２８】
図３０に示すように、コンテンツ格納先情報は、プロキシ３もしくはクライアント４がコンテンツを取得した日時または更新の応答を受信した日時である「Date」と、コンテンツを示す「コンテンツＩＤ」と、当該コンテンツを保持するプロキシ３、クライアント４またはサーバ２のアドレス情報である「格納先アドレス」とが対応付けられている。
【０３２９】
具体的には、図３０では、例として、アドレスが「http://srv2.exmaple.com」であるサーバ２がコンテンツ「content1」を保持していることを示すコンテンツ格納先情報７５が示されている。
【０３３０】
以上、まとめると、本実施形態に係るサーバ２では、レスポンス実行部１５が、上記リクエストの送信元が、リクエストしたコンテンツを保持して、リクエストしたコンテンツをコンテンツ再生装置に転送する中継装置であるか、リクエストしたコンテンツを再生するコンテンツ再生装置であるか、を判定する。次に、取得先特定部（コンテンツ格納先情報取得手段）１８は、レスポンス実行部１５が上記リクエストの送信元がコンテンツ再生装置であると判定した場合、当該リクエストに応じて、予め定められた他のサーバ２のうち、当該リクエストされたコンテンツを有する他のサーバ２のアドレスを取得する。そして、レスポンス実行部（コンテンツ取得先指示手段）１５は、取得先特定部１８が取得したアドレスの示す他のサーバ２からコンテンツを取得するように、上記リクエストの送信元であるコンテンツ再生装置に指示する。
【０３３１】
ここで、上記予め定められた他のサーバ２とは、上記リクエストを受信したサーバ２とネットワーク７で接続されたサーバ２であって、予め所定のルールで定めた範囲のサーバ２である。例えば、サーバ２ａが上記リクエストを受信したサーバ２の場合、上記予め定められた他のサーバ２を、サーバ２ｂおよび２ｃとしてもよいし、サーバ２ｂとしてもよいし、さらに、サーバ２ｂおよびサーバ２ｃに加えて、サーバ２ａがネットワークを介して通信可能な全てのサーバ２としてもよい。
【０３３２】
また、取得先特定部１８は、上記予め定められた他のサーバ２に対して、上記リクエストされたコンテンツを有するか否かの問い合わせを送信し、当該問い合わせに対して上記リクエストされたコンテンツを有すると応答した他のサーバ２のアドレスを取得する。
【０３３３】
また、取得先特定部１８は、取得したコンテンツを有する他のサーバ２のアドレスと、当該コンテンツを示すコンテンツ識別情報とを対応付けてコンテンツ格納先情報を生成して、コンテンツ格納先情報記憶部（記憶部）１３に格納する。
【０３３４】
また、取得先特定部１８は、コンテンツ格納先情報記憶部１３からコンテンツ格納先情報を読み出し、読み出したコンテンツ格納先情報が上記リクエストされたコンテンツを示すコンテンツ識別情報を含む場合、当該コンテンツ格納先情報から当該コンテンツ識別情報と対応付けられたアドレスを取得し、一方、読み出したコンテンツ格納先情報が上記リクエストされたコンテンツを示すコンテンツ識別情報を含まない場合、上記問い合わせを送信し、上記リクエストされたコンテンツを有する他のサーバ２のアドレスを取得する。
【０３３５】
また、取得先特定部１８は、上記リクエストされたコンテンツを有する複数のサーバ２の各々のアドレスを取得し、取得した各アドレスと、当該コンテンツを示すコンテンツ識別情報とを含むコンテンツ格納先サーバリストを作成する。そして、レスポンス実行部１５は、取得先特定部１８が作成したコンテンツ格納先サーバリストに含まれるアドレスの示す他のサーバ２からコンテンツを取得するように、上記リクエストの送信元であるコンテンツ再生装置に指示する。
【０３３６】
また、本実施形態に係るコンテンツ再生装置として機能するクライアント４では、サーバ２にリクエストを送信し、当該リクエストに対するレスポンスとして上記コンテンツ格納先サーバリストを受信し、受信したコンテンツ格納先サーバリストに含まれる何れかのアドレスの示す他のサーバ２からリクエストしたコンテンツを取得する。
【０３３７】
具体的には、クライアント４は、上記コンテンツを取得する受信速度が、予め定めた受信速度よりも遅い場合、上記コンテンツを取得する取得先の他のサーバ２（例えば、サーバ２ｂ）を、コンテンツ格納先サーバリストに含まれる上記アドレスとは別のアドレスの示す他のサーバ２（例えば、サーバ２ｃ）に変更する取得先選択部（取得先変更手段）３８を備える。
【０３３８】
〔クライアント４について〕
本実施形態におけるクライアント４は、コンテンツ再生装置として機能する際に、サーバ２から送信されたコンテンツ格納先サーバリストを受信して、受信したコンテンツ格納先サーバリストに含まれるアドレス情報の示すアドレスに存在するサーバ２の何れかからリクエストしたコンテンツを取得する。
【０３３９】
図２９に示すクライアント４ｇおよび４ｈは、第３の実施形態のクライアント４が備える中継装置選択部３７に代えて、取得先選択部３８を備える。取得先選択部３８は、本実施の形態にて後述するサーバ２を選択する機能に加え、第３の実施形態で示した中継装置選択部３７の機能を備える。
【０３４０】
レスポンス／リクエスト実行部３５は、サーバ２から応答メッセージとして、コンテンツ格納先サーバリストと、当該コンテンツ格納先サーバリストに含まれるアドレス情報の示すアドレスに存在するサーバ２の何れかにコンテンツを要求する要求メッセージを送信する指示とを受信する。
【０３４１】
レスポンス／リクエスト実行部３５がコンテンツ格納先サーバリストおよび上記指示を受信すると、取得先選択部３８は、レスポンス／リクエスト実行部３５が受信したコンテンツ格納先サーバリストに含まれるアドレス情報の中から何れか１つを選択する。取得先選択部３８は、選択したアドレス情報の示すアドレスに存在するサーバ２からコンテンツを取得するように、レスポンス／リクエスト実行部３５に指示する。
【０３４２】
ここで、取得先選択部３８は、コンテンツ格納先サーバリストに含まれるアドレス情報に優先順位が付加されていなければ（コンテンツリクエスト送信先のサーバ２からコンテンツを取得するサーバ２を選択する順序を指示されていなければ）、コンテンツ格納先サーバリストに含まれるアドレス情報の中からランダムに選択してもよいし、予め定められたルール（デフォルト）に基づいて選択してもよいし、自装置との物理的、もしくは、ネットワーク構造的な距離が最も短いサーバ２を選択してもよい。
【０３４３】
一方、コンテンツ格納先サーバリストに含まれるアドレス情報に優先順位が付加されている場合、取得先選択部３８は、優先順位が最も高いアドレス情報を選択する。
【０３４４】
さらに、取得先選択部３８は、取得先選択部３８が選択したサーバ２から、レスポンス／リクエスト実行部３５が取得しているコンテンツの取得速度（コンテンツの受信速度）が予め定めた受信速度よりも遅いことを示す遅延情報をクライアント状況判断部３６から受信すると、コンテンツを取得する取得先のサーバ２を、コンテンツ格納先サーバリストに含まれるアドレス情報の示すアドレスに存在する他のサーバ２に変更し、変更した他のサーバ２からコンテンツを取得するように、レスポンス／リクエスト実行部３５に指示する。
【０３４５】
ここで、取得先選択部３８は、コンテンツ格納先サーバリストに含まれるアドレス情報に優先順位が付加されていなければ（コンテンツリクエスト送信先のサーバ２からコンテンツを取得するサーバ２を選択する順序を指示されていなければ）、他のサーバ２を、コンテンツ格納先サーバリストに含まれるアドレス情報の中からランダムに選択してもよいし、予め定められたルール（デフォルト）に基づいて選択してもよいし、自装置との物理的、もしくは、ネットワーク構造的な距離が次に短いサーバ２を選択してもよい。
【０３４６】
一方、コンテンツ格納先サーバリストに含まれるアドレス情報に優先順位が付加されている場合、取得先選択部３８は、次に優先順位が高いアドレス情報を選択する。
【０３４７】
クライアント状況判断部３６は、第３の実施形態で述べた動作に加えて、次の事象の発生を検出する。具体的には、クライアント状況判断部３６は、コンテンツ再生装置がサーバ２から要求したコンテンツを取得する際に、予定よりも遅延してコンテンツが受信されたという事象を検出する。この事象は、コンテンツ再生装置とサーバ２との間のネットワークの通信状況の良し悪し、および／または、当該サーバ２に対する負荷の大きさを示す事象である。クライアント状況判断部３６は、予定よりも遅延してコンテンツが受信されたという事象を検出すると、検出した事象を示す遅延情報を取得先選択部３８に送信する。
【０３４８】
これまでは応答メッセージに、要求したコンテンツを有する他のサーバ２を選択するためのコンテンツ格納先サーバリストが含まれている例について述べたが、サーバ２からの応答メッセージには、この他に、中継装置を選択するためのコンテンツ格納先リストが含まれていてもよい。これらにリストの両者が含まれていた場合、取得先選択部３８は、中継装置経由での取得か、他のサーバ２から取得するかを選択するとともに、選択した方の格納先リストに含まれるアドレス情報の中から何れか一つを選択する。
【０３４９】
ここで取得先選択部３８は、コンテンツ格納先リストとコンテンツ格納先サーバリストに含まれるアドレス情報に優先順位がなければ（サーバ２からコンテンツの取得先を選択する順序を指示されていなければ）、コンテンツ格納先リストあるいはコンテンツ格納先サーバリストに含まれるアドレス情報の中からランダムに選択してもよいし、予め定められたルール（デフォルト）に基づいて選択してもよいし、自装置との物理的、もしくは、ネットワーク構造的な距離が最も短い取得先を選択してもよい。
【０３５０】
一方、優先順位が付加されている場合、取得先選択部３８は、優先順位が最も高いアドレス情報を選択する。
【０３５１】
また、取得先選択部３８は、取得先選択部３８が選択した取得先（中継装置あるいはサーバ２）から、レスポンス／リクエスト実行部３５が取得しているコンテンツの取得速度（コンテンツの受信速度）が予め定めた受信速度よりも遅いことを示す遅延情報をクライアント状況判断部３６から受信すると、コンテンツを取得する取得先を、コンテンツ格納先リストあるいはコンテンツ格納先サーバリストに含まれるアドレス情報の示すアドレスに存在する他の中継装置またはサーバ２に変更し、変更した他の取得先からコンテンツを取得するように、レスポンス／リクエスト実行部３５に指示する。
【０３５２】
〔各装置が実行する処理について〕
次に、サーバ２およびコンテンツ再生装置として機能するクライアント４が実行する処理について、図３１および図３２に基づいて説明する。第４の実施形態におけるプロキシ３が実行する処理は、第３の実施形態と同様であり、第４の実施形態における中継装置として機能するクライアント４が実行する処理も、第４の実施形態と同様であるため説明は省略する。また、第４の実施形態では、サーバ２または中継装置の何れかを選択してコンテンツを取得する例を示す。
【０３５３】
〔サーバ２が実行する処理について〕
まずは、サーバ２が実行する処理について図３１に基づいて説明する。図３１は、サーバ２が実行する処理の一例を示すフローチャートである。なお、第３の実施形態と同様の処理については同じ番号を付し、詳細な説明は省略する。
【０３５４】
レスポンス実行部１５は、コンテンツの送信を要求する要求メッセージを受信するのを待っており、サーバ通信部１１を介して、コンテンツの送信を要求する要求メッセージを受信すると（Ｓ６０１）、受信した要求メッセージのヘッダを確認して、受信した要求メッセージが中継装置から送信されたものであるか否かを判定する（Ｓ６０２）。
【０３５５】
受信した要求メッセージを送信した主体がコンテンツ再生装置である場合、（Ｓ６０２でＮＯ）、取得先特定部１８に対して、コンテンツ再生装置がコンテンツを取得する、その取得先を複数特定するように指示する。
【０３５６】
取得先特定部１８は、レスポンス実行部１５から指示を受けて、コンテンツ格納先情報記憶部１３からコンテンツ格納先情報を読み出す（Ｓ６０３）。取得先特定部１８は、コンテンツ格納先情報からコンテンツ格納先サーバリストを作成する（Ｓ７０１）。
【０３５７】
取得先特定部１８は、コンテンツ格納先サーバリストが作成できたかどうかを判断する（Ｓ７０２）。コンテンツ格納先情報を読み出せなかったか、あるいは、格納先の情報が古いと判断したか、などにより、コンテンツ格納先サーバリスト作成できたなかった場合（Ｓ７０２でＮＯ）、レスポンス実行部１５に情報の更新を指示する。情報の更新を指示されたレスポンス実行部１５は、ネットワークに接続されている他のサーバ２に対して、要求されたコンテンツを有するかどうか、問い合わせを行う（Ｓ７０３）。
【０３５８】
レスポンス実行部１５は、各サーバ２からの応答結果を取得先特定部１８に通知し、取得先特定部１８は、通知された応答結果を基に、コンテンツ格納先情報記憶部１３に情報の更新を要求し、コンテンツ格納先情報を更新し（Ｓ７０４）、再度、コンテンツ格納先サーバリストを作成する(Ｓ７０５)。
【０３５９】
取得先特定部１８は、読み出したコンテンツ格納先情報を参照して、コンテンツ再生装置が要求するコンテンツに対応付けられている取得先の中継装置またはサーバ(中継装置)のＵＲＩを複数特定し、特定した複数のアドレス情報を含むコンテンツ格納先リストを作成する（Ｓ６０４）。
【０３６０】
取得先特定部１８は、作成したコンテンツ格納先リストをレスポンス実行部１５に送信する。レスポンス実行部１５は、取得先特定部１８が作成したコンテンツ格納先リストおよび／またはコンテンツ格納先サーバリストに含まれるアドレス情報の示すアドレスに存在する中継装置またはサーバ２の何れかから、要求したコンテンツを取得するように指示した応答メッセージを、コンテンツ再生装置に送信する（Ｓ７０６）。
【０３６１】
レスポンス実行部１５は、コンテンツ再生装置に送信した応答メッセージから送信ログを作成し、作成した送信ログを送信ログ記憶部１２に追加する（Ｓ６１０）。
【０３６２】
なお、受信した要求メッセージを送信した主体が中継装置である場合の処理（Ｓ６０６〜Ｓ６０９）は、第２の実施形態におけるサーバ２の処理（図１４のＳ５０６〜Ｓ５０９）と同様であるため、ここでは説明を省略する。
【０３６３】
〔コンテンツ再生装置として機能するクライアント４が実行する処理について〕
次に、コンテンツ再生装置として機能するクライアント４が実行する処理について図３２に基づいて説明する。図３２は、コンテンツ再生装置として機能するクライアント４が実行する処理の一例を示すフローチャートである。ただし、第３の実施形態と同様の処理については同じ番号を付し、詳細な説明を省く。さらに、コンテンツの受信処理（図２３のＳ６２５〜Ｓ６３１）については、第３の実施形態と同様であるため、図３２では、Ｓ７２４として記載している。
【０３６４】
レスポンス／リクエスト実行部３５は、サーバ２にコンテンツの送信を要求する要求メッセージを送信する（Ｓ６２１）。レスポンス／リクエスト実行部３５は、要求メッセー
ジに対する応答として、コンテンツ格納先リストおよび／またはコンテンツ格納先サーバリストと、当該コンテンツ格納先リストおよび／またはコンテンツ格納先サーバリストに含まれるアドレス情報の示すアドレスに存在する中継装置またはサーバ２の何れかにコンテンツを要求する要求メッセージを送信する指示とを含む応答メッセージ受信する（Ｓ３７２１）。
【０３６５】
取得先選択部３８は、レスポンス／リクエスト実行部３５が上記応答メッセージを受信すると、レスポンス／リクエスト実行部３５が受信したコンテンツ格納先リストおよび／またはコンテンツ格納先サーバリストに含まれるアドレス情報の中から何れか１つを選択する（Ｓ７２２）。取得先選択部３８は、選択したアドレス情報の示すアドレスに存在する取得先からコンテンツを取得するようにレスポンス／リクエスト実行部３５に指示する。
【０３６６】
取得先選択部３８からの指示を受けたレスポンス／リクエスト実行部３５は、取得先選択部３８が選択した取得先に対して、要求メッセージを送信する(Ｓ７２３)。
【０３６７】
要求メッセージを受信した取得先装置は、第３の実施形態で示したコンテンツ取得処理を行う。そして、レスポンス／リクエスト実行部３５およびクライアント状況判断部３６は、メディアセグメントの取得・再生処理を行う（Ｓ７２４）。
【０３６８】
ここで、レスポンス／リクエスト実行部３５は、全てのムービーフラグメントを受信すると、リクエスト対象となっているコンテンツの全てのメディアセグメントを受信したかを確認（Ｓ６３２）し、全て受信済みであることを確認した場合（Ｓ６３２でＹＥＳ）には処理を終了する。一方、未受信のものが確認された場合（Ｓ６３２でＮＯ）には、クライアント状況判断部３６は、第３の実施形態と同様に、取得先を変更すべきか否かを判定する（Ｓ７２５）。
【０３６９】
取得先の変更を行わないと判断した場合（Ｓ７２５でＮＯ）、コンテンツの取得先を変更せず、Ｓ７２２で選択した取得先に対して、メディアセグメント番号をインクリメントした要求メッセージを送信する（Ｓ７２３）。
【０３７０】
取得先の変更を行うと判断した場合（Ｓ７２５でＹＥＳ）、クライアント状況判断部３６は、コンテンツの取得に遅延が生じていることを示す遅延情報を取得先選択部３８に送信する。取得先選択部３８は、クライアント状況判断部３６から遅延情報を受信すると、コンテンツ格納先リストまたはコンテンツ格納先サーバリストに含まれるアドレス情報であって、現在選択しているアドレス情報とは異なる他のアドレス情報を選択する（Ｓ７２６）。取得先選択部３８は、選択したアドレス情報の示すアドレスに存在する取得先からコンテンツを取得するようにレスポンス／リクエスト実行部３５に指示する。
【０３７１】
取得先選択部３８からの指示を受けたレスポンス／リクエスト実行部３５は、取得先選択部３８が選択した取得先に対して、メディアセグメント番号をインクリメントした要求メッセージを再度送信する（Ｓ７２３）。
【０３７２】
なお、第３の実施形態と同様に、本実施の形態においても、メディアセグメント単位ではなく、ムービーフラグメント単位で切替を行ってもよい。加えて、その際には、第３の実施形態と同様の切替処理を行っても良い。
【０３７３】
〔実施例４〕
以下、図３３に実施例４を示し、本実施形態についてさらに詳しく説明する。実施例４では、クライアント４ｇであるコンテンツ再生装置に対して、コンテンツ格納先リストまたはコンテンツ格納先サーバリストに含まれるアドレス情報の何れかからコンテンツの取得を指示するコンテンツ配信システム１ｃの動作例を示す。図３３は、実施例４におけるコンテンツ配信システム１ｃの動作シーケンスの一例を示す図である。なお実施例３と同様の処理については、図２４と同じ番号を付している。
【０３７４】
なお、実施例４では、前提として、コンテンツ格納部５ａ、５ｂ、５ｃに図２１に示すフォーマットのコンテンツ１が格納されており、各コンテンツ格納部５に格納されているコンテンツ１のメディアセグメントへの分割は同一であるとする。また、キャッシュ格納部６ａ、６ｃおよびクライアント記憶部８ｈには、コンテンツ１が既にキャッシュされているものとする。
【０３７５】
また、サーバ２ａは、コンテンツ格納先情報に含まれる日時に基づいて、複数のアドレス情報に優先順位を付加してコンテンツ格納先リストを作成するものとする。また、実施例４では、図３２に示す処理の開始時に、送信ログ記憶部１２には、図２５に示す送信ログ５１〜５３が記憶されており、コンテンツ格納先情報記憶部１３には、図２６に示すコンテンツ格納先情報６１〜６３が記憶されているものとする。
【０３７６】
また、コンテンツ再生装置が要求メッセージを送信して、当該要求メッセージに対応する応答メッセージを受信するまでを１つのセッションとする。
【０３７７】
図３３に示すように、セッション８１０において、クライアント４ｇがコンテンツ１の送信を要求する要求メッセージをサーバ２ａに送信する（リクエスト８１１）。リクエスト８１１を受信したサーバ２ａでは、レスポンス実行部１５は、取得先特定部１８に取得先を複数特定するように指示する。取得先特定部１８は、指示を受けて、コンテンツ格納先情報記憶部１３のコンテンツ格納先情報を確認する（処理８１２）。コンテンツ格納先情報からコンテンツ格納先サーバリストの有無を確認し、存在しない場合は、サーバ２ｂ、サーバ２ｃに対して、コンテンツ１の有無を確認する(処理８１３)。この確認は、例えば、各サーバ２にコンテンツ１のヘッダを要求して応答を確認するなどが考えられる（図３３に示すサーバ２ｃへのリクエスト８１４およびレスポンス８１６、並びに、サーバ２ｃへのリクエスト８１５およびレスポンス８１７）。
【０３７８】
ここでは、コンテンツ格納先情報記憶部１３には、コンテンツ１と対応付けられている格納先として、プロキシ３ａ、３ｃおよびクライアント４ｆが存在するため、コンテンツ格納先情報に含まれる日時に基づいて、取得先特定部１８は、プロキシ３ａ、クライアント４ｆ、プロキシ３ｃの優先順位をそれぞれ１、２、３とし、プロキシ３ａ、クライアント４ｆおよびプロキシ３ｃのアドレス情報を含む、優先順位を付加したコンテンツ格納先リストを作成する。
【０３７９】
加えて、処理８１３の応答（レスポンス８１５および８１７）に基いて、コンテンツ格納先サーバリストを作成する。本実施例では、サーバ２ｂの応答のほうが、サーバ２ｃの応答より速かったため、優先順位をそれぞれ１，２とし、これらのアドレス情報と自身のアドレス情報を含む、優先順位を付加したコンテンツ格納先サーバリストを作成する（処理８１８）。
【０３８０】
ここで、サーバ２ａの優先順位の設定方法は任意でよい。例えば、サーバ２ａの優先順位を常に一番に（他のサーバ２より優先順位を高く）設定してもよい。また、サーバ２ｂまたはサーバ２ｃの応答速度が任意の閾値より速い場合は、サーバ２ａの優先順位をサーバ２ｂまたはサーバ２ｃより低く設定し、上記応答速度が任意の閾値より遅い場合は、サーバ２ａの優先順位をサーバ２ｂまたはサーバ２ｃより高く設定してもよい。また、サーバ２ａの処理負荷が所定の閾値より高い場合は、サーバ２ａの優先順位を他のサーバ２より低く設定してもよい。
【０３８１】
レスポンス実行部１５は、取得先特定部１８が作成したコンテンツ格納先リストまたはコンテンツ格納先サーバリストに含まれるアドレス情報をそれぞれ優先順位の高い順に選択し、選択したアドレス情報の示すアドレスに存在する中継装置またはサーバ２から要求したコンテンツを取得する応答メッセージを、クライアント４ｇに送信する（レスポンス８１９）。
【０３８２】
ここで、レスポンス実行部１５は、コンテンツ格納先リストまたはコンテンツ格納先サーバリストのどちらを優先して選択するかを判断する。つまり、レスポンス実行部１５は、クライアント４ｇに対して、中継装置からコンテンツを取得させるか、サーバ２からコンテンツを取得させるかを判断する。
【０３８３】
コンテンツ格納先リストまたはコンテンツ格納先サーバリストのどちらを優先して選択するかは任意であってよい。例えば、レスポンス実行部１５は、デフォルトの設定に基づいて、コンテンツ格納先リスト（コンテンツ格納先サーバリスト）を優先して選択し、選択したコンテンツ格納先リスト（コンテンツ格納先サーバリスト）が利用できない場合、コンテンツ格納先サーバリスト（コンテンツ格納先リスト）を選択してもよい。
【０３８４】
また、レスポンス実行部１５は、コンテンツ格納先リストに含まれる（最も優先順位の高い）アドレス情報を含むコンテンツ格納先情報の日時が新しいもの（所定期間以内）であれば、コンテンツ格納先リストを優先して選択し、上記日時が古いもの（所定期間以前）であれば、コンテンツ格納先サーバリストを優先して選択してもよい。また、レスポンス実行部１５は、コンテンツ格納先情報が無い状態で、コンテンツ格納先リストに含まれるアドレス情報がデフォルトまたはランダムに決定された場合、コンテンツ格納先サーバリストを優先して選択してもよい。
【０３８５】
本例では、レスポンス実行部１５は、コンテンツ格納先リストがある場合は、コンテンツ格納先リストを優先して選択することとする。
【０３８６】
なお、本実施例においては、サーバ２ａからのコンテンツ取得は、基本的には、中継装置を利用しての取得と同じことである（中継装置を利用したコンテンツ取得でも、取得先のアドレスはサーバ２ａである）。すなわち、レスポンス実行部１５がコンテンツ格納先リストを選択した場合と、レスポンス実行部１５がコンテンツ格納先サーバリストを選択し、コンテンツ格納先サーバリストからサーバ２ａを選択した場合とは、実質的に同じ処理（第３の実施形態と同様の処理）を行う。また、レスポンス実行部１５がコンテンツ格納先サーバリストを選択し、コンテンツ格納先サーバリストからサーバ２ｂまたはサーバｃを選択した場合、サーバｂまたはサーバｃは、クライアント４ｇからコンテンツのリクエストを受信すると、第３の実施形態と同様に、所定の中継装置を特定し、特定した中継装置からコンテンツを取得するようにクライアント４ｇに指示する。
【０３８７】
つまり、レスポンス実行部１５は、中継装置を利用する場合（コンテンツ格納先リストを選択した場合、および、コンテンツ格納先サーバリストを選択し、コンテンツ格納先サーバリストからサーバ２ａを選択した場合）は、まず、プロキシ３ａからコンテンツを取得するように指示し、プロキシ３ａからコンテンツが取得できない、または、取得速度が遅い場合に、クライアント４ｆ、プロキシ３ｃの順番でコンテンツの取得を実行するようにクライアント４ｇに指示する。一方、他のサーバ２を利用する場合は、同様に、サーバ２ｂ、サーバ２ｃから順にコンテンツ取得を実行するように、クライアント４ｇに指示する。
【０３８８】
そして、レスポンス実行部１５は、送信した応答メッセージに基づいて、送信ログを作成し、送信ログ記憶部１２に追加する（処理８２０）。
【０３８９】
レスポンス８１９を受信したクライアント４ｇでは、取得先選択部３８がサーバ２ａの指示に基づいて、優先順位が最も高いプロキシ３ａを、コンテンツの取得先の候補として選択する（処理８３０）。そして、取得先選択部３８は、レスポンス／リクエスト実行部３５に対して、プロキシ３ａからコンテンツ１を取得するように指示する。
【０３９０】
以下、取得先にプロキシ３ａあるいは、他のクライアント（クライアント４ｆ）を選択した場合の処理（セッション８４０、処理８５０、処理８６０およびセッション８７０）は実施例３（図２４に示すセッション３３０、処理３４０、処理３５０、セッション３６０）と同様なため、説明を省略する。
【０３９１】
なお、サーバ２を選択した場合のコンテンツ取得方法は、一般的なＨＴＴＰによる取得処理と同様の動作を行う。
【０３９２】
また、実施例３では、ムービーフラグメント毎にクライアント状況判断部３６が遅延情報を中継装置特定部１６に通知していたが、本実施例４では、遅延情報を取得先特定部１８に通知する。通知を受けた取得先特定部１８は、中継装置特定部１６と同様に、取得先の再選択を行う。
【０３９３】
上述のように、本実施形態では、コンテンツ再生装置は、サーバ２から複数の中継装置のアドレス情報を含むコンテンツ格納先リストと複数のサーバのアドレス情報を含むコンテンツ格納先サーバリストを受信し、コンテンツ格納先リストに含まれるアドレス情報の示すアドレスに存在する中継装置またはコンテンツ格納先サーバリストの何れかからコンテンツを取得する。そして、コンテンツ再生装置は、コンテンツの取得に遅延が生じると、コンテンツを取得する取得先を、コンテンツ格納先リストに含まれるアドレス情報の示すアドレスに存在する他の中継装置またはコンテンツ格納先サーバリストに含まれるアドレス情報の示すアドレスに存在する他のサーバ２に変更する。そのため、ネットワーク（特に、コンテンツ再生装置と中継装置またはサーバ２との間のネットワーク）の負荷を時間的にも効率よく分散できるようになり、コンテンツ配信システム１ｃにおいて、よりきめ細かい制御が可能となる。結果的により多数のコンテンツ再生装置に対してより高いサービス品質を保つことができる。
【０３９４】
また、本実施形態では、コンテンツ再生装置は、サーバ２ａから複数の中継装置のアドレス情報を含むコンテンツ格納先リストと複数のサーバのアドレス情報を含むコンテンツ格納先サーバリストを受信する例を示したが、サーバ２ａからサーバのアドレス情報を含むコンテンツ格納先サーバリストだけを受信してもよい。同様に、サーバ２ａは、コンテンツ再生装置に対して、要求コンテンツを有する他のサーバ２のアドレス情報を含むコンテンツ格納先サーバリストだけを通知してもよい。
【０３９５】
〔実施例４におけるＨＴＴＰメッセージ〕
続いて、図３３の動作シーケンス図で使用されるレスポンス８１９の詳細を示す。なお、リクエスト８１１およびその他のリクエストあるいはレスポンスは、実施例３と同様であるため省略する。
【０３９６】
〔レスポンス８１９におけるＨＴＴＰメッセージ〕
レスポンス８１９におけるＨＴＴＰメッセージを図３４に基づいて説明する。
【０３９７】
（コンテンツの取得先を指示するレスポンスＲ３２１０）
図３４の（ａ）に示すように、サーバ２ａからクライアント４ｇに対してコンテンツ１の取得先を指示するレスポンス８１９に対応するＨＴＴＰメッセージには、レスポンスラインとヘッダが含まれる。
【０３９８】
図３４の（ａ）のレスポンスラインには、中継装置を使用するように指示する情報が、「ステータス番号 メッセージ」の形式で記述されている。
【０３９９】
また、図３４の（ａ）のヘッダには、使用する中継装置を特定する「Location」ヘッダが含まれている。つまり、図３４のＨＴＴＰメッセージは、下記の「Location」ヘッダで指定した中継装置を使用してコンテンツ１を要求するように指示したレスポンスということになる。図示の例では、この「Location」ヘッダに、プロキシ３ａのアドレスを示すアドレス情報「http://example-proxy1.com」が記述されている。これにより、このレスポンスを受信した装置であるクライアント４ｇは、コンテンツ１を要求する相手先である中継装置（プロキシ３ａ）のアドレス情報を知ることができる。
【０４００】
さらに、図３４の（ａ）のヘッダには、コンテンツ１を保持する、その他の中継装置のアドレス情報を示す「X-Alternative-Proxy-List」ヘッダが含まれており、この「X-Alternative-Proxy-List」ヘッダに、その他の中継装置（ここでは、クライアント４ｈおよびプロキシ３ｃ）のアドレスを示すアドレス情報「http://example-client2.com, http://example-proxy3.com」が記述されている。これにより、このレスポンスを受信した装置であるクライアント４ｇは、「Location」ヘッダで指定された中継装置以外にも、コンテンツ１を保持している（可能性のある）中継装置が提示され、コンテンツ１を取得する中継装置を、「Location」ヘッダまたは「X-Alternative-Proxy-List」ヘッダに含まれるアドレス情報の示すアドレスに存在する中継装置から選択することができる。なお、ヘッダの名称中の「X」は、そのヘッダを本実施形態で新規に定義したことを示している。
【０４０１】
さらに図３４の（ａ）のヘッダには、コンテンツ１を保持する、その他のサーバのアドレス情報を示す「X-Alternative-Server-List 」ヘッダが含まれており、この「X-Alternative-Server-List 」ヘッダに、コンテンツ１を保持する（可能性のある）、その他のサーバ（ここでは、サーバ２ｂ、サーバ２ｃ）のアドレスを示すアドレス情報「http://svr2.example.com, http://srv3.example.com」が記述されている。これにより、このレスポンスを受信した装置であるクライアント４ｇは、「Location」ヘッダや「X-Alternative-Proxy-List」ヘッダに含まれる中継装置を経由してコンテンツの取得するだけでなく、「X-Alternative-Server-List」に記述されたサーバ２からコンテンツ１を取得するという選択を行うことができる。
【０４０２】
なお、ヘッダの名称中の「X」は、そのヘッダを本実施形態で新規に定義したことを示している。
【０４０３】
図３４の（ａ）に示すＨＴＴＰメッセージは、サーバ２ａが中継装置を利用してコンテンツへアクセスすることを要求するＨＴＴＰメッセージである。一方、中継装置を利用せず、他のサーバ２へアクセスすることを指示するメッセージの例を図３４の（ｂ）に示す。
【０４０４】
図３４の（ｂ）では、他のＵＲＩを利用してアクセスすることを指示する情報が、「ステータス番号  メッセージ」の形式で記述されている。
【０４０５】
さらに、ヘッダには、他のＵＲＩを示す「Ｌｏｃａｔａｉｏｎ」ヘッダが含まれており、このＵＲＩを利用してコンテンツ１を要求するように指示したものである。
【０４０６】
さらに、図３４の（ａ）と同様に、「X-Alternative-Server-List」ヘッダで、他に利用できるサーバ２を記述している。
【０４０７】
＜第５の実施の形態＞
第４の実施形態では、コンテンツ再生装置がコンテンツを取得することができるサーバ２の情報を、ＨＴＴＰメッセージを利用して、コンテンツ再生装置へ通知する例を示した。
【０４０８】
本発明の第５の実施形態では、コンテンツ取得先のサーバ２を、コンテンツに関連するメタデータで通知する例を示す。
【０４０９】
なお、本実施形態におけるコンテンツのメタデータとして、現在標準化作業が進められているＤＡＳＨ(Dynamic Adaptive Streaming over HTTP)で策定されているマークアップ言語ＭＰＤ（Media Presentation Description）を用いて記述される。ＭＰＤは、メディアセグメントのアドレスやメディアセグメントの映像ビットレート等の情報が期間ごとに規定されている、動画コンテンツに関するメタデータである。本実施形態では、コンテンツのメタデータを、ＭＰＤデータと呼称する。
【０４１０】
本実施形態の構成は、図２９に示す第４の実施形態の構成と同様であるため、図２９を用いて説明する。より詳細には、図２９に示すサーバ２ａは、コンテンツのメタデータであるＭＰＤデータを用意する。該ＭＰＤデータには、コンテンツの符号化方式やビットレートなどの動画コンテンツに関する情報に加えて、該コンテンツを取得するためのサーバ２のアドレス情報や、メディアセグメントを取得するためのアドレス情報が記述される。クライアント４ｇは、コンテンツ再生に先立って、このＭＰＤデータを取得解析し、ＭＰＤデータに記載された複数のサーバ２中から１つのサーバ２を選択する。
【０４１１】
加えて、コンテンツのメタデータであるＭＰＤデータは、外部リソースを参照することが可能である形式であるため、これを利用することで、ＭＰＤデータの作成時と、実際にＭＰＤデータを利用してコンテンツを再生する時とで、ネットワークやサーバの状況が変わっても、それらの状況を反映し、負荷分散を可能とすることができる。さらに、外部リソースを参照する間隔を短くすることにより、再生時の刻々とした状況に対応となり、よりきめ細かい制御を可能とする。
【０４１２】
〔コンテンツ配信システム１ｃの概要〕
第５の実施形態の構成は、図２９に示す本願の第４の実施形態の構成と同様である。機能的には、サーバ２ａは、サーバ２ａが提供するコンテンツについて、そのコンテンツメタデータであるＭＰＤデータを用意する点が異なり、クライアント４ｇは、コンテンツ再生時には、アクセスするサーバの情報を、ＭＰＤデータから取得し再生する点が異なる。
【０４１３】
具体的には、レスポンス実行部（管理手段）１５は、コンテンツと、コンテンツのメタデータであって、コンテンツを識別するコンテンツ識別情報と当該コンテンツを有する他のコンテンツ配信装置のアドレスとが対応付けられているコンテンツ格納先情報または当該コンテンツ格納先情報の所在を示す格納先アドレス（外部リソース）を含むメタデータ（ＭＰＤデータ）と、を管理する。
【０４１４】
レスポンス実行部１５は、基本的には、コンテンツ格納部５にコンテンツを格納する際に、当該コンテンツのＭＰＤデータを生成し、必要に応じて、生成したＭＰＤデータを更新する。また、レスポンス実行部１５は、外部リソースの作成要求を受けて、外部リソースを作成する。
【０４１５】
また、レスポンス実行部（リクエスト判定手段）１５は、上記リクエストが、コンテンツリクエストまたはメタデータリクエストの何れであるかを判定する。
【０４１６】
また、レスポンス実行部１５は、上記コンテンツリクエストであると判定した場合、リクエストされたコンテンツを、当該リクエストの送信元の装置に送信する。一方、レスポンス実行部１５は、上記メタデータリクエストであると判定した場合、リクエストされたメタデータを当該リクエストの送信元の装置に送信する。
【０４１７】
レスポンス実行部１５は、上記リクエストが、コンテンツリクエスト、メタデータリクエスト、格納先アドレスを用いたコンテンツ格納先情報リクエストの何れであるかを判定してもよい。
【０４１８】
レスポンス実行部１５は、上記格納先アドレス（外部リソース）を用いたコンテンツ格納先情報リクエストであると判定した場合、上記格納先アドレスによりその所在が示されるコンテンツ格納先情報を上記リクエストの送信元の装置に送信する。
【０４１９】
また、取得先特定部１８は、上記予め定められた他のコンテンツ配信装置に対して、所定のコンテンツを有するか否かの問い合わせを送信し、当該問い合わせに対して上記所定のコンテンツを有すると応答した他のコンテンツ配信装置のアドレスを取得する。
【０４２０】
また、取得先特定部１８は、取得した上記所定のコンテンツを有する他のコンテンツ配信装置のアドレスと、当該所定のコンテンツを識別するコンテンツ識別情報とを対応付けてコンテンツ格納先情報を生成して、コンテンツ格納先情報記憶部（記憶部）１３に格納する。
【０４２１】
また、取得先特定部（更新判定手段）１８は、コンテンツ格納先情報記憶部１３に格納されているコンテンツ格納先情報を更新するか否かを判定する。
【０４２２】
また、レスポンス実行部１５が上記格納先アドレスを用いたコンテンツ格納先情報リクエストであると判定した場合で、かつ、取得先特定部１８が上記格納先アドレスによりその所在が示されるコンテンツ格納先情報を更新すると判定した場合、取得先特定部１８が上記問い合わせを送信して、上記アドレスを取得し、当該アドレスに基づいてコンテンツ格納先情報を生成し、レスポンス実行部１５が、当該コンテンツ格納先情報を上記リクエストの送信元の装置に送信する。
【０４２３】
また、レスポンス実行部１５が上記格納先アドレスを用いたコンテンツ格納先情報リクエストであると判定した場合で、かつ、取得先特定部１８が上記格納先アドレスによりその所在が示されるコンテンツ格納先情報を更新しないと判定した場合、レスポンス実行部１５が、上記格納先アドレスによりその所在が示されるコンテンツ格納先情報を上記リクエストの送信元の装置に送信する。
【０４２４】
また、上記メタデータは、コンテンツを所定の時間間隔で分割して得られる単位毎に設定したコンテンツ格納先情報の所在を示す格納先アドレスを複数含むものであってよい。
【０４２５】
また、上記コンテンツは、複数のメディアセグメントを含み、上記所定の時間間隔で分割されたコンテンツは、少なくとも１つのメディアセグメントを含むものであってよい。
【０４２６】
また、上記メタデータは、上記コンテンツ格納先情報を複数含むコンテンツ格納先サーバリストまたは当該コンテンツ格納先サーバリストの所在を示す格納先アドレスを含むものであってよい。
【０４２７】
また、コンテンツ再生装置として機能するクライアント４は、サーバ２にメタデータリクエストを送信し、当該リクエストのレスポンスとして上記メタデータを受信し、受信したメタデータに従って、コンテンツを取得する。
【０４２８】
また、レスポンス／リクエスト実行部（コンテンツ取得手段）３５は、上記受信したメタデータに含まれるコンテンツ格納先サーバリストを受信すると、または、上記受信したメタデータに含まれる格納先アドレスを用いたコンテンツ格納先情報リクエストを送信し、当該リクエストのレスポンスとしてコンテンツ格納先サーバリストを受信すると、受信したコンテンツ格納先サーバリストに含まれる何れかのコンテンツ格納先情報の示すアドレスの示す他のコンテンツ配信装置からコンテンツを取得する。
【０４２９】
また、取得先選択部（取得先変更手段）３８レスポンス／リクエスト実行部３５のコンテンツを取得する受信速度が、予め定めた受信速度よりも遅い場合、上記コンテンツを取得する取得先のサーバ２（例えば、サーバ２ｂ）を、コンテンツ格納先サーバリストに含まれる上記アドレスとは別のアドレスの示す他のサーバ２（例えば、サーバ２ｃ）に変更する。
【０４３０】
〔コンテンツメタデータ：ＭＰＤデータ〕
図３５、３６および３８に、本実施形態で利用するコンテンツメタデータであるＭＰＤデータの記述例を示す。図３５は、外部リソースの参照を行っていない例である。コンテンツは、実施形態３と同様に予め定められた単位でフラグメント化され、伝送のために、メディアセグメント化されている。図３５の（ａ）では、「content1/0.mp4」、「content1/1.mp4」などが、ｃｏｎｔｅｎｔ１のメディアセグメントを示す。図３５の（ａ）に示す例では、ｃｏｎｔｅｎｔ１は、１２個のメディアセグメントに分割されていることを示す。
【０４３１】
ＭＰＤデータは、「ＭＰＤ」をルート要素とするマークアップ言語形式のデータである。ＭＰＤ開始タグの属性「minBufferTime」の値は、映像をスムーズに再生するために必要な最小の初期バッファリング時間を示しており、属性「type」の値は、後述する「Representation」タグの属性「type」のデフォルト値を示している。すなわち、属性「type」の値は、「Representation」タグにおいて属性「type」が指定されていないリプレセンテーションがオンデマンドストリーミング配信であるかライブストリーミング配信であるかを示している。また、属性「mediaPresentationDuration」はコンテンツの再生時間を示し、本例では、コンテンツの再生時間が120秒であることを記述している。
【０４３２】
「ＭＰＤ」のサブ要素である「Period」は、特定の期間（ピリオド）において再生すべき映像に関する情報が、対応するPeriod開始タグおよび終了タグで囲まれた範囲に記載されていることを示している。Period開始タグの属性「id」は、ＭＰＤが提供するコンテンツに含まれる各Periodを識別するための情報であり、各Periodにユニークな値が設定される。
【０４３３】
「Period」のサブ要素である「Group」は、Group開始タグおよび終了タグで囲まれた範囲に記載されている１以上のサブ要素「Representation」が同一のリプレゼンテーショングループに属していることを示している。
【０４３４】
すなわち、選択された何れか１つのリプレゼンテーションのメディアセグメント（再生対象データ）だけが該当する期間において再生されることを示している。なお、同一グループに属するリプレゼンテーションは、画像サイズ、フレームレート、ビットレート等の再生品質に違いがある可能性はあるものの、再生される内容は同じである。例えば、図３５の（ｂ）の例では、２つのリプレゼンテーション（content1とcontent2）が記載されており、どちらかのリプレゼンテーションを選択して、再生を行うことができる。
【０４３５】
さらに図３５の（ａ）では、Group開始タグの属性「mimeType」リプレゼンテーションを構成するメディアセグメントに使用されるコーデック種別等を示している。また属性「lang」は、Groupに属するリプレゼンテーションの言語を示している。
【０４３６】
また、Group開始タグと終了タグとで囲まれた範囲には、サブ要素「SegmentInfoDefault」が記載されている。このSegmentInfoDefaultは、Group開始タグと終了タグで囲まれた範囲のリプレゼンテーションに共通の情報が記述される。本例では、「SegmentInfoDefault」要素は、さらにサブ要素として、「BaseURL」要素を有する。
BaseURL開始タグと終了タグに囲まれた範囲には、共通のURLが記述される。後述するリプレゼンテーションにURL情報と合わせて、参照先の解決を行う。図３５の（ａ）に示すように、このBaseURLは、複数記述することができる。
【０４３７】
Groupを構成するリプレゼンテーションは、「Representation」タグを用いて記述される。図に示すRepresentation開始タグの属性「bandwidth」は、当該リプレゼンテーションのビットレートを示している。
【０４３８】
Representation開始タグと終了タグで囲まれた範囲には、サブ要素「Segment」を用いて、メディアセグメント情報が存在することを示し、属する各メディアセグメントを取得するＵＲＬは、Segmentタグのサブ要素「Url」の開始タグの属性「sourceURL」を用いて記述される。これらは各メディアセグメントについて記述される。なお、各Urlに共通部分がある場合、前述したBaseURLタグを用いて、記述することも可能である。
【０４３９】
図示の例では、BaseURLタグが用いられ、各メディアセグメントのUrlには、ホストを示す記述がないため、BaseURLタグで示される情報を利用して、メディアセグメントのUrlが生成される。すなわち、１番目のメディアセグメントへのアクセスは、BaseURLタグの「http://srv2.example.com/」と、Urlタグで示される「content1/0.mp4」から、「http://srv2.example.com/content1/0.mp4」と生成されるUrlにて行われる。
【０４４０】
このように、クライアントが各メディアセグメントを取得する際には、ＭＰＤデータの解析結果を下に、各メディアセグメントのUrlを生成し、取得する。
【０４４１】
次に、ＭＰＤデータにおける外部リソースの参照について、図３６〜３８を用いて説明する。
【０４４２】
本例では、リプレゼンテーションが１つである図３５の（ａ）の例を用いて、詳細を説明する。
【０４４３】
上述のように、図３５の（ａ）に示すＭＰＤデータには、各メディアセグメントが格納されるサーバのアドレス情報がBaseURLタグを用いて記述されている。BaseURLタグが複数存在するということは、クライアントは、状況に応じて何れか一つのBaseURLタグを選択することで、最適な状態でメディアセグメントを取得することができる。
【０４４４】
しかしながら、通常、ＭＰＤデータはサーバ２にコンテンツが格納される時点で生成されることが多い。このため、ＭＰＤデータが生成された時点で最適なサーバの情報を収集し、記述を行っても、実際にＭＰＤデータを利用してコンテンツにアクセスする時点では、ネットワーク状況や最適なサーバ情報は変わっている可能性が高い。また、ＭＰＤデータの作成後により高速なサーバ等が当該コンテンツの配信のために追加されたとしても、一度作成されたＭＰＤデータを生成しなおさない限り、そのようなサーバを利用することができない。
【０４４５】
そこで、ＭＰＤの外部リソースへのリンク機能を利用する。そのＭＰＤデータの例が図３６である。図３６では、図３５の（ａ）でGroupタグを用いて記述されている、サーバ情報(BaseURLタグで記述されている情報)や、各リプレゼンテーションとそれを構成するメディアセグメント（Representationタグで記述されている情報）の記載の代わりに、Group開始タグの属性として、xlinkの記述が用いられている。xlinkは、外部のリソースを参照する機能であり、該記述があるデータを解析する際には、xlinkによってリンクされている外部リソースを取得し、取り込むことで、解析が可能となる。図３６で示すように、属性「xlink:href」でリンクされた外部リソースのURLを記述する。属性「xlink:actuate」は、xlink:hrefで示される外部リソースを、どの時点で取得されるかを記述する。xlink:actuateは、必要に応じて取得する「onRequest」、MPDデータの取得と同時に取得する「onLoad」があり、本例では、必要に応じて取得する「onRequest」を用いている。
【０４４６】
図３７が、外部リソース（http://example.com/content1/resource1.xml）のデータ例を示す図である。図３６に示すＭＰＤデータは、xlinkにより、図３７に示す外部リソースが取り込まれ、図３５の（ａ）と同等のＭＰＤデータになる。
【０４４７】
さらに、本例では、きめ細かい制御を可能とするために、ＭＰＤデータを、前述のPeriodタグを用いて、短いPeriodに分割し、各Periodでxlinkによる外部リソースの取り込みを行う。図３５の（ａ）に示すＭＰＤデータおよび図３７に示す外部リソースでは、コンテンツは、１つのPeriodで記述されているため、外部リソースを取り込んだとしてもコンテンツ再生開始時点の状況しか反映できない。すなわち、コンテンツが長時間に及ぶ場合、再生開始時点では最適なサーバを選択したとしても、コンテンツ終盤ではネットワークやサーバの状況が変わって、最適と言い難い状況となる可能性もある。さらに、終盤で最適なサーバが、再生開始時に選択されず、外部リソースに記述されなければ、そのサーバを選択する方法を有することはない。
【０４４８】
そこで、図３８の（ａ）に、複数のPeriodに分割し、各Periodでxlinkによる外部リソースの取り込みを行うＭＰＤデータの例を示す。図３８の（ｂ）〜（ｄ）が、取り込まれる外部リソースの例である。
【０４４９】
図３８の（ｂ）〜（ｄ）に示す外部リソースは、それぞれ４つのメディアセグメントを有している。１つのメディアセグメントが１０秒であるとすると、本例では、図３８の（ａ）に示すＭＰＤデータにおける１つのPeriodは４０秒となり、４０秒分のデータ取得ごとに外部リソースの取り込みを行う。
【０４５０】
上記のように、ＭＰＤデータに含まれるサーバ情報を外部リソースとして提供することにより、予め生成するのではなく、クライアントからの要求があった際に、そのときの配信システムやネットワークの状況を反映する外部リソースを生成し提供することが可能となる。
【０４５１】
さらに、本実施の形態では、Periodを短い期間と設定することで、ネットワークやサーバの状況をきめ細かく反映することを可能とする。これにより、コンテンツメタデータであるＭＰＤデータの生成タイミングと、ＭＰＤデータの利用タイミングが異なっていても、利用タイミング時の状況にあわせた情報を提供可能となる。
【０４５２】
〔各装置が実行する処理について〕
次にサーバ２とクライアント４が実行する処理について、図３９と図４０に基づいて説明する。第５の実施形態におけるプロキシ３ａ、３ｂ、３ｃが実行する処理は、第３の実施形態と同じであるため、省略する。
【０４５３】
〔サーバ２が実行する処理について〕
まずは、本実施形態におけるサーバ２ａの処理について図３９に基づいて説明する。図３９はサーバ２ａが実行する処理の一例を示すフローチャートである。本願の第４の実施形態と同じ処理については、同じ符号を振っている。
【０４５４】
レスポンス実行部１５は、クライアント４からの要求メッセージを受信するのを待っており、サーバ通信部１１を介して、クライアント４からの要求メッセージを受信する（Ｓ９０１）。
【０４５５】
サーバ２は、要求メッセージを受信すると、受信した要求メッセージが、コンテンツのリクエストなのか、xlink用データのリクエストなのか、コンテンツメタデータであるＭＰＤデータのリクエストなのかを判断する（Ｓ９０２、Ｓ９０３、Ｓ９０４）。リクエストが、コンテンツメタデータ要求であると判断された場合（Ｓ９０４でＹＥＳ）、サーバ２は、コンテンツ格納部５から指定のＭＰＤデータを読み出し（Ｓ９０５）、リクエスト送信元の装置へ送信する（Ｓ９０６）。
【０４５６】
そして、受信したリクエストがxlinkによる外部リソースデータの取得要求であった場合（Ｓ９０３でＹＥＳ）、レスポンス実行部１５は、取得先特定部１８に対して、コンテンツ再生装置がコンテンツを取得するための取得先のサーバを複数特定するように指示する。取得先特定部１８は、レスポンス実行部１５から指示を受けてコンテンツ格納先情報記憶部１３からコンテンツ格納先情報を読み出す(Ｓ６０３)。
【０４５７】
取得先特定部１８は、コンテンツ格納先情報からコンテンツ格納先サーバリストを作成する。（Ｓ７０１）
取得先特定部１８は、コンテンツ格納先サーバリストが作成できたかどうかを判断する。（Ｓ７０２）。コンテンツ格納先情報を読み出せなかったか、あるいは、格納先の情報が古いと判断したか、などにより、コンテンツ格納先サーバリスト作成できたなかった場合、レスポンス実行部１５に情報の更新を指示する。情報の更新を指示されたレスポンス実行部１５は、ネットワークに接続されている他のサーバ２に対して、要求されたコンテンツを有するかどうか、問い合わせを行う（Ｓ７０３）。
【０４５８】
レスポンス実行部１５は、各サーバ２からの応答結果を取得先特定部１８に通知し、取得先特定部１８は、通知された応答結果を基に、コンテンツ格納先情報記憶部１３に情報の更新を要求し、コンテンツ格納先情報を更新し（Ｓ７０４）、再度、コンテンツ格納先サーバリストを作成する(Ｓ７０５)。
【０４５９】
レスポンス実行部１５は、取得先特定部１８が作成したコンテンツ格納先サーバリストに含まれるアドレス情報の示すアドレスに存在するサーバ２の何れかから、要求したコンテンツを取得するように指示した外部リソースデータを作成し（Ｓ９０７）、コンテンツ再生装置に送信する（Ｓ９０８）。
【０４６０】
一方で、リクエストがコンテンツである場合（Ｓ９０２でＹＥＳ）、サーバ２は、コンテンツを送信元に対して送信する。なお、このときの処理は、第３の実施の形態におけるサーバ２の処理（図２２のＳ６０６〜Ｓ６１０）と同様のため、ここでは説明を省略する。
【０４６１】
なお、コンテンツリクエストでもなく、xlink用データのリクエストでもなく、ＭＰＤデータのリクエストでもない場合（Ｓ９０４でＮＯ）、サーバ２は、受信したリクエストに応じた処理を実行する。例えば、サーバ２は、コンテンツへのリンクが含まれたwebページのデータのGET要求や、コンテンツのファイルサイズやファイルのタイムスタンプなどのHEADリクエスト等を受信した場合、要求に応じた処理を実行する。
【０４６２】
〔コンテンツ再生装置として機能するクライアント４が実行する処理について〕
次にコンテンツ再生装置として機能するクライアント４が実行する処理について図４０に基づいて説明する。図４０は、コンテンツ再生装置として機能するクライアント４が実行する処理の一例を示すフローチャートである。
【０４６３】
レスポンス／リクエスト実行部３５は、サーバ２にコンテンツに対応するＭＰＤデータの送信を要求する要求メッセージを送信する(Ｓ９２１)。レスポンス／リクエスト実行部３５は、要求メッセージに対する応答として、ＭＰＤデータを含む応答メッセージを受信する（Ｓ９２２）。受信したメタデータは、レスポンス／リクエスト実行部３５で解析され、再生するコンテンツを決定する(Ｓ９２３)。
【０４６４】
次に、レスポンス／リクエスト実行部３５は、ＭＰＤデータの解析結果から再生するコンテンツ（メディアセグメント）のアドレスを取得する。このとき、ＭＰＤメタデータからアドレスを取得するために、ＭＰＤデータのxlinkで示された外部リソースのデータが必要かどうかを判断する(Ｓ９２４)。アドレスの取得に外部リソースのデータが必要ではないと判断された場合（Ｓ９２４でＮＯ）、このＭＰＤデータの解析を行い、コンテンツ格納先サーバリストを抽出する。抽出したコンテンツ格納先リストは、第４の実施形態におけるクライアント４の処理（図２３のＳ６２３〜Ｓ６３４）までと同様に、取得先選択部３８によりサーバのアドレス情報の一つが選択される。（Ｓ９２８）
一方、アドレスの取得に外部リソースのデータが必要と判断された場合（Ｓ９２４でＹＥＳ）、xlinkで示された外部リソースのアドレスを用いて、外部リソースデータをリクエストする(Ｓ９２５)。
【０４６５】
リクエストした外部リソースデータをxlinkで示されたサーバ２から受信する(Ｓ９２６)と、レスポンス／リクエスト実行部３５は、受信したＭＰＤデータの外部リソースを取得したxlinkで示された箇所を、受信した外部リソースデータに置き換え、ＭＰＤデータを更新する(Ｓ９２７)。そして、このＭＰＤデータの解析を行い、コンテンツ格納先サーバリストを抽出する。抽出したコンテンツ格納先リストは、第４の実施形態におけるクライアント４の処理（図２３のＳ６２３〜Ｓ６３４）までと同様に、取得先選択部３８によりサーバのアドレス情報の一つが選択される。（Ｓ９２８）
レスポンス／リクエスト実行部３５は、選択されたサーバのアドレス情報と取得するメディアセグメントのアドレス情報から、メディアセグメントのリクエストを生成、サーバに対して、リクエストを行う（Ｓ９２９）。そして、第４の実施形態と同様に、メディアセグメントの受信を逐次行う（Ｓ７２４）。なお、メディアセグメントの受信処理は、第４の実施形態と同様であるため、図４０では、Ｓ７２４として記載している。
【０４６６】
ここで、レスポンス／リクエスト実行部３５は、全てのムービーフラグメントを受信すると、リクエスト対象となっているコンテンツの全てのメディアセグメントを受信したかを確認（Ｓ６３２）し、全て受信済みであることを確認した場合（Ｓ６３２でＹＥＳ）には処理を終了する。
【０４６７】
一方、未受信のものが確認された場合（Ｓ６３２でＮＯ）には、レスポンス／リクエスト実行部３５は、次のメディアセグメントが取得可能かどうかを、ＭＰＤデータの再生対象となっているPeriodに含まれているメディアセグメントを全て受信したかどうかで判断する(Ｓ９３０)。Period内の全てのメディアセグメントを受信していれば（Ｓ９３０でＹＥＳ）、次のPeriodの取得を行う（Ｓ９３１）。
【０４６８】
Period内に受信可能なメディアセグメントがある場合には、次のメディアセグメントの受信処理を進める。そして、クライアント状況判断部３６は、第３の実施形態と同様に、取得先を変更すべきか否かを判定する（Ｓ７２５）。判断方法は第４の実施形態で示したものと同様である。そして、メディアセグメントの取得を継続する。
【０４６９】
〔実施例５〕
以下に、図４１に実施例５を示し、本実施形態についてさらに詳しく説明する。実施例５は、クライアント４であるコンテンツ再生装置に対して、コンテンツ格納先サーバリストに含まれるアドレス情報の何れかからコンテンツの取得の指示するコンテンツ配信システム１ｃの動作シーケンスの一例を示す図である。
【０４７０】
なお、実施例５では、前提として、サーバ２ａ、２ｂ、２ｃのそれぞれには、コンテンツ格納部５に図２１に示すフォーマットのコンテンツ１と、図３８で示す構造のコンテンツ１に対するコンテンツメタデータであるＭＰＤデータと外部リソースデータが格納されている。また、各サーバ２にあるコンテンツ１のメディアセグメントも同じように分割され格納されているとする。
【０４７１】
また、実施例４と同様に、コンテンツ再生装置が要求メッセージを送信して、当該要求メッセージに対応する応答メッセージを受信までを１つのセッションとする。
【０４７２】
図４１に示すように、セッション１０１０において、クライアント４ｇがコンテンツ１のＭＰＤデータの送信を要求する要求メッセージをサーバ２ａに送信する（リクエスト１０１１）。リクエスト１０１１を受信したサーバ２ａでは、レスポンス実行部１５は、コンテンツ格納部５ａから要求されたＭＰＤデータを読み出し（処理１０１２）、応答メッセージをクライアント４ｇに送信する（レスポンス１０１３）。
【０４７３】
レスポンス１０１３を受信したクライアント４ｇでは、レスポンス／リクエスト実行部３５が受信したＭＰＤデータを解析し、メディアセグメントの取得を試みる（処理１０２０）。そして、取得したＭＰＤデータに、メディアセグメントの所在情報等の取得に必要な外部リソースの参照が含まれると判断されると、サーバ２から外部リソースの取得を行う。
【０４７４】
次に、セッション１０３０において、クライアント４ｇは、外部リソースデータの要求を行う要求メッセージを送信する（リクエスト１０３１）。
【０４７５】
リクエスト１０３１を受信したサーバ２ａでは、レスポンス実行部１５は、取得先特定部１８にサーバ２を複数特定するように指示する。取得先特定部１８は、指示を受けて、コンテンツ格納先情報記憶部１３のコンテンツ格納先情報から格納先サーバリストの生成を行う。（処理８１２）。ここで、コンテンツ格納先情報記憶部１３には、コンテンツ１に関するサーバ情報がないため（処理８１３）、取得先特定部１８は、コンテンツ格納先サーバリストの生成のため、レスポンス実行部１５を通して、サーバ２ｂ、２ｃに対して、コンテンツ１の格納情報を問い合わせする（リクエスト８１４、８１５）。そして、問い合わせに対する応答と、応答時間を取得する（レスポンス８１６、８１７）。この応答結果からコンテンツ格納先サーバリストを生成する。（処理８１８）
続いて、レスポンス実行部１５は、要求された外部リソースデータをコンテンツ格納部５ａから取得し、作成したコンテンツ格納先リストの情報を用いて、該外部リソースデータを更新し、要求された外部リソースデータを作成する（処理１０３２）。そして、作成した外部リソースデータ含んだ応答メッセージをサーバ通信部１１を介して、クライアント４ｇへ送信する（レスポンス１０３３）。
【０４７６】
レスポンス１０３３を受信したクライアント４ｇでは、受信した外部リソースデータを用いて、既に取得したＭＰＤデータを更新する。取得先選択部３８は、更新されたＭＰＤデータを用いて、コンテンツの取得先のサーバ２を選択する（処理１０４０）。このときの選択の方法は、リストの先頭を選択してもよいし、優先度などの情報が付与されていれば、それを元に選択してもよい。また、クライアント状況判断部３６から遅延情報を受信していれば、それを考慮して取得先のサーバ２を選択してもよい。
【０４７７】
サーバ２を選択すると（ここではサーバ２ｂとする）、レスポンス／リクエスト実行部３５は、ＭＰＤからメディアセグメントを取得するためのUrlを生成し、順次取得する（セッション１０５０）。詳細な取得の処理については、実施例３（実施例４）と同様なため、説明を省略する。
【０４７８】
ＭＰＤデータのPeriod内の全てのメディアセグメントの取得を完了すると、クライアント４ｇは、次のPeriodに含まれるメディアセグメントの取得を行う。取得対象のメディアセグメント情報の取得にxlinkによる外部リソースデータが必要である場合は、セッション１０３０と同様に対象xlinkに記述されたアドレスに対して、外部リソースの要求を行う。
【０４７９】
以下、クライアント４およびサーバ２ともセッション１０１０〜セッション１０５０までの動作を繰り返し、全てのメディアセグメントを取得し、再生を完了する。
【０４８０】
〔課題を解決するための手段〕
本発明に係るコンテンツ配信装置は、上記課題を解決するために、リクエストに応じて、当該リクエストの送信元にコンテンツを送信するコンテンツ配信装置であって、上記リクエストの送信元が、リクエストしたコンテンツを保持して、リクエストしたコンテンツをコンテンツ再生装置に転送する中継装置であるか、リクエストしたコンテンツを再生するコンテンツ再生装置であるか、を判定する判定手段と、上記判定手段が上記リクエストの送信元が中継装置であると判定した場合、当該リクエストに応じて、リクエストされたコンテンツを、当該リクエストの送信元である中継装置に送信するコンテンツ送信手段と、上記コンテンツ送信手段が送信したコンテンツと、その送信先である中継装置またはその転送先であるコンテンツ再生装置のアドレスとを対応付けて、コンテンツ格納先情報を生成するコンテンツ格納先情報生成手段と、上記判定手段が上記リクエストの送信元がコンテンツ再生装置であると判定した場合、当該リクエストに応じて、上記コンテンツ格納先情報において、リクエストされたコンテンツに対応付けられたアドレスの示す中継装置またはコンテンツ再生装置から当該コンテンツを取得するように、当該リクエストの送信元であるコンテンツ再生装置に指示するコンテンツ取得先指示手段と、を備えることを特徴としている。
【０４８１】
本発明に係るコンテンツ配信装置の制御方法は、上記課題を解決するために、リクエストに応じて、当該リクエストの送信元にコンテンツを送信するコンテンツ配信装置の制御方法であって、上記リクエストの送信元が、リクエストしたコンテンツを保持して、リクエストしたコンテンツをコンテンツ再生装置に転送する中継装置であるか、リクエストしたコンテンツを再生するコンテンツ再生装置であるか、を判定する判定ステップと、上記判定ステップにおいて上記リクエストの送信元が中継装置であると判定した場合、当該リクエストに応じて、リクエストされたコンテンツを、当該リクエストの送信元である中継装置に送信するコンテンツ送信ステップと、上記コンテンツ送信ステップにおいて送信したコンテンツと、その送信先である中継装置またはその転送先であるコンテンツ再生装置のアドレスとを対応付けて、コンテンツ格納先情報を生成するコンテンツ格納先情報生成ステップと、上記判定ステップにおいて上記リクエストの送信元がコンテンツ再生装置であると判定した場合、当該リクエストに応じて、上記コンテンツ格納先情報において、リクエストされたコンテンツに対応付けられたアドレスの示す中継装置またはコンテンツ再生装置から当該コンテンツを取得するように、当該リクエストの送信元であるコンテンツ再生装置に指示するコンテンツ取得先指示ステップと、を含むことを特徴としている。
【０４８２】
上記の構成によれば、中継装置からリクエストを受信すると、コンテンツ送信手段がリクエストされたコンテンツを、当該リクエストの送信元である中継装置に送信し、コンテンツ格納先情報生成手段が上記コンテンツ送信手段が送信したコンテンツと、その送信先である中継装置またはその転送先であるコンテンツ再生装置のアドレスとを対応付けて、コンテンツ格納先情報を生成する。また、コンテンツ再生装置からリクエストを受信すると、コンテンツ取得先指示手段が上記コンテンツ格納先情報において、リクエストされたコンテンツに対応付けられたアドレスの示す中継装置またはコンテンツ再生装置から当該コンテンツを取得するように、当該リクエストの送信元であるコンテンツ再生装置に指示する。ここで、上記中継装置および上記コンテンツ再生装置は、取得したコンテンツを保持するため、上記コンテンツ格納先情報は、どの中継装置またはコンテンツ再生装置がどのコンテンツを保持しているかを示す情報である。
【０４８３】
すなわち、コンテンツ配信装置は、過去に送信したコンテンツと、当該コンテンツを保持する中継装置またはコンテンツ再生装置とを対応付けて把握しておき、或るコンテンツ再生装置からリクエストを受信すると、リクエストの送信元のコンテンツ再生装置に直接コンテンツを送信せずに、リクエストされたコンテンツを保持している中継装置またはコンテンツ再生装置から当該コンテンツを取得するように、リクエストの送信元のコンテンツ再生装置に対して指示する。リクエストの送信元のコンテンツ再生装置は、指示された中継装置またはコンテンツ再生装置からリクエストしたコンテンツを取得するため、指示された中継装置またはコンテンツ再生装置が当該コンテンツを保持している場合、リクエストの送信元のコンテンツ再生装置と、指示された中継装置またはコンテンツ再生装置との両者だけでコンテンツの送受信が完了する。つまり、コンテンツ配信装置がコンテンツの送信処理を実行せずに、リクエストの送信元のコンテンツ再生装置がコンテンツを取得することができる。
【０４８４】
よって、コンテンツ配信装置からのデータ送出に用いられるネットワークおよびコンテンツ配信装置に対する負荷を抑制することができるという効果を奏する。ここで、コンテンツ配信装置、中継装置、コンテンツ再生装置が実行する処理の中で、コンテンツの送受信処理が最も負荷の掛かる処理であり、それらの装置間のネットワークにおいてもコンテンツの送受信が最も負荷が掛かる。従って、例えば、コンテンツ再生装置の個数が増えて、コンテンツ配信装置に対するリクエストが増えたとしても、コンテンツ配信装置からのデータ送出に用いられるネットワークおよびコンテンツ配信装置に対する負荷の増大を抑制することができるため、コンテンツ配信装置の処理能力の拡大や上記ネットワークの容量の増大を図ることなく、多数のコンテンツ再生装置がコンテンツを取得することができる。
【０４８５】
また、本発明に係るコンテンツ配信装置は、上記リクエストが当該リクエストの転送経路を示す転送経路情報を含む場合、上記リクエストの送信元が上記中継装置であると判定する一方、上記リクエストが上記転送経路情報を含まない場合、上記リクエストの送信元が上記コンテンツ再生装置であると判定することが好ましい。
【０４８６】
上記の構成によれば、上記判定手段は、上記リクエストが当該リクエストの転送経路を示す転送経路情報を含む場合、上記リクエストの送信元が上記中継装置であると判定する一方、上記リクエストが上記転送経路情報を含まない場合、上記リクエストの送信元が上記コンテンツ再生装置であると判定する。つまり、上記判定手段は、装置から直接リクエストを受信すると、リクエストの送信元がコンテンツ再生装置であると判定し、装置が送信したリクエストが、他の装置のリクエストに基づくリクエストであれば、当該コンテンツ取得装置を中継装置として判定する。
【０４８７】
上述のように、リクエストの送信元の中継装置には、リクエストされたコンテンツを送信し、リクエストの送信元のコンテンツ再生装置には、リクエストされたコンテンツを保持する中継装置またはコンテンツ再生装置から当該コンテンツを取得するように指示する。そのため、コンテンツ配信装置は、必ず、指示した中継装置またはコンテンツ再生装置を介してコンテンツ再生装置にコンテンツを送信することができる。従って、指示した中継装置またはコンテンツ再生装置が、リクエストの送信元のコンテンツ再生装置のリクエストしたコンテンツを保持している場合、コンテンツ配信装置が当該コンテンツを送信する必要がないため、コンテンツ配信装置からのデータ送出に用いられるネットワークおよびコンテンツ配信装置に対する負荷を抑制することができる。
【０４８８】
また、本発明に係るコンテンツ配信装置は、上記コンテンツ取得先指示手段は、リクエストされたコンテンツに対応付けられたアドレスを含む上記コンテンツ格納先情報が複数存在する場合、当該コンテンツ格納先情報に含まれるアドレスを複数含むコンテンツ格納先リストを作成し、作成したコンテンツ格納先リストに含まれるアドレスの示す中継装置またはコンテンツ再生装置の何れかから上記コンテンツを取得するように、上記リクエストの送信元であるコンテンツ再生装置に指示することが好ましい。
【０４８９】
上記の構成によれば、上記コンテンツ取得先指示手段は、リクエストされたコンテンツに対応付けられたアドレスを含む上記コンテンツ格納先情報が複数存在する場合、当該コンテンツ格納先情報に含まれるアドレスを複数含むコンテンツ格納先リストを作成し、作成したコンテンツ格納先リストに含まれるアドレスの示す中継装置またはコンテンツ再生装置の何れかから上記コンテンツを取得するように、上記リクエストの送信元であるコンテンツ再生装置に指示する。
【０４９０】
そのため、リクエストの送信元のコンテンツ再生装置は、上記コンテンツ格納先リストに含まれるアドレスの示すアドレス中継装置またはコンテンツ再生装置の何れかを選択して、選択した中継装置またはコンテンツ再生装置からコンテンツを取得する。よって、リクエストの送信元のコンテンツ再生装置は、自装置およびコンテンツを保持する中継装置またはコンテンツ再生装置の状況に応じて、最適な装置からコンテンツを取得することができる。
【０４９１】
また、本発明に係るコンテンツ配信装置は、上記コンテンツ格納先情報生成手段は、上記コンテンツ送信手段が送信したコンテンツに、当該コンテンツを上記コンテンツ送信手段が送信した日時を対応付けて、上記コンテンツ格納先情報を生成するものであり、上記コンテンツ取得先指示手段は、上記複数のコンテンツ格納先情報に含まれる上記複数のアドレスを、対応付けられている日時が新しい順に並べて、上記複数のアドレスに優先順位を付加して上記コンテンツ格納先リストを作成することが好ましい。
【０４９２】
上記の構成によれば、上記コンテンツ格納先情報では、コンテンツと、当該コンテンツを保持する中継装置またはコンテンツ再生装置と、当該中継装置またはコンテンツ再生装置にコンテンツが送信された日時、つまり、当該中継装置またはコンテンツ再生装置がコンテンツを保持した日時とが対応付けられている。そして、上記コンテンツ取得先指示手段は、上記複数のコンテンツ格納先情報に含まれる上記複数のアドレスを、対応付けられている日時が新しい順に並べて、上記複数のアドレスに優先順位を付加して上記コンテンツ格納先リストを作成する。
【０４９３】
すなわち、上記コンテンツ格納先リストには、リクエストの送信元のコンテンツ再生装置がリクエストしたコンテンツを保持する中継装置またはコンテンツ再生装置が複数示されており、当該中継装置またはコンテンツ再生装置のコンテンツを保持した順が示されている。そのため、リクエストの送信元のコンテンツ再生装置は、コンテンツ格納先リストを参照して、例えば、コンテンツの取得先の装置として、直近にコンテンツを保持した中継装置またはコンテンツ再生装置を選択することができる。
【０４９４】
ここで、例えば、コンテンツ配信装置が送信するコンテンツを新しいデータに更新したり、コンテンツを保持する中継装置またはコンテンツ再生装置が、保持しているコンテンツを破棄したり、改変したりすることも考えられる。このような場合であっても、リクエストの送信元のコンテンツ再生装置は、コンテンツを保持した日時が最も新しい中継装置またはコンテンツ再生装置から取得することにより、コンテンツ配信装置が送信するコンテンツと同じコンテンツをより確実に取得することができる。
【０４９５】
また、本発明に係るコンテンツ配信装置は、上記コンテンツ格納先情報に含まれるアドレスに基づいて、当該アドレスの示す中継装置またはコンテンツ再生装置と、上記コンテンツ取得先指示手段がコンテンツの取得先を指示するコンテンツ再生装置との物理的またはネットワーク構造上の距離を算出する距離算出手段をさらに備え、上記コンテンツ取得先指示手段は、上記複数のコンテンツ格納先情報に含まれる上記複数のアドレスを、上記距離算出手段が算出した距離が短い順に並べて、上記複数のアドレスに優先順位を付加して上記コンテンツ格納先リストを作成することが好ましい。
【０４９６】
上記の構成によれば、上記距離算出手段が、上記コンテンツ格納先情報に含まれるアドレスに基づいて、当該アドレスの示す中継装置またはコンテンツ再生装置と、上記コンテンツ取得先指示手段がコンテンツの取得先を指示するコンテンツ再生装置との物理的またはネットワーク構造上の距離を算出する。そして、上記コンテンツ取得先指示手段は、上記複数のコンテンツ格納先情報に含まれる上記複数のアドレスを、上記距離算出手段が算出した距離が短い順に並べて、上記複数のアドレスに優先順位を付加して上記コンテンツ格納先リストを作成する。
【０４９７】
すなわち、上記コンテンツ格納先リストには、上記コンテンツ取得先指示手段がコンテンツの取得先を指示する、リクエストの送信元のコンテンツ再生装置がリクエストしたコンテンツを保持する中継装置またはコンテンツ再生装置が複数示されており、リクエストの送信元のコンテンツ再生装置との物理的またはネットワーク構造的な距離が近い順に各中継装置またはコンテンツ再生装置が示されている。そのため、リクエストの送信元のコンテンツ再生装置は、コンテンツ格納先リストを参照して、例えば、コンテンツの取得先の装置として、自装置と上記距離が最も近い中継装置またはコンテンツ再生装置を選択することができる。よって、リクエストの送信元のコンテンツ再生装置がコンテンツを取得する際に、ネットワークに掛かる負荷を抑制することができる。
【０４９８】
また、本発明に係るコンテンツ配信装置は、上記リクエストに応じたレスポンスの送信先と、当該レスポンスの送信日時とを対応付けて、レスポンス送信記録を作成する送信記録作成手段をさらに備え、上記コンテンツ取得先指示手段は、上記送信記録作成手段が作成したレスポンス送信記録を参照して、上記コンテンツ格納先情報において、リクエストされたコンテンツに対応付けられたアドレスの示す中継装置またはコンテンツ再生装置であって、一定時間以内の上記レスポンス送信記録に含まれていない上記レスポンスの送信先から、当該コンテンツを取得するように、上記リクエストの送信元であるコンテンツ再生装置に指示することが好ましい。
【０４９９】
上記の構成によれば、送信記録作成手段が上記リクエストに応じたレスポンスの送信先と、当該レスポンスの送信日時とを対応付けて、レスポンス送信記録を作成する。そして、上記コンテンツ取得先指示手段は、上記送信記録作成手段が作成したレスポンス送信記録を参照して、上記コンテンツ格納先情報において、リクエストされたコンテンツに対応付けられたアドレスの示す中継装置またはコンテンツ再生装置であって、一定時間以内の上記レスポンス送信記録に含まれていない上記レスポンスの送信先から、当該コンテンツを取得するように、上記リクエストの送信元であるコンテンツ再生装置に指示する。
【０５００】
ここで、上記コンテンツ取得先指示手段は、上記レスポンス送信記録を参照することにより、上記レスポンスの送信先である中継装置またはコンテンツ再生装置が上記レスポンスを受信した日時を予測することができ、つまり、上記レスポンスの送信先の中継装置またはコンテンツ再生装置がリクエスト送信やレスポンス受信またはそれに付随する処理を行った日時を予測することができる。それゆえ、上記の一定時間以内の上記レスポンス送信記録に含まれていない上記レスポンスの送信先とは、一定時間以内に処理を行っていないと考えられる中継装置またはコンテンツ再生装置である。
【０５０１】
すなわち、上記コンテンツ取得先指示手段は、リクエストの送信元のコンテンツ再生装置に対して、リクエストされたコンテンツを保持する中継装置またはコンテンツ再生装置であって、一定時間以内にコンテンツの送受信に関する処理を実行していないと考えられる中継装置またはコンテンツ再生装置から、リクエストされたコンテンツを取得するように指示する。よって、リクエストの送信元のコンテンツ再生装置は、上記コンテンツ取得先指示手段から指示された中継装置またはコンテンツ再生装置からコンテンツを取得する際に、コンテンツの取得先である中継装置またはコンテンツ再生装置の処理量の増大による、リクエストの送信元のコンテンツ再生装置によるコンテンツ取得時に遅延が発生することを抑えることができる。
【０５０２】
また、本発明に係るコンテンツ再生装置は、上記コンテンツ配信装置にリクエストを送信し、当該リクエストに対するレスポンスとして上記コンテンツ格納先リストを受信し、受信したコンテンツ格納先リストに含まれるアドレスの示す中継装置またはコンテンツ再生装置の何れかからリクエストしたコンテンツを取得するコンテンツ再生装置であって、上記コンテンツを取得する受信速度が、予め定めた受信速度よりも遅い場合、上記コンテンツを取得する取得先の中継装置またはコンテンツ再生装置を、コンテンツ格納先リストに含まれるアドレスの示す他の中継装置またはコンテンツ再生装置に変更することを特徴としている。
【０５０３】
上記の構成によれば、コンテンツ再生装置は、受信したコンテンツ格納先リストに含まれるアドレスの示す中継装置またはコンテンツ再生装置の何れかを選択する。そして、コンテンツ再生装置は、選択した中継装置またはコンテンツ再生装置からリクエストしたコンテンツを取得する際に、上記コンテンツを取得する受信速度が、予め定めた受信速度よりも遅い場合、上記コンテンツを取得する取得先の中継装置またはコンテンツ再生装置を、上記選択した中継装置またはコンテンツ再生装置から、コンテンツ格納先リストに含まれるアドレスの示す他の中継装置またはコンテンツ再生装置に変更する。
【０５０４】
そのため、コンテンツ再生装置は、コンテンツを取得する受信速度を予め定めた受信速度以上に保つことができ、大きな遅延を発生させることなく、コンテンツを安定的に取得することができる。
【０５０５】
また、コンテンツの取得に遅延が発生している場合、取得先である中継装置またはコンテンツ再生装置の処理量が増大しているか、もしくは、コンテンツ再生装置と取得先である中継装置またはコンテンツ再生装置との間のネットワークの通信状態が悪化していること等が考えられる。そのため、コンテンツ再生装置が、遅延の発生に応じて、現在のコンテンツの取得先の中継装置またはコンテンツ再生装置を、他の中継装置またはコンテンツ再生装置に切り替えることによって、取得先の中継装置またはコンテンツ再生装置、および、コンテンツを取得するコンテンツ再生装置と取得先の中継装置またはコンテンツ再生装置との間のネットワークの資源を有効に活用することができる。
【０５０６】
また、本発明に係るコンテンツ再生装置は、上記コンテンツ配信装置にリクエストを送信し、当該リクエストに対するレスポンスとして上記コンテンツ格納先リストを受信し、受信したコンテンツ格納先リストにおいて、優先順位が最も高いアドレスの示す中継装置またはコンテンツ再生装置からリクエストしたコンテンツを取得するコンテンツ再生装置であって、上記コンテンツを取得する受信速度が、予め定めた受信速度よりも遅い場合、上記コンテンツを取得する取得先の中継装置またはコンテンツ再生装置を、コンテンツ格納先リストにおいて優先順位が次のアドレスの示す中継装置またはコンテンツ再生装置に変更することを特徴としている。
【０５０７】
上記の構成によれば、コンテンツ再生装置は、受信したコンテンツ格納先リストにおいて、優先順位が最も高いアドレスの示す中継装置またはコンテンツ再生装置を選択する。そして、コンテンツ再生装置は、選択した中継装置またはコンテンツ再生装置からリクエストしたコンテンツを取得する際に、上記コンテンツを取得する受信速度が、予め定めた受信速度よりも遅い場合、上記コンテンツを取得する取得先の中継装置またはコンテンツ再生装置を、上記選択した中継装置またはコンテンツ再生装置から、コンテンツ格納先リストにおいて優先順位が次のアドレスの示す中継装置またはコンテンツ再生装置に変更する。
【０５０８】
そのため、コンテンツ再生装置は、コンテンツを取得する受信速度を予め定めた受信速度以上に保つことができ、大きな遅延を発生させることなく、コンテンツを安定的に取得することができる。
【０５０９】
また、優先順位がコンテンツを保持した日時に基づいて付加されている場合、コンテンツを取得するコンテンツ再生装置は、コンテンツ配信装置が送信するコンテンツと同じコンテンツを保持している可能性の高い中継装置またはコンテンツ再生装置から順にコンテンツを取得するため、コンテンツ配信装置が送信するコンテンツと同じコンテンツをより早くより確実に取得することができる。また、優先順位がコンテンツを取得するコンテンツ再生装置との上記距離に基づいて付加されている場合、当該コンテンツ再生装置は、自装置と上記距離が近い中継装置またはコンテンツ再生装置から順にコンテンツを取得するため、ネットワークに掛かる負荷を抑制しながら、コンテンツを安定的に取得することができる。
【０５１０】
また、本発明に係るコンテンツ配信システムは、上記コンテンツ配信装置と、上記コンテンツ配信装置にコンテンツの送信をリクエストして、リクエストしたコンテンツを保持して、リクエストしたコンテンツをコンテンツ再生装置に転送する中継装置と、上記コンテンツ配信装置にコンテンツの送信をリクエストして、上記コンテンツ配信装置から指示された装置から、リクエストしたコンテンツを取得するコンテンツ再生装置とを含むことを特徴としている。
【０５１１】
上記の構成によれば、コンテンツ配信システムは、上記コンテンツ配信装置と同様の効果を奏する。
【０５１２】
また、本発明に係るコンテンツ配信装置は、リクエストに応じて、当該リクエストの送信元にコンテンツを送信するコンテンツ配信装置であって、
上記リクエストの送信元が、リクエストしたコンテンツを保持して、リクエストしたコンテンツをコンテンツ再生装置に転送する中継装置であるか、リクエストしたコンテンツを再生するコンテンツ再生装置であるか、を判定する判定手段と、
上記判定手段が上記リクエストの送信元がコンテンツ再生装置であると判定した場合、当該リクエストに応じて、予め定められた他のコンテンツ配信装置のうち、当該リクエストされたコンテンツを有する他のコンテンツ配信装置のアドレスを取得するコンテンツ格納先情報取得手段と、
上記コンテンツ格納先情報取得手段が取得したアドレスの示す他のコンテンツ配信装置からコンテンツを取得するように、上記リクエストの送信元であるコンテンツ再生装置に指示するコンテンツ取得先指示手段と、を備えることを特徴としている。
【０５１３】
また、本発明に係るコンテンツ配信装置の制御方法は、リクエストに応じて、当該リクエストの送信元にコンテンツを送信するコンテンツ配信装置の制御方法であって、上記リクエストの送信元が、リクエストしたコンテンツを保持して、リクエストしたコンテンツをコンテンツ再生装置に転送する中継装置であるか、リクエストしたコンテンツを再生するコンテンツ再生装置であるか、を判定する判定ステップと、上記判定ステップにおいて上記リクエストの送信元がコンテンツ再生装置であると判定された場合、当該リクエストに応じて、上記コンテンツ配信装置と接続された他のコンテンツ配信装置のうち、当該リクエストされたコンテンツを有する他のコンテンツ配信装置のアドレスを取得するコンテンツ格納先情報取得ステップと、上記コンテンツ格納先情報取得ステップにおいて取得されたアドレスの示す他のコンテンツ配信装置からコンテンツを取得するように、上記リクエストの送信元であるコンテンツ再生装置に指示するコンテンツ取得先指示ステップと、を含むことを特徴としている。
【０５１４】
上記の構成によれば、上記判定手段が、上記リクエストの送信元が中継装置であるか、コンテンツ再生装置であるかを判定し、上記コンテンツ格納先情報取得手段は、上記判定手段が上記リクエストの送信元がコンテンツ再生装置であると判定した場合、当該リクエストに応じて、予め定められた他のコンテンツ配信装置のうち、当該リクエストされたコンテンツを有する他のコンテンツ配信装置のアドレスを取得する。そして、上記コンテンツ取得先指示手段は、上記コンテンツ格納先情報取得手段が取得したアドレスの示す他のコンテンツ配信装置からコンテンツを取得するように、上記リクエストの送信元であるコンテンツ再生装置に指示する。
【０５１５】
すなわち、コンテンツ配信装置は、コンテンツ再生装置からリクエストを受信すると、リクエストの送信元のコンテンツ再生装置に直接コンテンツを送信せずに、リクエストされたコンテンツを保持している他のコンテンツ配信装置から当該コンテンツを取得するように、リクエストの送信元のコンテンツ再生装置に対して指示する。リクエストの送信元のコンテンツ再生装置は、指示された他のコンテンツ配信装置からリクエストしたコンテンツを取得する。つまり、コンテンツ再生装置からリクエストを受信したコンテンツ配信装置がコンテンツの送信処理を実行せずに、リクエストの送信元のコンテンツ再生装置がコンテンツを取得することができる。
【０５１６】
よって、コンテンツ再生装置からリクエストを受信したコンテンツ配信装置からのデータ送出に用いられるネットワークおよび当該コンテンツ配信装置に対する負荷が相対的に大きい場合、他のコンテンツ配信装置からコンテンツを取得させることにより、コンテンツ配信装置からのデータ送出に用いられるネットワークおよび当該コンテンツ配信装置に対する負荷を分散することができるという効果を奏する。
【０５１７】
また、本発明に係るコンテンツ配信装置は、上記コンテンツ格納先情報取得手段は、上記予め定められた他のコンテンツ配信装置に対して、上記リクエストされたコンテンツを有するか否かの問い合わせを送信し、当該問い合わせに対して上記リクエストされたコンテンツを有すると応答した他のコンテンツ配信装置のアドレスを取得することが好ましい。
【０５１８】
上記の構成によれば、上記コンテンツ格納先情報取得手段は、上記予め定められた他のコンテンツ配信装置に対して、上記リクエストされたコンテンツを有するか否かの問い合わせを送信し、当該問い合わせに対して上記リクエストされたコンテンツを有すると応答した他のコンテンツ配信装置のアドレスを取得する。
【０５１９】
上記コンテンツ取得先指示手段は、上記コンテンツ格納先情報取得手段が上記問い合わせを行って取得したアドレスに基づいて、コンテンツを取得するようにコンテンツ再生装置に指示するため、精度の高い（正確な）情報に基づいてコンテンツ再生装置に指示することができる。よって、コンテンツ再生装置は、リクエストしたコンテンツを確実に取得することができる。
【０５２０】
また、本発明に係るコンテンツ配信装置は、上記コンテンツ格納先情報取得手段が取得した、コンテンツを有する他のコンテンツ配信装置のアドレスと、当該コンテンツを示すコンテンツ識別情報とを対応付けてコンテンツ格納先情報を生成して、記憶部に格納するコンテンツ格納先情報生成手段をさらに備え、上記コンテンツ格納先情報取得手段は、上記記憶部からコンテンツ格納先情報を読み出し、読み出したコンテンツ格納先情報が上記リクエストされたコンテンツを示すコンテンツ識別情報を含む場合、当該コンテンツ格納先情報から当該コンテンツ識別情報と対応付けられたアドレスを取得し、一方、読み出したコンテンツ格納先情報が上記リクエストされたコンテンツを示すコンテンツ識別情報を含まない場合、上記問い合わせを送信し、上記リクエストされたコンテンツを有する他のコンテンツ配信装置のアドレスを取得することが好ましい。
【０５２１】
上記の構成によれば、上記コンテンツ格納先情報生成手段は、上記コンテンツ格納先情報取得手段が取得した、コンテンツを有する他のコンテンツ配信装置のアドレスと、当該コンテンツを示すコンテンツ識別情報とを対応付けてコンテンツ格納先情報を生成して、記憶部に格納する。そして、上記コンテンツ格納先情報取得手段は、上記記憶部からコンテンツ格納先情報を読み出し、読み出したコンテンツ格納先情報が上記リクエストされたコンテンツを示すコンテンツ識別情報を含む場合、当該コンテンツ識別情報と対応付けられたアドレスを取得し、一方、読み出したコンテンツ格納先情報が上記リクエストされたコンテンツを示すコンテンツ識別情報を含まない場合、上記問い合わせを送信し、上記リクエストされたコンテンツを有する他のコンテンツ配信装置のアドレスを取得する。
【０５２２】
すなわち、上記コンテンツ格納先情報取得手段は、上記リクエストされたコンテンツを有する他のコンテンツ配信装置のアドレスを取得する際に、上記記憶部に格納されているコンテンツ格納先情報を参照し、上記リクエストされたコンテンツを示すコンテンツ識別情報を含むコンテンツ格納先情報が記憶部に格納されている場合、つまり、以前に同じコンテンツを有する他のコンテンツ配信装置のアドレスを取得していた場合、上記記憶部に格納されているコンテンツ格納先情報からそのアドレスを取得する。
【０５２３】
一方、上記記憶部に格納されているコンテンツ格納先情報を参照し、上記リクエストされたコンテンツを示すコンテンツ識別情報を含むコンテンツ格納先情報が記憶部に格納されていない場合、つまり、以前に同じコンテンツを有する他のコンテンツ配信装置のアドレスを取得していない場合、上記問い合わせを送信し、上記リクエストされたコンテンツを有する他のコンテンツ配信装置のアドレスを取得する。
【０５２４】
ここで、記憶部に格納されているコンテンツ格納先情報に含まれるアドレスの示す他のコンテンツ配信装置は、当該アドレスに対応するコンテンツ識別情報の示すコンテンツを有していると予想される。
【０５２５】
そのため、以前に取得したアドレスを利用するという簡単な処理によって、上記リクエストされたコンテンツを有する他のコンテンツ配信装置のアドレスを取得することができる。よって、コンテンツ配信装置の処理負荷を軽減することができる。
【０５２６】
また、本発明に係るコンテンツ配信装置は、上記コンテンツ格納先情報取得手段は、上記リクエストされたコンテンツを有する複数のコンテンツ配信装置の各々のアドレスを取得し、取得した各アドレスと、当該コンテンツを示すコンテンツ識別情報とを含むコンテンツ格納先サーバリストを作成し、上記コンテンツ取得先指示手段は、上記コンテンツ格納先情報取得手段が作成したコンテンツ格納先サーバリストに含まれるアドレスの示す他のコンテンツ配信装置からコンテンツを取得するように、上記リクエストの送信元であるコンテンツ再生装置に指示することが好ましい。
【０５２７】
上記の構成によれば、上記コンテンツ格納先情報取得手段は、上記リクエストされたコンテンツを有する複数のコンテンツ配信装置の各々のアドレスを取得し、取得した各アドレスと、当該コンテンツを示すコンテンツ識別情報とを含むコンテンツ格納先サーバリストを作成し、上記コンテンツ取得先指示手段は、上記コンテンツ格納先情報取得手段が作成したコンテンツ格納先サーバリストに含まれるアドレスの示す他のコンテンツ配信装置からコンテンツを取得するように、上記リクエストの送信元であるコンテンツ再生装置に指示する。
【０５２８】
すなわち、コンテンツ再生装置は、上記リクエストしたコンテンツを複数の他のコンテンツ配信装置の何れかから取得することが可能になる。よって、他のコンテンツ配信装置からのデータ送出に用いられるネットワークおよび当該他のコンテンツ配信装置に対する負荷をより分散することができる。
【０５２９】
また、本発明に係るコンテンツ再生装置は、上記コンテンツ配信装置にリクエストを送信し、当該リクエストに対するレスポンスとして上記コンテンツ格納先サーバリストを受信し、受信したコンテンツ格納先サーバリストに含まれる何れかのアドレスの示す他のコンテンツ配信装置からリクエストしたコンテンツを取得するコンテンツ再生装置であって、
上記コンテンツを取得する受信速度が、予め定めた受信速度よりも遅い場合、上記コンテンツを取得する取得先の他のコンテンツ配信装置を、コンテンツ格納先サーバリストに含まれる上記アドレスとは別のアドレスの示す他のコンテンツ配信装置に変更する取得先変更手段を備えることを特徴としている。
【０５３０】
上記の構成によれば、コンテンツ再生装置は、受信したコンテンツ格納先サーバリストに含まれる何れかのアドレスの示す他のコンテンツ配信装置を選択する。そして、コンテンツ再生装置は、選択した他のコンテンツ配信装置からリクエストしたコンテンツを取得する際に、上記コンテンツを取得する受信速度が、予め定めた受信速度よりも遅い場合、上記コンテンツを取得する取得先の他のコンテンツ配信装置を、上記選択した他のコンテンツ配信装置とは異なる他のコンテンツ配信装置に変更する。
【０５３１】
そのため、コンテンツ再生装置は、コンテンツを取得する受信速度を予め定めた受信速度以上に保つことができ、大きな遅延を発生させることなく、コンテンツを安定的に取得することができる。
【０５３２】
また、コンテンツの取得に遅延が発生している場合、取得先である他のコンテンツ配信装置の処理量が増大しているか、もしくは、コンテンツ再生装置と取得先である他のコンテンツ配信装置との間のネットワークの通信状態が悪化していること等が考えられる。そのため、コンテンツ再生装置が、遅延の発生に応じて、現在のコンテンツの取得先の他のコンテンツ配信装置を、それとは異なる他のコンテンツ配信装置に切り替えることによって、取得先の他のコンテンツ配信装置、および、コンテンツを取得するコンテンツ再生装置と取得先の他のコンテンツ配信装置との間のネットワークの資源を有効に活用することができる。
【０５３３】
また、本発明に係るコンテンツ配信システムは、上記コンテンツ配信装置と、上記コンテンツ配信装置にコンテンツの送信をリクエストして、リクエストしたコンテンツを保持して、リクエストしたコンテンツをコンテンツ再生装置に転送する中継装置と、上記コンテンツ配信装置にコンテンツの送信をリクエストして、上記コンテンツ配信装置から指示された装置から、リクエストしたコンテンツを取得するコンテンツ再生装置とを含むことを特徴としている。
【０５３４】
上記の構成によれば、コンテンツ配信システムは、上記コンテンツ配信装置と同様の効果を奏する。
【０５３５】
また、本発明に係るコンテンツ配信装置は、リクエストに応じて、当該リクエストの送信元にデータを送信するコンテンツ配信装置であって、コンテンツと、コンテンツのメタデータであって、コンテンツを識別するコンテンツ識別情報と当該コンテンツを有する他のコンテンツ配信装置のアドレスとが対応付けられているコンテンツ格納先情報または当該コンテンツ格納先情報の所在を示す格納先アドレスを含むメタデータと、を管理する管理手段と、上記リクエストが、コンテンツリクエストまたはメタデータリクエストの何れであるかを判定するリクエスト判定手段と、上記リクエスト判定手段が上記コンテンツリクエストであると判定した場合、リクエストされたコンテンツを、当該リクエストの送信元の装置に送信する一方、上記リクエスト判定手段が上記メタデータリクエストであると判定した場合、リクエストされたメタデータを当該リクエストの送信元の装置に送信する送信手段とを備えることを特徴としている。
【０５３６】
また、本発明に係るコンテンツ配信装置の制御方法は、リクエストに応じて、当該リクエストの送信元にデータを送信するコンテンツ配信装置の制御方法において、コンテンツと、コンテンツのメタデータであって、コンテンツを識別するコンテンツ識別情報と当該コンテンツを有する他のコンテンツ配信装置のアドレスとが対応付けられているコンテンツ格納先情報または当該コンテンツ格納先情報の所在を示す格納先アドレスを含むメタデータと、を管理するコンテンツ配信装置の制御方法であって、上記リクエストが、コンテンツリクエストまたはメタデータリクエストの何れであるかを判定するリクエスト判定ステップと、上記リクエスト判定ステップにおいて上記コンテンツリクエストであると判定された場合、リクエストされたコンテンツを、当該リクエストの送信元の装置に送信する送信ステップと、上記リクエスト判定ステップにおいて上記メタデータリクエストであると判定された場合、リクエストされたメタデータを当該リクエストの送信元の装置に送信する送信ステップとを含むことを特徴としている。
【０５３７】
上記の構成によれば、上記管理手段は、コンテンツと、コンテンツのメタデータであって、コンテンツを識別するコンテンツ識別情報と当該コンテンツを有する他のコンテンツ配信装置のアドレスとが対応付けられているコンテンツ格納先情報または当該コンテンツ格納先情報の所在を示す格納先アドレスを含むメタデータと、を管理しており、上記リクエスト判定手段は、上記リクエストが、コンテンツリクエストまたはメタデータリクエストの何れであるかを判定し、上記送信手段は、上記リクエスト判定手段が上記コンテンツリクエストであると判定した場合、リクエストされたコンテンツを、当該リクエストの送信元の装置に送信する一方、上記リクエスト判定手段が上記メタデータリクエストであると判定した場合、リクエストされたメタデータを当該リクエストの送信元の装置に送信する。
【０５３８】
すなわち、コンテンツ配信装置は、コンテンツ再生装置からコンテンツリクエストを受信すると、リクエストの送信元のコンテンツ再生装置に直接コンテンツを送信する一方、コンテンツ再生装置からメタデータリクエストを受信すると、リクエストの送信元のコンテンツ再生装置に直接コンテンツを送信せずに、リクエストされたコンテンツを保持している他のコンテンツ配信装置から当該コンテンツを取得するように、リクエストの送信元のコンテンツ再生装置に対して指示する。リクエストの送信元のコンテンツ再生装置は、指示された他のコンテンツ配信装置からリクエストしたコンテンツを取得する。つまり、コンテンツ再生装置がコンテンツのメタデータを使用してコンテンツの取得を要求する場合、コンテンツ再生装置からメタデータリクエストを受信したコンテンツ配信装置がコンテンツの送信処理を実行せずに、他のコンテンツ配信装置が送信処理を実行して、リクエストの送信元のコンテンツ再生装置がコンテンツを取得することができる。
【０５３９】
よって、コンテンツ再生装置がコンテンツのメタデータを使用してコンテンツの取得を要求する場合であって、コンテンツ再生装置からリクエストを受信したコンテンツ配信装置からのデータ送出に用いられるネットワークおよび当該コンテンツ配信装置に対する負荷が相対的に大きい場合、他のコンテンツ配信装置からコンテンツを取得させることにより、コンテンツ配信装置からのデータ送出に用いられるネットワークおよび当該コンテンツ配信装置に対する負荷を分散することができるという効果を奏する。
【０５４０】
また、本発明に係るコンテンツ配信装置は、上記リクエスト判定手段は、上記リクエストが、コンテンツリクエスト、メタデータリクエスト、格納先アドレスを用いたコンテンツ格納先情報リクエストの何れであるかを判定し、上記リクエスト判定手段が上記格納先アドレスを用いたコンテンツ格納先情報リクエストであると判定した場合、上記送信手段は、上記格納先アドレスによりその所在が示されるコンテンツ格納先情報を上記リクエストの送信元の装置に送信することが好ましい。
【０５４１】
上記の構成によれば、上記リクエスト判定手段は、上記リクエストが、コンテンツリクエスト、メタデータリクエスト、格納先アドレスを用いたコンテンツ格納先情報リクエストの何れであるかを判定し、上記リクエスト判定手段が上記格納先アドレスを用いたコンテンツ格納先情報リクエストであると判定した場合、上記送信手段は、上記格納先アドレスによりその所在が示されるコンテンツ格納先情報を上記リクエストの送信元の装置に送信する。
【０５４２】
そのため、コンテンツ配信装置は、コンテンツ再生装置からメタデータリクエストを受信した際に、メタデータに対応するコンテンツの取得先を示すコンテンツ格納先情報を通知するだけではなく、コンテンツ再生装置からコンテンツ格納先情報リクエストを受信した時点における、メタデータに対応するコンテンツの取得先を示すコンテンツ格納先情報を通知することができる。よって、コンテンツ再生装置は、例えば、コンテンツを再生する際に、コンテンツ格納先情報リクエストを送信することによって、コンテンツを再生する時点での当該コンテンツを有する他のコンテンツ配信装置を知ることができる。
【０５４３】
従って、コンテンツ配信装置は、コンテンツ再生装置に対して、精度の高い（正確な）情報を通知することができ、コンテンツ再生装置は、コンテンツの取得先の装置からコンテンツを取得できない等のエラーが発生することを抑制することができ、安定的にコンテンツを取得することができる。
【０５４４】
また、本発明に係るコンテンツ配信装置は、上記予め定められた他のコンテンツ配信装置に対して、所定のコンテンツを有するか否かの問い合わせを送信し、当該問い合わせに対して上記所定のコンテンツを有すると応答した他のコンテンツ配信装置のアドレスを取得するコンテンツ格納先情報取得手段と、上記コンテンツ格納先情報取得手段が取得した、上記所定のコンテンツを有する他のコンテンツ配信装置のアドレスと、当該所定のコンテンツを識別するコンテンツ識別情報とを対応付けてコンテンツ格納先情報を生成して、記憶部に格納するコンテンツ格納先情報生成手段と、上記記憶部に格納されているコンテンツ格納先情報を更新するか否かを判定する更新判定手段とをさらに備え、上記リクエスト判定手段が上記格納先アドレスを用いたコンテンツ格納先情報リクエストであると判定した場合で、かつ、上記更新判定手段が上記格納先アドレスによりその所在が示されるコンテンツ格納先情報を更新すると判定した場合、コンテンツ格納先情報取得手段が上記問い合わせを送信して、上記アドレスを取得し、上記コンテンツ格納先情報生成手段が当該アドレスに基づいてコンテンツ格納先情報を生成し、上記送信手段が、当該コンテンツ格納先情報を上記リクエストの送信元の装置に送信し、上記リクエスト判定手段が上記格納先アドレスを用いたコンテンツ格納先情報リクエストであると判定した場合で、かつ、上記更新判定手段が上記格納先アドレスによりその所在が示されるコンテンツ格納先情報を更新しないと判定した場合、上記送信手段が、上記格納先アドレスによりその所在が示されるコンテンツ格納先情報を上記リクエストの送信元の装置に送信することが好ましい。
【０５４５】
上記の構成によれば、上記リクエスト判定手段が上記格納先アドレスを用いたコンテンツ格納先情報リクエストであると判定し、かつ、上記更新判定手段が上記格納先アドレスによりその所在が示されるコンテンツ格納先情報を更新すると判定した場合、コンテンツ格納先情報取得手段が上記問い合わせを送信して、上記アドレスを取得し、上記コンテンツ格納先情報生成手段が当該アドレスに基づいてコンテンツ格納先情報を生成し、上記送信手段が、当該コンテンツ格納先情報を上記リクエストの送信元の装置に送信する。一方、上記リクエスト判定手段が上記格納先アドレスを用いたコンテンツ格納先情報リクエストであると判定し、かつ、上記更新判定手段が上記格納先アドレスによりその所在が示されるコンテンツ格納先情報を更新しないと判定した場合、上記送信手段が、上記格納先アドレスによりその所在が示されるコンテンツ格納先情報を上記リクエストの送信元の装置に送信する。
【０５４６】
すなわち、上記コンテンツ格納先情報取得手段は、上記リクエストされたコンテンツを有する他のコンテンツ配信装置のアドレスを取得する際に、上記記憶部に格納されているコンテンツ格納先情報を更新しない場合、上記記憶部に格納されているコンテンツ格納先情報からそのアドレスを取得する。一方、上記記憶部に格納されているコンテンツ格納先情報を更新する場合、上記問い合わせを送信し、上記リクエストされたコンテンツを有する他のコンテンツ配信装置のアドレスを取得する。
【０５４７】
ここで、上記更新判定手段が上記格納先アドレスによりその所在が示されるコンテンツ格納先情報を更新すると判定した場合とは、例えば、記憶部に格納されているコンテンツ格納先情報が古い場合や、上記リクエストされたコンテンツを示すコンテンツ識別情報を含むコンテンツ格納先情報が記憶部に格納されていない場合、つまり、以前に同じコンテンツを有する他のコンテンツ配信装置のアドレスを取得していない場合などである。
【０５４８】
そのため、記憶部に格納されているコンテンツ格納先情報を更新しない場合、以前に取得したアドレスを利用するという簡単な処理によって、上記リクエストされたコンテンツを有する他のコンテンツ配信装置のアドレスを取得することができる。よって、コンテンツ配信装置の処理負荷を軽減することができる。
【０５４９】
また、記憶部に格納されているコンテンツ格納先情報を更新することにより、コンテンツ配信装置は、コンテンツ再生装置に対して、精度の高い（正確な）情報を通知することができ、コンテンツ再生装置は、コンテンツの取得先の装置からコンテンツを取得できない等のエラーが発生することを抑制することができ、安定的にコンテンツを取得することができる。
【０５５０】
また、本発明に係るコンテンツ配信装置は、上記メタデータは、コンテンツを所定の時間間隔で分割して得られる単位毎に設定したコンテンツ格納先情報の所在を示す格納先アドレスを複数含むものであることが好ましい。
【０５５１】
上記の構成によれば、上記メタデータは、コンテンツを所定の時間間隔で分割して得られる単位毎に設定したコンテンツ格納先情報の所在を示す格納先アドレスを複数含むものである。そのため、コンテンツ配信装置は、コンテンツ再生装置に対して、例えば、コンテンツを所定の時間間隔で分割して得られる単位毎に、異なるコンテンツ格納先情報を通知することができる。
【０５５２】
よって、コンテンツ配信装置は、コンテンツ再生装置に対して、コンテンツの取得先の自由度をより大きくすることができる。従って、コンテンツ配信装置からのデータ送出に用いられるネットワークおよび当該コンテンツ配信装置に対する負荷をより分散することができる。
【０５５３】
また、本発明に係るコンテンツ配信装置は、上記コンテンツは、複数のメディアセグメントを含み、上記所定の時間間隔で分割されたコンテンツは、少なくとも１つのメディアセグメントを含むものであることが好ましい。
【０５５４】
上記の構成によれば、上記所定の時間間隔で分割されたコンテンツは、少なくとも１つのメディアセグメントを含むものである。よって、コンテンツの取得先の自由度を、メディアセグメント単位で管理することができる。
【０５５５】
また、本発明に係るコンテンツ配信装置は、上記メタデータは、上記コンテンツ格納先情報を複数含むコンテンツ格納先サーバリストまたは当該コンテンツ格納先サーバリストの所在を示す格納先アドレスを含むものであることが好ましい。
【０５５６】
上記の構成によれば、上記メタデータは、上記コンテンツ格納先情報を複数含むコンテンツ格納先サーバリストまたは当該コンテンツ格納先サーバリストの所在を示す格納先アドレスを含む。そのため、コンテンツ配信装置は、コンテンツ再生装置に対して、メタデータに対応するコンテンツを複数の他のコンテンツ配信装置の何れかから取得させることが可能になる。よって、他のコンテンツ配信装置からのデータ送出に用いられるネットワークおよび当該他のコンテンツ配信装置に対する負荷をより分散することができる。
【０５５７】
また、本発明に係るコンテンツ再生装置は、上記コンテンツ配信装置にメタデータリクエストを送信し、当該リクエストのレスポンスとして上記メタデータを受信し、受信したメタデータに従って、コンテンツを取得するコンテンツ再生装置であって、  上記受信したメタデータに含まれるコンテンツ格納先サーバリストを受信すると、または、上記受信したメタデータに含まれる格納先アドレスを用いたコンテンツ格納先情報リクエストを送信し、当該リクエストのレスポンスとしてコンテンツ格納先サーバリストを受信すると、受信したコンテンツ格納先サーバリストに含まれる何れかのコンテンツ格納先情報の示すアドレスの示す他のコンテンツ配信装置からコンテンツを取得するコンテンツ取得手段と、上記コンテンツ取得手段のコンテンツを取得する受信速度が、予め定めた受信速度よりも遅い場合、上記コンテンツを取得する取得先の他のコンテンツ配信装置を、コンテンツ格納先サーバリストに含まれる上記アドレスとは別のアドレスの示す他のコンテンツ配信装置に変更する取得先変更手段とを備えることを特徴としている。
【０５５８】
上記の構成によれば、上記コンテンツ取得手段は、受信したメタデータに基づいて、コンテンツ格納先サーバリストを受信すると、受信したコンテンツ格納先サーバリストに含まれる何れかのコンテンツ格納先情報の示すアドレスの示す他のコンテンツ配信装置からコンテンツを取得し、上記取得先変更手段は、上記コンテンツ取得手段のコンテンツを取得する受信速度が、予め定めた受信速度よりも遅い場合、上記コンテンツを取得する取得先の他のコンテンツ配信装置を、コンテンツ格納先サーバリストに含まれる上記アドレスとは別のアドレスの示す他のコンテンツ配信装置に変更する。
【０５５９】
そのため、コンテンツ再生装置は、コンテンツを取得する受信速度を予め定めた受信速度以上に保つことができ、大きな遅延を発生させることなく、コンテンツを安定的に取得することができる。
【０５６０】
また、コンテンツの取得に遅延が発生している場合、取得先である他のコンテンツ配信装置の処理量が増大しているか、もしくは、コンテンツ再生装置と取得先である他のコンテンツ配信装置との間のネットワークの通信状態が悪化していること等が考えられる。そのため、コンテンツ再生装置が、遅延の発生に応じて、現在のコンテンツの取得先の他のコンテンツ配信装置を、それとは異なる他のコンテンツ配信装置に切り替えることによって、取得先の他のコンテンツ配信装置、および、コンテンツを取得するコンテンツ再生装置と取得先の他のコンテンツ配信装置との間のネットワークの資源を有効に活用することができる。
【０５６１】
また、本発明に係るコンテンツ配信システムは、上記コンテンツ配信装置と、上記コンテンツ配信装置にコンテンツの送信をリクエストして、リクエストしたコンテンツを保持して、リクエストしたコンテンツをコンテンツ再生装置に転送する中継装置と、上記コンテンツ配信装置にコンテンツを要求するコンテンツリクエストを送信して、当該コンテンツ配信装置からコンテンツを取得するコンテンツ再生装置であって、上記コンテンツ配信装置にコンテンツのメタデータを要求するメタデータリクエストを送信して、当該コンテンツ配信装置からメタデータを受信し、受信したメタデータに基づいて、当該メタデータに対応するコンテンツを取得するコンテンツ再生装置とを含むことを特徴としている。
【０５６２】
上記の構成によれば、コンテンツ配信システムは、上記コンテンツ配信装置と同様の効果を奏する。
【０５６３】
なお、上記コンテンツ配信装置は、コンピュータによって実現してもよく、この場合には、コンピュータを上記コンテンツ配信装置の各手段として動作させることにより、上記コンテンツ配信装置をコンピュータにて実現させる制御プログラム、及びそれを記録したコンピュータ読み取り可能な記録媒体も本発明の範疇に入る。
【０５６４】
〔補足〕
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【０５６５】
最後に、サーバ２、プロキシ３およびクライアント４の各ブロック、特にサーバ制御部１４、プロキシ制御部２２およびクライアント制御部３２は、ハードウェアロジックによって構成してもよいし、次のようにＣＰＵを用いてソフトウェアによって実現してもよい。
【０５６６】
すなわち、サーバ２、プロキシ３およびクライアント４は、各機能を実現する制御プログラムの命令を実行するＣＰＵ（central processing unit）、上記プログラムを格納したＲＯＭ（read only memory）、上記プログラムを展開するＲＡＭ（random access memory）、上記プログラムおよび各種データを格納するメモリ等の記憶装置（記録媒体）などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアであるサーバ２、プロキシ３およびクライアント４の制御プログラムのプログラムコード（実行形式プログラム、中間コードプログラム、ソースプログラム）をコンピュータで読み取り可能に記録した記録媒体を、上記サーバ２、プロキシ３およびクライアント４に供給し、そのコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
【０５６７】
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー（登録商標）ディスク／ハードディスク等の磁気ディスクやＣＤ−ＲＯＭ／ＭＯ／ＭＤ／ＤＶＤ／ＣＤ−Ｒ等の光ディスクを含むディスク系、ＩＣカード（メモリカードを含む）／光カード等のカード系、あるいはマスクＲＯＭ／ＥＰＲＯＭ／ＥＥＰＲＯＭ／フラッシュＲＯＭ等の半導体メモリ系などを用いることができる。
【０５６８】
また、サーバ２、プロキシ３およびクライアント４を通信ネットワークと接続可能に構成し、上記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、ＬＡＮ、ＩＳＤＮ、ＶＡＮ、ＣＡＴＶ通信網、仮想専用網（virtual private network）、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、ＩＥＥＥ１３９４、ＵＳＢ、電力線搬送、ケーブルＴＶ回線、電話線、ＡＤＳＬ回線等の有線でも、ＩｒＤＡやリモコンのような赤外線、Ｂｌｕｅｔｏｏｔｈ（登録商標）、８０２．１１無線、ＨＤＲ、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。
【産業上の利用可能性】
【０５６９】
本発明は、コンテンツを再生するクライアントからの要求に応じて、サーバからクライアントにコンテンツを配信するコンテンツ配信システム、および、当該システムを構成するコンテンツ配信装置、中継装置、コンテンツ再生装置に利用することができる。
【符号の説明】
【０５７０】
１、１ａ、１ｂ、１ｃ    コンテンツ配信システム
２    サーバ（コンテンツ配信装置）
３    プロキシ（中継装置）
４    クライアント（コンテンツ再生装置、中継装置）
１５  レスポンス実行部（判定手段、コンテンツ送信手段、コンテンツ取得先指示手段、送信記録作成手段、リクエスト判定手段、送信手段）
１６  中継装置特定部（コンテンツ取得先指示手段、距離算出手段）
１７  コンテンツ格納先情報生成部（コンテンツ格納先情報生成手段）
１８  取得先特定部（コンテンツ格納先情報取得手段、コンテンツ格納先情報生成手段、更新判定手段）
３５  レスポンス／リクエスト実行部（コンテンツ取得手段）
３７  中継装置選択部（中継装置変更手段）
３８  取得先特定部（取得先変更手段）
【図１】
2012011450.tif 000003
【図２】
2012011450.tif 000004
【図３】
2012011450.tif 000005
【図４】
2012011450.tif 000006
【図５】
2012011450.tif 000007
【図６】
2012011450.tif 000008
【図７】
2012011450.tif 000009
【図８】
2012011450.tif 000010
【図９】
2012011450.tif 000011
【図１０】
2012011450.tif 000012
【図１１】
2012011450.tif 000013
【図１２】
2012011450.tif 000014
【図１３】
2012011450.tif 000015
【図１４】
2012011450.tif 000016
【図１５】
2012011450.tif 000017
【図１６】
2012011450.tif 000018
【図１７】
2012011450.tif 000019
【図１８】
2012011450.tif 000020
【図１９】
2012011450.tif 000021
【図２０】
2012011450.tif 000022
【図２１】
2012011450.tif 000023
【図２２】
2012011450.tif 000024
【図２３】
2012011450.tif 000025
【図２４】
2012011450.tif 000026
【図２５】
2012011450.tif 000027
【図２６】
2012011450.tif 000028
【図２７】
2012011450.tif 000029
【図２８】
2012011450.tif 000030
【図２９】
2012011450.tif 000031
【図３０】
2012011450.tif 000032
【図３１】
2012011450.tif 000033
【図３２】
2012011450.tif 000034
【図３３】
2012011450.tif 000035
【図３４】
2012011450.tif 000036
【図３５】
2012011450.tif 000037
【図３６】
2012011450.tif 000038
【図３７】
2012011450.tif 000039
【図３８】
2012011450.tif 000040
【図３９】
2012011450.tif 000041
【図４０】
2012011450.tif 000042
【図４１】
2012011450.tif 000043
【手続補正書】
【提出日】平成25年1月16日(2013.1.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンテンツを有するコンテンツ配信装置のアドレスを複数含むコンテンツ格納先リストを含むメタデータを受信し、受信したメタデータに従って、コンテンツを取得するコンテンツ再生装置であって、
上記受信したメタデータに含まれるコンテンツ格納先リストに含まれる何れかのアドレスの示すコンテンツ配信装置からコンテンツを取得するコンテンツ取得手段と、
上記コンテンツ取得手段がコンテンツを取得する取得先のコンテンツ配信装置を、上記コンテンツ格納先リストに含まれる上記アドレスとは別のアドレスの示すコンテンツ配信装置に変更する取得先変更手段とを備えることを特徴とするコンテンツ再生装置。
【請求項２】
上記取得先変更手段は、上記コンテンツ取得手段のコンテンツを取得する受信速度が、予め定めた受信速度よりも遅い場合に、取得先のコンテンツ配信装置を変更することを特徴とする請求項１に記載のコンテンツ再生装置。
【請求項３】
上記メタデータは、上記コンテンツを所定の時間間隔で分割したセグメントを有するコンテンツ配信装置のアドレスを複数含むセグメント格納先リストを含み、
上記コンテンツ取得手段は、上記セグメント格納先リストに含まれる何れかのアドレスの示すコンテンツ配信装置からセグメントを順次取得し、
上記取得先変更手段は、上記コンテンツ取得手段のセグメントを取得する受信速度が、予め定めた受信速度よりも遅い場合に、取得先のコンテンツ配信装置を変更することを特徴とする請求項１に記載のコンテンツ再生装置。
【請求項４】
コンテンツを有するコンテンツ配信装置のアドレスを複数含むコンテンツ格納先リストを含むメタデータを受信し、受信したメタデータに従って、コンテンツを取得するコンテンツ再生装置の制御方法であって、
上記受信したメタデータに含まれるコンテンツ格納先リストに含まれる何れかのアドレスの示すコンテンツ配信装置からコンテンツを取得するコンテンツ取得ステップと、
上記コンテンツ取得ステップにおいてコンテンツを取得する取得先のコンテンツ配信装置を、上記コンテンツ格納先リストに含まれる上記アドレスとは別のアドレスの示すコンテンツ配信装置に変更する取得先変更ステップとを含むことを特徴とするコンテンツ再生装置の制御方法。
【請求項５】
リクエストに応じて、当該リクエストの送信元にコンテンツを送信するコンテンツ配信装置であって、
上記リクエストの送信元が、リクエストしたコンテンツを保持して、リクエストしたコンテンツをコンテンツ再生装置に転送する中継装置であるか、リクエストしたコンテンツを再生するコンテンツ再生装置であるか、を判定する判定手段であって、上記リクエストの送信元が中継装置であると判定した場合、さらに、当該中継装置の保持する上記コンテンツが最新のものであるか否かを判定する判定手段と、
上記判定手段が上記リクエストの送信元が中継装置であると判定した場合であって、当該中継装置の保持するコンテンツが最新のものでないと判定した場合、当該リクエストに応じて、リクエストされたコンテンツを、当該リクエストの送信元である中継装置に送信し、上記判定手段が上記リクエストの送信元が中継装置であると判定した場合であって、当該中継装置の保持するコンテンツが最新のものであると判定した場合、当該中継装置が保持するコンテンツをコンテンツ再生装置に転送するように当該中継装置に指示するコンテンツ送信手段と、
上記コンテンツ送信手段が送信したコンテンツを識別するコンテンツ識別情報と、その送信先である中継装置またはその転送先であるコンテンツ再生装置のアドレスとを対応付けて、コンテンツ格納先情報を生成するコンテンツ格納先情報生成手段と、
上記判定手段が上記リクエストの送信元がコンテンツ再生装置であると判定した場合、当該リクエストに応じて、上記コンテンツ格納先情報において、リクエストされたコンテンツを示すコンテンツ識別情報に対応付けられたアドレスの示す中継装置またはコンテンツ再生装置から当該コンテンツを取得するように、当該リクエストの送信元であるコンテンツ再生装置に指示するコンテンツ取得先指示手段と、を備えることを特徴とするコンテンツ配信装置。
【請求項６】
リクエストに応じて、当該リクエストの送信元にコンテンツを送信するコンテンツ配信装置の制御方法であって、
上記リクエストの送信元が、リクエストしたコンテンツを保持して、リクエストしたコンテンツをコンテンツ再生装置に転送する中継装置であるか、リクエストしたコンテンツを再生するコンテンツ再生装置であるか、を判定する判定ステップであって、上記リクエストの送信元が中継装置であると判定した場合、さらに、当該中継装置の保持するコンテンツが最新のものであるか否かを判定する判定ステップと、
上記判定ステップにおいて上記リクエストの送信元が中継装置であると判定された場合であって、当該中継装置の保持するコンテンツが最新のものでないと判定された場合、当該リクエストに応じて、リクエストされたコンテンツを、当該リクエストの送信元である中継装置に送信し、上記判定ステップにおいて上記リクエストの送信元が中継装置であると判定された場合であって、当該中継装置の保持するコンテンツが最新のものであると判定された場合、当該中継装置が保持するコンテンツをコンテンツ再生装置に転送するように当該中継装置に指示するコンテンツ送信ステップと、
上記コンテンツ送信ステップにおいて送信したコンテンツを示すコンテンツ識別情報と、その送信先である中継装置またはその転送先であるコンテンツ再生装置のアドレスとを対応付けて、コンテンツ格納先情報を生成するコンテンツ格納先情報生成ステップと、
上記判定ステップにおいて上記リクエストの送信元がコンテンツ再生装置であると判定した場合、当該リクエストに応じて、上記コンテンツ格納先情報において、リクエストされたコンテンツを示すコンテンツ識別情報に対応付けられたアドレスの示す中継装置またはコンテンツ再生装置から当該コンテンツを取得するように、当該リクエストの送信元であるコンテンツ再生装置に指示するコンテンツ取得先指示ステップと、を含むことを特徴とするコンテンツ配信装置の制御方法。
【請求項７】
リクエストに応じて、当該リクエストの送信元にコンテンツを送信するコンテンツ配信装置であって、
上記リクエストの送信元が、リクエストしたコンテンツを保持して、リクエストしたコンテンツをコンテンツ再生装置に転送する中継装置であるか、リクエストしたコンテンツを再生するコンテンツ再生装置であるか、を判定する判定手段と、
上記判定手段が上記リクエストの送信元がコンテンツ再生装置であると判定した場合、当該リクエストに応じて、予め定められた他のコンテンツ配信装置のアドレスと、当該他のコンテンツ配信装置が有するコンテンツとが対応付けられたコンテンツ格納先情報を参照し、当該リクエストされたコンテンツを有する他のコンテンツ配信装置のアドレスを１または複数含むコンテンツ格納先リストを生成するコンテンツ格納先リスト生成手段と、
上記コンテンツ格納先リスト生成手段が生成したコンテンツ格納先リストに含まれるアドレスの示す他のコンテンツ配信装置の何れかからコンテンツを取得するように、上記リクエストの送信元であるコンテンツ再生装置に指示するコンテンツ取得先指示手段と、を備え、
上記コンテンツ格納先リスト生成手段は、コンテンツ格納先リストを生成できなかった場合、または、上記コンテンツ格納先情報が古い場合、上記予め定められた他のコンテンツ配信装置に問い合わせて、上記コンテンツ格納先情報を更新し、更新したコンテンツ格納先情報に基づいて、上記コンテンツ格納先リストを生成することを特徴とするコンテンツ配信装置。
【請求項８】
リクエストに応じて、当該リクエストの送信元にコンテンツを送信するコンテンツ配信装置の制御方法であって、
上記リクエストの送信元が、リクエストしたコンテンツを保持して、リクエストしたコンテンツをコンテンツ再生装置に転送する中継装置であるか、リクエストしたコンテンツを再生するコンテンツ再生装置であるか、を判定する判定ステップと、
上記判定ステップにおいて上記リクエストの送信元がコンテンツ再生装置であると判定された場合、当該リクエストに応じて、予め定められた他のコンテンツ配信装置のアドレスと、当該他のコンテンツ配信装置が有するコンテンツとが対応付けられたコンテンツ格納先情報を参照し、当該リクエストされたコンテンツを有する他のコンテンツ配信装置のアドレスを１または複数含むコンテンツ格納先リストを生成するコンテンツ格納先リスト生成ステップと、
上記コンテンツ格納先リスト生成ステップにおいて生成されたコンテンツ格納先リストに含まれるアドレスの示す他のコンテンツ配信装置の何れかからコンテンツを取得するように、上記リクエストの送信元であるコンテンツ再生装置に指示するコンテンツ取得先指示ステップと、を含み、
上記コンテンツ格納先リスト生成ステップにおいて、コンテンツ格納先リストを生成できなかった場合、または、上記コンテンツ格納先情報が古い場合、上記予め定められた他のコンテンツ配信装置に問い合わせて、上記コンテンツ格納先情報を更新し、更新したコンテンツ格納先情報に基づいて、上記コンテンツ格納先リストを生成することを特徴とするコンテンツ配信装置の制御方法。
【国際調査報告】
2012011450.tif 000044
2012011450.tif 000045