(57)【要約】【課題】端末装置からコンテンツデータの参照要求を受けるまでの間にコンテンツデータの代表画像データをより多く収集することを目的としている。【解決手段】コンピュータが、記憶部に記憶されたコンテンツデータを特定する情報と、他のコンピュータが有する他の記憶部に記憶されたコンテンツデータを特定する情報とを比較した結果を参照し、前記記憶部に記憶されていないコンテンツデータが多く記憶された前記他の記憶部を有する前記他のコンピュータから順に、前記記憶部に記憶されていないコンテンツデータの代表画像データを収集する。【選択図】図１２
2014238671.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータによるコンテンツ配信方法であって、該コンピュータが、
記憶部に記憶されたコンテンツデータを特定する情報と、他のコンピュータが有する他の記憶部に記憶されたコンテンツデータを特定する情報とを比較した結果を参照し、
前記記憶部に記憶されていないコンテンツデータが多く記憶された前記他の記憶部を有する前記他のコンピュータから順に、前記記憶部に記憶されていないコンテンツデータの代表画像データを収集するコンテンツ配信方法。
【請求項２】
前記記憶されたコンテンツデータを特定する情報は、
前記コンテンツデータを代表する値と対応するコンテンツデータの有無を示すビット配列である請求項１記載のコンテンツ配信方法。
【請求項３】
前記記憶部に記憶された前記コンテンツデータに含まれるデータを用いて生成したハッシュ値と、前記ハッシュ値に代表されるコンテンツデータとが対応付けられたハッシュテーブルを参照し、
前記記憶部に前記ハッシュ値と対応付けられたコンテンツデータが存在するとき前記ハッシュ値に対応するビットのビット値を１とし、前記記憶部に前記ハッシュ値と対応付けられたコンテンツデータが存在しないとき前記ハッシュ値に対応するビットのビット値を０としたビット配列を生成する請求項２記載のコンテンツ配信方法。
【請求項４】
該コンピュータが生成したビット配列のビット値と、前記他のコンピュータが生成したビット配列のビット値とを比較した結果を参照し、
該コンピュータが生成したビット配列においてビット値が０のビットに対し、排他的論理和が１となるビット数が最も多いビット配列を生成した前記他のコンピュータから順に、前記代表画像データを収集する請求項２又は３記載のコンテンツ配信方法。
【請求項５】
記憶部に記憶されたコンテンツデータを特定する情報と、他のコンピュータが有する他の記憶部に記憶されたコンテンツデータを特定する情報とを比較する比較部（３１５）と、
前記記憶部に記憶されていないコンテンツデータが多く記憶された前記他の記憶部を有する前記他のコンピュータから順に、前記記憶部に記憶されていないコンテンツデータの代表画像データを収集する収集部と、を有するコンテンツ配信サーバ。
【請求項６】
コンピュータに、
記憶部に記憶されたコンテンツデータを特定する情報と、他のコンピュータが有する他の記憶部に記憶されたコンテンツデータを特定する情報との比較結果を参照する処理と、
前記記憶部に記憶されていないコンテンツデータが多く記憶された前記他の記憶部を有する前記他のコンピュータから順に、前記記憶部に記憶されていないコンテンツデータの代表画像データを収集する処理と、を実行させるサムネイル収集プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンテンツデータを端末装置に配信するコンテンツ配信方法、コンテンツ配信サーバ及びサムネイル収集プログラムに関する。
【背景技術】
【０００２】
近年では、ＳＮＳ（social networking service）等の特定のユーザ間でコンテンツデータを共有するサービスが普及されている。このサービスでは、例えば特定のユーザ間で共有される共有コンテンツデータをキャッシュサーバ等に蓄積し、ユーザの端末装置によりキャッシュサーバ内の共有コンテンツデータを参照させる。
【０００３】
ところで従来のキャッシュサーバは、記憶容量が不足すると参照回数の少ないコンテンツデータを削除する。したがって端末装置に共有される共有コンテンツデータは、キャッシュサーバから削除されている場合があり得る。
【０００４】
この場合キャッシュサーバは、端末装置のアクセスを受け付けてから参照要求を受けるまでの間に、他のサーバから参照対象の共有コンテンツデータを検索して取得する。検索の手法としては、例えば所望のファイルが格納されているサーバを絞り、該当するサーバを対象に検索する手法が知られている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−１０２７９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
近年では、端末装置の高機能化やコンテンツデータの高画質化等により、コンテンツデータのサイズが大きくなりつつある。したがってキャッシュサーバが他のサーバから共有コンテンツデータを取得する際に時間がかかる。
【０００７】
開示の技術は、端末装置からコンテンツデータの参照要求を受けるまでの間により多くのコンテンツデータの代表画像データを収集することが可能なコンテンツ配信方法、コンテンツ配信サーバ及びサムネイル収集プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００８】
開示の技術は、コンピュータによるコンテンツ配信方法であって、該コンピュータが、記憶部に記憶されたコンテンツデータを特定する情報と、他のコンピュータが有する他の記憶部に記憶されたコンテンツデータを特定する情報とを比較した結果を参照し、前記記憶部に記憶されていないコンテンツデータが多く記憶された前記他の記憶部を有する前記他のコンピュータから順に、前記記憶部に記憶されていないコンテンツデータの代表画像データを収集する。
【０００９】
上記各手順は、上記各処理を実現する機能部、上記各手順を処理としてコンピュータにより実行させるプログラム、プログラムを記憶したコンピュータ読み取り可能な記憶媒体とすることもできる。
【発明の効果】
【００１０】
開示の技術によれば、端末装置からコンテンツデータの参照要求を受けるまでの間により多くのコンテンツデータの代表画像データを収集することができる。
【図面の簡単な説明】
【００１１】
【図１】コンテンツ配信システムの構成の例を示す図である。
【図２】コンテンツ配信システムの動作の一例を説明する図である。
【図３】キャッシュサーバのハードウェア構成の一例を示す図である。
【図４】第一の実施例のキャッシュサーバの機能を説明する図である。
【図５】ＣＳ管理テーブルの一例を示す図である。
【図６】コンテンツ管理テーブルの一例を示す図である。
【図７】グループ位置テーブルの一例を示す図である。
【図８】ハッシュテーブルの一例を示す図である。
【図９】ハッシュテーブルについて説明する図である。
【図１０】ビット配列の生成について説明する図である。
【図１１】第一の実施例の各キャッシュサーバの有するコンテンツデータと対応したビット配列の例を示す図である。
【図１２】第一の実施例のキャッシュサーバの動作を説明するシーケンス図である。
【図１３】キャッシュサーバによるグループＩＤ取得の処理を説明するシーケンス図である。
【図１４】サムネイルの収集にかかる時間を説明する図である。
【図１５】第二の実施例のキャッシュサーバの動作を説明するシーケンス図である。
【図１６】第三の実施例の各キャッシュサーバの有するコンテンツデータと対応したビット配列の例を示す図である
【図１７】第三の実施例のキャッシュサーバの動作を説明するシーケンス図である。
【図１８】第四の実施例のキャッシュサーバの機能を説明する図である。
【図１９】応答時間テーブルの一例を示す図である。
【図２０】選択ポリシーテーブルの一例を示す図である。
【図２１】第四の実施例のキャッシュサーバの動作を説明するシーケンス図である。
【発明を実施するための形態】
【００１２】
（第一の実施例）
以下に図面を参照して実施例について説明する。図１は、コンテンツ配信システムの構成の例を示す図である。
【００１３】
本実施例のコンテンツ配信システム１００は、ユーザ管理サーバ２００、キャッシュサーバ３００Ａ，３００Ｂ，３００Ｃ，３００Ｄ、ストレージ３０１Ａ，３０１Ｂ，３０１Ｃ，３０１Ｄ、端末装置４００Ａ，４００Ｂを含む。ユーザ管理サーバ２００は、広域ネットワークＮに接続されている。尚図示していないが、広域ネットワークには、各種コンテンツデータを有するコンテンツサーバが接続されていても良い。
【００１４】
キャッシュサーバ３００Ａは、ネットワークＮＷ１を介して広域ネットワークＮと接続されている。またキャッシュサーバ３００Ａは、ストレージ３０１Ａと接続されている。ストレージ３０１Ａには、キャッシュサーバ３００Ａにより配信されるコンテンツデータが格納されている。
【００１５】
キャッシュサーバ３００Ｂは、ネットワークＮＷ２を介して広域ネットワークＮと接続されている。またキャッシュサーバ３００Ｂは、ストレージ３０１Ｂと接続されている。ストレージ３０１Ｂには、キャッシュサーバ３００Ｂにより配信されるコンテンツデータが格納されている。
【００１６】
キャッシュサーバ３００Ｃは、ネットワークＮＷ３を介して広域ネットワークＮと接続されている。またキャッシュサーバ３００Ｃは、ストレージ３０１Ｃと接続されている。ストレージ３０１Ｃには、キャッシュサーバ３００Ｃにより配信されるコンテンツデータが格納されている。
【００１７】
キャッシュサーバ３００Ｄは、ネットワークＮＷ４を介して広域ネットワークＮと接続されている。またキャッシュサーバ３００Ｄは、ストレージ３０１Ｄと接続されている。ストレージ３０１Ｄには、キャッシュサーバ３００Ｄにより配信されるコンテンツデータが格納されている。
【００１８】
端末装置４００Ａは、ネットワークＮＷ１を介してキャッシュサーバ３００Ａと接続されており、端末装置４００ＢはネットワークＮＷ３を介してキャッシュサーバ３００Ｃと接続されている。
【００１９】
本実施例では、広域ネットワークＮに接続されたキャッシュサーバを４台としたが、キャッシュサーバの台数は任意であって良い。本実施例の以下の説明において、４台のキャッシュサーバをそれぞれ区別する場合には、キャッシュサーバ３００Ａ、３００Ｂ，３００Ｃ，３００Ｄと記載し、それぞれを区別しない場合には単にキャッシュサーバ３００と記載する。またストレージ３０１Ａ，３０１Ｂ，３０１Ｃ，３０１Ｄについても同様に、それぞれを区別しない場合にはストレージ３０１と記載する。尚ストレージ３０１は、キャッシュサーバ３００の内部に設けられていても良い。また端末装置４００Ａ，４００Ｂについても同様に、それぞれを区別しない場合には端末装置４００と記載する。
【００２０】
以下に図２を参照して本実施例のコンテンツ配信システム１００の動作の一例を説明する。図２は、コンテンツ配信システムの動作の一例を説明する図である。
【００２１】
本実施例のコンテンツ配信システム１００では、例えば複数の端末装置４００がグルーピングされており、キャッシュサーバ３００が同一グループの端末装置４００間で共有される共有コンテンツデータを同一グループ内の端末装置４００へ配信する。すなわち本実施例のキャッシュサーバ３００は、コンテンツデータを端末装置４００へ配信するサーバである。本実施例のキャッシュサーバ３００は、共有コンテンツデータを配信する際に、各共有コンテンツデータのサムネイルを共有コンテンツデータの代表画像データとし、サムネイルのリストを端末装置４００へ配信し、表示させる。
【００２２】
図２の例では、端末装置４００ＡはユーザＡに所持され、４００ＢはユーザＢに所持されおり、端末装置４００Ａ，４００Ｂはグループ１にグルーピングされている。端末装置４００ＣはユーザＣに所持され、端末装置４００ＤはユーザＤに所持されており、端末装置４００Ｃ，４００Ｄはグループ２にグルーピングされている。また図２では、端末装置４００Ｂを有するユーザＢがネットワークＮＷ３のエリアからネットワークＮＷ２のエリアへ移動した場合を示している。
【００２３】
端末装置４００Ａは、グループ１の共有コンテンツデータを得る際にキャッシュサーバ３００Ａを参照する。またユーザＢの移動前の端末装置４００Ｂは、グループ１の共有コンテンツデータを得る際にキャッシュサーバ３００Ｃを参照する。したがってキャッシュサーバ３００Ａとキャッシュサーバ３００Ｃには、グループ１の共有コンテンツデータが蓄積されている。
【００２４】
また端末装置４００Ｃ，４００Ｄは、グループ２の共有コンテンツデータを得る際に、キャッシュサーバ３００Ｂを参照する。したがってキャッシュサーバ３００Ｂには、グループ２の共有コンテンツデータが蓄積されている。
【００２５】
ここでユーザＢがネットワークＮＷ３のエリアからネットワークＮＷ２のエリアへ移動した後にグループ１の共有コンテンツデータを参照する場合を考える。
【００２６】
端末装置４００Ｂは、ネットワークＮＷ２のエリアに移動した後に共有コンテンツデータを参照する際、キャッシュサーバ３００Ｂに認証情報を送信し、コンテンツ配信システム１００にユーザ認証を実行させる。このときキャッシュサーバ３００Ｂに蓄積されている共有コンテンツデータは、主にグループ２の共有コンテンツデータである。
【００２７】
よってキャッシュサーバ３００Ｂは、キャッシュサーバ３００Ａ，３００Ｃから自身が有していないグループ１の共有コンテンツデータのサムネイルを収集する。本実施例のキャッシュサーバ３００Ｂは、端末装置４００Ｂから認証情報を受信してからグループ１の共有コンテンツデータの参照要求を受けるまでの間にサムネイルの収集を行う。
【００２８】
そしてキャッシュサーバ３００Ｂは、端末装置４００Ｂから参照要求を受けると、収集したグループ１の共有コンテンツデータのサムネイルを共有コンテンツデータのリストとして端末装置４００Ｂに表示させる。
【００２９】
尚図２では、端末装置４００がグルーピングされた例を説明したが、これに限定されない。例えばキャッシュサーバ３００には、各ユーザ個人が参照する各自のコンテンツデータが格納されていても良い。
【００３０】
例えばキャッシュサーバ３００Ａ，３００ＣにユーザＢが参照するユーザＢ用のコンテンツデータが蓄積されていた場合に、ユーザＢがネットワークＮＷ２のエリアで自身のコンテンツデータを参照する場合を考える。
【００３１】
この場合キャッシュサーバ３００Ｂは、他のキャッシュサーバ３００Ａ，３００ＣからユーザＢ用のコンテンツデータのサムネイルを収集し、ユーザＢ用のコンテンツデータのリストとして端末装置４００Ｂに表示させれば良い。すなわち本実施例のキャッシュサーバ３００Ａは、ある特定のグループにグルーピングされたコンテンツデータのサムネイルを他のキャッシュサーバ３００から収集し、端末装置４００へ送信する。例えば端末装置４００がグルーピングされていた場合、端末装置４００から入力されたコンテンツデータは端末装置４００のグループと対応したグループにグルーピングされる。また例えばユーザ毎のコンテンツデータを配信する場合は、コンテンツデータはユーザ毎にグルーピングされる。
【００３２】
以下に本実施例のキャッシュサーバ３００と、キャッシュサーバ３００によるサムネイルの収集について説明する。
【００３３】
図３は、キャッシュサーバのハードウェア構成の一例を示す図である。
【００３４】
本実施例のキャッシュサーバ３００は、それぞれバスＢで相互に接続されている入力装置２１、ドライブ装置２２、補助記憶装置２３、メモリ装置２４、演算処理装置２５、インターフェース装置２６及び出力装置２７を有する。
【００３５】
入力装置２１は、例えばキーボードやマウス等を含み、各種信号を入力するために用いられる。出力装置２７は、例えばディスプレイ等を含み、各種信号の出力や各種情報の表示を行うために用いられる。
【００３６】
インターフェース装置２６は、モデム，ＬＡＮ（Local Area Network）カード等を含み、ネットワークに接続する為に用いられる。
【００３７】
サムネイル収集プログラムは、キャッシュサーバ３００を制御する各種プログラムの少なくとも一部である。サムネイル収集プログラムは例えば記録媒体２８の配布やネットワークからのダウンロードなどによって提供される。サムネイル収集プログラムを記録した記録媒体２８は、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等の様に情報を光学的，電気的或いは磁気的に記録する記録媒体、ＲＯＭ、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
【００３８】
またサムネイル収集プログラムを記録した記録媒体２８がドライブ装置２２にセットされると、サムネイル収集プログラムは記録媒体２８からドライブ装置２２を介して補助記憶装置２３にインストールされる。ネットワークからダウンロードされたサムネイル収集プログラムは、インターフェース装置２６を介して補助記憶装置２３にインストールされる。
【００３９】
補助記憶装置２３は、インストールされたサムネイル収集プログラムを格納すると共に、必要なファイル、データ等を格納する。本実施例の補助記憶装置２３は、例えばストレージ３０１であっても良い。メモリ装置２４は、コンピュータの起動時に補助記憶装置２３からサムネイル収集プログラムを読み出して格納する。そして、演算処理装置２５はメモリ装置２４に格納されたサムネイル収集プログラムに従って、後述するような各種処理を実現している。
【００４０】
次に図４を参照して本実施例のキャッシュサーバ３００の機能を説明する。図４は、第一の実施例のキャッシュサーバの機能を説明する図である。
【００４１】
本実施例のキャッシュサーバ３００は、サムネイル収集部３１０と、サムネイル提供部３２０と、記憶部３３０とを有する。サムネイル収集部３１０は、他のキャッシュサーバ３００からサムネイルを収集する。サムネイル提供部３２０は、他のキャッシュサーバ３００からサムネイルの取得要求に応じて、要求元の他のキャッシュサーバ３００へサムネイルを提供する。
【００４２】
記憶部３３０は、キャッシュサーバ３００が後述する処理を行う際に参照する各種テーブルが格納されている。具体的には記憶部３３０には、キャッシュサーバ（ＣＳ）管理テーブル３３１、コンテンツ管理テーブル３３２、グループ位置テーブル３３３、ハッシュテーブル３３４が格納されている。各テーブルの詳細は後述する。記憶部３３０は、例えば補助記憶装置２３やメモリ装置２４内に設けられた所定の記憶領域である。
【００４３】
本実施例のサムネイル収集部３１０は、認証情報受信部３１１、グループ判断部３１２、ビット配列取得部３１３、ＣＳ管理部３１４、問い合わせ順決定部３１５、サムネイル取得部３１６を有する。
【００４４】
本実施例の認証情報受信部３１１は、端末装置４００から送信される認証情報を受信する。本実施例の認証情報は、例えば端末装置４００のユーザを特定するユーザ識別情報（以下、ユーザＩＤ）と、端末装置４００に割り当てられたグループを識別するグループ識別情報（以下、グループＩＤ）である。
【００４５】
グループ判断部３１２は、認証情報受信部３１１が受信した認証情報に含まれるグループＩＤと同一のグループＩＤが割り振られた端末装置４００がネットワークＮＷのエリア内に存在するか否かを判断する。
【００４６】
具体的にはグループ判断部３１２は、例えば記憶部３３０のグループ位置テーブル３３３を参照し、受信したグループＩＤと一致するグループＩＤがグループ位置テーブル３３３に存在するか否かを判断する。該当するグループＩＤが存在しない場合、グループ判断部３１２は、ネットワークＮＷのエリア内に受信したグループと同一グループが割り振られた端末装置４００はないと判断する。そしてグループ判断部３１２は、受信したグループＩＤをグループ位置テーブル３３３に格納してグループ位置テーブル３３３を更新する。さらにグループ判断部３１２は、コンテンツ配信システム１００の有する全てのキャッシュサーバ３００に対して更新したグループ位置テーブル３３３を送信する。
【００４７】
ビット配列取得部３１３は、グループ判断部３１２の判断結果に応じて、他のキャッシュサーバ３００から後述するビット配列を取得する。ビット配列の詳細は後述する。本実施例のビット配列取得部３１３は、例えばＣＳ管理部３１４が管理する他のキャッシュサーバ３００のＩＰアドレスを参照し、ビット配列を取得する。
【００４８】
ＣＳ管理部３１４は、コンテンツ配信システム１００の有するキャッシュサーバ３００のＩＰアドレスが格納されたＣＳ管理テーブル３３１を管理する。ＣＳ管理部３１４は、ビット配列取得部３１３に要求に応じて他のキャッシュサーバ３００のＩＰアドレスをビット配列取得部３１３へ渡す。
【００４９】
問い合わせ順決定部３１５は、ビット配列取得部３１３が取得したビット配列に基づき、他のキャッシュサーバ３００に対してサムネイルの取得要求を行う順序を決定する。問い合わせ順決定部３１５の処理の詳細は後述する。サムネイル取得部３１６は、他のキャッシュサーバ３００から、サムネイルを取得する。
【００５０】
本実施例のサムネイル提供部３２０は、コンテンツ管理部３２１、ビット配列応答部３２２、サムネイル応答部３２３を有する。
【００５１】
コンテンツ管理部３２１は、ストレージ３０１に格納されているコンテンツデータを管理する。またコンテンツ管理部３２１は、コンテンツ管理テーブル３３２の管理を行う。具体的にはコンテンツ管理部３２１は、例えばストレージ３０１の残容量が所定値以下となった場合に、参照回数の少ないコンテンツデータから順に削除し、コンテンツ管理テーブル３３２の更新を行う。またコンテンツ管理部３２１は、新たなコンテンツデータがキャッシュサーバ３００にダウンロードされた際に、コンテンツ管理テーブル３３２の更新を行う。
【００５２】
コンテンツ管理部３２１は、ハッシュテーブル生成部３２４、ビット配列生成部３２５と、サムネイル生成部３２６を有する。
【００５３】
ハッシュテーブル生成部３２４は、コンテンツ管理テーブル３３２を参照し、ハッシュテーブル３３４を生成する。本実施例のハッシュテーブル生成部３２４は、コンテンツ管理テーブル３３２が更新される度にハッシュテーブル３３４を更新しても良い。ハッシュテーブル生成部３２４の詳細は後述する。
【００５４】
ビット配列生成部３２５は、ハッシュテーブル３３４を参照し、キャッシュサーバ３００がどのコンテンツデータを有しているかを示すビット配列を生成する。ビット配列生成部３２５の詳細は後述する。
【００５５】
サムネイル生成部３２６は、コンテンツデータからサムネイルを生成する。本実施例のサムネイルは、例えばコンテンツデータを代表する代表画像であり、コンテンツデータの一部である。
【００５６】
ビット配列応答部３２２は、他のキャッシュサーバ３００からのビット配列の取得要求を受けて、ビット配列生成部３２５により生成されたビット配列を要求元の他のキャッシュサーバ３００へ送信する。
【００５７】
サムネイル応答部３２３は、他のキャッシュサーバ３００からのサムネイルの取得要求を受けて、サムネイル生成部３２６により生成されたサムネイルを要求元の他のキャッシュサーバ３００へ送信する。
【００５８】
次に図５乃至図８を参照して本実施例の記憶部３３０に格納された各種テーブルについて説明する。図５は、ＣＳ管理テーブルの一例を示す図である。
【００５９】
本実施例のＣＳ管理テーブル３３１は、キャッシュサーバ３００を識別するキャッシュサーバ識別情報（以下、ＣＳＩＤ）と、各キャッシュサーバ３００のＩＰアドレスとが対応付けられている。
【００６０】
図６は、コンテンツ管理テーブルの一例を示す図である。本実施例のコンテンツ管理テーブル３３２は、コンテンツデータを識別するコンテンツ識別情報（コンテンツＩＤ）と、コンテンツデータのタイトルを示すタイトルデータ、作者を示す作者データ、参照回数を示す回数データ及びハッシュ値が対応付けられている。本実施例のハッシュ値は、コンテンツデータのタイトルデータと作者データをハッシュ関数と呼ばれる関数で演算した結果の値であり、コンテンツデータを代表する値である。
【００６１】
本実施例のコンテンツ管理部３２０は、例えばキャッシュサーバ３００が新たなコンテンツデータを取得した場合には、コンテンツ管理テーブル３３２の更新の際に取得したコンテンツデータのハッシュ値を計算しても良い。
【００６２】
また本実施例のコンテンツ管理テーブル３３２は、端末装置４００に割り振られるグループＩＤ毎に設けられていても良い。  
図７は、グループ位置テーブルの一例を示す図である。本実施例のグループ位置テーブル３３３は、コンテンツ配信システム１００の有する全てのキャッシュサーバ３００が有するテーブルである。グループ位置テーブル３３３は、各キャッシュサーバ３００と、端末装置４００に割り振られたグループＩＤとが対応付けられている。
【００６３】
図７の例では、キャッシュサーバ３００Ａが接続されているネットワークＮＷ１のエリア内と、キャッシュサーバ３００Ｃが接続されているネットワークＮＷ３のエリア内に、グループＩＤがＧｒ１の端末装置４００があることがわかる。同様に図７の例では、キャッシュサーバ３００Ｂが接続されているネットワークＮＷ２のエリア内と、キャッシュサーバ３００Ｃが接続されているネットワークＮＷ３のエリア内に、グループＩＤがＧｒ２の端末装置４００があることがわかる。尚本実施例では、例えばグループ１のグループＩＤをＧｒ１とし、グループ２のグループＩＤをＧｒ２とした。
【００６４】
本実施例のキャッシュサーバ３００は、グループ判断部３１２がグループ位置テーブル３３３を更新する度に、グループ位置テーブル３３３を全てのキャッシュサーバ３００に送信する。
【００６５】
図８は、ハッシュテーブルの一例を示す図である。本実施例のハッシュテーブル３３４は、ハッシュ値とコンテンツ管理テーブル３３４におけるコンテンツデータのタイトルとを対応付けたものである。本実施例のハッシュテーブル３３４は、ハッシュテーブル生成部３２４により生成される。
【００６６】
図８の例は、ハッシュテーブル生成部３２４が図６に示すコンテンツ管理テーブル３３２を参照して生成したものである。ハッシュテーブル３３４において、ハッシュ値１のコンテンツデータのタイトルデータは、「Ｊｅｔ」であり、ハッシュ値３のコンテンツデータのタイトルデータは、「Ｆｏｏｔ！！」と「Ｃｈｕｒｃｈ」である。
【００６７】
尚図８の例ではハッシュ値は８までとなっているが、８より大きいハッシュ値が存在しても良い。
【００６８】
以下に図９を参照して本実施例のハッシュテーブル３３４についてさらに説明する。図９は、ハッシュテーブルについて説明する図である。
【００６９】
本実施例のハッシュテーブル生成部３２４は、コンテンツ管理テーブル３３２を参照し、ハッシュ値と対応するコンテンツデータのタイトルデータを抽出し、ハッシュ値と対応付ける。
【００７０】
例えばコンテンツ管理テーブル３３２において、ハッシュ値が１のコンテンツデータは、コンテンツＩＤ１のコンテンツデータである。よってハッシュテーブル生成部３２４は、コンテンツＩＤ１のタイトルデータをハッシュ値１と対応付ける。
【００７１】
コンテンツ管理テーブル３３２において、ハッシュ値が２のコンテンツデータは、存在しない。よってハッシュテーブル生成部３２４は、ハッシュ値２に対する対応付けは行わない。
【００７２】
コンテンツ管理テーブル３３２において、ハッシュ値が３のコンテンツデータは、コンテンツＩＤ２とコンテンツＩＤ４のコンテンツデータである。よってハッシュテーブル生成部３２４は、コンテンツＩＤ２のタイトルデータとコンテンツＩＤ４のタイトルデータとをハッシュ値３と対応付ける。
【００７３】
次に図１０を参照して本実施例のビット配列生成部３２５によるビット配列の生成について説明する。図１０は、ビット配列の生成について説明する図である。
【００７４】
本実施例のビット配列生成部３２５は、ハッシュテーブル３３４から２ビットのビット配列を生成する。
【００７５】
本実施例のビット配列生成部３２５は、ハッシュ値の最大値と同じビット数のビット配列を生成する。例えば図１０の例では、ハッシュ値の最大値は２４０である。したがってビット配列生成部３２５により生成されるビット配列は、２４０ビットのビット配列となる。
【００７６】
本実施例のビット配列生成部３２５は、ビット配列において、タイトルデータが対応付けられているハッシュ値と対応するビットのビット値を１とし、タイトルデータが対応付けられていないハッシュ値と対応するビットのビット値を０とする。
【００７７】
図１０の例では、ハッシュ値１とハッシュ値３には、それぞれタイトルデータが対応付けられている。よってビット配列生成部３２５は、ビット配列の１ビット目と３ビット目のビット値を１とする。また図１０の例では、ハッシュ値２にはタイトルデータが対応付けられていない。よってビット配列生成部３２５は、ビット配列の２ビット目のビット値を０とする。すなわち本実施例のビット配列の各ビットは、コンテンツデータの有無を示している。
【００７８】
以上のように本実施例では、ハッシュ値と対応したコンテンツデータの有無を２ビットのビット配列により表すことで、キャッシュサーバ３００自身が蓄積していないコンテンツデータを有する他のキャッシュサーバ３００を短時間で検索することができる。すなわち本実施例のビット配列は、キャッシュサーバ３００に蓄積されているコンテンツデータを特定する情報である。
【００７９】
図１１は、第一の実施例の各キャッシュサーバの有するコンテンツデータと対応したビット配列の例を示す図である。
【００８０】
図１１（Ａ）は、キャッシュサーバ３００Ａの有するコンテンツデータと対応したビット配列である。キャッシュサーバ３００Ａは、ハッシュ値が１でタイトルデータが「Ｊｅｔ」のコンテンツデータを有する。よってキャッシュサーバ３００Ａのビット配列は、１ビット目のビット値が１となり、２ビット目からはビット値は０となる。
【００８１】
図１１（Ｂ）は、キャッシュサーバ３００Ｂの有するコンテンツデータと対応したビット配列である。キャッシュサーバ３００Ｂは、ハッシュ値が１でタイトルデータが「Ｊｅｔ」のコンテンツデータと、ハッシュ値が３でタイトルデータが「Ｆｏｏｔ」のコンテンツデータとを有する。よってキャッシュサーバ３００Ｂのビット配列は、１ビット目と３ビット目のビット値が１となり、それ以外のビット値は０となる。
【００８２】
図１１（Ｃ）は、キャッシュサーバ３００Ｃの有するコンテンツデータと対応したビット配列である。キャッシュサーバ３００Ｃは、ハッシュ値が１でタイトルデータが「Ｊｅｔ」のコンテンツデータと、ハッシュ値が５でタイトルデータが「Ｄｏｌｐｈｉｎ」のコンテンツデータを有する。またキャッシュサーバ３００Ｃは、ハッシュ値が７でタイトルデータが「Ｅｇｇ」のコンテンツデータと、ハッシュ値が８でタイトルデータが「Ａｐｐｌｅ」のコンテンツデータとを有する。よってキャッシュサーバ３００Ｃのビット配列は、１ビット目、５ビット目、７ビット目及び８ビット目のビット値が１となり、それ以外のビット値は０となる。
【００８３】
図１１（Ｄ）は、キャッシュサーバ３００Ｄの有するコンテンツデータと対応したビット配列である。キャッシュサーバ３００Ｄは、ハッシュ値が２でタイトルデータが「Ｃｌｏｕｄ」のコンテンツデータと、ハッシュ値が３でタイトルデータが「Ｃａｔ」のコンテンツデータを有する。またキャッシュサーバ３００Ｄは、ハッシュ値が６でタイトルデータが「Ｂｉｒｄ」のコンテンツデータと、ハッシュ値が８でタイトルデータが「Ａｐｐｌｅ」のコンテンツデータとを有する。よってキャッシュサーバ３００Ｄのビット配列は、２ビット目、３ビット目、６ビット目及び８ビット目のビット値が１となり、それ以外のビット値は０となる。
【００８４】
以下に、各キャッシュサーバ３００の有するコンテンツデータが図１１に示す状態であるとき、キャッシュサーバ３００Ａが端末装置４００から認証情報を受信した際のキャッシュサーバ３００Ａの動作を説明する。
【００８５】
図１２は、第一の実施例のキャッシュサーバの動作を説明するシーケンス図である。図１２では、端末装置４００Ｃを有するユーザＣがネットワークＮＷ２のエリアからネットワークＮＷ１のエリアへ移動した場合のキャッシュサーバ３００Ａの動作を示している。
【００８６】
本実施例のコンテンツ配信システム１００において、端末装置４００Ｃは、キャッシュサーバ３００Ａに認証情報を送信する（ステップＳ１２０１）。尚本実施例の端末装置４００Ｃは、認証情報をキャッシュサーバ３００Ａへ送信する際に、ユーザＩＤをユーザ管理サーバ２００に送信しても良い。
【００８７】
キャッシュサーバ３００Ａにおいて認証情報受信部３１１により認証情報を受信すると、
グループ判断部３１２によるグループの判断を行う（ステップＳ１２０２）。具体的にはグループ判断部３１２は、グループ位置テーブル３３３を参照し、認証情報に含まれるグループＩＤと同一のグループＩＤが割り振られた端末装置４００がネットワークＮＷ１のエリア内に存在するか否かを判断する。
【００８８】
例えばステップＳ１２０１で受信した認証情報に含まれるグループＩＤがＧｒ２である場合、グループ判断部３１２は、Ｇｒ２が割り振られた端末装置４００がネットワークＮＷ１のエリア内に存在するか否かを判断する。本実施例のキャッシュサーバ３００Ａは、Ｇｒ２が割り振られた端末装置４００がネットワークＮＷ１のエリア内に存在しない場合に後述する処理を行う。また本実施例のキャッシュサーバ３００Ａは、Ｇｒ２が割り振られた端末装置４００がネットワークＮＷ１のエリア内に存在する場合には、後述する処理は行わなくても良い。
【００８９】
該当するグループＩＤがグループ位置テーブル３３３に存在しない場合、キャッシュサーバ３００Ａは、各キャッシュサーバ３００に対してビット配列の取得要求を行い、各キャッシュサーバ３００からビット配列を取得する（ステップＳ１２０３〜１２０８）。具体的にはキャッシュサーバ３００Ａは、ＣＳ管理部３１４にＣＳ管理テーブル３３１を参照させ、各キャッシュサーバ３００のＩＰアドレスを取得する。ビット配列取得部３１３は、取得した各キャッシュサーバ３００のＩＰアドレスに対し、ビット配列の取得要求を行い、各キャッシュサーバ３００からビット配列を取得する。
【００９０】
尚キャッシュサーバ３００Ａは、認証情報に含まれるグループＩＤと対応したコンテンツ管理テーブル３３２から生成されたビット配列の取得要求を行う。例えば認証情報に含まれるグループＩＤがＧｒ２であった場合、ビット配列取得部３１３は、Ｇｒ２に共有される共有コンテンツデータを管理するコンテンツ管理テーブル３３２から生成したビット配列を取得する。
【００９１】
続いてキャッシュサーバ３００Ａは、問い合わせ順決定部３１５により、自身の有するビット配列と取得したビット配列とを比較する。そして自身のビット配列の０に対して排他的論理和が１となるビット数に基づき、各キャッシュサーバ３００に対する問い合わせ順を決定する（ステップＳ１２０９）。
【００９２】
以下にステップＳ１２０９の処理について説明する。本実施例のキャッシュサーバ３００Ａは、ビット配列生成部３２５により、Ｇｒ２と対応するコンテンツ管理テーブル３３２から生成されたハッシュテーブル３３４を参照し、ビット配列を生成する。続いて問い合わせ順決定部３１５は、自身のビット配列と他のキャッシュサーバ３００から取得したビット配列とを比較する。
【００９３】
具体的には本実施例の問い合わせ順決定部３１５は、自身のビット配列における各ビットのビット値と、他のキャッシュサーバ３００から取得したビット配列において対応する各ビットのビット値とを比較する。
【００９４】
そして問い合わせ順決定部３１５は、自身のビット配列の０に対して排他的論理和が１となるビット数が多いビット配列を送信したキャッシュサーバ３００から順に、サムネイルの取得要求を行うように、問い合わせ順を決定する。
【００９５】
キャッシュサーバ３００Ａが生成したビット配列は、１ビット目のビット値が１であり、２ビット目以降のビット値は０である（図１１参照）。すなわちキャッシュサーバ３００Ａは、ハッシュ値１に対応するコンテンツデータを有していることがわかる。
【００９６】
またキャッシュサーバ３００Ｂから取得したビット配列は、１ビット目と３ビット目のビット値が１である（図１１参照）。よってキャッシュサーバ３００Ｂは、ハッシュ値１に対応するコンテンツデータと、ハッシュ値３に対応するコンテンツデータとを有する。
【００９７】
キャッシュサーバ３００Ｂから取得したビット配列において、キャッシュサーバ３００Ａのビット配列のビット値０に対して排他的論理和が１となるビット数は、３ビット目のみであり、その数は１となる。すなわちキャッシュサーバ３００Ｂは、キャッシュサーバ３００Ａが有していないハッシュ値３に対応するコンテンツデータを有することがわかる。
【００９８】
キャッシュサーバ３００Ｃから取得したビット配列は、１、５、７、８ビット目のビット値が１である（図１１参照）。よってキャッシュサーバ３００Ｃは、ハッシュ値１に対応するコンテンツデータと、ハッシュ値３に対応するコンテンツデータとを有する。またキャッシュサーバ３００Ｃから取得したビット配列において、キャッシュサーバ３００Ａのビット配列のビット値０に対して排他的論理和が１となるビット数は、５、７、８ビット目であり、その数は３となる。すなわちキャッシュサーバ３００Ｃは、キャッシュサーバ３００Ａが有していないハッシュ値５、７、８に対応するコンテンツデータを有することがわかる。
【００９９】
キャッシュサーバ３００Ｄから取得したビット配列は、２、３、６、８ビット目のビット値が１である（図１１参照）。よってキャッシュサーバ３００Ｄは、ハッシュ値２、３、６、８に対応するコンテンツデータを有する。またキャッシュサーバ３００Ｄから取得したビット配列において、キャッシュサーバ３００Ａのビット配列のビット値０に対して排他的論理和が１となっているビット数は、２、３、６、８ビット目であり、その数は４となる。すなわちキャッシュサーバ３００Ｄは、キャッシュサーバ３００Ａが有していないハッシュ値２、３、６、８に対応するコンテンツデータを有することがわかる。
【０１００】
以上の比較結果から、自身のビット配列においてビット値が０であり、且つ他のキャッシュサーバ３００から取得したビット配列においてビット値が１となっているビット数が最も多いキャッシュサーバ３００は、キャッシュサーバ３００Ｄである。よって本実施例の問い合わせ順決定部３１５は、最初に問い合わせを行うキャッシュサーバ３００として、キャッシュサーバ３００Ｄを選択する（ステップＳ１２１０）。
【０１０１】
続いてサムネイル取得部３１６は、選択したキャッシュサーバ３００Ｄにサムネイルの取得要求を行う（ステップＳ１２１１）。このときサムネイル取得部３１６は、認証情報に含まれるグループＩＤと、このグループＩＤと対応したコンテンツ管理テーブル３３２に格納されたコンテンツＩＤをサムネイルの取得要求と共に送信する。
【０１０２】
キャッシュサーバ３００Ｄは、サムネイルの取得要求を受けると、グループＩＤと対応するコンテンツ管理テーブル３３２を参照し、受け付けたコンテンツＩＤを含まないコンテンツデータを抽出する。そしてキャッシュサーバ３００Ｄは、抽出したコンテンツデータのサムネイルを生成する（ステップＳ１２１２）。続いてキャッシュサーバ３００Ｄは、生成したサムネイルのリストをキャッシュサーバ３００Ａへ送信する（ステップＳ１２１３）。
【０１０３】
キャッシュサーバ３００Ａは、サムネイルのリストを受け付けると、コンテンツ管理テーブル３３２とハッシュテーブル３３４を更新する（ステップＳ１２１４）。続いてキャッシュサーバ３００Ａは、ビット配列を取得した全てのキャッシュサーバ３００からサムネイルのリストを取得したか否かを判断する（ステップＳ１２１５）。
【０１０４】
ステップＳ１２１５において全てのキャッシュサーバ３００からサムネイルのリストを取得した場合、キャッシュサーバ３００Ａはサムネイルの収集を終了する。ステップＳ１２１５において全てのキャッシュサーバ３００からサムネイルのリストを取得していない場合、キャッシュサーバ３００ＡはステップＳ１２０９へ戻る。このときキャッシュサーバ３００Ａは、問い合わせ順決定部３１５により、サムネイルのリストを取得したキャッシュサーバ３００のビット配列との比較結果を削除しても良い。
【０１０５】
本実施例のキャッシュサーバ３００Ａは、端末装置４００から認証情報を受信した後に、端末装置４００からコンテンツデータの参照要求を受信すると、コンテンツデータのリストとして収集したサムネイルのリストを端末装置４００に表示させる。すなわち本実施例のサムネイルは、コンテンツデータを代表する代表画像である。
【０１０６】
端末装置４００において、サムネイルのリストからサムネイルが選択されると、キャッシュサーバ３００Ａは、選択されたサムネイルと対応するコンテンツデータを端末装置４００へ配信する。
【０１０７】
以上のように本実施例では、キャッシュサーバ３００Ａの有していないコンテンツデータをより多く有しているキャッシュサーバ３００から順にサムネイルを取得することで、コンテンツデータの参照要求を受けるまでの間により多くのサムネイルを収集する。
【０１０８】
尚図１２の例では、端末装置４００が送信する認証情報にグループＩＤが含まれるものとして説明したが、これに限定されない。以下に図１３を参照して、認証情報にグループＩＤが含まれない場合について説明する。
【０１０９】
図１３は、キャッシュサーバによるグループＩＤ取得の処理を説明するシーケンス図である。
【０１１０】
端末装置４００が認証情報をキャッシュサーバ３００Ａへ送信すると（ステップＳ１３１）、キャッシュサーバ３００Ａは認証情報受信部３１１により、受信した認証情報にグループＩＤが含まれるか判断する。そして認証情報にグループＩＤが含まれない場合、キャッシュサーバ３００Ａは、ユーザ管理サーバ２００に対して受信したユーザＩＤと共にグループＩＤ取得要求を行う（ステップＳ１３２）。
【０１１１】
本実施例のユーザ管理サーバ２００は、例えばユーザＩＤとグループＩＤとが対応付けられたユーザ情報テーブルを有している。本実施例のユーザ管理サーバ２００は、ユーザ情報テーブルを参照し、グループＩＤ取得要求と共に受信したユーザＩＤと対応するグループＩＤを抽出し、キャッシュサーバ３００Ａへ送信する（ステップＳ１３３）。キャッシュサーバ３００Ａは、端末装置４００のグループＩＤを取得すると、グループ位置テーブル３３３を更新しても良い。
【０１１２】
本実施例では、以上のように認証情報にグループＩＤが含まれていなくても良い。尚本実施例のユーザ情報テーブルは、予めユーザ管理サーバ２００に格納されていても良い。
【０１１３】
以下に図１４を参照して本実施例のキャッシュサーバ３００Ａによるサムネイルの収集にかかる時間について説明する。図１４は、サムネイルの収集にかかる時間を説明する図である。図１４（Ａ）は、収集対象のコンテンツデータを有するキャッシュサーバ３００に対するサムネイルの取得要求を行う順を考慮しない場合を説明する図である。図１４（Ｂ）は、収集対象のコンテンツデータを多く有する順にサムネイルの取得要求を行った場合を説明する図である。図１４（Ａ）、（Ｂ）共に、横軸は時間、縦軸は収集したサムネイルの数を示している。
【０１１４】
図１４（Ａ）では、キャッシュサーバ３００Ａが認証情報を受信してサムネイルの収集を開始してから参照要求を受信するまでに間に収集できたサムネイルは、全体の４０％である。したがってこの場合キャッシュサーバ３００Ａは、参照要求を受けるまでに収集できなかったコンテンツデータのサムネイルを広域ＮＷに接続されたコンテンツサーバ等から取得する。よってこの場合は、キャッシュサーバ３００Ａがコンテンツサーバ等から残り６０％のコンテンツデータを取得するまで、端末装置４００に全てのコンテンツデータのサムネイルのリストを表示させることができない。
【０１１５】
図１４（Ｂ）では、キャッシュサーバ３００Ａが認証情報を受信してサムネイルの収集を開始してから参照要求を受信するまでに間に収集できたサムネイルは、全体の８０％であり、図１４（Ａ）と比べてより多くのサムネイルを収集していることがわかる。
【０１１６】
図１４（Ｂ）では、キャッシュサーバ３００Ａは、コンテンツサーバ等から残り２０％のコンテンツデータを取得すれば良く、より短時間で端末装置４００に全てのコンテンツデータのサムネイルのリストを表示させることができる。
【０１１７】
以上のように本実施例のキャッシュサーバ３００は、ビット配列を比較して特定のグループのコンテンツデータのサムネイルを収集する際に、自身が有していないコンテンツデータを多く有しているキャッシュサーバ３００から順にサムネイルを収集する。よって本実施例では、コンテンツデータの代表画像であるサムネイルを端末装置４００から参照要求を受けるまでの間により多く収集することができる。
【０１１８】
（第二の実施例）
以下に図面を参照して第二の実施例について説明する。第二の実施例は、ビット配列同士の比較をビット配列の取得要求を受けたキャッシュサーバ３００が行う点が第一の実施例と相違する。よって以下の第二の実施例の説明では、第一の実施例との相違点についてのみ説明し、同様の機能構成を有するものには第一の実施例の説明で用いた符号と同様の符号を付与して説明を省略する。
【０１１９】
図１５は、第二の実施例のキャッシュサーバの動作を説明するシーケンス図である。
【０１２０】
図１５のステップＳ１５０１、１５０２の処理は、図１２のステップＳ１２０１、Ｓ１２０２の処理と同様であるから、説明を省略する。
【０１２１】
キャッシュサーバ３００Ａは、キャッシュサーバ３００Ｂに対してビット配列において排他的論理和が１となるビット数の取得要求を行う（ステップＳ１５０３）。キャッシュサーバ３００Ｂは、ビット配列の取得要求を受けると、要求元であるキャッシュサーバ３００Ａのビット配列と自身のビット配列とを比較する。そしてキャッシュサーバ３００Ｂは、自身のビット配列において、キャッシュサーバ３００Ａのビット配列のビット値０に対して排他的論理和が１となるビット数をカウントする（ステップＳ１５０４）。続いてキャッシュサーバ３００Ｂは、カウントしたビット数をキャッシュサーバ３００Ａへ送信する（ステップＳ１５０５）。
【０１２２】
次にキャッシュサーバ３００Ａは、キャッシュサーバ３００Ｃに対してビット配列において排他的論理和が１となるビット数の取得要求を行う（ステップＳ１５０６）。キャッシュサーバ３００Ｃは、ビット配列の取得要求を受けると、要求元であるキャッシュサーバ３００Ａのビット配列と自身のビット配列とを比較する。そしてキャッシュサーバ３００Ｃは、自身のビット配列において、キャッシュサーバ３００Ａのビット配列のビット値０に対して排他的論理和が１となるビット数をカウントする（ステップＳ１５０７）。続いてキャッシュサーバ３００Ｃは、カウントしたビット数をキャッシュサーバ３００Ａへ送信する（ステップＳ１５０８）。
【０１２３】
次にキャッシュサーバ３００Ａは、キャッシュサーバ３００Ｄに対してビット配列において排他的論理和が１となるビット数の取得要求を行う（ステップＳ１５０９）。キャッシュサーバ３００Ｄは、ビット配列の取得要求を受けると、要求元であるキャッシュサーバ３００Ａのビット配列と自身のビット配列とを比較する。そしてキャッシュサーバ３００Ｄは、自身のビット配列において、キャッシュサーバ３００Ａのビット配列のビット値０に対して排他的論理和が１となるビット数をカウントする（ステップＳ１５１０）。続いてキャッシュサーバ３００Ｄは、カウントしたビット数をキャッシュサーバ３００Ａへ送信する（ステップＳ１５１１）。
【０１２４】
続いてキャッシュサーバ３００Ａは、問い合わせ順決定部３１５により、取得したビット数が大きい順に問い合わせを行う順を決定する（ステップＳ１５１２）。
【０１２５】
ステップＳ１５１３からステップＳ１５１８までの処理は、図１２のステップＳ１２１０からステップＳ１２１５までの処理と同様であるから、説明を省略する。
【０１２６】
以上のように本実施例では、キャッシュサーバ３００Ａのビット配列のビット値０に対して排他的論理和が１となるビット数をカウントする処理を、他のキャッシュサーバ３００に分散することができる。よって本実施例では、キャッシュサーバ３００Ａの処理負荷を軽減できる。
【０１２７】
（第三の実施例）
以下に図面を参照して第三の実施例について説明する。第三の実施例は、ハッシュ値と対応するコンテンツデータが複数存在する点が第一の実施例と相違する。よって以下の第三の実施例の説明では、第一の実施例との相違点についてのみ説明し、同様の機能構成を有するものには第一の実施例の説明で用いた符号と同様の符号を付与して説明を省略する。
【０１２８】
図１６は、第三の実施例の各キャッシュサーバの有するコンテンツデータと対応したビット配列の例を示す図である。
【０１２９】
図１６（Ａ）は、キャッシュサーバ３００Ａの有するコンテンツデータと対応したビット配列であり、図１１（Ａ）と同様であるから説明を省略する。
【０１３０】
図１６（Ｂ）は、キャッシュサーバ３００Ｂの有するコンテンツデータと対応したビット配列であり、図１１（Ｂ）と同様であるから説明を省略する。
【０１３１】
図１６（Ｃ）は、キャッシュサーバ３００Ｃの有するコンテンツデータと対応したビット配列である。
【０１３２】
本実施例のキャッシュサーバ３００Ｃにおいて、ハッシュ値１に対応したコンテンツデータの１つであり、そのタイトルデータは「Ｊｅｔ」である。またハッシュ値５に対応したコンテンツデータは２つであり、そのタイトルデータは「Ｄｏｌｐｈｉｎ」と「ｋｉｗｉ」である。
【０１３３】
またキャッシュサーバ３００Ｃにおいて、ハッシュ値７に対応するコンテンツデータのタイトルデータが「Ｅｇｇ」であり、ハッシュ値８に対応するコンテンツデータのタイトルデータが「Ａｐｐｌｅ」である。よってキャッシュサーバ３００Ｃのビット配列は、１ビット目、５ビット目、７ビット目及び８ビット目のビット値が１となり、それ以外のビット値は０となる。
【０１３４】
図１６（Ｄ）は、キャッシュサーバ３００Ｄの有するコンテンツデータと対応したビット配列であり、図１１（Ｄ）と同様であるから説明を省略する。
【０１３５】
以下に、各キャッシュサーバ３００の有するコンテンツデータが図１６に示す状態であるとき、キャッシュサーバ３００Ａが端末装置４００から認証情報を受信した際のキャッシュサーバ３００Ａの動作を説明する。
【０１３６】
図１７は、第三の実施例のキャッシュサーバの動作を説明するシーケンス図である。
【０１３７】
図１７のステップＳ１７０１からステップＳ１７１０までの処理は、図１２のステップＳ１２０１からステップＳ１２１０までの処理と同様であるから、説明を省略する。
【０１３８】
ステップＳ１７１０に続いてキャッシュサーバ３００Ａは、問い合わせ順決定部３１５により、選択されたキャッシュサーバ３００が複数存在するか否かを判断する（ステップＳ１７１１）。
【０１３９】
ステップＳ１７１１において複数のキャッシュサーバ３００が存在する場合、問い合わせ順決定部３１５は、の中で最もコンテンツ数が多いキャッシュサーバ３００を選択する（ステップＳ１７１２）。ステップＳ１７１１において複数のキャッシュサーバ３００が存在しない場合、キャッシュサーバ３００ＡはステップＳ１７１３へ進む。
【０１４０】
ステップＳ１７１３からステップＳ１７１７までの処理は、図１２のステップＳ１２１１からステップＳ１２１５までの処理と同様であるから説明を省略する。
【０１４１】
以下にステップＳ１７１１、１７１２の処理についてさらに説明する。
【０１４２】
本実施例において、キャッシュサーバ３００Ｃから取得したビット配列は、キャッシュサーバ３００Ａのビット配列のビット値０に対して排他的論理和が１となるビット数が３となり、最もビット数が多いビット配列となる。（図１６参照）。またキャッシュサーバ３００Ｄから取得したビット配列も、キャッシュサーバ３００Ａのビット配列のビット値０に対して排他的論理和が１となるビット数が３である（図１６参照）。よってステップＳ１７１０では、キャッシュサーバ３００Ｃ，Ｄが選択される。
【０１４３】
この場合問い合わせ順決定部３１５は、キャッシュサーバ３００Ｃとキャッシュサーバ３００Ｄのコンテンツ管理テーブル３３２を参照し、両者が有しているコンテンツデータの数を取得する。具体的にはキャッシュサーバ３００Ａは、キャッシュサーバ３００Ｃ，Ｄのコンテンツ管理テーブル３３２の一番最後に格納されたコンテンツＩＤを参照し、コンテンツデータの総数としても良い。
【０１４４】
続いて問い合わせ順決定部３１５は、取得したコンテンツデータの総数を比較し、コンテンツデータの総数が多い順にサムネイルの取得要求を行うように問い合わせ順を決定する。この場合では、キャッシュサーバ３００Ｃのコンテンツデータは４つであり、キャッシュサーバ３００Ｄのコンテンツデータは３つである。よって問い合わせ順決定部３１５は、ステップＳ１７１２でキャッシュサーバ３００Ｃを選択する。
【０１４５】
尚本実施例では、問い合わせ順をコンテンツデータの総数が多い順としたが、これに限定されない。問い合わせ順は、例えばハッシュテーブル３３４を参照し、キャッシュサーバ３００Ａのビット配列のビット値０に対して排他的論理和が１となるビットと対応するハッシュ値に対応付けられたコンテンツデータの数の合計が多い順としても良い。
【０１４６】
以上のように本実施例では、保持しているコンテンツデータが多いキャッシュサーバ３００から順にサムネイルの取得要求を行うことで、端末装置４００から参照要求を受けるまでの間により多くのサムネイルを収集することができる。
【０１４７】
（第四の実施例）
以下に図面を参照して第四の実施例について説明する。第四の実施例は、キャッシュサーバ３００の応答時間に基づきサムネイルの取得要求を行う順を決定する点が第三の実施例と相違する。よって以下の第四の実施例の説明では、第三の実施例との相違点についてのみ説明し、同様の機能構成を有するものには第三の実施例の説明で用いた符号と同様の符号を付与して説明を省略する。
【０１４８】
図１８は、第四の実施例のキャッシュサーバの機能を説明する図である。
【０１４９】
本実施例のキャッシュサーバ５００は、サムネイル収集部３１０Ａと、記憶部３３０Ａとを有する。
【０１５０】
本実施例のサムネイル収集部３１０Ａは、ＣＳ管理部３１４Ａ、問い合わせ順決定部３１５Ａを有する。
【０１５１】
ＣＳ管理部３１４Ａは、応答時間管理部３１７を有する。応答時間管理部３１７は、キャッシュサーバ５００Ａが他のキャッシュサーバ５００に対して行った要求に対する他のキャッシュサーバ５００の応答時間を管理する。具体的には応答時間管理部３１７は、他のキャッシュサーバ５００の応答時間を計測し、後述する応答時間テーブル３３５に格納する。
【０１５２】
問い合わせ順決定部３１５Ａは、選択ポリシー設定部３１８を有する。選択ポリシー設定部３１８は、問い合わせ順を決定する際の優先度を示す選択ポリシーを設定する。具体的には選択ポリシー設定部３１８は、後述する。選択ポリシーテーブル３３６を参照し、選択ポリシーを設定する。
【０１５３】
本実施例の記憶部３３０Ａは、第一の実施例の記憶部３３０の有する各テーブルに加え、応答時間テーブル３３５と選択ポリシーテーブル３３６とを有する。
【０１５４】
図１９は、応答時間テーブルの一例を示す図である。
【０１５５】
本実施例の応答時間テーブル３３５は、各キャッシュサーバ５００のＣＳＩＤと、応答時間とが対応付けられている。図１９では、例えばキャッシュサーバ５００がキャッシュサーバ５００Ｂに問い合わせを行ってから、キャッシュサーバ５００Ｂが応答するまでに係る時間は、３００ｍｓｅｃである。この応答時間は、例えばキャッシュサーバ５００Ａ
とキャッシュサーバ５００Ｂとの距離により変化しても良い。
【０１５６】
図２０は、選択ポリシーテーブルの一例を示す図である。本実施例の選択ポリシーテーブル３３６では、設定項目と、選択ポリシーとが対応付けられている。
【０１５７】
本実施例の問い合わせ順決定部３１５Ａは、選択ポリシーテーブル３３６において選択優先度１が選択された場合、応答時間を優先して問い合わせ順を決定する。また本実施例の問い合わせ順決定部３１５Ａは、選択ポリシーテーブル３３６において選択優先度２が選択された場合、他のキャッシュサーバ５００の保持するコンテンツデータの数を優先して問い合わせ順を決定する。
【０１５８】
以下に図２１を参照して本実施例のキャッシュサーバ５００の動作を説明する。図２１は、第四の実施例のキャッシュサーバの動作を説明するシーケンス図である。図２１では、選択ポリシーテーブル３３６において選択優先度１が選択された場合のキャッシュサーバ５００Ａの動作を説明している。尚選択ポリシーテーブル３３６において選択優先度２が選択された場合のキャッシュサーバ５００Ａの動作は、第三の実施例に説明した通りである。
【０１５９】
図２１のステップＳ２１０１からステップＳ２１０８までの処理は、図１７のステップＳ１７０１からステップＳ１７０８までの処理と同様であるので、説明を省略する。
【０１６０】
続いてキャッシュサーバ５００Ａは、応答時間管理部３１７により計測した各キャッシュサーバ５００の応答時間を応答時間テーブル３３５に格納する（ステップＳ２１０９）。
【０１６１】
ステップＳ２１１０からステップＳ２１１２までの処理は、図１７のステップＳ１７０９からステップＳ１７１１までの処理と同様であるから説明を省略する。
【０１６２】
ステップＳ２１１２において複数のキャッシュサーバ５００が存在する場合、問い合わせ順決定部３１５Ａは、応答時間テーブル３３５を参照し、複数のキャッシュサーバ５００のうち応答時間が最も短いキャッシュサーバ５００を選択する（ステップＳ２１１３）。
【０１６３】
ステップＳ２１１４からステップＳ２１１８の処理は、図１７のステップＳ１７１３からステップＳ１７１７までの処理と同様であるから、説明を省略する。
【０１６４】
以上のように本実施例では、キャッシュサーバ５００Ａのビット配列のビット値０に対して排他的論理和が１となるビット数が同じ複数のキャッシュサーバ５００が存在した場合に、応答時間が短い順にサムネイルの取得要求を行う順を決定する。本実施例では、以上のようにサムネイルの取得要求を行う順を決定することで、端末装置４００から認証情報を受信してから参照要求を受信するまでの間により多くのサムネイルを収集することができる。
【０１６５】
開示の技術では、以下に記載する付記のような形態が考えられる。
（付記１）
コンピュータによるコンテンツ配信方法であって、該コンピュータが、
記憶部に記憶されたコンテンツデータを特定する情報と、他のコンピュータが有する他の記憶部に記憶されたコンテンツデータを特定する情報とを比較した結果を参照し、
前記記憶部に記憶されていないコンテンツデータが多く記憶された前記他の記憶部を有する前記他のコンピュータから順に、前記記憶部に記憶されていないコンテンツデータの代表画像データを収集するコンテンツ配信方法。
（付記２）
前記記憶されたコンテンツデータを特定する情報は、
前記コンテンツデータを代表する値と対応するコンテンツデータの有無を示すビット配列である付記１記載のコンテンツ配信方法。
（付記３）
前記記憶部に記憶された前記コンテンツデータに含まれるデータを用いて生成したハッシュ値と、前記ハッシュ値に代表されるコンテンツデータとが対応付けられたハッシュテーブルを参照し、
前記記憶部に前記ハッシュ値と対応付けられたコンテンツデータが存在するとき前記ハッシュ値に対応するビットのビット値を１とし、前記記憶部に前記ハッシュ値と対応付けられたコンテンツデータが存在しないとき前記ハッシュ値に対応するビットのビット値を０としたビット配列を生成する付記２記載のコンテンツ配信方法。
（付記４）
該コンピュータが生成したビット配列のビット値と、前記他のコンピュータが生成したビット配列のビット値とを比較した結果を参照し、
該コンピュータが生成したビット配列においてビット値が０のビットに対し、排他的論理和が１となるビット数が最も多いビット配列を生成した前記他のコンピュータから順に、前記代表画像データを収集する付記２又は３記載のコンテンツ配信方法。
（付記５）
該コンピュータが生成したビット配列を前記他のコンピュータへ送信し、
前記他のコンピュータにおいて、該コンピュータが生成したビット配列と前記他のコンピュータが生成したビット配列とを比較した結果を受信し、
該コンピュータが生成したビット配列においてビット値が０のビットに対し、排他的論理和が１となるビット数が最も多いビット配列を生成した前記他のコンピュータから順に、前記代表画像データを収集する付記４記載のコンテンツ配信方法。
（付記６）
該コンピュータが生成したビット配列においてビット値が０のビットに対し、排他的論理和が１となるビット数が同じ複数のビット配列が存在する場合、
前記複数のビット配列を生成したそれぞれの前記他のコンピュータのうち、記憶されているコンテンツデータの数が多い方から順に、前記代表画像データを収集する付記４記載のコンテンツ配信方法。
（付記７）
該コンピュータが生成したビット配列においてビット値が０のビットに対し、排他的論理和が１となるビット数が同じ複数のビット配列が存在する場合、
前記複数のビット配列を生成した前記他のコンピュータのうち、該コンピュータの要求に応答する応答時間が短い方から順に、前記代表画像データを収集する付記４記載のコンテンツ配信方法。
（付記８）
記憶部に記憶されたコンテンツデータを特定する情報と、他のコンピュータが有する他の記憶部に記憶されたコンテンツデータを特定する情報とを比較する比較部（３１５）と、
前記記憶部に記憶されていないコンテンツデータが多く記憶された前記他の記憶部を有する前記他のコンピュータから順に、前記記憶部に記憶されていないコンテンツデータの代表画像データを収集する収集部と、を有するコンテンツ配信サーバ。
（付記９）
コンピュータに、
記憶部に記憶されたコンテンツデータを特定する情報と、他のコンピュータが有する他の記憶部に記憶されたコンテンツデータを特定する情報との比較結果を参照する処理と、
前記記憶部に記憶されていないコンテンツデータが多く記憶された前記他の記憶部を有する前記他のコンピュータから順に、前記記憶部に記憶されていないコンテンツデータの代表画像データを収集する処理と、を実行させるサムネイル収集プログラム。
【０１６６】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から
逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【０１６７】
１００  コンテンツ配信システム
２００  ユーザ管理サーバ
３００，３００Ａ〜３００Ｄ  キャッシュサーバ
３１０，３１０Ａ  サムネイル収集部
３１３  ビット配列取得部
３１５  問い合わせ順決定部
３１６  サムネイル取得部
３２０  サムネイル提供部
３２２  ビット配列応答部
３２３  サムネイル応答部
３２４  ハッシュテーブル生成部
３２５  ビット配列生成部
３３０  記憶部
【図１】
2014238671.tif 000003
【図２】
2014238671.tif 000004
【図３】
2014238671.tif 000005
【図４】
2014238671.tif 000006
【図５】
2014238671.tif 000007
【図６】
2014238671.tif 000008
【図７】
2014238671.tif 000009
【図８】
2014238671.tif 000010
【図９】
2014238671.tif 000011
【図１０】
2014238671.tif 000012
【図１１】
2014238671.tif 000013
【図１２】
2014238671.tif 000014
【図１３】
2014238671.tif 000015
【図１４】
2014238671.tif 000016
【図１５】
2014238671.tif 000017
【図１６】
2014238671.tif 000018
【図１７】
2014238671.tif 000019
【図１８】
2014238671.tif 000020
【図１９】
2014238671.tif 000021
【図２０】
2014238671.tif 000022
【図２１】
2014238671.tif 000023