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

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

▶ マイクロソフト テクノロジー ライセンシング,エルエルシーの特許一覧

特許6191885電力効率の良いアプリケーション通知システム
<>
  • 特許6191885-電力効率の良いアプリケーション通知システム 図000004
  • 特許6191885-電力効率の良いアプリケーション通知システム 図000005
  • 特許6191885-電力効率の良いアプリケーション通知システム 図000006
  • 特許6191885-電力効率の良いアプリケーション通知システム 図000007
  • 特許6191885-電力効率の良いアプリケーション通知システム 図000008
  • 特許6191885-電力効率の良いアプリケーション通知システム 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6191885
(24)【登録日】2017年8月18日
(45)【発行日】2017年9月6日
(54)【発明の名称】電力効率の良いアプリケーション通知システム
(51)【国際特許分類】
   G06F 3/0481 20130101AFI20170828BHJP
   G06F 3/0484 20130101ALI20170828BHJP
   G06F 9/445 20060101ALI20170828BHJP
【FI】
   G06F3/0481
   G06F3/0481 170
   G06F3/0484 120
   G06F9/06 650C
【請求項の数】10
【全頁数】23
(21)【出願番号】特願2014-557730(P2014-557730)
(86)(22)【出願日】2013年2月13日
(65)【公表番号】特表2015-515039(P2015-515039A)
(43)【公表日】2015年5月21日
(86)【国際出願番号】US2013025799
(87)【国際公開番号】WO2013122968
(87)【国際公開日】20130822
【審査請求日】2016年1月18日
(31)【優先権主張番号】13/398,212
(32)【優先日】2012年2月16日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】314015767
【氏名又は名称】マイクロソフト テクノロジー ライセンシング,エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【弁理士】
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】ウオーリー,ケヴィン マイケル
(72)【発明者】
【氏名】リー,ウオン ヒ
(72)【発明者】
【氏名】アナンド,ガウラヴ エス.
(72)【発明者】
【氏名】クフタ,ナサン ジェイ.
(72)【発明者】
【氏名】スカルボフスキー,エフゲニー
(72)【発明者】
【氏名】スリニヴァサン,チャンドラモウリ エヌ.
【審査官】 酒井 優一
(56)【参考文献】
【文献】 特開2008−227727(JP,A)
【文献】 特開2008−305240(JP,A)
【文献】 特開平11−096194(JP,A)
【文献】 特開2010−178239(JP,A)
【文献】 特表2011−516936(JP,A)
【文献】 国際公開第2010/065752(WO,A2)
【文献】 特開2010−062930(JP,A)
【文献】 特表2010−537343(JP,A)
【文献】 特開2011−100279(JP,A)
【文献】 特開2010−067023(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/0481
G06F 3/0484
G06F 9/445
(57)【特許請求の範囲】
【請求項1】
コンピューティングデバイスにおいて実施される方法であって、
前記コンピューティングデバイスにおいて、アプリケーションに関連付けられる通知についてのメタデータと、前記通知のコンテンツの双方を受信するステップと、
前記コンピューティングデバイスにおいて、前記メタデータ内に含まれる前記コンテンツを提示すべき時の指示に少なくとも部分的に基づく時間に、前記アプリケーションを実行するか実行を再開することなく、前記通知のための前記コンテンツを提示するようユーザインタフェース(UI)を更新するステップと
を含み、
前記通知は、スケジュールされた通知を備え、該スケジュールされた通知についてのメタデータは、その通知を提示すべき日時と、その後に通知が提示されなくなる寿命とを示し、
前記スケジュールされた通知は、より最近の通知が、前記スケジュールされた通知の通知識別子を含む場合、前記より最近の通知によって置換され、
前記スケジュールされた通知は、前記寿命が経過した後に削除される、方法。
【請求項2】
前記時間は更に、前記通知が前記コンピューティングデバイスにおいて観測可能かどうかに少なくとも部分的に基づく、請求項1に記載の方法。
【請求項3】
前記コンピューティングデバイスが1つ又は複数の低電力モードのいずれかにある場合、前記通知は前記コンピューティングデバイスにおいて観測可能でない、請求項2に記載の方法。
【請求項4】
前記コンピューティングデバイスはディスプレイデバイスを含み、該ディスプレイデバイスが電源オフされている場合、前記通知は前記コンピューティングデバイスにおいて観測可能でない、請求項2に記載の方法。
【請求項5】
前記アプリケーションは複数のアプリケーションの1つを備え、当該方法は、
前記複数のアプリケーションのそれぞれについて複数の通知を保持するステップと、
前記通知が前記コンピューティングデバイスにおいて観測可能である設定への前記コンピューティングデバイスの遷移に応答して、前記複数のアプリケーションの1つ又は複数の各々について、
前記複数の通知のうち、それぞれのアプリケーションに提示すべき少なくとも1つの通知を決定するステップと、
それぞれのアプリケーションに対して前記複数の通知のうち前記少なくとも1つの通知の前記コンテンツを提示するよう、前記UIを更新するステップと
を更に含む、請求項1に記載の方法。
【請求項6】
前記コンピューティングデバイスはディスプレイデバイスを含み、前記通知は前記アプリケーションの表現を備え、前記時間は更に、前記通知が前記コンピューティングデバイスにおいて観測可能であるかどうかに少なくとも部分的に基づき、前記通知は、前記ディスプレイデバイス上にロック画面が表示されている場合、前記コンピューティングデバイスにおいて観測可能でなく、前記アプリケーションの表現は前記ロック画面上に表示されない、請求項1に記載の方法。
【請求項7】
前記通知のコンテンツを受信するステップは、
前記アプリケーションから、前記通知の前記コンテンツを取得することができる場所の識別子を受信するステップと、
前記場所から、前記通知の前記コンテンツを取得するステップと
を更に含み、前記時間は更に、前記通知が前記コンピューティングデバイスにおいて観測可能であることに少なくとも部分的に基づき、前記通知は、前記コンピューティングデバイスが前記場所にアクセスすることができるネットワークに接続されていない場合、前記コンピューティングデバイスにおいて観測可能でない、請求項1に記載の方法。
【請求項8】
前記通知は周期的通知を備え、該周期的通知についてのメタデータは、前記周期的通知のコンテンツを取得するために、識別された場所が前記コンピューティングデバイスの通知システムによってアクセスされる頻度を示す、請求項1に記載の方法。
【請求項9】
コンピューティングデバイスの少なくとも1つのプロセッサによって実行されると、該少なくとも1つのプロセッサに、
前記コンピューティングデバイスの通知システムに、アプリケーションに関連付けられた通知のコンテンツの識別情報を提供し、前記通知の前記コンテンツの提示の時間に、前記アプリケーションの実行が終了しているか一時停止しているかに関わらず、前記通知システムによる前記コンテンツの提示を可能にする動作と、
前記通知の前記コンテンツを提示すべき時を示す前記通知についてのメタデータを前記通知システムに提供する動作と
を実行させ
前記通知は、スケジュールされた通知を備え、該スケジュールされた通知のメタデータは、その通知を提示すべき日時と、その後に通知が提示されなくなる寿命とを示し、
前記スケジュールされた通知は、より最近の通知が、前記スケジュールされた通知の通知識別子を含む場合、前記より最近の通知によって置換され、
前記スケジュールされた通知は、前記寿命が経過した後に削除される、コンピュータプログラム。
【請求項10】
コンピューティングデバイスにおいて:
ディスプレイデバイスと;
通知システムであって、
アプリケーションに関連付けられる通知についてのメタデータと、前記通知のコンテンツの双方を受信する、アプリケーションインタフェースと、
前記コンピューティングデバイスにおいて、前記メタデータ内に含まれる前記コンテンツを提示すべき時の指示に少なくとも部分的に基づく時間に、前記アプリケーションを実行するか実行を再開することなく、前記通知のための前記コンテンツを提示するようユーザインタフェース(UI)を更新する、ユーザインタフェース更新モジュールと、
を含む通知システムと;
を備え、
前記通知は、スケジュールされた通知を備え、該スケジュールされた通知のメタデータは、その通知を提示すべき日時と、その後に通知が提示されなくなる寿命とを示し、
前記スケジュールされた通知は、より最近の通知が、前記スケジュールされた通知の通知識別子を含む場合、前記より最近の通知によって置換され、
前記スケジュールされた通知は、前記寿命が経過した後に削除される、
コンピューティングデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電力効率の良いアプリケーション通知システムに関する。
【背景技術】
【0002】
コンピュータがますます一般的になり、相互接続されるにつれて、ユーザに利用可能なアプリケーションの数も増加する。しかしながら、アプリケーションとの対話は、コンピュータ上にインストールされるアプリケーションの数により、ユーザにとって難しく、イライラするものとなる可能性がある。この対話は、興味のあるアプリケーションを探すことだけでなく、そのアプリケーションの機能にアクセスすることを含む可能性がある。例えばユーザは、天気情報を得るために天気アプリケーションを選択し、次いで最新のニュースをキャッチアップするためにニュースアプリケーションと対話し、そうして複数の他のアプリケーションとも対話することがある。したがって、所望の情報を探すためのこれらのアプリケーションを介するナビゲーションは、非常に時間がかかり、またコンピューティングデバイス上で利用可能なアプリケーションの数によって更に複雑なものとなり得る。
【発明の概要】
【0003】
この「発明の概要」の記載は、以下の「発明を実施するための形態」において更に説明される概念の選択を簡単な形で紹介するのに提供される。この「発明の概要」の記載は、特許請求に係る主題の主要な特徴又は本質的特徴を特定するようには意図されておらず、また特許請求に係る主題の範囲を限定するのに用いられるようにも意図されていない。
【0004】
1つ又は複数の態様によると、アプリケーションに関連付けられる通知のためのメタデータと、通知のためのコンテンツとの双方がデバイスにおいて受信される。アプリケーションを実行することなく、あるいは実行を再開することなく、ユーザインタフェース(UI)は、通知のためのコンテンツを提示するようにデバイスにおいて更新される。UIが更新される時間は少なくとも部分的に、コンテンツを提示すべき時を示すメタデータ内に含まれる指示に基づく。
【0005】
1つ又は複数の態様によると、アプリケーションに関連付けられる通知のためのコンテンツの識別情報が、コンピューティングデバイスの通知システムに提供される。通知は、コンテンツの提示の時間にアプリケーションの実行が終了するか一時停止されるかに関わらず、通知システムによって提示されることになる。通知のためのメタデータも通知システムに提示され、該メタデータは、通知のためのコンテンツがいつ提示されるべきかを示す。
【0006】
図面を通して同じ参照番号が同様の特徴を指すのに使用される。
【図面の簡単な説明】
【0007】
図1】1つ又は複数の実施形態に係る電力効率の良いアプリケーション通知システムを実装する例示的システムを示す図である。
図2】1つ又は複数の実施形態に係る例示の通知システムを示す図である。
図3】1つ又は複数の実施形態に従ってアプリケーションの表現の一部として複数の通知を連続して表示する例示的実装のシステムを示す図である。
図4】1つ又は複数の実施形態に従って電力効率の良いアプリケーション通知システムを実装するための例示的プロセスを示すフローチャートである。
図5】1つ又は複数の実施形態に従って電力効率の良いアプリケーション通知システムを起動するための例示的プロセスを示すフローチャートである。
図6】本明細書で説明される様々な技術を実装することができる1つ又は複数のコンピューティングシステム及び/又はデバイスを表す、例示のコンピューティングデバイスを含む例示的システムを示す図である。
【発明を実施するための形態】
【0008】
本明細書において電力効率の良いアプリケーション通知システムを検討する。コンピューティングデバイスは、1つ又は複数のアプリケーションと通知システムを含み、アプリケーションは通知を通知システムに提供する。通知は、該通知によって提示されるべきコンテンツ(又はコンテンツを取得する場所の指示)を含む。通知は、コンテンツをいつ提示すべきかの指示と、オプションとして様々な追加のメタデータ(例えば通知の寿命すなわち終了期間、通知のタイプ等)も含む。通知システムは、アプリケーションが実行中かどうかに関わらず、アプリケーションが実行していない場合もアプリケーションの実行を再開することなく、適切な時間に通知コンテンツを提示する。また、様々な電力効率化技術を使用して、(例えばコンピューティングデバイスの電力モードに起因して)観測可能でない通知を反映するようUIを更新するのを回避するために、どの通知を提示するか、及びいつユーザインタフェース(UI)を更新してこれらの通知を反映するかも決定する。
【0009】
図1は、1つ又は複数の実施形態に係る電力効率の良いアプリケーション通知システムを実装する例示的システムを図示している。システム100は、コンピューティングデバイス102を含む。コンピューティングデバイス102は、物理的なデバイス又は仮想デバイスのような、様々な異なるタイプのデバイスのいずれかとすることができる。例えばコンピューティングデバイス102は、デスクトップコンピュータ、サーバコンピュータ、ラップトップ又はネットブックコンピュータ、タブレット又はノートパッドコンピュータ、モバイルステーション、娯楽用電化製品、ディスプレイデバイスに通信可能に結合されるセットトップボックス、テレビジョン又は他のディスプレイデバイス、セルラ又は他の無線デバイス、ゲームコンソール、自動車用コンピュータ等のような物理デバイスとすることができる。コンピューティングデバイス102は、物理デバイス上で動作する仮想マシンのような仮想デバイスとすることもできる。仮想マシンは、様々な異なるタイプの物理デバイスのうちのいずれか(例えば上記に列挙した様々なタイプのいずれか)において動作することができる。したがって、コンピューティングデバイス102は、十分なメモリとプロセッサリソースを有する十分なリソースデバイス(例えばパーソナルコンピュータ、ゲームコンソール)から、限定的なメモリ及び/又は処理リソースを有する低リソースデバイス(例えば伝統的なセットトップボックス、ハンドヘルドゲームコンソール)までに及ぶ可能性がある。
【0010】
コンピューティングデバイス102は、オペレーティングシステム104を含む。オペレーティングシステム104は、コンピューティングデバイス102の基礎となる機能を、コンピューティングデバイス102上で実行可能な1つ又は複数のアプリケーション106へと抽象化するように構成される。例えばオペレーティングシステム104は、コンピューティングデバイス102の処理、メモリ、ネットワーク、ディスプレイ及び/又は他のプレゼンテーション機能を抽象化し、これにより、この基礎となる機能が「どのように」実装されるかを知らずにアプリケーションを記述することが可能である。各アプリケーション106は、例えばレンダリングがどのように実行されるかを理解することなく、ディスプレイデバイス110によってレンダリングされて表示されるべきデータを、オペレーティングシステム104に提供することがある。
【0011】
オペレーティングシステム104は、例えばファイルシステム及びコンピューティングデバイス102のユーザによってナビゲート可能なユーザインタフェース(UI)を管理するなどの様々な他の機能も含み得る。この例は、コンピューティングデバイス102のディスプレイデバイス110上に表示されるアプリケーションランチャ(例えばデスクトップ)として図示されている。デスクトップは、アイコン、タイル、テキスト説明等のような複数のアプリケーション106の表現を含む。デスクトップは、階層ファイル構造のルートレベルとして考慮され得る。図示された例に示される表現は、コンピューティングデバイス102上での実行のために、アプリケーション106のうちの対応するアプリケーションを起動するのに選択可能である。このようにして、ユーザは、容易にファイル構造中をナビゲートして、興味のあるアプリケーションの実行を開始することができる。図1では6つの表現(カレンダアプリケーションの表現と、写真アプリケーションの表現と、天気アプリケーションの表現と、日常アプリケーションの表現と、旅行アプリケーションの表現と、地図アプリケーションの表現)のみが図示されているが、ユーザは、表現をスクロールして、異なるアプリケーションの表現をディスプレイデバイス110に表示させることができる。
【0012】
オペレーティングシステム104は、通知システム112も含むように図示されている。通知システム112は、ディスプレイデバイス110上に表示されるUIの一部として表示すべき通知を管理する。通知システム112は、アプリケーション106の表現である通知のように、異なるタイプの通知をサポートすることができる。例えば天気アプリケーションの表現114は、名前と現在の天気の状態、例えば「シアトル 75°/曇り」を示す通知を含むように図示されている。同様に、カレンダアプリケーションの表現116は、次にスケジュールされた予定が12:00の「ランチ」であることを示す通知を含むように図示されている。このようにして、ユーザは、アプリケーションの各々を起動してナビゲートする必要なく、アプリケーション106に関する情報を容易に見ることができる。特定のアプリケーションの表現が示されているが、例えばソーシャルネットワークサービスの友達等、ユーザが関与するサービスを参照するアプリケーションの表現のような、アプリケーションの他の表現も代替的に使用することができる。
【0013】
通知システム112は、他のタイプの通知もサポートすることができる。そのようなタイプの通知の1つが、「トースト(toast)」とも呼ばれる、表示可能なポップアップ又は一時通知である。そのようなポップアップ又は一時通知は、アプリケーション106の表現に加えて(又はこれに代えて)表示することができる。そのようなポップアップ又は一時通知は、オプションとして、コンピューティングデバイス102上での実行のために、アプリケーション106のうちの対応するアプリケーションを起動するのに選択可能であり得る。例えばポップアップ通知118を一時的に表示して、間もなく始まる映画をユーザに通知することができる(例えば「ショーが5分以内に開始します」)。
【0014】
1つ又は複数の実施形態において、通知システム112は、任意の特定の時間において、アプリケーションに関連付けられた閾値数の通知しか提示することを許可しない。この閾値数は例えば、1つの通知とすることができるが、代替的には他の閾値数も用いることができる。既に閾値数の通知が提示されているとき、通知システム112は、ある通知を新たな通知と置き換える。新たな通知は、提示されるべき通知であり、置換される通知は以前に提示された通知である。複数の通知を同時に提示することができる場合、置換される通知は、異なる方法で決定され得る(例えば少なくとも最近提示を開始した通知を、置換される通知とすることができる)。例えば「12:00 ランチ」という通知は、表現116内に含まれるものとして以前に表示していたので、(例えば「3:00 電話会議」を表示する)別の通知が、特定の時間に表示されるべきである。特定の時間において、表現116内に含まれて表示されていた「12:00 ランチ」という通知に置き換わって、(例えば「3:00 電話会議」を表示する)他の通知が表現116内に含まれるように表示される。
【0015】
一般に、通知システム112は、アプリケーション106から通知のための通知データを受信する。通知データは通知コンテンツの指示を含む。通知コンテンツは、通知のための提示(例えば表示)されるべきコンテンツである。コンテンツは多くの場合表示されるが、他の方法で提示される(例えば触覚技術を使用して音声的に再生される)ことも可能である。通知のためのコンテンツを提示することは、通知を提示することとも呼ばれる。通知は、いつ通知を提示すべきか(例えば日時)の指示も含む。通知システム112は、通知のレコードを保持し、通知を適切な時間に提示する。
【0016】
通知システム112は、様々な電力効率化技術を使用して、(例えばコンピューティングデバイス102の電力モードにより)表示されないであろう通知を反映するようにUIを更新するのを避けるために、どの通知を提示すべきか、及びこれらの通知を反映するようディスプレイデバイス上に表示されるUIをいつ更新すべきかを決定する。通知システム112は、アプリケーション106からの更なる入力なしに通知を管理し、これにより、アプリケーション106を実行せず又は実行を再開することなく、アプリケーション106に関連付けられた通知を表示するか、他の方法で提示できるようにする。アプリケーション106によって提供される通知は、通知の提示の時間にアプリケーションが実行中かどうかに関わらず、通知システム112によって提示されることが可能である。コンピューティングデバイス102の電力効率、従ってコンピューティングデバイス102のバッテリ寿命は、アプリケーション106の各々を実行せずに通知を表示又は他の方法で提示することによって改善され得る。
【0017】
オペレーティングシステム104及びアプリケーション106は、コンピューティングデバイス102のユーザからユーザ入力を受信することができる。ユーザ入力は、デバイス102のキーパッド又はキーボードの1つ又は複数のキーを押すこと、デバイス102のコントローラ(例えばリモートコントロールデバイス、マウス、トラックパッド、タッチパッド等)の1つ又は複数のキーを押すこと、デバイス102のタッチパッド又はタッチスクリーンの特定の部分を押すこと、デバイス102のタッチパッド又はタッチスクリーン上で特定のジェスチャを行うこと及び/又はデバイス102のコントローラ(例えばリモートコントロールデバイス、マウス、トラックパッド、タッチパッド等)上で特定のジェスチャを行うことのような、様々な異なる方法で提供され得る。ユーザ入力は、デバイス102の任意の部分をタップすること、デバイス102を曲げるかねじること、(デバイス102を振ることや、デバイス102を回転させること等のような)デバイス102の動き検出コンポーネントによって認識され得るアクション等のような、デバイス102への他の物理的なフィードバック入力を介して提供されることも可能である。ユーザ入力は、マイクロフォンへの音声又は他の可聴入力による手法、イメージキャプチャデバイスによって観測される手又は他の身体部分の動きによる手法等のような、他の手法によって提供されることも可能である。
【0018】
コンピューティングデバイス102は、オプションで1つ又は複数のサービス122とネットワーク124を介して通信することができ、サービス122から通知データを取得する。ネットワーク124は、インターネット、ローカルエリアネットワーク(LAN)、公衆電話網、イントラネットあるいは他の公共及び/又は専用のネットワーク、これらの組み合わせ等を含め、様々な異なるネットワークとすることができる。サービス122を、様々な異なるタイプのコンピューティングデバイスの1つ又は複数を使用して実装することができ、このようなコンピューティングデバイスは、コンピューティングデバイス102に関して上記したものと同様に、十分なメモリとプロセッサリソースを有する十分なリソースデバイスから、限定的なメモリ及び/又は処理リソースを有する低リソースデバイスまでに及ぶ。
【0019】
通知システム112は、オペレーティングシステム104内の組み込みの通知システム112に関して検討したが、通知システム112の機能を、少なくとも部分的に、コンピューティングデバイス102又は別のデバイスの1つ又は複数の他のモジュールにおいて実装することができる。例えばコンピューティングデバイス102の一部として含まれるが、オペレーティングシステム104の外部にある追加のモジュールが、通知システム112の少なくとも一部を実装することができる。別の例として、通知システム112は、少なくとも部分的にサービス122によって実装されることも可能である。
【0020】
図2は、1つ又は複数の実施形態に係る例示の通知システム200を図示している。通知システム200は、例えば図1の通知システム112とすることができる。通知システム200は、システム状態決定モジュール202、UI更新モジュール204、アプリケーションインタフェース206及び通知ストア208を含む。
【0021】
システム状態決定モジュール202は、通知を表示しているコンピューティングデバイスの現在のシステム状態を決定する。現在のシステム状態は、コンピューティングデバイスの現在の利用情報及び/又は設定の指示を指す。例えば現在のシステム状態は、コンピューティングデバイスの現在の電力モード(例えば低電力モード、スリープモード、ハイバネートモード、最高性能モード等)を指すことがある。別の例として、現在のシステム状態は、ディスプレイデバイスが電源オンされるか電源オフされるか、ネットワーク接続(例えば図1のネットワーク124への接続)が利用可能であるかどうか等のようなリソースの利用可能性を指すことがある。別の例として、現在のシステム状態は、コンピューティングデバイスがロックされるかどうか(例えばコンピューティングデバイスのユーザがアプリケーションとの対話を再開するために、パスワード、ジェスチャ又は他のユーザ入力を提供する場合)のようなデバイスのアクセス設定を指すことがある。システム状態決定モジュール202は、コンピューティングデバイス上で動作しているオペレーティングシステム(例えば図1のオペレーティングシステム104)の1つ又は複数のモジュールから、コンピューティングデバイスの様々なイベントをモニタリングすること等により、様々な手法でシステム状態を取得することができる。
【0022】
UI更新モジュール204は、適切な時間にUIを更新して、通知を表示するか又は他の方法で提示する。この表示及び/又は提示は、ディスプレイデバイス(例えば図1のディスプレイデバイス110)上で通知を表示すること、1つ又は複数のスピーカを介してオーディオデータを再生すること、触感フィードバックを提供すること(例えばコンピューティングデバイスを揺するか振ること)等を含むことができる。通知を表示又は他の方法で提示する適切な時間は、以下でより詳細に検討されるように、通知自体並びに現在のシステム状態に依存する。
【0023】
アプリケーションインタフェース206は、アプリケーション(例えば図1のアプリケーション106)が通知を通知システム200に提供するのを可能にするインタフェースである。1つ又は複数の実施形態において、アプリケーションインタフェース206は、アプリケーションによって呼び出すことができる1つ又は複数のメソッドを公開するアプリケーションプログラミングインタフェース(API)である。あるいは、通知を記述するデータを、通知システム200とアプリケーションの双方からアクセス可能な共通の記憶位置に書き込むこと、通知を記述するデータを、様々なメッセージング又はイベント通信システムを介して送信することなどの様々な他のデータ通信技術を使用して、通知を通知システム200に提供することができる。
【0024】
アプリケーションによって通知システム200に提供される通知は、通知のためのコンテンツとメタデータとの双方を含む。通知のためのコンテンツとメタデータを、まとめて通知データと呼ぶことができる。通知のためのコンテンツは、通知として表示されるか又は他の方法で提示されるコンテンツを指す。あるいは、コンテンツ自体を含むのではなく、通知はコンテンツを取得する場所の指示を含むことができる。この指示は、アプリケーションを実行しているコンピューティングデバイス上の場所の識別子(例えば、ファイルシステム内のファイルを識別するパス、ユニフォームリソースロケータ(URL)、ユニフォームリソースインジケータ(URI)等)、あるいは別のデバイス又はサービスの識別子(例えばURL、URI又はネットワーク経由でコンテンツを取得することができるサービスを識別する他のリンク)とすることができる。
【0025】
通知のためのメタデータは、いつ及び/又はどのように通知コンテンツを提示すべきかを示す1つ又は複数の指示を指す。1つ又は複数の実施形態において、通知のためのメタデータは、通知をいつ提示すべきかの指示を含む。この指示は、通知を提示すべき日付及び/又は時間のような様々な形式とすることができる。メタデータは、通知のためのコンテンツが変更される頻度(例えばコンテンツを取得する場所の指示がサービスへのURLである場合、そのサービスからコンテンツを取得すべき頻度)の指示を含むこともできる。通知のためのメタデータは、通知の寿命(例えば、通知が提示されなくなる終了日付及び/又は時間、通知が提示されるべき期間、すなわちその後に通知が提示されなくなる期間(例えば日数又は時間数)等)を含むことができる。通知システム200は、通知の寿命が経過した後は通知を提示せず、通知の寿命が経過した通知を(例えば下述する通知ストア208から)削除することができる。通知のためのメタデータは、通知がアプリケーションの表現(例えばタイル又はアイコン)であるか、ポップアップ又は一時通知であるか等のような、通知のタイプの指示も含むことができる。
【0026】
各通知は、通知を通知システム200に提供するアプリケーションの指示も含む。アプリケーションの指示は典型的に、通知のためのメタデータに含まれるが、代替的には他の方法で提供されることも可能である。通知を提供するアプリケーションは、通知に関連付けられるアプリケーション又は通知に対応するアプリケーションとも呼ばれる。
【0027】
あるいは、メタデータの少なくとも一部は、アプリケーションが通知を通知システム200に提供する手法に固有のものとすることができる。例えばアプリケーションインタフェース206は、各々異なるタイプの通知について異なるAPIメソッドを公開することができる(例えば通知が、アプリケーションの表現(例えばタイル又はアイコン)の場合にあるメソッドを公開し、通知がポップアップ又は一時通知の場合には別のメソッドを公開する等)。別の例として、アプリケーションインタフェース206は、1時間という寿命を有する通知に対して、あるAPIメソッドを公開し、1日という寿命を有する通知に対して別のメソッドを公開すること等ができる。
【0028】
通知システム200に提供される通知は、通知ストア208において保持され、図2では複数(x)の通知210として図示されている。通知システム200はオプションで、アプリケーションごとに、通知ストア208内に保持される通知の数に制限を設けることができる(例えば4096個の通知)。通知ストア208は、通知を様々な異なる手法のいずれかで保持することができる。通知ストア208は、通知を持続性メモリ(例えば非揮発性メモリ)内に保持し、これにより通知は、様々な電力状態の遷移(例えばコンピューティングデバイスのリブート又はリセット)にまたがって保持されることが可能である。通知ストア208は、各アプリケーションについて表示すべき次の通知へのポインタ又は識別子を保持することや、各アプリケーションについて表示すべき次の通知をリスト又はレコード内の最初又はトップの通知として保持することのように、アプリケーションについて表示すべき次の通知を容易に識別することができるような方法で通知を保持することができる。
【0029】
各通知210は、通知識別子(ID)部分212、メタデータ部分214及びコンテンツ部分216を含む。通知ID部分212は、通知210の識別子を含む。通知の識別子は、アプリケーションからの異なる通知を相互に区別できるようにする(及びアプリケーションの識別子との組み合わせで、通知システム200によって使用されて異なる通知を相互に区別できるようにする)ために、通知を通知システム200に提供したアプリケーションによって割り当てられた識別子、異なる通知を通知システム200によって相互に区別できるようにするために通知システム200によって割り当てられた識別子、通知に対するタイムスタンプ(例えば受信の日時)等のような様々な形式をとることができる。メタデータ部分214は、上述のようにアプリケーションによって提供される通知についてのメタデータを含む。コンテンツ部分216は、上述のようにアプリケーションによって提供される通知についてのコンテンツ(又はコンテンツを取得することができる場所の指示)を含む。
【0030】
通知が通知システム200に提供された後、通知システム200は、適切な時間に通知を表示又は他の方法で提示するのを可能にする情報を有する。UI更新モジュール204は、アプリケーションの更なる実行を必要とせずに、適切な時間に通知を表示するか他の方法で提示する。例えばアプリケーションは、通知を通知システム200に提供することができ、その後アプリケーションの実行は、終了されるか一時停止されてもよい(例えばアプリケーションはコンピューティングデバイスのメモリ内に残っているが、コンピューティングデバイスのプロセッサによる実行についてスケジュールされない)。UI更新モジュール204は、アプリケーションが終了するか一時停止されても、適切な時間に通知を表示するか他の方法で提示することができる。
【0031】
1つ又は複数の実施形態において、アプリケーションインタフェース206は、アプリケーションが、以前に提供された通知を削除及び/又は修正することも可能にする。アプリケーションは、通知を通知システム200に提供することに関して上述したのと同様の様々な異なる方法のいずれかで、削除又は修正の通知を提供することによって(例えばAPIを呼び出すことによって)、通知を削除及び/又は修正することができる。以前に提供された通知は、該以前に提供された通知に対して行うべき変更を示すデータをアプリケーションが提供することによって、あるいは以前に提供された通知を置換する新たな通知をアプリケーションが提供することによって修正され得る。以前に提供された通知は、その通知ID212によるなどの異なる方法で識別され得る。
【0032】
UI更新モジュール204は、通知を反映(例えば表示又は提示)するようにUIを更新することによって、適切な時間に通知を表示又は他の方法で提示する。UI更新モジュール204は、様々な基準に基づいて、通知を提示するUIを更新するのに適切な時間を決定する。これらの様々な基準を使用する際に、UI更新モジュール2104は様々な電力効率化技術を考慮して、コンピューティングデバイスの電力を節約する。一般に、UI更新モジュール204は、通知がコンピューティングデバイスにおいて観測可能である(例えばコンピューティングデバイスのユーザに対して可視又はユーザにより可聴であり、これによりユーザに有益な)場合にのみ、通知において指示された時間(例えば通知のためのメタデータに示されるような、いつ通知を表示すべきかの指示により)に通知を提示するようにUIを更新する。(例えばコンピューティングデバイスの電力モードに起因して)通知がコンピューティングデバイスにおいて観測可能でない場合、UI更新モジュール204は、通知で指示された時間に通知を提示するようにUIを更新しない。
【0033】
通知を提示するようUIを更新しないUI更新モジュール204は、ディスプレイデバイスが下述されるように電源オフされる場合にUIを更新しないと決定する等、UIを更新しないという決定を行うUIモジュール204を指す。通知を提示するようにUIを更新しないUI更新モジュール204は、特定の状況下(例えばコンピューティングデバイスが低電力モードにある場合)で動作しないUI更新モジュール204も指す。したがって、通知を提示するようUIを更新しないUI更新モジュール204は、UIを更新しないというモジュール204によるアクティブな決定と、動作しておらず、したがってUIを更新するかどうかに関して決定を行うことができないモジュール204の双方を指す。
【0034】
コンピューティングデバイスにおいて通知が観測可能でない様々な異なる状況が存在する。1つ又は複数の実施形態において、UI更新モジュール204は、通知がコンピューティングデバイスにおいて観測可能でない1つ又は複数の電力モードを識別する。一般に、これらの1つ又は複数の電力モードは、低電力モードであり、ある低電力モードではコンピューティングデバイスの様々なリソース(例えばプロセッサ、ストレージデバイス、入力/出力(I/O)コンポーネント等)のいずれか1つ又は複数が動作する。これらの1つ又は複数の電力モードは、ハイバネートモード、一時停止モード、接続型スタンバイモード、アイドルモード等のような様々な名前又はラベルを有することができる。UI更新モジュール204は、これらの1つ又は複数の電力モードの指示を用いて構成され得る。コンピューティングデバイスのユーザ又は管理者はオプションで、これらの1つ又は複数の電力モードの少なくとも1つを識別する入力を提供することも可能である。
【0035】
1つ又は複数の実施形態において、UI更新モジュール204は、コンピューティングデバイスのディスプレイデバイス(例えば図1のディスプレイデバイス)が電源オフされている場合に、通知はコンピューティングデバイスにおいて観測可能でないと判断する。あるいはまた、UI更新モジュール204は、他のハードウェア又はリソースが利用可能でなかった場合に、通知はコンピューティングデバイスにおいて観測可能でないと判断することもできる。例えば通知がユーザに対して可聴に再生されるべきものであった場合、UI更新モジュール204は、コンピューティングデバイスのスピーカが電源オフ又はミュートであれば、通知はコンピューティングデバイスにおいて観測可能でないと判断することができる。
【0036】
1つ又は複数の実施形態において、UI更新モジュール204は、通知システム200が、通知のためのコンテンツに対するアクセスを有していない場合、通知はコンピューティングデバイスにおいて観測可能でないと判断する。例えば通知が、コンテンツを特定のURLから取得すべきことを示しており、通知システム200が、その特定のURLにアクセスすることができるネットワークに接続されていない場合、通知はコンピューティングデバイスにおいて観測可能でないと判断する。
【0037】
1つ又は複数の実施形態において、UI更新モジュール204は、通知に関連付けられたアプリケーションの表現が提示されていない場合、通知はコンピューティングデバイスにおいて観測可能でないと判断する。例えばコンピューティングデバイスは、該コンピューティングデバイスがロック解除されるまで「ロック」画面を表示して、ユーザがコンピューティングデバイスのアプリケーション又は他の機能にアクセスするのを妨げることがある。コンピューティングデバイスは、パスフレーズ又は個人識別番号(PIN)のユーザ入力、特定のユーザジェスチャ(例えば画面上で指をスワイプすること)等のような、様々なユーザ入力により様々な方法でロック解除され得る。ロック画面が表示されると、ユーザは表現中をスクロールすることはできないが、いくつかのアプリケーションの表現を表示することができる。UI更新モジュール204は、通知に関連付けられたアプリケーションの表現がロック画面上に表示されない場合、(コンピューティングデバイスがロック解除されるまで)その通知はコンピューティングデバイスにおいて観測可能でないと判断する。別の例として、アプリケーションの表現を、ユーザが(例えば開始ページと1つ又は複数の追加のページの中を)スクロール又は他の方法でナビゲートすることができる異なるページ(又は他の集合若しくはグループ)に表示することができる。UI更新モジュール204は、任意の所与の時間に表示されているページ(又は他の集合若しくはグループ)が、通知に関連付けられたアプリケーションの表現を含んでいない場合、その通知は、その所与の時間にコンピューティングデバイスにおいて観測可能でないと判断する。
【0038】
UI更新モジュール204はオプションで、異なるルールを異なるタイプの通知に適用することができ、これにより異なるタイプの通知を違う方法でトレーニングすることができることを認識されたい。通知システム200は、上述のようなアプリケーションの表現(例えばアプリケーションのタイル若しくはアイコン)及びポップアップ若しくは一時通知(例えばトースト)等のような異なるタイプの通知をサポートすることができる。1つ又は複数の実施形態において、UI更新モジュール204は、コンピューティングデバイスにおいて通知が観測可能でないと判断する場合、UI更新モジュール204は次いで、そのコンピューティングデバイスにおいて通知が観測可能となるように、コンピューティングデバイスの設定を変更することができる。特定の通知のタイプは、アプリケーションが通知を通知システム200に提供することよって(例えば通知についてのメタデータによって示される、アプリケーションによって呼び出されるアプリケーションインタフェース206のAPIのメソッド等に基づいて)識別される。UI更新モジュール204は、1つ又は複数の他のタイプの通知(例えばアプリケーションのタイル又はアイコン表現)について観測可能でなくてよいが、1つ又は複数のタイプの通知(例えばポップアップ又は一時通知)について、コンピューティングデバイスにおいて通知が観測可能となるようにコンピューティングデバイスの設定を変更することができる。
【0039】
例えばコンピューティングデバイスが低電力モードにあるためにコンピューティングデバイスにおいて通知が観測可能でない場合、UI更新モジュール204は、(例えば適切なオペレーティングシステムコンポーネント又はモジュールによる電力モード変更を要求することによって)そのコンピューティングデバイスを、コンピューティングデバイスにおいて通知が観測可能な高電力モードにすることができる。別の例として、ディスプレイデバイスが電源オフされているために、通知がコンピューティングデバイスにおいて観測可能でない場合、UI更新モジュール204は、(例えば適切なオペレーティングシステムコンポーネント又はモジュールに、ディスプレイデバイスの電源をオンするように要求することによって)ディスプレイデバイスの電源をオンにすることができる。
【0040】
したがって、一部の状況において、コンピューティングデバイスの現在の設定のために、通知がコンピューティングデバイスにおいて観測可能でないことがある。したがって、メタデータが通知を提示すべき時を指示しているにもかかわらず、多数の通知が最終的にコンピューティングデバイスによって提示されない可能性がある。しかしながら、コンピューティングデバイスがその後、該コンピューティングデバイスにおいて通知が観測可能な設定へと遷移するか、戻ったことに応答して、UI更新モジュール204は、アプリケーションについてどの通知を提示すべきか決定する。アプリケーションは、複数の通知を通知システム200に提供することができ、UI更新モジュール204は、通知をいつ提示すべきかを示す通知のためのメタデータに少なくとも部分的に基づいて、これらの複数の通知のうちの適切な1つを識別して提示する。1つ又は複数の実施形態において、UI更新モジュール204は、最も最近の通知の寿命が、該通知をまだ提示することができることを示す場合、アプリケーションのための最も最近の通知(例えば通知をいつ提示すべきかの指示に基づいて、最も最近提示されていた通知)を提示する。アプリケーションのための最も最近の寿命が、該通知がもはや提示されるべきでないことを示す場合、UI更新モジュール204は、そのアプリケーションについて次に最近の通知を提示するか、あるいは他のデータを提示するか又はデータを提示しない(例えばブランクの通知を表示する)ことができる。
【0041】
コンピューティングデバイスにおいて通知が観測可能でない場合にUIが更新されないことにより、一部の通知が落とされるか無視されるという状況が生じる可能性がある。落とされた又は無視された通知は、通知ストア208から削除され得る。通知が、ある通知(例えば通知A)をいつ提示すべきかの指示を含むが、通知Aがコンピューティングデバイスにおいて観測可能でなく、またアプリケーションについて別の通知(例えば通知B)が続いて表示されるべきであるが、通知Bがコンピューティングデバイスにおいて観測可能でない場合、次いで、通知Aを通知システム200によって落とすか無視することができる。コンピューティングデバイスにおいて通知が観測可能である時間までに、通知Aは通知Bに既に置き換えられているので、UIは通知Aを提示するように更新される必要はない。
【0042】
例えばある通知をある時間にアプリケーションについて表示することができ、アプリケーションが、通知システム200に次の5つの通知、すなわち、2013年1月1日の午後1:00に表示すべき通知A、2013年1月1日の午後2:00に表示すべき通知B、2013年1月1日の午後3:00に表示すべき通知C、2013年1月1日の午後4:00に表示すべき通知D、及び2013年1月1日の午後5:00に表示すべき通知E、の5つの通知を提供すると想定する。さらに、通知システム200を実装するコンピューティングデバイスのディスプレイデバイスが、2013年1月1日の午前11:00に電源オフされ、2013年1月1日の午後4:30まで再び電源オンされないと想定する。ディスプレイデバイスが電源オンされることに応答して、UI更新モジュール204は、通知A、B及びCは既に置換されていると決定し、モジュール204はしたがって、通知A、B及びCを落とすか無視して通知Dを表示することができる。
【0043】
1つ又は複数の実施形態において、通知は、同じコンテンツがその通知の単一のフレーム内に提示される、単一プレゼンテーション通知である。例えば図1の表現114として表示される通知は、「シアトル 75°/曇り」を識別するコンテンツと曇りのアイコンを含むことができる。あるいは、通知は、複数の異なるコンテンツを連続して提示することができる複数プレゼンテーション通知とすることができる。複数プレゼンテーション通知は、連続して複数の通知のコンテンツを表示することが可能であり、及び/又は単一の通知は、連続して提示される複数のフレームのコンテンツを含むことが可能である。表示されるべき通知及び/又はフレームの数を、アプリケーションが通知を提供することによって(例えば通知についてのメタデータ)、UI更新モジュール204の(コンピューティングデバイスのユーザ又は管理者によって任意選択で変更可能な)構成設定によるなどの異なる方法で識別することができる。
【0044】
図3は、1つ又は複数の実施形態に従ってアプリケーションの表現の一部として複数の通知を連続して表示する、例示的実装のシステム300を示している。システム300は、第1の段階302、第2の段階304及び第3の段階306の使用により図示されている。通知は、アプリケーションの表現の一部として表示するために、様々な異なる方法で配置される様々異なる形式を取ることができる。
【0045】
図3に図示されるように、例えば複数のフレーム310、312を有する通知308が示されている。第1の段階302において、通知308のフレーム310は、天気アプリケーションの表現のために、雲の図形表現と、「シアトル」というテキストを表示するのに使用される。
【0046】
第2の段階304において、通知308のフレーム312は、「シアトル」というテキストと、シアトルの付加的な現在の天候条件を記述する「75°/曇り」というテキストを表示するのに使用される。したがって、通知308は、天気アプリケーションの通知の一部として連続して表示されるフレーム310、312を含むように構成され得る。
【0047】
追加の通知を、アプリケーションの表現の一部として連続して表示することもできる。第3の段階306において示されるように、例えば通知314は、太陽と現在の天候条件の図とテキストを「スポーケン/52°」として表示するのに使用される。したがって、この例示のシステム300では、UI更新モジュール(例えば図2のモジュール204)を使用して、アプリケーションの通知として表示するために通知308、314を循環させることができる。UI更新モジュールは、通知308、314の循環を繰り返す(例えば通知314を表示した後、通知308を再表示する)ことができ、あるいは1つの通知又はフレーム(例えば通知314)のみを表示し続けることもできる。
【0048】
図2に戻ると、コンピューティングデバイスが、該コンピューティングデバイスにおいて通知を観測可能な設定へと遷移するか戻ったことに応答して、通知が複数プレゼンテーション通知である場合、UI更新モジュール204は、1つ又は複数の通知のうち、アプリケーションについて連続的に提示すべき複数の通知及び/又はフレームを決定する。UI更新モジュール204は、閾値数(例えば通知を提供するアプリケーションによって指示されるような、表示すべき通知及び/又はフレームの数、例えば5つの通知及び/又はフレーム)を選択し、アプリケーションについて、最も最近の閾値数の通知を提示することができる。最も最近の閾値数の通知のうちの1つ又は複数の通知の寿命が、その通知がもはや提示されるべきでないことを示す場合、次いでUI更新モジュール204は、アプリケーションについて次に最近の通知を提示するか、閾値数よりも少ない数の通知を提示し、あるいは他のデータを提示するかデータを提示しない(例えばブランクの通知を表示する)ことがある。
【0049】
したがって、通知システム200は、複数のアプリケーションについての通知が、電力効率の良い手法で表示されるか、他の方法で提示されるのを可能にする。アプリケーションは、該アプリケーションの所望の通知を表示させるか提示させるために、バックグラウンドアプリケーションとして実行し続ける必要はなく、及び/又は実行を再開する必要はない。さらに、通知システム200は、様々な電力効率化技術を使用して、いずれにしてもコンピューティングデバイスでは観測可能でない通知が反映するようにユーザインタフェースが更新されるのを回避する。例えばコンピューティングデバイスが低電力モードにあるとき、及び/又コンピューティングデバイスのディスプレイデバイスが電源オフされているときに、表示すべき通知は、そのコンピューティングデバイスが高電力モードに遷移するか、ディスプレイデバイスが電源オンされるまで表示されない。この場合、コンピューティングデバイスが低電力モードにあり、及び/又はディスプレイデバイスが電源オフにされているために、表示又は提示には電力は消費されない。したがって、ディスプレイデバイスが電源オフされている1時間の間に、20個の異なる通知が特定の表現内に表示されるべきであった場合、その後ディスプレイデバイスが電源オンされると、最後の通知のみが表示され、他の19個の通知を表示するのに電力を費す必要はない。
【0050】
いずれにしてもコンピューティングデバイスでは観測可能でない通知を反映するようにユーザインタフェースが更新されるのを回避することによって、様々な電力節約が達成されることに留意されたい。ユーザインタフェースが更新されないので、ユーザインタフェースを更新することに関与する様々なアクティビティ及び動作が停止し、実行される必要がないので、結果として電力の節約となる。例えば特定の位置から情報を取得すること、ネットワークにアクセスすること、表示又はプレゼンテーション用に情報を処理すること、ユーザインタフェースを修正すること等を実行する必要がない。
【0051】
1つ又は複数の実施形態において、通知システム200は、スケジュールされる通知カテゴリや周期的通知カテゴリのような異なるカテゴリの通知をサポートする。特定の通知のカテゴリは、通知を通知システム200に提供するアプリケーションによって(例えば通知のメタデータで指示された、アプリケーションによって呼び出されるアプリケーションインタフェース206のAPIのメソッドに基づいて)識別される。スケジュールされる通知カテゴリは、スケジュールされた時間に提示され、別の通知によって置換されるまで(あるいは通知の寿命の経過後まで)提示され続けるべき通知を指す。周期的通知カテゴリは、特定の(定期的な及び/又は非定期的な)間隔で更新又は置換されることになる通知を指す。特定の間隔で、UI更新モジュール204は、通知の置換コンテンツを(例えば通知内で識別された位置から)取得し、この置換コンテンツを以前に提示したコンテンツの代わりに提示する。
【0052】
UI更新モジュール204は、異なるカテゴリの通知を、異なるように管理することができる。1つ又は複数の実施形態において、UI更新モジュール204は、(通知のメタデータで指示されるように)スケジュールされた通知を提示すべき時の閾値時間内(例えば1秒)に、スケジュールされた通知を提示するようにUIを更新する。しかしながら、UI更新モジュール204は(上述のように、任意選択で通知のタイプに応じて)、上述のように(例えばコンピューティングデバイスの電力モードに起因して)コンピューティングデバイスにおいて通知が観測可能でない場合、スケジュールされた通知を提示するようにUIを更新しない。したがって、スケジュールされた通知について、UI更新モジュール204は、通知を提示するためのかなり細かな時間の粒度に従う。
【0053】
UI更新モジュール204は、しかしながら、(通知のメタデータで指示されるように)周期的通知を提示すべき時の別の閾値時間(例えば4分)内に、周期的通知を提示するようにUIを更新する。しかしながら、UI更新モジュール204は(上述のように、任意選択で通知のタイプに応じて)、上述のように(例えばコンピューティングデバイスの電力モードに起因して)コンピューティングデバイスにおいて通知が観測可能でない場合、周期的通知を提示するようにUIを更新しない。したがって、周期的通知について、UI更新モジュール204は、通知を提示するための荒い時間の粒度に従う。
【0054】
加えて、1つ又は複数の実施形態において、周期的通知は、通知について表示すべきコンテンツが取得される場所を識別する。UI更新モジュール204は、コンテンツを、別のデバイス又はサービスから、(上述の時間粒度の対象となる)周期的通知についてメタデータで指定された頻度又は間隔で取得する。周期的通知についてのメタデータは、UI更新モジュール204が他のデバイス又はサービスからコンテンツの取得を開始すべき時を示す時間、あるいは要求に固有の時間(例えば要求を受信する時間に開始するか、要求を受信した後の最初の時間間隔で開始する等)を含むことができる。
【0055】
1つ又は複数の実施形態において、UI更新モジュール204は、別のデバイス又はサービス(例えば図1のサービス122)からコンテンツを取得する。そのような実施形態において、複数の通知について(例えば同じ及び/又は異なるアプリケーションから)コンテンツを取得すべき場合、UI更新モジュール204は、そのコンテンツについての要求を一緒にバッチ処理するか合体させることができる。UI更新モジュール204はしたがって、複数の要求を送信し、複数の通知についてのコンテンツを一度に一緒に取得することができ、次いで1つ又は他の通知についてのコンテンツを取得するまで、閾値時間の間、(例えば5分〜10分)待機する。コンテンツについて要求を一緒にバッチ処理するか合体させることによって、コンピューティングデバイスの様々なリソース(例えばネットワークアダプタ及び/又は他のネットワーキングコンポーネント、プロセッサ、ストレージデバイス等)が電源オンされる頻度を低減することができ、これによりコンピューティングデバイスの電力を節約することができる。
【0056】
上記で検討したように、アプリケーションインタフェースは、アプリケーションによって呼び出すことができる1つ又は複数メソッドを公開するAPIとすることができる。以下は、アプリケーションインタフェース206内に含めることができるAPIメソッドの例である。これらのAPIメソッドは例示であり、代替的に他のAPIメソッドを使用することができることが認識されよう。
【0057】
表1は、通知ストア208において保持される、ScheduledTileNotificationオブジェクトの新たなインスタンスを作成してインスタンス化するコンストラクタの例を示す。ScheduledTileNotificationオブジェクトは、スケジュールされる通知カテゴリの通知の例である。
【0058】
【表1】
表1のメソッドは、2つのパラメータ、すなわちcontent(コンテンツ)パラメータと、deliveryTime(配信時間)パラメータである。contentパラメータは、通知データを提供する。通知データは、その通知について表示又は他の方法で提示されるべきコンテンツと、通知についてのメタデータとを含む。1つ又は複数の実施形態において、コンテンツは、公知の(例えば通知システム200及びアプリケーションに公知の)フォーマットを有するxmlドキュメントであるが、代替的に、JavaScript(登録商標) Object Notation(JSON)、バイナリフォーマット、イメージ等のような他のデータ識別技術も使用することができる。deliveryTimeパラメータは、通知を表示又は他の方法で提示すべき時間を提供する。deliveryTimeパラメータは、特定の日時、現在の日時からのオフセット等のような様々な公知のフォーマットとすることができる。
【0059】
表2は、StartPeriodicUpdateメソッドの例を示しており、このメソッドは、該メソッドを呼び出すと開始する、通知についての一連の時間コンテンツの変更を開始する。StartPeriodicUpdateメソッドが呼び出されたことに応答して、通知オブジェクトが作成され、通知ストア208に保持される。StartPeriodicUpdateメソッドの結果、周期的通知カテゴリの通知の例であるオブジェクトが作成されることになる。
【0060】
【表2】
表2のメソッドは、2つのパラメータ、すなわちtileContent(タイルコンテンツ)パラメータと、requestedInterval(要求間隔)パラメータである。tileContentパラメータは、通知(及びオプションで通知についてのメタデータ)について表示又は他の方法で提示されるべきコンテンツが取得されることになるURIを識別する。1つ又は複数の実施形態において、コンテンツは、公知の(例えば通知システム200並びにxmlドキュメント格納するアプリケーション及び/又はサービスに公知の)フォーマットを有するxmlドキュメントであるが、代替的に、JavaScript(登録商標) Object Notation(JSON)、バイナリフォーマット、イメージ等のような他のデータ識別技術も使用することができる。requestedIntervalパラメータは、通知について表示又は提示すべき新たなコンテンツのためにURIがアクセスされる頻度を識別する。
【0061】
図4は、1つ又は複数の実施形態に従って電力効率の良いアプリケーション通知システムを実装するための例示的プロセスを示すフローチャートである。プロセス400は、図1の通知システム112又は図2の通知システム200のようなデバイスの通知システムによって実行され、ソフトウェア、ファームウェア、ハードウェア又はこれらの組み合わせで実装され得る。プロセス400は、動作のセットとして示されているが、これらの様々な動作のオペレーションを実行するために、示されている順序には限定されない。プロセス400は、電力効率の良いアプリケーション通知システムを実装するための例示的なプロセスであり、電力効率の良いアプリケーション通知システムを実装することに関する追加の議論は、他の図に関連して本明細書内に含まれている。
【0062】
プロセス400において、アプリケーションに関連付けられた通知が受信される(動作402)。通知をアプリケーションから受信することができ、通知は、上述のように通知のためのメタデータと、通知のためのコンテンツとの双方を含む。あるいは、通知は、通知についてのコンテンツ自体ではなく、上述のように通知についてのコンテンツを取得することができる場所の指示を含むことができる。
【0063】
ユーザインタフェースが、通知のメタデータ内に含まれるコンテンツをいつ提示すべきかの指示に少なくとも部分的に基づく時間に、通知のためのコンテンツを提示するように更新される(動作404)。ユーザインタフェースを更新する時間は、上述のように通知がデバイスにおいて観測可能か否かにも少なくとも部分的に基づくものとすることができる。通知のためのコンテンツは、上述のように、アプリケーションの実行が終了したか一時停止したかに関わらず、またアプリケーションを実行するか実行を再開することなく提示される。
【0064】
図5は、1つ又は複数の実施形態に従って電力効率の良いアプリケーション通知システムを起動するための例示的プロセスを示すフローチャートである。プロセス500は、図1のアプリケーション106のようなデバイス上のアプリケーションによって実行される。プロセス500は典型的にはソフトウェアで実装されるが、代替的として、少なくとも部分的にファームウェア及び/又はハードウェアで、あるいはソフトウェア、ファームウェア及び/又はハードウェアの組み合わせで実装することもできる。プロセス500は、動作のセットとして示されているが、これらの様々な動作のオペレーションを実行するために、示されている順序には限定されない。プロセス500は、電力効率の良いアプリケーション通知システムを起動するための例示的なプロセスであり、電力効率の良いアプリケーション通知システムを起動することに関する追加の議論は、他の図に関連して本明細書内に含まれている。
【0065】
プロセス500において、プロセス500を実装するアプリケーションに関連付けられる通知のためのコンテンツの識別情報が通知システムに提供される(動作502)。通知が通知システムに提供されて、これにより通知システムは、上述のように、コンテンツを提示する時間にアプリケーションの実行が終了しているか一時停止しているかに関わらず、通知のコンテンツを提示することができる。アプリケーションによって提供されるコンテンツの識別情報は、上述のように、通知に対して提示されるべきコンテンツとすることができ、あるいは通知のために提示されるべきコンテンツを取得することができる場所の指示とすることもできる。
【0066】
通知のためのメタデータも、プロセス500を実装するアプリケーションによって通知システムに提供される(動作504)。通知のためのメタデータは、通知のためのコンテンツをいつ提示すべきかを指示し、また上述のように追加のメタデータを含むことができる。
【0067】
通知、受信、送信、取得等のような、様々なモジュールによって実行される様々なアクションが本明細書において検討されている。本明細書において、あるアクションを実行するように説明された特定のモジュールは、そのアクションを実行するその特定のモジュール自体、あるいはそのアクションを実行する(又はその特定のモジュールとともにアクションを実行する)別のコンポーネント又はモジュールを呼び出すか又は他の方法でアクセスする特定のモジュールを含む。したがって、アクションを実行する特定のモジュールは、アクションを実行する特定のモジュール自体及び/又はそのアクションを実行する特定のモジュールによって呼び出されるか他の方法でアクセスされる別のモジュールを含む。
【0068】
図6は、例示的システムを全体的に600として示しており、該システムは、本明細書で説明される様々な技術を実装することができる1つ又は複数のコンピューティングシステム及び/又はデバイスを表す例示のコンピューティングデバイス602を含む。コンピューティングデバイス602は、例えばユーザに関連付けられるデバイス(例えば図1のコンピューティングデバイス102)、サービスのサーバ(例えば図1のサービス122)、オンチップシステム及び/又は任意の他の適切なコンピューティングデバイス又はコンピューティングシステムとすることができる。
【0069】
図示されるように、コンピューティングデバイス602は、処理システム604、1つ又は複数のコンピュータ読取可能媒体606並びに1つ又は複数のI/Oインタフェース608を含み、これらは相互に通信可能に接続される。図示されていないが、コンピューティングデバイス602は、様々な構成要素を相互に結合するシステムバスあるいは他のデータ及びコマンド伝送システムを更に含んでもよい。システムバスは、メモリバス若しくはメモリコントローラ、周辺バス、ユニバーサルシリアルバス及び/又は様々なバスアーキテクチャのいずれかを使用するプロセッサ若しくはローカルバスのような、異なるバス構造のいずれか1つ又は組み合わせを含むことができる。制御及びデータラインのような様々な他の例も考慮される。
【0070】
処理システム604は、ハードウェアを使用して1つ又は複数の動作を実行する機能を表す、したがって、処理システム604は、プロセッサ、機能ブロック等として構成され得るハードウェア要素610を含むように図示されている。これは、ハードウェアにおける特定用途向け集積回路あるいは1つ又は複数の半導体を使用して形成される他の論理回路としての実装を含み得る。ハードウェア要素610は、形成される材料又は使用される処理機構によって制限されない。例えばプロセッサは、半導体及び/又はトランジスタ(例えば電子集積回路(IC))から構成され得る。そのようなコンテキストにおいて、プロセッサ実行可能な命令は電気的に実行可能な命令であり得る。
【0071】
コンピュータ読取可能媒体606は、メモリ/ストレージ612を含むように図示されている。メモリ/ストレージ612は、1つ又は複数のコンピュータ読取可能媒体に関連付けられたメモリ/ストレージ機能を表す。メモリ/ストレージ612は、揮発性媒体(ランダムアクセスメモリ(RAM)のような)及び/又は不揮発性媒体(読取専用メモリ(ROM)、フラッシュメモリ、光ディスク、磁気ディスク等)を含み得る。メモリ/ストレージ612は、固定の媒体(例えばRAM、ROM、固定のハードドライブ等)だけでなく、取外し可能媒体(例えばフラッシュメモリ、取外し可能ハードドライブ、光ディスク等)も含んでよい。コンピュータ読取可能媒体606は、以下で更に説明されるように様々な他の方法で構成されることもある。
【0072】
入力/出力インタフェース608が、ユーザがコマンド及び情報をコンピューティングデバイス602に入力するのを可能にし、ユーザ及び/又は様々な入力/出力デバイスを使用する他の構成要素若しくはデバイスに情報を提示することも可能にする機能を表す。入力デバイスの例には、キーボード、カーソル制御デバイス(例えばマウス)、マイクロフォン、スキャナ、タッチ機能(例えば物理的な接触を検出するように構成される容量又は他のセンサ)、(例えば赤外振動数のような可視及び非可視波長を使用して、ジェスチャのような接触を伴わない動きを検出し得る)カメラ等が含まれる。出力デバイスの例には、ディスプレイデバイス(例えばモニタ若しくはプロジェクタ)、スピーカ、プリンタ、ネットワークカード、触覚応答デバイス等が含まれる。したがって、コンピューティングデバイス602は、以下で更に説明されるようなユーザインタラクションをサポートする様々な方法で構成され得る。
【0073】
コンピューティングデバイス602は通知システム620も含む。通知システム620は、上記で検討したように提示されるべき通知を管理する。通知システム620は、例えば図1の通知システム112又は図2の通知システム200とすることができる。
【0074】
様々な技術は、本明細書においてソフトウェア、ハードウェア要素又はプログラムモジュールの一般的なコンテキストで説明されている。一般に、そのようなモジュールは、特定のタスクを実行するか特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、要素、構成要素、データ構造等を含む。本明細書で使用されるとき、「モジュール」、「機能」及び「構成要素」という用語は、一般的に、ソフトウェア、ファームウェア、ハードウェア又はその組み合わせを表す。本明細書で説明される技術の特徴は、プラットフォーム独立であり、これは、本技術が、様々なプロセッサを有する様々な市販のコンピューティングプラットフォームにおいて実装されてよいことを意味する。
【0075】
説明されるモジュール及び技術の実装を、何らかの形式のコンピュータ読取可能媒体上に格納するか、この媒体にわたって伝送してもよい。コンピュータ読取可能媒体は、コンピューティングデバイス602によってアクセス可能な様々な媒体を含んでよい。限定ではなく例として、コンピュータ読取可能媒体は「コンピュータ読取可能記憶媒体」と「コンピュータ読取可能信号媒体」を含むことがある。
【0076】
「コンピュータ読取可能記憶媒体」は、単なる信号伝送、搬送波又は信号自体とは対照的に、情報の持続的及び/又は非一時的な記憶を可能にする媒体及び/又はデバイスを指すことがある。したがって、コンピュータ読取可能記憶媒体は、非信号担持媒体を指す。コンピュータ読取可能記憶媒体は、揮発性及び非揮発性、取外し可能及び取外し不可能な媒体のようなハードウェア、並びに/あるいはコンピュータ読取可能命令、データ構造、プログラムモジュール、論理要素/回路又は他のデータのような情報の記憶に適した方法又は技術で実装される記憶デバイスを含む。コンピュータ読取可能記憶媒体の例には、限定ではなく例として、RAM、ROM、EEPROM、フラッシュメモリ又は他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)又は他の光ストレージ、ハードディスク、磁気カセット、磁気テープ、磁気ディスクストレージ又は他の磁気記憶デバイス、あるいは所望の情報を格納するのに適切で、コンピュータによってアクセス可能な他のストレージデバイス、有形媒体又は製品が含まれ得る。
【0077】
「コンピュータ読取可能信号媒体」は、ネットワークを介するような命令をコンピューティングデバイス602のハードウェアに伝送するように構成される信号担持媒体を指すことがある。信号媒体は、典型的にコンピュータ読取可能命令、データ構造、プログラムモジュール又は他のデータを、搬送波、データ信号又は他の伝送機構のような変調データ信号に具現化し得る。信号媒体は任意の情報配信媒体も含む。「変調データ信号」という用語は、情報を信号にエンコードするような手法で設定又は変更された特性の1つ又は複数を有する信号を意味する。限定ではなく例として、通信媒体は、有線ネットワーク又は直接有線接続のような有線媒体と、音響、RF、赤外線及び他の無線媒体のような無線媒体とを含む。
【0078】
前述したように、ハードウェア要素610及びコンピュータ読取可能媒体606は、一部の実施形態において本明細書で説明される技術の少なくとも一部を実装するのに用いられるハードウェアの形式で実装される、命令、モジュール、プログラム可能デバイスロジック及び/又は固定デバイスロジックを表す。ハードウェア要素は、集積回路又はオンチップシステム、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、結合プログラム可能論理回路(CPLD:complex programmable logic device)及びシリコン若しくは他のハードウェアデバイスによる他の実装の構成要素を含み得る。このコンテキストにおいて、ハードウェア要素は、命令、モジュール及び/又はハードウェア要素によって具現化されるロジックにより定義されるプログラムタスクを実行する処理デバイスとして、並びに例えば前述のコンピュータ読取可能記憶媒体を実行する命令を格納するのに用いられるハードウェアデバイス並びにとして動作することができる。
【0079】
前述の組み合わせを使用して、本明細書で説明される様々な技術及びモジュールを実装してもよい。したがって、ソフトウェア、ハードウェア又はプログラムモジュール及び他のプログラムモジュールを、任意の形式のコンピュータ読取可能媒体において並びに/あるいは1つ又は複数のハードウェア要素610によって具現化される、1つ又は複数の命令並び/あるいはロジックとして実装してもよい。コンピューティングデバイス602は、ソフトウェア及び/又はハードウェアモジュールに対応する特定の命令及び/又は機能を実装するように構成され得る。したがって、コンピューティングデバイス602によってソフトウェアとして実行可能なモジュールの実装は、例えばコンピュータ読取可能記憶媒体及び/又は処理システムのハードウェア要素610の使用を通じて、少なくとも部分的にハードウェアで達成され得る。命令及び/又は機能は、本明細書で説明される技術、モジュール及び実施例を実装するのに、1つ又は複数の製品(例えば1つ又は複数のコンピューティングデバイス602及び/又は処理システム604)によって実行可能/動作可能である。
【0080】
様々な実装において、コンピューティングデバイス602は、コンピュータ614、モバイル616及びテレビジョン618における使用のような、様々な異なる構成を想定し得る。これらの構成はそれぞれ、一般に異なる構成及び能力を有するデバイスを含み、したがって、コンピューティングデバイス602は、異なるデバイスクラスの1つ又は複数に従って構成され得る。本明細書で説明される技術は、コンピューティングデバイス602のこれらの様々な構成によってサポートされ、本明細書で説明された技術の特定の例に限定されない。例えばコンピューティングデバイス602は、パーソナルコンピュータ、デスクトップコンピュータ、マルチスクリーンコンピュータ、ラップトップコンピュータ、ネットブック等を含む、デバイスのコンピュータ614クラスとして実装され得る。
【0081】
コンピューティングデバイス602は、モバイルフォン、ポータブル音楽プレイヤ、ポータブルゲームデバイス、タブレットコンピュータ、マルチスクリーンデバイス等のようなモバイルデバイスを含む、デバイスのモバイル616クラスとして実装されることもある。コンピューティングデバイス602は、簡易な視聴環境において一般により大きい画面を有するか接続されるデバイスを含む、デバイスのテレビジョン618クラスとして実装されることもある。これらのデバイスは、テレビジョン、セットトップボックス、ゲームコンソール等を含む。
【0082】
本主題を、構造的特徴及び/又は方法的動作に特有の言語で説明してきたが、特許請求の範囲において定義される本主題は、必ずしも上述の具体的な特徴又は動作に限定されないことを理解されたい。むしろ、上述の具体的な特徴及び動作は、特許請求の範囲を実装するための例示的形式として開示されている。




図1
図2
図3
図4
図5
図6