(57)【要約】  アプリケーション通知技術が開示されている。開示されたインプリメンテーションでは、アプリケーションの表示が、そのアプリケーションに関連する通知を含んでいる。この通知を処理するために利用し得る技術が開示されている。例えば、通知の置き換え、キューの利用、上書き、アプリケーションの実行状態に基づく通知の選択、複数の通知のディスプレイのサイクル表示、通知の異なるサブセットのディスプレイのサイクル表示、通知をディスプレイするために用いられる基準を決定するためのアプリケーションのマニフェスト（目録manifest）の検査、通知のディスプレイの優先順位等が挙げられる。
2014519652.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上のコンピューティングデバイスによってインプリメントされる方法であって：
ユーザインタフェースにおいてアプリケーションの表示の一部としての通知をディスプレイするための指定された基準をみつけるように、前記アプリケーションを実行せずに、前記アプリケーションのマニフェストを検査するステップと；
前記指定された基準に従って、前記ユーザインタフェースに前記アプリケーションの前記表示をディスプレイするステップと；
を有する方法。
【請求項２】
前記表示は、前記アプリケーションをランチするために選択可能である、請求項１記載の方法。
【請求項３】
前記通知は、前記通知のコンテキストで前記アプリケーションをランチするように、前記表示の一部として選択可能である、請求項１記載の方法。
【請求項４】
前記ディスプレイは、前記アプリケーションを実行せずに達成可能である、請求項１記載の方法。
【請求項５】
前記検査するステップ及び前記ディスプレイするステップは、前記１つ以上のコンピューティングデバイスによるオペレーティングシステムの実行によって達成される、請求項１記載の方法。
【請求項６】
前記基準は、前記アプリケーションの表示の一部としてディスプレイするために利用できるようにされた前記通知を処理するように用いられるキューを指定する、請求項１記載の方法。
【請求項７】
前記基準は、キューを用いて記憶するべき前記通知の最大数を指定する、請求項１記載の方法。
【請求項８】
前記基準は、前記通知のディスプレイが、前記アプリケーションの表示の一部として許されるか否かを指定する、請求項１記載の方法。
【請求項９】
前記基準は、前記ユーザインタフェースで前記アプリケーションの前記表示の一部としての前記通知のディスプレイをサイクル的に行うことで、複数の通知が連続的にディスプレイされることがイネーブルされるか又はディスエーブルされるか否かを指定する、請求項１記載の方法。
【請求項１０】
１つ以上のコンピューティングデバイスによってインプリメントされるシステムであって、当該システムは：
ユーザインタフェースでアプリケーションの表示の一部としてディスプレイされるべき複数の通知であって、前記アプリケーションをランチするように選択可能な前記複数の通知を受信し、
前記複数の通知の順序づけを行う優先度を決定し、
前記決定された優先度で連続的に、前記ユーザインタフェースの前記アプリケーションの表示の一部として、前記複数の通知をディスプレイされるようにする、
処理を含むオペレーションを達成するように構成されたシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーション通知に関する。
【背景技術】
【０００２】
コンピューティングデバイスがますます普及している。例えば、業務及び個人的利用のために様々な機能にアクセスするために、従来のデスクトップコンピュータ、携帯電話等を利用することができる。また、これらのデバイスのユーザに利用できる様々な機能も増大している。
このことは、アプリケーションに関しても同様である。従来においては、アプリケーションの利用価値は限られており、店舗からアプリケーションを買うことが通常であった。インターネットを介してアプリケーションが取得できるようになったため、利用できるアプリケーションが増え、これらのアプリケーションにアクセスすることが容易になった。このため、ユーザは、ユーザのコンピューティングデバイスに多くのアプリケーションを選択し、かつインストールすることができるようになった。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかしながら、コンピューティングデバイスにインストールされた多くのアプリケーションがあるために、アプリケーションの利用が妨げられることがある。たとえば、興味のあるアプリケーションを探すこと（locating）、及びそのアプリケーションの機能へのアクセスが挙げられる。例えば、多くのアプリケーションがあるにもかかわらず、天気の情報を得るために、ユーザは天気のアプリケーションを選択するであろう。そして、最新のニュースを得るためにニュースアプリケーションを利用するであろう。このような状況において、所望の情報を探すために、これらのアプリケーションをナビゲートすることに多くの時間がかかり、これは、コンピューティングデバイスにおいて利用できる多くのアプリケーションのために更に複雑化する。
【課題を解決するための手段】
【０００４】
アプリケーション通知技術が開示される。アプリケーションの表示には、アプリケーションに関連する通知を含むインプリメンテーションが開示されている。この通知を処理するために用いられる技術に関しても開示されている。例えば、通知の置き換え、キューの利用、上書き、アプリケーションの実行状態に基づく通知の選択、（例えば、ユーザにより、又はコンピューティングデバイスにより自動的に）複数の通知のディスプレイのサイクル表示、通知の異なるサブセットのディスプレイのサイクル表示、通知をディスプレイするために用いられる基準を決定するためのアプリケーションのマニフェスト（目録：manifest）の検討、通知のディスプレイの優先順位等が挙げられる。
【０００５】
ここで記載した概要は、単純な表現によって、コンセプトの選択を説明するためのものであり、詳細は、以下の発明の詳細な説明において記述する。ここにおける概要は、請求項に係る発明の主要な特徴又は必須の特徴を特定するためのものではない。しかも、請求項にかる発明の技術的範囲を決定することを助けるものでもない。  
【０００６】
発明の詳細な説明は、添付の図面を用いて説明する。図面において、一番左の番号は、参照番号が最初に現れる図面を特定する。明細書及び図面において異なる事例に同じ番号が付されているものは、類似の又は同じ項目を示している。請求項に係る発明の技術的範囲を決定するために用いられることを意図するものでもない。
【図面の簡単な説明】
【０００７】
【図１】アプリケーション通知技術を採用して動作し得るインプリメンテーションの例における環境を示す図である。
【０００８】
【図２】システムにおいて、アプリケーションの表示の一部として複数の通知が連続的にディスプレイされるインプリメンテーションの例を示す図である。
【０００９】
【図３】システムにおいて、他の通知に置き換えるために利用される対応する通知を特定するように用いられるタグを示す図である。
【００１０】
【図４】例示的インプリメンテーションにおける処理において、アプリケーションの表示の一部として出力に対して通知を処理するために用いられるキューを示すフローチャートである。
【００１１】
【図５】例示的インプリメンテーションにおける処理において、アプリケーションの表示の一部としてディスプレイするための通知の置き換えの処理に用いられるキューを示すフローチャートである。
【００１２】
【図６】例示的なインプリメンテーションの処理において、アプリケーションの表示の一部として、通知のディスプレイを処理するために用いられるキューを示すフローチャートである。
【００１３】
【図７】例示的なインプリメンテーションの処理において、アプリケーションの表示の一部として、どの通知がディスプレイされるかを決定するための基準として用いられるアプリケーションの実行状態を示すフローチャートである。
【００１４】
【図８】例示的なインプリメンテーションの処理において、アプリケーションをランチ（launch）するために選択可能なアプリケーションの表示の中にディスプレイされる通知であって、連続的に通知のディスプレイをサイクル表示することを示すフローチャートである。
【００１５】
【図９】例示的なインプリメンテーションの処理において、アプリケーションのそれぞれの表示の一部として、通知のサブセットがサイクル的にてディスプレイされることを示すフローチャートである。
【００１６】
【図１０】例示的なインプリメンテーションの処理において、アプリケーションの表示の一部として、通知のディスプレイを処理するために用いられる基準を規定するためにアプリケーションのマニフェスト（manifest）が利用されることを示すフローチャートである。
【００１７】
【図１１】例示的なインプリメンテーションの処理において、ディスプレイするようにクライアントデバイスへの通知の提供を処理するためにウエッブサービスが利用されることを示すフローチャートである。
【００１８】
【図１２】例示的なインプリメンテーションの処理において、アプリケーションの表示の一部として、ディスプレイするために通知に優先順序を与えることを示すフローチャートである。
【発明を実施するための形態】
【００１９】
アプリケーション通知は、アプリケーションをユーザに特にランチ（launch）させることなく、アプリケーションの表示における情報をディスプレイ（例えば、アイコン、タイル等）するために、アプリケーションによって用いられ得る。例えば、天気のアプリケーションの表示は、現在の天気の状況を表現する表示を含み得る。しかしながら、通知をディスプレイするために用いられる従来の技術は、通常静的であり、従って、表示の一部として通知がどのようにディスプレイされるかを開発者が制御することができない。
【００２０】
以下に、通知を処理するために用いられ得る技術を説明する。加えて、1つ以上の実施例において、これらの技術は、対応するアプリケーションを実行せずに達成し得る。これによって、バッテリの寿命を長くし、これらの技術を達成するコンピューティングデバイスのパフォーマンスを向上させ得る。以下に、異なる様々な技術の実施例を記載する。例えば、通知の置き換え、キューの利用、上書き、アプリケーションの実行状態に基づく通知の選択、複数の通知のディスプレイのサイクル表示、通知の異なるサブセットのディスプレイのサイクル表示、通知をディスプレイするために用いられる基準を決定するためのアプリケーションのマニフェストの検査、通知のディスプレイの優先順位等が挙げられる。更に、これらの技術及びその他の技術に関して以下に説明する。
【００２１】
以下において、本明細書に記載された技術を用いる実施例の環境についてまず説明する。例示的な環境及び他の環境において達成され得る例示的な処理を説明する。その結果として、例示的な処理のパフォーマンスは、例示的な環境に限定されるものではない。そして、例示的な環境は、例示的な処理のパフォーマンスに限定されるものでもない。
［例示的環境］
【００２２】
図１は、本明細書において記載されている実施例を採用して動作することができる例示的な実施例における環境１００を示している。図示された環境１００は、ネットワーク１０６を介して通信可能に接続されたウェブサービス１０２及びクライアントデバイス１０４を含む。このウェブサービス１０２及びクライアントデバイス１０４は、様々なコンピューティングデバイスによってインプリメントされ得る。
【００２３】
例えば、コンピューティングデバイスは、ネットワーク１０６上で通信可能なコンピュータとして構成される。例えば、デスクトップコンピュータ、モバイルステーション、エンターテインメント機器、ディスプレイデバイスに通信可能に接続されたセットトップボックス、モバイル通信デバイス（例えば、クライアントデバイス１０４として図示されたワイヤレスフォン）、ゲームコンソール等が挙げられる。したがって、コンピューティングデバイスは、十分なメモリとプロセッサリソースを備えたフルリソースデバイス（例えば、パーソナルコンピュータ、ゲームコンソール）から限られたメモリ及び／又は処理リソースを備えたローリソースデバイス（例えば、従来のセットトップボックス、ハンドヘルドゲームコンソール）までが挙げられる。
加えて、コンピューティングデバイスは、複数のデバイスから構成されてもよい。例えば、オペレーションを実行するためにビジネスにおいべ利用される複数のサーバ、リモートコントロールとセットトップボックスとの組み合わせ、ジェスチャをキャプチャするためのイメージキャプチャデバイスとゲームコンソール等が挙げられる。
【００２４】
ネットワーク１０６は、インターネットとして描かれているが、ネットワークは様々な構成が想定され得る。例えば、ネットワーク１０６は、ワイドエリアネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、ワイヤレスネットワーク、公衆電話ネットワーク、インターネット等が挙げられる。更に、単一のネットワーク１０６が示されているが、複数のネットワークが含まれるように構成されてもよい。
【００２５】
クライアント１０４は、オペレーティングシステム１０８を含むように描かれている。オペレーティングシステム１０８は、クライアント１０４の基礎をなす機能を抽出して、クライアントデバイス１０４において実行可能なアプリケーション１１０に与える。例えば、オペレーティングシステム１０８は、クライアントデバイス１０４の処理、メモリ、ネットワーク、及び／又は、ディスプレイの機能を抽出する。これによって、アプリケーション１１０を、この基礎となる機能が「どのように」インプリメントされているかを知ることなく記述することができる。このアプリケーション１１０は、例えば、オペレーティングシステム１０８に、ディスプレイデバイス１１２によってディスプレイされ表示されるべきデータを、この描画がどのように実行されるかを知ることなく、提供することができる。
【００２６】
このオペレーティングシステム１０８は、他の機能をも提供する。例えば、ファイルシステム及びクライアントデバイス１０４のユーザがナビゲートできるユーザインタフェースを処理することができる。例えば、この例としては、クライアントデバイス１０４のディスプレイデバイス１１２にディスプレイされたアプリケーションランチャー（例えば、デスクトップ）として描かれている。このデスクトップは、複数のアプリケーション１１０の表示を含む。例えば、アイコン、タイル、テキスト表示等が挙げられる。デスクトップは、階層的なファイル構造のルートととらえることができる。図示された実施例における表示は、クライアントデバイス１０４において、対応するアプリケーションの一つの実行のためにランチするよう選択可能である。このようにして、ユーザが、ファイル構造をナビゲートして、利用したいアプリケーションの実行を開始させることができるようにする。
【００２７】
このオペレーティングシステム１０８は、通知モジュール１１４を含むように描かれている。この通知モジュール１１４は、通知１１６を処理するための機能の表示である。この通知１１６は、アプリケーションの通知の一部としてディスプレイされる。例えば、天気のアプリケーションの表示１１８は、名前及び現在の天気、例えば「シアトル６５°／曇り」の通知を含むように描かれている。同様に、旅行アプリケーションのための表示１２０は、現在のフライト状況が「遅延している」ことを示す通知を含んでいるように描かれている。このように、ユーザは、各アプリケーションをランチしナビゲートすることなしに、アプリケーション１１０に関連する情報を容易に見ることができる。特定のアプリケーションの表示が示されているが、アプリケーションの他の表示がなされてもよい。例えば、ユーザにサービス提供するアプリケーションの表示、例えばソーシャルネットワークサービスにおける友達等が挙げられる。
【００２８】
１つ以上のインプリメンテーションにおいて、通知１１６は、対応するアプリケーション１１０を実行することなく処理され得る。例えば、通知モジュール１１４は、様々な異なるソースから通知１１６を受け取ることができる。例えば、ソフトウエア（例えばクライアントデバイス１０４によって実行される他のアプリケーション）、ネットワーク１０６を介するウェブサービス１０２等から受け取ることができる。通知モジュール１１４は、通知１１６が、アプリケーション１１０を実行せずに、どのように表示の一部としてディスプレイされるかを処理する。これは、通知１１６を出力するアプリケーション１１０の各々を動作させることなく、クライアントデバイス１０４のバッテリの寿命を長くし、パフォーマンスを向上させることに利用できる。
【００２９】
加えて、通知モジュール１１４は、アプリケーション１１０の表示の一部としての通知１１６がどのようにディスプレイされるかを特定するために、対応するアプリケーション１１０の開発者に対して支援を行ってもよい。例えば、通知モジュール１１４は、システムコールを用いてランタイムにおいて、アプリケーション１１０のマニフェスト１２２（例えば、アプリケーション１１０をインストールするためのインストールマニフェスト）等を検査してもよい。このマニフェスト１１０は、通知１１６がどのように、かつ、いつディスプレイされるべきか、及び、どの通知１１６がディスプレイされるべきかを決定するために、どのように通知１１６が処理されるべきかを記述するものである。
【００３０】
この通知モジュール１１４は、開発者又はその他が、通知１１６をどのようにディスプレイされかつ処理されるかを指示するために、様々な他の技術に用いることができる。例えば、通知１１６は、その通知１１６がどのようにディスプレイされ、及び／又は、処理されるかを指示する対応するタグに従って、通信することができる。したがって、タグの作成元は、対応する通知１１６がどのようにディスプレイされ又は処理されるかを指示することができる。これによって、以下に更に説明するように、様々な異なる機能の実行を可能とする。
【００３１】
クライアントに通知モジュール１１４が組み込まれている点を既に述べたが、通知モジュール１１４の機能は、様々な方式で、インプリメントすることができる。例えば、通知モジュール１２４の機能の一部又は全ては、ウェブサービス１０２に組み込むこともできる。通知モジュール１１４は、例えば、他のウェブサービスから受信した通知を処理し、ネットワーク１０６を介してクライアントデバイス１０４に配布するためにこれを処理してもよい。
【００３２】
通知モジュール１２４によって、様々な異なる技術が利用され得る。例えば、クライアントデバイス１０４自身によって利用される技術に従って通知を処理することが挙げられる。また、通知１１６を処理する基準を特定するクライアントデバイス１０４との通信に応答して、マニフェストを検査し、タグを処理することが挙げられる。更に、この処理は、例えば、ネットワーク１０６の接続が不要であるような場合に、クライアントデバイス１０４が利用できない場合において実行してもよい。このようにして、ウェブサービス１０２は、ストレージスペース及びネットワーク１０６のバンド幅を節約することができる。他の例が用いられてもよい。例えば、通知モジュール１１４の機能を、クライアントデバイス１０４とウェブサービス１０２とに分散させてもよい。あるいは、第三者のサービスに組み込んでもよい。
【００３３】
一般的に、本明細書に記載された機能は、ソフトウエア、ファームウエア、ハードウエア（例えば、固定された論理回路）、又はこれらのインプリメンテーションの組合せによってインプリメントすることができる。本明細書において用いられる用語「モジュール」、「機能」、「ロジック」は、ソフトウエア、ファームウエア、ハードウエア、又はこれらの組合せについて用いられる。ソフトエアのインプリメンテーションにおいて、モジュール、機能、又はロジックは、プロセッサ（１つ以上のＣＰＵ）によって実行されたときに特定のタスクを処理するプログラムコードを意味する。プログラムコードは、１つ以上のコンピュータ可読のメモリデバイスに格納することができる。以下に説明する技術の特徴は、プラットフォームに依存しない。すなわち、この技術は、様々なプロセッサを有する様々な商用のコンピューティングプラットフォーム上にインプリメントすることができる。
【００３４】
例えば、コンピューティングデバイスは、コンピューティングデバイスにオペレーションを実行させる実体（entity例えばソフトウエア）、プロセッサ、機能ブロック等をも含み得る。例えば、コンピューティングデバイスは、コンピュータ可読の媒体を含む。この媒体は、コンピュータデバイス、より具体的にはコンピューティングデバイスのハードウエアにオペレーションを実行させる命令を格納するように構成されているものである。したがって、命令は、ハードウエアがオペレーションの実行を構成するよう機能し、これによって、結果的にハードウエアが機能を実行するように変換を行う。この命令は、コンピュータ可読の媒体によって異なる様々な構成でコンピューティングデバイスに提供され得る。
【００３５】
コンピュータ可読の媒体の一つの構成としては、信号を発生する媒体であり、例えばネットワークを介して命令をコンピューティングデバイスに伝送するように構成され得る（例えば、搬送波）。コンピュータ可読の媒体としては、コンピュータ可読の記憶媒体が挙げられ、この場合には、信号を発生しない媒体である。コンピュータ可読の記憶媒体の例としては、ランダムアクセスメモリ（ＲＡＭ）、リードオンリメモリ（ＲＯＭ）、光ディスク、フラッシュメモリ、ハードディスクメモリ、磁気、光、その他の技術を利用し命令及び他のデータを保存するその他のメモリデバイスが挙げられる。
【００３６】
図２は、例示的なインプリメンテーションのシステム２００を示している。この例では、複数の通知が、アプリケーションの表示の一部として、連続的にディスプレイされている。このシステム２００は、第１、第２、及び第３のステージ２０２、２０４，２０６を用いた形で描かれている。通知１１６は、様々な形式を取ることができ、通知１１８の一部として様々なディスプレイをアレンジすることができる。
【００３７】
図２に示すように、例えば、通知２０８は、図示するように複数のフレーム２１０及び２１２を含んでいる。第１のステージ２０２において、通知２０８のフレームの第１の２１０が、曇りの表示に用いられる。そして、天気のアプリケーションをディスプレイするために「シアトル」のテキストが表示される。
【００３８】
第２のステージ２０４において、通知２０８のフレームの第２の２１２が用いられ、テキスト「シアトル」及びテキスト「６５°／曇り」がディスプレイされる。これによって、シアトルにおける追加的なシアトルの状況が提示される。したがって、通知２０８は、フレーム２１０、２１２を含むように構成され、これらは、表示１１８の一部として連続的にディスプレイされることになる。
【００３９】
表示１１８の一部として、連続して、追加的な通知がディスプレイされ得る。第３のステージ２０６に示すように、例えば、通知２１４が用いられ、グラフィックス及び太陽のテキスト及び「スポーケン（Spokane）」の現在の天気の状況がディスプレイされる。したがって、システム２００の例において、通知モジュール１１４は、アプリケーション１１０の表示１１８の一部として、通知２０８、２１４のディスプレイをサイクル表示するようにする。既に述べたように、通知１１６の処理は、様々な技術を用いて処理することができる。例えば、次に続く表示（figure）に関連してタグが記述されてもよい。
【００４０】
図３は、システム３００を示しており、ここでは、他の通知を対応する通知に置き換えるのに利用されるべきことを指定するためにタグが用いられる。このウェブサービス１０２は、図１において既に示したように、クライアントデバイス１０４とネットワーク１０６を介して通信可能に接続されている。この例において、ウェブサービス１０２は、通知３０２及び対応するタグ３０４をクライアントデバイス１０４に転送する。
【００４１】
通知３０２を受信すると、通知モジュール１１４は、対応するタグ３０４が存在することを確認する。このようにして、通知モジュール１１４は、他の通知３０６がマッチするタグを持つか否かを確認するために、クライアントデバイス１０４に近接したストレージを調べる。
【００４２】
図示した例においては、通知３０６がタグ３０４を含んでおり、これは、受信された通知３０２のタグ３０４とマッチしている。したがって、通知モジュール１１４は、通知３０６を、後に受信された通知３０２で置き換える。このようにして、タグ３０４の発信元（originator）は、タグを用いることによって、容易に通知を互いに置き換えることができる。
【００４３】
タグ３０４は、様々な方式で指定することができる。例えば、発信元によって、何らかの値をタグにアサインすることで、タグ３０４を構成することができる。したがって、この例の場合には、通知モジュール１１４は、対応するタグが何を意味しているかを知ることなく、通知の置き換えの処理を行うことができる。その他、様々な例を挙げることができる。例えば、キューの特定のスロットを指定することができる。この例は、その次の図に示されている。この機能は、クライアントデバイス１０４の通知モジュール１１４に関連して説明されているが、既に述べたように、様々な異なるデバイスを用いてこの機能を用いることができる。この例としては、ウェブサイト１０２の通知モジュール１２４が挙げられる。
【００４４】
図４は、システム４００を示している。この例では、アプリケーションの表示の一部として、通知１１６を出力する処理にキューが用いられる。上述のように、クライアントデバイス１０４は、ネットワーク１０６を介してウェブサービス１０２に通信可能に接続されている。このクライアントデバイス１０４は、通知モジュール１１４を含む。この例の場合、通知モジュール１１４は、オペレーティングシステム１０８の一部として示されている。
【００４５】
クライアントデバイス１０４は、キュー４０２を含む。キュー４０２は、対応するアプリケーション４０４のための通知１１６を記憶するよう構成されている。キュー４０２は、例えば、特定のアプリケーションに対して、最大の数の通知１１６を記憶するよう構成することができる。したがって、図においてキュー４０２がアプリケーション４０２の「中」に示されている。なお、容易に理解されるように、キュー４０２は、様々な方式で構成することができる。
【００４６】
通知モジュール１１４は、様々な方式によって、キュー４０２を用いて、通知１１６を処理することができる。例えば、通知１１６をfirst in/first out（ＦＩＦＯ）技術を用いて処理することができる。last in/first out処理を用いてもよい。例えば、通知モジュール１１４は、キュー４０２内の特定のスロットを指定する通知４０６を受信してもよい。このスロットは、例えば、表示の一部としてディスプレイされる通知１１６の優先度を記述することができる。更なる処理技術がこの事例において用いられることにより、より効果的となる。例えば、以前の通知１１６を優先度として下位に動かすことによって、最低の優先度の通知を削除することができる。受信した通知４０６で通知４０８を置き換え、他の順番は保存することも可能である。事例はこれらに限られない。他の技術が用いられてもよい。例示的処理において更に示されるように、オーバーライドコマンドを用いて改善を加えてもよい。
［例示的処理］
【００４７】
以下の記載においては、上述のシステム及びデバイスを用いた通知技術を説明する。処理の各々の側面は、ハードウエア、ファームウエア、又はソフトウエア、又はこれらの組合せによってインプリメントすることができる。処理は、ブロックの集合として示される。これは、１つ以上のデバイスによって実行されるオペレーションを規定する。なお、それぞれのブロックによるオペレーションの実行の順番は、必ずしも図示されたものに限定されない。以下の説明の中で、例示的な環境が参照される。
【００４８】
図５は、処理５００を示している。例示的インプリメンテーションにおいて、アプリケーションのディスプレイの一部として示される通知の置き換えを処理するために、タグが用いられる。アプリケーションの表示の一部としてディスプレイされる通知が、ユーザインタフェースに受信される。この通知は、タグに関連している（ブロック５０２）。例えば、この通知は、ククライアントデバイス１０４において実行されたアプリケーションから、あるいはウェブサービス等から、ライアントデバイス１０４の通知モジュール１１４によって受信される。他の例としては、このウェブサービス１０２の通知モジュール１２４は、他のウェブサービスから通知を受信してもよく、かつクライアントデバイス１０４への通知の記憶及び配信を管理してもよい。他の様々な例が用いられてもよい。
【００４９】
この通知のタグは、１つ以上の他の通知に関連する他の１つ以上のタグと比較される（ブロック５０４）。この通知モジュール１１４は、例えば、マッチするものを探すために、アプリケーションのための通知に対するタグを、そのアプリケーションの他の通知に対するタグと比較する。
【００５０】
受信したタグが、他のタグの少なくとも１つとマッチすることの検知に応答して、当該他のタグの少なくとも１つに関連する当該他の通知は、その受信した通知に置き換えられ、ユーザインタフェースにおいてアプリケーションの表示の一部としてディスプレイされる。例えば、通知モジュール１１４は、対応する通知のタグのテキストストリングを比較し、それらがマッチするか否かを確認する。したがって、この例において、テキストストリングは、通知モジュール１１４が置き換えの機能を果たす上で、通知モジュール１１４が「それらが何を表すか」に関して「知る」ことを要しない。このようにして、この通知モジュール１１４は、有効な定義及びタグの識別子をサポートし、かつ、本明細書に開示されている置き換えの機能をサポートすることができる。
【００５１】
受信した通知は、アプリケーションの表示の一部として、クライアントデバイスのユーザインタフェースに受信され、そしてディスプレイされ得る。このディスプレイは様々な方式で実行され得る。例えば、図２に示したようにサイクル表示のディスプレイにしてもよい。また、静的にディスプレイしてもよい。表示されたアプリケーションをランチするために選択可能な表示のディスプレイであってもよい。
【００５２】
更に、通知は、通知のコンテキスト内に対応するアプリケーションをランチすることによってより効果的となる。例えば、ユーザがニュースのアプリケーションをインストールした場合、そのアプリケーションの表示を選択することで、そのアプリケーションを「ホーム」又は「デフォルト」のアプリケーションの状態にランチさせる。新しいアプリケーションの例において、ペーパの最初のページに持って行く。なお、このニュースのアプリケーションが、地震に関する通知を受信し、ユーザがその通知を選択した場合、そのアプリケーションは、その通知のコンテキストにランチしてもよい。例えば、そのニュースのアプリケーションは、地震に関する記事に直接ランチされ得る。そして、ホームページをスキップする。その他の様々な例が適用されてもよい。
【００５３】
図６は、アプリケーションの表示の一部として通知をディスプレイするための処理に利用されるキューの例示的インプリメンテーションにおける手続き６００を示している。複数の通知が受信され、アプリケーションの表示の一部としてユーザインタフェースにディスプレイされる（ブロック６０２）。上述したように、通知は、クライアントデバイス１０４で実行されたアプリケーションから、あるいはウェブサービス等から、クライアントデバイス１０４の通知モジュール１１４で受信される。他の例において、ウェブサービス１０２の通知モジュール１２４は、他のウェブサービスから通知を受信し、かつクライアントデバイス１０４への通知の記憶及び配信を管理する。その他の様々な例が実行され得る。
【００５４】
１つ以上の通知が、キューを用いて処理される。このキューは、アプリケーションの表示の一部としてディスプレイされ得る通知の集合の数の通知を記憶するよう構成される。そのキューに記憶された通知は、その後アプリケーションの表示の一部としてユーザインタフェースにディスプレイされる。この集合の数は、例えば、アプリケーション１１０の開発者によって設定され、通知１１６の発信元によって設定され、通知モジュール１１４自信によってあらかじめ設定され得る。
【００５５】
通知モジュール１１４は、キュー４０２を利用し、キュー４０２は、通知を収集するエンティティを参照する。これは、様々な方式で実行される。例えば、先入れ先出し技術を採用して、あるいはキュー４０２内の特定のスロットを指定するタグを用いるなどして実行される。更なる例としては、キュー４０２は、優先度付けの技術を採用して、例えば、図１２に更に示すように、通知１１６がディスプレイにサイクル表示されるように特定の順番を指定する。このようにして、キュー４０２は、複数の通知を処理する。これらの通知は、アプリケーションの表示の一部としてディスプレイするために利用される。また、キュー４０２は、通知がディスプレイされる順番のために利用される。
【００５６】
上述したように、この機能は、クライアントにおいてインプリメントされるように記載されているが、この機能は、他の様々なエンティティによってインプリメントされ得る。例えば、ウェブサービス１０２の通知モジュール１２４である。これは、通知モジュール１１４、１２４などに分散される。更に、この機能は、元となるアプリケーション１１０の実行を行わずに、通知モジュール１１４によってインプリメントされ得る。
【００５７】
図７は、例示的インプリメンテーション７００を示しており、ここでは、アプリケーションの実行状態が、アプリケーションの表示の一部として通知をディスプレイするための基礎として用いられる。クライアントデバイスによって実行されるアプリケーションの実行状態が検出される（ブロック７０２）。例えば、通知モジュール１１４は、コンテンツを提供するよう構成されたアプリケーション１１０（例えば、音楽再生アプリケーション）をモニタする。通知モジュール１１４は、アプリケーション１１０が、例えば特定の音楽等の特定のアイテムのコンテンツを提供するように実行されるよう決定する。
【００５８】
アプリケーションの表示の一部として、クライアントデバイスのユーザインタフェースにディスプレイされる通知が選択される（ブロック７０４）。通知が、ユーザインタフェースに、アプリケーションの表示の一部としてディスプレイされる（ブロック７０６）。上述の例を用いると、通知モジュール１１４は、現在実行されているコンテンツの特定のアイテムの名前を決定する。この名前、例えば、アプリケーションをランチするために選択可能な、アプリケーションの表示が、アプリケーションの表示の一部としてディスプレイされる。
【００５９】
例えば、ユーザは、クライアントデバイス１０４の音楽再生アプリケーションのプレイリストを選択する。そして、このアプリケーションからナビゲートして、興味のある他のアプリケーションにたどり着く。音楽再生アプリケーションは、例えば、ユーザがこのナビゲーションを実行しているときに、特定の歌、すなわちコンテンツを提供し続けてもよい。このアプリケーションの状態に関するコンテキストをユーザに提供するために、通知はこの実行状態を表現する。この場合、実行状態は、タイトル、アーティスト、アルバム等の提供しているコンテンツを含んでもよい。アプリケーションの表示の中に、そのアプリケーションの実行状態を表現する通知のディスプレイを含むその他の様々な方法があり得る。そして、そのアプリケーションのユーザインタフェースを出力するために、その表示は選択可能である。例えば、ユーザインタフェースを含むウィンドウが「最前面」に来ることによって、ユーザはそのアプリケーションとインターラクトすることができる。
【００６０】
図８は、例示的インプリメンテーションにおける処理８００を示している。ここでは、そのアプリケーションをランチするために選択可能なアプリケーションの表示内に、通知がディスプレイされる。このディスプレイは、連続的に通知をサイクル表示する。ユーザインタフェースにアプリケーションの表示の一部としてディスプレイされるべき複数の通知が受信される。すでに述べたように、通知は、クライアントデバイス１０４において実行されるアプリケーションから、あるいは、ウェブサービス等から、クライアントデバイス１０４の通知モジュール１１４において受信することができる。他の例において、ウェブサービス１０２の通知モジュール１２４は、他のウェブサービスから通知を受信することができる。そして、クライアントデバイス１０４への通知の記憶及び配信を管理する。他の様々な例が実施され得る。
【００６１】
ユーザインタフェースにおいて、アプリケーションの表示の一部として複数の通知がサイクル表示される。これによって、通知は連続してディスプレイされる（ブロック８０４）。図２に関連して説明したように、例えば、表示１１８は、様々な情報を含むようディスプレイされ、連続的に相互にサイクル表示される通知を含むようにディスプレイされる。
【００６２】
このようにして、この通知は、アプリケーションの実行の「中」においてナビゲートすることなく、表示される情報の量を増加させることができる。すでに述べたように、このことは、アプリケーション１１０をランチすることなしに、通知モジュール１１４によって達成される。これによって、バッテリ、及び／又は、クライアントデバイス１０４のリソース、サードパーティのエンティティのコンピューティングデバイス等を節約する。
【００６３】
１つ以上のインプリメンテーションでは、ユーザインタフェースにおいてアプリケーションの表示の一部としての複数の通知のディスプレイをサイクル表示することが入力の検知に応答して、停止される。この入力としては、アプリケーションの表示へのインターラクションがある（ブロック８０６）。この例としては、そのアプリケーション自身、及び／又は、その「近くに」表示されている他のアプリケーションが挙げられる。例えば、ユーザの介在なくして、通知モジュール１１４によって、通知のディスプレイは、自動的にサイクル表示するよう構成され得る。
【００６４】
なお、表示へのインターラクションに近い入力（例えば、ジェスチャ、カーソルコントロールを用いた選択等）が検知された場合、サイクル表示は停止してもよい。様々な他のインプリメンテーションがなされてもよい。例えば、入力（例えば、カーソルの「ホバリング」、ジェスチャ等）の検出に応答してサイクル表示がなされてもよい。この入力は、サイクル表示の希望に近いことを示すものであり、この入力が終了したことを検知した場合、停止してもよい。他の例としては、（ジェスチャ等の）入力の検知は、ユーザインタフェースにおいて、通知の各々を同時にディスプレイするために用いられてもよい。
【００６５】
図９は、例示的インプリメンテーションの処理９００を示しており、ここにおいては、それぞれのアプリケーションの表示の一部として、通知のサブセットがサイクル表示される。複数の通知が受信され、それぞれの複数のアプリケーションの表示の一部として、ユーザインタフェースにディスプレイされる。上述のように、この受信は、様々なエンティティによって達成され、かつ通知は、様々なソースから受信され得る。たとえば、クライアントデバイス１０４の通知モジュール１１４によって受信される。
【００６６】
複数の通知は、アプリケーションの表示の一部としてユーザインタフェースにディスプレイされる。これによって、アプリケーションの通知の異なるサブセットが、異なる時刻にサイクル表示される（ブロック９０４）。図１を参照すると、例えば、６つの異なるアプリケーションの表示が、クライアントデバイス１０４のディスプレイデバイス１１２上にディスプレイされる。表示の各々に対するディスプレイのために通知が受信される例において、ディスプレイにおける「クラッター」を減少させるために、異なる時刻に、異なる通知のサブセットのサイクル表示をすることが望ましい。例えば、天気及びニュースの通知は、第１の時刻にサイクル表示することができる。ペットのケア及び方向は、次の第２の時刻に表示することができる。以下同様である。したがって、多くの数の通知が、ある一つの時刻に「動く」ことによって引き起こされる攪乱を減少させるために、このサブセットを用いることができる。
【００６７】
図１０は、例示的インプリメンテーションの処理１００を示している。ここにおいて、アプリケーションの表示の一部としての通知のディスプレイを処理するために用いられる基準を特定するように、アプリケーションのマニフェストが用いられる。ユーザインタフェースにおけるアプリケーションの表示の一部としての通知のディスプレイのために特定される基準を見いだすために、アプリケーションを実行することなく、アプリケーションのマニフェストが検査され（ブロック１００２）。例えば、通知モジュール１１４は、インストールマニフェストを検査し、様々な基準を特定するために利用される。そして、アプリケーションのランチをせずに、これを行うことができる。基準の例としては、キューに対して用いられる集合の数の特定、タグ（置き換え又は上書きタグ）がサポートされるべきか否か、通知をサイクル表示するための期間、通知が所定のサブセットを形成するために他のアプリケーションの他の通知とリンクされるべきか否か、サイクル表示がユーザの介在無しに自動的に実行されるべきか、又はユーザ入力に応答して実行されるべきか等が挙げられる。したがって、通知モジュール１１４は、アプリケーションの開発者が、アプリケーションの表示の一部として、通知がどのようにディスプレイされるかを指定することができるようにする。その他の様々な例がなされてもよい。例えば、ランタイムのファンクションコールの利用が挙げあれる。
【００６８】
指定された基準に従って、アプリケーションの表示がユーザインタフェースにディスプレイされる（ブロック１００４）。例えば、表示は、ファイルシステムのルートレベルとしてオペレーティングシステム１０８が利用するアプリケーションランチャー（例えばデスクトップ）の一部としてディスプレイされ得る。その他の様々な例が実行されてもよい。例えば、階層構造の異なる位置においてなされてもよい。
【００６９】
図１１は、例示的インプリメンテーションの処理１１００を示している。ここにおいて、ディスプレイを行うべく、クライアントデバイスに対して通知を提供する処理を行うために、ウェブサービスが利用される。ウェブサービスの１つ以上のコンピューティングデバイスにおいて複数の通知が受信される。これらの通知は、クライアントデバイスのユーザインタフェースにおいて、アプリケーションの表示の一部としてディスプレイされる（ブロック１１０２）。上述したように、ウェブサービス１０２は、通知１１６を受信し、ネットワーク１０６を介してクライアントデバイス１０４に伝送する。
【００７０】
クライアントデバイスが複数の通知を受信することができないことを検知したことに応答して、複数の通知は、キューを用いて処理され、かつ他の場合には基準を用いて処理される。この基準は、クライアントデバイスが、複数の通知の何れをキューに保存するかを決定するために利用される。例えば、ウェブサービス１０２は、どのアプリケーションがクライアントデバイス１０４に含まれているか、及び、どのようにこれらのアプリケーションが処理されるかを示す通信を受信することができる。他の例において、ウェブサービス１０２は、通知１１６自身を、この管理のベースとすることができる。例えば、通知に含まれるタグが挙げられる。他の様々な例が実行されてもよい。このようにして、ウェブサービス１０２の通知モジュール１２４は、メモリスペースを温存して、かつネットワーク１０６のバンド幅の消費を減少させながら、通知１１６を容易に処理することができる。
【００７１】
図１２は、例示的インプリメンテーション１２００の処理を示している。ここにおいて、通知は、アプリケーションの表示の一部として、ディスプレイのための優先度を与えられる。上述のように、複数の通知が受信される、これらは、アプリケーションをラインチするために選択可能なユーザインタフェースにおいてアプリケーションの表示の一部としてディスプレイされる（ブロック１２０２）。
【００７２】
複数の通知の順番を決めるための優先度が決定される（ブロック１２０４）。この通知モジュール１１４は、例えば、先入れ先出し技術を採用することができ、何れの通知がキュー４０２に記憶されるべきかを処理する。他の例において、優先度は、通知の発信元によってアサインされてもよい。例えば、階層的な値、キュー４０２における特定のスロット等が挙げられる。この優先度は、他の様々な基準に基づいて、通知モジュール１１４によって決定され得る。例えば、既に通知がディスプレイされているか否か、あるいは、これが最初であるか否かが挙げられる。
【００７３】
複数の通知は、ユーザインタフェースにおいてアプリケーションの表示の一部として、決定された優先度で連続的にディスプレイされる（ブロック１２０６）。通知モジュール１２４は、例えば、クライアントデバイス１０４に、通知１１６、及び／又は、優先度を伝送することができる。他の例において、通知モジュール１１４は、優先度を決定し、かつ、この通知を、アプリケーション１１０の表示の中で描画することができる。本発明の精神及び技術邸範囲を逸脱せずに、他の様々な例が更に実行されてもよい
［まとめ］
【００７４】
本発明は、構造的特徴、及び／又は、方法論的な動作に特化した形の表現で記載されているが、添付の請求項において定義された本発明は、必ずしも、記載された特定の特徴又は動作に限定されるものではない。むしろ、特定の特徴及び動作は、クレームされた発明のインプリメンテーションの例示的形態として記載されたものである。
【図１】
2014519652.tif 000003
【図２】
2014519652.tif 000004
【図３】
2014519652.tif 000005
【図４】
2014519652.tif 000006
【図５】
2014519652.tif 000007
【図６】
2014519652.tif 000008
【図７】
2014519652.tif 000009
【図８】
2014519652.tif 000010
【図９】
2014519652.tif 000011
【図１０】
2014519652.tif 000012
【図１１】
2014519652.tif 000013
【図１２】
2014519652.tif 000014
【国際調査報告】
2014519652.tif 000015
2014519652.tif 000016