(58)【調査した分野】(Int.Cl.,DB名)
前記プロセッサーは前記計算装置に関連付けられる1つ又は複数の制約を決定するようにさらにプログラムされ、前記プロセッサーは前記決定された制約に応じて前記1つ又は複数のコンテンツ項目を取り出すようにプログラムされる請求項1に記載の計算装置。
前記メモリー領域は可変サイズのキャッシュを含み、前記決定された制約が、前記可変サイズのキャッシュ内の利用可能なストレージの大きさを含む請求項2に記載の計算装置。
前記決定された制約が、前記計算装置上の利用可能な記憶装置の大きさ、前記計算装置のバッテリーレベル、及び前記計算装置と前記コンテンツプロバイダーに関連付けられるサーバとの間の接続の帯域幅のうちの1つ又は複数を含む、請求項2又は3に記載の計算装置。
前記ユーザーデータは前記計算装置を介した前記ユーザーと前記コンテンツプロバイダーとの間のインタラクションについて記述するインタラクション履歴を含み、前記プロセッサーは前記インタラクション履歴に少なくとも基づいて前記社会的距離値を計算するようにプログラムされる請求項1〜4のいずれか一項に記載の計算装置。
前記コンテンツ項目は、画像ファイル、ビデオファイル、テキストファイル、ブログ投稿、電子メールメッセージ、インスタントメッセージ、オーディオクリップ、ハイパーリンク及びマイクロブログ投稿のうちの1つ又は複数を含む請求項1〜5のいずれか一項に記載の計算装置。
複数のコンテンツプロバイダーの各々とユーザーとの間の関係を表す社会的距離値に基づいて前記コンテンツプロバイダーからコンテンツをプリフェッチする方法において、前記方法は、
前記複数のコンテンツプロバイダーから、前記複数のコンテンツプロバイダーの各々に関連付けられるコンテンツ項目のリストを受信し、
前記ユーザーとの間のインタラクションを監視し、
前記監視されたインタラクションに少なくとも基づいて、前記複数のコンテンツプロバイダーの各々について、前記コンテンツプロバイダーと前記ユーザーとの間の関係を表す社会的距離値を計算し、前記社会的距離値は変数の重みに従って変数の値を組み合わせる適合度関数を使用して計算され、
前記複数のコンテンツプロバイダーから前記計算された社会的距離値に基づいて前記リスト上の1つ又は複数のコンテンツ項目を選択的に取り出す方法であって、更に、
前記1つ又は複数のコンテンツ項目について前記ユーザーから要求を受信する前に前記1つ又は複数のコンテンツ項目を取り出すものであって、前記取り出されるコンテンツ項目は、前記社会的距離値が最も近いものとしてランク付けされたコンテンツプロバイダーからのコンテンツ項目と、前記社会的距離値がより遠いものとしてランク付けされたコンテンツプロバイダーからのコンテンツ項目のうちの一部とを含み、前記一部は、前記最も近いものとしてランク付けされたコンテンツプロバイダーの社会的距離値に対する前記より遠いものとしてランク付けされたコンテンツプロバイダーの社会的距離値の比によって決定される方法。
【発明を実施するための形態】
【0008】
[0010]図を参照すると、本開示の実施例は、少なくとも、ユーザー102とコンテンツプロバイダー105との間の社会的距離に基づいたコンテンツ項目のヒューリスティックなプリフェッチ(pre-fetch)を可能にする。プリフェッチされたコンテンツ項目は、社会的距離に基づいてユーザー102にとって興味のある可能性があると決定されるコンテンツ項目を表す。本開示の態様は、コスト(例えば、記憶空間、バッテリー、帯域幅など)あたりのより大きな値を提供するユーザー102の計算装置104上のリソースの使用を優先的にする。いくつかの実施例において、計算装置104は、制限されたリソースを備えた携帯電話などのモバイルコンピューティング装置402を含む。
【0009】
[0011]ユーザー102はコンテンツプロバイダー105の各々と関係する。各関係の近さは、コンテンツプロバイダー105の各々によって異なる。例えば、ユーザー102は、コンテンツプロバイダー105のうちの1人の親族や親しい友人かもしれない。そのような例において、ユーザー102は、そのコンテンツプロバイダー105からのコンテンツ項目を見ることに強い興味を持つ。別の例において、ユーザー102は、コンテンツプロバイダー105の知人にすぎず、コンテンツプロバイダー105又はコンテンツプロバイダー105のコンテンツ項目に対する関心を履歴上示していない。そのような例において、ユーザー102は、このコンテンツプロバイダー105からの新たなコンテンツ項目を見ることにごくわずかな興味を持つかもしれない。
【0010】
[0012]社会的距離値は、ユーザー102とコンテンツプロバイダー105の各々と間の近さの程度を表す。社会的距離値は1人のユーザー及びコンテンツプロバイダー105のうちの1つに関連付けられるが、異なるコンテンツプロバイダー105が同じユーザーに対して同じ社会的距離値を有していてもよい。社会的距離値は、暗示的に又は明示的に定義又は計算されてもよい(例えば、
図3を参照)。例示的な社会的距離値は0から1もしくは0から100までに及んでもよく、又は任意の定義された値の組もしくは範囲から選択されてもよい。
【0011】
[0013]
図1を再び参照すると、例示的なブロック図は、複数のコンテンツプロバイダー105からコンテンツ項目を受信する計算装置104を示す。
図1に示された要素はコンテンツ項目の選択的なプリフェッチを可能にするように動作する。例えば、ユーザー102が他のコンテンツ項目をブラウズするか(例えば、アクティブなプリフェッチ)、又は計算装置104が動いていない間にコンテンツ項目がプリフェッチされる(例えば、バックグラウンド・プリフェッチ)とき、コンテンツ項目はプリフェッチされる。
【0012】
[0014]いくつかの実施例において、計算装置104は、
図4に示されるようなモバイルコンピューティング装置402を表す。他の実施例において、計算装置104は、本明細書に記載された機能を実施するようにプログラムされた複数の計算装置を表す。代替的に又はさらに、機能の一部は(例えば、ウェブサービスを実行する)他の計算装置によって実行される。
【0013】
[0015]計算装置104は、インターネットなどのネットワーク103を介して、コンテンツプロバイダー#1からコンテンツプロバイダー#Nなどのコンテンツプロバイダー105と通信する。コンテンツプロバイダー105は、例えば、ソーシャル・ネットワーキング・ウェブサイト又は写真を共有するウェブサイトなどのコンテンツの配信者又は保存場所を表す。他の実施例において、コンテンツプロバイダー105はコンテンツの作者を表す。計算装置104は少なくともメモリー領域106及びプロセッサー108を含む。メモリー領域106、又は他のコンピューター読み取り可能な媒体もしくは機械読み取り可能な媒体は、ユーザーデータ110を格納する。ユーザーデータ110は計算装置104の1人又は複数のユーザー102に特有のデータを含んでもよい。ユーザーデータ110は、
図1の例のようにローカルに保存されてもよいし、又はウェブサービス(例えば、ユーザープロフィール情報を格納するソーシャルコンテンツウェブサービス)によるなどしてリモートに格納され、計算装置104に同期されてもよい。いくつかの実施例において、ユーザーデータ110は、ユーザー102とコンテンツプロバイダー105との間のインタラクションについて記述するインタラクション履歴112を含む。例えば、ユーザーデータ110はブラウジング履歴を含む。例えば特定のコンテンツ項目上の滞留時間を含む、コンテンツ項目を消費する場合、他の例示的なユーザーデータ110は任意のユーザー102の振る舞いを含む。
【0014】
[0016]メモリー領域106は、さらに、コンテンツ項目のリスト116を格納する。いくつかの実施例において、コンテンツ項目のリストは、最近利用可能になったコンテンツの「最新情報(what’s new)」フィードを含む。例えば、コンテンツ項目は、次のうちの1つ又は複数を含む:画像ファイル、ビデオファイル、テキストファイル、ブログ投稿、電子メールメッセージ、インスタントメッセージ、オーディオクリップ、ハイパーリンク及びマイクロブログの投稿。コンテンツ項目のリスト116は、コンテンツプロバイダー105の少なくとも1つ、又は先端(front-edge)サーバー(図示せず)から受信される。コンテンツ項目のリスト116は、ユーザー102によって、定期的に、周期的に、又は要求に応じて、得られ、受信され、取り出され、アクセスされ、配信され、取られてもよい。例えば、様々な実施例において、計算装置104は、コンテンツ項目のリスト116を能動的に求めてもよいし、又は一定間隔でコンテンツ項目のリスト116を受動的に受信してもよい。
【0015】
[0017]いくつかの実施例において、メモリー領域106の一部は、可変サイズのキャッシュ(例えば、ファイルシステムから割り当てられた可変量のメモリーを有するキャッシュ)などのキャッシュ114を含む。他の実施例(図示せず)では、キャッシュ114は、計算装置104内の又は計算装置104によってアクセス可能な別の記憶領域に関連付けられる。キャッシュ114は、コンテンツプロバイダー105から受信された1つ又は複数のコンテンツ項目を格納する。いくつかの実施例において、キャッシュ114は、ファイルシステムからの特定の量のメモリーを割り当てられた固定サイズのキャッシュである。
【0016】
[0018]メモリー領域106、又は1つもしくは複数のコンピューター読み取り可能な媒体は、さらに、本開示の態様を実施するコンピューター実行可能なコンポーネントを格納する。例示的なコンポーネントは、スコアコンポーネント118、フィードコンポーネント120、リソースコンポーネント122及びメンテナンスコンポーネント124を含む。これらのコンポーネントは
図3に関して以下に述べられる。
【0017】
[0019]一般に、メモリー領域106は計算装置104に関連付けられる。例えば、
図2では、メモリー領域106は計算装置104内にある。しかし、メモリー領域106は、計算装置104の内部の、外部の又は計算装置104によってアクセス可能な任意のメモリー領域を含む。さらに、メモリー領域106又はその上に格納された任意のデータは、計算装置104に対してローカル又は遠隔(例えば、ネットワークを介してアクセス可能)である任意のサーバー又は他のコンピューターに関連付けられてもよい。
【0018】
[0020]プロセッサー108は、任意の量の演算処理装置を含み、本開示の態様を実施するためにコンピューター実行可能命令を実行するようにプログラムされる。当該命令は、プロセッサー108もしくは計算装置104内で実行する複数のプロセッサーによって実行されてもよいし、又は、(例えば、クラウドサービスによって)計算装置104の外部のプロセッサーによって実行されてもよい。いくつかの実施例において、プロセッサー108は、図面(例えば、
図2及び
図3)に示されるような命令を実行するようにプログラムされる。
【0019】
[0021]次に
図2を参照すると、例示的なフローチャートは、社会的距離及び装置の制約に基づいたコンテンツ項目の選択的検索を示す。コンテンツ項目は、例えば、音声、テキスト、ビデオ及び画像データ(例えば、ファイル、ストリーミングされるデータなど)を含む。いくつかの実施例において、コンテンツ項目は電子メールメッセージ及びテキストメッセージを含む。コンテンツ項目のリスト116が202において受信される場合、計算装置104に関連した1つ又は複数の制約が204において決定される。例えば、計算装置104は、コンテンツプロバイダー105のうちの1つから又は別のエンティティからのコンテンツ項目のリスト116を取り出し、受信し、又はアクセスする。いくつかの実施例において、コンテンツ項目のリスト116は、社会的距離値に従ってコンテンツプロバイダー105によってソートされる。計算装置104は、ソートされたリストを受信し、社会的距離値に基づいて、ユーザー102に「最も近い」コンテンツプロバイダー105を迅速に特定することができる。他の実施例において、計算装置104は、コンテンツ項目のソートされていないリスト116を受信し、リスト上のコンテンツ項目の各々に関連付けられるコンテンツプロバイダー105の社会的距離値によって、コンテンツ項目をソートする。そのような実施例において、よりランクの低いコンテンツプロバイダー105に関連付けられるコンテンツ項目が取り出される前に、1位にランク付けされたコンテンツプロバイダー105に関連付けられるコンテンツ項目が取り出される。
【0020】
[0022]計算装置104に関連した例示的な制約は、ストレージの制約、バッテリー/電力の制約及び帯域幅の制約などの、ハードウェア及び/又はソフトウェアの制約を含む。決定された制約は、例えば、計算装置104における利用可能なストレージの量、計算装置104の残りのバッテリー電力の量及び利用可能な帯域幅リソースを表す。帯域幅リソースは、例えば、計算装置104とコンテンツプロバイダー105との間での利用可能な帯域幅を表す。他の例示的な制約は、処理能力に関連する制限又は設定(例えば、プロセッサー108使用率が所定のしきい値を超えるなど)を含む。さらに他の例示的な制約は、計算装置104上で実行するソフトウェアに関連付けられる(例えば、スレッドの量が所定のしきい値を超過するなど)。
【0021】
[0023]206において、コンテンツ項目は、コンテンツプロバイダー105の各々についての決定された制約及び社会的距離値に基づいて、コンテンツプロバイダー105から選択的に取り出される。いくつかの実施例において、コンテンツ項目を選択的に取り出すことは、1位にランク付けられる(first-ranked)コンテンツプロバイダー105に関連付けられるコンテンツ項目を取り出し、次いでより低くランク付けされたコンテンツプロバイダー105(例えば、2位にランク付けられるコンテンツプロバイダー105)の1つ又は複数に関連付けられるコンテンツ項目の一部のみを取り出すことを含む。他の実施例において、所定のしきい値を超える社会的距離値を有するコンテンツプロバイダー105に関連付けられるコンテンツ項目だけが取り出される。
【0022】
[0024]いくつかの実施例において、202、204及び206における動作は、選択的に取り出されるコンテンツ項目についてユーザー102から要求を受信する前に実行される。例えば、ユーザー102がインターネット、写真集、音楽ライブラリーなどを閲覧しているときに当該動作が実行される。コンテンツ項目は、キャッシュされたコンテンツ項目のうちの1つ又は複数についてユーザー102から要求を受信することを予期して、プリフェッチされキャッシュされる(例えば、ユーザー102がコンテンツ項目を要求する寸前にコンテンツ項目をプリフェッチする)。本開示の態様は、要求を受信することに応答して、要求されたコンテンツ項目をユーザー102に迅速に配信することができる。本開示のそのような実施例は、計算装置104に関するユーザー経験を改善する。
【0023】
[0025]次に
図3を参照すると、例示的なフローチャートは、ランク付けされたコンテンツプロバイダー105に関連付けられるコンテンツ項目のプリフェッチを示す。302において、コンテンツプロバイダー105とのユーザー102のインタラクションが監視される。例えば、本開示の態様は、ユーザー102によって選択され見られた画像に関連付けられるコンテンツプロバイダー105を識別し、コンテンツプロバイダー105の特定の1つのフォトギャラリーをユーザー102が閲覧するのに費やす時間の量を測定及び格納し、ユーザー102とコンテンツプロバイダー105との間で交換されたメッセージを数えたりする。いくつかの実施例において、監視されたインタラクションからのデータはメモリー領域106にユーザーデータ110の一部として保存される。
【0024】
[0026]304において、コンテンツプロバイダー105の各々についての社会的距離値が、304において監視されたユーザーインタラクションに少なくとも基づいて計算される。その後、コンテンツプロバイダー105の各々は社会的距離値を自身に関連付ける。社会的距離値は、コンテンツプロバイダー105とユーザー102との関係を表す。社会的距離値は、行事予定(カレンダーイベント)、電子メールメッセージ、インタラクション履歴112などを含むユーザーデータ110に部分的に基づいて計算することができる。いくつかの実施例において、適合度関数(fitness function)が社会的距離値を計算するために使用される。
【0025】
[0027]以下の表1は、社会的距離値を計算するための例示的な変数、値及び加重を示す。いくつかの実施例において、キャッシュ履歴がより短い場合、変数は繰り返しの30日間又はより短いウィンドウにおいて計算される。
【0027】
[0028]いくつかの実施例において、表1の値は、社会的距離値を計算するために、加重に従って線形に組み合わせられる(例えば、合計される)。他の実施例において、社会的距離値を計算するために、値は他の数学的な方法で組み合わせられ、又は追加のデータもしくは計算によって増大される。
【0028】
[0029]計算装置104が306においてコンテンツ項目のリスト116を受信する場合、計算装置104は、308において、社会的距離値の順にランク付けされるコンテンツプロバイダー105からコンテンツ項目のうちの1つをプリフェッチする。コンテンツ項目は、より低いランキングのコンテンツプロバイダー105ではなく最も高いランキングのコンテンツプロバイダー105から取り出される。いくつかの実施例において、複数のコンテンツ項目が308においてプリフェッチされる。例えば、2つのコンテンツ項目が一度に取り出されてもよい。
【0029】
[0030]計算装置104のリソースもまた監視される。例えば、利用可能な記憶空間、帯域幅及びバッテリー電源レベルが定期的に又は不定期に監視される。310において、1つ又は複数のリソースが使い尽くされる場合(例えば、所定のしきい値に反するか又はそれを超えるレベルにある場合)、リソースメンテナンスが実行される。例えば、キャッシュメンテナンスが312において実行される。例示的なキャッシュメンテナンスは、キャッシュ114からより古いコンテンツ項目を削除すること、コンテンツ項目を圧縮すること、及び他のルーチン又は典型的なキャッシュメンテナンス項目を含む。キャッシュ114中のコンテンツ項目の年齢は、例えば、コンテンツ項目の各々に関連付けられる項目の日付によって決定される。項目の日付は、計算装置104がコンテンツ項目をリフレッシュし、コンテンツ項目にアクセスし、コンテンツ項目をプリフェッチし、コンテンツ項目を送信し、又はコンテンツ項目を受信した最も最近の日付/時間に対応する。例えば、最も最近の10個の画像又は12時間未満の最近の画像を除いて、フルスクリーン画像がキャッシュ114から取り除かれてもよい。72時間より古い画像メタデータ及びサムネイルもまた削除されてもよい。いくつかの実施例において、キャッシュメンテナンスはまた、定期的に(例えば、毎日及び/又は計算装置104に電源が入れられたときに)実行される。312においてキャッシュメンテナンスを実行した後に、308において別のコンテンツ項目がプリフェッチされる。
【0030】
[0031]310において計算装置104のリソースが使い尽くされない場合、308において別のコンテンツ項目がプリフェッチされる。
[0032]いくつかの実施例において、
図3に示される動作のうちの少なくともいくつかは、取り出されたコンテンツ項目についてユーザー102から要求を受信する前に実行される。このように、本開示の態様は、ユーザーのインタラクションを観察し、ユーザー102にとって興味深いと考えられるコンテンツ項目を、ユーザーが実際にそれらのコンテンツ項目を要求する前にプリフェッチする。計算装置104上で写真又は他のコンテンツを閲覧する場合、本開示の態様は改善されたユーザー経験を提供する。同様に、計算装置104のリソースがより制限されたものとなる場合、本開示の態様は、ユーザー経験の正常な低下(graceful degradation)を可能にする。
【0031】
[0033]いくつかの実施例において、
図1に示されたコンポーネントなどの1つ又は複数のコンピューター実行可能なコンポーネントは、
図3に示された動作を実行するために、計算装置104上で実行する。スコアコンポーネント118は、プロセッサー108によって実行されると、プロセッサー108に、コンテンツプロバイダー105の各々について社会的距離値を計算させる。フィードコンポーネント120は、プロセッサー108によって実行されると、プロセッサー108に、コンテンツ項目のリスト116にアクセスさせる。リソースコンポーネント122は、プロセッサー108によって実行されると、プロセッサー108に、計算装置104のメモリー領域106(例えば、キャッシュ114)における利用可能なストレージを監視させる。他の実施例において、利用可能なストレージは、フラッシュドライブなどの取り外し可能な記憶領域にある。監視されたストレージが所定のしきい値を超過するとリソースコンポーネント122が決定する例において、メンテナンスコンポーネント124は、さらに、メモリー領域106に格納されたコンテンツ項目の少なくとも1つを削除する。
【0032】
[0034]メンテナンスコンポーネント124は、プロセッサー108によって実行されると、プロセッサー108に、スコアコンポーネント118によって計算された社会的距離値に基づいて及びリソースコンポーネント122によって監視された利用可能なストレージに基づいて、リスト上の1つ又は複数のコンテンツ項目を選択的に取り出させる。取り出されたコンテンツ項目はメモリー領域106に格納される。いくつかの実施例において、取り出しは、コンテンツ項目についてユーザー102から要求を受信する前に生じる。
【0033】
[0035]リソースコンポーネント122はバッテリーレベルなどの様々な他のリソースをさらに監視する。バッテリーレベルが所定のしきい値に達し、超過し、越え、反し、又はそうでなければ交差する場合、メンテナンスコンポーネント124は、バッテリーが充電されるまで(又は充電まで)、コンテンツ項目を検索するのを止める。
【0034】
[0036]いくつかの実施例において、スコアコンポーネント118は、複数の設定可能なパラメーターに基づいて社会的距離値を計算する。いくつかの実施例において、設定可能なパラメーターは以下のうちの1つ又は複数から決定される:コンテンツプロバイダー105の各々に関連付けられるコンテンツ項目に対するユーザー102によるアクセスの頻度、コンテンツプロバイダー105の各々に関連付けられるコンテンツ項目についてユーザー102によって投稿されたコメントの量、及び、ユーザー102とコンテンツプロバイダー105の各々との間で交換されたメッセージの量。
【0035】
[0037]いくつかの実施例において、
図2及び
図3に示された動作は計算装置104によって実行される。他の実施例において、
図2又は
図3に示された動作のうちの1つ又は複数は、(例えば、ウェブサービスとして)別の計算装置によって実行される。
【0036】
[0038]他の実施例において、計算装置104の機能の少なくとも一部は、ユーザー102の計算装置104から離れたエンティティ(例えば、プロセッサー108、ウェブサービス、サーバー、アプリケーションプログラム、計算装置など)によって実行される。
【0037】
[0039]次に
図4を参照すると、例示的なブロック図は、写真及び音楽をダウンロードするためにウェブサービス404と通信するモバイルコンピューティング装置402を示す。ユーザー102は、ウェブサービス404とインタラクトするようにモバイルコンピューティング装置402を操作する。ウェブサービス404は、コンテンツ項目を提供する計算装置の任意の組み合わせを含む。他のユーザー406又はエンティティはウェブサービス404にコンテンツ項目を提供する。この例において、他のユーザー406はコンテンツプロバイダー105を構成する。
【0038】
[0040]1つの例において、ユーザー102は、モバイルコンピューティング装置402上で実行するブラウザーを介して写真及び音楽を閲覧する。ユーザー102は、いくつかのサムネイル画像を見て、「春休み」写真アルバム中の数人の友人の名にタグ付けする。本開示の態様は、タグ付けされた友人に関連付けられるサムネイルについてフルスクリーン画像をプリフェッチする。プリフェッチされたフルスクリーン画像のうちのいずれかがコメント又は他のタグを有する場合、本開示の態様はまた、当該コメント及びタグを取って来る。ユーザー102がフルスクリーン画像を見るためにサムネイルのうちの1つを選択する場合、フルスクリーン画像は既に取って来られており、即座に表示される。
さらなる例
[0041]本開示の様々な実施例が考えられる。1つの例では、動作中、計算装置104は、最新の社交行事(ソーシャルイベント)の「新着情報」フィードを受信する。当該フィードは、例えば、ユーザーなどの主体表示名や識別子、写真アルバム、「ジョンがジェーンと友人になった」などの関係を示す文字列などの、客体表示名又は識別子を含む。この例において、計算装置104は、コンテンツプロバイダー105の各々の社会的距離値に従って「新着情報」フィードにリストされた写真アルバムに関連付けられるコンテンツプロバイダー105をランク付けする。ランク付けされたコンテンツプロバイダー105のリストは、所定のしきい値を超える社会的距離値をもつコンテンツプロバイダー105のみ(例えば、ユーザー102に対して十分に近いとみられるコンテンツプロバイダー105のみ)を含むように取り除かれる。
【0039】
[0042]最も最近のアルバムから始めて、1位にランク付けされるコンテンツプロバイダー105(例えば、写真アルバムの作者)からのすべての新たなアルバムからの写真がプリフェッチされる。例えば、計算装置104は、それらのサムネイルに関連した写真アルバム及びフルスクリーン画像中の最初の18個のサムネイルをプリフェッチする。代替的に、計算装置104は、それらのサムネイルに関連した、最初の9個のサムネイル及び最初の5つまでのフルスクリーン画像をプリフェッチする。1位にランク付けられるコンテンツプロバイダー105からのすべてのアルバムが一旦プリフェッチされると、2位にランクするコンテンツプロバイダー105の新たなアルバムからの写真の一部がプリフェッチされる。例えば、当該一部は、1位にランク付けられるコンテンツプロバイダー105の社会的距離値に対する2位にランク付けられるコンテンツプロバイダー105の社会的距離値の比によって決定され、最も近い全体のアルバム以下を切り捨てる。
【0040】
[0043]終了条件に達するまで、プリフェッチ処理は、次に続くランク付けされたコンテンツプロバイダー105を介してこのように継続する。本明細書に別記されるように、終了条件は計算装置104の様々なリソース(例えば、利用可能な記憶装置、バッテリー及び帯域幅)に依存する。別のアルバム又は写真をプリフェッチすることによって12時間未満しか経過していないアルバムからキャッシュデータが取り除かれるように、記憶空間が低減された場合、1つの例示的な終了条件が生じる。プリフェッチが残りのバッテリー電力の10パーセントより多くを消費する場合、別の終了条件が生じる。例えば、バッテリーが20パーセントの電力を残している場合、終了条件は、その電力の2パーセントが特定のプリフェッチ動作に使用されたときである。別の例は、残っているバッテリー電力が特定のしきい値(例えば、20パーセント)未満である場合、プリフェッチが生じないということである。帯域幅の使用が超過した場合、さらに別の終了条件が生じる。例えば、プリフェッチ動作は、1日当たりの設定可能な量の帯域幅を割り当てられる。割り当てられた帯域幅が使用された場合、プリフェッチ動作は終了する。例えば、プリフェッチ更新(pre-fetching update)が4時間ごとに生じ、1日当たり6メガバイトの帯域幅の制限がある場合、特定のプリフェッチ更新に1メガバイトが使用されたとき、プリフェッチは終了する。
【0041】
[0044]プリフェッチ動作の例が次に記載される。1つの例において、利用可能な3メガバイトのキャッシュスペース及び全体で5メガバイトのキャッシュスペースが存在する。キャッシュ114は最小の状態にあり、したがって、バックグラウンド・プリフェッチは実行されない。しかし、本発明の態様はフルスクリーンバイナリーをラウンドロビン(round-robin)する:ユーザー102が別の写真を要求する場合、最も古いキャッシュされた写真がスペースを作るために削除される。別の例においては、可変サイズのキャッシュが50メガバイトのデータで一杯である一方、記憶媒体の残りの部分は他の記憶用途のために利用可能な50メガバイトを有している。ユーザー102が音楽ファイルをダウンロードし、記憶媒体上の以前に利用可能であった50メガバイトのうち1.5メガバイト以外のすべてを満たす場合、本開示の態様は次のキャッシュメンテナンス動作中にキャッシュサイズを縮小する。さらに別の例において、ユーザー102は写真ではなくメッセージを使用する。このユーザー102について、プリフェッチ動作は7日後に止まり、いかなるプリフェッチされたコンテンツ項目も30日後に削除され、キャッシュ114は動作を停止される(他の用途のために計算装置104にキャッシュスペースを返す)。さらに別の例において、割り当てられた5メガバイトのキャッシュスペースのうち0.1メガバイトのキャッシュスペースが利用可能であり、記憶媒体に5メガバイトの記憶空間が残っている。プリフェッチ動作は、0.1メガバイトの利用可能なキャッシュスペースにコンテンツ項目を格納し、次いで、プリフェッチ動作は終了する。
例示的な動作環境
[0045]限定ではなく例として、コンピューター読み取り可能な媒体はコンピューター記憶媒体及び通信媒体を含む。コンピューター記憶媒体は、コンピューター読み取り可能な命令、データ構造、プログラムモジュール又は他のデータなどの情報を格納する。通信媒体は、通常、搬送波又は他の移送機構などの変調されたデータ信号に、コンピューター読み取り可能な命令、データ構造、プログラムモジュール又は他のデータを具体化し、任意の情報配信媒体を含む。上記のうちの任意のものの組み合わせもまたコンピューター読み取り可能な媒体の範囲内に含まれる。
【0042】
[0046]例示的な計算機システム環境に関して記載したが、本発明の実施例は、多数の他の汎用又は専用の計算システム環境又は構成によって動作可能である。本発明の態様とともに使用するのに適した周知の計算システム、環境及び/又は構成は、モバイルコンピューティング装置、パーソナルコンピューター、サーバーコンピューター、携帯型の装置又はラップトップ装置、マルチプロセッサーシステム、ゲーム機、マイクロプロセッサーベースのシステム、セットトップボックス、プログラム可能な家電、携帯電話、ネットワークPC、ミニコンピューター、メインフレームコンピューター、上記のシステム又は装置のうちの任意のものを含む分散コンピューティング環境などを含むがこれらに限定されない。
【0043】
[0047]本発明の実施例は、1つもしくは複数のコンピューター又は他の装置によって実行される、プログラムモジュールなどのコンピューター実行可能命令の一般的なコンテキストにおいて記載することができる。コンピューター実行可能命令は1つ又は複数のコンピューター実行可能なコンポーネント又はモジュールへ組織されてもよい。一般に、プログラムモジュールは、特定のタスク310を実行し又は特定の抽象データ型を実施する、ルーチン、プログラム、オブジェクト、コンポーネント及びデータ構造を含むがこれらに限定されない。本発明の態様は、任意の数及び構成のそのようなコンポーネント又はモジュールによって実施されてもよい。例えば、本発明の態様は、図面に示され本明細書に記載された特定のコンピューター実行可能命令又は特定コンポーネントもしくはモジュールに限定されない。本発明の他の実施例は、図示され本明細書に記載されたものより多くの又は少ない機能を有する異なるコンピューター実行可能命令又はコンポーネントを含んでもよい。
【0044】
[0048]本明細書に記載された命令を実行するように構成される場合、本発明の態様は汎用計算機を専用計算装置へ変換する。
[0049]図示され本明細書に記載された実施例のほか、本明細書には具体的に記載されていないが本発明の態様の範囲内にある実施例は、ユーザー102とコンテンツプロバイダー105との間の社会的距離に基づいて計算装置104のリソースの使用に優先順位をつける例示的な手段、及び、ユーザー102とコンテンツプロバイダー105との間の社会的距離に基づいて計算装置104におけるコンテンツ取り出し(検索)に優先順位を付ける例示的な手段を構成する。
【0045】
[0050]図示され本明細書に記載された本発明の実施例における動作の実行の順序は、別段の定めがない限り不可欠でない。すなわち、動作は別段の定めがない限り任意の順に行うことができ、本発明の実施例は本明細書に開示されたものよりも追加の又はより少数の動作を含んでもよい。例えば、別の動作の前に、それと同時に、又はその後に特定の動作を実行することが本発明の態様の範囲内にあると考えられる。
【0046】
[0051]本発明の態様又はその実施例の要素を紹介する場合、「1つの」、「その」及び「前記」という冠詞は、1つ又は複数の要素が存在することを意味するように意図される。「備える」、「含む」及び「有する」という語は、包括的であるように意図され、リストされた要素以外の追加の要素があってもよいことを意味する。
【0047】
[0052]本発明の態様について詳細に記載してきたが、修正及び変更が、添付の特許請求の範囲において規定されるように、本発明の態様の範囲から逸脱することなく可能であることは明白である。本発明の態様の範囲から逸脱することなく、上記の構成、製品及び方法に様々な変更を行うことができるので、上述の記載に含まれ、添付の図面に示されるすべての事項は、実例となるものとして解釈されるべきであり、限定的な意味に解釈されるべきではないことが意図される。