(57)【要約】ユーザー活動および位置に基づくネットワーク・アクセス・イベントの予測を、コンピューティングデバイスへのプッシュ・コンテンツ配信と相関付ける。コンピューティングデバイスについての位置情報を、コンピューティングデバイスによって受信する。位置情報およびコンピューティングデバイス上におけるユーザー活動に基づいて、１つ又は複数のネットワーク・アクセス・イベントを予測し、ネットワーク・アクセス特性を判定する。コンピューティングデバイスは、予測されたネットワーク・アクセス・イベントまたは判定されたネットワーク・アクセス特性に基づいて、プッシュ・コンテンツの配信または受信を調節する。例えば、予測されたネットワーク・アクセス・イベントの発生前にデータを予め取り込んでおく。または、予測されたネットワーク・アクセス・イベントの発生後まで、データ検索要求を延期させる。【選択図】図１
2013501269.tif 000002
【特許請求の範囲】
【請求項１】
デバイスの位置およびユーザーの対話処理に基づいて、リソース検索を適合させるシステムであって、
ネットワーク（１０８）に接続されている移動体コンピューティングデバイスについての位置情報（２０８）を格納するメモリー・エリア（２０６）であって、更に、前記ネットワーク（１０８）からプッシュ・コンテンツを受信するアプリケーション・プログラム（１０３）のリスト（２１０）も格納する、前記メモリー・エリア（２０６）と、
プロセッサー（２０４）と、
を備えており、前記プロセッサー（２０４）が、
前記メモリー・エリア（２０６）に、前記プッシュ・コンテンツを受信するアプリケーション・プログラム（１０３）のリスト（２１０）を維持し、
前記移動体コンピューティングデバイスとのユーザーの対話処理を検出し、
前記検出したユーザーの対話処理、および前記メモリー・エリア（２０６）に格納した位置情報（２０８）に基づいて、ネットワーク・アクセス・イベントを予測し、
前記予測したネットワーク・アクセス・イベントを、前記メモリー・エリア（２０６）に格納されているアプリケーション・プログラム（１０３）のリスト（２１０）の中にある前記アプリケーション・プログラム（１０３）に伝える通知を送る、
ようにプログラミングされており、前記アプリケーション・プログラム（１０３）が、前記予測されたネットワーク・アクセス・イベントに応答して、前記プッシュ・コンテンツの受信を修正するために、前記ネットワーク（１０８）と通信する、システム。
【請求項２】
請求項１記載のシステムにおいて、前記ネットワーク・アクセス・イベントが、ネットワーク・アクセスの予期される逸失、前記ネットワークへの予期される接続の確立、および前記ネットワークに接続するためのパラメータの予期される修正の内１つ又は複数を含む、システム。
【請求項３】
請求項１記載のシステムにおいて、前記ネットワークが、前記コンテンツを前記移動体コンピューティングデバイスにプッシュするフロント・エンド・サーバーを備えている、システム。
【請求項４】
請求項１記載のシステムにおいて、前記アプリケーション・プログラムが、前記プッシュ・コンテンツの配信を延期させるために前記ネットワークと通信することによって、前記プッシュ・コンテンツの受信を修正する、システム。
【請求項５】
請求項１記載のシステムにおいて、前記アプリケーション・プログラムが、
前記プッシュ・コンテンツの受信に伴うコストを判定し、
前記判定したコストに基づいて前記プッシュ・コンテンツの受信を修正する、
ことによって、前記プッシュ・コンテンツの受信を修正する、システム。
【請求項６】
請求項５記載のシステムにおいて、前記判定したコストに基づいて前記プッシュ・コンテンツの受信を修正するときに、前記判定したコストが既定の閾値よりも低いときには、追加のプッシュ・コンテンツを要求することを含む、システム。
【請求項７】
請求項１記載のシステムであって、更に、
前記移動体コンピューティングデバイスについての位置情報、および前記移動体コンピューティングデバイスとのユーザーの対話処理に基づいて、前記プッシュ・コンテンツの配信を修正する手段と、
前記移動体コンピューティングデバイスについての位置情報を、前記移動体コンピューティングデバイスがリモート・リソースにアクセスする能力と相関付ける手段と、
を備えている、システム。
【請求項８】
コンピューティングデバイス（１０２）によって、ネットワーク（１０８）に接続されている前記コンピューティングデバイス（１０２）についての位置情報（２０８）を受信するステップであって、前記ネットワーク（１０８）がプッシュ・コンテンツを前記コンピューティングデバイス（１０２）にプッシュする、ステップと、
前記コンピューティングデバイス（１０２）上におけるユーザー活動を評価するステップと、
前記コンピューティングデバイス（１０２）によって、少なくとも前記受信した位置情報（２０８）に基づいて、ネットワーク・アクセス特性を判定するステップと、
前記判定したネットワーク・アクセス特性および前記評価したユーザー活動に基づいて、前記コンピューティングデバイス（１０２）にプッシュされたコンテンツの受信を調節するステップと、
を備えている、方法。
【請求項９】
請求項８記載の方法において、前記コンテンツの受信を調節するステップが、前記コンピューティングデバイスへの前記コンテンツの配信を不可能にする、または前記コンピューティングデバイスへの前記コンテンツの配信を可能にすることの要求を、コンテンツ・プロバイダーに送るステップを含む、方法。
【請求項１０】
請求項８記載の方法において、前記コンテンツの受信を調節するステップが、配信の頻度を減らすために、前記コンピューティングデバイスへの配信のための前記プッシュ・コンテンツを一括処理することの要求を、コンテンツ・プロバイダーに送るステップを含む、方法。
【請求項１１】
請求項８記載の方法において、前記位置情報を受信するステップが、前記移動体コンピューティングデバイスの位置、陸標の位置、名所、飛行場の位置、およびネットワーク・アクセス・ポイントの位置というデータの内１つ又は複数を受信するステップを含む、方法。
【請求項１２】
請求項８記載の方法において、前記ネットワーク・アクセス特性を判定するステップが、信号強度、接続タイプ、ネットワーク・アクセスの予期される逸失、前記ネットワークへの接続の予期される確率、および前記ネットワークに接続するためのパラメータの予期される修正の内１つ又は複数を判定するステップを備えている、方法。
【請求項１３】
請求項８記載の方法において、前記位置情報を受信するステップが、位置情報サービス・プロバイダーから前記位置情報を受信するステップを含む、方法。
【請求項１４】
請求項８記載の方法であって、更に、クラウドが発する位置データを受信するステップを備えており、前記ネットワーク・アクセス特性を判定するステップが、前記クラウドが発する位置データの受信に基づいて、前記ネットワーク・アクセス特性を判定するステップを含む、方法。
【請求項１５】
請求項８記載の方法において、１つ又は複数のコンピューター読み取り可能媒体がコンピューター実行可能コンポーネントを有し、前記コンポーネントが、
少なくとも１つのプロセッサーによって実行すると、当該少なくとも１つのプロセッサーに、ネットワークに接続されているコンピューティングデバイスについての位置情報を受信させるインターフェース・コンポーネントであって、前記ネットワークが前記コンピューティングデバイスにコンテンツをプッシュする、インターフェース・コンポーネントと、
少なくとも１つのプロセッサーによって実行すると、当該少なくとも１つのプロセッサーに、前記コンピューティングデバイスとのユーザー対話処理を監視させる、状態コンポーネントと、
少なくとも１つのプロセッサーによって実行すると、当該少なくとも１つのプロセッサーに、前記受信した位置情報および前記監視したユーザー対話処理に基づいて、ネットワーク・アクセス・イベントを予測させる接続コンポーネントと、
少なくとも１つのプロセッサーによって実行すると、当該少なくとも１つのプロセッサーに、前記接続コンポーネントによって予測されたネットワーク・アクセス・イベントを１つ又は複数のアプリケーション・プログラムに通知させる登録コンポーネントであって、前記１つ又は複数のアプリケーション・プログラムが、前記コンピューティングデバイス上で実行して前記プッシュ・コンテンツを受信し、前記通知されたアプリケーション・プログラムが、前記予測されたネットワーク・アクセス・イベントに応答して前記プッシュ・コンテンツの受信を調節するために、前記ネットワークと通信する、登録コンポーネントと、
を備えている、方法。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]  位置に基づく情報検索の枠組みは、移動体電話機のような移動体コンピューティングデバイスに位置情報を提供する。例えば、移動体コンピューティングデバイスの１つにおいて実行中のアプリケーションが、ユーザーにナビゲーション・サービスを提供するため、または現在地の地図をユーザーに表示するために、位置情報を要求する。また、ユーザーは、特定の場所にいるときに関心のあるコンテンツを受信するために、コンテンツ・プロバイダーに加入または登録することもできる。コンテンツ・プロバイダーは、コンテンツが入手可能になり、ユーザーが特定の場所にいるときに、所望のコンテンツを非同期にユーザーにプッシュする。
【発明の概要】
【発明が解決しようとする課題】
【０００２】
[0002]  しかしながら、既存のコンテンツ配信システムは、移動体コンピューティングデバイスがネットワークにアクセスしてコンテンツを受信する能力を考慮することができない。例えば、移動体コンピューティングデバイスが場所を変えるにつれて、移動体コンピューティングデバイスがネットワークにアクセスする能力も変化する。更に、既存のコンテンツ配信システムは、移動体コンピューティングデバイスの活動レベルに関係なく、コンテンツをプッシュする。したがって、予測できないコンテンツ配信のために、バッテリ寿命が短くなったり、ユーザー体験が損なわれる虞れがある。
【課題を解決するための手段】
【０００３】
[0003]  本開示の実施形態は、デバイスの位置およびユーザーの対話処理に基づいて、リソースの検索(retrieval)を適合させる。コンピューティングデバイスは、プッシュされたコンテンツおよび位置情報を、ネットワークを通じて受信する。コンピューティングデバイス上におけるユーザーの活動を評価する。少なくとも受信した位置情報に基づいて、コンピューティングデバイスのネットワーク・アクセス特性を判定する。判定されたネットワーク・アクセス特性および評価したユーザー活動に基づいて、コンピューティングデバイスによって、プッシュされたコンテンツの受信を調節する。
【０００４】
[0004]  この摘要は、詳細な説明において以下で更に説明する概念から選択したものを、簡略化した形態で紹介するために設けられている。この摘要は、特許請求する主題の主要な特徴や必須の特徴を特定することを意図するのではなく、特許請求する主題の範囲を判定する際に補助として用いられることを意図するのでもない。
【図面の簡単な説明】
【０００５】
【図１】図１は、リモート・リソースにアクセスし、コンテンツ・プロバイダーからプッシュ・コンテンツを受信するコンピューティングデバイスを示すブロック図の一例である。
【図２】図２は、位置およびユーザー活動をプッシュ・コンテンツの配信と相関付けるコンピューター実行可能コンポーネントを格納するメモリー・エリアを有するコンピューティングデバイスを示すブロック図の一例である。
【図３】図３は、予測したネットワーク・イベントに基づいて、プッシュ・コンテンツの配信を修正するアプリケーション・プログラムを示すフロー・チャートの一例である。
【図４】図４は、現在のネットワーク・アクセス特性に基づいて、プッシュ・コンテンツの受信を調節するコンピューティングデバイスを示すフロー・チャートの一例である。
【０００６】
[0009]  図面全体を通じて、対応する参照符号は、対応する部分を示すこととする。
【発明を実施するための形態】
【０００７】
[0010]  これより図面を参照すると、本開示の実施形態は、コンピューティングデバイス１０２の位置およびコンピューティングデバイス１０２上におけるユーザー活動に基づいて、少なくともリソースの検索を適合させることを可能にする。移動体コンピューティングデバイスのようなコンピューティングデバイス１０２は場所を変えることができるために、コンピューティングデバイス１０２がネットワーク１０８にアクセスしてコンテンツを受信する能力に影響を及ぼすことが多い。本開示の態様は、場所およびコンピューティングデバイス１０２上におけるユーザー活動をネットワーク・アクセスと相関付けて、コンテンツの配信を管理する。例えば、コンピューティングデバイス１０２がアイドル状態にあり（例えば、ユーザーの対話処理が行われていない）、コンピューティングデバイス１０２の位置に基づいて、ネットワーク・アクセスが安定していると予測される場合、コンピューティングデバイス１０２は、コンテンツの配信を一括する(batch)かまたは延期して、電力消費を低減することができる。あるいは、コンピューティングデバイス１０２の位置に基づいて、コンピューティングデバイス１０２がネットワーク接続を失うと予測される場合、コンピューティングデバイス１０２はネットワーク接続を失う前に、コンテンツまたはその他のリソースの配信を先回りして要求する。したがって、本開示の実施形態は、コンピューティングデバイスの位置およびコンピューティングデバイス１０２の状態に、リソース検索を適合させる。
【０００８】
[0011]  再度図１を参照すると、ブロック図の一例が、リソースにアクセスするコンピューティングデバイス１０２を示す。コンピューティングデバイス１０２は、１つ又は複数のアプリケーション・プログラム１０３を有し、これらを実行すると、リソースにアクセスする。アプリケーション・プログラム１０３は、例えば、アプリケーション・プログラム＃１からアプリケーション・プログラム＃Nまでを含む。例えば、アプリケーション・プログラム１０３は、メッセージング・プログラム（例えば、電子メールまたはインスタント・メッセージング）、ナビゲーション・プログラム、近隣探索プログラム等を含む。図１の例では、リソースコンピューティングデバイス１０２から離れている（例えば、ネットワーク１０８のような１系統以上のネットワークによってアクセス可能である）。更に、図示するリソースの例には、コンテンツ・プロバイダー＃１からコンテンツ・プロバイダー＃Ｍのような１つ又は複数のコンテンツ・プロバイダー１０４、またはコンテンツを公開するその他のエンティティが含まれる。コンテンツ・プロバイダー１０４は、サーバー（例えば、フロント・エンド・サーバー）、またはネットワーク１０８を通じてデータをコンピューティングデバイス１０２に送信する他のコンピューティングデバイスを含む。実施形態の中には、コンテンツ・プロバイダー１０４および他のリモート・リソース１０６がネットワーク１０８の一部と見なされることもある。この例では、コンテンツ・プロバイダー１０４は、コンピューティングデバイス１０２上で実行しているアプリケーション・プログラム１０３にコンテンツをプッシュする。即ち、実施形態の中には、コンテンツ・プロバイダー１０４が送信毎にコンピューティングデバイス１０２からの明示的な要求がなくても、コンピューティングデバイス１０２へのコンテンツの送信を開始する場合もある。プッシュ・コンテンツには、例えば、新たなフィード、株式相場、電子メール、インスタント・メッセージング、ソーシャル・ネットワーキング・メッセージ等が含まれる。次いで、コンピューティングデバイス１０２は、プッシュ・コンテンツをコンピューティングデバイス１０２のユーザー１０１に提供する。また、コンピューティングデバイス１０２は、例えば、データベース、クラウド・ストレージ、またはピア・デバイスのような、他のリモート・リソース１０６にもアクセスすることができる。
【０００９】
[0012]  図示を明確にするために、図１の例には、１台のコンピューティングデバイス１０２が示されているが、複数のコンピューティングデバイス１０２も想定している。このような実施形態では、コンテンツ・プロバイダー１０４は、これら複数のコンピューティングデバイス１０２の内１つ又は複数にコンテンツをプッシュする。
【００１０】
[0013]  図１におけるコンピューティングデバイス１０２は、例えば、セルラ・ネットワークを通じてリソースと通信する移動体コンピューティングデバイスを表すことができる。コンピューティングデバイス１０２の他の例には、ラップトップ・コンピューター、ネットブック、ディジタル・カメラ、ディジタル・ビデオ・カメラ、ゲーミング・コンソール（ハンドヘルド・ゲーミング・コンソールを含む）、携帯用音楽プレーヤー、パーソナル・ディジタル・アシスタント、情報機器、パーソナル・コミュニケーター、およびユーザー１０１の他のあらゆるコンピューティングデバイス１０２が含まれるが、これらに限定されるのではない。実施形態の中には、コンピューティングデバイス１０２が、ユーザー１０１から離れているが、ユーザー１０１によってアクセス可能なコンピューティングデバイスを含むこともある。このようなコンピューティングデバイスには、例えば、サーバーコンピューティングデバイスおよびピアコンピューティングデバイスが含まれる。
【００１１】
[0014]  ネットワーク１０８は、有線ネットワークまたはワイヤレス・ネットワーク、あるいはセルラ・ネットワーク、イントラネット、インターネット、およびＢＬＵＥＴＯＯＴＨブランドのワイヤレス・ネットワークを含むがこれらに限定されないネットワークの組み合わせのいずれでも含む。
【００１２】
[0015]  次に、図２に記載されているように、実施形態の中には、コンピューティングデバイス１０２またはアプリケーション・プログラム１０３が、ユーザー活動、およびコンピューティングデバイス１０２のリソースにアクセスする能力に基づいて、プッシュ・コンテンツの受信または配信を調整または修正することがある。
【００１３】
[0016]  次に図２を参照すると、ブロック図の一例は、位置およびユーザー活動をプッシュ・コンテンツの配信と相関付けるコンピューター実行可能コンポーネントを格納するメモリー・エリア２０６を有するコンピューティングデバイス１０２を示す。コンピューティングデバイス１０２は、少なくともメモリー・エリア２０６およびプロセッサー２０４を含む。図２では、メモリー・エリア２０６はコンピューティングデバイス１０２の内部にある。しかしながら、メモリー・エリア２０６またはそこに格納されているデータのいずれも、コンピューティングデバイス１０２に対してローカルまたはリモートの、いずれのサーバーまたは他のコンピューティングデバイスとでも（例えば、ネットワークを通じてアクセス可能）関連付けることができる。例えば、メモリー・エリア２０６をクラウド・ストレージとして実現することもできる。
【００１４】
[0017]  メモリー・エリア２０６、または他のコンピューター読み取り可能媒体は、コンピューティングデバイス１０２についての位置情報２０８を格納する。例えば、位置情報２０８は、コンピューティングデバイス１０２にとって関心のある場所を特定および／または記述する。例えば、コンピューティングデバイス１０２が移動体コンピューティングデバイスである場合、位置情報２０８は、移動体コンピューティングデバイスの位置（例えば、汎地球測位システムからの）、陸標、名所、空港、およびネットワーク・アクセス・ポイントを含む。位置情報２０８は、例えば、位置情報検索枠組み、または位置情報２０８を提供するその他のシステムから得られる。位置情報２０８は、更新が入手可能なときに、移動体コンピューティングデバイスに提供される。例えば、移動体コンピューティングデバイスが場所を変えるにつれて（例えば、地理的に移動する）、更新された位置情報２０８を受信する。
【００１５】
[0018]  更に、メモリー・エリア２０６は、アプリケーション・プログラム１０３のリスト２１０も格納する。アプリケーション・プログラム１０３は、コンピューティングデバイス１０２によって実行すると、プッシュ・コンテンツを受信するか、またはそうでなければリモート・リソースにアクセスする。また、メモリー・エリア２０６は、本開示の態様を実現するためのコンピューター実行可能コンポーネントも格納する。コンポーネントの例には、インターフェース・コンポーネント２１２、状態コンポーネント２１４、接続コンポーネント２１６、および登録コンポーネント２１８が含まれる。
【００１６】
[0019]  インターフェース・コンポーネント２１２は、プロセッサー２０４によって実行すると、プロセッサー２０４に、コンピューティングデバイス１０２についての位置情報２０８を受信させる。位置情報２０８は、位置情報サービス・プロバイダーまたはその他のシステムから受信される。状態コンポーネント２１４は、プロセッサー２０４によって実行すると、プロセッサー２０４に、コンピューティングデバイス１０２とのユーザーの対話処理、活動、行動、またはパターンを監視または評価させる。実施形態では、２つの状態、アクティブおよびインアクティブがある。コンピューティングデバイス１０２がアクティブ状態にあるのは、ユーザー１０１がコンピューティングデバイス１０２と対話処理しているとき、コンピューティングデバイス１０２と最近対話処理したとき、またはそれ以外でコンピューティングデバイス１０２に注意を払っているときである。新鮮なコンテンツをコンピューティングデバイス１０２に配信することによって、ユーザー１０１が積極的にコンピューティングデバイス１０２を使用し配信されたコンテンツを消費する準備ができているときには、ユーザー体験が改善される。コンピューティングデバイス１０２がインアクティブ状態にあるのは、ユーザー１０１が現在コンピューティングデバイス１０２と対話処理していないとき、最近コンピューティングデバイス１０２と対話処理していないとき、またはそれ以外でコンピューティングデバイス１０２に注意を払っていないときである。インアクティブ状態はスリープ・モード、節電モード、またはその他のアイドル状態に対応することができる。状態コンポーネント２１４は、監視したユーザー活動に基づいて、アクティブ状態とインアクティブ状態との間でコンピューティングデバイス１０２を遷移させる。
【００１７】
[0020]  接続コンポーネント２１６は、プロセッサー２０４によって実行すると、プロセッサー２０４に、受信した位置情報２０８および監視したユーザー対話処理に基づいて、ネットワーク・アクセス・イベントを予測させる。ネットワーク・アクセス・イベントには、ネットワーク・アクセスのあらゆる変化、またはコンピューティングデバイス１０２がネットワーク１０８にアクセスする能力のあらゆる変化を含む。ネットワーク・アクセス・イベントの例には、ネットワーク・アクセスの逸失、ネットワーク・アクセス・ポイントの発見、帯域幅の変化、およびネットワーク・サービス・プロバイダーの変更が含まれる。コンピューティングデバイス１０２の位置に基づいて予測可能なネットワーク・アクセス・イベントの更に別の例には、ユーザー１０１が空港に入ろうとしていること（例えば、コンピューティングデバイス１０２が空港の場所にある）、トンネルに入ろうとしていること（例えば、トンネルが間近にある道路上にコンピューティングデバイス１０２がある）、またはエレベーターに入ろうとしていること（例えば、コンピューティングデバイス１０２が１列のエレベーターに近づきつつある）が含まれる。
【００１８】
[0021]  登録コンポーネント２１８は、プロセッサー２０４によって実行すると、プロセッサー２０４に、接続コンポーネント２１６によって予測されたネットワーク・アクセス・イベントを、アプリケーション・プログラム１０３の内の１つ又は複数に通知させる。実施形態の中には、登録コンポーネント２１８が、ネットワーク１０８を通じてリソースにアクセスすることが知られているアプリケーション・プログラム１０３に通知するとよい場合もある。例えば、ネットワーク１０８を用いてリソースにアクセスするアプリケーション・プログラム１０３が登録コンポーネント２１８に登録すること、またはコンピューティングデバイス１０２に、リソースにアクセスするためのネットワーク１０８の使用を知らせることができる。あるいはまたは加えて、コンピューティングデバイス１０２は、ネットワーク１０８へのアクセスを監視し、図２のメモリー・エリア２０６に格納されているアプリケーション・プログラム１０３のリスト２１０を作成／更新することもできる。
【００１９】
[0022]  他の実施形態では、登録コンポーネント２１８が、コンピューティングデバイス１０２上で実行しているアプリケーション・プログラム１０３の各々に通知することもある。ネットワーク１０８にアクセスしないアプリケーション・プログラム１０３はこの通知を無視するが、ネットワーク１０８にアクセスすることを予期するアプリケーション・プログラム１０３は、予測されたネットワーク・イベントに基づいて、動作を開始することができる。
【００２０】
[0023]  予測されたネットワーク・イベントに基づいて、アプリケーション・プログラム１０３はネットワーク１０８またはコンテンツ・プロバイダー１０４と通信して、プッシュ・コンテンツの受信を調節する。実施形態の中には、アプリケーション・プログラム１０３が、予測されたネットワーク・イベントに基づいて、プッシュ・コンテンツの配信を可能または不可能にするとよい場合がある。例えば、予測されたネットワーク・アクセス・イベントの発生前に、好機をねらってデータを予め取り込んでおくか、または予測されたネットワーク・アクセス・イベントの発生後まで、データ検索要求を延期する。例えば、コンピューティングデバイス１０２が間近に迫っている航空便の行き先を知っている場合、コンピューティングデバイス１０２は、搭乗前に、その行き先に関するリソースを、好機をねらって取り込んでおく。取り込まれたリソースは、夕食の案内、または行き先についての補助ＧＰＳデータを含むことができる。航空便の行き先は、ユーザー１０１によってコンピューティングデバイス１０２に伝達することができ、あるいは飛行場におけるコンピューティングデバイス１０２の場所（例えば、ゲート番号）を飛行場または航空会社の出発または予約システムと相関付けることによるというような種々の手段によって推論することもできる。
【００２１】
[0024]  実施形態の中には、ネットワーク・アクセス・イベントを予測することに加えて、接続コンポーネント２１６は、更に、予測されたネットワーク・アクセス・イベントの発生前および／または後に、コンピューティングデバイス１０２によるプッシュ・コンテンツの受信に伴うコストも判定する。このコストは、絶対的に、あるいは相対的に、定量的または定性的に定義することができる。このコストは、ネットワーク・コスト、動作コスト（例えば、コンピューティングデバイス１０２の動作）、またはその他の要因を反映することができる。例えば、接続コンポーネント２１６は、コンテンツを受信するコストが、ネットワーク・アクセス・イベント（例えば、ローミング・エリアに入る）の後に増加する、またはネットワーク・アクセス・イベント（例えば、ローミング・エリアを離れる）の後に減少すると判定することができる。本開示の態様では、判定されたコストが低いときに先回りしてコンテンツを受信または検索し（例えば、コンピューティングデバイス１０２がＷｉ−Ｆｉに接続されているとき）、一方判定されたコストが高いとき、コンテンツの受信を延期する（例えば、コンピューティングデバイス１０２がローミングしている、またはバッテリ・レベルが低いとき）。また、接続コンポーネント２１６は、コストを判定するときに、コンピューティングデバイス１０２上におけるユーザー活動のレベルに重み付けし、ネットワーク・アクセス・イベントの後動作性能が低下したかまたは改善したか調べることもできる。
【００２２】
[0025]  登録コンポーネント２１８は、アプリケーション・プログラム１０３に、予測したネットワーク・アクセス・イベント、および接続コンポーネント２１６によって判定されたコストの双方を通知する。実施形態の中には、接続コンポーネント２１６が判定コストを既定の閾値と比較する場合もある。判定コストが既定の閾値を超える場合（例えば、コストによって表される変化が重大である場合）、この判定コストをアプリケーション・プログラム１０３に伝えるが、このコストが既定の閾値未満である場合（例えば、コストによって表される変化が些細である場合）、アプリケーション・プログラム１０３に伝えるのを差し控える。
【００２３】
[0026]  先の例の説明では、接続コンポーネント２１６は、コストの判定とは別に、ネットワーク・アクセス・イベントを予測する。他の実施形態では、ネットワーク・アクセス・イベントは、少なくとも部分的に、判定されたコストによって予測される。例えば、判定されたコストが既定の閾値を超えると、ネットワーク・アクセス・イベントが誘起されるか、またはネットワーク・アクセス・イベントが明示される。
【００２４】
[0027]  予測されたネットワーク・アクセス・イベントおよび／または判定されたコストに応答して、アプリケーション・プログラム１０３はプッシュ・コンテンツの配信またはその他のリソース・アクセスを調節または修正する。これについては、図３および図４を参照して以下で更に詳しく説明する。
【００２５】
[0028]  プロセッサー２０４は、いずれの量の処理ユニットでも含み、本開示の態様を実現するためのコンピューター実行可能命令を実行するようにプログラミングされている。これらの命令は、プロセッサー２０４によってまたはコンピューティングデバイス１０２内で実行する多数のプロセッサーによって実行することができ、あるいはコンピューティングデバイス１０２の外部にあるプロセッサー（例えば、クラウド・サービス）によって実行することができる。実施形態の中には、プロセッサーが、図（例えば、図３および図４）に示すような命令を実行するようにプログラミングされている場合もある。
【００２６】
[0029]  次に図３を参照すると、フロー・チャートの一例は、予測されたネットワーク・イベントに基づいてプッシュ・コンテンツの配信を修正するアプリケーション・プログラム１０３を示す。図３および図４に示す動作は、実施形態では、コンピューティングデバイス１０２上で実行可能なコードによって行われることもある。他の実施形態では、これらの動作の内１つ又は複数が、コンピューティングデバイス１０２からはリモートなプロセッサー（例えば、クラウド・サービスの実施形態におけるようなプロセッサー）によって実行されるコードによって行われることもある。このような実施形態では、リモート・プロセッサーが、実行した動作の出力をコンピューティングデバイス１０２に送信し、コンピューティングデバイス１０２上で実行しているアプリケーション・プログラム１０３がプッシュ・コンテンツの受信を調節することを可能にする。
【００２７】
[0030]  ３０２において、プッシュ・コンテンツを受信したアプリケーション・プログラム１０３のリスト２１０を維持する。実施形態の中には、このリストの中でアプリケーション・プログラム１０３が整列されていない場合もある。他の実施形態では、アプリケーション・プログラム１０３に、例えば、ユーザー１０１によって優先順位が付けられていることもある。優先順位は、予測されたネットワーク・イベントに応答してリソースにアクセスするアプリケーション・プログラム１０３の能力に影響を及ぼすことができる。例えば、ネットワーク・アクセス・イベントの結果アクセスしにくくなった場合、優先順位が高いアプリケーション・プログラム１０３がアクセスを拒否される前に、優先順位が低いアプリケーション・プログラム１０３はアクセスを拒否される。
【００２８】
[0031]  ３０４において、コンピューティングデバイス１０２とのユーザーの対話処理を検出、評価、または監視する。例えば、いずれかのユーザー入力、およびこの入力の頻度を監視する。プロセッサーの負荷、またはコンピューティングデバイス１０２についての他のいずれの動作性能計量値も監視することができる。監視されたユーザー入力の量または頻度に基づいて、ユーザーの活動を分類すること、またはユーザーの活動にラベルを指定することができる。例えば、ユーザー１０１が最近コンピューティングデバイス１０２と対話処理していない（例えば、最後の３０分間）場合、ユーザー１０１またはコンピューティングデバイス１０２は「アイドル」であると見なされる。それ以外の場合、ユーザー１０１またはコンピューティングデバイス１０２は「アクティブ」であると見なされる。
【００２９】
[0032]  更に、検出されたユーザー１０１の動きまたは移動（例えば、アクティブ）に基づいて、あるいは検出された移動がなくなったこと（例えば、アイドル）に基づいて、ユーザーの対話処理を定めることもできる。例えば、ユーザー１０１がコンピューティングデバイス１０２を携行し、特定の方向に移動している可能性もある。
【００３０】
[0033]  ３０６において、ユーザーの対話処理、およびコンピューティングデバイス１０２についての位置情報２０８に基づいて、ネットワーク・アクセス・イベントを予測する。位置情報２０８は、コンピューティングデバイス１０２によって判定されるか、あるいは位置情報サービス・プロバイダーから受信または入手する。位置情報２０８は、汎地球測位システム（ＧＰＳ）、セルラ・タワー位置、ネットワーク・アクセス・ポイント、または他のあらゆる位置に詳しい情報提供業者からのデータを含むことができる。例えば、ネットワーク・アクセス・イベントは、以下の内１つ又は複数を含むことができる。即ち、予期されるネットワーク・アクセスの逸失、予期されるネットワーク１０８への接続の確立、およびネットワーク１０８に接続するためのパラメータの予期される修正を含むことができる。ネットワーク・アクセス・イベントは、例えば、セルラ・ネットワーク・タワーの位置、分かっているカバレッジ・エリアの位置（例えば、ワイヤレス・サービス・プロバイダーによって与えられる）、ユーザー指定の名所、または境界の位置、あるいは接続失敗が分かっているエリアによって予測される。
【００３１】
[0034]  また、ユーザー１０１の検出された動きまたは移動に基づいて、ネットワーク・アクセス・イベントを予測することもできる。位置情報２０８および検出された動きが与えられると、本開示の実施形態は、いつコンピューティングデバイス１０２が接続を失うか予測する（アプリケーション・プログラム１０３に、接続の逸失に先立ってコンテンツを検索するように促す）。あるいは、動きが検出されない場合、本開示の実施形態は、カバレッジが利用可能であり続けると予測する（アプリケーション・プログラム１０３に、ユーザー１０１がアプリケーションを実行するまでまたはコンピューティングデバイス１０２のディスプレイをオンにするまで、ネットワーク１０８にアクセスするのを遅らせるように促す。
【００３２】
[0035]  ３０８において、プッシュ・コンテンツを受信するために登録されているアプリケーション・プログラム１０３のリスト２１０の中にあるアプリケーション・プログラム１０３に、予測されたネットワーク・アクセス・イベントを通知する。例えば、アプリケーション・プログラム１０３には、この通知と時間値が与えられる。この時間値は、予測されたネットワーク・アクセス・イベントの発生前の時間量（例えば、分または秒単位）を表す。３１０において、予測されたネットワーク・アクセス・イベントを通知されたことに応答して、アプリケーション・プログラム１０３はネットワーク１０８と通信し（例えば、コンテンツ・プロバイダー１０４または他のリソース）、プッシュ・コンテンツの配信を修正する。例えば、アプリケーション・プログラム１０３は、予測されたネットワーク・アクセス・イベントが発生した場合、コンテンツ・プロバイダー１０４に、プッシュ・コンテンツの配信を延期するように命令することができ、または、予測されたネットワーク・アクセス・イベントが発生する前に、追加のコンテンツを要求することができる。あるいはまたは加えて、アプリケーション・プログラム１０３はこの通知に応答して、コンピューティングデバイス１０２に、アプリケーション・プログラム１０３の代わりに、今後受信するあらゆるプッシュ・コンテンツを断るまたは削除するように要請する。
【００３３】
[0036]  次に図４を参照すると、フロー・チャートの一例は、現在のネットワーク・アクセス特性に基づいて、プッシュ・コンテンツの受信を調節するコンピューティングデバイス１０２を示す。４０２において位置情報２０８を受信すると、４０４においてこの受信した位置情報２０８をメモリー・エリア２０６に格納する。実施形態の中には、コンピューティングデバイス１０２が継続的に位置情報２０８を位置情報サービス・プロバイダーまたは位置基準情報検索システムから受信する場合もある。他の実施形態（図示せず）では、コンピューティングデバイス１０２が位置情報２０８を位置情報サービス・プロバイダーから、要求時に検索する場合もある。位置情報２０８の例には、コンピューティングデバイス１０２の位置、陸標の位置、名所、飛行場の位置、ネットワーク・アクセス・ポイントの位置が含まれるが、これらに限定されるのではない。
【００３４】
[0037]  ４０６において、コンピューティングデバイス１０２についての位置情報２０８に少なくとも基づいて、ネットワーク・アクセス特性を判定する。ネットワーク・アクセス特性は、コンピューティングデバイス１０２、あるいはコンピューティングデバイス１０２に対してローカルまたはリモートの他のあらゆるデバイスまたはコンポーネントによっても決定される。ネットワーク・アクセス特性には、信号強度、接続タイプ、予期されるネットワーク・アクセスの逸失、予期されるネットワーク１０８への接続確立、またはネットワーク１０８に接続するためのパラメータの予期される修正が含まれるがこれらに限定されるのではない。他方において、ネットワーク・アクセス特性には、接続のあらゆる測定値、特性、ステータス、または記述子も含まれる。
【００３５】
[0038]  実施形態の中には、少なくとも部分的にクラウドから発せられる位置データから得られる位置情報２０８に基づいて（例えば、コンピューティングデバイス１２０によって）、ネットワーク・アクセス特性を判定する場合もある。クラウドから発せられる位置データは、他のユーザー１０１またはコンピューティングデバイス１０２のようなデバイス、あるいは位置情報サービス・プロバイダーから提出されたデータを含む。提出された位置データは、収集され、処理されて位置情報２０８になる。クラウドから発せられる位置データの例には、ユーザー１０１が移動体コンピューティングデバイスを用いて収集および提出したデータが含まれる。
【００３６】
[0039]  ４０８において、コンピューティングデバイス１０２上におけるユーザー活動を評価する。４１０において、評価したユーザー活動、および判定したネットワーク・アクセス特性に基づいて、プッシュ・コンテンツの受信を調節する。実施形態の中には、コンピューティングデバイス１０２が、プッシュ・コンテンツを受信するためにコンピューティングデバイス１０２上で実行するアプリケーション・プログラム１０３の各々に対して受信を調節する場合もある。例えば、コンピューティングデバイス１０２は、ネットワークまたはコンテンツ・プロバイダー１０４の１つ又は複数に要求を送ることによって、プッシュ・コンテンツの受信または配信を不可能にする。他の例では、コンピューティングデバイス１０２は、配信の頻度を減らすために、コンテンツの配信を延期する、一括処理する、または予定を組むように要求する。また、コンピューティングデバイス１０２は、プッシュ・コンテンツの受信または配信を今後再度可能にすること、あるいは配信スケジュールを再度調節することを要求することもできる。
動作環境の一例
[0040]  一例としてそして限定ではなく、コンピューター読み取り可能媒体には、コンピューター記憶媒体および通信媒体が含まれる。コンピューター記憶媒体は、コンピューター読み取り可能命令、データ構造、プログラム・モジュール、またはその他のデータというような、情報を格納する。通信媒体は、通例、コンピューター読み取り可能命令、データ構造、プログラム・モジュール、またはその他のデータを、搬送はまたはその他の伝達メカニズムというような変調データ信号の中に具体化し、あらゆる情報配信媒体を含む。以上の媒体であればいずれの組み合わせであっても、コンピューター読み取り可能媒体の範囲内に含まれる。
【００３７】
[0041]  計算システム環境の一例と関連付けて説明したが、本発明の実施形態は、多数のその他の汎用または特殊目的計算システム環境または構成とでも動作する。本発明の態様と共に用いるのに適していると思われる周知の計算システム、環境、および／または構成の例には、移動体コンピューティングデバイス、パーソナル・コンピューター、サーバー・コンピューター、ハンドヘルドまたはラップトップ・デバイス、マルチプロセッサー・システム、ゲーミング・コンソール、マイクロプロセッサーを主体とするシステム、セット・トップ・ボックス、プログラマブル消費者電子機器、移動体電話機、ネットワークＰＣ、ミニコンピューター、メインフレーム・コンピューター、以上のシステムまたはデバイスのいずれをも含む分散型計算環境等が含まれるが、これらに限定されるのではない。
【００３８】
[0042]  本発明の実施形態は、１つ又は複数のコンピューターまたはその他のデバイスによって実行する、プログラム・モジュールのような、コンピューター実行可能命令という一般的なコンテキストにおいて説明することができる。コンピューター実行可能命令は、１つ又は複数のコンピューター実行可能コンポーネントまたはモジュールに編成することができる。一般に、プログラム・モジュールは、ルーチン、プログラム、オブジェクト、コンポーネント、および特定のタスクを実行するまたは特定の抽象データ・タイプを実装するデータ構造を含むが、これらに限定されるのではない。本発明の態様は、このようなコンポーネントまたはモジュールであればいずれの数および編成でも実現することができる。例えば、本発明の態様は、図に示し本明細書において説明した特定のコンピューター実行可能命令や特定のコンポーネントまたはモジュールに限定されるのではない。本発明の他の実施形態には、本明細書において図示および説明した機能よりも多いまたは少ない機能を有する、異なるコンピューター実行可能命令またはコンポーネントを含むこともできる。
【００３９】
[0043]  本発明の態様は、本明細書に記載した命令を実行するように構成すると、汎用コンピューターを特殊目的コンピューティングデバイスに変換する。
[0044]   本明細書において図示し記載した本発明の実施形態、および本明細書において具体的に記載しなかったが本発明の態様の範囲に該当する実施形態は、移動体コンピューティングデバイスについての位置情報２０８、および移動体コンピューティングデバイスとのユーザーの対話処理に基づいてプッシュ・コンテンツの配信を修正する手段の一例、ならびに移動体コンピューティングデバイスについての位置情報２０８を、移動体コンピューティングデバイスがリモート・リソースにアクセスする能力と相関つける手段の一例を構成する。
【００４０】
[0045]  本明細書において図示し記載した本発明の実施形態における動作の実行(execution or performance)の順序は、特に指定されていない限り、必須ではない。即ち、特に指定されていない限り、動作はどのような順序で実行してもよく、本発明の実施形態は、本明細書において開示した動作よりも多い動作または少ない動作を含んでもよい。例えば、他の動作の前、同時、または後に特定の動作を実行する(executing or performing)ことも、本発明の態様の範囲内に該当すると考える。
【００４１】
[0046]  本発明またはその実施形態の態様のエレメントを持ち出すとき、冠詞「ａ」、「ａｎ」、「ｔｈｅ」、および「ｓａｉｄ」は、それらのエレメントが１つ又は複数あることを意味することを意図している。「備えている」(comprising)、「含む」(including)、および「有する」(having)という用語は、包含的であることを意図しており、列挙されたエレメントの他にも追加のエレメントがあってもよいことを意味する。
【００４２】
[0047]  以上、本発明の態様について詳細に説明したが、添付した特許請求の範囲において定義されている本発明の態様の範囲から逸脱することなく、修正や変形が可能であることは明白である。本発明の態様の範囲から逸脱することなく前述の構成、生成物、および方法において種々の変更が可能であることから、以上の説明に含まれ添付図面において示された全ての事項は、限定的な意味ではなく、例示的な意味で解釈されることを意図している。
【図１】
2013501269.tif 000003
【図２】
2013501269.tif 000004
【図３】
2013501269.tif 000005
【図４】
2013501269.tif 000006
【国際調査報告】
2013501269.tif 000007
2013501269.tif 000008