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