(57)【要約】  オンラインストレージシステムに保持されるコンテンツアイテムのコンテンツプレビューを、クライアントデバイス上で、コンテンツアイテムそのものをクライアントデバイスにダウンロードすることなしに、かつ、コンテンツアイテムに関連してクライアントデバイスにインストールされるソフトウエアの使用なしに、視ることができる。さらに、各一意のコンテンツアイテムに対してただひとつのコンテンツプレビューを生成して保持することにより、データストーレジおよび処理の要求を最小化することができる。コンテンツアイテムは、コンテンツアイテムをハッシュアルゴリズムにおけるハッシュキーとして使用することで特定されうる。その結果得られる一意の識別子を使用して、生成された全てのコンテンツプレビューおよびその位置をリストするプレビューインデックスから探すことができる。コンテンツプレビューは、それが存在しない場合にのみ、生成される。一意の識別子を使用することで、コンテンツプレビューを見つけて、クライアントデバイスによるプレビュー要求に応じてそれを返すことができる。【選択図】図４
2016508641.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサを介して、コンテンツアイテムを少なくとも第１固定サイズブロックと第２固定サイズブロックとに分けることであって、前記第１固定サイズブロックおよび前記第２固定サイズブロックは前記コンテンツアイテムの一意の部分を含むことと、
前記第１固定サイズブロックの少なくとも一部をハッシュアルゴリズムにおける第１ハッシュキーとして使用することにより第１ハッシュ識別子を計算することと、
前記第２固定サイズブロックの少なくとも一部を前記ハッシュアルゴリズムにおける第２ハッシュキーとして使用することにより第２ハッシュ識別子を計算することと、
少なくとも前記第１ハッシュ識別子および前記第２ハッシュ識別子を使用して生成されたブロックリストに基づき、前記コンテンツアイテムのコンテンツプレビューが存在するか否かを判定することと、
前記コンテンツアイテムのコンテンツプレビューが存在しないと判定されると、前記コンテンツアイテムのコンテンツプレビューを生成することと、を含むことを特徴とするコンピュータにより実施される方法。
【請求項２】
少なくとも前記第１ハッシュ識別子と前記第２ハッシュ識別子とをつなげて前記ブロックリストを生成することをさらに含むことを特徴とする請求項１に記載のコンピュータにより実施される方法。
【請求項３】
既知のコンテンツプレビューのリストを含むプレビューインデックスに新たなプレビューエントリを生成することをさらに含み、
前記新たなプレビューエントリは前記ブロックリストとメモリにおける前記コンテンツプレビューの位置とを含むことを特徴とする請求項１に記載のコンピュータにより実施される方法。
【請求項４】
前記コンテンツアイテムのプレビューが存在するか否かを判定することは、前記ブロックリストに合う既存のプレビューエントリを前記プレビューインデックスから探すことを含むことを特徴とする請求項３に記載のコンピュータにより実施される方法。
【請求項５】
前記ブロックリストを前記コンテンツアイテムのコンテンツエントリと関連付けることをさらに含み、
前記コンテンツエントリは前記コンテンツアイテムを記述するメタデータを含むことを特徴とする請求項１に記載のコンピュータにより実施される方法。
【請求項６】
前記コンテンツアイテムに関連するプレビュー要求をクライアントデバイスから受けることをさらに含み、
前記プレビュー要求は前記ブロックリストを含み、前記コンテンツプレビューの前記位置は前記ブロックリストを使用してプレビューインデックスから探すことにより特定されることを特徴とする請求項１に記載のコンピュータにより実施される方法。
【請求項７】
前記コンテンツアイテムに関連するプレビュー要求をクライアントデバイスから受けることをさらに含み、
前記プレビュー要求は前記コンテンツアイテムのコンテンツエントリを特定するためのデータを含み、前記コンテンツエントリは前記ブロックリストを含み、前記コンテンツプレビューの前記位置は前記ブロックリストに基づいてプレビューインデックスから探すことにより特定されることを特徴とする請求項１に記載のコンピュータにより実施される方法。
【請求項８】
プロセッサと、
インストラクションを含むメモリと、を備えるシステムであって、
前記インストラクションは、実行されると、前記プロセッサに、
コンテンツアイテムを複数の固定サイズブロックに分けさせ、ここで、前記複数の固定サイズブロックの各固定サイズブロックは前記コンテンツアイテムの一意の部分を含み、
複数のハッシュ識別子を決定させ、ここで、前記複数のハッシュ識別子の各ハッシュ識別子は前記複数の固定サイズブロックのうちのひとつの固定サイズブロックに対応し、各ハッシュ識別子は前記ハッシュ識別子に対応する前記固定サイズブロックの少なくとも一部をハッシュアルゴリズムにおけるハッシュキーとして使用して生成され、
少なくとも前記複数のハッシュ識別子を使用して生成されたブロックリストに基づき、前記コンテンツアイテムのコンテンツプレビューが存在するか否かを判定させ、
前記コンテンツアイテムのコンテンツプレビューが存在しないと判定されると、前記コンテンツアイテムのコンテンツプレビューを生成させることを特徴とするシステム。
【請求項９】
前記インストラクションは前記プロセッサにさらに、前記複数のハッシュ識別子をつなげて前記ブロックリストを生成させることを特徴とする請求項８に記載のシステム。
【請求項１０】
前記インストラクションは前記プロセッサにさらに、コンテンツプレビューが既に生成された各コンテンツアイテムを特定するプレビューインデックスに新たなプレビューエントリを生成させ、
前記新たなプレビューエントリは前記ブロックリストとメモリにおける前記コンテンツプレビューの位置とを含むことを特徴とする請求項８に記載のシステム。
【請求項１１】
前記コンテンツアイテムのプレビューが存在するか否かを判定することは、前記ブロックリストに関連する既存のプレビューエントリを前記プレビューインデックスから探すことを含むことを特徴とする請求項１０に記載のシステム。
【請求項１２】
前記ブロックリストを前記コンテンツアイテムのコンテンツエントリと関連付けることをさらに含み、
前記コンテンツエントリは前記コンテンツアイテムを記述するメタデータを含むことを特徴とする請求項８に記載のシステム。
【請求項１３】
前記インストラクションは前記プロセッサにさらに、前記コンテンツアイテムに関連するプレビュー要求をクライアントデバイスから受けさせ、
前記プレビュー要求は前記ブロックリストを含み、前記コンテンツプレビューの前記位置は前記ブロックリストに基づいてプレビューインデックスから探すことにより特定されることを特徴とする請求項８に記載のシステム。
【請求項１４】
前記インストラクションは前記プロセッサにさらに、前記コンテンツアイテムに関連するプレビュー要求をクライアントデバイスから受けさせ、
前記プレビュー要求は前記コンテンツアイテムに関連するコンテンツエントリを特定するデータを含み、前記コンテンツエントリは前記ブロックリストを含み、前記コンテンツプレビューの前記位置は前記ブロックリストに基づいてプレビューインデックスから探すことにより特定されることを特徴とする請求項８に記載のシステム。
【請求項１５】
前記ハッシュアルゴリズムは、一意のハッシュキーのおのおのについて、一意のハッシュ識別子を返すことを特徴とする請求項８に記載のシステム。
【請求項１６】
インストラクションを含む非一時的なコンピュータ可読媒体であって、前記インストラクションは、計算デバイスによって実行されると、前記計算デバイスに、
第１コンテンツアイテムを第１ユーザアカウントに保持するための要求を受けさせ、ここで、前記第１コンテンツアイテムは少なくとも第１固定サイズブロックと第２固定サイズブロックとに分けられており、前記第１固定サイズブロックおよび前記第２固定サイズブロックは前記コンテンツアイテムの異なる部分を含み、
前記第１固定サイズブロックの少なくとも一部をハッシュアルゴリズムにおける第１ハッシュキーとして使用して第１ハッシュ識別子を計算させ、かつ、前記第２固定サイズブロックの少なくとも一部を前記ハッシュアルゴリズムにおける第２ハッシュキーとして使用して第２ハッシュ識別子を計算させ、
少なくとも前記第１ハッシュ識別子および前記第２ハッシュ識別子を使用して生成されたブロックリストに基づいて前記第１コンテンツアイテムのコンテンツプレビューを特定させ、ここで、前記コンテンツプレビューは第２ユーザアカウントの第２コンテンツアイテムに関連付けられており、
前記コンテンツプレビューを前記第１ユーザアカウントの前記第１コンテンツアイテムに割り当てさせることを特徴とする非一時的なコンピュータ可読媒体。
【請求項１７】
前記第１コンテンツアイテムのコンテンツプレビューを特定することは、前記ブロックリストに関連する既存のプレビューエントリをプレビューインデックスから探すことを含み、
前記プレビューインデックスは複数のプレビューエントリを含み、前記複数のプレビューエントリの各プレビューエントリはブロックリストとメモリにおける割り当てられたコンテンツプレビューの位置とを含むことを特徴とする請求項１６に記載の非一時的なコンピュータ可読媒体。
【請求項１８】
前記インストラクションは前記計算デバイスにさらに、
前記コンテンツアイテムに関連するプレビュー要求をクライアントデバイスから受けさせ、
前記コンテンツプレビューの前記位置を特定させ、
前記コンテンツプレビューを前記クライアントデバイスの返させることを特徴とする請求項１６に記載の非一時的なコンピュータ可読媒体。
【請求項１９】
前記プレビュー要求は前記ブロックリストを含み、前記コンテンツプレビューの前記位置は前記ブロックリストに基づいてプレビューインデックスから探すことにより特定されることを特徴とする請求項１８に記載の非一時的なコンピュータ可読媒体。
【請求項２０】
前記プレビュー要求は前記コンテンツアイテムのコンテンツエントリを特定するデータを含み、前記コンテンツエントリは前記ブロックリストを含み、前記コンテンツプレビューの前記位置は前記ブロックリストに基づいてプレビューインデックスから探すことにより特定されることを特徴とする請求項１８に記載の非一時的なコンピュータ可読媒体。
【請求項２１】
コンテンツアイテムを少なくとも第１固定サイズブロックと第２固定サイズブロックとに分ける手段であって、前記第１固定サイズブロックおよび前記第２固定サイズブロックは前記コンテンツアイテムの一意の部分を含む手段と、
前記第１固定サイズブロックの少なくとも一部をハッシュアルゴリズムにおける第１ハッシュキーとして使用することにより第１ハッシュ識別子を計算する手段と、
前記第２固定サイズブロックの少なくとも一部を前記ハッシュアルゴリズムにおける第２ハッシュキーとして使用することにより第２ハッシュ識別子を計算する手段と、
少なくとも前記第１ハッシュ識別子および前記第２ハッシュ識別子を使用して生成されたブロックリストに基づき、前記コンテンツアイテムのコンテンツプレビューが存在するか否かを判定する手段と、
前記コンテンツアイテムのコンテンツプレビューが存在しないと判定されると、前記コンテンツアイテムのコンテンツプレビューを生成する手段と、を備えることを特徴とするシステム。
【請求項２２】
少なくとも前記第１ハッシュ識別子と前記第２ハッシュ識別子とをつなげて前記ブロックリストを生成する手段をさらに備えることを特徴とする請求項２１に記載のシステム。
【請求項２３】
既知のコンテンツプレビューのリストを含むプレビューインデックスに新たなプレビューエントリを生成する手段をさらに備え、
前記新たなプレビューエントリは前記ブロックリストとメモリにおける前記コンテンツプレビューの位置とを含むことを特徴とする請求項２１に記載のシステム。
【請求項２４】
前記ブロックリストを前記コンテンツアイテムのコンテンツエントリと関連付けることをさらに備え、
前記コンテンツエントリは前記コンテンツアイテムを記述するメタデータを含むことを特徴とする請求項２１に記載のシステム。
【請求項２５】
前記コンテンツアイテムに関連するプレビュー要求をクライアントデバイスから受ける手段をさらに備え、
前記プレビュー要求は前記ブロックリストを含み、前記コンテンツプレビューの前記位置は前記ブロックリストを使用してプレビューインデックスから探すことにより特定されることを特徴とする請求項２１に記載のシステム。
【請求項２６】
前記コンテンツアイテムに関連するプレビュー要求をクライアントデバイスから受ける手段をさらに備え、
前記プレビュー要求は前記コンテンツアイテムのコンテンツエントリを特定するデータを含み、前記コンテンツエントリは前記ブロックリストを含み、前記コンテンツプレビューの前記位置は前記ブロックリストに基づいてプレビューインデックスから探すことにより特定されることを特徴とする請求項２１に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術はコンテンツプレビューに関し、特にコンテンツアイテムに対してただひとつのコンテンツプレビューを保持することに関する。
【０００２】
関連出願へのクロスリファレンス 
本願は、２０１３年３月１４日に出願された米国特許出願第１３／８２６，４３６号の優先権の利益を享受する。この出願は２０１３年１月３０日に出願された米国特許仮出願第６１／７５８，５８０の、３５ＵＳＣセクション１１９（ｅ）の下での優先権の利益を享受する。この出願は、参照によりその全体が本明細書に組み入れられる。
【背景技術】
【０００３】
クラウドデータストレージは、ユーザがオンライン上にデータを格納し、かつネットワーク接続を伴う任意の計算デバイスからそのデータにアクセスすることを可能にする。したがって、ユーザは、テキストドキュメントやスプレッドシートや写真やメディアファイルなどの多種多様なファイルに、パーソナルコンピュータ（ＰＣ）やラップトップやスマートフォンやタブレットＰＣなどの多種多様な計算デバイスからアクセスすることができる。現状のクラウドストレージシステムでは、クラウドに保持されるファイルを計算デバイスにダウンロードし、かつ、それをその計算デバイスで実行されるソフトウエアで開くことが要求される。
【０００４】
現状モデルのひとつの問題は、スマートフォンやタブレットＰＣなどのモバイル計算デバイスが限られたストレージスペースを有しうることであり、したがってクラウドに保持されるファイルをダウンロードすることはリソースを使用しすぎることになりうる。さらに、異なる複数のタイプのファイルを開くために、現状のシステムは、それらの異なるファイルを開くことのできるソフトウエアが異なる複数の計算デバイス上で実行されていることを必要とする。したがって、クラウドに保持されるコンテンツを視るための改良されたシステムが必要である。
【発明の概要】
【０００５】
本開示の追加的な特徴および利点は以下に説明されるであろうし、また部分的にはその説明から明らかであろうし、また本明細書で開示された原理の実施により学習されるであろう。本開示の特徴および利点は、添付の請求項において具体的に示す機器および組み合わせによって実現され、得られうるものである。本開示のこれらの特徴およびその他の特徴は、以下の記述および添付の請求項からさらに十分に明らかになるか、または本明細書で述べた原理の実施によっても分かるものである。
【０００６】
同期したオンラインコンテンツ管理システムに保持されるコンテンツアイテムのコンテンツプレビューを提供するシステム、方法および非一時的なコンピュータ可読保持媒体が開示される。コンテンツプレビューを、クライアントデバイス上で、コンテンツアイテムそのものをクライアントデバイスにダウンロードすることなしに、かつ、コンテンツアイテムに関連してクライアントデバイスにインストールされるソフトウエアの使用なしに、視ることができる。さらに、各一意のコンテンツアイテムに対してただひとつのコンテンツプレビューを生成して保持することにより、データストーレジおよび処理の要求を最小化することができる。したがって、複数のユーザの複数のコンテンツライブラリに同じコンテンツアイテムが含まれる場合、異なる複数のユーザによりアクセス可能な単一のコンテンツプレビューが生成されうる。
【０００７】
これを達成するために、コンテンツアイテムは、そのコンテンツアイテムのコンテンツプレビューが既に存在するか否かを判定するよう特定されてもよい。そのコンテンツアイテムのコンテンツプレビューがまだ存在しない場合にのみ、コンテンツプレビューが生成されてもよい。コンテンツアイテムを特定するために、ハッシュアルゴリズムが使用されてもよい。例えば、コンテンツアイテムをハッシュアルゴリズムにおける入力として使用し、一意のハッシュ識別子を生成してもよい。結果として得られるハッシュ識別子は、したがって、２つのコンテンツアイテムに違う名前が付されている場合でも、その２つのコンテンツアイテムが同じであると特定できる。
【０００８】
ある実施の形態では、コンテンツアイテムは複数の固定サイズブロックに分けられ、そのブロックのそれぞれはハッシュアルゴリズムにおけるハッシュキーとして使用されてもよい。結果として得られるハッシュ識別子を使用して、コンテンツアイテムを特定するために使用されるブロックリストを生成してもよい。例えば、ある実施の形態では、結果として得られるハッシュ識別子をつなげてブロックリストを生成してもよい。
【０００９】
コンテンツアイテムが特定されると、そのコンテンツアイテムのコンテンツプレビューが存在するか否かの判定が実行されてもよい。ある実施の形態では、ブロックリストのようなコンテンツアイテムの一意の識別子を使用して、コンテンツプレビューが既に生成されている各コンテンツアイテムを特定するプレビューインデックスから探してもよい。プレビューインデックスは生成された各コンテンツプレビューに対してプレビューエントリを含んでもよく、プレビューエントリは一意の識別子とメモリにおけるコンテンツプレビューの位置とを含む。コンテンツアイテムに関連するプレビューエントリが存在しない場合、そのコンテンツアイテムのコンテンツプレビューは存在せず、したがってそのようなコンテンツプレビューが生成されるであろう。コンテンツアイテムに関連するプレビューエントリが存在する場合、コンテンツプレビューは既に存在し、したがってそのようなコンテンツプレビューは生成されないであろう。
【００１０】
一意の識別子は、コンテンツアイテムに対応するコンテンツエントリに関連してもよい。コンテンツエントリは、コンテンツアイテムに関連するユーザアカウントやメモリにおけるコンテンツアイテムの位置やコンテンツアイテムのデータパスおよび名前などのコンテンツアイテムを特定するメタデータを含んでもよい。
【００１１】
クライアントデバイスは、コンテンツアイテムのコンテンツプレビューをクライアントデバイス上で表示することを要求するプレビュー要求を送信してもよい。プレビュー要求は、ブロックリストのようなプレビューインデックスに保持される一意の識別子であってコンテンツプレビューを見つけるのに使用されうる識別子を特定するメタデータを含んでもよい。あるいはまた、プレビュー要求は、コンテンツアイテムに対応するコンテンツエントリを特定するメタデータを含んでもよい。したがって、コンテンツエントリから一意の識別子を取得し、要求されたコンテンツプレビューを見つけるためにプレビューインデックスから探すのにその識別子を使用することができる。
【図面の簡単な説明】
【００１２】
本開示の上記およびその他の利点および特徴は、添付の図面に示す特定の実施の形態を参照することにより明らかになるであろう。これらの図面は、本開示の例示的な実施の形態を示しているだけであり、それゆえ、本開示の範囲を限定しているとみなされてはならないことを理解した上で、添付の図面を用いてさらに具体的かつ詳細に本明細書の原理を記述して説明する。
【００１３】
【図１】図１は、本発明に係る、デバイスおよびネットワークの例示的な構成を示す。
【図２】図２は、コンテンツアイテムが複数の固定サイズブロックに分けられ、ハッシュ化されてブロックリストが生成される例示的な実施の形態を示す。
【図３】図３は、例示的なプレビューインデックスを示す。
【図４】図４は、コンテンツプレビューを生成するための例示的な方法の実施の形態を示す。
【図５】図５は、コンテンツプレビューをクライアントデバイスに提供するための例示的な方法の実施の形態を示す。
【図６Ａ】図６Ａおよび図６Ｂは、例示的なありうるシステムの実施の形態を示す。
【図６Ｂ】図６Ａおよび図６Ｂは、例示的なありうるシステムの実施の形態を示す。
【発明を実施するための形態】
【００１４】
本開示のさまざまな実施の形態について、以下に詳しく論じる特定の実装について論じているが、これは説明のみを目的として行われていることを理解されたい。当業者は、本開示の趣旨および範囲から逸脱することなく他のコンポーネントや構成が用いられうることを認識するであろう。
【００１５】
開示される技術は、オンラインストレージシステムに保持されるコンテンツアイテムのコンテンツプレビューを、コンテンツアイテムそのものをクライアントデバイスにダウンロードする必要も、コンテンツアイテムを開くことができるソフトウエアをクライアントデバイスにインストールする必要もなく提供する当該分野の必要性を満たすものである。さらに、開示される技術は、各コンテンツアイテムにつきただひとつのコンテンツプレビューを生成することにより、データストレージ要求を最小化する。したがって、複数のユーザの複数のコンテンツライブラリに同じコンテンツアイテムが含まれる場合、そのコンテンツアイテムに対応するただひとつのコンテンツプレビューが使用されてもよい。
【００１６】
これを達成するために、コンテンツアイテムは一意に特定されてもよい。コンテンツプレビューはそれがまだ存在しない場合にのみ生成される。コンテンツアイテムはハッシュアルゴリズムを使用して特定されてもよい。例えば、コンテンツアイテムをハッシュアルゴリズムにおけるハッシュキーとして使用し、各一意のハッシュキーに対する一意のハッシュ識別子を生成してもよい。結果として得られるハッシュ識別子は、したがって、コンテンツアイテムに異なるファイル名が関連付けられていても、そのコンテンツアイテムを特定することができる。ある実施の形態では、コンテンツアイテムは複数の固定サイズブロックに分けられ、そのブロックのそれぞれはハッシュアルゴリズムにおけるハッシュキーとして使用されてもよい。結果として得られるハッシュキーを使用して、コンテンツアイテムを特定するために使用されるブロックリストを生成してもよい。
【００１７】
コンテンツアイテムが特定されると、そのコンテンツアイテムのコンテンツプレビューが存在するか否かの判定は、コンテンツプレビューが既に生成されている各コンテンツアイテムを特定するプレビューインデックスから探すことにより実行されてもよい。ブロックリストのようなコンテンツアイテムの一意の識別子を使用して、プレビューインデックスにおいて各コンテンツアイテムを特定してもよい。コンテンツアイテムに関連するプレビューエントリが存在しない場合、コンテンツプレビューは存在せず、したがってそのようなコンテンツプレビューが生成されるであろう。コンテンツアイテムに関連するプレビューエントリが存在する場合、コンテンツプレビューは既に存在し、したがって新たなコンテンツプレビューは生成されないであろう。
【００１８】
プレビューインデックスは生成された各コンテンツプレビューのメモリにおける位置を含んでもよい。したがって、コンテンツアイテムの一意の識別子を使用して、コンテンツアイテムのコンテンツプレビューの位置を決定するためにプレビューインデックスから探してもよい。
【００１９】
図１には、例示的なシステム構成１００が示される。このシステム構成１００では、複数の電子デバイスが、コンテンツや他のデータを交換する目的でネットワークを介して通信する。システムは、図１に示されるように、ワイドエリアネットワーク上で使用されるよう構成されてもよい。しかしながら、本原理は、電子デバイス間の通信を促進する様々な種類のネットワーク構成に適用可能である。例えば、図１のシステム１００の各コンポーネントは、ネットワークにおいて局在的または分散的に実装されてもよい。
【００２０】
システム１００では、直接および／または間接通信によりネットワーク１０４と接続された複数のクライアントデバイス１０２１、１０２２、…、１０２ｎ（「１０２」と総称する）を通じて、ユーザはコンテンツ管理システム１０６と相互に作用してもよい。コンテンツ管理システム１０６は、デスクトップコンピュータや、モバイルコンピュータや、携帯電話、スマートフォン、タブレットなどのモバイル通信デバイスや、スマートテレビジョンや、セットトップボックスや、他の任意のネットワーク可能な計算デバイスなどの多種多様なクライアントデバイスからの接続をサポートしてもよい。クライアントデバイス１０２のタイプや性能やオペレーティングシステムなどはいろいろであってよい。さらにコンテンツ管理システム１０６は、複数のクライアントデバイス１０２からの接続を同時に受け付けて相互作用を行ってもよい。
【００２１】
クライアントデバイス１０２ｉにインストールされたクライアント側アプリケーションを介して、ユーザはコンテンツ管理システム１０６と相互に作用してもよい。ある実施の形態では、クライアント側アプリケーションはコンテンツ管理システム用のコンポーネントを含んでもよい。例えば、コンポーネントはスタンドアローンアプリケーションやひとつ以上のアプリケーションプラグインやブラウザエクステンションであってもよい。しかしながら、クライアントデバイス１０２に存在しコンテンツ管理システム１０６と通信するよう構成されたウェブブラウザなどの第３者アプリケーションを介して、ユーザはコンテンツ管理システム１０６と相互に作用してもよい。いずれの場合でも、クライアント側アプリケーションは、ユーザがコンテンツ管理システム１０６と相互作用するためのユーザインタフェース（ＵＩ）を提供してもよい。例えば、ファイルシステムと統合されたクライアント側アプリケーションを介して、またはウェブブラウザアプリケーションを使用して表示されたウェブページを介して、ユーザはコンテンツ管理システム１０６と相互に作用してもよい。
【００２２】
コンテンツ管理システム１０６は、ユーザによるコンテンツの格納や、コンテンツの取得、変更、ブラウズ、および／または共有などの種々のコンテンツ管理タスクの実行を可能としてもよい。さらにコンテンツ管理システム１０６は、ユーザが複数のクライアントデバイス１０２からコンテンツにアクセスすることを可能としてもよい。例えば、クライアントデバイス１０２ｉはネットワーク１０４を介してコンテンツ管理システム１０６にコンテンツをアップロードしてもよい。そのコンテンツは後に、同じクライアントデバイス１０２ｉまたは他のクライアントデバイス１０２ｊを使用してコンテンツ管理システム１０６から取得されてもよい。
【００２３】
種々のコンテンツ管理サービスをより容易にするために、ユーザはコンテンツ管理システム１０６にアカウントを生成してもよい。アカウント情報はユーザアカウントデータベース１５０に維持されてもよい。ユーザアカウントデータベース１５０は、登録ユーザについてのプロファイル情報を保持してもよい。ある場合には、ユーザプロファイルの個人情報はユーザ名および／または電子メールアドレスのみであってもよい。しかしながら、コンテンツ管理システム１０６は追加的なユーザ情報を受け入れるよう構成されてもよい。
【００２４】
ユーザアカウントデータベース１５０は、有料／無料の別などのアカウントタイプや、ファイル編集履歴などの利用情報や、許されている最大ストレージスペースや、利用されているストレージスペースや、コンテンツストレージ位置や、セキュリティ設定や、個人構成設定や、コンテンツ共有データなどのアカウント管理情報を含んでもよい。アカウント管理モジュール１２４は、ユーザアカウントデータベース１５０におけるユーザアカウントの詳細を更新および／または取得するよう構成されてもよい。アカウント管理モジュール１２４は、コンテンツ管理システム１０６の他の任意の数のモジュールと相互に作用するよう構成されてもよい。
【００２５】
アカウントは、そのアカウントで認証されたひとつ以上のクライアントデバイス１０２から、ドキュメントやテキストファイルや音声ファイルやビデオファイルなどのコンテンツを格納するために使用されてもよい。コンテンツは、異なる振る舞いを伴う種々のタイプのフォルダやコンテンツアイテムをグループ化する他のメカニズムを含んでもよい。例えば、アカウントは、任意のユーザからアクセス可能なパブリックフォルダを含んでもよい。パブリックフォルダにはウェブアクセス可能なアドレスが割り当てられてもよい。ウェブアクセス可能なアドレスへのリンクを使用してパブリックフォルダのコンテンツにアクセスしてもよい。他の例では、アカウントは、写真に適する特定の属性やアクションを提供する写真用の写真フォルダや、音声ファイルを再生する能力を提供し他の音声関連アクションを実行する音声フォルダや、他の特殊用途フォルダを含んでもよい。アカウントは、複数のユーザアカウントとリンクされそれらのアカウントから利用可能な共有フォルダまたはグループフォルダを含んでもよい。ある共有フォルダについての複数のユーザに対する複数のパーミッションは異なっていてもよい。
【００２６】
コンテンツはコンテンツストレージ１６０に保持されてもよい。コンテンツストレージ１６０は、ストレージデバイスや、複数のストレージデバイスや、サーバであってもよい。あるいはまた、コンテンツストレージ１６０は、ひとつ以上の通信ネットワークを介してアクセス可能なクラウドストレージプロバイダまたはネットワークストレージであってもよい。コンテンツ管理システム１０６がクライアントデバイス１０２に対して複雑さと詳細とを隠すことで、クライアントデバイス１０２は、コンテンツアイテムがコンテンツ管理システム１０６によって正確にどこに保持されているのかを知る必要はない。ある変形例では、コンテンツ管理システム１０６は、クライアントデバイス１０２ｉ上に現れるフォルダ階層と同じフォルダ階層でコンテンツアイテムを保持してもよい。しかしながら、コンテンツ管理システム１０６は自身の順序や構成や階層でコンテンツアイテムを保持してもよい。コンテンツ管理システム１０６は、ネットワークアクセス可能ストレージ（ＳＡＮ）デバイスや、廉価ディスクの冗長アレイ（ＲＡＩＤ）などにコンテンツアイテムを保持してもよい。コンテンツストレージ１６０は、ＦＡＴ、ＦＡＴ３２、ＮＴＦＳ、ＥＸＴ２、ＥＸＴ３、ＥＸＴ４、ＲｅｉｓｅｒＦＳ、ＢＴＲＦＳなどのひとつ以上のパーティションタイプを使用して、コンテンツアイテムを保持してもよい。
【００２７】
コンテンツストレージ１６０は、コンテンツアイテムおよびコンテンツアイテムタイプおよびコンテンツアイテムと種々のアカウントやフォルダやグループとの関係を説明するメタデータを保持してもよい。コンテンツアイテムのメタデータは、コンテンツアイテムの一部として保持されてもよいし、別個に保持されてもよい。
【００２８】
コンテンツストレージ１６０は、重複したファイルやファイルの重複セグメントを特定することによって、要求されるストレージスペースの量を低減することができる。複数の複製を保持する代わりに、コンテンツストレージ１６０は単一の複製を保持し、ポインタや他のメカニズムを使用して、重複しているものをその単一の複製にリンクさせてもよい。同様に、コンテンツストレージ１６０はファイルをより効率的に保持できるだけでなく、ファイルへの変更や異なるバージョンのファイル（分岐バージョンツリーを含む）や変更履歴を追うファイルバージョン制御を使用することで、操作をやり直す能力を提供してもよい。変更履歴は、元のファイルバージョンに適用された場合、変更後のファイルバージョンを生成する一組の変更を含んでもよい。
【００２９】
コンテンツ管理システム１０６はひとつ以上のクライアントデバイス１０２からのコンテンツの自動同期をサポートするよう構成されてもよい。同期はプラットフォーム不可知的であってもよい。すなわち、コンテンツは、種々のタイプや能力やオペレーティングシステムなどを有する複数のクライアントデバイス１０２に亘って同期されてもよい。例えば、クライアントデバイス１０２ｉはクライアントソフトウエアを含んでもよい。このソフトウエアは、コンテンツ管理システム１０６の同期モジュール１３２を介して、クライアントデバイス１０２ｉのファイルシステムのなかのコンテンツを関連するユーザアカウントの下のコンテンツと同期させる。ある場合では、クライアントソフトウエアは、新たな、削除された、変更された、複製された、または移動されたファイルやフォルダなどの、指定されたフォルダおよびそのサブフォルダのコンテンツに対する任意の変更を同期させてもよい。クライアントソフトウエアは別個のソフトウエアアプリケーションであってもよく、またはオペレーティングシステム中の既存のコンテンツ管理アプリケーションに統合されていてもよく、またはそれらの組み合わせであってもよい。既存のコンテンツ管理アプリケーションに統合されるクライアントソフトウエアの一例では、ユーザはローカルフォルダ内で直接コンテンツを操作し、その間、バックグラウンド処理は変更がないかローカルフォルダを監視し、そのような変更の同期をコンテンツ管理システム１０６に対して実行する。逆に、バックグラウンド処理はコンテンツ管理システム１０６において更新されたコンテンツを特定し、そのような変更の同期をローカルフォルダに対して実行してもよい。クライアントソフトウエアは同期操作の通知を提供してもよく、コンテンツ管理アプリケーションの中で直接、コンテンツ状態の表示を提供してもよい。クライアントデバイス１０２ｉが利用可能なネットワーク接続を有さない場合がある。このシナリオでは、クライアントソフトウエアはファイル変更がないかリンクされたフォルダを監視し、後にネットワーク接続が利用可能となったときにコンテンツ管理システム１０６に対して同期を実行するべくそのような変更をキューに入れてもよい。同様に、ユーザは、コンテンツ管理システム１０６との同期を手動で止めるか一時停止してもよい。
【００３０】
ユーザは、ユーザインタフェースモジュール１２２によって生成され提供されるウェブインタフェースを介して、コンテンツを視たり操作したりしてもよい。例えば、ユーザは、ウェブブラウザ内で、コンテンツ管理システム１０６によって提供されるウェブアドレスへと辿り着いてもよい。ファイルの新たなバージョンのアップロードのように、ウェブインタフェースを通じてなされたコンテンツストレージ１６０のコンテンツへの変更や更新は、ユーザのアカウントに関連する他のクライアントデバイス１０２へと伝搬されてもよい。例えば、それぞれが自身のクライアントソフトウエアを有する複数のクライアントデバイス１０２は単一のアカウントと関連付けられていてもよく、そのアカウントのファイルは複数のクライアントデバイス１０２のそれぞれの間で同期されてもよい。
【００３１】
コンテンツ管理システム１０６は、アプリケーションプログラミングインタフェース（ＡＰＩ）を介して他のコンテンツおよび／またはサービスプロバイダ１０９１、１０９２、…、１０９ｎ（「１０９」と総称する）と相互に作用可能な通信インタフェース１２０であって種々のクライアントデバイス１０２とのインタフェースとしての通信インタフェース１２０を含んでもよい。所定のソフトウエアアプリケーションは、ユーザの代わりに、ＡＰＩを介してコンテンツストレージ１６０にアクセスしてもよい。例えば、スマートフォンやタブレット計算デバイス上のアプリケーションなどのソフトウエアパッケージはプログラム上、ユーザが資格証明を提供する場合、コンテンツ管理システム１０６を直接呼び出し、コンテンツを読み取り、書き込み、生成し、消去し、共有し、またはそうでなければ操作してもよい。同様に、ＡＰＩは、ウェブサイトを通じてユーザがコンテンツストレージ１６０の全てまたは一部にアクセスすることを可能としてもよい。
【００３２】
コンテンツ管理システム１０６は認証モジュール１２６を含んでもよい。この認証モジュール１２６は、ユーザの資格証明やセキュリティトークンやＡＰＩコールや特定のクライアントデバイスなどを検証し、認証されたクライアントおよびユーザのみがファイルにアクセスできることを確実なものとしてもよい。さらに、コンテンツ管理システム１０６は解析モジュール１３４モジュールを含んでもよい。この解析モジュール１３４は集合的ファイル操作やユーザアクションやネットワーク利用状況や使用されているトータルのストレージスペースや、他の技術的、利用状況的またはビジネス上の指標を追い、それについて報告してもよい。プライバシーおよび／またはセキュリティポリシーは、コンテンツ管理システム１０６に保持されるユーザデータへの許可を得ないアクセスを防止してもよい。
【００３３】
コンテンツ管理システム１０６は、公にまたは私的にコンテンツを共有することを管理するための共有モジュール１３０を含んでもよい。公にコンテンツを共有することは、コンテンツアイテムを、コンテンツ管理システム１０６とネットワーク通信可能な任意の計算デバイスからアクセス可能とすることを含んでもよい。私的にコンテンツを共有することは、コンテンツストレージ１６０のコンテンツアイテムを２以上のユーザアカウントとリンクさせ、それにより各ユーザアカウントがそのコンテンツアイテムへのアクセスを有することを含んでもよい。共有は、プラットフォーム不可知的態様でなされてもよい。すなわち、コンテンツは、種々のタイプや能力やオペレーティングシステムなどを有する複数のクライアントデバイス１０２に亘って共有されてもよい。コンテンツは、種々のタイプのユーザアカウントに亘って共有されてもよい。
【００３４】
ある実施の形態では、コンテンツ管理システム１０６は、コンテンツストレージ１６０における各コンテンツアイテムの位置を特定するコンテンツディレクトリを維持するよう構成されてもよい。コンテンツディレクトリは、コンテンツストレージに保持される各コンテンツアイテムに対して一意のコンテンツエントリを含んでもよい。
【００３５】
コンテンツエントリは、コンテンツ管理システムにおけるコンテンツアイテムの位置を特定するために使用されるコンテンツパスを含んでもよい。例えば、コンテンツパスはコンテンツアイテムの名前とコンテンツアイテムに関連するフォルダ階層とを含んでもよい。例えば、コンテンツパスは、コンテンツアイテムの名前に加えて、そのコンテンツアイテムが置かれているフォルダまたはフォルダのパスを含んでもよい。コンテンツ管理システム１０６はコンテンツパスを使用して、コンテンツアイテムを適切なフォルダ階層の中で提示してもよい。
【００３６】
コンテンツエントリは、コンテンツストレージ１６０におけるコンテンツアイテムの位置を特定するコンテンツポインタを含んでもよい。例えば、コンテンツポインタはメモリにおけるコンテンツアイテムの正確なストレージアドレスを含んでもよい。ある実施の形態では、コンテンツポインタは複数の位置を指してもよく、複数の位置のそれぞれはコンテンツアイテムの一部を含む。
【００３７】
コンテンツパスおよびコンテンツポインタに加えて、コンテンツエントリはコンテンツアイテムへのアクセスを有するユーザアカウントを特定するユーザアカウント識別子を含んでもよい。ある実施の形態では、複数のユーザアカウント識別子が単一のコンテンツエントリに関連付けられてもよく、これは、そのコンテンツアイテムが複数のユーザアカウントによる共有アクセスを有することを示す。
【００３８】
私的にコンテンツアイテムを共有するために、共有モジュール１３０は、ユーザアカウント識別子をコンテンツアイテムに関連付けられたコンテンツエントリに追加し、それにより追加されたユーザアカウントにコンテンツアイテムへのアクセスを与えるよう構成される。共有モジュール１３０は、ユーザアカウントのコンテンツアイテムへのアクセスを制限するために、コンテンツエントリからユーザアカウント識別子を除くよう構成されてもよい。
【００３９】
公にコンテンツを共有するために、共有モジュール１３０はユニフォームリソースロケータ（ＵＲＬ）などのカスタムネットワークアドレスを生成するよう構成されてもよい。このカスタムネットワークアドレスにより、任意のウェブブラウザが、コンテンツ管理システム１０６のコンテンツに認証なしでアクセスすることが可能となる。これを達成するために、共有モジュール１３０は生成されるＵＲＬにコンテンツ特定データを含めるよう構成されてもよい。コンテンツ特定データは、後に、要求されたコンテンツアイテムを適切に特定して返すために使用されてもよい。例えば、共有モジュール１３０は、生成されるＵＲＬにユーザアカウント識別子とコンテンツパスとを含めるよう構成されてもよい。ＵＲＬが選択されると、ＵＲＬに含まれるコンテンツ特定データはコンテンツ管理システム１０６に送信されてもよい。コンテンツ管理システム１０６は受信したコンテンツ特定データを使用して適切なコンテンツエントリを特定し、そのコンテンツエントリに関連付けられたコンテンツアイテムを返してもよい。
【００４０】
ＵＲＬを生成することに加えて、共有モジュール１３０はコンテンツアイテムへのＵＲＬが生成されたことを記録するよう構成されてもよい。ある実施の形態では、コンテンツアイテムに関連付けられたコンテンツエントリは、そのコンテンツアイテムへのＵＲＬが生成されたか否かを示すＵＲＬフラグを含んでもよい。例えば、ＵＲＬフラグは、コンテンツアイテムへのＵＲＬがまだ生成されていないことを示すために最初に０またはｆａｌｓｅに設定されるブール値であってもよい。共有モジュール１３０は、コンテンツアイテムへのＵＲＬを生成した後はフラグの値を１またはｔｒｕｅに変更するよう構成されてもよい。
【００４１】
ある実施の形態では、共有モジュール１３０は生成されたＵＲＬを非活性化するよう構成されてもよい。例えば、各コンテンツエントリは、要求に応じて生成されたＵＲＬからコンテンツが返されるべきか否かを示すＵＲＬアクティブフラグを含んでもよい。例えば、共有モジュール１３０は、ＵＲＬアクティブフラグが１またはｔｒｕｅに設定されている場合にのみ、生成されたリンクによって要求されるコンテンツアイテムを返すよう構成されてもよい。したがって、ＵＲＬが既に生成されたコンテンツアイテムへのアクセスは、ＵＲＬアクティブフラグの値を変更することにより、容易に制限されうる。これにより、ユーザは、コンテンツアイテムを移動したり生成されたＵＲＬを削除したりしなくても、共有コンテンツアイテムへのアクセスを制限できる。同様に、共有モジュール１３０は、ＵＲＬアクティブフラグの値を１またはｔｒｕｅに変えることでＵＲＬを再活性化してもよい。したがって、ユーザは、新たなＵＲＬを生成する必要なしにコンテンツアイテムへのアクセスを容易に復活させることができる。
【００４２】
具体的なコンポーネントを有するコンテンツ管理システム１０６が提示されたが、コンテンツ管理システム１０６のアーキテクチャ構成は単なる可能なひとつの構成であり、より多いまたはより少ないコンポーネントを有する他の構成もまた可能であることは、当業者には理解されるべきである。例えば、ある実施の形態では、コンテンツ管理システム１０６は、コンテンツ管理システム１０６に保持されるコンテンツアイテムのコンテンツプレビューを生成するよう構成されるプレビュー生成モジュール１３６を含んでもよい。
【００４３】
コンテンツプレビューは、読み取り専用バージョンへと変換されたコンテンツアイテムであってもよい。そのバージョンは、クライアントデバイス１０２がコンテンツアイテムをダウンロードする必要なしに、またクライアントデバイス１０２がコンテンツアイテムに関連付けられたソフトウエアを使用することなしに、クライアントデバイス１０２上で提示されうる。例えば、コンテンツプレビューは、ポータブルドキュメントフォーマット（ＰＤＦ）形式を有するコンテンツアイテムの読み取り専用バージョンであってもよい。したがって、スプレッドシートのようなコンテンツアイテムはＰＤＦに変換され、スプレッドシートのコンテンツアイテムがクライアントデバイス１０２によってダウンロードされることなく、かつ、スプレッドシートのソフトウエアがクライアントデバイス１０２にインストールされることなく、要求元のクライアントデバイス１０２上で表示されてもよい。同様に、ワードプロセッサドキュメントは読み取り専用ＰＤＦに変換され、クライアントデバイス１０２上でワードプロセッサソフトウエアを使用することなしに、要求元のクライアントデバイス１０２上で表示されてもよい。したがって、コンテンツアイテムは、コンテンツアイテムがダウンロードされることや対応するソフトウエアがクライアントデバイス１０２にインストールされることが要求されることなしに、クライアントデバイス１０２上で容易かつ素早く表示されうる。
【００４４】
コンテンツプレビューを提供するために、プレビュー生成モジュール１３６は、コンテンツ管理システム１０６を監視し、コンテンツ管理システム１０６で発生するコンテンツアイテムプレビュートリガを特定するよう構成される。コンテンツアイテムプレビュートリガは、コンテンツ管理システム１０６へのコンテンツアイテムの追加、またはコンテンツ管理システム１０６に既に保持されているコンテンツアイテムの変更であってもよい。コンテンツアイテムプレビュートリガを検出すると、プレビュー生成モジュール１３６は、コンテンツアイテムプレビュートリガに関連するコンテンツアイテム（すなわち、追加されたまたは変更されたコンテンツアイテム）のコンテンツプレビューを生成するよう構成されてもよい。コンテンツプレビューは、当該分野で既知の任意の利用可能な変換ソフトウエアを使用して生成されてもよい。
【００４５】
ある実施の形態では、コンテンツ管理システム１０６は、コンテンツ管理システム１０６に保持される各一意のコンテンツアイテムに対して単一のコンテンツプレビューを保持するよう構成されてもよい。単一のコンテンツプレビューは、コンテンツ管理システム１０６のコンテンツライブラリに同じコンテンツアイテムを保持させている複数のユーザに、そのコンテンツアイテムのプレビューを提供するために使用されてもよい。したがって、重複したコンテンツプレビューは不要となる。これにより、ストレージ要求を低減できる。コンテンツ管理システム１０６に保持される一意のコンテンツアイテムの各複製についてひとつのコンテンツプレビューが保持されるのではなく、むしろ、一意のコンテンツアイテムについてひとつだけコンテンツプレビューが保持されるからである。さらに、これによりシステムのリソース利用を低減できる。一意のコンテンツアイテムの各複製について一度、ではなく一度だけコンテンツプレビューを生成すればよいからである。
【００４６】
これを達成するために、プレビュー生成モジュール１３６は、コンテンツアイテムプレビュートリガに関連付けられた各一意のコンテンツアイテムを特定し、そのコンテンツアイテムのコンテンツプレビューが既に生成されたか否かを判定するよう構成されてもよい。ある実施の形態では、プレビュー生成モジュール１３６は、ハッシュアルゴリズムを使用して各一意のコンテンツアイテムを特定してもよい。ハッシュアルゴリズムは、既知の種々のハッシュアルゴリズムのうちの任意のものであってもよい。例えば、ある実施の形態では、ハッシュアルゴリズムはＳＨＡ２５６関数であってもよい。
【００４７】
ある実施の形態では、ハッシュアルゴリズムは、ハッシュアルゴリズムに入力された各一意のキーに対して一意のハッシュ識別子を生成してもよい。さらに、ある実施の形態では、ハッシュアルゴリズムは参照透過的であってもよい。すなわち、ハッシュアルゴリズムが「等しい」ハッシュキーに対して２度呼び出された場合、そのそれぞれについて、同じ一意のハッシュ識別子が返されるであろう。したがって、例えば、同じ文字列からなる２つのハッシュキーは、ハッシュアルゴリズムで使用された場合に結果として同じ一意のハッシュ識別子を提供するであろう。
【００４８】
ハッシュ識別子は、当該分野で知られている種々の識別子のうちの任意のものであってもよい。例えば、ハッシュ識別子はストリングや整数などであってもよい。
【００４９】
コンテンツアイテムを一意に特定するために、プレビュー生成モジュール１３６はコンテンツアイテムをハッシュアルゴリズムにおけるハッシュキーとして使用するよう構成されてもよい。結果として得られる一意のハッシュ識別子は、コンテンツアイテムを特定するために使用されうる。ある実施の形態では、コンテンツアイテム全体がハッシュキーとして使用されてもよい。ある実施の形態では、コンテンツアイテムの一部のみがハッシュキーとして使用されてもよい。例えば、コンテンツアイテムの始めからの一部や、コンテンツアイテムの終わりからの一部や、始めおよび終わりの両方からの一部がハッシュキーとして使用されてもよい。
【００５０】
ある実施の形態では、コンテンツアイテムは複数の固定サイズブロックに分けられ、各固定サイズブロックはハッシュアルゴリズムにおけるキーとして使用されてもよい。例えば、プレビュー生成モジュール１３６は、コンテンツアイテムを複数の固定サイズブロックに分け、結果として得られる複数の固定サイズブロックをハッシュキーとして使用するよう構成されてもよい。固定サイズブロックは例えば２ＭＢや４ＭＢ等であってもよく、実装者の裁量に委ねられてもよい。固定サイズブロックは、全てが同じサイズである必要はないが、最大サイズで制限される。例えば、１０ＭＢのコンテンツアイテムは３つの固定サイズブロックに分けられ、そのうち２つの固定サイズブロックは４ＭＢであり、ひとつは２ＭＢであってもよい。ある実施の形態では、プレビュー生成モジュール１３６は、２つの等しいコンテンツアイテムが分けられた場合にそれらが等しい固定サイズブロックを生成するように、コンテンツアイテムを矛盾無いように分けてもよい。さらに、コンテンツアイテムを複数の固定サイズブロックに分けることは、コンテンツ管理システム１０６がコンテンツアイテムを同じような固定サイズブロックに保持する実施の形態において、より有利となり得る。
【００５１】
プレビュー生成モジュール１３６は、コンテンツアイテムを分けることにより生じた各固定サイズブロックを、ハッシュアルゴリズムにおけるハッシュキーとして使用するよう構成されてもよい。ある実施の形態では、プレビュー生成モジュール１３６は、コンテンツアイテムを特定するブロックリストを、結果として得られるハッシュ識別子から生成してもよい。例えば、ある実施の形態では、プレビュー生成モジュール１３６は各固定サイズブロックを個別のハッシュキーとして使用することにより生じたハッシュ識別子をつなげることによりブロックリストを生成してもよい。結果として得られるブロックリストはコンテンツアイテムを特定するのに使用されてもよい。ある実施の形態では、プレビュー生成モジュール１３６は、固定サイズブロックに分けられる２つの等しいコンテンツアイテムのそれぞれから生じるハッシュ識別子で生成されるブロックリストが等しくなるように、ブロックリスト生成のための矛盾の無い方法を使用するよう構成されてもよい。
【００５２】
プレビュー生成モジュール１３６が例えばハッシュアルゴリズムを使用してコンテンツアイテムを特定すると、プレビュー生成モジュール１３６はそのコンテンツアイテムのコンテンツプレビューが既に存在するか否かを判定してもよい。これを達成するために、ある実施の形態では、プレビュー生成モジュール１３６は既に生成された各コンテンツプレビューをリストするコンテンツプレビューインデックスをチェックするよう構成されてもよい。例えば、ある実施の形態では、コンテンツプレビューインデックスは既に生成された各コンテンツプレビューに対してプレビューエントリを含んでもよい。各プレビューエントリは、コンテンツプレビューが既に生成された各コンテンツアイテムのブロックリストや他の一意の識別子を含んでもよい。さらに、ある実施の形態では、プレビューインデックスの各プレビューエントリはコンテンツプレビューのメモリにおける位置を含んでもよい。
【００５３】
したがって、プレビュー生成モジュール１３６は、ブロックリストなどのコンテンツアイテムに関連付けられた一意の識別子をプレビューインデックスから探し、コンテンツアイテムに関連付けられたコンテンツプレビューが既に存在するか否かを判定してもよい。ある実施の形態では、コンテンツ管理システム１０６はプレビューインデックスを保持するよう構成されたプレビューデータベース１７０を含んでもよい。プレビュー生成モジュール１３６は、プレビューデータベース１７０と通信してプレビューインデックスから探すよう構成されてもよい。
【００５４】
プレビュー生成モジュール１３６がコンテンツアイテムのプレビューが存在しない、すなわちコンテンツアイテムに関連付けられたプレビューエントリがプレビューインデックスのなかに見つからないと判定した場合、プレビュー生成モジュール１３６はそのコンテンツアイテムのコンテンツプレビューを生成し、メモリにそのコンテンツプレビューを格納してもよい。例えば、ある実施の形態では、コンテンツプレビューはプレビューデータベース１７０に保持されてもよい。あるいはまた、ある実施の形態では、コンテンツプレビューはコンテンツストレージ１６０に保持されてもよい。ある実施の形態では、プレビューデータベース１７０およびコンテンツストレージ１６０は同じデータベースの一部であってもよい。
【００５５】
さらに、プレビュー生成モジュール１３６はコンテンツプレビューが生成されメモリに格納されたことを示す新たなプレビューエントリをプレビューインデックスに生成してもよい。新たなプレビューエントリは、コンテンツプレビューのメモリにおける物理的位置と共に、ブロックリストなどのコンテンツアイテムを特定する一意の識別子を含んでもよい。例えば、ある実施の形態では、プレビューエントリはコンテンツプレビューへのポインタを含んでもよい。
【００５６】
コンテンツアイテムのプレビューが存在するとプレビュー生成モジュール１３６が判定した場合、コンテンツアイテムの新たなコンテンツプレビューが生成される必要はない。むしろ、以前に生成されたコンテンツプレビューを使用してコンテンツアイテムのプレビューを提供してもよい。
【００５７】
プレビュー生成モジュール１３６はさらに、コンテンツアイテムに関連付けられたコンテンツエントリに、ブロックリストなどのコンテンツアイテムに関連付けられた一意の識別子を格納するよう構成されてもよい。
【００５８】
図２は、コンテンツアイテム２０５が複数の固定サイズブロック２１０ａ、２１０ｂ、２１０ｃに分けられ、ハッシュ化されてブロックリストが生成される例示的な実施の形態を示す。示されるように、１０ＭＢのコンテンツアイテム２０５は３つの固定サイズブロック２１０ａ、２１０ｂ、２１０ｃに分けられる。示されるように、固定サイズブロック２１０ａ、２１０ｂは４ＭＢであり、固定サイズブロック２１０ｃは２ＭＢである。各固定サイズブロック２１０ａ、２１０ｂ、２１０ｃはハッシュアルゴリズム２１５に対するキーとして使用され、結果として３つの一意のハッシュ識別子２２０ａ、２２０ｂ、２２０ｃが生成される。
【００５９】
結果として得られるハッシュ識別子２２０ａ、２２０ｂ、２２０ｃのそれぞれは、３文字のストリングである。ハッシュ識別子２２０ａはストリング「ａｂｃ」であり、ハッシュ識別子２２０ｂは「ｄｅｆ」であり、ハッシュ識別子２２０ｃは「ｇｈｋ」である。ハッシュ識別子２２０ａ、２２０ｂ、２２０ｃを使用して、コンテンツアイテム２０５を一意に特定するためのブロックリストを生成してもよい。例えば、ハッシュ識別子２２０ａ、２２０ｂ、２２０ｃをつなげて、「ａｂｃｄｅｆｇｈｋ」などのブロックリストを生成してもよい。このブロックリストはコンテンツアイテム２０５を一意に特定するために使用されてもよい。さらに、ブロックリストを使用して、コンテンツアイテム２０５についてコンテンツプレビューが既に生成されたか否かを判定してもよい。
【００６０】
図３は、図２を参照して説明された例示的なプレビューインデックス３００を示す。示されるように、プレビューインデックス３００は複数のプレビューエントリ３０５を含む。各プレビューエントリ３０５はブロックリスト３１０とコンテンツプレビューのメモリにおける位置３１５とを含む。示されるように、プレビューエントリ３２０はブロックリスト値「ａｂｃｄｅｆｇｈｋ」を有する。これは、コンテンツアイテム２０５に関連付けられたコンテンツプレビューが存在することを示す。さらに、プレビューエントリ３２０は、コンテンツアイテム２０５のコンテンツプレビューがメモリ位置４００２に位置することを示す。
【００６１】
図４は、コンテンツプレビューを生成するための例示的な方法の実施の形態を示す。示されるように、方法はブロック４０５で始まる。そこでは、コンテンツアイテムプレビュートリガが検出される。コンテンツアイテムプレビュートリガはコンテンツアイテムがコンテンツライブラリに追加されたことであってもよいし、コンテンツライブラリ内の既存のコンテンツアイテムの変更であってもよい。方法はブロック４１０へと続く。そこでは、コンテンツアイテムプレビュートリガに関連付けられたコンテンツアイテムは複数の固定サイズブロックに分けられる。例えば、追加されたまたは変更されたコンテンツアイテムは複数の固定サイズブロックに分けられてもよい。
【００６２】
方法はブロック４１５へと続く。そこでは、各固定サイズブロックはハッシュアルゴリズムにおけるハッシュキーとして使用される。ある実施の形態では、固定サイズブロックの全体がハッシュキーとして使用されてもよい。ある実施の形態では、固定サイズブロックの一部がハッシュキーとして使用されてもよい。
【００６３】
方法はブロック４２０へと続く。そこでは、固定サイズブロックをハッシュキーとして使用することの結果として返されるハッシュ識別子からブロックリストが生成される。ブロックリストは任意の方法で生成されてもよい。例えば、ある実施の形態では、ブロックリストは結果として得られるハッシュ識別子をつなげることにより生成されてもよい。ある実施の形態では、ブロックリストは、結果として得られるハッシュ識別子の結合物を第２ハッシュ関数におけるハッシュキーとして使用することにより生成されてもよい。
【００６４】
ブロック４２５において、方法は、ブロックリストがプレビューインデックスのプレビューエントリに関連付けられているか否かを判定する。ブロック４２５においてブロックリストに関連付けられたプレビューエントリが存在すると判定された場合、コンテンツアイテムに関連付けられたコンテンツプレビューは既に存在し、方法はブロック４４０へと続く。そこでは、ブロックリストはコンテンツアイテムに関連付けられたコンテンツエントリに格納される。
【００６５】
ブロック４２５においてブロック識別子に関連付けられたプレビューエントリがプレビューインデックスに存在しないと判定された場合、コンテンツアイテムに対するコンテンツプレビューはまだ存在せず、方法はブロック４３０へと続く。そこでは、コンテンツアイテムに対するコンテンツプレビューが生成され、メモリに格納される。方法は次にブロック４３５へと続く。そこでは、プレビューインデックスに新たなプレビューエントリが生成される。新たなプレビューエントリはブロックリストとコンテンツプレビューのメモリにおける物理的位置とを含んでもよい。最後に、方法はブロック４４０へと続く。そこでは、ブロックリストはコンテンツアイテムに関連付けられたコンテンツエントリに格納される。
【００６６】
図５は、コンテンツプレビューをクライアントデバイスに提供するための例示的な方法の実施の形態を示す。示されるように、方法はブロック５０５で始まる。そこでは、クライアントデバイスからプレビュー要求を受ける。プレビュー要求は、クライアントデバイスに関連付けられたコンテンツライブラリに保持されるコンテンツアイテムのプレビューを表示する要求であってもよい。ある実施の形態では、プレビュー要求を生成するよう構成されたボタンや選択可能リンクなどのユーザインタフェース要素をクライアントデバイスに提供してもよい。ユーザインタフェース要素はプレビューすべき特定のコンテンツアイテムを特定してもよい。
【００６７】
ユーザインタフェース要素が選択されると、コンテンツアイテムを特定するプレビュー要求が生成され、コンテンツ管理システムに送られてもよい。プレビュー要求を受けると、方法はブロック５１０へと続く。そこでは、コンテンツアイテムに関連付けられたブロックリストが特定される。ある実施の形態では、プレビュー要求はブロック識別子を含んでもよい。ある実施の形態では、プレビュー要求は、コンテンツアイテムに関連付けられたコンテンツエントリを特定するのに使用されてもよいプレビュー要求データを含んでもよい。例えば、プレビュー要求データは、ユーザアカウント識別子とコンテンツアイテムに関連付けられたコンテンツパスとを含んでもよい。このデータを使用して、コンテンツアイテムに関連付けられたコンテンツエントリおよびしたがってブロックリストを特定してもよい。
【００６８】
コンテンツアイテムに関連付けられたブロックリストを特定すると、方法はブロック５１５へと続く。そこでは、要求されているコンテンツプレビューを見つける。ブロックリストを使用して、コンテンツプレビューのメモリにおける位置を特定する対応するプレビューエントリをプレビューインデックスから探してもよい。
【００６９】
コンテンツプレビューが見つかった後、方法はブロック５２０へと続く。そこでは、クライアントデバイスの表示能力が判定される。例えば、ある実施の形態では、クライアントデバイスに関連付けられたプロファイルデータをチェックすることで、そのクライアントデバイスの表示能力を判定してもよい。ある実施の形態では、クライアントデバイスの表示能力を示す情報を要求する表示能力要求を要求元のクライアントデバイスに送ってもよい。ある実施の形態では、クライアントデバイスの表示能力はクライアントデバイスから受けたプレビュー要求に含まれていてもよい。
【００７０】
クライアントデバイスの表示能力を判定すると、方法はブロック５２５へと続く。そこでは、コンテンツプレビューはクライアントデバイス上で表示可能なフォーマットでクライアントデバイス上に表示される。
【００７１】
図６Ａおよび図６Ｂは、例示的なありうるシステムの実施の形態を示す。本技術を実施する場合に、より好適な実施の形態は当業者には明らかであろう。他のシステムの実施の形態が可能であることは、当業者には容易に理解されるであろう。
【００７２】
図６Ａは、通常のシステムバス計算システムアーキテクチャ６００を示す。システムのコンポーネントはバス６０５を使用して互いに電気的に通信可能となっている。例示的なシステム６００は、処理ユニット（ＣＰＵすなわちプロセッサ）６１０と、読み取り専用メモリ（ＲＯＭ）６２０やランダムアクセスメモリ（ＲＡＭ）６２５などのシステムメモリ６１５を含む各種のシステムコンポーネントをプロセッサ６１０に接続するシステムバス６０５と、を含む。システム６００は、プロセッサ６１０に直接接続されているか、近接しているか、あるいはその一部として統合されている高速メモリのキャッシュを含んでもよい。システム６００は、データをメモリ６１５および／またはストレージデバイス６３０からキャッシュ６１２へコピーして、プロセッサ６１０が高速でアクセスできるようにしてもよい。このようにして、キャッシュは、データを待っている間のプロセッサ６１０の遅延を回避するパフォーマンスブーストを提供してもよい。これらおよびその他のモジュールは、各種の動作を行うようにプロセッサ６１０を制御するか、または制御するように構成されてもよい。その他のシステムメモリ６１５が同様に使用可能であってもよい。メモリ６１５は、異なる性能特性を持つ複数の異なるタイプのメモリを含んでもよい。プロセッサ６１０は、いかなる汎用プロセッサを含んでもよいし、プロセッサ６１０を制御するように構成されたハードウエアモジュールまたはソフトウエアモジュール、例えばストレージデバイス６３０の中に格納されたモジュール１  ６３２、モジュール２  ６３４、モジュール３  ６３６を含んでもよいし、実際のプロセッサ設計の中にソフトウエアインストラクションが組み込まれている専用プロセッサを含んでもよい。プロセッサ６１０は本質的に、複数のコアまたはプロセッサ、バス、メモリコントローラ、キャッシュ等を含んでいる、完全に自己完結型のコンピュータシステムであってもよい。マルチコアプロセッサは、対称でも非対称でもよい。
【００７３】
ユーザと計算デバイス６００との対話を可能にするため、入力デバイス６４５は、音声用マイクロフォン、ジェスチャまたはグラフィカル入力用のタッチセンシティブスクリーン、キーボード、マウス、動作入力、音声等、いくつもの入力メカニズムを表してもよい。出力デバイス６３５は、当業者には公知の複数の出力メカニズムのうちの１つ以上であってもよい。場合によっては、マルチモーダルシステムによって、ユーザが、計算デバイス６００と通信するための複数のタイプの入力を行うことが可能になる。通常、通信インタフェース６４０が、ユーザ入力とシステム出力とを管理してもよい。特定のハードウェア構成上で動作することについての制限はなく、従って、本明細書での基本的な特徴は、改良型のハードウェア構成やファームウェア構成が開発されれば、それらと容易に置き換わりうる。
【００７４】
ストレージデバイス６３０は不揮発性メモリである。ストレージデバイス６３０はハードディスクや、コンピュータによってアクセス可能でありかつデータを保持可能な他のタイプのコンピュータ可読媒体、例えば、磁気カセット、フラッシュメモリカード、ソリッドステートメモリデバイス、デジタルバーサタイルディスク、カートリッジ、ランダムアクセスメモリ（ＲＡＭｓ）６２５、読み取り専用メモリ（ＲＯＭ）６２０、それらのハイブリッド、等であってもよい。
【００７５】
ストレージデバイス６３０は、プロセッサ６１０を制御するためのソフトウエアモジュール６３２、６３４、６３６を含んでいてもよい。その他のハードウエアモジュールやソフトウエアモジュールも考えられる。ストレージデバイス６３０は、システムバス６０５に接続されていてもよい。一態様では、或る機能を行うハードウエアモジュールは、プロセッサ６１０、バス６０５、ディスプレイ６３５等のような、その機能を実行するのに必要なハードウエアコンポーネントと関連してコンピュータ可読媒体の中に格納されたソフトウエアコンポーネントを含んでもよい。
【００７６】
図６Ｂは、説明された方法を実行したりグラフィカルユーザインタフェース（ＧＵＩ）を生成して表示したりする際に使用可能なチップセットアーキテクチャを有するコンピュータシステム６５０を示す。コンピュータシステム６５０は、開示された技術を実施するのに使用可能なコンピュータハードウエア、ソフトウエアおよびファームウエアの一例である。システム６５０はプロセッサ６５５を含んでもよい。プロセッサ６５５は、ソフトウエア、ファームウエアおよび特定された計算を行うよう構成されたハードウエアを実行可能な、任意の数の物理的および／または論理的に別個のリソースを表す。プロセッサ６５５は、プロセッサ６５５への入力およびプロセッサ６５５からの出力を制御可能なチップセット６６０と通信してもよい。本例では、チップセット６６０はディスプレイなどの出力６６５へ情報を出力し、ストレージデバイス６７０に対して情報の読み書きを行ってもよい。ストレージデバイス６７０は例えば磁気媒体やソリッドステート媒体を含んでもよい。チップセット６６０はまた、ＲＡＭ６７５からデータを読み出し、ＲＡＭ６７５へデータを書き込んでもよい。チップセット６６０とのインタフェースのために、種々のユーザインタフェースコンポーネント６８５とのインタフェースとなるブリッジ６８０が提供されてもよい。そのようなユーザインタフェースコンポーネント６８５は、キーボードやマイクロフォンやタッチ検出および処理回路やマウスなどのポインティングデバイスなどを含んでもよい。一般に、システム６５０への入力は種々のソースのうちの任意のものから来てもよく、または機械により生成されおよび／または人により生成されてもよい。
【００７７】
チップセット６６０は、異なる複数の物理的インタフェースを有しうるひとつ以上の通信インタフェース６９０と連結されてもよい。そのような通信インタフェースは、有線および無線ローカルエリアネットワークとのインタフェースと、ブロードバンド無線ネットワークとのインタフェースと、パーソナルエリアネットワークとのインタフェースと、を含んでもよい。本明細書で開示されるＧＵＩを生成し表示し使用する方法のいくつかの応用は、物理的なインタフェースを介して順序付けられたデータセットを受けること、または順序付けられたデータセットがプロセッサ６５５がストレージ６７０または６７５に保持されるデータを解析することで機械そのものにより生成されることを含んでもよい。さらに、機械はユーザインタフェースコンポーネント６８５を介してユーザから入力を受け、プロセッサ６５５を使用してこれらの入力を解釈することで、ブラウズ機能などの適切な機能を実行してもよい。
【００７８】
例示的なシステム６００および６５０はひとつ以上のプロセッサ６１０を有してもよく、または処理能力を高めるためにネットワーク化された計算デバイスのグループまたはクラスタの一部であってもよいことは理解されるであろう。
【００７９】
説明の明確化のため、ある例では、本技術はデバイスやデバイスコンポーネントやソフトウエアで実施される方法のステップまたはルーチンやハードウエアとソフトウエアとの組み合わせを含む機能ブロックを含む個々の機能ブロックを含むものとして提示されてもよい。
【００８０】
ある実施の形態では、コンピュータ可読保持デバイス、媒体およびメモリは、ビットストリームを含むケーブルや無線信号などを含んでもよい。しかしながら、言及される場合、非一時的コンピュータ可読保持媒体は、エネルギやキャリア信号や電磁波や信号そのものなどの媒体を明示的に除外する。
【００８１】
上述の例に係る方法は、コンピュータ可読媒体に保持されるかそうでなければその媒体から利用可能なコンピュータ実行可能インストラクションを使用して実装されてもよい。そのようなインストラクションは、例えば、汎用コンピュータ、専用コンピュータ、または専用処理デバイスに所定の機能もしくは機能のグループを実行させるかそうでなければ実行するよう設定するインストラクションおよびデータを含んでもよい。使用されるコンピュータリソースの一部はネットワークを介してアクセス可能であってもよい。コンピュータ実行可能インストラクションは、例えば、バイナリや、アセンブリ言語などの中間フォーマットインストラクションや、ファームウエアや、ソースコードであってもよい。インストラクション、使用される情報、および／または説明された例に係る方法中に生成される情報を保持するのに使用されうるコンピュータ可読媒体の例は、磁気または光学ディスク、フラッシュメモリ、不揮発性メモリを備えるＵＳＢデバイス、ネットワークストレージデバイスなどを含む。
【００８２】
本開示に係る方法を実装するデバイスはハードウエア、ファームウエアおよび／またはソフトウエアを含んでもよく、種々の形状ファクタのうちの任意のものをとりうる。そのような形状ファクタの典型的な例は、ラップトップや、スマートフォンや、小さい形状ファクタのパーソナルコンピュータや、パーソナルデジタルアシスタントなどを含む。本明細書で説明される機能は周辺機器やアドインカードにおいて実現されてもよい。さらなる例として、そのような機能は回路基板上で異なる複数のチップの間でまたは単一デバイスで実行される異なる複数の処理の間で実現されてもよい。
【００８３】
インストラクション、そのようなインストラクションを運ぶための媒体、そのようなインストラクションを実行するための計算リソース、およびそのような計算リソースをサポートするための他の構成は、本開示で説明される機能を提供するための手段である。
【００８４】
添付の請求項の範囲内の態様を説明するために様々な例および他の情報が使用されたが、そのような例における特定の特徴や構成に基づくいかなる請求項の限定も暗示されてはならない。当業者であれば、これらの例を使用して多種多様な実装を導くことができるであろう。さらに、いくつかの主題が構造的特徴および／または方法ステップの例に特有の言語で記述されたかもしれないが、添付の請求項で規定される主題はこれらの記述された特徴や行為に限定される必要はないことは理解されるべきである。例えば、そのような機能は異なるように分散されてもよいし、本明細書で特定されたもの以外のコンポーネントで実行されてもよい。むしろ、記述された特徴およびステップは、添付の請求項の範囲内のシステムおよび方法のコンポーネントの例として開示される。 
【図２】
2016508641.tif 000003
【図３】
2016508641.tif 000004
【図４】
2016508641.tif 000005
【図５】
2016508641.tif 000006
【図６Ａ】
2016508641.tif 000007
【図６Ｂ】
2016508641.tif 000008
【図１】
2016508641.tif 000009
【手続補正書】
【提出日】平成26年7月2日(2014.7.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサを介して、コンテンツアイテムを規定するデータを少なくとも第１固定サイズデータブロックと第２固定サイズデータブロックとに分けることであって、前記第１固定サイズデータブロックおよび前記第２固定サイズデータブロックは前記コンテンツアイテムを規定する前記データの一意の部分を、前記第１固定サイズデータブロックに含まれるデータが前記第２固定サイズデータブロックに含まれないように含むことと、
前記第１固定サイズデータブロックの少なくとも一部をハッシュアルゴリズムにおける第１ハッシュキーとして使用することにより第１ハッシュ識別子を計算することと、
前記第２固定サイズデータブロックの少なくとも一部を前記ハッシュアルゴリズムにおける第２ハッシュキーとして使用することにより第２ハッシュ識別子を計算することと、
少なくとも前記第１ハッシュ識別子と前記第２ハッシュ識別子とをつなげて、前記コンテンツアイテムを特定するブロックリストを生成することと、
利用可能なコンテンツプレビューを有するコンテンツアイテムを特定するプレビューインデックスに前記ブロックリストがリストされているか否かを判定することと、
前記ブロックリストが前記プレビューインデックスに含まれていないと判定されると、前記コンテンツアイテムのコンテンツプレビューを生成することと、を含むことを特徴とするコンピュータにより実施される方法。
【請求項３】
前記プレビューインデックスに新たなプレビューエントリを生成することをさらに含み、
前記新たなプレビューエントリは前記ブロックリストとメモリにおける前記コンテンツプレビューの位置とを含むことを特徴とする請求項１に記載のコンピュータにより実施される方法。
【請求項４】
前記判定することは、前記ブロックリストに合う既存のプレビューエントリを前記プレビューインデックスから探すことを含むことを特徴とする請求項３に記載のコンピュータにより実施される方法。
【請求項５】
前記ブロックリストを前記コンテンツアイテムのコンテンツエントリと関連付けることをさらに含み、
前記コンテンツエントリは前記コンテンツアイテムを記述するメタデータを含むことを特徴とする請求項１に記載のコンピュータにより実施される方法。
【請求項６】
前記コンテンツアイテムに関連するプレビュー要求をクライアントデバイスから受けることをさらに含み、
前記プレビュー要求は前記ブロックリストを含み、前記コンテンツプレビューの前記位置は前記ブロックリストを前記プレビューインデックスから探すことにより特定されることを特徴とする請求項１に記載のコンピュータにより実施される方法。
【請求項７】
前記コンテンツアイテムに関連するプレビュー要求をクライアントデバイスから受けることをさらに含み、
前記プレビュー要求は前記コンテンツアイテムのコンテンツエントリを特定するためのデータを含み、前記コンテンツエントリは前記ブロックリストを含み、前記コンテンツプレビューの前記位置は前記ブロックリストに基づいて前記プレビューインデックスから探すことにより特定されることを特徴とする請求項１に記載のコンピュータにより実施される方法。
【請求項８】
プロセッサと、
インストラクションを含むメモリと、を備えるシステムであって、
前記インストラクションは、実行されると、前記プロセッサに、
コンテンツアイテムを規定するデータを複数の固定サイズデータブロックに分けさせ、ここで、前記複数の固定サイズデータブロックの各固定サイズデータブロックは前記コンテンツアイテムの一意の部分を、前記複数の固定サイズデータブロックのうちの第１固定サイズデータブロックに含まれるデータが前記複数の固定サイズデータブロックのうちの他の固定サイズデータブロックに含まれないように含み、
複数のハッシュ識別子を決定させ、ここで、前記複数のハッシュ識別子の各ハッシュ識別子は前記複数の固定サイズブロックのうちのひとつの固定サイズデータブロックに対応し、各ハッシュ識別子は前記ハッシュ識別子に対応する前記固定サイズブロックの少なくとも一部をハッシュアルゴリズムにおけるハッシュキーとして使用して生成され、
前記複数のハッシュ識別子をつなげて前記コンテンツアイテムに対する前記ブロックリストを生成させ、
利用可能なコンテンツプレビューを有すると知られているコンテンツアイテムに対するブロックリストを含むプレビューインデックスに前記ブロックリストが含まれるか否かを判定させ、
前記ブロックリストが前記プレビューインデックスに含まれていないと判定されると、前記コンテンツアイテムのコンテンツプレビューを生成させることを特徴とするシステム。
【請求項１０】
前記インストラクションは前記プロセッサにさらに、前記プレビューインデックスに新たなプレビューエントリを生成させ、
前記新たなプレビューエントリは前記ブロックリストとメモリにおける前記コンテンツプレビューの位置とを含むことを特徴とする請求項８に記載のシステム。
【請求項１１】
前記プレビューインデックスに前記ブロックリストが含まれるか否かを判定することは、前記ブロックリストに関連する既存のプレビューエントリを前記プレビューインデックスから探すことを含むことを特徴とする請求項１０に記載のシステム。
【請求項１２】
前記インストラクションは前記プロセッサにさらに、前記ブロックリストを前記コンテンツアイテムのコンテンツエントリと関連付けさせ、
前記コンテンツエントリは前記コンテンツアイテムを記述するメタデータを含むことを特徴とする請求項８に記載のシステム。
【請求項１３】
前記インストラクションは前記プロセッサにさらに、前記コンテンツアイテムに関連するプレビュー要求をクライアントデバイスから受けさせ、
前記プレビュー要求は前記ブロックリストを含み、前記コンテンツプレビューの前記位置は前記ブロックリストに基づいて前記プレビューインデックスから探すことにより特定されることを特徴とする請求項８に記載のシステム。
【請求項１４】
前記インストラクションは前記プロセッサにさらに、前記コンテンツアイテムに関連するプレビュー要求をクライアントデバイスから受けさせ、
前記プレビュー要求は前記コンテンツアイテムに関連するコンテンツエントリを特定するデータを含み、前記コンテンツエントリは前記ブロックリストを含み、前記コンテンツプレビューの前記位置は前記ブロックリストに基づいて前記プレビューインデックスから探すことにより特定されることを特徴とする請求項８に記載のシステム。
【請求項１５】
前記ハッシュアルゴリズムは、一意のハッシュキーのおのおのについて、一意のハッシュ識別子を返すことを特徴とする請求項８に記載のシステム。
【請求項１６】
インストラクションを含む非一時的なコンピュータ可読媒体であって、前記インストラクションは、計算デバイスによって実行されると、前記計算デバイスに、
第１コンテンツアイテムを第１ユーザアカウントに保持するための要求を受けさせ、ここで、前記第１コンテンツアイテムは少なくとも第１固定サイズデータブロックと第２固定サイズデータブロックとに分けられており、前記第１固定サイズデータブロックおよび前記第２固定サイズデータブロックは前記コンテンツアイテムを規定するデータの異なる部分を、前記第１固定サイズデータブロックに含まれるデータが前記第２固定サイズデータブロックに含まれないように含み、
前記第１固定サイズデータブロックの少なくとも一部をハッシュアルゴリズムにおける第１ハッシュキーとして使用して第１ハッシュ識別子を計算させ、かつ、前記第２固定サイズデータブロックの少なくとも一部を前記ハッシュアルゴリズムにおける第２ハッシュキーとして使用して第２ハッシュ識別子を計算させ、
少なくとも前記第１ハッシュ識別子と前記第２ハッシュ識別子とをつなげて前記コンテンツアイテムに対するブロックリストを生成させ、
プレビューインデックスにおいて前記ブロックリストに関連するプレビューエントリを特定させ、ここで、前記プレビューエントリは第２ユーザアカウントの第２コンテンツアイテムに関連付けられており、
前記プレビューエントリを前記第１ユーザアカウントの前記第１コンテンツアイテムに割り当てさせることを特徴とする非一時的なコンピュータ可読媒体。
【請求項１７】
前記プレビューインデックスにおいて前記プレビューエントリを特定することは、前記ブロックリストに関連する既存のプレビューエントリを前記プレビューインデックスから探すことを含み、
前記プレビューインデックスは複数のプレビューエントリを含み、前記複数のプレビューエントリの各プレビューエントリはブロックリストとメモリにおける割り当てられたコンテンツプレビューの位置とを含むことを特徴とする請求項１６に記載の非一時的なコンピュータ可読媒体。
【請求項１８】
前記インストラクションは前記計算デバイスにさらに、
前記コンテンツアイテムに関連するプレビュー要求をクライアントデバイスから受けさせ、
前記コンテンツプレビューの前記位置を特定させ、
前記コンテンツプレビューを前記クライアントデバイスの返させることを特徴とする請求項１６に記載の非一時的なコンピュータ可読媒体。
【請求項１９】
前記プレビュー要求は前記ブロックリストを含み、前記コンテンツプレビューの前記位置は前記ブロックリストに基づいて前記プレビューインデックスから探すことにより特定されることを特徴とする請求項１８に記載の非一時的なコンピュータ可読媒体。
【請求項２０】
前記プレビュー要求は前記コンテンツアイテムの前記コンテンツエントリを特定するデータを含み、前記コンテンツエントリは前記ブロックリストを含み、前記コンテンツプレビューの前記位置は前記ブロックリストに基づいて前記プレビューインデックスから探すことにより特定されることを特徴とする請求項１８に記載の非一時的なコンピュータ可読媒体。
【請求項２１】
コンテンツアイテムを規定するデータを少なくとも第１固定サイズデータブロックと第２固定サイズデータブロックとに分ける手段であって、前記第１固定サイズデータブロックおよび前記第２固定サイズデータブロックは前記コンテンツアイテムを規定する前記データの一意の部分を、前記第１固定サイズデータブロックに含まれるデータが前記第２固定サイズデータブロックに含まれないように含む手段と、
前記第１固定サイズデータブロックの少なくとも一部をハッシュアルゴリズムにおける第１ハッシュキーとして使用することにより第１ハッシュ識別子を計算する手段と、
前記第２固定サイズデータブロックの少なくとも一部を前記ハッシュアルゴリズムにおける第２ハッシュキーとして使用することにより第２ハッシュ識別子を計算する手段と、
少なくとも前記第１ハッシュ識別子と前記第２ハッシュ識別子とをつなげて前記コンテンツアイテムを特定するブロックリストを生成する手段と、
利用可能なコンテンツプレビューを有するコンテンツアイテムを特定するプレビューインデックスに前記ブロックリストがリストされているか否かを判定する手段と、
前記ブロックリストが前記プレビューインデックスに含まれていないと判定されると、前記コンテンツアイテムのコンテンツプレビューを生成する手段と、を備えることを特徴とするシステム。
【請求項２３】
前記プレビューインデックスに新たなプレビューエントリを生成する手段をさらに備え、
前記新たなプレビューエントリは前記ブロックリストとメモリにおける前記コンテンツプレビューの位置とを含むことを特徴とする請求項２１に記載のシステム。
【請求項２４】
前記ブロックリストを前記コンテンツアイテムのコンテンツエントリと関連付ける手段をさらに備え、
前記コンテンツエントリは前記コンテンツアイテムを記述するメタデータを含むことを特徴とする請求項２１に記載のシステム。
【請求項２５】
前記コンテンツアイテムに関連するプレビュー要求をクライアントデバイスから受ける手段をさらに備え、
前記プレビュー要求は前記ブロックリストを含み、前記コンテンツプレビューの前記位置は前記ブロックリストを前記プレビューインデックスから探すことにより特定されることを特徴とする請求項２１に記載のシステム。
【請求項２６】
前記コンテンツアイテムに関連するプレビュー要求をクライアントデバイスから受ける手段をさらに備え、
前記プレビュー要求は前記コンテンツアイテムのコンテンツエントリを特定するデータを含み、前記コンテンツエントリは前記ブロックリストを含み、前記コンテンツプレビューの前記位置は前記ブロックリストについてベースされる前記プレビューインデックスから探すことにより特定されることを特徴とする請求項２１に記載のシステム。
【手続補正書】
【提出日】平成27年10月15日(2015.10.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサを介して、コンテンツアイテムを規定するデータを少なくとも第１固定サイズデータブロックと第２固定サイズデータブロックとに分けることであって、前記第１固定サイズデータブロックおよび前記第２固定サイズデータブロックは前記コンテンツアイテムを規定する前記データの一意の部分を、前記第１固定サイズデータブロックに含まれるデータが前記第２固定サイズデータブロックに含まれないように含むことと、
前記第１固定サイズデータブロックの少なくとも一部をハッシュアルゴリズムにおける第１ハッシュキーとして使用することにより第１ハッシュ識別子を計算することと、
前記第２固定サイズデータブロックの少なくとも一部を前記ハッシュアルゴリズムにおける第２ハッシュキーとして使用することにより第２ハッシュ識別子を計算することと、
少なくとも前記第１ハッシュ識別子と前記第２ハッシュ識別子とをつなげて、前記コンテンツアイテムを特定するブロックリストを生成することと、
利用可能なコンテンツプレビューを有するコンテンツアイテムを特定するプレビューインデックスに前記ブロックリストがリストされているか否かを判定することと、
前記ブロックリストが前記プレビューインデックスに含まれていないと判定されると、前記コンテンツアイテムのコンテンツプレビューを生成することと、を含むことを特徴とするコンピュータにより実施される方法。
【請求項２】
前記プレビューインデックスに新たなプレビューエントリを生成することをさらに含み、
前記新たなプレビューエントリは前記ブロックリストとメモリにおける前記コンテンツプレビューの位置とを含むことを特徴とする請求項１に記載のコンピュータにより実施される方法。
【請求項３】
前記判定することは、前記ブロックリストに合う既存のプレビューエントリを前記プレビューインデックスから探すことを含むことを特徴とする請求項２に記載のコンピュータにより実施される方法。
【請求項４】
前記ブロックリストを前記コンテンツアイテムのコンテンツエントリと関連付けることをさらに含み、
前記コンテンツエントリは前記コンテンツアイテムを記述するメタデータを含むことを特徴とする請求項１に記載のコンピュータにより実施される方法。
【請求項５】
前記コンテンツアイテムに関連するプレビュー要求をクライアントデバイスから受けることをさらに含み、
前記プレビュー要求は前記ブロックリストを含み、前記コンテンツプレビューの前記位置は前記ブロックリストを前記プレビューインデックスから探すことにより特定されることを特徴とする請求項１に記載のコンピュータにより実施される方法。
【請求項６】
前記コンテンツアイテムに関連するプレビュー要求をクライアントデバイスから受けることをさらに含み、
前記プレビュー要求は前記コンテンツアイテムのコンテンツエントリを特定するためのデータを含み、前記コンテンツエントリは前記ブロックリストを含み、前記コンテンツプレビューの前記位置は前記ブロックリストに基づいて前記プレビューインデックスから探すことにより特定されることを特徴とする請求項１に記載のコンピュータにより実施される方法。
【請求項７】
プロセッサと、
インストラクションを含むメモリと、を備えるシステムであって、
前記インストラクションは、実行されると、前記プロセッサに、
コンテンツアイテムを規定するデータを複数の固定サイズデータブロックに分けさせ、ここで、前記複数の固定サイズデータブロックの各固定サイズデータブロックは前記コンテンツアイテムの一意の部分を、前記複数の固定サイズデータブロックのうちの第１固定サイズデータブロックに含まれるデータが前記複数の固定サイズデータブロックのうちの他の固定サイズデータブロックに含まれないように含み、
複数のハッシュ識別子を決定させ、ここで、前記複数のハッシュ識別子の各ハッシュ識別子は前記複数の固定サイズブロックのうちのひとつの固定サイズデータブロックに対応し、各ハッシュ識別子は前記ハッシュ識別子に対応する前記固定サイズブロックの少なくとも一部をハッシュアルゴリズムにおけるハッシュキーとして使用して生成され、
前記複数のハッシュ識別子をつなげて前記コンテンツアイテムに対する前記ブロックリストを生成させ、
利用可能なコンテンツプレビューを有すると知られているコンテンツアイテムに対するブロックリストを含むプレビューインデックスに前記ブロックリストが含まれるか否かを判定させ、
前記ブロックリストが前記プレビューインデックスに含まれていないと判定されると、前記コンテンツアイテムのコンテンツプレビューを生成させることを特徴とするシステム。
【請求項８】
前記インストラクションは前記プロセッサにさらに、前記プレビューインデックスに新たなプレビューエントリを生成させ、
前記新たなプレビューエントリは前記ブロックリストとメモリにおける前記コンテンツプレビューの位置とを含むことを特徴とする請求項７に記載のシステム。
【請求項９】
前記プレビューインデックスに前記ブロックリストが含まれるか否かを判定することは、前記ブロックリストに関連する既存のプレビューエントリを前記プレビューインデックスから探すことを含むことを特徴とする請求項８に記載のシステム。
【請求項１０】
前記インストラクションは前記プロセッサにさらに、前記ブロックリストを前記コンテンツアイテムのコンテンツエントリと関連付けさせ、
前記コンテンツエントリは前記コンテンツアイテムを記述するメタデータを含むことを特徴とする請求項７に記載のシステム。
【請求項１１】
前記インストラクションは前記プロセッサにさらに、前記コンテンツアイテムに関連するプレビュー要求をクライアントデバイスから受けさせ、
前記プレビュー要求は前記ブロックリストを含み、前記コンテンツプレビューの前記位置は前記ブロックリストに基づいて前記プレビューインデックスから探すことにより特定されることを特徴とする請求項７に記載のシステム。
【請求項１２】
前記インストラクションは前記プロセッサにさらに、前記コンテンツアイテムに関連するプレビュー要求をクライアントデバイスから受けさせ、
前記プレビュー要求は前記コンテンツアイテムに関連するコンテンツエントリを特定するデータを含み、前記コンテンツエントリは前記ブロックリストを含み、前記コンテンツプレビューの前記位置は前記ブロックリストに基づいて前記プレビューインデックスから探すことにより特定されることを特徴とする請求項７に記載のシステム。
【請求項１３】
前記ハッシュアルゴリズムは、一意のハッシュキーのおのおのについて、一意のハッシュ識別子を返すことを特徴とする請求項７に記載のシステム。
【請求項１４】
インストラクションを含む非一時的なコンピュータ可読媒体であって、前記インストラクションは、計算デバイスによって実行されると、前記計算デバイスに、
第１コンテンツアイテムを第１ユーザアカウントに保持するための要求を受けさせ、ここで、前記第１コンテンツアイテムは少なくとも第１固定サイズデータブロックと第２固定サイズデータブロックとに分けられており、前記第１固定サイズデータブロックおよび前記第２固定サイズデータブロックは前記コンテンツアイテムを規定するデータの異なる部分を、前記第１固定サイズデータブロックに含まれるデータが前記第２固定サイズデータブロックに含まれないように含み、
前記第１固定サイズデータブロックの少なくとも一部をハッシュアルゴリズムにおける第１ハッシュキーとして使用して第１ハッシュ識別子を計算させ、かつ、前記第２固定サイズデータブロックの少なくとも一部を前記ハッシュアルゴリズムにおける第２ハッシュキーとして使用して第２ハッシュ識別子を計算させ、
少なくとも前記第１ハッシュ識別子と前記第２ハッシュ識別子とをつなげて前記コンテンツアイテムに対するブロックリストを生成させ、
プレビューインデックスにおいて前記ブロックリストに関連するプレビューエントリを特定させ、ここで、前記プレビューエントリは第２ユーザアカウントの第２コンテンツアイテムに関連付けられており、
前記プレビューエントリを前記第１ユーザアカウントの前記第１コンテンツアイテムに割り当てさせることを特徴とする非一時的なコンピュータ可読媒体。
【請求項１５】
前記プレビューインデックスにおいて前記プレビューエントリを特定することは、前記ブロックリストに関連する既存のプレビューエントリを前記プレビューインデックスから探すことを含み、
前記プレビューインデックスは複数のプレビューエントリを含み、前記複数のプレビューエントリの各プレビューエントリはブロックリストとメモリにおける割り当てられたコンテンツプレビューの位置とを含むことを特徴とする請求項１４に記載の非一時的なコンピュータ可読媒体。
【請求項１６】
前記インストラクションは前記計算デバイスにさらに、
前記コンテンツアイテムに関連するプレビュー要求をクライアントデバイスから受けさせ、
前記コンテンツプレビューの前記位置を特定させ、
前記コンテンツプレビューを前記クライアントデバイスの返させることを特徴とする請求項１４に記載の非一時的なコンピュータ可読媒体。
【請求項１７】
前記プレビュー要求は前記ブロックリストを含み、前記コンテンツプレビューの前記位置は前記ブロックリストに基づいて前記プレビューインデックスから探すことにより特定されることを特徴とする請求項１６に記載の非一時的なコンピュータ可読媒体。
【請求項１８】
前記プレビュー要求は前記コンテンツアイテムの前記コンテンツエントリを特定するデータを含み、前記コンテンツエントリは前記ブロックリストを含み、前記コンテンツプレビューの前記位置は前記ブロックリストに基づいて前記プレビューインデックスから探すことにより特定されることを特徴とする請求項１６に記載の非一時的なコンピュータ可読媒体。
【請求項１９】
コンテンツアイテムを規定するデータを少なくとも第１固定サイズデータブロックと第２固定サイズデータブロックとに分ける手段であって、前記第１固定サイズデータブロックおよび前記第２固定サイズデータブロックは前記コンテンツアイテムを規定する前記データの一意の部分を、前記第１固定サイズデータブロックに含まれるデータが前記第２固定サイズデータブロックに含まれないように含む手段と、
前記第１固定サイズデータブロックの少なくとも一部をハッシュアルゴリズムにおける第１ハッシュキーとして使用することにより第１ハッシュ識別子を計算する手段と、
前記第２固定サイズデータブロックの少なくとも一部を前記ハッシュアルゴリズムにおける第２ハッシュキーとして使用することにより第２ハッシュ識別子を計算する手段と、
少なくとも前記第１ハッシュ識別子と前記第２ハッシュ識別子とをつなげて前記コンテンツアイテムを特定するブロックリストを生成する手段と、
利用可能なコンテンツプレビューを有するコンテンツアイテムを特定するプレビューインデックスに前記ブロックリストがリストされているか否かを判定する手段と、
前記ブロックリストが前記プレビューインデックスに含まれていないと判定されると、前記コンテンツアイテムのコンテンツプレビューを生成する手段と、を備えることを特徴とするシステム。
【請求項２０】
前記プレビューインデックスに新たなプレビューエントリを生成する手段をさらに備え、
前記新たなプレビューエントリは前記ブロックリストとメモリにおける前記コンテンツプレビューの位置とを含むことを特徴とする請求項１９に記載のシステム。
【請求項２１】
前記ブロックリストを前記コンテンツアイテムのコンテンツエントリと関連付ける手段をさらに備え、
前記コンテンツエントリは前記コンテンツアイテムを記述するメタデータを含むことを特徴とする請求項１９に記載のシステム。
【請求項２２】
前記コンテンツアイテムに関連するプレビュー要求をクライアントデバイスから受ける手段をさらに備え、
前記プレビュー要求は前記ブロックリストを含み、前記コンテンツプレビューの前記位置は前記ブロックリストを前記プレビューインデックスから探すことにより特定されることを特徴とする請求項１９に記載のシステム。
【請求項２３】
前記コンテンツアイテムに関連するプレビュー要求をクライアントデバイスから受ける手段をさらに備え、
前記プレビュー要求は前記コンテンツアイテムのコンテンツエントリを特定するデータを含み、前記コンテンツエントリは前記ブロックリストを含み、前記コンテンツプレビューの前記位置は前記ブロックリストについてベースされる前記プレビューインデックスから探すことにより特定されることを特徴とする請求項１９に記載のシステム。
【国際調査報告】
2016508641.tif 000010
2016508641.tif 000011