本明細書において説明される実装は、コンテンツアイテムの記憶を容易にする。様々な実装において、システムは、デバイスのローカルストレージ(たとえば、モバイルデバイスの組み込まれたまたは取り外し可能なフラッシュメモリ)に記憶されたコンテンツアイテムの二次ストレージ(たとえば、クラウドストレージ、接続されたデバイスのストレージ、外付けローカルストレージ、ローカルでネットワークに接続されたストレージ)へのアップロードを容易にし、所定の基準に基づいて、ローカルストレージから削除するおよび/またはローカルストレージに追加するコンテンツアイテムを選択する。たとえば、ユーザの同意の下、ただし、ユーザのインタラクションまたは入力なしに、システムは、モバイルデバイスのローカルストレージから削除するためのコンテンツアイテム(たとえば、より新しい写真のための空きを作るためにユーザがおそらく消すであろう古い写真)を自動的に選択し、ユーザがおそらく欲しいであろうコンテンツアイテムをローカルストレージにダウンロードする可能性がある。たとえば、ユーザの同意の下、ただし、ユーザのインタラクションまたは入力なしに、システムは、所定の基準に基づいて、モバイルデバイスのローカルストレージに追加するかまたはモバイルデバイスのローカルストレージから削除するローカルストレージおよび二次ストレージ上のコンテンツアイテムを自動的に選択する可能性がある。
様々な実装において、システムは、デバイスのローカルストレージ(たとえば、モバイルデバイスの組み込まれたフラッシュメモリ)上に記憶されるコンテンツアイテムの二次ストレージ(たとえば、クラウドストレージ、接続されたデバイスのストレージ)からのダウンロードを容易にし、所定の基準に基づいて、ローカルストレージに追加するかまたはローカルストレージ上に維持するコンテンツアイテムを選択する。たとえば、ユーザの同意の下、ただし、ユーザのインタラクションまたは入力なしに、システムは、モバイルデバイスのローカルストレージに追加するコンテンツアイテム(たとえば、ユーザがおそらくデバイスのローカルストレージ上に置いておきたいであろう写真)を自動的に選択する可能性がある。
たとえば、ローカルストレージが一杯になるとき、スペースを解放するために、モバイルデバイスのユーザは、ローカルストレージから削除するファイルを手動で特定する可能性がある。たとえば、ユーザは、デバイス上の写真を手動で吟味し、デバイス上に記憶された写真の一部を削除する可能性がある。別の例として、ユーザは、デバイスにインストールされたアプリケーションを吟味し、削除するアプリケーションまたはアプリケーションのデータを特定する可能性がある。概して、モバイルデバイス上のファイルの管理は、複雑であり、ユーザがそのユーザのモバイルデバイス上に保持するファイルを特定するために時間がかかる可能性がある。これは、ユーザがデバイスに適切であり得るよりも多くのファイルを有するときに特に当てはまる。ファイル管理は、ユーザが複数のデバイスを有するとき、より一層複雑で、時間がかかるようになる。一部の実装は、ユーザによる手動の吟味および管理に対する補足またはユーザによる手動の吟味および管理の代わりとして使用され得る。
以下でより詳細に説明されるように、一部の実装において、コンテンツアイテムストレージシステムは、たとえば、デバイスがコンテンツアイテムをダウンロードするかまたは生成することによってコンテンツアイテムを受信する。たとえば、ユーザは、それらのユーザのモバイルデバイス上でイベントにおける一連の写真を撮影する可能性がある。コンテンツアイテムは、デバイスのローカルストレージ(たとえば、デバイスに搭載された組み込まれたフラッシュメモリ)に記憶される。そのとき、システムは、デバイスの利用可能なローカルストレージの容量を判定する(たとえば、ローカルストレージ上で写真を記憶するために1GB未満が利用可能)。システムは、ローカルストレージから二次ストレージへのコンテンツアイテムのアップロード(たとえば、コピーの転送)を容易にする。たとえば、二次ストレージは、デバイス内の別のデータストアである可能性があり、または別のモバイルデバイス、パーソナルコンピュータ、ホームストレージシステム、ネットワークストレージシステム、クラウドストレージシステム、写真共有サイト、ソーシャルネットワークサイトなどのストレージなどの、モバイルデバイスに利用され得る別のデータストアである可能性がある。
一部の実装において、ユーザは、豊富なローカルストレージを有し、たとえば、デバイスが二次ストレージからコンテンツアイテムをダウンロードすることによって、さらなるコンテンツアイテムをデバイス上に記憶させたい。たとえば、ユーザは、写真を撮影し、別のモバイルデバイス、またはパーソナルコンピュータなどの別のデバイスから二次ストレージにそれらの写真をアップロードした可能性がある。システムは、デバイスの利用可能なローカルストレージの容量を判定する(たとえば、ローカルストレージ上で写真を記憶するために2GBを超えて利用可能)。システムは、二次ストレージからローカルストレージへのコンテンツアイテムのダウンロードを容易にする。やはり、二次ストレージは、デバイス内の別のデータストアである可能性があり、またはパーソナルコンピュータ、ホームストレージシステム、ネットワークストレージシステム、クラウドストレージシステム、写真共有サイト、ソーシャルネットワークサイトなどのストレージなどの、モバイルデバイスに利用され得る別のデータストアである可能性がある。
システムは、所定の基準に基づいて、ローカルストレージから削除するまたはローカルストレージに追加するコンテンツアイテムを選択する可能性がある。たとえば、基準は、ユーザがデバイス上のローカルストレージのコンテンツアイテム(たとえば、デバイスがオフラインであるときにユーザがアクセスしそうにない古い写真)にアクセスしたいと思われないという判定を含み得る。そのとき、システムは、選択されたコンテンツアイテムをローカルストレージから削除する。別の例として、基準は、ユーザがデバイスのローカルストレージ上のコンテンツアイテムの一部(たとえば、ユーザが頻繁に言及するイベントの古い写真)におそらくアクセスしたいであろうという判定を含み得る。そのとき、システムは、選択されたコンテンツアイテムをローカルストレージに追加する可能性がある。
図1は、本明細書において説明される実装を実装するために使用され得る例示的なネットワーク環境100のブロック図を示す。これは例示的な例であり、任意の好適な環境が使用され得ることを理解されたい。一部の実装において、ネットワーク環境100は、サーバデバイス104および二次ストレージ(たとえば、ストレージデータベース) 106を含むサーバシステム102を含む。サーバシステム102は、1つまたは複数のアプリケーションのためのサーバ機能を提供し得る。たとえば、サーバシステム102は、ソーシャルネットワーキングシステム、写真共有システム、アプリケーションマーケットプレイスなどを提供する可能性がある。サーバシステム102は、ユーザのためのコンテンツアイテムを記憶するための二次ストレージ機能106を提供する可能性がある。ネットワーク環境100は、たとえば、サーバシステム102およびネットワーク150を介して互いに通信し得る、その他のサーバ(図示せず)およびネットワーク150を介して互いに通信し得る、ネットワーク150を介して互いに直接通信し得る、ならびに/またはその他のネットワーク(図示せず)を介して互いに直接通信し得るクライアントデバイス110、120、130、および140も含む。
一部の実装において、サーバシステム102は、スマートフォンなどのモバイルデバイスである可能性があり、クライアントデバイス110は、腕時計などのウェアラブルコンピュータである可能性がある。ネットワーク150は、たとえば、Bluetooth(登録商標)またはWiFiなどのワイヤレスネットワークである可能性がある。この例において、腕時計クライアントデバイス110は、ローカルストレージを有し、スマートフォンサーバシステム102は、二次ストレージ106を有する。したがって、サーバシステム102は、そのサーバシステム102が二次ストレージのために別のサーバシステム(図示せず)と通信するようにクライアントデバイス110、120、130、140である可能性もある。
一部の実装において、コンテンツアイテムストレージシステム160は、示されるように、サーバデバイス104、二次ストレージ106を含むサーバシステム102およびクライアントデバイス110に実装され得る。クライアントデバイス110の描写は例示的であり、コンテンツストレージシステムはクライアントデバイス110、120、130、および140のいずれかまたは組合せに実装され得ることを理解されたい。たとえば、コンテンツアイテムストレージシステム160の態様は、クライアントデバイス110、120、130、および140のうちの1つまたは複数に実装される可能性があり、コンテンツアイテムストレージシステム160の1つまたは複数の態様は、サーバシステム102および/またはその他のサーバシステム(図示せず)に実装される可能性がある。コンテンツアイテムストレージシステムの1つまたは複数の態様は、サーバシステム102とクライアントデバイス110、120、130、および140のうちの1つまたは複数との組合せに実装される可能性がある。
一部の実装において、本発明によるコンテンツアイテムを記憶するためのコンテンツアイテムストレージシステム160は、すべてクライアントデバイス110、120、130、および140に実装される。一部の実装において、本発明によるコンテンツアイテムを記憶するためのコンテンツアイテムストレージシステム160は、すべて、クライアントデバイス110、120、130、および140と通信するサーバシステム102に実装される。
図示を容易にするために、図1は、サーバシステム102、サーバデバイス104、および二次ストレージ106のそれぞれに関して1つのブロックを示し、クライアントデバイス110、120、130、および140に関する4つのブロックを示す。ブロック102、104、および106は、複数のシステム、サーバデバイス、および二次ストレージデバイス、位置、およびデータベースを表す可能性がある。それぞれが同じまたは異なる機能を有する任意の数のサーバシステム102が存在する可能性がある。たとえば、一部の実装は、たくさんのさらなるサーバ102を有する可能性がある。簡略化するために図示されていない関連するさらなるネットワーキングサーバ要素、負荷分散サーバ要素、セキュリティサーバ要素、およびその他のサーバ要素が存在する可能性がある。また、任意の数のクライアントデバイス110、120、130、および140が存在する可能性がある。たとえば、一部の実装は、示された4つのクライアントデバイス以外のたくさんのさらなるクライアントデバイス110、120、130、および140を有する可能性がある。その他の実装において、ネットワーク環境100は、示されたコンポーネントのすべてを有するわけではない可能性があり、および/または本明細書に示された要素の代わりにもしくは本明細書に示された要素に加えてその他の種類の要素を含むその他の要素を有する可能性がある。
様々な実装において、ユーザU1、U2、U3、およびU4は、互いに通信する可能性があり、それぞれのクライアントデバイス110、120、130、および140を使用してアプリケーションに参加する可能性がある。様々な時間に、所与のユーザU1、U2、U3、およびU4は、1つまたは複数のクライアントデバイス110、120、130、および140を使用する可能性がある。様々な時間に、複数のユーザU1、U2、U3、およびU4は、クライアントデバイス110、120、130、および140のうちの同じ1つまたは複数を使用する可能性がある。ユーザU1、U2、U3、およびU4は、それぞれのクライアントデバイス110、120、130、および140を使用してコンテンツアイテムを生成するか、送信するか、または互いに共有する可能性がある。たとえば、ユーザU1、U2、U3、およびU4は、それぞれのクライアントデバイス110、120、130、および140を使用して写真を撮るおよび/またはビデオを撮影する可能性もある。様々な実装において、クライアントデバイス110、120、130、および140は、モバイル電話(たとえば、スマートフォン)、ウェアラブルコンピュータ(たとえば、メガネ、腕時計)、ポータブルコンピュータ、タブレット、ノートブックコンピュータ、デスクトップコンピュータ、デジタルカメラなどの任意の種類の電子デバイスを含み得る。専用のデジタルカメラではないそのようなクライアントデバイス110、120、130、および140は、組み込まれたデジタルカメラおよび/またはビデオカメラを含み得る。
一部の実装において、クライアントデバイス110、120、130、および140は、任意のハンズフリーデバイスを含むウェアラブルコンピュータまたはコンピューティングデバイスを含む可能性がある。たとえば、一部の実装において、1つまたは複数のクライアントデバイスは、ヘッドマウントカメラ、ヘッドマウント視線追跡デバイス、および/またはヘッドマウントディスプレイ(たとえば、HMD)で動作するデバイスを含む可能性がある。ウェアラブルコンピュータは、たとえば、統合されたデバイス(たとえば、メガネ)として実装される可能性があり、またはその他の実装において、態様は、ヘッドマウントディスプレイ(たとえば、メガネ)に実装される可能性があり、その他の態様は、その他のデバイス(たとえば、腕時計、装身具、ポケットに入れて運ばれる品物、モバイルデバイスなど)に実装される可能性がある。
図示を容易にするために、4つの例示的なユーザU1、U2、U3、およびU4が説明される。システム102を使用して互いに通信するために協力しており、コンテンツアイテムを生成しており、たとえば、ソーシャルネットワークアプリケーション、写真共有アプリケーションなどに参加している可能性があるネットワーク環境100の任意の数のユーザが存在し得る。図示を容易にするために、4つのそれぞれの例示的なクライアントデバイス110、120、130、および140が説明される。任意の数のそれぞれのクライアントデバイスが存在し得る。
図2は、一部の実装によるコンテンツアイテムを記憶するための例示的な流れ図を示す。図1および図2を参照すると、例示的な方法200は、システム(たとえば、コンテンツアイテムストレージシステム160)が1つまたは複数のコンテンツアイテムを受信するブロック202において開始される。この例において、コンテンツアイテムは、クライアントデバイス110において受信される可能性がある。この例において、クライアントデバイス110はスマートフォンモバイルデバイスとして説明されるが、クライアントデバイスは任意の好適な種類のクライアントデバイスである可能性があることを理解されたい。クライアントデバイス110は、様々なコンテンツアイテムを受信する可能性があり、同じまたは異なる1人のユーザまたは複数のユーザから様々な時間に異なる方法で異なるコンテンツアイテムを受信する可能性がある。たとえば、クライアントデバイス110は、クライアントデバイス110を使用して、たとえば、スチルカメラ、ビデオカメラ、マイクロフォン、またはその他のセンサーもしくはセンサーの組合せを使用して生成されたかまたは取り込まれたコンテンツアイテムを受信する可能性がある。クライアントデバイス110は、サーバ102などのサーバ、またはその他のクライアントデバイス110、120、130、および140、またはカメラ、レコーダ、センサーなどの周辺デバイスからネットワーク150などのネットワークを介してダウンロードされたかまたはそれ以外の方法で伝達されたコンテンツアイテムを受信する可能性がある。
所与のクライアントデバイス110によって受信され得る例示的なコンテンツアイテムは、アプリケーション、アプリケーションのデータ、写真、画像、グラフィックス、ビデオ、オーディオトラック、歌、音楽、グラフィックスインターチェンジフォーマット(graphics interchange format)ファイル(gif)、文書、イベント情報、電子メール、メッセージ、投稿、コメント、応答、タグ、グループ参加要求、グループ参加承認、チェックインデータ、地理および/または位置情報、ログファイルなどを含むがこれらに限定されない。利用可能なコンテンツアイテムの種類は、クライアントデバイス110上で、および所与のクライアントデバイス110と通信するサーバ、たとえば、サーバ102上で実行されるアプリケーションに応じて変わる。一部のコンテンツアイテムは、その他の種類のコンテンツアイテムを含む可能性がある。たとえば、一部の実装において、コンテンツアイテムは、それぞれが写真、写真に関連するテキストの説明文、および写真内に示される個人、物、または場所を特定するタグなどの様々なコンテンツアイテムを含む1つまたは複数のソーシャルネットワークの投稿である可能性がある。一部の実装において、写真を含むコンテンツアイテムは、写真に関連して表示される地理および/または位置データなどのコンテンツアイテムを含む可能性もある。ユーザは、チャットおよびインスタントメッセージセッションにおいてコンテンツアイテムを伝達する可能性がある。コンテンツアイテムは、様々な方法で、たとえば、オンラインストアから、電子メールメッセージで、チャットメッセージで、ファイルリポジトリから、ウェブサイトから、ファイル共有およびメッセージングアプリケーションからなど受信される可能性がある。
一部の実装において、ソーシャルネットワーキングに関連するアプリケーションは、ユーザが投稿、コメント、メッセージ、写真、およびビデオなどのコンテンツアイテムを受信し、ユーザが1つまたは複数のコンテンツアイテムをグループのその他のメンバーと共有するようにコンテンツアイテムをその他のユーザのグループと関連付けることを可能にするソーシャルネットワーキングの特徴を有する。そのとき、グループに含まれるユーザは、そのような共有されたコンテンツアイテムにアクセスし得る。ユーザは、そのような共有されたコンテンツアイテムの可用性を知らされる可能性がある。ユーザは、仮想的な壁上の共有されたコンテンツを提示されるか、または所与のユーザが参加するグループに関連付けられた共有されたコンテンツアイテムのリスト内の共有されたコンテンツアイテムを提示される可能性がある。
本明細書において説明される実装の文脈で使用される「グループ」は、ソーシャルネットワークグループである。したがって、この文脈で、用語「グループ」は、語句「ソーシャルネットワークグループ」と交換可能であるように使用される可能性がある。様々な実装において、ソーシャルネットワークグループは、ソーシャルネットワーク内の社会的つながりのある(socially connected)ユーザの組である可能性がある。たとえば、ソーシャルネットワークグループは、友達のグループ、仲間(connection)のグループ、同じイベントに招待されたかもしくは参加したグループ、および/または同じ交際範囲(circle of contacts)内のグループである可能性がある。様々な実装において、ソーシャルネットワークシステムは、ユーザが1つまたは複数のソーシャルネットワークグループを定義し、生成することを可能にする。一部の実装において、所与のソーシャルネットワークグループは、特定のカテゴリの人々のうちの1人または複数を含むようにユーザによってカスタマイズされ得る。たとえば、ソーシャルネットワークグループは、友達を含む可能性がある。別の例において、ソーシャルネットワークグループは、家族を含む可能性がある。別の例において、ソーシャルネットワークグループは、同僚を含む可能性がある。人の特定のカテゴリは、特定の実装に応じて変わり得る。さらに、人の特定のカテゴリは、本明細書において列挙されたこれらのカテゴリに加えてその他の種類の人(たとえば、クラスメート、特定の趣味、生業、職業、プロジェクト、イベントなどに関連する人)を含む可能性がある。
一部の実装において、グループを生成するために、ソーシャルネットワークシステムのユーザは、検索を実行することによってその他のユーザを見つけ、それから、1人または複数のその他のユーザを特定のソーシャルネットワークグループに追加する可能性がある。特定のソーシャルネットワークグループが単一の人または人のグループを含む可能性があることに留意されたい。さらに、特定の人を所与のグループに追加するユーザの行為は、ユーザと特定の人との間の社会的つながり(social connection)を生成する可能性がある。一部の実装において、所与のユーザは、別のユーザからのいかなるアクション(たとえば、承認、肯定応答など)を必要とせずに1つまたは複数のソーシャルネットワークグループにその別のユーザを追加する可能性がある。一部の実装において、所与のユーザは、社会的につながる(たとえば、1つまたは複数のグループに追加される、仲間になる、友達になる)ように別のユーザに要請する可能性がある。要請の受信者は、要請を承認することによって応答する可能性があり、これは、社会的つながりを生成する。社会的つながりが作られると、ユーザは様々な社会的活動(social activity)を通じて関わり合う可能性がある。たとえば、ユーザは、互いのプロファイルページを訪れる、互いの投稿をフォローする、互いにメッセージを送る、互いの活動の通知を受信するなどといった可能性がある。
一部の実装において、ソーシャルネットワーキングアプリケーションは、スーパーグループとも呼ばれる可能性がある、ソーシャルネットワークグループのうちの2つ以上のグループの組合せであるソーシャルネットワークグループをユーザが生成することを可能にする。たとえば、所与のスーパーグループは、友達のソーシャルネットワークグループおよび家族のソーシャルネットワークグループから形成される可能性がある。
図1および図2を参照すると、ブロック204において、クライアントデバイス110によって受信されたコンテンツアイテムが、ローカルストレージに記憶され得る。一部の実装において、ローカルストレージは、モバイルデバイスのための主またはデフォルトデータストアである。一部の実装において、ローカルストレージは、クライアントデバイス110と一体的なまたはクライアントデバイス110と通信するフラッシュメモリデバイスである。一部の実装において、ローカルストレージは、クライアントデバイス110のオペレーティングシステムによって認識されるフォーマットのストレージデバイスとしてフォーマットされたディスクドライブまたはフラッシュメモリデバイスである。
一部の実装において、受信されたコンテンツアイテムは、クライアントデバイス110を使用してユーザによって生成される。たとえば、コンテンツアイテムは、アプリケーションプログラム、および/またはクライアントデバイス110と一体的であるもしくはクライアントデバイス110と通信する1つまたは複数のセンサーもしくは入力デバイスを使用してクライアントデバイス110のユーザによって生成される可能性がある。たとえば、ユーザは、コンテンツアイテムを生成するために、オンスクリーンキーボードまたは付属のキーボードを使用してクライアントデバイス110にキー入力する可能性がある。一部の実装において、ユーザは、コンテンツアイテムを生成するために、クライアントデバイス110のマイクロフォンに向かって話す可能性がある。一部の実装において、ユーザは、コンテンツアイテムを生成するために、クライアントデバイス110と一体的なまたはクライアントデバイス110と通信するビデオカメラまたは静止画カメラを使う可能性がある。たとえば、一部の実装において、ユーザは、ビデオであるかまたはビデオを含むコンテンツアイテムを生成するために、クライアントデバイス110の一部であるかまたはクライアントデバイス110と通信するマイクロフォンと組み合わせてビデオカメラを使用する可能性がある。
一部の実装において、コンテンツアイテムは、サーバ102または別のクライアントデバイス(たとえば、クライアントデバイス120、130、および140)からクライアントデバイス110に送信される。たとえば、一部の実装において、コンテンツアイテムは、ソーシャルネットワークシステムとクライアントデバイスとの間の直接的なまたは間接的なインタラクションによって受信される。様々な実装において、コンテンツアイテムは、コンテンツアイテムへのアドレスまたはリンクを受信することによって受信される。一部の実装において、サーバシステム102とインタラクションするユーザは、所与のクライアントデバイス(たとえば、クライアントデバイス140)を使用してコンテンツアイテムをサーバシステム102に送信し、コンテンツアイテムは、サーバシステム102によって受信され、そして今度は、別のクライアントデバイス110に伝達される。例示的な実装において、クライアントデバイス110は、サーバシステム102によって提供されるウェブページにアクセスし、ウェブページは、ユーザがクライアントデバイス110に送信され、クライアントデバイス110によって受信されるべきコンテンツアイテムを指定する能力を提供する。
一部の実装において、コンテンツアイテムが受信されるとき、コンテンツアイテムについてのメタデータが記憶される可能性がある。たとえば、受信されたコンテンツアイテムは、コンテンツアイテムを提供する所与のユーザに関連付けられる可能性がある。たとえば、一部の実装において、コンテンツアイテムが受信された日付/時間が記憶される可能性がある。様々な実装において、メタデータは、コンテンツアイテムが受信された元のユーザおよび/またはクライアントデバイスについてのデータを含む可能性がある。たとえば、一部の実装において、コンテンツアイテムを生成またはアップロードしたユーザの名前と、ユーザまたはクライアントデバイスについての地理および/または位置データとが記憶される可能性がある。別の例として、画像認識が、写真の対象または場所を特定するために使用される可能性があり、画像認識の結果またはタグが、メタデータとして記憶される可能性がある。
一部の実装において、各コンテンツアイテムについてのメタデータは、クライアントデバイス110によってアクセスされ得る方法で記憶される。一部の実装において、各コンテンツアイテムについてのメタデータは、ローカルストレージに記憶される。メタデータは、たとえば、データベーステーブル内のテーブルの各行がコンテンツアイテムについてのメタデータを含むデータベースに記憶される可能性がある。メタデータは、たとえば、XMLファイルなどのテキストファイルに記憶される可能性がある。コンテンツアイテムに関連するメタデータは、たとえば、ローカルストレージおよび二次ストレージに記憶される可能性がある。一部の実装において、ローカルストレージに記憶されたまたはローカルストレージに記憶され得たコンテンツアイテムに関連するメタデータは、たとえコンテンツアイテム自体がローカルストレージに現在記憶されていないとしてもローカルストレージに記憶される。
図1および図2を参照すると、ブロック206において、クライアントデバイス110のローカルストレージの利用可能なローカルストレージの容量が判定される。一部の実装において、ローカルストレージの総容量は、クライアントデバイス110のためのオペレーティングシステムによって判定される可能性がある。一部の実装において、ローカルストレージの総容量は、ローカルストレージに記憶されるデータから判定される可能性がある。たとえば、FAT-32フォーマットのデータストアにおいて、データストアの容量は、データストアに記憶されたファイルアロケーションテーブルにアクセスすることによって判定される可能性がある。ストレージデバイスの利用可能な容量も、オペレーティングシステムによっておよび/またはクライアントデバイス110に記憶されたデータから判定される可能性がある。
一部の実装において、利用可能なローカルストレージの容量は、現在未使用であるストレージデバイス上の利用可能なスペースならびにオペレーティングシステムおよび/またはアプリケーションによってなされた割り振りおよび/または予約に基づいて判定される可能性がある。たとえば、オペレーティングシステムが、アプリケーションのためおよび一時的なストレージのために利用可能なスペースの一部を予約する可能性がある。この場合、利用可能なローカルストレージの容量は、そのような予約または割り振りによって減らされたローカルストレージデバイス上の利用可能なストレージスペースである。
一部の実装において、利用可能なローカルストレージの容量は、コンテンツアイテムのための割り振りに基づいて判定される可能性がある。たとえば、構成が、所定の量のストレージがコンテンツアイテムのために予約されることを示す可能性がある。たとえば、構成が、4GBがコンテンツアイテムのストレージのために利用可能であることを示す可能性がある。コンテンツアイテムが現在3GBを占める場合、この例において利用可能なストレージの容量は1GBである。一部の実装において、コンテンツアイテムのための利用可能なローカルストレージの容量は、デバイスの利用可能なストレージの合計の指定された割合である可能性がある。たとえば、デバイスの利用可能なストレージの容量の合計が2.2GBであり、指定された割合が55%である場合、利用可能なストレージの容量は1.21GBである。
図1および図2を参照すると、ブロック208において、クライアントデバイス110からのコンテンツアイテムが、二次ストレージにアップロードされる。コンテンツアイテムは、二次ストレージにコンテンツアイテムを書き込む、コピーする、転送する、またはそれ以外の方法で伝達することによってアップロードされる可能性がある。一部の実装において、コンテンツアイテムは、電子メール、ファイル転送プロトコル(ftp)、ハイパーテキスト転送プロトコル(http、https)、リモートコピー(rcp)、rsync、ブロックレベルのコピー(たとえば、iSCSI、ファイバーチャネルプロトコル(FCP)、ATAオーバーイーサネット(AoE: ATA over Ethernet)など)、ファイル/文書共有のためのサービスを使用すること、および/または別の好適な送信能力によって送信される可能性がある。
二次ストレージは、クライアントデバイス110と一体的であるか、またはクライアントデバイス110に直接接続されるか、または有線もしくはワイヤレス通信ネットワークもしくは何らかの組合せを通じてクライアントデバイス110によって直接的にもしくは間接的に利用され得る任意の種類のデータストアである可能性がある。一部の実装において、二次ストレージは、クライアントデバイスにインストールされるSDまたはマイクロSDカードなどのフラッシュドライブである。一部の実装において、二次ストレージは、クライアントデバイス110に挿入され、取り外され得るフラッシュドライブである。一部の実装において、二次ストレージは、USBスティックまたはUSBディスクドライブである。一部の実装において、二次ストレージは、Bluetooth(登録商標)、イーサネット(登録商標)、TCP/IP、Firewire(登録商標)などのプロトコルを使用するネットワークを介して通信し得るネットワークストレージデバイスである。
一部の実装において、二次ストレージは、インターネットを介して利用可能であるクラウドストレージシステムである。様々な実装において、二次ストレージは、メディア共有サイト(たとえば、写真および/またはビデオ共有サイト)である可能性がある。例示的な実装において、二次ストレージは、ソーシャルネットワーキングサービスである可能性がある。一部の実装において、二次ストレージは、クライアントデバイス110上のアプリケーションに関連するストレージレプリケーションサービスまたはバックアップサービスによって与えられる。たとえば、ローカルストレージの特定のフォルダにコピーされたファイルは、ストレージレプリケーションサービスによって自動的に複製される可能性がある。
一部の実装において、コンテンツアイテムは、バックアップアプリケーションを有効化することおよび/またはコンテンツアイテムをバックアップするようにバックアップアプリケーションを構成することによって二次ストレージにアップロードされる。バックアップアプリケーションは、バックアップのためのアプリケーションである可能性があり、またはソーシャルネットワーキングアプリケーション、写真および/もしくはビデオ共有アプリケーションなどの別のアプリケーションに統合される可能性がある。たとえば、バックアップアプリケーションは、クライアントデバイスのオペレーティングシステムによって提供されるコンテンツバックアップサービスであるか、またはクライアントデバイスのオペレーティングシステムによって提供されるコンテンツバックアップサービスを使用する可能性がある。一部の実装において、デバイスのオペレーティングシステムの一部として、または別個のアプリケーションとして、またはアプリケーションによって提供される機能の一部としてクライアントデバイス110上で既に利用可能であるバックアップアプリケーションを有効化するための許可がユーザから要求される。一部の実装において、ユーザは、コンテンツアイテムをアップロードするために使用されるアプリケーションをダウンロードし、インストールするように求められる可能性がある。一部の実装において、システムは、いかなるユーザのインタラクションまたは入力もなしに所望のコンテンツアイテムを自動的にアップロードする(たとえば、ユーザの同意によって有効化される自動アップロードの特徴)。
一部の実装において、アップロードは、利用可能なローカルストレージの容量についての判定に基づいて行われる。一部の実装において、アップロードは、周期的に行われる。一部の実装において、アップロードは、毎時間、毎日、毎週、毎月、毎四半期などの所定のスケジュールに基づいて行われる。一部の実装において、アップロードは、所定のスケジュールに基づいて、およびクライアントデバイス110への二次ストレージの可用性に基づいて行われる。たとえば、二次ストレージは、デバイスがネットワークに接続されているときにのみ利用可能である可能性がある。一部の実装において、指定された期間が過ぎ、二次ストレージがクライアントデバイス110によって利用され得る場合に、クライアントデバイスがコンテンツアイテムをアップロードする。一部の実装において、アップロードは、ストレージスペースのエラーなどのトリガイベントが起こると行われる。
一部の実装において、クライアントデバイス110は、クライアントデバイス110に記憶されるすべてのコンテンツアイテムをアップロードする。たとえば、完全なバックアップを行うために、クライアントデバイスのローカルストレージ全体がアップロードされる可能性がある。一部の実装において、ローカルストレージから削除されるべく選択されるコンテンツアイテムのみがアップロードされる。一部の実装において、特定の種類のコンテンツアイテムのみがアップロードされる。たとえば、写真およびビデオのみがアップロードされる可能性があり、オーディオトラックまたはソーシャルネットワークメッセージはアップロードされない可能性がある。一部の実装において、コンテンツアイテムの一部のみが、特定の時間にアップロードされる可能性がある。たとえば、より新しいコンテンツアイテムが初めにアップロードされるか、またはより古いコンテンツアイテムが初めにアップロードされるように、どのコンテンツアイテムをアップロードすべきかを決定するために時間的基準が使用される可能性がある。一部の実装において、制限された数または量のコンテンツアイテムがそれぞれのアップロードのときにアップロードされるように、アップロードが帯域幅の制約または時間的制約によって制限される可能性がある。
一部の実装において、一部のコンテンツアイテムについての情報(たとえば、メタデータ)が、コンテンツアイテムの代わりにアップロードされる可能性がある。たとえば、アプリケーションのコピーがマーケットプレイスで利用可能である場合、必要に応じてマーケットプレイスからアプリケーションをリカバリするためにアプリケーションを説明するデータをアップロードすれば十分である可能性がある。別の例として、写真が二次ストレージまたは別のサーバ(たとえば、ソーシャルネットワーキングサーバ)上で既に利用可能である場合、写真自体の代わりにソーシャルネットワーキングサーバ上の写真の識別子をアップロードすれば十分である可能性がある。
図1および図2を参照すると、ブロック210において、クライアントデバイスの利用可能なローカルストレージの容量が利用可能なローカルストレージの容量の閾値を満たすとき、所定の基準に基づいて、ローカルストレージから削除するためのコンテンツアイテムが選択される。様々な実装において、コンテンツアイテムは、ユーザがおそらくデバイス上に欲しいであろうコンテンツアイテムをデバイス上に保持し、たとえば、クライアントデバイス110がネットワーク150から切断されているときにユーザがそれほどデバイス上に持っていたくないであろうコンテンツアイテムを削除のために選択するように選択される。これは、効率的なネットワーク通信のために重要であり、たとえば、ネットワークアクセスが高価であるか、途切れ途切れであるか、または利用不可能であるためにたとえユーザがオフラインであるとしてもユーザが所望のコンテンツを持つためにも重要である。たとえば、ユーザは、データアクセスが利用不可能である場所(たとえば、飛行機、海、トンネル)、または貧弱なネットワークカバーエリアが存在する場所(たとえば、建物の中)、またはネットワークアクセスが高価である場所(たとえば、海外旅行)にいる場合、特定のコンテンツアイテムをそれらのユーザのデバイス上でやはり利用可能にしておきたい可能性がある。様々な実装において、システムは、たとえば、ユーザがおそらくオフラインでアクセスしたいであろうコンテンツアイテムをデバイス上に維持するため、およびユーザがそれほどオフラインでアクセスしたくないであろうコンテンツアイテムを削除するために、所定の基準を使用してコンテンツアイテムを選択する。
一部の実装において、所定の基準は、コンテンツアイテムが二次ストレージに成功裏にアップロードされたかどうかを含む。たとえば、コンテンツアイテムは、二次ストレージにアップロードされた場合、ローカルストレージから削除される可能性がある。様々な実装において、この基準は、任意の好適な方法で決定され得る。たとえば、コンテンツアイテムがどこに記憶されるかについての情報が、メタデータに含まれる可能性がある。たとえば、クライアントデバイス110が二次ストレージに直接または間接的にアクセスすることができる場合、クライアントデバイスは、コンテンツアイテムが成功裏にアップロードされたかどうかを判定する可能性がある。別の例として、バックアップサービスがアップロードのために使用される場合、特定のコンテンツアイテムが二次ストレージに成功裏にアップロードされたかどうかを判定するためにバックアップサービスに問い合わせることができる可能性がある。別の例として、コンテンツレプリケーションサービスが、コンテンツアイテムが複製されたかどうかについての指示を提供するように問い合わされる可能性がある。一部のコンテンツアイテムに関しては、関連するアプリケーションが、それらのアプリケーションの関連するサーバにすべてのコンテンツアイテムをアップロードする可能性があり、したがって、アップロードが完了すると、すべてのコンテンツアイテムはアップロード済みである。
たとえば、一部の実装において、ソーシャルネットワークアプリケーションは、そのソーシャルネットワークアプリケーションの関連するネットワークに接続されたサーバにすべてのデータを記憶し、利用可能なそのデータのサブセットのみをクライアントデバイス110上に残す可能性がある。一部のそのようなアプリケーションは、クライアントデバイスがクライアントデバイス110から削除するためにコンテンツアイテムに印を付けることを可能にし得るが、それらのコンテンツアイテムは、クライアントデバイス110上でユーザによるまたはネットワークに接続されたサーバへのその他のアクセスによる検索のために利用可能なままである。一部の実装において、アップロードされたコンテンツアイテムのサイズを小さくされたバージョン(たとえば、より低い解像度の写真もしくはビデオまたは圧縮されたファイル)が、ローカルストレージ内のコンテンツアイテムの完全なバージョンを置き換えるために生成される。一部の実装において、コンテンツアイテムのサイズを小さくされたバージョンが、それがサイズを小さくされたバージョンであることを特定する方法(たとえば、サイズ、色、強調、その他のインジケータなど)でユーザに対して表示される可能性がある。たとえば、サイズを小さくされたバージョンは、それがサイズを小さくされたバージョンであることを示すグラフィックシンボルなどの視覚的なインジケータを有する可能性がある。たとえば、サイズを小さくされたバージョンは、プログレスバーとして使用され、完全なサイズのバージョンをダウンロードする際になされた進捗を示すために満たされる長方形を有する可能性がある。
一部の実装において、所定の基準は、コンテンツアイテムの取り込みに関連する時間的なデータを含む。たとえば、所与のユーザが最近のイベントにおいて撮影したビデオに関して、時間的なデータは、コンテンツアイテムが生成された日付/時間を含む可能性がある。たとえば、これは、ファイル内のメタデータ(たとえば、写真のEXIFデータ)、またはファイルが記憶されるかまたは修正されるときに記録されるファイルシステムデータを含み得る。一部の実装において、所定の基準は、閾値を満たす、クライアントデバイスまたはその他のデバイス上にコンテンツアイテムが最初に記憶された、最後にアクセスされた、または最後に修正された日付/時間を含む。たとえば、日付/時間の閾値以前に初めて記憶されたすべてのコンテンツアイテムが選択される可能性がある。日付/時間の閾値は、過去1週間、1ヶ月、2ヶ月、3ヶ月、6ヶ月、1年などである過去の日付/時間である可能性がある。たとえば、1ヶ月以上前に最後に閲覧されたコンテンツアイテムが選択される可能性がある。
一部の実装において、所定の基準は、コンテンツアイテムへのアクセスの頻度を含む。たとえば、ユーザがそれらのユーザのデバイス上で頻繁に閲覧する所与のユーザの生まれたばかりの赤ん坊の一連の写真が、高い頻度でアクセスされる可能性がある。アクセスの頻度は、コンテンツアイテムに関連するアプリケーションによって記録される可能性がある。アクセスの頻度は、ストレージマネージャによって記録される可能性がある。アクセスの頻度は、ユーザによってアクセスされる複数のクライアントデバイスのうちの1つまたは複数に関して記録される可能性がある。たとえば、所与のユーザがそのユーザの電話上で特定のコンテンツアイテムに頻繁にアクセスする場合、ユーザは、そのユーザのタブレット上で同じコンテンツアイテムにアクセスしたい可能性がある。この場合、アクセスの頻度は、複数のデバイス上のアクセスの頻度を考慮に入れる。たとえば、一部の実装において、前月中に数回未満閲覧されたコンテンツアイテムが選択される可能性がある。たとえば、一部の実装において、前月中に数回未満閲覧されたコンテンツアイテムが選択される可能性がある。それぞれの例において、回数は、たとえば、1回、2回、3回、4回、5回、10回などである可能性がある。
一部の実装において、所定の基準は、コンテンツアイテムへのアクセスの方法を含む。たとえば、ユーザが特定のデバイス(たとえば、特定の電話、タブレット、パーソナルコンピュータ、テレビ、プロジェクタ、または腕時計)上で写真を閲覧したかどうかが、コンテンツアイテムを保持する望みに関連付けられる可能性がある。たとえば、ユーザは、それらのユーザの腕時計上で特定のコンテンツアイテムを閲覧する場合、後でそれらのコンテンツアイテムへのアクセスを望む可能性がある。たとえば、ユーザの腕時計上で閲覧されたすべてのコンテンツアイテムが選択される可能性がある。たとえば、さらなる所定の基準が満たされる場合、テレビ上で閲覧されたコンテンツアイテムが選択される可能性がある。
一部の実装において、所定の基準は、コンテンツアイテムへのアクセスの場所を含む。たとえば、ユーザは、家、職場、スタジオ、地元の近隣などの、または新しい場所に移動しているときに特定の場所にある特定のコンテンツアイテムを閲覧する場合、後でそれらのコンテンツアイテムへのアクセスを望む可能性がある。ユーザは、このようにして位置情報の使用のための許可を有効化するように求められる可能性がある。ユーザは、場所(たとえば、家、職場、スタジオ、近所など)を特定する情報を明示的に提供するように求められる可能性がある。
一部の実装において、所定の基準は、コンテンツアイテムへのアクセスの見込みを含む。これは、任意の好適な方法で決定され得る。一部の実装において、アクセスの見込みは、ユーザによる過去のアクセスパターンに基づく。一部の実装において、アクセスの見込みは、ユーザによるおよび/またはユーザと社会的親近性を有するその他のユーザによるアクセスパターンに基づく。たとえば、所与のユーザと高い社会的親近性を有するその他のユーザ(たとえば、ユーザの配偶者)が特定のコンテンツアイテムにアクセスした場合、ユーザは、おそらく同じコンテンツアイテムによりアクセスしやすい可能性がある。
一部の実装において、所定の基準は、複数の段階、レベル、または組合せを含む。たとえば、第1の所定の基準が使用される可能性がある。第1の基準を使用して選択されたコンテンツアイテムが所望のローカルストレージの容量のレベルを達成するのに十分でない場合、第2の所定の基準が使用される可能性がある。第2の所定の基準を使用して選択されたコンテンツアイテムが所望のレベルのローカルストレージの容量を達成するのに十分でない場合、第3の基準が使用される可能性があり、以下同様である。
一部の実装において、コンテンツアイテムが採点され、最も高いスコアを有するコンテンツアイテムが維持されるべく選択される(またはローカルストレージに追加されるべく選択される)ようにコンテンツアイテムをランク付けするためにスコアが使用される。より低いスコアを有するコンテンツアイテムは、プレースホルダーのコピーによって置き換えられる。最も低いスコアを有するコンテンツアイテムは、削除のために選択される。
一部の実装において、所定の基準は、コンテンツアイテムを選択に含める/選択から除外するための基準の閾値と、選択に含められるまたは選択から除外されるべきコンテンツアイテムを優先順位付けするためのランク付けの基準とを含む。コンテンツアイテムをランク付けするための基準は、所望のレベルのローカルストレージの容量を達成するためにどのコンテンツアイテムが削除されるべきかを優先順位付けするために使用される。例示的な実装において、基準は、コンテンツアイテムが二次ストレージにアップロードされ、コンテンツアイテムが所定の期間(たとえば、前週、前月、その日から数日以内など)にアクセスされた場合にそれらのコンテンツアイテムが選択から除外される要件の閾値を含む可能性がある。この基準を満たすすべてのコンテンツアイテムを選択するのではなく、所定の基準は、最終アクセス時間のランク付けの基準も使用する可能性がある。ランク付けの基準は、所望の利用可能なローカルストレージの容量が達せられるまで、アクセスされてから最も時間が経ったコンテンツアイテムを選択し、削除するために使用される可能性がある。
一部の実装において、所定の基準は、少なくとも部分的に社会的親近性に基づく。たとえば、ユーザの配偶者、兄弟姉妹、または親しい友達などのユーザと高い社会的親近性を有する誰かによって共有された写真は、高い社会的親近性を有する可能性がある。一部の実装において、社会的親近性は、コンテンツアイテムの投稿者、コンテンツアイテムの受信者、コンテンツアイテムに追加されたタグ、コンテンツアイテムへの応答、コンテンツアイテムに関連するチェックインデータ、コンテンツアイテムに関連する地理および/または位置データ、コンテンツアイテムに関連するイベントデータ、画像認識の結果、ならびにその他のコンテンツアイテムとのコンテンツアイテムの類似性の群から選択された少なくとも1つの基準によって決定される。
一部の実装において、所定の基準は、コンテンツアイテムに一致するイベントを含む。たとえば、コンテンツアイテムがイベントに関連付けられる場合、イベントについての情報が、それらのコンテンツアイテムを選択に含める/選択から除外するための基準として選択される可能性がある。たとえば、少し前に行われたイベントに関連するコンテンツアイテムは、もはやユーザにとって重要でない可能性がある。
一部の実装において、所定の基準は、ユーザにとってのコンテンツアイテムの重要度を含む。一部の実装において、コンテンツアイテムの重要度は、デバイスのユーザとコンテンツアイテムに関連する1人または複数の人との間の関係の強さに基づく。1人または複数の人は、目標のユーザと呼ばれる。
一部の実装において、特定のコンテンツアイテムと目標のユーザとの間の関連付けは、クライアントデバイス110が二次ストレージ106に問い合わせることによってどのコンテンツアイテムが目標のユーザに関連付けられるかを特定し得るように、ソーシャルネットワークデータベース、たとえば、二次ストレージ106または別のデータストアもしくはデータベースに記憶される。
クライアントデバイス110は、所定の基準を使用してコンテンツアイテムを目標のユーザに関連付ける可能性がある。任意の好適な基準が使用され得る。一部の実装において、基準は、ユーザによって指定される可能性がある。たとえば、ユーザは、1人または複数の指定された人またはグループによって投稿、受信、および/または共有されるコンテンツが削除されるべきでないことを基準として指定する可能性がある。一部の実装において、基準は、クライアントデバイス110の管理者によって予め決定される可能性がある。一部の実装において、所定の基準は、社会的親近性を含む。様々な実装において、所定の基準は、フィルタリングを含む。例示的な実装において、所定の基準は、コンテンツアイテムの種類(たとえば、写真、ビデオ、投稿など)フィルタリングすることを含む。例示的な実装において、所定の基準は、たとえば、比較的古いコンテンツアイテムだけが基準を満たすように選択されるように、比較的新しいコンテンツアイテム(たとえば、特定の日付/時間の後に投稿または閲覧されたアイテム)をフィルタリングすることを含む。
様々な実装において、1つまたは複数の所定の基準は、1つまたは複数の写真が所与の目標のユーザの画像を含むという判定を含む可能性がある。たとえば、所与の目標のユーザ(たとえば、ユーザの配偶者、ユーザのその他の家族、またはユーザの親しい友達)を含む写真は、削除のために選択されない可能性がある。一部の実装において、クライアントデバイス110は、認識技術を利用して、所与の目標のユーザが所与の写真内にいるかどうかを判定し得る。様々な実装において、クライアントデバイスは、1つまたは様々な好適な認識技術を使用して、写真内の顔、歴史的建造物、物などを認識し得る。そのような認識技術は、クライアントデバイス110と一体的である可能性があり、またはサーバシステム102との通信を通じて利用可能である可能性がある。たとえば、技術は、クライアントデバイス110のソフトウェア(たとえば、オペレーティングシステムもしくはアプリケーション)に実装されるか、クライアントデバイスのハードウェアに組み込まれるか、サーバシステム102によって提供されるか、または何らかの組合せである可能性がある。クライアントデバイス110は、クライアントデバイス110の外部にあり、クライアントデバイス110がアクセスするソフトウェアおよび/またはハードウェアによって提供される認識技術にアクセスする可能性がある。一部の実装において、テキストを含むかまたはテキストに関連付けられるコンテンツアイテムの対象を判定するためにテキスト分析が適用される可能性がある。一部の実装において、メタデータは、コンテンツアイテムの対象または特徴についての情報を含む可能性がある。メタデータは、認識技術の結果、テキスト分析、およびコンテンツアイテムに関連するタグを含む可能性がある。所定の基準は、写真が目標のユーザとのある度合いの社会的親近性を有する個人を含む程度を含む可能性がある。
たとえば、一部の実装において、1つまたは複数の所定の基準は、1つまたは複数の写真が所与の目標のユーザの画像を含む、および/または目標のユーザが1つまたは複数の写真内でタグ付けされているという判定を含む可能性がある。タグが、写真が目標のユーザの画像を含むと判定するために使用される可能性がある。
一部の実装において、1つまたは複数の所定の基準は、1つまたは複数の写真が目標のユーザが参加したイベントの間に撮影されたという判定を含む可能性がある。様々な実装において、イベントは、地理的位置における人の任意の会合または集まりである可能性がある。そのようなイベントは、協議会、パーティー、祝典、食事、クラス、会合、式典、会議などを含む可能性がある。一部の実装において、イベントは、仮想的なイベント(たとえば、ウェブ会議、電話会議など)を含む可能性がある。様々な実装において、システムは、イベント参加者のリストから目標のユーザが特定のイベントに参加したと判定し得る。目標のユーザは、イベントのチケットを登録、RSVP、または購入した後になどにイベント参加者のリストに追加される可能性がある。
一部の実装において、イベントの重要度が判定される可能性がある。たとえば、より社会的な活動および/またはより多くのコンテンツアイテムに関連するイベントがより重要である可能性がある。たとえば、高い社会的親近性を有するその他のユーザによって参加されたイベントは、重要と考えられる可能性がある。たとえば、ユーザとの比較的低い社会的親近性を有する個人によって参加されたイベントに関連するコンテンツアイテムは、削除のために選択される可能性がある。
一部の実装において、1つまたは複数の所定の基準は、1つまたは複数の写真がソーシャルネットワーキング、写真共有、またはメッセージングアプリケーションの投稿に添付されており、目標のユーザが投稿に関連付けられるという判定を含む可能性がある。一部の実装において、目標のユーザは、投稿の受信者であることおよび/または投稿の中で言及されていることによって投稿に関連付けられる可能性がある。様々な実装において、目標のユーザは、投稿に添付された1つまたは複数の写真内にいることによって投稿に関連付けられる可能性がある。一部の実装において、システムは、認識技術を利用して、目標のユーザが写真のうちの1つまたは複数内におよび/または写真に関連するタグを介しているかどうかを判定し得る。
例示的な実装において、1つまたは複数の所定の基準は、1つまたは複数の写真が投稿に添付され、目標のユーザが添付された写真のうちの1つまたは複数内に含まれるという判定を含む可能性がある。別の例示的な実装において、1つまたは複数の所定の基準は、投稿が目標のユーザによってよく訪れられる地理的位置から行われるという判定を含む可能性がある。別の例示的な実装において、1つまたは複数の所定の基準は、投稿が目標のユーザが関心のある対象について行われるという判定を含む可能性がある。
一部の実装において、1つまたは複数の所定の基準は、1つまたは複数の写真が目標のユーザと直接共有されるという判定を含む可能性がある。様々な実装において、1つまたは複数の所定の基準は、所定の社会的親近性の閾値を満たす社会的親近性を有する1人または複数のその他のユーザによって1つまたは複数のコンテンツアイテムが共有されるという判定を含む可能性がある。たとえば、社会的親近性は、目標のユーザと1人または複数のその他のユーザとの間の情報のやりとりの回数または頻度に基づく可能性がある。たとえば、社会的親近性は、交際またはグループ、友達の友達の関係、交際またはグループ内の個人の交際またはグループなどに含まれるなどのユーザ間の関係に基づく可能性がある。たとえば、社会的親近性は、ユーザの位置に基づく可能性がある。社会的親近性は、ユーザが共有する興味を有することに基づく可能性がある。たとえば、社会的親近性は、これらのおよびその他の基準のうちの1つ、2つ、またはこれらのおよびその他の基準の一部もしくはすべての組合せに基づく可能性がある。
例示的な実装において、1つまたは複数の所定の基準は、1つまたは複数の写真を含む写真のアルバムが目標のユーザの写真のライブラリに手動で関連付けられるという判定を含む可能性がある。
様々な実装において、所定の基準は、1つまたは複数のグループに利用され得るようにされたコンテンツアイテムを含む。一部の実装において、所定の基準は、指定された時間の範囲内で1つまたは複数のグループに利用され得るようにされたコンテンツアイテムを含む。たとえば、コンテンツアイテムは、グループのメンバーと共有される可能性があり、ソーシャルネットワークアプリケーションは、どのコンテンツアイテムが目標のユーザが属する1つのグループまたは複数のグループと共有されたかを判定する可能性がある。一部の実装において、所定の基準は、この目標のユーザのためにコンテンツアイテムが最後に選択されてから時間内に1つまたは複数のグループによって利用され得るようにされたコンテンツアイテムを含む。たとえば、目標のユーザは、コンテンツアイテムがある時間的頻度で(たとえば、1週間に1回、1ヶ月に1回、数日など)選択されることを要求する可能性があり、システム102は、どのコンテンツアイテムが目標のユーザが属する1つのグループまたは複数のグループと共有され、コンテンツアイテムが最後に選択されてからシステムによって受信されたかを判定する可能性がある。
一部の実装において、所定の基準は、コンテンツアイテムの投稿者、コンテンツアイテムの受信者、コンテンツアイテムに追加されたタグ、コンテンツアイテムへの応答、コンテンツアイテムに関連するチェックインデータ、コンテンツアイテムに関連する地理および/または位置データ、コンテンツアイテムに関連するイベントデータ、画像認識の結果、ならびにその他のコンテンツアイテムとのコンテンツアイテムの類似性を含むがこれらに限定されない少なくとも1つの基準を含む。
一部の実装において、所定の基準は、目標のユーザによって行われる1つのアクションもしくは複数のアクション、または別のユーザによって行われる1つのアクションもしくは複数のアクション、および/あるいは組合せの結果である可能性がある。たとえば、目標のユーザは、コンテンツアイテムに応答したか、またはコンテンツアイテムへの承認もしくは関心を表明した可能性がある。別の例として、目標のユーザは、コンテンツアイテムについてのさらなる情報を要求するなどするために、コンテンツアイテムに関連するリンクをクリックした可能性がある。
様々な実装において、所定の基準が社会的親近性に基づくとき、ユーザおよびコンテンツアイテムに関連する情報に基づいて社会的親近性のスコアを計算するために採点技術が使用される可能性がある。たとえば、比較的高い社会的親近性のスコアは、目標のユーザと目標のユーザとの間および/または目標のユーザとコンテンツアイテムとの間のより近いおよび/またはより直接的な関係を示す可能性がある。様々な実装において、社会的親近性のスコアは、目標のユーザと別のユーザとの間および/または目標のユーザとコンテンツアイテムとの間のつながりの度合いを示す可能性がある。一部の実装において、社会的親近性のスコアは、目標のユーザとコンテンツアイテムとの間の直接的な関係、間接的な関係、ならびに/または1つまたは複数の直接的なおよび/もしくは間接的な関係の組合せに基づいて計算される可能性がある。一部のそのような実装において、より直接的な関係が間接的な関係よりも高い社会的親近性のスコアをもたらし、関係が間接的であればあるほどスコアは低くなる。一部のそのような実装において、たとえば、一方のユーザが他方のユーザと共有するが、その逆には共有しない一方的な関係は、双方向の関係よりも低い社会的親近性のスコアをもたらす。
様々な実装において、社会的親近性のスコアは、少なくとも部分的に、目標のユーザとコンテンツアイテムとの間の関係によって決定される可能性がある。様々な実装において、社会的親近性のスコアは、少なくとも部分的に、目標のユーザと別のユーザとの間の関係によって決定される可能性があり、その別のユーザは、1つまたは複数のコンテンツアイテムとの関係を有する。一部の実装において、社会的親近性のスコアは、少なくとも部分的に、コンテンツアイテムとその他のコンテンツアイテムとの間の関係によって決定される可能性がある。
様々な実装におけるユーザとコンテンツアイテムとの間の社会的親近性の例示的な例は、ユーザから受信されたコンテンツアイテム、ユーザに向けられたまたはユーザに送信されたコンテンツアイテム、ユーザがいたかまたはユーザが位置特定される場所から受信されたコンテンツアイテム、ユーザを参照するコンテンツアイテムであるかまたはユーザを参照するコンテンツアイテムに追加されたタグを含むコンテンツアイテム、ユーザによって生成されたコンテンツアイテムへの応答であるコンテンツアイテム、ユーザによって送られたチェックインデータであるコンテンツアイテム、ユーザが関心を表明した対象または場所について受信されるコンテンツアイテム、ユーザが似たコンテンツアイテムを送った対象または場所について受信されたコンテンツアイテムなどを含むがこれらに限定されない。たとえば、目標のユーザとコンテンツアイテムとの間の社会的親近性は、少なくとも部分的に、目標のユーザがコンテンツアイテムを送るかどうかに基づいて決定される可能性がある。別の例として、目標のユーザとコンテンツアイテムとの間の社会的親近性は、少なくとも部分的に、目標のユーザがコンテンツアイテムの対象であるかどうかに基づいて決定される可能性がある。
一部の実装において、目標のユーザとコンテンツアイテムとの間の社会的親近性は、目標のユーザと別のユーザとの間の社会的親近性を含む可能性があり、その別のユーザは、コンテンツアイテムとの関係を有する。ユーザと別のユーザとの間の社会的親近性の例示的な例は、同じグループのメンバー、目標のユーザと別のユーザとの間のコンテンツアイテムの共有、友達として指定された目標のユーザおよび別のユーザ、目標のユーザおよび別のユーザが共通の友達を有する、目標のユーザおよび別のユーザが友達である友達を有すること、目標のユーザおよび別のユーザが同じグループ内のグループメンバーを有すること、目標のユーザが別のユーザのフォロワとして指定されるかまたはその逆であることなどを含むがこれらに限定されない。一部の実装において、目標のユーザとコンテンツアイテムとの間の社会的親近性の関係は、少なくとも部分的に、コンテンツアイテムが目標のユーザの属するグループのメンバーによって投稿されたかどうかに基づいて決定される。
一部の実装において、目標のユーザとコンテンツアイテムとの間の社会的親近性は、コンテンツアイテムとその他のコンテンツアイテムとの間の社会的親近性を含む可能性がある。コンテンツアイテムと他のコンテンツアイテムとの間の社会的親近性の例示的な例は、コンテンツアイテムに追加されたタグ、コンテンツアイテムへの応答、コンテンツアイテムに関連するチェックインデータ、コンテンツアイテムに関連する地理および/または位置データ、コンテンツアイテムに関連するイベントデータ、画像認識の結果、同じグループと共有されたコンテンツアイテム、同様の関連するテキストまたはその他の特徴を有するコンテンツアイテムなどを含むがこれらに限定されない。たとえば、コンテンツアイテムと別のコンテンツアイテムとの間の社会的親近性は、コンテンツアイテムが目標のユーザによって投稿されたコンテンツアイテムと似ているときに決定される可能性がある。
一部の実装において、システムは、どのコンテンツアイテムが目標のユーザに関連付けられるべきかを決定するためにローカルストレージ内のコンテンツアイテムのすべてまたはサブセットに対する1つの問い合わせまたは複数の問い合わせを実行する。一部の実装において、社会的親近性のスコアが、目標のユーザおよび複数のコンテンツアイテムの各々に関して決定される。様々な実装において、所定の基準は、社会的親近性のスコアの閾値を含む。
一部の実装において、システムは、ユーザが1つまたは複数の所定の基準を指定することを可能にするユーザインターフェースをユーザに提示する可能性がある。たとえば、ユーザは、特定のユーザおよびイベントに関連するアイテムが削除されるべきでないかまたは追加されるべきであることを除いて、最も古いアイテムが最初に削除されるべきであることを選択することができる可能性がある。たとえば、ユーザは、より古いがリスト上のユーザに関連付けられるコンテンツアイテムが保持されるように時間の範囲(たとえば、1週間、2週間、1ヶ月、2ヶ月などよりも新しいコンテンツアイテムが保持されるべきである)および特定のユーザのリストを指定する可能性がある。
一部の実装において、システムは、既に含まれているかまたは除外されているコンテンツアイテムに基づいて削除のための選択に含めるまたは除外するさらなるコンテンツアイテムを選択する可能性がある。一部の実装において、選択されるまたは除外されるコンテンツアイテムの対象が決定され、含められるまたは除外されるコンテンツアイテムの決定された対象に関連するさらなるコンテンツアイテムがさらに選択されるかまたは除外される。たとえば、削除のために選択されたコンテンツアイテムが木についてのものである場合、木についてのさらなるコンテンツアイテムも削除のために選択される可能性がある。そのようなさらなるコンテンツアイテムは、葉、木、果物、森などを含むかまたはそれらについての写真、図、テキスト、または投稿を含む可能性がある。別の例として、削除のための選択に関して除外される(つまり、保持するべく選択される)コンテンツアイテムが猫についてのものである場合、猫についてのさらなるコンテンツアイテムは除外される可能性がある。そのようなさらなるコンテンツアイテムは、猫、キャットフード、キャットフードボウルなどを含むかまたはそれらについての写真、図、テキスト、または投稿を含む可能性がある。別の例として、削除のために選択されたコンテンツアイテムがイベントについてのものである場合、イベントについてのさらなるコンテンツアイテムが選択される可能性がある。そのようなさらなるコンテンツアイテムは、イベントの場所、イベントにおいて行われる活動、イベントへのその他の参加者、イベントから送信された投稿またはその他のメッセージ(たとえば、人気のメッセージ)などを含むかまたはそれらについての写真、図、テキスト、または投稿を含む可能性がある。
一部の実装において、コンテンツアイテムの対象が、画像に付随する説明文もしくはテキスト、システムによって適用されたタグ、使用タグから、または画像もしくは物体認識によって決定される可能性がある。構成に含まれるコンテンツアイテムの対象は、サーバシステム102上のユーザに利用され得るその他のコンテンツアイテム、またはタグを有するかもしくは認識された備えられたコンテンツアイテムとマッチングされる可能性がある。
図1および図2を参照すると、ブロック212において、選択されたコンテンツアイテムがローカルストレージから削除される。様々な実装において、コンテンツアイテムは、ユーザの同意の下でまたはいかなるユーザのインタラクションもしくは入力もなしに自動的に削除される。一部の実装において、コンテンツアイテムを削除する前にユーザの確認が要求される可能性がある。一部の実装において、コンテンツが初めて削除されるときに許可が要求される可能性がある。コンテンツアイテムは、任意の好適な方法で削除される可能性がある。一部の実装において、選択されたコンテンツアイテムは、ファイルシステムから削除される可能性がある。一部の実装において、選択されたコンテンツアイテムは、コンテンツアイテムを管理するアプリケーションによって削除のために印を付けられる可能性がある。たとえば、ソーシャルネットワークのコンテンツアイテムが、ソーシャルネットワークアプリケーションによってローカルストレージから削除するために印を付けられる可能性がある。別の例として、写真が、写真共有アプリケーションによってローカルストレージから削除するために印を付けられる可能性がある。
一部の実装において、クライアントデバイスは、既に除外されたコンテンツアイテムを選択から除外するさらなるステップを踏む可能性がある。たとえば、特定のコンテンツアイテム(たとえば、特定の写真)が選択から除外されるべきである(たとえば、削除されるべきでない)ことをユーザが既に示した場合、システム160は、将来、これらのコンテンツアイテムを除外する可能性がある。システム160は、ユーザが後で同じコンテンツアイテムについて尋ねられないようにユーザのプリファレンスを記憶する可能性がある。たとえば、一部の実装において、ユーザが、コンテンツアイテムをお気に入りとしてタグ付けするかまたはそれらのコンテンツアイテムに星のインジケータもしくは色のインジケータを割り当てる可能性があり、そして、そのようなコンテンツアイテムが、選択から除外され、デバイスのローカルストレージ上に残る。
一部の実装において、コンテンツアイテムを削除する代わりに、コンテンツアイテムのプレースホルダーのコピーが生成され、デバイスに記憶される。このプレースホルダーのコピーは、二次ストレージが利用可能でない場合にプレースホルダーとして使用され得る元のコンテンツアイテムの一部または元のコンテンツアイテムについての識別子および/もしくはその他の情報をユーザが維持することを可能にするというメリットを有する。たとえば、プレースホルダーコンテンツアイテムは、元のコンテンツアイテムよりも小さなサイズをローカルストレージ内に有する可能性がある。より小さなサイズのバージョンが、任意の好適な方法で、たとえば、コンテンツアイテムの特徴を変えること、コンテンツアイテムの一部を削除すること、圧縮技術を適用することなどによって生成される可能性がある。たとえば、低解像度のプレースホルダー画像が高解像度の画像を置き換えるために使用される、低解像度のビデオが高精細ビデオを置き換える、テキストを含むコンテンツアイテムが好適な圧縮技術によって圧縮されるといった可能性がある。一部の実装において、プレースホルダーコンテンツアイテムは、コンテンツアイテムの間の違いを記憶することによってその他のコンテンツアイテムに似ているコンテンツアイテムに関して生成されるより小さなサイズの差し替えコンテンツアイテムを含む。たとえば、いくつかの写真が第1の写真に似ている場合、それらの写真の間の違いが、元のコンテンツアイテム全体の代わりに記憶される可能性がある。
プレースホルダーコンテンツアイテムを生成する際、システム160は、たとえば、クライアントデバイス110の特徴を考慮に入れる可能性がある。たとえば、画像に関して、システム160は、クライアントデバイス110の表示解像度を考慮に入れる可能性がある。写真がデバイス上で閲覧され得るよりも高い解像度を有する場合、システム160は、クライアントデバイス110の実際の解像度に合うように写真の解像度を下げる可能性がある。解像度がクライアントデバイス110の実際の解像度に一致させられる場合、ユーザは、最初、プレースホルダーと元の写真との間の違いに気づかない可能性がある。写真の元のバージョンが、たとえば、カメラの設定またはカメラの解像度に基づいて5760x3600ピクセルの解像度で撮られ、記憶され、デバイスの画面表示の解像度が、たとえば、1920x1200ピクセルである場合、プレースホルダーのバージョンは、引き下げられた解像度1920x1200ピクセルで写真に関して生成される可能性があり、プレースホルダーのバージョンのその解像度は、デバイスの画面表示に合う。プレースホルダーのバージョンがデバイスのディスプレイ上でユーザによって閲覧されるとき、ユーザは、最初、元の写真とプレースホルダーとの間の違いが分からない。ユーザがズームイン使用とした場合、解像度の低下が明らかになる可能性がある。
ユーザがプレースホルダーコンテンツアイテムを選択するとき、元のコンテンツアイテムがダウンロードされ、プレースホルダーコンテンツアイテムを置き換える可能性がある。一部の実装において、プレースホルダーを元のコンテンツアイテムによって置き換えることは、特定のユーザの指示なしに行われる可能性がある。たとえば、ユーザはより低い解像度のプレースホルダー画像によって置き換えられた写真を見ることを選択する可能性があり、ユーザはプレースホルダーを見ることから始め、システムはユーザがプレースホルダー画像を閲覧していると判定し、元の画像がダウンロードされ、プレースホルダー画像が元の画像によって置き換えられる。ユーザが画像とインタラクションすること、たとえば、ズームインすることを決断するまでに、プレースホルダーのより低い解像度の特徴が明らかになったであろうときに、元の画像のダウンロードは完了しており、それから、ユーザは元の画像を閲覧しており、元の画像とインタラクションし得る。このプロセスは、非常に迅速に行われ得るので、ユーザは、それらのユーザがインタラクションすることを選択した画像が元々はより低い解像度のプレースホルダー画像であり、それから、元の画像のダウンロードに遷移したことに気づかない可能性がある。
同様に、低解像度のビデオが、高解像度のビデオを置き換える可能性があり、あるいはビデオが、より低いフレームレートを有するか、異なる(たとえば、損失の大きいもしくは異なる損失の特徴を有する)符号化方式などによって符号化されるか、またはビデオの最初の部分だけを有するビデオのより小さいファイルサイズのバージョンによって置き換えられる可能性がある。たとえば、5分のビデオに関して、ビデオの最初の30秒だけがローカルストレージ内に保持され、ストレージスペースを最小化するために符号化される可能性がある。ユーザがビデオを再生することを選択する場合、元のビデオが二次ストレージ、サーバ160からユーザに提供されるかまたはユーザデバイスにコピーして戻され、プレースホルダーコンテンツアイテムを置き換えるために使用されるために利用可能にならない限り/利用可能になるまで、プレースホルダーが再生される可能性がある。
一部の実装において、プレースホルダーコンテンツアイテムは、元のコンテンツアイテムと見た目が同じではない。たとえば、システムは、元のコンテンツアイテムよりもずっと低い解像度を有するサムネイル画像を表示する可能性がある。サムネイル画像は、ユーザが元の画像の文脈を特定するのに十分であるが、詳細を特定するのには十分でない可能性がある。ユーザは、画像を見たい場合、その画像を選択する可能性があり、システムは、(接続されている場合)二次ストレージから元の画像を提供する可能性がある。ビデオは、静止画像、または音声を有するもしくは音声を持たないずっと低い解像度の画像によって置き換えられる可能性がある。ユーザのクライアントデバイス110が二次ストレージと通信する場合、プレースホルダーをクリックすることによって、ユーザは、コンテンツアイテムへの関心をシグナリングし、同じコンテンツアイテムのより高い解像度またはより大きなサイズの画像が、二次ストレージからダウンロードされ、ユーザによって利用され得るようにされる可能性がある。
一部の実装において、どのコンテンツアイテムをクライアントデバイス上に維持するために選択すべきかを決定するために文脈が使用される可能性がある。たとえば、ユーザが特定の日付/時間またはイベントまたは人に関連するコンテンツアイテムなどのいくつかの関連するコンテンツアイテムを有する場合、その日付/時間またはイベントに関連する第1の数のコンテンツアイテムが、クライアントデバイス110上に維持される可能性がある。ユーザが維持されたコンテンツアイテムを要求する場合、システム160は、その文脈に関連するその他のコンテンツアイテムを二次ストレージからクライアントデバイス110にコピーして戻す。
一部の実装において、判定するステップ206、アップロードするステップ208、および選択するステップ210のうちの1つまたは複数のステップは、周期的に実行される。一部の実装において、判定するステップ206、アップロードするステップ208、および選択するステップ210のうちの1つまたは複数のステップは、予め構成された量のコンテンツアイテムが受信されたときに実行される。一部の実装において、判定するステップ206、アップロードするステップ208、および選択するステップ210のうちの1つまたは複数のステップは、ストレージの可用性に関連するオペレーティングシステムもしくはアプリケーションの通知および/またはユーザによる要求などのトリガイベントが起こると実行される。一部の実装において、ストレージの管理およびステップ204〜212は、図7を参照して以下で説明されるようなストレージの可用性の判定によって開始される可能性がある。
一部の実装において、ステップ204〜212のうちの1つまたは複数のためのトリガイベントは、ステップ204〜212のうちの1つまたは複数が周期的に実行されるように所定の時間間隔が経過することである可能性がある。一部の実装において、トリガイベントは、タイマー論理によって決定される可能性がある。様々な実装において、時間間隔は、整数の時間数、週の数、月数、もしくは年数、または分数の時間数、週の数、月数、もしくは年数である可能性がある。例示的な実装において、トリガイベントは、クライアントデバイスが目標のユーザに関してステップ204〜212を少なくとも月に1回実行する可能性があり、目標のユーザのローカルストレージが毎月保守されるように毎月1回起こる。様々な例示的な実装において、クライアントデバイスは、ステップ204〜212を1時間に1回、2時間に1回、4時間に1回、1日に1回、2日に1回、3日に1回、4日に1回、1週間に1回、2週間に1回、3週間に1回、1月に1回、2月に1回などで実行する可能性がある。
一部の実装において、ステップ208〜212は、利用可能なローカルストレージの容量が閾値を満たす(たとえば、所定の閾値レベル未満である)とステップ206において判定されるときに実行される。一部の実装において、ローカルストレージの容量の判定206は、周期的に実行され、アップロードするステップ208は、継続的に実行される。利用可能なローカルストレージの容量がストレージの容量の閾値を満たすという判定206がなされるとき、コンテンツアイテムが、まだアップロードされていない場合はアップロードされ(208)、所定の基準に基づいて削除のために選択される(210)可能性がある。コンテンツアイテムの削除212は、コンテンツアイテムが選択された後直ちにまたはしばらく後に実行される可能性がある。
様々な実装において、トリガイベントは、閾値の量のコンテンツアイテムの受信である可能性がある。たとえば、ステップは、新しい写真が撮られるときに利用可能なローカルストレージの容量の判定が着手されるようにカメラアプリケーションに組み込まれる可能性がある。様々な実装において、閾値の数のコンテンツアイテムは、写真、ビデオ、または画像の数である可能性がある。様々な実装において、コンテンツアイテムの閾値の量は、いくつかの投稿またはコメントの受信または投稿である可能性がある。
図3は、一部の実装によるコンテンツアイテムを記憶するための例示的な流れ図を示す。たとえば、システムは、コンテンツアイテムが本明細書において説明される所定の基準などの所定の基準に基づいてローカルストレージに追加されるかまたはローカルストレージから削除されるべく選択され得るようにクライアントデバイス110を二次ストレージと同期する可能性がある。たとえば、その他のデバイスによって生成されたコンテンツアイテムが、二次ストレージと同期される可能性があり、その他のデバイスによって二次ストレージにアップロードされたコンテンツアイテムが、利用可能なローカルストレージの容量および所定の基準に基づいてクライアントデバイス100のローカルストレージに追加される可能性がある。
例示的な方法300において、コンテンツアイテムが受信される。図2に関連して説明されたように、クライアントデバイス110は、任意の好適なクライアントデバイスである可能性があり、クライアントデバイス110は、様々なコンテンツアイテムのいずれかを受信する可能性があり、様々な時間に異なる方法で異なるデバイスを使用して1人または複数の異なるユーザから異なるコンテンツアイテムを受信する可能性がある。
ブロック304において、クライアントデバイス110によって受信されたコンテンツアイテムが、ローカルストレージに記憶され得る。説明されたように、ローカルストレージは、モバイルデバイスのための主またはデフォルトデータストアである可能性がある。
ブロック306において、ローカルストレージ内のコンテンツアイテムが、二次ストレージにアップロードされる。説明されたように、コンテンツアイテムは、二次ストレージにコンテンツアイテムを書き込む、コピーする、転送する、またはそれ以外の方法で伝達することによってアップロードされる可能性がある。二次ストレージは、クライアントデバイス110と一体的であるか、またはクライアントデバイス110に直接接続されるか、または有線もしくはワイヤレス通信ネットワークもしくは何らかの組合せを通じてクライアントデバイス110によって直接的にもしくは間接的に利用され得る任意の種類のデータストアである可能性がある。二次ストレージは、シンプルオブジェクトアクセスプロトコル(SOAP)または表現状態転送(REST: Representational State Transfer) APIなどのアプリケーションプログラミングインターフェース(API)を使用して利用され得る可能性がある。一部の実装において、二次ストレージは、インターネットを介して利用可能であるクラウドストレージシステムである。様々な実装において、二次ストレージは、メディア共有サイト(たとえば、写真および/またはビデオ共有サイト)である可能性がある。例示的な実装において、二次ストレージは、ソーシャルネットワーキングサイトのソーシャルネットワーキングサービスならびに/または写真および/もしくはビデオサービスである可能性がある。一部の実装において、二次ストレージは、クライアントデバイス110上のアプリケーションに関連するストレージレプリケーションサービスまたはバックアップサービスによって与えられる。たとえば、ローカルストレージの特定のフォルダにコピーされたファイルは、ストレージレプリケーションサービスによって自動的に複製される可能性がある。二次ストレージにコピーすることは、コンテンツアイテムのコピーが二次ストレージ上で利用可能であることを保証する。
二次ストレージにコンテンツアイテムをアップロードすることは、アップロードされるコンテンツアイテムに関連するメタデータをアップロードすることをさらに含み得る。メタデータは、アップロードプロセスの一部として伝達される可能性があり、またはコンテンツアイテムに関連するメタデータの文書もしくはレコードの伝達によって別に伝達される可能性がある。たとえば、メタデータは、コンテンツアイテムをコピーするときに通信プロトコルの一部として伝達される可能性がある。
様々な実装において、コンテンツアイテムを受信すること302およびローカルストレージにコンテンツアイテムを記憶すること304は、コンテンツアイテムが受信または生成されるにつれて継続的に行われ得る。ローカルのコンテンツアイテムを二次ストレージにアップロードすること306は、周期的に、コンテンツアイテムの受信時に、閾値の数のコンテンツアイテムの受信時に、閾値のサイズのコンテンツアイテムの受信時に、および/または何らかの組合せで、または任意のその他の好適な方法で行われる可能性がある。
二次ストレージへのローカルのコンテンツアイテムのアップロード306と同時にまたはアップロード306とは別に、ローカルストレージおよび二次ストレージ上のコンテンツアイテムに関するメタデータが同期される(308)。メタデータの同期の結果として、コンテンツアイテムに関連するメタデータのコピーが、ローカルストレージおよび二次ストレージ上で利用可能である。コンテンツアイテムに関連するメタデータの同期は、ローカルストレージ内にあるコンテンツアイテムと、ローカルストレージ内にないが二次ストレージ上で利用可能であるコンテンツアイテムとについてのメタデータ情報をクライアントデバイス110が持つことを可能にする。同期は、二次ストレージにまだアップロードされていない任意のコンテンツアイテムに関連するメタデータを二次ストレージが持つことも可能にし得る。メタデータは、クライアントデバイスによって二次ストレージにアップロードされたコンテンツアイテムと、その他のデバイスによって二次ストレージにアップロードされたコンテンツアイテムに関連するメタデータを含む可能性がある。
メタデータは、コンテンツアイテムが生成または取り込まれた時間/日付または位置(たとえば、写真のEXIFデータ)、ファイルが記憶または修正されるときに記憶されるファイルシステムデータ、コンテンツアイテムがクライアントデバイスまたはその他のデバイスに初めて記憶された、最後にアクセスされた、または最後に修正された日付/時間、コンテンツアイテムが受信された日付/時間、ユーザの名前およびユーザまたはクライアントデバイスについての地理および/または位置データなどの、コンテンツアイテムが受信された元のユーザおよび/またはクライアントデバイスについてのデータ、コンテンツアイテムの対象または位置についてのタグまたはその他の情報、ならびにコンテンツアイテムを特定し、コンテンツアイテムをローカルストレージに記憶すべきかどうかを判定する目的で使用され得る任意のその他の好適なメタデータを含む可能性がある。
一部の実装において、メタデータは、コンテンツアイテムに対するクライアントデバイスのユーザによるアクションの印を含む。アクションは、コンテンツアイテムに対する変更/編集、削除、共有、アルバム、コレクション、記事、コラージュに含めることなどを含み得る。
たとえば、一部の実装において、アプリケーションは、画像編集能力を含む可能性がある。この能力は、たとえば、画像にテキストまたはグラフィックを追加すること、画像の一部を消すこと、縮尺を変えること、トリミングすること、解像度を変えること、回転、色の強調、フィルタリングなどを限定なしに含む画像編集能力のいずれかまたは組合せを含み得る。一部の実装において、行われた変更の記録が存在するように、画像に対する変更がコンテンツアイテムに関連するメタデータに記録される可能性がある。コンテンツアイテムに関連するメタデータに記録された変更は、コンテンツアイテムに関連するその他のメタデータと一緒に同期される。それから、変更は、メタデータを二次ストレージと同期したすべてのデバイス上で利用可能であり得る。
一部の実装において、コンテンツアイテムに対する編集を配信するための方法は、第1のデバイスと二次ストレージとの間で第1のコンテンツアイテムに関連するメタデータを同期することを含む可能性があり、第1のコンテンツアイテムに関連するメタデータは、第1のコンテンツアイテムに対する編集の指定を含む。方法は、所定の基準に基づいて二次ストレージからローカルストレージにコピーされるべき第1のコンテンツアイテムを選択することを含む可能性がある。方法は、選択することに応じて二次ストレージからローカルストレージに第1のコンテンツアイテムをコピーすることと、メタデータ内で指定された編集を用いて第1のユーザに第1のコンテンツアイテムを提示することとを含む可能性がある。方法は、第1のユーザからの入力に基づいて第1のコンテンツアイテムに対する編集を生成することをさらに含む可能性がある。方法は、第2のユーザからの入力に基づいて第1のコンテンツアイテムに対する編集を生成することをさらに含む可能性がある。方法は、コンテンツアイテムに対する編集を第1のコンテンツアイテムに関連するメタデータとして記憶することをさらに含む可能性がある。一部の実装において、編集は、第2のデバイスを使用して生成される可能性がある。一部の実装において、方法は、第2のデバイスと二次ストレージとの間で第1のコンテンツアイテムに関連するメタデータを同期することを含む可能性がある。
一部の実装において、コンテンツアイテムに対する編集を配信するためのシステムは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによる実行のために1つまたは複数の有形の媒体に符号化され、実行されるときに動作を実行するように動作可能である論理とを含む可能性がある。動作は、第1のデバイスと二次ストレージとの間で第1のコンテンツアイテムに関連するメタデータを同期することを含む可能性があり、第1のコンテンツアイテムに関連するメタデータは、第1のコンテンツアイテムに対する編集の指定を含む。動作は、所定の基準に基づいて二次ストレージからローカルストレージにコピーされるべき第1のコンテンツアイテムを選択することを含む可能性がある。動作は、選択することに応じて二次ストレージからローカルストレージに第1のコンテンツアイテムをコピーすることを含む可能性がある。動作は、メタデータ内で指定された編集を用いて第1のユーザに第1のコンテンツアイテムを提示することを含む可能性がある。
一部の実装において、動作は、第1のユーザからの入力に基づいて第1のコンテンツアイテムに対する編集を生成することを含む可能性がある。一部の実装において、動作は、第2のユーザからの入力に基づいて第1のコンテンツアイテムに対する編集を生成することを含む可能性がある。一部の実装において、動作は、コンテンツアイテムに対する編集を第1のコンテンツアイテムに関連するメタデータとして記憶することを含む可能性がある。一部の実装において、編集は、第2のデバイスを使用して生成される可能性がある。一部の実装において、動作は、第2のデバイスと二次ストレージとの間で第1のコンテンツアイテムに関連するメタデータを同期することを含む可能性がある。
別の例において、コンテンツアイテムの削除は、メタデータに記録される可能性がある。コンテンツアイテムを削除することに加えて、画像が削除されたことを示すメタデータが記録される。メタデータがその他のデバイスと同期されるとき、それらのデバイスは、コンテンツアイテムを削除する可能性もある。そのようにして、削除が、メタデータを二次ストレージと同期するすべてのクライアントデバイスに伝達される。
一部の実装において、コンテンツアイテムを削除するための方法は、第1のデバイスから第1のコンテンツアイテムを削除することを含む可能性がある。方法は、第1のコンテンツアイテムに関連するメタデータに第1のコンテンツアイテムの削除の指定を記憶することを含む可能性がある。方法は、第1のデバイスと二次ストレージとの間で第1のコンテンツアイテムに関連するメタデータを同期することを含む可能性があり、第1のコンテンツアイテムに関連するメタデータは、第1のコンテンツアイテムの削除の指定を含む。方法は、第2のデバイスと二次ストレージとの間で第1のコンテンツアイテムに関連するメタデータを同期することを含む可能性があり、第1のコンテンツアイテムに関連するメタデータは、第1のコンテンツアイテムの削除の指定を含む。方法は、削除の指定に応じて第2のデバイスからコンテンツアイテムを削除することを含む可能性がある。
一部の実装において、コンテンツアイテムを削除するためのシステムは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによる実行のために1つまたは複数の有形の媒体に符号化され、実行されるときに動作を実行するように動作可能である論理とを含む可能性がある。動作は、第1のコンテンツアイテムに関連するメタデータに第1のコンテンツアイテムの削除の指定を記憶することを含む可能性がある。動作は、第1のデバイスと二次ストレージとの間で第1のコンテンツアイテムに関連するメタデータを同期することを含む可能性があり、第1のコンテンツアイテムに関連するメタデータは、第1のコンテンツアイテムの削除の指定を含む。動作は、第2のデバイスと二次ストレージとの間で第1のコンテンツアイテムに関連するメタデータを同期することを含む可能性があり、第1のコンテンツアイテムに関連するメタデータは、第1のコンテンツアイテムの削除の指定を含む。動作は、削除の指定に応じて第2のデバイスからコンテンツアイテムを削除することを含む可能性がある。
再び図3を参照すると、ブロック310において、システムが、ローカルストレージの利用可能なローカルストレージの容量を判定する。一部の実装において、ローカルストレージの総容量は、所与のクライアントデバイス110のためのオペレーティングシステムによって判定される可能性がある。一部の実装において、ローカルストレージの総容量は、ローカルストレージに記憶されるデータから判定される可能性がある。たとえば、FAT-32フォーマットのデータストアにおいて、データストアの容量は、データストアに記憶されたファイルアロケーションテーブルにアクセスすることによって判定される可能性がある。ストレージデバイスの利用可能な容量も、オペレーティングシステムによっておよび/またはクライアントデバイス110に記憶されたデータから判定される可能性がある。
一部の実装において、利用可能なローカルストレージの容量は、現在未使用であるストレージデバイス上の利用可能なスペースならびにオペレーティングシステムおよび/またはアプリケーションによってなされた割り振りおよび/または予約に基づいて判定される可能性がある。たとえば、オペレーティングシステムが、アプリケーションのためおよび一時的なストレージのために利用可能なスペースの一部を予約する可能性がある。この場合、利用可能なローカルストレージの容量は、そのような予約または割り振りによって減らされたローカルストレージデバイス上の利用可能なストレージスペースである。
一部の実装において、利用可能なローカルストレージの容量は、コンテンツアイテムのための割り振りに基づいて判定される可能性がある。たとえば、構成が、所定の量のストレージがコンテンツアイテムのために予約されることを示す可能性がある。たとえば、構成が、4GBがコンテンツアイテムのストレージのために利用可能であることを示す可能性がある。この例において、コンテンツアイテムが現在3GBを占める場合、この例において利用可能なストレージの容量は1GBである。
ブロック312において、システムが、所定の基準および利用可能なローカルストレージの容量に基づいてローカルストレージに追加するまたはローカルストレージから削除するコンテンツアイテムを選択する。一部の実装において、所定の基準は、作成日付である。最近生成されたかまたは追加されたアイテムが、ローカルストレージに追加されるべく選択され、より古いコンテンツアイテムが、削除されるべく選択される。
一部の実装において、各コンテンツアイテムが、所定の基準に基づいて採点される。最大で利用可能なストレージの容量の閾値まで最もスコアの高いコンテンツアイテムが含まれるようにして、コンテンツアイテムがスコアに基づいてローカルストレージに含まれるように選択される。より低いスコアを有するコンテンツアイテムは、プレースホルダーによって置き換えられるかまたはローカルストレージから削除されるべく選択される。コンテンツアイテムは、プレースホルダーのコピーの形態でローカルストレージに追加されるかまたは維持されるべく選択される可能性がある。たとえば、一部の実装において、利用可能なストレージスペースの一部が、コンテンツアイテムの完全なサイズのコピーに割り振られる可能性があり、利用可能なストレージの一部が、コンテンツアイテムのプレースホルダーのコピーに割り振られる可能性がある。
ブロック314において、任意で、コンテンツアイテムのプレースホルダーのコピーが生成される可能性がある。プレースホルダーのコピーは、コンテンツアイテムの代用としてローカルストレージに記憶され得るコンテンツアイテムのコピーである。一部の実装において、プレースホルダーのコピーは、実際のコンテンツアイテムよりも小さなサイズを有する。プレースホルダーのコピーは、元のコンテンツアイテムが二次ストレージから取り出されるまでだけ使用される一時的な代用であるように意図される可能性がある。プレースホルダーのコピーは、コンテンツアイテムのほとんどの目的または用途に十分である代用であるように意図される可能性がある。
一部の実装において、コンテンツアイテムを削除する代わりに、コンテンツアイテムのプレースホルダーのコピーが生成され、デバイスに記憶される。コンテンツアイテムのこのプレースホルダーのコピーは、二次ストレージが利用可能でない場合に元のコンテンツアイテムの一部または元のコンテンツアイテムの識別子をユーザが維持することを可能にするというメリットを有する。たとえば、プレースホルダーのコピーは、元のコンテンツアイテムよりも小さなサイズをローカルストレージ内に有する可能性がある。より小さなサイズのバージョンが、任意の好適な方法で、たとえば、コンテンツアイテムの特徴を変えること、コンテンツアイテムの一部を削除すること、圧縮技術を適用することなどによって生成される可能性がある。たとえば、低解像度のプレースホルダー画像が高解像度の画像を置き換えるために使用される、低解像度のビデオが高精細ビデオを置き換える、テキストを含むコンテンツアイテムが好適な圧縮技術によって圧縮されるといった可能性がある。一部の実装において、プレースホルダーコンテンツアイテムは、コンテンツアイテムの間の違いを記憶することによってその他のコンテンツアイテムに似ているコンテンツアイテムに関して生成されるより小さなサイズの差し替えコンテンツアイテムを含む。たとえば、いくつかの写真が第1の写真に似ている場合、それらの写真の間の違いが、元のコンテンツアイテム全体の代わりに記憶される可能性がある。
コンテンツアイテムのプレースホルダーのコピーを生成する際、システム160は、たとえば、クライアントデバイス110の特徴を考慮に入れる可能性がある。たとえば、画像に関して、システム160は、クライアントデバイス110の表示解像度を考慮に入れる可能性がある。写真がデバイス上で閲覧され得るよりも高い解像度を有する場合、システム160は、クライアントデバイス110の実際の解像度に合うように写真の解像度を下げる可能性がある。解像度がクライアントデバイス110の実際の解像度に一致させられる場合、ユーザは、最初、プレースホルダーと元の写真との間の違いに気づかない可能性がある。
一部の実装において、プレースホルダーコンテンツアイテムは、元のコンテンツアイテムと見た目が同じではない。たとえば、システムは、元のコンテンツアイテムよりもずっと低い解像度を有するサムネイル画像を表示する可能性がある。サムネイル画像は、ユーザが元の画像の文脈を特定するのに十分であるが、詳細を特定するのには十分でない可能性がある。ユーザは、画像を見たい場合、その画像を選択する可能性があり、システムは、二次ストレージから元の画像を提供する可能性がある。ビデオは、静止画像、または音声を有するもしくは音声を持たないずっと低い解像度の画像によって置き換えられる可能性がある。ユーザのクライアントデバイス110が二次ストレージと通信する場合、プレースホルダーをクリックすることによって、ユーザは、コンテンツアイテムへの関心をシグナリングし、同じコンテンツアイテムのより高い解像度またはより大きなサイズの画像が、二次ストレージからダウンロードされ、ユーザによって利用され得るようにされる可能性がある。
プレースホルダーのコピーは、実際のコンテンツアイテムのコピーが二次ストレージから取り出されることを可能にする関連するコンテンツアイテムの二次ストレージ内の位置を含む可能性がある。コンテンツアイテムの(たとえば、二次ストレージ内の)位置は、メタデータ内に維持される可能性がある。
プレースホルダーのコピーは、プレースホルダーのコピーがローカルストレージに追加されるべく選択され得るように、二次ストレージ内に置かれるコンテンツアイテムに関して生成される可能性がある。このようにして、ローカルストレージは、コンテンツアイテムのプレースホルダーのコピーを有する。
ブロック316において、ローカルストレージに追加されるべく選択されたコンテンツアイテムが、二次ストレージからコピーされ、ローカルストレージから削除されるべく選択されたコンテンツアイテムが、削除される。一部の実装において、削除されるコンテンツアイテムが、プレースホルダーのコピーによって置き換えられる可能性がある。一部の実装において、完全なサイズのコンテンツアイテムではなくプレースホルダーのコピーがローカルストレージに追加される可能性がある。
削除されるコンテンツアイテムに関するメタデータは、ユーザが削除されるコンテンツアイテムを知らされ、クライアントデバイスが二次ストレージと通信するときにそれらのコンテンツアイテムを容易に取り出し得るように、クライアントデバイスのローカルストレージに維持される可能性がある。一部の実装において、削除は、どのコンテンツアイテムがローカルストレージに記憶されているかおよびどれが二次ストレージ内にしかないのかユーザが分からないようにユーザに対して透過的である可能性がある。
図4は、一部の実装によるコンテンツアイテムを採点するための例示的な流れ図を示す。図4を参照すると、コンテンツアイテムが、所定の基準およびローカルストレージの容量に基づいてローカルストレージから削除されるかまたはローカルストレージに追加されるべく選択される可能性がある。一部の実装において、各コンテンツアイテムが、所定の基準に基づいて採点され、最もスコアの高いコンテンツアイテムが、ローカルストレージに記憶するために選択される。採点は、1つの所定の基準、2つの所定の基準、4つの所定の基準、10個の所定の基準などの少数のまたは多数の基準を評価することを含む可能性がある。
一部の実装において、採点システム400は、各コンテンツアイテムにスコアを割り当てるために使用される。採点システム400は、ソフトウェアまたはハードウェアで実装される可能性がある。採点システム400は、いくつかの所定の基準の各々に関して各コンテンツアイテムを評価するために使用され得る。それぞれの所定の基準は重み付けされ(たとえば、重みを乗算され)、結果として得られたスコアを用いて、重み付けされた所定の基準が合計される。たとえば、一部の実装において、第1の基準、基準A 402が、重み1 404を用いて重み付けされる。第2の基準、基準B 406が、重み2 408を用いて重み付けされる。第3の基準、基準C 410が、重み2 412を用いて重み付けされる。最後の基準、基準n 414が、重みn 416を用いて重み付けされる。示された基準の数は説明のためのものであり、スコアに含まれる任意の数のさらなる基準が存在する可能性があることを理解されたい。たとえば、ほんのいくつか例を挙げるとすれば、基準(たとえば、基準A 402、基準B 406、基準C 410、および基準n 414)の各々は、ユーザの振る舞い、社会的親近性、イベントの検出、画像、ビデオ、またはテキストコンテンツ、その他のコンテンツアイテムとの類似性、メタデータ、日付および時間、ならびに好適である可能性があるそのようなその他の基準のうちの1つまたは複数を含み得る。
一部の実装において、所定の基準は、コンテンツアイテムの取り込みに関連する時間的なデータを含む可能性がある。一部の実装において、所定の基準は、コンテンツアイテムへのアクセスの頻度を含む可能性がある。一部の実装において、所定の基準は、コンテンツアイテムへのアクセスの見込みを含む。一部の実装において、所定の基準は、コンテンツアイテムの重要度を含む。一部の実装において、コンテンツアイテムの重要度は、デバイスのユーザとコンテンツアイテムに関連する1人または複数の人との間の関係の強さに基づく可能性がある。
一部の実装において、所定の基準は、コンテンツアイテムに一致するイベントを含む可能性がある。一部の実装において、所定の基準は、コンテンツアイテムの投稿者、コンテンツアイテムの受信者、コンテンツアイテムに追加されたタグ、コンテンツアイテムへの応答、コンテンツアイテムに関連するチェックインデータ、コンテンツアイテムに関連する地理および/または位置データ、コンテンツアイテムに関連するイベントデータ、画像認識の結果、ならびにその他のコンテンツアイテムとのコンテンツアイテムの類似性の群から選択された少なくとも1つの基準を含む可能性がある。
1つの例示的な例において、基準A 402は、コンテンツアイテムが生成されてからの日数である。日数は100から引かれ、ゼロ未満の数はゼロとして扱われる。基準A 402は、重み1 (404)が0.5に設定されるように大きく重み付けされる。この例において、基準B 406は、アクセスの頻度である。基準B 406は、過去3ヶ月のこのコンテンツアイテムのユーザによるアクセス数に設定され、10を乗算され、100を上限とされる。また、基準B 406は、重み2 (408)が0.4に設定されるように比較的高い重みを有する。この例において、基準C 410は、ユーザと高い社会的親近性を有するその他の人々によるアクセス数である。アクセス数は合計され、100を上限とされる。基準C 410はより軽い重みを有し、したがって、重み3 (412)は0.15に設定される。この例において、基準n 414は、コンテンツアイテムの中身がユーザにとって重要である可能性がある誰かまたは何かを含むかどうかである。0.5を超える社会的親近性のスコアを有するコンテンツアイテム内のエンティティ(人、場所、物など)の数が合計され、100を上限とされる。この基準nはさらに小さな重みを有し、したがって、重みn 416は0.1に設定される。この例において、スコアが、各コンテンツアイテムに関して計算され、それから、最も高いスコアを有するコンテンツアイテムが、2GBのデータが記憶されるまでローカルストレージに維持されるかまたは追加されるべく選択される。別の0.3GBがプレースホルダーのために割り振られ、したがって、0.3GBのプレースホルダーが生成されるまで、プレースホルダーが次にスコアの高いコンテンツアイテムのために生成される。最後に、すべてのその他のコンテンツアイテムが削除のために選択されるが、それらのコンテンツアイテムのメタデータは維持される。
一部の実装において、所定の基準が、ユーザの特徴に基づいて選択される可能性がある。たとえば、基準は、デモグラフィック情報(demographic information)および/またはユーザが提供したその他の情報を含む可能性があるユーザのプロファイルに基づいて選択され得る。たとえば、自分が子供を持てる年齢であることを示したおよび/または自分に子供がいることを示したユーザは、そのユーザのデバイス上にそのユーザの子供に関連するコンテンツアイテムを保持したい可能性がある。ユーザの家族全般または特にユーザの子供に関するコンテンツアイテムの基準が、重要であり、より重く重み付けされる可能性がある。自分の趣味が「旅行」であることを示したユーザは、自分の旅に関連するコンテンツアイテムを保持することに興味がある可能性がある。旅に関するコンテンツアイテムの基準(たとえば、コンテンツアイテムが異なる場所に関連付けられるかどうかおよび/またはコンテンツアイテムの中身が旅を示すかどうか)が、重要であり、より重く重み付けされる可能性がある。
一部の実装において、所定の基準が、ユーザの過去の振る舞いの特徴に基づいて選択される可能性がある。ユーザの振る舞いの特徴は、コンテンツアイテムのユーザの過去のアクセスのパターンから決定される可能性がある。たとえば、ユーザの振る舞いの特徴がユーザが旅に関連するコンテンツアイテムにアクセスする傾向があることである場合、これは、ユーザが旅に関連するコンテンツアイテムを保持したい可能性があることの指示である。コンテンツアイテムが旅に関連付けられるかどうか(たとえば、コンテンツアイテムが異なる場所に関連付けられるかどうかおよび/またはコンテンツアイテムの中身が旅を示すかどうか)という基準が、そのユーザにとって重要である可能性があり、そのユーザに関してより重く重み付けされる可能性がある。たとえば、ユーザの振る舞いの特徴がユーザが特定の対象(たとえば、景色の写真)または人(たとえば、家族、友達)に関連するコンテンツアイテムにアクセスする傾向があることである場合、ユーザは、その対象に関連するコンテンツアイテムを保持したい可能性がある。コンテンツアイテムがその特定の対象もしくは特定の人またはユーザと高い社会的親近性を有する人に関連付けられるかどうかという基準が、そのユーザにとって重要である可能性があり、より重く重み付けされる可能性がある。したがって、ユーザの過去の振る舞いの特徴が、そのユーザにとって重要であるものを保持するように一部の基準をその他の基準よりも重く重み付けするために使用される可能性がある。
一部の実装において、クライアントデバイスは、コンテンツアイテムへのアクセスに関連するユーザの振る舞いを観測する可能性がある。たとえば、ユーザによるコンテンツアイテムへのアクセスが、コンテンツアイテムに関連するメタデータとして記録される可能性がある。コンテンツアイテムに関連するその他のメタデータとのアクセスメタデータの相関が、ユーザのモデルを作るために使用される可能性がある。そのとき、ユーザのモデルは、その特定のユーザのために使用する基準を選択するために使用され得る。したがって、ユーザの振る舞いのユーザのモデルが、どのコンテンツアイテムをそのユーザのためにユーザのデバイス上に保持すべきかを決定するために使用され得る。
図5は、ローカルストレージのコンテンツを示すデバイスの例示的なユーザインターフェースを示す。第1の例示的なユーザインターフェース500に示されるように、ローカルストレージ502は、1.3GBのアプリ(504)、1.2GBのピクチャ(506)、0.7GBのビデオ(508)、0.5GBのオーディオ(510)、0.1GBのダウンロードファイル(512)、および0.1GBのカテゴリ分けされていないデータ(514)を含む。総ローカルストレージは4.0GBであることが示されており、0.1GBのストレージが利用可能である。
それぞれのカテゴリに関して示される量は様々な方法で測定される可能性があり、データの割り振りまたは予約を含む可能性があることを理解されたい。また、この例において、「アプリ」カテゴリ504内に示されるストレージの量は、その他のカテゴリに違った風に分類されないアプリケーションプログラムと特定のアプリケーションプログラムに関連するデータとの両方を含む。
図2および図5を参照すると、この例において、デバイスがネットワークに接続されているとき、コンテンツアイテムバックアップサービスを含むストレージ管理がユーザの許可の下で有効化され、結果として、コンテンツアイテムを二次ストレージにアップロードするステップ208が定期的にまたは周期的に(たとえば、1時間、1日、1週間、もしくは1ヶ月に数回)実行される。図5のこの示される例において、所定の基準は、6ヶ月以上閲覧されていないすべてのデータと、閾値を満たす社会的親近性のスコアに基づいてデバイスの所有者に直接関連していないデータとを削除のために指定する。選択ステップ210および削除ステップ212が所定の基準を用いて実行されるとき、結果は、ユーザインターフェース510の右に示される第2の例示的なユーザインターフェース530内に示される。
たとえば、ユーザインターフェース530は、図2または図3の技術の動作の結果を示す画面表示である可能性がある。
第2の例示的なユーザインターフェース530に示されるように、ローカルストレージ532は、0.5GBのアプリ(534)、0.5GBのピクチャ(536)、0.3GBのビデオ(538)、0.5GBのオーディオ(540)、0.0GBのダウンロードファイル(542)、および0.1GBのカテゴリ分けされていないデータ(544)を含む。総ローカルストレージは4.0GBであることが示されており、2.1GBのストレージが利用可能である。
示される例において、ローカルストレージから削除されたデータのすべては、バックアップサービスのおかげでクラウドサーバ上でユーザによって引き続き利用可能であり、そう望まれた場合にデバイス上で使用するために再びダウンロードされる可能性がある。
一部の実装において、二次ストレージからコピーされたさらなるコンテンツアイテムがローカルストレージ532に含まれる可能性がある。さらなるアイテムが二次ストレージからダウンロードされているとしても、利用可能なローカルストレージの量は、ローカルストレージから削除されるコンテンツアイテムのおかげでやはりより大きい可能性がある。
図6は、一部の実装によるコンテンツアイテムを記憶するためのシステムのブロック図を示す。図6を参照すると、例示的なモバイルデバイス600が、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによる実行のために1つまたは複数の非一時的な有形の媒体に符号化された論理命令とを含む。実行されるとき、論理命令は、モバイルデバイス600内にブロック図の形態で示されるモジュール602〜614のうちの1つまたは複数を実装するように動作可能である。モバイルデバイス600は、オペレーティングシステム602と、ソーシャルメディアアプリケーション606、写真共有アプリケーション608、およびカメラアプリケーション610として示されるメディアアプリケーションとを含む。モバイルデバイスは、ストレージマネージャ612を含む。モバイルデバイスは、バックアップマネージャ614も含む。
一部の実装において、メディアアプリケーション606、608、610は、コンテンツアイテムを受信する。この例において、ソーシャルメディアアプリケーション606は、投稿、チャット、およびメッセージング能力を含むソーシャルメディアアプリケーションであり、写真共有アプリケーション608は、写真の共有を可能にし、カメラアプリケーション610は、ユーザがビデオおよび写真を撮ることを可能にする。カメラアプリケーション610を用いて撮られたビデオおよび写真は、ソーシャルメディアアプリケーション606および写真共有アプリケーション608を使用して共有され得る。一部の実装において、ストレージマネージャ612および/またはバックアップマネージャ614は、オペレーティングシステム602の一部である可能性がある。一部の実装において、ストレージマネージャ612および/またはバックアップマネージャ614は、ソーシャルメディアアプリケーション606、写真共有アプリケーション608、またはカメラアプリケーション610の一部である可能性がある。
メディアアプリケーション606、608、610およびストレージマネージャ612およびバックアップマネージャ614は、ローカルストレージ616と通信する。ローカルストレージ616は、モバイルデバイス600に含まれるものとして示されるが、ローカルストレージ616は、モバイルデバイスの外部にあるか、またはモバイルデバイスに一時的に接続される(たとえば、フラッシュドライブもしくはUSBドライブである)可能性がある。ソーシャルメディアアプリケーション606は、その他のソーシャルメディアユーザから受信され、その他のソーシャルメディアユーザと共有されたメッセージ、写真、およびビデオをローカルストレージ616に記憶する。写真共有アプリケーション608は、写真共有アプリケーション608のその他のユーザから受信され、写真共有アプリケーション608のその他のユーザと共有された写真をローカルストレージ616に記憶する。カメラアプリケーション610は、モバイルデバイスのカメラを用いて生成された写真およびビデオをローカルストレージ616に記憶する。
また、ソーシャルメディアアプリケーション606は、ソーシャルメディアの二次ストレージ618と通信する。この通信は、ネットワークを介する可能性がある。この例において、ソーシャルメディアの二次ストレージは、ユーザのソーシャルメディア情報のすべてのコピーを保持するソーシャルメディアサーバである。その他のユーザに送信されるアイテムが、二次ストレージ618にアップロードされ、ソーシャルメディアサーバからソーシャルメディアアプリケーション606に送信されるコンテンツアイテムも、ソーシャルメディアの二次ストレージ618にアップロードされる。したがって、ソーシャルコンテンツアイテムは、継続的に二次ストレージ618にアップロードされる。
写真共有アプリケーション608は、写真共有の二次ストレージ620と通信する。この例において、写真共有の二次ストレージ620は、ユーザによって、ユーザと共有されたすべての写真のコピーを保持する写真共有サーバである。その他のユーザに送信されるコンテンツアイテムが、二次ストレージ620にアップロードされ、写真共有サーバから写真共有アプリケーション608に送信されるコンテンツアイテムも、写真共有の二次ストレージ620にアップロードされる。したがって、写真共有コンテンツアイテムは、継続的に二次ストレージ620にアップロードされる。写真に関連するメタデータが、写真共有の二次ストレージ620に記憶される可能性がある。
カメラアプリケーション610は、モバイルデバイスのカメラを使用してピクチャおよびビデオを撮るために、ならびにローカルストレージ616に写真およびビデオを記憶するために使用され得る。カメラアプリケーションは、写真共有の二次ストレージ620と通信する可能性があり、またはローカルストレージ616に写真を記憶し、写真共有アプリケーション608が写真共有の二次ストレージ620と通信することを可能にする可能性がある。一部の実装において、カメラアプリケーション610は、写真共有アプリケーション608に統合される可能性があり、または写真共有アプリケーション608は、カメラアプリケーション610に統合される可能性がある。
また、バックアップマネージャ614は、クラウドバックアップサーバの二次ストレージ622と通信する。この例において、クラウドバックアップの二次ストレージ622は、ユーザによって構成された通りにローカルストレージ616からのデータのコピーを有する。この例において、クラウドバックアップの二次ストレージ622は、カメラアプリケーション610からのデータと、ユーザの同意の下で、どのアプリケーションがこのモバイルデバイスによって使用されるかの記録とを含むアプリケーションデータのコピーを有する。この例において、バックアップマネージャ614は、周期的に(たとえば、毎時、毎日、毎週、毎月など)クラウドバックアップサーバの二次ストレージ622にコンテンツアイテムをアップロードする。
この例において、ストレージマネージャ612は、ローカルストレージ616の利用可能なローカルストレージの容量を監視するように構成される。この例において、周期的に(たとえば、毎時、毎日、毎週、毎月など)および/またはモバイルデバイスがネットワークにアタッチされるたびに、ストレージマネージャ612は、ローカルストレージ616の容量がローカルストレージ616の容量の閾値レベルを満たす(たとえば、所定の利用可能なローカルストレージ616の容量のレベル未満である)かどうかを判定する。ローカルストレージ616の容量のレベルが下回る場合、ストレージマネージャ612は、所定の基準に基づいてローカルストレージから削除するコンテンツアイテムを選択する。一部の実装において、ストレージマネージャ612は、どのコンテンツアイテムをローカルストレージ616に追加またはローカルストレージ616から削除すべきかを判定するためにコンテンツアイテムを採点する可能性がある。
この例において、所定の基準は、二次ストレージにコピーされ、二次ストレージ上で利用可能であり、3ヶ月よりも古いアイテムを含む。これらのアイテムはそれらのアイテムへのアクセスの日付によって優先順位付けされ、削除が所望のローカルストレージ616の容量のレベルをもたらすまで、最も前にアクセスされたアイテムが選択される。ソーシャルメディアアプリケーション606、写真共有アプリケーション608、およびバックアップマネージャ614が、すべて、データのコピーを二次ストレージに記憶するので、その他の所定の基準に合致する、それらのアプリケーションが複製するコンテンツアイテムは削除され得る。
この例において、ソーシャルメディアアプリケーション606のコンテンツアイテムを削除するために、ストレージマネージャ612は、それらのコンテンツアイテムを削除するためのメッセージをソーシャルメッセージアプリケーション606に送信する。この例において、写真共有アプリケーション608のコンテンツアイテムを削除するために、単純に、ストレージマネージャは、ローカルストレージ616からファイルを削除する。写真共有アプリケーション608は、写真が削除されたと判定し、ローカルストレージ616から削除されたが、写真共有の二次ストレージ620から利用可能であるものとして写真に印を付ける。
ユーザは、後でそれらのユーザのデバイス600上に削除されたコンテンツアイテムを持ちたい場合、適切な二次ストレージ618、620、622からそれらのコンテンツアイテムを取得することができる。この例において、これは、ソーシャルメディアアプリケーション606、写真共有アプリケーション608、またはバックアップマネージャ614を使用して実現され得る。
一部の実装において、バックアップマネージャ614およびストレージマネージャ612は、写真共有アプリケーション608などのアプリケーションに含まれる。メタデータが、コンテンツアイテムと一緒に写真共有の二次ストレージ620に記憶される可能性がある。
本明細書において説明される実装は、様々な利点をもたらす。たとえば、一部の実装は、時間がかかり、難しく、エラーが起こりやすいプロセスである可能性がある、ローカルストレージと二次ストレージとの間でユーザのモバイルデバイス上のコンテンツアイテムのストレージを手動で管理することをユーザが避けることを可能にし得る。一部の実装は、ユーザがオフラインで閲覧するために(たとえば、インターネットアクセスなしに)それらのユーザのデバイスのローカルストレージ上に所与のコンテンツアイテムを維持することを保証し得る。一部の実装は、困難およびいらだちの原因になる可能性がある、ユーザがコンテンツアイテムを移動させるときにそれらのユーザのコンテンツアイテムをうっかり失うことがないことを保証するのに役立つ可能性がある。したがって、一部の実装は、ユーザがそれらのユーザのデバイス上に十分なストレージを有することを心配する必要がないので、より多くのコンテンツアイテムをダウンロードし、生成するようにユーザに促し、それによって、それらのユーザのモバイルデバイスに由来する楽しさを増やす可能性がある。また、一部の実装は、ユーザがより少ないストレージの容量を有するデバイスを効果的に使用することを可能にし、それによって、デバイスのコストを下げる可能性がある。
クライアントデバイス110は本明細書の実装において説明されたステップを実行するものとして説明されるが、クライアントデバイス110の任意の好適な構成要素もしくは構成要素の組合せまたはクライアントデバイス110に関連する任意の好適な1つのプロセッサもしくは複数のプロセッサが、説明されたステップを実行する可能性がある。
ステップ、動作、または計算が特定の順序で示される可能性があるが、順序は特定の実装において変更される可能性がある。特定の実装に応じてステップのその他の順序付けがあり得る。いくつかの特定の実装において、本明細書において逐次的であるものとして示された複数のステップが同時に実行される可能性がある。
様々な実装が、コンテンツアイテムのコンテンツアイテムストレージの管理を可能にすべきかどうか、およびストレージの管理が有効化される場合、どのコンテンツアイテムが選択されるのかなどの判断にユーザを関与させる可能性がある。一部の実装は、ユーザがストレージの管理を使用したいと仮定する可能性があり、したがって、説明されたステップをデフォルトで実装する。たとえば、ストレージマネージャ612 (図6)などのストレージの管理を有効化または無効化すべきかどうか、必要に応じてストレージの管理に関与すべきかどうか、保つべき所定の利用可能なローカルストレージの容量の閾値、コンテンツアイテムをアップロードまたはダウンロードするための特定のネットワークまたはネットワークの種類の使用(たとえば、セルラーデータではなくコンテンツアイテムのアップロードのためにWiFiを使用する)などをユーザが制御できるようにするために構成の設定が与えられる可能性がある。一部の実装において、ストレージの管理がデフォルトで実装され、明示的に拒否されない限り、ユーザによる許可があると仮定される。一部の実装において、ストレージの管理を使用する許可が、最初のシステムのインストールおよび構成の一部として求められる。一部の実装において、ストレージの管理を使用する許可が、後で求められる。一部の実装において、ストレージの管理が必要とされるまで実施されず、ストレージの管理が必要とされるときに許可が要求される。
図7を参照すると、一部の実装によるストレージの管理を可能にするための例示的な簡略化された流れ図が示される。例示的な方法700は、たとえば、アプリケーションプログラムの一部として、またはオペレーティングシステムの一部として実装される可能性がある。たとえば、方法700は、アプリケーションプログラムが開始するときに実装される可能性がある。アプリケーションプログラムは、たとえば、写真もしくはビデオアプリケーション(たとえば、図6の写真共有アプリケーション608)、カメラアプリケーション(たとえば、図6のカメラアプリケーション610)、データおよび/もしくはファイルストレージアプリケーション(たとえば、図6のバックアップマネージャ614)、ならびに/またはソーシャルネットワーキングアプリケーション(たとえば、図6のソーシャルメディアアプリケーション606)である可能性がある。これらは例であり、方法700は任意の好適な方法で実施され得ることを理解されたい。方法700は、たとえば、クライアントデバイスが再起動するときに、および/または方法700が周期的に実行されるように時間間隔が経過すると最初に実行されるオペレーティングシステムのサービスとしてオペレーティングシステムに実装される可能性がある。方法700は、たとえば、アプリケーションプログラミングインターフェース(API)の使用を通じて別のデバイスによって遠隔で、またはクライアントデバイス自体によって開始または実施される可能性がある。様々な実装において、方法700は、閾値の量のコンテンツアイテムを受信するとまたは閾値の量のコンテンツアイテムを受信した後実施される可能性がある。たとえば、方法700のステップは、新しい写真が撮られるときに方法700が実施されるようにカメラアプリケーションに組み込まれる可能性がある。様々な実装において、閾値の数のコンテンツアイテムは、いくつかの写真、ビデオ、または画像である可能性がある。様々な実装において、コンテンツアイテムの閾値の量は、いくつかの投稿またはコメントの受信または投稿である可能性がある。
方法700は、目標のデバイス、たとえば、クライアントデバイス110の利用可能なローカルストレージの容量を判定すること702を含み得る。一部の実装において、利用可能なローカルストレージの容量は、オペレーティングシステムによって判定される可能性がある。一部の実装において、利用可能なローカルストレージの容量は、ローカルストレージ上で利用可能であるデータから判定される可能性がある。たとえば、FAT-32フォーマットのデータストアにおいて、データストアの容量は、データストアに記憶されたファイルアロケーションテーブルにアクセスすることによって判定される可能性がある。ストレージデバイスの利用可能な容量も、オペレーティングシステムによっておよび/または目標のデバイスに記憶されたその他のデータから判定される可能性がある。
一部の実装において、利用可能なローカルストレージの容量は、現在未使用であるストレージデバイス上の利用可能なスペース、ならびにオペレーティングシステムおよび/もしくはアプリケーションによってなされた割り振りおよび/もしくは予約、または必要とされる可能性があるストレージスペースに基づいて判定される可能性がある。たとえば、オペレーティングシステムが、アプリケーションのためおよび一時的なストレージのために利用可能なスペースの一部を予約する可能性がある。この例において、利用可能なローカルストレージの容量は、そのような予約または割り振りによって減らされたローカルストレージデバイス上の利用可能なストレージスペースである可能性がある。
方法700は、利用可能なローカルストレージの容量が閾値レベルを満たす(たとえば、所定の閾値レベルを超えているかまたは所定の閾値レベル未満である)かどうかを判定すること704を含む可能性がある。閾値レベルは、総ストレージ容量の割合である可能性がある。閾値レベルは、利用可能なローカルストレージの容量の最小の量である可能性がある。閾値レベルは、デバイスの使用を監視することによって判定される可能性がある。閾値レベルは、ユーザによるアプリケーションの履歴的な使用から判定される可能性がある。閾値レベルは、その他のユーザ、たとえば、目標のユーザとのある度合いの社会的親近性を有するユーザによるアプリケーションの履歴的な使用から判定される可能性がある。
利用可能なローカルストレージの容量が閾値レベルを満たす場合、ユーザは通知される(706)。この通知は、ユーザへのアラートを表示することを含む可能性がある。通知は、方法を実装するアプリケーションプログラムの動作の一部としてダイアログボックスを表示することを含む可能性がある。通知は、グラフィックを表示することまたは音を鳴らすことを含む可能性がある。通知は、ユーザに通知するためのデバイスのオペレーティングシステムによって提供される通知を使用することを含む可能性がある。
通知は、ストレージの管理を有効化する許可の要求を含む可能性がある。たとえば、通知は、ユーザがデバイスのためのストレージの管理を有効化するためにクリックするするかまたは押すためのボタンを含む可能性がある。通知は、ストレージ管理能力についてのさらなる情報へのリンクを含む可能性がある。
一部の実装において、ストレージの管理を有効化する許可は、方法を実装するアプリケーションプログラムまたはオペレーティングシステムに関する設定に含まれる可能性がある。たとえば、必要に応じてストレージの管理を有効化する許可は、アプリケーションプログラムまたはオペレーティングシステムにおいてデフォルトで有効化される可能性がある。たとえば、必要に応じてストレージの管理を有効化する許可は、アプリケーションプログラムまたはオペレーティングシステムにおいてデフォルトで無効化される可能性がある。通知は、現在の許可の設定の表示を含む可能性がある。通知は、通知の一部としてユーザが設定を変更することを可能にするか、またはユーザがストレージの管理を有効化する許可が示され得る設定画面に行くことを可能にする可能性がある。
方法は、ユーザがストレージの管理を有効化する許可を与えたかどうかを判定すること708を含む。許可は、暗黙的または明示的許可である可能性がある。たとえば、ユーザは、明示的許可を供給する必要がある可能性があり、またはユーザの許可は、クラウドバックアップもしくはその他のアプリケーションの特徴の動作への登録もしくは同意などのユーザのその他のアクションによって示唆される可能性がある。
許可を得ており、利用可能なローカルストレージの容量が該当する閾値を満たしていれば、ストレージの管理が有効化される(710)。ストレージの管理は、たとえば、図2の方法200、図3の方法300のステップの一部もしくはすべて、および/または図6のストレージマネージャ612を実施することを含む可能性がある。
ブロック704において利用可能なストレージが閾値を満たすと判定されない場合、またはブロック708において許可が与えられていないと判定される場合、ブロック712において、ストレージの管理は有効化されない。
一部の実装において、モバイルデバイスのローカルストレージの管理を可能にするための方法は、モバイルデバイス上の利用可能なローカルストレージの容量を判定することと、判定された利用可能なローカルストレージの容量を閾値と比較することと、判定された利用可能なローカルストレージの容量が閾値を満たす場合、ストレージの管理を有効化することとを含む。一部の実装において、方法は、ストレージの管理を有効化するために許可が暗黙的にまたは明示的に与えられたと判定することを含む。ストレージの管理を有効化するために許可の判定が必要とされる可能性がある。
一部の実装において、モバイルデバイスのローカルストレージの管理を可能にするためのシステムは、1つまたは複数のプロセッサと、実行されるときに、モバイルデバイス上の利用可能なローカルストレージの容量を判定し、判定された利用可能なローカルストレージの容量を閾値と比較するように動作可能である、1つまたは複数のプロセッサによる実行のために1つまたは複数の有形の媒体に符号化された論理とを含む。判定された利用可能なローカルストレージの容量が閾値を満たす(たとえば、閾値未満である)場合、ストレージの管理を有効化する。一部の実装において、命令は、ストレージの管理を有効化するために許可が暗黙的にまたは明示的に与えられたと判定するようにさらに動作可能である。ストレージの管理を有効化するために許可の判定が必要とされる可能性がある。
一部の実装において、コンピュータ可読ストレージ媒体は、モバイルデバイスのローカルストレージの管理のための制御論理を記憶する。制御論理は、モバイルデバイスの利用可能なローカルストレージの容量を判定する第1のコンピュータ可読プログラムコードを含む可能性がある。制御論理は、判定された利用可能なローカルストレージの容量を閾値と比較する第2のコンピュータ可読プログラムコードを含む可能性がある。制御論理は、判定された利用可能なローカルストレージの容量が閾値を満たす(たとえば、閾値以下である)場合にストレージの管理を有効化する第3のコンピュータ可読プログラムコードを含む可能性がある。一部の実装において、制御論理は、ストレージの管理を有効化するために許可が暗黙的にまたは明示的に与えられたと判定する第4のコンピュータ可読プログラムコードを含む可能性がある。ストレージの管理を有効化するために許可の判定が必要とされる可能性がある。
図8を参照すると、たとえば、モバイルデバイスなどのクライアントデバイスの一部の実装による例示的な画面表示800が例示的なアラート802とともに示される。アラート802は、ローカルの利用可能なストレージの容量が閾値を満たす(たとえば、所定の閾値未満である)という指示804を含む。たとえば、所定の閾値は、100MB、200MB、1GBなどの決まった量、総ストレージ容量もしくは割り当てられた割り振りのうちのある割合(たとえば、5%、10%、15%など)、いくつかの写真(たとえば、100枚の写真、200枚の写真、500枚の写真、1000枚の写真など)もしくはある量のビデオ(たとえば、10分のビデオ、20分のビデオ、30分のビデオ)のために必要とされるストレージの量、または現在の使用パターンで最後の数日(たとえば、1日、2日、3日、7日など)に必要とされるストレージの量である可能性がある。この閾値は例示的であり、任意の好適な値が使用され得ることを理解されたい。たとえば、所定の閾値は、ローカルストレージデバイスに少なくとも部分的に基づく可能性がある。たとえば、所定の閾値は、ユーザの予測されるストレージの必要に少なくとも部分的に基づく可能性がある。ユーザの予測されるストレージの必要は、ユーザの前のストレージスペースの使用パターンに少なくとも部分的に基づいて判定される可能性がある。ユーザの予測されるストレージの必要は、ユーザによって最近使用されたソフトウェアアプリケーションに関する典型的な使用に少なくとも部分的に基づいて判定される可能性がある。
また、例示的なアラート802は、自動的なストレージの管理を有効化する許可の明示的な要求806を含む。アラート802は、ユーザがストレージの管理を有効化するための(つまり、ストレージの管理に関する許可を与えるための)第1のボタン808をアラート上に含む。第1のボタン808上のテキストは、「はい。必要に応じて私のファイルをクラウドに移動させます。」と書かれる。ユーザが、たとえばタッチスクリーン上のボタンを押すことによってまたはたとえばマウスでクリックすることによって第1のボタン808を作動させる場合、ストレージ管理能力が有効化される。アラート802は、ユーザがストレージの管理を拒否するための(つまり、ストレージの管理に関する許可を差し控えるための)第2のボタン810を例示的なアラート802上に含む。第2のボタン810上のテキストは、「いいえ。ファイルストレージを手動で管理します。」と書かれる。ユーザが第2のボタン810を作動させる場合、ストレージ管理能力は有効化されない。
図9を参照すると、一部の実装による画面表示900の例は、コンテンツアイテムが二次ストレージにバックアップされたという通知902を含む。これは、「All photos backed up (すべての写真がバックアップされました)」という言葉によって示される。画面表示900は、利用可能なストレージの容量が所定の閾値を超えていることを示すアラート通知904も含む。画面は、「Device storage almost full You have space for about 90 more photos. You can safely remove copies without deleting them from your Photos library. REMOVE COPIES & FREE SPACE (デバイスのストレージがほとんど一杯です あと約90枚の写真のためのスペースがあります。あなたの写真ライブラリからコピーを削除することなくそれらのコピーを安全に削除することができます。 コピーの削除&スペースの解放)」と表示する。このアラート通知904は、ユーザがアラート904上をタップする場合にそのことがストレージの管理を有効化するようにタッチスクリーン上で使用され得る。
図10を参照すると、一部の実装による画面表示1000の例は、利用可能なストレージの容量が所定の閾値を超えていることを示すアラート通知1002を含む通知の集合を含む。この画面表示1000では、明確にするために、その他の通知は、それらのその他の通知が同じまたはその他のアプリケーションまたはオペレーティングシステムに関するその他のアラートまたは通知に関連する可能性があるのでグレー表示されるものとして示された。アラート通知1002は、「Device storage almost full Remove backed-up photos to save space (デバイスのストレージがほとんど一杯です スペースを節約するためにバックアップされた写真を削除します)」と表示する。このアラート通知1002は、たとえば、デバイスのユーザに提供されるアラートまたは通知の集合内に提示される可能性がある。たとえば、アプリケーションがバックグラウンドで実行されている場合、通知は、通知のリスト内に提示される可能性がある。このアラート通知1002は、ユーザがアラート通知1002上をタップする場合にそのことがストレージの管理を有効化するようにタッチスクリーン上で使用され得る。
図11を参照すると、一部の実装による画面表示1100の例は、デバイスが利用可能なストレージを測定していることを示す通知1102を含む。たとえば、一部の実装において、ユーザが図9のアラート通知904または図10のアラート通知1002を作動させる場合、デバイスがコンテンツアイテムのための利用可能なストレージの容量を判定していることを示すためにこの画面が提示される。これは、たとえば、メタデータを更新することを含む可能性もある。ストレージの容量が判定されたとき、図12の表示などの表示が、ユーザとさらにコミュニケーションするために使用され得る。
図11の例示的な画面表示は任意であることを理解されたい。たとえば、一部の実装において、利用可能なストレージを測定することはバックグラウンドで行われ得るので、プログレスインジケータは使用されない。
図12を参照すると、一部の実装による画面表示1200の例は、さらなるストレージの容量を提供するためにコンテンツアイテムがデバイスから削除され得るという通知1202を含む。通知1202は、「Free up 2.6GB Delete 924 copies of photos & videos that are over 30 days old. These items remain in your Photos library and remain accessible from this and any other connected device. (2.6GBを解放する 30日よりも古い写真&ビデオの924個のコピーを削除する。これらのアイテムは、あなたの写真ライブラリに残り、このデバイスおよび任意のその他の接続されたデバイスから引き続きアクセス可能です。」と表示する。この例において、デバイスは、924枚の写真およびビデオが二次ストレージに既にコピーされており、さらなる利用可能なストレージの容量を生み出すために削除される可能性があると判定した。通知1202は、ストレージ管理プロセスを継続する選択肢「DELETE COPIES (コピーを削除する)」を含む。示されるように、この例において、デバイスは、コンテンツアイテムを削除する前に別の通知を提供する。通知1202は、選択肢「CANCEL (取り消し)」も含む。ユーザが取り消す選択肢を選択する場合、デバイスはデバイスからコンテンツアイテムを削除しない。
図13を参照すると、一部の実装による画面表示1300の例は、コンテンツアイテムが削除されるという通知1302を含む。特に、通知1302は、「Delete device copies All 924 items remain in your Photos library (デバイスのコピーを削除する 924個のアイテムすべてがあなたの写真ライブラリに残ります)」と表示する。この通知1302は、ストレージの管理およびデバイスからのコンテンツアイテムからの削除を停止する別の機会をユーザに与える。たとえば、タッチスクリーンに触れることによりユーザによって選択され得る選択肢「DELETE COPIES (コピーを削除する)」が存在する。ユーザが「DELETE COPIES」を選択する場合、デバイスは、たとえば、プレースホルダーのコピーを生成することおよび/またはデバイスからコンテンツアイテムを削除することによってストレージの管理を続ける。ユーザが「CANCEL (取り消し)」を選択する場合、デバイスはデバイスからコンテンツアイテムを削除しない。
図14を参照すると、一部の実装による画面表示1400の例は、さらなるストレージの容量が今利用可能であるという通知1402を含む。この例における通知は、「2.6GB device storage recovered (2.6GBのデバイスのストレージが回収されました)」と表示する。これは、ストレージの管理がデバイス上でさらに2.6GBのストレージの容量を解放することができたことを示す。示された2.6GBは説明のためのものであり、実際の量はコンテンツアイテムおよび利用可能なストレージの容量に応じて決まることを理解されたい。
図15を参照すると、一部の実装による画面表示1500の例は、デバイスが二次ストレージに接続することができず、したがってストレージの管理が継続することができないという通知1502を含む。通知1502は、たとえば、デバイスが二次ストレージと通信することができない場合に、図8のアラート808、図9のアラート904、または図10のアラート1002を作動させた結果として表示され得る。これは、たとえば、ネットワーク(たとえば、インターネット)接続が中断されるかまたは利用不可能である場合に起こる可能性がある。また、ストレージの管理は、デバイスがその他の理由で二次ストレージと通信することができない場合、動作することができない可能性がある。二次ストレージが別のネットワークを介して利用可能であったかまたはデバイスのローカルで利用可能であった場合、インターネットなどの特定の通信ネットワークへの接続は必要ではない可能性がある。
図16は、本明細書において説明される実装を実装するために使用され得る例示的なクライアントデバイス1600のブロック図を示す。たとえば、クライアントデバイス1600は、図1のクライアントデバイス110を実装し、本明細書において説明された方法の実装を実行するために使用され得る。一部の実装において、クライアントデバイス1600は、プロセッサ1602、オペレーティングシステム1604、メモリ1606、および入力/出力(I/O)インターフェース1608を含む。メモリ1606は、本明細書において説明された機能を提供するデータを記憶する非一時的コンピュータ可読ストレージ媒体である可能性がある。メモリ1606は、ダイナミックランダムアクセスメモリ(DRAM)デバイス、スタティックランダムアクセスメモリ(SRAM)デバイス、フラッシュメモリ、または何らかのその他のメモリデバイスである可能性がある。一部の実装において、メモリ1606は、ハードディスクドライブ、フロッピー(登録商標)ディスクドライブ、読み出し専用メモリ(ROM)デバイス、CD-ROMデバイス、DVD-ROMデバイス、DVD-RAMデバイス、DVD-RWデバイス、フラッシュメモリデバイス、またはより永続的に情報を記憶するための何らかのその他の大容量ストレージデバイスを含む不揮発性メモリまたは同様の永続的ストレージデバイスおよび媒体をやはり含む。クライアントデバイス1600は、メモリ1606または任意のその他の好適なストレージの場所もしくはコンピュータ可読媒体に記憶され得るストレージマネージャ1610およびメディアアプリケーション1612も含む。ストレージマネージャ1610は、プロセッサ1602が本明細書において説明された機能およびその他の機能を実行することを可能にする命令を提供する。
図示を簡単にするために、図16は、プロセッサ1602、オペレーティングシステム1604、メモリ1606、I/Oインターフェース1608、ストレージマネージャ1610、およびメディアアプリケーション1612の各々について1つのブロックを示す。これらのブロック1602、1604、1606、1608、1610、および1612は、複数のプロセッサ、オペレーティングシステム、メモリ、I/Oインターフェース、ソーシャルネットワークエンジン、およびメディアアプリケーションを表す可能性がある。その他の実装において、クライアントデバイス1600は、示されたコンポーネントのすべてを有するわけではない可能性があり、および/または本明細書に示された要素の代わりにもしくは本明細書に示された要素に加えてその他の種類の要素を含むその他の要素を有する可能性がある。
特定の実装に関連して説明されたが、これらの特定の実装は例示的であるに過ぎず、限定的でない。例において示された概念は、その他の例および実装に適用され得る。
本開示において説明された機能ブロック、方法、デバイス、およびシステムは当業者に知られているようにシステム、デバイス、および機能ブロックの異なる組合せに統合されるかまたは分けられる可能性があることに留意されたい。
任意の好適なプログラミング言語およびプログラミング技術が、特定の実装のルーチンを実装するために使用され得る。手続き型またはオブジェクト指向などの異なるプログラミング技術が、使用され得る。ルーチンは、単一の処理デバイスまたは複数のプロセッサ上で実行される可能性がある。ステップ、動作、または計算が特定の順序で提示される可能性があるが、順序は異なる特定の実装において変更される可能性がある。いくつかの特定の実装において、本明細書において逐次的であるものとして示された複数のステップが同時に実行される可能性がある。
「プロセッサ」は、データ、信号、またはその他の情報を処理する任意の好適なハードウェアおよび/またはソフトウェアシステム、メカニズム、または構成要素を含む。プロセッサは、汎用中央演算処理装置、複数の処理ユニット、機能を実現するための専用回路を有するシステム、またはその他のシステムを含む可能性がある。処理は、地理的位置に限定されるまたは時間的な制限を有するとは限らない。たとえば、プロセッサは、「リアルタイム」、「オフライン」、「バッチモード」などでそのプロセッサの機能を実行する可能性がある。処理の一部は、異なる(または同じ)処理システムによって異なる時間に異なる場所で実行される可能性がある。コンピュータは、メモリと通信する任意のプロセッサである可能性がある。メモリは、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、磁気もしくは光ディスク、またはプロセッサによる実行のための命令を記憶するのに好適なその他の有形の媒体などの任意の好適なプロセッサ可読ストレージ媒体である可能性がある。
クライアントデバイスは、シングルプロセッサシステム、(同じ場所に置かれた(co-located)もしくは分散された)マルチプロセッサシステム、クラウドコンピューティングシステム、または上記の組合せを含む可能性があるがこれらに限定されない。
クライアント(またはユーザ、メンバー、または目標のユーザ)デバイスは、デスクトップコンピュータ、ラップトップコンピュータ、ポータブルコンピュータ、ウェアラブルコンピュータ、タブレットコンピューティングデバイス、スマートフォン、フィーチャーフォン、携帯情報端末、メディアプレーヤ、カメラまたはメディアキャプチャデバイス、電子ブックリーダ、車両のエンターテインメント、ナビゲーション、またはコンピューティングシステムなどを含む可能性があるがこれらに限定されない。デバイスのその他の例は、窓、壁、家具、メガネ、ゴーグル、腕時計、服などに組み込まれたコンピューティングおよび/またはディスプレイシステムを含む。概して、本明細書において説明された方法のうちの1つまたは複数を実施することができる任意のコンピューティングデバイスが使用され得る。
クライアントデバイスは、ネットワークを介してサーバに接続される可能性がある。ユーザデバイスをサーバに接続するネットワークは、有線またはワイヤレスネットワークである可能性があり、Wi-Fiネットワーク、ローカルエリアネットワーク、広域ネットワーク、インターネット、または上記の組合せを含む可能性があるがこれらに限定されない。
データストレージ、メモリ、および/または非一時的コンピュータ可読記録媒体は、磁気ストレージデバイス(ハードディスクドライブなど)、光ストレージデバイス(CD、DVDなど)、電子ストレージデバイス(RAM、ROM、フラッシュなど)である可能性がある。また、ソフトウェア命令は、たとえば、サーバ(たとえば、分散型システムおよび/またはクラウドコンピューティングシステム)から配信されるサービスとしてのソフトウェア(SaaS)の形態で含まれ、提供される可能性がある。
さらに、開示された方法、システム、およびコンピュータ可読媒体の一部の実装は、ソフトウェアで(たとえば、命令を記憶したコンピュータプログラム製品および/またはコンピュータ可読媒体として)実装される可能性がある。記憶されたソフトウェア命令は、プログラミングされた汎用コンピュータ、専用コンピュータ、マイクロプロセッサなどで実行される可能性がある。
様々な実装において、ユーザのニーズを支援するためにデバイス上でアシスタントサービスがアクセスされる可能性がある。一部の実装において、アシスタントサービスは、インターネットまたはワールドワイドウェブなどの1つまたは複数のネットワークを介して遠隔でアクセスされ得る1つまたは複数のシステムから提供される可能性がある。たとえば、サービスは、ネットワークに接続された1つまたは複数のサーバシステムによって提供される可能性がある。一部の実装は、デバイスのローカルにアシスタントサービスを実装する可能性がある。エキスパートシステムが、一部の実装において、特定の対象の所望の情報を提供するために使用される可能性がある。
一部の実装において、アシスタントサービスは、インテリジェントなアシスタントまたは「エージェント」の使用を含む可能性がある。これらのエージェントは、デバイスを使用してユーザがアクセス可能であり、デバイスのローカルの機能および特徴ならびに遠隔のアシスタントサービスにアクセスしてデバイスのユーザを支援するために情報を集めおよび/またはアクションを実行し得るソフトウェアである可能性がある。エージェントは、様々な支援機能のいずれかを実行する可能性がある。
一部の実装は、ユーザがエージェントと簡単にインタラクションすることを可能にするための単純で自然なインターフェースを有するエージェントを提供し得る。一部の例において、エージェントは、ユーザ入力のユーザフレンドリーな自然言語処理を実行する可能性があり、たとえば、ユーザは、音声入力を使用し得る。たとえば、エージェントは、ユーザからの音声入力を解釈するための音声認識システムを使用し得る。
システムがユーザについての個人情報を収集および/もしくは使用するまたは個人情報を利用し得る状況において、ユーザは、プログラムまたは特徴がユーザ情報(たとえば、ユーザのソーシャルネットワーク、ソーシャルなアクションもしくは活動、職業、ユーザの好み、またはユーザの現在の位置についての情報)を収集するかどうかを制御するか、あるいはユーザにより関連性がある可能性があるコンテンツアイテムをサーバから受信すべきかどうかおよび/またはどのようにして受信すべきかを制御する機会を与えられる可能性がある。さらに、特定のデータが、個人を特定できる情報が削除されるように、記憶されるかまたは使用される前に1つまたは複数の方法で処理される可能性がある。たとえば、ユーザの識別情報が、個人を特定できる情報がユーザに関して決定され得ないか、または位置情報が取得される場合にユーザの地理的位置が(都市、郵便番号、もしくは州のレベルまでになど)一般化される可能性があり、したがって、特定の位置が決定され得ないように処理される可能性がある。したがって、ユーザは、情報がシステムによってどのように収集され、使用されるかを制御し得る。