(57)【要約】  実装形態は、モバイルデバイスのロケーションを判断するためのシステムおよび方法に関する。モバイルデバイスは、識別情報についてサービス範囲内の他のモバイルデバイスに照会し、リモートサーバに記憶するために識別情報をリモートサーバに送ることができる。リモートサーバは、識別情報に対応する他のモバイルデバイスからロケーション情報を受信することができる。モバイルデバイスはリモートサーバにロケーション照会を送ることができ、リモートサーバは、他のモバイルデバイスの識別および/またはロケーション情報に基づいてモバイルデバイスのロケーションを判断または計算することができる。リモートサーバは、関連するモバイルアプリケーションにおいて使用するためにモバイルデバイスのロケーションをモバイルデバイスに与えることができる。
2013516842.tif 000002
【特許請求の範囲】
【請求項１】
ロケーションサービスを可能にするためのシステムであって、
モバイルデバイスのセットについてのロケーション情報の記録を維持することであって、各モバイルデバイスについての前記ロケーション情報が各モバイルデバイスの識別情報に関連する、維持することと、
モバイルデバイスからロケーションについての要求を受信することであって、前記要求が、前記モバイルデバイスの近傍内の他のモバイルデバイスについての識別情報のセットを含む、受信することと、
識別情報の前記受信されたセットに関連する、前記記録からの、利用可能なロケーション情報を利用して、前記モバイルデバイスの前記ロケーションを判断することと、
前記判断されたロケーションを前記モバイルデバイスに与えることと
を行うように構成されたサーバ
を含む、システム。
【請求項２】
前記サーバは、
モバイルデバイスの前記セットから前記ロケーション情報を受信することと、
各モバイルデバイスの前記識別情報に関連する各モバイルデバイスの前記ロケーション情報と、前記ロケーション情報が受信された時間とを前記記録に記憶することと
を行うようにさらに構成された、請求項1に記載のシステム。
【請求項３】
モバイルデバイスの前記セットからの前記ロケーション情報が周期的に受信される、請求項2に記載のシステム。
【請求項４】
前記ロケーションを判断することが、前記ロケーションを判断するために前記利用可能なロケーション情報を平均化すること、前記判断されたロケーションとして、モバイルデバイスの前記セット中の1つのモバイルデバイスに関連する直近に受信された前記利用可能なロケーション情報を選択すること、または前記判断されたロケーションとして、モバイルデバイスの前記セット中の1つのモバイルデバイスに関連する前記利用可能なロケーション情報をランダムに選択することのうちの1つを含む、請求項1に記載のシステム。
【請求項５】
前記識別情報が自己構成ネットワークデバイス識別子を含む、請求項1に記載のシステム。
【請求項６】
前記ロケーション情報が、全地球測位システム(GPS)ロケーションフィックス、アシスト型全地球測位システム(A-GPS)ロケーションフィックス、Galileoシステムロケーションフィックス、またはタワー三辺測量フィックスのうちの1つを含む、請求項1に記載のシステム。
【請求項７】
ロケーションサービスを可能にするための方法であって、
モバイルデバイスのセットについてのロケーション情報の記録を維持するステップであって、各モバイルデバイスについての前記ロケーション情報が各モバイルデバイスの識別情報に関連する、維持するステップと、
モバイルデバイスからロケーションについての要求を受信するステップであって、前記要求が、前記モバイルデバイスの近傍内の他のモバイルデバイスについての識別情報のセットを含む、受信するステップと、
識別情報の前記受信されたセットに関連する、前記記録からの、利用可能なロケーション情報を利用して、前記モバイルデバイスの前記ロケーションを判断するステップと、
前記判断されたロケーションを前記モバイルデバイスに与えるステップと
を含む、方法。
【請求項８】
前記方法は、
モバイルデバイスの前記セットから前記ロケーション情報を受信するステップと、
各モバイルデバイスの前記識別情報に関連する各モバイルデバイスの前記ロケーション情報と、前記ロケーション情報が受信された時間とを前記記録に記憶するステップと
をさらに含む、請求項7に記載の方法。
【請求項９】
モバイルデバイスの前記セットからの前記ロケーション情報が周期的に受信される、請求項8に記載の方法。
【請求項１０】
前記ロケーションを判断するステップが、前記ロケーションを判断するために前記利用可能なロケーション情報を平均化するステップ、前記判断されたロケーションとして、モバイルデバイスの前記セット中の1つのモバイルデバイスに関連する直近に受信された前記利用可能なロケーション情報を選択するステップ、または前記判断されたロケーションとして、モバイルデバイスの前記セット中の1つのモバイルデバイスに関連する前記利用可能なロケーション情報をランダムに選択するステップのうちの1つを含む、請求項7に記載の方法。
【請求項１１】
前記識別情報が自己構成ネットワークデバイス識別子を含む、請求項7に記載の方法。
【請求項１２】
前記ロケーション情報が、全地球測位システム(GPS)ロケーションフィックス、アシスト型全地球測位システム(A-GPS)ロケーションフィックス、Galileoシステムロケーションフィックス、またはタワー三辺測量フィックスのうちの1つを含む、請求項7に記載の方法。
【請求項１３】
ロケーションサービスを可能にするためのシステムであって、
モバイルデバイスのセットについてのロケーション情報の記録を維持するための手段であって、各モバイルデバイスについての前記ロケーション情報が各モバイルデバイスの識別情報に関連する、維持するための手段と、
モバイルデバイスからロケーションについての要求を受信し、前記ロケーションを前記モバイルデバイスに与えるための手段であって、前記要求が、前記モバイルデバイスの近傍内の他のモバイルデバイスについての識別情報のセットを含む、受信し、与えるための手段と、
識別情報の前記受信されたセットに関連する、前記記録からの、利用可能なロケーション情報を利用して、前記モバイルデバイスの前記ロケーションを判断するための手段と
を含む、システム。
【請求項１４】
前記要求を受信するための前記手段が、モバイルデバイスの前記セットから前記ロケーション情報を受信するようにさらに構成され、
前記記録を維持するための前記手段は、各モバイルデバイスの前記識別情報に関連する各モバイルデバイスの前記ロケーション情報と、前記ロケーション情報が受信された時間とを前記記録に記憶するようにさらに構成された、
請求項13に記載のシステム。
【請求項１５】
モバイルデバイスの前記セットからの前記ロケーション情報が周期的に受信される、請求項14に記載のシステム。
【請求項１６】
前記ロケーションを判断することが、前記ロケーションを判断するために前記利用可能なロケーション情報を平均化すること、前記判断されたロケーションとして、モバイルデバイスの前記セット中の1つのモバイルデバイスに関連する直近に受信された前記利用可能なロケーション情報を選択すること、または前記判断されたロケーションとして、モバイルデバイスの前記セット中の1つのモバイルデバイスに関連する前記利用可能なロケーション情報をランダムに選択することのうちの1つを含む、請求項13に記載のシステム。
【請求項１７】
前記識別情報が自己構成ネットワークデバイス識別子を含む、請求項13に記載のシステム。
【請求項１８】
前記ロケーション情報が、全地球測位システム(GPS)ロケーションフィックス、アシスト型全地球測位システム(A-GPS)ロケーションフィックス、Galileoシステムロケーションフィックス、またはタワー三辺測量フィックスのうちの1つを含む、請求項13に記載のシステム。
【請求項１９】
コンピュータによって実行されたとき、ロケーションサービスを実行することを前記コンピュータに行わせる命令を記録するコンピュータ可読記録媒体であって、前記命令は、
モバイルデバイスのセットについてのロケーション情報の記録を維持することを前記コンピュータに行わせるための少なくとも1つの命令であって、各モバイルデバイスについての前記ロケーション情報が各モバイルデバイスの識別情報に関連する、少なくとも1つの命令と、
モバイルデバイスからロケーションについての要求を受信することを前記コンピュータに行わせるための少なくとも1つの命令であって、前記要求が、前記モバイルデバイスの近傍内の他のモバイルデバイスについての識別情報のセットを含む、少なくとも1つの命令と、
識別情報の前記受信されたセットに関連する、前記記録からの、利用可能なロケーション情報を利用して、前記モバイルデバイスの前記ロケーションを判断することを前記コンピュータに行わせるための少なくとも1つの命令と、
前記判断されたロケーションを前記モバイルデバイスに与えることを前記コンピュータに行わせるための少なくとも1つの命令と
を含む、コンピュータ可読記録媒体。
【請求項２０】
モバイルデバイスの前記セットから前記ロケーション情報を受信することを前記コンピュータに行わせるための少なくとも1つの命令と、
各モバイルデバイスの前記識別情報に関連する各モバイルデバイスの前記ロケーション情報と、前記ロケーション情報が受信された時間とを前記記録に記憶することを前記コンピュータに行わせるための少なくとも1つの命令と
をさらに含む、請求項19に記載のコンピュータ可読記録媒体。
【請求項２１】
モバイルデバイスの前記セットからの前記ロケーション情報が周期的に受信される、請求項20に記載のコンピュータ可読記録媒体。
【請求項２２】
前記ロケーションを判断することを前記コンピュータに行わせるための前記少なくとも1つの命令が、前記ロケーションを判断するために前記利用可能なロケーション情報を平均化することを前記コンピュータに行わせるための少なくとも1つの命令、前記判断されたロケーションとして、モバイルデバイスの前記セット中の1つのモバイルデバイスに関連する直近に受信された前記利用可能なロケーション情報を選択することを前記コンピュータに行わせるための少なくとも1つの命令、または前記判断されたロケーションとして、モバイルデバイスの前記セット中の1つのモバイルデバイスに関連する前記利用可能なロケーション情報をランダムに選択することを前記コンピュータに行わせるための少なくとも1つの命令のうちの1つを含む、請求項19に記載のコンピュータ可読記録媒体。
【請求項２３】
前記識別情報が自己構成ネットワークデバイス識別子を含む、請求項19に記載のコンピュータ可読記録媒体。
【請求項２４】
前記ロケーション情報が、全地球測位システム(GPS)ロケーションフィックス、アシスト型全地球測位システム(A-GPS)ロケーションフィックス、Galileoシステムロケーションフィックス、またはタワー三辺測量フィックスのうちの1つを含む、請求項19に記載のコンピュータ可読記録媒体。
【請求項２５】
モバイルデバイスであって、
サーバとのワイヤレスインターフェースと、
自己構成ワイヤレスネットワークインターフェースと、
前記ワイヤレスインターフェースおよび前記自己構成ワイヤレスネットワークインターフェースと通信するプロセッサであって、前記プロセッサが、
前記自己構成ワイヤレスネットワークインターフェースを介して前記モバイルデバイスの近傍内の他のモバイルデバイスのセットを識別することと、
他のモバイルデバイスの前記セットの識別情報に基づいて、前記ワイヤレスインターフェースを介して前記サーバに前記モバイルデバイスのロケーションを要求することと、
前記ワイヤレスインターフェースを介して前記サーバから前記モバイルデバイスの前記ロケーションを受信することと
を含む処理を開始するように構成された、プロセッサと
を含む、モバイルデバイス。
【請求項２６】
他のモバイルデバイスの前記セットを識別することは、
前記自己構成ワイヤレスネットワークインターフェースを介して前記モバイルデバイスの近傍内の他のモバイルデバイスに照会要求をブロードキャストすることと、
前記自己構成ワイヤレスネットワークインターフェースを介して他のモバイルデバイスの前記セットから応答を受信することであって、前記応答が他のモバイルデバイスの前記セットの前記識別情報を含む、受信することと
を含む、請求項25に記載のモバイルデバイス。
【請求項２７】
前記識別情報が自己構成ネットワークデバイス識別子を含む、請求項26に記載のモバイルデバイス。
【請求項２８】
前記プロセッサが、
前記ロケーションを要求する前記モバイルデバイスの構成要素に前記ロケーションを与えること
を含む処理を開始するようにさらに構成された、請求項25に記載のモバイルデバイス。
【請求項２９】
前記ロケーションを記憶するための、前記プロセッサと通信するメモリ
をさらに含む、請求項25に記載のモバイルデバイス。
【請求項３０】
前記ロケーションが、他のモバイルデバイスの前記セットの全地球測位システム(GPS)ロケーションフィックス、他のモバイルデバイスの前記セットのアシスト型全地球測位システム(A-GPS)ロケーションフィックス、Galileoシステムロケーションフィックス、または他のモバイルデバイスの前記セットのタワー三辺測量フィックスのうちの少なくとも1つに基づく、請求項25に記載のモバイルデバイス。
【請求項３１】
ロケーションフィクシングハードウェアとは無関係にモバイルデバイスにおいてロケーションを判断する方法であって、
前記モバイルデバイスの近傍内の他のモバイルデバイスのセットを識別するステップと、
他のモバイルデバイスの前記セットの識別情報に基づいて、サーバに前記モバイルデバイスのロケーションを要求するステップと、
前記サーバから前記モバイルデバイスの前記ロケーションを受信するステップと
を含む、方法。
【請求項３２】
他のモバイルデバイスの前記セットを識別するステップは、
前記モバイルデバイスの近傍内の他のモバイルデバイスに照会要求をブロードキャストするステップと、
他のモバイルデバイスの前記セットから応答を受信するステップであって、前記応答が他のモバイルデバイスの前記セットの前記識別情報を含む、受信するステップと
を含む、請求項31に記載の方法。
【請求項３３】
前記識別情報が自己構成ネットワークデバイス識別子を含む、請求項32に記載の方法。
【請求項３４】
前記方法が、
前記ロケーションを要求する前記モバイルデバイスの構成要素に前記ロケーションを与えるステップ
をさらに含む、請求項31に記載の方法。
【請求項３５】
前記方法が、
前記ロケーションを前記モバイルデバイスに記憶するステップ
をさらに含む、請求項31に記載の方法。
【請求項３６】
前記ロケーションが、他のモバイルデバイスの前記セットの全地球測位システム(GPS)ロケーションフィックス、他のモバイルデバイスの前記セットのアシスト型全地球測位システム(A-GPS)ロケーションフィックス、Galileoシステムロケーションフィックス、または他のモバイルデバイスの前記セットのタワー三辺測量フィックスのうちの少なくとも1つに基づく、請求項31に記載の方法。
【請求項３７】
ロケーションフィクシングハードウェアとは無関係にモバイルデバイスにおいてロケーションを判断するためのシステムであって、
前記モバイルデバイスの近傍内の他のモバイルデバイスのセットを識別するための手段と、
他のモバイルデバイスの前記セットの識別情報に基づいて、サーバに前記モバイルデバイスのロケーションを要求するための手段と、
前記サーバから前記モバイルデバイスの前記ロケーションを受信するための手段と
を含む、システム。
【請求項３８】
他のモバイルデバイスの前記セットを識別するための前記手段は、
前記モバイルデバイスの近傍内の他のモバイルデバイスに照会要求をブロードキャストすることと、
他のモバイルデバイスの前記セットから応答を受信することであって、前記応答が他のモバイルデバイスの前記セットの前記識別情報を含む、受信することと
を行うように構成された、請求項37に記載のシステム。
【請求項３９】
前記識別情報が自己構成ネットワークデバイス識別子を含む、請求項38に記載のシステム。
【請求項４０】
前記ロケーションを要求する前記モバイルデバイスの構成要素に前記ロケーションを与えるための手段
をさらに含む、請求項37に記載のシステム。
【請求項４１】
前記ロケーションを前記モバイルデバイスに記憶するための手段
をさらに含む、請求項37に記載のシステム。
【請求項４２】
前記ロケーションが、他のモバイルデバイスの前記セットの全地球測位システム(GPS)ロケーションフィックス、他のモバイルデバイスの前記セットのアシスト型全地球測位システム(A-GPS)ロケーションフィックス、Galileoシステムロケーションフィックス、または他のモバイルデバイスの前記セットのタワー三辺測量フィックスのうちの少なくとも1つに基づく、請求項37に記載のシステム。
【請求項４３】
モバイルデバイスによって実行されたとき、ロケーションフィクシングハードウェアとは無関係にロケーションを判断することを前記モバイルデバイスに行わせる命令を記録するコンピュータ可読記録媒体であって、前記命令は、
前記モバイルデバイスの近傍内の他のモバイルデバイスのセットを識別することを前記モバイルデバイスに行わせるための少なくとも1つの命令と、
他のモバイルデバイスの前記セットの識別情報に基づいて、サーバに前記モバイルデバイスのロケーションを要求することを前記モバイルデバイスに行わせるための少なくとも1つの命令と、
前記サーバから前記モバイルデバイスの前記ロケーションを受信することを前記モバイルデバイスに行わせるための少なくとも1つの命令と
を含む、コンピュータ可読記録媒体。
【請求項４４】
他のモバイルデバイスの前記セットを識別することを前記モバイルデバイスに行わせるための前記少なくとも1つの命令は、
前記モバイルデバイスの近傍内の他のモバイルデバイスに照会要求をブロードキャストすることを前記モバイルデバイスに行わせるための少なくとも1つの命令と、
他のモバイルデバイスの前記セットから応答を受信することを前記モバイルデバイスに行わせるための少なくとも1つの命令であって、前記応答が他のモバイルデバイスの前記セットの前記識別情報を含む、少なくとも1つの命令と
を含む、請求項43に記載のコンピュータ可読記録媒体。
【請求項４５】
前記識別情報が自己構成ネットワークデバイス識別子を含む、請求項44に記載のコンピュータ可読記録媒体。
【請求項４６】
前記ロケーションを要求する前記モバイルデバイスの構成要素に前記ロケーションを与えることを前記モバイルデバイスに行わせるための少なくとも1つの命令
をさらに含む、請求項43に記載のコンピュータ可読記録媒体。
【請求項４７】
前記ロケーションを前記モバイルデバイスに記憶することを前記モバイルデバイスに行わせるための少なくとも1つの命令
をさらに含む、請求項43に記載のコンピュータ可読記録媒体。
【請求項４８】
前記ロケーションが、他のモバイルデバイスの前記セットの全地球測位システム(GPS)ロケーションフィックス、他のモバイルデバイスの前記セットのアシスト型全地球測位システム(A-GPS)ロケーションフィックス、Galileoシステムロケーションフィックス、または他のモバイルデバイスの前記セットのタワー三辺測量フィックスのうちの少なくとも1つに基づく、請求項43に記載のコンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本教示は、一般に、モバイルデバイスのロケーションを判断するための方法および装置に関し、より詳細には、モバイルデバイス中に存在するロケーションフィクシングハードウェアとは無関係にロケーションサービスをモバイルデバイスに提供するためのプラットフォームおよび技法に関する。
【背景技術】
【０００２】
セルラー電話技術は、今日の社会において優勢な通信方式になった。セルラー電話は、セルラー電話ユーザのための多種多様な機能を含む程度まで進化した。1つのそのような機能はセルラー電話のロケーションフィクシングである。現在、多くのタイプのセルラー電話は、全地球測位システム(GPS)などのロケーションフィクシングハードウェアを含む。その結果、高度な機能を含むことにより、セルラー電話のコストが上昇した。ロケーションフィクシングをサポートするために、GPS受信機などのハードウェアおよびソフトウェアを含むようにセルラー電話を製造する必要がある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
さらに、セルラー電話は、ロケーションを判断する能力が限られていることがある。たとえば、GPS対応電話では、GPS信号を受信するために空の見通しがよいことが必要とされる。したがって、GPS対応電話は、屋内にある場合または木々によって遮られる場合、しばしば、電話のロケーションフィックスを行うことができないことになる。したがって、コスト効果的でフレキシブルなロケーションサービスをモバイルデバイスに提供する方法およびシステムが必要である。
【課題を解決するための手段】
【０００４】
以下で、1つまたは複数の態様の基本的理解を与えるために、そのような態様の簡略化された概要を提示する。この概要は、すべての企図された態様の包括的な概観ではなく、すべての態様の主要または重要な要素を識別するものでも、いずれかまたはすべての態様の範囲を定めるものでもない。その唯一の目的は、後で提示するより詳細な説明の導入として、1つまたは複数の態様のいくつかの概念を簡略化された形で提示することである。
【０００５】
1つまたは複数の実装形態によれば、ロケーションサービスを可能にするためのシステムがサーバを含む。サーバは、モバイルデバイスのセットについてのロケーション情報の記録を維持するように構成され得る。各モバイルデバイスについてのロケーション情報は各モバイルデバイスの識別情報に関連する。サーバは、モバイルデバイスからロケーションについての要求を受信するように構成され得る。上記要求は、モバイルデバイスの近傍内の他のモバイルデバイスについての識別情報のセットを含む。サーバは、識別情報の受信されたセットに関連する、上記記録からの、利用可能なロケーション情報を利用して、モバイルデバイスのロケーションを判断するように構成され得、判断されたロケーションをモバイルデバイスに与えるように構成され得る。
【０００６】
さらに、1つまたは複数の実装形態によれば、ロケーションサービスを可能にするための方法が、モバイルデバイスのセットについてのロケーション情報の記録を維持するステップを含むことができる。各モバイルデバイスについてのロケーション情報は各モバイルデバイスの識別情報に関連する。本方法は、モバイルデバイスからロケーションについての要求を受信するステップをさらに含むことができる。上記要求は、モバイルデバイスの近傍内の他のモバイルデバイスについての識別情報のセットを含む。本方法は、識別情報の受信されたセットに関連する、上記記録からの、利用可能なロケーション情報を利用して、モバイルデバイスのロケーションを判断するステップと、判断されたロケーションをモバイルデバイスに与えるステップとをさらに含むことができる。
【０００７】
さらに、1つまたは複数の実装形態によれば、ロケーションサービスを可能にするためのシステムが、モバイルデバイスのセットについてのロケーション情報の記録を維持するための手段を含むことができる。各モバイルデバイスについてのロケーション情報は各モバイルデバイスの識別情報に関連する。本システムは、モバイルデバイスからロケーションについての要求を受信し、ロケーションをモバイルデバイスに与えるための手段をも含むことができる。上記要求は、モバイルデバイスの近傍内の他のモバイルデバイスについての識別情報のセットを含む。本システムは、識別情報の受信されたセットに関連する、上記記録からの、利用可能なロケーション情報を利用して、モバイルデバイスのロケーションを判断するための手段をも含むことができる。
【０００８】
さらに、1つまたは複数の実装形態によれば、コンピュータプログラム製品が、コンピュータによって実行されたとき、ロケーションサービスを実行することをコンピュータに行わせる命令を記憶するコンピュータ可読媒体を含むことができる。上記命令は、モバイルデバイスのセットについてのロケーション情報の記録を維持することをコンピュータに行わせるための少なくとも1つの命令を含むことができる。各モバイルデバイスについてのロケーション情報は各モバイルデバイスの識別情報に関連する。上記命令は、モバイルデバイスからロケーションについての要求を受信することをコンピュータに行わせるための少なくとも1つの命令をさらに含むことができる。上記要求は、モバイルデバイスの近傍内の他のモバイルデバイスについての識別情報のセットを含む。上記命令は、識別情報の受信されたセットに関連する、上記記録からの、利用可能なロケーション情報を利用して、モバイルデバイスのロケーションを判断することをコンピュータに行わせるための少なくとも1つの命令と、判断されたロケーションをモバイルデバイスに与えることをコンピュータに行わせるための少なくとも1つの命令とをさらに含むことができる。
【０００９】
さらに、1つまたは複数の実装形態によれば、モバイルデバイスが、サーバとのワイヤレスインターフェースと、自己構成ワイヤレスネットワークインターフェースと、ワイヤレスインターフェースおよび自己構成ワイヤレスネットワークインターフェースと通信するプロセッサとを含むことができる。プロセッサは、自己構成ワイヤレスネットワークインターフェースを介してモバイルデバイスの近傍内の他のモバイルデバイスのセットを識別することを含む処理を開始するように構成され得る。プロセッサは、他のモバイルデバイスのセットの識別情報に基づいて、ワイヤレスインターフェースを介してサーバにモバイルデバイスのロケーションを要求することを含む処理を開始するようにも構成され得る。プロセッサは、ワイヤレスインターフェースを介してサーバからモバイルデバイスのロケーションを受信することを含む処理を開始するように構成され得る。
【００１０】
さらに、1つまたは複数の実装形態によれば、ロケーションフィクシングハードウェアとは無関係にモバイルデバイスにおいてロケーションを判断する方法が、モバイルデバイスの近傍内の他のモバイルデバイスのセットを識別するステップを含むことができる。本方法は、他のモバイルデバイスのセットの識別情報に基づいて、サーバにモバイルデバイスのロケーションを要求するステップと、サーバからモバイルデバイスのロケーションを受信するステップとをさらに含むことができる。
【００１１】
さらに、1つまたは複数の実装形態によれば、ロケーションサービスを可能にするためのシステムが、モバイルデバイスのセットについてのロケーション情報の記録を維持するための手段を含むことができる。各モバイルデバイスについてのロケーション情報は各モバイルデバイスの識別情報に関連する。本システムは、モバイルデバイスからロケーションについての要求を受信し、ロケーションをモバイルデバイスに与えるための手段をさらに含むことができる。上記要求は、モバイルデバイスの近傍内の他のモバイルデバイスについての識別情報のセットを含む。本システムは、識別情報の受信されたセットに関連する、上記記録からの、利用可能なロケーション情報を利用して、上記ロケーションを判断するための手段をさらに含むことができる。
【００１２】
さらに、1つまたは複数の実装形態によれば、コンピュータプログラム製品が、モバイルデバイスによって実行されたとき、ロケーションフィクシングハードウェアとは無関係にロケーションを判断することをモバイルデバイスに行わせる命令を記憶するコンピュータ可読媒体を含むことができる。上記命令は、モバイルデバイスの近傍内の他のモバイルデバイスのセットを識別することをモバイルデバイスに行わせるための少なくとも1つの命令を含むことができる。上記命令は、他のモバイルデバイスのセットの識別情報に基づいて、サーバにモバイルデバイスのロケーションを要求することをモバイルデバイスに行わせるための少なくとも1つの命令をも含むことができる。上記命令は、サーバからモバイルデバイスのロケーションを受信することをモバイルデバイスに行わせるための少なくとも1つの命令をも含むことができる。
【００１３】
本明細書に組み込まれ、本明細書の一部を構成する添付の図面は、本教示の態様を示し、その説明とともに、本教示の原理について説明するのに役立つ。
【図面の簡単な説明】
【００１４】
【図１】本教示の1つまたは複数の態様に一致する、1つまたは複数のモバイルデバイスと、ロケーションサービスシステムのバックエンドにおけるリモートサーバとを含む、ロケーションサービスシステムを示す図である。
【図２】本教示の1つまたは複数の実装形態による、ロケーションフィクシングハードウェアなしにロケーションを判断するように構成されたモバイルデバイスの例示的な構成を示す図である。
【図３】本教示の1つまたは複数の実装形態に一致する、ロケーション情報をリモートサーバに与えることができる他のモバイルデバイスの例示的な構成を示す図である。
【図４】本教示の1つまたは複数の実装形態に一致する、ロケーションサービスシステムのバックエンドの例示的な構成を示す図である。
【図５Ａ】本教示の一実装形態による、リモートサーバと通信してモバイルデバイスのロケーションを判断するためにモバイルデバイスによって実行される処理のフローチャートを示す図である。
【図５Ｂ】本教示の一実装形態による、リモートサーバと通信してモバイルデバイスのロケーションを判断するためにモバイルデバイスによって実行される処理のフローチャートを示す図である。
【図５Ｃ】本教示の一実装形態による、リモートサーバと通信してモバイルデバイスのロケーションを判断するためにモバイルデバイスによって実行される処理のフローチャートを示す図である。
【図６】本教示の一実装形態による、他のモバイルデバイスのロケーション情報を判断するためにリモートサーバによって実行される処理のフローチャートを示す図である。
【発明を実施するための形態】
【００１５】
次に、その一例が添付の図面に示されている、本教示の実施形態に詳細に言及する。可能な場合はいつでも、同じまたは同様の部分を指すために図面全体にわたって同じ参照番号を使用する。
【００１６】
以下の説明では、その説明の一部を形成する添付の図面を参照し、それらの図面には、実施され得る特定の実装形態を例として示す。これらの実装形態について、当業者がこれらの実装形態を実施することができるように十分詳細に説明するが、他の実装形態が利用され得、本教示の範囲から逸脱することなく変更が行われ得ることを理解されたい。したがって、以下の説明は例にすぎない。
【００１７】
本教示の1つまたは複数の態様は、ロケーションフィクシングハードウェアがないことがあるモバイルデバイスにロケーションサービスを提供するためのシステムおよび方法に関する。より詳細には、モバイルデバイスが、モバイルデバイスの近傍内の他のモバイルデバイスを識別することと、リモートサーバにロケーションを要求することとを行うように構成され得る。モバイルデバイスは、自己構成ネットワークインターフェース、たとえば、Bluetooth(登録商標)ネットワークインターフェースを介して他のモバイルデバイスを探索するように構成され得る。識別後、モバイルデバイスは、他のモバイルデバイスの、探索において取得された識別情報をワイヤレスインターフェースを介してリモートサーバに送信するように構成され得る。たとえば、識別情報は、他のモバイルデバイスの、Bluetooth(登録商標)デバイス識別子などのネットワークインターフェース識別子であり得る。リモートサーバは、ロケーション検出リソースとともに使用可能である他のモバイルデバイスの識別情報、たとえば、ネットワークインターフェース識別子に関連する、他のロケーション対応モバイルデバイスのロケーション情報の記録を維持するように構成され得る。モバイルデバイスから識別情報を受信することに応答して、リモートサーバは、モバイルデバイスによって送信された識別情報に関連する利用可能なロケーション情報を取り出すことと、他のモバイルデバイスの利用可能なロケーション情報に基づいてモバイルデバイスのロケーションを判断することとを行うように構成され得る。リモートサーバは、判断されたロケーションをワイヤレスインターフェースを介してモバイルデバイスに送信するように構成され得る。
【００１８】
「例示的」という単語は、本明細書では、例、事例、または例示の働きをすることを意味するために使用する。「例示的」として本明細書で説明するいかなる態様または設計も、必ずしも他の態様または設計よりも好ましいまたは有利なものと解釈すべきではない。むしろ、例示的という単語の使用は、概念を具体的な形で提示するものである。
【００１９】
さらに、「または」という用語は、排他的な「または」ではなく、包括的な「または」を意味するものとする。すなわち、別段の規定がない限り、または文脈から明白でない限り、「XはAまたはBを使用する」という句は、自然な包括的置換のいずれかを意味するものとする。すなわち、「XはAまたはBを使用する」という句は、XがAを使用する場合、XがBを使用する場合、またはXがAとBの両方を使用する場合のいずれによっても満たされる。さらに、本出願および添付の特許請求の範囲で使用する冠詞「a」および「an」は、別段の規定がない限り、または単数形を示すことが文脈から明白でない限り、概して「1つまたは複数」を意味するものと解釈すべきである。
【００２０】
さらに、いくつかのデバイス、構成要素、モジュールなどを含み得るシステムに関して、様々な態様または特徴を提示する。様々なシステムは、追加のデバイス、構成要素、モジュールなどを含んでもよく、および/または各図に関連して論じるデバイス、構成要素、モジュールなどのすべてを含まなくてもよいことを理解および諒解されたい。これらの手法の組合せも使用され得る。
【００２１】
1つまたは複数の態様では、たとえば全体的に図1に示すように、システム100が、ロケーションフィクシングハードウェアを含まないことがあるモバイルデバイス105にロケーションサービスを提供することができる。1つまたは複数の実装形態によれば、全体的に図1に示すように、モバイルデバイス105の使用中に、モバイルデバイス105のロケーションが判断され得る。たとえば、モバイルデバイス105のユーザが、たとえば、モバイルデバイス105上で実行される1つまたは複数のアプリケーション(たとえば、マッピングアプリケーション)を使用することによって、モバイルデバイス105のロケーションを知ることを望むことがある。これを達成するために、モバイルデバイス105は、リモートサーバ115によって維持される他のモバイルデバイス110のうちの1つまたは複数のロケーション情報に基づいてモバイルデバイス105のロケーションを判断するためにモバイルデバイス105の近傍内の他のモバイルデバイス110と通信することと、リモートサーバ115と通信することとによって、モバイルデバイス105のロケーションを判断することができる。
【００２２】
1つまたは複数の実装形態によれば、モバイルデバイス105は、モバイルデバイス105の近傍内の他のモバイルデバイス110を識別するように構成され得る。モバイルデバイス105は、自己構成ネットワークインターフェースを介して他のモバイルデバイス110を探索するように構成され得る。たとえば、モバイルデバイス105と他のモバイルデバイス110のうちの1つまたは複数とは、Bluetooth(登録商標)ネットワークインターフェースなどの自己構成ネットワークインターフェースを介して通信するように構成され得る。モバイルデバイス105は、自己構成ネットワーク信号の範囲125内の他のモバイルデバイス110に照会要求120をブロードキャストするように構成され得る。照会要求120は、他のモバイルデバイス110からの応答を要求または開始するように構成され得る。それに応答して、自己構成ネットワークインターフェースを含んでいる他のモバイルデバイス110は、照会要求120に対する応答130を送信するように構成され得る。応答130は、他のモバイルデバイス110を識別する情報を含むように構成され得る。たとえば、自己構成ネットワークインターフェースを含んでいる他のモバイルデバイス110の各々は、それの特定の自己構成ネットワークインターフェースの、Bluetooth(登録商標)デバイス識別子などのネットワークインターフェース識別子で応答することができる。
【００２３】
1つまたは複数の実装形態によれば、モバイルデバイス105および他のモバイルデバイス110は、任意のタイプのモバイルおよび/またはポータブル電子デバイスであり得る。モバイルデバイス105および他のモバイルデバイス110の例は、セルラー電話(「セルフォン」)、携帯情報端末(PDA)、スマートセルラー電話(「スマートフォン」)、ラップトップコンピュータ、タブレットコンピュータ、デジタルメディアデバイス、GPSデバイスなどを含むことができる。通信するために、モバイルデバイス105と他のモバイルデバイス110のうちの1つまたは複数とは、自己構成ネットワークインターフェースを介して通信するのに必要なハードウェア、ソフトウェア、およびそれらの組合せを含むように構成され得る。たとえば、モバイルデバイス105と他のモバイルデバイス110のうちの1つまたは複数とは、Bluetooth(登録商標)ハードウェア、ソフトウェア、およびそれらの組合せを含むように構成され得る。
【００２４】
1つまたは複数の実装形態によれば、他のモバイルデバイス110のうちの1つまたは複数は、他のモバイルデバイス110のロケーション、位置、方向、移動などを検出する能力を含むことができる。たとえば、他のモバイルデバイス110のロケーションまたは位置の検出は、全地球測位システム(GPS)、アシスト型GPS(A-GPS)、登録セルラー電話に対するセルラー電話基地局三角測量または三辺測量に基づく基地局三角測量または三辺測量、欧州のGalileo測位システム、あるいは他の測位またはロケーションサービスまたは技法など、様々な測位サービスを使用して実行され得る。たとえば、他のモバイルデバイス110のロケーションの検出および識別は、様々なハードウェア、ソフトウェア、およびそれらの組合せ、たとえば、他のモバイルデバイス110に組み込まれたGPSユニット、加速度計、ジャイロスコープ、ならびに/あるいは他の方向および移動検出サービスまたは技法を使用して実行され得る。
【００２５】
1つまたは複数の実装形態によれば、モバイルデバイス105および他のモバイルデバイス110への組込みに関して、自己構成ネットワークを介した通信とロケーション検出とは、カリフォルニア州サンディエゴのQualcomm Incorporatedから入手可能なBREW(登録商標) APIを使用して実行または拡張され得る。通信およびロケーション検出をモバイルデバイス105および他のモバイルデバイス110に組み込むために、Sun MicrosystemsのJava(登録商標) Platform, Micro Edition(Java ME(商標))、Symbian Ltd.のSymbian(商標) OS、Adobe SystemsのFlash Lite(商標)、Microsoft CorporationのWindows Mobile(商標)、Apple Inc.のiPhone(商標) OS、Open Handset AllianceのAndroid(商標)などの下で実行可能であるAPIおよびサービスなど、他の通信およびロケーション検出APIまたはサービスが使用され得る。
【００２６】
1つまたは複数の実装形態によれば、識別後、モバイルデバイス105は、リモートサーバ115にロケーション要求135を送信するように構成され得る。ロケーション要求135は、モバイルデバイス105の近傍内にある他のモバイルデバイス110に基づいてモバイルデバイス105のロケーションを要求するように構成され得る。ロケーション要求135は、モバイルデバイス105の近傍内の他のモバイルデバイス110を識別する情報を含むことができる。たとえば、モバイルデバイス105は、ロケーション要求135中でBluetooth(登録商標)デバイス識別子などのネットワークインターフェース識別子をリモートサーバ115に送信するように構成され得る。
【００２７】
1つまたは複数の実装形態によれば、図1に示すように、モバイルデバイス105は、ワイヤレスインターフェースを介してリモートサーバ115と通信するように構成され得る。たとえば、1つまたは複数の実装形態では、モバイルデバイス105は、ワイヤレス接続145と、システム100内で動作する1つまたは複数のワイヤレスサーバ155によってサポートされる1つまたは複数の基地局150とを介して、ワイヤレスサービスプロバイダ140と通信することができる。次に、ワイヤレスサービスプロバイダ140は、たとえば、ユーザ関係のサブスクリプション、構成、測位、および他の情報を記憶するユーザデータベースを含む、リソースのセット(図示せず)と通信することができる。ワイヤレス接続145は、モバイルデバイス105とワイヤレスサービスプロバイダ140とに適合する任意のタイプのワイヤレスプロトコルまたは規格、たとえば、任意のバージョンのGlobal System for Mobile communication(GSM(登録商標))、IEEE802.16規格(WiMAX)、またはIEEE802.11規格(Wi-Fi)に従って構成され得る。
【００２８】
1つまたは複数の実装形態によれば、リモートサーバ115は、ワイヤード電気リンク(たとえば、T1またはT3ライン)、ワイヤレスリンク、光リンク、または他の方式の通信結合を含むことができる1つまたは複数の通信接続160を介してワイヤレスサービスプロバイダ140に結合され得る。ワイヤレスサービスプロバイダ140は、セルラーテレフォニーまたは他のデジタル通信サービスをモバイルデバイス105および他のモバイルデバイス110などの電子デバイスのユーザに提供することができる。たとえば、ワイヤレスサービスプロバイダ140は、セルラー電話サービスプロバイダ(Sprint Nextel Corporationなど)、パーソナル通信サービス(PCS)プロバイダ、または他のワイヤレスサービスのプロバイダであり得る。ワイヤレスサービスプロバイダ140は、1つまたは複数のワイヤレスサーバ155と基地局150のネットワークとを含むことができる。モバイルデバイス105および他のモバイルデバイス110は、ワイヤレス接続145上でマルチティア(たとえば、クライアントサーバ)ソフトウェアアーキテクチャを使用して、基地局150を介してワイヤレスサービスプロバイダ140のワイヤレスサーバ155と通信することができる。したがって、モバイルデバイス105および他のモバイルデバイス110は、ワイヤレスサービスプロバイダ140を介してリモートサーバ115と通信することができ、リモートサーバ115は、ロケーション情報などの関係する情報内容をワイヤレスサービスプロバイダ140を介してモバイルデバイス105に配信することができる。
【００２９】
1つまたは複数の実装形態によれば、モバイルデバイス105は、リモートサーバ115とワイヤレス接続145とに適合する任意の従来のフォーマットまたはプロトコルで、識別情報、たとえば自己構成ネットワーク識別子を含むロケーション要求135をリモートサーバ115に送信するように構成され得る。ロケーション要求135は、たとえば、電子メール(電子メール)、マルチメディアメッセージングサービス(MMS)、拡張メッセージングサービス(EMS)、ショートメッセージングサービス(SMS)、WAPプッシュ、アプリケーションプッシュ(たとえば、プッシュレジストリ)、標準形式のテレフォニーなどの通信プロトコルを介して、または伝送制御プロトコル(TCP)、IP、ユーザデータグラムプロトコル(UDP)、ハイパーテキスト転送プロトコル(HTTP)、およびファイル転送プロトコル(FTP)などの標準インターネットプロトコルを介して、リモートサーバ115に通信され得る。
【００３０】
1つまたは複数の実装形態によれば、リモートサーバ115は、モバイルデバイス105の近傍内の他のモバイルデバイス110の識別情報を含むロケーション要求135に基づいてモバイルデバイス105のロケーションを判断するように構成され得、判断されたロケーションをモバイルデバイス105に与えるように構成され得る。リモートサーバ115は、ローカルエリアネットワーク(LAN)、イントラネット、またはインターネットなどの1つまたは複数の通信ネットワーク上で接続180によって結合され得る1つまたは複数のサーバ165および170とリポジトリ175とを含むことができる。たとえば、リモートサーバ115は、ロケーション要求135を受信することと、モバイルデバイス105のロケーションを配信するかまたはモバイルデバイス105のロケーションへのアクセスを与えることとを行うために、ワイヤレスサービスプロバイダ140および/またはモバイルデバイス105との通信を扱うためのメッセージングサーバ165のうちの1つまたは複数を含むことができる。
【００３１】
1つまたは複数の実装形態によれば、リモートサーバ115は、ロケーションサービスサーバ170を含むように構成され得る。ロケーションサービスサーバ170は、ロケーション要求135を受信するように構成され得、モバイルデバイス105のロケーションを判断するように構成され得る。一実装形態では、メッセージングサーバ165、ロケーションサービスサーバ170、およびリポジトリ175は、異なる物理的ロケーションに常駐することができ、接続180を介して通信可能に結合され得る。たとえば、メッセージングサーバ165は、ワイヤレスサービスプロバイダ140をも管理するセルラー電話会社によって管理されるロケーションに物理的に常駐することができる。ロケーションサービスサーバ170およびリポジトリ175は、異なるロケーション、プロバイダ、またはソースに物理的に常駐することができる。メッセージングサーバ165、ロケーションサービスサーバ170、およびリポジトリ175が任意のロケーションに常駐することができることを当業者は了解されよう。同様に、ワイヤレスサーバ155、メッセージングサーバ165、ロケーションサービスサーバ170、およびリポジトリ175のいずれも単一のサーバにおいて実装され得る。
【００３２】
1つまたは複数の実装形態によれば、ロケーションサービスサーバ170は、ワイヤレスサービスプロバイダ140とメッセージングサーバ165とを介してロケーション要求135を受信するように構成され得る。ロケーションサービスサーバ170は、モバイルデバイス105の近傍内の他のモバイルデバイス110の識別情報に基づいてモバイルデバイス105のロケーションを判断するように構成され得る。ロケーションサービスサーバ170は、リポジトリ175において、ロケーション記録185を維持するように構成され得る。ロケーション記録185は、ロケーションフィクシングリソースを含む他のモバイルデバイス110についてのロケーション情報に関連する他のモバイルデバイス110の識別情報を含むように構成され得る。
【００３３】
1つまたは複数の実装形態によれば、ロケーション要求135が受信された後、ロケーションサービスサーバ170は、モバイルデバイス105の近傍内の他のモバイルデバイス110の識別情報、たとえばネットワークデバイス識別子を識別するためにロケーション要求135を検査するように構成され得る。識別後、ロケーションサービスサーバ170は、モバイルデバイス105の近傍内の他のモバイルデバイス110のうちの1つまたは複数に関連するロケーション情報を求めてロケーション記録185を探索するように構成され得、ロケーション記録185から任意の利用可能なロケーション情報を取り出すように構成され得る。
【００３４】
1つまたは複数の実装形態によれば、ロケーションサービスサーバ170は、ロケーションフィクシングリソースを含む他のモバイルデバイス110のうちの1つまたは複数の取り出されたロケーション情報に基づいてモバイルデバイス105のロケーションを判断するように構成され得る。ロケーションサービスサーバ170は、ロケーション情報が取り出された他のモバイルデバイス110の数に応じて任意の数のプロセスおよびアルゴリズムを利用して上記ロケーションを判断するように構成され得る。たとえば、ロケーションサービスサーバ170がただ1つの他のモバイルデバイス110についてのロケーション情報を識別した場合、ロケーションサービスサーバ170は、モバイルデバイス105のロケーションを、モバイルデバイス105の近傍内の他のモバイルデバイス110のロケーションであると判断するように構成され得る。
【００３５】
1つまたは複数の実装形態によれば、ロケーションサービスサーバ170が、モバイルデバイス105の近傍内の2つ以上の他のモバイルデバイス110についてのロケーション情報を識別した場合、ロケーションサービスサーバ170は、他のモバイルデバイス110のうちの1つの取り出されたロケーション情報を選択することによってモバイルデバイス105のロケーションを判断するか、またはロケーション情報を組み合わせてモバイルデバイス105のロケーションを判断するように構成され得る。たとえば、ロケーションサービスサーバ170は、モバイルデバイス105のロケーションを判断するために取り出されたロケーション情報を平均化すること、モバイルデバイス105のロケーションを判断するために他のモバイルデバイス110のうちの1つから直近に受信された取り出されたロケーション情報を選択すること、および/またはモバイルデバイス105のロケーションを判断するために他のモバイルデバイス110のうちの1つに関連する受信されたロケーション情報をランダムに選択することを行うように構成され得る。ロケーションサービスサーバ170が、取り出されたロケーション情報に基づいてモバイルデバイス105のロケーションを判断するために任意のプロセスまたはアルゴリズムを利用することができることを当業者は了解されよう。
【００３６】
1つまたは複数の実装形態によれば、モバイルデバイス105のロケーションが判断された後、リモートサーバ115は、判断されたロケーションをモバイルデバイス105に与えるように構成され得る。リモートサーバ115は、判断されたロケーションを含むロケーション返答190をワイヤレスサービスプロバイダ140を介してモバイルデバイス105に通信するように構成され得る。ロケーション返答190は、たとえば、電子メール(電子メール)、マルチメディアメッセージングサービス(MMS)、拡張メッセージングサービス(EMS)、ショートメッセージングサービス(SMS)、WAPプッシュ、アプリケーションプッシュ(たとえば、プッシュレジストリ)、標準形式のテレフォニーなどの通信プロトコルを介して、または伝送制御プロトコル(TCP)、IP、ユーザデータグラムプロトコル(UDP)、ハイパーテキスト転送プロトコル(HTTP)、およびファイル転送プロトコル(FTP)などの標準インターネットプロトコルを介して、モバイルデバイス105に通信され得る。
【００３７】
1つまたは複数の実装形態によれば、ロケーションサービスを提供するために、リモートサーバ115は、ロケーションフィクシングハードウェアを有する他のモバイルデバイス110からロケーション情報を取得するように構成され得る。リモートサーバ115は、ロケーション情報について他のモバイルデバイス110に照会するように構成され得る。同様に、他のモバイルデバイス110のうちの1つまたは複数は、ロケーション情報をリモートサーバに与えるように構成され得る。いずれの場合も、他のモバイルデバイス110のうちの1つまたは複数からのロケーション情報は、ワイヤレス接続145上でワイヤレスサービスプロバイダ140を介してリモートサーバ115に通信され得る。ロケーション情報は、たとえば、電子メール(電子メール)、マルチメディアメッセージングサービス(MMS)、拡張メッセージングサービス(EMS)、ショートメッセージングサービス(SMS)、WAPプッシュ、アプリケーションプッシュ(たとえば、プッシュレジストリ)、標準形式のテレフォニーなどの通信プロトコルを介して、または伝送制御プロトコル(TCP)、IP、ユーザデータグラムプロトコル(UDP)、ハイパーテキスト転送プロトコル(HTTP)、およびファイル転送プロトコル(FTP)などの標準インターネットプロトコルを介して、リモートサーバ115に通信され得る。
【００３８】
1つまたは複数の実装形態によれば、ロケーション情報が受信された後、リモートサーバ115は、受信されたロケーション情報をロケーション記録185に記憶するように構成され得る。リモートサーバ115は、周期的に、または任意の数のイベントの発生時に、ロケーション情報を取得するように構成され得る。
【００３９】
次に図2を参照すると、本教示の1つまたは複数の実装形態に一致する、モバイルデバイス105の例示的な構成が示されている。(図1に示す)モバイルデバイス105は、(たとえば、モバイル呼開始または他のハンドシェイク、ハンドシェイク応答、モバイルアプリケーションデータ転送、データイベント、データイベント応答、ハンドシェイク終了などに関係する)信号を受信する少なくとも1つのアンテナ202(たとえば、入力インターフェースを含む送信受信機またはそのような受信機のグループ)と、受信された信号に対してアクション(たとえば、フィルタ処理、増幅、ダウンコンバートなど)を実行する受信機204とを含むことができる。アンテナ202は、たとえば、ハンドシェイク要求、データイベント要求などに対する応答を送信または受信することができる。また、アンテナ202および受信機204は、受信された信号を復調し、その信号を処理のためにプロセッサ208に与えることができる、復調器206に結合され得る。プロセッサ208は、アンテナ202および/またはモバイルデバイス105のユーザ入力インターフェース(図示せず)によって受信された情報を分析し、ならびに/あるいは変調器216を介して送信機218によって送信するための情報を生成することができる。プロセッサ208は、アンテナ202と、受信機204と、送信機218と、変調器216とを利用して、ワイヤレス接続145上でワイヤレスサービスプロバイダ140と通信することができる。
【００４０】
1つまたは複数の実装形態では、モバイルデバイス105は、メモリ210をさらに含むことができ、メモリ210は、1つまたは複数のコンピュータ可読記憶媒体を含み、プロセッサ208に動作可能に結合され、実行されるべき命令、および送信され、受信され、処理されるべきデータなどを記憶することができる。モバイルデバイス105は、コンピュータ可読データ(たとえば、デバイス105のロケーションなど)およびコンピュータ実行可能ソフトウェア命令(たとえば、ロケーションAPIドライバ220、ランタイム環境212、アプリケーションのセット214など)を記憶するためにメモリ210を含むことができる。メモリ210は、固体メモリ(たとえば、読取り専用メモリ、ランダムアクセスメモリ、フラッシュメモリなど)、磁気ハードドライブ、コンパクトディスク(CD)またはデジタルビデオディスク(DVD)などの光学読取り可能媒体など、のうちの1つまたは複数を含むことができる。
【００４１】
実装形態では、モバイルデバイス105は、プロセッサ208を利用して、メモリ210に記憶されたソフトウェア命令を実行することができる。たとえば、プロセッサ208は、Qualcomm IncorporatedのBREW(登録商標)、Sun MicrosystemsのJava ME(商標)、Symbian Ltd.のSymbian(商標) OS、Adobe SystemsのFlash Lite(商標)、Microsoft CorporationのWindows Mobile(商標)、Apple Inc.のiPhone(商標) OS、Open Handset AllianceのAndroid(商標)などのランタイム環境212、ならびにアプリケーションのセット214または他のソフトウェア、モジュール、アプリケーション、論理、コードなどを実行することができる。
【００４２】
1つまたは複数の実装形態では、ロケーションAPIドライバ220は、上記で説明したようにおよび以下で説明するように、ロケーションサービスの機能を与えるように構成され得る。ロケーションAPIドライバ220は、モバイルデバイス105の近傍内の他のモバイルデバイス110を識別するためにプロセッサ208および自己構成ネットワークインターフェース230と通信するのに必要な論理、コマンド、および命令を含むように構成され得る。同様に、識別後、ロケーションAPIドライバ220は、モバイルデバイス105のロケーションを取得するためにプロセッサ208と、変調器216と、復調器206と、送信機218と、受信機204と、アンテナ202とを利用してリモートサーバ115と通信するのに必要な論理、コマンド、および命令を含むように構成され得る。
【００４３】
1つまたは複数の実装形態では、ロケーションAPIドライバ220は、メモリ210に記憶されることと、プロセッサ208によって実行されることとが可能なアプリケーションプログラムまたはドライバとして実装され得る。たとえば、ロケーションAPIドライバ220は、モバイルデバイス105のユーザがモバイルデバイス105のロケーションを要求することを可能にする、スタンドアロンアプリケーションプログラムとして実装され得る。したがって、ロケーションAPIドライバ220は、ユーザがロケーションAPIドライバ105と対話することを可能にする、グラフィカルユーザインターフェース(GUI)を生成することができる。同様に、ロケーションAPIドライバ220は、アプリケーションのセット214によってアクセスされることが可能なデバイスまたはソフトウェアドライバとして実装され得る。したがって、モバイルデバイス105のロケーションを必要とするとき、アプリケーションのセット214は、モバイルデバイス105のロケーションを判断するプロセスを開始するためにロケーションAPIドライバ220と通信することができる。ロケーションAPIドライバ220は、モバイルデバイス105に適合する任意のタイプのプログラミング言語で書き込まれ得る。
【００４４】
1つまたは複数の実装形態では、モバイルデバイス105は、自己構成ネットワークインターフェース230を含むように構成され得る。自己構成ネットワークインターフェース230は、モバイルデバイス105が自己構成ネットワーク上で他のモバイルデバイス110などの他のデバイスと通信することを可能にするように構成され得る。図示のように、自己構成ネットワークインターフェース230は、アンテナ232と、無線周波数(「RF」)ユニット234と、ベースバンドユニット236とを含むことができる。実装形態では、アンテナ232と、RFユニット234と、ベースバンドユニット236との各々は、任意のデータ通信システムおよびプロトコルを介して互いに信号およびデータを通信し、送信することができる。
【００４５】
ベースバンドユニット236は、他のモバイルデバイス110の識別情報についての要求などの送信データをプロセッサ208から受信するように構成され得る。ベースバンドユニット236は、プロセッサ208から受信された送信データを、RFユニット234に送られ得るベースバンド信号に変換することができる。受信すると、RFユニット234は、設定された発振周波数に従って、ベースバンド信号を、Bluetooth(登録商標)無線通信において使用されるRF送信データなどの、RF送信データに変換することができる。RFユニット234はRF送信データをアンテナ232に送ることができ、アンテナ232は、RF送信データを他のモバイルデバイス110のうちの1つまたは複数などの予定受信者に送信することができる。
【００４６】
他のモバイルデバイス110のうちの1つまたは複数は、識別情報についての要求の形態などで、RF送信データを受信することができる。他のモバイルデバイス110のうちの1つまたは複数は、個々の識別情報、たとえばネットワークインターフェース識別子を取り出し、アンテナ232によって受信されるように識別情報をモバイルデバイス105に送ることができる。アンテナ232は、受信された識別情報をRFユニット234に送信することができる。受信すると、RFユニット234は、設定された発振周波数に従って識別情報をベースバンド信号にダウンコンバートすることができる。RFユニット234は、さらにベースバンド信号をベースバンドユニット236に出力することができ、ベースバンドユニット236は、ベースバンド信号をモバイルデバイス105が使用する信号に変換することができる。ベースバンドユニット236は、本明細書で説明する1つまたは複数の実装形態による処理のために上記信号をプロセッサ208に送ることができる。
【００４７】
1つまたは複数の実装形態では、たとえば、自己構成ネットワークインターフェース230は、Bluetooth(登録商標)ネットワークを介して他のデバイスと通信することが可能であるBluetooth(登録商標)ネットワークインターフェースであり得る。この例では、ベースバンドユニット236、RFユニット234、およびアンテナ232は、プロセッサ208から信号を受信することと、その信号をBluetooth(登録商標)無線信号に変換することと、Bluetooth(登録商標)ネットワークインターフェースを含む他のデバイスにBluetooth(登録商標)無線信号を送信することとを行うように構成され得る。この例では、モバイルデバイス105の近傍内の他のモバイルデバイス110を識別するために、ロケーションAPIドライバ220は、モバイルデバイス105の近傍内の他のモバイルデバイスであって、Bluetooth(登録商標)ネットワークインターフェースを含む他のモバイルデバイスを識別するための照会プロシージャを実行するように自己構成ネットワークインターフェース230に命令することができる。自己構成ネットワークインターフェース230は、Bluetooth(登録商標)照会要求を他のモバイルデバイス110に送信し、Bluetooth(登録商標)ネットワークインターフェースを含んでいる他のモバイルデバイス110から一意のBluetooth(登録商標)デバイス識別子を受信することができる。
【００４８】
1つまたは複数の実装形態では、他のモバイルデバイス110の識別情報が受信された後、ロケーションAPIドライバ220は、リモートサーバ115に送信するためのロケーション要求135を生成するように構成され得る。ロケーションAPIドライバ220は、変調器216と、送信機218と、アンテナ202とを利用して、ワイヤレス接続145上で送信するためにロケーション要求135をプロセッサに受け渡すことができる。同様に、ロケーションAPIドライバ220は、リモートサーバ115からロケーション返答190を受信することと、ロケーションをユーザおよび/またはアプリケーションのセット214に与えるための他の処理を実行することとを行うように構成され得る。
【００４９】
次に図3を参照すると、本教示の1つまたは複数の実装形態に一致する、他のモバイルデバイス110のうちの1つの例示的な構成が示されている。(図1に示す)他のモバイルデバイス110のうちの1つは、(たとえば、モバイル呼開始または他のハンドシェイク、ハンドシェイク応答、モバイルアプリケーションデータ転送、データイベント、データイベント応答、ハンドシェイク終了などに関係する)信号を受信する少なくとも1つのアンテナ302(たとえば、入力インターフェースを含む送信受信機またはそのような受信機のグループ)と、受信された信号に対してアクション(たとえば、フィルタ処理、増幅、ダウンコンバートなど)を実行する受信機304とを含むことができる。アンテナ302は、たとえば、ハンドシェイク要求、データイベント要求などに対する応答を送信または受信することができる。また、アンテナ302および受信機304は、受信された信号を復調し、その信号を処理のためにプロセッサ308に与えることができる、復調器306に結合され得る。プロセッサ308は、アンテナ302および/または他のモバイルデバイス110のうちの1つのユーザ入力インターフェース(図示せず)によって受信された情報を分析し、ならびに/あるいは変調器316を介して送信機318によって送信するための情報を生成することができる。プロセッサ308は、アンテナ302と、受信機304と、送信機318と、変調器316とを利用して、ワイヤレス接続145上でワイヤレスサービスプロバイダ140と通信することができる。
【００５０】
1つまたは複数の実装形態では、他のモバイルデバイス110のうちの1つは、メモリ310をさらに含むことができ、メモリ310は、1つまたは複数のコンピュータ可読媒体を含み、プロセッサ308に動作可能に結合され、実行されるべき命令、および送信され、受信され、処理されるべきデータなどを記憶することができる。他のモバイルデバイス110のうちの1つは、コンピュータ可読データ(たとえば、デバイス110のロケーションなど)およびコンピュータ実行可能ソフトウェア命令(たとえば、ランタイム環境312、アプリケーションのセット314、ロケーションサービスアプリケーション320など)を記憶するためにメモリ310を含むことができる。メモリ310は、固体メモリ(たとえば、読取り専用メモリ、ランダムアクセスメモリ、フラッシュメモリなど)、磁気ハードドライブ、コンパクトディスク(CD)またはデジタルビデオディスク(DVD)などの光学読取り可能媒体など、のうちの1つまたは複数を含むことができる。
【００５１】
1つまたは複数の実装形態では、他のモバイルデバイス110のうちの1つは、プロセッサ308を利用して、メモリ310に記憶されたソフトウェア命令を実行することができる。たとえば、プロセッサ308は、BREW、Sun MicrosystemsのJava ME(商標)、Symbian Ltd.のSymbian(商標) OS、Adobe SystemsのFlash Lite(商標)、Microsoft CorporationのWindows Mobile(商標)、Apple Inc.のiPhone(商標) OS、Open Handset AllianceのAndroid(商標)などのランタイム環境312、ならびにアプリケーションのセット314または他のソフトウェア、モジュール、アプリケーション、論理、コードなどを実行することができる。
【００５２】
1つまたは複数の実装形態では、他のモバイルデバイス110のうちの1つは、自己構成ネットワークインターフェース330を含むように構成され得る。自己構成ネットワークインターフェース330は、他のモバイルデバイス110のうちの1つが自己構成ネットワーク上でモバイルデバイス105などの他のデバイスと通信することを可能にするように構成され得る。図示のように、自己構成ネットワークインターフェース330は、アンテナ332と、RFユニット334と、ベースバンドユニット336とを含むことができる。1つまたは複数の実装形態では、アンテナ332と、RFユニット334と、ベースバンドユニット336との各々は、任意のデータ通信システムおよびプロトコルを介して互いに信号およびデータを通信し、送信することができる。
【００５３】
アンテナ332は、モバイルデバイス105などの他の構成要素から識別要求などのデータを受信することと、受信されたデータをRFユニット334に送信することとを行うように構成され得る。受信すると、RFユニット334は、設定された発振周波数に従って、受信されたデータをベースバンド信号にダウンコンバートすることができる。RFユニット334は、さらにベースバンド信号をベースバンドユニット336に出力することができ、ベースバンドユニット336は、ベースバンド信号をデジタル信号に変換することができる。ベースバンドユニット336はデジタル信号をプロセッサ308に送ることができ、プロセッサ308は、本明細書で説明する1つまたは複数の実装形態による、ネットワークデバイス識別子などの識別情報を取り出すためのステップを実行することができる。同様に、自己構成ネットワークインターフェース330は、自己構成ネットワークインターフェース330のネットワークデバイス識別子をローカルに記憶し、要求時にネットワークデバイス識別子を取り出すことができる。
【００５４】
ベースバンドユニット336は、他のモバイルデバイス110のうちの1つの取り出された識別情報など、プロセッサ308からの(またはローカルで取り出された)データを受信するように構成され得る。ベースバンドユニット336は、受信されたデータを、RFユニット334に送られ得るベースバンド信号に変換することができる。受信すると、RFユニット334は、設定された発振周波数に従って、ベースバンド信号を、Bluetooth(登録商標)無線通信において使用されるRF送信データなどの、RF送信データに変換することができる。RFユニット334はRF送信データをアンテナ332に送ることができ、アンテナ332は、取り出されたネットワークデバイス識別子などのRF送信データをモバイルデバイス105などの予定受信者に送信することができる。
【００５５】
1つまたは複数の実装形態では、たとえば、自己構成ネットワークインターフェース330は、Bluetooth(登録商標)ネットワークを介して他のデバイスと通信することが可能であるBluetooth(登録商標)ネットワークインターフェースであり得る。この例では、ベースバンドユニット336、RFユニット334、およびアンテナ332は、プロセッサ308から信号を受信することと、その信号をBluetooth(登録商標)無線信号に変換することと、Bluetooth(登録商標)ネットワークインターフェースを含む他のデバイスにBluetooth(登録商標)無線信号を送信することとを行うように構成され得る。この例では、自己構成ネットワークインターフェース330は、モバイルデバイス105からBluetooth(登録商標)照会要求を受信し、一意のBluetooth(登録商標)デバイス識別子を他のモバイルデバイス110からモバイルデバイス105の自己構成ネットワークインターフェース230に送信することができる。
【００５６】
1つまたは複数の実装形態によれば、他のモバイルデバイス110のうちの1つは、1つまたは複数のセンサ340を含むように構成され得る。1つまたは複数のセンサ340は、たとえば、GPSユニット342および加速度計/ジャイロスコープ344を使用することによって、他のモバイルデバイス110のうちの1つのロケーション、位置、方向、移動などを検出するように構成され得る。GPSユニット342は、当技術分野で知られているようにGPSデータを受信するように構成され得、加速度計/ジャイロスコープ344は、ロケーションの計算において使用される移動データを収集するように構成され得る。1つまたは複数のセンサ340は、本明細書で説明する1つまたは複数の実装形態による処理または送信のために任意のロケーション関係のデータまたは計算値をプロセッサ308に通信するように構成され得る。
【００５７】
1つまたは複数の実装形態では、ロケーションサービスアプリケーション320は、本明細書で説明するロケーションサービスを実装するために、他のモバイルデバイス110のうちの1つのロケーション情報と他のモバイルデバイス110のうちの1つの識別情報とをリモートサーバ115に与えるように構成され得る。ロケーションサービスアプリケーション320は、他のモバイルデバイス110のうちの1つのロケーション情報を判断するためにセンサ340と通信し、必要な場合は識別情報を判断するために自己構成ネットワークインターフェース330と通信し、判断されたロケーション情報および識別情報をワイヤレス接続145を介してリモートサーバ115に与えるのに必要な論理、コマンド、および命令を含むように構成され得る。ロケーションサービスアプリケーション320は、メモリ310に記憶されることと、プロセッサ308によって実行されることとが可能であるアプリケーションプログラムとして実装され得る。ロケーションサービスアプリケーション320は、他のモバイルデバイス110のうちの1つに適合する任意のタイプのプログラミング言語で書き込まれ得る。
【００５８】
一実装形態では、ロケーションサービスアプリケーション320は、リモートサーバ115からの要求時に、ロケーションサービスアプリケーション320自体の開始時に周期的に、または任意の数のイベントの発生時に、ロケーション情報および識別情報を与えるように構成され得る。
【００５９】
次に図4を参照すると、本教示の1つまたは複数の実装形態に一致する、リモートサーバ115と、ワイヤレスサーバ155を含むワイヤレスサービスプロバイダ140との間の通信の例示的な構成が示されている。1つまたは複数の実装形態では、ワイヤレスサーバ155は、受信アンテナ402を通して1つまたは複数のモバイルデバイス(たとえば、図1に示すモバイルデバイス105および他のモバイルデバイス110)から1つまたは複数の信号を受信する受信機406と、変調器416によって変調された1つまたは複数の信号を送信アンテナ404を通してモバイルデバイスに送信する送信機418とを含むことができる。受信機406は、受信アンテナ402から情報を受信することができ、未受信のまたは解読不可能なデータパケットに関係するフィードバックデータを受信する信号受信者(図示せず)をさらに含むことができる。さらに、受信機406は、受信された情報を復調する復調器408に動作可能に結合される。プロセッサ410は、復調器408によって与えられた復調されたシンボルおよび情報を分析することができる。
【００６０】
プロセッサ410は、モバイルデバイス、ワイヤレスサーバ155、および/またはリモートサーバ115の間のリモート通信を可能にする、および/またはそれに参加する、1つまたは複数のアプリケーション414を記憶することができるメモリ412にさらに結合する。たとえば、アプリケーション414は、ハンドシェイクを開始することと、モバイルデバイス上で動作している受信側アプリケーションに(たとえば、診断情報、データ分析などに関係する)データイベント要求を送ることとを行うように構成された1次アプリケーションを含むことができる。代替的に、アプリケーション414は、ハンドシェイク要求を受信することができる2次アプリケーションであって、モバイルデバイス上の開始アプリケーションを認証することができる2次アプリケーションを含むことができる。アプリケーション414は、モバイルデバイス上の対応するアプリケーションに対するアプリケーション414またはその逆を識別する識別子、または特定の往復通信を識別するそのような識別子の増分を生成および/または検証するためのルールをさらに含むことができる。さらに、そのルールは、非確認応答送信を再送信すること、ハンドシェイク要求および/または応答を再開すること、ならびにハンドシェイクを終了することなどのためのポリシーを指定することができる。したがって、アプリケーション414は、モバイルデバイス上に常駐する1つまたは複数のアプリケーション(たとえば、図2および図3に示すアプリケーションのセット214、314、ロケーションAPIドライバ220、およびロケーションサービスアプリケーション320)とのモバイル通信に関与し、および/または本明細書に記載する様々なアクションおよび機能を実行することに関係する他の好適なアクティビティに関与することができる。
【００６１】
1つまたは複数の実装形態では、リモートサーバ115は、本明細書で説明する機能的実装形態を可能にするために、モバイルデバイス(たとえば、モバイルデバイス105および他のモバイルデバイス110)およびワイヤレスサーバ155と連携して動作することができる。リモートサーバ115は、モバイルデバイスおよび/またはワイヤレスサーバ155との通信を扱うことと、ロケーション要求135に応答してモバイルデバイスに情報内容を配信するかまたは情報内容へのアクセスを与えることとを行うためのメッセージングサーバ165を含むことができる。たとえば、メッセージングサーバ165は、ロケーション要求135を受信し、次いで、ロケーション要求135をロケーションサービスサーバ170に送信することができる。別の例では、メッセージングサーバ165は、ロケーション要求135に応答してロケーションサービスサーバ170によって生成された、モバイルデバイス105のロケーションに関係する情報を含むことができるロケーションを受信し、次いで、モバイルデバイス105に送信するためにロケーション返答190をワイヤレスサーバ155に送信することができる。
【００６２】
メッセージングサーバ165は、サーバ155を通して他のモバイルデバイス110からロケーション情報を受信するようにさらに構成され得る。たとえば、他のモバイルデバイス110は、自動的に、またはある間隔で、またはリモートサーバ115からの照会に応答して、ロケーション情報を与えることができる。ワイヤレスサーバ155は、他のモバイルデバイス110からロケーション情報を受信し、ロケーション情報をメッセージングサーバ165に送信することができる。
【００６３】
リモートサーバ115は、たとえば、モバイルデバイス(たとえば、モバイルデバイス105および他のモバイルデバイス110)の識別および/またはロケーション情報などの、ロケーション情報、ならびに他の情報を記憶し、インデックス付けし、与えるために、ロケーションサービスサーバ170をさらに含むか、またはロケーションサービスサーバ170と通信することができる。ロケーションサービスサーバ170は、たとえば、メッセージングサーバ165を介してモバイルデバイス105によってサブミットされたロケーション要求135に応答して、関係するロケーション情報を与えることができる。
【００６４】
1つまたは複数の実装形態では、ロケーションサービスサーバ170は、プロセッサ420とメモリ422とを含むことができ、メモリ422は、1つまたは複数のコンピュータ可読媒体を含むことができ、プロセッサ420に動作可能に結合され、実行されるべき命令、および送信され、受信され、処理されるべきデータなどを記憶することができる。メモリ422は、固体メモリ、磁気ハードドライブ、CDまたはDVDなどの光学読取り可能媒体など、のうちの1つまたは複数を含むことができる。そこに記憶された命令は、システム100の他の構成要素と連携してロケーション要求135に基づいて関係するロケーション情報を探索し、与えるようにプロセッサ420を構成するために実行される。たとえば、メモリ422は、探索エンジン426とロケーションサービスアプリケーション424とのための命令を記憶することができる。ロケーションサービスサーバ170は、関連するロケーション記録185を記憶することができるリポジトリ175にさらに結合され得る。
【００６５】
1つまたは複数の実装形態では、ロケーション記録185は、モバイルデバイス(たとえば、他のモバイルデバイス110)のロケーションおよび/または識別情報を記憶することができる。ロケーション記録185は、他のモバイルデバイス110のロケーション情報に関連する他のモバイルデバイス110の識別情報(たとえば、ネットワークデバイス識別子)を記憶する任意のタイプの探索可能なデータ構造として実装され得る。ロケーションサービスアプリケーション424は、メモリ422に記憶されることと、プロセッサ420によって実行されることとが可能なアプリケーションプログラムとして実装され得る。ロケーションサービスアプリケーション424は、ロケーション要求135を受信し、モバイルデバイス105のロケーションを判断し、ロケーション返答190をモバイルデバイス105に与えるのに必要な論理、コマンド、および命令を含むように構成され得る。ロケーションサービスアプリケーション424は、ロケーションサービスサーバ170に適合する任意のタイプのプログラミング言語で書き込まれ得る。
【００６６】
探索エンジン426は、モバイルデバイス105からのロケーション要求135に応答して、関係するロケーション情報をロケートし、取り出すように構成され得る。探索エンジン426は、別個であるにせよロケーションサービスアプリケーション424に組み込まれているにせよ、メモリ422に記憶されることと、プロセッサ420によって実行されることとが可能なアプリケーションプログラムとして実装され得る。探索エンジン426は、ロケーション記録185を探索するのに必要な論理、コマンド、および命令を含むように構成され得る。探索エンジンは、ロケーションサービスサーバ170に適合する任意のタイプのプログラミング言語で書き込まれ得る。
【００６７】
図示の実装形態では、たとえば、ロケーション照会を受信するより前に、ロケーションサービスサーバ170は、リポジトリ175および関連するロケーション記録185のクロール、および/またはロケーションサービスサーバ170に結合された他のコンピュータ可読データストレージのクロールを実行して、それらに記憶された情報内容をロケートし、インデックス付けすることができる。したがって、探索エンジン426は、ロケーション要求135に応答してインデックスにアクセスすることによって、関係するロケーション情報をロケートすることができる。
【００６８】
1つまたは複数の実装形態では、ロケーション要求135が受信された後、ロケーションサービスアプリケーション424は、ロケーション要求135をパースすることと、ロケーション要求135中に含まれている他のモバイルデバイス110の識別情報を判断することとを行うように構成され得る。ロケーションサービスアプリケーション424は、他のモバイルデバイス110の識別情報を探索エンジン426に受け渡すように構成され得る。探索エンジン426は、他のモバイルデバイス110の識別情報に関連するロケーション情報を判断するためにロケーション記録185を探索することと、任意のロケーション情報を取り出すこととを行うように構成され得る。探索エンジン426は、ロケーション情報をロケーションサービスアプリケーション424に返信するように構成され得る。
【００６９】
1つまたは複数の実装形態では、ロケーションサービスアプリケーション424は、ロケーション情報の形態および通信プロトコルなど、モバイルデバイス105にどのロケーション情報を配信すべきか、および/または情報内容をどのように配信すべきかを判断するように構成され得る。ロケーションサービスアプリケーション424は、他のモバイルデバイス110のうちの1つまたは複数の取り出されたロケーション情報に基づいてモバイルデバイス105のロケーションを判断するように構成され得る。ロケーションサービスアプリケーション424は、ロケーション情報が取り出された他のモバイルデバイス110の数に応じて任意の数のプロセスおよびアルゴリズムを利用して上記ロケーションを判断するように構成され得る。たとえば、ロケーションサービスアプリケーション424がただ1つの他のモバイルデバイス110についてのロケーション情報を識別した場合、ロケーションサービスアプリケーション424は、モバイルデバイス105のロケーションを、モバイルデバイス105の近傍内の他のモバイルデバイス110のロケーションであると判断するように構成され得る。ロケーションサービスアプリケーション424が、モバイルデバイス105の近傍内の2つ以上の他のモバイルデバイス110についてのロケーション情報を識別した場合、ロケーションサービスアプリケーション424は、他のモバイルデバイス110のうちの1つの取り出されたロケーション情報を選択することによってモバイルデバイス105のロケーションを判断するか、またはロケーション情報を組み合わせてモバイルデバイス105のロケーションを判断するように構成され得る。たとえば、ロケーションサービスアプリケーション424は、モバイルデバイス105のロケーションを判断するために取り出されたロケーション情報を平均化すること、モバイルデバイス105のロケーションを判断するために他のモバイルデバイス110のうちの1つから直近に受信された取り出されたロケーション情報を選択すること、および/またはモバイルデバイス105のロケーションを判断するために他のモバイルデバイス110のうちの1つに関連する受信されたロケーション情報をランダムに選択することを行うように構成され得る。ロケーションサービスアプリケーション424が、取り出されたロケー
ション情報に基づいてモバイルデバイス105のロケーションを判断するために任意のプロセスまたはアルゴリズムを利用することができることを当業者は了解されよう。
【００７０】
1つまたは複数の実装形態では、ロケーションサービスアプリケーション424は、他のモバイルデバイス110からロケーション情報を取得することと、ロケーション情報をロケーション記録185に記憶することとを行うように構成され得る。したがって、ロケーションサービスアプリケーション424は、他のモバイルデバイス110のロケーション情報および識別情報を取得し、取得されたロケーション情報および識別情報をロケーション記録185に記憶するために、他のモバイルデバイス110のうちの1つまたは複数のロケーションサービスアプリケーション320と通信するのに必要な論理、コマンド、および命令を含むように構成され得る。
【００７１】
図5A〜図5Cに、本教示の1つまたは複数の実装形態による、(図1および図4に示す)リモートサーバ115にロケーションサービスを要求するために(図1および図2に示す)モバイルデバイス105によって実行され得る処理のフローチャートを示す。図5Aに示すように、510において、モバイルデバイス105は、モバイルデバイス105のロケーションを判断することを開始する。モバイルデバイス105は、任意の数のイベントの発生時に上記判断を開始することができる。たとえば、アプリケーションのセット214のうちの1つまたは複数が、モバイルデバイス105のロケーションを必要とし、ロケーションAPIドライバ220を利用して、そのロケーションを判断することができる。さらに、モバイルデバイス105のユーザが、モバイルデバイス105のロケーションを知ることを望み、ロケーションAPIドライバ220を利用して、そのロケーションを判断することができる。
【００７２】
次に、515において、モバイルデバイス105は、モバイルデバイス105の近傍内の他のモバイルデバイス110を識別する。たとえば、モバイルデバイス105と他のモバイルデバイス110のうちの1つまたは複数とは、Bluetooth(登録商標)ネットワークインターフェースなどの自己構成ネットワークインターフェースを介して通信するように構成され得る。モバイルデバイス105は、自己構成ネットワーク信号の範囲125内の他のモバイルデバイス110に照会要求120をブロードキャストするように構成され得る。Bluetooth(登録商標)照会要求などの照会要求120は、他のモバイルデバイス110からの応答を要求または開始するように構成され得る。
【００７３】
520において、モバイルデバイス105は、他のモバイルデバイス110の識別情報を受信する。たとえば、自己構成ネットワークインターフェースを含んでいる他のモバイルデバイス110は、照会要求120に対する応答130を送信するように構成され得る。応答130は、他のモバイルデバイス110を識別する情報を含むように構成され得る。たとえば、自己構成ネットワークインターフェースを含んでいる他のモバイルデバイス110の各々は、それの特定の自己構成ネットワークインターフェースの、Bluetooth(登録商標)デバイス識別子などのネットワークデバイス識別子で応答することができる。525において、モバイルデバイス105は、他のモバイルデバイス110の識別情報をリモートサーバ115に与える。たとえば、モバイルデバイス105は、ワイヤレスサービスプロバイダ140を介してリモートサーバ115と通信することができる。
【００７４】
図5Bに示すように、530において、リモートサーバ115は、モバイルデバイス105から他のモバイルデバイス110の識別情報を受信する。たとえば、リモートサーバ115は、ロケーション要求135を受信するためにワイヤレスサービスプロバイダ140および/またはモバイルデバイス105との通信を扱うためのメッセージングサーバ165を含むことができる。
【００７５】
535において、リモートサーバ115は、他のモバイルデバイス110に関連するロケーション情報に基づいてモバイルデバイス105のロケーションを判断する。たとえば、リモートサーバ115のロケーションサービスサーバ170は、モバイルデバイス105の近傍内の他のモバイルデバイス110に関連するロケーション情報を求めてリポジトリ175中のロケーション記録185を探索するように構成され得、ロケーション記録185から任意の利用可能なロケーション情報を取り出すように構成され得る。さらに、ロケーションサービスサーバ170は、本明細書に含まれている実装形態で説明するプロセスまたはアルゴリズムに従ってモバイルデバイス105のロケーションを判断することができる。
【００７６】
540において、リモートサーバ115は、上記ロケーションをモバイルデバイス105に与える。たとえば、リモートサーバ115は、判断されたロケーションを含むロケーション返答190をワイヤレスサービスプロバイダ140を介してモバイルデバイス105に通信するように構成され得る。
【００７７】
図5Cに示すように、545において、モバイルデバイス105は、リモートサーバ115からロケーションを受信する。たとえば、モバイルデバイス105は、ワイヤレスサービスプロバイダ140を介してリモートサーバ115からロケーション返答190を受信することができる。550において、モバイルデバイス105は、受信されたロケーションを利用する。たとえば、モバイルデバイス105中のアプリケーションのセット214のうちの1つが、本明細書で説明する実装形態に従って、アプリケーションのセット214のうちの1つの機能と併せて、受信されたロケーションを利用することができる。
【００７８】
図6に、本教示の1つまたは複数の実装形態による、(図1および図3に示す)他のモバイルデバイス110のロケーションおよび/または識別機能に応答して(図1および図4に示す)リモートサーバ115によって実行され得る処理のフローチャートを示す。610において、リモートサーバ115は、他のモバイルデバイス110との通信を開始する。リモートサーバ115は、任意の数のイベントの発生時に上記通信を開始することができる。たとえば、リモートサーバ115は、ワイヤレスサービスプロバイダ140を介してロケーションおよび/または識別情報について他のモバイルデバイス110のうちの1つまたは複数を周期的にまたは連続的にポーリングすることができる。さらに、他のモバイルデバイス110のうちの1つまたは複数は、ワイヤレスサービスプロバイダ140を介してロケーションおよび/または識別情報をリモートサーバ115に周期的にまたは連続的にプッシュすることができる。
【００７９】
615において、リモートサーバ115は、他のモバイルデバイス110のうちの1つまたは複数から識別および/またはロケーション情報を受信する。たとえば、開始された通信に応答して、他のモバイルデバイス110のうちの1つまたは複数は、ワイヤレスサービスプロバイダ140を介して識別および/またはロケーション情報をリモートサーバ115のロケーションサービスサーバ170に送ることができる。620において、リモートサーバ115は、他のモバイルデバイス110の識別情報に関連するロケーション情報を記憶する。たとえば、ロケーションサービスサーバ170は、リポジトリ175において、他のモバイルデバイス110から受信されたロケーション記録185を維持するように構成され得る。ロケーション記録185は、他のモバイルデバイス110の識別情報に関連する受信されたロケーションデータを含むことができる。625において、リモートサーバ115は、他のモバイルデバイス110から更新されたロケーション情報を受信する。たとえば、他のモバイルデバイス110との周期的通信、手動通信、および/または自動通信の結果として、ロケーションサービスサーバ170は、他のモバイルデバイス110の更新されたロケーション情報に対応する情報を受信し、リポジトリ175のロケーション記録185中の識別情報に基づいて、更新されたロケーション情報を記憶することができる。
【００８０】
本明細書で説明する実装形態は、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、および/あるいはプログラムコードまたはコードセグメントで実装した場合、記憶構成要素などのコンピュータ可読記憶媒体に記憶され得る。コードセグメントは、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、あるいは命令、データ構造またはプログラムステートメントの任意の組合せを表すことができる。コードセグメントは、情報、データ、引数、パラメータ、またはメモリ内容をパスおよび/または受信することによって、別のコードセグメントまたはハードウェア回路に結合され得る。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信などを含む、任意の好適な手段を使用してパス、フォワーディング、または送信され得る。ソフトウェア実装の場合、本明細書で説明する技法は、本明細書で説明する機能を実行するモジュール(たとえば、プロシージャ、関数など)を用いて実装され得る。ソフトウェアコードは、メモリユニットに記憶され、プロセッサによって実行され得る。メモリユニットは、プロセッサの内部またはプロセッサの外部に実装され得、その場合、当技術分野で知られているように様々な手段によってプロセッサに通信可能に結合され得る。
【００８１】
上記の説明は例示的であり、当業者は構成および実装の変形形態を思い付くことがある。たとえば、本明細書で開示する実装形態に関して説明する様々な例示的な論理、論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)または他のプログラマブル論理デバイス、個別ゲートまたはトランジスタ論理、個別ハードウェア構成要素、あるいは本明細書で説明する機能を実行するように設計されたそれらの任意の組合せを用いて実装または実行され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装され得る。
【００８２】
1つまたは複数の例示的な実装形態では、説明する機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェア実装の場合、本明細書で説明する技法は、本明細書で説明する機能を実行するモジュール(たとえば、プロシージャ、関数など)を用いて実装され得る。ソフトウェアコードは、メモリユニットに記憶され、プロセッサによって実行され得る。メモリユニットは、プロセッサの内部またはプロセッサの外部に実装され得、その場合、当技術分野で知られているように様々な手段によってプロセッサに通信可能に結合され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、有形コンピュータ記憶媒体と通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な有形媒体であり得る。限定ではなく例として、そのような有形コンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMまたは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気ストレージデバイス、あるいは命令またはデータ構造の形態の所望のプログラムコードを搬送または記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を含むことができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書で使用するディスク(disk)およびディスク(disc)は、CD、レーザディスク(disc)、光ディスク(disc)、DVD、フレキシブルディスク(disk)およびブルーレイディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディス
ク(disc)は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【００８３】
本明細書で開示する実装形態に関して説明する方法またはアルゴリズムのステップは、直接ハードウェアで実施されるか、プロセッサによって実行されるソフトウェアモジュールで実施されるか、またはその2つの組合せで実施され得る。方法を例によって説明したが、方法のステップは、図示のステップとは異なる順序でまたは同時に実行され得る。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROM、EPROM、EEPROM、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野で知られている任意の他の形態のコンピュータ可読記憶媒体中に常駐し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体はプロセッサに一体化され得る。プロセッサおよび記憶媒体はASIC中に常駐し得る。ASICはモバイルデバイス中に常駐し得る。代替として、プロセッサおよび記憶媒体は、モバイルデバイス中に個別構成要素として常駐し得る。単数または一体型として説明する他のリソースは、実装形態では複数または分散型であり得、複数または分散型として説明するリソースは、実装形態では組み合わせられ得る。したがって、本教示の範囲は、以下の特許請求の範囲によってのみ限定されるものとする。
【符号の説明】
【００８４】
100  システム
105  モバイルデバイス
110  他のモバイルデバイス
115  リモートサーバ
120  照会要求
125  範囲
130  応答
135  ロケーション要求
140  ワイヤレスサービスプロバイダ
145  ワイヤレス接続
150  基地局
155  ワイヤレスサーバ
160  通信接続
165  メッセージングサーバ
170  ロケーションサービスサーバ
175  リポジトリ
180  接続
185  ロケーション記録
190  ロケーション返答
202  アンテナ
204  受信機
206  復調器
208  プロセッサ
210  メモリ
212  ランタイム環境
214  アプリケーションのセット
216  変調器
218  送信機
220  ロケーションAPIドライバ
230  自己構成ネットワークインターフェース
232  アンテナ
234  無線周波数(「RF」)ユニット234
236  ベースバンドユニット
302  アンテナ
304  受信機
306  復調器
308  プロセッサ
310  メモリ
312  ランタイム環境
314  アプリケーションのセット
316  変調器
318  送信機
320  ロケーションサービスアプリケーション
330  自己構成ネットワークインターフェース
332  アンテナ
334  RFユニット
336  ベースバンドユニット
340  センサ
342  GPSユニット
344  加速度計/ジャイロスコープ
402  受信アンテナ
404  送信アンテナ
406  受信機
408  復調器
410  プロセッサ
412  メモリ
414  アプリケーション
416  変調器
418  送信機
420  プロセッサ
422  メモリ
424  ロケーションサービスアプリケーション
426  探索エンジン
【図１】
2013516842.tif 000003
【図２】
2013516842.tif 000004
【図３】
2013516842.tif 000005
【図４】
2013516842.tif 000006
【図５Ａ】
2013516842.tif 000007
【図５Ｂ】
2013516842.tif 000008
【図５Ｃ】
2013516842.tif 000009
【図６】
2013516842.tif 000010
【国際調査報告】
2013516842.tif 000011
2013516842.tif 000012
2013516842.tif 000013