(57)【特許請求の範囲】
【請求項１】
コンピュータによって実行される方法であって、
前記コンピュータのプロセッサが要求機器から、１つ以上の被要求機器の位置探索要求を受信する工程と、
前記プロセッサが、前記位置探索要求が比較的正確な応答を必要とするか、大まかな応答で十分かを判定する工程と、
前記プロセッサが、前記位置探索要求が大まかな応答しか必要としないと判定される場合には前記被要求機器に低精度の位置探索要求を送信する工程と、を有し、
前記プロセッサは、前記位置探索要求が複数の被要求機器の位置を要求する場合には、前記位置探索要求が大まかな応答しか必要としないものと判定することを特徴とする方法。
【請求項２】
前記低精度の位置探索要求が、許容精度範囲指示を有することを特徴とする請求項１記載の方法。
【請求項３】
前記低精度の位置探索要求が、利用可能なGPS機器を用いることなく満たされるべきものであると、前記被要求機器で解釈可能であることを特徴とする請求項１記載の方法。
【請求項４】
前記被要求機器に送信される低精度の位置探索要求が、所定時間内における最初の要求であることを特徴とする請求項１記載の方法。
【請求項５】
さらに、前記プロセッサが、被要求機器に関する位置情報を受信する許可の要求を前記要求機器から受信する工程を有することを特徴とする請求項１記載の方法。
【請求項６】
前記許可の要求が、設定された期間に対するものであることを特徴とする請求項５記載の方法。
【請求項７】
さらに、前記プロセッサが、前記被要求機器に関する位置情報を受信する許可を前記被要求機器から受信する工程を有することを特徴とする請求項５記載の方法。
【請求項８】
被要求機器に関する位置情報を受信する前記許可が、設定された期間に対するものであることを特徴とする請求項６記載の方法。
【請求項９】
さらに、前記プロセッサが、前記要求機器が被要求機器の各々に関する位置情報を受信する許可を有するか否かを判定する工程を有することを特徴とする請求項１記載の方法。
【請求項１０】
被要求機器の位置情報の要求を受信し、前記位置情報の要求が複数の被要求機器の位置を要求する場合には、前記被要求機器に低精度の位置探索要求を発行するように構成されたサーバと、
前記低精度の位置探索要求を受信し、精度が低く電力消費の小さな機構を用いて自身の位置を測定し、前記サーバに位置応答を送信するように構成された被要求機器と、を有することを特徴とするシステム。
【請求項１１】
前記位置応答が位置及び精度データを有することを特徴とする請求項１０記載のシステム。
【請求項１２】
コンピュータで実行された際に、該コンピュータに、
被要求機器の地理的位置を要求する位置探索要求を要求機器から受信する工程と、
前記位置探索要求が大まかな位置で応答可能なものかどうかを判定するために低精度の位置探索推測を適用する工程と、
前記位置探索要求が大まかな位置で応答可能なものと前記低精度の位置探索推測が判定した場合、低精度の位置探索要求を前記被要求機器に送信する工程と、
前記被要求機器から位置応答を受信する工程と、
前記被要求機器の現在の地理的位置情報を前記要求機器に送信する工程と、を有し、
前記低精度の位置探索推測は、前記位置探索要求が複数の被要求機器の位置を要求する場合には、前記位置探索要求が大まかな位置で応答可能なものと判定する方法を実行させるプログラムを格納したコンピュータが読み取り可能な記憶媒体。
【請求項１３】
前記位置応答が前記被要求機器の現在の地理的位置及び精度データを有することを特徴とする請求項１２記載の記憶媒体。
【請求項１４】
前記被要求機器に送信される低精度の位置探索要求が、所定時間内における最初の要求であることを特徴とする請求項１２記載の記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、携帯電話機やメディアプレーヤのようなモバイル機器との遠隔的な通信に関し、特には、１つ以上のリモートコマンドの送信を通じて、モバイル機器に機能を実行させることに関する。
【背景技術】
【０００２】
モバイル機器は、コンピューティング、通信、およびエンターテインメントを含む様々な用途に適応されてきている。近年の改良により、モバイル機器は、内蔵GPS(global position system)アンテナを用いたり、位置が固定されたセルラアンテナを通じて受信する信号から自身の位置を推定したりすることにより、自身の地理的な位置を測定できるようになっている。そのため、ユーザは自分がいる場所を測定するためにモバイル機器を用いることができる。
【０００３】
モバイル機器のユーザは、友達や家族が自分のいる場所を知らせたいと思うかもしれない。また同様に、ユーザは友達や家族のいる場所を知りたいと思うかもしれない。いくつかの既知のシステムがそのようなサービスを提供している。しかし、そのようなサービスの問題の１つは、位置の測定に多くの電力を消費しうることである。この問題は特にGPS機器を用いる場合に顕著である。
【０００４】
電池寿命とモバイル機器性能のバランスを取ることは、モバイル機器メーカの重要な関心事であり、また、位置情報を用いる(location-aware)プログラムはこれら関心事の大きな部分を占める。特に、GPS機器に頻繁に要求を行うアプリケーションは多くの電力を消費する。そのようなアプリケーションにはマッピングプログラムおよび、FOURSQUAREおよびGOOGLE LATITUDEのような位置情報を用いるソーシャルアプリケーションが含まれる。このようなソーシャルアプリケーションは、自分のいる場所を、認証された友達が友達のモバイル機器で見ることができるよう、自分のいる場所をサーバと共有することを可能にする。このようなサービスは、ユーザのモバイル機器で稼動するアプリケーションに、周期的にGPS機器を起動させ、ユーザの位置を把握してサーバを更新することを要求するものが多い。このようなGPS機器の反復利用は、モバイル機器の電池寿命を大幅に減少させる。
【発明の概要】
【０００５】
本発明のさらなる特徴及び利点は以下の記述によって説明され、また一部は記述から自明であるか、ここに開示される原理を実施することによって知ることができるであろう。発明の特徴及び利点は、添付した特許請求の範囲において特に示される装置及び組み合わせによって実現され、また手に入れることが可能である。本発明のこれらの特徴及び他の特徴は、以下の説明および添付した特許請求の範囲からより完全に明らかになるか、ここで説明される原理の実施を通じて知ることができる。
【０００６】
通信ネットワークに接続された１つ以上のモバイル機器の位置を測定するためのシステム、方法、及び恒久的なコンピュータ可読記憶媒体が開示される。本技術は、ユーザが、位置情報の共有を許可している他のユーザの位置を知ることを可能にするシステムを提供する。好適な一実施形態においてユーザは、友達の位置を記述した情報の受信許可をユーザが友達に要求することを可能にするアプリケーションを起動することができる。このアプリケーションは、ユーザに自分の位置情報を見ることを許可している友達の一覧表示が可能である。
【０００７】
１人以上の友達の位置を見ることをユーザが希望する場合、アプリケーションは、システムサーバから各友達に、あるいは選択された複数の友達に、位置情報を要求することができる。サーバは、アプリケーションが詳細な位置情報と大まかな位置情報のどちらを要求しているかを判別するため、要求を受信し、解釈する。例えば、アプリケーションが全ての友達について位置情報を要求しているとすると、その要求は大まかな情報のみについての要求と解釈されるであろう。その代表的な理由は、全ての友達をコンピュータ画面上に表示するには大まかな位置で十分だからである。しかし、アプリケーションが特定の友達に関する更新された大まかな情報を最近受信済みであるにも関わらず、同じ友達について追加の位置情報を要求している場合には、そのアプリケーションが詳細な位置情報を必要としている可能性が高い。
【０００８】
詳細な位置情報と大まかな位置情報との差異は、位置情報の許容変動の閾値だけでなく、更新された位置情報をサーバが受信してからの経過時間および友達の機器で正確な位置情報を知るために必要な電力にも基づく。例えば、詳細な位置情報は±３ｍの精度を必要とし、現在の技術では、そのような精度はほとんどの場合GPS機器を用いることで実現される。さらに、詳細な位置情報は１分以下の期間についてだけ、正確であると見なされる。それに対し、大まかな位置情報は都市レベルの精度（例えば±１ｋｍ）のみを必要とし、１５分以上に渡って有用と見なされる。
【０００９】
友達の位置探索要求は中央サーバによって処理される。サーバは要求を受信すると、要求を友達の機器に転送し、応答を待つ。あるいは、サーバは友達の機器と通信することなく要求に応答してもよい。例えば、サーバは友達の機器の位置情報をキャッシュしておいてもよい。位置情報は所定の精度かつ所定の期間でのみ有用なので、サーバは要求を友達の機器に送信する代わりにキャッシュされた位置情報を送信する前に、キャッシュされた情報を要求および／または予め定められた制約事項と比較してよい。
【００１０】
本発明の上述した利点および特徴ならびに他の利点および特徴を得るための方法を説明するため、簡単に説明済みの原理のより具体的な説明を、添付図面に記載される特定の実施形態に関して行う。これら図面が単に例示的な実施形態を図示するものであり、従って本発明の範囲を限定するものと解されるべきでないことを踏まえ、添付図面を用いてより具体的かつ詳細に本発明の原理を記述および説明する。
【図面の簡単な説明】
【００１１】
【図１】例示的なシステムの実施形態を示す図である。
【図２】例示的なコンピューティング環境を示す図である。
【図３ａ】モバイル機器の位置探索のための例示的な手順を説明するフローチャートである。
【図３ｂ】モバイル機器の位置探索のための例示的な手順を説明するフローチャートである。
【図４】モバイル機器を位置探索し、位置情報を更新するための例示的な手順を説明するフローチャートである。
【図５】モバイル機器ユーザに位置情報を共有するために招待状を送信するための例示的な手順を説明するフローチャートである。
【図６】ユーザがどのように友達を位置探索しうるのかを図示する例示的なユーザインタフェースの図である。
【図７】ユーザがどのように友達を位置探索しうるのかを図示する例示的なユーザインタフェースの図である。
【図８】ユーザがどのように友達を位置探索しうるのかを図示する例示的なユーザインタフェースの図である。
【図９】ユーザがどのように友達を位置探索しうるのかを図示する例示的なユーザインタフェースの図である。
【図１０】ユーザがどのように友達を位置探索しうるのかを図示する例示的なユーザインタフェースの図である。
【図１１】ユーザがどのように友達を位置探索しうるのかを図示する例示的なユーザインタフェースの図である。
【図１２】ユーザがどのように友達を位置探索しうるのかを図示する例示的なユーザインタフェースの図である。
【図１３】位置探索される友達に対してユーザがどのように招待状を送信しうるのかを図示する例示的なユーザインタフェースの図である。
【図１４】位置探索される友達に対してユーザがどのように招待状を送信しうるのかを図示する例示的なユーザインタフェースの図である。
【図１５】位置探索される友達に対してユーザがどのように招待状を送信しうるのかを図示する例示的なユーザインタフェースの図である。
【図１６】ユーザがどのように位置探索の招待状を受信し、応答しうるかを示す例示的なユーザインタフェースの図である。
【図１７】ユーザがどのように位置探索の招待状を受信し、応答しうるかを示す例示的なユーザインタフェースの図である。
【図１８】ユーザがどのように自身の位置情報を変更しうるのかを図示する例示的なユーザインタフェースの図である。
【図１９】ユーザがどのように自身の位置情報を変更しうるのかを図示する例示的なユーザインタフェースの図である。
【図２０】ユーザがどのように自身の位置情報を変更しうるのかを図示する例示的なユーザインタフェースの図である。
【図２１】有効期限まで位置情報を共有するための招待状がどのように生成され、また表示されるのかを図示する例示的なユーザインタフェースの図である。
【図２２】有効期限まで位置情報を共有するための招待状がどのように生成され、また表示されるのかを図示する例示的なユーザインタフェースの図である。
【図２３】有効期限まで位置情報を共有するための招待状がどのように生成され、また表示されるのかを図示する例示的なユーザインタフェースの図である。
【図２４】有効期限まで位置情報を共有するための招待状がどのように生成され、また表示されるのかを図示する例示的なユーザインタフェースの図である。
【発明を実施するための形態】
【００１２】
以下、本発明の様々な実施形態について詳細に検討する。特定の実施について検討するが、それは説明のみを目的としたものであることを理解すべきである。関連技術分野に属する当業者は、本発明の精神及び範囲を超えることなく他の構成要素や機器構成を用いうることを理解するであろう。
【００１３】
本発明は、本技術分野における、ユーザのモバイル機器の位置情報を送信するとともに、友達および家族が有するそれぞれのモバイル機器を通じて、友達および家族を位置探索するための仕組みに対する必要性を解決する。モバイル機器に、現在の位置を測定して要求者に報告させるコマンドを送信することにより、モバイル機器を位置探索するシステム、方法、および恒久的コンピュータ可読媒体が開示される。本発明のコンセプトを実施するために適用可能な、図１に示す汎用的なシステムまたはコンピュータ機器をまず簡単に説明する。その後、方法およびシステムのより詳細な説明を行う。
【００１４】
図１を参照すると、汎用コンピュータ機器１００を含む例示的なシステム１００は、処理ユニット（ＣＰＵまたはプロセッサ）１２０と、読み出し専用メモリ（ＲＯＭ）１４０およびランダムアクセスメモリ１５０のようなシステムメモリ１３０を含む様々なシステム構成部品をプロセッサ１２０と接続するシステムバス１１０とを含んでいる。システム１００は、直接接続された、近接した、あるいはプロセッサ１２０の一部として統合された高速メモリのキャッシュ１２２を含むことができる。システム１００はメモリ１３０および／または記憶装置１６０からキャッシュ１２２へ、プロセッサ１２０による高速アクセスのためにデータをコピーする。このようにして、キャッシュ１２２はデータ待ち時間によりプロセッサ１２０の動作が遅くなることを回避し、性能を向上させている。これらの、また他のモジュールは、プロセッサ１２０が様々な動作を実行するよう、プロセッサ１２０を制御可能であるか、プロセッサ１２０を制御するように構成されてよい。他のシステムメモリ１３０もまた同様に利用可能であってよい。メモリ１３０は、異なる性能特性を有する複数の異なるタイプのメモリを含んでよい。本発明は複数のプロセッサ１２０を有するコンピュータ機器１００や、より強力な処理性能を提供するためにネットワーク化された複数のコンピュータ機器のグループ又はクラスタ上でも実施可能であることは理解されよう。プロセッサ１２０は、任意の汎用プロセッサおよび、プロセッサ１２０を制御するように構成されたハードウェアモジュールまたは記憶装置１６０に記憶されたモジュール１ １６２、モジュール２ １６４、およびモジュール３ １６６のようなソフトウェアモジュールや、実際のプロセッサ設計にソフトウェア命令が統合された特定用途向けプロセッサを含むことができる。プロセッサ１２０は本質的に、複数のコアまたはプロセッサ、バス、メモリコントローラ、キャッシュなどを含む、完全内蔵型のコンピュータシステムであってよい。マルチコアプロセッサは対象型でも非対称型であってもよい。
【００１５】
システムバス１１０は、様々なバスアーキテクチャのいずれかを用いるメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含むバス構成の任意のタイプであってよい。ＲＯＭ１４０などに保存される基本入力／出力(BIOS)は、起動中などにコンピュータ機器１００内の要素間で情報を転送するのを支援する基本ルーチンを提供する。コンピュータ機器１００はさらに、ハードディスクドライブ、磁気ディスクドライブ、光学ディスクドライブ、テープドライブなどの記憶装置１６０を含む。記憶装置１６０はプロセッサ１２０を制御するためのソフトウェアモジュール１６２，１６４，１６６を含むことができる。他のハードウェア又はソフトウェアモジュールがあってもよい。記憶装置１６０はドライブインタフェースによってシステムバス１１０に接続される。ドライブおよび関連するコンピュータ可読記憶媒体は、コンピュータ機器１００用のコンピュータ可読命令、データ構造、プログラムモジュールおよび他のデータの不揮発性記憶を提供する。一見地において、特定の機能を実行するハードウェアモジュールは、恒久的コンピュータ可読媒体に格納されたソフトウェア構成部品と、プロセッサ１２０、バス１１０、出力機器１７０などの、機能を実行するのに必要なハードウェア部品とを含む。
【００１６】
基本的な構成要素は本技術分野における当業者に既知であり、機器１００が小型のハンドヘルドコンピュータ機器、デスクトップコンピュータ、およびコンピュータサーバのいずれであるかといった、機器のタイプに応じた適切なバリエーションが考えられる。
【００１７】
ここで説明する例示的な実施形態は記憶装置１６０を用いているが、本技術分野の当業者が理解するように、コンピュータがアクセス可能な、データを保存可能な他のタイプのコンピュータ可読媒体を例示的な動作環境で用いてもよい。このような他のタイプのコンピュータ可読媒体には、磁気カセット、フラッシュメモリ（登録商標）カード、DVD、カートリッジ、ランダムアクセスメモリ(RAM)１５０、読み出し専用メモリ(ROM)１４０、ビットストリームなどを含んだ有線又は無線信号などがある。恒久的コンピュータ可読媒体は、エネルギー、搬送信号、電磁波、および信号それ自体を明示的に除外する。
【００１８】
コンピュータ機器１００とのユーザインタラクションを可能にするため、入力機器１９０は、音声入力用のマイク、ジェスチャまたはグラフィカル入力用のタッチパネル、キーボード、マウス、動きによる入力、音声といった任意数の入力機構を代表している。出力機器１７０は、本技術分野の当業者に既知な複数の出力機構の１つ以上であってよい。ある形態においては、マルチモーダルシステムが、コンピュータ機器１００と通信するためにユーザが複数のタイプの入力を提供することを可能にする。通信インタフェース１８０は一般にユーザ入力およびシステム出力を統制および管理する。任意のハードウェア構成上で動作可能であり、従って基本的な機能は、進歩に応じてよりよいハードウェアまたはファームウェア構成と容易に置換可能である。
【００１９】
説明の明瞭さのために、「プロセッサ」またはプロセッサ１２０とラベルが付された機能ブロックを含む、個別的な機能ブロックを含むものとして具体的なシステム実施形態を表した。これらブロックが表す機能は、例えば、ソフトウェアを実行可能なハードウェアおよび、汎用プロセッサ上で稼動するソフトウェアと同等に動作するように製造されたプロセッサ１２０のようなハードウェアを含む、共有または専用ハードウェアの使用を通じて提供されてもよい。例えば、図１に示される１つ以上のプロセッサの機能は、１つの共用プロセッサまたは複数のプロセッサによって提供されてよい。（用語「プロセッサ」の使用は、ソフトウェアを実行可能なハードウェアのみを指すものとして解されるべきではない。）例示的な実施形態は、マイクロプロセッサおよび／またはデジタルシグナルプロセッサ(DSP)ハードウェア、以下に説明する動作を実行するソフトウェアを格納するための読み出し専用メモリ(ROM)１４０、および結果を格納するためのランダムアクセスメモリ(RAM)１５０を含んでよい。大規模集積(VLSI)ハードウェア実施形態ならびにカスタムVLSI回路と汎用DSP回路との組み合わせもまた提供されてよい。
【００２０】
様々な実施形態の論理的な動作は、以下のものとして実装される。（１）汎用コンピュータ内のプログラム可能な回路で稼動する、コンピュータによって実施される工程、動作、または手順のシーケンス、（２）特定用途向けのプログラム可能な回路上で稼働する、コンピュータによって実施される工程、動作、または手順のシーケンス、および／または（３）プログラム可能な回路内部で相互接続された機械モジュール(machine module)またはプログラムエンジン。図１に示すシステム１００は、説明される方法の少なくとも一部を実行可能であり、説明されるシステムの一部であってよく、および／または説明される恒久的コンピュータ可読記憶媒体内の命令に従って動作可能である。そのような論理動作は、モジュールのプログラミングに従って特定の機能を実行するようにプロセッサ１２０を制御するように構成されたモジュールとして実施することができる。例えば、図１は、プロセッサ１２０を制御するように構成された３つのモジュールMod1 １６２、Mod2 １６４、およびMod3 １６６を示している。これらのモジュールは記憶装置１６０に格納され、実行時にＲＡＭ１５０またはメモリ１３０に読み込まれるか、本技術分野で既知であろう他のコンピュータ可読メモリ位置に格納されてよい。
【００２１】
コンピュータシステムの構成要素のいくつかを説明したため、図２に移る。図２は、汎用モバイルコンピューティング環境２００を示している。通信ネットワーク２１０はコンピューティング環境２００内で提供される機器およびアプリケーションを接続する。このコンピューティング環境２００では、様々な機器が様々な方法で互いに通信したりコマンドを送信したりすることができる。例えばサーバ２３０は、コンピュータ２２０、モバイル機器２４０、およびモバイル機器２４５といった２つ以上のユーザ機器間の中継物(intermediary)として機能してよい。サーバ２３０はあるユーザ機器から送信されたメッセージを他のユーザ機器に渡してよい。例えば、サーバ２３０は機器２４０（「要求機器」）から、他の機器２４５（「被要求機器」）を位置探索するための要求を受信してよい。そのような要求に応答して（要求が被要求機器のユーザによって許可されたものであることを保証するため、好ましくは適切な認証および承認の手順が行われた後で）、サーバ２３０は要求を被要求機器２４５に送信し、被要求機器２４５の位置に関する情報を含んだ応答を受信することができる。被要求機器２４５はこの位置情報を、例えばGPS衛星２６０から自身が受信した信号に基づいて取得しておくことができる。応答を受信すると、サーバ２３０はその情報を要求機器２４０に送信してよい。あるいは、サーバ２３０はキャッシュされた被要求機器２４５に関する最近の位置情報を有するため、要求を被要求機器２４５に送信しない。そのような実施形態においてサーバ２３０は、被要求機器２４５とは通信せずに、キャッシュされた位置情報を要求機器２４０に送信することにより要求に応答してもよい。
【００２２】
機器２２０、２４０、および２４５は、それらで稼動する、１つ以上の位置情報利用アプリケーションを有する事が好ましい。これらのアプリケーションのうちいくつかは、要求ユーザが友達の機器の位置を探索できるよう、他のユーザ機器に要求を送信する機能を有する。位置探索の承認を受信すると、要求機器は位置要求を被要求機器に送信し、その後、被要求機器の位置を含んだ応答を受信することが可能になる。承認はサーバレベルで管理されることが好ましいが、さらに、あるいはその代わりに、機器レベルでも管理されてよい。
【００２３】
図２に戻って、通信ネットワーク２１０は、イントラネットのようなローカルエリアネットワーク(LAN)、インターネットのような広域ネットワーク(WAN)、またはそれらの組み合わせを含む、任意のタイプのネットワークであってよい。さらに、通信ネットワーク２１０は公衆網、プライベート網、またはそれらの組み合わせであってよい。通信ネットワークはまた、任意の１以上のタイプの物理媒体の利用を通じて実施されてもよい。物理媒体は、１つ以上のサービスプロバイダに関連する有線通信経路および無線通信経路を含む。さらに、通信ネットワーク２１０は様々なプロトコルを用いてフォーマットされたメッセージの送信を支援するように構成されてよい。
【００２４】
ユーザ局２２０のようなユーザ機器は、コンピュータ環境２００で動作するように構成されてよい。ユーザ局２２０は、ウェブブラウザのような、ウェブの取扱いが可能なアプリケーションと通信するように構成可能な任意の汎用コンピューティング機器であってよい。例えば、ユーザ局２２０はデスクトップコンピュータ、ワークステーション、ラップトップコンピュータや、スマートフォン、ポストＰＣ機器といったポータブルコンピュータ機器のようなパーソナルコンピュータ機器であってよい。ユーザ局２２０は、図１のコンピュータ機器１００の機能、構成部品および周辺機器の一部または全てを含んでよい。
【００２５】
ユーザ局２２０はさらに、通信ネットワーク２１０へのネットワーク接続を含んでもよい。ネットワーク接続は有線又は無線インタフェースを通じて実現することができ、またユーザ局２２０および他の１つ以上のコンピュータ機器との間の通信ネットワークを通じた双方向通信をサポートすることができる。
【００２６】
アプリケーションサーバ２３０はさらに、コンピューティング環境２００で動作するように構成されてもよい。アプリケーションサーバ２３０は、１つ以上のアプリケーションを提供するように構成可能な任意のコンピュータ機器であってよい。例えば、アプリケーションサーバ２３０はサーバ、ワークステーション、またはパーソナルコンピュータであってよい。アプリケーションサーバ２３０は、例えば１つ以上の場所に設置された複数のコンピュータ機器の一群、例えば複数のサーバ、として構成されてもよい。アプリケーションサーバ２３０は、図１のコンピュータ機器１００の機能、構成部品および周辺機器の一部または全てを含んでよい。
【００２７】
アプリケーションサーバ２３０はさらに、通信ネットワーク２１０へのネットワーク接続を含んでもよい。ネットワーク接続は有線又は無線インタフェースを通じて実現することができ、またアプリケーションサーバ２３０および他の１つ以上のコンピュータ機器との間の通信ネットワークを通じた双方向通信をサポートすることができる。さらに、アプリケーションサーバ２３０は１つ以上のアプリケーションを提供するように構成可能である。例えば、アプリケーションサーバ２３０は、ネットワークに接続された１つ以上のモバイル機器との通信を容易にするリモート管理アプリケーションを提供するように構成されてよい。モバイル機器２４０、２４５およびアプリケーションサーバ２３０は、リモート管理機能を実行するため、リモート管理フレームワーク内で動作してもよい。アプリケーションサーバ２３０は、コンピューティングシステム２００に含まれる複数の通信機器間の、ネットワーク２１０を通じた双方向通信をサポートするように構成された通知サービスを提供するように構成されてよい。例えば、通知サービスアプリケーションは、複数のコンピュータ機器によって様々なメッセージが送受信されることを許可することができる。
【００２８】
通知サービスは、ユニークコマンドコレクショントピックが加入モバイル機器の各々に対して生成されてよい、規定された名前空間を含むことができる。加入モバイル機器を対応するコマンドコレクショントピックと関連付けるために、割り当てられた番号やアドレスのような固有識別子を用いることができる。固有識別子はまた、加入されたコマンドコレクショントピックに関連付けられたＵＲＩ(Uniform Resource Identifier)内に埋め込まれてもよい。さらに、各コマンドノードが特定の利モードコマンドタイプに対応するように、コマンドコレクショントピックの下に１つ以上のコマンドノードを生成してもよい。例えば、コマンドコレクショントピックは、位置探索コマンド用の個別コマンドノードを含むことができる。
【００２９】
個別コマンドノードの利用を通じ、１つ以上のモバイル機器に対して実質的に同時に複数のコマンドを送信する事ができる。あるコマンドコレクショントピックで複数のコマンドが受信された場合、実行順序を決定するためにサーバタイムスタンプを比較してもよい。
【００３０】
通知サービスを通じ、遠隔管理アプリケーションのような発行者は、特定のモバイル機器に関連付けられたコマンドコレクショントピックにリモートコマンドメッセージを発行することができる。リモートコマンドメッセージがコマンドコレクショントピックに発行されると、１つ以上の加入モバイル機器へ通知メッセージを送信することができる。そして、モバイル機器は、加入しているトピックにアクセスし、１つ以上の発行されたメッセージを読み出す。この、発行者とモバイル機器との間の通信は、分離されてもよい。さらに、リモートコマンドメッセージは、コマンドコレクショントピックの適切なコマンドノードに発行されてもよい。また、リモートコマンドメッセージを受信するモバイル機器は、通知サービスが提供する結果トピックに応答を発行することができる。遠隔管理アプリケーションのような発行者は、結果トピックを購読したり、発行された応答メッセージを受信したりすることができる。
【００３１】
さらに、コンピューティング環境２００は、モバイル機器２４０およびモバイル機器２４５のような１つ以上のモバイル機器を含んでよい。これらのモバイル機器は好ましくはアップル社製のiPhone（登録商標）のようなスマートフォンまたはアップル社製のiPad（登録商標）のようなポストＰＣデバイスである。コンピューティング環境２００に含まれるモバイル機器の各々は、通信ネットワーク２１０へのコネクションを確立するように構成されたネットワークインタフェースを含んでよい。例えば、モバイル機器２４０は、通信ネットワーク２１０へのデータアクセスを提供するセルラ（例えばGSM, EDGE, 3G,または4G）ネットワークコネクションを確立することができる。モバイル機器２４０および２４５の範囲内に設けられ、ネットワーク２１０に接続された１つ以上の基地局２５０によって、このようなコネクションの確立を容易にすることができる。さらに、モバイル機器２４５は通信ネットワーク２１０へのIEE802.11（すなわち、WiFiまたはWLAN）ネットワークコネクションを確立することができる。モバイル機器２４０および２４５の範囲内に設けられ、ネットワーク２１０に接続された１つ以上の無線ネットワークルータ２５５により、このようなコネクションの確立を容易にすることができる。さらに、これらモバイル機器２４０，２４５または他の機器のいずれかが、IEEE802.16（すなわち、無線ブロードバンドまたはWiBB）規格に基づいてネットワーク２１０に接続してもよい。繰り返すが、モバイル機器２４０，２４５は、基地局２５０や無線ルータ２５５の助けを借りて、通信ネットワーク２１０に接続してもよい。
【００３２】
さらに、モバイル機器２４０および２４５の各々は、メッセージを発行したり受信したりするために、アプリケーションサーバ２３０が提供する通知サービスアプリケーションと通信するように構成されてもよい。また、モバイル機器２４０および２４５の各々は、通知サービスアプリケーションを通じて受信したリモートコマンドに応じて、遠隔管理アプリケーションや遠隔管理機能を実行するように構成されてもよい。一部の実施形態において遠隔管理アプリケーションは、モバイル機器のオペレーティングシステムに組み込まれてもよい。
【００３３】
モバイル機器は１つ以上の関連付けられた機能を実行するため、リモートコマンドを実行することができる。例えば、リモートコマンドは位置探索コマンド、通知コマンド、およびメッセージコマンドを含んでよい。メッセージコマンドはテキストベースのメッセージをモバイル機器のディスプレイに提示するために使用することができる。位置探索コマンドは、位置探索コマンド実行時のモバイル機器の位置を示すメッセージをモバイル機器に送信させるために使用することができる。位置探索コマンドはさらに、自身の位置を測定するために、内蔵GPSシステムのような所定のリソースを使用するようにモバイル機器に命令してもよい。
【００３４】
加えて、モバイル機器２４０および２４５の各々は、１つ以上の入力を受信可能な入力インタフェースを含んでよい。例えば入力インタフェースは、キーボード、マウス、ジョイスティック、トラックボール、タッチパッド、キーパッド、タッチスクリーン、スクロールホイール、汎用および特定用途ボタン、スタイラス、ビデオカメラ、およびマイクの１つ以上を含んでよい。モバイル機器２４０および２４５の各々は、１つ以上のディスプレイ、１つ以上のスピーカ、および触覚インタフェースを含む、出力を提示することの可能な出力インタフェースを含むことができる。さらに、位置情報（例えば現在位置の表示）を取得するための、ＧＰＳ衛星２６０から送信される信号を、受信および処理するために、ＧＰＳ(Global Positioning System)プロセッサのような位置探索インタフェースが、モバイル機器２４０および２４５の１つ以上に含まれていてもよい。モバイル機器２４０および２４５の１つ以上に含まれている汎用または特定用途プロセッサが、基地局三角測量やビデオインタフェースを通じた固定地上物の認識などを通じて位置の推定を行うように構成されてもよい。
【００３５】
基本的なシステム構成要素およびそのコンセプトについて説明した。次に、図３ａおよび図３ｂに示す例示的な方法の実施形態３００ａおよび３００ｂについて説明する。簡潔さのために、方法を実施するように構成された図１に示した例示的なシステムおよび図２に示した動作環境に関して方法を説明する。ここで概要を述べる工程は例示的なものであり、所定の工程の除外、追加、または変更を行う組み合わせを含む、工程の任意の組み合わせにおいて実施することができる。
【００３６】
図３ａは、図２における通信ネットワーク２１０のような通信ネットワークに接続された、図２におけるモバイル機器２４０および２４５のような１つ以上のモバイル機器（被要求機器）の位置探索のために、要求機器による要求を処理するサーバが実行する例示的な処理を示すフローチャートである。この処理は図２におけるアプリケーションサーバ２３０のようなサーバによって実行することができる。
【００３７】
好適な実施形態において、サーバ２３０は１つ以上のサービスのメンバーに関するデータを維持する。維持されるデータは、例えば、メンバーのユーザ名および他の個人的な識別情報、メンバーの電話機に関する固有識別情報、およびそのメンバーに自分の位置情報を共有することを許可することを選択している他のメンバーの識別情報のような、各メンバーに関する所定の識別情報を含んでよい。この情報はまた、各メンバーの最近の位置情報を含んでもよい。この位置情報は、メンバーのモバイル機器上の所定のアプリケーション／プロセスによって、および／または要求機器の要求により、更新されてよい。例えば、モバイル機器の位置を測定するため、ユーザによって地図サービスや他の位置情報利用アプリケーションのようなモバイル機器上のアプリケーションが要求されうる。そして、そのような測定が行われる度に、モバイル機器はその情報をアプリケーションサーバに提供することができる。そして、サーバはこの情報を、モバイル機器の位置を表していると見なされる期間（例えば１５分以下といった期間）、記憶装置３３５ａに保持することができる。
【００３８】
好適な実施形態において、ユーザ／要求者は、自身のコンピュータまたはモバイル機器上のアプリケーションであって、実行時に、自分の位置情報を要求者と共有することに同意したメンバー（要求者の「友達」）の機器全てに対して１つ以上の位置探索要求を開始するアプリケーションを有してよい。このような実施形態において、アプリケーションはまずユーザ／要求者に、全ての友達の位置を地図上もしくはリストで提示することができる。位置探索要求３１０ａは、図２におけるアプリケーションサーバ２３０のようなサーバによって、処理のために受信されてよい。
【００３９】
位置探索要求を要求ユーザのモバイル機器３０１ａから受信すると、サーバはまず、３３５ａにキャッシュされている位置データで応答してもよい。上述の通り、好ましい実施形態では、アプリケーションサーバが、最近の位置情報を含む、サービスのメンバーに関する情報を維持および／またはキャッシュすることができる。位置情報の更新は、古い位置情報への上書きであることが好ましい。従って、サーバはまずステップ３１５ａで、最近の位置情報を有しているかどうかを判定する。上述したように、サーバは自身が維持する位置情報に対して設定された「年齢(time of life)」を有してよい。有している位置情報が最近のものであると判定された場合、ステップ３３０ａでサーバは既知の最新位置を記憶装置３３５ａから読み出す。ここでも、人物が外出している場合などにおいては、直近の位置情報だけが有意であろう。そのため、実施形態によっては、機器の最近の位置変動の活発さ(location activity)に基づいて情報の年齢を調整してもよい。例えば、機器の所有者が自信の位置を、自宅又は勤務先といったような、通常は所有者が毎日数時間滞在するような場所を指定している場合が含まれる。従って、サーバは、要求されたモバイル機器について自身が有している位置情報が最近のものであると見なされる場合には、その情報をステップ３６０ａで要求機器に提供するであろう。
【００４０】
サーバはさらに、この位置情報を比較的低い精度レベルで維持することが好ましい。その理由は、位置が短時間しか有意であると見なされない理由と似ている。位置情報が正確であるほど、その特定位置から人物が移動している可能性は高くなり、その結果位置は不正確になる。従って、最近の位置情報を低めの精度レベルで保持することにより、位置が依然として正しい可能性を高めることができ、ユーザ機器と通信する必要が無くなる。
【００４１】
あるいは、サーバはステップ３１５ａで、被要求機器に関する最近の位置情報を有していないと判定する。その場合サーバはステップ３２０ａで、１つ以上の被要求機器（すなわち、友達に関連付けられた機器）に、位置探索要求を送信する。このステップにおいてサーバは、位置探索要求メッセージを被要求機器の各々に送信する。サーバが送信するメッセージは、被要求機器に、自身の現在位置情報を取得し、取得した現在位置情報を応答メッセージの形式でサーバに返送するように命令する効果を有しさえすれば、どのような形式であってもよい。別の実施形態では、サーバは位置探索要求メッセージを、被要求機器に関する最近の位置情報を継続的に保持しているセルラネットワークシステムにのみ送信する。このような位置情報は例えば、被要求機器に最も近いと思われるセルサイトの座標を含んでよい。
【００４２】
ステップ３２０ａで要求を送信してしばらくすると、サーバはステップ３４０ａで応答を受信する。例えば被要求機器の位置およびネットワークトラフィックに応じて、応答の到着はいかなる順序にもなりうるし、応答までに要する時間も様々である。機器からの応答メッセージは、応答機器の位置に関する情報と、その位置が測定された時間とを含むことが好ましい。
【００４３】
この位置情報は、上述した方法のいずれかによって測定されてよいが、他の方法を用いて測定されたものであってもよい。位置情報はまた、機器が通信しているセルラ通信ネットワークからのように、間接的に（すなわち、被要求機器から直接的にではなく）取得されてもよい。例えば、モバイル機器に最も近いと特定された基地局から位置情報を取得してもよい。この選択肢は精度が低くなるかもしれないが、より早く応答が得られることが多く、また被要求機器の電池寿命を延ばすことができる。従って、位置情報の精度レベルは変化しうる。そのため、位置情報はさらに精度情報も含んでよい。
【００４４】
実施形態によっては、応答機器の所有者が、位置に関連付けられた固有の位置識別子やラベルを入力できてもよい。例えば、ユーザはそのような位置に「自宅」、「勤務先」、または「学校」といったラベルを割り当ててもよい。ユーザのモバイル機器はそのようなラベルと所定の地理的座標とを関連付けることが好ましい。
【００４５】
この情報を受信すると、ステップ３５０ａでサーバは、その機器の既知の最新位置を保持する情報が保存された情報３３５ａにあれば、次の要求者が利用できるように更新することが好ましい。
【００４６】
応答を被要求機器から受信すると、ステップ３６０ａでサーバは、位置情報を要求機器に送信する。このステップは様々な被要求機器からサーバが受信した応答の各々に対して実行されてもよい。一部の機器に関する位置情報はステップ３３０ａにおいてキャッシュ３３５ａから取得済みかもしれないが、サーバはさらに要求を行い、更新された情報を要求機器に送信してもよい。実施形態によっては、サーバは、最近受信した位置情報を送信することに違いが存在するかどうかを判定するため、最初に要求機器に送信した「既知の位置情報」と、被要求機器から受信したばかりの位置情報とを比較するステップ（不図示）をさらに有してもよい。すなわち、ある実施形態では、被要求機器の位置が変化した場合だけ、位置情報が要求機器に送信されるであろう。そのような実施形態では、通信が必要なデータ量の削減が実現できる。
【００４７】
時間精度に加え、サーバは所定の地理的位置精度を有する位置探索要求をどのように処理するかを判定する論理回路を有してもよい。図３ｂは、所定の精度レベル内で１つ以上のモバイル機器の位置を探索するための要求機器による要求を処理するサーバーによって実行される例示的な処理３００ｂを示すフローチャートである。
【００４８】
好適な実施形態において、ステップ３１０ｂでサーバは、被要求機器に関する位置情報を所定の許容精度レベル（精度ｙ）で取得する要求を受信する。好適な実施形態において、サーバは通常、記憶装置３３５ｂに、機器に関する位置情報を１つの精度レベル（精度ｘ）でのみ保持している。要求の受信後、ステップ３１５ｂでサーバは、記憶装置３３５ｂに保有している位置情報の精度が、要求機器によって要求された以上か（すなわち、精度ｘ≧精度ｙかどうか）を判定する。もしそうであれば、精度レベルは許容範囲であると見なされ、ステップ３３０ｂでサーバは保持された位置情報を読み出し、ステップ３６０ｂで要求機器に送信する。
【００４９】
しかし、サーバが被要求機器の位置情報の要求を受信した際、要求された精度（精度ｙ）が３５５ｂに保存された情報の精度（精度ｘ）より高い（すなわち、精度ｙ＞精度ｘ）のがより一般的であろう。精度ｙ＞精度ｘであることがステップ３１５ｂで判定されると、サーバはステップ３２０ｂで被要求機器に要求を送信する。この要求はいくつかの異なる形式を取りうる。例えば、サーバは、要求精度情報を含んだ要求の内容を単に被要求機器に送信し、（被要求機器のハードウェア、オペレーティングシステムおよびアプリケーションを通じて）その要求に対してどうやって応答するかの決定を被要求機器に任せてもよい。あるいは、サーバは（被要求機器が所定精度のGPSアンテナを有するといったような）被要求機器の能力に関する十分な情報を有しており、送信されるメッセージは、被要求機器が自身のGPSアンテナを用いて位置を測定し、その情報をサーバに送信するためのコマンドである。そして、ステップ３４０ｂでサーバは、位置情報を被要求機器から受信する。ここでも、この情報は、サーバが既知の機器情報に応じていくつかの異なる形式を取りうる。例えば、応答は被要求機器から提供される精度情報を含んでもよいし、単に位置および位置を取得した手段を含んでもよい。後者の形式の場合、好ましくは被要求機器の機種の特徴(model feature)を知っているサーバは、被要求機器によって提供される精度を判定してもよい。さらに、サーバによって送信される要求に応じて、手段の情報は応答では提供されず、何が要求されたかと同様にサーバによって暗示されてもよい。位置情報がサーバに受信されると、ステップ３５０ｂで、サーバは自身で保存している位置情報３３５ｂを更新し、ステップ３６０ｂで位置情報を要求機器に送信する。
【００５０】
一般に、取り扱われる位置情報の精度は低く、街レベルまたは数マイル内の精度である。上述の通り、そのような情報は、例えば被要求機器が通信中の基地局またはＩＳＰの地理的位置を知ることによってサーバが間接的に取得してもよい。セルラ通信ネットワークと通信中の携帯電話機が信号強度が最も強いセルサイトを周期的に探索することは一般的に知られている。多くの場合、最強の信号は、最も距離が短いセルによって測定される。従って、例えば４マイルごとに基地局が存在する領域では、モバイル機器の位置は最も近い基地局から２マイル以内であると推定することができる。より正確なモバイル機器の位置探索方法の１つは、到達時間差(TDOA)の測定によるものであってよい。TDOA方式は、ある移動機無線信号の到達時間差を３つ以上の個別のセルサイトで測定することによる三辺測量に基づいて機能する。このような方法は、セルラネットワークによって供給される特定の機器が利用可能であることに基づくものであり、常に利用可能とは限らないため、代替実施形態に留まる。いずれの場合も、位置／精度判定が、モバイル機器ではなく通信ネットワークで実施されうる。このような低精度情報は、要求機器のユーザが友達の居場所にざっと目を通すことができるよう、サーバから要求機器に最初に送信されることが好ましい。このような低精度情報の取得に関する動作を、ここでは「浅い位置探索」と呼ぶ。
【００５１】
低精度（すなわち、精度の高くない）位置探索要求は、単なる概算ではあるが、応答を最速で得ることができ、また被要求機器で必要となるリソースが少ないため、最初に実行されることが好ましい。一方、「深い位置探索要求」は、被要求機器から比較的高い精度（より高い精度）の位置情報を取得するために、要求機器のユーザによって要求されうる。例えば、「深い位置探索要求」は、上述した他の位置探索方法のいくつかよりも高い精度レベルを有するであろう位置情報を取得するために、被要求機器に自身のGPS位置探索リソースを使用するように命令してもよい。GPSのような機器の機能を用いることで精度は向上するであろうが、十分な数のGPS衛星から信号を得て、位置を計算するために必要な時間およびリソースは、より長く、より多くのエネルギーを必要とするであろう。そのため、「深い位置探索要求」オプションは、要求機器のユーザによる特定の要求のために予約しておくことが好ましい。
【００５２】
この、「浅い位置探索要求」および「深い位置探索要求」のコンセプトを、モバイル機器のような要求機器の観点から、図４の例示的な方法４００でさらに説明する。好適な実施形態において、方法４００はモバイル機器でアプリケーションが開始された際にステップ４１０から開始する。まず、ステップ４２０で、機器は、ユーザに関連付けられている全ての友達の位置情報を要求する。この初期要求は好ましくは全ての「友達」機器（すなわち、要求者が位置情報を取得することを許可している所有者の機器）に送信される「浅い位置探索要求」である。この要求はサーバに送信され、上述の通り、要求はサーバから被要求機器に渡されるか、サーバにより処理されるか、その両方が行われる。そして、要求機器はステップ４３０で、自身のユーザの友達の浅い位置を含んだ応答を受信する。応答が受信されたので、要求機器はユーザの友達の位置をステップ４４０で表示することができる。
【００５３】
個人は動き回っていることが多いので、友達の位置情報が時々更新されるようにすることは、要求ユーザにとって価値がある。ステップ４５０で行われる位置情報の更新又はリフレッシュは、１５秒ごとや１５分ごとといったような所定間隔で自動的に行われてもよいし、ユーザの要求時に行われてもよいし、その両方であってもよい。これらの予め定められた時間間隔は、全てのユーザに対して共通に適用されてもよいし、個々のユーザの観測された動きの頻度(moment frequency)と、観測された一般的なユーザの動きデータの推測の組み合わせとに基づいて、個々のユーザで異ならせて適用されてもよい（例えば、高速道路を移動中と思われるユーザにたいていはより短い時間間隔を決定する反面、レストランのような場所に「チェックイン」しているユーザに対してはより長い時間間隔を決定する）。方法４００に示すように、リフレッシュステップ４５０は、ユーザの友達全ての浅い位置情報に対する要求を繰り返すように動作する。
【００５４】
ユーザの友達全ての浅い位置情報の要求および取得に加え、ユーザは１人以上の友達についてのより詳細な、あるいは「深い」位置情報をステップ４６０から始まる手順で要求してもよい。好適な実施形態においては、浅い位置探索要求後に提示されている友達をユーザが選択することで、「深い位置探索要求」を実行することができる。この好適な実施形態において、深い位置探索要求はサーバに送信され、サーバは被要求機器に、より詳細な位置情報を提供するよう命令するコマンドを送信する。この要求は、自身の有するGPSシステムから正確な位置情報を取得するように機器に命令することを含んでもよい。ステップ４７０で応答を受信すると、要求機器は友達の深い位置をステップ４８０で表示することができる。深い位置の精度もまた要求ユーザに対して表示してもよい。
【００５５】
友達に関連付けられた機器の位置情報を取得するための承認をユーザが取得する一方法を図５の方法５００に示す。大半の実施形態において、ユーザが友達の位置を特定できるように、ユーザは友達に承認要求を送信しなければならない。ユーザはこれを、ステップ５１０で、承認を要求する友達の選択により実行することができる。好適な実施形態において、位置探索アプリケーションは、ユーザの友達の情報を維持するため、ユーザの機器上の他のアプリケーションを参照したり用いたりすることができる。機器のユーザが知っている人物の連絡先情報を保存するアドレスブックアプリケーションはその一例である。これらの人物は、友達、家族、仕事上の知り合いや、ユーザが連絡先情報を取得した他の人物を含んでよい。特定の人物がユーザのアドレスブックに存在しない場合、ユーザがその人物の連絡先情報を稼動中のアプリケーションに直接入力することができてもよい。位置探索すべき相手が選択／入力されると、ステップ５２０で、承認要求が用意され、ユーザの機器から送信される。
【００５６】
ユーザから要求を受信すると、要求された人物（例えば「友達」）に、要求の内容および要求を受け入れるか拒否するかを記述したメッセージが提示されることが好ましい。ステップ５３０で友達が要求を受け入れると、ステップ５４０で承認応答がその友達の機器から送信される。承認応答を受信すると、サーバは、ユーザが位置探索要求を送信すると、その要求をサーバがステップ５５０で処理するように、要求ユーザと承諾した友達の少なくとも一方について保持している情報を更新する。さらに、要求が承認されたことをユーザおよび／またはユーザの機器に示すために、サーバは通知を要求ユーザに送信することができる。このようにして、ユーザはその友達に関する位置情報を取得できるようになる。好適な実施形態において、友達はユーザに与えた承認をいかなるときも無効化することができる。それにより、その友達は、自身の位置情報のプライバシのコントロール権を維持することができる。
【００５７】
一方、ユーザから位置探索についての認証要求を受信したが、ステップ５６０で要求を拒否または無視した友達に関する位置情報は取得できない。従って、ユーザがその後その友達の位置探索をステップ５７０で試みても、機器およびサーバのいずれもその要求を処理しないであろう。要求ユーザおよび機器の観点からすると、そのような友達は、「応答待ち」、「位置探索不能」というステータスを有するものとして表示されるか、または単にリスト表示されない。もちろん、実施形態によっては、ユーザは引き続きその友達に対して他の要求を送信することができてもよい。
【００５８】
図６〜２０は、本発明の好適な実施形態に係る一連の「スクリーンショット」を、アップル社のiPhone(登録商標）やiPad（登録商標）のようなモバイル機器で見たかのように示している。好適な実施形態はアップル社の製品上に表示されるように記載されているが、位置探索アプリケーションは任意のタイプのモバイル機器、スマートフォン、ポストＰＣ機器、ラップトップコンピュータ、デスクトップコンピュータで用いられてもよいことを当業者は理解するであろう。
【００５９】
図６は、ユーザが位置探索アプリケーションを最初に実行した際に提示されるインタフェースウィンドウ６００を示している。このウィンドウでユーザは、ユーザがおそらく既に位置探索サービスについて登録済みのアカウントに関する自身のユーザＩＤ６１０およびパスワード６２０の入力を促される。ユーザＩＤおよびパスワードの入力後、ユーザは、認証してプログラムを実行するために「サインイン」ボタン６３０を選択することができる。ユーザがアカウントをまだ登録していない場合、ユーザはボタン６４０を選択することで登録を行える。
【００６０】
図７に示すように、ユーザが最初にログインすると、位置情報を共有する友達を招待するようユーザに促す画面７００が提示される。位置共有に友達を招待するため、ユーザは「＋」ボタン７１０をタップして、招待する友達を選択する画面を開くことができる。この動作のより詳細な説明は、図１１〜１６に関して以下で行う。
【００６１】
一方、図８は、位置共有するためのユーザの招待を何人かの友達が承認した後におけるログイン直後に表示される典型的な内容を示している。図８に示すように、友達のリスト８００がユーザに示される。友達の情報８１０の隣に、位置探索状況インジケータ８２０がある。図８では、機器が友達の機器の全てに位置探索要求を送信済みで、各機器からの応答を待っている状況である。
【００６２】
少し時間が経過し、機器がユーザの友達に関する位置情報を受信すると、ディスプレイインタフェース９００でユーザに提示される。図９から分かるように、この時点で、友達情報９１０は友達９２０の位置、位置情報の精度９３０、および位置情報の取得時刻９４０を含むようになっている。位置９２０はさまざまな方法で提示することができる。例えば、位置情報９２０はユーザによって選択されたラベルを含む。あるいは、９５０に示すように、位置情報はユーザがいる街の名前や住所を含んでもよい。さらに、位置要求が失敗した場合、表示９００は９６０のようなメッセージを提示してもよい。
【００６３】
図１０は、友達の位置情報表示の別の実施形態を示す。図１０に示すように、地図インタフェース１００が提示される。好ましい実施形態において、地図インタフェース１０００の初期の縮尺は、ユーザの友達の全てを１画面で見ることができるように、ユーザの友達のそれぞれについて特定された場所によって決定される。従って、ユーザの友達が互いに数マイル離れて位置する場合、地図インタフェース１０００の縮尺は、数マイル（すなわち、街レベル）が示されるように拡大される。一方、ユーザの友達が国中にいたり外国にいたりすれば、地図の縮尺は地図インタフェース１０００が数百または数千マイル（すなわち、国(state)レベル）に縮小される。
【００６４】
再び図１０を参照して、ユーザは友達の位置を地図１０００上で提示される。好適な実施形態において、友達の位置はドット１０１０および１０２０で示される。しかし、他の任意のアイコンやインタラクティブ地図上で人物の位置を示すための他の合理的な方法を用いることができる。ユーザがドットの１つを選択すると、その位置にいる友達に関する情報が、ドット１０１０に示されるように表示される。さらに、ドット１０１０に示されるように、精度情報が、友達のドットを囲む、精度のレベルに等しい半径を有する陰つきの円の形式で地図上にグラフィカルに提示されてもよい。
【００６５】
図１１および図１２は、本発明の別の実施形態を示している。この実施形態は、iPad、ラップトップコンピュータ、デスクトップコンピュータのような、より大きな画面を有する機器で用いるのに適している。図１１において、インタフェース１１００はユーザの友達の一覧表示をテーブル形式１１１０で表示するとともに、友達の地理的位置を地図１１２０に表示している。インタフェース１１００において、ユーザが地図１１２０上で友達の１人１１３０を選択すると、その友達の位置に関する詳細が地図の下部１１４０に現れる。同様に、縦横比の異なるインタフェースを提供する図１２において、インタフェース１２００はユーザに、ユーザの友達の地理的位置１２２５を示す地図１２２０を提示する。地図に重畳する表１２２０には、ユーザの友達のリストが示されている。インタフェース１１００と同様、ユーザが表１２１０の中の友達の１人を選択すると、その友達の詳細がディスプレイの下部１２４０に表示される。
【００６６】
ユーザは、位置情報を共有するための招待を友達に送信したい場合、図１３に示すような「友達を追加」インタフェース１３００を用いることができる。インタフェース１３００では、ユーザは友達／招待する人の連絡先情報を１３１０に入力することができる。さらに、オプションのパーソナルメッセージを１３２０に入力することもできる。上述の通り、また図１４の連絡先リスト１４００に示されるように、連絡先情報は他のサービスやユーザ機器上のアプリケーションから取得することもできる。
【００６７】
図１５は、１５１０に連絡先の名前（好ましくは連絡先の電子メールアドレス、電話番号または他の関連連絡先情報）埋め込みリンク）が入力された、友達追加要求フォーム１５００の完成形を示している。また、短いパーソナルメッセージ１５２０も示されている。
【００６８】
図１６は、自身の位置情報を要求ユーザと共用するための招待状を受信したことを、ウィンドウ１６００で友達に通知する方法の１つを示している。ウィンドウ１６００で友達に示されるように、ユーザはボタン１６１０を選択して招待の内容を直ちに見るか、ボタン１６２０を選択して招待を後で見るかを選択することができる。なお、この通知は、現在どのようなアプリケーションが実行中であろうと通知を提供するシステムベースのメッセージの形式を有することが好ましい。
【００６９】
友達が招待の内容を見ることを選択した場合、図１７に示すように要求メッセージ１７００が友達に提示される。要求メッセージ１７００において、招待は招待者の名前１７１０および短いパーソナルメッセージ１７２０を含むことが好ましい。さらに、招待は承認ボタン１７３０と辞退ボタン１７４０とを含むことができる。
【００７０】
図１８を参照して、モバイル機器ユーザは、インタフェース１８００に自身のアカウントに関する所定の項目を保持することができる。インタフェース１８００でユーザは、例えばフィールド１８２０内の現在位置にラベル１８１０を設定することができる。ユーザはまた、フォローの招待を受け入れた全ての友達を含むフォロワーのリスト１８３０を見直すこともできる。ユーザはさらに、スイッチ１８４０を切り替えることにより、自分のフォロワーから隠すことを選択できる。
【００７１】
所定の場所にラベルを割り当てることに関し、図１９のインタフェース１９００がユーザに提示されてもよい。インタフェース１９００において、ユーザは用意されたラベル１９１０の１つを選択するか、フィールド１９３０にテキストを入力してカスタムラベルを追加することができる。現在用いられているラベルはフィールド１９２０に示される。図２０のインタフェース２０００に示すように、インタフェース１９００に用意されたラベル１９１０に加え、追加の場所固有ラベルオプションが自動的に追加されてもよい。図２０に示すように、場所ラベル２０１０が用意された場所ラベルのリストに追加されている。このようなラベル２０１０は、例えばユーザがスターバックス（登録商標）の近くにいることが判明した際に追加されてよい。
【００７２】
本発明の所定の実施形態についてさらに説明するため、以下では、モバイル機器の所定のユーザが友達の位置を取得するために本発明の１つ以上の実施形態をどのように用いることができるのかを示すシナリオを用いる。
【００７３】
１つめのシナリオは、モバイル機器ユーザが昼にどこか、例えばパロアルトのダウンタウンにいて、簡単な昼食に誘える友達が近くにいるかどうかを知りたい場合に相当しうる。ユーザは、友達の場所を調べ、近くにいる友達を特定し、連絡を取るために本発明の実施形態を用いることができるであろう。
【００７４】
２つめのシナリオは、複数のモバイル機器ユーザが、自分たちが所定時刻にどこにいるのか他者が知ることを許す必要がある、あるいは許したい場合に相当する。モバイル機器ユーザが例えばマラソンのトレーニングをしており、毎日外で数マイル走っている場合がこのような状況に該当する。このユーザは、何かあった場合に常に位置を把握してもらえるよう、トレーニング時間中、パートナーに自分の位置を知らせたいと思っている。このような場合、本発明の実施形態が役立つであろう。また、この人物が実際にマラソンに参加している場合、友達はこの人物をレース中に励ますのに適切な場所に行けるよう、コースをどの程度走ったかを知りたいと考えるだろう。このようなシナリオでは、そのエリアのストリートマップにレースのコースを重畳した地図であって、ユーザがランナーの場所を知ることができ、ランナーが次に向かっている場所についての何らかの表示を有するような地図を提供する本発明の実施形態が役立つであろう。
【００７５】
３つめのシナリオは、複数のモバイル機器ユーザが、だれかが所定の位置に達したことの通知の受信を希望する場合に該当する。このようなシナリオは、１人のモバイル機器ユーザが例えば車での旅行に出かけており、別の人物が、このユーザが到着した際に通知を受けたい場合が該当する。このようなシナリオには、週末の休日に、家の車を使って数時間の距離に住む従兄弟に会いに行くことを十代の息子に許した親もまた該当するだろう。親は到着次第連絡するよう息子に言いつけているが、息子は忘れて連絡してこないことが多い。このような場合、息子が目的地に着いた際に親に自動的に通知するように警報をセットしておくことで、親または息子は、本発明の実施形態の利点を享受できるであろう。それまでの間、親は手動で息子のモバイル機器の位置を探索する別の実施形態をさらに用いて、息子が道に迷っていないことを確認することもできる。
【００７６】
４つめのシナリオは、誰かが所定の地理的位置に入ったことの通知の受信を複数のモバイル機器ユーザが希望する場合に該当する。例えば、公共交通機関を用いて都市に通勤しているが、駅やバス停まで歩いて行ける距離に住んでいない人物である。この人物は、夜や天気が荒れ模様の際には、自分で車を運転して駐車するよりも、配偶者かパートナーに迎えに来て欲しいと考えている。バスや鉄道の中には、携帯電話での通話を禁止する決まりや礼儀を有するものがあるため、この通勤者は到着するまで配偶者やパートナーへの電話を控えなくてはならず、その後例えば雨の中で待たなければならない。このようなユーザは、通勤者が所定の地理的範囲（すなわち、目的のバス停や駅に近い場所）に入ると、通勤者が通話する必要なく、通勤者のモバイル機器がパートナーの機器に通知することを可能にする本発明の実施形態の恩恵を享受できるであろう。従って、通勤者およびそのパートナーは、駅やバス停に同時に到着できるであろう。
【００７７】
同様に、５つめのシナリオは、ある人物が所定の範囲に入った際に通知を受信すると所定の動作を実行可能な、ネットワークに接続された所定の家電製品を有するユーザが該当する。例えば、ある人物が山中の別荘に旅行中に、この人物が所定の地理的範囲に入った（すなわち別荘に近づいた）際に例えば暖房や玄関先の照明といった別荘内の所定の家電製品がオンする。本発明の実施形態は、ユーザがこのような設定を行ったり、このような設定による利益を享受したりすることを可能にする。
【００７８】
６つめのシナリオは、誰かが所定の地理的位置から出たことの通知の受信を誰かが希望する場合に該当する。例えば、次の月曜が期限の宿題を終えるため、週末は外出しないように娘にいいつけた親が該当する。娘がモバイル機器をもって近所に出かけると、親は通知を受ける。ここで開示される技術は、親がそのような通知をうけることを可能にする。
【００７９】
７つめのシナリオは、何人かのモバイル機器ユーザが短期間に限って自分の位置が把握されることを希望する場合である。例えば、都市に出張中で、そこに住む旧友と夕食を取るために会うことを希望する人物が該当する。この人物はその都市に住んでおらず、旧友とあまり連絡を取り合っていないので、旧友が自分の位置を常に知ることができるようにはしたくない。この場合、旧友に２４時間だけ自分の位置を知ることを許可するための「１日パス」を、その人物が旧友に送信する用いる実施形態が有効である。２４時間経過後は、１日パスは失効し、旧友はその人物の位置を知ることができなくなる。
【００８０】
８つめのシナリオにおいて、ユーザはある限られた期間だけ複数人の間で位置情報を共用するため、複数人を連絡先リストから選択する。例えば、ユーザはアップル社のWWDCのような会議に参加するため街にいる。ユーザは、自分の知っている何人かの人物が同じ会議に参加していることを知っており、イベント中彼らの居場所を知りたいと思っている。本発明の一実施形態は、このユーザがその会議中に位置を知りたい複数の人物に招待状を送信することを可能にする。そのユーザの知人が招待を承認すると、ユーザおよび知人は互いに相手の位置を知ることができるようになる。しかし、相互に位置を知ることができる機能に対しては、（会議中だけといったような）１日のうちの特定の時間や、有効期限までといったような、何らかの制限がユーザによって設定されてもよい。
【００８１】
図２１〜図２４は、有効期限まで位置情報を共有するために用いたり、例えば８つめのシナリオで説明したようなシナリオの間に用いたりすることのできる所定のインタフェースの構成を示している。図２１は、位置を相互に共有するために友達に送信する招待状をユーザが設定および送信するための招待インタフェース画面の一実施形態を示している。図７で説明したものと同様、「＋」ボタン２１１０をタッピングすることでユーザは招待状に友達を追加することができる。招待状に追加された友達は、追加されたことを示すために、作成された電子メールにおける「To:」の欄と同様に、画面２１１０上に表示される。図２１は、ユーザが２人の友達を招待状に追加した状態を示しており、そのため友達の名前”Jared Gosler”および”Susan Adams”が表示されている。
【００８２】
図２１に示す例示的なインタフェースにおいて、ユーザはさらに、特定のイベント２１３０を入力し、有効期限２１４０を設定して、例えば招待状に関連付けることができる。しかし、適用可能な地理的範囲や他の時間制限を設定するような他の設定オプションが提供されてもよい。図２１において、ユーザは招待状を「WWDC」会議に関連付けるとともに有効期限を「６月１０日（金）午前１０時」に設定している。実施形態によっては、招待状を特定のイベントに関連付けることは、その特定のイベントによって提供される所定の地図および、例えばより正確な非GPS位置情報（すなわち、特定の会議室）を提供しうる無線アクセスポートへのアクセスをユーザに許可する。有効期限はユーザおよび招待された友達がいつまで位置情報を共有しうるかの制限を設定している。
【００８３】
図２２は、ユーザが送信した位置情報共有への招待状受信時に、招待された友達が受け取る警告の例を示している。友達への要求の通知を提供するメッセージボックス２２１０が表示される。要求のテキスト２２２０は、その友達が、ユーザおよび他の人物（Susan Adams）との、設定された有効期限までの位置情報共有に招待されていることを説明している。この実施形態において、メッセージボックス２２１０は機器のユーザがメッセージボックスを閉じることまたは招待状を見ることを可能にするボタンを含んでいる。他の実施形態において、メッセージボックスは、招待を承認、無視、または拒否するための、追加の／別のボタンを有する。
【００８４】
図２３は招待状の表示の例示的な実施形態を示している。この招待状は関連付けられたイベント２３１０および、設定された有効期限を含む、位置情報共有要求の詳細を説明するテキスト２３２０を含んでいる。さらに、位置共有招待状に招待された全ての人物の名前と対応する応答状況２３３０，２３４０，２３５０がさらに表示されている。図示の通り、人物名の隣のチェックマークはその人物が招待を承認していることを示す。同様に、人物名の隣に表示されるクエスチョンマークは、その人物が招待に未応答であり、招待が承認されるかどうか不確定であることを示す。ある人物が招待を拒否した場合、位置情報を共有しないという決定を示すため、その名前の隣にＸが表示される。Ｘの表示はまた、その人物がその会議の地理的範囲に存在しないことおよび／または、場合によってはまだチェックインしていないことを示してもよい。招待状を受信すると、機器ユーザは選択可能なオプション２３６０および２３７０の１つを選択して拒否または承認することができる。
【００８５】
図２４は、限定的な期間についての位置情報共有に招待した友達がユーザの招待を承認した後に、ユーザが一時的な友達２４６０を見ることを選択した際にユーザに表示される可能性の高い状態を示した実施形態を示す。図２４に示すように、この位置情報の共有に関連付けられたイベント２４１０（WWDC）がある。上述の通り、実施形態によっては、特定のイベントと位置が関連付けられている場合、ジオコーディングされたアクセスポートへの接続や、イベント開催者からの通知受信といった所定の追加機能が利用可能になる。あるいは、またはさらに、イベント名の入力および位置とイベントとの関連付けは、会議やイベントの終了時刻のようなオートフィル情報であってもよい。ここで、位置探索許可の終了時刻２４２０は、６月１０日の午前１０時と示されている。一時的な位置探索要求を承認した友達に関する情報は、この表示の２４３０ａ、２４３０ｂに示されている。図９に示した実施形態と同様に、友達情報はとりわけ、友達の名前、既知の最新位置およびその取得時刻を含むことができる。要求を特定のイベントに関連付ける場合、グループメッセージ２４４０を送信するためのボタンをクリックすることで、ユーザがリスト上の他の全てのユーザに連絡することが可能とすることが好ましい。このボタンは選択されると、位置情報を共有するための招待を承認した友達それぞれに送信される１つのメッセージをユーザが作成することを可能にする。ユーザはまた、地図を見るためのボタン２４５０を選択することができる。このボタンが選択されると、各友達の位置が示された頭上図が表示される。上述したように、この地図は通常の位置マップであっても、カスタマイズされかつ関連イベントに関連付けられた地図（すなわちMoscone CenterやYerba Buena Center内の部屋を示す地図）であってもよい。
【００８６】
上述の通り、本発明の一側面は、ユーザのモバイル機器から入手可能なデータを集めて使用することである。本発明はその一部の実施形態において、この収集されたデータが特定の人物を特定したり、特定の人物に連絡を取ったり位置探索したりすることが可能な個人情報データを含みうることを想定している。このような個人情報データは、ユーザ機器に関するハードウェア情報、位置関連データ、電話番号、電子メールアドレス、ツイッターＩＤのようなソーシャルメディアＩＤ、勤務先および自宅住所、友達、または他の任意の個人特定情報を含みうる。ユーザは通常このデータを、アカウント登録時および／またはアプリケーション使用中に入力する。
【００８７】
本発明は、そのような個人情報をここで示す技術で利用することが、ユーザに利便性を提供するために使用可能であることを認識している。ここで開示する技術の核となる機能（すなわち、ユーザの位置探索）を提供するために必要となるだけでなく、個人情報データはユーザの振る舞いのより良い理解や、効率的な適用の促進および測定にも利用することができる。さらに、ユーザに恩恵を与える個人情報データの他の使用もまた本発明が想定するところである。
【００８８】
本発明はさらに、そういった個人情報データの収集、解析、開示、転送、保存や他の利用を受け持つエンティテイが、個人情報データをプライベートかつセキュアに保つという業界または政府の要求に合致するまたはそれを超えると一般的に認識されるプライバシポリシおよび慣行を実装しかつ一貫して用いるべきであることを想定している。例えば、ユーザからの個人情報はエンティテイの合法的かつ合理的な利用のために収集すべきであり、合法的な利用を超えて共用または販売されるべきではない。さらに、このような収集はユーザに説明をして同意を得た後でのみ行われるべきである。また、このようなエンティテイは個人情報データへのアクセスを保護し、セキュアに保つとともに、個人情報データにアクセス可能な第３者が個人のプライバシーおよびセキュリティポリシーならびに手続を順守することを確実にするために必要ないかなる手順をも行うであろう。さらに、このようなエンティテイは、広く受け入れられているプライバシーポリシーおよび慣行を順守していることの第３者評価の対象とすることができる。
【００８９】
これまで説明していないが、個人情報データの利用またはアクセスをユーザが選択的にブロックする実施形態も考えられる。すなわち、個人情報データへのアクセスを防いだりブロックしたりするためのハードウェアおよび／またはソフトウェアもまた本発明の範囲に含まれる。例えば、位置情報に応じたサービスにおいて、ユーザが、個人情報データの送信の参加の「オプトイン」または「オプトアウト」を選択できるように本発明を構成してもよい。ユーザの個人情報データへのアクセスをブロックするための他の方法または技術も本発明の想定するところである。
【００９０】
本発明の範囲に含まれる実施形態は、コンピュータが実行可能な命令またはデータ構造を格納する有形および／または恒久的なコンピュータ可読記憶媒体をも含みうる。このような恒久的なコンピュータ可読記憶媒体は、上述した特定用途向けプロセッサの機能設計を含む、汎用もしくは特定用途向けコンピュータによってアクセス可能な任意の入手可能な媒体であってよい。非限定的な例として、このような恒久的なコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMまたは他の光ディスク記憶装置、磁気ディスク記憶装置または他の磁気記憶装置、または所望のプログラムコード手段をコンピュータが実行可能な命令、データ構造もしくはプロセッサチップ設計の形式で保持または格納するために使用可能な任意の他の媒体を含むことができる。情報がネットワークまたは他の通信接続（有線、無線またはその組み合わせのいずれか）を通じてコンピュータに転送または提供される場合、コンピュータはその接続をコンピュータ可読媒体と見なす。従って、そういった接続も正にコンピュータ可読媒体に含まれる。上述したものの組み合わせもまた、コンピュータ可読媒体の範囲に含まれる。
【００９１】
コンピュータが実行可能な命令には、例えば、汎用コンピュータ、特定用途向けコンピュータ、または特定用途向け処理装置に、所定の機能または機能群を実行させる命令およびデータを含む。コンピュータが実行可能な命令はまた、コンピュータが単体で、あるいはネットワーク環境において実行するプログラムモジュールを含む。通常、プログラムモジュールは、特定のタスクを実行したり特定の抽象データタイプを実装したりするルーチン、プログラム、部品、データ構造、オブジェクト、および特定用途向けプロセッサの設計に固有な機能などを含む。コンピュータが実行可能な命令、関連するデータ構造、およびプログラムモジュールは、ここで開示した方法の工程を実行するためのプログラムコード手段の例である。このような実行可能な命令または関連するデータ構造の特定のシーケンスは、そのような工程で説明される機能を実施するための対応する活動の例を示す。
【００９２】
本技術分野に属する当業者は、本発明の他の実施形態が、パーソナルコンピュータ、ハンドヘルド機器、マルチプロセッサシステム、マイクロプロセッサを用いた、あるいはプログラム可能な電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータなど、コンピュータシステムの多くの形式を用いるネットワークコンピューティング環境で実施されうることを理解するであろう。実施形態はまた、通信ネットワーク（有線リンク、無線リンク、またはその組み合わせのいずれか）を通じて接続されたローカルおよびリモート処理装置でタスクが実行される分散コンピューティング環境において実施されてもよい。分散コンピューティング環境において、プログラムモジュールはローカルおよびリモートメモリ記憶装置におかれてもよい。
【００９３】
上述した様々な実施形態は例示のみを目的としたものであり、本発明の範囲を限定するものと解されるべきではない。本技術分野の当業者は、ここで図示および説明した例示的な実施形態および用途に従わずに、また本発明の精神および範囲を離れることなく、ここで説明した基本原理に対して行いうる様々な修正や変更を容易に理解するであろう。
【図１】
0005427272.tif 000002
【図２】
0005427272.tif 000003
【図３ａ】
0005427272.tif 000004
【図３ｂ】
0005427272.tif 000005
【図４】
0005427272.tif 000006
【図５】
0005427272.tif 000007
【図６】
0005427272.tif 000008
【図７】
0005427272.tif 000009
【図８】
0005427272.tif 000010
【図９】
0005427272.tif 000011
【図１０】
0005427272.tif 000012
【図１１】
0005427272.tif 000013
【図１２】
0005427272.tif 000014
【図１３】
0005427272.tif 000015
【図１４】
0005427272.tif 000016
【図１５】
0005427272.tif 000017
【図１６】
0005427272.tif 000018
【図１７】
0005427272.tif 000019
【図１８】
0005427272.tif 000020
【図１９】
0005427272.tif 000021
【図２０】
0005427272.tif 000022
【図２１】
0005427272.tif 000023
【図２２】
0005427272.tif 000024
【図２３】
0005427272.tif 000025
【図２４】
0005427272.tif 000026