(57)【特許請求の範囲】
【請求項１】
コンピューティングデバイスが、ジオフェンスのサイズを特定するステップであって、前記ジオフェンスの前記サイズは、前記ジオフェンスにより包含される面積である、ステップと、
前記コンピューティングデバイスが、位置判定モジュールに関する位置不確定領域のサイズを特定するステップであって、前記位置不確定領域は、前記位置判定モジュールにより提供される、前記コンピューティングデバイスの位置の推定精度誤差に基づき、前記位置判定モジュールに固有であり、前記位置不確定領域のサイズは、前記位置不確定領域により包含される面積である、ステップと、
前記コンピューティングデバイスが、ジオフェンス到達状態に関する信頼度値が閾信頼度値以上であるか否かに基づいて、前記ジオフェンスに関する１以上のジオフェンスイベントの発生を判定するステップであって、前記信頼度値は、前記位置不確定領域の前記サイズと、前記位置不確定領域と前記ジオフェンスとの重なり合っている領域の面積と、を使用して決定され、前記閾信頼度値は、前記ジオフェンスの前記サイズと前記位置不確定領域の前記サイズとの比率に少なくとも部分的に基づいて変化する、ステップと、
を含む方法。
【請求項２】
前記ジオフェンス到達状態に関する前記信頼度値が、前記閾信頼度値以上であることに応じて、前記コンピューティングデバイスが前記ジオフェンス内に存在すると判定するステップ
をさらに含む、請求項１記載の方法。
【請求項３】
前記信頼度値は、前記ジオフェンスの前記サイズに関して前記位置判定モジュールの精度においてどれくらいの誤差を許容できるかを含み、
前記方法は、位置不確定領域のサイズを特定する前記ステップ及び判定する前記ステップの前に、
前記ジオフェンスの前記サイズを所与として、複数の位置判定モジュールの中から、少なくとも許容可能な位置不確定領域を提供する１つの位置判定モジュールを選択するステップ
をさらに含む、請求項１記載の方法。
【請求項４】
コンピューティングデバイスであって、
複数のジオフェンスに関するジオフェンスデータを記憶するよう構成されているデータ記憶部であって、各ジオフェンスに関する前記ジオフェンスデータは、前記各ジオフェンスの領域を特定するものである、データ記憶部と、
ハードウェアにより少なくとも部分的に実装されている１以上の位置判定モジュールであって、各位置判定モジュールは、前記コンピューティングデバイスの位置を提供するよう構成されており、前記コンピューティングデバイスの前記位置は、関連付けられた位置不確定領域を有する、１以上の位置判定モジュールと、
ジオフェンス到達状態に関する信頼度値が閾信頼度値以上であるか否かに基づいて、前記複数のジオフェンスのうちのジオフェンスに関する１以上のジオフェンスイベントの発生を検出するよう構成されているジオフェンスイベント検出モジュールであって、前記信頼度値は、前記位置不確定領域のサイズと、前記位置不確定領域と前記ジオフェンスとの重なり合っている領域の面積と、を使用して決定され、前記閾信頼度値は、前記ジオフェンスのサイズと前記位置不確定領域の前記サイズとの比率に少なくとも部分的に基づいて変化し、前記位置不確定領域の前記サイズは、前記位置不確定領域により包含される面積であり、前記ジオフェンスの前記サイズは、前記ジオフェンスにより包含される面積である、ジオフェンスイベント検出モジュールと、
を備えたコンピューティングデバイス。
【請求項５】
前記ジオフェンスイベント検出モジュールは、前記ジオフェンスの前記サイズを所与として、複数の位置判定モジュールの中から、少なくとも許容可能な位置不確定領域を提供する１つの位置判定モジュールを選択するようさらに構成されている、請求項４記載のコンピューティングデバイス。
【請求項６】
ジオフェンスのサイズを特定するステップであって、前記ジオフェンスの前記サイズは、前記ジオフェンスにより包含される面積である、ステップと、
前記ジオフェンスの前記サイズに基づいて、複数の位置判定モジュールの中から、１つの位置判定モジュールを選択するステップと、
前記の選択された１つの位置判定モジュールに関する位置不確定領域のサイズを特定するステップであって、前記位置不確定領域は、前記の選択された１つの位置判定モジュールにより提供される、コンピューティングデバイスの位置の精度の不確定量に基づき、前記位置不確定領域の前記サイズは、前記位置不確定領域により包含される面積である、ステップと、
前記位置不確定領域の前記サイズと、前記位置不確定領域と前記ジオフェンスとの重なり合っている領域の面積と、を使用して、ジオフェンスに到達したことの信頼度値を決定するステップと、
前記ジオフェンスの前記サイズと前記コンピューティングデバイスの現在位置の前記位置不確定領域の前記サイズとの比率に基づく式を使用して、ジオフェンス到達状態を示す閾信頼度値を決定するステップと、
前記信頼度値が前記閾信頼度値以上である場合、前記コンピューティングデバイスが前記ジオフェンス内に存在すると判定し、前記信頼度値が前記閾信頼度値以上でない場合、前記コンピューティングデバイスが前記ジオフェンス内に存在しないであろうと判定するステップと、
を含む方法。
【発明の詳細な説明】
【背景技術】
【０００１】
コンピューティング技術が進化するにつれ、ますます強力なモバイルデバイスが利用可能になってきている。例えば、スマートフォンが一般的になっている。そのようなデバイスの移動性は、所定のアクションがデバイスの位置に基づいてデバイスにより行われる位置に基づく機能等、様々なタイプの機能の開発をもたらしている。この機能は、多くの利点を有するが、問題がないわけではない。そのような１つの問題は、デバイスの正確な位置を判定することが依然として難しいことである。これは、デバイスの位置に基づいて行われるべき特定のアクションが行われない状況及び／又はデバイスの位置に基づいて行われるべきではない特定のアクションが実際には行われる状況をもたらすおそれがあり、これは、デバイスを使用する際のユーザのフラストレーション及びユーザエクスペリエンスの低下をもたらす。
【発明の概要】
【０００２】
この概要は、発明を実施するための形態において以下でさらに説明されるコンセプトのうち選択したものを簡略化した形で紹介するために提供される。この概要は、特許請求される主題の主要な特徴又は必要不可欠な特徴を特定することを意図するものではないし、特許請求される主題の範囲を限定するために使用されることを意図するものでもない。
【０００３】
１以上の態様に従うと、ジオフェンス（例えば、関心領域）のサイズが特定される。位置判定モジュールに関する位置不確定領域（location  uncertainty  area）のサイズも特定される。位置不確定領域は、位置判定モジュールにより提供される、コンピューティングデバイスの位置に関する推定精度誤差に基づく。ジオフェンスに関する１以上のジオフェンスイベントの発生（例えば、ジオフェンスに入ったこと、ジオフェンスから出たこと、特定の時間量の間ジオフェンス内に留まっていること等）が、ジオフェンスのサイズ及び位置不確定領域のサイズの両方に少なくとも部分的に基づいて変化する信頼度レベル（confidence  level）に基づいて判定される。
【０００４】
１以上の態様に従うと、コンピューティングデバイスは、データ記憶部、１以上の位置判定モジュール、及びジオフェンスイベント検出モジュールを含む。データ記憶部は、複数のジオフェンスに関するジオフェンスデータを記憶するよう構成される。各ジオフェンスに関するジオフェンスデータは、各ジオフェンスの領域を特定する。１以上の位置判定モジュールは、それぞれ、コンピューティングデバイスの位置を提供するよう構成される。コンピューティングデバイスの位置は、関連付けられた位置不確定領域を有する。ジオフェンスイベント検出モジュールは、複数のジオフェンスのうちの少なくとも１つのジオフェンスのサイズ及び位置不確定領域のサイズに少なくとも部分的に基づいて変化する信頼度レベルに基づいて、複数のジオフェンスのうちの少なくとも１つのジオフェンスに関する１以上のジオフェンスイベントの発生を検出する。
【図面の簡単な説明】
【０００５】
同じ符号が、同様の特徴を参照するために、図面全体を通じて使用される。
【図１】本明細書で説明する変化する信頼度レベルを用いたジオフェンスイベントの検出を用いることができる例示的なシステムを示す図。
【図２】１以上の実施形態に従った、変化する信頼度レベルを用いたジオフェンスイベントの検出を実施する例示的なシステムを示すブロック図。
【図３】１以上の実施形態に従った、位置が判定されるべきであるかどうかをユーザが選択することを可能にするためにユーザに対して表示され得る例示的なユーザインタフェースを示す図。
【図４】１以上の実施形態に従った、変化する信頼度レベルを用いてジオフェンスイベントを検出するための例示的なプロセスを示すフローチャート。
【図５】１以上の実施形態に従った、変化する信頼度レベルを用いてジオフェンスイベントを検出するための別の例示的なプロセスを示すフローチャート。
【図６】１以上の実施形態に従った、重なり合っている位置不確定領域及びジオフェンスの例を示す図。
【図７】１以上の実施形態に従った、重なり合っている位置不確定領域及びジオフェンスの例を示す図。
【図８】１以上の実施形態に従った、ジオフェンス及び異なる位置判定モジュールを所与として実現され得る例示的な信頼度を示す例示的なテーブルを示す図。
【図９】１以上の実施形態に従った、変化する信頼度レベルを用いてジオフェンスイベントを検出するための別の例示的なプロセスを示すフローチャート。
【図１０】１以上の実施形態に従った、異なるジオフェンスサイズに関する所望される位置精度を示す例示的なテーブルを示す図。
【図１１】１以上の実施形態に従った複数の重なり合っているジオフェンスを示す図。
【図１２】本明細書で説明する様々な技術を実装することができる１以上のシステム及び／又はデバイスを表す例示的なコンピューティングデバイスを含む例示的なシステムを示す図。
【発明を実施するための形態】
【０００６】
変化する信頼度レベルを用いたジオフェンスイベントの検出について本明細書で説明する。コンピューティングデバイスの位置が判定され、関心領域の位置が特定される。関心領域は、ジオフェンスとも呼ばれる地理的領域である。コンピューティングデバイスの判定された位置の精度は、関連付けられた不確定性を有するので、コンピューティングデバイスの位置は、通常、正確に示すことができない。この不確定性を考慮して、コンピューティングデバイスがジオフェンス内に存在するかジオフェンス外に存在するかを判定するために、判定された位置に関連付けられた不確定性が、ジオフェンスのサイズに対して評価される。この判定に基づいて、ユーザがジオフェンスに入った場合、ユーザがジオフェンスから出た場合、ユーザが少なくとも閾時間量の間ジオフェンス内に留まっている場合等に、様々なアクションを行うことができる。
【０００７】
コンピューティングデバイスがジオフェンス内に存在するかジオフェンス外に存在するかの判定は、ジオフェンスのサイズに少なくとも部分的に基づいて信頼度レベルを変化させることによりなされる。変化する信頼度レベルは、位置不確定領域に対するジオフェンス領域の比率に基づく閾信頼度値や、ジオフェンス領域に関して位置判定モジュールの精度においてどれくらいの誤差を許容できるか（したがって、コンピューティングデバイスがジオフェンス内に存在するかジオフェンス外に存在するかの判定においてどれくらいの信頼度が存在するか）等、様々な形をとることができる。信頼度レベルを変化させることにより、コンピューティングデバイスがジオフェンス内に存在するかジオフェンス外に存在するかの判定は、異なるサイズのジオフェンスに適応し、誤アラーム（コンピューティングデバイスがジオフェンス内に存在すると間違って判定される状況）を低減させることが可能になるとともに、ジオフェンスの見逃し（コンピューティングデバイスがジオフェンス外に存在すると間違って判定される状況）を低減させることが可能になる。
【０００８】
図１は、本明細書で説明する変化する信頼度レベルを用いたジオフェンスイベントの検出を用いることができる例示的なシステム１００を示している。システム１００は、コンピューティングデバイス１０２を含む。コンピューティングデバイス１０２は、様々なタイプのデバイスのうちの任意のデバイスとすることができるが、典型的にはモバイルデバイスである。例えば、コンピューティングデバイス１０２は、スマートフォン又は他の無線電話機、ラップトップコンピュータ又はネットブックコンピュータ、タブレットコンピュータ又はノートパッドコンピュータ、ウェアラブルコンピュータ、移動局、エンターテイメント機器、オーディオ再生デバイス及び／又はビデオ再生デバイス、ゲームコンソール、自動車用コンピュータ等とすることができる。コンピューティングデバイス１０２は、一般に、モバイルデバイスと呼ばれる。なぜならば、デバイス１０２は、複数の異なる位置に移動される（例えば、ユーザが異なる位置に移動するときにユーザと一緒にユーザにより運ばれる）よう設計又は意図されているからである。
【０００９】
コンピューティングデバイス１０２の位置は、以下でより詳細に説明するように、無線ネットワーキング（例えば、Ｗｉ−Ｆｉ（登録商標））三角測位、セルラ測位、全地球航法衛星システム（ＧＮＳＳ）測位、ネットワークアドレス（例えば、インターネットプロトコル（ＩＰ）アドレス）測位等といった多種多様な技術のうちの任意の技術を用いて判定することができる。異なる位置判定技術は、異なる精度誤差又は関連付けられた不確定性を有し得る。例えば、位置判定技術は、１０メートル（ｍ）又は１０キロメートル（ｋｍ）の精度であり得る。したがって、コンピューティングデバイス１０２の位置は、正確には示されず、コンピューティングデバイス１０２を取り囲む領域１０４として示される。領域１０４は、コンピューティングデバイス１０２の判定された位置の不確定性を表し、したがって、コンピューティングデバイスが、特定の位置（例えば、領域１０４の略中心）に存在すると判定されたとしても、コンピューティングデバイス１０２は、実際には、領域１０４内のどこかに存在するであろう。
【００１０】
システム１００はまた、複数のジオフェンス１１２、１１４、１１６、及び１１８も示している。各ジオフェンス１１２〜１１８は、コンピューティングデバイス１０２、コンピューティングデバイス１０２のユーザ、コンピューティングデバイス１０２上で実行されているプログラム等にとって関心のある多種多様な場所のうちの任意の場所であり得る。例えば、ジオフェンス１１２〜１１８は、ユーザの自宅、ユーザの職場、ユーザにより訪問され得るレストラン又は事業所、教育施設、公共サービス（例えば、病院や図書館）、地理的場所（例えば、街や国）等であり得る。
【００１１】
ジオフェンス１１２〜１１８の位置は、コンピューティングデバイス１０２内に保持される、あるいは、コンピューティングデバイス１０２によりアクセス可能である。コンピューティングデバイス１０２の異なるユーザは、任意的に、異なるジオフェンスを保持させてもよいし、異なるジオフェンスにアクセスさせてもよいことに留意すべきである。コンピューティングデバイス１０２は、モバイル式であり、ジオフェンス１１２〜１１８に入ることもあるし、ジオフェンス１１２〜１１８から出ることもある。任意の所与の時間において、コンピューティングデバイス１０２は、ジオフェンス１１２〜１１８のうちの１つのジオフェンス内に存在することもあるし、どのジオフェンス内にも存在しないこともある。コンピューティングデバイス１０２が、特定のジオフェンスを含む領域内に存在すると判定された場合、コンピューティングデバイス１０２は、その特定のジオフェンス内に存在すると呼ばれる。一方、コンピューティングデバイス１０２が、特定のジオフェンスを含む領域内に存在しないと判定された場合、コンピューティングデバイス１０２は、その特定のジオフェンス外に存在する、あるいは、その特定のジオフェンス内に存在しないと呼ばれる。２以上のジオフェンスが重なり合う状況も生じることがあり、その場合、コンピューティングデバイス１０２は、２以上のジオフェンス１１２〜１１８内に同時に存在することもある。図１の例示は、縮尺通りではなく、ジオフェンス１１２〜１１８は、コンピューティングデバイス１０２よりもサイズが著しく大きいことがある（通常は、コンピューティングデバイス１０２よりもサイズが著しく大きい）。
【００１２】
図示される例において、領域１０４は、ジオフェンス１１２〜１１８のいずれとも交わっておらず、したがって、コンピューティングデバイス１０２は、ジオフェンス１１２〜１１８の各々の外に存在する。しかしながら、領域１０４が、ジオフェンス１１２〜１１８のうちの１つと少なくとも部分的に重なり合った場合、コンピューティングデバイス１０２は、重なり合っているジオフェンス内に存在する可能性がある。そのような状況においてコンピューティングデバイス１０２がジオフェンス内に存在すると判定されるかジオフェンス外に存在すると判定されるかは、以下でより詳細に説明するように、変化する信頼度レベルに基づいて判定される。
【００１３】
図２は、１以上の実施形態に従った、変化する信頼度レベルを用いたジオフェンスイベントの検出を実施する例示的なシステム２００を示すブロック図である。システム２００は、図１のコンピューティングデバイス１０２等の単一のデバイスにより実装されてもよいし、コンピューティングデバイス１０２、及びネットワーク（例えば、セルラ電話網又は他の無線電話網、インターネット等）を介してアクセスされる１以上のサーバコンピュータ等の複数のデバイスにより実装されてもよい。システム２００は、１以上の位置判定モジュール２０２、ジオフェンス判別モジュール２０４、ジオフェンスイベント検出モジュール２０６、ジオフェンストリガモジュール２０８、及びデータ記憶部２１０を含む。
【００１４】
データ記憶部２１０は、本明細書で説明する技術により用いられる様々なデータを保持する。データ記憶部２１０は、システムメモリ（例えば、ランダムアクセスメモリ（ＲＡＭ））、フラッシュメモリ又は他のソリッドステートメモリ、磁気ディスク、光ディスク等といった多種多様な記憶デバイスのうちの任意の記憶デバイスを用いて実装することができる。データ記憶部２１０に保持されるデータは、複数のジオフェンスの各々に関するジオフェンスデータを含み、複数のジオフェンスを特定する。ジオフェンスデータは、データ記憶部２１０にデータを記憶させている、データ記憶部２１０のディストリビュータ又はリセラ、システム２００を実装しているコンピューティングデバイス上で実行されるプログラム、別のデバイス又はサービス等といった様々なソースから取得することができる。ジオフェンスに関するジオフェンスデータは、ジオフェンスの境界（ジオフェンスの形状のインジケーションを含む）に加えて、ジオフェンスがトリガされるために満たされるべき基準（criteria）を表す。
【００１５】
満たされるべき基準は、デバイスがジオフェンスに入ったこと、デバイスがジオフェンスから出たこと、デバイスが特定の時間量（例えば、少なくとも閾時間量、単に閾時間量等）の間ジオフェンス内に留まっていること、ジオフェンスに関する時間期間（例えば、開始時間と終了時間、開始時間と継続期間）、これらの組合せ等を指し得る。ジオフェンスがトリガされたこと（基準が満たされたこと）に応じて行われる１以上のアクションも、ジオフェンスデータの一部として含まれ得る。ジオフェンスがトリガされたときに、特定のプログラムに通知すること、特定のコンテンツがコンピューティングデバイスにより表示又は別の形で再生されること、ジオフェンスデータがデータ記憶部２１０から削除されること、これらの組合せ等といった様々なアクションのうちのいずれかが行われ得る。複数の異なるアクションが、ジオフェンスがトリガされた態様に基づいて行われ得る。例えば、１つのアクションは、デバイスがジオフェンスに入ったことに応じて行われ、別のアクションは、デバイスがジオフェンスから出たことに応じて行われる。
【００１６】
ジオフェンスの境界は、多種多様な方法のうちのいずれかの方法により指定することができる。例えば、ジオフェンスは、位置（例えば、緯度座標及び経度座標）及び半径、位置のセット（例えば、ジオフェンスの複数のコーナーの緯度座標及び経度座標）、一連のベクトル等として指定することができる。本明細書における説明において、略円形形状であるジオフェンスについて言及する。しかしながら、ジオフェンスは、様々な標準的幾何学形状（例えば、三角形、四角形、八角形等）、他の幾何学形状（例えば、自由形状又はブロブ）等のうちの任意の形状とすることができることに留意すべきである。
【００１７】
データ記憶部２１０が、システム２００の一部として、図２に示されている。データ記憶部２１０に保持されるデータは、プログラム２３０（例えば、システム２００を実装しているコンピューティングデバイスにロードされるときのプログラム２３０）から取得できることに留意すべきである。代替的に、プログラム２３０のうちの１以上のプログラムが、データ記憶部２１０に加えて使用される、あるいは、データ記憶部２１０の代わりに使用されるデータ記憶部を含んでもよい。
【００１８】
ジオフェンスは、多種多様な態様で使用することができる。例えば、行われるジオフェンスアクションは、システム２００の少なくとも一部を実装しているコンピューティングデバイスのユーザがバス停に近づいているときにユーザに通知すること、ユーザがショッピングモール又はショッピング店に入ったときにユーザにクーポンを与えること、子供が学校を離れたとき又は子供が自宅に戻ったときに子供の親に通知すること、ユーザが別の街に旅行したときに現在位置に関する天気情報を表示すること等であり得る。
【００１９】
位置判定モジュール２０２は、コンピューティングデバイス１０２の位置を判定する１以上のモジュールを含む。図示される例において、位置判定モジュール２０２は、Ｗｉ−Ｆｉ（登録商標）モジュール２１２、ＧＮＳＳモジュール２１４、ネットワークアドレスモジュール２１６、及びセルラモジュール２１８を含む。しかしながら、これらのモジュール２１２〜２１８は例であり、位置判定モジュール２０２は、モジュール２１２〜２１８の各々を必ずしも含む必要はないし、且つ／あるいは、位置判定モジュール２０２は、異なる方法によりコンピューティングデバイス１０２の位置を判定する１以上のさらなるモジュールを含んでもよいことに留意すべきである。例えば、位置判定モジュールは、ＭＥＭＳ（マイクロエレクトロメカニカルシステム）、カメラ、マイクロフォン等を含んでもよい。
【００２０】
Ｗｉ−Ｆｉ（登録商標）モジュール２１２は、Ｗｉ−Ｆｉ（登録商標）信号を使用して、例えば、Ｗｉ−Ｆｉ（登録商標）信号の三角測位を使用して、コンピューティングデバイス１０２の位置を判定する。Ｗｉ−Ｆｉ（登録商標）モジュール２１２は、様々な無線アクセスポイントから、信号が受信される元である特定の無線アクセスポイント及び／又は特定の無線ネットワークの識別子を含む信号を受信することができる。例えば、無線アクセスポイントは、その無線アクセスポイントの媒体アクセス制御（ＭＡＣ）アドレス、その無線アクセスポイントによりサポートされている無線ネットワークの基本サービスセット識別子（ＢＳＳＩＤ）等を送信することができる。Ｗｉ−Ｆｉ（登録商標）モジュール２１２はまた、そのような受信信号の強度（例えば、受信信号強度インジケータ（ＲＳＳＩ）値）を測定することができる。Ｗｉ−Ｆｉ（登録商標）モジュール２１２は、コンピューティングデバイスの任意の所与の位置に関して任意の所与の時間に、複数の無線アクセスポイントから信号を受信できることに留意すべきである。Ｗｉ−Ｆｉ（登録商標）モジュール２１２は、信号が受信される元である無線アクセスポイントと、任意の特定の時間におけるその信号の強度と、を所与として、その特定の所与の時間におけるコンピューティングデバイスの位置を判定するために、無線アクセスポイント、信号強度、及び対応する位置のレコードを保持することができる、あるいは、それらにアクセスすることができる。代替的に、Ｗｉ−Ｆｉ（登録商標）モジュール２１２は、信号が受信される元である無線アクセスポイントと、特定の所与の時間におけるその信号の強度と、のインジケーションを、その特定の所与の時間におけるコンピューティングデバイスの位置を判定して、その位置のインジケーションをＷｉ−Ｆｉ（登録商標）モジュール２１２に返すリモートサービス（例えば、多種多様なタイプのネットワークのうちのいずれかのネットワークを介してアクセスされる）に提供してもよい。
【００２１】
ＧＮＳＳモジュール２１４は、ＧＮＳＳ測位を使用して、コンピューティングデバイス１０２の位置を判定する。コンピューティングデバイスの位置のこの判定は、ＧＮＳＳモジュール２１４が信号を受信できる元である、あるいはＧＮＳＳモジュール２１４が通信できる特定数の衛星（例えば、４以上の衛星）に基づく。ＧＮＳＳモジュール２１４は、多種多様な技術を用いてＧＮＳＳ機能を実装することができる。そのような技術は、全地球測位システム（ＧＰＳ）、全地球航法衛星システム（ＧＬＯＮＡＳＳ）、北斗航法システム（又はコンパス航法システム）、ガリレオ測位システム、これらの組合せ等を含むが、これらに限定されるものではない。ＧＮＳＳモジュール２１４は、ＧＮＳＳモジュール２１４が任意の特定の所与の時間において信号を受信できる元である、あるいはＧＮＳＳモジュール２１４が任意の特定の所与の時間において通信できる１以上の衛星を所与として、その特定の所与の時間におけるコンピューティングデバイスの位置を判定するために、様々な公開方式（public  manner）及び／又は専用方式（proprietary  manner）のうちのいずれかの方式で動作する。
【００２２】
ネットワークアドレスモジュール２１６は、ネットワークアドレス測位を使用して、コンピューティングデバイス１０２の位置を判定する。使用されるネットワークアドレスは、コンピューティングデバイス１０２のＩＰアドレス等、様々なネットワークアドレスのうちの任意のネットワークアドレスとすることができる。ネットワークアドレスモジュール２１６は、任意の特定の時間におけるコンピューティングデバイスに割り当てられたＩＰアドレスを所与として、その特定の所与の時間におけるコンピューティングデバイスの位置を判定するために、ＩＰアドレス又はアドレス範囲、及び対応する位置のレコードを保持することができる、あるいは、それらにアクセスすることができる。代替的に、ネットワークアドレスモジュール２１６は、特定の所与の時間におけるコンピューティングデバイスのＩＰアドレスのインジケーションを、その特定の所与の時間におけるコンピューティングデバイスの位置を判定して、その位置のインジケーションをネットワークアドレスモジュール２１６に返すリモートサービス（例えば、多種多様なタイプのネットワークのうちのいずれかのネットワークを介してアクセスされる）に提供してもよい。
【００２３】
セルラモジュール２１８は、セルラ測位を使用して、コンピューティングデバイス１０２の位置を判定する。セルラモジュール２１８は、様々なセルトランシーバから、信号が受信される元である特定のセルトランシーバの識別子（例えば、セルタワー識別子又はトランシーバ識別子）を含む信号を受信することができる。セルラモジュール２１８はまた、そのような受信信号の強度を測定することができる。セルラモジュール２１８は、コンピューティングデバイスの任意の所与の位置に関して任意の所与の時間に、複数のセルトランシーバから信号を受信できることに留意すべきである。セルラモジュール２１８は、信号が受信される元であるセルトランシーバと、任意の特定の時間におけるその信号の強度と、を所与として、その特定の所与の時間におけるコンピューティングデバイスの位置を判定するために、セルトランシーバ、信号強度、及び対応する位置のレコードを保持することができる、あるいは、それらにアクセスすることができる。代替的に、セルラモジュール２１８は、信号が受信される元であるトランシーバと、特定の所与の時間におけるその信号の強度と、のインジケーションを、その特定の所与の時間におけるコンピューティングデバイスの位置を判定して、その位置のインジケーションをセルラモジュール２１８に返すリモートサービス（例えば、多種多様なタイプのネットワークのうちのいずれかのネットワークを介してアクセスされる）に提供してもよい。追加的又は代替的に、セルラモジュール２１８は、低電力で状態変化をモニタリングして、通知を（例えば、ジオフェンスイベント検出モジュール２０６に）提供してもよく、これは、継続的なポーリングを要することなく、低電力での動き検出を可能にする。
【００２４】
位置判定モジュール２０２により判定される位置は、通常、緯度座標及び経度座標であるが、位置は、他の方法により、代替的に指定されてもよい。位置判定モジュール２０２の各々は、判定する位置の関連付けられた不確定性（位置の精度誤差又は推定精度誤差とも呼ばれる）を有する。この不確定性の程度は、例えば、位置判定モジュール自体によりレポートされる、システム２００の他のモジュール（例えば、ジオフェンスイベント検出モジュール２０６）において予め設定される、あるいはシステム２００の他のモジュール（例えば、ジオフェンスイベント検出モジュール２０６）によりアクセス可能である等、様々な方法により判定することができる。この不確定性は、位置判定モジュールにより判定された位置に関する位置不確定領域をもたらす。位置不確定領域は、コンピューティングデバイス１０２が、判定された位置に関して実際に存在するであろう領域である。１以上の実施形態において、位置不確定領域は、略円形領域であり、位置判定モジュールにより判定された位置が、その略円形領域の略中心であり、その略円形領域の半径が、位置判定モジュールに関する不確定性として判定された誤差半径である。代替的に、位置不確定領域は、様々な他の標準的幾何学形状又は他の幾何学形状を用いて表されてもよい。したがって、位置判定モジュールに関する位置不確定領域は、空間的誤差分布関数（spatial  error  distribution  function）であり得る。空間的誤差分布関数の近似は、領域にわたる一様分布（flat  distribution）とすることができるが、空間的誤差分布関数の様々な他の近似又は表現が、代替的に使用されてもよい。
【００２５】
ジオフェンス判別モジュール２０４は、データ記憶部２１０において特定されるジオフェンスのうち、ジオフェンスがトリガされるかどうかに関する判定がなされるべき１以上のジオフェンスを判別する。多数の異なるジオフェンスに関するデータが、データ記憶部２１０に保持され得、それらジオフェンスのうちの１以上のジオフェンスが、ジオフェンス判別モジュール２０４により選択される。ジオフェンス判別モジュール２０４は、以下でより詳細に説明するように、ジオフェンスとコンピューティングデバイスとの間の現在距離に基づいて、ジオフェンスのサイズ（ジオフェンスにより包含される領域のサイズ）に基づいて、どのジオフェンスが最も厳格である（stringent）か（あるいは、ほぼ最も厳格であるか）に基づいて等、多種多様な方法によりこの判別を行うことができる。ジオフェンス判別モジュール２０４により判別される１以上のジオフェンスは、コンピューティングデバイスの現在位置等の様々な基準に基づいてコンピューティングデバイスが入った又は出た可能性がより高いとみなされるジオフェンスであり、それら１以上のジオフェンスは、基準が変わるまで、ジオフェンス判別モジュール２０４の焦点（focus）であり得る。しかしながら、ジオフェンス判別モジュール２０４は、データ記憶部２１０内のジオフェンスのうちの任意のジオフェンスに関してジオフェンスがトリガされるかどうかを判定できることに留意すべきである。
【００２６】
ジオフェンスイベント検出モジュール２０６は、定期間隔又は不定期間隔でコンピューティングデバイスの現在位置を取得し、ジオフェンスイベントが発生したかどうかを検出する。この間隔は、現在の状態（例えば、最も近いジオフェンスまでのおおよその距離、コンピューティングデバイスの電力バジェット（power  budget）、コンピューティングデバイスの移動の推定速度等）に基づいて、動的に選択され得る。ジオフェンスイベントは、デバイスがジオフェンスに入ったこと、デバイスがジオフェンスから出たこと、又は、デバイスが特定の時間量の間ジオフェンス内に留まっていること（例えば、ジオフェンス内に存在していてジオフェンスから出ていないこと）を指す。ジオフェンスイベント検出モジュール２０６は、コンピューティングデバイスがジオフェンス内に存在するかジオフェンス外に存在するかを判定するために、ジオフェンスのサイズに対する、判定された位置に関連付けられた不確定性を評価する。ジオフェンスイベント検出モジュール２０６はまた、コンピューティングデバイスがジオフェンス内に存在するかジオフェンス外に存在するかを経時的に追跡するので、コンピューティングデバイスがジオフェンス内からジオフェンス外に移動したかどうか、コンピューティングデバイスがジオフェンス外からジオフェンス内に移動したかどうか、コンピューティングデバイスがジオフェンス内に存在していた時間量等を認識している。
【００２７】
ジオフェンストリガモジュール２０８は、ジオフェンスがトリガされるために満たされるべき基準を分析し、基準が満たされたかどうかを判定する。この判定は、ジオフェンスイベント検出モジュール２０６により判定された１以上のジオフェンスイベントの発生に少なくとも部分的に基づいてなされる。基準が満たされたことに応じて、ジオフェンストリガモジュール２０８は、ジオフェンスがトリガされることを決定し、適切なアクションを行う。行われるアクションは、データ記憶部２１０に記憶される、トリガされるジオフェンスに関するジオフェンスデータに関連付けられてもよいし、ジオフェンストリガモジュール２０８において予め設定される、別のモジュール又はデバイスから取得される等、他の方法により決定されてもよい。
【００２８】
１以上の実施形態において、ジオフェンスがトリガされたことに応じてジオフェンストリガモジュール２０８により行われるアクションは、１以上のプログラム２３０に通知することである。１以上のプログラム２３０は、アプリケーション、オペレーティングシステムモジュール又はコンポーネント等といった多種多様なタイプのプログラムを含み得る。通知すべき１以上のプログラム２３０は、ジオフェンストリガモジュール２０８において設定される、データ記憶部２１０内のジオフェンスに関するジオフェンスデータの一部として特定される、別のモジュール又はサービスから取得される等、様々な方法により特定することができる。プログラム２３０には、発生したジオフェンスイベントに加えて、任意的にさらなる情報（例えば、コンピューティングデバイスが、少なくとも閾時間量の間ジオフェンス内に存在していたこと）が通知され得る。次いで、プログラム２３０は、ジオフェンスがトリガされたことに基づいて、プログラム２３０が所望するアクションを行うことができる。
【００２９】
モジュール２０４〜２０８は、位置判定モジュール２０２から分離されたモジュールとして図示されているが、モジュール２０４〜２０８のうちの１以上のモジュールは、代替的に、位置判定モジュール２０２のうちの１つの位置判定モジュール内に少なくとも部分的に実装されてもよいことに留意すべきである。例えば、モジュール２０４〜２０８のうちの１以上のモジュールの少なくとも一部は、ＧＮＳＳモジュール２１４又はＷｉ−Ｆｉ（登録商標）モジュール２１２のハードウェアコンポーネント内に実装されてもよい。
【００３０】
複数の実施形態において、位置を判定するためのユーザ承諾を受信した後にのみ、位置が位置判定モジュール２０２により判定される。このユーザ承諾は、オプトイン承諾（opt-in  consent）であり得、この場合、ユーザは、位置が判定される前に、位置が位置判定モジュール２０２により判定されることを要求する肯定的アクション（affirmative  action）を行う。あるいは、このユーザ承諾は、オプトアウト承諾（opt-out  consent）であってもよく、この場合、ユーザは、位置が位置判定モジュール２０２により判定されるべきではないことを要求する肯定的アクションを行う。ユーザが、位置の判定を拒否することを選択しなかった場合、それは、ユーザの位置を判定することに対するユーザによる暗黙的承諾である。さらに、位置判定モジュール２０２により判定された位置は、判定された位置を受信するコンピューティングデバイス（例えば、図１のコンピューティングデバイス１０２）内に保持され得、他のデバイス又はサービスに通信される必要はない。
【００３１】
代替的に、ユーザ承諾は、特定のプログラムに対しては許可されて、他のプログラムに対しては無効にされてもよい。この場合、ユーザが、ジオフェンス追跡が使用される少なくとも１つのプログラムに対して承諾したときのみ、位置情報が判定されることになる。位置情報は、承諾されたプログラムに属するジオフェンスのみに関するエントリ及び／又はイグジットを判定するために使用される。許可されていないプログラムからの残りのジオフェンスは追跡されない。
【００３２】
図３は、１以上の実施形態に従った、位置が判定されるべきであるかどうかをユーザが選択することを可能にするためにユーザに対して表示され得る例示的なユーザインタフェースを示している。なぜ位置情報が判定されるかをユーザに説明する記載３０２を含む位置コントロールウインドウ３００が表示される。プライバシに関する声明へのリンク３０４も表示される。ユーザがリンク３０４を選択した場合、システム２００のプライバシに関する声明が表示され、ユーザの情報がどのように機密のまま保たれるかがユーザに説明される。
【００３３】
さらに、ユーザは、位置情報の判定を許可するためのラジオボタン３０６又は位置情報の判定を拒否するためのラジオボタン３０８を選択することができる。ラジオボタン３０６又は３０８が選択されると、ユーザは、その選択を保存するための「ＯＫ」ボタン３１０を選択することができる。これらラジオボタン及び「ＯＫ」ボタンは、位置情報の判定を許可又は拒否するためにユーザに対して提示され得るユーザインタフェースの例に過ぎず、様々な他の従来のユーザインタフェース技術が代替的に使用されてもよいことを理解すべきである。その後、図２のシステム２００は、ユーザの選択に従って、コンピューティングデバイスの位置を判定することに進むか、あるいは、コンピューティングデバイスの位置を判定しない。
【００３４】
図４は、１以上の実施形態に従った、変化する信頼度レベルを用いてジオフェンスイベントを検出するための例示的なプロセス４００を示すフローチャートである。プロセス４００は、図２のシステム２００等のシステムにより実行される。プロセス４００は、ソフトウェア、ファームウェア、ハードウェア、又はこれらの組合せにより実装することができる。プロセス４００が、一連の動作として示されているが、プロセス４００は、様々な動作のオペレーションを実行するために、図示される順番に限定されるものではない。プロセス４００は、変化する信頼度レベルを用いてジオフェンスイベントを検出するための例示的なプロセスである。変化する信頼度レベルを用いてジオフェンスイベントを検出することについての異なる図を参照するさらなる説明が、本明細書に含まれる。
【００３５】
プロセス４００において、ジオフェンス及びジオフェンスのサイズが特定される（動作４０２）。特定されるジオフェンスは、図２のジオフェンス判別モジュール２０４により選択されたジオフェンスである。ジオフェンスのサイズは、ジオフェンスにより包含される面積（ジオフェンスの境界内の面積）であり、多種多様な方法のうちのいずれかの方法により特定することができる。例えば、ジオフェンスのサイズは、ジオフェンスデータの一部として、図２のデータ記憶部２１０に記憶されてもよいし、ジオフェンスのサイズは、データ記憶部２１０内のジオフェンスデータに含まれるジオフェンス領域の説明に基づいて、動作４０２において決定されてもよい、等である。ジオフェンスのサイズ及びジオフェンスの境界の形状を所与として、ジオフェンスと、コンピューティングデバイスの位置に関する位置不確定領域と、の重なり合い等、様々な値を容易に求めることができる。
【００３６】
位置判定モジュールに関する現在の位置不確定領域及び現在の位置不確定領域のサイズが特定される（動作４０４）。位置不確定領域は、上述したように、異なる形状、関数等を用いて、様々な形で表すことができる。動作４０４における位置判定モジュールは、ジオフェンス（動作４０２においてサイズが特定されたジオフェンス）に関するジオフェンスイベントを判定する目的のためにコンピューティングデバイスの位置を提供する位置判定モジュールである。位置不確定領域は、上述したように、様々な方法により判定された、位置判定モジュールの不確定性に基づいて特定することができる。位置不確定領域のサイズは、位置不確定領域により包含される面積を指し、多種多様な方法のうちのいずれかの方法により特定することができる。例えば、位置不確定領域のサイズは、位置判定モジュールにより提供されてもよいし、位置不確定領域のサイズは、位置不確定領域の説明に基づいて、動作４０２において決定されてもよい、等である。
【００３７】
ジオフェンスイベントが、ジオフェンスのサイズ及び位置不確定領域のサイズに少なくとも部分的に基づいて変化する信頼度レベルに基づいて判定される（動作４０６）。信頼度レベルは、様々な形をとることができる。例えば、信頼度レベルは、（例えば、図５を参照して以下で説明するように）位置不確定領域に対するジオフェンス領域の比率に基づく閾信頼度値とすることができる。別の例として、信頼度レベルは、（例えば、図９を参照して以下で説明するように）ジオフェンス領域に関して位置判定モジュールの精度においてどれくらいの誤差を許容できるか、とすることもでき、したがって、コンピューティングデバイスがジオフェンス内に存在するかジオフェンス外に存在するかの判定においてどれくらいの信頼度が存在するか、とすることができる。
【００３８】
図５は、１以上の実施形態に従った、変化する信頼度レベルを用いてジオフェンスイベントを検出するための例示的なプロセス５００を示すフローチャートである。プロセス５００において、信頼度レベルは、現在の位置不確定領域に対するジオフェンス領域の比率に基づいて変化する閾信頼度値である。この比率が増すにつれ、閾信頼度値も増し、この比率が下がるにつれ、閾信頼度値も下がる。
【００３９】
プロセス５００は、図２のシステム２００等のシステムにより実行される。プロセス５００は、ソフトウェア、ファームウェア、ハードウェア、又はこれらの組合せにより実装することができる。プロセス５００が、一連の動作として示されているが、プロセス５００は、様々な動作のオペレーションを実行するために、図示される順番に限定されるものではない。プロセス５００は、変化する信頼度レベルを用いてジオフェンスイベントを検出するための例示的なプロセスである。変化する信頼度レベルを用いてジオフェンスイベントを検出することについての異なる図を参照するさらなる説明が、本明細書に含まれる。
【００４０】
許容可能な信頼度値、位置に関する信頼度値、及び閾信頼度値等といった様々な信頼度値が、本明細書に記載される。信頼度値は、コンピューティングデバイスの位置に関する位置不確定領域とジオフェンスとの重なり合っている領域の面積と、コンピューティングデバイスの位置に関する位置不確定領域の面積と、に基づいて生成される。例えば、信頼度値Ｃは、以下の式を用いて計算することができる：
【数１】
0006309089.tif 000002
ここで、Ａｏｖｅｒｌａｐは、コンピューティングデバイスの位置に関する位置不確定領域とジオフェンスとの重なり合っている領域の面積を指し、Ａｌｏｃａｔｉｏｎは、コンピューティングデバイスの位置に関する位置不確定領域の面積を指す。
【００４１】
プロセス５００において、ジオフェンス及びジオフェンスのサイズが特定される（動作５０２）。特定されるジオフェンスは、ジオフェンス判別モジュールにより選択されたジオフェンスであり、ジオフェンスのサイズは、図４の動作４０２に関して上述したものと同様の様々な方法により決定することができる。
【００４２】
使用する位置判定モジュールが選択される（動作５０４）。位置判定モジュールは、位置判定モジュールが、動作５０４において選択されるために提供することができる信頼度レベルである許容可能な信頼度レベルに基づいて選択される。許容可能な信頼度レベルは、図２のシステム２００の設計者により経験的に決定される等、様々な方法により決定することができる。許容可能な信頼度レベルは、任意的に、システム２００のユーザ又は管理者、ジオフェンスの作成者（例えば、ジオフェンスに関するジオフェンスデータにおいて許容可能な信頼度レベルを特定する）等により、変更されてもよい。１以上の実施形態において、許容可能な信頼度レベルは１％であるが、この許容可能な信頼度レベルは一例であり、他の許容可能な信頼度レベルが代替的に使用されてもよい。
【００４３】
特定の位置判定モジュールが許容可能な信頼度レベルを提供できるかどうかは、ジオフェンスのサイズと、位置判定モジュールにより提供された位置に関する位置不確定領域のサイズと、を所与として、容易に判定することができる。例えば、上記の式（１）を用いて、位置判定モジュールにより提供された位置に関する位置不確定領域とジオフェンスとの可能な最大の重なり合いを仮定し、１％の許容可能な信頼度レベルを仮定すると、ジオフェンス領域が１ｍ２であり、位置判定モジュールが、位置に関する１００ｍ２の位置不確定領域を提供する場合、位置判定モジュールにより提供される信頼度レベルは１％である：
【数２】
0006309089.tif 000003
したがって、位置判定モジュールは、１％という例示的な許容可能な信頼度レベルを提供する。別の例として、ジオフェンス領域が１ｍ２であり、位置判定モジュールが、位置に関する４００００００ｍ２の位置不確定領域を提供する場合、位置判定モジュールにより提供される信頼度レベルは０．００００００２５％である：
【数３】
0006309089.tif 000004
したがって、位置判定モジュールは、１％という例示的な許容可能な信頼度レベルを提供しない。
【００４４】
したがって、システム２００は、位置判定モジュールにより提供される許容可能な信頼度レベルと、ジオフェンスのサイズと、に基づいて、位置判定モジュールを動的に切り替えることができる。１つの位置判定モジュールが、許容可能な信頼度レベルを提供する場合、その１つの位置判定モジュールが、動作５０４において選択される。一方、複数の位置判定モジュールが許容可能な信頼度レベルを提供する状況においては、それら複数の位置判定モジュールのうちの１つの位置判定モジュールが選択される。そのような状況において複数の位置判定モジュールのうちのどの位置判定モジュールが選択されるかは、動作時に最小電力量を消費する位置判定モジュール、最短の時間で位置を提供する位置判定モジュール等といった様々なファクタに基づいて、様々な方法により決定することができる。
【００４５】
位置判定モジュールに関する位置不確定領域及び位置不確定領域のサイズが特定される（動作５０６）。動作５０６における位置判定モジュールは、動作５０４において選択された位置判定モジュールである。位置不確定領域は、上述したように、様々な方法により判定された、位置判定モジュールの不確定性すなわち精度に基づいて、特定することができる。位置不確定領域のサイズは、位置不確定領域により包含される面積を指し、多種多様な方法のうちのいずれかの方法により特定することができる。例えば、位置不確定領域のサイズは、位置判定モジュールにより提供されてもよいし、位置不確定領域のサイズは、位置不確定領域の説明に基づいて、動作５０６において決定されてもよい、等である。
【００４６】
ジオフェンスに到達したかどうか（コンピューティングデバイスがジオフェンスに入ったかどうか）を示す信頼度値が求められる（動作５０８）。このジオフェンス到達状態（geo-fence  breach  condition）に関する信頼度値は、コンピューティングデバイスの判定された位置に関する位置不確定領域とジオフェンスとの実際の重なり合いに依拠する上記の式（１）を用いて求めることができる。
【００４７】
図６及び図７は、１以上の実施形態に従った、重なり合っている位置不確定領域及びジオフェンスの例を示している。図６は、例示的なジオフェンス６０２と、判定された位置６０６に関する例示的な位置不確定領域６０４と、を示している。位置不確定領域６０４とジオフェンス６０２との実際の重なり合いが、クロスハッチングにより示されている。図７は、例示的なジオフェンス７０２と、判定された位置７０６に関する例示的な位置不確定領域７０４と、を示している。位置不確定領域７０４とジオフェンス７０２との実際の重なり合いが、クロスハッチングにより示されている。
【００４８】
図５に戻ると、位置不確定領域のサイズとジオフェンスのサイズとの比率に応じて変化する閾信頼度値が求められる（動作５１０）。したがって、閾信頼度値は、位置不確定領域のサイズとジオフェンスのサイズとに基づいて変化する。例えば、位置不確定領域のサイズに対するジオフェンスのサイズの比率が増すにつれ、閾信頼度値も増す。したがって、ジオフェンス領域が位置不確定領域よりも大きくなればなるほど、閾信頼度値が高くなる。
【００４９】
１以上の実施形態において、閾信頼度値は、（動作５０６において特定された）位置不確定領域のサイズに対する（動作５０２において特定された）ジオフェンス領域のサイズの比率に基づいて生成される。例えば、比率値αは、以下の式を用いて計算することができる：
【数４】
0006309089.tif 000005
ここで、Ａｆｅｎｃｅは、ジオフェンスの面積を指し、Ａｌｏｃａｔｉｏｎは、コンピューティングデバイスの位置に関する位置不確定領域の面積を指す。
【００５０】
閾信頼度値は、比率値αに基づいて、様々な方法により求めることができる。例えば、異なる比率値αが、異なるジオフェンス領域及び位置不確定領域に関して求められ得る。求められた比率値α及び想定される閾信頼度レベルを使用して、求められた比率値αと想定される閾信頼度レベルとの間の関係を表す式を生成することができる。想定される閾信頼度レベルは、システム２００の開発者により経験的に決定される等、多種多様な方法により決定することができる。
【００５１】
表Ｉは、様々な比率値αに対する想定される閾信頼度レベルの例を示している。表Ｉにおける想定される閾信頼度レベルは例であり、他の値が代替的に使用されてもよいことに留意すべきである。表Ｉにおいて、「検出可能でない」という信頼度レベルは、対応する比率値αに関してジオフェンスイベントが検出可能でないことを指す。
【表１】
0006309089.tif 000006
【００５２】
求められた比率値α及び想定される閾信頼度レベルを所与として、多種多様な方法のうちのいずれかの方法により、求められた比率値αと想定される閾信頼度レベルとの間の関係を表す式を生成することができる。例えば、求められた比率値α及び対応する想定される閾信頼度レベルをグラフ上にプロットして、近似回帰直線（approximately  best  fit  line）を求めることができる。求められた直線に関する式が、求められた比率値αと想定される閾信頼度レベルとの間の関係を表す式である。
【００５３】
１以上の実施形態において、求められた比率値αと想定される閾信頼度レベルとの間の関係を表す式は、以下の形を有する：
【数５】
0006309089.tif 000007
ここで、Ｃｔｈｒｅｓｈｏｌｄは閾信頼度値であり、Ｍは係数値であり、ｎは指数値である。様々な異なる係数値Ｍ及び指数値ｎが使用され得る。例えば、係数値Ｍは３０．７０４とすることができ、指数値ｎは０．５３７１とすることができる。しかしながら、これらは値の例であり、他の係数値及び指数値が代替的に使用されてもよいことに留意すべきである。
【００５４】
図８は、１以上の実施形態に従った、ジオフェンス半径（テーブル８００の行）及び異なる位置判定モジュール（テーブル８００の列）を所与として実現され得る例示的な信頼度（例えば、おおよその最大信頼度）を示す例示的なテーブル８００を示している。テーブル８００は値の例であり、他の閾値、ジオフェンスサイズ、及び／又は位置不確定領域が、代替的に使用されてもよいことに留意すべきである。テーブル８００の各行は、略円形領域内に含まれ得る特定のジオフェンスであって、テーブル８００において特定される半径を有する特定のジオフェンスに関するものである。特定のジオフェンスの例も示されている。テーブル８００の各列は、略円形領域である特定の位置不確定領域であって、テーブル８００において特定される半径を有する特定の位置不確定領域に関するものである。特定の位置不確定領域に関する位置ソース（位置を判定する異なる位置判定モジュール又は異なる技術）の例も示されている。
【００５５】
例えば、テーブル８００は、１０ｍの半径（したがって、π１０２＝３１４．１５９ｍ２の面積）を有するジオフェンスと、５０ｍの半径（したがって、π５０２＝７８５３．９８２ｍ２の面積）を有する位置不確定領域を伴う位置判定モジュールと、に関して実現され得る信頼度値が５．４５であることを示している。テーブル８００内の「Ｎ／Ａ」という値は、そのジオフェンスに関して位置判定モジュールは許容可能な信頼度値を満たすことができないことを示す。
【００５６】
図５に戻ると、ジオフェンスに到達したかどうかを示す動作５０８において求められた信頼度値と、動作５１０において求められた閾信頼度値と、を所与として、求められた信頼度値が、閾信頼度値を満たすかどうかに関するチェックがなされる（動作５１２）。例えば、求められた信頼度値が閾信頼度値以上であるとき、求められた信頼度値は、閾信頼度値を満たす。代替的に、求められる信頼度値及び閾信頼度値は、負数として、あるいは、別の基本数（base  number）から減算される等、他の形で実装されてもよく、そのような場合、求められた信頼度値が閾信頼度値以下であるとき、求められた信頼度値は、閾信頼度値を満たす。
【００５７】
求められた信頼度値が、閾信頼度値を満たす場合、位置判定モジュールにより提供された位置は、ジオフェンス内に存在すると判定される（動作５１４）。一方、求められた信頼度値が、閾信頼度値を満たさない場合、位置判定モジュールにより提供された位置は、ジオフェンスエントリイベントの検出をもたらさない（動作５１６）。
【００５８】
求められた信頼度値が、閾信頼度値を満たさない場合、ジオフェンスイグジットイベント、特定の時間量の間ジオフェンス内に留まっているというイベント等といった他のジオフェンスイベントが検出され得ることに留意すべきである。代替的に、位置判定モジュールにより提供された位置は、他の基準が満たされない限り、他のジオフェンスイベントをもたらさなくてもよい。例えば、ジオフェンスイグジットイベントは、求められた信頼度値が約０％になるまで（例えば、コンピューティングデバイスの判定された位置に関する位置不確定領域とジオフェンスとの重なり合いが実質的に存在しなくなるまで）、検出されなくてもよい。別の例として、ジオフェンス内に留まっているというイベントは、ジオフェンスに関するジオフェンスエントリイベントが検出され、ジオフェンスに関するジオフェンスイグジットイベントが検出されることなく少なくとも閾時間量が経過するまで、検出されなくてもよい。
【００５９】
図９は、１以上の実施形態に従った、変化する信頼度レベルを用いてジオフェンスイベントを検出するための例示的なプロセス９００を示すフローチャートである。プロセス９００において、信頼度レベルは、ジオフェンス領域に関して位置判定モジュールの精度においてどれくらいの誤差を許容できるか（したがって、コンピューティングデバイスがジオフェンス内に存在するかジオフェンス外に存在するかの判定においてどれくらいの信頼度が存在するか）である。ジオフェンスのサイズが大きくなるにつれ、位置判定モジュールの精度の許容可能な誤差量も大きくなり得る（許容可能な現在の位置不確定領域も大きくなり得る）。これにより、それほど精度が高くない位置判定モジュールを使用することが可能である。ジオフェンスのサイズが小さくなるにつれ、位置判定モジュールの精度の許容可能な誤差量も小さくなり得る（許容可能な現在の位置不確定領域も小さくなり得る）ので、より精度の高い位置判定モジュールが使用される。
【００６０】
プロセス９００は、図２のシステム２００等のシステムにより実行される。プロセス９００は、ソフトウェア、ファームウェア、ハードウェア、又はこれらの組合せにより実装することができる。プロセス９００が、一連の動作として示されているが、プロセス９００は、様々な動作のオペレーションを実行するために、図示される順番に限定されるものではない。プロセス９００は、変化する信頼度レベルを用いてジオフェンスイベントを検出するための例示的なプロセスである。変化する信頼度レベルを用いてジオフェンスイベントを検出することについての異なる図を参照するさらなる説明が、本明細書に含まれる。
【００６１】
プロセス９００において、ジオフェンス及びジオフェンスのサイズが特定される（動作９０２）。特定されるジオフェンスは、ジオフェンス判別モジュールにより選択されたジオフェンスであり、ジオフェンスのサイズは、図４の動作４０２に関して上述したものと同様の様々な方法により決定することができる。
【００６２】
ジオフェンスのサイズを所与として、所望される位置精度が特定される（動作９０４）。この所望される位置精度は、式、テーブル等、多種多様な方法により特定することができる。この所望される位置精度はまた、以下でより詳細に説明するように、ジオフェンスの近接度にも基づいてもよい。１以上の実施形態において、システム２００は、異なるジオフェンスサイズに関する所望される位置精度を示す所望位置精度テーブルを有するよう、あるいは、そのような所望位置精度テーブルにアクセスするよう構成される。所望位置精度テーブルには、システム２００の設計者により経験的に行われる等、様々な方法により、異なるジオフェンスサイズに関する所望される位置精度を投入することができる。
【００６３】
図１０は、１以上の実施形態に従った、異なるジオフェンスサイズに関する所望される位置精度（例えば、おおよその最小位置精度）を示す例示的なテーブル１０００を示している。テーブル１０００の各行は、略円形領域である特定のジオフェンスであって、テーブル１０００において特定される半径を有する特定のジオフェンスに関するものである。テーブル１０００の列１００２は、特定のジオフェンスの例を示している。テーブル１０００の列１００４は、ジオフェンスに関する例示的な所望される精度（例えば、おおよその最小位置精度）を示している。例えば、テーブル１０００は、≦５０ｍである範囲の半径を有するジオフェンスに関して、所望される位置精度がジオフェンス半径の２倍であることを示している。
【００６４】
テーブル１０００は、特定の半径の略円形領域であるジオフェンスと、位置に関する略円形位置不確定領域の半径の観点での所望される精度と、を示している。これらは例であり、ジオフェンス及び／又は所望される精度は、他の形状に関して（例えば、半径ではない領域として）、他の方法により特定されてもよいことに留意すべきである。
【００６５】
テーブル１０００において、特定の値が例示されているが、他の値が代替的に使用されてもよいことに留意すべきである。例えば、個々の値ではなく、比例値（proportional  value）が使用されてもよい。例えば、ジオフェンス半径が５００ｍであり、所望される精度が５００ｍである場合、２５０ｍの半径を有するジオフェンスに関する所望される精度は２５０ｍとすることができ、１２５ｍの半径を有するジオフェンスに関する所望される精度は１２５ｍとすることができる、等である。
【００６６】
図９に戻ると、使用する位置判定モジュールが、特定された所望される位置精度に基づいて選択される（動作９０６）。上述したように、異なる位置判定技術は、それぞれの精度において異なる関連付けられた不確定性を有し得る。所望される位置精度を所与として、その所望される位置精度を提供する位置判定モジュールを容易に特定することができる（例えば、所望される位置精度より低い関連付けられた不確定性（例えば、誤差半径）を有する位置判定モジュール）。１つの位置判定モジュールが、所望される位置精度を提供する場合、その１つの位置判定モジュールが、動作９０６において選択される。一方、複数の位置判定モジュールが所望される位置精度を提供する状況においては、それら複数の位置判定モジュールのうちの１つの位置判定モジュールが選択される。複数の位置判定モジュールのうちのどの位置判定モジュールが選択されるかは、動作時に最小電力量を消費する位置判定モジュール、最短の時間で位置を提供する位置判定モジュール等、様々な方法により決定することができる。
【００６７】
位置判定モジュールに関する位置不確定領域が特定される（動作９０８）。動作９０８における位置判定モジュールは、動作９０６において選択された位置判定モジュールである。位置不確定領域は、上述したように、様々な方法により判定された、位置判定モジュールの不確定性に基づいて特定することができる。
【００６８】
位置判定モジュールに関する位置不確定領域が許容可能であるかどうかに関するチェックがなされる（動作９１０）。位置不確定領域が許容可能であるかどうかは、式、テーブル等、多種多様な方法により判定することができる。１以上の実施形態において、システム２００は、異なるジオフェンスサイズに関する許容可能な不確定性を示す許容可能不確定性テーブルを有するよう、あるいは、そのような許容可能不確定性テーブルにアクセスするよう構成される。許容可能不確定性テーブルには、システム２００の設計者により経験的に行われる等、様々な方法により、異なるジオフェンスサイズに関する許容可能な不確定性を投入することができる。
【００６９】
１以上の実施形態において、許容可能不確定性テーブルは、図１０のテーブル１０００の一部とし含まれる。テーブル１０００において、許容可能な不確定性が、位置に関する略円形位置不確定領域の半径の観点で、列１００６として示されている。これらは例であり、許容可能な誤差は、他の形状に関して（例えば、半径ではない領域として）、他の方法により特定されてもよいことに留意すべきである。
【００７０】
位置判定モジュールから取得された位置不確定領域が許容可能でない場合、ジオフェンスはトリガされない（動作９１２）。プロセス９００は終了してもよいし、動作９０６に戻って、使用する異なる位置判定モジュール（例えば、前に選択された位置判定モジュールよりも高精度の位置判定モジュール）を選択することを試みてもよい。
【００７１】
一方、位置判定モジュールに関する位置不確定領域が許容可能である場合、位置に関する位置不確定領域を使用して、位置がジオフェンス内に存在するかジオフェンス外に存在するかを判定する。位置が以前にはジオフェンス外に存在した、したがって、ジオフェンスイベントがジオフェンスに入ったことである場合、位置不確定領域の略中心を使用して、コンピューティングデバイスの位置がジオフェンス内に存在するかジオフェンス外に存在するかを判定する（動作９１４）。位置不確定領域の略中心がジオフェンス内に存在する場合、位置はジオフェンス内に存在すると判定され、位置不確定領域の略中心がジオフェンス内に存在しない場合、位置はジオフェンス外に存在すると判定される。
【００７２】
位置が以前にはジオフェンス内に存在した、したがって、検出されるジオフェンスイベントがジオフェンスから出たことである（あるいは、特定の時間量の間ジオフェンス内に留まっていることである）場合、位置不確定領域の実質的に全てを使用して、コンピューティングデバイスの位置がジオフェンス内に存在するかジオフェンス外に存在するかを判定する（動作９１６）。位置不確定領域の実質的に全てがジオフェンス外に存在する場合、位置はジオフェンス外に存在すると判定され、位置不確定領域の実質的に全てがジオフェンス外に存在しない場合、位置はジオフェンス内に存在するとして変化のないままである。
【００７３】
動作９１４については、現在の位置不確定領域の略中心がジオフェンス内に存在することに言及して説明し、動作９１６については、位置不確定領域の実質的に全てがジオフェンス外に存在することに言及して説明したが、位置不確定領域の異なる部分が使用されてもよいことに留意すべきである。例えば、動作９１４において、位置不確定領域の実質的に全て又は位置不確定領域の一部のみを使用して、コンピューティングデバイスがジオフェンス内に存在するかどうかを判定してもよい。別の例として、動作９１６において、位置不確定領域の略中心又は位置不確定領域の別の部分を使用して、コンピューティングデバイスがジオフェンス外に存在するかどうかを判定してもよい。
【００７４】
テーブル１０００において、ジオフェンスに関する所望される精度の列１００４及び許容可能な不確定性の列１００６が示されていることにも留意すべきである。ジオフェンスから出たこと及びジオフェンスに入ったことの両方を判定するために、同じ所望される精度及び許容可能な不確定性が使用され得る。代替的に、ジオフェンスから出た場合とジオフェンスに入った場合とで、異なる所望される精度及び許容可能な不確定性が使用されてもよい。例えば、列１００４は、ジオフェンスに入ったことを判定する場合のジオフェンスに関する所望される精度とし、テーブル１０００は、ジオフェンスから出たことを判定する場合のジオフェンスに関する所望される精度の追加の列を含んでもよい。ジオフェンスから出たことを判定する場合のジオフェンスに関する所望される精度は、列１００４に列挙されている値の２倍（例えば、≦３５ｍの範囲の半径を有するジオフェンスから出たことを判定することに関して、所望される精度は、７０ｍ×２＝１４０ｍとすることができる）等、様々な値とすることができる。別の例として、列１００６は、ジオフェンスに入ったことを判定する場合のジオフェンスに関する許容可能な不確定性とし、テーブル１０００は、ジオフェンスから出たことを判定する場合のジオフェンスに関する許容可能な不確定性の追加の列を含んでもよい。ジオフェンスから出たことを判定する場合のジオフェンスに関する許容可能な不確定性は、列１００６に列挙されている値の２倍（例えば、≦５０ｍの範囲の半径を有するジオフェンスから出たことを判定することに関して、許容可能な不確定性は、１５０ｍ×２＝３００ｍとすることができる）等、様々な値とすることができる。
【００７５】
再度動作９０４を参照すると、複数の異なるジオフェンスがコンピューティングデバイスの近くにある（例えば、複数の異なるジオフェンスが図２のジオフェンス判別モジュール２０４により選択される）状況が生じることがある。そのような状況において、それら複数のジオフェンスのうちの１つのジオフェンスが、最も厳格である（あるいは、ほぼ最も厳格である）ジオフェンス等、動作９０４において所望される位置精度が特定されているジオフェンスとして選択される。図１１は、この状況の一例を示している。
【００７６】
図１１は、１以上の実施形態に従った複数の重なり合っているジオフェンスを示している。コンピューティングデバイスの現在位置１１０２が示されており、ジオフェンス１１０４、１１０６、１１０８、及び１１１０のセットが、図２のジオフェンス判別モジュール２０４により選択されている。ジオフェンス１１１０は、現在位置１１０２に最も近く、ジオフェンス１１０４〜１１１０のうち最大の所望される位置精度を有する。ジオフェンス１１１０が、動作９０４において所望される位置精度が特定されているジオフェンスとして選択され得る。代替的に、動作９０４において所望される位置精度が特定されているジオフェンスとしてジオフェンス１１１０が選択される代わりに、ジオフェンス１１０４〜１１０８のうちの１つのジオフェンスが選択される。
【００７７】
図９に戻ると、どのジオフェンスが最も厳格である（あるいは、ほぼ最も厳格である）と判定されるかは、複数のジオフェンスのセット及び許容可能な誤差半径のセットに基づいて判定される。例えば、最も厳格である（あるいは、ほぼ最も厳格である）と判定されるジオフェンスは、複数のジオフェンスのうちどのジオフェンスが以下の式に関して最小値を有するかを判定することにより、判定することができる：
（（ｄｉｓｔａｎｃｅ（Ｇｉ）＋Ａｉ）−ｄｉｓｔａｎｃｅ（Ｇ０）；  ０≦ｉ≦ｎ
ここで、「ｄｉｓｔａｎｃｅ（）」は、コンピューティングデバイスの現在位置と、括弧内のジオフェンスの最も近いエッジと、の間の距離を指し、Ｇｉは、Ｇ０が最も近いジオフェンスである最大ジオフェンスのエッジから現在位置（例えば、図１１のジオフェンス１１０４）の略中心までの距離順であるジオフェンスのセット｛Ｇ０，Ｇ１，．．．，Ｇｎ｝におけるジオフェンスであり、Ａｉは、図１０のテーブル１０００内に示されるような、ジオフェンスＧｉに関する許容可能な誤差半径である。
【００７８】
どのジオフェンスが最も厳格である（あるいは、ほぼ最も厳格である）かのこの判定は、略円形領域であり特定の半径を有するジオフェンスに基づく。これらは例であり、ジオフェンスは、他の形状に関して（例えば、半径ではない領域として）、他の方法により特定されてもよいことに留意すべきである。
【００７９】
代替的に、動作９０４において所望される位置精度が特定されている１つのジオフェンスを選択する代わりに、複数のジオフェンスに関する所望される位置精度を組み合わせて、動作９０４において所望される位置精度を特定してもよい。各々が所望される位置精度を有するジオフェンス｛Ｇ０，Ｇ１，．．．，Ｇｎ｝が、各ジオフェンスがコンピューティングデバイスの現在位置にどれくらい近いかに基づいて重み付けされる等、この組合せは、最も近くにあるジオフェンスのセットの重み付けとすることができる（例えば、コンピューティングデバイスの現在位置のより近くにあるジオフェンスは、コンピューティングデバイスの現在位置から離れているジオフェンスよりも高く重み付けされる）。次いで、重み付けされた所望される位置精度を組み合わせて（例えば、足し合わせて）、動作９０４のための所望される位置精度を生成することができる。
【００８０】
特定のモジュールを参照しながら特定の機能について本明細書で説明したが、本明細書で説明した個々のモジュールの機能は、複数のモジュールに分割されてもよいし、且つ／あるいは、複数のモジュールの少なくとも一部の機能は、１つのモジュールに結合されてもよいことに留意すべきである。さらに、あるアクションを実行するものとして本明細書で説明した特定のモジュールは、そのアクションを実行するその特定のモジュール自体を含む、あるいは、そのアクションを実行する（あるいは、その特定のモジュールと協働してそのアクションを実行する）別のコンポーネント又はモジュールを呼び出すその特定のモジュール又はそのアクションを実行する（あるいは、その特定のモジュールと協働してそのアクションを実行する）別のコンポーネント又はモジュールに別の形でアクセスするその特定のモジュールを含む。したがって、あるアクションを実行する特定のモジュールは、そのアクションを実行するその特定のモジュール自体、及び／又は、その特定のモジュールにより呼び出される、あるいはその特定のモジュールにより別の形でアクセスされる、そのアクションを実行する別のモジュールを含む。
【００８１】
図１２は、本明細書で説明した様々な技術を実装することができる１以上のシステム及び／又はデバイスを表す例示的なコンピューティングデバイス１２０２を含む例示的なシステムを、概括的に１２００で示している。コンピューティングデバイス１２０２は、例えば、サービスプロバイダのサーバ、クライアントに関連付けられたデバイス（例えば、クライアントデバイス）、オンチップシステム、及び／又は、任意の他の適切なコンピューティングデバイス若しくはコンピューティングシステムとすることができる。
【００８２】
図示される例示的なコンピューティングデバイス１２０２は、処理システム１２０４、１以上のコンピュータ読み取り可能な媒体１２０６、及び互いに通信可能に接続される１以上のＩ／Ｏインタフェース１２０８を含む。図示されていないが、コンピューティングデバイス１２０２は、様々なコンポーネントを互いと接続するシステムバス又は他のデータ・コマンド転送システムをさらに含み得る。システムバスは、メモリバス若しくはメモリコントローラ、周辺バス、ユニバーサルシリアルバス、及び／又は、様々なバスアーキテクチャのうちのいずれかを利用するプロセッサバス若しくはローカルバス等の様々なバス構造の任意の１つ又は組合せを含み得る。制御ライン及びデータライン等の多様な他の例も意図されている。
【００８３】
処理システム１２０４は、ハードウェアを用いて１以上のオペレーションを実行する機能を表す。したがって、処理システム１２０４は、プロセッサ、機能ブロック等として構成することができるハードウェア要素１２１０を含むものとして示されている。これは、特定用途向け集積回路、又は、１以上の半導体を用いて形成される他の論理デバイスとしてのハードウェアによる実装物を含み得る。ハードウェア要素１２１０は、ハードウェア要素１２１０が形成される材料又はハードウェア要素１２１０において利用される処理機構により限定されるものではない。例えば、プロセッサは、１以上の半導体及び／又はトランジスタ（例えば、電子集積回路（ＩＣ））から構成され得る。そのようなコンテキストにおいて、プロセッサ実行可能な命令は、電子的に実行可能な命令であり得る。
【００８４】
コンピュータ読み取り可能な媒体１２０６は、メモリ／ストレージ１２１２を含むものとして示されている。メモリ／ストレージ１２１２は、１以上のコンピュータ読み取り可能な媒体に関連付けられたメモリ／ストレージ能力を表す。メモリ／ストレージ１２１２は、揮発性媒体（ランダムアクセスメモリ（ＲＡＭ）等）及び／又は不揮発性媒体（読み取り専用メモリ（ＲＯＭ）、フラッシュメモリ、光ディスク、磁気ディスク等）を含み得る。メモリ／ストレージ１２１２は、固定媒体（例えば、ＲＡＭ、ＲＯＭ、固定ハードドライブ等）に加えて、着脱可能な媒体（例えば、フラッシュメモリ、着脱可能なハードドライブ、光ディスク等）を含み得る。コンピュータ読み取り可能な媒体１２０６は、以下でさらに説明するように、多様な他の態様で構成されてもよい。
【００８５】
１以上の入力／出力インタフェース１２０８は、ユーザが様々な入力デバイスを用いてコマンド及び情報をコンピューティングデバイス１２０２に入力できるようにするとともに、様々な出力デバイスを用いて情報をユーザ及び／又は他のコンポーネントに提示できるようにする機能を表す。入力デバイスの例は、キーボード、カーソル制御デバイス（例えば、マウス）、マイクロフォン（例えば、音声入力用）、スキャナ、タッチ機能（例えば、物理的タッチを検出するよう構成される静電容量式センサ又は他のセンサ）、（例えば、ジェスチャとしてのタッチを含まない動きを検出するために、赤外線周波数等の非可視波長又は可視波長を利用することができる）カメラ等を含む。出力デバイスの例は、ディスプレイデバイス（例えば、モニタやプロジェクタ）、スピーカ、プリンタ、ネットワークカード、触覚応答デバイス等を含む。したがって、コンピューティングデバイス１２０２は、ユーザインタラクションをサポートするために、以下でさらに説明するように、多様な態様で構成することができる。
【００８６】
コンピューティングデバイス１２０２はまた、ジオフェンスシステム１２１４を含む。ジオフェンスシステム１２１４は、上述した変化する信頼度レベルを用いたジオフェンスイベントの検出を含む様々なジオフェンス機能を提供する。ジオフェンスシステム１２１４は、例えば、図２のシステム２００を実装することができる。
【００８７】
様々な技術が、ソフトウェア、ハードウェア要素、又はプログラムモジュールの一般的コンテキストにおいて本明細書で説明され得る。一般に、そのようなモジュールは、特定のタスクを実行する、あるいは特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、要素、コンポーネント、データ構造等を含む。本明細書で使用される「モジュール」、「機能」、及び「コンポーネント」という用語は、一般に、ソフトウェア、ファームウェア、ハードウェア、又はこれらの組合せを表す。本明細書で説明した技術の特徴は、プラットフォーム非依存であり、これは、そのような技術が、様々なプロセッサを有する様々なコンピューティングプラットフォーム上で実装され得ることを意味する。
【００８８】
説明したモジュール及び技術の実装物は、何らかの形態のコンピュータ読み取り可能な媒体に記憶されてもよいし、そのようなコンピュータ読み取り可能な媒体を介して伝送されてもよい。コンピュータ読み取り可能な媒体は、コンピューティングデバイス１２０２がアクセスできる様々な媒体を含み得る。限定ではなく例として、コンピュータ読み取り可能な媒体は、「コンピュータ読み取り可能な記憶媒体」及び「コンピュータ読み取り可能な信号媒体」を含み得る。
【００８９】
「コンピュータ読み取り可能な記憶媒体」とは、単なる信号伝送、搬送波、又は信号自体ではなく、情報の永続的記憶を可能にする媒体及び／若しくはデバイス、並びに／又は有体のストレージを指す。したがって、コンピュータ読み取り可能な記憶媒体は、非信号伝送媒体を指す。コンピュータ読み取り可能な記憶媒体は、コンピュータ読み取り可能な命令、データ構造、プログラムモジュール、論理要素／回路、又は他のデータ等といった情報を記憶するのに適した方法又は技術により実装された、揮発性及び不揮発性の着脱可能及び着脱不可能な媒体及び／又は記憶デバイス等のハードウェアを含む。コンピュータ読み取り可能な記憶媒体の例は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、若しくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、若しくは他の光ストレージ、ハードディスク、磁気カセット、磁気テープ、磁気ディスクストレージ、若しくは他の磁気記憶デバイス、又は、所望の情報を記憶するのに適した、コンピュータがアクセスできる他の記憶デバイス、有体の媒体、若しくは製品を含み得るが、これらに限定されるものではない。
【００９０】
「コンピュータ読み取り可能な信号媒体」とは、ネットワークを介して等、コンピューティングデバイス１２０２のハードウェアに命令を伝送するよう構成された信号伝送媒体を指す。信号媒体は、通常、コンピュータ読み取り可能な命令、データ構造、プログラムモジュール、又は他のデータを、搬送波、データ信号、又は他の伝送機構等の変調されたデータ信号内に具現化することができる。信号媒体はまた、任意の情報配信媒体を含む。「変調されたデータ信号」という用語は、信号内の情報を符号化するように設定又は変更された特性のうちの１以上を有する信号を意味する。限定ではなく例として、通信媒体は、有線ネットワーク又は直接配線接続等の有線媒体と、音響、ＲＦ、赤外線、及び他の無線媒体等の無線媒体と、を含む。
【００９１】
前述したように、ハードウェア要素１２１０及びコンピュータ読み取り可能な媒体１２０６は、本明細書で説明した技術の少なくとも一部の態様を実装するためにいくつかの実施形態において使用することができる、ハードウェア形態で実装された命令、モジュール、プログラマブルデバイスロジック、及び／又は固定デバイスロジックを表す。ハードウェア要素は、集積回路又はオンチップシステム、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、コンプレックスプログラマブル論理デバイス（ＣＰＬＤ）、及び、シリコンによる他の実装物又は他のハードウェアデバイスのコンポーネントを含み得る。このコンテキストにおいて、ハードウェア要素は、そのハードウェア要素により具現化される命令、モジュール、及び／又はロジックにより定められるプログラムタスクを実行する処理デバイスに加えて、前述したコンピュータ読み取り可能な記憶媒体等の、実行される命令を記憶するために利用されるハードウェアデバイスとして動作することができる。
【００９２】
前述したものの組合せを使用して、本明細書で説明した様々な技術及びモジュールを実装することもできる。したがって、ソフトウェア、ハードウェア、又は、プログラムモジュール及び他のプログラムモジュールは、何らかの形態のコンピュータ読み取り可能な記憶媒体上に具現化される、且つ／あるいは、１以上のハードウェア要素１２１０により具現化される１以上の命令及び／又はロジックとして実装することができる。コンピューティングデバイス１２０２は、ソフトウェアモジュール及び／又はハードウェアモジュールに対応する特定の命令及び／又は機能を実行するよう構成することができる。したがって、ソフトウェアとしてコンピューティングデバイス１２０２により実行可能なモジュールとしてのモジュールの実装は、例えば、処理システムのハードウェア要素１２１０及び／又はコンピュータ読み取り可能な記憶媒体を使用することにより、ハードウェアにより少なくとも部分的に実現することができる。命令及び／又は機能は、本明細書で説明した技術、モジュール、及び例を実装する１以上の製品（例えば、１以上のコンピューティングデバイス１２０２及び／又は処理システム１２０４）により、実行可能／動作可能であり得る。
【００９３】
図１２にさらに示されるように、例示的なシステム１２００は、パーソナルコンピュータ（ＰＣ）、モバイルデバイス、及び／又は他のデバイス上でアプリケーションを実行する際のシームレスなユーザエクスペリエンスのためのユビキタス環境を可能にする。サービス及びアプリケーションは、アプリケーションを利用している間、ビデオゲームをプレイしている間、ビデオを見ている間等に１つのデバイスから次のデバイスに移る際の共通のユーザエクスペリエンスのために、これらの環境において実質的に同様に動作する。
【００９４】
例示的なシステム１２００において、複数のデバイスが、中央コンピューティングデバイスを介して相互接続される。中央コンピューティングデバイスは、複数のデバイスに対してローカルにあってもよいし、複数のデバイスからリモートに位置してもよい。１以上の実施形態において、中央コンピューティングデバイスは、ネットワーク、インターネット、又は他のデータ通信リンクを介して複数のデバイスに接続される１以上のサーバコンピュータのクラウドであり得る。
【００９５】
１以上の実施形態において、この相互接続アーキテクチャは、複数のデバイスのユーザに共通のシームレスなエクスペリエンスを提供するために、複数のデバイスにわたって機能を配信することを可能にする。複数のデバイスの各々は、異なる物理的要件及び能力を有し得、中央コンピューティングデバイスは、各デバイス向けに合わせられながらも全てのデバイスに共通であるエクスペリエンスを各デバイスに提供することを可能にするプラットフォームを使用する。１以上の実施形態において、ターゲットデバイスのクラスが作成され、エクスペリエンスが、デバイスの一般クラス向けに合わせられる。デバイスのクラスは、デバイスの物理的特徴、使用のタイプ、又は他の共通特性により定められ得る。
【００９６】
様々な実装において、コンピューティングデバイス１２０２は、コンピュータ１２１６又はモバイル１２１８等の使用のために、多種多様な構成をとることができる。これらの構成の各々は、一般に異なる構造及び能力を有し得るデバイスを含み、したがって、コンピューティングデバイス１２０２は、異なるデバイスクラスのうちの１以上のデバイスクラスに従って構成され得る。例えば、コンピューティングデバイス１２０２は、パーソナルコンピュータ、デスクトップコンピュータ、マルチスクリーンコンピュータ、ラップトップコンピュータ、ネットブック等を含むデバイスのコンピュータ１２１６クラスとして実装され得る。コンピューティングデバイス１２０２はまた、携帯電話機、ポータブル音楽プレーヤ、ポータブルゲームデバイス、タブレットコンピュータ、ウェアラブルデバイス、マルチスクリーンコンピュータ等といったモバイルデバイスを含むデバイスのモバイル１２１８クラスとして実装され得る。
【００９７】
本明細書で説明した技術は、コンピューティングデバイス１２０２のこれら様々な構成によりサポートされ得るが、本明細書で説明した技術の特定の例に限定されるものではない。本機能は、以下で説明するように、プラットフォーム１２２４を経由して「クラウド」１２２２を介する等、分散システムの使用により全て又は一部が実装されてもよい。
【００９８】
クラウド１２２２は、リソース１２２６のためのプラットフォーム１２２４を含む、且つ／あるいは、リソース１２２６のためのプラットフォーム１２２４を表す。プラットフォーム１２２４は、クラウド１２２２のハードウェアリソース（例えば、サーバ）及びソフトウェアリソースの基礎をなす機能を抽象化する。リソース１２２６は、コンピューティングデバイス１２０２からリモートにあるサーバ上でコンピュータ処理が実行されている間に利用することができるアプリケーション及び／又はデータを含み得る。リソース１２２６はまた、インターネット、及び／又は、セルラネットワーク若しくはＷｉ−Ｆｉ（登録商標）ネットワーク等の加入者ネットワークを介して提供されるサービスを含み得る。
【００９９】
プラットフォーム１２２４は、コンピューティングデバイス１２０２を他のコンピューティングデバイスに接続するためのリソース及び機能を抽象化することができる。プラットフォーム１２２４はまた、リソースのスケーリングを抽象化して、プラットフォーム１２２４を介して実装されるリソース１２２６を求める受けた要求に対するスケールの対応するレベルを提供するよう機能することができる。したがって、相互接続されるデバイスの実施形態において、本明細書で説明した機能の実装物は、システム１２００にわたって分散させることができる。例えば、本明細書で説明した機能は、コンピューティングデバイス１２０２上に一部を実装することができるとともに、クラウド１２２２の機能を抽象化するプラットフォーム１２２４を介して実装することができる。
【０１００】
構造的特徴及び／又は方法論的動作に特有の言葉で主題について説明したが、添付の特許請求の範囲において定められる主題は、上述した特定の特徴又は動作に必ずしも限定されるものではない。そうではなく、上述した特定の特徴及び動作は、請求項を実施する例示的な形態として開示されている。
【図１】
0006309089.tif 000008
【図２】
0006309089.tif 000009
【図３】
0006309089.tif 000010
【図４】
0006309089.tif 000011
【図５】
0006309089.tif 000012
【図６】
0006309089.tif 000013
【図７】
0006309089.tif 000014
【図８】
0006309089.tif 000015
【図９】
0006309089.tif 000016
【図１０】
0006309089.tif 000017
【図１１】
0006309089.tif 000018
【図１２】
0006309089.tif 000019