特許第6961649号(P6961649)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アマゾン テクノロジーズ インコーポレイテッドの特許一覧

特許6961649関連アプリケーションからデータを提供するコンテキストセンシティブ・フレームワーク
<>
  • 特許6961649-関連アプリケーションからデータを提供するコンテキストセンシティブ・フレームワーク 図000002
  • 特許6961649-関連アプリケーションからデータを提供するコンテキストセンシティブ・フレームワーク 図000003
  • 特許6961649-関連アプリケーションからデータを提供するコンテキストセンシティブ・フレームワーク 図000004
  • 特許6961649-関連アプリケーションからデータを提供するコンテキストセンシティブ・フレームワーク 図000005
  • 特許6961649-関連アプリケーションからデータを提供するコンテキストセンシティブ・フレームワーク 図000006
  • 特許6961649-関連アプリケーションからデータを提供するコンテキストセンシティブ・フレームワーク 図000007
  • 特許6961649-関連アプリケーションからデータを提供するコンテキストセンシティブ・フレームワーク 図000008
  • 特許6961649-関連アプリケーションからデータを提供するコンテキストセンシティブ・フレームワーク 図000009
  • 特許6961649-関連アプリケーションからデータを提供するコンテキストセンシティブ・フレームワーク 図000010
  • 特許6961649-関連アプリケーションからデータを提供するコンテキストセンシティブ・フレームワーク 図000011
  • 特許6961649-関連アプリケーションからデータを提供するコンテキストセンシティブ・フレームワーク 図000012
  • 特許6961649-関連アプリケーションからデータを提供するコンテキストセンシティブ・フレームワーク 図000013
  • 特許6961649-関連アプリケーションからデータを提供するコンテキストセンシティブ・フレームワーク 図000014
  • 特許6961649-関連アプリケーションからデータを提供するコンテキストセンシティブ・フレームワーク 図000015
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6961649
(24)【登録日】2021年10月15日
(45)【発行日】2021年11月5日
(54)【発明の名称】関連アプリケーションからデータを提供するコンテキストセンシティブ・フレームワーク
(51)【国際特許分類】
   G06F 9/445 20180101AFI20211025BHJP
   G06F 9/48 20060101ALI20211025BHJP
【FI】
   G06F9/445 130
   G06F9/48 370
【請求項の数】10
【外国語出願】
【全頁数】46
(21)【出願番号】特願2019-149103(P2019-149103)
(22)【出願日】2019年8月15日
(62)【分割の表示】特願2017-543740(P2017-543740)の分割
【原出願日】2016年2月17日
(65)【公開番号】特開2019-207734(P2019-207734A)
(43)【公開日】2019年12月5日
【審査請求日】2019年8月29日
(31)【優先権主張番号】14/623,913
(32)【優先日】2015年2月17日
(33)【優先権主張国】US
(31)【優先権主張番号】14/623,893
(32)【優先日】2015年2月17日
(33)【優先権主張国】US
(31)【優先権主張番号】14/623,875
(32)【優先日】2015年2月17日
(33)【優先権主張国】US
(31)【優先権主張番号】14/623,903
(32)【優先日】2015年2月17日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】506329306
【氏名又は名称】アマゾン テクノロジーズ インコーポレイテッド
(74)【代理人】
【識別番号】100114890
【弁理士】
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100098501
【弁理士】
【氏名又は名称】森田 拓
(74)【代理人】
【識別番号】100116403
【弁理士】
【氏名又は名称】前川 純一
(74)【代理人】
【識別番号】100135633
【弁理士】
【氏名又は名称】二宮 浩康
(74)【代理人】
【識別番号】100162880
【弁理士】
【氏名又は名称】上島 類
(74)【代理人】
【識別番号】100165940
【弁理士】
【氏名又は名称】大谷 令子
(72)【発明者】
【氏名】イーサン ゼイン エヴァンズ
【審査官】 多賀 実
(56)【参考文献】
【文献】 米国特許出願公開第2012/0042036(US,A1)
【文献】 特表2004−535000(JP,A)
【文献】 国際公開第2014/210078(WO,A1)
【文献】 国際公開第2014/093929(WO,A1)
【文献】 特表2013−542503(JP,A)
【文献】 特許第6575973(JP,B2)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/00−8/77
G06F 9/44−9/54
(57)【特許請求の範囲】
【請求項1】
コンピュータ実行可能命令が格納された非一時的コンピュータ可読記憶媒体であって、前記コンピュータ実行可能命令は、コンピュータによって実行されるとき、前記コンピュータに、
ユーザのコンピューティング装置の使用に関連付けられたコンテキストデータを受信するステップと、
コンテキストに関連する第1のアプリケーションを識別するステップと、
前記コンテキストデータを前記第1のアプリケーションに送信するステップと、
第1のアプリケーションデータを前記第1のアプリケーションから受信するステップであって、前記第1のアプリケーションは、前記コンテキストデータに少なくとも部分的に基づいて、前記第1のアプリケーションデータを提供するステップと、
前記第1のアプリケーションデータおよび前記コンテキストデータの少なくとも一部を第2のアプリケーションに送信するステップと、
第2のアプリケーションデータを前記第2のアプリケーションから受信するステップであって、前記第2のアプリケーションは、前記第1のアプリケーションデータおよび前記コンテキストデータに少なくとも部分的に基づくステップと、
前記第1のアプリケーションデータおよび前記第2のアプリケーションデータの1つまたは複数の少なくとも一部を前記ユーザのコンピューティング装置に提供するステップと、
を実行させる非一時的コンピュータ可読記憶媒体。
【請求項2】
前記命令は、さらに、前記コンピュータに、前記第2のアプリケーションがコンテクスチュアル・サービスに登録され、前記第1のアプリケーションからデータを受信することを決定するステップを実行させる、
請求項1に記載の非一時的コンピュータ可読記憶媒体。
【請求項3】
前記第1のアプリケーションおよび前記第2のアプリケーションは、アプリケーション・プログラミング・インタフェース(API)を利用して、コンテクスチュアル・サービスに登録し、
前記第1のアプリケーションまたは前記第2のアプリケーションの1つまたは複数は、イベントを前記コンテクスチュアル・サービスに登録する、
請求項1に記載の非一時的コンピュータ可読記憶媒体。
【請求項4】
前記APIは、前記第1のアプリケーションが前記第2のアプリケーションと通信するための機能および前記第2のアプリケーションが前記第1のアプリケーションと通信するための機能を提供する、
請求項3に記載の非一時的コンピュータ可読記憶媒体。
【請求項5】
前記コンテキストデータは、前記ユーザのコンピューティング装置の位置および前記ユーザのコンピューティング装置の現在の活動を識別する、
請求項1に記載の非一時的コンピュータ可読記憶媒体。
【請求項6】
システムであって、
体データを含むセンサデータを提供するように動作する1つまたは複数のセンサと、
1つまたは複数のコンピューティング装置と、
を含み、
前記1つまたは複数のコンピューティング装置は、
前記センサから前記センサデータを要求するステップと、
前記センサデータに少なくとも部分的に基づいて、コンテキストデータを作成するステップと、
前記コンテキストデータをネットワークベースのコンテクスチュアル・サービスに送信するステップと、
前記コンテクスチュアル・サービスから、コンテキストに関連していると前記コンテクスチュアル・サービスに判定されたアプリケーションの識別を受信するステップと、
前記アプリケーションのうちの1つ以上を起動させるステップと、
前記1つまたは複数のアプリケーションからアプリケーションデータを取得するステップであって、前記アプリケーションデータは、前記コンテキストデータに少なくとも部分的に基づいて、前記1つまたは複数のアプリケーションよって提供されるステップと、
行動を実行するため前記アプリケーションデータの少なくとも一部を提供するステップと、
を行うように動作する、
システム。
【請求項7】
前記1つまたは複数の前記アプリケーションを起動させるステップは、サービス・プロバイダーネットワーク内で前記1つまたは複数のアプリケーションを実行させるステップを含む、
請求項6に記載のシステム。
【請求項8】
前記行動を実行するステップは、前記アプリケーションデータの前記少なくとも前記一部をディスプレイ上に提示するステップ、または、前記アプリケーションデータの前記少なくとも前記一部を使用してコンピューティング装置の操作を変更するステップのうちの1つ以上を含む、
請求項6に記載のシステム。
【請求項9】
前記1つまたは複数のコンピューティング装置は、さらに、
前記センサデータにおける変化に応答して更新されたコンテキストデータを作成するために前記コンテキストデータを更新するステップと、
前記更新されたコンテキストデータを前記コンテクスチュアル・サービスに送信するステップと、
を行うように動作する、
請求項6に記載のシステム。
【請求項10】
前記アプリケーションは、アプリケーションプログラミングインターフェース(API)を利用して、前記コンテクスチュアル・サービスと通信する、
請求項6に記載のシステム。
【発明の詳細な説明】
【背景技術】
【0001】
今日では、モバイルコンピューティング装置のユーザが利用できるソフトウェアアプリケーションが多数存在する。例えば、いくつかの電子マーケットは、100万個以上の異なるアプリケーションを含む。これらのアプリケーションの多くは、無料または従来のデスクトップソフトウェアアプリケーションに比べて低コストで利用できる。ユーザは、電子マーケットにワイヤレスで接続し、利用できるアプリケーションをブラウズし、選択したアプリケーションをダウンロードすることにより、アプリケーションを取得することができる。
【0002】
しかしながら、100万個もの利用可能なアプリケーションの中からアプリケーションを見つけようとするのは、ユーザにとって困難な場合がある。例えば、同一または同様の機能を提供する何百もの利用できるアプリケーションがあり得るため、ユーザが、ダウンロードする特定のアプリケーションを決めるのに難しい場合がある。ユーザは、どのようなアプリケーションを取得するかを決めるときの助けとして顧客評価を見るかもしれない。ユーザはまた、アプリケーションをダウンロードして試してみるかもしれない。例えば、自分のモバイルコンピューティング装置に何百ものアプリケーションをダウンロードするユーザもいる。しかしながら、モバイルコンピューティング装置上にアプリケーションをインストールしても、アプリケーションが使用可能であることをユーザが常に覚えているとは限らない。その上、アプリケーションをインストールした後は、ユーザはさらに、アプリケーションを使用したいとき、自分のデバイス上のアプリケーションを見つけて起動しなければならない場合がある。
【発明の概要】
【課題を解決するための手段】
【0003】
これらおよびその他の考慮事項に関して、ここになされた本開示は提示される。
【図面の簡単な説明】
【0004】
図1】現在のコンテキストに関連するアプリケーションがユーザにデータを提供する例示的な動作環境を描写するブロック図である。
図2】異なるアプリケーションから受信したアプリケーションデータを表示する例示的なグラフィカル・ユーザー・インタフェース(「GUI」)を示す画面図である。
図3】通信のためコンテクスチュアル・サービスを使用するアプリケーションを図示する系統図である。
図4】ユーザの現在のコンテキストに応じて機能を実行するためのアプリケーションを識別して利用することを示す系統図である。
図5】コンテキストセンシティブ・フレームワークの中での、1つ以上のアプリケーションの使用に関係する分析を表示する例示的なGUIを示す画面図である。
図6】アプリケーションを選択し、ユーザに関連付けられたコンテキストを用いて選択したアプリケーションから受信したデータを整理する本明細書に開示されたメカニズムの態様を説明するルーチンを示すフロー図である。
図7】アプリケーションをコンテクスチュアル・サービスに登録するための本明細書に開示されたメカニズムの態様を説明するルーチンを示すフロー図である。
図8】ユーザに関連付けられたコンピューティング装置上では現在利用できないアプリケーションにアクセスを提供するための本明細書に開示されたメカニズムの態様を説明するルーチンを示すフロー図である。
図9】ユーザに関連付けられたコンピューティング装置上では利用できないアプリケーションにアクセスを提供するための本明細書に開示されたメカニズムの態様を説明するルーチンを示すフロー図である。
図10】コンテクスチュアル・サービスを用いてアプリケーションが互いに通信するための本明細書に開示されたメカニズムの態様を説明するルーチンを示すフロー図である。
図11】ユーザに関連付けられたコンピューティング装置に提供するアプリケーションデータを選択するための本明細書に開示されたメカニズムの態様を説明するルーチンを示すフロー図である。
図12】本明細書に開示されたサービス・プロバイダーネットワークを含む実施例のための1つの例示的な動作環境を示すシステムおよびネットワーク図である。
図13】本明細書において開示された、現在のコンテキストに関連するアプリケーションがユーザにデータを提供する概念および技術の一部または全てを含む、サービス・プロバイダーネットワークの態様を実装するデータセンターのための1つの構成を説明するコンピューティング・システム図である。
図14】本明細書において提示されたさまざまな実施例の態様を実施するために利用され得るコンピューティング装置を実装する1つの例示的なコンピュータハードウェアアーキテクチャを示すコンピュータアーキテクチャ図である。
【発明を実施するための形態】
【0005】
以下の詳細な説明は、現在のコンテキストに対して、エンドユーザ向けプログラムまたはオペレーティング・システムソフトウェアなどの関連アプリケーションを識別し、関連アプリケーションから受信したデータを提供するコンテキストセンシティブ・フレームワークを使用する技術を対象とする。例えば、データはユーザに表示のため、および/または別のアプリケーションまたはコンピューティング装置に他の何らかの使用目的で提供され得る(例えば、現在のコンテキストを使用して機能を実行する)。本明細書に開示された技術の実装を介して、ユーザはアプリケーションを手動で見つけて起動する必要はなく、代わりに、関連アプリケーションデータは、ユーザの現在のコンテキストを識別するコンテキストデータの受信に応答して提供されて得る。本明細書において使用される場合、「コンテキスト」という用語は、特定の事象または状況の周りの背景、環境、フレームワーク、設定または状況を指し得る。一般的に言えば、「アプリケーション」という用語は、プログラム命令のいかなる組み合わせまたは何らかのタスクまたは動作を実行するためにプロセッサが読みこむデータを指し得る。いくつかの実施例では、アプリケーションは、システムソフトウェア(例えば、オペレーティング・システム)の一部でも良いし、またはアプリケーションソフトウェア(例えば、エンドユーザ向けプログラム)でも良い。コンテキストデータは、位置データ、移動データ、活動データ、ユーザデータ、時間データなどを含み得る。コンテキストデータのいくつかは、コンピューティング装置に関連付けられたセンサから決定され得る。例えば、コンピューティング装置のセンサは、コンピューティング装置の速度、コンピューティング装置の位置、気象条件、照明状態、ユーザの近くの音、ユーザ(またはだれか別の人)の顔表情などを決定するのに使用されて良い。コンテキストデータは、現在の活動に関連するデータを含み得る。例えば、現在の活動は、コンピューティング装置上で検索を実行しているユーザ、車を運転しているユーザ、特定のウェブサイトにアクセスしているユーザ、レストランに入っていくユーザ、などに関連し得る。
【0006】
コンテクスチュアル・サービスは、コンテキストデータを使用してコンテキストに関連しているアプリケーションを識別する。本明細書において使用される場合、「関連した」という用語は、データおよび/または現在のコンテキストに適用できる機能を提供するアプリケーションを指し得る。アプリケーションは、登録データを使用して特定のコンテキストに関連していると決定され得る。いくつかの構成において、アプリケーションおよび/またはコンピューティング装置は、コンテクスチュアル・サービスに登録して、通知を受信する、またはコンテクスチュアル・サービスが指定されたコンテキストデータを受信したことに応答して起動する。いくつかの構成では、アプリケーションまたはコンピューティング装置は登録なしで、コンテキストデータを受信して良い。コンテキストデータの使用の一例として、フィットネスアプリケーションは、コンテキストデータが、ユーザが歩行中またはジョギング中であると示すときに起動されても良い。全地球測位システム(「GPS」)アプリケーションは、コンテキストデータが、ユーザが移動中(例えば、運転中)であると示すとき、または、ユーザがGPSを利用するかもしれない位置(例えば、ゴルフ場)にいるときに起動されても良い。同様に、レンタカーアプリケーションは、コンテキストデータが、ユーザが空港にいる、飛行機予約をしている、またはレンタカーの検索を実行していると示すとき、起動されても良い。他の実施例では、コンピューティング装置は、コンテキストデータの受信に応答して、起動されても良い、および/または何らかのアクションを実行するように構成されても良い。例えば、サーモスタットは、ユーザが帰宅途中であると示すコンテキストデータの受信に応答して温度設定を変更するように構成されても良い。他の非網羅的な実施例として、コンテキストデータは、以下についての任意の情報を含むことができる:位置(例えばGPS、Bluetooth(登録商標)、Bluetooth LE、 RF、または他のいかなる適用可能な位置センサなどから得られる位置)、時間、日付、どのようなアプリケーションをユーザは使用しているか、特定のアプリケーション上でユーザはどのような機能を使用しているか、物理的環境(例えば温度、高度、湿度、生体圧力など)、デバイスの方向、関連データを有する他の装置の近接度(例えばビーコンまたは適切な装置を有する友人など)、他のユーザとの近接度、生体データ(例えば脈拍、心拍変動、血液酸素化、体温、血糖値、睡眠、ユーザが何を見ているか)など。
【0007】
起動に応答して、起動したアプリケーションは、コンテキストに関連する提供すべきデータを決定する。言い換えれば、アプリケーションは、ユーザに関連付けられたコンテキストデータを使用して、現在のコンテキストについて個人化されたアプリケーションデータを決定して提供する。したがって、ユーザがどのアプリケーションを利用するかを決める必要がなく、コンテキストセンシティブ・フレームワークがユーザの現在のコンテキストを使用して、どのアプリケーションを利用するかを決定する。このように、ユーザは特にアプリケーションを見つけて起動する必要がない。いくつかの実施例では、コンテキストセンシティブ・フレームワークは、1つより多いアプリケーションからアプリケーションデータを受信し、アプリケーションデータを集約し、使用のためアプリケーションデータを提供する。例えば、選択したアプリケーションデータは、ユーザインタフェースにおいて提示されても良い。例えば、コンテキストセンシティブ・フレームワークは、異なるアプリケーションによって提供されるデータ用の共通のユーザインタフェースを提供して良い。このようにして、一貫した方法で異なるアプリケーションからのデータがユーザに提示される。加えて、この共通のユーザインタフェースは、オペレーティング・システムの一部として提供されても良い。これにより、オペレーティング・システムのインタフェースはコンテキストデータの変さらに伴って変化することができる。
【0008】
コンテクスチュアル・サービスもまた、異なるアプリケーションによって提供されるデータのどれを提供するかについて決定をして良い。例えば、コンテクスチュアル・サービスは、異なるアプリケーションによって提供される、重複する(例えば、同一である、または類似している)データを重複排除して良い。コンテクスチュアル・サービスもまた、ユーザの現在のコンテキストに基づいてデータを除外して良い。
【0009】
ユーザまたはコンピューティング装置のコンテキストもまた、更新されても良い。例えば、コンピューティング装置は、コンテキストデータをさらに提供する、またはコンテクスチュアル・サービスに対してコンテキストデータを更新するため、コンテクスチュアル・サービスに定期的に接続して良い。ユーザまたはコンピューティング装置のコンテキストの変さらに伴い、前に関連していると判定されたアプリケーションは変化し得る。例えば、あるコンテストに関連していたアプリケーションは、更新されたコンテキストでは関連しない場合がある。したがって、コンテクスチュアル・サービスは、コンテキストにおける変さらに応じて、関連していると判定されるアプリケーションを更新して良い。
【0010】
他の実施例では、コンテキストセンシティブ・フレームワークは、現在のコンテキストに関連する異なるアプリケーションの選択をユーザに提示して良い。例えば、コンテキストセンシティブ・フレームワークは、現在のコンテキストに応じて起動するように登録されたアプリケーションをユーザに提示して良い。ユーザからアプリケーションの選択を受信した後(例えば、共通UIを介して)、コンテキストセンシティブ・フレームワークは、そのユーザのためにアプリケーションを起動して良い。いくつかの実施例では、コンテキストに関連しているアプリケーションを選択するとき、コンテクスチュアル・サービスは時間的なデータも使用して良い。例えば、ユーザがつい先頃食事をしたと判断したときは、コンテクスチュアル・サービスは、ある一定期間はレストランに関するアプリケーションを利用しない場合がある。
【0011】
他の実施例では、ユーザによって利用されているコンピューティング装置上にアプリケーションがインストールされていないとき、コンテキストセンシティブ・フレームワークは、アプリケーションをコンピューティング装置上にインストールさせても良いし、または、例えばサービス・プロバイダーネットワークの中において、アプリケーションをリモートで実行して良い。いくつかの実施例では、ユーザのコンピューティング装置上にアプリケーションをインストールするかどうかの決定は、ユーザが頻繁にそのアプリケーションを使用するかどうかに基づいてなされて良い。いくつかの例では、アプリケーションはコンピューティング装置にダウンロードされ、コンピューティング装置上にインストールされ、次いで、いくらか時間が経過した後、自動的に削除されても良い。例えば、コンピューティング装置上にインストールされたアプリケーションは、コンテキストが変化したおよび/またはアプリケーションをダウンロードした目的の事象が終了した後に、自動的に削除されても良い。
【0012】
簡潔に説明したように、コンテキストセンシティブ・フレームワークは、アプリケーションとコンテキストセンシティブ・フレームワークとの間で双方向通信を提供する。いくつかの構成によれば、コンテキストセンシティブ・フレームワークにより、2つ以上のアプリケーションが互いに通信することができる。例えば、アプリケーションは、その他のアプリケーションが受信のため登録し得るコンテクスチュアル・サービスのアプリケーションプログラミングインターフェース(「API」)を使用して、カスタムイベントを定義して良い。アプリケーションは、カスタムイベントを使用して、他の関心のあるアプリケーションへデータを送信して良い。例えば、旅行アプリケーションは、ユーザに旅行の詳細を提供するカスタムイベントを定義して良い。この情報は、アプリケーションによって提供されるデータが現在のコンテキストにより適用可能となるように、アプリケーションによって受信されたコンテキストデータを更新するのに使用されて良い。
【0013】
いくつかの実施例では、モバイルコンピューティング装置は、ユーザのコンテキストを監視し、コンテキストデータをコンテクスチュアル・サービスに提供するように構成される。場合によっては、モバイルコンピューティング装置およびコンテクスチュアル・サービスの一部であるリモートコンピューティング装置の間でネットワーク接続が確立されるとき、コンテキストデータは、コンテクスチュアル・サービスに提供される。定期的に、またはコンテキストにおける変更または他の何らかのトリガーに応答して、ユーザ用のコンテキストデータがコンテクスチュアル・サービスに提供される。コンテクスチュアル・サービスは、コンピューティング装置上で実装されても良い、および/またはあるコンピュータまたはリモート・コンピュータによって提供されるサービスの中で実装されても良い。いくつかの実施例では、コンテクスチュアル・サービスは、ネットワークベースのサービスにより提供される(例えば、サービス・プロバイダーネットワーク)。
【0014】
ソフトウェア開発者は、アプリケーションをコンテクスチュアル・サービスに接続する機能を指定するAPIを含み得るソフトウェア開発者ツールキット(「SDK」)またはソフトウェア開発者がアプリケーションを開発するのに使用され得る他のツールを使用してアプリケーションを開発して良い。例えば、コンテクスチュアル・サービスAPIは、1つ以上のコンテキストに応じて起動または通知されるように登録するためにアプリケーションによって使用されて良い。アプリケーションもまた、APIを利用して、1つ以上のカスタムイベントを定義し、メッセージを別のアプリケーションに送信し、コンテキストデータをコンピューティング装置から受信するよう要求するなどして良い。SDKおよび/またはAPIは、オペレーティング・システムおよび/または他の何らかのアプリケーションの操作を変更するためにも利用されて良い。例えば、オペレーティング・システムの一部は、特定のコンテキストデータまたはアプリケーションデータを受信したことに応答して、APIを利用して、オペレーティング・システムの別の部分と通信し得る。
【0015】
コンテクスチュアル・サービスによるアプリケーションの使用に関するアナリティクスもまた、アプリケーションのソフトウェア開発者などの認定ユーザに提供されても良い。例えば、アナリティクスは、グラフィカル・ユーザー・インタフェース(「GUI」)に表示されても良いし、使用状況データ(例えば、平均使用率)、利益データ(例えば、購入、使用コスト)、アプリケーション内で利用される機能などの情報を含んで良いがこれらに限らない。ユーザはアナリティクスを見て、コンテキストセンシティブ・フレームワークの中でどのようにアプリケーションが利用されているかを判定することができる。
【0016】
いくつかの構成によれば、コンテクスチュアル・サービスは、コンテクスチュアル・サービスによって提供される推奨事項および/またはデータを改善するのに使用され得るデータを収集し保存して良い。収集し保存され得るデータは、異なるユーザおよび/またはコンピューティング装置から受信するコンテキストデータ、さまざまなアプリケーションから受信したアプリケーションデータ、およびコンテクスチュアル・サービスのユーザに関連付けられた使用状況データを含んで良い。例えば、使用状況データは、ユーザはどのようなアプリケーションを選択したか、ユーザはどのようなアプリケーションを利用しているか、ならびに、ユーザは異なるコンテキストに対してアプリケーションの機能をどのように利用しているか、を含んで良い。いくつかの実施例では、コンテクスチュアル・サービスは、機械学習メカニズムを使用して、コンテクスチュアル・サービスによって提供される推奨事項を改善して良い。例えば、コンテクスチュアル・サービスがより多くのデータを受信して時間経過するにつれ、コンテクスチュアル・サービスによって提供されるデータは、受信したコンテクスチュアル・サービスのユーザに関連付けられた実際の使用状況データに基づいて変化して良い。機械学習メカニズムは追加データを受信したことに応答して精緻化されても良い。コンテキストに基づいてアプリケーションを選択し利用するために上述のさまざまな構成要素およびプロセスに関する追加詳細は、図1〜14に関して以下に提示される。
【0017】
本明細書において提示される主題事項は、コンピュータ処理、コンピュータ制御の装置、コンピューティング・システム、またはコンピュータ可読記憶媒体などの製造品として実装されても良いことを理解すべきである。本明細書に記載される主題事項は、1つ以上のコンピューティング装置上で実行されるプログラムモジュールの一般的なコンテキストにおいて提示されるが、当業者は、他の実装では他の種類のプログラムモジュールと組み合わせて実行されても良いことを認めるであろう。概して、プログラムモジュールは、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、構成要素、データ構造および他の種類の構造を含む。
【0018】
当業者は、本明細書に記載されている主題事項の態様は、マルチプロセッサ・システム、マイクロプロセッサ・ベースまたはプログラム可能家電、ミニコンピュータ、メインフレーム・コンピュータ、ハンドヘルド・コンピュータ、携帯情報端末(PDA)、電子書籍リーダ、携帯電話装置、タブレットコンピューティング装置、特殊用途ハードウェア・デバイス、ネットワークアプライアンス等、を含む本明細書に記載されたものの域を越えて、他のコンピュータ・システム構成上またはこれに連動して実施されても良い。簡潔に上述したように、本明細書に記載された実施例は、通信網にリンクされているリモートコンピューティング装置によってタスクが実行され得る分散コンピューティング環境において実施されても良いことも理解するであろう。分散コンピューティング環境では、プログラムモジュールは、ローカルとリモートの両方のメモリ記憶装置に設置されても良い。
【0019】
以下の詳細な説明では、本発明の一部を構成し、実例として具体的な実施例を示す添付の図面を参照する。図面は正確な縮尺率ではない。いつくかの図面(本明細書では「図」と称される場合がある)にわたって、同類の数字は同類の要素を表す。
【0020】
ここで図1を参照すると、本明細書において提示されるさまざまな実施例に従って現在のコンテキストに関連するアプリケーションがユーザにデータを提供する動作環境100が図示されている。図1に示す動作環境100は、コンピューティング装置102A〜102B、コンテクスチュアル・サービス104、アプリケーション・サービス106、およびアプリケーション実行サービス108を含む。
【0021】
いくつかの構成によれば、「コンピューティング装置102」と称されるコンピューティング装置102A〜102Bは各々、タブレットコンピューティング装置、スマートフォン、パーソナルコンピュータ(「PC」)、デスクトップ・コンピュータ、ラップトップコンピュータ、ノートパソコン、他のモバイルコンピューティング装置、ビデオゲームシステム、セットトップボックス、スマートテレビ等として構成されても良い。他の実施例によると、コンピューティング装置102の機能の少なくとも一部は、アプリケーション・サービス106、アプリケーション実行サービス108、またはサービス・プロバイダーネットワーク110によって提供される(図12に図示されるサービス・プロバイダーネットワーク110を参照)。
【0022】
コンテクスチュアル・サービス104、アプリケーション・サービス106、アプリケーション実行サービス108またはサービス・プロバイダーネットワーク110は、異なるサービスの機能を提供するため、1つ以上のアプリケーションサーバ、Webサーバ、データストレージシステム、ネットワークアプライアンス、専用ハードウェア・デバイス、および/または他のサーバコンピュータまたはコンピューティング装置を含んで良い。これらの実施例では、コンピューティング装置102は、ネットワークを介してネットワークベースのコンピューティングプラットフォーム(図示せず)に接続するための最小限のハードウェアを含むことができる。コンピューティング装置102は、ネットワークを介して通信し、本明細書に記載されたさまざまなサービスまたはコンピューティングリソースにアクセスして良い。例えば、コンピューティング装置102は、コンテクスチュアル・サービス104、アプリケーション・サービス106および/またはアプリケーション実行サービス108にアクセスできる。コンテクスチュアル・サービス104、アプリケーション・サービス106、およびアプリケーション実行サービス108の操作に関するさらなる詳細が以下に提供される。
【0023】
コンピューティング装置102Aは、オペレーティング・システム112、アプリケーション114、コンテクスチュアル・サービスAPI116、ならびに他のアプリケーションプログラムまたは構成要素を実行するように構成することができる。アプリケーション114は、ウェブブラウザ・アプリケーション、生産性アプリケーション(例えば、ワープロ、スプレッドシート、および/またはプレゼンテーションアプリケーション)、旅行アプリケーション、フィットネスアプリケーション、レストランアプリケーション、ソーシャルネットワークアプリケーション、または他のいかなるアプリケーションも含んで良い。いくつかの実施例では、1つ以上のアプリケーション114は、コンテクスチュアル・サービスAPI116を利用するように構成されても良い。いくつかの構成によれば、アプリケーションは、オペレーティング・システム112および/または何らかのその他のコンポーネントの一部でも良い。コンピューティング装置102Bは、コンピューティング装置102Aと同じようには詳細には図示されていないが、コンピューティング装置102Bならびに他のコンピューティング装置は、同一に構成されても良いし、コンピューティング装置102Aのために説明されているものより、より多くのまたはより少ないアプリケーションプログラムおよび/または構成要素を有しても良いと理解されるべきである。
【0024】
アプリケーション・サービス106は、コンテクスチュアル・サービス104のためのサポートを提供するように構成されても良い。例えば、以下でより詳細に述べるように、コンテクスチュアル・サービス104は、アプリケーション・サービス106を利用して、ユーザ(例えば、ユーザ120Aまたは120B)に関連付けられた現在のコンテキストに関する1つ以上のアプリケーション114を取得して良い。
【0025】
アプリケーション114への入力は、コンピューティング装置102Aに接続されているか、そうでなければ、コンピューティング装置102Aと通信している1つ以上の入力装置を介して提供されても良い。アプリケーション114への入力は、例えばナビゲートメニューなどのアプリケーション114の外観を制御するために使用できる。コンピューティング装置102Aはまた、1つ以上のアプリケーション114によって提供されるビジュアルコンテンツを、コンピューティング装置102Aに内蔵されているか外付けされていてコンピューティング装置102Aと通信する、例えばディスプレイ122Aなどの1つ以上の表示装置に提示するように構成されても良い。
【0026】
ディスプレイ122Aは、視覚的な形式で情報を提示するように構成された出力装置である。具体的には、ディスプレイ122Aは、コンテクスチュアル・サービス104、クライアント・コンテキストマネージャ124B、アプリケーション114などによって提供されるビジュアルコンテンツを提示して良い。ビジュアルコンテンツは、GUIエレメント、テキスト、画像、ビデオ、通知、仮想ボタン、仮想キーボード、メッセージングデータ、インターネットのコンテンツ、デバイスのステータス、時間、日付、カレンダーデータ、環境設定、地図情報、位置情報、および、視覚的な形式で提示することができる他のいかなる情報をも含んで良い。いくつかの実施例では、ディスプレイ122Aは、いかなる能動的または受動的なマトリクス技術およびいかなるバックライト技術(使用されるのであれば)を利用する液晶表示(「LCD」)である。他の実施例では、ディスプレイ122Aは、有機発光ダイオード(「OLED」)ディスプレイでも良い。その他のディスプレイタイプは想定される。なお、ディスプレイ122Aは、例えばタッチスクリーンまたはマルチタッチ可能なタッチスクリーンなどの入力装置を含むことができる。
【0027】
アプリケーション114の全てまたは一部においては、コンテクスチュアル・サービス104、アプリケーション・サービス106および/またはアプリケーション実行サービス108と対話するためのコンテクスチュアル・サービスAPI116を利用して良い。上述のように、アプリケーション114は、1つ以上の機能を提供するいかなる命令またはデータであって良い。アプリケーション114は、コンテクスチュアル・サービスAPI116によって公開された1つ以上のメソッドを呼び出して、コンテクスチュアル・サービス104にアクセスし、コンテクスチュアル・サービス104によって提供される1つ以上の機能を利用するように構成されても良い。アプリケーション114はまた、コンテクスチュアル・サービスAPI116によって公開された1つ以上のメソッドを呼び出して、アプリケーション・サービス106またはアプリケーション実行サービス108にアクセスするように構成することもできる。例えば、コンテクスチュアル・サービスAPI116は、通知を受信するため登録し、場合によってはユーザの現在のコンテキスト120Aに応じて起動するように、1つ以上のアプリケーション114によって使用されて良い。コンテクスチュアル・サービスAPI116はまた、別のアプリケーション114にデータを送信する、現在のコンテキストに関連するデータを要求する、などのために使用されて良い。
【0028】
ユーザ120Aは、コンピューティング装置102Aを使用して、コンテクスチュアル・サービス104と対話して良い。いくつかの実施例では、ディスプレイ122A上に表示されるUI130Aは、は、コンテクスチュアル・サービス104を見て対話するため使用されて良い。
【0029】
説明したように、コンテクスチュアル・サービス104は、1つ以上のセッションを管理するコンテキストマネージャ124Aを含む。セッション中に、コンピューティング装置102Aなどのコンピューティング装置は、コンテクスチュアル・サービス104と対話する。コンテクスチュアル・サービス104は、さまざまなコンピューティング装置102を利用している1人または複数のユーザが、コンテクスチュアル・サービス104、アプリケーション・サービス106、アプリケーション実行サービス108と、および場合によってはそれらが互いにデータを共有できるように、いかなる数のコンピューティング装置102への接続をサポートして良い。したがって、説明した実施例は例示的なものに過ぎず、いかなる形においても制限するものとして解釈されるべきではない。
【0030】
図1に図示された現実施例において、コンテクスチュアル・サービス104を含むコンテキストセンシティブ・フレームワークは、ユーザ(例えば、ユーザ120Aまたは120B)の現在のコンテキストに関連するアプリケーション114を識別し、関連アプリケーション114から受信したアプリケーションデータ118をユーザに提供する。簡潔に上述のように、ユーザは、アプリケーション114を手動で見つけて起動する必要がなく、代わりに、ユーザの現在のコンテキストに対する関連アプリケーション114は、ユーザの現在のコンテキストに関するアプリケーションデータ118を提供することができる。
【0031】
ユーザの現在のコンテキストを決定するため、クライアント・コンテキストマネージャ124は、コンピューティング装置102Aの1つ以上のセンサ126を利用して良い。センサ126は、コンテキストデータ128Aの少なくとも一部を決定するように構成されても良い。例えば、センサ126は、位置データ、移動データ(例えば、速度または加速データ)、気象データ、生体データ、時間データ、照明データ、顔認識などを決定して良い。ユーザの現在のコンテキスト120Aに関連付けられたコンテキストデータ128Aのいくつかは、コンピューティング装置102Aの現在の動作から決定されても良い。例えば、現在の動作は、は、検索を実行しているユーザ、アプリケーションを起動しているユーザ、ウェブサイトにアクセスしているユーザなどに関連し得る。いくつかの実施例では、クライアント・コンテキストマネージャ124Bは、現在のコンテキストに関するさまざまなデータを集約し、コンテキストデータ128Aをコンテクスチュアル・サービス104に送信する。
【0032】
コンテクスチュアル・サービス104は、受信したコンテキストデータ128Aを使用し、ユーザの現在のコンテキスト120Aに関する1つ以上のアプリケーション114を識別する。簡潔に上述のように、アプリケーション114は、アプリケーション114が、コンテキストデータ128により示される現在のコンテキストに応じて起動するようにコンテクスチュアル・サービス104に登録されているかどうかの少なくとも部分的に基づいて、特定のコンテキストに関連していると判定されても良い。例えば、コンテクスチュアル・サービス104は、アプリケーション114A−114Fは、コンテキストデータ128Aによって指定されたコンテキストに関連していると判定して良い。関連していると判定されたアプリケーション114は、コンピューティング装置102A上にインストールされていても良いし、されていなくても良い。現実施例では、アプリケーション114A〜114Cは、コンピューティング装置102A上にインストールされており、アプリケーション114D〜114Fは、リモートで配置されている(例えば、アプリケーション・サービス106および/またはアプリケーション実行サービス108の中)。
【0033】
いくつかの構成によれば、アプリケーション114は、テクスチュアル・サービス104が指定したコンテキストデータ128Aを受信することに応答して起動されるようにコンテクスチュアル・サービス104に登録される。例えば、フィットネスアプリケーションは、コンテキストデータ128Aが、ユーザが歩行中またはジョギング中であると示すときに起動されるように、コンテクスチュアル・サービス104に登録されて良い。他のアプリケーション114は、コンテキストデータ128Aが、ユーザが移動中であると示すときに起動されても良い。同様に、レンタカーアプリケーション114は、コンテキストデータ128Aが、ユーザ120Aが空港にいて飛行機予約をしていると示すとき、またはレンタカーの検索を実行していると示すときに起動されても良い。他の実施例では、コンテクスチュアル・サービス104は、アプリケーション114の起動を決定して良い。
【0034】
起動に応答して、アプリケーション114A〜114Fなどの起動したアプリケーションは、コンテクスチュアル・サービス104および/またはコンテキストデータ128Aに関するクライアント・コンテキストマネージャ124Bまたはコンテキストマネージャ124Aに提供するアプリケーションデータ118A〜118Fを決定する。言い換えれば、コンテクスチュアル・サービス104および/またはクライアント・コンテキストマネージャ124Bによって起動される関連アプリケーションは、コンテキストデータ128Aを使用し、提供するアプリケーションデータ118Aを決定する。例えば、関連していると判定されたスポーツアプリケーション114は、フットボールの試合中のデータ(例えば、最新スコア、ゲームの最新統計)に比較してフットボールの試合前の異なるアプリケーションデータ118(例えば、試合前のデータ)を提供して良い。コンテクスチュアル・サービス104がアプリケーション114から指定されたアプリケーションデータ118を要求する代わりに、コンテクスチュアル・サービス104は、アプリケーション114を起動し、アプリケーション114にコンテキストデータ128Aを提供するように構成される。いくつかの実施例では、コンテクスチュアル・サービス104はまた、1つ以上の関連アプリケーション114A〜114Fから特定のデータを要求して良い。以下でより詳細に述べるように、アプリケーション114A〜114Fは、コンピューティング装置102A上および/またはアプリケーション実行サービス108内、または他の何らかのコンピューティング装置上で実行されても良い。
【0035】
説明したように、ユーザ120Aまたは120Bが、どのアプリケーション114を利用するかを決定する必要がなく、コンテクスチュアル・サービス104を含むコンテキストセンシティブ・フレームワークは、利用するアプリケーションの決定においてユーザの現在のコンテキストを使用する。このように、ユーザは、特にアプリケーション114を見つけて起動する必要がない。
【0036】
いくつかの実施例では、コンテキストセンシティブ・フレームワークは、1つより多いアプリケーションからアプリケーションデータ118を受信し、アプリケーションデータ118を集約し、選択したアプリケーションデータ118をユーザインタフェース130Aまたは130Bなどのユーザインタフェース130において提示する。例えば、コンテキストセンシティブ・フレームワークは、オペレーティング・システムソフトウェアの一部であり得る共通のユーザインタフェースを提供し、異なるアプリケーション114A〜114Fによって提供されるアプリケーションデータ118A〜118Fを提示して良い。このようにして、一貫した方法で、異なるアプリケーションからユーザにデータが提示される。
【0037】
コンテクスチュアル・サービス104はまた、異なるアプリケーション114A〜114Fから受信したアプリケーションデータ118のどれをユーザに提供するかについて決定をして良い。例えば、コンテクスチュアル・サービス104は、アプリケーションデータ118A〜118Fから重複データ(または類似データ)を削除して良い。コンテクスチュアル・サービス104および/またはクライアント・コンテキストマネージャ124Bもまた、ユーザの現在のコンテキストに基づいてデータを除外して良い。
【0038】
他の実施例では、コンテクスチュアル・サービス104は、どの他のコンピューティング装置102および/またはその他のアプリケーションがアプリケーションデータ118を受信するかを決定して良い。例えば、コンテクスチュアル・サービス104は、ユーザが在宅しているかまたは帰宅中であり一定の時間内に到着すると決定したことに応答して、アプリケーションデータ118をユーザの自宅内にある他のコンピューティング装置に提供して良い。別の実施例として、コンテクスチュアル・サービス104は、ユーザが車に乗ろうとしていると決定したことに応答して、アプリケーションデータ118を例えば車を始動するために車内にある他のコンピューティング装置に提供して良い。この装置もまた、ユーザの適当な目的地とともにロードマップまたは道順ソフトウェア、ならびに交通関連情報を含み得る。
【0039】
ユーザ120Aに関連付けられたコンテキストデータ128は、コンテクスチュアル・サービス104を以て更新もされ得る。例えば、コンピューティング装置102Aはコンテクスチュアル・サービス104と接続し、コンテキストデータ128Aをさらに提供する、または更新されたコンテキストデータ128Aをコンテクスチュアル・サービス104に提供して良い。ユーザの現在のコンテキストに関連付けられたコンテキストデータ128Aが変更されると(例えば、ユーザの場所が変わると)、事前に関連していると判定されたアプリケーション114A〜114Fは、関連しているともはや判定されない場合がある。例えば、あるコンテストに関連していたアプリケーションは、更新されたコンテキストに関連しない場合がある。したがって、コンテクスチュアル・サービス104は、コンテキストにおける変さらに応じて関連アプリケーションを更新して良い。
【0040】
他の実施例では、コンテキストセンシティブ・フレームワークは、現在のコンテキストに関連する異なるアプリケーションの選択をユーザに提示して良い。例えば、コンテクスチュアル・サービス104は、現在のコンテキストに応じて起動するように登録されたアプリケーション114の選択をユーザ120Bに提示して良い。例えばUI130Bなどを介して、ユーザからアプリケーションの選択を受信した後、コンテクスチュアル・サービス104は選択されたアプリケーション114Gを起動させても良い。いくつかの構成では、選択されたアプリケーション114Gは、アプリケーション実行サービス108内で起動されても良い。他の構成では、選択されたアプリケーション114Gは、コンピューティング装置102B上で起動されても良い。
【0041】
選択されたアプリケーション114Gが、ユーザが利用しているコンピューティング装置102B上にインストールされていないとき、コンテクスチュアル・サービス104は、アプリケーション114Gをコンピューティング装置102B上にインストールさせても良い。いくつかの実施例では、アプリケーション114Gをコンピューティング装置102B上にインストールするかどうかの決定は、どのくらいの頻度でユーザ120Bがアプリケーション114Gを使用する可能性があるかの予測に基づいてなされて良い。例えば、選択されたアプリケーション114Gはたった一度しか利用されない場合もある(例えば、特定のイベントのためのアプリケーション)。ある例では、クライアント・コンテキストマネージャ124Cは、電子マーケット132に接続し、アプリケーション114Gをコンピューティング装置102Bへダウンロードし、アプリケーション114Gをコンピューティング装置102B上にインストールさせても良い。アプリケーション114Gのインストール後、クライアント・コンテキストマネージャ124Cは、アプリケーション114Gを起動した後、場合によっては、その後のある時点で、アプリケーション114Gをコンピューティング装置102Bから自動的に削除して良い。例えば、アプリケーション114Gは、イベントアプリケーション114Gが完了した後で削除されても良い(例えば、数時間後、数日後、など)。例えば、ユーザがフットボールの試合に行く状況だとすると、アプリケーション114Gは自動的にダウンロードされ、その後、ユーザがフットボールの試合を去った時点で削除されても良い。
【0042】
アプリケーション実行サービス108が選択されたアプリケーション114G(または他の何らかのリモートコンピューティング装置)を実行するとき、コンテクスチュアル・サービス104のコンテキストマネージャ124Aは、アプリケーション114Gによって生成されたアプリケーションデータ118Gをクライアント・コンテキストマネージャ124Cへ提供して良い。アプリケーションデータ118Gは、コンテキストデータ128Bに関連するアプリケーションデータ118Gでも良いし、またはアプリケーション114Gによって生成されたデータの他のいくつかのデータまたは全てでも良い。
【0043】
簡潔に上述のように、コンテキストセンシティブ・フレームワークは、アプリケーション114とコンテクスチュアル・サービス104との間で双方向通信を提供する。いくつかの構成によれば、コンテキストセンシティブ・フレームワークにより、2つ以上のアプリケーション114が互いに通信することができる。コンテキストセンシティブ・フレームワークを使用して通信する2つ以上のアプリケーション114のさらなる詳細は、図2に関して以下に提供される。
【0044】
いくつかの実施例では、クライアント・コンテキストマネージャ124Bまたは124Cは、ユーザのコンテキストを監視し、コンテキストデータ128Aまたは128Bをコンテクスチュアル・サービス104に提供するように構成される。場合によっては、コンピューティング装置102およびコンテクスチュアル・サービスの一部であるリモートコンピューティング装置104の間でネットワーク接続が確立されるとき、コンテキストデータ128は、コンテクスチュアル・サービス104に提供される。
【0045】
いくつかの実施例では、ソフトウェア開発者は、アプリケーション114をコンテクスチュアル・サービス104に接続する機能を指定するコンテクスチュアル・サービスAPI116などのアプリケーションプログラミングインターフェース(「API」)を含み得るソフトウェア開発者ツールキット(「SDK」)またはソフトウェア開発者がアプリケーションを開発するのに使用され得る他のツールを使用してアプリケーション114を開発して良い。例えば、コンテクスチュアル・サービスAPI116は、1つ以上のコンテキストに応じて起動または通知されるように登録するためにアプリケーションによって使用されて良い。アプリケーション114はまた、コンテクスチュアル・サービスAPI116を利用して、別のアプリケーション114および/またはコンテクスチュアル・サービス104にデータを伝達するために使用される1つ以上のカスタムイベントを定義して良い。
【0046】
簡潔に上述のように、コンテクスチュアル・サービス104は、データを収集し、例えばデータストア134Aなどに保存して良い。データは、コンテクスチュアル・サービスによって提供される、データの識別136および/またはアプリケーションデータ118A〜118Fなどの、推奨事項を改善するのに使用され得る。収集し保存され得るデータbyコンテクスチュアル・サービス104は、異なるユーザおよび/またはコンピューティング装置から受信するコンテキストデータ128、さまざまなアプリケーションから受信するアプリケーションデータ118、およびコンテクスチュアル・サービスのユーザに関連付けられた使用状況データを含んで良い。例えば、使用状況データは、ユーザはどのようなアプリケーションを選択したか、ユーザはどのようなアプリケーションを利用しているか、ならびにユーザは異なるコンテキストに対してアプリケーションの機能をどのように利用しているか、を含んで良い。
【0047】
いくつかの構成では、コンテクスチュアル・サービス104は、機械学習メカニズムを使用して、コンテクスチュアル・サービスによって提供される推奨事項を改善して良い。「機械学習」という用語は、受信するデータから学習する1つ以上のプログラムを指し得る。例えば、機械学習メカニズムは、モデルを作成、修正し、そうでなければ、入力例から作成されるモデルを利用して予測または決定をして良い。現実施例では、機械学習メカニズムは、コンテクスチュアル・サービスによって提供されるデータ104である識別アプリケーション114を改善するために使用されて良い。モデルは、教師あり学習および/または教師なし学習を使用して教育されても良い。例えば、コンテクスチュアル・サービスがより多くのデータを受信する時間が経つにつれて、コンテクスチュアル・サービスによって提供されるデータは、受信したコンテクスチュアル・サービスのユーザに関連付けられた実際の使用状況データに基づいて変化して良い。コンテクスチュアル・サービス104によって利用される機械学習メカニズムは、追加データを受信したことに応答して精緻化されても良い。
【0048】
コンテキストセンシティブ・フレームワークを利用する1人または複数のユーザによるアプリケーション114の使用に関するアナリティクスもまた、ソフトウェア・プロバイダまたは他の認定ユーザに提供されて良い。例えば、アナリティクスは、GUIに表示されて良いし、使用状況データ(例えば、平均使用率)、利益データ(例えば、購入、使用コスト)、アプリケーション内で利用される機能などの情報を含んで良いがこれらに限らない。ソフトウェア・プロバイダはアナリティクスを見て、コンテキストセンシティブ・フレームワークの中でどのようにアプリケーションが利用されているかを判定して良い。図5は、アナリティクスを提供するのに使用される例示的なGUI500を示す。
【0049】
いくつかの実施例では、アプリケーション・サービス106は、電子マーケット132を提供する。電子マーケット132を介してユーザは、例えばアプリケーション114、アプリケーションのアドオン、アプリケーション内のアイテム、音楽、電子書籍、映画などなどのコンテンツを購入することができる。動作環境100のさまざまな実装は、複数ネットワーク、コンテクスチュアル・サービス104、アプリケーション・サービス106、アプリケーション実行サービス108、アプリケーション114およびコンテクスチュアル・サービスAPI116を含むと理解されるべきである。したがって、説明された動作環境100は、例示的であるものとして理解されるべきであって、いかなる形においても制限するものとして解釈されるべきではない。
【0050】
図2は、異なるアプリケーション114から受信されたアプリケーションデータ118を表示する例示的なGUI200を示す画面図である。GUI200は、コンピューティング装置のエンドユーザ向けプログラムまたはオペレーティング・システムの一部、またはそれらの組み合わせになり得る。説明したように、GUI200は、例えばユーザ120Aまたは120Bなどのユーザの現在のコンテキストに関する異なるアプリケーションからのデータを示す。コンテクスチュアル・サービス104と通信するコンピューティング装置102Aは、GUI200を表示して良い。説明のためであって、限定することは目的とせず、GUI200がSEATTLE SEAHAWKSのフットボールの試合を今見に来ているユーザによって使用されていると仮定する。例えば、コンテキストデータ128は、ユーザはSeattle Seahawksがプレーする競技場にいると示して良い。
【0051】
上述のように、1つ以上のアプリケーション114は、起動に応答して、アプリケーションデータ118をコンテクスチュアル・サービス104に提供して良い。フットボールの試合にいるユーザに関連付けられたコンテキストデータ128を受信したことに応答して、コンテクスチュアル・サービス104は、コンテキストデータ128に関するSeahawksアプリケーション114H、スタジアムアプリケーション114I、一般的なスポーツアプリケーション114J、天気アプリケーション114K、および食べ物アプリケーション114Lを識別した。ユーザは、アプリケーション選択UI要素206内でユーザインタフェース要素を選択することによって、利用するアプリケーション114を選択または非選択状態にする。上述のように、ユーザはコンテキストデータ128に関連していると判定されたアプリケーションの全てからデータを受信することは選ばない場合がある。本実施例では、食べ物アプリケーション114Lを囲む破線で示されるように、ユーザは、食べ物アプリケーション114Lの使用を含めないことに決めた。いくつかの実施例では、ユーザから受信する選択は、コンテクスチュアル・サービス104に提供され、機械学習メカニズムによって利用されるモデルを更新するのに使用されて良い。このようにして、特定のコンテキストに関連していると識別されたアプリケーションは、コンテクスチュアル・サービスのユーザによってなされた選択に応答して時間とともに変化して良い。
【0052】
現実施例では、GUI200は、現在のコンテキストに関連していると識別されたアプリケーション114H〜114Lの一部からアプリケーションデータ118H〜118Kを示す。GUI200は選択したアプリケーションデータUI要素202内のアプリケーションデータを示す。GUI200はまた、ユーザインタフェース要素部204のうちの選択されたアプリケーション114〜114Lに関連付けられたユーザインタフェース要素を示す。ユーザインタフェース要素部204は、SeahawksアプリケーションUI204A、スタジアムアプリケーションUI204B、一般的なスポーツアプリケーションUI204C、および天気アプリケーションUI204Dのためのユーザインタフェース要素を示す。以上のように、アプリケーションUI204A〜204Dはそれぞれ、オプション1〜Nを含む。いくつかの実施例では、異なるアプリケーション114H〜114K用のユーザインタフェース要素204は、組み合わされても良いし、そうでなければ、異なる方法で表示されても良い。
【0053】
上述のように、GUI200内に表示されるアプリケーションデータ118は、アプリケーションデータ118をコンテクスチュアル・サービス104に提供するアプリケーションによって少なくとも一部において選択されても良い。言い換えれば、アプリケーションから特定の情報を要求する代わりに、コンテクスチュアル・サービス104は、コンテキストデータ128に関連しているとアプリケーションが判定したアプリケーションからアプリケーションデータ118を受信する。例えば、Seahawksアプリケーション114Hは、試合が開始される前の試合前、試合進行中の試合のスコアおよび統計、および試合終了後の分析および試合後のレビューを含んで良い。コンテキストデータ128が変更されるとともに(例えば、試合中に時間が変化する)、アプリケーション114H〜114Kの各々は、コンテクスチュアル・サービス104に提供されるアプリケーションデータ118H〜118Kを更新して良い。上述のように、コンテクスチュアル・サービス104は、どのアプリケーションデータを提供するかを決定する際、機械学習メカニズムを使用して良い。
【0054】
いくつかの実施例では、ユーザは個々のアプリケーションをGUI200内で起動する場合がある。例えば、ユーザは、特定のアプリケーション用に示されたUI要素内でオプション(図示せず)を選択して良い。他の実施例では、ユーザもまた、GUI200をカスタマイズできる場合がある。例えば、カスタマイズUI要素(図示せず)を選択したことに応答して、ユーザは次に、GUI200のディスプレイの中に含みたい異なる情報の選択するよう促される。例えば、ユーザは表示したいアプリケーションデータ118をリスト(または他の何らかのUI要素または入力方法)から選択し、ならびに、どのようにデータが表示されるかを選択して良い。
【0055】
図3は、通信のためコンテクスチュアル・サービス104を使用するアプリケーション114を図示する系統図300である。系統図300は、アプリケーション実行サービス108と通信するコンテクスチュアル・サービス104を含む。コンテクスチュアル・サービス104は、コンテキストマネージャ124A、データストア134A、およびレポート作成コンポーネント302を含んで良い。アプリケーション実行サービス108は、アプリケーション114A〜114Nを実行する1つ以上のコンピューティング装置を含んで良い。他の実施例では、アプリケーション114A〜114Nの全てまたは一部は、コンピューティング装置102A上で、または他の何らかのコンピューティング装置上で実行されて良い。
【0056】
アプリケーション114A〜114Nは、データをコンテクスチュアル・サービス104へ/から送受信するように構成されても良い。アプリケーション114A〜114Nはまた、互いに通信するためコンテクスチュアル・サービス104およびコンテクスチュアル・サービスAPI116を利用して良い。例えば、アプリケーション114Aなどのアプリケーションは、コンテキストデータ128Aを受信したことに応答してアプリケーションデータ118Aを生成して良い。いくつかの実施例では、アプリケーションデータ118Aの全てまたは一部は、コンテクスチュアル・サービス104によって、例えばアプリケーション114Bなどの1つ以上の他のアプリケーションに提供される。アプリケーションデータ118Aは、破線により示されるように、アプリケーション114Bに直接提供されるか、またはコンテキストマネージャ124Aを介してアプリケーション114Bに間接的に提供されて良い。
【0057】
上述のように、例えばアプリケーション114Aなどのアプリケーション114は、コンテクスチュアル・サービスAPI116を使用するコンテクスチュアル・サービス104によって利用される1つ以上のカスタムイベントを指定して良い。例えば、カスタムイベントは、他のアプリケーションが受信することに関心を持ち得るアプリケーション114Aにより提供されるアプリケーションデータに関連しても良い。例えば、図2に図示されるSeahawksアプリケーション114Hは、他のアプリケーションでは通常入手できないSEATTLE SEAHAWKSについてのデータを提供するカスタムイベントを指定して良い。アプリケーション114Aによって指定されたカスタムイベントに関連付けられたアプリケーションデータ118Aを受信するため、アプリケーション114Bは、アプリケーション114によって指定された1つ以上のカスタムイベントに関する通知を受信するため登録して良い。他の実施例では、例えばアプリケーション114Aなどのアプリケーションは、コンテクスチュアル・サービスAPI116によって提供される機能を利用して、直接データ304を例えばアプリケーション114Bなどの別のアプリケーションに直接送信して良い。
【0058】
いくつかの実施例では、アプリケーション114Aから直接データ304および/またはアプリケーションデータ118Aを受信するアプリケーション114Bは、コンテクスチュアル・サービス104の一部であるコンテキストマネージャ124Aに提供されるアプリケーションデータ118Bを生成するデータを使用して良い。他の構成では、コンテキストマネージャ124Aは、受信したアプリケーションデータ118Aを使用して、コンテキストデータ128Aを更新して良い。例えば、場合によっては、アプリケーションデータ118Aは、コンピューティング装置102Aのユーザに関連付けられたコンテキストを更新するため使用され得る付加的なコンテキストデータ128を含んで良い。コンテキストマネージャ124Aは、更新されたコンテキストデータ128Cをアプリケーション114A〜114Nの全てまたは一部に提供して良い。現実施例では、コンテキストマネージャ124Aは、更新されたコンテキストデータ128Cをアプリケーション114Nに提供した。アプリケーション114Nは、更新されたコンテキストデータ128Cを使用してアプリケーションデータ118Nを生成する。
【0059】
レポート作成コンポーネント302は、アナリティクスを提供するように構成されても良い。例えば、コンテクスチュアル・サービス104に含まれる分析レポート作成コンポーネント302は、1つ以上のアプリケーション114A〜114Nのユーザに関するアナリティクスを表示する図5に図示されるGUI500を提供するように構成されても良い。アナリティクスは、ソフトウェア・プロバイダまたは他の認定ユーザによって利用され得るコンピューティング装置102Aに関連付けられたUI130A上に表示されて良い。レポート作成コンポーネント302は、1つ以上のアプリケーション114A−114Nに関する情報(例えば、設定情報)を含むレポートを作成するよう構成されて良い。
【0060】
図4は、ユーザの現在のコンテキストに応じて機能を実行するためのアプリケーション114を識別して利用することを図示する系統図400である。系統図400は、コンテクスチュアル・サービス104、アプリケーション・サービス106、およびコンピューティング装置102Bを含む。上述のように、場合によっては、現在のコンテキストに関連していると識別されたアプリケーション114Gは、コンピューティング装置102Bにダウンロードされて良い。
【0061】
いくつかの構成によれば、コンテクスチュアル・サービス104は、ユーザ120Bに関連付けられたコンテキストデータ128Bを受信し、コンテキストマネージャ124Aは、コンテキストに関するアプリケーション114を決定する。コンテキストマネージャ124Aは、コンテクスチュアル・サービス104に登録されている登録済みアプリケーション402から関連アプリケーション114を決定して良い。コンテキストマネージャ124Aはまた、コンテクスチュアル・サービス104には登録されていないアプリケーション114から関連アプリケーション114を決定して良い。例えば、コンテキストマネージャ124Aは、電子マーケット132から入手できるアプリケーションから関連アプリケーション114を決定して良い。いくつかの場合、コンテキストマネージャ124は、電子マーケット132から入手できるデータ、または他の何らかのソースを使用して、アプリケーションの機能および/または人気度を決定する。
【0062】
現実施例では、コンテキストマネージャ124Aは、コンテキストデータ128Bに関連する関連アプリケーション404を識別する。例えば、関連アプリケーション404は、コンテキストデータ128Bに応じて起動するように登録されたアプリケーション114でも良い。いくつかの構成では、コンテキストマネージャ124Aは、コンテキストデータ128Bに応じて、コンピューティング装置102Bに提供する関連アプリケーション404の1つを選択して良い。他の実施例では、コンテキストマネージャ124Aは、現在のコンテキストに関連する異なるアプリケーションの選択をユーザに提示して良い。例えば、コンテクスチュアル・サービス104は、ユーザインタフェース130Bに提示する関連アプリケーションデータ406を提供して良い。現実施例では、ユーザ120Bは、利用するアプリケーション114Gを選択する。ユーザ120Bからアプリケーション114Gの選択を受信した後、コンテクスチュアル・サービス104は、コンピューティング装置102Bに、選択されたアプリケーション114Gをダウンロードさせて良い。
【0063】
上述のように、アプリケーション114Gをコンピューティング装置102B上にインストールするかどうかの決定は、どのくらいの頻度でユーザ120Bがアプリケーション114Gを使用する可能性があるかの予測に基づいてなされて良い。例えば、選択されたアプリケーション114Gはたった一度しか利用されない場合もある(例えば、特定のイベントのためのアプリケーション)。いくつかの場合、クライアント・コンテキストマネージャ124Cは、電子マーケット132に接続し、アプリケーション114Gをコンピューティング装置102Bへダウンロードし、アプリケーション114Gをコンピューティング装置102B上にインストールさせて良い。アプリケーション114Gのインストール後、クライアント・コンテキストマネージャ124Cは、アプリケーション114Gを起動した後、場合によっては、その後のある時点で、アプリケーション114Gをコンピューティング装置102Bから自動的に削除して良い。例えば、アプリケーション114Gは、イベントアプリケーション114Gが完了した後で削除されて良い(例えば、数時間後、数日後、など)。
【0064】
図5は、図2記載のコンテキストセンシティブ・フレームワーク内の1つ以上のアプリケーションの使用に関係する分析を表示する例示的なGUI500を示す画面図である。アプリケーション部504に図示されるように、GUI500は、図2で説明されるアプリケーション114H〜114Kに関するアナリティクスを示す。GUI500に提示されたデータは、コンテクスチュアル・サービス104に関連付けられたコンピューティング装置、アプリケーション・サービス106、または他の何らかのコンピューティング装置によって決定されて良い。GUI500は、例えばコンピューティング装置102Bなどのコンピューティング装置上に提示されて良い。
【0065】
説明のためであって、限定することは目的とせず、GUI500が、特定の時間帯に利用されるまたは特定のコンテキストを伴って利用される1つ以上のアプリケーション114の使用に関するアナリティクスを見るために、コンテクスチュアル・サービス104の開発者によって利用されていると仮定する。GUI500は、さまざまな異なるアナリティクスおよびUI要素を表示して良い。現実施例では、GUI500は、構成UI要素502A、使用のタイプUI要素502B、平均使用率UI要素502C、利益UI要素502D、および換算レート502Eを示す。現実施例では、現在選択されているアプリケーションは、スタジアムアプリケーションUI要素の周りに表示された太い破線によって示されるスタジアムアプリケーション114Iである。
【0066】
構成UI要素502Aは、スタジアムアプリケーション114Iに関する設定情報を表示して良い。使用のタイプUI要素502Bは、どのようにアプリケーションが使用されているかを示すデータを表示して良い。現実施例では、使用のタイプUI要素502Bは、スタジアムアプリケーション114Iのスコア機能は、22%の時間使用され、スタジアムアプリケーション114Iの統計機能は、58%の時間されたことを示す。いくつかの構成では(図示せず)、ユーザは、1人または複数のユーザに関連付けられたデータを表示のため指定する1つ以上のオプションを選択して良い。例えば、単一ユーザまたはユーザグループによって、フットボールの試合のコンテキストにおいてアプリケーションがどのように使用されているかについてのアナリティクスを見ることを指定して良い。他の実施例では、スポーツイベントに参加していないユーザによってプリケーションがどのように使用されているかについてのアナリティクスを見ることを指定して良い。平均使用率UI要素502Cはスタジアムアプリケーション114Iがある時間帯(例えば、日毎、週毎、月毎)に使用されている平均時間を表示して良い。現実施例では、平均使用率UI要素502Cは、顧客による週毎の平均使用率の時間を表示するように構成されている。他の実施例では、平均使用率UI要素502Cは、他のコンテキストにおいてアプリケーションがどのくらい使用されているかを表示するように構成されて良い。利益UI要素502Dは、特定した期間中に生み出された平均利益を表示してよい。現実施例では、利益UI要素502Dは、1週間のうちに生み出された利益量を示す。換算UI要素502Eは、使用のためユーザに提示され得るアプリケーションの平均換算レートを表示して良い。
【0067】
いくつかの実施例では、異なるUI要素の全てまたは一部は、追加情報を取得するため、または異なるオプションを設定するため選択されて良い。ユーザは、アプリケーション部504に表示されたUI要素の1つを選択して、現在選択されているアプリケーションを変更して良い。
【0068】
ユーザはまた、カスタマイズUI要素502Fを選択することによって、GUI500をカスタマイズでき得る。カスタマイズUI要素502Fを選択したことに応答して、ユーザは次に、GUI500のディスプレイの中に含みたい異なる情報を選択するよう促される。例えば、ユーザは、表示したいアナリティクスをリストから選択しても良い(または他の何らかのUI要素または入力方法)。別の実施例では、ユーザは、プラン・アナリティクスがどのように表示されるかを選択して良い。例えば、ユーザは、プラン・アナリティクスが生データでグラフィック表示(例えば、表、チャート、グラフ)として、または他の何らかのフォーマットで表示させるように要求して良い。ユーザはまた、履歴情報をGUI500に表示させるように要求して良い。例えば、ユーザは、アプリケーションの使用の時系列ディスプレイまたは他の何らかのデータを見ることを要求して良い。
【0069】
GUI500に提示された情報はまた、後で使用するためにダウンローされても良い。説明したように、ユーザは、ダウンロードUI要素502Gを選択して、ローカルデータストア、ネットワークデータストアまたは別の場所に情報をダウンロードして良い。アナリティクスは、1つ以上のフォーマットでダウンロードされても良い。例えば、ユーザは、テキストファイル、スプレッドシートファイル、ワープロファイル、または他の何らかのファイルとして顧客サポート情報の全てまたは一部をダウンロードして良い。
【0070】
図6〜11は、本明細書に開示された実施例に従って、現在のコンテキストに対して関連アプリケーションを識別し、関連アプリケーションから受信したデータをユーザに提供するコンテキストセンシティブ・フレームワークを使用する態様を説明するルーチンを示すフロー図である。図6〜11および他の図に関して本明細書に記載された論理動作は、(1)一連のコンピュータ実行型の動作またはコンピューティング・システム上で実行されるプログラムモジュールおよび/または(2)コンピューティング・システム内の相互接続したマシンの論理回路または回路モジュールとして実装されて良いことを理解すべきである。
【0071】
本明細書に記載されたさまざまな構成要素の実装は、コンピューティング・システムの性能および他の要件によって決まるものであって選択できるものである。したがって、本明細書に記載された論理動作は、さまざまに、動作、構造デバイス、行動またはモジュールのことである。これらの動作、構造デバイス、行動、およびモジュールは、ソフトウェア、ファームウェア、特殊用途デジタル論理およびそれらのいかなる組み合わせにおいて実装されて良い。また、図面に示されたまたは本明細書に記載されたものより、より多くのまたはより少ない動作が実行されて良いことを理解すべきである。これらの動作は、並列に実行されて良いし、または、本明細書に記載されたものとは異なる順序で実行されて良い。
【0072】
図6は、アプリケーションを選択し、ユーザに関連付けられたコンテキストを用いて選択したアプリケーションから受信したデータを整理する本明細書に開示されたメカニズムの態様を説明するルーチン600を示すフロー図である。ルーチン600は、ユーザに関連付けられたコンテキストデータ128が取得される602で始まって良い。上述のように、コンテキストデータ128は、ユーザに関連付けられたコンピューティング装置102上で動作するクライアント・コンテキストマネージャ124によって取得されて良い。コンテキストデータ128は、例えば現在の時刻、ユーザの現在の場所、気象データ、コンピューティング装置102上でどんな行動が行われているかなどのさまざまなコンテキストデータを含んで良いが、これに限るものではない。
【0073】
604で、コンテキストデータ128は、コンテクスチュアル・サービスに提供される。上述のように、コンテキストデータ128は、コンピューティング装置102上で動作するクライアント・コンテキストマネージャ124によって、または他の何らかのメカニズムを使用して、コンテクスチュアル・サービス104に提供されて良い。いくつかの実施例では、コンテキストデータ128は、コンテクスチュアル・サービス104に提供され、定期的にまたは何らかの事象または条件に応答して更新されても良い。他の実施例では、コンテキストデータ128は、ネットワーク接続が確立されたとき、および/または周期的にコンテクスチュアル・サービス104に提供されて良い。
【0074】
606で、利用する関連アプリケーションを識別するデータが受信される。上述のように、受信されるデータは、関連アプリケーション114を識別するデータの識別136を含んで良い。他の実施例では、データは、アプリケーション自体を含んで良いし、またはデータは、1つ以上のアプリケーション114によって提供されるアプリケーションデータ118を含んで良い。
【0075】
608で、コンテキストデータ128が、関連していると識別されたアプリケーション114に提供される。上述のように、コンテキストデータ128は、関連していると識別されたアプリケーション114の全てまたは一部に提供されて良い。いくつかの実施例では、コンテクスチュアル・サービス104内で動作するコンテキストマネージャ124は、最も関連があるアプリケーション114を識別し、コンピューティング装置102から受信するコンテキストデータ128をアプリケーション114に提供する。
【0076】
610で、アプリケーションデータ118がアプリケーション114から受信される。上述のように、受信されるアプリケーションデータ118は、アプリケーション114そのものによって選択されて良い。コンテキストマネージャ124がアプリケーション114から特定のタイプのデータを要求する代わりに、コンテクスチュアル・サービス104により、アプリケーション114は、コンピューティング装置102によって提供されるコンテキストデータ128に基づいて、提供するアプリケーションデータ118を選択することができる。
【0077】
612で、提供するアプリケーションデータ118が選択される。上述のように、関連アプリケーション114から受信したアプリケーションデータ118は、重複データならびに現在のコンテキストに関連してない可能性のある他のデータを含んで良い。いくつかの実施例では、コンテキストマネージャ124は、アプリケーションデータ118からの重複データを削除し、アプリケーションデータ118の一部に優先順位をつけ、提供されるアプリケーションデータ118をフォーマットする。いくつかの実施例では、アプリケーションデータ118は、ユーザに提供されるようにフォーマットされる。他の実施例では、アプリケーションデータ118は、別のアプリケーションおよび/またはコンピューティング装置102に提供されるようにフォーマットされる。
【0078】
614で、選択されたデータが提供される。上述のように、選択されたデータは、コンテクスチュアル・サービス104にどのアプリケーションが利用されているかに関係なく共通UIを提供するユーザインタフェース130において提供されて良い。他の実施例では、ユーザインタフェース130は、アプリケーション114またはコンテキストデータ128に関するアプリケーション114によって提供されるネイティブインタフェースでも良い。他の実施例では、選択されたデータは、コンピューティング装置102によって使用できるフォーマットで提供される。
【0079】
図7は、アプリケーション114をコンテクスチュアル・サービス104に登録するための本明細書に開示されたメカニズムの態様を説明するルーチン700を示すフロー図である。702で、アプリケーション114は、コンテクスチュアル・サービスAPI116を利用するように構成されて良い。上述のように、アプリケーション114は、コンテクスチュアル・サービス104に登録する機能を提供するコンテクスチュアル・サービスAPI116を利用して良い。例えば、アプリケーション114は、コンテキストデータ128によって指定されたさまざまなコンテキストのために起動するように登録されて良い。アプリケーション114はまた、カスタムイベントを定義する、その他のアプリケーション114と通信するなどコンテクスチュアル・サービスAPI116の他の機能を利用するように構成されても良い。上述のように、アプリケーション114は、例えばサーモスタット、照明システム、警報システム、車、食器洗い機、洗濯機、乾燥機、冷蔵庫、オーブン、他の何らかのホームオートメーションシステムなどのコンピューティング装置に関連付けられても良いが、これらに限らない。例えば、照明機器は、コンテクスチュアル・サービス104と通信するためのAPIを利用して良い。いくつかの構成では、アプリケーション114は、システムオンチップ(「SOC」)として実装されて良く、APIによって提供される機能を利用して良い。
【0080】
704で、アプリケーション114は、コンテクスチュアル・サービス104に登録される。上述のように、異なるアプリケーション114が、ユーザに関連付けら得る異なるコンテキストに応答して起動されるようにコンテクスチュアル・サービス104に登録されて良い。いくつかのアプリケーション114は、1つ以上の異なる条件(例えば、指定した時間における指定された場所)に応答して起動されるように登録されて良い。上述のように、いくつかの構成では、コンテクスチュアル・サービス104は、データを未登録アプリケーションに提供して良い。
【0081】
706で、コンテクスチュアル・サービスはアプリケーションを登録する。上述のように、登録要求を受信した後、コンテクスチュアル・サービス104は、登録済みアプリケーションが指定された条件に応答して起動されるように、アプリケーションを登録する。
【0082】
図8は、ユーザに関連付けられたコンピューティング装置上では現在利用できないアプリケーションにアクセスを提供するための本明細書に開示されたメカニズムの態様を説明するルーチン800を示すフロー図である。ルーチン800は、コンテキストデータ128が受信される802で始まって良い。上述のように、コンテキストデータ128は、コンテクスチュアル・サービス104内で動作するコンテキストマネージャ124Aによって受信されて良い。
【0083】
804で、利用するアプリケーションが決定される。上述のように、コンテクスチュアル・サービス104が、コンテキストデータ128に関連付けられたユーザによって利用され得る1つ以上のアプリケーション114を決定するため使用されて良い。いくつかの構成では、コンテクスチュアル・サービス104は、ユーザに、コンテキストデータ128用に登録されたアプリケーション114とともにUI130を提示する。UI130は次いで、利用するアプリケーション114うち少なくとも1つの選択を受信する。他の実施例では、UI130は、アプリケーション114の選択を受信するために提示されない場合もある。例えば、コンテクスチュアル・サービス104は、コンテキストマネージャ124Aを使用して1つ以上のアプリケーション114を選択して良い。上述のように、コンテキストマネージャ124Aは、機械学習メカニズムまたは他の何らかのメカニズムを使用して、ユーザによってアプリケーションが利用される可能性が高いかどうかを予測して良い。806で、アプリケーション114は、決定されると、コンピューティング装置102上にインストールされる。上述のように、アプリケーション114は、選択されたアプリケーションがコンピューティング装置上では現在利用できない場合、コンピューティング装置102上にインストールされて良い。
【0084】
808で、アプリケーション114が起動される。上述のように、クライアント・コンテキストマネージャ124は、アプリケーション114をコンピューティング装置102上で起動させて良い。いくつかの実施例では、アプリケーション114は、ユーザによって使用のためコンピューティング装置102上で起動されて良い。他の実施例では、アプリケーション114は、アプリケーションデータがユーザ装置にストリーミングされて、サービス・プロバイダーネットワークにおけるリモートコンピューティング装置上で起動され実行されて良い。
【0085】
810で、アプリケーション114は、決定されると、コンピューティング装置102から削除されて良い。上述のように、アプリケーション114は将来ユーザ120によって利用されそうにないと、コンテクスチュアル・サービス104が決定すると、アプリケーション114は削除されて良い。場合によっては、いくらか時間が経過した後、または他の何らかの条件に応じて(例えば、コンテキストが変化した後)、アプリケーションは削除される。
【0086】
図9は、ユーザに関連付けられたコンピューティング装置上では利用できないアプリケーションにアクセスを提供するための本明細書に開示されたメカニズムの態様を説明するルーチン900を示すフロー図である。ルーチン900は、コンテキストデータ128が受信される902で始まって良い。上述のように、コンテキストデータ128は、コンテクスチュアル・サービス104内で動作するコンテキストマネージャ124Aによって受信されて良い。
【0087】
904で、利用するアプリケーションが決定される。上述のように、コンテクスチュアル・サービス104は、コンテキストデータ128に関連付けられたユーザによって利用され得る1つ以上のアプリケーション114を決定するため使用されて良い。いくつかの構成では、コンテクスチュアル・サービス104は、ユーザに、コンテキストデータ128用に登録されたアプリケーション114とともにUI130を提示する。他の実施例では、コンテクスチュアル・サービス104は、コンテキストデータ128を使用し、電子マーケット132から入手できる関連アプリケーション114を決定する。UI130は次いで、利用するアプリケーション114うち少なくとも1つの選択を受信する。
【0088】
906で、アプリケーション114が起動される。上述のように、アプリケーション114は、アプリケーション実行サービス108内、または他の何らかのコンピューティング装置上で実行されて良い。
【0089】
908で、アプリケーションデータ118が提供される。上述のように、コンテキストマネージャ124Aは、アプリケーション実行サービス108から受信されるアプリケーションデータ118をコンピューティング装置102上で動作するクライアント・コンテキストマネージャ124に提供して良い。アプリケーションデータ118は、ユーザに提供されるか、または他の何らかのアプリケーション、または、例えばスマートサーモスタット、照明システム、警報システム、車、食器洗い乾燥機、洗濯機、乾燥機、冷蔵庫、オーブン、他の何らかのホームオートメーションシステムなどのコンピューティング装置102によって使用されて良い。
【0090】
図10は、コンテクスチュアル・サービスを用いてアプリケーションが互いに通信するための本明細書に開示されたメカニズムの態様を説明するルーチン1000を示すフロー図である。ルーチン1000は、第1アプリケーションからアプリケーションデータ118が受信される1002で始まってよい。上述のように、アプリケーション114は、コンテクスチュアル・サービス104にカスタムイベントを登録するためのコンテクスチュアル・サービスAPI116を利用して良い。他のアプリケーション114は、第1アプリケーションによって定義されたカスタムイベントの発生に関連付けられた通知を受信するため登録されて良い。
【0091】
1004で、受信されたアプリケーションデータ118は、コンテキストデータ128を更新するため使用されて良い。上述のように、第1アプリケーション114から受信されるアプリケーションデータ118は、現在のコンテキストに関する付加的なコンテクスチュアル情報を提供して良い。いくつかの実施例では、第1アプリケーションから受信されるアプリケーションデータ118は、現在のコンテキストに関連しない場合がある。この場合、コンテクスチュアル・サービス104は、コンテキストデータ128を更新しない。
【0092】
1006で、第1アプリケーションから受信されるアプリケーションデータ118および/または更新されたコンテキストデータが、1つ以上の他のアプリケーション114に提供される。上述のように、コンテクスチュアル・サービス104は、カスタムイベントと関連しているアプリケーションデータ118の少なくとも一部をカスタムイベントの通知を受信するため登録されているアプリケーション114に提供して良い。いくつかの構成では、コンテクスチュアル・サービス104は、更新されたコンテキストデータ128を現在のコンテキストに関連する他のアプリケーション114の各々に提供する。また述べたように、アプリケーションデータ118は、他のコンピューティング装置に提供され、その装置の動作を制御するために使用されて良い。例えば、アプリケーションデータ118がサーモスタットに提供され、温度設定を変更するためにサーモスタットによって利用されるアプリケーション114によって使用される。
【0093】
1008で、更新されたアプリケーションデータ118が他のアプリケーションから受信される。上述のように、アプリケーションは、コンテクスチュアル・サービス104にどのようなデータを提供するかを決定する。したがって、コンテクスチュアル・サービス104によって提供される更新されたコンテキストデータ128は、アプリケーション114に異なるアプリケーションデータ118を提供させて良い。いくつかの実施例では、更新されたコンテキストデータ128は、サーモスタット、照明システム、警報システム、車、食器洗い機、洗濯機、乾燥機、冷蔵庫、オーブン、他の何らかのホームオートメーションシステムなどの他のコンピューティング装置から受信されて良い。
【0094】
図11は、ユーザに関連付けられたコンピューティング装置に提供するアプリケーションデータを選択するための本明細書に開示されたメカニズムの態様を説明するルーチン1100を示すフロー図である。ルーチン1100は、アプリケーションデータ118がアプリケーション114から受信される1102で始まって良い。上述のように、異なるアプリケーションから受信されるアプリケーションデータ118は、データを提供するアプリケーション114によって選択され選ばれる。これは、単にアプリケーションから特定のデータを要求することと対照的である。
【0095】
1104で、ユーザに提供するアプリケーションデータ118は、顧客の選好を使用して選択されて良い。上述のように、顧客の選好は、1つ以上の顧客プロファイルにおいて指定された環境設定されても良いし、またはユーザに関連付けられた履歴データから決定され得る。例えば、ユーザは、他のアプリケーションデータ118または他のアプリケーション114に優先して、特定のアプリケーションデータ118または別のアプリケーション114を事前に選択していたと決定され得る。顧客の選好はまた、顧客プロファイルまたは他の何らかのメモリ内に設置され得る明示的な設定から決定されて良い。
【0096】
1106で、選択したアプリケーションデータ118からの重複データが削除される。上述のように、異なるアプリケーションから受信されるアプリケーションデータ118は、重複したまたは互いに同様のものであるデータを含み得る。
【0097】
1108で、アプリケーションデータは、ユーザインタフェースのディスプレイ用にフォーマットされる。上述のように、コンテキストマネージャは、異なるアプリケーションの各々に関連付けられた異なるユーザインタフェースの使用によってユーザの注意がそらされないように、共通のユーザインタフェース130内で提供されるデータをフォーマットして良い。
【0098】
図12および以下の説明は、本明細書に記載された実施例が実装され得る適切なコンピューティング環境の簡潔な一般的な説明を提供することを目的としている。具体的には、図12は、サービス・プロバイダーネットワーク110を含む例示的な動作環境を示すシステムおよびネットワーク図である。上述のように、サービス・プロバイダーネットワーク110は、仮想マシンインスタンスおよびコンピューティングリソースを永続的にまたは必要に応じて提供できる。
【0099】
サービス・プロバイダーネットワーク110によって提供されるコンピューティングリソースは、例えばデータ処理リソース、データ記憶リソース、ネットワークリソース、データ通信リソースなどの各種リソースを含んで良い。コンピューティングリソースの各種は、汎用的であって良いし、または、複数の特定の構成において利用可能であって良い。例えば、以下により詳細に説明されるように、データ処理リソースは、複数の異なる構成において仮想マシンインスタンスとして利用できて良い。仮想マシンインスタンスは、ウエブサーバ、アプリケーションサーバ、メディアサーバ、データベースサーバおよび他の種類のアプリケーションを含むアプリケーションを実行するように構成されて良い。データ記憶リソースは、ファイル記憶装置、ブロック記憶装置などを含んで良い。コンピューティングリソースの仮想マシンインスタンスの構成のそれぞれのタイプは、例えば多数のプロセッサ、大容量メモリ、および/または大きな記憶容量で構成される大きなリソース、および、より少ない数のプロセッサ、小容量メモリおよび/またはより小さい記憶容量で構成される小さなリソースなど、異なるサイズで利用されて良い。
【0100】
サービス・プロバイダーネットワーク110によって提供されるコンピューティングリソースは、1つ以上のデータセンター1204A〜1204N(本明細書では、単独では「データセンター1204」と称され、または集合的に「データセンター1204」と称され得る)による1つの実装によって使用可能となる。データセンター1204は、コンピュータ・システムおよび関連した構成要素を格納し稼働させるために利用される施設である。データセンター1204は、典型的には、冗長化電源、非常用電源、通信、冷却およびセキュリティのシステムを含む。データセンター1204はまた、地理的に分散した場所にあってよい。本明細書に開示された概念および技術の一部または全てを実装するデータセンター1204の一つの例示的な構成が、図13に関して以下に説明する。
【0101】
サービス・プロバイダーネットワーク110のユーザおよび顧客は、ネットワーク1230で示されるように広域ネットワーク(「WAN」)などの適切なデータ通信網上で、データセンター1204によって提供されるコンピューティングリソースにアクセスして良い。広域ネットワークは使用されても良いが、データセンター1204をコンピューティング装置102に接続する、ローカルエリアネットワーク(「LAN」)、インターネット、または従来周知の他のいかなるネットワーク・トポロジが利用されて良いことを理解すべきである。また、そのようなネットワークの組み合わせもまた利用されて良いことを理解すべきである。
【0102】
図13は、本明細書において開示された、コンテキストセンシティブ・フレームワークが、現在のコンテキストに対する関連アプリケーションを識別し、関連アプリケーションから受信したデータをユーザに提供するのに使用される概念および技術の一部または全てを含む、サービス・プロバイダーネットワーク110の態様を実装するデータセンター1204のための1つの構成を説明するコンピューティング・システム図である。図13に示すデータセンター1204の例は、コンピューティングリソースを提供するいくつかのサーバコンピュータ1302A〜1302F(本明細書では、単独では「サーバコンピュータ1302」と称され、または複数形で「サーバコンピュータ1302」と称され得る)を含む。サーバコンピュータ1302は、本明細書に記載されるコンピューティングリソースを提供するために適切に構成された標準のタワー型またはラックマウント型サーバコンピュータであって良い。実施例によれば、サーバコンピュータ1302は、上記のように、ソフトウェア製品を実行するように構成される。
【0103】
一実施例では、一部のコンピューティングリソース1304は、仮想マシンインスタンスである。従来周知であるように、仮想マシンインスタンスは、物理マシンのようにプログラムを実行するマシン(例えば、コンピュータ)のソフトウェア実行のインスタンスである。サーバコンピュータ1302の各々は、コンピューティングリソースをインスタンス化し、コンピューティングリソースとコンピューティングリソースのインスタンスとを管理することができるインスタンスマネージャ(図示せず)を実行するように構成されて良い。仮想マシンインスタンスの場合、例えば、インスタンスマネージャは、例えば単一のサーバコンピュータ1302上で複数の仮想マシンインスタンスの実行を可能にするように構成されるハイパーバイザまたは別のタイプのプログラムであって良い。
【0104】
本明細書に開示された実施例は、主に仮想マシンインスタンスとの関連において説明されたものであるが、他のタイプのコンピューティングリソースを、本明細書において開示された概念および技術で利用することができることを理解すべきである。例えば、本明細書において開示された技術は、ハードウェアリソース、データ記憶リソース、データ通信リソース、ネットワークリソース、データベースリソースおよび他の種類のコンピューティングリソースで利用されて良い。
【0105】
図13に示すデータセンター1204はまた、サービス・プロバイダーネットワーク110内にあるデータセンター1204の操作を管理するソフトウェア・コンポーネント、サーバコンピュータ1302、仮想マシンインスタンス、および他のリソースを実行するために確保されているサーバコンピュータ1302Fを含む。サーバコンピュータ1302Fはまた、コンテキストマネージャ124Aを実行して良いし、データストア134Aを含んで良い。これら構成要素の各々の操作に関する詳細は上に提供されている。この点について、これら構成要素は、サービス・プロバイダーネットワーク110内において実行されるものとして説明されているが、サービス・プロバイダーネットワーク110の外部にあるコンピューティング・システムもこれら構成要素の一部または全てを実行するために利用されて良いことを理解すべきである。他の構成もまた利用されて良い。
【0106】
図13に示すデータセンター1204の例において、適切なローカルエリアネットワーク(「LAN」)1305を利用してサーバコンピュータ1302A〜1302Eおよびサーバコンピュータ1302Fが相互接続される。LAN1305はまた、図12に説明されるネットワーク1230に接続される。図12および図13に図示される構成およびネットワーク・トポロジは、大いに簡素化されており、さらに多くのコンピューティング・システム、ネットワーク、およびネットワーク機器が、本明細書に開示されたさまざまなコンピューティング・システムを相互接続するために利用されて良いことを理解すべきである。適切な負荷分散デバイスまたはソフトウェアモジュールもまた、データセンター1204A〜1204Nの各々の間、各データセンター1204におけるサーバコンピュータ1302A〜1302Fの各々の間、および、仮想マシンインスタンスとサービス・プロバイダーネットワーク110によって提供される他の種類のコンピューティングリソースとの間で負荷を分散させるために利用されて良い。
【0107】
図13に記載されるデータセンター1204は、例示的なものに過ぎず、他の実装もまた利用されて良いことを理解すべきである。さらに、これら構成要素によって提供される機能は、ソフトウェア、ハードウェア、またはソフトウェアおよびハードウェアの組み合わせによって実装されて良いことを理解すべきである。その他の実装は当業者に自明であろう。
【0108】
図14は、上述のようにアプリケーションデータをユーザに提供するコンテキストセンシティブ・フレームワークを使用するためのプログラム構成要素を実行できるコンピュータ1400用のコンピュータアーキテクチャの例を示す。図14に示すコンピュータアーキテクチャは、従来のサーバコンピュータ、ワークステーション、デスクトップ・コンピュータ、ラップトップ、タブレット、ネットワークアプライアンス、携帯情報端末(「PDA」)、電子書籍リーダ、デジタル携帯電話、または他のコンピューティング装置を例示し、本明細書において提示されたソフトウェア・コンポーネントのいずれかを実行するために利用されて良い。例えば、図14に示すコンピュータアーキテクチャは、上記のように操作を実行するソフトウェア・コンポーネントを実行するために利用されて良い。図14に示すコンピュータアーキテクチャはまた、コンピューティング装置102、コンテクスチュアル・サービス104において利用されるコンピューティング装置、アプリケーション・サービス106またはアプリケーション実行サービス108または本明細書に記載された他のいかなるコンピューティング・システムを実装するためにも利用されて良い。
【0109】
コンピュータ1400は、数多くの構成要素またはデバイスがシステム・バスまたは電気通信パスを経由して接続され得るプリント基板であるベースボード1402、または「マザーボード」を含む。一説明例では、1つ以上の中央処理装置(「CPU(複数可)」)1404が、チップセット1406と連動して動作する。CPU(複数可)1404は、コンピュータ1400の動作に必要な算術演算および論理演算を実行する標準プログラム可能プロセッサであって良い。
【0110】
CPU(複数可)1404は、これらの状態間で差異を生じこれらの状態を変化させるスイッチング素子の動作を通して、1つの離散物理的状態から次の状態へ遷移することにより動作を実行する。スイッチング素子は通常論理ゲートなど1つ以上の他のスイッチング素子の状態の論理結合に基づいて出力状態を提供する、例えばフリップフロップおよび電子回路などの2つのバイナリ状態のうちの1つを維持する電子回路を含んで良い。これらの基本的なスイッチング素子は、レジスタ、加算器減算器、算術論理ユニット、浮動小数点ユニットなどを含むより複雑な論理回路を作成するため組み合わされて良い。
【0111】
チップセット1406は、CPU(複数可)1404とベースボード1402上の構成要素およびデバイスの残りの部分との間のインタフェースを提供する。チップセット1406は、コンピュータ1400内のメインメモリとして使用されるRAM1408へのインタフェースを提供して良い。チップセット1406は、例えばコンピュータ1400の起動を助けてさまざまな構成要素およびデバイス間で情報を転送する基本的なルーチンを記憶する読出専用メモリ(「ROM」)1410または不揮発性RAM(「NVRAM」)などコンピュータ可読記憶媒体へのインタフェースをさらに提供して良い。ROM1410またはNVRAMはまた、本明細書に記載された実施例に従って、コンピュータ1400の動作に必要な他のソフトウェア・コンポーネントを記憶して良い。
【0112】
コンピュータ1400は、ローカルエリアネットワーク1420などのネットワークを介してリモートコンピューティング装置およびコンピュータ・システムに対する論理接続を使用するネットワーク環境において動作して良い。チップセット1406は、例えばギガビットイーサネットアダプタなどのネットワークインタフェースコントローラ(「NIC」)1412を介してネットワークの接続性を提供する機能を含んで良い。NIC1412は、ローカルエリアネットワーク1420上でコンピュータ1400を他のコンピューティング装置に接続できる。複数のNIC1412がコンピュータ1400内に存在し、コンピュータを他の種類のネットワークおよびリモートコンピュータ・システムに接続することを理解すべきである。
【0113】
コンピュータ1400は、コンピュータ用の不揮発性記憶装置を提供する例えばデータストア134などのデータストアに接続されて良い。データストア134は、本明細書においてより詳細に説明されるシステムプログラム、アプリケーションプログラム、他のプログラムモジュールおよびデータを格納して良い。データストア134は、チップセット1406に接続された記憶制御装置1414を経由してコンピュータ1400に接続されて良い。データストア134は1つ以上の物理記憶ユニットで構成されて良い。記憶制御装置1414は、コンピュータおよび物理記憶ユニット間で物理的に接続しデータを転送するシリアル接続SCSI(「SAS」)インタフェース、シリアル・アドバンスド・テクノロジー・アタッチメント(「SATA」)インタフェース、ファイバチャネル(「FC」)インタフェースまたは他のタイプのインタフェースを介して、物理記憶ユニットとインタフェースをとって良い。
【0114】
コンピュータ1400は、記憶される情報を反映するため物理記憶ユニットの物理的状態を変換することにより、データストア134に関するデータを記憶して良い。具体的な物理的状態の変換は、本明細書の異なる実装におけるさまざまな要因に依存し得る。そのような要因の例は、物理記憶ユニットを実装するために使用される技術、データストア134が一次記憶装置または二次記憶装置として特徴づけられるかどうか、などが挙げられるがこれに限定されるものではない。
【0115】
例えば、コンピュータ1400は、記憶制御装置1414を経由して命令を発行することにより情報をデータストア134に記憶して、磁気ディスク・ドライブユニット内の特定の位置の磁気特性、光記憶ユニット内の特定の位置の反射特性または屈折特性、または、特定のコンデンサ、トランジスタ、または固体記憶ユニット内の他の別個の構成要素の電気特性を変更することができる。物理メディアの他の変換は、本明細書の範囲および精神を逸脱しない範囲で実現可能であり、上述の実施例は説明を容易にするためのみに提供される。コンピュータ1400は、物理記憶ユニット内の1つ以上の特定の位置の物理的状態または特性を検出することにより、データストア134からの情報をさらに読み取ることができる。
【0116】
上述のデータストア134の他に、コンピュータ1400は、例えばプログラムモジュール、データ構造、または他のデータなどの情報を記憶するおよび読み出すための他のコンピュータ可読記憶媒体にアクセスして良い。コンピュータ可読記憶媒体は、データの非一時的記憶装置のために備えられ、コンピュータ1400によってアクセスされ得る任意の入手可能な媒体であることを、当業者が理解するべきである。
【0117】
制約条件としてではなく例として、コンピュータ可読記憶媒体は、任意の方法または技術において実装される揮発性および不揮発性の、リムーバブルおよび非リムーバブルメディアを含んで良い。コンピュータ可読記憶媒体は、RAM、ROM、消去可能プログラム可能ROM(「EPROM」)、電気的消去可能型プログラム可能ROM(「EEPROM」)、フラッシュメモリまたは他の固体メモリ技術、コンパクトディスクROM(「CD−ROM」)、デジタル多用途ディスク(「DVD」)、高解像度DVD(「HD−DVD」)、ブルーレイ、または他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、または非一時的な方法で所望の情報を記憶するために使用できる他の任意の媒体を含むが、これらに限らない。
【0118】
データストア134は、コンピュータ1400の操作を制御するのに利用されるオペレーティング・システム1430を格納して良い。一実施例によれば、オペレーティング・システムは、LINUXオペレーティング・システムを含む。別の実施例によれば、オペレーティング・システムは、マイクロソフト社からのWINDOWS(登録商標)SERVERオペレーティング・システムを含む。さらなる実施例によれば、オペレーティング・システムは、UNIXオペレーティング・システムまたはANDROIDオペレーティング・システムを含み得る。他のオペレーティング・システムもまた利用されて良いことを理解すべきである。データストア134は、コンテキストマネージャ124、アプリケーション114および/または他のいかなるソフトウェア・コンポーネントおよび上述のデータを含む構成要素などの、他のシステムまたはアプリケーションプログラムおよびコンピュータ1400によって利用されるデータを格納して良い。データストア134はまた、本明細書では具体的に特定されていない他のプログラムおよびデータを格納して良い。
【0119】
一実施例では、データストア134または他のコンピュータ可読記憶媒体は、コンピュータ1400にロードされるとコンピュータを汎用コンピューティング・システムから本明細書に記載された実施例を実施できる専用コンピュータに変換するコンピュータ実行可能な命令でエンコードされる。これらのコンピュータ実行可能命令は、上記のように、状態間でどのようにCPU(複数可)1404が遷移するかを指定することにより、コンピュータ1400を変換する。一実施例によれば、コンピュータ1400は、コンピュータ1400に実行されると図6−11に関して上述のさまざまなルーチンを実行するコンピュータ実行可能な命令を記憶するコンピュータ可読記憶媒体へのアクセスを有する。コンピュータ1400は、本明細書に記載された他のコンピュータ実行型操作のいずれかを実行するコンピュータ可読記憶媒体を含み得る。
【0120】
コンピュータ1400はまた、キーボード、マウス、タッチパッド、タッチスクリーン、電子スタイラス、または他のタイプの入力装置などの多数の入力装置から入力を受信して処理する1つ以上の入出力制御装置1416を含んで良い。同様に、入出力制御装置1416は、コンピュータモニタ、フラットパネルディスプレイ、デジタルプロジェクタ、プリンタ、プロッタ、または他のタイプの出力装置などのディスプレイに出力を提供して良い。コンピュータ1400は、図14に示す構成要素の全ては含まない場合があり、図14に明示的に示されていないその他のコンポーネントを含んで良く、または、図14に示すものとは完全に異なるアーキテクチャを使用して良いことが理解されるだろう。
【0121】
上述の事項を踏まえると、現在のコンテキストに対する関連アプリケーションを識別し、関連アプリケーションから受信したデータをユーザに提供する、コンテキストセンシティブ・フレームワークを使用する技術が本明細書において提示されたことを理解すべきである。さらに、本明細書において提示された主題事項はコンピュータの構造的特徴、方法論的動作およびコンピュータ可読媒体に特有の言語において説明されたが、請求項で規定される本発明は、本明細書に記載された特定の機能、動作、または媒体に必ずしも限定されないことを理解すべきである。むしろ、特定の機能、動作、および媒体は、請求項を実施する形態の例として開示されている。
【0122】
上述の主題事項は、例として提供されており、制限するものと解釈すべきでない。さらに、クレームされた主題事項は、本開示の任意の一部に記された一部のあるいは全ての不都合を解決する実装に限定されない。図示され説明された実施例およびアプリケーションの例にしたがうことなく、また、以下の請求の範囲において記載された本発明の真の精神および範囲から逸脱しない範囲において、本明細書に記載された主題事項に対してさまざまな修正および変更がなされて良い。
【0123】
主題事項は、構造的特徴および/または方法論的動作に特有の言語において説明されたが、添付の請求の範囲で定義された主題事項は、記載された特定の機能または動作に必ずしも限定されないことを理解すべきである。上述の事項は、以下の条項を考慮しても理解され得る。
【0124】
1.コンピュータ実行可能命令をその上に記憶して有する非一時的コンピュータ可読記憶媒体であって、コンピュータによって実行されるとき、前記コンピュータに対して、
コンテキストデータであって、前記コンピュータのユーザの使用に関連付けられた前記コンテキストデータを取得させ、
前記コンテキストデータを含む第1データをネットワークベースのコンテクスチュアル・サービスに送信させ、
前記ネットワークベースのコンテクスチュアル・サービスから、第2データであって、前記現在のコンテキストに関連している前記コンテクスチュアル・サービスによって決定されるアプリケーションを識別する前記第2データを受信させ、
前記アプリケーションを起動させ、
前記アプリケーションから第3データを取得させ、
前記第3データの少なくとも一部をユーザインタフェース内で提供させる、
前記非一時的コンピュータ可読記憶媒体。
【0125】
2.前記命令はコンピュータに対してさらに、1つ以上の前記アプリケーションを電子マーケットから取得し、前記1つ以上の前記アプリケーションを前記コンピュータ上にインストールさせる、条項1に記載の非一時的コンピュータ可読記憶媒体。
【0126】
3.前記アプリケーションを起動させることは、サービス・プロバイダーネットワークにおける1つ以上の前記アプリケーションを実行することを含む、条項1に記載の非一時的コンピュータ可読記憶媒体。
【0127】
4.前記コンテキストデータは、前記コンピュータの場所、時間、または前記コンピュータによって実行される現在の動作のうちの1つ以上を含む、条項1に記載の非一時的コンピュータ可読記憶媒体。
【0128】
5.前記命令は前記コンピュータに対してさらに、前記コンテキストデータを更新させ、前記更新されたコンテキストデータを前記ネットワークベースのコンテクスチュアル・サービスに送信させる、条項1に記載の非一時的コンピュータ可読記憶媒体。
【0129】
6.システムであって、
コンピューティング装置からコンテキストデータを受信することと、
前記コンテキストに関連しているアプリケーションを識別することであって、
関連している前記アプリケーションの識別は、前記コンテキストデータに少なくとも部分的に基づく、前記アプリケーションを識別することと、
前記コンテキストデータの少なくとも一部を前記コンテキストに関連していると識別された前記アプリケーションに送信することと、
アプリケーションデータを前記アプリケーションの少なくとも一部から受信することであって、
前記コンテキストデータの前記少なくとも前記一部に少なくとも部分的に基づいて、前記アプリケーションが、提供する前記アプリケーションデータを少なくとも一部において選択する、前記アプリケーションの少なくとも一部から受信することと、
前記コンピューティング装置に提供される前記アプリケーションデータの前記少なくとも一部を選択することと、
前記アプリケーションデータの前記少なくとも前記一部を前記コンピューティング装置に提供することと、
をするように動作する、1つ以上のコンピューティング装置を含む、前記システム。
【0130】
7.前記アプリケーションデータの前記少なくとも前記一部を前記コンピューティング装置に提供することは、異なるアプリケーションからのデータを表示するために使用されるユーザインタフェース内でディスプレイするために前記アプリケーションデータの前記少なくとも前記一部をフォーマットすることを含む、条項6に記載のシステム。
【0131】
8.前記コンテキストに関連しているアプリケーションを識別することは、登録データにアクセスすること、および、前記登録データを使用して前記コンテキストデータに応答して起動されるように登録されたアプリケーションを識別することを含む、条項6に記載のシステム。
【0132】
9.前記1つ以上のコンピューティング装置はさらに、前記アプリケーションデータから重複データを削除し、前記アプリケーションデータを編成するように動作し、前記アプリケーションデータの前記編成は、ユーザ選好に少なくとも部分的に基づいている、条項6に記載のシステム。
【0133】
10.前記1つ以上のコンピューティング装置はさらに、前記アプリケーションの少なくとも1つから、更新されたコンテキストデータを作成するために前記1つ以上のコンピューティング装置によって使用されるデータを受信するように動作する、条項6に記載のシステム。
【0134】
11.前記1つ以上のコンピューティング装置はさらに、アナリティクスを提供するように動作し、前記アナリティクスは、使用状況データおよび利益データを含む、条項6に記載のシステム。
【0135】
12.前記アプリケーションデータの前記少なくとも前記一部を提供することは、前記コンピューティング装置に機能を実行させることを含む、条項6に記載のシステム。
【0136】
13.前記アプリケーションデータを受信することは、前記アプリケーションデータの少なくとも一部をオペレーティング・システムの一部であるアプリケーションから受信することを含む、条項6に記載のシステム。
【0137】
14.前記1つ以上のコンピューティング装置はさらに、前記アプリケーションの個々が、前記コンピューティング装置上にインストールされていないと決定するように動作し、個々の1つ以上の前記アプリケーションを前記コンピューティング装置上にインストールする、条項6に記載のシステム。
【0138】
15.前記1つ以上のコンピューティング装置はさらに、前記コンピューティング装置とは別個であるサービスから前記アプリケーションの少なくとも一部を実行するように動作する、条項6に記載のシステム。
【0139】
16.
コンピューティング装置からコンテキストデータを受信すること、
前記コンテキストに関連しているアプリケーションを識別することであって、
関連している前記アプリケーションの識別は、前記コンテキストデータに少なくとも部分的に基づく、前記アプリケーションを識別することと、
前記コンテキストデータの少なくとも一部を前記コンテキストに関連していると識別された前記アプリケーションに送信することと、
前記アプリケーションからアプリケーションデータを受信することであって、
前記コンテキストデータの前記少なくとも一部に少なくとも部分的に基づいて、前記アプリケーションが、提供する前記アプリケーションデータを少なくとも一部において選択する、前記アプリケーションデータを受信することと、
前記コンピューティング装置に提供される前記アプリケーションデータの少なくとも一部を選択することと、
前記アプリケーションデータの前記少なくとも前記一部を前記コンピューティング装置に提供すること、
を含む、コンピュータ実装方法。
【0140】
17.前記アプリケーションのうちの1つ以上を前記コンピューティング装置上にインストールさせ、前記コンピューティング装置上で起動させることをさらに含む、条項16に記載のコンピュータ実装方法。
【0141】
18.前記アプリケーションのうちの1つ以上を前記コンピューティング装置とは別個のサービスから実行させることをさらに含む、条項16に記載のコンピュータ実装方法。
【0142】
19.前記コンテキストに関連しているアプリケーションを識別することは、登録データにアクセスし、前記登録データを使用して、前記コンテキストデータに応答して起動されるように登録された1つ以上のアプリケーションを識別することを含む、条項16に記載のコンピュータ実装方法。
【0143】
20.前記アプリケーションデータの前記少なくとも前記一部を表示のため前記コンピューティング装置に提供することは、顧客の選好に少なくとも部分的に基づいて前記アプリケーションデータを編成することを含む、条項16に記載のコンピュータ実装方法。
【0144】
21.コンピュータ実行可能命令をその上に記憶して有する非一時的コンピュータ可読記憶媒体であって、コンピュータによって実行されるとき、
コンテキストデータを受信することであって、
前記コンテキストデータは、ユーザのコンピューティング装置の使用に関連付けられる、前記コンテキストデータを受信することと、
前記コンテキストに関連する第1アプリケーションを識別することと、
前記コンテキストデータを記第1アプリケーションに送信することと、
第1アプリケーションデータを前記第1アプリケーションから受信することであって、
前記第1アプリケーションは、前記第1アプリケーションデータを、前記コンテキストデータに少なくとも部分的に基づいて提供する、前記第1アプリケーションから受信することと、
前記第1アプリケーションデータの少なくとも一部および前記コンテキストデータを第2アプリケーションに送信することと、
第2アプリケーションデータを前記第2アプリケーションから受信することであって、
前記第2アプリケーションは、前記第1アプリケーションデータおよび前記コンテキストデータに少なくとも部分的に基づく、前記第2アプリケーションから受信することと、
前記第1アプリケーションデータおよび前記第2アプリケーションデータのうち1つ以上の少なくとも一部を前記ユーザのコンピューティング装置に提供することと、を前記コンピュータにさせる、前記非一時的コンピュータ可読記憶媒体。
【0145】
22.前記命令は、前記コンピュータに対してさらに、前記第1アプリケーションからのデータを受信するために前記第2アプリケーションはコンテクスチュアル・サービスに登録されていることを判定させる、条項21に記載の前記非一時的コンピュータ可読記憶媒体。
【0146】
23.前記第1アプリケーションおよび前記第2アプリケーションは、アプリケーションプログラミングインターフェース(API)を利用してコンテクスチュアル・サービスに登録し、前記第1アプリケーションまたは前記第2アプリケーションのうちの1つ以上は、イベントを前記コンテクスチュアル・サービスに登録する、条項21に記載の前記非一時的コンピュータ可読記憶媒体。
【0147】
24.前記APIは、前記第1アプリケーションが前記第2アプリケーションと通信し、前記第2アプリケーションが前記第1アプリケーションと通信するための機能を提供する、条項23に記載の前記非一時的コンピュータ可読記憶媒体。
【0148】
25.前記コンテキストデータは、前記ユーザのコンピューティング装置の場所および前記ユーザのコンピューティング装置の現在の動作を識別する、条項21に記載の前記非一時的コンピュータ可読記憶媒体。
【0149】
26.
コンテキストデータを受信することと、
前記コンテキストに関連する第1アプリケーションを識別することと、
前記コンテキストデータを前記第1アプリケーションに送信することと、
第1アプリケーションデータを前記第1アプリケーションから受信することであって、
前記第1アプリケーションデータは前記コンテキストデータに少なくとも部分的に基づいており、前記第1アプリケーションデータの少なくとも一部は第2アプリケーションを対象とする、前記第1アプリケーションから受信することと、
前記少なくとも前記一部の前記第1アプリケーションデータを前記第2アプリケーションに提供することであって、
前記第1アプリケーションデータは前記第2アプリケーションによって使用される、前記少なくとも前記一部の前記第1アプリケーションデータを前記第2アプリケーションに提供することと、
をするように動作する1つ以上のコンピューティング装置を含む、システム。
【0150】
27.前記1つ以上のコンピューティング装置はさらに、前記第1アプリケーションデータおよび前記コンテキストデータを使用して、更新されたコンテキストデータを作成するため前記コンテキストデータを更新するように動作する、条項26に記載のシステム。
【0151】
28.前記1つ以上のコンピューティング装置はさらに、前記更新されたコンテキストデータを前記第2アプリケーションに提供するように動作する、条項27に記載のシステム。
【0152】
29.前記第2アプリケーションは、前記更新されたコンテキストデータに少なくとも部分的に基づいて、第2アプリケーションデータを生成する、条項28に記載のシステム。
【0153】
30.前記コンテキストデータと前記第1アプリケーションおよび前記第2アプリケーションによって指定された登録データとが一致するという通知を受信するために、前記第1アプリケーションおよび前記第2アプリケーションは、前記1つ以上のコンピューティング装置に登録する、条項26に記載のシステム。
【0154】
31.前記第1アプリケーションおよび前記第2アプリケーションは、アプリケーションプログラミングインターフェース(API)を利用して通信し、前記APIは、前記第1アプリケーションが前記第2アプリケーションと通信するための機能を提供する、条項26に記載のシステム。
【0155】
32.前記第1アプリケーションまたは前記第2アプリケーションのうちの1つ以上はアプリケーションプログラミングインターフェース(API)を利用してイベントを記述し、前記イベントを検出したことに応答して、前記1つ以上のコンピューティング装置はさらに、前記イベントの発生の通知を受信するため登録していた別のアプリケーションを決定するように動作する、条項26に記載のシステム。
【0156】
33.前記1つ以上のコンピューティング装置はさらに、前記第1アプリケーションまたは前記第2アプリケーションのうちの1つ以上をリモートコンピューティング装置上で起動するように動作する、条項26に記載のシステム。
【0157】
34.前記1つ以上のコンピューティング装置はさらに、前記第1アプリケーションまたは前記第2アプリケーションのうちの1つ以上に対して、サービス・プロバイダーネットワーク内で起動させるように動作する、条項26に記載のシステム。
【0158】
35.
コンテキストデータを受信することと、
前記コンテキストに関連しているアプリケーションを識別することであって、
前記アプリケーションは、第1アプリケーションおよび第2アプリケーションを含む、前記アプリケーションを識別することと、
前記コンテキストデータを前記アプリケーションに送信することと、
前記第1アプリケーションから第1アプリケーションデータを受信することであって、
前記第1アプリケーションデータは前記コンテキストデータも少なくとも部分的に基づいており、前記第1アプリケーションデータの少なくとも一部は第2アプリケーションを対象とする、前記第1アプリケーションデータを受信することと、
前記第1アプリケーションデータの前記少なくとも前記一部を前記第2アプリケーションに提供することと、
を含む、コンピュータ実装方法。
【0159】
36.前記第1アプリケーションによって提供される前記第1アプリケーションデータを使用して、更新されたコンテキストデータを作成するため前記コンテキストデータを更新することをさらに含む、条項35に記載のコンピュータ実装方法。
【0160】
37.前記更新されたコンテキストデータを前記アプリケーションの少なくとも一部に提供することであって、
前記アプリケーションの前記少なくとも前記一部は、前記更新されたコンテキストデータに少なくとも部分的に基づいて、アプリケーションデータを生成する、前記アプリケーションの少なくとも一部に提供すること、
をさらに含む、条項36に記載のコンピュータ実装方法。
【0161】
38.前記第1アプリケーションまたは前記第2アプリケーションのうちの1つ以上は、アプリケーションプログラミングインターフェース(API)を利用してイベントを記述し、前記イベントを検出したことに応答して、前記イベント発生の通知を受信するため登録していた別のアプリケーションを決定する、条項35に記載のコンピュータ実装方法。
【0162】
39.前記第1アプリケーションおよび前記第2アプリケーションは、前記コンテキストデータが登録データに一致するという通知を受信するために、ネットワークベースのコンテクスチュアル・サービスに登録する、条項35に記載のコンピュータ実装方法。
【0163】
40.前記第1アプリケーションおよび前記第2アプリケーションは、アプリケーションプログラミングインターフェース(API)を利用して通信し、前記APIは、コンテクスチュアル・サービスと通信するために、前記第1アプリケーションおよび前記第2アプリケーションによって使用される、条項35に記載のコンピュータ実装方法。
【0164】
41.システムであって、
位置データ、移動データ、動作データ、生体データ、または気象データのうちの1つ以上を含むセンサデータを提供するように動作する1つ以上のセンサと、
1つ以上のコンピューティング装置であって、
前記センサから前記センサデータを要求することと、
前記センサデータに少なくとも部分的に基づいて、コンテキストデータを作成することと、
前記コンテキストデータをネットワークベースのコンテクスチュアル・サービスに送信することと、
前記コンテクスチュアル・サービスから、前記コンテキストに関連していると前記コンテクスチュアル・サービスに判定されたアプリケーションの識別を受信することと、
前記アプリケーションのうちの1つ以上を起動させることと、
前記1つ以上のアプリケーションからアプリケーションデータを取得することであって、
前記アプリケーションデータは、前記コンテキストデータに少なくとも部分的に基づいて、前記1つ以上のアプリケーションよって提供される、前記アプリケーションデータを取得することと、
行動を実行するため前記アプリケーションデータの少なくとも一部を提供することと、
をするように動作する前記1つ以上のコンピューティング装置と、
を含む、前記システム。
【0165】
42.前記1つ以上の前記アプリケーションを起動させることは、サービス・プロバイダーネットワーク内で前記1つ以上のアプリケーションを実行させることを含む、条項41に記載のシステム。
【0166】
43.前記行動を実行することは、前記アプリケーションデータの前記少なくとも前記一部をディスプレイ上に提示すること、または前記アプリケーションデータの前記少なくとも前記一部を使用してコンピューティング装置の操作を変更することのうちの1つ以上を含む、条項41に記載のシステム。
【0167】
44.前記1つ以上のコンピューティング装置はさらに、
前記センサデータにおける変化に応答して更新されたコンテキストデータを作成するために前記コンテキストデータを更新することと、
前記更新されたコンテキストデータを前記コンテクスチュアル・サービスに送信することと、
をするように動作する、条項41に記載のシステム。
【0168】
45.前記アプリケーションは、アプリケーションプログラミングインターフェース(API)を利用して、前記コンテクスチュアル・サービスと通信する、条項41に記載のシステム。
【0169】
46.システムであって、
コンテクスチュアル・サービスを提供するように動作する1つ以上の第1コンピューティング装置であって、
前記1つ以上の第1コンピューティング装置は、
コンテキストデータを受信するここと、
前記コンテキストデータに少なくとも部分的に基づいて、前記コンテキストに関連しているアプリケーションを識別することと、
前記コンテキストデータを前記コンテキストに関連していると識別された前記アプリケーションに送信することと、
前記アプリケーションからアプリケーションデータを受信することであって、前記アプリケーションは、前記コンテキストデータに少なくとも部分的に基づいて、提供するアプリケーションデータを選択する、前記アプリケーションデータを受信することと、
提供する前記アプリケーションデータの少なくとも一部を選択することと、
行動を実行するために前記アプリケーションデータの前記少なくとも前記一部を提供することと、
をするように動作する前記1つ以上の第1コンピューティング装置を含む、前記システム。
【0170】
47.前記動作は、前記アプリケーションデータの前記少なくとも前記一部をユーザインタフェース内に表示することを含む、条項46に記載のシステム。
【0171】
48.前記動作は、前記アプリケーションデータの前記少なくとも前記一部に少なくとも部分的に基づいて、1つ以上の第2コンピューティング装置の動作を変更することを含む、条項46に記載のシステム。
【0172】
49.前記コンテクスチュアル・サービスによる要求に応答して1つ以上の前記アプリケーションを実行するように動作する1つ以上の第2コンピューティング装置をさらに含む、条項46に記載のシステム。
【0173】
50.前記1つ以上の第1コンピューティング装置はさらに、リモートコンピューティング装置上に前記アプリケーションのうちの1つ以上をインストールさせるように動作する、条項46に記載のシステム。
【0174】
51.前記1つ以上の第1コンピューティング装置はさらに、前記リモートコンピューティング装置上で前記アプリケーションのうちの前記1つ以を起動させるように動作する、条項50に記載のシステム。
【0175】
52.前記1つ以上の第1コンピューティング装置はさらに、前記リモートコンピューティング装置上で起動された前記アプリケーションのうちの前記1つ以上によって提供される前記アプリケーションデータを受信するように動作する、条項50に記載のシステム。
【0176】
53.前記1つ以上のコンピューティング装置はさらに、使用状況データおよび利益データを含むアナリティクスを提供するように動作する、条項46に記載のシステム。
【0177】
54.前記アプリケーションは、アプリケーションプログラミングインターフェース(API)を利用して、前記コンテクスチュアル・サービスと通信する、条項46に記載のシステム。
【0178】
55.前記アプリケーションは、互いに通信するため前記APIを利用する条項54に記載のシステム。
【0179】
56.
コンテクスチュアル・サービスでコンテキストデータを受信することと、
前記コンテキストに関連しているアプリケーションを識別することであって、
前記アプリケーションの前記識別は、前記コンテキストデータに少なくとも部分的に基づく、前記アプリケーションを識別することと、
前記コンテキストに関連している前記アプリケーションを起動することと、
前記コンテキストデータを前記アプリケーションに送信することと、
前記アプリケーションからアプリケーションデータを受信することであって、 前記アプリケーションは、前記コンテキストデータに少なくとも部分的に基づいて、提供する前記アプリケーションデータを選択する、前記アプリケーションデータを受信することと、
提供する前記アプリケーションデータの少なくとも一部を選択することと、
前記アプリケーションデータの前記少なくとも前記一部を提供することと、
を含む、コンピュータ実装方法。
【0180】
57.前記アプリケーションを起動することは、1つ以上のコンピューティング装置に前記アプリケーションを実行させることを含む、条項56に記載のコンピュータ実装方法。
【0181】
58.前記アプリケーションを起動することは、サービス・プロバイダーネットワークの一部である1つ以上のコンピューティング装置に前記アプリケーションのうちの1つ以上を実行させることを含む、条項56に記載のコンピュータ実装方法。
【0182】
59.リモートコンピューティング装置上に前記アプリケーションのうちの1つ以上をインストールさせることをさらに含む、条項56に記載のコンピュータ実装方法。
【0183】
60.前記アプリケーションは、アプリケーションプログラミングインターフェース(API)を利用して、前記コンテクスチュアル・サービスと通信する、条項56に記載のコンピュータ実装方法。
【0184】
61.コンピュータ実行可能命令をその上に記憶して有する非一時的コンピュータ可読記憶媒体であって、コンピュータによって実行されるとき、
コンテキストデータを取得することであって、
前記コンテキストデータは、前記コンピュータのユーザの使用を表す、前記コンテキストデータを取得することと、
前記コンテキストデータをネットワークベースのコンテクスチュアル・サービスに送信することと、
前記ネットワークベースのコンテクスチュアル・サービスから、識別データを受信することであって、
前記識別データは、前記コンテキストに対する関連アプリケーションを識別し、前記関連アプリケーションは、前記関連アプリケーションによって受信されるデータに少なくとも部分的に基づいて識別される、前記識別データを受信することと、
前記関連アプリケーションからアプリケーションを識別することと、
前記識別に応答して前記アプリケーションを起動することと、
を前記コンピュータにさせる、前記非一時的コンピュータ可読記憶媒体。
【0185】
62.前記アプリケーションを起動させることは、前記アプリケーションを前記コンピュータにダウンロードすること、前記コンピュータ上に前記アプリケーションをインストールすること、および、前記コンピュータ上に前記アプリケーションを起動することを含む、条項61に記載の非一時的コンピュータ可読記憶媒体。
【0186】
63.前記命令はコンピュータに対してさらに、前記コンテキストにおける変さらに応答して、前記コンピュータから前記アプリケーションを削除させる、条項62に記載の非一時的コンピュータ可読記憶媒体。
【0187】
64.前記コンテキストに関連付けられた前記コンテキストデータは、前記コンピュータの場所および前記コンピュータの現在の動作を識別する、条項61に記載の非一時的コンピュータ可読記憶媒体。
【0188】
65.前記アプリケーションを起動させることは、前記コンピュータとは別個のサービス・プロバイダーネットワーク内に前記アプリケーションを起動させることを含む、条項61に記載の非一時的コンピュータ可読記憶媒体。
【0189】
66.システムであって、
1つ以上の第1コンピューティング装置であって、
第2コンピューティング装置に関連付けられたコンテキストデータを受信することと、
前記コンテキストに関連している1つ以上のアプリケーションを識別することであって、
前記1つ以上のアプリケーションのうち少なくとも1つの識別は、前記1つ以上のアプリケーションから受信したアプリケーションデータに少なくとも部分的に基づく、前記1つ以上のアプリケーションのうち少なくとも1つを識別することと、
識別データを前記第2コンピューティング装置に送信することであって、
前記識別データは、前記コンテキストに関連している前記1つ以上のアプリケーションを示し、前記識別データは、前記1つ以上のアプリケーションのうち少なくとも1つを起動するため前記第2コンピューティング装置によって使用される、前記識別データを前記第2コンピューティング装置に送信することと、
をするように動作する前記1つ以上の第1コンピューティング装置を含む、前記システム。
【0190】
67.前記1つ以上のアプリケーションのうち前記少なくとも1つを前記起動することは、前記1つ以上のアプリケーションを前記第2コンピューティング装置上にインストールすることを含む、条項66に記載のシステム。
【0191】
68.前記コンテキストにおける変さらに応答して、前記第2コンピューティング装置から前記1つ以上のアプリケーションを削除することをさらに含む、条項67に記載のシステム。
【0192】
69.前記コンテキストデータは、前記第2コンピューティング装置の場所または前記第2コンピューティング装置に関連付けられた現在の動作のうちの1つ以上を示す、条項66に記載のシステム。
【0193】
70.前記1つ以上のアプリケーションを起動することは、前記第2コンピューティング装置による使用のために、ネットワーク・サービスにおいて前記1つ以上のアプリケーションを実行することを含む、条項66に記載のシステム。
【0194】
71.前記コンテキストに関連している前記1つ以上のアプリケーションを識別することは、前記コンテキストデータに対応する通知を受信するためコンテクスチュアル・サービスに登録されている前記1つ以上のアプリケーションを識別すること、または、前記アプリケーションの選択を受信することのうちの1つ以上を含む、条項66に記載のシステム。
【0195】
72.前記コンテキストに関連している前記1つ以上のアプリケーションを識別することは、前記第2コンピューティング装置に関連付けられたユーザのユーザ選好に少なくとも部分的に基づいて、前記1つ以上のアプリケーションをフィルタリングすることを含む、条項66に記載のシステム。
【0196】
73.前記1つ以上の第1コンピューティング装置はさらに、前記アプリケーションのうちの一つの選択を受信し、前記選択されたアプリケーションをコンテクスチュアル・サービスに関連付けられているリモートサービス上で起動させるように動作する、条項66に記載のシステム。
【0197】
74.前記1つ以上のアプリケーションのうち前記少なくとも1つは、前記1つ以上のアプリケーションのうち前記少なくとも1つの予測される将来使用に応じて前記第2コンピューティング装置上にインストールされる、条項66に記載のシステム。
【0198】
75.
コンテキストに関連付けられたコンテキストデータをコンピューティング装置から受信することと、
前記コンテキストに関連するアプリケーションを識別することであって、
前記アプリケーションの識別は、前記アプリケーションに関連付けられたアプリケーションデータに少なくとも部分的に基づく、前記アプリケーションを識別することと、
識別データを前記コンピューティング装置に送信することであって、
前記識別データは、前記コンテキストに関連する前記アプリケーションを示し、前記アプリケーションを起動するため前記コンピューティング装置によって使用される、前記識別データを前記コンピューティング装置に送信することと、
を含む、コンピュータ実装方法。
【0199】
76.前記アプリケーションの予測される将来使用に少なくとも部分的に基づいて、前記アプリケーションを前記コンピューティング装置上にインストールすること、をさらに含む、条項75に記載のコンピュータ実装方法。
【0200】
77.前記コンテキストにおける変更を受信したことに応答してアプリケーションを変更することをさらに含む、条項75に記載のコンピュータ実装方法。
【0201】
78.前記アプリケーションをネットワーク・サービスにおいて起動させることをさらに含む、条項75に記載のコンピュータ実装方法。
【0202】
79.前記コンテキストに関連する前記アプリケーションを識別することは、前記アプリケーションは、前記コンテキストデータに対応する通知を受信するためコンテクスチュアル・サービスに登録されていることを判定することを含む、条項75に記載のコンピュータ実装方法。
【0203】
80.前記コンテキストに関連する前記アプリケーションを識別することは、グラフィカル・ユーザー・インタフェースを前記コンピューティング装置に表示させ、前記グラフィカル・ユーザー・インタフェースを介して前記アプリケーションの選択を受信することを含む、条項75に記載のコンピュータ実装方法。
【0204】
以下は、親出願(特願2017−543740)の出願当初請求項である。
[請求項1]
コンピュータにより実装される方法であって、
コンピューティング装置からコンテキストデータを受信するステップと、
コンテキストに関連しているアプリケーションを、前記コンテキストデータに少なくとも部分的に基づいて識別するステップと、
前記コンテキストデータの少なくとも一部を前記コンテキストに関連していると識別された前記アプリケーションに送信するステップと、
前記アプリケーションからアプリケーションデータを受信するステップであって、前記アプリケーションが、前記コンテキストデータの前記少なくとも一部に少なくとも部分的に基づいて、提供する前記アプリケーションデータを選択するステップと、
前記コンピューティング装置に提供される前記アプリケーションデータの少なくとも一部を選択するステップと、
前記アプリケーションデータの前記少なくとも前記一部を前記コンピューティング装置に提供するステップと、
を含むコンピュータ実装方法。
[請求項2]
前記アプリケーションデータの少なくとも一部は、第2アプリケーションを対象としていると決定することに少なくとも部分的に基づいて、前記アプリケーションデータの前記少なくとも前記一部を前記第2アプリケーションに提供するステップをさらに含む、
請求項1に記載のコンピュータ実装方法。
[請求項3]
前記第1アプリケーションおよび前記第2アプリケーションは、アプリケーションプログラミングインターフェース(API)を利用して通信し、
前記APIは、前記第1アプリケーションが前記第2アプリケーションと通信するための機能を提供する、
請求項2に記載のコンピュータ実装方法。
[請求項4]
前記アプリケーションのうちの1つ以上を前記コンピューティング装置上にインストールさせ、起動させるステップをさらに含む、
請求項1に記載のコンピュータ実装方法。
[請求項5]
1つ以上の前記アプリケーションを前記コンピューティング装置とは別個のサービスから実行させるステップをさらに含む、
請求項1に記載のコンピュータ実装方法。
[請求項6]
位置データ、移動データ、動作データ、生体データまたは気象データのうちの1つ以上を含むセンサデータを提供するように動作する1つ以上のセンサと、
1つ以上のコンピューティング装置と、
を含むシステムであって、
前記1つ以上のコンピューティング装置は、
前記センサから前記センサデータを要求するステップと、
前記センサデータに少なくとも部分的に基づいて、コンテキストデータを作成するステップと、
前記コンテキストデータをネットワークベースのコンテクスチュアル・サービスに送信するステップと、
前記コンテクスチュアル・サービスから、コンテキストに関連していると前記コンテクスチュアル・サービスにより判定されたアプリケーションの識別を受信するステップと、
前記アプリケーションのうちの1つ以上を起動させるステップと、
前記1つ以上のアプリケーションからアプリケーションデータを取得するステップであって、前記アプリケーションデータは、前記コンテキストデータに少なくとも部分的に基づいて、前記1つ以上のアプリケーションよって提供されるステップと、
動作を実行するために前記アプリケーションデータの少なくとも一部を提供するステップと、
を行うように動作する、
システム。
[請求項7]
前記1つ以上のアプリケーションを起動させるステップは、サービス・プロバイダーネットワーク内で前記1つ以上のアプリケーションを実行させるステップを含む、
請求項6に記載のシステム。
[請求項8]
前記動作を実行するステップは、前記アプリケーションデータの前記少なくとも前記一部をディスプレイ上に提示するステップ、または、前記アプリケーションデータの前記少なくとも前記一部を使用してコンピューティング装置の動作を変更するステップのうちの1つ以上を含む、
請求項6に記載のシステム。
[請求項9]
前記1つ以上のコンピューティング装置は、
前記センサデータにおける変化に応答して更新されたコンテキストデータを作成するため前記コンテキストデータを更新するステップと、
前記更新されたコンテキストデータを前記コンテクスチュアル・サービスに送信するステップと、
をさらに行うように動作する、
請求項6に記載のシステム。
[請求項10]
前記アプリケーションは、アプリケーションプログラミングインターフェース(API)を利用して、前記コンテクスチュアル・サービスと通信する、
請求項6に記載のシステム。
[請求項11]
1つ以上の第1コンピューティング装置を含むシステムであって、
前記1つ以上の第1コンピューティング装置は、
第2コンピューティング装置に関連付けられたコンテキストデータを受信するステップと、
コンテキストに関連している1つ以上のアプリケーションを、前記1つ以上のアプリケーションから受信したアプリケーションデータに少なくとも部分的に基づいて識別するステップと、
識別データを前記第2コンピューティング装置に送信するステップであって、前記識別データは、前記コンテキストに関連している前記1つ以上のアプリケーションを示し、前記識別データは、前記1つ以上のアプリケーションのうちの少なくとも1つ以上を起動するために前記第2コンピューティング装置によって使用されるステップと、
を行うように動作する、
システム。
[請求項12]
前記コンテキストにおける変さらに応答して、前記第2コンピューティング装置から前記1つ以上のアプリケーションを削除するステップをさらに含む、
請求項11に記載のシステム。
[請求項13]
前記1つ以上のアプリケーションを起動するステップは、
前記第2コンピューティング装置による使用のために、ネットワーク・サービスにおいて前記1つ以上のアプリケーションを実行するステップを含む、
請求項11に記載のシステム。
[請求項14]
前記コンテキストに関連している前記1つ以上のアプリケーションを識別するステップは、前記第2コンピューティング装置に関連付けられたユーザのユーザ選好に少なくとも部分的に基づいて、前記1つ以上のアプリケーションをフィルタリングするステップを含む、
請求項11に記載のシステム。
[請求項15]
前記1つ以上のアプリケーションのうちの前記少なくとも1つは、前記1つ以上のアプリケーションのうちの前記少なくとも1つの予測される将来使用に応答して前記第2コンピューティング装置上にインストールされる、
請求項11に記載のシステム。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14