(57)【特許請求の範囲】
【請求項１】
コンピュータに、
機器の識別情報、取得対象のコンテンツの識別情報、及び前記機器への前記取得対象のコンテンツの蓄積順を示すシーケンス情報を含むコンテンツ取得要求を受け付け、
他機器の識別情報と前記他機器で保持する最古のコンテンツに対応するシーケンス情報とを対応付けた他機器保持情報を参照し、前記コンテンツ取得要求に含まれる前記機器の識別情報と対応付けられたシーケンス情報が示す蓄積順が、前記コンテンツ取得要求に含まれるシーケンス情報が示す蓄積順より古い場合には、前記コンテンツ取得要求に含まれる機器の識別情報が示す機器に前記取得対象のコンテンツを要求し、前記コンテンツ取得要求に含まれるシーケンス情報が示す蓄積順より新しい場合には、前記取得対象のコンテンツを保持する機器を探索し、探索した機器に前記取得対象のコンテンツを要求し、
要求したコンテンツと共に取得した該コンテンツの取得元である機器の識別情報と、該機器で保持する最古のコンテンツに対応するシーケンス情報とを対応付けて、前記他機器保持情報として記憶し、
取得したコンテンツの識別情報、前記コンテンツ取得要求を受け付けた機器の識別情報、及び前記コンテンツ取得要求を受け付けた機器への前記取得したコンテンツの蓄積順を示すシーケンス情報を、前記コンテンツ取得要求の要求元へ応答する
処理を実行させるためのコンテンツ取得プログラム。
【請求項２】
コンテンツ取得要求の要求元が移動後に送信するコンテンツ取得要求に、前記要求元が移動前にコンテンツ取得要求を送信した機器から受信した前記コンテンツの識別情報、前記機器の識別情報、及び前記シーケンス情報が含まれる請求項１記載のコンテンツ取得プログラム。
【請求項３】
要求したコンテンツと共に取得した前記機器の識別情報と前記シーケンス情報とを対応付けて前記他機器保持情報として記憶する際、今回取得したシーケンス情報の前に最古のコンテンツに対応するシーケンス情報として記憶されていたシーケンス情報を前回情報、今回取得したシーケンス情報を最古情報として記憶し、
前記前回情報が示す蓄積順が、前記最古情報が示す蓄積順より古い場合には、前記コンテンツ取得要求に含まれるシーケンス情報が示す蓄積順が、前記最古情報が示す蓄積順以上、かつ前記前回情報が示す蓄積順未満の場合に、前記コンテンツ取得要求に含まれる機器の識別情報が示す機器に前記取得対象のコンテンツを要求する
請求項１または請求項２記載のコンテンツ取得プログラム。
【請求項４】
前記コンピュータに、蓄積された複数のコンテンツの容量の合計が予め定めた閾値以上となった場合に、前記複数のコンテンツの容量が前記閾値未満となるまで、前記シーケンス情報が示す蓄積順が古いコンテンツから順に削除することをさらに含む処理を実行させるための請求項１〜請求項３のいずれか１項記載のコンテンツ取得プログラム。
【請求項５】
機器の識別情報、取得対象のコンテンツの識別情報、及び前記機器への前記取得対象のコンテンツの蓄積順を示すシーケンス情報を含むコンテンツ取得要求を受け付ける受付部と、
他機器の識別情報と前記他機器で保持する最古のコンテンツに対応するシーケンス情報とを対応付けた他機器保持情報を参照し、前記コンテンツ取得要求に含まれる前記機器の識別情報と対応付けられたシーケンス情報が示す蓄積順が、前記コンテンツ取得要求に含まれるシーケンス情報が示す蓄積順より古い場合には、前記コンテンツ取得要求に含まれる機器の識別情報が示す機器に前記取得対象のコンテンツを要求し、前記コンテンツ取得要求に含まれるシーケンス情報が示す蓄積順より新しい場合には、前記取得対象のコンテンツを保持する機器を探索し、探索した機器に前記取得対象のコンテンツを要求する要求部と、
要求したコンテンツと共に取得した該コンテンツの取得元である機器の識別情報と、該機器で保持する最古のコンテンツに対応するシーケンス情報とを対応付けて、前記他機器保持情報として記憶する記憶制御部と、
取得したコンテンツの識別情報、前記コンテンツ取得要求を受け付けた機器の識別情報、及び前記コンテンツ取得要求を受け付けた機器への前記取得したコンテンツの蓄積順を示すシーケンス情報を、前記コンテンツ取得要求の要求元へ応答する応答部と、
を含むコンテンツ取得装置。
【請求項６】
コンピュータに、
機器の識別情報、取得対象のコンテンツの識別情報、及び前記機器への前記取得対象のコンテンツの蓄積順を示すシーケンス情報を含むコンテンツ取得要求を受け付け、
他機器の識別情報と前記他機器で保持する最古のコンテンツに対応するシーケンス情報とを対応付けた他機器保持情報を参照し、前記コンテンツ取得要求に含まれる前記機器の識別情報と対応付けられたシーケンス情報が示す蓄積順が、前記コンテンツ取得要求に含まれるシーケンス情報が示す蓄積順より古い場合には、前記コンテンツ取得要求に含まれる機器の識別情報が示す機器に前記取得対象のコンテンツを要求し、前記コンテンツ取得要求に含まれるシーケンス情報が示す蓄積順より新しい場合には、前記取得対象のコンテンツを保持する機器を探索し、探索した機器に前記取得対象のコンテンツを要求し、
要求したコンテンツと共に取得した該コンテンツの取得元である機器の識別情報と、該機器で保持する最古のコンテンツに対応するシーケンス情報とを対応付けて、前記他機器保持情報として記憶し、
取得したコンテンツの識別情報、前記コンテンツ取得要求を受け付けた機器の識別情報、及び前記コンテンツ取得要求を受け付けた機器への前記取得したコンテンツの蓄積順を示すシーケンス情報を、前記コンテンツ取得要求の要求元へ応答する
処理を実行させるためのコンテンツ取得方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンテンツ取得プログラム、コンテンツ取得装置、及びコンテンツ取得方法に関する。
【背景技術】
【０００２】
近年、ＳＮＳ（Social Networking Service）など、特定のユーザ間でコンテンツを共有するサービスが増えている。また、端末の高機能化により高画質なコンテンツが作られるようになった結果、共有されるコンテンツのサイズが肥大化し、コンテンツのアップロードやダウンロードにかかる待ち時間が長くなる傾向にある。
【０００３】
コンテンツのアップロードやダウンロードにかかる待ち時間を短くする手法として、キャッシュサーバを用いた手法が広く利用されている。例えば、あるキャッシュサーバの配下にいる不特定多数のユーザが参照するコンテンツを対象に、参照回数の多いコンテンツをそのキャッシュサーバに配備しておく。これにより、そのキャッシュサーバの配下のユーザは、コンテンツのダウンロードにかかる時間を短縮することができる。
【０００４】
また、コンテンツの配信に関する技術として、現用系及び待機系コンテンツサーバを用意するマルチキャスト配信方法が提案されている。この方法では、現用系ではマルチキャストコンテンツの配信を行い、待機系では、当該マルチキャストグループに参加し、現用系コンテンツサーバが送出するマルチキャストパケットを受信し、現用系コンテンツサーバの配信状況を監視する。また、コンテンツ毎に、コンテンツの配信終了情報（コンテンツ時間長、シーケンス番号情報、終了絶対時刻情報）が登録されている。この配信終了情報を元に、コンテンツの配信終了予定以前に、現用系コンテンツサーバからマルチキャストパケットが到着しなくなったことを契機とし、待機系コンテンツサーバにて、当該コンテンツのマルチキャスト配信を開始する。
【０００５】
また、大容量ファイルの送信に関する以下のような技術も提案されている。例えば、統計情報を記憶する統計情報記憶手段と、ファイルを記憶するファイル記憶手段と、設定ファイル又は選択規則に基づいて、制御パス及びデータパスを選択するパス選択手段とを含むファイル送信装置が提案されている。この装置は、さらに、制御メッセージを処理する制御メッセージ処理手段と、ファイルの分割及びシーケンス番号の付与を行うファイル管理手段と、ファイルを送信するファイル送信手段と、ファイルのＩＰ伝送処理を行うＩＰ伝送手段とを備える。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−３６６８１号公報
【特許文献２】特開２０１０−６７０１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
キャッシュサーバにコンテンツを配備しておく技術では、キャッシュサーバの各々が、コンテンツのマスタを管理するコンテンツサーバからコンテンツを取得することが想定される。しかし、多数のキャッシュサーバがコンテンツサーバにアクセスすることで、コンテンツサーバの負荷が高くなり、結果、キャッシュサーバにコンテンツが配備されるまでに時間がかかってしまうという問題がある。
【０００８】
一方、既にコンテンツが配備されている他のキャッシュサーバからコンテンツを取得することが考えられる。しかし、キャッシュサーバでは、限られた資源を有効に利用するため、古いコンテンツを順次削除するようになっており、キャッシュサーバが現在どのコンテンツを保持しているか分からない場合がある。従って、既にコンテンツが削除されたキャッシュサーバに対してコンテンツの要求を行った場合には、そのコンテンツの要求は無駄になってしまう。
【０００９】
本発明は、一つの側面として、不要なコンテンツの要求を削減することを目的とする。
【課題を解決するための手段】
【００１０】
一つの態様では、機器の識別情報、取得対象のコンテンツの識別情報、及び前記機器への前記取得対象のコンテンツの蓄積順を示すシーケンス情報を含むコンテンツ取得要求を受け付ける。他機器の識別情報と前記他機器で保持する最古のコンテンツに対応するシーケンス情報とを対応付けた他機器保持情報を参照し、前記取得対象のコンテンツを要求する。要求先は、コンテンツ取得要求に含まれる前記機器の識別情報と対応付けられたシーケンス情報が示す蓄積順が、コンテンツ取得要求に含まれるシーケンス情報が示す蓄積順より古い場合には、前記コンテンツ取得要求に含まれる機器の識別情報が示す機器とする。また、前記コンテンツ取得要求に含まれる前記機器の識別情報と対応付けられたシーケンス情報が示す蓄積順が、前記コンテンツ取得要求に含まれるシーケンス情報が示す蓄積順より新しい場合には、前記取得対象のコンテンツを保持する機器を探索する。そして、探索した機器に前記取得対象のコンテンツを要求する。また、要求したコンテンツと共に取得した該コンテンツの取得元である機器の識別情報と、該機器で保持する最古のコンテンツに対応するシーケンス情報とを対応付けて、前記他機器保持情報として記憶する。そして、取得したコンテンツの識別情報、前記コンテンツ取得要求を受け付けた機器の識別情報、及び前記コンテンツ取得要求を受け付けた機器への前記取得したコンテンツの蓄積順を示すシーケンス情報を、前記コンテンツ取得要求の要求元へ応答する。
【発明の効果】
【００１１】
一つの側面として、不要なコンテンツの要求を削減することができる、という効果を有する。
【図面の簡単な説明】
【００１２】
【図１】コンテンツ取得システムの概略構成を示すブロック図である。
【図２】コンテンツ管理装置の概略構成を示すブロック図である。
【図３】コンテンツリストの一例を示す図である。
【図４】コンテンツ位置リストの一例を示す図である。
【図５】キャッシュサーバ及び記憶装置の概略構成を示す機能ブロック図である。
【図６】速度リストの一例を示す図である。
【図７】グループ登録を説明するための図である。
【図８】グループ登録を説明するための図である。
【図９】コンテンツを取得するキャッシュサーバの選択を説明するための図である。
【図１０】移動元のキャッシュサーバ及び移動先のキャッシュサーバに対するグループ登録を説明するための図である。
【図１１】移動元のキャッシュサーバ及び移動先のキャッシュサーバに対するグループ登録を説明するための図である。
【図１２】他ＣＳ保持リストの一例を示す図である。
【図１３】シーケンス番号によるコンテンツの保持状況の判定を説明するための図である。
【図１４】シーケンス番号によるコンテンツの保持状況の判定を説明するための図である。
【図１５】コンテンツ管理リストの一例を示す図である。
【図１６】キャッシュサーバとして機能するコンピュータの概略構成を示すブロック図である。
【図１７】グループ登録受信時処理の一例を示すフローチャートである。
【図１８】コンテンツ取得後処理の一例を示すフローチャートである。
【図１９】コンテンツ要求受信時処理の一例を示すフローチャートである。
【図２０】コンテンツ取得システムにおける処理の一例を示すシーケンス図である。
【図２１】コンテンツ取得システムにおける処理の一例を示すシーケンス図である。
【図２２】コンテンツ取得システムにおける処理の一例を示すシーケンス図である。
【図２３】コンテンツ管理リストの他の例を示す図である。
【図２４】他ＣＳ保持リストの他の例を示す図である。
【図２５】コンテンツ管理リストの他の例を示す図である。
【図２６】他ＣＳ保持リストの他の例を示す図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照して本発明に係る実施形態の一例を詳細に説明する。本実施形態では、複数のユーザが所属するグループで共有して参照されるコンテンツを、ユーザの近隣のキャッシュサーバに事前配備するコンテンツ取得システムに、本発明を適用した場合について説明する。より具体的には、本実施形態のコンテンツ取得システムは、ユーザからのグループ登録（Ｓｕｂｓｃｒｉｂｅ）を受けたキャッシュサーバに、ユーザからのコンテンツ要求に先立って、ユーザが所属するグループで共有のコンテンツを事前配備するシステムである。
【００１４】
図１に示すように、本実施形態に係るコンテンツ取得システム１０は、コンテンツ管理装置４０と、複数のキャッシュサーバ（ＣＳ）２０１〜２０６と、複数の記憶装置３０１〜３０６と、複数のユーザ端末６０１〜６０４とを含む。コンテンツ管理装置４０は、広域ネットワーク７００に接続されている。また、広域ネットワーク７００は、ローカルネットワーク７０１、７０２、７０３の各々と接続されている。なお、一般に、ローカルネットワークに設けられる中継装置の数より、広域ネットワークに設けられる中継装置の数の方が多い。すなわち、ローカルネットワーク内での通信に比べ、広域ネットワークを介したローカルネットワーク間の通信の方が、経由する中継装置の数が多くなるため、通信コストが大きい。
【００１５】
また、図１の例では、キャッシュサーバ２０１〜２０６の各々と、記憶装置３０１〜３０６の各々とは、１対１で接続されている。また、キャッシュサーバ２０１、２０２は、ローカルネットワーク７０１に接続され、キャッシュサーバ２０３、２０４は、ローカルネットワーク７０２に接続され、キャッシュサーバ２０５、２０６は、ローカルネットワーク７０３に接続されている。
【００１６】
なお、キャッシュサーバ２０１〜２０６の各々の構成は同様であるため、以下では、キャッシュサーバ２０１〜２０６を区別することなく説明する場合には、「キャッシュサーバ２０ｎ」と表記する。また、記憶装置３０１〜３０６の各々の構成は同様であるため、以下では、記憶装置３０１〜３０６を区別することなく説明する場合には、「記憶装置３０ｎ」と表記する。
【００１７】
また、図１の例では、ユーザ端末６０１は、ローカルネットワーク７０１に接続され、ユーザ端末６０２は、ローカルネットワーク７０２に接続され、ユーザ端末６０３、６０４は、ローカルネットワーク７０３に接続されている。ただし、ユーザ端末６０１〜６０４の各々は、携帯電話、スマートフォン、タブレット端末、ノート型パーソナルコンピュータ等の可搬型の端末であり、ローカルネットワーク７０１、７０２、７０３のいずれにも接続可能である。以下では、ユーザ端末６０１〜６０４を区別することなく説明する場合には、「ユーザ端末６０ｎ」と表記する。
【００１８】
なお、コンテンツ取得システム１０のネットワーク構成は図１の例に限定されない。また、コンテンツ取得システム１０に含まれるキャッシュサーバ２０ｎの数、記憶装置３０ｎの数、及びユーザ端末６０ｎの数も図１の例に限定されない。
【００１９】
コンテンツ管理装置４０は、図２に示すように、制御部４１と、コンテンツ記憶部４２と、コンテンツリスト４３と、コンテンツ位置リスト４４とを含む。
【００２０】
コンテンツ記憶部４２には、ユーザに配信するための複数のコンテンツが記憶される。コンテンツは、例えば画像データ、映像データ、音楽データ、テキストデータ等である。
【００２１】
制御部４１は、過去にユーザにより参照されたコンテンツの履歴に基づいて、同じコンテンツを参照するユーザのグループを抽出する。そして、制御部４１は、グループ毎に、そのグループに所属するユーザが参照する同じコンテンツを、そのグループにおける共有のコンテンツとして特定し、グループ毎の共有のコンテンツの情報を登録したコンテンツリストを作成する。
【００２２】
図３に、コンテンツリスト４３の一例を示す。図３の例では、グループ毎に、そのグループの識別情報であるグループＩＤと、そのグループの共有のコンテンツの識別情報であるコンテンツＩＤと、その共有のコンテンツのサイズとが対応付けられている。すなわち、図３に示すコンテンツリスト４３の＜Ｇｒ１，ａｂｃ，５０Ｍｂ＞というエントリは、「グループＩＤ＝Ｇｒ１のグループは、ファイルサイズが５０ＭｂのコンテンツＩＤ＝ａｂｃのコンテンツを共有で参照する」という意味を示す。制御部４１は、作成したコンテンツリスト４３をコンテンツ管理装置４０の所定の記憶領域に記憶する。なお、以下では、グループＩＤ＝Ｇｒｎのグループを「グループＧｒｎ」と表記し、コンテンツＩＤ＝ｎのコンテンツを「コンテンツｎ」と表記する。
【００２３】
また、制御部４１は、コンテンツ記憶部４２に記憶された複数のコンテンツの各々を、キャッシュサーバ２０ｎのいずれかに配備する。１つのコンテンツを１つのキャッシュサーバに配備してもよいし、複数のキャッシュサーバに配備してもよい。ここで、キャッシュサーバ２０ｎへのコンテンツの配備とは、キャッシュサーバ２０ｎに対応する記憶装置３０ｎのコンテンツ記憶部３４（詳細は後述）に、コンテンツを記憶することである。
【００２４】
また、制御部４１は、どのコンテンツをどのキャッシュサーバ２０ｎに配備したかを示す情報、すなわち各コンテンツの位置を示すコンテンツ位置リストを作成する。図４に、コンテンツ位置リスト４４の一例を示す。図４の例では、コンテンツのコンテンツＩＤと、そのコンテンツが配備されたキャッシュサーバの識別情報であるキャッシュサーバＩＤ（ＣＳ−ＩＤ）とが対応付けられている。例えば、図４に示すコンテンツ位置リスト４４は、＜ａｂｃ，ＣＳ２０１＞というエントリを含む。このエントリは、「コンテンツａｂｃは、キャッシュサーバ２０１に保持されている」ことを意味する。制御部４１は、作成したコンテンツ位置リスト４４を、コンテンツ管理装置４０の所定の記憶領域に記憶する。なお、本実施形態では、キャッシュサーバ２０ｎのＣＳ−ＩＤを「ＣＳ２０ｎ」としている。
【００２５】
また、制御部４１は、後述する処理により、各キャッシュサーバ２０ｎへのコンテンツの配備状況に変更が生じた場合には、各キャッシュサーバ２０ｎからその情報を取得する。そして、制御部４１は、取得した情報に基づいて、コンテンツ位置リスト４４を更新する。
【００２６】
また、制御部４１は、キャッシュサーバ２０ｎからのコンテンツの位置の問い合わせに応答する。具体的には、制御部４１は、キャッシュサーバ２０ｎからグループＩＤを受信すると、コンテンツリスト４３から、受信したグループＩＤに対応するコンテンツＩＤ及びそのコンテンツのサイズを取得する。そして、制御部４１は、コンテンツ位置リスト４４を参照して、取得したコンテンツＩＤに対応するＣＳ−ＩＤを全て取得し、コンテンツＩＤ及びサイズと共に、キャッシュサーバ２０ｎに返送する。
【００２７】
次に、キャッシュサーバ２０ｎ及び記憶装置３０ｎについて詳述する。図５に示すように、記憶装置３０ｎには、速度リスト３１と、他ＣＳ保持リスト３２と、コンテンツ管理リスト３３とが記憶される。また、記憶装置３０ｎは、コンテンツ記憶部３４を有する。
【００２８】
速度リスト３１は、記憶装置３０ｎに対応するキャッシュサーバ２０ｎと、他のキャッシュサーバ２０ｎの各々との間の通信状況を示す情報が登録されるリストである。図６に、一例として、キャッシュサーバ２０４の速度リスト３１を示す。図６の例では、他のキャッシュサーバ２０ｎのＣＳ−ＩＤと、他のキャッシュサーバ２０ｎとの間の単位時間当たりのデータ転送量で表されるスループット（Ｍｂｐｓ）とが対応付けられている。すなわち、図６に示すキャッシュサーバ２０４が保持する速度リスト３１の＜ＣＳ２０１，２Ｍｂｐｓ＞というエントリは、「キャッシュサーバ２０４とキャッシュサーバ２０１との間のスループットは２Ｍｂｐｓである」という意味を示す。
【００２９】
速度リスト３１には、他のキャッシュサーバ２０ｎの数だけエントリが登録される。また、速度リスト３１に登録されるスループットの値は、その速度リスト３１を保持しているキャッシュサーバ２０ｎからみたスループットであり、それぞれのキャッシュサーバ２０ｎが保持する速度リスト３１の値は、キャッシュサーバ２０ｎ毎に異なる。なお、「キャッシュサーバ２０ｎが保持する速度リスト３１」とは、キャッシュサーバ２０ｎに対応する記憶装置３０ｎに記憶された速度リスト３１である。
【００３０】
コンテンツ記憶部３４には、コンテンツ管理装置４０、または他のキャッシュサーバ２０ｎから取得したコンテンツが記憶される。
【００３１】
他ＣＳ保持リスト３２及びコンテンツ管理リスト３３については後述する。
【００３２】
キャッシュサーバ２０ｎは、グループ情報受付部２１と、選択部２２と、コンテンツ取得部２３と、管理部２４と、コンテンツ応答部２５とを含む。なお、グループ情報受付部２１は、本発明の受付部及び応答部の一例である。また、選択部２２及びコンテンツ取得部２３は、本発明の要求部の一例である。また、管理部２４は、本発明の記憶制御部及び削除部の一例である。
【００３３】
グループ情報受付部２１は、自装置の配下に付いたユーザ端末６０ｎから、グループ情報を受け付ける。例えば、図７に示すように、キャッシュサーバ２０ｎの物理的な位置に応じて、各キャッシュサーバ２０ｎが担当する領域を定めておく。そして、あるキャッシュサーバ２０ｎの領域において、ユーザがユーザ端末６０ｎを操作することにより、その領域に対応するキャッシュサーバ２０ｎにグループ登録（Ｓｂｓｃｒｉｂｅ）が行われる。本実施形態では、ユーザ端末６０ｎが存在する領域に対応するキャッシュサーバ２０ｎを、ユーザ端末６０ｎにとっての近隣キャッシュサーバという。グループ登録は、例えば、ユーザ端末６０ｎで対象のアプリケーションを起動した場合などに、ユーザが所属するグループのグループ情報を含むメッセージを、近隣キャッシュサーバに送信することにより行われる。本実施形態では、ユーザ端末６０ｎが近隣キャッシュサーバにグループ登録した状態を、ユーザ端末６０ｎがそのキャッシュサーバ２０ｎの配下に付いた、という。
【００３４】
例えば、図７の例では、キャッシュサーバ２０１の領域で操作されるユーザ端末６０１は、キャッシュサーバ２０１の配下に付く。また、キャッシュサーバ２０４の配下に付いていたユーザ端末６０２が移動することにより、キャッシュサーバ２０５の領域に入る場合もある。この場合、ユーザ端末６０２は、キャッシュサーバ２０４の配下を離れ、キャッシュサーバ２０５の配下に付く。
【００３５】
ここで、ユーザ端末６０ｎから送信されたグループ情報が、近隣キャッシュサーバに届く仕組みについて説明する。例えば、ユーザ端末６０ｎで起動されるアプリケーション（以下、「端末アプリ」という）が通常行うＤＮＳ（Domain Name Service）問い合わせを利用することができる。端末アプリは通常、端末アプリに予め設定されている接続先ＵＲＬをキーにＤＮＳ問い合わせを行い、接続先のＩＰアドレスを得て、そのＩＰアドレス宛にメッセージを送信する。
【００３６】
例えば、図８に示すように、グループ登録の際も、ユーザ端末６０１は、まずコンテンツ管理装置４０のＵＲＬをキーにＤＮＳサーバに問い合わせを行う（図８中の（１））。ＤＮＳサーバでは、アクセスポイント（ＡＰ）の識別情報と、そのＡＰに近いキャッシュサーバのＩＰアドレスとを対応付けて保持しておく。そして、ＤＮＳサーバは、ユーザ端末６０１の接続ＡＰに近いキャッシュサーバ２０１のＩＰアドレス（１０．２５．１．１０）を返す（図８中の（２））。これにより、ユーザ端末６０１の近隣キャッシュサーバ２０１にグループ登録がされる（図８中の（３））。
【００３７】
なお、ＤＮＳサーバが、ユーザ端末の接続ＡＰを把握する方法としては、例えば、ユーザ端末に割り当てるＩＰアドレスの範囲を、接続ＡＰ毎に決めておくことで、送信元ＩＰアドレスから接続ＡＰを知ることができる。
【００３８】
また、図７に示したユーザ端末６０２のように、ユーザ端末６０ｎが移動した場合には、端末アプリを既に起動した状態で、新たな近隣キャッシュサーバに対してグループ登録を行う必要がある。この方法としては、例えば、端末アプリで、接続ＡＰのＩＤ（基地局ＩＤや無線ＢＳＳＩＤ（(Basic Service Set ID、通常は接続ＡＰのＭＡＣアドレス））を監視する。そして、接続ＡＰのＩＤ変更時に、グループ情報を近隣キャッシュサーバに送信する。
【００３９】
なお、本実施形態では、グループ情報受付部２１は、グループ情報として、グループの識別情報であるグループＩＤを含むメッセージを、ユーザ端末６０ｎから受信する場合について説明するが、これに限定されない。例えば、グループ情報受付部２１は、ユーザの識別情報（例えば、ユーザＩＤ）を受信してもよい。この場合、グループ情報受付部２１は、ユーザの識別情報とグループ情報との対応リストを予め保持しておき、受信したユーザの識別情報と、この対応リストとから、そのユーザのグループ情報を取得することができる。
【００４０】
選択部２２は、グループ情報受付部２１で受け付けたグループＩＤに基づいて、そのグループＩＤが示すグループで共有のコンテンツを、他のいずれのキャッシュサーバ２０ｎから取得するかを選択する。選択部２２は、できるだけ早くコンテンツを取得完了できるキャッシュサーバ２０ｎを選択する。
【００４１】
具体的には、選択部２２は、グループ情報受付部２１で受け付けたグループＩＤをコンテンツ管理装置４０に送信することにより、そのグループＩＤが示すグループで共有のコンテンツの位置を問い合わせる。選択部２２は、コンテンツ管理装置４０から返送される、グループＩＤに対応した共有のコンテンツのコンテンツＩＤ、コンテンツのサイズ、及びコンテンツの位置（ＣＳ−ＩＤ）を受信する。
【００４２】
例えば、図９に示すように、ユーザ端末６０２がキャッシュサーバ２０４へグループ登録することにより、キャッシュサーバ２０４のグループ情報受付部２１が、グループＩＤ＝Ｇｒ１を受け付けたとする（図９中の（１））。キャッシュサーバ２０４の選択部２２は、グループＩＤ＝Ｇｒ１をコンテンツ管理装置４０へ送信して、グループＧｒ１の共有コンテンツをどのキャッシュサーバ２０ｎが保持しているかを問い合わせる。
【００４３】
コンテンツ管理装置４０では、制御部４１が、例えば図３に示すコンテンツリスト４３から、グループＩＤ＝Ｇｒ１をキーにして、コンテンツＩＤ＝ａｂｃ、及びそのコンテンツのサイズ＝５０Ｍｂを取得する。また、制御部４１は、例えば図４に示すコンテンツ位置リスト４４から、取得したコンテンツＩＤをキーにして、コンテンツａｂｃの位置として、キャッシュサーバ２０１及びキャッシュサーバ２０３のＣＳ−ＩＤ＝ＣＳ２０１及びＣＳ２０３を取得する。制御部４１は、コンテンツリスト４３から取得したコンテンツＩＤ及びコンテンツのサイズと、コンテンツ位置リスト４４から取得したコンテンツの位置（ＣＳ−ＩＤ）とを、キャッシュサーバ２０４に返送する。例えば、キャッシュサーバ２０４に返送される情報は、＜ａｂｃ，５０Ｍｂ，（ＣＳ２０１，ＣＳ２０３）＞のような情報である。
【００４４】
選択部２２は、コンテンツ管理装置４０から返送された情報を取得する。選択部２２は、取得した情報に含まれるコンテンツの位置毎、すなわち共有のコンテンツが配備されたキャッシュサーバ２０ｎ毎に、そのキャッシュサーバ２０ｎからコンテンツを取得した場合の取得完了予定時刻を計算する。
【００４５】
具体的には、選択部２２は、取得したＣＳ−ＩＤをキーに、速度リスト３１から、コンテンツの位置である各キャッシュサーバ２０ｎと自装置との間のスループットを取得する。そして、選択部２２は、コンテンツ管理装置４０から受信したコンテンツのサイズと、各キャッシュサーバ２０ｎとのスループットとに基づいて、各キャッシュサーバ２０ｎからコンテンツを取得した場合に要する取得時間を計算する。そして、選択部２２は、現在時刻に取得時間を加算した時刻を取得完了予定時刻とする。
【００４６】
例えば図６に示す速度リスト３１から、キャッシュサーバ２０１とのスループット＝２Ｍｂｐｓ、及びキャッシュサーバ２０３とのスループット＝２５Ｍｂｐｓが取得される。コンテンツａｂｃのサイズは５０Ｍｂであるので、キャッシュサーバ２０１からの取得時間は２５秒、キャッシュサーバ２０３からの取得時間は２秒となる。従って、現在時刻を１１：２０：１５とすると、キャッシュサーバ２０１からの取得完了予定時刻は、１１：２０：１５の２５秒後の１１：２０：４０、キャッシュサーバ２０３からの取得完了予定時刻は、１１：２０：１５の２秒後の１１：２０：１７となる。
【００４７】
本実施形態では、図９に示すように、端末アプリ起動時（図９中の（１））から、ユーザ端末６０ｎからのコンテンツの要求（図９中の（４））までに、ユーザ端末６０ｎの近隣キャッシュサーバ２０ｎにコンテンツを事前配備しておきたい。すなわち、端末アプリ起動時から、ユーザ端末６０ｎからのコンテンツの要求までの時間が、事前配備のための上限時間となる。そこで、選択部２２は、共有のコンテンツを保持しているキャッシュサーバ２０１、２０３のうち、取得完了予定時刻が最も早いキャッシュサーバ２０３を選択し、該当のコンテンツを要求する（図９中の（３））。
【００４８】
ここで、ユーザ端末６０ｎが、端末アプリを起動した状態で移動した場合を考える。例えば、図７に示すように、ユーザ端末６０２が、端末アプリ起動時にグループ登録したキャッシュサーバ２０４とは別のキャッシュサーバ２０５の配下に移動したとする。以下、ユーザ端末６０ｎが移動前にグループ登録したキャッシュサーバ２０ｎを、「移動元のキャッシュサーバ２０ｎ」という。また、ユーザ端末６０ｎが端末アプリを起動した状態で移動後にグループ登録したキャッシュサーバ２０ｎを、「移動先のキャッシュサーバ２０ｎ」という。
【００４９】
この場合、移動元のキャッシュサーバ２０４及び移動先のキャッシュサーバ２０５の各々で、図９と同様の処理により、コンテンツ管理装置４０へ問い合わせて、コンテンツａｂｃを取得することが想定される。しかし、移動先のキャッシュサーバ２０５へグループ登録する際には、移動元のキャッシュサーバ２０４が既にコンテンツａｂｃを保持している可能性が高い。また、移動先のキャッシュサーバ２０５と移動元のキャッシュサーバ２０４との間の通信距離は近いことが想定されるため、移動元のキャッシュサーバ２０４からコンテンツを取得する際の取得完了予定時刻は早いと考えられる。そこで、本実施形態では、移動元のキャッシュサーバ２０ｎが保持しているコンテンツを取得することを考える。
【００５０】
例えば、図１０の左図に示すように、端末アプリ起動時のグループ登録では、キャッシュサーバ２０４は、（１）グループ登録を受け付け、（２）コンテンツ管理装置４０に問い合わせ、（３）コンテンツ管理装置４０からコンテンツの位置を取得する。そして、キャッシュサーバ２０４は、（４）コンテンツを保持するキャッシュサーバ２０３からコンテンツａｂｃを取得する。この段階で、キャッシュサーバ２０４は、コンテンツａｂｃを保持することになる。そこで、キャッシュサーバ２０４は、グループ登録を受け付けた旨のユーザ端末６０２への返信（図１０中の（５）の「ＯＫ」）に、コンテンツａｂｃがキャッシュサーバ２０４に保持されていることを示すコンテンツ位置情報を含める。図１０の左図の例では、＜ａｂｃ，ＣＳ２０４＞がコンテンツ位置情報の一例である。
【００５１】
そして、ユーザ端末６０２が、端末アプリを起動したままの状態でキャッシュサーバ２０５の配下へ移動すると、ユーザ端末６０２は、キャッシュサーバ２０５へグループ登録することになる。この際、図１０の右図に示すように、（６）移動元のキャッシュサーバ２０４から取得したコンテンツ位置情報を、グループ登録のメッセージに含める。これにより、移動先のキャッシュサーバ２０５は、グループ登録のメッセージに含まれるグループＩＤ＝Ｇｒ１が示すグループＧｒ１の共有のコンテンツａｂｃが、移動元のキャッシュサーバ２０４に保持されていることを認識することができる。従って、移動先のキャッシュサーバ２０５は、コンテンツ管理装置４０に問い合わせることなく、（７）移動元のキャッシュサーバ２０４からコンテンツａｂｃを取得することができる。これにより、コンテンツ管理装置４０へのコンテンツ位置の問い合わせを省略することができ、コンテンツの事前配備に要する時間を短縮することができる。
【００５２】
しかし、各キャッシュサーバ２０ｎに対応する記憶装置３０ｎにおけるコンテンツ記憶部３４の蓄積容量には制限があるため、蓄積してから時間が経過したコンテンツは削除されてしまう。従って、ユーザ端末６０２が移動先のキャッシュサーバ２０５にグループ登録する際には、コンテンツａｂｃが、移動元のキャッシュサーバ２０４に既に存在しない場合がある。この場合、移動元のキャッシュサーバ２０４からコンテンツを取得することができず、改めてコンテンツ管理装置４０に問い合わせを行って、対象のコンテンツを保持するキャッシュサーバ２０ｎを探索し、コンテンツを要求し直す必要がある。従って、図１０の右図の（７）に示すように、移動元のキャッシュサーバ２０４に対して行うコンテンツの要求は無駄になってしまう。
【００５３】
そこで、本実施形態では、ユーザ端末６０ｎにコンテンツ位置情報を持たせ、そのコンテンツ位置情報をグループ登録と共に取得する。そして、取得したコンテンツ位置情報が新しい場合には、移動元のキャッシュサーバ２０ｎへコンテンツを要求し、コンテンツ位置情報が古い場合には、コンテンツ管理装置４０への問い合わせを行う。コンテンツ位置情報が新しいか古いかの判断は、コンテンツの各々を各キャッシュサーバ２０ｎに対応するコンテンツ記憶部３４に蓄積した順番を示すシーケンス番号を、各コンテンツに付与し、このシーケンス番号を用いて行う。シーケンス番号は、コンテンツがコンテンツ記憶部３４に蓄積された順番を把握可能なものであればよい。本実施形態では、説明を簡単にするため、コンテンツ記憶部３４への蓄積順に、１からの連番となる数字をシーケンス番号としてコンテンツに付与する場合について説明する。
【００５４】
具体的には、図１１の左図に示すように、（４Ａ）移動元のキャッシュサーバ２０４がコンテンツを取得する際、コンテンツの取得元のキャッシュサーバ２０３で保持する最古のコンテンツに付与されたシーケンス番号も取得する。以下では、各キャッシュサーバ２０ｎで保持する最古のコンテンツに付与されたシーケンス番号を「最古シーケンス番号」という。移動元のキャッシュサーバ２０４では、取得した最古シーケンス番号を、コンテンツの取得元であるキャッシュサーバ２０３のＣＳ−ＩＤと対応付けて記憶しておく。このように、各キャッシュサーバ２０ｎは、他のキャッシュサーバ２０ｎからコンテンツを取得する毎に、他のキャッシュサーバ２０ｎの最古シーケンス番号を取得することで、他のキャッシュサーバ２０ｎにおけるコンテンツの保持状況を管理する。
【００５５】
また一方で、移動元のキャッシュサーバ２０４は、自装置が取得したコンテンツに新たなシーケンス番号を付与して、自装置が保持するコンテンツについても管理する。移動元のキャッシュサーバ２０４は、（５Ａ）グループ登録を受け付けた旨のユーザ端末６０２への返信にコンテンツ位置情報を含める際に、取得したコンテンツａｂｃに自装置で付与したシーケンス番号も含める。すなわち、図１１中の（５Ａ）の＜ａｂｃ，ＣＳ２０４，ｓｅｑ３２＞の例は、「コンテンツａｂｃは、キャッシュサーバ２０４に対応するコンテンツ記憶部３４に３２番目に蓄積された」という意味を示す。
【００５６】
そして、図１１の右図に示すように、ユーザ端末６０２が、端末アプリを起動したままの状態でキャッシュサーバ２０５の配下へ移動して、（６Ａ）グループ登録を行う。この際、グループ登録のメッセージに、コンテンツ位置情報に加え、そのコンテンツ位置情報と共に移動元のキャッシュサーバ２０４から受け取ったシーケンス番号も含める。
【００５７】
さらに、移動先のキャッシュサーバ２０５は、自装置で管理する移動元のキャッシュサーバ２０４の最古シーケンス番号と、グループ登録のメッセージに含まれるシーケンス番号とを比較する。最古シーケンス番号は、そのキャッシュサーバ２０ｎにおいて、最古シーケンス番号より古いシーケンス番号が付与されたコンテンツは、既に削除されていることを示す。すなわち、グループ登録のメッセージに含まれるシーケンス番号が、移動元のキャッシュサーバ２０４の最古シーケンス番号より古い場合には、移動元のキャッシュサーバ２０４は、対象のコンテンツａｂｃを保持していないと判断することができる。この場合、移動先のキャッシュサーバ２０５は、移動元のキャッシュサーバ２０４への不要なコンテンツ要求を行うことなく、コンテンツ管理装置４０へ問い合わせを行う（図１１中の（２）及び（３））。
【００５８】
一方、グループ登録のメッセージに含まれるシーケンス番号が、移動元のキャッシュサーバ２０４の最古シーケンス番号より新しい場合には、移動元のキャッシュサーバ２０４は、対象のコンテンツａｂｃを保持している可能性が高いと判断することができる。この場合、移動先のキャッシュサーバ２０５は、コンテンツ管理装置４０へ問い合わることなく、移動元のキャッシュサーバ２０４へのコンテンツ要求を行う（図１１の右図の（７））。
【００５９】
以下では、上記図１１の処理を実現するためのグループ情報受付部２１及び選択部２２の機能、残りの機能部、他ＣＳ保持リスト３２、及びコンテンツ管理リスト３３について説明する。
【００６０】
なお、上記図１１の処理を実現するために、ユーザ端末６０ｎに、キャッシュサーバ２０ｎからコンテンツ位置情報（コンテンツＩＤ及びＣＳ−ＩＤ）及びシーケンス番号を受信し、一旦記憶する機能を持たせる。また、ユーザ端末６０ｎに、上記一旦記憶したコンテンツ位置情報及びシーケンス番号を、グループ登録のメッセージに含める機能を持たせる。
【００６１】
また、以下では、移動元のキャッシュサーバ２０ｎを「移動元ＣＳ」ともいい、移動元ＣＳのＣＳ−ＩＤを「移動元ＣＳ−ＩＤ」ともいう。なお、本実施形態では、説明の便宜上、上記で説明した移動元のキャッシュサーバ（図１０及び図１１の例では、キャッシュサーバ２０４）という表現を用いる。ただし、グループ登録を受け付けたキャッシュサーバ２０ｎにおいて、ユーザ端末６０ｎが直前にグループ登録していたキャッシュサーバ２０ｎを厳密に特定するわけではない。本実施形態では、グループ登録のメッセージに含まれるＣＳ−ＩＤが示すキャッシュサーバ２０ｎを、移動元ＣＳとして扱うものである。また、以下では、取得対象のコンテンツを「対象コンテンツ」、対象コンテンツのコンテンツＩＤを「対象コンテンツＩＤ」、移動元ＣＳにおいて対象コンテンツに対して付与されたシーケンス番号を「対象シーケンス番号」ともいう。
【００６２】
グループ情報受付部２１は、後述する管理部２４から、対象コンテンツＩＤ及びシーケンス番号が通知されると、通知された対象コンテンツＩＤ及びシーケンス番号と、自装置のＣＳ−ＩＤとを含むメッセージを作成する。そして、グループ情報受付部２１は、作成したメッセージを、グループ登録を受け付けた旨のメッセージとして、ユーザ端末６０ｎへ送信する。
【００６３】
選択部２２は、グループ情報受付部２１が受け付けたグループ登録のメッセージに、コンテンツＩＤ、ＣＳ−ＩＤ、及びシーケンス番号が含まれている場合には、他ＣＳ保持リスト３２を参照して、移動元ＣＳにコンテンツを要求するか否かを判断する。他ＣＳ保持リスト３２は、上述した、他のキャッシュサーバ２０ｎにおけるコンテンツの保持状況を管理するための情報が登録されたリストである。図１２に、他ＣＳ保持リスト３２の一例を示す。なお、図１２は、キャッシュサーバ２０４が保持するＣＳ保持リスト３２の一例である。図１２の例では、他のキャッシュサーバ２０ｎのＣＳ−ＩＤと、そのキャッシュサーバ２０ｎから取得した最古シーケンス番号と、前回シーケンス番号とが対応付けてられている。「前回シーケンス番号」は、今回取得した最古シーケンス番号の前に「最古シーケンス番号」として登録されていたシーケンス番号である。詳細は後述するが、前回シーケンス番号は、シーケンス番号が有限の場合において、他のキャッシュサーバ２０ｎにおけるコンテンツ保持状況を判断する際に利用される。
【００６４】
選択部２２は、具体的には、グループ登録のメッセージに含まれるＣＳ−ＩＤをキーとして、他ＣＳ保持リスト３２から、移動元ＣＳの最古シーケンス番号及び前回シーケンス番号を取得する。また、選択部２２は、グループ登録のメッセージに含まれるシーケンス番号を、対象シーケンス番号として抽出する。
【００６５】
上述のように、本実施形態では、シーケンス番号を１からの連番で付与するため、図１３に示すように、最古シーケンス番号（図１３の例では、「ｓｅｑ１０」）より古い（小さい）シーケンス番号が付与されたコンテンツは、既に削除されていることを表す。ただし、本実施形態では、シーケンス番号は有限であるものとし、取得したコンテンツに付与するシーケンス番号が枯渇した場合には、１からシーケンス番号を再利用するものとする。この場合、図１４に示すように、最古シーケンス番号より新しい（大きい）シーケンス番号が付与されているコンテンツであっても、削除されている場合があり得る。なお、図１３及び図１４では、各ボックスが１つのコンテンツを表し、各コンテンツに付与されたシーケンス番号を、各ボックス内に表記している。
【００６６】
そこで、選択部２２は、移動元ＣＳの前回シーケンス番号が最古シーケンス番号より古いか否かをまず判定する。前回シーケンス番号が最古シーケンス番号より古い場合において、最古シーケンス番号が対象シーケンス番号より古い場合には、選択部２２は、移動元ＣＳをコンテンツの要求先として選択する。一方、前回シーケンス番号が最古シーケンス番号より古い場合において、最古シーケンス番号が対象シーケンス番号より新しい場合には、選択部２２は、コンテンツ管理装置４０にコンテンツ位置の問い合わせを行う。そして、選択部２２は、上述したように、取得完了予定時刻が最も早いキャッシュサーバ２０ｎをコンテンツの要求先として選択する。
【００６７】
また、前回シーケンス番号が最古シーケンス番号より新しい場合は、選択部２２は、対象シーケンス番号が、最古シーケンス番号以上、かつ前回シーケンス番号未満の場合に、移動元ＣＳをコンテンツ要求先として選択する。一方、前回シーケンス番号が最古シーケンス番号より新しい場合において、対象シーケンス番号が、最古シーケンス番号未満、または前回シーケンス番号以上の場合には、選択部２２は、コンテンツ管理装置４０にコンテンツ位置の問い合わせを行う。そして、選択部２２は、上述したように、取得完了予定時刻が最も早いキャッシュサーバ２０ｎをコンテンツの要求先として選択する。
【００６８】
また、選択部２２は、対象コンテンツＩＤ、及び選択したキャッシュサーバ２０ｎのＣＳ−ＩＤを、コンテンツ取得部２３に通知する。なお、対象コンテンツが自装置に既に事前配備されている場合には、選択部２２は、コンテンツ取得先のキャッシュサーバ２０ｎを選択することなく、後述する管理部２４に、対象コンテンツＩＤを通知する。
【００６９】
コンテンツ取得部２３は、選択部２２から通知されたＣＳ−ＩＤが示すキャッシュサーバ２０ｎに対して、選択部２２から通知された対象コンテンツＩＤが示すコンテンツを要求する。
【００７０】
また、コンテンツ取得部２３は、コンテンツの要求に応じて、他のキャッシュサーバ２０ｎから送信されたコンテンツ及びそのコンテンツＩＤと、コンテンツの送信元である他のキャッシュサーバ２０ｎのＣＳ−ＩＤ及び最古シーケンス番号とを取得する。コンテンツ取得部２３は、取得したコンテンツをコンテンツ記憶部３４に記憶する。また、コンテンツ取得部２３は、取得したＣＳ−ＩＤ、最古シーケンス番号、及びコンテンツＩＤを管理部２４へ通知する。
【００７１】
また、コンテンツ取得部２３は、コンテンツの取得が完了すると、自装置にコンテンツが配備されたことをコンテンツ管理装置４０へ通知する。例えば、コンテンツ取得部２３は、取得完了したコンテンツのコンテンツＩＤ、及び自装置のＣＳ−ＩＤを含む情報＜ａｂｃ，ＣＳ２０５＞を、コンテンツ管理装置４０へ送信する。これにより、コンテンツ管理装置４０のコンテンツ位置リスト４４に、＜ａｂｃ，ＣＳ２０５＞のエントリが追加される。
【００７２】
管理部２４は、コンテンツ取得部２３から通知されたＣＳ−ＩＤ及び最古シーケンス番号を、他ＣＳ保持リスト３２へ登録する。この際、他ＣＳ保持リスト３２に、該当のキャッシュサーバ２０ｎについてのエントリが既に存在する場合には、管理部２４は、該当のエントリの「最古シーケンス番号」に登録されているシーケンス番号を「前回シーケンス番号」に移す。そして、管理部２４は、通知された最古シーケンス番号を「最古シーケンス番号」に登録することで、該当のエントリを更新する。
【００７３】
例えば、図１１の左図に示すように、キャッシュサーバ２０４のコンテンツ取得部２３が、キャッシュサーバ２０３からコンテンツａｂｃを取得し、その際に、キャッシュサーバ２０３の最古シーケンス番号としてｓｅｑ２０を取得したとする。また、キャッシュサーバ２０４が保持する他ＣＳ保持リスト３２には、キャッシュサーバ２０３についてのエントリとして、＜ＣＳ２０３，ｓｅｑ１５（最古シーケンス番号），ｓｅｑ１０（前回シーケンス番号）＞が登録されているものとする。この場合、キャッシュサーバ２０４の管理部２４は、自装置が保持する他ＣＳ保持リスト３２におけるキャッシュサーバ２０３についてのエントリを、＜ＣＳ２０３，ｓｅｑ２０（最古シーケンス番号），ｓｅｑ１５（前回シーケンス番号）＞に更新する。
【００７４】
また、管理部２４は、自装置のコンテンツ記憶部３４に記憶されているコンテンツを管理する。本実施形態では、管理部２４は、コンテンツ記憶部３４に記憶するコンテンツをＦＩＦＯ（First In, First Out）で管理する。管理部２４は、コンテンツ記憶部３４に記憶されたコンテンツの蓄積容量が閾値以上となった場合には、コンテンツ記憶部３４への蓄積順が古いコンテンツから順に削除する。
【００７５】
管理部２４は、コンテンツ取得部２３からコンテンツＩＤを通知された際には、そのコンテンツに対して、新たなシーケンス番号を付与し、コンテンツ管理リスト３３に登録する。コンテンツ管理リスト３３は、自装置のコンテンツ記憶部３４に記憶されているコンテンツと、そのコンテンツに付与したシーケンス番号とを対応付けて管理するリストである。図１５に、コンテンツ管理リスト３３の一例を示す。なお、図１５は、キャッシュサーバ２０３が保持するコンテンツ管理リスト３３の一例である。
【００７６】
管理部２４は、コンテンツ記憶部３４へのコンテンツの蓄積順に、コンテンツＩＤ及びシーケンス番号のエントリをコンテンツ管理リスト３３に追加する。すなわち、管理部２４は、コンテンツ取得部２３で新たにコンテンツが取得される毎に、コンテンツ管理リスト３３の末尾にエントリを追加する。また、管理部２４は、コンテンツ記憶部３４からコンテンツを削除した場合には、コンテンツ管理リスト３３の先頭から順に、削除したコンテンツに対応するエントリを削除する。これにより、コンテンツ管理リスト３３の先頭のエントリは、最古シーケンス番号を表し、末尾のエントリは、自装置が保持する最新のコンテンツに付与されたシーケンス番号（以下、「最新シーケンス番号」という）を表すことになる。
【００７７】
また、管理部２４は、グループ登録を受け付けた自装置が既に対象コンテンツを保持している場合において、選択部２２から通知される対象コンテンツＩＤが受け取る。管理部２４は、コンテンツ管理リスト３３から、通知された対象コンテンツＩＤに対応するシーケンス番号を取得する。そして、管理部２４は、対象コンテンツＩＤと、取得したシーケンス番号とをグループ情報受付部２１に通知する。
【００７８】
さらに、管理部２４は、後述するコンテンツ応答部２５からコンテンツＩＤが通知されると、通知されたコンテンツＩＤを含むエントリがコンテンツ管理リスト３３に存在するか否かに基づいて、自装置で対象コンテンツを保持しているか否かを判定する。管理部２４は、自装置で対象コンテンツを保持しているか否かを示す情報、及び自装置の最古シーケンス番号を、コンテンツ応答部２５に通知する。
【００７９】
コンテンツ応答部２５は、他のキャッシュサーバ２０ｎから送信されたコンテンツ要求を受信すると、要求されたコンテンツのコンテンツＩＤを管理部２４に通知する。また、コンテンツ応答部２５は、コンテンツＩＤの通知に応じて、管理部２４から通知される自装置で対象コンテンツを保持しているか否かを示す情報、及び自装置の最古シーケンス番号を受け取る。自装置が対象コンテンツを保持している場合には、コンテンツ応答部２５は、コンテンツ記憶部３４から対象コンテンツを取得する。そして、コンテンツ応答部２５は、管理部２４から通知された最古シーケンス番号と共に、取得したコンテンツを、コンテンツ要求元のキャッシュサーバ２０ｎに送信する。一方、自装置が対象コンテンツを保持していない場合には、コンテンツ応答部２５は、その旨を示す情報、及び管理部２４から通知された最古シーケンス番号を、コンテンツ要求元のキャッシュサーバ２０ｎに送信する。
【００８０】
キャッシュサーバ２０ｎは、例えば図１６に示すコンピュータ８０で実現することができる。コンピュータ８０はＣＰＵ８１、一時記憶領域としてのメモリ８２、及び不揮発性の記憶部８３を備える。また、コンピュータ８０は、入出力装置８８が接続される入出力インターフェース（Ｉ／Ｆ）８４を備える。また、コンピュータ８０は、記録媒体８９に対するデータの読み込み及び書き込みを制御するｒｅａｄ／ｗｒｉｔｅ（Ｒ／Ｗ）部８５、及びインターネット等のネットワークに接続されるネットワークＩ／Ｆ８６を備える。ＣＰＵ８１、メモリ８２、記憶部８３、入出力Ｉ／Ｆ８４、Ｒ／Ｗ部８５、及びネットワークＩ／Ｆ８６は、バス８７を介して互いに接続される。
【００８１】
また、コンピュータ８０は、ネットワークＩ／Ｆ８６を介して、記憶装置３０ｎと接続される。また、コンピュータ８０は、ネットワークＩ／Ｆ８６を介して、ローカルネットワーク７０１、７０２、７０３のいずれかと接続される。
【００８２】
記憶部８３はＨＤＤ（Hard Disk Drive）、ＳＳＤ（solid state drive）、フラッシュメモリ等によって実現できる。記憶媒体としての記憶部８３には、コンピュータ８０をキャッシュサーバ２０ｎとして機能させるためのコンテンツ取得プログラム９０が記憶される。ＣＰＵ８１は、コンテンツ取得プログラム９０を記憶部８３から読み出してメモリ８２に展開し、コンテンツ取得プログラム９０が有するプロセスを順次実行する。また、ＣＰＵ８１は、記憶装置３０ｎに記憶された情報を読み出して、速度リスト３１、他ＣＳ保持リスト３２、及びコンテンツ管理リスト３３の各々をメモリ８２に展開する。
【００８３】
コンテンツ取得プログラム９０は、グループ情報受付プロセス９１と、選択プロセス９２と、コンテンツ取得プロセス９３と、管理プロセス９４と、コンテンツ応答プロセス９５とを有する。
【００８４】
ＣＰＵ８１は、グループ情報受付プロセス９１を実行することで、図５に示すグループ情報受付部２１として動作する。また、ＣＰＵ８１は、選択プロセス９２を実行することで、図５に示す選択部２２として動作する。また、ＣＰＵ８１は、コンテンツ取得プロセス９３を実行することで、図５に示すコンテンツ取得部２３として動作する。また、ＣＰＵ８１は、管理プロセス９４を実行することで、図５に示す管理部２４として動作する。また、ＣＰＵ８１は、コンテンツ応答プロセス９５を実行することで、図５に示すコンテンツ応答部２５として動作する。これにより、コンテンツ取得プログラム９０を実行したコンピュータ８０が、キャッシュサーバ２０ｎとして機能することになる。
【００８５】
なお、コンテンツ管理装置４０、及びユーザ端末６０ｎの各々についても、ＣＰＵ、メモリ、記憶部、入出力Ｉ／Ｆ、Ｒ／Ｗ部、ネットワークＩ／Ｆ、及びバスを備えたコンピュータで実現することができる。また、キャッシュサーバ２０ｎ、コンテンツ管理装置４０、及びユーザ端末６０ｎの各々が有する機能は、例えば半導体集積回路、より詳しくはＡＳＩＣ（Application Specific Integrated Circuit）等で実現することも可能である。
【００８６】
次に、本実施形態に係るコンテンツ取得システム１０の作用について説明する。ユーザ端末６０ｎからグループ登録が行われると、そのユーザ端末６０ｎの近隣キャッシュサーバ２０ｎが、図１７に示すグループ登録受信時処理を実行する。また、キャッシュサーバ２０ｎは、他のキャッシュサーバ２０ｎから送信されたコンテンツ要求を受信すると、図１９に示すコンテンツ要求受信時処理を実行する。以下、各処理について詳述する。なお、図１７〜図１９では、シーケンス番号を「ｓｅｑ」と略記している。
【００８７】
図１７に示すグループ登録受信時処理のステップＳ１１で、選択部２２が、グループ情報受付部２１で受け付けられたグループ登録のメッセージに、コンテンツＩＤ、ＣＳ−ＩＤ、及びシーケンス番号が含まれているか否かを判定する。含まれている場合には、処理はステップＳ１２へ移行し、含まれていない場合には、処理はステップＳ１９へ移行する。
【００８８】
ステップＳ１２では、選択部２２が、対象コンテンツが自装置に事前配備済みか否かを判定する。具体的には、選択部２２は、グループ登録のメッセージに含まれるコンテンツＩＤを対象コンテンツＩＤとして抽出する。そして、選択部２２は、コンテンツ管理リスト３３に、対象コンテンツＩＤを含むエントリが存在する場合には、対象コンテンツが自装置に事前配備済みであると判定し、処理はステップＳ２８へ移行する。一方、コンテンツ管理リスト３３に、対象コンテンツＩＤを含むエントリが存在しない場合には、対象コンテンツが自装置に事前配備済みではないと判定し、処理はステップＳ１３へ移行する。
【００８９】
ステップＳ１３では、選択部２２が、グループ登録のメッセージに含まれるＣＳ−ＩＤを移動元ＣＳ−ＩＤとして抽出し、移動元ＣＳ−ＩＤに対応する最古シーケンス番号が、他ＣＳ保持リスト３２に登録されているか否かを判定する。登録されている場合には、処理はステップＳ１４へ移行し、登録されていない場合には、処理はステップＳ１９へ移行する。
【００９０】
ステップＳ１４では、選択部２２が、他ＣＳ保持リスト３２において、移動元ＣＳ−ＩＤに対応する前回シーケンス番号が最古シーケンス番号より古いか否かを判定する。前回シーケンス番号が最古シーケンス番号より古い場合には、処理はステップＳ１５へ移行し、前回シーケンス番号が最古シーケンス番号より新しい場合には、処理はステップＳ１８へ移行する。
【００９１】
ステップＳ１５では、選択部２２が、グループ登録のメッセージに含まれるシーケンス番号を、対象シーケンス番号として抽出する。そして、選択部２２は、移動元ＣＳ−ＩＤに対応する最古シーケンス番号が、対象シーケンス番号より古いか否かを判定する。最古シーケンス番号が対象シーケンス番号よりも古い場合には、選択部２２は、対象コンテンツが移動元ＣＳに保持されている可能性が高いと判断し、処理はステップＳ１６へ移行する。一方、最古シーケンス番号が対象シーケンス番号よりも新しい場合には、対象コンテンツが移動元ＣＳに保持されている可能性が低いと判断し、処理はステップＳ１９へ移行する。
【００９２】
ステップＳ１６では、選択部２２が、移動元ＣＳをコンテンツの要求先として選択し、コンテンツ取得部２３が、移動元ＣＳに対象コンテンツを要求する。
【００９３】
次に、ステップＳ１７で、コンテンツ取得部２３が、コンテンツ要求に応じて、移動元ＣＳから送信されたコンテンツを取得できたか否かを判定する。取得できた場合には、処理はステップＳ２０へ移行し、所定時間経過してもコンテンツを取得できなかった場合には、処理はステップＳ１９へ移行する。
【００９４】
一方、上記ステップＳ１４で否定判定されて処理がステップＳ１８へ移行した場合には、シーケンス番号が振り出しに戻って使われていることを表している。そこで、選択部２２は、対象シーケンス番号が、最古シーケンス番号以上、かつ前回シーケンス番号未満か否かを判定する。肯定判定の場合には、処理はステップＳ１６へ移行し、選択部２２は、移動元ＣＳに対象コンテンツを要求する。一方、否定判定の場合には、処理はステップＳ１９へ移行する。
【００９５】
ステップＳ１９では、選択部２２が、コンテンツ管理装置４０にコンテンツ位置の問い合わせを行う。そして、選択部２２は、コンテンツ管理装置４０から取得したコンテンツ位置に基づいて、取得完了予定時刻が最も早いキャッシュサーバ２０ｎをコンテンツの要求先として選択する。そして、コンテンツ取得部２３が、選択部２２により選択されたキャッシュサーバ２０ｎに対象コンテンツを要求し、最古シーケンス番号と共に対象コンテンツを取得する。
【００９６】
次に、ステップＳ２０で、コンテンツ取得部２３が、取得したコンテンツのコンテンツＩＤ、コンテンツの取得先のキャッシュサーバ２０ｎのＣＳ−ＩＤ、及びコンテンツと共に取得した最古シーケンス番号を管理部２４へ通知する。管理部２４では、通知されたＣＳ−ＩＤ及び最古シーケンス番号に基づいて、他ＣＳ保持リスト３２を更新する。
【００９７】
次に、ステップＳ２１で、図１８に詳細を示すコンテンツ取得後処理が実行される。
【００９８】
図１８に示すコンテンツ取得後処理のステップＳ２２で、管理部２４が、コンテンツ管理リスト３３から自装置の最新シーケンス番号を取得し、最新シーケンス番号に１加算したシーケンス番号を、上記ステップＳ１７又はＳ１９で取得されたコンテンツに付与する。そして、管理部２４は、付与したシーケンス番号を含むエントリを、コンテンツ管理リスト３３の末尾へ追加する。これにより、追加したシーケンス番号が新たな最新シーケンス番号となる。
【００９９】
次に、ステップＳ２３で、管理部２４が、最新シーケンス番号が上限値に達したか否かを判定する。上限値に達した場合には、処理はステップＳ２４へ移行する。ステップＳ２４では、管理部２４が、次に上記ステップＳ２２が実行される際の上記ステップＳ２２における最新シーケンス番号を０に設定し、処理はステップＳ２５へ移行する。すなわち、次に上記ステップＳ２２が実行される際には、最新シーケンス番号として１が付与される。これにより、限りあるシーケンス番号を、振り出しに戻って再利用することができる。最新シーケンス番号が上限値に達していない場合には、処理はステップＳ２４をスキップしてステップＳ２５へ移行する。
【０１００】
ステップＳ２５では、コンテンツ取得部２３が、取得したコンテンツをコンテンツ記憶部３４に蓄積する。そして、コンテンツ取得部２３が、取得完了したコンテンツのコンテンツＩＤ、及び自装置のＣＳ−ＩＤを含む情報をコンテンツ管理装置４０へ送信することにより、自装置にコンテンツが配備されたことをコンテンツ管理装置４０へ通知する。
【０１０１】
次に、ステップＳ２６で、管理部２４が、コンテンツ記憶部３４に記憶されたコンテンツの蓄積容量が閾値以上となったか否かを判定する。蓄積容量が閾値以上となった場合には、処理はステップＳ２７へ移行し、管理部２４が、コンテンツ記憶部３４への蓄積順が古いコンテンツ、すなわちシーケンス番号が古いコンテンツから順に、蓄積容量が閾値以下となるまで削除する。また、管理部２４は、コンテンツ管理リスト３３から、削除したコンテンツに対応するエントリを削除して、図１７のグループ登録受信時処理へ戻る。コンテンツ容量が閾値に達していない場合には、処理はステップＳ２７をスキップして、図１７のグループ登録受信時処理へ戻る。
【０１０２】
次に、図１７に示すグループ登録受信時処理のステップＳ２８で、グループ情報受付部２１が、グループ登録を受け付けた旨のメッセージをユーザ端末６０ｎへ送信する。グループ情報受付部２１は、このメッセージに、自装置に事前配備された対象コンテンツのコンテンツＩＤ、自装置のＣＳ−ＩＤ、及び自装置において対象コンテンツに付与したシーケンス番号を含める。これにより、ユーザ端末６０ｎに、対象コンテンツのコンテンツ位置及びシーケンス番号が通知され、グループ登録受信時処理は終了する。
【０１０３】
次に、コンテンツ要求受信時処理について説明する。
【０１０４】
図１９に示すコンテンツ要求受信時処理のステップＳ３１で、コンテンツ応答部２５は、要求されたコンテンツのコンテンツＩＤを管理部２４に通知する。そして、管理部２４が、コンテンツ管理リスト３３を参照して、通知されたコンテンツＩＤが示すコンテンツを自装置が保持しているか否かを判定する。保持している場合には、処理はステップＳ３２へ移行し、保持していない場合には、処理はステップＳ３３へ移行する。
【０１０５】
ステップＳ３２では、管理部２４が、コンテンツ管理リスト３３から、自装置の最古シーケンス番号を取得する。そして、コンテンツ応答部２５が、コンテンツ記憶部３４から対象コンテンツを取得し、管理部２４で取得されたシーケンス番号と共に、コンテンツ要求元のキャッシュサーバ２０ｎに送信する。一方、ステップＳ３３では、管理部２４が、コンテンツ管理リスト３３から、自装置の最古シーケンス番号を取得する。そして、コンテンツ応答部２５が、対象コンテンツを保持していない旨の情報を、最古シーケンス番号と共にコンテンツ要求元のキャッシュサーバ２０ｎに送信する。そして、コンテンツ受信時処理は終了する。
【０１０６】
次に、図２０〜図２２のシーケンス図を参照して、各装置間での情報のやり取りを中心に、本実施形態に係るコンテンツ取得システム１０におけるコンテンツ取得処理の一例を説明する。なお、図２０〜図２２では、図１１と同様、ユーザ端末６０２が、キャッシュサーバ２０４にグループ登録後、端末アプリを起動したままの状態で移動して、キャッシュサーバ２０５にグループ登録する例について説明する。また、ユーザ端末６０２は、グループＧｒ１に属し、グループＧｒ１の共有コンテンツはコンテンツａｂｃで、コンテンツａｂｃがキャッシュサーバ２０１、２０３に蓄積されている状態から処理が開始するものとする。
【０１０７】
まず、ユーザ端末６０２から、端末アプリを起動することにより、キャッシュサーバ２０４へグループ登録する（Ｓ４１）。この場合、グループ登録のメッセージには、グループＩＤ＜Ｇｒ１＞が含まれ、コンテンツＩＤ、ＣＳ−ＩＤ、及びシーケンス番号は含まれない。
【０１０８】
キャッシュサーバ２０４では、選択部２２が、グループＩＤ＜Ｇｒ１＞を用いて、コンテンツ管理装置４０に対して、対象コンテンツの位置の問い合わせを行う（Ｓ４２）。
【０１０９】
コンテンツ管理装置４０では、制御部４１が、コンテンツリスト４３（図３）から、グループＩＤ＜Ｇｒ１＞に対応するコンテンツＩＤ及びサイズ＜ａｂｃ，５０Ｍｂ＞を取得する。そして、制御部４１は、コンテンツ位置リスト４４（図４）から、コンテンツａｂｃを保持するキャッシュサーバのＣＳ−ＩＤ＜ＣＳ２０１，ＣＳ２０３＞を取得する。そして、コンテンツ管理装置４０から、コンテンツＩＤ、サイズ、ＣＳ−ＩＤを含む情報＜ａｂｃ，５０Ｍｂ，（ＣＳ２０１，ＣＳ２０３）＞が、キャッシュサーバ２０４へ返送される（Ｓ４３）。
【０１１０】
キャッシュサーバ２０４では、選択部２２が、速度リスト３１（図６）を参照して、コンテンツａｂｃの取得完了予定時刻が最も早いキャッシュサーバ２０３を選択する。そして、選択部２２は、コンテンツＩＤ＜ａｂｃ＞を含むコンテンツ要求を、キャッシュサーバ２０３へ送信する（Ｓ４４）。
【０１１１】
キャッシュサーバ２０３では、管理部２４が、コンテンツ管理リスト３３（図１５）から、キャッシュサーバ２０３の最古シーケンス番号＜ｓｅｑ２０＞を取得する。また、コンテンツ応答部２５が、コンテンツ記憶部３４から、コンテンツａｂｃを取得する。そして、コンテンツ応答部２５が、コンテンツａｂｃと、最古シーケンス番号＜ｓｅｑ２０＞とを、キャッシュサーバ２０４へ送信する（Ｓ４５）。
【０１１２】
キャッシュサーバ２０４では、コンテンツ取得部２３が、取得したコンテンツａｂｃをコンテンツ記憶部３４に蓄積する。また、管理部２４が、取得した最古シーケンス番号＜ｓｅｑ２０＞に基づいて、他ＣＳ保持リスト３２（図１２）のキャッシュサーバ２０３についてのエントリを更新する。また、管理部２４が、取得したコンテンツａｂｃに新たなシーケンス番号＜ｓｅｑ３２＞を付与して、コンテンツ管理リスト３３（図２３）を更新する。
【０１１３】
また、キャッシュサーバ２０４では、コンテンツ取得部２３が、コンテンツａｂｃがキャッシュサーバ２０４に保持されている旨の情報＜ａｂｃ，ＣＳ２０４＞をコンテンツ管理装置４０に通知する（Ｓ４６）。コンテンツ管理装置４０では、制御部４１が、通知された＜ａｂｃ，ＣＳ２０４＞に基づいて、コンテンツ位置リスト４４（図４）を更新する。
【０１１４】
さらに、キャッシュサーバ２０４では、グループ情報受付部２１が、キャッシュサーバ２０４に、グループ登録に関するコンテンツａｂｃが保持されていることを示すコンテンツ位置情報と、そのコンテンツのキャッシュサーバ２０４におけるシーケンス番号とを含む情報＜ａｂｃ，ＣＳ２０４，ｓｅｑ３２＞を、ユーザ端末６０２へ返送する（Ｓ４７）。
【０１１５】
次に、図２１を参照して、図２０の処理の後、ユーザ端末６０２が端末アプリを起動したままの状態で、キャッシュサーバ２０５の配下へ移動した場合について説明する。この場合、図２０のステップＳ４７でユーザ端末６０２が受信した情報＜ａｂｃ，ＣＳ２０４，ｓｅｑ３２＞をメッセージに含むグループ登録＜Ｇｒ１，ａｂｃ，ＣＳ２０４，ｓｅｑ３２＞がキャッシュサーバ２０５に対して行われる（Ｓ５１）。
【０１１６】
キャッシュサーバ２０５では、選択部２２が、他ＣＳ保持リスト３２（図２４）におけるキャッシュサーバ２０４の最古シーケンス番号＜ｓｅｑ５＞と前回シーケンス番号＜ｓｅｑ１＞とを比較する。また、選択部２２が、グループ登録に含まれるシーケンス番号＜ｓｅｑ３２＞と、最古シーケンス番号＜ｓｅｑ５＞とを比較する。この比較により、選択部２２は、キャッシュサーバ２０４がコンテンツａｂｃを保持している可能性が高いと判断し、キャッシュサーバ２０４にコンテンツａｂｃを要求する（Ｓ５２）。
【０１１７】
キャッシュサーバ２０４では、管理部２４が、コンテンツ管理リスト３３（図２３）から、最古シーケンス番号＜ｓｅｑ１０＞を取得する。そして、コンテンツ応答部２５が、コンテンツａｂｃ及び最古シーケンス番号＜ｓｅｑ１０＞を、キャッシュサーバ２０５へ送信する。
【０１１８】
キャッシュサーバ２０５では、図２０のＳ４５の後のキャッシュサーバ２０４と同様に、コンテンツａｂｃがコンテンツ記憶部３４へ蓄積される。また、他ＣＳ保持リスト３２（図２４）のキャッシュサーバ２０４についてのエントリが更新される。また、取得したコンテンツａｂｃに新たなシーケンス番号＜ｓｅｑ３８＞を付与して、コンテンツ管理リスト３３（図２５）を更新する。
【０１１９】
また、キャッシュサーバ２０５では、図２０のＳ４６と同様に、＜ａｂｃ，ＣＳ２０５＞がコンテンツ管理装置４０に通知され（Ｓ５４）、コンテンツ管理装置４０において、コンテンツ位置リスト４４（図４）が更新される。
【０１２０】
さらに、キャッシュサーバ２０５では、図２０のＳ４７と同様に、＜ａｂｃ，ＣＳ２０５，ｓｅｑ３８＞が、ユーザ端末６０２へ返送される（Ｓ５５）。
【０１２１】
このように、グループ登録のメッセージに、コンテンツＩＤ、ＣＳ−ＩＤ、及びシーケンス番号を含めることで、移動元ＣＳが対象コンテンツを保持しているか否かを判断し、保持していると判断した場合には、移動元ＣＳにコンテンツを要求する。このため、コンテンツ管理装置４０への問い合わせ（図２０のＳ４２及びＳ４３）を行う必要がないため、コンテンツの事前配備に要する時間を短縮することができる。
【０１２２】
次に、図２２を参照して、図２１のＳ５１と同様のグループ登録が行われた際に（Ｓ６１）、キャッシュサーバ２０５が保持する他ＣＳ保持リスト３２が、図２６に示すものであった場合について説明する。
【０１２３】
キャッシュサーバ２０５では、選択部２２が、グループ登録に含まれるシーケンス番号＜ｓｅｑ３２＞と、他ＣＳ保持リスト３２（図２６）におけるキャッシュサーバ２０４の最古シーケンス番号＜ｓｅｑ５１＞とを比較する。この場合、選択部２２は、キャッシュサーバ２０４がコンテンツａｂｃを保持していないと判断し、キャッシュサーバ２０４にコンテンツａｂｃを要求することなく、コンテンツ管理装置４０へコンテンツ位置の問い合わせを行う（Ｓ６２）。
【０１２４】
以降は、図２０のＳ４３〜Ｓ４５と同様に、コンテンツ管理装置４０からのコンテンツ位置に基づいて、キャッシュサーバ２０５が、キャッシュサーバ２０３からコンテンツａｂｃ及び最古シーケンス番号を取得する（Ｓ６３〜Ｓ６５）。そして、図２１のＳ５４及びＳ５５と同様に、キャッシュサーバ２０５が、コンテンツ管理装置４０への通知、及びユーザ端末６０２への返送を行う（Ｓ６６及びＳ６７）。
【０１２５】
このように、移動元ＣＳが対象コンテンツを保持していないと判断できる場合には、コンテンツ管理装置４０からコンテンツ位置を取得する。そのため、移動元ＣＳへの不要なコンテンツ要求（図２１のＳ５２及びＳ５３）を行うことを回避できる。
【０１２６】
以上説明したように、本実施形態に係るコンテンツ取得システムによれば、コンテンツ位置情報をユーザ端末に持たせ、この情報を用いてグループ登録を行う。また、各キャッシュサーバへのコンテンツの蓄積順にシーケンス番号を付与し、コンテンツ位置情報と共にシーケンス番号もグループ登録のメッセージに含める。また、各キャッシュサーバでは、他のキャッシュサーバでのコンテンツの保持状況を、シーケンス番号を用いて管理する。そして、コンテンツを要求するキャッシュサーバでは、このシーケンス番号を用いて、グループ登録から得たコンテンツ位置情報が示すキャッシュサーバ（移動元ＣＳ）にコンテンツを要求するか否かを判断する。このため、不要なコンテンツの要求を削減することができる。
【０１２７】
また、移動元ＣＳに対象コンテンツが保持されているか否かを判定するための情報としてシーケンス番号を用いることで、実際にコンテンツが蓄積または削除された状況を、時刻情報を用いる場合などに比べて正確に把握することができる。
【０１２８】
また、コンテンツの事前配備サービスにおいては、各キャッシュサーバへのコンテンツの追加及び削除は、ＦＩＦＯで管理することが適しているため、上記のようなシーケンス番号を用いたコンテンツの保持状況の管理が実現可能である。
【０１２９】
なお、本実施形態における最古シーケンス番号及び前回シーケンス番号を用いた判定が成立するためには、１つのキャッシュサーバ（コンテンツ記憶部）に保持可能なコンテンツの数に対して、シーケンス番号の上限値を大きな値とする必要がある。ただし、「大きな値」としては、近年のコンピュータで一般に使われる６４ビットであれば十分である。また、シーケンス番号の上限値として、上記処理に矛盾が生じるほど小さな値しか設定できない場合でも、移動元ＣＳに対象コンテンツが保持されているのに、保持されていないと判定されるだけであり、コンテンツの事前配備自体に不都合を生じるものではない。
【０１３０】
また、上記実施形態では、キャッシュサーバによるコンテンツの事前配備のトリガーが、ユーザ端末からのグループ登録（Ｓｕｂｓｃｒｉｂｅ）である場合について説明したが、これに限定されない。ユーザによるログイン、ユーザ端末のキャッシュサーバに対応したアクセスポイントへの接続など、ユーザ端末からのコンテンツ要求に先立って行われる接続をトリガーとすることができる。
【０１３１】
また、上記実施形態では、他のキャッシュサーバからの要求に応じてコンテンツを送信する際に、自装置の最古シーケンス番号も送信する場合について説明したが、これに限定されない。例えば、キャッシュサーバ間で定期的に最古シーケンス番号を送受信することにより、他のキャッシュサーバの最古シーケンス番号を取得するようにしてもよい。
【０１３２】
また、上記実施形態では、コンテンツ管理装置４０にコンテンツ位置リスト４４を記憶する場合について説明したが、これに限定されない。コンテンツ管理装置４０とは別に、コンテンツ位置リスト４４を管理するコンテンツ位置リスト管理装置を設けてもよい。
【０１３３】
また、上記では、コンテンツ取得プログラム９０が記憶部８３に予め記憶（インストール）されている態様を説明したが、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等の記憶媒体に記録された形態で提供することも可能である。
【０１３４】
以上の実施形態に関し、更に以下の付記を開示する。
【０１３５】
（付記１）
コンピュータに、
機器の識別情報、取得対象のコンテンツの識別情報、及び前記機器への前記取得対象のコンテンツの蓄積順を示すシーケンス情報を含むコンテンツ取得要求を受け付け、
他機器の識別情報と前記他機器で保持する最古のコンテンツに対応するシーケンス情報とを対応付けた他機器保持情報を参照し、前記コンテンツ取得要求に含まれる前記機器の識別情報と対応付けられたシーケンス情報が示す蓄積順が、前記コンテンツ取得要求に含まれるシーケンス情報が示す蓄積順より古い場合には、前記コンテンツ取得要求に含まれる機器の識別情報が示す機器に前記取得対象のコンテンツを要求し、前記コンテンツ取得要求に含まれるシーケンス情報が示す蓄積順より新しい場合には、前記取得対象のコンテンツを保持する機器を探索し、探索した機器に前記取得対象のコンテンツを要求し、
要求したコンテンツと共に取得した該コンテンツの取得元である機器の識別情報と、該機器で保持する最古のコンテンツに対応するシーケンス情報とを対応付けて、前記他機器保持情報として記憶し、
取得したコンテンツの識別情報、前記コンテンツ取得要求を受け付けた機器の識別情報、及び前記コンテンツ取得要求を受け付けた機器への前記取得したコンテンツの蓄積順を示すシーケンス情報を、前記コンテンツ取得要求の要求元へ応答する
処理を実行させるためのコンテンツ取得プログラム。
【０１３６】
（付記２）
コンテンツ取得要求の要求元が移動後に送信するコンテンツ取得要求に、前記要求元が移動前にコンテンツ取得要求を送信した機器から受信した前記コンテンツの識別情報、前記機器の識別情報、及び前記シーケンス情報が含まれる付記１記載のコンテンツ取得プログラム。
【０１３７】
（付記３）
要求したコンテンツと共に取得した前記機器の識別情報と前記シーケンス情報とを対応付けて前記他機器保持情報として記憶する際、今回取得したシーケンス情報の前に最古のコンテンツに対応するシーケンス情報として記憶されていたシーケンス情報を前回情報、今回取得したシーケンス情報を最古情報として記憶し、
前記前回情報が示す蓄積順が、前記最古情報が示す蓄積順より古い場合には、前記コンテンツ取得要求に含まれるシーケンス情報が示す蓄積順が、前記最古情報が示す蓄積順以上、かつ前記前回情報が示す蓄積順未満の場合に、前記コンテンツ取得要求に含まれる機器の識別情報が示す機器に前記取得対象のコンテンツを要求する
付記１または付記２記載のコンテンツ取得プログラム。
【０１３８】
（付記４）
前記コンピュータに、蓄積された複数のコンテンツの容量の合計が予め定めた閾値以上となった場合に、前記複数のコンテンツの容量が前記閾値未満となるまで、前記シーケンス情報が示す蓄積順が古いコンテンツから順に削除することをさらに含む処理を実行させるための付記１〜付記３のいずれか１項記載のコンテンツ取得プログラム。
【０１３９】
（付記５）
機器の識別情報、取得対象のコンテンツの識別情報、及び前記機器への前記取得対象のコンテンツの蓄積順を示すシーケンス情報を含むコンテンツ取得要求を受け付ける受付部と、
他機器の識別情報と前記他機器で保持する最古のコンテンツに対応するシーケンス情報とを対応付けた他機器保持情報を参照し、前記コンテンツ取得要求に含まれる前記機器の識別情報と対応付けられたシーケンス情報が示す蓄積順が、前記コンテンツ取得要求に含まれるシーケンス情報が示す蓄積順より古い場合には、前記コンテンツ取得要求に含まれる機器の識別情報が示す機器に前記取得対象のコンテンツを要求し、前記コンテンツ取得要求に含まれるシーケンス情報が示す蓄積順より新しい場合には、前記取得対象のコンテンツを保持する機器を探索し、探索した機器に前記取得対象のコンテンツを要求する要求部と、
要求したコンテンツと共に取得した該コンテンツの取得元である機器の識別情報と、該機器で保持する最古のコンテンツに対応するシーケンス情報とを対応付けて、前記他機器保持情報として記憶する記憶制御部と、
取得したコンテンツの識別情報、前記コンテンツ取得要求を受け付けた機器の識別情報、及び前記コンテンツ取得要求を受け付けた機器への前記取得したコンテンツの蓄積順を示すシーケンス情報を、前記コンテンツ取得要求の要求元へ応答する応答部と、
を含むコンテンツ取得装置。
【０１４０】
（付記６）
コンテンツ取得要求の要求元が移動後に送信するコンテンツ取得要求に、前記要求元が移動前にコンテンツ取得要求を送信した機器から受信した前記コンテンツの識別情報、前記機器の識別情報、及び前記シーケンス情報が含まれる付記５記載のコンテンツ取得装置。
【０１４１】
（付記７）
前記記憶制御部は、要求したコンテンツと共に取得した前記機器の識別情報と前記シーケンス情報とを対応付けて前記他機器保持情報として記憶する際、今回取得したシーケンス情報の前に最古のコンテンツに対応するシーケンス情報として記憶されていたシーケンス情報を前回情報、今回取得したシーケンス情報を最古情報として記憶し、
前記要求部は、前記前回情報が示す蓄積順が、前記最古情報が示す蓄積順より古い場合には、前記コンテンツ取得要求に含まれるシーケンス情報が示す蓄積順が、前記最古情報が示す蓄積順以上、かつ前記前回情報が示す蓄積順未満の場合に、前記コンテンツ取得要求に含まれる機器の識別情報が示す機器に前記取得対象のコンテンツを要求する
付記５または付記６記載のコンテンツ取得装置。
【０１４２】
（付記８）
蓄積された複数のコンテンツの容量の合計が予め定めた閾値以上となった場合に、前記複数のコンテンツの容量が前記閾値未満となるまで、前記シーケンス情報が示す蓄積順が古いコンテンツから順に削除する削除部をさらに含む付記５〜付記７のいずれか１項記載のコンテンツ取得装置。
【０１４３】
（付記９）
コンピュータに、
機器の識別情報、取得対象のコンテンツの識別情報、及び前記機器への前記取得対象のコンテンツの蓄積順を示すシーケンス情報を含むコンテンツ取得要求を受け付け、
他機器の識別情報と前記他機器で保持する最古のコンテンツに対応するシーケンス情報とを対応付けた他機器保持情報を参照し、前記コンテンツ取得要求に含まれる前記機器の識別情報と対応付けられたシーケンス情報が示す蓄積順が、前記コンテンツ取得要求に含まれるシーケンス情報が示す蓄積順より古い場合には、前記コンテンツ取得要求に含まれる機器の識別情報が示す機器に前記取得対象のコンテンツを要求し、前記コンテンツ取得要求に含まれるシーケンス情報が示す蓄積順より新しい場合には、前記取得対象のコンテンツを保持する機器を探索し、探索した機器に前記取得対象のコンテンツを要求し、
要求したコンテンツと共に取得した該コンテンツの取得元である機器の識別情報と、該機器で保持する最古のコンテンツに対応するシーケンス情報とを対応付けて、前記他機器保持情報として記憶し、
取得したコンテンツの識別情報、前記コンテンツ取得要求を受け付けた機器の識別情報、及び前記コンテンツ取得要求を受け付けた機器への前記取得したコンテンツの蓄積順を示すシーケンス情報を、前記コンテンツ取得要求の要求元へ応答する
処理を実行させるためのコンテンツ取得方法。
【０１４４】
（付記１０）
コンテンツ取得要求の要求元が移動後に送信するコンテンツ取得要求に、前記要求元が移動前にコンテンツ取得要求を送信した機器から受信した前記コンテンツの識別情報、前記機器の識別情報、及び前記シーケンス情報が含まれる付記９記載のコンテンツ取得方法。
【０１４５】
（付記１１）
要求したコンテンツと共に取得した前記機器の識別情報と前記シーケンス情報とを対応付けて前記他機器保持情報として記憶する際、今回取得したシーケンス情報の前に最古のコンテンツに対応するシーケンス情報として記憶されていたシーケンス情報を前回情報、今回取得したシーケンス情報を最古情報として記憶し、
前記前回情報が示す蓄積順が、前記最古情報が示す蓄積順より古い場合には、前記コンテンツ取得要求に含まれるシーケンス情報が示す蓄積順が、前記最古情報が示す蓄積順以上、かつ前記前回情報が示す蓄積順未満の場合に、前記コンテンツ取得要求に含まれる機器の識別情報が示す機器に前記取得対象のコンテンツを要求する
付記９または付記１０記載のコンテンツ取得方法。
【０１４６】
（付記１２）
前記コンピュータに、蓄積された複数のコンテンツの容量の合計が予め定めた閾値以上となった場合に、前記複数のコンテンツの容量が前記閾値未満となるまで、前記シーケンス情報が示す蓄積順が古いコンテンツから順に削除することをさらに含む処理を実行させるための付記９〜付記１１のいずれか１項記載のコンテンツ取得方法。
【０１４７】
（付記１３）
コンピュータに、
機器の識別情報、取得対象のコンテンツの識別情報、及び前記機器への前記取得対象のコンテンツの蓄積順を示すシーケンス情報を含むコンテンツ取得要求を受け付け、
他機器の識別情報と前記他機器で保持する最古のコンテンツに対応するシーケンス情報とを対応付けた他機器保持情報を参照し、前記コンテンツ取得要求に含まれる前記機器の識別情報と対応付けられたシーケンス情報が示す蓄積順が、前記コンテンツ取得要求に含まれるシーケンス情報が示す蓄積順より古い場合には、前記コンテンツ取得要求に含まれる機器の識別情報が示す機器に前記取得対象のコンテンツを要求し、前記コンテンツ取得要求に含まれるシーケンス情報が示す蓄積順より新しい場合には、前記取得対象のコンテンツを保持する機器を探索し、探索した機器に前記取得対象のコンテンツを要求し、
要求したコンテンツと共に取得した該コンテンツの取得元である機器の識別情報と、該機器で保持する最古のコンテンツに対応するシーケンス情報とを対応付けて、前記他機器保持情報として記憶し、
取得したコンテンツの識別情報、前記コンテンツ取得要求を受け付けた機器の識別情報、及び前記コンテンツ取得要求を受け付けた機器への前記取得したコンテンツの蓄積順を示すシーケンス情報を、前記コンテンツ取得要求の要求元へ応答する
処理を実行させるためのコンテンツ取得プログラムを記憶した記憶媒体。
【符号の説明】
【０１４８】
１０   コンテンツ取得システム
２０ｎ キャッシュサーバ
２１   グループ情報受付部
２２   選択部
２３   コンテンツ取得部
２４   管理部
２５   コンテンツ応答部
３０ｎ 記憶装置
３１   速度リスト
３２   他ＣＳ保持リスト
３３   コンテンツ管理リスト
３４   コンテンツ記憶部
４０   コンテンツ管理装置
４１   制御部
４２   コンテンツ記憶部
４３   コンテンツリスト
４４   コンテンツ位置リスト
６０ｎ ユーザ端末
８０   コンピュータ
８１   ＣＰＵ
８２   メモリ
８３   記憶部
９０   コンテンツ取得プログラム
【図１】
0006421676.tif 000002
【図２】
0006421676.tif 000003
【図３】
0006421676.tif 000004
【図４】
0006421676.tif 000005
【図５】
0006421676.tif 000006
【図６】
0006421676.tif 000007
【図７】
0006421676.tif 000008
【図８】
0006421676.tif 000009
【図９】
0006421676.tif 000010
【図１０】
0006421676.tif 000011
【図１１】
0006421676.tif 000012
【図１２】
0006421676.tif 000013
【図１３】
0006421676.tif 000014
【図１４】
0006421676.tif 000015
【図１５】
0006421676.tif 000016
【図１６】
0006421676.tif 000017
【図１７】
0006421676.tif 000018
【図１８】
0006421676.tif 000019
【図１９】
0006421676.tif 000020
【図２０】
0006421676.tif 000021
【図２１】
0006421676.tif 000022
【図２２】
0006421676.tif 000023
【図２３】
0006421676.tif 000024
【図２４】
0006421676.tif 000025
【図２５】
0006421676.tif 000026
【図２６】
0006421676.tif 000027