(58)【調査した分野】(Int.Cl.,DB名)
前記認証データは、サーバントビーコンデバイスのビーコンデバイス識別子と、少なくとも3つの近傍サーバントビーコンデバイスのサーバントビーコンデバイスによって検出されたパスロス情報とを含む、請求項1に記載の方法。
前記マスタービーコンデバイスによって、可用性データを送信することをさらに含み、前記可用性データはマスタービーコンデバイス識別子を含み、前記マスタービーコンデバイスの近傍の1つまたは複数のサーバントビーコンデバイスは、前記可用性データを受信し、前記可用性データを再送信し、前記マスタービーコンデバイスの近傍にない前記1つまたは複数のサーバントビーコンデバイスは、前記メッシュネットワーク内の全てのサーバントビーコンデバイスが前記可用性データを受信および再送信するまで、前記再送信された可用性データを受信および再送信し、各サーバントビーコンは、可用性データが直接受信された受信元の任意のビーコンデバイスの前記パスロス情報およびビーコンデバイス識別子を特定する、請求項1に記載の方法。
前記メッシュネットワーク内の各サーバントビーコンデバイスは、前記可用性データを受信および再送信した後の時点において、前記送信側のサーバントビーコンデバイスの前記ビーコンデバイス識別子と、前記近傍のサーバントビーコンデバイスの特定されたパスロス情報およびビーコンデバイス識別子とを含む調査データを送信し、前記調査データは、前記マスタービーコンデバイスが前記調査データを受信するまで、前記メッシュネットワーク内の1つまたは複数のサーバントビーコンデバイスによって受信および再送信される、請求項3に記載の方法。
前記マスタービーコンデバイスによって、前記第1の仮想マップと前記第2の仮想マップとの間に何ら大きな差異が見つからないことに基づいて、前記メッシュネットワークがセキュアであると判断するステップと、
前記マスタービーコンデバイスによって、ユーザコンピューティングデバイスに、前記メッシュネットワークがセキュアであるという通知を送信するステップであって、前記ユーザコンピューティングデバイスは、前記メッシュネットワーク内の前記ビーコンデバイスのうちの1つまたは複数とネットワーク接続を確立し、前記ユーザコンピューティングデバイスは、前記メッシュネットワークがセキュアであるという前記通知を受信すると、前記メッシュネットワークに関連付けられたマーチャントシステムとの取引を開始する、ステップと
をさらに含む、請求項1に記載の方法。
前記メッシュネットワーク内の前記サーバントビーコンデバイスのうちの1つまたは複数は加速度計を備え、前記加速度計を備えるサーバントビーコンデバイスの各々は、認証データを送信する前の時点において、前記サーバントビーコンデバイスの任意の動きを判断し、前記加速度計を備えるサーバントビーコンデバイスの各々は、前記動きの判断を含む動き通知をさらに含む認証データを送信し、前記ネットワークがセキュアでないという判断は、前記サーバントビーコンデバイスのうちの1つまたは複数が動かされたことを示す動き通知の受信にさらに基づく、請求項1に記載の方法。
前記メッシュネットワーク内の前記サーバントビーコンデバイスのうちの1つまたは複数が認証データを送信し、前記認証データは、前記認証データの発信元の前記サーバントビーコンデバイスによって暗号化された、暗号化デジタル署名をさらに含み、前記メッシュネットワークがセキュアでないという判断は、前記認証データにおいて受信される1つまたは複数の無効なデジタル署名の受信にさらに基づき、前記方法は、前記メッシュネットワークがセキュアでないと判断する前の時点において、前記マスタービーコンデバイスによって、前記認証データ内で受信された前記1つまたは複数の暗号化デジタル署名の有効性を判断するステップをさらに含む、請求項1に記載の方法。
前記パスロス情報の代わりに、受信信号強度インジケータ、受信チャネル電力インジケータ、到着時間またはラウンドトリップ時間が検出される、請求項1に記載の方法。
前記パスロス情報の代わりに、受信信号強度インジケータ、受信チャネル電力インジケータ、到着時間またはラウンドトリップ時間が検出される、請求項4に記載の方法。
可用性データを送信するためのコンピュータ可読プログラム命令をさらに含み、前記可用性データはマスタービーコンデバイス識別子を含み、前記マスタービーコンデバイスの近傍の1つまたは複数のサーバントビーコンデバイスは、前記可用性データを受信し、前記可用性データを再送信し、前記マスタービーコンデバイスの近傍にない1つまたは複数のサーバントビーコンデバイスは、前記メッシュネットワーク内の全てのサーバントビーコンデバイスが前記可用性データを受信および再送信するまで、前記再送信された可用性データを受信および再送信し、各サーバントビーコンは、可用性データが直接受信された受信元の任意のビーコンデバイスの前記受信信号強度インジケータおよびビーコンデバイス識別子を特定する、請求項10に記載のコンピュータプログラム。
前記メッシュネットワーク内の各サーバントビーコンデバイスは、前記可用性データを受信および再送信した後の時点において、前記送信側のサーバントビーコンデバイスの前記ビーコンデバイス識別子ならびに近傍のサーバントビーコンデバイスの前記特定された受信信号強度インジケータおよびビーコンデバイス識別子を含む調査データを送信し、前記調査データは、前記マスタービーコンデバイスが前記調査データを受信するまで、前記メッシュネットワーク内の1つまたは複数のサーバントビーコンデバイスによって受信および再送信される、請求項12に記載のコンピュータプログラム。
前記第1の仮想マップと前記第2の仮想マップとの間に何ら大きな差異が見つからないことに基づいて、前記メッシュネットワークがセキュアであると判断するためのコンピュータ可読プログラム命令と、
ユーザコンピューティングデバイスに、前記メッシュネットワークがセキュアであるという通知を送信するためのコンピュータ可読プログラム命令であって、前記ユーザコンピューティングデバイスは、前記メッシュネットワーク内の前記ビーコンデバイスのうちの1つまたは複数とネットワーク接続を確立し、前記ユーザコンピューティングデバイスは、前記メッシュネットワークがセキュアであるという前記通知を受信すると、前記メッシュネットワークに関連付けられたマーチャントシステムとの取引を開始する、コンピュータ可読プログラム命令と
をさらに備える、請求項10に記載のコンピュータプログラム。
前記メッシュネットワーク内の前記サーバントビーコンデバイスのうちの1つまたは複数は加速度計を備え、前記加速度計を備えるサーバントビーコンデバイスの各々は、認証データを送信する前の時点において、前記サーバントビーコンデバイスの任意の動きを判断し、前記加速度計を備えるサーバントビーコンデバイスの各々は、前記動きの判断を含む動き通知をさらに含む認証データを送信し、前記ネットワークがセキュアでないという判断は、前記サーバントビーコンデバイスのうちの1つまたは複数が動かされたことを示す動き通知の受信にさらに基づく、請求項10に記載のコンピュータプログラム。
前記メッシュネットワーク内の前記サーバントビーコンデバイスのうちの1つまたは複数が認証データを送信し、前記認証データは、前記認証データの発信元の前記サーバントビーコンデバイスによって暗号化された、暗号化デジタル署名をさらに含み、前記メッシュネットワークがセキュアでないという判断は、前記認証データにおいて受信される1つまたは複数の無効なデジタル署名の受信にさらに基づき、前記コンピュータプログラムは、前記メッシュネットワークがセキュアでないと判断する前の時点において、前記認証データ内で受信された前記1つまたは複数の暗号化デジタル署名の有効性を判断するためのコンピュータ可読プログラム命令をさらに含む、請求項10に記載のコンピュータプログラム。
前記メッシュネットワーク内の前記サーバントビーコンデバイスのうちの1つまたは複数は加速度計を備え、前記加速度計を備えるサーバントビーコンデバイスの各々は、認証データを送信する前の時点において、前記サーバントビーコンデバイスの任意の動きを判断し、前記加速度計を備えるサーバントビーコンデバイスの各々は、前記動きの判断を含む動き通知をさらに含む認証データを送信し、前記ネットワークがセキュアでないという判断は、前記サーバントビーコンデバイスのうちの1つまたは複数が動かされたことを示す動き通知の受信にさらに基づく、請求項17に記載のシステム。
前記メッシュネットワーク内の前記サーバントビーコンデバイスのうちの1つまたは複数が認証データを送信し、前記認証データは、前記認証データの発信元の前記サーバントビーコンデバイスによって暗号化された、暗号化デジタル署名をさらに含み、前記メッシュネットワークがセキュアでないという判断は、前記認証データにおいて受信される1つまたは複数の無効なデジタル署名の受信にさらに基づき、前記プロセッサは、前記システムに、前記メッシュネットワークがセキュアでないと判断する前の時点において、前記認証データ内で受信された前記1つまたは複数の暗号化デジタル署名の有効性を判断するステップを行わせるための、前記ストレージデバイスに記憶されたコンピュータ可読プログラム命令を実行するようにさらに構成される、請求項17に記載のシステム。
【発明を実施するための形態】
【0010】
概観
本明細書において説明される例示的な実施形態は、ビーコンデバイスの無線メッシュネットワークのセキュリティを判断するためのコンピュータ実施技法を提供する。例示的な実施形態では、ビーコンデバイスはメッシュネットワーク内に配置される。マスタービーコンデバイスはデータパケットを送出し、このデータパケットはサーバントビーコンデバイスにより受信および再送信され、これによって無線メッシュネットワーク内のビーコンデバイスが近傍のビーコンデバイスの受信信号強度インジケータ(「RSSI」)を検出することが可能になる。各サーバントビーコンデバイスは、近傍ビーコンデバイスのRSSIおよびハードウェア識別子を含む調査データパケットをマスタービーコンデバイスに送信し、この調査データパケットから、マスタービーコンデバイスは無線メッシュ内の各ビーコンデバイスの相対的な位置の第1の仮想マップを構築する。後の時点において、各サーバントビーコンデバイスは認証データパケットを送信し、これらの認証データパケットは、マスタービーコンデバイスに到達するまで、メッシュネットワーク内の他のビーコンデバイスによって再送信される。各認証データパケットが再送信されるとき、各再送信ビーコンは、認証データパケットの受信元のビーコンデバイスのRSSIおよびハードウェア識別子を挿入する。マスタービーコンは、認証データパケットにおいて受信されたデータに基づいてメッシュネットワークの第2の仮想マップを構築する。マスタービーコンデバイスは、第1の仮想マップを第2の仮想マップと比較して、ネットワークがセキュアであるか否かを判断する。
【0011】
ビーコンデバイスのメッシュネットワークが配置される。メッシュネットワーク内の少なくとも4つのビーコンデバイスは高値ビーコンデバイスであり、加速度計および暗号化機能を含むのに対し、残りのビーコンデバイスは、これらの特殊な特徴を含まない。高値ビーコンデバイスのうちの1つは、マスタービーコンデバイスとして設計される。他の3つの高値ビーコンデバイスを含む残りのビーコンデバイスは、サーバントビーコンデバイスである。マスタービーコンデバイスは可用性データパケットを送出し、この可用性データパケットはメッシュネットワーク内の全てのサーバントビーコンデバイスによって受信および再送信され、各ビーコンデバイスは、受信した可用性データパケットごとに、可用性データパケットを送信したビーコンデバイスのハードウェア識別子および受信信号強度インジケータ(「RSSI」)を記録する。他の例示的な実施形態では、受信チャネル電力インジケータ(「RCPT」)、到達時間(「TOA」)、ラウンドトリップタイム(「RTT」)または他の自由空間パスロスが、RSSIの代わりに特定される。各ビーコンデバイスは、記録された3つの最強のRSSI値、およびRSSI値に関連付けられたそれぞれのビーコンデバイスの対応するハードウェア識別子を抽出し、この情報を調査データパケットにおいてマスタービーコンデバイスに送信する。マスタービーコンデバイスは、調査データパケットにおいて受信された情報に基づいてメッシュネットワークの第1の仮想マップを構築する。
【0012】
マスタービーコンデバイスは、メッシュネットワーク内のビーコンデバイスごとに登録データパケットを放出し、登録データパケットは、宛先サーバントビーコンデバイスの宛先ハードウェア識別子を備える。登録データパケットは、適切な宛先ビーコンデバイスに到達するまで、メッシュネットワーク内のビーコンデバイスによって送信および再送信される。次に、各サーバントビーコンデバイスは、送信側のビーコンデバイスのハードウェア識別子を含む、マスタービーコンデバイスに宛てられた認証データパケットを送信する。高値サーバントビーコンデバイスは、ビーコンデバイスの物理的な動きを検出する加速度計からのデータおよび暗号化された署名をさらに含む認証データパケットを送信する。認証データパケットは、マスタービーコンデバイスに到達するまで、メッシュネットワークにおいてサーバントビーコンデバイスによって送信および再送信される。サーバントビーコンデバイスは、認証データパケットを受信すると、この認証データパケットを送信したビーコンデバイスの検出されたRSSIおよびハードウェア識別子を追加し、その後、この認証データパケットを再送信する。認証データパケットは、マスタービーコンデバイスに到達する前に複数のサーバントビーコンデバイスを介して複数回再送信されてもよい。
【0013】
認証データパケットを受信すると、マスタービーコンデバイスは、認証データパケットにおいて受信した情報に基づいて、メッシュネットワークの第2の仮想マップを構築する。マスタービーコンデバイスは、第2の仮想マップを第1の仮想マップに対し比較する。仮想マップ内のRSSI値間に何らかの大きな差異が存在する場合、マスタービーコンデバイスは、メッシュネットワークがセキュアでないと判断する。さらに、マスタービーコンデバイスは、高値サーバントビーコンデバイスから発生する認証データパケットにおいて受信された加速度計データおよびデジタル署名に基づいて、高値サーバントビーコンデバイスのいずれかが動いた場合、またはデジタル署名が無効である場合、ネットワークがセキュアでないと判断する。マスタービーコンデバイスは、メッシュネットワークがセキュアでないと判断すると、適切なエンティティに警告するか、またはネットワークを無効にすることができる。仮想マップ内のRSSI値間に大きな差異が存在しない場合、高値ビーコンデバイスはいずれも動いておらず、かつ高値サーバントビーコンデバイスから受信されたデジタル署名が有効である場合、マスタービーコンデバイスはネットワークがセキュアであると判断する。例示的な実施形態では、ユーザコンピューティングデバイスは、ネットワークがセキュアであるという通知を受信した後、ビーコンデバイスの無線メッシュネットワークに関連付けられたマーチャントシステムとの取引を行うことができる。マスタービーコンは、この方法を周期的に繰り返して、メッシュネットワークのセキュリティを判断することができる。
【0014】
例示的なシステムアーキテクチャ
次に、図面を参照して、例示的な実施形態を詳細に説明する。図面において、類似の符号は図面全体を通じて類似の(ただし必ずしも同一ではない)要素を示す。
【0015】
図1は、いくつかの例示的な実施形態による、ビーコンデバイスの無線メッシュネットワークのセキュリティを判断するためのシステム100を示すブロック図である。
図1に示すように、システム100は、1つまたは複数のネットワーク120を介して互いに通信するように構成されるネットワークコンピューティングデバイス110-a、110-bおよび130を含む。例示的な実施形態では、無線メッシュネットワークは、1つまたは複数のネットワーク120を介して互いに通信するように構成された、1つまたは複数の高値サーバントビーコンデバイス110-b、1つまたは複数の(非高値)サーバントビーコンデバイス110-a、およびマスタービーコンデバイス130を備える。いくつかの実施形態では、デバイスに関連付けられたユーザは、本明細書において説明される技法の利点を得るために、アプリケーションをインストールし、かつ/または特徴選択を行わなくてはならない。
【0016】
ネットワーク120は、ローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)、イントラネット、インターネット、ストレージエリアネットワーク(「SAN」)、パーソナルエリアネットワーク(「PAN」)、メトロポリタンエリアネットワーク(「MAN」)、無線ローカルエリアネットワーク(「WLAN」)、バーチャルプライベートネットワーク(「VPN」)、セルラーまたは他のモバイル通信ネットワーク、Bluetooth(登録商標)、Bluetooth(登録商標) low energy、NFC、もしくはこれらの任意の組合せ、または信号、データおよび/もしくはメッセージの通信を容易にし、受信信号強度インジケータ(「RSSI」)もしくは同様の特性の測定を可能にする任意の他の適切なアーキテクチャもしくはシステムを含むことができる。例示的な実施形態の論考全体を通じて、「データ」および「情報」という用語は、本明細書において、コンピュータベースの環境において存在することができるテキスト、画像、オーディオ、ビデオまたは任意の他の形態の情報を指すように交換可能に用いられることが理解されるべきである。
【0017】
各ネットワークコンピューティングデバイス110-a、110-bおよび130は、ネットワーク120を介してデータを送受信することが可能な通信モジュールを有するデバイスを備える。例えば、各ネットワークコンピューティングデバイス110-a、110-bおよび130は、サーバ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、1つまたは複数のプロセッサが埋め込まれたかつ/または結合されたテレビ、スマートフォン、ハンドヘルドコンピュータ、携帯情報端末(「PDA」)または任意の他の有線もしくは無線のプロセッサ駆動式デバイスを含むことができる。
図1に示す例示的な実施形態では、ネットワークコンピューティングデバイス110-a、110-bおよび130は、マーチャントシステムオペレータによって動作される。例えば、マーチャントシステムは、1つまたは複数のネットワークコンピューティングデバイス110-a、110-bおよび130に関連付けられる。
【0018】
例示的なサーバントビーコンデバイス110-aは、アプリケーション111と、データストレージユニット112と、コントローラ113と、アンテナ115とを備える。例示的な実施形態では、ユーザインターフェース(図示せず)は、マーチャントオペレータが、アプリケーション131とインタラクトすることを可能にする。例えば、マーチャントシステムオペレータは、サーバントビーコンデバイス110-aをインストールおよび/または構成することができる。
【0019】
例示的な実施形態では、データストレージユニット112は、情報を記憶するのに適したサーバントビーコンデバイス110-aにアクセス可能なローカルまたはリモートデータストレージ構造を備える。例示的な実施形態では、データストレージユニット112は、HTML5ローカルストレージ等の暗号化された情報を記憶する。例示的な実施形態では、データストレージユニット112は、可用性データパケットまたは調査データパケットの受信元のビーコンデバイスの検出された受信信号強度インジケータ(「RSSI」)値を記憶する。この例示的な実施形態では、データストレージユニット112は、可用性データパケットおよび/または調査データパケットにおいて受信される任意のデータを記憶する。別の例示的な実施形態では、データストレージユニット112は、登録データパケットにおいて受信される近傍ビーコンデバイスのRSSI値およびハードウェア識別子を記憶する。例示的な実施形態では、アプリケーション111は、データストレージユニット112にアクセスし、記憶されたデータを索出することができる。
【0020】
例示的な実施形態では、アプリケーション111は、サーバントビーコンデバイス110-a上に存在し、サーバントビーコンデバイス110-a上でその動作を実行するプログラム、関数、ルーチン、アプレット、または同様のエンティティである。いくつかの実施形態では、マーチャントオペレータは、サーバントビーコンデバイス110-aにおいてアプリケーション111をインストールし、かつ/または特徴選択を行って、本明細書において記載される技法の利点を得なくてはならない。例示的な実施形態では、マーチャントオペレータは、ユーザインターフェース(図示せず)を介してサーバントビーコンデバイス110-a上のアプリケーション111にアクセスすることができる。例示的な実施形態では、アプリケーション111は、アンテナ115を通じてコントローラ113を介してプロービング要求を送信および受信し、サーバントビーコンデバイス110-aがネットワーク120接続を確立することができるネットワーク120デバイスが近傍に存在するか否かを判断することができる。例示的な実施形態では、アプリケーション111は、1つまたは複数の他のサーバントビーコンデバイス110-a、1つまたは複数の高値サーバントビーコンデバイス110-bおよび/またはマスタービーコンデバイス130からの要求を受信し、サーバントビーコンデバイス110-aと1つまたは複数の要求側のネットワーク120ビーコンデバイスとの間で1つまたは複数のネットワーク120接続を確立する。例示的な実施形態では、マーチャントオペレータは、アプリケーション111および/またはサーバントビーコンデバイス110-aの設定を構成し、アプリケーション111が、1つまたは複数の要求側のネットワーク120ビーコンデバイスとのネットワーク接続を自動的に確立することを可能にする。例示的な実施形態では、アプリケーション111はコントローラ113と通信し、1つまたは複数の他のサーバントビーコンデバイス110-a、1つまたは複数の高値サーバントビーコンデバイス110-bおよび/またはマスタービーコンデバイス130との1つまたは複数のネットワーク120接続を、無線周波数(「RF」)アンテナ115を介して確立する。別の例示的な実施形態では、サーバントビーコンデバイス110-aは、1つまたは複数の他のサーバントビーコンデバイス110-a、1つまたは複数の高値サーバントビーコンデバイス110-bおよび/またはマスタービーコンデバイス130に、1つまたは複数の要求側のネットワーク120ビーコンデバイスとの1つまたは複数のネットワーク120接続を確立することの要求を送信する。この例示的な実施形態では、1つまたは複数の要求されたネットワーク120ビーコンデバイスは、要求側のサーバントビーコンデバイス110-aとのネットワーク120接続を確立することの要求を受け入れる。
【0021】
例示的な実施形態は、アプリケーション111は、マスタービーコンデバイス130から直接、またはマスタービーコンデバイス130から1つもしくは複数の再送信するサーバントビーコンデバイス110を介して可用性データパケットを受信する。例示的な実施形態では、アプリケーション111は、可用性データパケットの受信元の1つまたは複数の送信側のビーコンデバイスのハードウェア識別子および検出されたRSSI値を特定し、データストレージユニット112と通信してこの情報を記憶する。例えば、アプリケーション111は、送信側のビーコンデバイスから受信したデータパケットからハードウェア識別子を抽出することができるか、または送信側のビーコンデバイスに対し、その送信側のビーコンデバイスのハードウェア識別子を求める要求を送信し、これに応答してハードウェア識別子を受信することができる。例示的な実施形態では、アプリケーション111は、アプリケーション111が常駐するサーバントビーコンデバイス110-aの近傍のビーコンデバイスに関連付けられたRSSI値および対応するハードウェア識別子のリストを含む調査データパケットを送信する。この例示的な実施形態では、アプリケーション111は、データストレージユニット112と通信し、記憶されたRSSI値および対応するハードウェア識別子を抽出して調査データパケットを作成することができる。例示的な実施形態では、アプリケーション111は、マスタービーコンデバイス130から直接、またはマスタービーコンデバイス130から1つまたは複数の再送信サーバントビーコンデバイス110を介して登録データパケットを受信する。この例示的な実施形態では、登録データパケットは、近傍ビーコンデバイスのリスト、およびサーバントビーコンデバイス110-bと、リストされた近傍ビーコンデバイスの各々との間のベースラインRSSI値を含む。例えば、近傍ビーコンデバイスのリストは、少なくとも3つのビーコンデバイスハードウェア識別子および3つの対応するRSSI値のリストを含むことができる。例示的な実施形態では、アプリケーション111は、アプリケーション111が常駐するサーバントビーコンデバイス110-aのハードウェア識別子を含む認証データパケットを送信する。この例示的な実施形態では、認証データパケットは、登録データパケッ
トにおいて受信された近傍ビーコンデバイスのリスト内の近傍ビーコンデバイスのうちの1つまたは複数を介してマスタービーコンデバイス130に送信される。この例示的な実施形態では、アプリケーション111は他のサーバントビーコンデバイス110の認証データパケットを受信し、送信側のビーコンデバイスのためのRSSI値を検出し、送信側のビーコンデバイスの対応するハードウェア識別子を特定し、RSSI値および対応するハードウェア識別子を受信した認証データパケットに挿入し、認証データパケットを再送信する。
【0022】
例示的な実施形態では、コントローラ113はアプリケーション111と通信し、ネットワーク120を介してデータを送受信することができる。例示的な実施形態では、コントローラ113は、RFアンテナ115をアクティベートして、サーバントビーコンデバイス110-aと1つまたは複数の他のサーバントビーコンデバイス110-a、1つまたは複数の高値サーバントビーコンデバイス110-bおよび/またはマスタービーコンデバイス130との間の1つまたは複数のネットワーク120接続を作成する。例示的な実施形態では、コントローラ113は、本明細書に記載される方法を実行するのに適した、Bluetooth(登録商標) low energyリンクコントローラ、Bluetooth(登録商標)リンクコントローラ、Wi-Fiコントローラまたは任意の他の無線ネットワーク120コントローラである。例示的な実施形態では、コントローラ113はアンテナ115を通じて無線信号をポーリングするか、または1つもしくは複数のサーバントビーコンデバイス110-a、1つもしくは複数の高値サーバントビーコンデバイス110-bおよび/もしくはマスタービーコンデバイス130からの無線信号をリッスンする。
【0023】
例示的な実施形態では、サーバントビーコンデバイス110-aは、アンテナ115を介して1つまたは複数のネットワーク120接続にわたって、1つまたは複数の他のサーバントビーコンデバイス110-a、1つまたは複数の高値サーバントビーコンデバイス110-bおよび/またはマスタービーコンデバイス130と通信する。例示的な実施形態では、アンテナ115は無線周波数(「RF」)アンテナである。
【0024】
例示的な高値サーバントビーコンデバイス110-bは、アプリケーション131と、データストレージユニット132と、コントローラ133と、アンテナ135と、加速度計137とを備える。例示的な実施形態では、ユーザインターフェース(図示せず)は、マーチャントオペレータがアプリケーション131とインタラクトすることを可能にする。例えば、マーチャントシステムオペレータは、高値サーバントビーコンデバイス110-bをインストールおよび/または構成することができる。
【0025】
例示的な実施形態では、高値サーバントビーコンデバイス110-b上に常駐するアプリケーション131は、高値サーバントビーコンデバイス110-b上に存在し、高値サーバントビーコンデバイス110-b上でその動作を実行する、プログラム、関数、ルーチン、アプレット、または同様のエンティティである。いくつかの実施形態では、マーチャントオペレータは、アプリケーション131をインストールし、かつ/または高値サーバントビーコンデバイス110-bにおいて特徴選択を行って、本明細書において説明される技法の利点を得なくてはならない。例示的な実施形態では、マーチャントオペレータは、ユーザインターフェース(図示せず)を介して高値サーバントビーコンデバイス110-b上のアプリケーション131にアクセスすることができる。例示的な実施形態では、アプリケーション131は、サーバントビーコンデバイス110-a上に常駐するアプリケーション111と同様の機能を実行する。いくつかの例示的な実施形態では、アプリケーション131は、アプリケーション111に類似した機能を実行することに加えて、認証データパケットにおいて送信するためのデジタル署名を作成する機能をさらに実行する。この例示的な実施形態では、アプリケーション131は、高値サーバントビーコンデバイス110-b上に常駐するセキュアエレメント139と通信して、セキュアエレメント139上に常駐している暗号化キーを用いてデジタル署名を作成することができる。この例示的な実施形態では、セキュアエレメント139上に常駐している暗号化キーによって作成されるデジタル署名は、マスタービーコンデバイス130によって解読することができる。別の例示的な実施形態では、アプリケーション131は、アプリケーション111に類似した機能を実行することに加えて、高値サーバントビーコンデバイス110-bが動いたか否かを、高値サーバントビーコンデバイス110-b上に常駐する加速度計137と通信することによって判断する機能をさらに実行する。
【0026】
例示的な実施形態では、マスタービーコンデバイス130上に常駐しているアプリケーション131は、マスタービーコンデバイス130上に存在し、マスタービーコンデバイス130上でその動作を実行するプログラム、関数、ルーチン、アプレット、または同様のエンティティである。いくつかの実施形態では、マーチャントオペレータは、アプリケーション131をインストールし、かつ/またはマスタービーコンデバイス130において特徴選択を行って、本明細書において記載される技法の利点を得なくてはならない。例示的な実施形態では、マーチャントオペレータは、ユーザインターフェース(図示せず)を介してマスタービーコンデバイス130上のアプリケーション131にアクセスすることができる。例示的な実施形態では、高値ビーコンデバイス110-b上に常駐しているアプリケーション131は、マーチャントシステムオペレータによって、高値サーバントビーコンデバイス110-bをマスタービーコンデバイス130になるように変換し、アプリケーション131をマスタービーコンデバイス130アプリケーション131になるように変換するように構成される。例示的な実施形態では、マスタービーコンデバイス130上に常駐しているアプリケーション131は、高値サーバントビーコンデバイス110-b上に常駐しているアプリケーション131および/またはサーバントビーコンデバイス110-a上に常駐しているアプリケーション111によって実行される機能のうちの1つまたは複数を実行する。例示的な実施形態では、マスタービーコンデバイス130上に常駐しているアプリケーション131は、マスタービーコンデバイス130のハードウェア識別子を含む認証データパケットを送信する。例示的な実施形態では、マスタービーコンデバイス130アプリケーション131は、メッシュネットワーク内の1つまたは複数のサーバントビーコンデバイス110から1つまたは複数の調査データパケットを受信する。この例示的な実施形態では、マスタービーコンデバイス130は、調査データパケット内で受信されたハードウェア識別子およびRSSI値を抽出し、この情報を用いて、ビーコンデバイスのメッシュネットワークの第1の仮想マップを構築する。例示的な実施形態では、マスタービーコンデバイス130アプリケーション131は、登録データパ
ケットを送信する。登録データパケットは、メッシュネットワーク内のサーバントビーコンデバイス110の各々に対応する宛先ビーコンデバイス識別子を含み、この宛先ビーコンデバイス識別子に関連付けられたサーバントビーコンデバイス110の近傍の少なくとも3つのビーコンデバイスのハードウェア識別子および対応するRSSI値のリストを含む。
【0027】
例示的な実施形態では、マスタービーコンデバイス130アプリケーション131は、メッシュネットワーク内の1つまたは複数のサーバントビーコンデバイス110から、検出されたRSSI値およびハードウェア識別子を含む認証データパケットを受信する。この例示的な実施形態では、マスタービーコンデバイス130アプリケーション131は、認証データパケットにおいて受信されたデータに基づいてビーコンデバイスの無線メッシュネットワークの第2の仮想マップを構築する。例示的な実施形態では、マスタービーコンデバイス130アプリケーション131は、第1の仮想マップおよび第2の仮想マップを比較し、RSSI値に何らかの重大な差異が存在するか否かを判断する。この例示的な実施形態では、マスタービーコンデバイス130アプリケーション131は、認証データパケットにおいて受信された任意のデジタル署名を解読および検証することもできる。この例示的な実施形態では、マスタービーコンデバイス130アプリケーションは、認証データパケットのうちの1つまたは複数において動きの検出を受信することもできる。例示的な実施形態において、第1のおよび第2の仮想マップを比較し、任意の受信したデジタル署名を検証し、認証データパケットのうちの1つまたは複数における動きの任意の受信された検出を解析することに基づいて、マスタービーコンデバイス130アプリケーション131は、ワイヤレスメッシュネットワークがセキュアであるか否かを判断する。例示的な実施形態では、マスタービーコンデバイス130アプリケーション131は、無線メッシュネットワークがセキュアでないと判断すると、無線メッシュネットワーク内の1つまたは複数のネットワーク120接続を終了させることができる。
【0028】
例示的な実施形態では、データストレージユニット132は、情報を記憶するのに適した高値サーバントビーコンデバイス110-bまたはマスタービーコンデバイス130にアクセス可能なローカルまたはリモートデータストレージ構造を備える。例示的な実施形態では、データストレージユニット132は、HTML5ローカルストレージ等の暗号化された情報を記憶する。例示的な実施形態では、データストレージユニット132は、可用性データパケットまたは調査データパケットの受信元のビーコンデバイスの検出された受信信号強度インジケータ(「RSSI」)値を記憶する。この例示的な実施形態では、データストレージユニット132は、可用性データパケットおよび/または調査データパケットにおいて受信された任意のデータを記憶する。別の例示的な実施形態では、データストレージユニット132は、登録データパケットおよび/または認証データパケットにおいて受信された近傍ビーコンデバイスのRSSI値およびハードウェア識別子を記憶する。例示的な実施形態では、アプリケーション131は、記憶されたデータを索出するためにデータストレージユニット132にアクセスすることができる。マスタービーコンデバイス130データストレージユニット132は、マスタービーコンデバイス130アプリケーション131によって作成された1つまたは複数の仮想マップを記憶することができる。
【0029】
例示的な実施形態では、コントローラ133はアプリケーション131と通信し、ネットワーク120を介してデータを送信および受信することができる。例示的な実施形態では、コントローラ133はRFアンテナ135をアクティベートして、コントローラ133が常駐している高値サーバントビーコンデバイス110-bまたはマスタービーコンデバイス130と無線メッシュネットワーク内の1つまたは複数の他のビーコンデバイスとの間に1つまたは複数のネットワーク120接続を作成する。例示的な実施形態では、コントローラ133は、本明細書において説明される方法を実行するのに適した、Bluetooth(登録商標) low energyリンクコントローラ、Bluetooth(登録商標)リンクコントローラ、Wi-Fiコントローラまたは任意の他の無線ネットワーク120コントローラである。例示的な実施形態では、コントローラ113はアンテナ135を通じて無線信号をポーリングするか、または1つもしくは複数の他のネットワーク120ビーコンデバイスからの無線信号をリッスンする。
【0030】
例示的な実施形態では、高値サーバントビーコンデバイス110-bは、アンテナ135を介して1つまたは複数のネットワーク120接続にわたって、1つまたは複数の他のサーバントビーコンデバイス110-a、1つまたは複数の高値サーバントビーコンデバイス110-bおよび/またはマスタービーコンデバイス130と通信する。例示的な実施形態では、マスタービーコンデバイス130は、アンテナ135を介して1つまたは複数のネットワーク120接続にわたって、1つまたは複数の他のサーバントビーコンデバイス110-a、および1つまたは複数の高値サーバントビーコンデバイス110-bと通信する。例示的な実施形態では、アンテナ135は無線周波数(「RF」)アンテナである。
【0031】
例示的な実施形態では、加速度計137は、加速度計137が常駐する高値サーバントビーコンデバイス110-bおよび/またはマスタービーコンデバイス130の任意の動きを検出することができる。例示的な実施形態では、加速度計137は、自身が常駐しているマスタービーコンデバイス130または高値サーバントビーコンデバイス110-bの物理的な動きを検出し、動きの判断を、同じデバイス上に常駐しているアプリケーション131に通信する。
【0032】
例示的な実施形態では、高値サーバントビーコンデバイス110-b上のセキュアエレメント139は、認証データパケットにおいて送信されるデジタル署名を作成するのに用いられるプライベートキーを備える。この例示的な実施形態では、マスタービーコンデバイス130上のセキュアエレメント139は、1つまたは複数の認証データパケットにおいて受信される1つまたは複数のデジタル署名を解読する際に用いる暗号化キーを含む。例示的な実施形態では、アプリケーション131は、高値サーバントビーコンデバイス110-bおよび/またはマスタービーコンデバイス130のセキュアエレメント139上に常駐している。
【0033】
示されているネットワーク接続は例示であり、コンピュータとデバイスとの間の通信リンクを確立する他の手段を用いることができることが理解されよう。さらに、本開示の利益を得る当業者は、
図1に示されるサーバントビーコンデバイス110-a、高値サーバントビーコンデバイス110-bおよびマスタービーコンデバイス130が、いくつかの他の適切なコンピュータシステム構成のうちの任意のものを有することができることを理解するであろう。例えば、モバイルフォンまたはハンドヘルドコンピュータとして実現されるユーザコンピューティングデバイス110は、上記で説明した全てのコンポーネントを含む場合も含まない場合もある。
【0034】
図2は、ビーコンデバイスの例示的な無線メッシュネットワークを備えるシステム200を示すブロック図である。
図2に示すように、システム200は、1つまたは複数のネットワーク120(図示せず)を介して互いに通信するように構成された物理エリア内に配置された、マスタービーコンデバイス130と、3つの高値サーバントビーコンデバイス110-A、110-Bおよび110-Cと、9つのサーバントビーコンデバイス110-i、110-ii、110-iii、110-iv、110-v、110-vi、110-vii、110-viiiおよび110-ixとを備える。本明細書において説明される例示的な実施形態では、
図2に示すサーバントビーコンデバイス110-i、110-ii、110-iii、110-iv、110-v、110-vi、110-vii、110-viiiおよび110-ixの各々がコンポーネントを含み、
図1に示す例示的なサーバントビーコンデバイス110-aの機能を実行する。本明細書において説明される例示的な実施形態では、
図2に示す高値サーバントビーコンデバイス110-A、110-Bおよび110-Cの各々がコンポーネントを含み、
図1に示す例示的な高値サーバントビーコンデバイス110-bの機能を実行する。本明細書において説明される例示的な実施形態では、
図2に示すマスタービーコンデバイス130はコンポーネントを含み、
図1に示す例示的なマスタービーコンデバイス130の機能を実行する。本明細書において説明される例示的な実施形態では、システム200のビーコンデバイスの各々が、無線ネットワーク接続を介して無線メッシュネットワーク内の全ての他のビーコンデバイスと通信することができる場合もできない場合もある。本明細書において説明される例示的な実施形態では、各ビーコンデバイスは所定の近傍範囲内の他のネットワークビーコンデバイスと通信し、これによって、デバイスはネットワーク接続を維持することが可能になる。本明細書において説明される例示的な実施形態では、
図2に示す複数のビーコンデバイスの配置は例であり、マーチャントシステムオペレータは、様々な他の構成においてビーコンデバイスを構成することができ、サーバントビーコンデバイスの量は変動する場合があり、高値サーバントビーコンデバイスの量は変動する場合があり、かつ/または無線メッシュネットワークにおける複数のビーコンデバイスの物理空間における構成は変動する場合がある。
【0035】
例示的な実施形態では、本明細書において提示される技術に関連付けられたネットワークコンピューティングデバイスおよび任意の他のコンピューティングマシンは、限定ではないが、
図11に関してより詳細に論考されるもの等の任意のタイプのコンピューティングマシンとすることができる。さらに、本明細書において説明されるモジュール等の、これらのコンピューティングマシンのうちの任意のものに関連付けられた任意のモジュール、または、本明細書において提示される技術に関連付けられた任意の他のモジュール(スクリプト、ウェブコンテンツ、ソフトウェア、ファームウェアまたはハードウェア)は、
図11に関連してより詳細に論考されるモジュールのうちの任意のものとすることができる。本明細書において論考されるコンピューティングマシンは、互いに、およびネットワーク120等の1つまたは複数のネットワークを介して他のコンピュータマシンまたは通信システムと通信することができる。ネットワーク120は、
図11に関連して論考されたネットワーク技術のうちの任意のものを含む、任意のタイプのデータまたは通信ネットワークを含むことができる。
【0036】
例示的なプロセス
図3〜
図11に示される例示的な方法が、以下で、例示的なオペレーティング環境100、およびビーコンデバイスの無線メッシュネットワークを含む例示的なシステム200のコンポーネントに関して説明される。
図3〜
図11の例示的な方法は、他のシステムと共に、および他の環境においても実行され得る。
【0037】
図3は、いくつかの例示的な実施形態による、ビーコンデバイスの無線メッシュネットワークのセキュリティを判断するための方法300を示すブロック図である。方法300は、
図1〜
図2に示すコンポーネントを参照して説明される。
【0038】
ブロック310において、サーバントビーコンデバイス110-aおよび高値ビーコンデバイス110-bが配置され、マスタービーコンが選択される。例示的な実施形態では、マーチャントシステム(図示せず)は、1つまたは複数のマーチャントロケーションを含む。例示的なマーチャントロケーションでは、マーチャントシステムに関連付けられたオペレータは、1つまたは複数のサーバントビーコンデバイス110-aおよび1つまたは複数の高値サーバントビーコンデバイス110-bを配置する。例えば、マーチャントロケーションはスーパーマーケットを含み、マーチャントシステムオペレータは、1つまたは複数のサーバントビーコンデバイス110-aおよび1つまたは複数の高値サーバントビーコンデバイス110-bをスーパーマーケットロケーション全体にわたって配置する。例示的な実施形態では、マーチャントシステムオペレータは、高値サーバントビーコンデバイス110-bがマスタービーコンデバイス130になるように選択する。例示的な実施形態では、マーチャントシステムオペレータは、本明細書において説明した例示的なマスタービーコンデバイス130の機能を実行するようにマスタービーコンデバイス130を構成しなくてはならない場合がある。
【0039】
例示的な実施形態では、1つまたは複数のビーコンデバイスが、近傍の1つまたは複数のユーザコンピューティングデバイス(図示せず)とのネットワーク120接続を確立し、アドバタイジングパケットを1つまたは複数のユーザコンピューティングデバイスに送信する。例えば、マーチャントシステムロケーションがスーパーマーケットである場合、1つまたは複数のビーコンデバイスは、値引き、クーポン、ポイントカードまたは他の有用なもしくは関連する情報を、近傍のネットワーク120内のユーザコンピューティングデバイスに送信することができる。例示的な実施形態では、ユーザコンピューティングデバイスは、モバイルフォン、タブレット、またはネットワーク120に接続することが可能な他のモバイルデバイスを含む。別の例示的な実施形態では、1つまたは複数のビーコンデバイスは、ユーザコンピューティングデバイスによる支払いを容易にする。この例示的な実施形態では、ユーザコンピューティングデバイスは、マーチャントシステムに関連付けられた販売時点情報管理(「POS」)に近傍ビーコンデバイスとのネットワーク120接続を有するときにのみ支払いを可能にすることができる。
【0040】
ブロック320では、可用性データパケットは、マスタービーコンデバイス130によって送信され、メッシュネットワーク内のサーバントビーコンデバイス110によって再送信される。本明細書において説明される例示的な実施形態では、サーバントビーコンデバイス110は、サーバントビーコンデバイス110-aと、高値サーバントビーコンデバイス110-bとの双方を含む。ビーコンデバイスの無線メッシュネットワークにおいて可用性データパケットを送信および再送信して、デバイス間の受信信号強度インジケータ値のベースラインを確立する方法が、
図4に説明される方法を参照して以下でより詳細に説明される。
【0041】
図4は、いくつかの例示的な実施形態による、ビーコンデバイスの無線メッシュネットワークにおいて可用性データパケットを送信および再送信して、デバイス間の受信信号強度インジケータ値のベースラインを確立するための方法320を示すブロック図である。本方法320は、
図1〜
図2に示されるコンポーネントを参照して説明される。
【0042】
ブロック410において、マスタービーコンデバイス130は可用性データパケットを送出する。例示的な実施形態では、可用性データパケットは、マスタービーコンデバイスのハードウェア識別子を含む。一例では、ハードウェア識別子は、ハードウェアIDまたはMACアドレスを含むことができる。この例示的な実施形態では、ハードウェア識別子は、ビーコンデバイスのネットワーク120インターフェースまたはビーコンデバイスの他のハードウェアコンポーネントを一意に識別する英数字および/またはシンボル文字を含むことができる。
【0043】
ブロック420において、1つまたは複数のサーバントビーコンデバイス110が、マスタービーコンデバイス130から送信された可用性データパケットを受信する。上記で論考したように、サーバントビーコンデバイス110は、サーバントビーコンデバイス110-aおよび高値サーバントビーコンデバイス110-bの双方を備える。
図2に戻ると、例示的な実施形態において、マスタービーコンデバイス130は可用性データパケットを送信し、近傍のサーバントビーコンデバイス110は、可用性データパケットを受信する。一例において、サーバントビーコンデバイス110-iおよび110-ixならびに高値サーバントビーコンデバイス110-A、110-Bおよび110-Cは、マスタービーコンデバイス130の近傍のネットワーク内にあり、1つまたは複数のネットワーク120(図示せず)にわたってマスタービーコンデバイス130によって送信された可用性データパケットを受信する。
【0044】
図4に戻ると、ブロック430において、受信側のサーバントビーコンデバイス110は、マスタービーコンデバイス130のRSSIおよびハードウェア識別子を特定する。例示的な実施形態では、受信サーバントビーコンデバイス110は、マスタービーコンデバイス130から送信された可用性データパケットからハードウェア識別子を抽出する。例示的な実施形態では、受信信号強度インジケータ(「RSSI」)は、ネットワーク120ビーコンデバイスによって受信された無線信号の相対的な強度を示す。この例では、RSSIは、マスタービーコンデバイス130によって送信された可用性データパケットを受信する1つまたは複数のサーバントビーコンデバイス110によって受信されるようなマスタービーコンデバイス130の無線信号の相対強度である。例示的な実施形態では、RSSIは、デシベルスケール等の対数スケールでの整数とすることができる。RSSIは、2つのネットワーク120デバイス間の距離を推定するためのプロキシとして用いることができる。例えば、第1のネットワーク120デバイスが第2のネットワーク120デバイスから離れるように動かされると、第1のネットワーク120デバイスによって特定されるような第2のネットワーク120デバイスのRSSIが減少する。同様に、第2のネットワーク120デバイスによって特定されるような第1のネットワーク120デバイスのRSSIも、デバイスが互いからより遠くに離れるときに減少する。別の例では、第1のネットワーク120デバイスが第2のネットワーク120デバイスの近くに動かされるとき、第1のネットワーク120デバイスによって特定される第2のネットワーク120デバイスのRSSIが増大する。同様に、デバイスが互いに共に近づくとき、第2のネットワーク120デバイスによって特定される第1のネットワーク120デバイスのRSSIも増大する。別の例示的な実施形態では、2つのネットワーク120デバイス間の距離を推定するための別のプロキシ、例えば、自由空間パスロス、受信チャネル電力インジケータ(「RCPI」)、到達時間(「TOA」)、またはネットワーク120デバイス間の距離を推定するための任意の他の適切な尺度が特定される。
【0045】
ブロック440において、受信側サーバントビーコンデバイス110は、マスタービーコンデバイス130のRSSIおよびハードウェア識別子を保存する。例示的な実施形態では、受信側の高値サーバントビーコンデバイス110-bおよびサーバントビーコンデバイス110-aは、それぞれデータストレージユニット132またはデータストレージユニット112に情報を保存する。
【0046】
ブロック450において、受信側のサーバントビーコンデバイス110が可用性データパケットを再送信する。例示的な実施形態では、受信側のサーバントビーコンデバイス110の各々が、自身の独自のハードウェア識別子を含む可用性データパケットを送信する。この例示的な実施形態では、再送信された可用性データパケットは、可用性データパケットを最初に送信したマスタービーコンデバイス130のハードウェア識別子をさらに含むことができる。この例示的な実施形態では、ハードウェア識別子は、データパケットを受信するビーコンデバイスが、送信側のビーコンデバイスおよび/またはマスタービーコンデバイス130を識別することを可能にする。
図2に戻ると、一例において、高値サーバントビーコンデバイス110-Bが、マスタービーコンデバイス130によって送信された可用性データパケットを受信した。この例示的な実施形態では、高値サーバントビーコンデバイス110-Bは、自身のハードウェア識別子を可用性データパケットに挿入し、可用性データパケットを再送信する。
【0047】
図4に戻ると、ブロック460において、メッシュネットワーク内の他のビーコンデバイスが、再送信された可用性データパケットを受信する。例示的な実施形態では、再送信された可用性データパケットを受信する他のビーコンデバイスは、1つまたは複数のサーバントビーコンデバイス110および/またはマスタービーコンデバイス130を含むことができる。上記で論考したように、本明細書において説明したような1つまたは複数のサーバントビーコンデバイス110は、1つまたは複数のサーバントビーコンデバイス110-aおよび/または1つまたは複数の高値サーバントビーコンデバイス110-bを備えることができる。
図2に戻ると、一例において、高値サーバントビーコンデバイス110-Bは、マスタービーコンデバイス130から受信した可用性データパケットを再送信し、この可用性データパケットを、自身のハードウェア識別子を挿入した後に再送信する。この例では、マスタービーコンデバイス130ならびにサーバントビーコンデバイス110-vii、110-viiiおよび110-ixは高値サーバントビーコンデバイス110-Bの近傍のネットワーク内にあり、このため、これらのデバイスは再送信された可用性データパケットを受信する。
【0048】
ブロック470において、受信側のビーコンデバイスは、可用性データパケットを再送信した送信側のビーコンデバイスのRSSIおよびハードウェア識別子を特定する。この例示的な実施形態では、受信側のビーコンデバイスは、再送信された可用性データパケットを受信した他のビーコンデバイスを含む。
図2に戻ると、一例において、高値サーバントビーコンデバイス110-Bは、マスタービーコンデバイス130から受信した可用性データパケットを、自身のハードウェア識別子を挿入した後に再送信する。この例では、マスタービーコンデバイス130ならびにサーバントビーコンデバイス110-vii、110-viiiおよび110-ixは高値サーバントビーコンデバイス110-Bの近傍にあるネットワーク内にあり、このため、これらのデバイスは再送信された可用性データパケットを受信する。この例では、受信側のビーコンデバイス(マスタービーコンデバイス130ならびにサーバントビーコンデバイス110-vii、110-viiiおよび110-ix)の各々が、データパケットの受信元の高値サーバントビーコンデバイス110-BのRSSIおよびハードウェア識別子を特定する。
【0049】
図4に戻ると、ブロック480において、受信側のビーコンデバイスは送信側のビーコンデバイスのRSSIおよびハードウェア識別子を保存する。例示的な実施形態では、受信側の高値サーバントビーコンデバイス110-bおよびサーバントビーコンデバイス110-aは、それぞれ、データストレージユニット132またはデータストレージユニット112内に情報を保存する。受信側のマスタービーコンデバイス130は、情報をデータストレージユニット132に保存することができる。
【0050】
ブロック490において、メッシュネットワーク内のビーコンデバイスは、それらが全て可用性データパケットを受信および再送信したか否かを判断する。例示的な実施形態では、1つまたは複数のサーバントビーコンデバイス110は各々、新たな可用性データパケットが受信されなくなるまで、可用性データパケットを送信、受信および再送信する。この例示的な実施形態では、マスタービーコンデバイス130は、新たな可用性データパケットを受信しなくなるまで、可用性データパケットを送信する。この例示的な実施形態では、新たな可用性データパケットは、一意のハードウェア識別子を含む可用性データパケットである。例示的な実施形態では、全てのビーコンデバイスが可用性データパケットを受信および再送信した後、各ビーコンデバイスは近傍にあるネットワーク120内の全てのビーコンデバイスのハードウェア識別子およびRSSIを保存している。上述したように、自由空間パスロス、受信チャネル電力インジケータ(「RCPI」)、到達時間(「TOA」)、またはネットワーク120デバイス間の距離を推定するための任意の他の適切な手段を、RSSIの代わりに、またはRSSIに加えて用いることができる。
【0051】
メッシュネットワーク内の全てのビーコンデバイスが可用性データパケットを受信および再送信していない場合、方法320はブロック450に進み、ビーコンデバイスはメッシュネットワーク内の全てのビーコンデバイスが可用性データパケットを受信および再送信するまで可用性データパケットを受信および再送信し続ける。
【0052】
ブロック490に戻ると、メッシュネットワーク内の全てのビーコンデバイスが可用性データパケットを受信および再送信し終えている場合、方法320は
図3のブロック330に進む。例示的な実施形態では、全てのビーコンデバイスが可用性データパケットを受信および再送信した場合、各ビーコンデバイスは、一意のハードウェア識別子を有する近傍にあるネットワーク120内の全てのビーコンデバイスのハードウェア識別子および対応するRSSIを保存している。
【0053】
図3に戻ると、ブロック330において、調査データパケットがサーバントビーコンデバイス110からマスタービーコンデバイス130に送信および再送信される。マスタービーコンデバイス130によってビーコンデバイスの無線ネットワークにおいてサーバントビーコンデバイス110から調査データパケットを受信するための方法330は、
図5に説明する方法を参照して以下でより詳細に説明される。
【0054】
図5は、いくつかの例示的な実施形態による、マスタービーコンデバイス130によって、ビーコンデバイスの無線ネットワークにおいてサーバントビーコンデバイス110からの調査データパケットを受信するための方法330を示すブロック図である。方法330は、
図1に示すコンポーネントを参照して説明される。
【0055】
ブロック510では、各サーバントビーコンデバイス110は、それぞれのサーバントビーコンデバイス110によって記憶された最も強力なRSSI値および対応するハードウェア識別子を抽出する。例えば、サーバントビーコンデバイス110-a(または高値サーバントビーコンデバイス110-b)は、ハードウェア識別子「A」を含むデバイスの場合、50のRSSI、ハードウェア識別子「B」を含むデバイスの場合、70のRSSI、ハードウェア識別子「C」を含むデバイスの場合、90のRSSI、ハードウェア識別子「D」を含むデバイスの場合、95のRSSI、およびハードウェア識別子「E」を含むデバイスの場合、110のRSSIを保存する。この例では、サーバントビーコンデバイス110は、デバイスC、DおよびEに対応するRSSIおよびハードウェア識別子を抽出する、例示的な実施形態では、RSSIは距離のためのプロキシ手段であるため、3つの最高の記録されたRSSI値に対応するハードウェア識別子は、サーバントビーコンデバイス110に物理的に最も近い3つのビーコンデバイスを含む。別の例示的な実施形態では、各サーバントビーコンデバイス110は、4以上の定数個の最強のRSSI値および対応するハードウェア識別子を抽出する。さらに別の例示的な実施形態では、各サーバントビーコンデバイス110は、3未満の定数個の最強のRSSI値および対応するハードウェア識別子を抽出する。例示的な実施形態では、RSSI値および対応するハードウェア識別子の数は、無線メッシュネットワーク内のサーバントビーコンデバイス130内で変動する場合がある。本明細書において記載される例示的な実施形態では、上記で論考したように、サーバントビーコンデバイス110は1つもしくは複数のサーバントビーコンデバイス110-aおよび/または1つもしくは複数の高値サーバントビーコンデバイス110-bを含む。
【0056】
ブロック520において、各サーバントビーコンデバイス110は、抽出されたハードウェア識別子および対応するRSSI値を含む調査データパケットを送信する。例示的な実施形態では、各サーバントビーコンデバイス110は、そのハードウェア識別子をさらに備える調査データパケットを送信する。例示的な実施形態では、各サーバントビーコンデバイス110は、近傍のネットワーク120内のビーコンデバイスが調査データパケットを受信することができるようにその調査データパケットを送信する。
【0057】
ブロック530において、調査データパケットを受信するビーコンデバイスは、調査データパケットを再送信する。例示的な実施形態では、1つまたは複数のビーコンデバイスは、送信された調査データパケットを受信する。この例示的な実施形態では、送信された調査データパケットを受信する1つまたは複数のビーコンデバイスは、1つまたは複数のサーバントビーコンデバイス110-a、1つまたは複数の高値サーバントビーコンデバイス110-bおよび/またはマスタービーコンデバイス130を含むことができる。例示的な実施形態では、サーバントビーコンデバイス110-aおよび高値サーバントビーコンデバイス110-bのみが、受信した調査データパケットを再送信する。この例示的な実施形態では、調査データパケットは、宛先ビーコンデバイス識別子として、マスタービーコンデバイス130ハードウェア識別子を備えることができる。例えば、宛先ビーコンデバイス識別子に対応するビーコンデバイスは、調査データパケットを受信するとき、調査データパケットを再送信しない。例示的な実施形態では、マスタービーコンデバイス130が調査データパケットを受信するとき、マスタービーコンデバイス130は調査データパケットを再送信しない。
【0058】
ブロック540において、マスタービーコンデバイス130は調査データパケットを受信する。例示的な実施形態では、マスタービーコンデバイス130は、マスタービーコンデバイス130が所定の期間内で新たな調査データパケットを受信しなくなるまで調査データパケットの受信を試行する。この例示的な実施形態では、新たな調査データパケットは、調査データパケットを最初に送信したサーバントビーコンデバイス110に関連付けられた一意のハードウェア識別子を含む調査データパケットである。例えば、マスタービーコンデバイス130は、メッシュネットワーク内にいくつのビーコンデバイスがあるかを認識しておらず、このため、マスタービーコンデバイス130は、各新たな調査データパケットが受信された後の所定の期間にわたって調査データパケットの受信を試行し続けることによって、可能な限り多くのビーコンデバイスから、調査データパケットを受信することを確保する。例示的な実施形態では、マスタービーコンデバイス130は、所定の期間内に新たな調査データパケットを受信せず、調査データパケットの受信の試行を停止する。
【0059】
ブロック550において、マスタービーコンデバイス130は、調査データパケットにおいて受信されたデータを保存する。例示的な実施形態では、調査データパケットにおいて受信されたデータは、無線メッシュネットワーク内の近傍ビーコンデバイスの各サーバントビーコンデバイス110によって検出されたハードウェア識別子および対応するRSSI値を含む。例示的な実施形態では、データは表形式で保存される。例示的な実施形態では、表は、メッシュネットワーク内の各既知のビーコンデバイスのハードウェア識別子がリストされる行および列を含むことができる。この例示的な実施形態では、行は、検出側のビーコンデバイスを表すことができ、列は、検出されるビーコンデバイスを表すことができ、調査データパケットにおいて受信されるRSSI値は、いずれのデバイスがRSSIを検出したか、およびいずれのデバイスが検出されたかに従ってテーブル上の正しい場所に保存される。
【0060】
図2に戻ると、一例において、最初にサーバントビーコンデバイス110-iによって送信され、マスタービーコンデバイス130によって受信された調査データパケットは、サーバントビーコンデバイス110-iによって検出されたRSSI値と、サーバントビーコンデバイス110-ii、高値サーバントビーコンデバイス110-Aおよびマスタービーコンデバイス130の対応するハードウェア識別子を含む。この例では、これらの3つのデバイスは、サーバントビーコンデバイス110-iによって検出される最も高いRSSI値を有するデバイスである。この例では、マスタービーコンデバイス130は、調査データパケットにおいて受信されたRSSI値および対応するハードウェア識別子を保存する。別の例では、マスタービーコンデバイス130によって受信され、サーバントビーコンデバイス110-vによって最初に送信された調査データパケットは、サーバントビーコンデバイス110-vによって検出されたRSSI値と、サーバントビーコンデバイス110-ivおよび110-viならびに高値サーバントビーコンデバイス110-Cの対応するハードウェア識別子とを含む。この例では、これらの3つのデバイスは、サーバントビーコンデバイス110-vによって検出される最高のRSSI値を有するデバイスである。この例では、マスタービーコンデバイス130は、調査データパケットにおいて受信されるRSSI値および対応するハードウェア識別子を保存する。
【0061】
図3に戻ると、ブロック340において、マスタービーコンデバイス130アプリケーションは、調査データパケットにおいて受信されたデータに基づいて、無線メッシュネットワークの第1の仮想マップを作成し、この仮想マップを保存する。例示的な実施形態では、マスタービーコンデバイス130は、3つの最高の記録されたRSSI値および対応するハードウェア識別子を含むデータを各サーバントビーコンデバイス130から受信する。例示的な実施形態では、マスタービーコンデバイス130は、RSSI値を、ビーコンデバイス間の距離のためのプロキシとみなす。例示的な実施形態では、無線メッシュネットワークの仮想マップはテーブルを含み、その行は、マスタービーコンデバイス130が調査データパケットを受信したビーコンデバイスのメッシュネットワーク内の各ビーコンデバイスのハードウェア識別子をリストし、その列は、ビーコンデバイスによって測定された各ビーコンデバイスの近傍の3つのビーコンデバイスのRSSI値をリストする。
【0062】
ブロック350において、マスタービーコンデバイスは登録データパケットを送信する。マスタービーコンデバイス130によって、登録データパケットをメッシュネットワーク内の各サーバントビーコンデバイス110に送信するための方法350が、
図6に記載された方法を参照して以下でより詳細に説明される。
【0063】
図6は、いくつかの例示的な実施形態による、マスタービーコンデバイス130によって、メッシュネットワーク内の各サーバントビーコンデバイス110に登録データパケットを送信するための方法350を示すブロック図である。方法350は、
図1に示すコンポーネントを参照して説明される。
【0064】
ブロック610において、マスタービーコンデバイス130は、宛先ビーコンデバイスハードウェア識別子を含むサーバントビーコンデバイス110ごとに登録データパケットに署名する。例示的な実施形態では、登録データパケットは、付近のビーコンデバイスのハードウェア識別子およびRSSI値を含む少なくとも3つの付近のビーコンデバイスのリストをさらに含む。例示的な実施形態では、マスタービーコンデバイス130は、公開鍵を含み、この公開鍵を用いてビーコンデバイス130は登録データパケットに署名する。この例示的な実施形態では、1つまたは複数のサーバントビーコンデバイス110の各々は、秘密鍵を含み、この秘密鍵を用いて自身のそれぞれの登録データパケットの署名を検証する。例示的な実施形態では、各登録データパケットは宛先ハードウェア識別子を含み、受信側のサーバントビーコンデバイス110が、登録データパケットがその宛先ビーコンデバイスに到達したか否かを判断することを可能にする。
【0065】
図2に戻ると、一例において、マスタービーコンデバイス130は、宛先ビーコンデバイスハードウェア識別子としてサーバントビーコンデバイス110-iiiのハードウェア識別子を含むサーバントビーコンデバイス110-iiiのための登録データパケットに署名する。この例では、登録データパケットは、サーバントビーコンデバイス110-iiおよび110-ivならびに高値サーバントビーコンデバイス110-A(第1の仮想マップに基づいて宛先ビーコンデバイスに最も近い3つのビーコンデバイス)に関連付けられたRSSI値および対応するサーバントビーコンデバイス110識別子のリストを含む。この例では、RSSI値は、調査データパケットにおいて受信されたデータからマスタービーコンデバイス130によって作成された第1の仮想マップからの基準値である。別の例では、マスタービーコンデバイス130は、宛先ビーコンデバイスハードウェア識別子としてビーコンデバイス110-Bのハードウェア識別子を含む高値サーバントビーコンデバイス110-Bのための登録データパケットに署名する。この例では、登録データパケットは、サーバントビーコンデバイス110-viiおよび110-ixならびにマスタービーコンデバイス130(第1の仮想マップに基づいて宛先ビーコンデバイスに最も近い3つのビーコンデバイス)に関連付けられたRSSI値および対応するサーバントビーコンデバイス110識別子のリストを含む。この例では、RSSI値は、調査データパケットにおいて受信されたデータからマスタービーコンデバイス130によって作成された第1の仮想マップからの基準値である。
【0066】
図6に戻ると、ブロック620において、マスタービーコンデバイス130は、登録データパケットをサーバントビーコンデバイス110に送信する。例示的な実施形態では、登録データパケットはサーバントビーコンデバイス110ごとに送信される。例示的な実施形態では、マスタービーコンデバイス130は、近傍のサーバントビーコンデバイス110が登録データパケットを受信することができるように登録データパケットを送信する。
【0067】
ブロック630において、各登録データパケットは、適切な宛先ビーコンデバイスに到達するまで、メッシュネットワーク内のビーコンデバイスによって受信および再送信される。無線メッシュネットワーク内のビーコンデバイスによって登録データパケットを受信および再送信する方法は、
図7に記載される方法を参照して以下でより詳細に説明される。マスタービーコンデバイス130からサーバントビーコンデバイス110の各々に登録データパケットを送信するための他の適切な方法も用いることができる。
【0068】
図7は、いくつかの例示的な実施形態による、無線メッシュネットワーク内のビーコンデバイスによって登録データパケットを受信および再送信するための方法630を示すブロック図である。方法630は、
図1に示すコンポーネントを参照して説明される。マスタービーコンデバイス130からサーバントビーコンデバイス110の各々に登録データパケットを送信するための他の適切な方法も用いられてもよい。
【0069】
ブロック710において、サーバントビーコンデバイス110はマスタービーコンデバイスによって送信された登録データパケットを受信する。
【0070】
ブロック720において、受信側のビーコンデバイスは、登録データパケットがその宛先ビーコンデバイスに到達したか否かを判断する。例示的な実施形態では、受信側のサーバントビーコンデバイス110は、登録データパケット内の宛先ビーコンデバイス識別子がサーバントビーコンデバイス110のビーコンデバイス識別子に合致するか否かを判断する。例示的な実施形態では、ビーコンデバイス識別子が合致する場合、受信側のサーバントビーコンデバイス110は、登録データパケットが自身の宛先ビーコンデバイスに到達したと判断する。この例示的な実施形態では、ビーコンデバイス識別子が合致しない場合、受信側のサーバントビーコンデバイス110は、登録データパケットが自身の宛先ビーコンデバイスに到達していないと判断する。
【0071】
登録データパケットがその宛先に到達していない場合、方法630はブロック730に進む。
【0072】
ブロック730において、受信側のサーバントビーコンデバイス110は登録データパケットを再送信する。例示的な実施形態では、受信側のサーバントビーコンデバイス110は登録データパケットを再送信し、それによって、受信側のサーバントビーコンデバイス110の近傍のサーバントビーコンデバイス110は、登録データパケットを受信することができる。
【0073】
ブロック740では、後続のサーバントビーコンデバイス110が登録データパケットを受信する。次に、方法630はブロック720に進む。この例示的な実施形態では、後続のサーバントビーコンデバイス110は、登録データパケットがその宛先ビーコンデバイスに到達したか否かを判断して、登録データパケットを再送信するべきか否かを判断する。
【0074】
ブロック720に戻ると、登録データパケットがその宛先に到達した場合、方法630は
図6のブロック640に進む。
【0075】
図6に戻ると、ブロック640において、各宛先ビーコンデバイスは、自身の対応する登録データパケットを検証する。例えば、対応する登録データパケットは、受信側の宛先サーバントビーコンデバイス110のハードウェア識別子と同じである宛先ハードウェア識別子を含む。例示的な実施形態では、各宛先サーバントビーコンデバイス110は秘密鍵を含み、この秘密鍵を用いて各宛先サーバントビーコンデバイス110は自身の対応する登録データパケットの署名を検証する。
【0076】
ブロック650において、各宛先ビーコンデバイスは、自身の対応する登録データパケットにおいて受信されたデータを保存する。上記で論考したように、登録データパケットは、宛先サーバントビーコンデバイス110の近傍の3つ以上のビーコンデバイスのハードウェア識別子および対応するRSSIのリストを含むことができる。
【0077】
図3に戻ると、ブロック360において、認証データパケットがマスタービーコンデバイスに送信される。メッシュネットワーク内のビーコンデバイスによって、認証データパケットをマスタービーコンデバイス130に送信および再送信するための方法が、
図7に説明される方法を参照して以下でより詳細に説明される。
【0078】
図8は、いくつかの例示的な実施形態による、メッシュネットワーク内のビーコンデバイスによって、マスタービーコンデバイスに到達するように認証データパケットを送信および再送信するための方法360を示すブロック図である。方法360は、
図1に示すコンポーネントを参照して説明される。
【0079】
ブロック810において、各サーバントビーコンデバイス110は、自身が高値サーバントビーコンデバイス110-bであるか否かを判断する。上記で論考したように、無線メッシュネットワークは、マスタービーコンデバイス130と、1つまたは複数のサーバントビーコンデバイス110-bと、1つまたは複数の高値サーバントビーコンデバイス110-bとを含む。この例示的な実施形態では、サーバントビーコンデバイス110-aは、アプリケーション111と、コントローラ113と、データストレージユニット112と、アンテナ115とを含む。この例示的な実施形態では、高値サーバントビーコンデバイス110-bは、加速度計137およびセキュアエレメント139をさらに備える。
【0080】
サーバントビーコンデバイスが高値サーバントビーコンデバイス110-bである場合、方法360はブロック820に進む。
【0081】
ブロック820において、高値サーバントビーコンデバイス110-bは、加速度計137を用いて、自身が動かされたか否かを検出する。例えば、ビーコンデバイスは、不正目的で動かされる場合がある。例示的な実施形態では、モバイルフォンまたはタブレットデバイス等のユーザコンピューティングデバイス(図示せず)は、ユーザコンピューティングデバイスがマーチャントシステムに関連付けられたビーコンデバイスの近傍にある場合にのみマーチャントシステムと取引することができる。この例では、ユーザコンピューティングデバイスに不正エンティティとの金融取引を許可させることを試行するために、マーチャントシステムに関連付けられた販売時点情報管理(「POS」)端末の近くに位置する高値サーバントビーコンデバイス110-bがユーザコンピューティングデバイスの近くに動かされる。この例示的な実施形態では、高値サーバントビーコンデバイス110-b上の加速度計137は、高値サーバントビーコンデバイス110-bが動かされたことを検出する。
【0082】
ブロック830において、高値サーバントビーコンデバイス110-bは、サーバントビーコンデバイスを識別するハードウェア識別子、動きの検出結果、および暗号化されたデジタル署名を含む認証データパケットを送信する。次に、方法360はブロック850に進む。一例において、動きの検出の結果は、高値サーバントビーコンデバイス110-bが動いたことのアラートを含む。別の例では、動きの検出の結果は、高値サーバントビーコンデバイス110-bが動いていないことのインジケーションを含む。例示的な実施形態では、デジタル署名は、高値サーバントビーコンデバイス110-bを、マスタービーコンデバイス130および無線メッシュネットワークに関連付けられたマーチャントシステムに関連付けられているものとして識別する。この例示的な実施形態では、マスタービーコンデバイス130は公開鍵を含み、この公開鍵を用いて、マスタービーコンデバイス130はデジタル署名を解読し、高値サーバントビーコンデバイス110-bがマーチャントシステムに関連付けられていることを検証することができる。例示的な実施形態では、各サーバントビーコンデバイス110-bは、近傍のネットワーク120内のビーコンデバイスが認証データパケットを受信することができるように自身の認証データパケットを送信する。例示的な実施形態では、各サーバントビーコンデバイス110-bは、登録データパケット内のマスタービーコンデバイス130から受信したリスト上の1つまたは複数のビーコンデバイスの各々に自身の認証データパケットを送信する。上記で論考したように、登録データパケットは、宛先ビーコンデバイスの近傍の3つ以上のビーコンデバイスのハードウェア識別子および対応するRSSI値のリストを含むことができる。例示的な実施形態では、認証データパケットは、マスタービーコンデバイス130ハードウェア識別子を含む宛先ビーコンデバイス識別子を含む。この例示的な実施形態では、受信側のサーバントビーコンデバイス110は、マスタービーコンデバイス130を識別する宛先ビーコンデバイス識別子を含む認証データパケットを受信することに応答して、認証データパケットを再送信する。
【0083】
ブロック810に戻ると、高値サーバントビーコンデバイス110-bでないサーバントビーコンデバイスごとに、方法360はブロック840に進む。
【0084】
ブロック840において、各サーバントビーコンデバイス110-aは、ハードウェア識別子を含む認証データパケットを送信する。次に、方法360はブロック850に進む。例示的な実施形態において、各サーバントビーコンデバイス110-aは自身の認証データパケットを送信し、近傍のネットワーク120内のビーコンデバイスがこの認証データパケットを受信することができるようにする。例示的な実施形態では、各サーバントビーコンデバイス110-aは自身の認証データパケットを、登録データパケット内のマスタービーコンデバイス130から受信した近傍ビーコンデバイスのリスト上の1つまたは複数のビーコンデバイスの各々に送信する。上記で論考したように、登録データパケットは、宛先ビーコンデバイスの近傍にある3つ以上のビーコンデバイスのハードウェア識別子および対応するRSSI値のリストを含むことができる。例示的な実施形態では、認証データパケットは、マスタービーコンデバイス130ハードウェア識別子を含む宛先ビーコンデバイス識別子を含む。この例示的な実施形態では、受信側のサーバントビーコンデバイス110は、マスタービーコンデバイス130を識別する宛先ビーコンデバイス識別子を含む認証データパケットを受信することに応答して、認証データパケットを再送信する。
【0085】
ブロック850において、各認証データパケットが、マスタービーコンデバイス130に到達するまで受信および再送信される。認証データパケットを受信し、送信側のビーコンデバイスのRSSIを記録し、無線メッシュネットワーク内のビーコンデバイスによって認証データパケットを再送信するための方法850は、
図9に説明される方法を参照して以下でより詳細に説明される。
【0086】
図9は、いくつかの例示的な実施形態による、無線メッシュネットワーク内のビーコンデバイスによって、認証データパケットを受信し、送信側のビーコンデバイスのRSSIを挿入し、認証データパケットを再送信する方法850を示すブロック図である。方法850は、
図1に示すコンポーネントを参照して説明される。
【0087】
ブロック910において、マスタービーコンデバイス130が認証データパケットを受信したか否かが判断される。例示的な実施形態では、認証データパケットは、サーバントビーコンデバイス110からマスタービーコンデバイス130に直接送信される。別の例示的な実施形態では、認証データパケットは、第1のサーバントビーコンデバイス110から、1つまたは複数の中間サーバントビーコンデバイス110を介してマスタービーコンデバイス130に送信される。中間サーバントビーコンデバイス110は、認証データパケットがマスタービーコンデバイス130に到達するまで、認証データパケットを受信および再送信する。
【0088】
マスタービーコンデバイス130が認証データパケットを受信していない場合、方法850はブロック920に進む。
【0089】
ブロック920において、サーバントビーコンデバイス110は認証データパケットを受信する。上記で論考したように、サーバントビーコンデバイス110は、サーバントビーコンデバイス110-aおよび高値サーバントビーコンデバイス110-bの双方を含む。例示的な実施形態では、サーバントビーコンデバイス110は、自身のハードウェア識別子が認証データパケット内の宛先ビーコンデバイス識別子と合致するか否かを判断する。この例示的な実施形態では、受信側のサーバントビーコンデバイス110のハードウェア識別子は、宛先ビーコンデバイス識別子と合致せず、受信側のサーバントビーコンデバイス110は、認証データパケットがマスタービーコンデバイス130に到達するように再送信されるべきであると判断する。
【0090】
ブロック930において、受信側のサーバントビーコンデバイス110は、送信側のビーコンデバイスのRSSIおよびハードウェア識別子を特定する。例示的な実施形態では、認証データパケットがサーバントビーコンデバイス110によって受信される度に、受信側のサーバントビーコンデバイス110は、認証データパケットの受信元のビーコンデバイスのRSSIおよびハードウェア識別子を特定する。
【0091】
ブロック940では、受信側のサーバントビーコンデバイス110は、送信側のビーコンデバイスのRSSIおよびハードウェア識別子を認証データパケットに挿入する。例示的な実施形態では、認証データパケットが受信側のサーバントビーコンデバイス110によって受信される度に、受信側のサーバントビーコンデバイス110は、認証データパケットの受信元のビーコンデバイスのRSSIおよびハードウェア識別子を挿入する。
【0092】
ブロック950において、受信側のサーバントビーコンデバイス110は認証データパケットを再送信する。次に、方法850はブロック910に進む。
【0093】
ブロック910に戻ると、マスタービーコンデバイス130が認証データパケットを受信する場合、方法はブロック960に進む。別の例示的な実施形態では、マスタービーコンデバイス130は、元の送信側サーバントビーコンデバイス110以外のサーバントビーコンデバイス110から再送信された認証データパケットを受信する。
【0094】
ブロック960において、マスタービーコンデバイス130は、送信側のビーコンデバイスのRSSIおよびハードウェア識別子を特定する。
【0095】
図2に戻ると、一例において、サーバントビーコンデバイス110-ivは、サーバントビーコンデバイス110-ivのハードウェア識別子を含む認証データパケットを送信し、この認証データパケットは、サーバントビーコンデバイス110-vによって受信される。この例では、サーバントビーコンデバイス110-vは、サーバントビーコンデバイス110-ivのRSSI値を検出および挿入し、自身の独自のハードウェア識別子を挿入する。サーバントビーコンデバイス110-vは認証データパケットを再送信し、この認証データパケットは高値サーバントビーコンデバイス110-Cによって受信される。高値サーバントビーコンデバイスは、サーバントビーコンデバイス110-vのRSSI値を検出および挿入し、自身の独自のハードウェア識別子を挿入し、認証データパケットを再送信する。この例では、マスタービーコンデバイス130は、サーバントビーコンデバイス110-iv、110-vおよび高値サーバントビーコンデバイス110-Cのためのハードウェア識別子と、サーバントビーコンデバイス110-ivおよびサーバントビーコンデバイス110-vのためのRSSI値を含む再送信された認証データパケットを受信する。この例において、マスタービーコンデバイス130は、送信側の高値サーバントビーコンデバイス110-CのRSSIを検出し、認証データパケットにおいて受信された高値サーバントビーコンデバイス110-Cの対応するハードウェア識別子を特定する。この例では、ここで、マスタービーコンデバイス130は、サーバントビーコンデバイス110-vによって特定されたサーバントビーコンデバイス110-ivのRSSIと、高値サーバントビーコンデバイス110-Cによって特定されたサーバントビーコンデバイス110-vのRSSIと、マスタービーコンデバイス130によって特定された高値サーバントビーコンデバイス110-CのRSSIとを含むデータを有する。
【0096】
別の例では、高値サーバントビーコンデバイス110-Cは認証データパケットを送信し、この認証データパケットはサーバントビーコンデバイス110-viによって受信される。この例では、認証データパケットは、高値サーバントビーコンデバイス110-Cのハードウェア識別子、動きの検出結果、および暗号化されたデジタル署名を含む。この例では、サーバントビーコンデバイス110-viは、サーバントビーコンデバイス110-ivのRSSI値を検出し、このRSSI値をサーバントビーコンデバイス110-viのハードウェア識別子と共に認証データパケット内に挿入する。サーバントビーコンデバイス110-viは、認証データパケットを再送信し、この認証データパケットは、高値サーバントビーコンデバイス110-Bによって受信される。高値サーバントビーコンデバイス110-Bは、サーバントビーコンデバイス110-viのRSSI値を検出および挿入し、認証データパケットを再送信する。この例では、マスタービーコンデバイス130は、高値サーバントビーコンデバイス110-C、サーバントビーコンデバイス110-viおよび高値サーバントビーコンデバイス110-Bのためのハードウェア識別子と、高値サーバントビーコンデバイス110-Cおよびサーバントビーコンデバイス110-viのためのRSSI値とを含む再送信された認証データパケットを受信する。この例では、マスタービーコンデバイス130は、送信側の高値サーバントビーコンデバイス110-BのRSSIを検出し、認証データパケットにおいて受信された高値サーバントビーコンデバイス110-Bの対応するハードウェア識別子を特定する。この例では、ここで、マスタービーコンデバイス130は、サーバントビーコンデバイス110-viによって特定された高値サーバントビーコンデバイス110-CのRSSIと、高値サーバントビーコンデバイス110-Bによって特定されたサーバントビーコンデバイス110-viのRSSIと、マスタービーコンデバイス130によって特定された高値サーバントビーコンデバイス110-BのRSSIとを含むデータを有する。
【0097】
図8を参照すると、ブロック860において、マスタービーコンデバイス130は、自身が認証データパケットの全てを受信したか否かを判断する。例示的な実施形態では、マスタービーコンデバイス130は、所定の長さの時間内に新たな認証データパケットを受信ないとき、全ての認証データパケットを受信したと判断する。この例示的な実施形態では、新たな認証データパケットは、認証データパケットを最初に送信したサーバントビーコンデバイス110に関連付けられた一意のハードウェア識別子を含む認証データパケットである。
【0098】
例示的な実施形態では、マスタービーコンデバイス130は、認証データパケットを最初に送信したサーバントビーコンデバイス110に関連付けられたハードウェア識別子を含む複数の認証データパケットを受信することができる。この例示的な実施形態では、認証データパケットは、1つまたは複数の異なる再送信サーバントビーコンデバイス110を介してマスタービーコンデバイス130に到達することができる。
図2に戻ると、例えば、高値サーバントビーコンデバイス110-Aは認証データパケットを送信し、この認証データパケットはサーバントビーコンデバイス110-iiiによってサーバントビーコンデバイス110-iiに再送信され、サーバントビーコンデバイス110-iiによってサーバントビーコンデバイス110-iに再送信され、サーバントビーコンデバイス110-iによってマスタービーコンデバイス130に再送信される。この同じ例では、高値サーバントビーコンデバイス110-Aの認証データパケットは、サーバントビーコンデバイス110-iによってサーバントビーコンデバイス110-ixに再送信され、サーバントビーコンデバイス110-ixによって高値サーバントビーコンデバイス110-Bに再送信され、高値サーバントビーコンデバイス110-Bによってマスタービーコンデバイス130にさらに再送信されることが可能である。この同じ例では、高値サーバントビーコンデバイス110-Aの認証データパケットは、サーバントビーコンデバイス110-iiiによってサーバントビーコンデバイス110-ivに再送信され、サーバントビーコンデバイス110-ivによって高値サーバントビーコンデバイス110-Cに再送信され、高値サーバントビーコンデバイス110-Cによってマスタービーコンデバイス130にさらに再送信されることが可能である。したがって、この例が示すように、単一のサーバントビーコンデバイス110によって送信された認証データパケットは、ビーコンデバイスの無線メッシュネットワークを通じてマスタービーコンデバイス130に再送信される際に、様々なルートをとることができる。これらの例において、上記で論考したように、再送信する中間サーバントビーコンデバイス110は、認証データパケットが受信された中間ビーコンデバイスからRSSIを検出し、再送信するビーコンデバイスのハードウェア識別子を挿入する。
【0099】
図8に戻ると、マスタービーコンデバイス130が認証データパケットの全てを受信していない場合、方法360はブロック850に進む。例えば、マスタービーコンデバイス130は、所定の長さの時間内で新たな認証データパケットを受信しており、したがって、マスタービーコンデバイス130は、認証データパケット、およびサーバントビーコンデバイス110から再送信された認証データパケットの受信を継続する。この例では、新たな認証データパケットは、認証データパケットを最初に送信したサーバントビーコンデバイス110に関連付けられた一意のハードウェア識別子を含む認証データパケットである。
【0100】
ブロック860に戻ると、マスタービーコンデバイス130が認証データパケットの全てを受信した場合、方法360はブロック870に進む。例えば、マスタービーコンデバイス130は、所定の長さの時間内に新たな認証データパケットを受信しておらず、したがって、マスタービーコンデバイス130は、自身が認証データパケットの全てを受信したと判断する。
【0101】
ブロック870において、マスタービーコンデバイス130は、受信した認証データパケットからデータを抽出し、任意の受信したデジタル署名を解読する。例示的な実施形態では、マスタービーコンデバイス130は、1つまたは複数の高値サーバントビーコンデバイス110-bの各々に関連付けられた公開鍵に対応する秘密鍵を含む。この例示的な実施形態では、マスタービーコンデバイス130は、公開鍵を介して高値サーバントビーコンデバイス110-bによって作成された秘密鍵を介して受信されたデジタル署名を解読する。さらに別の例示的な実施形態では、公開鍵暗号とは異なる暗号システムを用いて、高値サーバントビーコンデバイス110-bによってデジタル署名が作成され、マスタービーコンデバイス130によってデジタル署名が解読される。例えば、マスタービーコンデバイス130および1つまたは複数の高値サーバントビーコンデバイス110-bが、デジタル署名の作成および解読の双方を行うのに用いられる同じ鍵を含む、対称鍵暗号システムを用いることができる。
【0102】
ブロック880では、マスタービーコンデバイス130は、受信した認証データパケットに関連付けられたデータを保存する。例示的な実施形態では、データは表形式で保存される。例示的な実施形態では、テーブルは、メッシュネットワーク内の各ビーコンデバイスのハードウェア識別子がリスト化される列および行を含むことができる。この例示的な実施形態では、行は、検出側のビーコンデバイスを表すことができ、列は、検出されたビーコンデバイスを表すことができ、認証データパケットにおいて受信されたRSSI値は、いずれのデバイスがRSSIを検出したか、およびいずれのデバイスが検出されたかに従ってテーブル上の正しい場所に保存される。
【0103】
図3に戻ると、ブロック370において、マスタービーコンデバイス130は、ネットワーク接続がセキュアであるか否かを判断する。ビーコンデバイスの無線メッシュネットワークのセキュリティを判断するための方法が、
図10に説明される方法を参照して以下でより詳細に説明される。
【0104】
図10は、いくつかの例示的な実施形態による、ビーコンデバイスの無線メッシュネットワークのセキュリティを判断するための方法370を示すブロック図である。方法370は、
図1に示すコンポーネントを参照して説明される。
【0105】
ブロック1010において、マスタービーコンデバイス130は、受信したRSSI値、および認証データパケットにおいて受信されたハードウェア識別子に基づいて、無線メッシュネットワークの第2の仮想マップを作成する。例示的な実施形態では、第2の仮想マップは、第1の仮想マップと同じフォーマットを含む。例えば、第2の仮想マップは、上記で論考した第1の仮想マップに類似したテーブルを含み、行は、検出側のビーコンデバイスのハードウェア識別子を含み、列は、検出されたビーコンデバイスのハードウェア識別子を含み、テーブル内の各RSSI値は、テーブルの列に対応する検出側のビーコンデバイスによって検出されたテーブルの列に対応する検出されたビーコンデバイスのRSSI値を表す。
【0106】
ブロック1020において、マスタービーコンデバイス130は、調査データパケットにおいて受信されたデータから作成された第1の仮想マップを索出する。
【0107】
ブロック1030において、マスタービーコンデバイス130は、調査データパケット内で受信されたデータに基づく仮想マップを、認証データパケットにおいて受信されたデータに基づく仮想マップと比較する。
【0108】
ブロック1040において、マスタービーコンデバイス130は、無線メッシュネットワークの2つの仮想マップ間に大きな差異が存在するか否かを判断する。例示的な実施形態では、1つまたは複数のビーコンデバイス間のRSSI値が2つの仮想マップ間の所定の量よりも大きく変動する場合に、第1の仮想マップと第2の仮想マップとの間に大きな差異が存在する。この例示的な実施形態では、所定の量は、ビーコンデバイスによってRSSIを検出するための機械的測定誤差の範囲とすることができる。この例示的な実施形態では、2つの仮想マップの各々が、無線メッシュネットワーク内のビーコンデバイスごとに、近傍のビーコンデバイスの検出されたRSSI値を含む。この例示的な実施形態では、RSSIは、距離を推定するために用いられるプロキシであるため、メッシュネットワーク内のビーコンデバイスの任意の動きが、動かされたビーコンデバイスによって検出された1つまたは複数の近傍のビーコンデバイスのRSSI値に変化を生じさせ、1つまたは複数の近傍のビーコンデバイスによって検出される動かされたビーコンデバイスのRSSIの変化を生じさせる。
【0109】
無線メッシュネットワークの2つの仮想マップ間に大きな差異が存在する場合、方法370はブロック1080に進む。
【0110】
一例において、マスタービーコンデバイス130は、
図2に示される例示的な無線メッシュネットワーク内の全てのビーコンデバイスの第1の仮想マップを作成する。この例では、第1の仮想マップは、無線メッシュネットワーク内の近傍のビーコンデバイスによって測定される各ビーコンデバイスのベースラインRSSI値を含む。この例では、サーバントビーコンデバイス110-iは、第1の仮想マップが作成された後の時点において、(
図2の向きに対して)南方に任意の距離動かされる(仮想垂直軸は、南北軸であり、軸の底部が南である)。この例では、認証パケットがサーバントビーコンデバイス110-iによって送信されるとき、サーバントビーコンデバイス110-iiおよび110ix、高値サーバントビーコンデバイス110-Aおよびマスタービーコンデバイス130は、認証パケットを受信し、サーバントビーコンデバイス110-iの下側のRSSI値を検出するべきである。なぜなら、サーバントビーコンデバイス110-iと、サーバントビーコンデバイス110-iによって送信された認証パケットを受信する各ビーコンデバイスとの間の距離が増大しているためである。同様に、サーバントビーコンデバイス110-iは、これらのそれぞれのビーコンデバイスから認証パケットを受信するとき、高値サーバントビーコンデバイス110-A、マスタービーコンデバイス130ならびにサーバントビーコンデバイス110-iiおよび110-ixのための下側RSSI値を検出するべきである。この例では、認証パケットがメッシュネットワークを通じて再送信され、マスタービーコンデバイス130に到達するとき、マスタービーコンデバイス130は、これらの変更されたRSSI値を含む無線メッシュネットワークの第2のマップを作成する。この例では、マスタービーコンデバイス130は、サーバントビーコンデバイス110-iとサーバントビーコンデバイス110-iの近傍のビーコンデバイスとの間のRSSI値の変化に起因して、第1の仮想マップと第2の仮想マップとの間に大きな差異が存在すると判断する。この例において、大きな差異は、所定の閾値を超える。例えば、所定の閾値は、RSSIまたは距離の他の推定値を測定するための誤差のマージンとすることができる。別の例では、所定の閾値は、最小の動きが許容されるような閾値であり、例
えば、任意の方向における数ミリメートルである。より大きな所定の閾値は、メッシュネットワークにおけるビーコンデバイスのより多くの動きを可能にするが、よりセキュアでない。より小さな所定の閾値は、よりセキュアであるが、メッシュネットワーク内のビーコンデバイスのより少ない動きを許容する(または動きを許容しない)。
【0111】
別の例では、サーバントビーコンデバイス110-iは、なりすましのビーコンデバイスX(図示せず)と置き換えられ、サーバントビーコンデバイス110-iは、マスタービーコンデバイス130が
図2に示したビーコンデバイスの例示的な無線メッシュネットワークの第1の仮想マップを作成した後の時点において、(上記の例におけるように)南に動かされる。この例では、なりすましのビーコンデバイスXは、サーバントビーコンデバイス110-iに向けられた通信を傍受し、これらの通信をサーバントビーコンデバイス110-iに再送信する。同様に、サーバントビーコンデバイス110-iによって送信された通信は、なりすましのビーコンデバイスXによって受信および再送信され、その後、なりすましのビーコンデバイスXの近傍にある他のビーコンデバイスおよび/またはユーザコンピューティングデバイス(図示せず)に送信される。この例では、サーバントビーコンデバイス110-iiおよび110-ixのRSSI値、高値サーバントビーコンデバイス110-Aおよびマスタービーコンデバイス130は、サーバントビーコンデバイス110-iによって検出されるものと等しい。検出されるRSSI値は、静止したなりすましのビーコンデバイスXが各デバイスからの認証パケットを傍受し、この認証データパケットをサーバントビーコンデバイス110-iに再送信するため、等しくなる。したがって、サーバントビーコンデバイス110-iは、なりすましのビーコンデバイスXのRSSIを検出し、この値を各受信した認証データパケットに挿入するべきである。この例では、認証データパケットが無線メッシュネットワークを通じてマスタービーコンデバイス130に再送信されるとき、マスタービーコンデバイス130は、無線メッシュネットワークの第2の仮想マップを作成する。第1の仮想マップと比較するとき、想定される近傍ビーコンデバイスのサーバントビーコンデバイス110-iによって検出されるRSSIが全て同じ値であるため、マスタービーコンデバイス130は、おそらく、第2の仮想マップが第1の仮想マップと大幅に異なると判断する。したがって、第2の仮想マップが第1の仮想マップと大幅に異ならないと判断される唯一のシナリオは、サーバントビーコンデバイス110-iが元々全ての近傍ビーコンデバイスから等距離に配置されて
おり、なりすましのビーコンデバイスXがサーバントビーコンデバイス110-iの厳密なロケーションに配置されており、かつ、サーバントビーコンデバイス110-iが、なりすましのビーコンデバイスXからの距離が、なりすましのビーコンデバイスXからの近傍のビーコンデバイスの距離と厳密に同じ距離であるロケーションに移された場合である。
【0112】
図10に戻ると、ブロック1080において、無線メッシュネットワークの2つの仮想マップ間に大きな差異が存在する場合、マスタービーコンデバイス130は、無線メッシュネットワークがセキュアでないと判断する。次に、方法370は、
図3のブロック390に進む。例示的な実施形態では、無線メッシュネットワークにおける1つまたは複数のネットワーク120接続は、マスタービーコンデバイス130によって無効にされる。
【0113】
ブロック1040に戻ると、無線メッシュネットワークの2つの仮想マップ間に大きな差異が存在しない場合、方法370はブロック1050に進む。
【0114】
ブロック1050において、マスタービーコンデバイス130は、高値サーバントビーコンデバイス110-bのうちの任意のものが動かされたか否かを判断する。実施形態で論考したように、例示的な実施形態では、各高値サーバントビーコンデバイス110-bは、動きの検出結果を含む認証データパケットを送信する。この例示的な実施形態では、動きの検出は、高値サーバントビーコンデバイス110-b上に常駐する加速度計137によって、高値サーバントビーコンデバイス110-bが動かされたと検出することを含む。一例では、動きの検出結果は、高値サーバントビーコンデバイス110-bが動かされたことのアラートを含む、別の例では、動きの検出結果は、高値サーバントビーコンデバイス110-bが動かされていないことのインジケーションを含む。例示的な実施形態では、マスタービーコンデバイス130は、マスタービーコンデバイス130が認証データパケットを受信するメッシュネットワーク内の高値サーバントビーコンデバイス110-bごとの動きの検出結果を受信する。例示的な実施形態では、認証データパケットにおいて受信された動きの検出結果に基づいて、マスタービーコンデバイス130は、高値サーバントビーコンデバイス110-bのいずれかが動かされたと判断する。
【0115】
マスタービーコンデバイス130が、高値サーバントビーコンデバイス110-bのうちのいずれかが動かされたと判断する場合、方法370はブロック1080に進む。ブロック1080において、マスタービーコンデバイス130は、無線メッシュネットワークがセキュアでないと判断する。次に、方法370は
図3のブロック390に進む。
【0116】
ブロック1050に戻ると、マスタービーコンデバイス130が、高値サーバントビーコンデバイス110-bのいずれも動いていないと判断する場合、方法370はブロック1060に進む。
【0117】
ブロック1060において、マスタービーコンデバイス130は、受信されたデジタル署名が有効であるか否かを判断する。例示的な実施形態では、マスタービーコンデバイス130は、セキュアエレメント139または他のデータストレージユニット132に記憶されたマーチャントシステムの基準デジタル署名を含む。この例示的な実施形態では、マスタービーコンデバイス130は、受信および解読されたデジタル署名の各々を基準デジタル署名と比較する。例えば、基準デジタル署名に合致するデジタル署名は、有効なデジタル署名であり、基準デジタル署名に合致しないデジタル署名は無効なデジタル署名である。
【0118】
受信したデジタル署名がいずれも無効である場合、方法370はブロック1080に進む。例示的な実施形態では、受信および解読されたデジタル署名のうちの1つまたは複数がマーチャントシステムの基準デジタル署名と合致せず、マスタービーコンデバイス130は、デジタル署名が無効であると判断する。ブロック1080において、マスタービーコンデバイス130は、無線メッシュネットワークがセキュアでないと判断する。次に、方法370は
図3のブロック390に進む。
【0119】
ブロック1060に戻ると、マスタービーコンデバイス130が、デジタル署名が有効であると判断する場合、方法370はブロック1070に分岐する。
【0120】
ブロック1070において、マスタービーコンデバイス130は、無線メッシュネットワークがセキュアであると判断する。例えば、マスタービーコンデバイス130は、第1の仮想マップと第2の仮想マップとの間に大きな差異が存在せず、高値マーチャントビーコンデバイス110-bがいずれも、認証データパケットにおいて受信されたデータに基づいて動いておらず、かつ認証データパケット内の高値サーバントビーコンデバイス110-bから受信したデジタル署名が有効であると判断する。次に、方法370は
図3のブロック380に進む。
【0121】
図3に戻ると、ブロック380において、マスタービーコンデバイス130は、ネットワーク接続を継続するか否かを判断する。例示的な実施形態では、ユーザコンピューティングデバイス(図示せず)は、無線メッシュネットワーク内のビーコンデバイスのうちの1つまたは複数とのネットワーク接続を確立した。この例示的な実施形態では、ユーザコンピューティングデバイスまたはユーザコンピューティングデバイスに関連付けられたユーザは、無線メッシュネットワークの1つまたは複数のビーコンデバイスとのネットワーク接続を継続するか否かを判断する。
【0122】
マスタービーコンデバイス130が無線メッシュネットワーク接続を継続すると判断する場合、方法300はブロック320に戻り、無線メッシュネットワークの監視を継続する。
【0123】
ブロック380に戻ると、マスタービーコンデバイス130が、無線メッシュネットワーク接続を継続しないことを決定する場合、方法300はブロック390に進む。
【0124】
ブロック390において、ネットワークが終了する。例示的な実施形態では、マスタービーコンデバイス130は、無線メッシュネットワークの第1の仮想マップと第2の仮想マップとの間の大きな差異を見つけ、メッシュネットワークがセキュアでないと判断し、メッシュネットワーク内の1つまたは複数のネットワーク120接続を終了した。別の例示的な実施形態では、マスタービーコンデバイス130は、1つまたは複数の認証データパケット内の1つまたは複数の高値サーバントビーコンデバイス110-bによって送信された動きの検出を受信し、メッシュネットワークがセキュアでないと判断し、メッシュネットワーク内の1つまたは複数のネットワーク120接続を終了した。さらに別の例示的な実施形態では、マスタービーコンデバイス130は、高値サーバントビーコンデバイス110-bから発信される認証データパケットにおいて受信された1つまたは複数のデジタル署名のうちの1つまたは複数が無効であると判断し、メッシュネットワークがセキュアでないと判断した。いくつかの例示的な実施形態では、メッシュネットワークがセキュアでないという判断に応答して、マスタービーコンデバイス130は、メッシュネットワーク内の1つまたは複数のネットワーク120接続を終了する。別の実施形態では、マスタービーコンデバイス130は、マーチャントシステム130、ネットワークオペレータおよび/または別の適切なエンティティに、メッシュネットワークがセキュアでないという通知を送信する。この例示的な実施形態では、マスタービーコンデバイス130は、ネットワークがセキュアでないと判断することに関連したデータをさらに送信することができる。例えば、マスタービーコンデバイス130は、動きの検出と、1つまたは複数の受信した無効なデジタル署名と、第1の仮想マップと第2の仮想マップとの間の大きな差異を含む第1の仮想マップおよび第2の仮想マップとのうちの1つまたは複数の受信結果を送信することができる。この例では、ネットワークオペレータまたは他の適切なエンティティは、メッシュネットワークをセキュアにするかまたは無効にするための適切なアクションをとる。
【0125】
他の例示的な実施形態
図11は、いくつかの例示的な実施形態によるコンピューティングマシン2000およびモジュール2050を示す。コンピューティングマシン2000は、本明細書において提示される様々なコンピュータ、サーバ、モバイルデバイス、埋め込みシステム、またはコンピューティングシステムのうちの任意のものに対応することができる。モジュール2050は、コンピューティングマシン2000が本明細書において提示される様々な方法および処理機能を実施するのを容易にするように構成された1つまたは複数のハードウェアまたはソフトウェア要素を含むことができる。コンピューティングマシン2000は、プロセッサ2010、システムバス2020、システムメモリ2030、ストレージ媒体2040、入力/出力インターフェース2060、およびネットワーク2080と通信するためのネットワークインターフェース2070等の、様々な内部のまたはアタッチされたコンポーネントを含むことができる。
【0126】
コンピューティングマシン2000は、従来のコンピュータシステム、埋め込みコントローラ、ラップトップ、サーバ、モバイルデバイス、スマートフォン、セットトップボックス、キオスク、車両情報システム、テレビに関連付けられた1つもしくは複数のプロセッサ、カスタマイズされたマシン、任意の他のハードウェアプラットフォーム、またはそれらの任意の組合せもしくは複数形として実施することができる。コンピューティングマシン2000は、データネットワークまたはバスシステムを介して相互接続された複数のコンピューティングマシンを用いて機能するように構成された分散型システムとすることができる。
【0127】
プロセッサ2010は、本明細書において説明した動作および機能を行うためのコードまたは命令を実行し、要求フローおよびアドレスマッピングを管理し、計算を行い、コマンドを生成するように構成することができる。プロセッサ2010は、コンピューティングマシン2000内のコンポーネントの動作を管理および制御するように構成することができる。プロセッサ2010は、汎用プロセッサ、プロセッサコア、マルチプロセッサ、再構成可能プロセッサ、マイクロコントローラ、デジタル信号プロセッサ(「DSP」)、特定用途向け集積回路(「ASIC」)、グラフィック処理ユニット(「GPU」)、フィールドプログラマブルゲートアレイ(「FPGA」)、プログラマブル論理デバイス(「PLD」)、コントローラ、状態マシン、ゲートロジック、ディスクリートハードウェアコンポーネント、任意の他の処理ユニット、またはそれらの任意の組合せもしくは複数形とすることができる。プロセッサ2010は、単一の処理ユニット、複数の処理ユニット、単一の処理コア、複数の処理コア、専用処理コア、コプロセッサ、またはそれらの任意の組合せとすることができる。いくつかの実施形態によれば、プロセッサ2010は、コンピューティングマシン2000の他のコンポーネントともに、1つまたは複数の他のコンピューティングマシン内で実行される仮想化されたコンピューティングマシンとすることができる。
【0128】
システムメモリ2030は、リードオンリーメモリ(「ROM」)、プログラマブルリードオンリーメモリ(「PROM」)、消去可能プログラマブルリードオンリーメモリ(「EPROM」)、フラッシュメモリ、または電力を印加されてもしくは印加されずにプログラムもしくはデータを記憶することが可能な任意の他のデバイス等の揮発性メモリを含むことができる。システムメモリ2030は、ランダムアクセスメモリ(「RAM」)、スタティックランダムアクセスメモリ(「SRAM」)、ダイナミックランダムアクセスメモリ(「DRAM」)および同期ダイナミックランダムアクセスメモリ(「SDRAM」)等の揮発性メモリを含むこともできる。システムメモリ2030を実施するために他のタイプのRAMも用いることができる。システムメモリ2030は、単一のメモリモジュールまたは複数のメモリモジュールを用いて実装することができる。システムメモリ2030は、コンピューティングマシン2000の一部として示されているが、当業者であれば、対象技術の範囲から逸脱することとなく、システムメモリ2030をコンピューティングマシン2000と別個にすることができることを認識するであろう。システムメモリ2030は、ストレージ媒体2040等の不揮発性ストレージデバイスを含むか、またはこれと共に動作することができることも理解されるべきである。
【0129】
ストレージ媒体2040は、ハードディスク、フロッピーディスク、コンパクトディスクリードオンリーメモリ(「CD-ROM」)、デジタル多用途ディスク(「DVD」)、ブルーレイディスク、磁気テープ、フラッシュメモリ、他の不揮発性メモリデバイス、ソリッドステートドライブ(「SSD」)、任意の磁気ストレージデバイス、任意の光ストレージデバイス、任意の電気ストレージデバイス、任意の半導体ストレージデバイス、任意の物理ベースのストレージデバイス、任意の他のデータストレージデバイス、またはそれらの任意の組合せもしくは複数形を含むことができる。ストレージ媒体2040は、1つまたは複数のオペレーティングシステム、アプリケーションプログラム、およびモジュール2050、データまたは任意の他の情報等のプログラムモジュールを記憶することができる。ストレージ媒体2040は、コンピューティングマシン2000の一部とすることができるか、またはコンピューティングマシン2000に接続することができる。ストレージ媒体2040は、サーバ、データベースサーバ、クラウドストレージ、ネットワークにアタッチされたストレージ等のコンピューティングマシン2000と通信する1つまたは複数の他のコンピューティングマシンの一部とすることもできる。
【0130】
モジュール2050は、コンピューティングマシン2000が本明細書において提示される様々な方法および処理機能を実行することを容易にするように構成された1つまたは複数のハードウェアまたはソフトウェア要素を含むことができる。モジュール2050は、システムメモリ2030、ストレージ媒体2040またはその双方と関連付けられたソフトウェアまたはハードウェアとして記憶された1つまたは複数の命令シーケンスを含むことができる。したがって、ストレージ媒体2040は、プロセッサ2010による実行のために命令またはコードを記憶することができるマシンまたはコンピュータ可読媒体の例を表すことができる。マシンまたはコンピュータ可読媒体は、通常、プロセッサ2010に命令を提供するために用いられる任意の媒体を指すことができる。モジュール2050に関連付けられたそのようなマシンまたはコンピュータ可読媒体は、コンピュータソフトウェア製品を含むことができる。モジュール2050を含むコンピュータソフトウェア製品は、ネットワーク2080、任意の信号担持媒体、または任意の他の通信もしくは配信技術を介してモジュール2050をコンピューティングマシン2000に送達するための1つまたは複数のプロセスまたは方法にも関連付けることができることが理解されるべきである。モジュール2050は、ハードウェア回路、または、FPGAもしくは他のPLDのためのマイクロコードもしくは構成情報等の、ハードウェアを構成するための情報も含むことができる。
【0131】
入出力(「I/O」)インターフェース2060は、1つまたは複数の外部デバイスに結合し、この1つまたは複数の外部デバイスとの間でデータを送受信するように構成することができる。そのような外部デバイスは、様々な内部デバイスと共に、周辺デバイスとしても知られている場合がある。I/Oインターフェース2060は、様々な周辺デバイスをコンピューティングマシン2000またはプロセッサ2010に動作可能に結合するための電気接続および物理接続の双方を含むことができる。I/Oインターフェース2060は、周辺デバイス、コンピューティングマシン2000またはプロセッサ2010間でデータ、アドレスおよび制御信号を通信するように構成することができる。I/Oインターフェース2060は、スモールコンピュータシステムインターフェース(「SCSI」)、シリアルアタッチトSCSI(「SAS」)、ファイバーチャネル、周辺コンポーネントインターコネクト(「PCT」)、PCIエクスプレス(PCIe)、シリアルバス、パラレルバス、アドバンストテクノロジーアタッチト(「ATA」)、シリアルATA(「SATA」)、ユニバーサルシリアルバス(「USB」)、Thunderbolt、FireWire、様々なビデオバス等の任意の標準的なインターフェースを実施するように構成することができる。I/Oインターフェース2060は、1つのみのインターフェースまたはバス技術を実施するように構成することができる。代替的に、I/Oインターフェース2060は、複数のインターフェースまたはバス技術を実施するように構成することができる。I/Oインターフェース2060は、システムバス2020の一部として、システムバス2020の全てとして、またはシステムバス2020と併せて動作するように構成することができる。I/Oインターフェース2060は、1つまたは複数の外部デバイス、内部デバイス、コンピューティングマシン2000またはプロセッサ2010間で送信をバッファリングするための1つまたは複数のバッファーを含むことができる。
【0132】
I/Oインターフェース2060は、コンピューティングマシン2000を、マウス、タッチスクリーン、スキャナ、電子デジタイザ、センサー、受信機、タッチパッド、トラックボール、カメラ、マイクロフォン、キーボード、任意の他のポインティングデバイスまたはそれらの任意の組合せを含む様々な入力デバイスに結合することができる。I/Oインターフェース2060は、コンピューティングマシン2000を、ビデオディスプレイ、スピーカー、プリンタ、プロジェクタ、触覚フィードバックデバイス、自動化制御、ロボットコンポーネント、アクチュエータ、モータ、ファン、ソレノイド、バルブ、ポンプ、送信機、信号発振器、ライト等を含む様々な出力デバイスに結合することができる。
【0133】
コンピューティングマシン2000は、ネットワーク2080にわたる1つまたは複数の他のシステムまたはコンピューティングマシンとのネットワークインターフェース2070を通じた論理接続を用いて、ネットワーク化された環境において動作することができる。ネットワーク2080は、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、イントラネット、インターネット、無線アクセスネットワーク、有線接続ネットワーク、モバイルネットワーク、電話網、光ネットワーク、またはそれらの組合せを含むことができる。ネットワーク2080は、任意のトポロジーのパケット交換型、回路交換型とすることができ、任意の通信プロトコルを用いることができる。ネットワーク2080内の通信リンクは、光ファイバーケーブル、自由空間光通信、導波路、導電体、無線リンク、アンテナ、無線周波数通信等の様々なデジタルまたはアナログ通信媒体を含むことができる。
【0134】
プロセッサ2010は、システムバス2020を通じて、本明細書において論考したコンピューティングマシン2000の他の要素または様々な周辺機器に接続することができる。システム2020は、プロセッサ2010の内側にあるか、プロセッサ2010の外側にあるか、またはその双方とすることができることが理解されるべきである。いくつかの実施形態によれば、プロセッサ2010、コンピューティングマシン2000の他の要素、または本明細書において論考した様々な周辺機器のうちの任意のものを、システムオンチップ(「SOC」)、システムオンパッケージ(「SOP」)またはASICデバイス等の単一のデバイスに統合することができる。
【0135】
ここで論考したシステムがユーザに関する個人情報を収集するか、または個人情報を利用する場合がある状況では、ユーザには、プログラムまたは特徴がユーザ情報(例えば、ユーザのソーシャルネットワークに関する情報、ソーシャルアクションまたはアクティビティ、職業、ユーザの嗜好またはユーザの現在の位置)を収集するか否かを制御するか、またはユーザにより関連している場合があるコンテンツをコンテンツサーバから受信するか否かおよび/もしくはどのように受信するかを制御するための、機会またはオプションを提供することができる。さらに、あるデータは、記憶または使用される前に、1つまたは複数の方法で処理することができ、それによって、個人を識別可能な情報が除去される。例えば、ユーザのアイデンティティは、ユーザについて個人を識別可能な情報を特定することができないように、またはロケーション情報が得られたユーザの地理的ロケーションを(都市、ZIPコードまたは州レベル等に)一般化し、それによって、ユーザの特定のロケーションを特定できないように処理することができる。このため、ユーザは、自身に関して情報がどのように収集され、コンテンツサーバによって用いられるかを制御することができる。
【0136】
実施形態は、本明細書において説明し示した機能を具現化するコンピュータプログラムを含むことができる。ここで、コンピュータプログラムは、マシン可読媒体に記憶された命令、およびこの命令を実行するプロセッサを備えるコンピュータシステムにおいて実施される。一方、コンピュータプログラミングにおいて実施形態を実施する多くの異なる方法が存在することができ、実施形態はコンピュータプログラムのいかなる1つの組にも限定されるものとして解釈されるべきでないことが明らかであるべきである。さらに、熟練したプログラマーであれば、添付のフローチャートおよび本出願文における関連する記載に基づいて、開示された実施形態の一実施形態を実施するためのコンピュータプログラムを書くことが可能であろう。したがって、特定の1組のプログラムコード命令の開示は、実施形態をどのように作成し使用するかを適切に理解するのに必要であるとみなされない。さらに、当業者であれば、本明細書に記載される実施形態の1つまたは複数の態様を、1つまたは複数のコンピューティングシステムにおいて実現することができるような、ハードウェア、ソフトウェア、またはそれらの組合せによって実行することができることを理解するであろう。さらに、コンピュータによって実行される動作に対する任意の参照は、単一のコンピュータによって実行されるとみなされるべきでない。なぜなら2つ以上のコンピュータが動作を実行する場合があるためである。
【0137】
本明細書に説明される例示的な実施形態は、本明細書に記載される方法および処理機能を実行するコンピュータハードウェアおよびソフトウェアと共に用いることができる。本明細書に記載されるシステム、方法および手順は、プログラマブルコンピュータ、コンピュータ実行可能ソフトウェアまたはデジタル回路において実現することができる。ソフトウェアは、コンピュータ可読媒体上に記憶することができる。例えば、コンピュータ可読媒体は、フロッピーディスク、RAM、ROM、ハードディスク、リムーバブル媒体、フラッシュメモリ、メモリスティック、光媒体、磁気光媒体、CD-ROM等を含むことができる。デジタル回路は、集積回路、ゲートアレイ、構築ブロックロジック、フィールドプログラマブルゲートアレイ(FPGA)等を含むことができる。
【0138】
上記で提示した実施形態において記載される例示的なシステム、方法および動作は、例示的であり、代替的な実施形態では、様々な実施形態の範囲および趣旨から逸脱することなく、いくつかの動作は、異なる順序で、互いに並行して、完全に省かれ、かつ/もしくは異なる実施形態間で組み合わされて実行される場合があり、かつ/またはいくつかの追加の動作が実行され得る。したがって、そのような代替的な実施形態は、以下の特許請求の範囲の適用範囲内に含まれ、特許請求の範囲は、そのような代替的な実施形態を包含するように最も広い解釈を与えられる。
【0139】
特定の実施形態が詳細に説明されたが、この説明は、例示の目的にすぎない。したがって、実施形態で説明した多くの態様は、明示的に別段の指示がない限り、必要なまたは必須の要素であることを意図されないことが理解されるべきである。添付の特許請求の範囲において定義される実施形態の趣旨および範囲から逸脱することなく、例示的な実施形態の開示された態様の変更形態、およびこの開示された態様に対応する等価な構成要素または動作は、実施形態で説明したものに加えて、本開示の利益を有する当業者によって作成することができる。特許請求の範囲の適用範囲は、そのような変更形態および等価な構造を包含するように、最も広い解釈を与えられる。