JP6201438B2 - コンテンツ配信方法、コンテンツ配信サーバ及びサムネイル収集プログラム - Google Patents

コンテンツ配信方法、コンテンツ配信サーバ及びサムネイル収集プログラム Download PDF

Info

Publication number
JP6201438B2
JP6201438B2 JP2013120177A JP2013120177A JP6201438B2 JP 6201438 B2 JP6201438 B2 JP 6201438B2 JP 2013120177 A JP2013120177 A JP 2013120177A JP 2013120177 A JP2013120177 A JP 2013120177A JP 6201438 B2 JP6201438 B2 JP 6201438B2
Authority
JP
Japan
Prior art keywords
cache server
content data
bit
storage unit
content
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2013120177A
Other languages
English (en)
Other versions
JP2014238671A (ja
Inventor
上野 仁
仁 上野
健一 阿比留
健一 阿比留
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013120177A priority Critical patent/JP6201438B2/ja
Priority to US14/270,450 priority patent/US9692847B2/en
Publication of JP2014238671A publication Critical patent/JP2014238671A/ja
Application granted granted Critical
Publication of JP6201438B2 publication Critical patent/JP6201438B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/183Provision of network file services by network file servers, e.g. by using NFS, CIFS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、コンテンツデータを端末装置に配信するコンテンツ配信方法、コンテンツ配信サーバ及びサムネイル収集プログラムに関する。
近年では、SNS(social networking service)等の特定のユーザ間でコンテンツデータを共有するサービスが普及されている。このサービスでは、例えば特定のユーザ間で共有される共有コンテンツデータをキャッシュサーバ等に蓄積し、ユーザの端末装置によりキャッシュサーバ内の共有コンテンツデータを参照させる。
ところで従来のキャッシュサーバは、記憶容量が不足すると参照回数の少ないコンテンツデータを削除する。したがって端末装置に共有される共有コンテンツデータは、キャッシュサーバから削除されている場合があり得る。
この場合キャッシュサーバは、端末装置のアクセスを受け付けてから参照要求を受けるまでの間に、他のサーバから参照対象の共有コンテンツデータを検索して取得する。検索の手法としては、例えば所望のファイルが格納されているサーバを絞り、該当するサーバを対象に検索する手法が知られている。
特開2008−102795号公報
近年では、端末装置の高機能化やコンテンツデータの高画質化等により、コンテンツデータのサイズが大きくなりつつある。したがってキャッシュサーバが他のサーバから共有コンテンツデータを取得する際に時間がかかる。
開示の技術は、端末装置からコンテンツデータの参照要求を受けるまでの間により多くのコンテンツデータの代表画像データを収集することが可能なコンテンツ配信方法、コンテンツ配信サーバ及びサムネイル収集プログラムを提供することを目的としている。
開示の技術は、コンピュータによるコンテンツ配信方法であって、該コンピュータが、記憶部におけるコンテンツデータの有無を示すビット配列と、他のコンピュータが有する他の記憶部におけるコンテンツデータの有無を示すビット配列とを比較した結果を参照し、前記記憶部に記憶されていないコンテンツデータが多く記憶された前記他の記憶部を有する前記他のコンピュータから順に、前記記憶部に記憶されていないコンテンツデータの代表画像データを収集する。
上記各手順は、上記各処理を実現する機能部、上記各手順を処理としてコンピュータにより実行させるプログラム、プログラムを記憶したコンピュータ読み取り可能な記憶媒体とすることもできる。
開示の技術によれば、端末装置からコンテンツデータの参照要求を受けるまでの間により多くのコンテンツデータの代表画像データを収集することができる。
コンテンツ配信システムの構成の例を示す図である。 コンテンツ配信システムの動作の一例を説明する図である。 キャッシュサーバのハードウェア構成の一例を示す図である。 第一の実施例のキャッシュサーバの機能を説明する図である。 CS管理テーブルの一例を示す図である。 コンテンツ管理テーブルの一例を示す図である。 グループ位置テーブルの一例を示す図である。 ハッシュテーブルの一例を示す図である。 ハッシュテーブルについて説明する図である。 ビット配列の生成について説明する図である。 第一の実施例の各キャッシュサーバの有するコンテンツデータと対応したビット配列の例を示す図である。 第一の実施例のキャッシュサーバの動作を説明するシーケンス図である。 キャッシュサーバによるグループID取得の処理を説明するシーケンス図である。 サムネイルの収集にかかる時間を説明する図である。 第二の実施例のキャッシュサーバの動作を説明するシーケンス図である。 第三の実施例の各キャッシュサーバの有するコンテンツデータと対応したビット配列の例を示す図である 第三の実施例のキャッシュサーバの動作を説明するシーケンス図である。 第四の実施例のキャッシュサーバの機能を説明する図である。 応答時間テーブルの一例を示す図である。 選択ポリシーテーブルの一例を示す図である。 第四の実施例のキャッシュサーバの動作を説明するシーケンス図である。
(第一の実施例)
以下に図面を参照して実施例について説明する。図1は、コンテンツ配信システムの構成の例を示す図である。
本実施例のコンテンツ配信システム100は、ユーザ管理サーバ200、キャッシュサーバ300A,300B,300C,300D、ストレージ301A,301B,301C,301D、端末装置400A,400Bを含む。ユーザ管理サーバ200は、広域ネットワークNに接続されている。尚図示していないが、広域ネットワークには、各種コンテンツデータを有するコンテンツサーバが接続されていても良い。
キャッシュサーバ300Aは、ネットワークNW1を介して広域ネットワークNと接続されている。またキャッシュサーバ300Aは、ストレージ301Aと接続されている。ストレージ301Aには、キャッシュサーバ300Aにより配信されるコンテンツデータが格納されている。
キャッシュサーバ300Bは、ネットワークNW2を介して広域ネットワークNと接続されている。またキャッシュサーバ300Bは、ストレージ301Bと接続されている。ストレージ301Bには、キャッシュサーバ300Bにより配信されるコンテンツデータが格納されている。
キャッシュサーバ300Cは、ネットワークNW3を介して広域ネットワークNと接続されている。またキャッシュサーバ300Cは、ストレージ301Cと接続されている。ストレージ301Cには、キャッシュサーバ300Cにより配信されるコンテンツデータが格納されている。
キャッシュサーバ300Dは、ネットワークNW4を介して広域ネットワークNと接続されている。またキャッシュサーバ300Dは、ストレージ301Dと接続されている。ストレージ301Dには、キャッシュサーバ300Dにより配信されるコンテンツデータが格納されている。
端末装置400Aは、ネットワークNW1を介してキャッシュサーバ300Aと接続されており、端末装置400BはネットワークNW3を介してキャッシュサーバ300Cと接続されている。
本実施例では、広域ネットワークNに接続されたキャッシュサーバを4台としたが、キャッシュサーバの台数は任意であって良い。本実施例の以下の説明において、4台のキャッシュサーバをそれぞれ区別する場合には、キャッシュサーバ300A、300B,300C,300Dと記載し、それぞれを区別しない場合には単にキャッシュサーバ300と記載する。またストレージ301A,301B,301C,301Dについても同様に、それぞれを区別しない場合にはストレージ301と記載する。尚ストレージ301は、キャッシュサーバ300の内部に設けられていても良い。また端末装置400A,400Bについても同様に、それぞれを区別しない場合には端末装置400と記載する。
以下に図2を参照して本実施例のコンテンツ配信システム100の動作の一例を説明する。図2は、コンテンツ配信システムの動作の一例を説明する図である。
本実施例のコンテンツ配信システム100では、例えば複数の端末装置400がグルーピングされており、キャッシュサーバ300が同一グループの端末装置400間で共有される共有コンテンツデータを同一グループ内の端末装置400へ配信する。すなわち本実施例のキャッシュサーバ300は、コンテンツデータを端末装置400へ配信するサーバである。本実施例のキャッシュサーバ300は、共有コンテンツデータを配信する際に、各共有コンテンツデータのサムネイルを共有コンテンツデータの代表画像データとし、サムネイルのリストを端末装置400へ配信し、表示させる。
図2の例では、端末装置400AはユーザAに所持され、400BはユーザBに所持されおり、端末装置400A,400Bはグループ1にグルーピングされている。端末装置400CはユーザCに所持され、端末装置400DはユーザDに所持されており、端末装置400C,400Dはグループ2にグルーピングされている。また図2では、端末装置400Bを有するユーザBがネットワークNW3のエリアからネットワークNW2のエリアへ移動した場合を示している。
端末装置400Aは、グループ1の共有コンテンツデータを得る際にキャッシュサーバ300Aを参照する。またユーザBの移動前の端末装置400Bは、グループ1の共有コンテンツデータを得る際にキャッシュサーバ300Cを参照する。したがってキャッシュサーバ300Aとキャッシュサーバ300Cには、グループ1の共有コンテンツデータが蓄積されている。
また端末装置400C,400Dは、グループ2の共有コンテンツデータを得る際に、キャッシュサーバ300Bを参照する。したがってキャッシュサーバ300Bには、グループ2の共有コンテンツデータが蓄積されている。
ここでユーザBがネットワークNW3のエリアからネットワークNW2のエリアへ移動した後にグループ1の共有コンテンツデータを参照する場合を考える。
端末装置400Bは、ネットワークNW2のエリアに移動した後に共有コンテンツデータを参照する際、キャッシュサーバ300Bに認証情報を送信し、コンテンツ配信システム100にユーザ認証を実行させる。このときキャッシュサーバ300Bに蓄積されている共有コンテンツデータは、主にグループ2の共有コンテンツデータである。
よってキャッシュサーバ300Bは、キャッシュサーバ300A,300Cから自身が有していないグループ1の共有コンテンツデータのサムネイルを収集する。本実施例のキャッシュサーバ300Bは、端末装置400Bから認証情報を受信してからグループ1の共有コンテンツデータの参照要求を受けるまでの間にサムネイルの収集を行う。
そしてキャッシュサーバ300Bは、端末装置400Bから参照要求を受けると、収集したグループ1の共有コンテンツデータのサムネイルを共有コンテンツデータのリストとして端末装置400Bに表示させる。
尚図2では、端末装置400がグルーピングされた例を説明したが、これに限定されない。例えばキャッシュサーバ300には、各ユーザ個人が参照する各自のコンテンツデータが格納されていても良い。
例えばキャッシュサーバ300A,300CにユーザBが参照するユーザB用のコンテンツデータが蓄積されていた場合に、ユーザBがネットワークNW2のエリアで自身のコンテンツデータを参照する場合を考える。
この場合キャッシュサーバ300Bは、他のキャッシュサーバ300A,300CからユーザB用のコンテンツデータのサムネイルを収集し、ユーザB用のコンテンツデータのリストとして端末装置400Bに表示させれば良い。すなわち本実施例のキャッシュサーバ300Aは、ある特定のグループにグルーピングされたコンテンツデータのサムネイルを他のキャッシュサーバ300から収集し、端末装置400へ送信する。例えば端末装置400がグルーピングされていた場合、端末装置400から入力されたコンテンツデータは端末装置400のグループと対応したグループにグルーピングされる。また例えばユーザ毎のコンテンツデータを配信する場合は、コンテンツデータはユーザ毎にグルーピングされる。
以下に本実施例のキャッシュサーバ300と、キャッシュサーバ300によるサムネイルの収集について説明する。
図3は、キャッシュサーバのハードウェア構成の一例を示す図である。
本実施例のキャッシュサーバ300は、それぞれバスBで相互に接続されている入力装置21、ドライブ装置22、補助記憶装置23、メモリ装置24、演算処理装置25、インターフェース装置26及び出力装置27を有する。
入力装置21は、例えばキーボードやマウス等を含み、各種信号を入力するために用いられる。出力装置27は、例えばディスプレイ等を含み、各種信号の出力や各種情報の表示を行うために用いられる。
インターフェース装置26は、モデム,LAN(Local Area Network)カード等を含み、ネットワークに接続する為に用いられる。
サムネイル収集プログラムは、キャッシュサーバ300を制御する各種プログラムの少なくとも一部である。サムネイル収集プログラムは例えば記録媒体28の配布やネットワークからのダウンロードなどによって提供される。サムネイル収集プログラムを記録した記録媒体28は、CD−ROM、フレキシブルディスク、光磁気ディスク等の様に情報を光学的,電気的或いは磁気的に記録する記録媒体、ROM、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
またサムネイル収集プログラムを記録した記録媒体28がドライブ装置22にセットされると、サムネイル収集プログラムは記録媒体28からドライブ装置22を介して補助記憶装置23にインストールされる。ネットワークからダウンロードされたサムネイル収集プログラムは、インターフェース装置26を介して補助記憶装置23にインストールされる。
補助記憶装置23は、インストールされたサムネイル収集プログラムを格納すると共に、必要なファイル、データ等を格納する。本実施例の補助記憶装置23は、例えばストレージ301であっても良い。メモリ装置24は、コンピュータの起動時に補助記憶装置23からサムネイル収集プログラムを読み出して格納する。そして、演算処理装置25はメモリ装置24に格納されたサムネイル収集プログラムに従って、後述するような各種処理を実現している。
次に図4を参照して本実施例のキャッシュサーバ300の機能を説明する。図4は、第一の実施例のキャッシュサーバの機能を説明する図である。
本実施例のキャッシュサーバ300は、サムネイル収集部310と、サムネイル提供部320と、記憶部330とを有する。サムネイル収集部310は、他のキャッシュサーバ300からサムネイルを収集する。サムネイル提供部320は、他のキャッシュサーバ300からサムネイルの取得要求に応じて、要求元の他のキャッシュサーバ300へサムネイルを提供する。
記憶部330は、キャッシュサーバ300が後述する処理を行う際に参照する各種テーブルが格納されている。具体的には記憶部330には、キャッシュサーバ(CS)管理テーブル331、コンテンツ管理テーブル332、グループ位置テーブル333、ハッシュテーブル334が格納されている。各テーブルの詳細は後述する。記憶部330は、例えば補助記憶装置23やメモリ装置24内に設けられた所定の記憶領域である。
本実施例のサムネイル収集部310は、認証情報受信部311、グループ判断部312、ビット配列取得部313、CS管理部314、問い合わせ順決定部315、サムネイル取得部316を有する。
本実施例の認証情報受信部311は、端末装置400から送信される認証情報を受信する。本実施例の認証情報は、例えば端末装置400のユーザを特定するユーザ識別情報(以下、ユーザID)と、端末装置400に割り当てられたグループを識別するグループ識別情報(以下、グループID)である。
グループ判断部312は、認証情報受信部311が受信した認証情報に含まれるグループIDと同一のグループIDが割り振られた端末装置400がネットワークNWのエリア内に存在するか否かを判断する。
具体的にはグループ判断部312は、例えば記憶部330のグループ位置テーブル333を参照し、受信したグループIDと一致するグループIDがグループ位置テーブル333に存在するか否かを判断する。該当するグループIDが存在しない場合、グループ判断部312は、ネットワークNWのエリア内に受信したグループと同一グループが割り振られた端末装置400はないと判断する。そしてグループ判断部312は、受信したグループIDをグループ位置テーブル333に格納してグループ位置テーブル333を更新する。さらにグループ判断部312は、コンテンツ配信システム100の有する全てのキャッシュサーバ300に対して更新したグループ位置テーブル333を送信する。
ビット配列取得部313は、グループ判断部312の判断結果に応じて、他のキャッシュサーバ300から後述するビット配列を取得する。ビット配列の詳細は後述する。本実施例のビット配列取得部313は、例えばCS管理部314が管理する他のキャッシュサーバ300のIPアドレスを参照し、ビット配列を取得する。
CS管理部314は、コンテンツ配信システム100の有するキャッシュサーバ300のIPアドレスが格納されたCS管理テーブル331を管理する。CS管理部314は、ビット配列取得部313に要求に応じて他のキャッシュサーバ300のIPアドレスをビット配列取得部313へ渡す。
問い合わせ順決定部315は、ビット配列取得部313が取得したビット配列に基づき、他のキャッシュサーバ300に対してサムネイルの取得要求を行う順序を決定する。問い合わせ順決定部315の処理の詳細は後述する。サムネイル取得部316は、他のキャッシュサーバ300から、サムネイルを取得する。
本実施例のサムネイル提供部320は、コンテンツ管理部321、ビット配列応答部322、サムネイル応答部323を有する。
コンテンツ管理部321は、ストレージ301に格納されているコンテンツデータを管理する。またコンテンツ管理部321は、コンテンツ管理テーブル332の管理を行う。具体的にはコンテンツ管理部321は、例えばストレージ301の残容量が所定値以下となった場合に、参照回数の少ないコンテンツデータから順に削除し、コンテンツ管理テーブル332の更新を行う。またコンテンツ管理部321は、新たなコンテンツデータがキャッシュサーバ300にダウンロードされた際に、コンテンツ管理テーブル332の更新を行う。
コンテンツ管理部321は、ハッシュテーブル生成部324、ビット配列生成部325と、サムネイル生成部326を有する。
ハッシュテーブル生成部324は、コンテンツ管理テーブル332を参照し、ハッシュテーブル334を生成する。本実施例のハッシュテーブル生成部324は、コンテンツ管理テーブル332が更新される度にハッシュテーブル334を更新しても良い。ハッシュテーブル生成部324の詳細は後述する。
ビット配列生成部325は、ハッシュテーブル334を参照し、キャッシュサーバ300がどのコンテンツデータを有しているかを示すビット配列を生成する。ビット配列生成部325の詳細は後述する。
サムネイル生成部326は、コンテンツデータからサムネイルを生成する。本実施例のサムネイルは、例えばコンテンツデータを代表する代表画像であり、コンテンツデータの一部である。
ビット配列応答部322は、他のキャッシュサーバ300からのビット配列の取得要求を受けて、ビット配列生成部325により生成されたビット配列を要求元の他のキャッシュサーバ300へ送信する。
サムネイル応答部323は、他のキャッシュサーバ300からのサムネイルの取得要求を受けて、サムネイル生成部326により生成されたサムネイルを要求元の他のキャッシュサーバ300へ送信する。
次に図5乃至図8を参照して本実施例の記憶部330に格納された各種テーブルについて説明する。図5は、CS管理テーブルの一例を示す図である。
本実施例のCS管理テーブル331は、キャッシュサーバ300を識別するキャッシュサーバ識別情報(以下、CSID)と、各キャッシュサーバ300のIPアドレスとが対応付けられている。
図6は、コンテンツ管理テーブルの一例を示す図である。本実施例のコンテンツ管理テーブル332は、コンテンツデータを識別するコンテンツ識別情報(コンテンツID)と、コンテンツデータのタイトルを示すタイトルデータ、作者を示す作者データ、参照回数を示す回数データ及びハッシュ値が対応付けられている。本実施例のハッシュ値は、コンテンツデータのタイトルデータと作者データをハッシュ関数と呼ばれる関数で演算した結果の値であり、コンテンツデータを代表する値である。
本実施例のコンテンツ管理部320は、例えばキャッシュサーバ300が新たなコンテンツデータを取得した場合には、コンテンツ管理テーブル332の更新の際に取得したコンテンツデータのハッシュ値を計算しても良い。
また本実施例のコンテンツ管理テーブル332は、端末装置400に割り振られるグループID毎に設けられていても良い。
図7は、グループ位置テーブルの一例を示す図である。本実施例のグループ位置テーブル333は、コンテンツ配信システム100の有する全てのキャッシュサーバ300が有するテーブルである。グループ位置テーブル333は、各キャッシュサーバ300と、端末装置400に割り振られたグループIDとが対応付けられている。
図7の例では、キャッシュサーバ300Aが接続されているネットワークNW1のエリア内と、キャッシュサーバ300Cが接続されているネットワークNW3のエリア内に、グループIDがGr1の端末装置400があることがわかる。同様に図7の例では、キャッシュサーバ300Bが接続されているネットワークNW2のエリア内と、キャッシュサーバ300Cが接続されているネットワークNW3のエリア内に、グループIDがGr2の端末装置400があることがわかる。尚本実施例では、例えばグループ1のグループIDをGr1とし、グループ2のグループIDをGr2とした。
本実施例のキャッシュサーバ300は、グループ判断部312がグループ位置テーブル333を更新する度に、グループ位置テーブル333を全てのキャッシュサーバ300に送信する。
図8は、ハッシュテーブルの一例を示す図である。本実施例のハッシュテーブル334は、ハッシュ値とコンテンツ管理テーブル334におけるコンテンツデータのタイトルとを対応付けたものである。本実施例のハッシュテーブル334は、ハッシュテーブル生成部324により生成される。
図8の例は、ハッシュテーブル生成部324が図6に示すコンテンツ管理テーブル332を参照して生成したものである。ハッシュテーブル334において、ハッシュ値1のコンテンツデータのタイトルデータは、「Jet」であり、ハッシュ値3のコンテンツデータのタイトルデータは、「Foot!!」と「Church」である。
尚図8の例ではハッシュ値は8までとなっているが、8より大きいハッシュ値が存在しても良い。
以下に図9を参照して本実施例のハッシュテーブル334についてさらに説明する。図9は、ハッシュテーブルについて説明する図である。
本実施例のハッシュテーブル生成部324は、コンテンツ管理テーブル332を参照し、ハッシュ値と対応するコンテンツデータのタイトルデータを抽出し、ハッシュ値と対応付ける。
例えばコンテンツ管理テーブル332において、ハッシュ値が1のコンテンツデータは、コンテンツID1のコンテンツデータである。よってハッシュテーブル生成部324は、コンテンツID1のタイトルデータをハッシュ値1と対応付ける。
コンテンツ管理テーブル332において、ハッシュ値が2のコンテンツデータは、存在しない。よってハッシュテーブル生成部324は、ハッシュ値2に対する対応付けは行わない。
コンテンツ管理テーブル332において、ハッシュ値が3のコンテンツデータは、コンテンツID2とコンテンツID4のコンテンツデータである。よってハッシュテーブル生成部324は、コンテンツID2のタイトルデータとコンテンツID4のタイトルデータとをハッシュ値3と対応付ける。
次に図10を参照して本実施例のビット配列生成部325によるビット配列の生成について説明する。図10は、ビット配列の生成について説明する図である。
本実施例のビット配列生成部325は、ハッシュテーブル334から2ビットのビット配列を生成する。
本実施例のビット配列生成部325は、ハッシュ値の最大値と同じビット数のビット配列を生成する。例えば図10の例では、ハッシュ値の最大値は240である。したがってビット配列生成部325により生成されるビット配列は、240ビットのビット配列となる。
本実施例のビット配列生成部325は、ビット配列において、タイトルデータが対応付けられているハッシュ値と対応するビットのビット値を1とし、タイトルデータが対応付けられていないハッシュ値と対応するビットのビット値を0とする。
図10の例では、ハッシュ値1とハッシュ値3には、それぞれタイトルデータが対応付けられている。よってビット配列生成部325は、ビット配列の1ビット目と3ビット目のビット値を1とする。また図10の例では、ハッシュ値2にはタイトルデータが対応付けられていない。よってビット配列生成部325は、ビット配列の2ビット目のビット値を0とする。すなわち本実施例のビット配列の各ビットは、コンテンツデータの有無を示している。
以上のように本実施例では、ハッシュ値と対応したコンテンツデータの有無を2ビットのビット配列により表すことで、キャッシュサーバ300自身が蓄積していないコンテンツデータを有する他のキャッシュサーバ300を短時間で検索することができる。すなわち本実施例のビット配列は、キャッシュサーバ300に蓄積されているコンテンツデータを特定する情報である。
図11は、第一の実施例の各キャッシュサーバの有するコンテンツデータと対応したビット配列の例を示す図である。
図11(A)は、キャッシュサーバ300Aの有するコンテンツデータと対応したビット配列である。キャッシュサーバ300Aは、ハッシュ値が1でタイトルデータが「Jet」のコンテンツデータを有する。よってキャッシュサーバ300Aのビット配列は、1ビット目のビット値が1となり、2ビット目からはビット値は0となる。
図11(B)は、キャッシュサーバ300Bの有するコンテンツデータと対応したビット配列である。キャッシュサーバ300Bは、ハッシュ値が1でタイトルデータが「Jet」のコンテンツデータと、ハッシュ値が3でタイトルデータが「Foot」のコンテンツデータとを有する。よってキャッシュサーバ300Bのビット配列は、1ビット目と3ビット目のビット値が1となり、それ以外のビット値は0となる。
図11(C)は、キャッシュサーバ300Cの有するコンテンツデータと対応したビット配列である。キャッシュサーバ300Cは、ハッシュ値が1でタイトルデータが「Jet」のコンテンツデータと、ハッシュ値が5でタイトルデータが「Dolphin」のコンテンツデータを有する。またキャッシュサーバ300Cは、ハッシュ値が7でタイトルデータが「Egg」のコンテンツデータと、ハッシュ値が8でタイトルデータが「Apple」のコンテンツデータとを有する。よってキャッシュサーバ300Cのビット配列は、1ビット目、5ビット目、7ビット目及び8ビット目のビット値が1となり、それ以外のビット値は0となる。
図11(D)は、キャッシュサーバ300Dの有するコンテンツデータと対応したビット配列である。キャッシュサーバ300Dは、ハッシュ値が2でタイトルデータが「Cloud」のコンテンツデータと、ハッシュ値が3でタイトルデータが「Cat」のコンテンツデータを有する。またキャッシュサーバ300Dは、ハッシュ値が6でタイトルデータが「Bird」のコンテンツデータと、ハッシュ値が8でタイトルデータが「Apple」のコンテンツデータとを有する。よってキャッシュサーバ300Dのビット配列は、2ビット目、3ビット目、6ビット目及び8ビット目のビット値が1となり、それ以外のビット値は0となる。
以下に、各キャッシュサーバ300の有するコンテンツデータが図11に示す状態であるとき、キャッシュサーバ300Aが端末装置400から認証情報を受信した際のキャッシュサーバ300Aの動作を説明する。
図12は、第一の実施例のキャッシュサーバの動作を説明するシーケンス図である。図12では、端末装置400Cを有するユーザCがネットワークNW2のエリアからネットワークNW1のエリアへ移動した場合のキャッシュサーバ300Aの動作を示している。
本実施例のコンテンツ配信システム100において、端末装置400Cは、キャッシュサーバ300Aに認証情報を送信する(ステップS1201)。尚本実施例の端末装置400Cは、認証情報をキャッシュサーバ300Aへ送信する際に、ユーザIDをユーザ管理サーバ200に送信しても良い。
キャッシュサーバ300Aにおいて認証情報受信部311により認証情報を受信すると、
グループ判断部312によるグループの判断を行う(ステップS1202)。具体的にはグループ判断部312は、グループ位置テーブル333を参照し、認証情報に含まれるグループIDと同一のグループIDが割り振られた端末装置400がネットワークNW1のエリア内に存在するか否かを判断する。
例えばステップS1201で受信した認証情報に含まれるグループIDがGr2である場合、グループ判断部312は、Gr2が割り振られた端末装置400がネットワークNW1のエリア内に存在するか否かを判断する。本実施例のキャッシュサーバ300Aは、Gr2が割り振られた端末装置400がネットワークNW1のエリア内に存在しない場合に後述する処理を行う。また本実施例のキャッシュサーバ300Aは、Gr2が割り振られた端末装置400がネットワークNW1のエリア内に存在する場合には、後述する処理は行わなくても良い。
該当するグループIDがグループ位置テーブル333に存在しない場合、キャッシュサーバ300Aは、各キャッシュサーバ300に対してビット配列の取得要求を行い、各キャッシュサーバ300からビット配列を取得する(ステップS1203〜1208)。具体的にはキャッシュサーバ300Aは、CS管理部314にCS管理テーブル331を参照させ、各キャッシュサーバ300のIPアドレスを取得する。ビット配列取得部313は、取得した各キャッシュサーバ300のIPアドレスに対し、ビット配列の取得要求を行い、各キャッシュサーバ300からビット配列を取得する。
尚キャッシュサーバ300Aは、認証情報に含まれるグループIDと対応したコンテンツ管理テーブル332から生成されたビット配列の取得要求を行う。例えば認証情報に含まれるグループIDがGr2であった場合、ビット配列取得部313は、Gr2に共有される共有コンテンツデータを管理するコンテンツ管理テーブル332から生成したビット配列を取得する。
続いてキャッシュサーバ300Aは、問い合わせ順決定部315により、自身の有するビット配列と取得したビット配列とを比較する。そして自身のビット配列の0に対して排他的論理和が1となるビット数に基づき、各キャッシュサーバ300に対する問い合わせ順を決定する(ステップS1209)。
以下にステップS1209の処理について説明する。本実施例のキャッシュサーバ300Aは、ビット配列生成部325により、Gr2と対応するコンテンツ管理テーブル332から生成されたハッシュテーブル334を参照し、ビット配列を生成する。続いて問い合わせ順決定部315は、自身のビット配列と他のキャッシュサーバ300から取得したビット配列とを比較する。
具体的には本実施例の問い合わせ順決定部315は、自身のビット配列における各ビットのビット値と、他のキャッシュサーバ300から取得したビット配列において対応する各ビットのビット値とを比較する。
そして問い合わせ順決定部315は、自身のビット配列の0に対して排他的論理和が1となるビット数が多いビット配列を送信したキャッシュサーバ300から順に、サムネイルの取得要求を行うように、問い合わせ順を決定する。
キャッシュサーバ300Aが生成したビット配列は、1ビット目のビット値が1であり、2ビット目以降のビット値は0である(図11参照)。すなわちキャッシュサーバ300Aは、ハッシュ値1に対応するコンテンツデータを有していることがわかる。
またキャッシュサーバ300Bから取得したビット配列は、1ビット目と3ビット目のビット値が1である(図11参照)。よってキャッシュサーバ300Bは、ハッシュ値1に対応するコンテンツデータと、ハッシュ値3に対応するコンテンツデータとを有する。
キャッシュサーバ300Bから取得したビット配列において、キャッシュサーバ300Aのビット配列のビット値0に対して排他的論理和が1となるビット数は、3ビット目のみであり、その数は1となる。すなわちキャッシュサーバ300Bは、キャッシュサーバ300Aが有していないハッシュ値3に対応するコンテンツデータを有することがわかる。
キャッシュサーバ300Cから取得したビット配列は、1、5、7、8ビット目のビット値が1である(図11参照)。よってキャッシュサーバ300Cは、ハッシュ値1に対応するコンテンツデータと、ハッシュ値5、7、8に対応するコンテンツデータとを有する。またキャッシュサーバ300Cから取得したビット配列において、キャッシュサーバ300Aのビット配列のビット値0に対して排他的論理和が1となるビット数は、5、7、8ビット目であり、その数は3となる。すなわちキャッシュサーバ300Cは、キャッシュサーバ300Aが有していないハッシュ値5、7、8に対応するコンテンツデータを有することがわかる。
キャッシュサーバ300Dから取得したビット配列は、2、3、6、8ビット目のビット値が1である(図11参照)。よってキャッシュサーバ300Dは、ハッシュ値2、3、6、8に対応するコンテンツデータを有する。またキャッシュサーバ300Dから取得したビット配列において、キャッシュサーバ300Aのビット配列のビット値0に対して排他的論理和が1となっているビット数は、2、3、6、8ビット目であり、その数は4となる。すなわちキャッシュサーバ300Dは、キャッシュサーバ300Aが有していないハッシュ値2、3、6、8に対応するコンテンツデータを有することがわかる。
以上の比較結果から、自身のビット配列においてビット値が0であり、且つ他のキャッシュサーバ300から取得したビット配列においてビット値が1となっているビット数が最も多いキャッシュサーバ300は、キャッシュサーバ300Dである。よって本実施例の問い合わせ順決定部315は、最初に問い合わせを行うキャッシュサーバ300として、キャッシュサーバ300Dを選択する(ステップS1210)。
続いてサムネイル取得部316は、選択したキャッシュサーバ300Dにサムネイルの取得要求を行う(ステップS1211)。このときサムネイル取得部316は、認証情報に含まれるグループIDと、このグループIDと対応したコンテンツ管理テーブル332に格納されたコンテンツIDをサムネイルの取得要求と共に送信する。
キャッシュサーバ300Dは、サムネイルの取得要求を受けると、グループIDと対応するコンテンツ管理テーブル332を参照し、受け付けたコンテンツIDを含まないコンテンツデータを抽出する。そしてキャッシュサーバ300Dは、抽出したコンテンツデータのサムネイルを生成する(ステップS1212)。続いてキャッシュサーバ300Dは、生成したサムネイルのリストをキャッシュサーバ300Aへ送信する(ステップS1213)。
キャッシュサーバ300Aは、サムネイルのリストを受け付けると、コンテンツ管理テーブル332とハッシュテーブル334を更新する(ステップS1214)。続いてキャッシュサーバ300Aは、ビット配列を取得した全てのキャッシュサーバ300からサムネイルのリストを取得したか否かを判断する(ステップS1215)。
ステップS1215において全てのキャッシュサーバ300からサムネイルのリストを取得した場合、キャッシュサーバ300Aはサムネイルの収集を終了する。ステップS1215において全てのキャッシュサーバ300からサムネイルのリストを取得していない場合、キャッシュサーバ300AはステップS1209へ戻る。このときキャッシュサーバ300Aは、問い合わせ順決定部315により、サムネイルのリストを取得したキャッシュサーバ300のビット配列との比較結果を削除しても良い。
本実施例のキャッシュサーバ300Aは、端末装置400から認証情報を受信した後に、端末装置400からコンテンツデータの参照要求を受信すると、コンテンツデータのリストとして収集したサムネイルのリストを端末装置400に表示させる。すなわち本実施例のサムネイルは、コンテンツデータを代表する代表画像である。
端末装置400において、サムネイルのリストからサムネイルが選択されると、キャッシュサーバ300Aは、選択されたサムネイルと対応するコンテンツデータを端末装置400へ配信する。
以上のように本実施例では、キャッシュサーバ300Aの有していないコンテンツデータをより多く有しているキャッシュサーバ300から順にサムネイルを取得することで、コンテンツデータの参照要求を受けるまでの間により多くのサムネイルを収集する。
尚図12の例では、端末装置400が送信する認証情報にグループIDが含まれるものとして説明したが、これに限定されない。以下に図13を参照して、認証情報にグループIDが含まれない場合について説明する。
図13は、キャッシュサーバによるグループID取得の処理を説明するシーケンス図である。
端末装置400が認証情報をキャッシュサーバ300Aへ送信すると(ステップS131)、キャッシュサーバ300Aは認証情報受信部311により、受信した認証情報にグループIDが含まれるか判断する。そして認証情報にグループIDが含まれない場合、キャッシュサーバ300Aは、ユーザ管理サーバ200に対して受信したユーザIDと共にグループID取得要求を行う(ステップS132)。
本実施例のユーザ管理サーバ200は、例えばユーザIDとグループIDとが対応付けられたユーザ情報テーブルを有している。本実施例のユーザ管理サーバ200は、ユーザ情報テーブルを参照し、グループID取得要求と共に受信したユーザIDと対応するグループIDを抽出し、キャッシュサーバ300Aへ送信する(ステップS133)。キャッシュサーバ300Aは、端末装置400のグループIDを取得すると、グループ位置テーブル333を更新しても良い。
本実施例では、以上のように認証情報にグループIDが含まれていなくても良い。尚本実施例のユーザ情報テーブルは、予めユーザ管理サーバ200に格納されていても良い。
以下に図14を参照して本実施例のキャッシュサーバ300Aによるサムネイルの収集にかかる時間について説明する。図14は、サムネイルの収集にかかる時間を説明する図である。図14(A)は、収集対象のコンテンツデータを有するキャッシュサーバ300に対するサムネイルの取得要求を行う順を考慮しない場合を説明する図である。図14(B)は、収集対象のコンテンツデータを多く有する順にサムネイルの取得要求を行った場合を説明する図である。図14(A)、(B)共に、横軸は時間、縦軸は収集したサムネイルの数を示している。
図14(A)では、キャッシュサーバ300Aが認証情報を受信してサムネイルの収集を開始してから参照要求を受信するまでに間に収集できたサムネイルは、全体の40%である。したがってこの場合キャッシュサーバ300Aは、参照要求を受けるまでに収集できなかったコンテンツデータのサムネイルを広域NWに接続されたコンテンツサーバ等から取得する。よってこの場合は、キャッシュサーバ300Aがコンテンツサーバ等から残り60%のコンテンツデータを取得するまで、端末装置400に全てのコンテンツデータのサムネイルのリストを表示させることができない。
図14(B)では、キャッシュサーバ300Aが認証情報を受信してサムネイルの収集を開始してから参照要求を受信するまでに間に収集できたサムネイルは、全体の80%であり、図14(A)と比べてより多くのサムネイルを収集していることがわかる。
図14(B)では、キャッシュサーバ300Aは、コンテンツサーバ等から残り20%のコンテンツデータを取得すれば良く、より短時間で端末装置400に全てのコンテンツデータのサムネイルのリストを表示させることができる。
以上のように本実施例のキャッシュサーバ300は、ビット配列を比較して特定のグループのコンテンツデータのサムネイルを収集する際に、自身が有していないコンテンツデータを多く有しているキャッシュサーバ300から順にサムネイルを収集する。よって本実施例では、コンテンツデータの代表画像であるサムネイルを端末装置400から参照要求を受けるまでの間により多く収集することができる。
(第二の実施例)
以下に図面を参照して第二の実施例について説明する。第二の実施例は、ビット配列同士の比較をビット配列の取得要求を受けたキャッシュサーバ300が行う点が第一の実施例と相違する。よって以下の第二の実施例の説明では、第一の実施例との相違点についてのみ説明し、同様の機能構成を有するものには第一の実施例の説明で用いた符号と同様の符号を付与して説明を省略する。
図15は、第二の実施例のキャッシュサーバの動作を説明するシーケンス図である。
図15のステップS1501、1502の処理は、図12のステップS1201、S1202の処理と同様であるから、説明を省略する。
キャッシュサーバ300Aは、キャッシュサーバ300Bに対してビット配列において排他的論理和が1となるビット数の取得要求を行う(ステップS1503)。キャッシュサーバ300Bは、ビット配列の取得要求を受けると、要求元であるキャッシュサーバ300Aのビット配列と自身のビット配列とを比較する。そしてキャッシュサーバ300Bは、自身のビット配列において、キャッシュサーバ300Aのビット配列のビット値0に対して排他的論理和が1となるビット数をカウントする(ステップS1504)。続いてキャッシュサーバ300Bは、カウントしたビット数をキャッシュサーバ300Aへ送信する(ステップS1505)。
次にキャッシュサーバ300Aは、キャッシュサーバ300Cに対してビット配列において排他的論理和が1となるビット数の取得要求を行う(ステップS1506)。キャッシュサーバ300Cは、ビット配列の取得要求を受けると、要求元であるキャッシュサーバ300Aのビット配列と自身のビット配列とを比較する。そしてキャッシュサーバ300Cは、自身のビット配列において、キャッシュサーバ300Aのビット配列のビット値0に対して排他的論理和が1となるビット数をカウントする(ステップS1507)。続いてキャッシュサーバ300Cは、カウントしたビット数をキャッシュサーバ300Aへ送信する(ステップS1508)。
次にキャッシュサーバ300Aは、キャッシュサーバ300Dに対してビット配列において排他的論理和が1となるビット数の取得要求を行う(ステップS1509)。キャッシュサーバ300Dは、ビット配列の取得要求を受けると、要求元であるキャッシュサーバ300Aのビット配列と自身のビット配列とを比較する。そしてキャッシュサーバ300Dは、自身のビット配列において、キャッシュサーバ300Aのビット配列のビット値0に対して排他的論理和が1となるビット数をカウントする(ステップS1510)。続いてキャッシュサーバ300Dは、カウントしたビット数をキャッシュサーバ300Aへ送信する(ステップS1511)。
続いてキャッシュサーバ300Aは、問い合わせ順決定部315により、取得したビット数が大きい順に問い合わせを行う順を決定する(ステップS1512)。
ステップS1513からステップS1518までの処理は、図12のステップS1210からステップS1215までの処理と同様であるから、説明を省略する。
以上のように本実施例では、キャッシュサーバ300Aのビット配列のビット値0に対して排他的論理和が1となるビット数をカウントする処理を、他のキャッシュサーバ300に分散することができる。よって本実施例では、キャッシュサーバ300Aの処理負荷を軽減できる。
(第三の実施例)
以下に図面を参照して第三の実施例について説明する。第三の実施例は、ハッシュ値と対応するコンテンツデータが複数存在する点が第一の実施例と相違する。よって以下の第三の実施例の説明では、第一の実施例との相違点についてのみ説明し、同様の機能構成を有するものには第一の実施例の説明で用いた符号と同様の符号を付与して説明を省略する。
図16は、第三の実施例の各キャッシュサーバの有するコンテンツデータと対応したビット配列の例を示す図である。
図16(A)は、キャッシュサーバ300Aの有するコンテンツデータと対応したビット配列であり、図11(A)と同様であるから説明を省略する。
図16(B)は、キャッシュサーバ300Bの有するコンテンツデータと対応したビット配列であり、図11(B)と同様であるから説明を省略する。
図16(C)は、キャッシュサーバ300Cの有するコンテンツデータと対応したビット配列である。
本実施例のキャッシュサーバ300Cにおいて、ハッシュ値1に対応したコンテンツデータの1つであり、そのタイトルデータは「Jet」である。またハッシュ値5に対応したコンテンツデータは2つであり、そのタイトルデータは「Dolphin」と「kiwi」である。
またキャッシュサーバ300Cにおいて、ハッシュ値7に対応するコンテンツデータのタイトルデータが「Egg」であり、ハッシュ値8に対応するコンテンツデータのタイトルデータが「Apple」である。よってキャッシュサーバ300Cのビット配列は、1ビット目、5ビット目、7ビット目及び8ビット目のビット値が1となり、それ以外のビット値は0となる。
図16(D)は、キャッシュサーバ300Dの有するコンテンツデータと対応したビット配列であり、図11(D)と同様であるから説明を省略する。
以下に、各キャッシュサーバ300の有するコンテンツデータが図16に示す状態であるとき、キャッシュサーバ300Aが端末装置400から認証情報を受信した際のキャッシュサーバ300Aの動作を説明する。
図17は、第三の実施例のキャッシュサーバの動作を説明するシーケンス図である。
図17のステップS1701からステップS1710までの処理は、図12のステップS1201からステップS1210までの処理と同様であるから、説明を省略する。
ステップS1710に続いてキャッシュサーバ300Aは、問い合わせ順決定部315により、選択されたキャッシュサーバ300が複数存在するか否かを判断する(ステップS1711)。
ステップS1711において複数のキャッシュサーバ300が存在する場合、問い合わせ順決定部315は、の中で最もコンテンツ数が多いキャッシュサーバ300を選択する(ステップS1712)。ステップS1711において複数のキャッシュサーバ300が存在しない場合、キャッシュサーバ300AはステップS1713へ進む。
ステップS1713からステップS1717までの処理は、図12のステップS1211からステップS1215までの処理と同様であるから説明を省略する。
以下にステップS1711、1712の処理についてさらに説明する。
本実施例において、キャッシュサーバ300Cから取得したビット配列は、キャッシュサーバ300Aのビット配列のビット値0に対して排他的論理和が1となるビット数が3となり、最もビット数が多いビット配列となる。(図16参照)。またキャッシュサーバ300Dから取得したビット配列も、キャッシュサーバ300Aのビット配列のビット値0に対して排他的論理和が1となるビット数が3である(図16参照)。よってステップS1710では、キャッシュサーバ300C,Dが選択される。
この場合問い合わせ順決定部315は、キャッシュサーバ300Cとキャッシュサーバ300Dのコンテンツ管理テーブル332を参照し、両者が有しているコンテンツデータの数を取得する。具体的にはキャッシュサーバ300Aは、キャッシュサーバ300C,Dのコンテンツ管理テーブル332の一番最後に格納されたコンテンツIDを参照し、コンテンツデータの総数としても良い。
続いて問い合わせ順決定部315は、取得したコンテンツデータの総数を比較し、コンテンツデータの総数が多い順にサムネイルの取得要求を行うように問い合わせ順を決定する。この場合では、キャッシュサーバ300Cのコンテンツデータは4つであり、キャッシュサーバ300Dのコンテンツデータは3つである。よって問い合わせ順決定部315は、ステップS1712でキャッシュサーバ300Cを選択する。
尚本実施例では、問い合わせ順をコンテンツデータの総数が多い順としたが、これに限定されない。問い合わせ順は、例えばハッシュテーブル334を参照し、キャッシュサーバ300Aのビット配列のビット値0に対して排他的論理和が1となるビットと対応するハッシュ値に対応付けられたコンテンツデータの数の合計が多い順としても良い。
以上のように本実施例では、保持しているコンテンツデータが多いキャッシュサーバ300から順にサムネイルの取得要求を行うことで、端末装置400から参照要求を受けるまでの間により多くのサムネイルを収集することができる。
(第四の実施例)
以下に図面を参照して第四の実施例について説明する。第四の実施例は、キャッシュサーバ300の応答時間に基づきサムネイルの取得要求を行う順を決定する点が第三の実施例と相違する。よって以下の第四の実施例の説明では、第三の実施例との相違点についてのみ説明し、同様の機能構成を有するものには第三の実施例の説明で用いた符号と同様の符号を付与して説明を省略する。
図18は、第四の実施例のキャッシュサーバの機能を説明する図である。
本実施例のキャッシュサーバ500は、サムネイル収集部310Aと、記憶部330Aとを有する。
本実施例のサムネイル収集部310Aは、CS管理部314A、問い合わせ順決定部315Aを有する。
CS管理部314Aは、応答時間管理部317を有する。応答時間管理部317は、キャッシュサーバ500Aが他のキャッシュサーバ500に対して行った要求に対する他のキャッシュサーバ500の応答時間を管理する。具体的には応答時間管理部317は、他のキャッシュサーバ500の応答時間を計測し、後述する応答時間テーブル335に格納する。
問い合わせ順決定部315Aは、選択ポリシー設定部318を有する。選択ポリシー設定部318は、問い合わせ順を決定する際の優先度を示す選択ポリシーを設定する。具体的には選択ポリシー設定部318は、後述する。選択ポリシーテーブル336を参照し、選択ポリシーを設定する。
本実施例の記憶部330Aは、第一の実施例の記憶部330の有する各テーブルに加え、応答時間テーブル335と選択ポリシーテーブル336とを有する。
図19は、応答時間テーブルの一例を示す図である。
本実施例の応答時間テーブル335は、各キャッシュサーバ500のCSIDと、応答時間とが対応付けられている。図19では、例えばキャッシュサーバ500がキャッシュサーバ500Bに問い合わせを行ってから、キャッシュサーバ500Bが応答するまでに係る時間は、300msecである。この応答時間は、例えばキャッシュサーバ500A
とキャッシュサーバ500Bとの距離により変化しても良い。
図20は、選択ポリシーテーブルの一例を示す図である。本実施例の選択ポリシーテーブル336では、設定項目と、選択ポリシーとが対応付けられている。
本実施例の問い合わせ順決定部315Aは、選択ポリシーテーブル336において選択優先度1が選択された場合、応答時間を優先して問い合わせ順を決定する。また本実施例の問い合わせ順決定部315Aは、選択ポリシーテーブル336において選択優先度2が選択された場合、他のキャッシュサーバ500の保持するコンテンツデータの数を優先して問い合わせ順を決定する。
以下に図21を参照して本実施例のキャッシュサーバ500の動作を説明する。図21は、第四の実施例のキャッシュサーバの動作を説明するシーケンス図である。図21では、選択ポリシーテーブル336において選択優先度1が選択された場合のキャッシュサーバ500Aの動作を説明している。尚選択ポリシーテーブル336において選択優先度2が選択された場合のキャッシュサーバ500Aの動作は、第三の実施例に説明した通りである。
図21のステップS2101からステップS2108までの処理は、図17のステップS1701からステップS1708までの処理と同様であるので、説明を省略する。
続いてキャッシュサーバ500Aは、応答時間管理部317により計測した各キャッシュサーバ500の応答時間を応答時間テーブル335に格納する(ステップS2109)。
ステップS2110からステップS2112までの処理は、図17のステップS1709からステップS1711までの処理と同様であるから説明を省略する。
ステップS2112において複数のキャッシュサーバ500が存在する場合、問い合わせ順決定部315Aは、応答時間テーブル335を参照し、複数のキャッシュサーバ500のうち応答時間が最も短いキャッシュサーバ500を選択する(ステップS2113)。
ステップS2114からステップS2118の処理は、図17のステップS1713からステップS1717までの処理と同様であるから、説明を省略する。
以上のように本実施例では、キャッシュサーバ500Aのビット配列のビット値0に対して排他的論理和が1となるビット数が同じ複数のキャッシュサーバ500が存在した場合に、応答時間が短い順にサムネイルの取得要求を行う順を決定する。本実施例では、以上のようにサムネイルの取得要求を行う順を決定することで、端末装置400から認証情報を受信してから参照要求を受信するまでの間により多くのサムネイルを収集することができる。
開示の技術では、以下に記載する付記のような形態が考えられる。
(付記1)
コンピュータによるコンテンツ配信方法であって、該コンピュータが、
記憶部に記憶されたコンテンツデータを特定する情報と、他のコンピュータが有する他の記憶部に記憶されたコンテンツデータを特定する情報とを比較した結果を参照し、
前記記憶部に記憶されていないコンテンツデータが多く記憶された前記他の記憶部を有する前記他のコンピュータから順に、前記記憶部に記憶されていないコンテンツデータの代表画像データを収集するコンテンツ配信方法。
(付記2)
前記記憶されたコンテンツデータを特定する情報は、
前記コンテンツデータを代表する値と対応するコンテンツデータの有無を示すビット配列である付記1記載のコンテンツ配信方法。
(付記3)
前記記憶部に記憶された前記コンテンツデータに含まれるデータを用いて生成したハッシュ値と、前記ハッシュ値に代表されるコンテンツデータとが対応付けられたハッシュテーブルを参照し、
前記記憶部に前記ハッシュ値と対応付けられたコンテンツデータが存在するとき前記ハッシュ値に対応するビットのビット値を1とし、前記記憶部に前記ハッシュ値と対応付けられたコンテンツデータが存在しないとき前記ハッシュ値に対応するビットのビット値を0としたビット配列を生成する付記2記載のコンテンツ配信方法。
(付記4)
該コンピュータが生成したビット配列のビット値と、前記他のコンピュータが生成したビット配列のビット値とを比較した結果を参照し、
該コンピュータが生成したビット配列においてビット値が0のビットに対し、排他的論理和が1となるビット数が最も多いビット配列を生成した前記他のコンピュータから順に、前記代表画像データを収集する付記2又は3記載のコンテンツ配信方法。
(付記5)
該コンピュータが生成したビット配列を前記他のコンピュータへ送信し、
前記他のコンピュータにおいて、該コンピュータが生成したビット配列と前記他のコンピュータが生成したビット配列とを比較した結果を受信し、
該コンピュータが生成したビット配列においてビット値が0のビットに対し、排他的論理和が1となるビット数が最も多いビット配列を生成した前記他のコンピュータから順に、前記代表画像データを収集する付記4記載のコンテンツ配信方法。
(付記6)
該コンピュータが生成したビット配列においてビット値が0のビットに対し、排他的論理和が1となるビット数が同じ複数のビット配列が存在する場合、
前記複数のビット配列を生成したそれぞれの前記他のコンピュータのうち、記憶されているコンテンツデータの数が多い方から順に、前記代表画像データを収集する付記4記載のコンテンツ配信方法。
(付記7)
該コンピュータが生成したビット配列においてビット値が0のビットに対し、排他的論理和が1となるビット数が同じ複数のビット配列が存在する場合、
前記複数のビット配列を生成した前記他のコンピュータのうち、該コンピュータの要求に応答する応答時間が短い方から順に、前記代表画像データを収集する付記4記載のコンテンツ配信方法。
(付記8)
記憶部に記憶されたコンテンツデータを特定する情報と、他のコンピュータが有する他の記憶部に記憶されたコンテンツデータを特定する情報とを比較する比較部(315)と、
前記記憶部に記憶されていないコンテンツデータが多く記憶された前記他の記憶部を有する前記他のコンピュータから順に、前記記憶部に記憶されていないコンテンツデータの代表画像データを収集する収集部と、を有するコンテンツ配信サーバ。
(付記9)
コンピュータに、
記憶部に記憶されたコンテンツデータを特定する情報と、他のコンピュータが有する他の記憶部に記憶されたコンテンツデータを特定する情報との比較結果を参照する処理と、
前記記憶部に記憶されていないコンテンツデータが多く記憶された前記他の記憶部を有する前記他のコンピュータから順に、前記記憶部に記憶されていないコンテンツデータの代表画像データを収集する処理と、を実行させるサムネイル収集プログラム。
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から
逸脱することなく、種々の変形や変更が可能である。
100 コンテンツ配信システム
200 ユーザ管理サーバ
300,300A〜300D キャッシュサーバ
310,310A サムネイル収集部
313 ビット配列取得部
315 問い合わせ順決定部
316 サムネイル取得部
320 サムネイル提供部
322 ビット配列応答部
323 サムネイル応答部
324 ハッシュテーブル生成部
325 ビット配列生成部
330 記憶部

Claims (6)

  1. コンピュータによるコンテンツ配信方法であって、該コンピュータが、
    記憶部におけるコンテンツデータの有無を示すビット配列と、他のコンピュータが有する他の記憶部におけるコンテンツデータの有無を示すビット配列とを比較した結果を参照し、
    前記記憶部に記憶されていないコンテンツデータが多く記憶された前記他の記憶部を有する前記他のコンピュータから順に、前記記憶部に記憶されていないコンテンツデータの代表画像データを収集するコンテンツ配信方法。
  2. 前記ビット配列は、
    前記コンテンツデータを代表する値と対応するビット配列である請求項1記載のコンテンツ配信方法。
  3. 前記記憶部に記憶された前記コンテンツデータに含まれるデータを用いて生成したハッシュ値と、前記ハッシュ値に代表されるコンテンツデータとが対応付けられたハッシュテーブルを参照し、
    前記記憶部に前記ハッシュ値と対応付けられたコンテンツデータが存在するとき前記ハッシュ値に対応するビットのビット値を1とし、前記記憶部に前記ハッシュ値と対応付けられたコンテンツデータが存在しないとき前記ハッシュ値に対応するビットのビット値を0としたビット配列を生成する請求項2記載のコンテンツ配信方法。
  4. 該コンピュータが生成したビット配列のビット値と、前記他のコンピュータが生成したビット配列のビット値とを比較した結果を参照し、
    該コンピュータが生成したビット配列においてビット値が0のビットに対し、排他的論理和が1となるビット数が最も多いビット配列を生成した前記他のコンピュータから順に、前記代表画像データを収集する請求項2又は3記載のコンテンツ配信方法。
  5. 記憶部におけるコンテンツデータの有無を示すビット配列と、他のコンピュータが有する他の記憶部におけるコンテンツデータの有無を示すビット配列とを比較する比較部と
    前記記憶部に記憶されていないコンテンツデータが多く記憶された前記他の記憶部を有する前記他のコンピュータから順に、前記記憶部に記憶されていないコンテンツデータの代表画像データを収集する収集部と、を有するコンテンツ配信サーバ。
  6. コンピュータに、
    記憶部におけるコンテンツデータの有無を示すビット配列と、他のコンピュータが有する他の記憶部におけるコンテンツデータの有無を示すビット配列とを比較した結果を参照する処理と、
    前記記憶部に記憶されていないコンテンツデータが多く記憶された前記他の記憶部を有する前記他のコンピュータから順に、前記記憶部に記憶されていないコンテンツデータの代表画像データを収集する処理と、を実行させるサムネイル収集プログラム。
JP2013120177A 2013-06-06 2013-06-06 コンテンツ配信方法、コンテンツ配信サーバ及びサムネイル収集プログラム Expired - Fee Related JP6201438B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013120177A JP6201438B2 (ja) 2013-06-06 2013-06-06 コンテンツ配信方法、コンテンツ配信サーバ及びサムネイル収集プログラム
US14/270,450 US9692847B2 (en) 2013-06-06 2014-05-06 Content distribution method and content distribution server

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013120177A JP6201438B2 (ja) 2013-06-06 2013-06-06 コンテンツ配信方法、コンテンツ配信サーバ及びサムネイル収集プログラム

Publications (2)

Publication Number Publication Date
JP2014238671A JP2014238671A (ja) 2014-12-18
JP6201438B2 true JP6201438B2 (ja) 2017-09-27

Family

ID=52006373

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013120177A Expired - Fee Related JP6201438B2 (ja) 2013-06-06 2013-06-06 コンテンツ配信方法、コンテンツ配信サーバ及びサムネイル収集プログラム

Country Status (2)

Country Link
US (1) US9692847B2 (ja)
JP (1) JP6201438B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10885104B2 (en) 2014-02-27 2021-01-05 Dropbox, Inc. Systems and methods for selecting content items to store and present locally on a user device
US9787799B2 (en) 2014-02-27 2017-10-10 Dropbox, Inc. Systems and methods for managing content items having multiple resolutions
US9894152B2 (en) * 2015-07-28 2018-02-13 Arris Enterprises Llc Consolidation and monitoring of consumed content
US10198355B2 (en) 2015-10-29 2019-02-05 Dropbox, Inc. Proving a dynamic digital content cache
US10983677B2 (en) 2018-11-16 2021-04-20 Dropbox, Inc. Prefetching digital thumbnails from remote servers to client devices based on a dynamic determination of file display criteria
KR102622252B1 (ko) * 2019-05-27 2024-01-08 삼성에스디에스 주식회사 콘텐츠 전송 장치 및 방법

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6681227B1 (en) * 1997-11-19 2004-01-20 Ns Solutions Corporation Database system and a method of data retrieval from the system
US7970835B2 (en) * 2006-04-04 2011-06-28 Xerox Corporation Peer-to-peer file sharing system and method using downloadable data segments
WO2008024037A1 (en) * 2006-08-21 2008-02-28 Telefonaktiebolaget Lm Ericsson (Publ) A distributed server network for providing triple and play services to end users
JP2008102795A (ja) 2006-10-19 2008-05-01 Fuji Xerox Co Ltd ファイル管理装置、システム及びプログラム
CN101179389A (zh) * 2006-11-07 2008-05-14 朗迅科技公司 Ims网络的对等文件下载***
US20090327244A1 (en) * 2008-06-24 2009-12-31 Dharmarus Rizal Method, process, apparatus and system for peer-to-peer media sharing, transmissions and distributions
US8103718B2 (en) * 2008-07-31 2012-01-24 Microsoft Corporation Content discovery and transfer between mobile communications nodes
US8665963B2 (en) 2008-08-25 2014-03-04 The University Of Electro-Communications Communication terminal, content reproduction method, content reproduction program, and content reproduction system for distributing and reproducing video contents with reduced stress
TWI372547B (en) * 2008-12-31 2012-09-11 Ind Tech Res Inst Method and system for peer-to-peer file transmission
KR101672349B1 (ko) * 2011-12-27 2016-11-07 한국전자통신연구원 파일 클라우드 서비스 장치 및 방법

Also Published As

Publication number Publication date
US9692847B2 (en) 2017-06-27
JP2014238671A (ja) 2014-12-18
US20140365501A1 (en) 2014-12-11

Similar Documents

Publication Publication Date Title
JP6201438B2 (ja) コンテンツ配信方法、コンテンツ配信サーバ及びサムネイル収集プログラム
US9342529B2 (en) Directory-level referral method for parallel NFS with multiple metadata servers
Terzo et al. Data as a service (DaaS) for sharing and processing of large data collections in the cloud
JP2020038623A (ja) データを記憶するための方法、装置及びシステム
US9055063B2 (en) Managing shared content with a content management system
US8868666B1 (en) Methods, devices and systems for content discovery, aggregation and presentment over a network
US20110231524A1 (en) Metadata management method for nas global namespace design
US20120005265A1 (en) Information processing device, content providing method and program
CN103647797A (zh) 一种分布式文件***及其数据访问方法
KR101435789B1 (ko) Dlp 시스템의 빅데이터 처리 시스템 및 방법
KR101689782B1 (ko) 메타 데이터에 따라 파일 시스템의 파일들을 액세스하는 방법 및 상기 방법을 구현하는 디바이스
US8706853B2 (en) Content processing apparatus, content processing method, and recording medium
KR101744892B1 (ko) 시계열 계층 인덱싱을 이용한 데이터 검색 시스템 및 데이터 검색 방법
JP2014232483A (ja) データベースシステム、検索方法およびプログラム
Lieberman et al. Supporting rapid processing and interactive map-based exploration of streaming news
TW201205320A (en) Optimizing data cache when applying user-based security
CN101472166A (zh) 一种内容缓存、查询方法及点对点媒体传输***
CN105045905B (zh) 一种基于全文检索的日志维护方法及***
EP2801044A1 (en) Intelligent data delivery and storage based on data characteristics
US11799798B1 (en) Generating infrastructure templates for facilitating the transmission of user data into a data intake and query system
JPWO2011071104A1 (ja) 分散ファイルシステム、そのデータ選択方法およびプログラム
CN102752294A (zh) 基于设备能力的多终端数据同步方法和***
JP5775359B2 (ja) システム管理サーバ、管理方法及びプログラム
US20140280010A1 (en) Shared media crawler database method and system
WO2013120412A1 (zh) 数据下载方法、终端、服务器和***

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160113

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170202

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170801

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170814

R150 Certificate of patent or registration of utility model

Ref document number: 6201438

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees