(57)【要約】      （修正有）【課題】現在のコンテキストに対して関連アプリケーションを識別し、関連アプリケーションから受信したデータをユーザに提供する。【解決手段】ユーザは、アプリケーションを手動で見つけて起動する必要はなく、代わりに、コンテキストデータを受信したことに応答して、コンテクスチュアル・サービスによって決定された関連アプリケーションがデータを提供する。コンテキストに関連していると識別されたアプリケーションは、コンテクスチュアル・サービスに提供するアプリケーションデータを決定する。コンテクスチュアル・サービスは、ユーザインタフェース内に表示するために提供するアプリケーションデータの少なくとも一部を選択する。選択したアプリケーションデータを、表示されるアプリケーションデータに関係なく、同じルックアンドフィールを維持するユーザインタフェース内に表示する。【選択図】図６
2019207734.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ実行可能命令が格納された非一時的コンピュータ可読記憶媒体であって、前記コンピュータ実行可能命令は、コンピュータによって実行されるとき、前記コンピュータに、
ユーザのコンピューティング装置の使用に関連付けられたコンテキストデータを受信するステップと、
コンテキストに関連する第１のアプリケーションを識別するステップと、
前記コンテキストデータを前記第１のアプリケーションに送信するステップと、
第１のアプリケーションデータを前記第１のアプリケーションから受信するステップであって、前記第１のアプリケーションは、前記コンテキストデータに少なくとも部分的に基づいて、前記第１のアプリケーションデータを提供するステップと、
前記第１のアプリケーションデータおよび前記コンテキストデータの少なくとも一部を第２のアプリケーションに送信するステップと、
第２のアプリケーションデータを前記第２のアプリケーションから受信するステップであって、前記第２のアプリケーションは、前記第１のアプリケーションデータおよび前記コンテキストデータに少なくとも部分的に基づくステップと、
前記第１のアプリケーションデータおよび前記第２のアプリケーションデータの１つまたは複数の少なくとも一部を前記ユーザのコンピューティング装置に提供するステップと、
を実行させる非一時的コンピュータ可読記憶媒体。
【請求項２】
前記命令は、さらに、前記コンピュータに、前記第２のアプリケーションがコンテクスチュアル・サービスに登録され、前記第１のアプリケーションからデータを受信することを決定するステップを実行させる、
請求項１に記載の非一時的コンピュータ可読記憶媒体。
【請求項３】
前記第１のアプリケーションおよび前記第２のアプリケーションは、アプリケーション・プログラミング・インタフェース（ＡＰＩ）を利用して、コンテクスチュアル・サービスに登録し、
前記第１のアプリケーションまたは前記第２のアプリケーションの１つまたは複数は、イベントを前記コンテクスチュアル・サービスに登録する、
請求項１に記載の非一時的コンピュータ可読記憶媒体。
【請求項４】
前記ＡＰＩは、前記第１のアプリケーションが前記第２のアプリケーションと通信するための機能および前記第２のアプリケーションが前記第１のアプリケーションと通信するための機能を提供する、
請求項３に記載の非一時的コンピュータ可読記憶媒体。
【請求項５】
前記コンテキストデータは、前記ユーザのコンピューティング装置の位置および前記ユーザのコンピューティング装置の現在の活動を識別する、
請求項１に記載の非一時的コンピュータ可読記憶媒体。
【請求項６】
命令が格納された１つまたは複数の非一時的コンピュータ可読記憶媒体であって、前記命令は、コンピュータシステムによって実行されると、前記コンピュータシステムに、
−コンテキストデータをコンピューティング装置から受信するステップと、
−コンテキストに関連するアプリケーションを、前記コンテキストデータに少なくとも部分的に基づいて識別するステップと、
−前記コンテキストデータの少なくとも一部を、前記コンテキストに関連すると識別された前記アプリケーションに送信するステップと、
−アプリケーションデータを前記アプリケーションから受信するステップであって、前記アプリケーションは、前記コンテキストデータの前記少なくとも一部に少なくとも部分的に基づいて、提供する前記アプリケーションデータを選択するステップと、
−前記コンピューティング装置に提供される前記アプリケーションデータの少なくとも一部を選択するステップと、
−前記アプリケーションデータの前記少なくとも一部を前記コンピューティング装置に提供するステップと、
を含む動作を実行させる、
１つまたは複数の非一時的コンピュータ可読記憶媒体。
【請求項７】
前記動作は、前記アプリケーションデータの前記少なくとも一部が第１のアプリケーションに向けられると決定することに少なくとも部分的に基づいて、前記アプリケーションデータの少なくとも一部を前記第１のアプリケーションに提供するステップをさらに含む、
請求項６に記載の１つまたは複数の非一時的コンピュータ可読記憶媒体。
【請求項８】
前記第１のアプリケーションおよび第２のアプリケーションは、アプリケーション・プログラミング・インタフェース（ＡＰＩ）を利用して通信し、
前記ＡＰＩは、前記第１のアプリケーションが前記第２のアプリケーションと通信するための機能を提供する、
請求項７に記載の１つまたは複数の非一時的コンピュータ可読記憶媒体。
【請求項９】
前記動作は、前記アプリケーションの１つまたは複数を前記コンピューティング装置にインストールさせ、起動させるステップをさらに含む、
請求項６に記載の１つまたは複数の非一時的コンピュータ可読記憶媒体。
【請求項１０】
前記動作は、前記コンピューティング装置とは別個であるサービスから前記アプリケーションの１つまたは複数を実行するステップをさらに含む、
請求項６に記載の１つまたは複数の非一時的コンピュータ可読記憶媒体。
【請求項１１】
１つまたは複数のプロセッサと、
格納された命令を有する１つまたは複数のメモリと、
を備えるコンピュータシステムであって、
前記命令は、前記１つまたは複数のプロセッサによって実行されると、前記コンピュータシステムに、
−コンテキストデータをコンピューティング装置から受信するステップと、
−コンテキストに関連するアプリケーションを、前記コンテキストデータに少なくとも部分的に基づいて識別するステップと、
−前記コンテキストデータの少なくとも一部を前記コンテキストに関連すると識別された前記アプリケーションに送信するステップと、
−アプリケーションデータを前記アプリケーションから受信するステップであって、前記アプリケーションは、前記コンテキストデータの前記少なくとも一部に少なくとも部分的に基づいて、提供する前記アプリケーションデータを選択するステップと、
−前記コンピューティング装置に提供される前記アプリケーションデータの少なくとも一部を選択するステップと、
−前記アプリケーションデータの前記少なくとも一部を前記コンピューティング装置に提供するステップと、
を含む動作を実行させるコンピュータシステム。
【請求項１２】
前記動作は、前記アプリケーションデータの前記少なくとも一部が第１のアプリケーションに向けられると決定することに少なくとも部分的に基づいて、前記アプリケーションデータの少なくとも一部を前記第１のアプリケーションに提供するステップをさらに含む、
請求項１１に記載のコンピュータシステム。
【請求項１３】
前記第１のアプリケーションおよび第２のアプリケーションは、アプリケーション・プログラミング・インタフェース（ＡＰＩ）を利用して通信し、
前記ＡＰＩは、前記第１のアプリケーションが前記第２のアプリケーションと通信するための機能を提供する、
請求項１２に記載のコンピュータシステム。
【請求項１４】
前記動作は、前記アプリケーションの１つまたは複数を前記コンピューティング装置にインストールさせ、起動させるステップをさらに含む、
請求項１１に記載のコンピュータシステム。
【請求項１５】
前記動作は、前記コンピューティング装置とは別個であるサービスから前記アプリケーションの１つまたは複数を実行するステップをさらに含む、
請求項１１に記載のコンピュータシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
今日では、モバイルコンピューティング装置のユーザが利用できるソフトウェアアプリケーションが多数存在する。例えば、いくつかの電子マーケットは、１００万個以上の異なるアプリケーションを含む。これらのアプリケーションの多くは、無料または従来のデスクトップソフトウェアアプリケーションに比べて低コストで利用できる。ユーザは、電子マーケットにワイヤレスで接続し、利用できるアプリケーションをブラウズし、選択したアプリケーションをダウンロードすることにより、アプリケーションを取得することができる。
【０００２】
しかしながら、１００万個もの利用可能なアプリケーションの中からアプリケーションを見つけようとするのは、ユーザにとって困難な場合がある。例えば、同一または同様の機能を提供する何百もの利用できるアプリケーションがあり得るため、ユーザが、ダウンロードする特定のアプリケーションを決めるのに難しい場合がある。ユーザは、どのようなアプリケーションを取得するかを決めるときの助けとして顧客評価を見るかもしれない。ユーザはまた、アプリケーションをダウンロードして試してみるかもしれない。例えば、自分のモバイルコンピューティング装置に何百ものアプリケーションをダウンロードするユーザもいる。しかしながら、モバイルコンピューティング装置上にアプリケーションをインストールしても、アプリケーションが使用可能であることをユーザが常に覚えているとは限らない。その上、アプリケーションをインストールした後は、ユーザはさらに、アプリケーションを使用したいとき、自分のデバイス上のアプリケーションを見つけて起動しなければならない場合がある。
【発明の概要】
【課題を解決するための手段】
【０００３】
これらおよびその他の考慮事項に関して、ここになされた本開示は提示される。
【図面の簡単な説明】
【０００４】
【図１】現在のコンテキストに関連するアプリケーションがユーザにデータを提供する例示的な動作環境を描写するブロック図である。
【図２】異なるアプリケーションから受信したアプリケーションデータを表示する例示的なグラフィカル・ユーザー・インタフェース（「ＧＵＩ」）を示す画面図である。
【図３】通信のためコンテクスチュアル・サービスを使用するアプリケーションを図示する系統図である。
【図４】ユーザの現在のコンテキストに応じて機能を実行するためのアプリケーションを識別して利用することを示す系統図である。
【図５】コンテキストセンシティブ・フレームワークの中での、１つ以上のアプリケーションの使用に関係する分析を表示する例示的なＧＵＩを示す画面図である。
【図６】アプリケーションを選択し、ユーザに関連付けられたコンテキストを用いて選択したアプリケーションから受信したデータを整理する本明細書に開示されたメカニズムの態様を説明するルーチンを示すフロー図である。
【図７】アプリケーションをコンテクスチュアル・サービスに登録するための本明細書に開示されたメカニズムの態様を説明するルーチンを示すフロー図である。
【図８】ユーザに関連付けられたコンピューティング装置上では現在利用できないアプリケーションにアクセスを提供するための本明細書に開示されたメカニズムの態様を説明するルーチンを示すフロー図である。
【図９】ユーザに関連付けられたコンピューティング装置上では利用できないアプリケーションにアクセスを提供するための本明細書に開示されたメカニズムの態様を説明するルーチンを示すフロー図である。
【図１０】コンテクスチュアル・サービスを用いてアプリケーションが互いに通信するための本明細書に開示されたメカニズムの態様を説明するルーチンを示すフロー図である。
【図１１】ユーザに関連付けられたコンピューティング装置に提供するアプリケーションデータを選択するための本明細書に開示されたメカニズムの態様を説明するルーチンを示すフロー図である。
【図１２】本明細書に開示されたサービス・プロバイダーネットワークを含む実施例のための１つの例示的な動作環境を示すシステムおよびネットワーク図である。
【図１３】本明細書において開示された、現在のコンテキストに関連するアプリケーションがユーザにデータを提供する概念および技術の一部または全てを含む、サービス・プロバイダーネットワークの態様を実装するデータセンターのための１つの構成を説明するコンピューティング・システム図である。
【図１４】本明細書において提示されたさまざまな実施例の態様を実施するために利用され得るコンピューティング装置を実装する１つの例示的なコンピュータハードウェアアーキテクチャを示すコンピュータアーキテクチャ図である。
【発明を実施するための形態】
【０００５】
以下の詳細な説明は、現在のコンテキストに対して、エンドユーザ向けプログラムまたはオペレーティング・システムソフトウェアなどの関連アプリケーションを識別し、関連アプリケーションから受信したデータを提供するコンテキストセンシティブ・フレームワークを使用する技術を対象とする。例えば、データはユーザに表示のため、および／または別のアプリケーションまたはコンピューティング装置に他の何らかの使用目的で提供され得る（例えば、現在のコンテキストを使用して機能を実行する）。本明細書に開示された技術の実装を介して、ユーザはアプリケーションを手動で見つけて起動する必要はなく、代わりに、関連アプリケーションデータは、ユーザの現在のコンテキストを識別するコンテキストデータの受信に応答して提供されて得る。本明細書において使用される場合、「コンテキスト」という用語は、特定の事象または状況の周りの背景、環境、フレームワーク、設定または状況を指し得る。一般的に言えば、「アプリケーション」という用語は、プログラム命令のいかなる組み合わせまたは何らかのタスクまたは動作を実行するためにプロセッサが読みこむデータを指し得る。いくつかの実施例では、アプリケーションは、システムソフトウェア（例えば、オペレーティング・システム）の一部でも良いし、またはアプリケーションソフトウェア（例えば、エンドユーザ向けプログラム）でも良い。コンテキストデータは、位置データ、移動データ、活動データ、ユーザデータ、時間データなどを含み得る。コンテキストデータのいくつかは、コンピューティング装置に関連付けられたセンサから決定され得る。例えば、コンピューティング装置のセンサは、コンピューティング装置の速度、コンピューティング装置の位置、気象条件、照明状態、ユーザの近くの音、ユーザ（またはだれか別の人）の顔表情などを決定するのに使用されて良い。コンテキストデータは、現在の活動に関連するデータを含み得る。例えば、現在の活動は、コンピューティング装置上で検索を実行しているユーザ、車を運転しているユーザ、特定のウェブサイトにアクセスしているユーザ、レストランに入っていくユーザ、などに関連し得る。
【０００６】
コンテクスチュアル・サービスは、コンテキストデータを使用してコンテキストに関連しているアプリケーションを識別する。本明細書において使用される場合、「関連した」という用語は、データおよび／または現在のコンテキストに適用できる機能を提供するアプリケーションを指し得る。アプリケーションは、登録データを使用して特定のコンテキストに関連していると決定され得る。いくつかの構成において、アプリケーションおよび／またはコンピューティング装置は、コンテクスチュアル・サービスに登録して、通知を受信する、またはコンテクスチュアル・サービスが指定されたコンテキストデータを受信したことに応答して起動する。いくつかの構成では、アプリケーションまたはコンピューティング装置は登録なしで、コンテキストデータを受信して良い。コンテキストデータの使用の一例として、フィットネスアプリケーションは、コンテキストデータが、ユーザが歩行中またはジョギング中であると示すときに起動されても良い。全地球測位システム（「ＧＰＳ」）アプリケーションは、コンテキストデータが、ユーザが移動中（例えば、運転中）であると示すとき、または、ユーザがＧＰＳを利用するかもしれない位置（例えば、ゴルフ場）にいるときに起動されても良い。同様に、レンタカーアプリケーションは、コンテキストデータが、ユーザが空港にいる、飛行機予約をしている、またはレンタカーの検索を実行していると示すとき、起動されても良い。他の実施例では、コンピューティング装置は、コンテキストデータの受信に応答して、起動されても良い、および／または何らかのアクションを実行するように構成されても良い。例えば、サーモスタットは、ユーザが帰宅途中であると示すコンテキストデータの受信に応答して温度設定を変更するように構成されても良い。他の非網羅的な実施例として、コンテキストデータは、以下についての任意の情報を含むことができる：位置（例えばＧＰＳ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｂｌｕｅｔｏｏｔｈ  ＬＥ、  ＲＦ、または他のいかなる適用可能な位置センサなどから得られる位置）、時間、日付、どのようなアプリケーションをユーザは使用しているか、特定のアプリケーション上でユーザはどのような機能を使用しているか、物理的環境（例えば温度、高度、湿度、生体圧力など）、デバイスの方向、関連データを有する他の装置の近接度（例えばビーコンまたは適切な装置を有する友人など）、他のユーザとの近接度、生体データ（例えば脈拍、心拍変動、血液酸素化、体温、血糖値、睡眠、ユーザが何を見ているか）など。
【０００７】
起動に応答して、起動したアプリケーションは、コンテキストに関連する提供すべきデータを決定する。言い換えれば、アプリケーションは、ユーザに関連付けられたコンテキストデータを使用して、現在のコンテキストについて個人化されたアプリケーションデータを決定して提供する。したがって、ユーザがどのアプリケーションを利用するかを決める必要がなく、コンテキストセンシティブ・フレームワークがユーザの現在のコンテキストを使用して、どのアプリケーションを利用するかを決定する。このように、ユーザは特にアプリケーションを見つけて起動する必要がない。いくつかの実施例では、コンテキストセンシティブ・フレームワークは、１つより多いアプリケーションからアプリケーションデータを受信し、アプリケーションデータを集約し、使用のためアプリケーションデータを提供する。例えば、選択したアプリケーションデータは、ユーザインタフェースにおいて提示されても良い。例えば、コンテキストセンシティブ・フレームワークは、異なるアプリケーションによって提供されるデータ用の共通のユーザインタフェースを提供して良い。このようにして、一貫した方法で異なるアプリケーションからのデータがユーザに提示される。加えて、この共通のユーザインタフェースは、オペレーティング・システムの一部として提供されても良い。これにより、オペレーティング・システムのインタフェースはコンテキストデータの変さらに伴って変化することができる。
【０００８】
コンテクスチュアル・サービスもまた、異なるアプリケーションによって提供されるデータのどれを提供するかについて決定をして良い。例えば、コンテクスチュアル・サービスは、異なるアプリケーションによって提供される、重複する（例えば、同一である、または類似している）データを重複排除して良い。コンテクスチュアル・サービスもまた、ユーザの現在のコンテキストに基づいてデータを除外して良い。
【０００９】
ユーザまたはコンピューティング装置のコンテキストもまた、更新されても良い。例えば、コンピューティング装置は、コンテキストデータをさらに提供する、またはコンテクスチュアル・サービスに対してコンテキストデータを更新するため、コンテクスチュアル・サービスに定期的に接続して良い。ユーザまたはコンピューティング装置のコンテキストの変さらに伴い、前に関連していると判定されたアプリケーションは変化し得る。例えば、あるコンテストに関連していたアプリケーションは、更新されたコンテキストでは関連しない場合がある。したがって、コンテクスチュアル・サービスは、コンテキストにおける変さらに応じて、関連していると判定されるアプリケーションを更新して良い。
【００１０】
他の実施例では、コンテキストセンシティブ・フレームワークは、現在のコンテキストに関連する異なるアプリケーションの選択をユーザに提示して良い。例えば、コンテキストセンシティブ・フレームワークは、現在のコンテキストに応じて起動するように登録されたアプリケーションをユーザに提示して良い。ユーザからアプリケーションの選択を受信した後（例えば、共通ＵＩを介して）、コンテキストセンシティブ・フレームワークは、そのユーザのためにアプリケーションを起動して良い。いくつかの実施例では、コンテキストに関連しているアプリケーションを選択するとき、コンテクスチュアル・サービスは時間的なデータも使用して良い。例えば、ユーザがつい先頃食事をしたと判断したときは、コンテクスチュアル・サービスは、ある一定期間はレストランに関するアプリケーションを利用しない場合がある。
【００１１】
他の実施例では、ユーザによって利用されているコンピューティング装置上にアプリケーションがインストールされていないとき、コンテキストセンシティブ・フレームワークは、アプリケーションをコンピューティング装置上にインストールさせても良いし、または、例えばサービス・プロバイダーネットワークの中において、アプリケーションをリモートで実行して良い。いくつかの実施例では、ユーザのコンピューティング装置上にアプリケーションをインストールするかどうかの決定は、ユーザが頻繁にそのアプリケーションを使用するかどうかに基づいてなされて良い。いくつかの例では、アプリケーションはコンピューティング装置にダウンロードされ、コンピューティング装置上にインストールされ、次いで、いくらか時間が経過した後、自動的に削除されても良い。例えば、コンピューティング装置上にインストールされたアプリケーションは、コンテキストが変化したおよび／またはアプリケーションをダウンロードした目的の事象が終了した後に、自動的に削除されても良い。
【００１２】
簡潔に説明したように、コンテキストセンシティブ・フレームワークは、アプリケーションとコンテキストセンシティブ・フレームワークとの間で双方向通信を提供する。いくつかの構成によれば、コンテキストセンシティブ・フレームワークにより、２つ以上のアプリケーションが互いに通信することができる。例えば、アプリケーションは、その他のアプリケーションが受信のため登録し得るコンテクスチュアル・サービスのアプリケーションプログラミングインターフェース（「ＡＰＩ」）を使用して、カスタムイベントを定義して良い。アプリケーションは、カスタムイベントを使用して、他の関心のあるアプリケーションへデータを送信して良い。例えば、旅行アプリケーションは、ユーザに旅行の詳細を提供するカスタムイベントを定義して良い。この情報は、アプリケーションによって提供されるデータが現在のコンテキストにより適用可能となるように、アプリケーションによって受信されたコンテキストデータを更新するのに使用されて良い。
【００１３】
いくつかの実施例では、モバイルコンピューティング装置は、ユーザのコンテキストを監視し、コンテキストデータをコンテクスチュアル・サービスに提供するように構成される。場合によっては、モバイルコンピューティング装置およびコンテクスチュアル・サービスの一部であるリモートコンピューティング装置の間でネットワーク接続が確立されるとき、コンテキストデータは、コンテクスチュアル・サービスに提供される。定期的に、またはコンテキストにおける変更または他の何らかのトリガーに応答して、ユーザ用のコンテキストデータがコンテクスチュアル・サービスに提供される。コンテクスチュアル・サービスは、コンピューティング装置上で実装されても良い、および／またはあるコンピュータまたはリモート・コンピュータによって提供されるサービスの中で実装されても良い。いくつかの実施例では、コンテクスチュアル・サービスは、ネットワークベースのサービスにより提供される（例えば、サービス・プロバイダーネットワーク）。
【００１４】
ソフトウェア開発者は、アプリケーションをコンテクスチュアル・サービスに接続する機能を指定するＡＰＩを含み得るソフトウェア開発者ツールキット（「ＳＤＫ」）またはソフトウェア開発者がアプリケーションを開発するのに使用され得る他のツールを使用してアプリケーションを開発して良い。例えば、コンテクスチュアル・サービスＡＰＩは、１つ以上のコンテキストに応じて起動または通知されるように登録するためにアプリケーションによって使用されて良い。アプリケーションもまた、ＡＰＩを利用して、１つ以上のカスタムイベントを定義し、メッセージを別のアプリケーションに送信し、コンテキストデータをコンピューティング装置から受信するよう要求するなどして良い。ＳＤＫおよび／またはＡＰＩは、オペレーティング・システムおよび／または他の何らかのアプリケーションの操作を変更するためにも利用されて良い。例えば、オペレーティング・システムの一部は、特定のコンテキストデータまたはアプリケーションデータを受信したことに応答して、ＡＰＩを利用して、オペレーティング・システムの別の部分と通信し得る。
【００１５】
コンテクスチュアル・サービスによるアプリケーションの使用に関するアナリティクスもまた、アプリケーションのソフトウェア開発者などの認定ユーザに提供されても良い。例えば、アナリティクスは、グラフィカル・ユーザー・インタフェース（「ＧＵＩ」）に表示されても良いし、使用状況データ（例えば、平均使用率）、利益データ（例えば、購入、使用コスト）、アプリケーション内で利用される機能などの情報を含んで良いがこれらに限らない。ユーザはアナリティクスを見て、コンテキストセンシティブ・フレームワークの中でどのようにアプリケーションが利用されているかを判定することができる。
【００１６】
いくつかの構成によれば、コンテクスチュアル・サービスは、コンテクスチュアル・サービスによって提供される推奨事項および／またはデータを改善するのに使用され得るデータを収集し保存して良い。収集し保存され得るデータは、異なるユーザおよび／またはコンピューティング装置から受信するコンテキストデータ、さまざまなアプリケーションから受信したアプリケーションデータ、およびコンテクスチュアル・サービスのユーザに関連付けられた使用状況データを含んで良い。例えば、使用状況データは、ユーザはどのようなアプリケーションを選択したか、ユーザはどのようなアプリケーションを利用しているか、ならびに、ユーザは異なるコンテキストに対してアプリケーションの機能をどのように利用しているか、を含んで良い。いくつかの実施例では、コンテクスチュアル・サービスは、機械学習メカニズムを使用して、コンテクスチュアル・サービスによって提供される推奨事項を改善して良い。例えば、コンテクスチュアル・サービスがより多くのデータを受信して時間経過するにつれ、コンテクスチュアル・サービスによって提供されるデータは、受信したコンテクスチュアル・サービスのユーザに関連付けられた実際の使用状況データに基づいて変化して良い。機械学習メカニズムは追加データを受信したことに応答して精緻化されても良い。コンテキストに基づいてアプリケーションを選択し利用するために上述のさまざまな構成要素およびプロセスに関する追加詳細は、図１〜１４に関して以下に提示される。
【００１７】
本明細書において提示される主題事項は、コンピュータ処理、コンピュータ制御の装置、コンピューティング・システム、またはコンピュータ可読記憶媒体などの製造品として実装されても良いことを理解すべきである。本明細書に記載される主題事項は、１つ以上のコンピューティング装置上で実行されるプログラムモジュールの一般的なコンテキストにおいて提示されるが、当業者は、他の実装では他の種類のプログラムモジュールと組み合わせて実行されても良いことを認めるであろう。概して、プログラムモジュールは、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、構成要素、データ構造および他の種類の構造を含む。
【００１８】
当業者は、本明細書に記載されている主題事項の態様は、マルチプロセッサ・システム、マイクロプロセッサ・ベースまたはプログラム可能家電、ミニコンピュータ、メインフレーム・コンピュータ、ハンドヘルド・コンピュータ、携帯情報端末（ＰＤＡ）、電子書籍リーダ、携帯電話装置、タブレットコンピューティング装置、特殊用途ハードウェア・デバイス、ネットワークアプライアンス等、を含む本明細書に記載されたものの域を越えて、他のコンピュータ・システム構成上またはこれに連動して実施されても良い。簡潔に上述したように、本明細書に記載された実施例は、通信網にリンクされているリモートコンピューティング装置によってタスクが実行され得る分散コンピューティング環境において実施されても良いことも理解するであろう。分散コンピューティング環境では、プログラムモジュールは、ローカルとリモートの両方のメモリ記憶装置に設置されても良い。
【００１９】
以下の詳細な説明では、本発明の一部を構成し、実例として具体的な実施例を示す添付の図面を参照する。図面は正確な縮尺率ではない。いつくかの図面（本明細書では「図」と称される場合がある）にわたって、同類の数字は同類の要素を表す。
【００２０】
ここで図１を参照すると、本明細書において提示されるさまざまな実施例に従って現在のコンテキストに関連するアプリケーションがユーザにデータを提供する動作環境１００が図示されている。図１に示す動作環境１００は、コンピューティング装置１０２Ａ〜１０２Ｂ、コンテクスチュアル・サービス１０４、アプリケーション・サービス１０６、およびアプリケーション実行サービス１０８を含む。
【００２１】
いくつかの構成によれば、「コンピューティング装置１０２」と称されるコンピューティング装置１０２Ａ〜１０２Ｂは各々、タブレットコンピューティング装置、スマートフォン、パーソナルコンピュータ（「ＰＣ」）、デスクトップ・コンピュータ、ラップトップコンピュータ、ノートパソコン、他のモバイルコンピューティング装置、ビデオゲームシステム、セットトップボックス、スマートテレビ等として構成されても良い。他の実施例によると、コンピューティング装置１０２の機能の少なくとも一部は、アプリケーション・サービス１０６、アプリケーション実行サービス１０８、またはサービス・プロバイダーネットワーク１１０によって提供される（図１２に図示されるサービス・プロバイダーネットワーク１１０を参照）。
【００２２】
コンテクスチュアル・サービス１０４、アプリケーション・サービス１０６、アプリケーション実行サービス１０８またはサービス・プロバイダーネットワーク１１０は、異なるサービスの機能を提供するため、１つ以上のアプリケーションサーバ、Ｗｅｂサーバ、データストレージシステム、ネットワークアプライアンス、専用ハードウェア・デバイス、および／または他のサーバコンピュータまたはコンピューティング装置を含んで良い。これらの実施例では、コンピューティング装置１０２は、ネットワークを介してネットワークベースのコンピューティングプラットフォーム（図示せず）に接続するための最小限のハードウェアを含むことができる。コンピューティング装置１０２は、ネットワークを介して通信し、本明細書に記載されたさまざまなサービスまたはコンピューティングリソースにアクセスして良い。例えば、コンピューティング装置１０２は、コンテクスチュアル・サービス１０４、アプリケーション・サービス１０６および／またはアプリケーション実行サービス１０８にアクセスできる。コンテクスチュアル・サービス１０４、アプリケーション・サービス１０６、およびアプリケーション実行サービス１０８の操作に関するさらなる詳細が以下に提供される。
【００２３】
コンピューティング装置１０２Ａは、オペレーティング・システム１１２、アプリケーション１１４、コンテクスチュアル・サービスＡＰＩ１１６、ならびに他のアプリケーションプログラムまたは構成要素を実行するように構成することができる。アプリケーション１１４は、ウェブブラウザ・アプリケーション、生産性アプリケーション（例えば、ワープロ、スプレッドシート、および／またはプレゼンテーションアプリケーション）、旅行アプリケーション、フィットネスアプリケーション、レストランアプリケーション、ソーシャルネットワークアプリケーション、または他のいかなるアプリケーションも含んで良い。いくつかの実施例では、１つ以上のアプリケーション１１４は、コンテクスチュアル・サービスＡＰＩ１１６を利用するように構成されても良い。いくつかの構成によれば、アプリケーションは、オペレーティング・システム１１２および／または何らかのその他のコンポーネントの一部でも良い。コンピューティング装置１０２Ｂは、コンピューティング装置１０２Ａと同じようには詳細には図示されていないが、コンピューティング装置１０２Ｂならびに他のコンピューティング装置は、同一に構成されても良いし、コンピューティング装置１０２Ａのために説明されているものより、より多くのまたはより少ないアプリケーションプログラムおよび／または構成要素を有しても良いと理解されるべきである。
【００２４】
アプリケーション・サービス１０６は、コンテクスチュアル・サービス１０４のためのサポートを提供するように構成されても良い。例えば、以下でより詳細に述べるように、コンテクスチュアル・サービス１０４は、アプリケーション・サービス１０６を利用して、ユーザ（例えば、ユーザ１２０Ａまたは１２０Ｂ）に関連付けられた現在のコンテキストに関する１つ以上のアプリケーション１１４を取得して良い。
【００２５】
アプリケーション１１４への入力は、コンピューティング装置１０２Ａに接続されているか、そうでなければ、コンピューティング装置１０２Ａと通信している１つ以上の入力装置を介して提供されても良い。アプリケーション１１４への入力は、例えばナビゲートメニューなどのアプリケーション１１４の外観を制御するために使用できる。コンピューティング装置１０２Ａはまた、１つ以上のアプリケーション１１４によって提供されるビジュアルコンテンツを、コンピューティング装置１０２Ａに内蔵されているか外付けされていてコンピューティング装置１０２Ａと通信する、例えばディスプレイ１２２Ａなどの１つ以上の表示装置に提示するように構成されても良い。
【００２６】
ディスプレイ１２２Ａは、視覚的な形式で情報を提示するように構成された出力装置である。具体的には、ディスプレイ１２２Ａは、コンテクスチュアル・サービス１０４、クライアント・コンテキストマネージャ１２４Ｂ、アプリケーション１１４などによって提供されるビジュアルコンテンツを提示して良い。ビジュアルコンテンツは、ＧＵＩエレメント、テキスト、画像、ビデオ、通知、仮想ボタン、仮想キーボード、メッセージングデータ、インターネットのコンテンツ、デバイスのステータス、時間、日付、カレンダーデータ、環境設定、地図情報、位置情報、および、視覚的な形式で提示することができる他のいかなる情報をも含んで良い。いくつかの実施例では、ディスプレイ１２２Ａは、いかなる能動的または受動的なマトリクス技術およびいかなるバックライト技術（使用されるのであれば）を利用する液晶表示（「ＬＣＤ」）である。他の実施例では、ディスプレイ１２２Ａは、有機発光ダイオード（「ＯＬＥＤ」）ディスプレイでも良い。その他のディスプレイタイプは想定される。なお、ディスプレイ１２２Ａは、例えばタッチスクリーンまたはマルチタッチ可能なタッチスクリーンなどの入力装置を含むことができる。
【００２７】
アプリケーション１１４の全てまたは一部においては、コンテクスチュアル・サービス１０４、アプリケーション・サービス１０６および／またはアプリケーション実行サービス１０８と対話するためのコンテクスチュアル・サービスＡＰＩ１１６を利用して良い。上述のように、アプリケーション１１４は、１つ以上の機能を提供するいかなる命令またはデータであって良い。アプリケーション１１４は、コンテクスチュアル・サービスＡＰＩ１１６によって公開された１つ以上のメソッドを呼び出して、コンテクスチュアル・サービス１０４にアクセスし、コンテクスチュアル・サービス１０４によって提供される１つ以上の機能を利用するように構成されても良い。アプリケーション１１４はまた、コンテクスチュアル・サービスＡＰＩ１１６によって公開された１つ以上のメソッドを呼び出して、アプリケーション・サービス１０６またはアプリケーション実行サービス１０８にアクセスするように構成することもできる。例えば、コンテクスチュアル・サービスＡＰＩ１１６は、通知を受信するため登録し、場合によってはユーザの現在のコンテキスト１２０Ａに応じて起動するように、１つ以上のアプリケーション１１４によって使用されて良い。コンテクスチュアル・サービスＡＰＩ１１６はまた、別のアプリケーション１１４にデータを送信する、現在のコンテキストに関連するデータを要求する、などのために使用されて良い。
【００２８】
ユーザ１２０Ａは、コンピューティング装置１０２Ａを使用して、コンテクスチュアル・サービス１０４と対話して良い。いくつかの実施例では、ディスプレイ１２２Ａ上に表示されるＵＩ１３０Ａは、は、コンテクスチュアル・サービス１０４を見て対話するため使用されて良い。
【００２９】
説明したように、コンテクスチュアル・サービス１０４は、１つ以上のセッションを管理するコンテキストマネージャ１２４Ａを含む。セッション中に、コンピューティング装置１０２Ａなどのコンピューティング装置は、コンテクスチュアル・サービス１０４と対話する。コンテクスチュアル・サービス１０４は、さまざまなコンピューティング装置１０２を利用している１人または複数のユーザが、コンテクスチュアル・サービス１０４、アプリケーション・サービス１０６、アプリケーション実行サービス１０８と、および場合によってはそれらが互いにデータを共有できるように、いかなる数のコンピューティング装置１０２への接続をサポートして良い。したがって、説明した実施例は例示的なものに過ぎず、いかなる形においても制限するものとして解釈されるべきではない。
【００３０】
図１に図示された現実施例において、コンテクスチュアル・サービス１０４を含むコンテキストセンシティブ・フレームワークは、ユーザ（例えば、ユーザ１２０Ａまたは１２０Ｂ）の現在のコンテキストに関連するアプリケーション１１４を識別し、関連アプリケーション１１４から受信したアプリケーションデータ１１８をユーザに提供する。簡潔に上述のように、ユーザは、アプリケーション１１４を手動で見つけて起動する必要がなく、代わりに、ユーザの現在のコンテキストに対する関連アプリケーション１１４は、ユーザの現在のコンテキストに関するアプリケーションデータ１１８を提供することができる。
【００３１】
ユーザの現在のコンテキストを決定するため、クライアント・コンテキストマネージャ１２４は、コンピューティング装置１０２Ａの１つ以上のセンサ１２６を利用して良い。センサ１２６は、コンテキストデータ１２８Ａの少なくとも一部を決定するように構成されても良い。例えば、センサ１２６は、位置データ、移動データ（例えば、速度または加速データ）、気象データ、生体データ、時間データ、照明データ、顔認識などを決定して良い。ユーザの現在のコンテキスト１２０Ａに関連付けられたコンテキストデータ１２８Ａのいくつかは、コンピューティング装置１０２Ａの現在の動作から決定されても良い。例えば、現在の動作は、は、検索を実行しているユーザ、アプリケーションを起動しているユーザ、ウェブサイトにアクセスしているユーザなどに関連し得る。いくつかの実施例では、クライアント・コンテキストマネージャ１２４Ｂは、現在のコンテキストに関するさまざまなデータを集約し、コンテキストデータ１２８Ａをコンテクスチュアル・サービス１０４に送信する。
【００３２】
コンテクスチュアル・サービス１０４は、受信したコンテキストデータ１２８Ａを使用し、ユーザの現在のコンテキスト１２０Ａに関する１つ以上のアプリケーション１１４を識別する。簡潔に上述のように、アプリケーション１１４は、アプリケーション１１４が、コンテキストデータ１２８により示される現在のコンテキストに応じて起動するようにコンテクスチュアル・サービス１０４に登録されているかどうかの少なくとも部分的に基づいて、特定のコンテキストに関連していると判定されても良い。例えば、コンテクスチュアル・サービス１０４は、アプリケーション１１４Ａ−１１４Ｆは、コンテキストデータ１２８Ａによって指定されたコンテキストに関連していると判定して良い。関連していると判定されたアプリケーション１１４は、コンピューティング装置１０２Ａ上にインストールされていても良いし、されていなくても良い。現実施例では、アプリケーション１１４Ａ〜１１４Ｃは、コンピューティング装置１０２Ａ上にインストールされており、アプリケーション１１４Ｄ〜１１４Ｆは、リモートで配置されている（例えば、アプリケーション・サービス１０６および／またはアプリケーション実行サービス１０８の中）。
【００３３】
いくつかの構成によれば、アプリケーション１１４は、テクスチュアル・サービス１０４が指定したコンテキストデータ１２８Ａを受信することに応答して起動されるようにコンテクスチュアル・サービス１０４に登録される。例えば、フィットネスアプリケーションは、コンテキストデータ１２８Ａが、ユーザが歩行中またはジョギング中であると示すときに起動されるように、コンテクスチュアル・サービス１０４に登録されて良い。他のアプリケーション１１４は、コンテキストデータ１２８Ａが、ユーザが移動中であると示すときに起動されても良い。同様に、レンタカーアプリケーション１１４は、コンテキストデータ１２８Ａが、ユーザ１２０Ａが空港にいて飛行機予約をしていると示すとき、またはレンタカーの検索を実行していると示すときに起動されても良い。他の実施例では、コンテクスチュアル・サービス１０４は、アプリケーション１１４の起動を決定して良い。
【００３４】
起動に応答して、アプリケーション１１４Ａ〜１１４Ｆなどの起動したアプリケーションは、コンテクスチュアル・サービス１０４および／またはコンテキストデータ１２８Ａに関するクライアント・コンテキストマネージャ１２４Ｂまたはコンテキストマネージャ１２４Ａに提供するアプリケーションデータ１１８Ａ〜１１８Ｆを決定する。言い換えれば、コンテクスチュアル・サービス１０４および／またはクライアント・コンテキストマネージャ１２４Ｂによって起動される関連アプリケーションは、コンテキストデータ１２８Ａを使用し、提供するアプリケーションデータ１１８Ａを決定する。例えば、関連していると判定されたスポーツアプリケーション１１４は、フットボールの試合中のデータ（例えば、最新スコア、ゲームの最新統計）に比較してフットボールの試合前の異なるアプリケーションデータ１１８（例えば、試合前のデータ）を提供して良い。コンテクスチュアル・サービス１０４がアプリケーション１１４から指定されたアプリケーションデータ１１８を要求する代わりに、コンテクスチュアル・サービス１０４は、アプリケーション１１４を起動し、アプリケーション１１４にコンテキストデータ１２８Ａを提供するように構成される。いくつかの実施例では、コンテクスチュアル・サービス１０４はまた、１つ以上の関連アプリケーション１１４Ａ〜１１４Ｆから特定のデータを要求して良い。以下でより詳細に述べるように、アプリケーション１１４Ａ〜１１４Ｆは、コンピューティング装置１０２Ａ上および／またはアプリケーション実行サービス１０８内、または他の何らかのコンピューティング装置上で実行されても良い。
【００３５】
説明したように、ユーザ１２０Ａまたは１２０Ｂが、どのアプリケーション１１４を利用するかを決定する必要がなく、コンテクスチュアル・サービス１０４を含むコンテキストセンシティブ・フレームワークは、利用するアプリケーションの決定においてユーザの現在のコンテキストを使用する。このように、ユーザは、特にアプリケーション１１４を見つけて起動する必要がない。
【００３６】
いくつかの実施例では、コンテキストセンシティブ・フレームワークは、１つより多いアプリケーションからアプリケーションデータ１１８を受信し、アプリケーションデータ１１８を集約し、選択したアプリケーションデータ１１８をユーザインタフェース１３０Ａまたは１３０Ｂなどのユーザインタフェース１３０において提示する。例えば、コンテキストセンシティブ・フレームワークは、オペレーティング・システムソフトウェアの一部であり得る共通のユーザインタフェースを提供し、異なるアプリケーション１１４Ａ〜１１４Ｆによって提供されるアプリケーションデータ１１８Ａ〜１１８Ｆを提示して良い。このようにして、一貫した方法で、異なるアプリケーションからユーザにデータが提示される。
【００３７】
コンテクスチュアル・サービス１０４はまた、異なるアプリケーション１１４Ａ〜１１４Ｆから受信したアプリケーションデータ１１８のどれをユーザに提供するかについて決定をして良い。例えば、コンテクスチュアル・サービス１０４は、アプリケーションデータ１１８Ａ〜１１８Ｆから重複データ（または類似データ）を削除して良い。コンテクスチュアル・サービス１０４および／またはクライアント・コンテキストマネージャ１２４Ｂもまた、ユーザの現在のコンテキストに基づいてデータを除外して良い。
【００３８】
他の実施例では、コンテクスチュアル・サービス１０４は、どの他のコンピューティング装置１０２および／またはその他のアプリケーションがアプリケーションデータ１１８を受信するかを決定して良い。例えば、コンテクスチュアル・サービス１０４は、ユーザが在宅しているかまたは帰宅中であり一定の時間内に到着すると決定したことに応答して、アプリケーションデータ１１８をユーザの自宅内にある他のコンピューティング装置に提供して良い。別の実施例として、コンテクスチュアル・サービス１０４は、ユーザが車に乗ろうとしていると決定したことに応答して、アプリケーションデータ１１８を例えば車を始動するために車内にある他のコンピューティング装置に提供して良い。この装置もまた、ユーザの適当な目的地とともにロードマップまたは道順ソフトウェア、ならびに交通関連情報を含み得る。
【００３９】
ユーザ１２０Ａに関連付けられたコンテキストデータ１２８は、コンテクスチュアル・サービス１０４を以て更新もされ得る。例えば、コンピューティング装置１０２Ａはコンテクスチュアル・サービス１０４と接続し、コンテキストデータ１２８Ａをさらに提供する、または更新されたコンテキストデータ１２８Ａをコンテクスチュアル・サービス１０４に提供して良い。ユーザの現在のコンテキストに関連付けられたコンテキストデータ１２８Ａが変更されると（例えば、ユーザの場所が変わると）、事前に関連していると判定されたアプリケーション１１４Ａ〜１１４Ｆは、関連しているともはや判定されない場合がある。例えば、あるコンテストに関連していたアプリケーションは、更新されたコンテキストに関連しない場合がある。したがって、コンテクスチュアル・サービス１０４は、コンテキストにおける変さらに応じて関連アプリケーションを更新して良い。
【００４０】
他の実施例では、コンテキストセンシティブ・フレームワークは、現在のコンテキストに関連する異なるアプリケーションの選択をユーザに提示して良い。例えば、コンテクスチュアル・サービス１０４は、現在のコンテキストに応じて起動するように登録されたアプリケーション１１４の選択をユーザ１２０Ｂに提示して良い。例えばＵＩ１３０Ｂなどを介して、ユーザからアプリケーションの選択を受信した後、コンテクスチュアル・サービス１０４は選択されたアプリケーション１１４Ｇを起動させても良い。いくつかの構成では、選択されたアプリケーション１１４Ｇは、アプリケーション実行サービス１０８内で起動されても良い。他の構成では、選択されたアプリケーション１１４Ｇは、コンピューティング装置１０２Ｂ上で起動されても良い。
【００４１】
選択されたアプリケーション１１４Ｇが、ユーザが利用しているコンピューティング装置１０２Ｂ上にインストールされていないとき、コンテクスチュアル・サービス１０４は、アプリケーション１１４Ｇをコンピューティング装置１０２Ｂ上にインストールさせても良い。いくつかの実施例では、アプリケーション１１４Ｇをコンピューティング装置１０２Ｂ上にインストールするかどうかの決定は、どのくらいの頻度でユーザ１２０Ｂがアプリケーション１１４Ｇを使用する可能性があるかの予測に基づいてなされて良い。例えば、選択されたアプリケーション１１４Ｇはたった一度しか利用されない場合もある（例えば、特定のイベントのためのアプリケーション）。ある例では、クライアント・コンテキストマネージャ１２４Ｃは、電子マーケット１３２に接続し、アプリケーション１１４Ｇをコンピューティング装置１０２Ｂへダウンロードし、アプリケーション１１４Ｇをコンピューティング装置１０２Ｂ上にインストールさせても良い。アプリケーション１１４Ｇのインストール後、クライアント・コンテキストマネージャ１２４Ｃは、アプリケーション１１４Ｇを起動した後、場合によっては、その後のある時点で、アプリケーション１１４Ｇをコンピューティング装置１０２Ｂから自動的に削除して良い。例えば、アプリケーション１１４Ｇは、イベントアプリケーション１１４Ｇが完了した後で削除されても良い（例えば、数時間後、数日後、など）。例えば、ユーザがフットボールの試合に行く状況だとすると、アプリケーション１１４Ｇは自動的にダウンロードされ、その後、ユーザがフットボールの試合を去った時点で削除されても良い。
【００４２】
アプリケーション実行サービス１０８が選択されたアプリケーション１１４Ｇ（または他の何らかのリモートコンピューティング装置）を実行するとき、コンテクスチュアル・サービス１０４のコンテキストマネージャ１２４Ａは、アプリケーション１１４Ｇによって生成されたアプリケーションデータ１１８Ｇをクライアント・コンテキストマネージャ１２４Ｃへ提供して良い。アプリケーションデータ１１８Ｇは、コンテキストデータ１２８Ｂに関連するアプリケーションデータ１１８Ｇでも良いし、またはアプリケーション１１４Ｇによって生成されたデータの他のいくつかのデータまたは全てでも良い。
【００４３】
簡潔に上述のように、コンテキストセンシティブ・フレームワークは、アプリケーション１１４とコンテクスチュアル・サービス１０４との間で双方向通信を提供する。いくつかの構成によれば、コンテキストセンシティブ・フレームワークにより、２つ以上のアプリケーション１１４が互いに通信することができる。コンテキストセンシティブ・フレームワークを使用して通信する２つ以上のアプリケーション１１４のさらなる詳細は、図２に関して以下に提供される。
【００４４】
いくつかの実施例では、クライアント・コンテキストマネージャ１２４Ｂまたは１２４Ｃは、ユーザのコンテキストを監視し、コンテキストデータ１２８Ａまたは１２８Ｂをコンテクスチュアル・サービス１０４に提供するように構成される。場合によっては、コンピューティング装置１０２およびコンテクスチュアル・サービスの一部であるリモートコンピューティング装置１０４の間でネットワーク接続が確立されるとき、コンテキストデータ１２８は、コンテクスチュアル・サービス１０４に提供される。
【００４５】
いくつかの実施例では、ソフトウェア開発者は、アプリケーション１１４をコンテクスチュアル・サービス１０４に接続する機能を指定するコンテクスチュアル・サービスＡＰＩ１１６などのアプリケーションプログラミングインターフェース（「ＡＰＩ」）を含み得るソフトウェア開発者ツールキット（「ＳＤＫ」）またはソフトウェア開発者がアプリケーションを開発するのに使用され得る他のツールを使用してアプリケーション１１４を開発して良い。例えば、コンテクスチュアル・サービスＡＰＩ１１６は、１つ以上のコンテキストに応じて起動または通知されるように登録するためにアプリケーションによって使用されて良い。アプリケーション１１４はまた、コンテクスチュアル・サービスＡＰＩ１１６を利用して、別のアプリケーション１１４および／またはコンテクスチュアル・サービス１０４にデータを伝達するために使用される１つ以上のカスタムイベントを定義して良い。
【００４６】
簡潔に上述のように、コンテクスチュアル・サービス１０４は、データを収集し、例えばデータストア１３４Ａなどに保存して良い。データは、コンテクスチュアル・サービスによって提供される、データの識別１３６および／またはアプリケーションデータ１１８Ａ〜１１８Ｆなどの、推奨事項を改善するのに使用され得る。収集し保存され得るデータｂｙコンテクスチュアル・サービス１０４は、異なるユーザおよび／またはコンピューティング装置から受信するコンテキストデータ１２８、さまざまなアプリケーションから受信するアプリケーションデータ１１８、およびコンテクスチュアル・サービスのユーザに関連付けられた使用状況データを含んで良い。例えば、使用状況データは、ユーザはどのようなアプリケーションを選択したか、ユーザはどのようなアプリケーションを利用しているか、ならびにユーザは異なるコンテキストに対してアプリケーションの機能をどのように利用しているか、を含んで良い。
【００４７】
いくつかの構成では、コンテクスチュアル・サービス１０４は、機械学習メカニズムを使用して、コンテクスチュアル・サービスによって提供される推奨事項を改善して良い。「機械学習」という用語は、受信するデータから学習する１つ以上のプログラムを指し得る。例えば、機械学習メカニズムは、モデルを作成、修正し、そうでなければ、入力例から作成されるモデルを利用して予測または決定をして良い。現実施例では、機械学習メカニズムは、コンテクスチュアル・サービスによって提供されるデータ１０４である識別アプリケーション１１４を改善するために使用されて良い。モデルは、教師あり学習および／または教師なし学習を使用して教育されても良い。例えば、コンテクスチュアル・サービスがより多くのデータを受信する時間が経つにつれて、コンテクスチュアル・サービスによって提供されるデータは、受信したコンテクスチュアル・サービスのユーザに関連付けられた実際の使用状況データに基づいて変化して良い。コンテクスチュアル・サービス１０４によって利用される機械学習メカニズムは、追加データを受信したことに応答して精緻化されても良い。
【００４８】
コンテキストセンシティブ・フレームワークを利用する１人または複数のユーザによるアプリケーション１１４の使用に関するアナリティクスもまた、ソフトウェア・プロバイダまたは他の認定ユーザに提供されて良い。例えば、アナリティクスは、ＧＵＩに表示されて良いし、使用状況データ（例えば、平均使用率）、利益データ（例えば、購入、使用コスト）、アプリケーション内で利用される機能などの情報を含んで良いがこれらに限らない。ソフトウェア・プロバイダはアナリティクスを見て、コンテキストセンシティブ・フレームワークの中でどのようにアプリケーションが利用されているかを判定して良い。図５は、アナリティクスを提供するのに使用される例示的なＧＵＩ５００を示す。
【００４９】
いくつかの実施例では、アプリケーション・サービス１０６は、電子マーケット１３２を提供する。電子マーケット１３２を介してユーザは、例えばアプリケーション１１４、アプリケーションのアドオン、アプリケーション内のアイテム、音楽、電子書籍、映画などなどのコンテンツを購入することができる。動作環境１００のさまざまな実装は、複数ネットワーク、コンテクスチュアル・サービス１０４、アプリケーション・サービス１０６、アプリケーション実行サービス１０８、アプリケーション１１４およびコンテクスチュアル・サービスＡＰＩ１１６を含むと理解されるべきである。したがって、説明された動作環境１００は、例示的であるものとして理解されるべきであって、いかなる形においても制限するものとして解釈されるべきではない。
【００５０】
図２は、異なるアプリケーション１１４から受信されたアプリケーションデータ１１８を表示する例示的なＧＵＩ２００を示す画面図である。ＧＵＩ２００は、コンピューティング装置のエンドユーザ向けプログラムまたはオペレーティング・システムの一部、またはそれらの組み合わせになり得る。説明したように、ＧＵＩ２００は、例えばユーザ１２０Ａまたは１２０Ｂなどのユーザの現在のコンテキストに関する異なるアプリケーションからのデータを示す。コンテクスチュアル・サービス１０４と通信するコンピューティング装置１０２Ａは、ＧＵＩ２００を表示して良い。説明のためであって、限定することは目的とせず、ＧＵＩ２００がＳＥＡＴＴＬＥ  ＳＥＡＨＡＷＫＳのフットボールの試合を今見に来ているユーザによって使用されていると仮定する。例えば、コンテキストデータ１２８は、ユーザはＳｅａｔｔｌｅ  Ｓｅａｈａｗｋｓがプレーする競技場にいると示して良い。
【００５１】
上述のように、１つ以上のアプリケーション１１４は、起動に応答して、アプリケーションデータ１１８をコンテクスチュアル・サービス１０４に提供して良い。フットボールの試合にいるユーザに関連付けられたコンテキストデータ１２８を受信したことに応答して、コンテクスチュアル・サービス１０４は、コンテキストデータ１２８に関するＳｅａｈａｗｋｓアプリケーション１１４Ｈ、スタジアムアプリケーション１１４Ｉ、一般的なスポーツアプリケーション１１４Ｊ、天気アプリケーション１１４Ｋ、および食べ物アプリケーション１１４Ｌを識別した。ユーザは、アプリケーション選択ＵＩ要素２０６内でユーザインタフェース要素を選択することによって、利用するアプリケーション１１４を選択または非選択状態にする。上述のように、ユーザはコンテキストデータ１２８に関連していると判定されたアプリケーションの全てからデータを受信することは選ばない場合がある。本実施例では、食べ物アプリケーション１１４Ｌを囲む破線で示されるように、ユーザは、食べ物アプリケーション１１４Ｌの使用を含めないことに決めた。いくつかの実施例では、ユーザから受信する選択は、コンテクスチュアル・サービス１０４に提供され、機械学習メカニズムによって利用されるモデルを更新するのに使用されて良い。このようにして、特定のコンテキストに関連していると識別されたアプリケーションは、コンテクスチュアル・サービスのユーザによってなされた選択に応答して時間とともに変化して良い。
【００５２】
現実施例では、ＧＵＩ２００は、現在のコンテキストに関連していると識別されたアプリケーション１１４Ｈ〜１１４Ｌの一部からアプリケーションデータ１１８Ｈ〜１１８Ｋを示す。ＧＵＩ２００は選択したアプリケーションデータＵＩ要素２０２内のアプリケーションデータを示す。ＧＵＩ２００はまた、ユーザインタフェース要素部２０４のうちの選択されたアプリケーション１１４〜１１４Ｌに関連付けられたユーザインタフェース要素を示す。ユーザインタフェース要素部２０４は、ＳｅａｈａｗｋｓアプリケーションＵＩ２０４Ａ、スタジアムアプリケーションＵＩ２０４Ｂ、一般的なスポーツアプリケーションＵＩ２０４Ｃ、および天気アプリケーションＵＩ２０４Ｄのためのユーザインタフェース要素を示す。以上のように、アプリケーションＵＩ２０４Ａ〜２０４Ｄはそれぞれ、オプション１〜Ｎを含む。いくつかの実施例では、異なるアプリケーション１１４Ｈ〜１１４Ｋ用のユーザインタフェース要素２０４は、組み合わされても良いし、そうでなければ、異なる方法で表示されても良い。
【００５３】
上述のように、ＧＵＩ２００内に表示されるアプリケーションデータ１１８は、アプリケーションデータ１１８をコンテクスチュアル・サービス１０４に提供するアプリケーションによって少なくとも一部において選択されても良い。言い換えれば、アプリケーションから特定の情報を要求する代わりに、コンテクスチュアル・サービス１０４は、コンテキストデータ１２８に関連しているとアプリケーションが判定したアプリケーションからアプリケーションデータ１１８を受信する。例えば、Ｓｅａｈａｗｋｓアプリケーション１１４Ｈは、試合が開始される前の試合前、試合進行中の試合のスコアおよび統計、および試合終了後の分析および試合後のレビューを含んで良い。コンテキストデータ１２８が変更されるとともに（例えば、試合中に時間が変化する）、アプリケーション１１４Ｈ〜１１４Ｋの各々は、コンテクスチュアル・サービス１０４に提供されるアプリケーションデータ１１８Ｈ〜１１８Ｋを更新して良い。上述のように、コンテクスチュアル・サービス１０４は、どのアプリケーションデータを提供するかを決定する際、機械学習メカニズムを使用して良い。
【００５４】
いくつかの実施例では、ユーザは個々のアプリケーションをＧＵＩ２００内で起動する場合がある。例えば、ユーザは、特定のアプリケーション用に示されたＵＩ要素内でオプション（図示せず）を選択して良い。他の実施例では、ユーザもまた、ＧＵＩ２００をカスタマイズできる場合がある。例えば、カスタマイズＵＩ要素（図示せず）を選択したことに応答して、ユーザは次に、ＧＵＩ２００のディスプレイの中に含みたい異なる情報の選択するよう促される。例えば、ユーザは表示したいアプリケーションデータ１１８をリスト（または他の何らかのＵＩ要素または入力方法）から選択し、ならびに、どのようにデータが表示されるかを選択して良い。
【００５５】
図３は、通信のためコンテクスチュアル・サービス１０４を使用するアプリケーション１１４を図示する系統図３００である。系統図３００は、アプリケーション実行サービス１０８と通信するコンテクスチュアル・サービス１０４を含む。コンテクスチュアル・サービス１０４は、コンテキストマネージャ１２４Ａ、データストア１３４Ａ、およびレポート作成コンポーネント３０２を含んで良い。アプリケーション実行サービス１０８は、アプリケーション１１４Ａ〜１１４Ｎを実行する１つ以上のコンピューティング装置を含んで良い。他の実施例では、アプリケーション１１４Ａ〜１１４Ｎの全てまたは一部は、コンピューティング装置１０２Ａ上で、または他の何らかのコンピューティング装置上で実行されて良い。
【００５６】
アプリケーション１１４Ａ〜１１４Ｎは、データをコンテクスチュアル・サービス１０４へ／から送受信するように構成されても良い。アプリケーション１１４Ａ〜１１４Ｎはまた、互いに通信するためコンテクスチュアル・サービス１０４およびコンテクスチュアル・サービスＡＰＩ１１６を利用して良い。例えば、アプリケーション１１４Ａなどのアプリケーションは、コンテキストデータ１２８Ａを受信したことに応答してアプリケーションデータ１１８Ａを生成して良い。いくつかの実施例では、アプリケーションデータ１１８Ａの全てまたは一部は、コンテクスチュアル・サービス１０４によって、例えばアプリケーション１１４Ｂなどの１つ以上の他のアプリケーションに提供される。アプリケーションデータ１１８Ａは、破線により示されるように、アプリケーション１１４Ｂに直接提供されるか、またはコンテキストマネージャ１２４Ａを介してアプリケーション１１４Ｂに間接的に提供されて良い。
【００５７】
上述のように、例えばアプリケーション１１４Ａなどのアプリケーション１１４は、コンテクスチュアル・サービスＡＰＩ１１６を使用するコンテクスチュアル・サービス１０４によって利用される１つ以上のカスタムイベントを指定して良い。例えば、カスタムイベントは、他のアプリケーションが受信することに関心を持ち得るアプリケーション１１４Ａにより提供されるアプリケーションデータに関連しても良い。例えば、図２に図示されるＳｅａｈａｗｋｓアプリケーション１１４Ｈは、他のアプリケーションでは通常入手できないＳＥＡＴＴＬＥ  ＳＥＡＨＡＷＫＳについてのデータを提供するカスタムイベントを指定して良い。アプリケーション１１４Ａによって指定されたカスタムイベントに関連付けられたアプリケーションデータ１１８Ａを受信するため、アプリケーション１１４Ｂは、アプリケーション１１４によって指定された１つ以上のカスタムイベントに関する通知を受信するため登録して良い。他の実施例では、例えばアプリケーション１１４Ａなどのアプリケーションは、コンテクスチュアル・サービスＡＰＩ１１６によって提供される機能を利用して、直接データ３０４を例えばアプリケーション１１４Ｂなどの別のアプリケーションに直接送信して良い。
【００５８】
いくつかの実施例では、アプリケーション１１４Ａから直接データ３０４および／またはアプリケーションデータ１１８Ａを受信するアプリケーション１１４Ｂは、コンテクスチュアル・サービス１０４の一部であるコンテキストマネージャ１２４Ａに提供されるアプリケーションデータ１１８Ｂを生成するデータを使用して良い。他の構成では、コンテキストマネージャ１２４Ａは、受信したアプリケーションデータ１１８Ａを使用して、コンテキストデータ１２８Ａを更新して良い。例えば、場合によっては、アプリケーションデータ１１８Ａは、コンピューティング装置１０２Ａのユーザに関連付けられたコンテキストを更新するため使用され得る付加的なコンテキストデータ１２８を含んで良い。コンテキストマネージャ１２４Ａは、更新されたコンテキストデータ１２８Ｃをアプリケーション１１４Ａ〜１１４Ｎの全てまたは一部に提供して良い。現実施例では、コンテキストマネージャ１２４Ａは、更新されたコンテキストデータ１２８Ｃをアプリケーション１１４Ｎに提供した。アプリケーション１１４Ｎは、更新されたコンテキストデータ１２８Ｃを使用してアプリケーションデータ１１８Ｎを生成する。
【００５９】
レポート作成コンポーネント３０２は、アナリティクスを提供するように構成されても良い。例えば、コンテクスチュアル・サービス１０４に含まれる分析レポート作成コンポーネント３０２は、１つ以上のアプリケーション１１４Ａ〜１１４Ｎのユーザに関するアナリティクスを表示する図５に図示されるＧＵＩ５００を提供するように構成されても良い。アナリティクスは、ソフトウェア・プロバイダまたは他の認定ユーザによって利用され得るコンピューティング装置１０２Ａに関連付けられたＵＩ１３０Ａ上に表示されて良い。レポート作成コンポーネント３０２は、１つ以上のアプリケーション１１４Ａ−１１４Ｎに関する情報（例えば、設定情報）を含むレポートを作成するよう構成されて良い。
【００６０】
図４は、ユーザの現在のコンテキストに応じて機能を実行するためのアプリケーション１１４を識別して利用することを図示する系統図４００である。系統図４００は、コンテクスチュアル・サービス１０４、アプリケーション・サービス１０６、およびコンピューティング装置１０２Ｂを含む。上述のように、場合によっては、現在のコンテキストに関連していると識別されたアプリケーション１１４Ｇは、コンピューティング装置１０２Ｂにダウンロードされて良い。
【００６１】
いくつかの構成によれば、コンテクスチュアル・サービス１０４は、ユーザ１２０Ｂに関連付けられたコンテキストデータ１２８Ｂを受信し、コンテキストマネージャ１２４Ａは、コンテキストに関するアプリケーション１１４を決定する。コンテキストマネージャ１２４Ａは、コンテクスチュアル・サービス１０４に登録されている登録済みアプリケーション４０２から関連アプリケーション１１４を決定して良い。コンテキストマネージャ１２４Ａはまた、コンテクスチュアル・サービス１０４には登録されていないアプリケーション１１４から関連アプリケーション１１４を決定して良い。例えば、コンテキストマネージャ１２４Ａは、電子マーケット１３２から入手できるアプリケーションから関連アプリケーション１１４を決定して良い。いくつかの場合、コンテキストマネージャ１２４は、電子マーケット１３２から入手できるデータ、または他の何らかのソースを使用して、アプリケーションの機能および／または人気度を決定する。
【００６２】
現実施例では、コンテキストマネージャ１２４Ａは、コンテキストデータ１２８Ｂに関連する関連アプリケーション４０４を識別する。例えば、関連アプリケーション４０４は、コンテキストデータ１２８Ｂに応じて起動するように登録されたアプリケーション１１４でも良い。いくつかの構成では、コンテキストマネージャ１２４Ａは、コンテキストデータ１２８Ｂに応じて、コンピューティング装置１０２Ｂに提供する関連アプリケーション４０４の１つを選択して良い。他の実施例では、コンテキストマネージャ１２４Ａは、現在のコンテキストに関連する異なるアプリケーションの選択をユーザに提示して良い。例えば、コンテクスチュアル・サービス１０４は、ユーザインタフェース１３０Ｂに提示する関連アプリケーションデータ４０６を提供して良い。現実施例では、ユーザ１２０Ｂは、利用するアプリケーション１１４Ｇを選択する。ユーザ１２０Ｂからアプリケーション１１４Ｇの選択を受信した後、コンテクスチュアル・サービス１０４は、コンピューティング装置１０２Ｂに、選択されたアプリケーション１１４Ｇをダウンロードさせて良い。
【００６３】
上述のように、アプリケーション１１４Ｇをコンピューティング装置１０２Ｂ上にインストールするかどうかの決定は、どのくらいの頻度でユーザ１２０Ｂがアプリケーション１１４Ｇを使用する可能性があるかの予測に基づいてなされて良い。例えば、選択されたアプリケーション１１４Ｇはたった一度しか利用されない場合もある（例えば、特定のイベントのためのアプリケーション）。いくつかの場合、クライアント・コンテキストマネージャ１２４Ｃは、電子マーケット１３２に接続し、アプリケーション１１４Ｇをコンピューティング装置１０２Ｂへダウンロードし、アプリケーション１１４Ｇをコンピューティング装置１０２Ｂ上にインストールさせて良い。アプリケーション１１４Ｇのインストール後、クライアント・コンテキストマネージャ１２４Ｃは、アプリケーション１１４Ｇを起動した後、場合によっては、その後のある時点で、アプリケーション１１４Ｇをコンピューティング装置１０２Ｂから自動的に削除して良い。例えば、アプリケーション１１４Ｇは、イベントアプリケーション１１４Ｇが完了した後で削除されて良い（例えば、数時間後、数日後、など）。
【００６４】
図５は、図２記載のコンテキストセンシティブ・フレームワーク内の１つ以上のアプリケーションの使用に関係する分析を表示する例示的なＧＵＩ５００を示す画面図である。アプリケーション部５０４に図示されるように、ＧＵＩ５００は、図２で説明されるアプリケーション１１４Ｈ〜１１４Ｋに関するアナリティクスを示す。ＧＵＩ５００に提示されたデータは、コンテクスチュアル・サービス１０４に関連付けられたコンピューティング装置、アプリケーション・サービス１０６、または他の何らかのコンピューティング装置によって決定されて良い。ＧＵＩ５００は、例えばコンピューティング装置１０２Ｂなどのコンピューティング装置上に提示されて良い。
【００６５】
説明のためであって、限定することは目的とせず、ＧＵＩ５００が、特定の時間帯に利用されるまたは特定のコンテキストを伴って利用される１つ以上のアプリケーション１１４の使用に関するアナリティクスを見るために、コンテクスチュアル・サービス１０４の開発者によって利用されていると仮定する。ＧＵＩ５００は、さまざまな異なるアナリティクスおよびＵＩ要素を表示して良い。現実施例では、ＧＵＩ５００は、構成ＵＩ要素５０２Ａ、使用のタイプＵＩ要素５０２Ｂ、平均使用率ＵＩ要素５０２Ｃ、利益ＵＩ要素５０２Ｄ、および換算レート５０２Ｅを示す。現実施例では、現在選択されているアプリケーションは、スタジアムアプリケーションＵＩ要素の周りに表示された太い破線によって示されるスタジアムアプリケーション１１４Ｉである。
【００６６】
構成ＵＩ要素５０２Ａは、スタジアムアプリケーション１１４Ｉに関する設定情報を表示して良い。使用のタイプＵＩ要素５０２Ｂは、どのようにアプリケーションが使用されているかを示すデータを表示して良い。現実施例では、使用のタイプＵＩ要素５０２Ｂは、スタジアムアプリケーション１１４Ｉのスコア機能は、２２％の時間使用され、スタジアムアプリケーション１１４Ｉの統計機能は、５８％の時間されたことを示す。いくつかの構成では（図示せず）、ユーザは、１人または複数のユーザに関連付けられたデータを表示のため指定する１つ以上のオプションを選択して良い。例えば、単一ユーザまたはユーザグループによって、フットボールの試合のコンテキストにおいてアプリケーションがどのように使用されているかについてのアナリティクスを見ることを指定して良い。他の実施例では、スポーツイベントに参加していないユーザによってプリケーションがどのように使用されているかについてのアナリティクスを見ることを指定して良い。平均使用率ＵＩ要素５０２Ｃはスタジアムアプリケーション１１４Ｉがある時間帯（例えば、日毎、週毎、月毎）に使用されている平均時間を表示して良い。現実施例では、平均使用率ＵＩ要素５０２Ｃは、顧客による週毎の平均使用率の時間を表示するように構成されている。他の実施例では、平均使用率ＵＩ要素５０２Ｃは、他のコンテキストにおいてアプリケーションがどのくらい使用されているかを表示するように構成されて良い。利益ＵＩ要素５０２Ｄは、特定した期間中に生み出された平均利益を表示してよい。現実施例では、利益ＵＩ要素５０２Ｄは、１週間のうちに生み出された利益量を示す。換算ＵＩ要素５０２Ｅは、使用のためユーザに提示され得るアプリケーションの平均換算レートを表示して良い。
【００６７】
いくつかの実施例では、異なるＵＩ要素の全てまたは一部は、追加情報を取得するため、または異なるオプションを設定するため選択されて良い。ユーザは、アプリケーション部５０４に表示されたＵＩ要素の１つを選択して、現在選択されているアプリケーションを変更して良い。
【００６８】
ユーザはまた、カスタマイズＵＩ要素５０２Ｆを選択することによって、ＧＵＩ５００をカスタマイズでき得る。カスタマイズＵＩ要素５０２Ｆを選択したことに応答して、ユーザは次に、ＧＵＩ５００のディスプレイの中に含みたい異なる情報を選択するよう促される。例えば、ユーザは、表示したいアナリティクスをリストから選択しても良い（または他の何らかのＵＩ要素または入力方法）。別の実施例では、ユーザは、プラン・アナリティクスがどのように表示されるかを選択して良い。例えば、ユーザは、プラン・アナリティクスが生データでグラフィック表示（例えば、表、チャート、グラフ）として、または他の何らかのフォーマットで表示させるように要求して良い。ユーザはまた、履歴情報をＧＵＩ５００に表示させるように要求して良い。例えば、ユーザは、アプリケーションの使用の時系列ディスプレイまたは他の何らかのデータを見ることを要求して良い。
【００６９】
ＧＵＩ５００に提示された情報はまた、後で使用するためにダウンローされても良い。説明したように、ユーザは、ダウンロードＵＩ要素５０２Ｇを選択して、ローカルデータストア、ネットワークデータストアまたは別の場所に情報をダウンロードして良い。アナリティクスは、１つ以上のフォーマットでダウンロードされても良い。例えば、ユーザは、テキストファイル、スプレッドシートファイル、ワープロファイル、または他の何らかのファイルとして顧客サポート情報の全てまたは一部をダウンロードして良い。
【００７０】
図６〜１１は、本明細書に開示された実施例に従って、現在のコンテキストに対して関連アプリケーションを識別し、関連アプリケーションから受信したデータをユーザに提供するコンテキストセンシティブ・フレームワークを使用する態様を説明するルーチンを示すフロー図である。図６〜１１および他の図に関して本明細書に記載された論理動作は、（１）一連のコンピュータ実行型の動作またはコンピューティング・システム上で実行されるプログラムモジュールおよび／または（２）コンピューティング・システム内の相互接続したマシンの論理回路または回路モジュールとして実装されて良いことを理解すべきである。
【００７１】
本明細書に記載されたさまざまな構成要素の実装は、コンピューティング・システムの性能および他の要件によって決まるものであって選択できるものである。したがって、本明細書に記載された論理動作は、さまざまに、動作、構造デバイス、行動またはモジュールのことである。これらの動作、構造デバイス、行動、およびモジュールは、ソフトウェア、ファームウェア、特殊用途デジタル論理およびそれらのいかなる組み合わせにおいて実装されて良い。また、図面に示されたまたは本明細書に記載されたものより、より多くのまたはより少ない動作が実行されて良いことを理解すべきである。これらの動作は、並列に実行されて良いし、または、本明細書に記載されたものとは異なる順序で実行されて良い。
【００７２】
図６は、アプリケーションを選択し、ユーザに関連付けられたコンテキストを用いて選択したアプリケーションから受信したデータを整理する本明細書に開示されたメカニズムの態様を説明するルーチン６００を示すフロー図である。ルーチン６００は、ユーザに関連付けられたコンテキストデータ１２８が取得される６０２で始まって良い。上述のように、コンテキストデータ１２８は、ユーザに関連付けられたコンピューティング装置１０２上で動作するクライアント・コンテキストマネージャ１２４によって取得されて良い。コンテキストデータ１２８は、例えば現在の時刻、ユーザの現在の場所、気象データ、コンピューティング装置１０２上でどんな行動が行われているかなどのさまざまなコンテキストデータを含んで良いが、これに限るものではない。
【００７３】
６０４で、コンテキストデータ１２８は、コンテクスチュアル・サービスに提供される。上述のように、コンテキストデータ１２８は、コンピューティング装置１０２上で動作するクライアント・コンテキストマネージャ１２４によって、または他の何らかのメカニズムを使用して、コンテクスチュアル・サービス１０４に提供されて良い。いくつかの実施例では、コンテキストデータ１２８は、コンテクスチュアル・サービス１０４に提供され、定期的にまたは何らかの事象または条件に応答して更新されても良い。他の実施例では、コンテキストデータ１２８は、ネットワーク接続が確立されたとき、および／または周期的にコンテクスチュアル・サービス１０４に提供されて良い。
【００７４】
６０６で、利用する関連アプリケーションを識別するデータが受信される。上述のように、受信されるデータは、関連アプリケーション１１４を識別するデータの識別１３６を含んで良い。他の実施例では、データは、アプリケーション自体を含んで良いし、またはデータは、１つ以上のアプリケーション１１４によって提供されるアプリケーションデータ１１８を含んで良い。
【００７５】
６０８で、コンテキストデータ１２８が、関連していると識別されたアプリケーション１１４に提供される。上述のように、コンテキストデータ１２８は、関連していると識別されたアプリケーション１１４の全てまたは一部に提供されて良い。いくつかの実施例では、コンテクスチュアル・サービス１０４内で動作するコンテキストマネージャ１２４は、最も関連があるアプリケーション１１４を識別し、コンピューティング装置１０２から受信するコンテキストデータ１２８をアプリケーション１１４に提供する。
【００７６】
６１０で、アプリケーションデータ１１８がアプリケーション１１４から受信される。上述のように、受信されるアプリケーションデータ１１８は、アプリケーション１１４そのものによって選択されて良い。コンテキストマネージャ１２４がアプリケーション１１４から特定のタイプのデータを要求する代わりに、コンテクスチュアル・サービス１０４により、アプリケーション１１４は、コンピューティング装置１０２によって提供されるコンテキストデータ１２８に基づいて、提供するアプリケーションデータ１１８を選択することができる。
【００７７】
６１２で、提供するアプリケーションデータ１１８が選択される。上述のように、関連アプリケーション１１４から受信したアプリケーションデータ１１８は、重複データならびに現在のコンテキストに関連してない可能性のある他のデータを含んで良い。いくつかの実施例では、コンテキストマネージャ１２４は、アプリケーションデータ１１８からの重複データを削除し、アプリケーションデータ１１８の一部に優先順位をつけ、提供されるアプリケーションデータ１１８をフォーマットする。いくつかの実施例では、アプリケーションデータ１１８は、ユーザに提供されるようにフォーマットされる。他の実施例では、アプリケーションデータ１１８は、別のアプリケーションおよび／またはコンピューティング装置１０２に提供されるようにフォーマットされる。
【００７８】
６１４で、選択されたデータが提供される。上述のように、選択されたデータは、コンテクスチュアル・サービス１０４にどのアプリケーションが利用されているかに関係なく共通ＵＩを提供するユーザインタフェース１３０において提供されて良い。他の実施例では、ユーザインタフェース１３０は、アプリケーション１１４またはコンテキストデータ１２８に関するアプリケーション１１４によって提供されるネイティブインタフェースでも良い。他の実施例では、選択されたデータは、コンピューティング装置１０２によって使用できるフォーマットで提供される。
【００７９】
図７は、アプリケーション１１４をコンテクスチュアル・サービス１０４に登録するための本明細書に開示されたメカニズムの態様を説明するルーチン７００を示すフロー図である。７０２で、アプリケーション１１４は、コンテクスチュアル・サービスＡＰＩ１１６を利用するように構成されて良い。上述のように、アプリケーション１１４は、コンテクスチュアル・サービス１０４に登録する機能を提供するコンテクスチュアル・サービスＡＰＩ１１６を利用して良い。例えば、アプリケーション１１４は、コンテキストデータ１２８によって指定されたさまざまなコンテキストのために起動するように登録されて良い。アプリケーション１１４はまた、カスタムイベントを定義する、その他のアプリケーション１１４と通信するなどコンテクスチュアル・サービスＡＰＩ１１６の他の機能を利用するように構成されても良い。上述のように、アプリケーション１１４は、例えばサーモスタット、照明システム、警報システム、車、食器洗い機、洗濯機、乾燥機、冷蔵庫、オーブン、他の何らかのホームオートメーションシステムなどのコンピューティング装置に関連付けられても良いが、これらに限らない。例えば、照明機器は、コンテクスチュアル・サービス１０４と通信するためのＡＰＩを利用して良い。いくつかの構成では、アプリケーション１１４は、システムオンチップ（「ＳＯＣ」）として実装されて良く、ＡＰＩによって提供される機能を利用して良い。
【００８０】
７０４で、アプリケーション１１４は、コンテクスチュアル・サービス１０４に登録される。上述のように、異なるアプリケーション１１４が、ユーザに関連付けら得る異なるコンテキストに応答して起動されるようにコンテクスチュアル・サービス１０４に登録されて良い。いくつかのアプリケーション１１４は、１つ以上の異なる条件（例えば、指定した時間における指定された場所）に応答して起動されるように登録されて良い。上述のように、いくつかの構成では、コンテクスチュアル・サービス１０４は、データを未登録アプリケーションに提供して良い。
【００８１】
７０６で、コンテクスチュアル・サービスはアプリケーションを登録する。上述のように、登録要求を受信した後、コンテクスチュアル・サービス１０４は、登録済みアプリケーションが指定された条件に応答して起動されるように、アプリケーションを登録する。
【００８２】
図８は、ユーザに関連付けられたコンピューティング装置上では現在利用できないアプリケーションにアクセスを提供するための本明細書に開示されたメカニズムの態様を説明するルーチン８００を示すフロー図である。ルーチン８００は、コンテキストデータ１２８が受信される８０２で始まって良い。上述のように、コンテキストデータ１２８は、コンテクスチュアル・サービス１０４内で動作するコンテキストマネージャ１２４Ａによって受信されて良い。
【００８３】
８０４で、利用するアプリケーションが決定される。上述のように、コンテクスチュアル・サービス１０４が、コンテキストデータ１２８に関連付けられたユーザによって利用され得る１つ以上のアプリケーション１１４を決定するため使用されて良い。いくつかの構成では、コンテクスチュアル・サービス１０４は、ユーザに、コンテキストデータ１２８用に登録されたアプリケーション１１４とともにＵＩ１３０を提示する。ＵＩ１３０は次いで、利用するアプリケーション１１４うち少なくとも１つの選択を受信する。他の実施例では、ＵＩ１３０は、アプリケーション１１４の選択を受信するために提示されない場合もある。例えば、コンテクスチュアル・サービス１０４は、コンテキストマネージャ１２４Ａを使用して１つ以上のアプリケーション１１４を選択して良い。上述のように、コンテキストマネージャ１２４Ａは、機械学習メカニズムまたは他の何らかのメカニズムを使用して、ユーザによってアプリケーションが利用される可能性が高いかどうかを予測して良い。８０６で、アプリケーション１１４は、決定されると、コンピューティング装置１０２上にインストールされる。上述のように、アプリケーション１１４は、選択されたアプリケーションがコンピューティング装置上では現在利用できない場合、コンピューティング装置１０２上にインストールされて良い。
【００８４】
８０８で、アプリケーション１１４が起動される。上述のように、クライアント・コンテキストマネージャ１２４は、アプリケーション１１４をコンピューティング装置１０２上で起動させて良い。いくつかの実施例では、アプリケーション１１４は、ユーザによって使用のためコンピューティング装置１０２上で起動されて良い。他の実施例では、アプリケーション１１４は、アプリケーションデータがユーザ装置にストリーミングされて、サービス・プロバイダーネットワークにおけるリモートコンピューティング装置上で起動され実行されて良い。
【００８５】
８１０で、アプリケーション１１４は、決定されると、コンピューティング装置１０２から削除されて良い。上述のように、アプリケーション１１４は将来ユーザ１２０によって利用されそうにないと、コンテクスチュアル・サービス１０４が決定すると、アプリケーション１１４は削除されて良い。場合によっては、いくらか時間が経過した後、または他の何らかの条件に応じて（例えば、コンテキストが変化した後）、アプリケーションは削除される。
【００８６】
図９は、ユーザに関連付けられたコンピューティング装置上では利用できないアプリケーションにアクセスを提供するための本明細書に開示されたメカニズムの態様を説明するルーチン９００を示すフロー図である。ルーチン９００は、コンテキストデータ１２８が受信される９０２で始まって良い。上述のように、コンテキストデータ１２８は、コンテクスチュアル・サービス１０４内で動作するコンテキストマネージャ１２４Ａによって受信されて良い。
【００８７】
９０４で、利用するアプリケーションが決定される。上述のように、コンテクスチュアル・サービス１０４は、コンテキストデータ１２８に関連付けられたユーザによって利用され得る１つ以上のアプリケーション１１４を決定するため使用されて良い。いくつかの構成では、コンテクスチュアル・サービス１０４は、ユーザに、コンテキストデータ１２８用に登録されたアプリケーション１１４とともにＵＩ１３０を提示する。他の実施例では、コンテクスチュアル・サービス１０４は、コンテキストデータ１２８を使用し、電子マーケット１３２から入手できる関連アプリケーション１１４を決定する。ＵＩ１３０は次いで、利用するアプリケーション１１４うち少なくとも１つの選択を受信する。
【００８８】
９０６で、アプリケーション１１４が起動される。上述のように、アプリケーション１１４は、アプリケーション実行サービス１０８内、または他の何らかのコンピューティング装置上で実行されて良い。
【００８９】
９０８で、アプリケーションデータ１１８が提供される。上述のように、コンテキストマネージャ１２４Ａは、アプリケーション実行サービス１０８から受信されるアプリケーションデータ１１８をコンピューティング装置１０２上で動作するクライアント・コンテキストマネージャ１２４に提供して良い。アプリケーションデータ１１８は、ユーザに提供されるか、または他の何らかのアプリケーション、または、例えばスマートサーモスタット、照明システム、警報システム、車、食器洗い乾燥機、洗濯機、乾燥機、冷蔵庫、オーブン、他の何らかのホームオートメーションシステムなどのコンピューティング装置１０２によって使用されて良い。
【００９０】
図１０は、コンテクスチュアル・サービスを用いてアプリケーションが互いに通信するための本明細書に開示されたメカニズムの態様を説明するルーチン１０００を示すフロー図である。ルーチン１０００は、第１アプリケーションからアプリケーションデータ１１８が受信される１００２で始まってよい。上述のように、アプリケーション１１４は、コンテクスチュアル・サービス１０４にカスタムイベントを登録するためのコンテクスチュアル・サービスＡＰＩ１１６を利用して良い。他のアプリケーション１１４は、第１アプリケーションによって定義されたカスタムイベントの発生に関連付けられた通知を受信するため登録されて良い。
【００９１】
１００４で、受信されたアプリケーションデータ１１８は、コンテキストデータ１２８を更新するため使用されて良い。上述のように、第１アプリケーション１１４から受信されるアプリケーションデータ１１８は、現在のコンテキストに関する付加的なコンテクスチュアル情報を提供して良い。いくつかの実施例では、第１アプリケーションから受信されるアプリケーションデータ１１８は、現在のコンテキストに関連しない場合がある。この場合、コンテクスチュアル・サービス１０４は、コンテキストデータ１２８を更新しない。
【００９２】
１００６で、第１アプリケーションから受信されるアプリケーションデータ１１８および／または更新されたコンテキストデータが、１つ以上の他のアプリケーション１１４に提供される。上述のように、コンテクスチュアル・サービス１０４は、カスタムイベントと関連しているアプリケーションデータ１１８の少なくとも一部をカスタムイベントの通知を受信するため登録されているアプリケーション１１４に提供して良い。いくつかの構成では、コンテクスチュアル・サービス１０４は、更新されたコンテキストデータ１２８を現在のコンテキストに関連する他のアプリケーション１１４の各々に提供する。また述べたように、アプリケーションデータ１１８は、他のコンピューティング装置に提供され、その装置の動作を制御するために使用されて良い。例えば、アプリケーションデータ１１８がサーモスタットに提供され、温度設定を変更するためにサーモスタットによって利用されるアプリケーション１１４によって使用される。
【００９３】
１００８で、更新されたアプリケーションデータ１１８が他のアプリケーションから受信される。上述のように、アプリケーションは、コンテクスチュアル・サービス１０４にどのようなデータを提供するかを決定する。したがって、コンテクスチュアル・サービス１０４によって提供される更新されたコンテキストデータ１２８は、アプリケーション１１４に異なるアプリケーションデータ１１８を提供させて良い。いくつかの実施例では、更新されたコンテキストデータ１２８は、サーモスタット、照明システム、警報システム、車、食器洗い機、洗濯機、乾燥機、冷蔵庫、オーブン、他の何らかのホームオートメーションシステムなどの他のコンピューティング装置から受信されて良い。
【００９４】
図１１は、ユーザに関連付けられたコンピューティング装置に提供するアプリケーションデータを選択するための本明細書に開示されたメカニズムの態様を説明するルーチン１１００を示すフロー図である。ルーチン１１００は、アプリケーションデータ１１８がアプリケーション１１４から受信される１１０２で始まって良い。上述のように、異なるアプリケーションから受信されるアプリケーションデータ１１８は、データを提供するアプリケーション１１４によって選択され選ばれる。これは、単にアプリケーションから特定のデータを要求することと対照的である。
【００９５】
１１０４で、ユーザに提供するアプリケーションデータ１１８は、顧客の選好を使用して選択されて良い。上述のように、顧客の選好は、１つ以上の顧客プロファイルにおいて指定された環境設定されても良いし、またはユーザに関連付けられた履歴データから決定され得る。例えば、ユーザは、他のアプリケーションデータ１１８または他のアプリケーション１１４に優先して、特定のアプリケーションデータ１１８または別のアプリケーション１１４を事前に選択していたと決定され得る。顧客の選好はまた、顧客プロファイルまたは他の何らかのメモリ内に設置され得る明示的な設定から決定されて良い。
【００９６】
１１０６で、選択したアプリケーションデータ１１８からの重複データが削除される。上述のように、異なるアプリケーションから受信されるアプリケーションデータ１１８は、重複したまたは互いに同様のものであるデータを含み得る。
【００９７】
１１０８で、アプリケーションデータは、ユーザインタフェースのディスプレイ用にフォーマットされる。上述のように、コンテキストマネージャは、異なるアプリケーションの各々に関連付けられた異なるユーザインタフェースの使用によってユーザの注意がそらされないように、共通のユーザインタフェース１３０内で提供されるデータをフォーマットして良い。
【００９８】
図１２および以下の説明は、本明細書に記載された実施例が実装され得る適切なコンピューティング環境の簡潔な一般的な説明を提供することを目的としている。具体的には、図１２は、サービス・プロバイダーネットワーク１１０を含む例示的な動作環境を示すシステムおよびネットワーク図である。上述のように、サービス・プロバイダーネットワーク１１０は、仮想マシンインスタンスおよびコンピューティングリソースを永続的にまたは必要に応じて提供できる。
【００９９】
サービス・プロバイダーネットワーク１１０によって提供されるコンピューティングリソースは、例えばデータ処理リソース、データ記憶リソース、ネットワークリソース、データ通信リソースなどの各種リソースを含んで良い。コンピューティングリソースの各種は、汎用的であって良いし、または、複数の特定の構成において利用可能であって良い。例えば、以下により詳細に説明されるように、データ処理リソースは、複数の異なる構成において仮想マシンインスタンスとして利用できて良い。仮想マシンインスタンスは、ウエブサーバ、アプリケーションサーバ、メディアサーバ、データベースサーバおよび他の種類のアプリケーションを含むアプリケーションを実行するように構成されて良い。データ記憶リソースは、ファイル記憶装置、ブロック記憶装置などを含んで良い。コンピューティングリソースの仮想マシンインスタンスの構成のそれぞれのタイプは、例えば多数のプロセッサ、大容量メモリ、および／または大きな記憶容量で構成される大きなリソース、および、より少ない数のプロセッサ、小容量メモリおよび／またはより小さい記憶容量で構成される小さなリソースなど、異なるサイズで利用されて良い。
【０１００】
サービス・プロバイダーネットワーク１１０によって提供されるコンピューティングリソースは、１つ以上のデータセンター１２０４Ａ〜１２０４Ｎ（本明細書では、単独では「データセンター１２０４」と称され、または集合的に「データセンター１２０４」と称され得る）による１つの実装によって使用可能となる。データセンター１２０４は、コンピュータ・システムおよび関連した構成要素を格納し稼働させるために利用される施設である。データセンター１２０４は、典型的には、冗長化電源、非常用電源、通信、冷却およびセキュリティのシステムを含む。データセンター１２０４はまた、地理的に分散した場所にあってよい。本明細書に開示された概念および技術の一部または全てを実装するデータセンター１２０４の一つの例示的な構成が、図１３に関して以下に説明する。
【０１０１】
サービス・プロバイダーネットワーク１１０のユーザおよび顧客は、ネットワーク１２３０で示されるように広域ネットワーク（「ＷＡＮ」）などの適切なデータ通信網上で、データセンター１２０４によって提供されるコンピューティングリソースにアクセスして良い。広域ネットワークは使用されても良いが、データセンター１２０４をコンピューティング装置１０２に接続する、ローカルエリアネットワーク（「ＬＡＮ」）、インターネット、または従来周知の他のいかなるネットワーク・トポロジが利用されて良いことを理解すべきである。また、そのようなネットワークの組み合わせもまた利用されて良いことを理解すべきである。
【０１０２】
図１３は、本明細書において開示された、コンテキストセンシティブ・フレームワークが、現在のコンテキストに対する関連アプリケーションを識別し、関連アプリケーションから受信したデータをユーザに提供するのに使用される概念および技術の一部または全てを含む、サービス・プロバイダーネットワーク１１０の態様を実装するデータセンター１２０４のための１つの構成を説明するコンピューティング・システム図である。図１３に示すデータセンター１２０４の例は、コンピューティングリソースを提供するいくつかのサーバコンピュータ１３０２Ａ〜１３０２Ｆ（本明細書では、単独では「サーバコンピュータ１３０２」と称され、または複数形で「サーバコンピュータ１３０２」と称され得る）を含む。サーバコンピュータ１３０２は、本明細書に記載されるコンピューティングリソースを提供するために適切に構成された標準のタワー型またはラックマウント型サーバコンピュータであって良い。実施例によれば、サーバコンピュータ１３０２は、上記のように、ソフトウェア製品を実行するように構成される。
【０１０３】
一実施例では、一部のコンピューティングリソース１３０４は、仮想マシンインスタンスである。従来周知であるように、仮想マシンインスタンスは、物理マシンのようにプログラムを実行するマシン（例えば、コンピュータ）のソフトウェア実行のインスタンスである。サーバコンピュータ１３０２の各々は、コンピューティングリソースをインスタンス化し、コンピューティングリソースとコンピューティングリソースのインスタンスとを管理することができるインスタンスマネージャ（図示せず）を実行するように構成されて良い。仮想マシンインスタンスの場合、例えば、インスタンスマネージャは、例えば単一のサーバコンピュータ１３０２上で複数の仮想マシンインスタンスの実行を可能にするように構成されるハイパーバイザまたは別のタイプのプログラムであって良い。
【０１０４】
本明細書に開示された実施例は、主に仮想マシンインスタンスとの関連において説明されたものであるが、他のタイプのコンピューティングリソースを、本明細書において開示された概念および技術で利用することができることを理解すべきである。例えば、本明細書において開示された技術は、ハードウェアリソース、データ記憶リソース、データ通信リソース、ネットワークリソース、データベースリソースおよび他の種類のコンピューティングリソースで利用されて良い。
【０１０５】
図１３に示すデータセンター１２０４はまた、サービス・プロバイダーネットワーク１１０内にあるデータセンター１２０４の操作を管理するソフトウェア・コンポーネント、サーバコンピュータ１３０２、仮想マシンインスタンス、および他のリソースを実行するために確保されているサーバコンピュータ１３０２Ｆを含む。サーバコンピュータ１３０２Ｆはまた、コンテキストマネージャ１２４Ａを実行して良いし、データストア１３４Ａを含んで良い。これら構成要素の各々の操作に関する詳細は上に提供されている。この点について、これら構成要素は、サービス・プロバイダーネットワーク１１０内において実行されるものとして説明されているが、サービス・プロバイダーネットワーク１１０の外部にあるコンピューティング・システムもこれら構成要素の一部または全てを実行するために利用されて良いことを理解すべきである。他の構成もまた利用されて良い。
【０１０６】
図１３に示すデータセンター１２０４の例において、適切なローカルエリアネットワーク（「ＬＡＮ」）１３０５を利用してサーバコンピュータ１３０２Ａ〜１３０２Ｅおよびサーバコンピュータ１３０２Ｆが相互接続される。ＬＡＮ１３０５はまた、図１２に説明されるネットワーク１２３０に接続される。図１２および図１３に図示される構成およびネットワーク・トポロジは、大いに簡素化されており、さらに多くのコンピューティング・システム、ネットワーク、およびネットワーク機器が、本明細書に開示されたさまざまなコンピューティング・システムを相互接続するために利用されて良いことを理解すべきである。適切な負荷分散デバイスまたはソフトウェアモジュールもまた、データセンター１２０４Ａ〜１２０４Ｎの各々の間、各データセンター１２０４におけるサーバコンピュータ１３０２Ａ〜１３０２Ｆの各々の間、および、仮想マシンインスタンスとサービス・プロバイダーネットワーク１１０によって提供される他の種類のコンピューティングリソースとの間で負荷を分散させるために利用されて良い。
【０１０７】
図１３に記載されるデータセンター１２０４は、例示的なものに過ぎず、他の実装もまた利用されて良いことを理解すべきである。さらに、これら構成要素によって提供される機能は、ソフトウェア、ハードウェア、またはソフトウェアおよびハードウェアの組み合わせによって実装されて良いことを理解すべきである。その他の実装は当業者に自明であろう。
【０１０８】
図１４は、上述のようにアプリケーションデータをユーザに提供するコンテキストセンシティブ・フレームワークを使用するためのプログラム構成要素を実行できるコンピュータ１４００用のコンピュータアーキテクチャの例を示す。図１４に示すコンピュータアーキテクチャは、従来のサーバコンピュータ、ワークステーション、デスクトップ・コンピュータ、ラップトップ、タブレット、ネットワークアプライアンス、携帯情報端末（「ＰＤＡ」）、電子書籍リーダ、デジタル携帯電話、または他のコンピューティング装置を例示し、本明細書において提示されたソフトウェア・コンポーネントのいずれかを実行するために利用されて良い。例えば、図１４に示すコンピュータアーキテクチャは、上記のように操作を実行するソフトウェア・コンポーネントを実行するために利用されて良い。図１４に示すコンピュータアーキテクチャはまた、コンピューティング装置１０２、コンテクスチュアル・サービス１０４において利用されるコンピューティング装置、アプリケーション・サービス１０６またはアプリケーション実行サービス１０８または本明細書に記載された他のいかなるコンピューティング・システムを実装するためにも利用されて良い。
【０１０９】
コンピュータ１４００は、数多くの構成要素またはデバイスがシステム・バスまたは電気通信パスを経由して接続され得るプリント基板であるベースボード１４０２、または「マザーボード」を含む。一説明例では、１つ以上の中央処理装置（「ＣＰＵ（複数可）」）１４０４が、チップセット１４０６と連動して動作する。ＣＰＵ（複数可）１４０４は、コンピュータ１４００の動作に必要な算術演算および論理演算を実行する標準プログラム可能プロセッサであって良い。
【０１１０】
ＣＰＵ（複数可）１４０４は、これらの状態間で差異を生じこれらの状態を変化させるスイッチング素子の動作を通して、１つの離散物理的状態から次の状態へ遷移することにより動作を実行する。スイッチング素子は通常論理ゲートなど１つ以上の他のスイッチング素子の状態の論理結合に基づいて出力状態を提供する、例えばフリップフロップおよび電子回路などの２つのバイナリ状態のうちの１つを維持する電子回路を含んで良い。これらの基本的なスイッチング素子は、レジスタ、加算器減算器、算術論理ユニット、浮動小数点ユニットなどを含むより複雑な論理回路を作成するため組み合わされて良い。
【０１１１】
チップセット１４０６は、ＣＰＵ（複数可）１４０４とベースボード１４０２上の構成要素およびデバイスの残りの部分との間のインタフェースを提供する。チップセット１４０６は、コンピュータ１４００内のメインメモリとして使用されるＲＡＭ１４０８へのインタフェースを提供して良い。チップセット１４０６は、例えばコンピュータ１４００の起動を助けてさまざまな構成要素およびデバイス間で情報を転送する基本的なルーチンを記憶する読出専用メモリ（「ＲＯＭ」）１４１０または不揮発性ＲＡＭ（「ＮＶＲＡＭ」）などコンピュータ可読記憶媒体へのインタフェースをさらに提供して良い。ＲＯＭ１４１０またはＮＶＲＡＭはまた、本明細書に記載された実施例に従って、コンピュータ１４００の動作に必要な他のソフトウェア・コンポーネントを記憶して良い。
【０１１２】
コンピュータ１４００は、ローカルエリアネットワーク１４２０などのネットワークを介してリモートコンピューティング装置およびコンピュータ・システムに対する論理接続を使用するネットワーク環境において動作して良い。チップセット１４０６は、例えばギガビットイーサネットアダプタなどのネットワークインタフェースコントローラ（「ＮＩＣ」）１４１２を介してネットワークの接続性を提供する機能を含んで良い。ＮＩＣ１４１２は、ローカルエリアネットワーク１４２０上でコンピュータ１４００を他のコンピューティング装置に接続できる。複数のＮＩＣ１４１２がコンピュータ１４００内に存在し、コンピュータを他の種類のネットワークおよびリモートコンピュータ・システムに接続することを理解すべきである。
【０１１３】
コンピュータ１４００は、コンピュータ用の不揮発性記憶装置を提供する例えばデータストア１３４などのデータストアに接続されて良い。データストア１３４は、本明細書においてより詳細に説明されるシステムプログラム、アプリケーションプログラム、他のプログラムモジュールおよびデータを格納して良い。データストア１３４は、チップセット１４０６に接続された記憶制御装置１４１４を経由してコンピュータ１４００に接続されて良い。データストア１３４は１つ以上の物理記憶ユニットで構成されて良い。記憶制御装置１４１４は、コンピュータおよび物理記憶ユニット間で物理的に接続しデータを転送するシリアル接続ＳＣＳＩ（「ＳＡＳ」）インタフェース、シリアル・アドバンスド・テクノロジー・アタッチメント（「ＳＡＴＡ」）インタフェース、ファイバチャネル（「ＦＣ」）インタフェースまたは他のタイプのインタフェースを介して、物理記憶ユニットとインタフェースをとって良い。
【０１１４】
コンピュータ１４００は、記憶される情報を反映するため物理記憶ユニットの物理的状態を変換することにより、データストア１３４に関するデータを記憶して良い。具体的な物理的状態の変換は、本明細書の異なる実装におけるさまざまな要因に依存し得る。そのような要因の例は、物理記憶ユニットを実装するために使用される技術、データストア１３４が一次記憶装置または二次記憶装置として特徴づけられるかどうか、などが挙げられるがこれに限定されるものではない。
【０１１５】
例えば、コンピュータ１４００は、記憶制御装置１４１４を経由して命令を発行することにより情報をデータストア１３４に記憶して、磁気ディスク・ドライブユニット内の特定の位置の磁気特性、光記憶ユニット内の特定の位置の反射特性または屈折特性、または、特定のコンデンサ、トランジスタ、または固体記憶ユニット内の他の別個の構成要素の電気特性を変更することができる。物理メディアの他の変換は、本明細書の範囲および精神を逸脱しない範囲で実現可能であり、上述の実施例は説明を容易にするためのみに提供される。コンピュータ１４００は、物理記憶ユニット内の１つ以上の特定の位置の物理的状態または特性を検出することにより、データストア１３４からの情報をさらに読み取ることができる。
【０１１６】
上述のデータストア１３４の他に、コンピュータ１４００は、例えばプログラムモジュール、データ構造、または他のデータなどの情報を記憶するおよび読み出すための他のコンピュータ可読記憶媒体にアクセスして良い。コンピュータ可読記憶媒体は、データの非一時的記憶装置のために備えられ、コンピュータ１４００によってアクセスされ得る任意の入手可能な媒体であることを、当業者が理解するべきである。
【０１１７】
制約条件としてではなく例として、コンピュータ可読記憶媒体は、任意の方法または技術において実装される揮発性および不揮発性の、リムーバブルおよび非リムーバブルメディアを含んで良い。コンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、消去可能プログラム可能ＲＯＭ（「ＥＰＲＯＭ」）、電気的消去可能型プログラム可能ＲＯＭ（「ＥＥＰＲＯＭ」）、フラッシュメモリまたは他の固体メモリ技術、コンパクトディスクＲＯＭ（「ＣＤ−ＲＯＭ」）、デジタル多用途ディスク（「ＤＶＤ」）、高解像度ＤＶＤ（「ＨＤ−ＤＶＤ」）、ブルーレイ、または他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、または非一時的な方法で所望の情報を記憶するために使用できる他の任意の媒体を含むが、これらに限らない。
【０１１８】
データストア１３４は、コンピュータ１４００の操作を制御するのに利用されるオペレーティング・システム１４３０を格納して良い。一実施例によれば、オペレーティング・システムは、ＬＩＮＵＸオペレーティング・システムを含む。別の実施例によれば、オペレーティング・システムは、マイクロソフト社からのＷＩＮＤＯＷＳ（登録商標）ＳＥＲＶＥＲオペレーティング・システムを含む。さらなる実施例によれば、オペレーティング・システムは、ＵＮＩＸオペレーティング・システムまたはＡＮＤＲＯＩＤオペレーティング・システムを含み得る。他のオペレーティング・システムもまた利用されて良いことを理解すべきである。データストア１３４は、コンテキストマネージャ１２４、アプリケーション１１４および／または他のいかなるソフトウェア・コンポーネントおよび上述のデータを含む構成要素などの、他のシステムまたはアプリケーションプログラムおよびコンピュータ１４００によって利用されるデータを格納して良い。データストア１３４はまた、本明細書では具体的に特定されていない他のプログラムおよびデータを格納して良い。
【０１１９】
一実施例では、データストア１３４または他のコンピュータ可読記憶媒体は、コンピュータ１４００にロードされるとコンピュータを汎用コンピューティング・システムから本明細書に記載された実施例を実施できる専用コンピュータに変換するコンピュータ実行可能な命令でエンコードされる。これらのコンピュータ実行可能命令は、上記のように、状態間でどのようにＣＰＵ（複数可）１４０４が遷移するかを指定することにより、コンピュータ１４００を変換する。一実施例によれば、コンピュータ１４００は、コンピュータ１４００に実行されると図６−１１に関して上述のさまざまなルーチンを実行するコンピュータ実行可能な命令を記憶するコンピュータ可読記憶媒体へのアクセスを有する。コンピュータ１４００は、本明細書に記載された他のコンピュータ実行型操作のいずれかを実行するコンピュータ可読記憶媒体を含み得る。
【０１２０】
コンピュータ１４００はまた、キーボード、マウス、タッチパッド、タッチスクリーン、電子スタイラス、または他のタイプの入力装置などの多数の入力装置から入力を受信して処理する１つ以上の入出力制御装置１４１６を含んで良い。同様に、入出力制御装置１４１６は、コンピュータモニタ、フラットパネルディスプレイ、デジタルプロジェクタ、プリンタ、プロッタ、または他のタイプの出力装置などのディスプレイに出力を提供して良い。コンピュータ１４００は、図１４に示す構成要素の全ては含まない場合があり、図１４に明示的に示されていないその他のコンポーネントを含んで良く、または、図１４に示すものとは完全に異なるアーキテクチャを使用して良いことが理解されるだろう。
【０１２１】
上述の事項を踏まえると、現在のコンテキストに対する関連アプリケーションを識別し、関連アプリケーションから受信したデータをユーザに提供する、コンテキストセンシティブ・フレームワークを使用する技術が本明細書において提示されたことを理解すべきである。さらに、本明細書において提示された主題事項はコンピュータの構造的特徴、方法論的動作およびコンピュータ可読媒体に特有の言語において説明されたが、請求項で規定される本発明は、本明細書に記載された特定の機能、動作、または媒体に必ずしも限定されないことを理解すべきである。むしろ、特定の機能、動作、および媒体は、請求項を実施する形態の例として開示されている。
【０１２２】
上述の主題事項は、例として提供されており、制限するものと解釈すべきでない。さらに、クレームされた主題事項は、本開示の任意の一部に記された一部のあるいは全ての不都合を解決する実装に限定されない。図示され説明された実施例およびアプリケーションの例にしたがうことなく、また、以下の請求の範囲において記載された本発明の真の精神および範囲から逸脱しない範囲において、本明細書に記載された主題事項に対してさまざまな修正および変更がなされて良い。
【０１２３】
主題事項は、構造的特徴および／または方法論的動作に特有の言語において説明されたが、添付の請求の範囲で定義された主題事項は、記載された特定の機能または動作に必ずしも限定されないことを理解すべきである。上述の事項は、以下の条項を考慮しても理解され得る。
【０１２４】
１．コンピュータ実行可能命令をその上に記憶して有する非一時的コンピュータ可読記憶媒体であって、コンピュータによって実行されるとき、前記コンピュータに対して、
コンテキストデータであって、前記コンピュータのユーザの使用に関連付けられた前記コンテキストデータを取得させ、
前記コンテキストデータを含む第１データをネットワークベースのコンテクスチュアル・サービスに送信させ、
前記ネットワークベースのコンテクスチュアル・サービスから、第２データであって、前記現在のコンテキストに関連している前記コンテクスチュアル・サービスによって決定されるアプリケーションを識別する前記第２データを受信させ、
前記アプリケーションを起動させ、
前記アプリケーションから第３データを取得させ、
前記第３データの少なくとも一部をユーザインタフェース内で提供させる、
前記非一時的コンピュータ可読記憶媒体。
【０１２５】
２．前記命令はコンピュータに対してさらに、１つ以上の前記アプリケーションを電子マーケットから取得し、前記１つ以上の前記アプリケーションを前記コンピュータ上にインストールさせる、条項１に記載の非一時的コンピュータ可読記憶媒体。
【０１２６】
３．前記アプリケーションを起動させることは、サービス・プロバイダーネットワークにおける１つ以上の前記アプリケーションを実行することを含む、条項１に記載の非一時的コンピュータ可読記憶媒体。
【０１２７】
４．前記コンテキストデータは、前記コンピュータの場所、時間、または前記コンピュータによって実行される現在の動作のうちの１つ以上を含む、条項１に記載の非一時的コンピュータ可読記憶媒体。
【０１２８】
５．前記命令は前記コンピュータに対してさらに、前記コンテキストデータを更新させ、前記更新されたコンテキストデータを前記ネットワークベースのコンテクスチュアル・サービスに送信させる、条項１に記載の非一時的コンピュータ可読記憶媒体。
【０１２９】
６．システムであって、
コンピューティング装置からコンテキストデータを受信することと、
前記コンテキストに関連しているアプリケーションを識別することであって、
関連している前記アプリケーションの識別は、前記コンテキストデータに少なくとも部分的に基づく、前記アプリケーションを識別することと、
前記コンテキストデータの少なくとも一部を前記コンテキストに関連していると識別された前記アプリケーションに送信することと、
アプリケーションデータを前記アプリケーションの少なくとも一部から受信することであって、
前記コンテキストデータの前記少なくとも前記一部に少なくとも部分的に基づいて、前記アプリケーションが、提供する前記アプリケーションデータを少なくとも一部において選択する、前記アプリケーションの少なくとも一部から受信することと、
前記コンピューティング装置に提供される前記アプリケーションデータの前記少なくとも一部を選択することと、
前記アプリケーションデータの前記少なくとも前記一部を前記コンピューティング装置に提供することと、
をするように動作する、１つ以上のコンピューティング装置を含む、前記システム。
【０１３０】
７．前記アプリケーションデータの前記少なくとも前記一部を前記コンピューティング装置に提供することは、異なるアプリケーションからのデータを表示するために使用されるユーザインタフェース内でディスプレイするために前記アプリケーションデータの前記少なくとも前記一部をフォーマットすることを含む、条項６に記載のシステム。
【０１３１】
８．前記コンテキストに関連しているアプリケーションを識別することは、登録データにアクセスすること、および、前記登録データを使用して前記コンテキストデータに応答して起動されるように登録されたアプリケーションを識別することを含む、条項６に記載のシステム。
【０１３２】
９．前記１つ以上のコンピューティング装置はさらに、前記アプリケーションデータから重複データを削除し、前記アプリケーションデータを編成するように動作し、前記アプリケーションデータの前記編成は、ユーザ選好に少なくとも部分的に基づいている、条項６に記載のシステム。
【０１３３】
１０．前記１つ以上のコンピューティング装置はさらに、前記アプリケーションの少なくとも１つから、更新されたコンテキストデータを作成するために前記１つ以上のコンピューティング装置によって使用されるデータを受信するように動作する、条項６に記載のシステム。
【０１３４】
１１．前記１つ以上のコンピューティング装置はさらに、アナリティクスを提供するように動作し、前記アナリティクスは、使用状況データおよび利益データを含む、条項６に記載のシステム。
【０１３５】
１２．前記アプリケーションデータの前記少なくとも前記一部を提供することは、前記コンピューティング装置に機能を実行させることを含む、条項６に記載のシステム。
【０１３６】
１３．前記アプリケーションデータを受信することは、前記アプリケーションデータの少なくとも一部をオペレーティング・システムの一部であるアプリケーションから受信することを含む、条項６に記載のシステム。
【０１３７】
１４．前記１つ以上のコンピューティング装置はさらに、前記アプリケーションの個々が、前記コンピューティング装置上にインストールされていないと決定するように動作し、個々の１つ以上の前記アプリケーションを前記コンピューティング装置上にインストールする、条項６に記載のシステム。
【０１３８】
１５．前記１つ以上のコンピューティング装置はさらに、前記コンピューティング装置とは別個であるサービスから前記アプリケーションの少なくとも一部を実行するように動作する、条項６に記載のシステム。
【０１３９】
１６．
コンピューティング装置からコンテキストデータを受信すること、
前記コンテキストに関連しているアプリケーションを識別することであって、
関連している前記アプリケーションの識別は、前記コンテキストデータに少なくとも部分的に基づく、前記アプリケーションを識別することと、
前記コンテキストデータの少なくとも一部を前記コンテキストに関連していると識別された前記アプリケーションに送信することと、
前記アプリケーションからアプリケーションデータを受信することであって、
前記コンテキストデータの前記少なくとも一部に少なくとも部分的に基づいて、前記アプリケーションが、提供する前記アプリケーションデータを少なくとも一部において選択する、前記アプリケーションデータを受信することと、
前記コンピューティング装置に提供される前記アプリケーションデータの少なくとも一部を選択することと、
前記アプリケーションデータの前記少なくとも前記一部を前記コンピューティング装置に提供すること、
を含む、コンピュータ実装方法。
【０１４０】
１７．前記アプリケーションのうちの１つ以上を前記コンピューティング装置上にインストールさせ、前記コンピューティング装置上で起動させることをさらに含む、条項１６に記載のコンピュータ実装方法。
【０１４１】
１８．前記アプリケーションのうちの１つ以上を前記コンピューティング装置とは別個のサービスから実行させることをさらに含む、条項１６に記載のコンピュータ実装方法。
【０１４２】
１９．前記コンテキストに関連しているアプリケーションを識別することは、登録データにアクセスし、前記登録データを使用して、前記コンテキストデータに応答して起動されるように登録された１つ以上のアプリケーションを識別することを含む、条項１６に記載のコンピュータ実装方法。
【０１４３】
２０．前記アプリケーションデータの前記少なくとも前記一部を表示のため前記コンピューティング装置に提供することは、顧客の選好に少なくとも部分的に基づいて前記アプリケーションデータを編成することを含む、条項１６に記載のコンピュータ実装方法。
【０１４４】
２１．コンピュータ実行可能命令をその上に記憶して有する非一時的コンピュータ可読記憶媒体であって、コンピュータによって実行されるとき、
コンテキストデータを受信することであって、
前記コンテキストデータは、ユーザのコンピューティング装置の使用に関連付けられる、前記コンテキストデータを受信することと、
前記コンテキストに関連する第１アプリケーションを識別することと、
前記コンテキストデータを記第１アプリケーションに送信することと、
第１アプリケーションデータを前記第１アプリケーションから受信することであって、
前記第１アプリケーションは、前記第１アプリケーションデータを、前記コンテキストデータに少なくとも部分的に基づいて提供する、前記第１アプリケーションから受信することと、
前記第１アプリケーションデータの少なくとも一部および前記コンテキストデータを第２アプリケーションに送信することと、
第２アプリケーションデータを前記第２アプリケーションから受信することであって、
前記第２アプリケーションは、前記第１アプリケーションデータおよび前記コンテキストデータに少なくとも部分的に基づく、前記第２アプリケーションから受信することと、
前記第１アプリケーションデータおよび前記第２アプリケーションデータのうち１つ以上の少なくとも一部を前記ユーザのコンピューティング装置に提供することと、を前記コンピュータにさせる、前記非一時的コンピュータ可読記憶媒体。
【０１４５】
２２．前記命令は、前記コンピュータに対してさらに、前記第１アプリケーションからのデータを受信するために前記第２アプリケーションはコンテクスチュアル・サービスに登録されていることを判定させる、条項２１に記載の前記非一時的コンピュータ可読記憶媒体。
【０１４６】
２３．前記第１アプリケーションおよび前記第２アプリケーションは、アプリケーションプログラミングインターフェース（ＡＰＩ）を利用してコンテクスチュアル・サービスに登録し、前記第１アプリケーションまたは前記第２アプリケーションのうちの１つ以上は、イベントを前記コンテクスチュアル・サービスに登録する、条項２１に記載の前記非一時的コンピュータ可読記憶媒体。
【０１４７】
２４．前記ＡＰＩは、前記第１アプリケーションが前記第２アプリケーションと通信し、前記第２アプリケーションが前記第１アプリケーションと通信するための機能を提供する、条項２３に記載の前記非一時的コンピュータ可読記憶媒体。
【０１４８】
２５．前記コンテキストデータは、前記ユーザのコンピューティング装置の場所および前記ユーザのコンピューティング装置の現在の動作を識別する、条項２１に記載の前記非一時的コンピュータ可読記憶媒体。
【０１４９】
２６．
コンテキストデータを受信することと、
前記コンテキストに関連する第１アプリケーションを識別することと、
前記コンテキストデータを前記第１アプリケーションに送信することと、
第１アプリケーションデータを前記第１アプリケーションから受信することであって、
前記第１アプリケーションデータは前記コンテキストデータに少なくとも部分的に基づいており、前記第１アプリケーションデータの少なくとも一部は第２アプリケーションを対象とする、前記第１アプリケーションから受信することと、
前記少なくとも前記一部の前記第１アプリケーションデータを前記第２アプリケーションに提供することであって、
前記第１アプリケーションデータは前記第２アプリケーションによって使用される、前記少なくとも前記一部の前記第１アプリケーションデータを前記第２アプリケーションに提供することと、
をするように動作する１つ以上のコンピューティング装置を含む、システム。
【０１５０】
２７．前記１つ以上のコンピューティング装置はさらに、前記第１アプリケーションデータおよび前記コンテキストデータを使用して、更新されたコンテキストデータを作成するため前記コンテキストデータを更新するように動作する、条項２６に記載のシステム。
【０１５１】
２８．前記１つ以上のコンピューティング装置はさらに、前記更新されたコンテキストデータを前記第２アプリケーションに提供するように動作する、条項２７に記載のシステム。
【０１５２】
２９．前記第２アプリケーションは、前記更新されたコンテキストデータに少なくとも部分的に基づいて、第２アプリケーションデータを生成する、条項２８に記載のシステム。
【０１５３】
３０．前記コンテキストデータと前記第１アプリケーションおよび前記第２アプリケーションによって指定された登録データとが一致するという通知を受信するために、前記第１アプリケーションおよび前記第２アプリケーションは、前記１つ以上のコンピューティング装置に登録する、条項２６に記載のシステム。
【０１５４】
３１．前記第１アプリケーションおよび前記第２アプリケーションは、アプリケーションプログラミングインターフェース（ＡＰＩ）を利用して通信し、前記ＡＰＩは、前記第１アプリケーションが前記第２アプリケーションと通信するための機能を提供する、条項２６に記載のシステム。
【０１５５】
３２．前記第１アプリケーションまたは前記第２アプリケーションのうちの１つ以上はアプリケーションプログラミングインターフェース（ＡＰＩ）を利用してイベントを記述し、前記イベントを検出したことに応答して、前記１つ以上のコンピューティング装置はさらに、前記イベントの発生の通知を受信するため登録していた別のアプリケーションを決定するように動作する、条項２６に記載のシステム。
【０１５６】
３３．前記１つ以上のコンピューティング装置はさらに、前記第１アプリケーションまたは前記第２アプリケーションのうちの１つ以上をリモートコンピューティング装置上で起動するように動作する、条項２６に記載のシステム。
【０１５７】
３４．前記１つ以上のコンピューティング装置はさらに、前記第１アプリケーションまたは前記第２アプリケーションのうちの１つ以上に対して、サービス・プロバイダーネットワーク内で起動させるように動作する、条項２６に記載のシステム。
【０１５８】
３５．
コンテキストデータを受信することと、
前記コンテキストに関連しているアプリケーションを識別することであって、
前記アプリケーションは、第１アプリケーションおよび第２アプリケーションを含む、前記アプリケーションを識別することと、
前記コンテキストデータを前記アプリケーションに送信することと、
前記第１アプリケーションから第１アプリケーションデータを受信することであって、
前記第１アプリケーションデータは前記コンテキストデータも少なくとも部分的に基づいており、前記第１アプリケーションデータの少なくとも一部は第２アプリケーションを対象とする、前記第１アプリケーションデータを受信することと、
前記第１アプリケーションデータの前記少なくとも前記一部を前記第２アプリケーションに提供することと、
を含む、コンピュータ実装方法。
【０１５９】
３６．前記第１アプリケーションによって提供される前記第１アプリケーションデータを使用して、更新されたコンテキストデータを作成するため前記コンテキストデータを更新することをさらに含む、条項３５に記載のコンピュータ実装方法。
【０１６０】
３７．前記更新されたコンテキストデータを前記アプリケーションの少なくとも一部に提供することであって、
前記アプリケーションの前記少なくとも前記一部は、前記更新されたコンテキストデータに少なくとも部分的に基づいて、アプリケーションデータを生成する、前記アプリケーションの少なくとも一部に提供すること、
をさらに含む、条項３６に記載のコンピュータ実装方法。
【０１６１】
３８．前記第１アプリケーションまたは前記第２アプリケーションのうちの１つ以上は、アプリケーションプログラミングインターフェース（ＡＰＩ）を利用してイベントを記述し、前記イベントを検出したことに応答して、前記イベント発生の通知を受信するため登録していた別のアプリケーションを決定する、条項３５に記載のコンピュータ実装方法。
【０１６２】
３９．前記第１アプリケーションおよび前記第２アプリケーションは、前記コンテキストデータが登録データに一致するという通知を受信するために、ネットワークベースのコンテクスチュアル・サービスに登録する、条項３５に記載のコンピュータ実装方法。
【０１６３】
４０．前記第１アプリケーションおよび前記第２アプリケーションは、アプリケーションプログラミングインターフェース（ＡＰＩ）を利用して通信し、前記ＡＰＩは、コンテクスチュアル・サービスと通信するために、前記第１アプリケーションおよび前記第２アプリケーションによって使用される、条項３５に記載のコンピュータ実装方法。
【０１６４】
４１．システムであって、
位置データ、移動データ、動作データ、生体データ、または気象データのうちの１つ以上を含むセンサデータを提供するように動作する１つ以上のセンサと、
１つ以上のコンピューティング装置であって、
前記センサから前記センサデータを要求することと、
前記センサデータに少なくとも部分的に基づいて、コンテキストデータを作成することと、
前記コンテキストデータをネットワークベースのコンテクスチュアル・サービスに送信することと、
前記コンテクスチュアル・サービスから、前記コンテキストに関連していると前記コンテクスチュアル・サービスに判定されたアプリケーションの識別を受信することと、
前記アプリケーションのうちの１つ以上を起動させることと、
前記１つ以上のアプリケーションからアプリケーションデータを取得することであって、
前記アプリケーションデータは、前記コンテキストデータに少なくとも部分的に基づいて、前記１つ以上のアプリケーションよって提供される、前記アプリケーションデータを取得することと、
行動を実行するため前記アプリケーションデータの少なくとも一部を提供することと、
をするように動作する前記１つ以上のコンピューティング装置と、
を含む、前記システム。
【０１６５】
４２．前記１つ以上の前記アプリケーションを起動させることは、サービス・プロバイダーネットワーク内で前記１つ以上のアプリケーションを実行させることを含む、条項４１に記載のシステム。
【０１６６】
４３．前記行動を実行することは、前記アプリケーションデータの前記少なくとも前記一部をディスプレイ上に提示すること、または前記アプリケーションデータの前記少なくとも前記一部を使用してコンピューティング装置の操作を変更することのうちの１つ以上を含む、条項４１に記載のシステム。
【０１６７】
４４．前記１つ以上のコンピューティング装置はさらに、
前記センサデータにおける変化に応答して更新されたコンテキストデータを作成するために前記コンテキストデータを更新することと、
前記更新されたコンテキストデータを前記コンテクスチュアル・サービスに送信することと、
をするように動作する、条項４１に記載のシステム。
【０１６８】
４５．前記アプリケーションは、アプリケーションプログラミングインターフェース（ＡＰＩ）を利用して、前記コンテクスチュアル・サービスと通信する、条項４１に記載のシステム。
【０１６９】
４６．システムであって、
コンテクスチュアル・サービスを提供するように動作する１つ以上の第１コンピューティング装置であって、
前記１つ以上の第１コンピューティング装置は、
コンテキストデータを受信するここと、
前記コンテキストデータに少なくとも部分的に基づいて、前記コンテキストに関連しているアプリケーションを識別することと、
前記コンテキストデータを前記コンテキストに関連していると識別された前記アプリケーションに送信することと、
前記アプリケーションからアプリケーションデータを受信することであって、前記アプリケーションは、前記コンテキストデータに少なくとも部分的に基づいて、提供するアプリケーションデータを選択する、前記アプリケーションデータを受信することと、
提供する前記アプリケーションデータの少なくとも一部を選択することと、
行動を実行するために前記アプリケーションデータの前記少なくとも前記一部を提供することと、
をするように動作する前記１つ以上の第１コンピューティング装置を含む、前記システム。
【０１７０】
４７．前記動作は、前記アプリケーションデータの前記少なくとも前記一部をユーザインタフェース内に表示することを含む、条項４６に記載のシステム。
【０１７１】
４８．前記動作は、前記アプリケーションデータの前記少なくとも前記一部に少なくとも部分的に基づいて、１つ以上の第２コンピューティング装置の動作を変更することを含む、条項４６に記載のシステム。
【０１７２】
４９．前記コンテクスチュアル・サービスによる要求に応答して１つ以上の前記アプリケーションを実行するように動作する１つ以上の第２コンピューティング装置をさらに含む、条項４６に記載のシステム。
【０１７３】
５０．前記１つ以上の第１コンピューティング装置はさらに、リモートコンピューティング装置上に前記アプリケーションのうちの１つ以上をインストールさせるように動作する、条項４６に記載のシステム。
【０１７４】
５１．前記１つ以上の第１コンピューティング装置はさらに、前記リモートコンピューティング装置上で前記アプリケーションのうちの前記１つ以を起動させるように動作する、条項５０に記載のシステム。
【０１７５】
５２．前記１つ以上の第１コンピューティング装置はさらに、前記リモートコンピューティング装置上で起動された前記アプリケーションのうちの前記１つ以上によって提供される前記アプリケーションデータを受信するように動作する、条項５０に記載のシステム。
【０１７６】
５３．前記１つ以上のコンピューティング装置はさらに、使用状況データおよび利益データを含むアナリティクスを提供するように動作する、条項４６に記載のシステム。
【０１７７】
５４．前記アプリケーションは、アプリケーションプログラミングインターフェース（ＡＰＩ）を利用して、前記コンテクスチュアル・サービスと通信する、条項４６に記載のシステム。
【０１７８】
５５．前記アプリケーションは、互いに通信するため前記ＡＰＩを利用する条項５４に記載のシステム。
【０１７９】
５６．
コンテクスチュアル・サービスでコンテキストデータを受信することと、
前記コンテキストに関連しているアプリケーションを識別することであって、
前記アプリケーションの前記識別は、前記コンテキストデータに少なくとも部分的に基づく、前記アプリケーションを識別することと、
前記コンテキストに関連している前記アプリケーションを起動することと、
前記コンテキストデータを前記アプリケーションに送信することと、
前記アプリケーションからアプリケーションデータを受信することであって、        前記アプリケーションは、前記コンテキストデータに少なくとも部分的に基づいて、提供する前記アプリケーションデータを選択する、前記アプリケーションデータを受信することと、
提供する前記アプリケーションデータの少なくとも一部を選択することと、
前記アプリケーションデータの前記少なくとも前記一部を提供することと、
を含む、コンピュータ実装方法。
【０１８０】
５７．前記アプリケーションを起動することは、１つ以上のコンピューティング装置に前記アプリケーションを実行させることを含む、条項５６に記載のコンピュータ実装方法。
【０１８１】
５８．前記アプリケーションを起動することは、サービス・プロバイダーネットワークの一部である１つ以上のコンピューティング装置に前記アプリケーションのうちの１つ以上を実行させることを含む、条項５６に記載のコンピュータ実装方法。
【０１８２】
５９．リモートコンピューティング装置上に前記アプリケーションのうちの１つ以上をインストールさせることをさらに含む、条項５６に記載のコンピュータ実装方法。
【０１８３】
６０．前記アプリケーションは、アプリケーションプログラミングインターフェース（ＡＰＩ）を利用して、前記コンテクスチュアル・サービスと通信する、条項５６に記載のコンピュータ実装方法。
【０１８４】
６１．コンピュータ実行可能命令をその上に記憶して有する非一時的コンピュータ可読記憶媒体であって、コンピュータによって実行されるとき、
コンテキストデータを取得することであって、
前記コンテキストデータは、前記コンピュータのユーザの使用を表す、前記コンテキストデータを取得することと、
前記コンテキストデータをネットワークベースのコンテクスチュアル・サービスに送信することと、
前記ネットワークベースのコンテクスチュアル・サービスから、識別データを受信することであって、
前記識別データは、前記コンテキストに対する関連アプリケーションを識別し、前記関連アプリケーションは、前記関連アプリケーションによって受信されるデータに少なくとも部分的に基づいて識別される、前記識別データを受信することと、
前記関連アプリケーションからアプリケーションを識別することと、
前記識別に応答して前記アプリケーションを起動することと、
を前記コンピュータにさせる、前記非一時的コンピュータ可読記憶媒体。
【０１８５】
６２．前記アプリケーションを起動させることは、前記アプリケーションを前記コンピュータにダウンロードすること、前記コンピュータ上に前記アプリケーションをインストールすること、および、前記コンピュータ上に前記アプリケーションを起動することを含む、条項６１に記載の非一時的コンピュータ可読記憶媒体。
【０１８６】
６３．前記命令はコンピュータに対してさらに、前記コンテキストにおける変さらに応答して、前記コンピュータから前記アプリケーションを削除させる、条項６２に記載の非一時的コンピュータ可読記憶媒体。
【０１８７】
６４．前記コンテキストに関連付けられた前記コンテキストデータは、前記コンピュータの場所および前記コンピュータの現在の動作を識別する、条項６１に記載の非一時的コンピュータ可読記憶媒体。
【０１８８】
６５．前記アプリケーションを起動させることは、前記コンピュータとは別個のサービス・プロバイダーネットワーク内に前記アプリケーションを起動させることを含む、条項６１に記載の非一時的コンピュータ可読記憶媒体。
【０１８９】
６６．システムであって、
１つ以上の第１コンピューティング装置であって、
第２コンピューティング装置に関連付けられたコンテキストデータを受信することと、
前記コンテキストに関連している１つ以上のアプリケーションを識別することであって、
前記１つ以上のアプリケーションのうち少なくとも１つの識別は、前記１つ以上のアプリケーションから受信したアプリケーションデータに少なくとも部分的に基づく、前記１つ以上のアプリケーションのうち少なくとも１つを識別することと、
識別データを前記第２コンピューティング装置に送信することであって、
前記識別データは、前記コンテキストに関連している前記１つ以上のアプリケーションを示し、前記識別データは、前記１つ以上のアプリケーションのうち少なくとも１つを起動するため前記第２コンピューティング装置によって使用される、前記識別データを前記第２コンピューティング装置に送信することと、
をするように動作する前記１つ以上の第１コンピューティング装置を含む、前記システム。
【０１９０】
６７．前記１つ以上のアプリケーションのうち前記少なくとも１つを前記起動することは、前記１つ以上のアプリケーションを前記第２コンピューティング装置上にインストールすることを含む、条項６６に記載のシステム。
【０１９１】
６８．前記コンテキストにおける変さらに応答して、前記第２コンピューティング装置から前記１つ以上のアプリケーションを削除することをさらに含む、条項６７に記載のシステム。
【０１９２】
６９．前記コンテキストデータは、前記第２コンピューティング装置の場所または前記第２コンピューティング装置に関連付けられた現在の動作のうちの１つ以上を示す、条項６６に記載のシステム。
【０１９３】
７０．前記１つ以上のアプリケーションを起動することは、前記第２コンピューティング装置による使用のために、ネットワーク・サービスにおいて前記１つ以上のアプリケーションを実行することを含む、条項６６に記載のシステム。
【０１９４】
７１．前記コンテキストに関連している前記１つ以上のアプリケーションを識別することは、前記コンテキストデータに対応する通知を受信するためコンテクスチュアル・サービスに登録されている前記１つ以上のアプリケーションを識別すること、または、前記アプリケーションの選択を受信することのうちの１つ以上を含む、条項６６に記載のシステム。
【０１９５】
７２．前記コンテキストに関連している前記１つ以上のアプリケーションを識別することは、前記第２コンピューティング装置に関連付けられたユーザのユーザ選好に少なくとも部分的に基づいて、前記１つ以上のアプリケーションをフィルタリングすることを含む、条項６６に記載のシステム。
【０１９６】
７３．前記１つ以上の第１コンピューティング装置はさらに、前記アプリケーションのうちの一つの選択を受信し、前記選択されたアプリケーションをコンテクスチュアル・サービスに関連付けられているリモートサービス上で起動させるように動作する、条項６６に記載のシステム。
【０１９７】
７４．前記１つ以上のアプリケーションのうち前記少なくとも１つは、前記１つ以上のアプリケーションのうち前記少なくとも１つの予測される将来使用に応じて前記第２コンピューティング装置上にインストールされる、条項６６に記載のシステム。
【０１９８】
７５．
コンテキストに関連付けられたコンテキストデータをコンピューティング装置から受信することと、
前記コンテキストに関連するアプリケーションを識別することであって、
前記アプリケーションの識別は、前記アプリケーションに関連付けられたアプリケーションデータに少なくとも部分的に基づく、前記アプリケーションを識別することと、
識別データを前記コンピューティング装置に送信することであって、
前記識別データは、前記コンテキストに関連する前記アプリケーションを示し、前記アプリケーションを起動するため前記コンピューティング装置によって使用される、前記識別データを前記コンピューティング装置に送信することと、
を含む、コンピュータ実装方法。
【０１９９】
７６．前記アプリケーションの予測される将来使用に少なくとも部分的に基づいて、前記アプリケーションを前記コンピューティング装置上にインストールすること、をさらに含む、条項７５に記載のコンピュータ実装方法。
【０２００】
７７．前記コンテキストにおける変更を受信したことに応答してアプリケーションを変更することをさらに含む、条項７５に記載のコンピュータ実装方法。
【０２０１】
７８．前記アプリケーションをネットワーク・サービスにおいて起動させることをさらに含む、条項７５に記載のコンピュータ実装方法。
【０２０２】
７９．前記コンテキストに関連する前記アプリケーションを識別することは、前記アプリケーションは、前記コンテキストデータに対応する通知を受信するためコンテクスチュアル・サービスに登録されていることを判定することを含む、条項７５に記載のコンピュータ実装方法。
【０２０３】
８０．前記コンテキストに関連する前記アプリケーションを識別することは、グラフィカル・ユーザー・インタフェースを前記コンピューティング装置に表示させ、前記グラフィカル・ユーザー・インタフェースを介して前記アプリケーションの選択を受信することを含む、条項７５に記載のコンピュータ実装方法。
【０２０４】
以下は、親出願（特願２０１７−５４３７４０）の出願当初請求項である。
［請求項１］
コンピュータにより実装される方法であって、
コンピューティング装置からコンテキストデータを受信するステップと、
コンテキストに関連しているアプリケーションを、前記コンテキストデータに少なくとも部分的に基づいて識別するステップと、
前記コンテキストデータの少なくとも一部を前記コンテキストに関連していると識別された前記アプリケーションに送信するステップと、
前記アプリケーションからアプリケーションデータを受信するステップであって、前記アプリケーションが、前記コンテキストデータの前記少なくとも一部に少なくとも部分的に基づいて、提供する前記アプリケーションデータを選択するステップと、
前記コンピューティング装置に提供される前記アプリケーションデータの少なくとも一部を選択するステップと、
前記アプリケーションデータの前記少なくとも前記一部を前記コンピューティング装置に提供するステップと、
を含むコンピュータ実装方法。
［請求項２］
前記アプリケーションデータの少なくとも一部は、第２アプリケーションを対象としていると決定することに少なくとも部分的に基づいて、前記アプリケーションデータの前記少なくとも前記一部を前記第２アプリケーションに提供するステップをさらに含む、
請求項１に記載のコンピュータ実装方法。
［請求項３］
前記第１アプリケーションおよび前記第２アプリケーションは、アプリケーションプログラミングインターフェース（ＡＰＩ）を利用して通信し、
前記ＡＰＩは、前記第１アプリケーションが前記第２アプリケーションと通信するための機能を提供する、
請求項２に記載のコンピュータ実装方法。
［請求項４］
前記アプリケーションのうちの１つ以上を前記コンピューティング装置上にインストールさせ、起動させるステップをさらに含む、
請求項１に記載のコンピュータ実装方法。
［請求項５］
１つ以上の前記アプリケーションを前記コンピューティング装置とは別個のサービスから実行させるステップをさらに含む、
請求項１に記載のコンピュータ実装方法。
［請求項６］
位置データ、移動データ、動作データ、生体データまたは気象データのうちの１つ以上を含むセンサデータを提供するように動作する１つ以上のセンサと、
１つ以上のコンピューティング装置と、
を含むシステムであって、
前記１つ以上のコンピューティング装置は、
前記センサから前記センサデータを要求するステップと、
前記センサデータに少なくとも部分的に基づいて、コンテキストデータを作成するステップと、
前記コンテキストデータをネットワークベースのコンテクスチュアル・サービスに送信するステップと、
前記コンテクスチュアル・サービスから、コンテキストに関連していると前記コンテクスチュアル・サービスにより判定されたアプリケーションの識別を受信するステップと、
前記アプリケーションのうちの１つ以上を起動させるステップと、
前記１つ以上のアプリケーションからアプリケーションデータを取得するステップであって、前記アプリケーションデータは、前記コンテキストデータに少なくとも部分的に基づいて、前記１つ以上のアプリケーションよって提供されるステップと、
動作を実行するために前記アプリケーションデータの少なくとも一部を提供するステップと、
を行うように動作する、
システム。
［請求項７］
前記１つ以上のアプリケーションを起動させるステップは、サービス・プロバイダーネットワーク内で前記１つ以上のアプリケーションを実行させるステップを含む、
請求項６に記載のシステム。
［請求項８］
前記動作を実行するステップは、前記アプリケーションデータの前記少なくとも前記一部をディスプレイ上に提示するステップ、または、前記アプリケーションデータの前記少なくとも前記一部を使用してコンピューティング装置の動作を変更するステップのうちの１つ以上を含む、
請求項６に記載のシステム。
［請求項９］
前記１つ以上のコンピューティング装置は、
前記センサデータにおける変化に応答して更新されたコンテキストデータを作成するため前記コンテキストデータを更新するステップと、
前記更新されたコンテキストデータを前記コンテクスチュアル・サービスに送信するステップと、
をさらに行うように動作する、
請求項６に記載のシステム。
［請求項１０］
前記アプリケーションは、アプリケーションプログラミングインターフェース（ＡＰＩ）を利用して、前記コンテクスチュアル・サービスと通信する、
請求項６に記載のシステム。
［請求項１１］
１つ以上の第１コンピューティング装置を含むシステムであって、
前記１つ以上の第１コンピューティング装置は、
第２コンピューティング装置に関連付けられたコンテキストデータを受信するステップと、
コンテキストに関連している１つ以上のアプリケーションを、前記１つ以上のアプリケーションから受信したアプリケーションデータに少なくとも部分的に基づいて識別するステップと、
識別データを前記第２コンピューティング装置に送信するステップであって、前記識別データは、前記コンテキストに関連している前記１つ以上のアプリケーションを示し、前記識別データは、前記１つ以上のアプリケーションのうちの少なくとも１つ以上を起動するために前記第２コンピューティング装置によって使用されるステップと、
を行うように動作する、
システム。
［請求項１２］
前記コンテキストにおける変さらに応答して、前記第２コンピューティング装置から前記１つ以上のアプリケーションを削除するステップをさらに含む、
請求項１１に記載のシステム。
［請求項１３］
前記１つ以上のアプリケーションを起動するステップは、
前記第２コンピューティング装置による使用のために、ネットワーク・サービスにおいて前記１つ以上のアプリケーションを実行するステップを含む、
請求項１１に記載のシステム。
［請求項１４］
前記コンテキストに関連している前記１つ以上のアプリケーションを識別するステップは、前記第２コンピューティング装置に関連付けられたユーザのユーザ選好に少なくとも部分的に基づいて、前記１つ以上のアプリケーションをフィルタリングするステップを含む、
請求項１１に記載のシステム。
［請求項１５］
前記１つ以上のアプリケーションのうちの前記少なくとも１つは、前記１つ以上のアプリケーションのうちの前記少なくとも１つの予測される将来使用に応答して前記第２コンピューティング装置上にインストールされる、
請求項１１に記載のシステム。
【図１】
2019207734.tif 000003
【図２】
2019207734.tif 000004
【図３】
2019207734.tif 000005
【図４】
2019207734.tif 000006
【図５】
2019207734.tif 000007
【図６】
2019207734.tif 000008
【図７】
2019207734.tif 000009
【図８】
2019207734.tif 000010
【図９】
2019207734.tif 000011
【図１０】
2019207734.tif 000012
【図１１】
2019207734.tif 000013
【図１２】
2019207734.tif 000014
【図１３】
2019207734.tif 000015
【図１４】
2019207734.tif 000016
【外国語明細書】
2019207734.tif 000017
2019207734.tif 000018
2019207734.tif 000019
2019207734.tif 000020
2019207734.tif 000021
2019207734.tif 000022
2019207734.tif 000023
2019207734.tif 000024
2019207734.tif 000025
2019207734.tif 000026
2019207734.tif 000027
2019207734.tif 000028
2019207734.tif 000029
2019207734.tif 000030
2019207734.tif 000031
2019207734.tif 000032
2019207734.tif 000033
2019207734.tif 000034
2019207734.tif 000035
2019207734.tif 000036
2019207734.tif 000037
2019207734.tif 000038
2019207734.tif 000039
2019207734.tif 000040
2019207734.tif 000041
2019207734.tif 000042
2019207734.tif 000043
2019207734.tif 000044
2019207734.tif 000045
2019207734.tif 000046
2019207734.tif 000047
2019207734.tif 000048
2019207734.tif 000049
2019207734.tif 000050
2019207734.tif 000051
2019207734.tif 000052
2019207734.tif 000053
2019207734.tif 000054
2019207734.tif 000055
2019207734.tif 000056
2019207734.tif 000057
2019207734.tif 000058
2019207734.tif 000059
2019207734.tif 000060
2019207734.tif 000061
2019207734.tif 000062
2019207734.tif 000063
2019207734.tif 000064
2019207734.tif 000065
2019207734.tif 000066
2019207734.tif 000067
2019207734.tif 000068
2019207734.tif 000069
2019207734.tif 000070
2019207734.tif 000071
2019207734.tif 000072
2019207734.tif 000073
2019207734.tif 000074
2019207734.tif 000075
2019207734.tif 000076
2019207734.tif 000077
2019207734.tif 000078
2019207734.tif 000079
2019207734.tif 000080
2019207734.tif 000081
2019207734.tif 000082
2019207734.tif 000083
2019207734.tif 000084
2019207734.tif 000085
2019207734.tif 000086
2019207734.tif 000087
2019207734.tif 000088
2019207734.tif 000089
2019207734.tif 000090
2019207734.tif 000091
2019207734.tif 000092
2019207734.tif 000093
2019207734.tif 000094
2019207734.tif 000095
2019207734.tif 000096
2019207734.tif 000097
2019207734.tif 000098
2019207734.tif 000099
2019207734.tif 000100