詳細な説明
[0030] 様々な実施形態が添付の図面を参照して詳細に説明される。可能な場合はいつでも、同じまたは同様の部分を指すために図面全体にわたって同じ参照番号が使用される。特定の例および実装形態になされる言及は、説明のためであり、本発明の範囲または特許請求の範囲を限定するものではない。
[0031] 「例示的」という単語は、本明細書では、「例、事例、または例示として機能すること」を意味するために使用される。「例示的」として本明細書で説明されるいかなる実装形態も、必ずしも他の実装形態よりも好ましいまたは有利であると解釈されるべきではない。
[0032] 「コンピューティングデバイス」という用語は、ラップトップコンピュータ、サーバ、モバイルデバイス、パーソナルコンピュータ、および少なくともプロセッサを備えた同様の電子デバイスの、任意の1つまたは全てを指すために本明細書において使用される。様々な実施形態において、そのようなコンピューティングデバイスは、ワイドエリアネットワーク(WAN)またはローカルエリアネットワーク(LAN)接続(例えば、LTE、3Gまたは4Gワイヤレスワイドエリアネットワーク送受信機、インターネットへの有線接続、またはWiFi(登録商標))のようなネットワーク接続を確立するために、少なくとも1つのネットワークインターフェースによって構成され得る。
[0033] 「モバイルデバイス」という用語は、携帯電話、スマートフォン(例えば、iPhone(登録商標))、ウェブパッド、タブレットコンピュータ、インターネット対応携帯電話、WiFi対応電子デバイス、携帯情報端末(PDA)、ラップトップコンピュータ、パーソナルコンピュータ、および、少なくともプロセッサ、短距離無線(例えば、Bluetooth無線、Peanut(登録商標)無線、WiFi無線など)とワイドエリアネットワーク接続(例えば、LTE、3Gまたは4Gワイヤレスワイドエリアネットワーク送受信機またはインターネットへの有線接続)とに対応した同様の電子コンピューティングデバイスのうちの、任意の1つまたは全てを指すために本明細書で使用される。モバイルデバイスであるとして特定のタイプのコンピューティングデバイスに言及することは、特定のタイプのモバイルデバイスが特許請求の範囲において列挙されていない限り、特許請求の範囲を限定するものではない。
[0034] 「ビーコンメッセージ」および「ブロードキャストメッセージ」という用語は、ワイヤレス識別情報送信機(以下で定義される)および/またはそのユーザと関連付けられる識別情報(すなわち、識別子)を含み得るビーコンデバイスまたはワイヤレス識別情報送信機によってブロードキャストされる短距離ワイヤレスブロードキャスト信号(例えば、パケット)を指すために本明細書において使用される。そのような識別子は、定期的に変更され暗号化され得る(すなわち、ローリング識別子)。様々な実施形態において、ブロードキャストメッセージは、BluetoothMACアドレスおよびカウンタのような他の識別情報を含んでよく、この識別情報も符号化され得る。加えて、ブロードキャストメッセージは、メタデータと、送信しているワイヤレス識別情報送信機の特性(例えば、デバイスタイプ)、センサデータ、および/またはコマンドもしくは他の命令のような、他のデータとを含み得る。様々な実施形態において、ブロードキャストメッセージは、Bluetooth Low Energy、WiFi、WiFi Direct(登録商標)、Zigbee(登録商標)、Peanut(登録商標)、および他のRFプロトコルのような、ワイヤレス通信プロトコルを介して送信され得る。様々な実施形態において、いくつかの短距離送信チャネルの信頼性が低いので、ブロードキャストメッセージは、あるサイズ(例えば、80ビット、10バイト、20バイトなど)に制限された単一のパケット送信であり得る。例えば、ある実施形態のブロードキャストメッセージのペイロードは、全体で80ビットであってよく、バッテリ状態情報を示す4ビットとローリング識別子を示す76ビットとを含む。別の例として、ある実施形態のブロードキャストメッセージは、ノンスまたはカウンタを表す20ビットと、擬似ランダム関数または暗号化アルゴリズムにより生成されるようなローリング識別子を表す60ビットとを含み得る。例示的なブロードキャストメッセージ(またはパケット)構造は、図3A〜図4Bにおいて以下で詳細に説明される。
[0035] 「ワイヤレス識別情報送信機」という用語は、短距離ワイヤレス送信機を介してブロードキャストメッセージを定期的に送信するように構成される小型デバイスを指すために本明細書で使用される。ワイヤレス識別情報送信機は、運ばれる場合、または動いている人もしくはアイテムに付随する場合などに、モバイルであってよく、または代替的に、建物内に設置される場合などに、固定式であってよい。ワイヤレス識別情報送信機は、工場IDのような固有のデバイス識別子(すなわち、「deviceID」)を記憶してよく、それと関連付けられてよい。いくつかの実施形態では、固有のデバイス識別子は56ビットの長さのコードであってよい。様々な実施形態において、セキュリティの目的で、この固有のデバイス識別子は、「ローリング識別子」としてブロードキャストメッセージ内に含まれる場合、他のデータ(例えば、ノンス値またはカウンタ値)とともに、符号化され、暗号化され、または別様に難読化され得る。ワイヤレス識別情報送信機は、30ppm 16kHzの水晶振動子を時計として使用することなどによって、不正確な時間(例えば、UTC)情報を保持するように構成され得る。ワイヤレス識別情報送信機は、特に図15を参照して、本開示全体で説明される。本開示の様々な図面および略図において、ワイヤレス識別情報送信機は、「WIT」または「WITs」と呼ばれ得る。様々な実施形態において、接続不可能メッセージ(例えば、接続不可能Bluetoothパケットなど)をブロードキャストするように構成されるとき、WITは単にビーコンデバイスとも呼ばれ得る。
[0036] 「近隣ブロードキャスト受信機」という用語は、ワイヤレス識別情報送信機によって送信されるブロードキャストメッセージを受信するように構成されるデバイスを指すために本明細書で使用される。様々な実施形態において、近隣ブロードキャスト受信機は、あらゆる場所(例えば、建物、小売店など)に永続的に配置された固定式のデバイス(または「固定式の近隣ブロードキャスト受信機」)であってよく、または代替的に、近隣ブロードキャスト受信機(または「モバイル近隣ブロードキャスト受信機」)として動作するように構成されるモバイルデバイスであってよい。例えば、スマートフォンは、ブロードキャストメッセージを受信し、モバイル近隣ブロードキャスト受信機として動作するように構成され得る。近隣ブロードキャスト受信機であるとして特定のタイプのコンピューティングデバイスに言及することは、特定のタイプのデバイスが特許請求の範囲において列挙されていない限り、特許請求の範囲を限定するものではない。さらに、別段示されない限り、本開示全体での近隣ブロードキャスト受信機への言及は、特定のタイプの近隣ブロードキャスト受信機デバイス(例えば、ワイヤレスまたは固定式)に任意の方法またはシステムを限定するものではない。近隣ブロードキャスト受信機は、特に図16を参照して、本開示全体で説明される。本開示の様々な図面および略図において、近隣ブロードキャスト受信機は「PBR」または「PBRs」と呼ばれることがあり、モバイル近隣ブロードキャスト受信機は図面において「MPBR」または「MPBRs」と呼ばれる。
[0037] 「識別情報送受信機」および「ワイヤレス識別情報送受信機」という用語は、ブロードキャストメッセージを受信し送信するように構成されるデバイスを指すために本明細書で使用される。言い換えると、識別情報送受信機は、近隣ブロードキャスト受信機と識別情報送信機の両方として機能し得る。例えば、スマートフォンは、固有の識別子を含む短距離信号をブロードキャストし、さらに、近隣にあるワイヤレス識別情報送信機からブロードキャストメッセージを受信するように構成され得る。本開示全体で、様々な動作が、ワイヤレス識別情報送信機と近隣ブロードキャスト受信機のいずれかによって別個に実行されるものとして説明され得るが、識別情報送受信機として動作するように構成されるデバイスは、同じ動作のいずれかまたは全てを実行するように構成され得るので、ワイヤレス識別情報送信機と近隣ブロードキャスト受信機のいずれに関しても交換可能であり得ることを当業者は諒解されたい。
[0038] 「サイティングメッセージ」という用語は、ワイヤレス識別情報送信機からブロードキャストメッセージを受信したことに応答して、近隣ブロードキャスト受信機によって中心サーバに送信される報告、信号、および/またはメッセージを指すために本明細書で使用される。サイティングメッセージは、ワイヤレス識別情報送信機の識別子のような、任意の不明瞭にされた情報または符号化された情報を含む、受信されたブロードキャストメッセージ中で符号化される情報の一部または全てを含む送信であり得る。加えて、サイティングメッセージは、メタデータと他の情報(または「関連するデータ」)、例えば、送信している近隣ブロードキャスト受信機の識別情報(例えば、デバイスID、第三者との提携など)、近隣ブロードキャスト受信機がワイヤレス識別情報送信機とペアリングされているかどうか、送信コンテキスト情報(例えば、サイティングメッセージが警告または登録されたデバイスに関するかどうかを示すコード)、近隣ブロードキャスト受信機上で実行されるソフトウェアまたはアプリケーションに関する情報(例えば、アプリケーションID)、位置情報、ある場所の中の既知のエリアに対する近接情報、およびタイムスタンプデータを含み得る。いくつかの実施形態では、サイティングメッセージはまた、サイティングメッセージを送信する近隣ブロードキャスト受信機の識別(または識別情報)を確認するために中心サーバによって使用され得る、認証情報(例えば、秘密鍵、パス、特別なコード、デジタル証明書など)を含み得る。例えば、サイティングメッセージは、送信している近隣ブロードキャスト受信機が特定の登録されたサービスと関連付けられることを確実にするための、中心サーバによって復号され得るハッシュ関数からのコードを含み得る。様々な実施形態において、サイティングメッセージは、ブロードキャストの受信の後(例えば、警告と関連するとき)に直ちに送信され、バッファリングされ、他のスケジューリングされた送信とともにスケジューリングされ得る。
[0039] 本明細書で使用されるような「パケットフォーマット」という用語は、ワイヤレス識別情報送信機によってブロードキャストされ得るメッセージの任意の構造、配置、パターン、タイプ、および/またはフォーマットを指す。パケットフォーマットは、Bluetooth規格または別の規格(例えば、Qualcommソフトウェア開発キット(またはSDK)など)の中で規定または定義され得る。例えば、ブロードキャストメッセージのパケットフォーマットは、Bluetooth規格内で示されるあるBluetoothパケット構造であり得る。様々な実施形態において、ブロードキャストメッセージは、様々なパケットフォーマットまたはタイプの接続不可能(すなわち無接続)アドバタイズメントパケットとして組み立てられ得る。
[0040] 最近では、人または資産を見つける/追跡することのような様々なサービスにおいて使用されることになる情報を中継するために、セルラーデバイスおよびワイヤレスデバイスのワイヤレス通信機能を利用するシステムが、提案されている。これらのシステムの一部は、装着者の位置のようなデータをサーバに伝えるウェアラブルデバイスの開発を伴う。他のものは、装着者とセルラーデバイスとの間に無線接続を確立することを伴い、近隣デバイスによって受信されることになる情報のブロードキャストを利用する。例えば、デバイスは、「無線を通じた(over the air)」という識別情報を含む、Bluetoothアドバタイズパケットのようなブロードキャスト信号を使用して、接続を確立できる。ブロードキャスト信号のパケットの内容および/またはパケットフォーマットは、パケットスニファおよびアナライザを介して識別され得る。
[0041] サービスが利用可能であることをそのようなシステムのデバイスがアドバタイズするには、多くの異なる方法がある。具体的には、Bluetooth送受信機によって構成されるデバイスは、サービスの普遍的な固有の識別子(UUID)、製造業者固有のデータ、名前などのような様々なデータを伴う、接続可能または接続不可能パケットおよび/またはアドバタイズメントを含む、Bluetoothアドバタイズメントパケットを送信するために、様々なフォーマット、タイプ、パターン、または構造を利用できる。Bluetoothパケットのサポートされる構造は短いので、限られた情報しか様々なBluetoothパケット構造によって運ばれ得ない。
[0042] パケットの様々な構造は、データの異なる使用法または提供者に対応し得る。例えば、あるBluetoothパケットフォーマットは、あるモバイルデバイスのオペレーティングシステム、ファームウェア、アプリケーション、および/または機能とともに使用するために組み立てられ得る。Bluetoothパケット構造の様々な可能なタイプがBluetooth規格によって規定され得るが、全てのデバイスが全てのパケットフォーマットを簡単に登録することが可能であるとは限らない。例えば、いくつかのデバイスは、電力を節約するためにいくつかのパケットフォーマットだけをアクティブに監視するように構成され得るので、他のパケットフォーマットのメッセージを簡単に受信して処理できない。
[0043] 従って、異なるタイプのパケット(またはパケットフォーマット)がデバイス上で実行される様々なタイプのデバイスおよび/またはソフトウェア実装形態(例えば、ファームウェア、アプリケーション、命令セット、ルーチン、サービス、プロセス、スレッド、オペレーティングシステムなど)によってより良好に処理され得るので、ワイヤレス識別情報送信機が様々なパケットフォーマットをブロードキャストすることには価値があり得る。様々な実施形態は、近隣ブロードキャスト受信機などによって、ブロードキャストメッセージの処理を改善するためにインターリーブ方式で様々なパケットフォーマットをブロードキャストするための、方法と、デバイスと、システムとを提供する。様々な実施形態が、ワイヤレス識別情報送信機および近隣ブロードキャスト受信機を参照して本明細書で説明されるが、2つ以上の異なるパケットフォーマットをインターリーブする実施形態の方法はまた、送信機と受信機とを伴う、他のタイプのシステムおよび実装形態における適用形態を有し得る。ワイヤレス識別情報送信機は1つのタイプの送信機であり、近隣ブロードキャスト受信機は様々な実施形態を利用するのに適した1つのタイプの受信機である。従って、ワイヤレス識別情報送信機および近隣ブロードキャスト受信機への参照は例示が目的であり、特許請求の範囲において明示的に列挙されない限り、本発明または特許請求の範囲を制限することは意図されない。
[0044] ワイヤレス識別情報送信機は、近くの近隣ブロードキャスト受信機(例えば、スマートフォン)が受信機を調整すること、または受信機の挙動を別様に変更することを可能にし得る、少なくとも2つの異なるパケットフォーマットのブロードキャストメッセージをフォーマットして送信し、調整された受信機によってメッセージからのデータを効率的に処理するように構成され得る。受信機デバイスのそのような調整(または挙動の変更)は、デバイス上で実行され特定のパケットフォーマットと関連付けられるソフトウェア実装形態(例えば、ファームウェア、アプリケーション、命令セット、ルーチン、サービス、プロセス、スレッド、オペレーティングシステムなど)を調整することを含み得る。いくつかの実施形態では、近隣ブロードキャスト受信機は、ソフトウェア実装形態を起動することおよび/またはソフトウェア実装形態のデューティ比を変更することによって、ソフトウェア実装形態を調整できる。例えば、ワイヤレス識別情報送信機は、特定のオペレーティングシステムによって検出されるように、および、近隣ブロードキャスト受信機(例えば、スマートフォン)にアプリケーションを起動させるように、または、異なるパケットフォーマットの後続のブロードキャストメッセージに対するより特有のスキャンを実行するようにアプリケーションを再構成するように作られた、第1のBluetoothアドバタイズメントパケットをブロードキャストできる。ワイヤレス識別情報送信機はさらに、デューティ比が増大させられたBluetoothサブシステムなどを介して、調整された受信機によって検出され処理されるように作られた第2のBluetoothアドバタイズメントパケットをブロードキャストできる。少なくとも2つの異なるパケットフォーマットのブロードキャストメッセージは、異なるパケットフォーマットを有する無接続Bluetooth LEパケットであり得る。
[0045] いくつかの実施形態では、異なるパケットフォーマットのブロードキャストメッセージまたはパケットは、物理層(または「PHY」層)においては異ならないことがあり、代わりに、受信機デバイスのソフトウェア実装形態(例えば、ファームウェア、アプリケーション、命令セット、ルーチン、サービス、プロセス、スレッド、オペレーティングシステムなど)による処理に関してのみ異なることがある。言い換えると、異なるパケットフォーマットのブロードキャストメッセージは同じ通信プロトコルを利用できる。例えば、第1のパケットフォーマットの第1のパケットおよび第2のパケットフォーマットの第2のパケットフォーマットはともに、同様の物理層(例えば、Bluetooth LE)を有し得るが、スマートフォンである近隣ブロードキャスト受信機上で実行される異なるファームウェアルーチンと関連付けられ得る。
[0046] 異なるパケットフォーマットのブロードキャストメッセージの送信をインターリーブすることで、ワイヤレス識別情報送信機に関する情報を含むブロードキャストメッセージの受信と処理とを改善できる。いくつかの実施形態では、レイテンシまたは電力効率の高い処理/認識に対してよく適しており(または最適化されており)、スマートフォンのオペレーティングシステム(例えば、iPhone、Android(登録商標)など)によって通常は使用され得る、第1のパケットフォーマットの第1のメッセージを送信することによって、ワイヤレス識別情報送信機は、近隣ブロードキャスト受信機に、オペレーティングシステム内でのより高速な関与を伴って第2のパケットフォーマットの第2のブロードキャストメッセージへ応答させることができる。例えば、オペレーティングシステム(OS)によって効率的に認識され関与させられるように構成される予備の第1のパケットを送信することによって、ワイヤレス識別情報送信機は、近隣ブロードキャスト受信機に、そうされなければオペレーティングシステムによって効率的に関与させられ得ない異なるタイプの後続のデータパケットを扱うのによく適している(または最適化されている)、コード/ルーチンを実行させ、またはあるアプリを開始させることができる。言い換えると、情報を伝えるのにより適している第2のパケットフォーマットのメッセージが近隣ブロードキャスト受信機において効率的に受信されることを可能にするために、オペレーティングシステムによく適している(または最適化されている)第1のパケットフォーマットのメッセージがブロードキャストされ得る。これらのメッセージは、センサデータ(例えば、放射線センサデータ、湿度センサデータ、温度センサデータなど)のようなさらなるデータを含み得るので、そのような第2のパケットフォーマットは、特定の受信機(またはアクティブなソフトウェア実装形態)が受信するには効率が低い(または最適化されていない)ことがある。いくつかの実施形態では、第2のフォーマットは、第2のフォーマットの1つまたは複数のブロードキャストメッセージにおいて、第1のパケットフォーマットのメッセージにおけるよりも多くのデータが送信されることを可能にし得る。いくつかの実施形態では、第2のフォーマットは、暗号化されたデータまたはローリングデータを含めることなどによって、より強いセキュリティプロトコルを利用できる。
[0047] 例示として、ワイヤレス識別情報送信機(例えば、Qualcomm,IncからのGimbalビーコンデバイス)は、特定のオペレーティングシステム(例えば、iOS)を実装する近隣ブロードキャスト受信機のスキャン動作のために組み立てられていない第1のパケットフォーマットを使用して、ローリング識別子とともに第1のブロードキャストメッセージを送信できる。第1のパケットフォーマットのブロードキャストメッセージは、近隣ブロードキャスト受信機においてバックグラウンドプロセスのみを介して扱われ得るので、効率的に対処されないことがある。しかしながら、ワイヤレス識別情報送信機がその後、近隣ブロードキャスト受信機のオペレーティングシステムによく適しており(または最適化されており)第1のパケットフォーマットの第1のメッセージとともにインターリーブされることが知られている第2のパケットフォーマットの第2のメッセージを送信する場合、近隣ブロードキャスト受信機は、ローリング識別子を含む第1のブロードキャストメッセージの改善されたスキャンを実行できる。
[0048] いくつかの実施形態では、第1のパケットフォーマットのブロードキャストメッセージおよび第2のパケットフォーマットのメッセージはともに、単一のワイヤレス識別情報送信機(またはビーコンデバイス)によって送信され得る。いくつかの実施形態では、第1のパケットフォーマットのブロードキャストメッセージは第1のデバイス(例えば、第1のビーコンデバイス)によって送信されてよく、第2のパケットフォーマットのブロードキャストメッセージは第2のデバイス(例えば、第2のビーコンデバイス)によって送信されてよい。様々な実施形態において、そのようなビーコンデバイスは、携帯電話またはスマートフォンのようなモバイルデバイス内に含まれ得る。
[0049] このインターリービング技法(interleaving technique)は、近隣ブロードキャスト受信機が静的なパケットを使用する技法を利用するとき、および、誰によっても(例えば、パケットスニファによって)読み取られ得る固有のコードを各ワイヤレス識別情報送信機に送信させないことが望ましいときに、特に有用であり得る。例えば、小売店内の複数のワイヤレス識別情報送信機は、小売店の各エリアに対する固有の静的IDを含むメッセージをブロードキャストすることがある。この場合、競合業者が、競争力のある価格を提示するために、歩き回ってブロードキャストメッセージを受信し小売店の地図を作成することが可能である。しかしながら、パケットフォーマットをインターリーブすることによって、小売店は、近くの近隣ブロードキャスト受信機(例えば、顧客の携帯電話)を起動させ、小売店のエリアと関連付けられるローリングコードを含むBluetooth LEパケットをスキャンさせ、近隣ブロードキャスト受信機が現在位置している小売店のエリアを安全に決定させることができる、同じデータを(または他の競合店内で送信されるデータでさえも)含むメッセージを、全てのワイヤレス識別情報送信機に送信させることができる。
[0050] いくつかの実施形態では、ワイヤレス識別情報送信機は、2つ以上のパケットフォーマットの2つ以上のブロードキャストメッセージを使用してデータ(またはデータの部分)を送信するように構成され得る。例えば、ワイヤレス識別情報送信機は、スマートフォンのオペレーティングシステムによる使用によく適しており(または最適化されており)、あるアプリケーションと関連付けられる第2のパケットフォーマットのコマンドまたはアプリケーションデータおよび第2のメッセージの一部分を含み、そのコマンドまたはアプリケーションデータの別の部分を含む、第1のパケットフォーマットの第1のメッセージをブロードキャストできる。近隣ブロードキャスト受信機は、異なるパケットフォーマットの2つのブロードキャストメッセージにおいて受信されるデータの部分を組み合わせるように構成され得る。例えば、近隣ブロードキャスト受信機は、近隣ブロードキャスト受信機によって実行されるべきコマンドを生成するために、第1のメッセージと第2のメッセージにおいて受信されるデータのバイトを組み合わせることができる。
[0051] 様々な実施形態において、ワイヤレス識別情報送信機は、様々な方式で異なるパケットフォーマットのインターリーブを実行できる。例えば、ワイヤレス識別情報送信機は、第1のパケットフォーマットの第1のメッセージを、次いで第2のパケットフォーマットの第2のメッセージをブロードキャストし(すなわち、1対1)、事前に定義された数の繰り返しの間、第1のパケットフォーマットの第1のメッセージをブロードキャストし、次いで、事前に定義された数の繰り返しの間、第2のパケットフォーマットの第2のメッセージをブロードキャストする(例えば、3対1、1対3など)ことなどを行うように構成され得る。いくつかの実施形態では、ワイヤレス識別情報送信機は、ブロードキャストメッセージのためのパケットフォーマットをインターリーブする順番を決定するためにフィボナッチ方程式を利用できる。別の実施形態では、ワイヤレス識別情報送信機は、異なるパケットフォーマットのメッセージのブロードキャスト間において待機する(または空間を追加する)ことができる。例えば、ワイヤレス識別情報送信機は、異なるパケットフォーマットの第1のメッセージと第2のメッセージとをブロードキャストすることの繰り返しと繰り返しとの間において、ある時間の期間(例えば、100ミリ秒(ms)など)待機でき、または代替的に、第1のメッセージをブロードキャストすることと第2のメッセージをブロードキャストすることとの間においてある数のミリ秒(例えば、50msなど)待機できる。そのような離隔または待機期間は、パケットを受信しているオペレーティングシステムまたはデバイスのタイプに基づき得る。例えば、第1のメッセージをブロードキャストすることと第2のメッセージをブロードキャストすることとの間の時間は、第1のメッセージがiOSデバイスにおける使用によく適する(または最適化される)ように構成されるとき、第1の数のミリ秒であり得る。別の例として、第1のメッセージをブロードキャストすることと第2のメッセージをブロードキャストすることとの間の時間は、第1のメッセージがAndroidデバイスにおける使用によく適する(または最適化される)ように構成されるとき、第2の数のミリ秒であり得る。言い換えると、様々な実施形態において、ワイヤレス識別情報送信機は、様々な反復および/またはタイミングの順番を使用して、第1のメッセージと第2のメッセージとを繰り返しブロードキャストする(または再ブロードキャストする)ことができる。
[0052] 別の実施形態では、ワイヤレス識別情報送信機は、バッテリに対する送信の影響に基づいて、異なるパケットフォーマットを順番にブロードキャストできる。例えば、あるパケットフォーマットのメッセージがある時間期間内に送信されるときには電力流出という結果があり得るので、ワイヤレス識別情報送信機は、バッテリの消耗を避けるために、そのようなパケットフォーマットのメッセージのブロードキャストを規制するための所定の時間閾値を利用できる。
[0053] 様々な実施形態では、ワイヤレス識別情報送信機は、第1のフォーマットのパケットと第2のフォーマットのパケットとを独立にブロードキャストできる。例えば、ワイヤレス識別情報送信機は、異なるパケットフォーマットをブロードキャストするために異なるクロックを利用できる。従って、第1のパケットフォーマットおよび第2のパケットフォーマットがブロードキャストおよび/または受信される順序は、様々な実施形態では重要ではないことがある。非限定的な例示を目的に、ワイヤレス識別情報送信機は、サービスUUIDを有する両方の第1のパケットを不定の時間の期間、定期的にブロードキャストでき、また、サービスUUID(または長さが0のサービスUUID)を有する第2のパケットをブロードキャストでき、第2のパケットは、第1のパケットもブロードキャストされていることを単に示し得る。
[0054] 異なるブロードキャスト受信機デバイスは、異なるパケットフォーマットのパケットを監視し、スキャンし、または別様に処理するように構成され得る。例えば、第1のブロードキャスト受信機デバイスは、第1のパケットフォーマットのブロードキャストパケットのみをスキャンするように構成されてよく、第2のブロードキャスト受信機デバイスは、第1のパケットフォーマットおよび/または第2のパケットフォーマットのブロードキャストパケットをスキャンするように構成されてよく、第3のブロードキャスト受信機デバイスは、第2のパケットフォーマットのブロードキャストパケットのみをスキャンするように構成されてよい。従って、いくつかのデバイスに対しては、実施形態のインターリーブ技法は、ワイヤレス識別情報送信機が、データを伴う他のパケットが利用可能であるというインジケータを含む第1のパケットフォーマットのパケットと、関連する情報を追跡することまたはそれをサーバに中継することのような様々な用途に使用され得るデータ(例えば、セキュアなローリング識別子)を含む第2のフォーマットのパケットの両方を同時にブロードキャストできるので、有用であり得る。例えば、第1のフォーマットのパケットは、スマートフォン(例えば、ブロードキャスト受信機デバイスとして機能するようにアプリケーションによって構成されるスマートフォン)に、そのスマートフォンが以前はスキャンするように構成されていなかった(または稀にしかそのようなパケットをスキャンするように構成されていなかった)第2のフォーマットのパケット(例えば、ローリング識別子を含む)を探し始めさせることができる。このようにして、全ての構成のコンピューティングデバイスは、ローリング識別子を含むブロードキャストメッセージを効率的に処理することが可能にされ得る。
[0055] 同期情報、タイミング情報、または、送信機デバイス(例えば、ワイヤレス識別情報送信機)と受信デバイス(例えば、近隣ブロードキャスト受信機)との間の接続を確立するために受信デバイス(例えば、近隣ブロードキャスト受信機)によってビー利用できる他のデータを含まない、パケットまたはブロードキャストメッセージを利用できる。具体的には、ブロードキャストメッセージまたはパケットは、接続不可能Bluetooth LEアドバタイズメントであり得る。さらに、既知の通信方式におけるパイロット通信とは異なり、実施形態の無接続パケットまたはブロードキャストメッセージは、識別情報を提供することなく、近くの近隣システムおよび/またはブロードキャストデバイスの利用可能性を単に示し得る。例えば、ワイヤレス識別情報送信機によってブロードキャストされる第1のフォーマットのパケットは、ワイヤレス識別情報送信機の識別情報を含まないことがあるが、代わりに、いくつかの近くの送信機が第2のフォーマットのパケットもブロードキャストしているという、フラグ、データ、コード、または他のインジケータのみを含み得る。従って、様々な実施形態は、WAN(例えば、セルラーネットワーク)に関するCDMA通信またはLANのルータとのWiFi通信のような他の方式とは別個であり、それは、実施形態のデバイスは、接続を確立するために必要とされるデータを示すことなく、異なる近隣システムの存在を示すために異なるフォーマットのブロードキャストパケットを単に利用できるからである。
[0056] 一般に、暗号化された識別子を含むブロードキャストメッセージは、1つまたは複数の中心サーバと通信できる、携帯電話、モバイルデバイス、または固定式の近隣ブロードキャスト受信機のような、近隣ブロードキャスト受信機のネットワークによって受信され得る。様々な実施形態において、ワイヤレス識別情報送信機は、短距離ワイヤレスブロードキャストの範囲内の任意の近隣ブロードキャスト受信機によって受信され得るフォーマットで、識別コードを伴うパケットを送信するように構成される、小型デバイスであり得る。ワイヤレス識別情報送信機は短距離ワイヤレスシグナリング(例えば、Bluetooth Low Energyパケット、光信号、音声信号などのような短距離無線信号)を利用して、識別子を含むブロードキャストメッセージを送信するので、近隣にある近隣ブロードキャスト受信機のみが、そのようなブロードキャストメッセージを受信できる。従って、近隣ブロードキャスト受信機自体の位置が、ブロードキャストメッセージの受信の時間におけるワイヤレス識別情報送信機の概略的な位置を与えることができる。ワイヤレス識別情報送信機からブロードキャストメッセージを受信する各近隣ブロードキャスト受信機は、暗号化されたワイヤレス識別情報送信機の識別子を含むサイティングメッセージを、処理のために中心サーバに渡すことができる。中心サーバは、受信されたサイティングメッセージ内のローリング識別子を含む暗号化された情報または不明瞭にされた情報を復号できる。
[0057] 様々な実施形態において、ワイヤレス識別情報送信機は、デバイス識別子が符号化/暗号化される方式を定期的に変更し、または、送信機を追跡することを難しくしつつ、ワイヤレス識別情報送信機の固有のデバイス識別子(および他の識別情報)を中心サーバが復号し、解読し、または別様に認識することを可能にするような方式で、識別子自体を変更するように構成され得る(本明細書では「ローリング識別子(rolling identifier)」と呼ばれる)。例えば、ワイヤレス識別情報送信機は、ワイヤレス識別情報送信機のデバイス識別子(すなわち、deviceID)の符号化されたバージョンを含むBluetoothパケットを定期的にブロードキャストするように構成され得る。ブロードキャストメッセージ中で示される識別子のそのような暗号化は、中心サーバがブロードキャストメッセージの発信元のワイヤレス識別情報送信機を信頼性をもって特定することを可能にしつつ、第三者(例えば、受動的な攻撃者)に想像のみによってブロードキャストメッセージの発信元を決定することを強いるために必要とされ得る。例えば、識別子が不変であれば、第三者は、例えば、近隣ブロードキャスト受信機になりすますことによって識別子を探り出し、次いで、その識別子を使用してワイヤレス識別情報送信機を追跡できる。ローリング識別子は、第三者が暗号化された識別子を生成する手段を欠いていれば、そのような攻撃を不可能にできる。
[0058] 単一パケットのブロードキャストメッセージは、従来の非対称鍵暗号化の暗号文に適合し得るペイロードをサポートしないことがあるので、標準的な非公開/公開の鍵ペア暗号化は、様々な実施形態において使用可能ではないことがある。加えて、ワイヤレス識別情報送信機は一般にブロードキャスト専用デバイスであるので、従来の暗号化方式で通常必要とされるバックチャネルがない。従って、様々な実施形態における中心サーバは、各ワイヤレス識別情報送信機に固有の共有される秘密鍵を事前に準備することによって、暗号化されたメッセージペイロードを処理できる。そのような秘密鍵は、中心サーバにおいて各ワイヤレス識別情報送信機の固有のデバイス識別子と関連付けられてよく、各ワイヤレス識別情報送信機によって符号化されたデータ(例えば、識別子)を復号するために使用されてよい。
[0059] 中心サーバと関連付けられるデータベースに対するハッカーの攻撃などの、セキュリティの侵害から保護し、さらに、登録されたユーザ(例えば、業者、親、子供など)に、安心と、プライバシーが完全に保護され得るという信頼とを与えるために、さらなる対策が重要であり得る。そのようなプライバシー保護対策は、ユーザのデバイス情報および/または近接情報を追跡することに関する他の情報とは別個に、識別情報(例えば、名前、住所、金融情報、医療情報など)を記憶することによって、実施形態のシステムに登録される関係者に提供され得る。特に、登録された業者、顧客、子供、または個人の個人情報の意図されない漏洩を防ぐために、実施形態のシステムは「二重目隠し(double-blind)」アーキテクチャを利用できる。例えば、そのような二重目隠しアーキテクチャは、登録されたユーザのデバイス(例えば、ワイヤレス識別情報送信機、近隣ブロードキャスト受信機、識別情報送受信機、モバイルデバイスなど)の近接情報または他の位置ベースのデータに関する情報を記憶し、その情報に対するアクセス権を有する、第1のユニット(例えば、サーバ、データベース、または他のコンピューティングハブ)を使用できる。言い換えると、第1のユニットは、様々なユーザのデバイスの概略的な位置/近接を示すサイティングメッセージと関連付けられる情報を入手できる。しかしながら、第1のユニットは、ユーザの名前、住所、および/または社会保障番号のような、一意に個人を識別する個人情報を記憶することはできない。代わりに、第2のユニットが、第1のユニットによって使用されるような任意の位置/近接情報を入手するように構成されることなく、個人を識別する情報を記憶できる。第1のユニットおよび第2のユニットは、いずれかのユニットに記憶された保護された情報を示すことなく、2つのユニット内に記憶されたデータをつなぐ匿名の識別子を使用できる。いくつかの実施形態では、第1のユニットおよび第2のユニットは、別個のエンティティ(例えば、サービス提供者)によって管理されてよく、さらに、そのようなエンティティの少なくとも1つが、識別情報を提供する登録されたユーザにより信頼され得る。
[0060] 様々な実施形態は、すでに整備されているモバイルデバイスの巨大なインフラストラクチャを利用する。スマートフォンのような多くの現在のモバイルデバイスは、Bluetooth無線のような短距離無線を含む複数の無線を装備しているので、モバイル近隣ブロードキャスト受信機として実行し、近隣ワイヤレス識別情報送信機から識別コードを受信するように構成され得る。モバイルデバイスはまた、現在時刻を提供し得る時計と、ワイヤレス識別情報送信機の識別子が受信されたときに常に現在の位置を提供し得るGPS受信機とを装備することが多い。モバイルデバイスは、これらの識別コードと、時間と、位置とを、サイティングメッセージを介して、セルラー無線接続のようなより長距離のネットワーク接続を通じて中心サーバに伝えることができる。従って、すでに使用されている、またはまもなく使用されることになる多数のモバイルデバイスの多くが、様々な実施形態のシステムの範囲を拡張するためのモバイル近隣ブロードキャスト受信機として包含され得る。
[0061] 近隣ブロードキャスト受信機の長距離無線または他のサービスを使用して、受信されたブロードキャストメッセージの位置と時間と(または「サイティング」)を中心サーバに報告することによって、ワイヤレス識別情報送信機は、BluetoothLE送受信機のような短距離無線とバッテリとを含むものにすぎない、比較的小型で、安価で、単純なデバイスになり得る。様々な実施形態では、ワイヤレス識別情報送信機はまた、Peanut(登録商標)無線のような追加の短距離無線を含み得る。様々な実施形態において、ワイヤレス識別情報送信機は、ユーザインターフェース、複数の無線、全地球測位システム(GPS)受信機、またはモバイルデバイスに一般的な他の特徴を含まなくてよい。実施形態のワイヤレス識別情報送信機はまた、非常に少量の電力しか消費しないことがあり、頻繁に再充電または交換されることを必要とすることなくそれらが展開されることを可能にする。これらの特性は、多種多様な使用法および種々の物理的構成における実装に対して、それらを理想的なものにする。例えば、ワイヤレス識別情報送信機は、ボタン、腕時計、靴、ブリーフケース、バックパック、IDバッジ、衣服、製品のパッケージングなどのような、多くの異なる個人の持ち物の中に、簡単に隠されまたは組み込まれ得る。
[0062] 実施形態の方法、デバイス、およびシステムは、広範な目的のために使用され得る。例えば、様々な実施形態は、行方不明の子供、精神病の患者、ペット、アルツハイマー病の患者、自然災害の被災者、および彼らを救助しようとする最初の応答者などを追跡するために使用され得る。さらなる実施形態は、物流システムにおいて高価値の資産を追跡することと、境界エリアの通過(例えば、建設現場へ入る通過/建設現場から出る通過)を監視することと、資産がこれまでに盗まれたかどうか、行方不明になったと報告されたかどうかを追跡することとのために、高価値の資産に設置され得る。実施形態はまた、管理されたエリアに入る、またはそこから出る人々を監視するための使用であり得る。様々な実施形態は、アンバーアラートシステムを支援もしくは補助し、または警察官に情報を提供できる。実施形態はまた、価値のある情報を、私的な人または業者に与えることができる。
[0063] ワイヤレス識別情報送信機はまた、情報(例えば、センサデータ)を伝えるように機能し、または、特定の動作を行うように近隣ブロードキャスト受信機に促すように機能できる。いくつかの実施形態では、ワイヤレス識別情報送信機は、携帯電話のような近隣ブロードキャスト受信機によって実行されるべき1つまたは複数の挙動を示すブロードキャストメッセージを送信でき、この場合、ブロードキャストメッセージはまた、コマンド(すなわち、コマンド識別子)またはワイヤレス識別情報送信機のタイプ(すなわち、デバイスタイプ識別子またはデバイスタイプ情報)に対応する2次セグメントを含み得る。ブロードキャストメッセージを受信する近隣ブロードキャスト受信機は、識別コードまたは2次コードに基づいて動作を行うことができる。あるいは、近隣ブロードキャスト受信機は、受信されたブロードキャストメッセージを中心サーバに送信でき、中心サーバは、実行されるべき挙動を示すために、命令または別のコードを近隣ブロードキャスト受信機に返すことができる。
[0064] さらなる実施形態では、ワイヤレス識別情報送信機および近隣ブロードキャスト受信機は、LTE−D、ピアツーピアLTE−D、WiFi、およびWiFi Directのような様々なワイヤレス技術を使用して送信を交換するように構成され得る。いくつかの実施形態では、ワイヤレス識別情報送信機は、WiFi送受信機を伴う近隣ブロードキャスト受信機がブロードキャストメッセージを受信できるように、WiFi無線を介してメッセージをブロードキャストするように構成され得る。そのような実施形態では、ワイヤレス識別情報送信機は、WiFi送信を利用して、WiFiアクセスポイントのブロードキャストアドバタイズメントと同様の識別情報をブロードキャストできる。例えば、受信範囲が制限されるように、WiFi無線を含むワイヤレス識別情報送信機は、低電力のWiFi送信を介してブロードキャストメッセージを送信するように構成されてよく、これによって、Bluetooth LE送信の範囲と同様の範囲を伴う短距離無線信号を提供する。様々なワイヤレスブロードキャスト技術と、ワイヤレス識別情報送信機との通信プロトコルとを利用する際に、限られた能力を有する近隣ブロードキャスト受信機は依然として、ワイヤレス識別情報送信機からのブロードキャストメッセージを受信し処理することが可能であり得る。例えば、モバイル近隣ブロードキャスト受信機として動作するように構成され、WiFi送受信機を含むが、Bluetooth LE無線を含まないスマートフォンが、WiFi無線により短距離信号をブロードキャストするように構成されるワイヤレス識別情報送信機からのブロードキャストメッセージを受信し処理できる。いくつかの実施形態では、より多くのモデルの近隣ブロードキャスト受信機(例えば、より多くのタイプのスマートフォン)がサイティングを受信し中継することを可能にするために、ワイヤレス識別情報送信機は、Bluetooth LE送受信機および低電力WiFi送受信機のような複数の無線を通じてブロードキャストできる。
[0065] 他の実施形態では、ワイヤレス識別情報送信機は、ブロードキャストメッセージ中に符号化され得るセンサデータを生成するセンサを含み得る。そのようなセンサは、マイクロフォン、カメラ、圧力センサ、熱センサ、加速度計、湿度センサ、温度センサ、二酸化炭素(CO2)センサなどを含み得る。そのようなセンサからのデータは、近隣ブロードキャスト受信機からのサイティングメッセージを介して、データを受信する近隣ブロードキャスト受信機または中心サーバによって使用または記憶され得る。
[0066] 様々な実施形態の方法は、短距離ワイヤレスブロードキャストメッセージの受信に基づいて、ワイヤレス識別情報送信機が近隣ブロードキャスト受信機の近隣にあると、およびその逆であると決定できる。さらに、実施形態は、ワイヤレス識別情報送信機および/または近隣ブロードキャスト受信機の正確な位置を決定することを必要とはしないことがあり、代わりに、デバイスの概略的な位置および/または互いの相対的な位置を決定できる。従って、本開示全体での位置および/または距離の決定に対する言及は、シグナリングしているデバイスの間の近接度を決定することを目的とするものであり得る。
[0067] 様々な実施形態において、会社、組織、および施設(例えば、学校、店舗、公園、空港、ショッピングモール、オフィスビルなど)が、固定式の近隣ブロードキャスト受信機を配備して、ユーザのワイヤレス識別情報送信機からのブロードキャストメッセージを受信し中継できる。あるいは、複数の場所が固定式のワイヤレス識別情報送信機を配備してよく、ユーザのモバイル近隣ブロードキャスト受信機がブロードキャストメッセージを受信し中継してよい。さらなる実施形態では、複数の場所が近隣ブロードキャスト受信機とワイヤレス識別情報送信機の両方を配備して、ワイヤレス識別情報送信機を運ぶユーザおよび/またはモバイル近隣ブロードキャスト受信機を運ぶユーザの両方からのデータを受信し、中継し、処理できる。ブロードキャストメッセージの発信源とは無関係に、中心サーバ(またはローカルコンピューティングデバイス)は、受信されたサイティングメッセージに基づいて、近隣ブロードキャスト受信機とワイヤレス識別情報送信機との間の概略的な近接度を決定できる。
[0068] 図1は、様々な実施形態において使用され得る例示的な通信システム100を示す。通信システム100は、ワイヤレス識別情報送信機110(例えば、BluetoothLE送信機)が、直接の通信リンクをネゴシエートする必要なく、複数のモバイル近隣ブロードキャスト受信機138および/または固定式の近隣ブロードキャスト受信機142を介して、識別情報を含むブロードキャストメッセージを中心サーバ120に送信することを、実質的に可能にする。そのようなブロードキャストメッセージは、ワイヤレス識別情報送信機110の近隣(またはブロードキャスト範囲)にある任意の近隣ブロードキャスト受信機によって自動的に収集され得る。例えば、ある近隣の範囲内にあるモバイル近隣ブロードキャスト受信機138は、ワイヤレス識別情報送信機110内のBluetooth無線によって送信されるブロードキャストメッセージを受信できる。
[0069] 通信システム100は、ワイヤレス識別情報送信機110を含み得る。ワイヤレス識別情報送信機110は、様々な物体に結合され得る。例えば、ワイヤレス識別情報送信機110は、ブレスレットに埋め込まれ得る。ワイヤレス識別情報送信機110は、上で説明されたようなブロードキャストメッセージなど、短距離ワイヤレス信号114を送信できる。例えば、この短距離ワイヤレス信号114は、パケットの定期的なブロードキャストであってよく、これは、ワイヤレス識別情報送信機の識別コードを含む。あるいは、短距離ワイヤレス信号114は、近隣ブロードキャスト受信機として動作している可能性のある複数のモバイルデバイス138のいずれかとのワイヤレス通信リンクを確立するための試みであり得る。短距離ワイヤレス信号114は、固定式の近隣ブロードキャスト受信機142および/またはモバイル近隣ブロードキャスト受信機138のような、近接した近隣ブロードキャスト受信機によって受信され得る。
[0070] 短距離ワイヤレス信号114は、Bluetooth、Bluetooth LE(登録商標)、Wi−Fi(登録商標)、赤外線ワイヤレス、誘導ワイヤレス、ウルトラワイドバンド(UWB)、ワイヤレスユニバーサルシリアルバス(USB)、Zigbee、Peanut(登録商標)、または、(例えば、送信電力を制約することによって)有効通信範囲を比較的短距離(例えば、約100メートル以内)に制限しなければならない、または制限するように修正され得る他の短距離ワイヤレス技術もしくはプロトコルのような、種々の通信プロトコルのいずれかに従ったものであり得る。いくつかの実施形態では、ワイヤレス識別情報送信機110は、Bluetooth4.0プロトコル(またはより後のバージョン)において標準化された低エネルギー技術を使用し得る。例えば、いくつかの実施形態のシステムでは、ワイヤレス識別情報送信機110は、Bluetooth4.0プロトコルに記載されるようなアドバタイザとして構成される識別パケットを定期的にブロードキャストでき、近接した近隣ブロードキャスト受信機142、138は、そのプロトコルに従ってスキャナとして動作するように構成され得る。
[0071] BluetoothプロトコルおよびBluetoothデバイス(例えば、Bluetooth LEデバイス)は、比較的短い有効通信範囲を有し、配備されている通信デバイスおよびコンピューティングデバイスにおいて広く使用されており、様々な実施形態の発見および報告のニーズを満たす標準的なアドバタイズ手順またはペアリング手順を有し、低い消費電力を示し、これは、様々な実施形態の多くの用途に対してプロトコルを理想的なものにする。この理由で、BluetoothおよびBluetooth LEのプロトコルおよびデバイスが、例示の目的で、本明細書の例の多くで言及される。しかしながら、特許請求の範囲において特に記載されていない限り、特許請求の範囲は、BluetoothまたはBluetooth LEのデバイスおよびプロトコルに限定されるべきではない。例えば、Peanut(登録商標)送受信機が、ワイヤレス識別情報送受信機110内に含まれてよく、Peanut(登録商標)短距離無線送信を利用するようにも構成される近隣ブロードキャスト受信機142、138との双方向通信を送信するために使用されてよい。
[0072] 通信システム200は、ある領域、建物、または場所の全体に、機関、業者、または様々な第三者によって配備され得る、複数の固定式の近隣ブロードキャスト受信機142を含み得る。そのような固定式の近隣ブロードキャスト受信機142は、ワイヤレス識別情報送信機110に対して特別に設計され得る(または、交通信号、ユーティリティ変圧器(utility transformer)などのような、他の基本的機能に加えて、そのような追跡機能を含み得る)。固定式の近隣ブロードキャスト受信機142は、ある地区内の戦略的な位置に配置されてよく、例えば、ある地域の境界を形成し、および/または交通量の多いエリア(例えば、主要な交差点および高速道路の入口)に配置される。固定式の近隣ブロードキャスト受信機142は、インターネット103への接続148を提供するインターネットアクセスサーバ140を含み得る、WiFiネットワークのようなローカルエリアネットワーク190と通信していてよい。固定式の近隣ブロードキャスト受信機142は、有線リンクまたはワイヤレスリンク146によってローカルエリアネットワーク190に接続され得る。様々な実施形態において、固定式の近隣ブロードキャスト受信機142は、インターネットアクセスサーバ140内に含まれてよく、またはインターネットアクセスサーバ140の近くに位置してよい。例えば、固定式の近隣ブロードキャスト受信機142は、インターネットアクセスサーバ140内のコンポーネントであってよく、または代替的に、インターネットアクセスサーバ140の上部または側部に配置されてよい。いくつかの実施形態では、固定式の近隣ブロードキャスト受信機142は、ある地区内の戦略的な位置に配置されてよく、例えば、ある地域の境界を形成し、および/または交通量の多いエリアに(例えば、小売店の通路に沿って、建物の入口に、など)配置される。いくつかの実施形態では、固定式の近隣ブロードキャスト受信機142は、追加の機能を有し得る。例えば、固定式の近隣ブロードキャスト受信機142はまた、キャッシュレジスタ、販売時点(point-of-sale)デバイス、および/または小売店内のディスプレイユニットとして機能してよく、またはそれらに含まれてよい。
[0073] 通信システム100はまた、モバイル近隣ブロードキャスト受信機138として動作するように構成される1つまたは複数のモバイルデバイスを含み得る。モバイル近隣ブロードキャスト受信機138は、有線接続またはワイヤレス接続158によって1つまたは複数のネットワーク運用センター132に結合される1つまたは複数の基地局134への長距離ワイヤレスリンク136を介してセルラーネットワーク121と通信する、一般的なモバイルデバイスまたはスマートフォンであり得る。そのようなセルラーネットワーク121は、3G、4G、およびLTEのような様々な技術を利用できる。ネットワーク運用センター132は、セルラーネットワーク121を通る音声呼とデータトラフィックとを管理し、通常は、有線接続またはワイヤレス接続156によって1つまたは複数のサーバ130を含んでよく、またはそれに接続されてよい。サーバ130は、インターネット103への接続154を提供できる。様々な実施形態において、モバイル近隣ブロードキャスト受信機138は、インターネット103によってワイヤレス識別情報送信機110(すなわち、サイティングメッセージ)から中心サーバ120への受信されたブロードキャストメッセージの報告を中継するための近隣ブロードキャスト受信機として動作するように、アプリケーションまたは他のソフトウェアモジュールによって構成されるモバイルデバイスであり得る。
[0074] 近隣ブロードキャスト受信機138、142は、ワイヤレス識別情報送信機110との接続(またはサイティング)を、インターネット103を介して中心サーバ120に報告するように構成され得る。例えば、近隣ブロードキャスト受信機142は、ワイヤレス識別情報送信機110のユーザの識別情報に対応するローリング識別子を含むサイティングメッセージを中心サーバ120に送信できる。近隣ブロードキャスト受信機138、142がワイヤレス識別情報送信機110から識別子を受信するたびに、識別子は、接続の時間および近隣ブロードキャスト受信機138、142の位置と関連付けられてよく、この情報は、サイティングメッセージ内などで、中心サーバ120に送信され得る。いくつかの実施形態では、例えば中心サーバ120によってブロードキャストまたはマルチキャストされるクエリメッセージに応答して、接続の識別子、時間、および位置が、後で報告するために、近隣ブロードキャスト受信機138、142(または中間のサーバ130、140)のメモリに記憶され得る。また、中心サーバ120は、サイティングメッセージによって報告された位置情報をデータベースに記憶でき、この位置情報は、ワイヤレス識別情報送信機110の動きを位置決定し、追跡し、または別様に監視するために使用され得る。
[0075] いくつかの実施形態では、モバイル近隣ブロードキャスト受信機138は、固定式の近隣ブロードキャスト受信機142と短距離ワイヤレス信号189を交換するように構成され得る。言い換えると、モバイル近隣ブロードキャスト受信機138は、ワイヤレス識別情報送信機110から短距離ワイヤレス信号114(すなわち、ブロードキャストメッセージ)を受信し、さらに、近隣ブロードキャスト受信機142による受信のために短距離ワイヤレス信号189を送信することが可能な、ワイヤレス識別情報送受信機として動作するように構成され得る。
[0076] いくつかの実施形態では、近隣ブロードキャスト受信機142は、ローカルエリアネットワーク190の一部のようなワイヤレスルータ185にワイヤレス信号188を送信でき、ワイヤレスルータ185はインターネット103への接続187を提供できる。例えば、固定式の近隣ブロードキャスト受信機142は、ワイヤレス識別情報送信機110によってWiFiワイヤレスルータ185に送信されるブロードキャストメッセージからのデータを含む、サイティングメッセージを送信できる。
[0077] 中心サーバ120はまた、インターネット103に接続されてよく、これによって、近隣ブロードキャスト受信機142、138と中心サーバ120との間の通信が可能になる。上で説明されたように、中心サーバ120は、複数のコンポーネント、ブレード、または、近隣ブロードキャスト受信機142、138から受信されたサイティングメッセージとデータとを処理するための他のモジュールを含み得る。さらなる実施形態は、中心サーバ120と、ネットワーク運用センター132のようなモバイルデバイスネットワークコンポーネントのいずれかとの間に直接の接続(図示せず)を提供して、近隣ブロードキャスト受信機142、138および中心サーバ120へ、より直接的に接続できる。
[0078] 通信システム100はまた、自宅または職場のパーソナルコンピュータのようなコンピューティング端末124を含んでよく、ユーザはこれを通じて、インターネット103を介して中心サーバ120と通信し得る。そのような端末124は、親、警察、消防、主治医、および他の認証された機関などのユーザが、デバイス(例えば、ワイヤレス識別情報送信機110)を登録し、中心サーバ120上の追跡記録にアクセスし、および/または、中心サーバ120が特定のワイヤレス識別情報送信機110に対する探索を開始することを要求することを、可能にし得る。いくつかの実施形態では、ユーザは、そのような端末124を使用して、例えば、ウェブポータルおよび/または中心サーバ120と関連付けられるユーザアカウントにアクセスすることによって、ワイヤレス識別情報送信機110、近隣ブロードキャスト受信機142、138(例えば、中心サーバと関連付けられるクライアントソフトウェアを実行するように構成されるスマートフォン)、および/または識別情報送受信機(図示せず)を登録できる。同様に、業者のような第三者が、端末124を使用して、ワイヤレス識別情報送信機110、近隣ブロードキャスト受信機142、138(例えば、クライアントソフトウェアを実行しブロードキャストを中心サーバに中継するように構成される固定式の受信機)、および/または識別情報送受信機(図示せず)を登録できる。
[0079] ある場所の中での近隣ブロードキャスト受信機138、142の位置に基づいて、複数の近隣ブロードキャスト受信機138、142は、ワイヤレス識別情報送信機110のブロードキャストエリア内にあってよく、ブロードキャストメッセージを同時に受信できる。中心サーバ120は、近隣ブロードキャスト受信機138、142が、ワイヤレス識別情報送信機110からのブロードキャストメッセージの受信を示すサイティングメッセージを同時に(またはある時間期間内に)送信するときを検出できる。そのような同時のサイティングメッセージは、ブロードキャストの時点でワイヤレス識別情報送信機に関するより正確な近接情報を決定するために使用され得る。
[0080] 図2Aは、ワイヤレス識別情報送信機110(図2Aでは「WIT」と呼ばれる)、近隣ブロードキャスト受信機142、および中心サーバ120とにおいて実施するためのある実施形態の方法200を示す。ブロック201において、ワイヤレス識別情報送信機が起動し得る。言い換えると、ワイヤレス識別情報送信機は、休止状態、スリープ状態、休眠状態、または別様の非アクティブ化された状態から動作するように、活性化され、初期化され、また別様に構成され得る。様々な実施形態において、起動動作は、ユーザ入力(例えば、ボタンの押下)、ワイヤレス識別情報送信機へのバッテリの装着、または短距離ワイヤレス信号(例えば、アクティブ化信号)の受信に応答して、実行され得る。ブロック202において、ワイヤレス識別情報送信機110は、上で説明されたようなブロードキャストメッセージのような識別子を含むメッセージをブロードキャストできる。例えば、ワイヤレス識別情報送信機110は、本明細書で説明されるようなローリング識別子を含む、Bluetooth LEアドバタイズパケットをブロードキャストできる。これは、ワイヤレス識別情報送信機110内のマイクロコントローラが、識別子をブロードキャストする時間になったと決定し、適切なブロードキャストメッセージ(例えば、Bluetooth4.0プロトコルにおいてBluetooth LEデバイスに対して規定されるようなアドバタイズメントパケット)を構成し、そのパケットを短距離無線を介して送信することによって、ブロック202において達成され得る。
[0081] 様々な実施形態において、ワイヤレス識別情報送信機(すなわち、ブロードキャストメッセージ)によってブロードキャストされるメッセージは、ローリング識別子のような識別子セグメントを含み得る。様々な実施形態において、ブロードキャストメッセージはまた、タイプセグメントのような追加のセグメントを含み得る。タイプセグメントは、ワイヤレス識別情報送信機のタイプを示し得る。例えば、ワイヤレス識別情報送信機は、子供の安全のためのデバイス、犬の首輪、または店舗のセキュリティタグのような、様々な目的で販売され得る。ワイヤレス識別情報送信機は、意図される目的に基づいて、異なるタイプのセグメントを有し得る(例えば、子供の安全のためのデバイスに対して1つのコード、犬の首輪に対して第2のコードなど)。タイプセグメントは、不変であり製造業者によって設定され得るが、識別子の残りの部分は各デバイスに固有であってよく、以下で説明されるようにローリングしてよい。タイプセグメントはまた、例えば、ワイヤレス識別情報送信機が様々な目的または用途のためにリセットされたときなどに、ユーザによって変更され得る。
[0082] 他の実施形態では、ブロードキャストメッセージはまた、近隣ブロードキャスト受信機によって実施されるべき命令またはコマンドを有する1つまたは複数の不変のまたは動的なセグメントを含み得る。そのようなコマンドセグメントはまた、中心サーバまたは他のネットワークデバイスに指示するために伝えられ得る。コマンドセグメントは、タイプセグメントと同様に、設定されるものもしくは不変であってよく、または、1つまたは複数の近隣ブロードキャスト受信機からのペアリングまたはデータのような様々な条件に基づいて、時間とともに変化してよい。そのようなコマンド設定はまた、ワイヤレス識別情報送信機のユーザによって構成され得る。第2のまたは追加のセグメントはまた、ワイヤレス識別情報送信機の状態を示し得る。例えば、第2のセグメントは、残りの電力、またはバッテリが切れるまでの推定される残り時間を示し得る。近隣ブロードキャスト受信機または中心サーバは、この状態を解釈し、それに従って応答できる。
[0083] 図2Aに戻ると、ブロック204において、ワイヤレス識別情報送信機110はスリープモードに入り得る。例えば、識別子を有するブロードキャストメッセージをブロードキャストした後で、ワイヤレス識別情報送信機110は、所定の時間の期間継続し得る電力節減状態に入るように構成され得る。様々な実施形態において、ワイヤレス識別情報送信機110は、所定の時間の間スリープ状態になってよく、スリープ状態に決してならなくてよく、または、様々な入力に基づいて決定される変化する時間の間スリープ状態になってよい。ブロック206において、ワイヤレス識別情報送信機110は、例えば所定の期間が満了した後、スリープモードから起動できる。ブロック208において、ワイヤレス識別情報送信機110は、ローリング識別子アルゴリズムのようなあるアルゴリズムから、新たなデバイス識別子を生成できる。例えば、ワイヤレス識別情報送信機110は、以下で説明されるように、擬似ランダム関数またはストリーミング様暗号化アルゴリズム(例えば、AES−CTR)を使用して、ローリング識別子を生成できる。ワイヤレス識別情報送信機110は次いで、ブロック202に戻り再びブロードキャストできる。いくつかの実施形態では、ブロードキャストメッセージは、ワイヤレス識別情報送信機がメッセージを受信することが可能かどうかを示す、タイミング、カウンタ、カウントダウン、またはスケジューリング情報を含み得る。例えば、ブロードキャストメッセージは、ワイヤレス識別情報送信機がある規定された時間枠内に入来する構成メッセージを受け入れることを示し得る。様々な実施形態において、ブロック202〜208における動作は、識別情報送受信機(例えば、識別情報送信機と近隣ブロードキャスト受信機の両方として動作するように構成されるスマートフォン)によって実行され得る。
[0084] 上で言及されたように、ブロック208において使用されるアルゴリズム(またはローリング識別子アルゴリズム)は、ワイヤレス識別情報送信機110(例えば、媒体アクセス制御アドレス(MAC)またはBluetooth ID)の識別情報、復号鍵、および/またはローリング識別子を生成するために使用されるアルゴリズムのいずれも知らないデバイスまたはシステムにより予測または認識するのが非常に困難である、ローリング識別子を生成できる。以下で論じられるように、アルゴリズム(または復号アルゴリズム)または復号鍵によって構成されワイヤレス識別情報送信機110の識別情報を保持する中心サーバ120は、ローリング識別子を使用して、対応するアカウントまたはデバイス識別情報を決定できる。方法200は、一例として、起動およびブロードキャストの周期ごとに変化するローリング識別子を示すが、他の実施形態では、識別子は、1分に1回、1時間に1回などのように、より稀に変更されてよい。そのような実施形態では、ブロック208における新たな識別子を生成する動作は、指定された間隔のみで実行され得るので、他の起動のとき(すなわち、ブロック206)には、ワイヤレス識別情報送信機110はブロック202に戻り識別子をブロードキャストできる。ローリング識別子または他の符号化された識別子を生成するための様々なアルゴリズムが、上で参照によって組み込まれた関連する適用形態において論じられる。
[0085] 図2Bは、ワイヤレス識別情報送信機110(図2Bでは「WIT」と呼ばれる)が異なるパケットフォーマットのメッセージをブロードキャストするための、ある実施形態の方法250を示す。ブロック201において、ワイヤレス識別情報送信機が起動し得る。ブロック252において、ワイヤレス識別情報送信機110が、第1のパケットフォーマット(例えば、第1の構造)を使用して、上で説明されたようなブロードキャストメッセージのような識別子を含むパケット(すなわち、ブロードキャストメッセージ)をフォーマットできる。例えば、ワイヤレス識別情報送信機110は、あるBluetooth規格に基づいて不明瞭にされたデバイス識別子を含む、パケットまたはメッセージをフォーマットできる。第1のパケットフォーマットは、特定の規格、または近隣ブロードキャスト受信機上で実行されるソフトウェア実装形態(例えば、ソフトウェア、ファームウェア、オペレーティングシステムルーチンなど)と関連付けられる、フォーマット、パターン、または他の構造であり得る。例えば、第1のパケットフォーマットは、人気のあるスマートフォン上で実行される信号監視サービス(すなわち、第1のソフトウェア実装形態)によく適しており、最適化されており、またはそうでなければ簡単に受信され処理される、アドバタイズパケット内のデータの組立ての方式であり得る。いくつかの実施形態では、パケットは、第1のパケットフォーマットでフォーマットされるとき、ローリング識別子または不明瞭にされた識別子を含むことがあり、または含まないことがある。別の実施形態では、パケットは、第1のパケットフォーマットでフォーマットされるとき、サービスUUID(例えば、Bluetooth SIGにより規定される普遍的な固有の識別子)を含まないことがあり、または代替的に、長さが0のサービスUUIDを含むことがある。
[0086] ブロック254において、ワイヤレス識別情報送信機は、Bluetooth送受信機を使用してフォーマットされたBluetoothアドバタイズパケットを送信することなどによって、フォーマットされたパケットをブロードキャストできる。上で説明されたように、ブロック204において、ワイヤレス識別情報送信機110は、スリープモードに入ることができ、事前に定義された期間(例えば、50ms、60msなど)の経過の後などに、ブロック206においてスリープモードから起動できる。
[0087] ブロック256において、ワイヤレス識別情報送信機は、第2のパケットフォーマットを使用して識別子を含むパケットをフォーマットできる。ブロック256における動作は、第2のパケットフォーマットが第1のパケットフォーマットとはデータのパターン、構造、または構成において異なることがあり、近隣ブロードキャスト受信機上で実行される異なるソフトウェア実装形態と関連付けられ得ることを除き、ブロック252における動作と同様であり得る。例えば、第2のパケットフォーマットは、第1のパケットフォーマットと関連付けられる第1のソフトウェア実装形態とは異なる近隣ブロードキャスト受信機(例えば、スマートフォンである近隣ブロードキャスト受信機)上で実行される第2のソフトウェア実装形態(例えば、ファームウェア、アプリケーション、命令セット、ルーチン、サービス、プロセス、スレッド、オペレーティングシステムなど)と関連付けられ得る。いくつかの実施形態では、パケットは、第2のパケットフォーマットでフォーマットされるとき、サービスUUID(または長さの0よりも大きいサービスUUID)を含み得る。
[0088] ワイヤレス識別情報送信機110は、ブロック254においてフォーマットされたメッセージをブロードキャストできる。上で説明されたように、任意選択のブロック(optional block)204’において、ワイヤレス識別情報送信機110は、第2の期間のスリープまたはビジーサイクルを実行することのような、スリープモードに入ることができ、別の事前に定義された期間(例えば、50ms、60msなど)の経過の後などに、任意選択のブロック206’においてスリープモードから起動できる。ブロック204および任意選択のブロック204’におけるスリープ動作と関連付けられる時間期間は、同じであってよく、または異なる時間の期間であってよく、任意選択のブロック204、204’および206、206’のスリープ動作および起動動作は、近接ブロードキャスト受信機の能力に対応し得る様々な間隔で異なるパケット構造/タイプのメッセージをワイヤレス識別情報送信機110にブロードキャストさせるように構成され得る。例えば、特定のスマートフォンである近隣ブロードキャスト受信機のルーチン、アプリケーション、またはオペレーティングシステム動作の既知の処理速度に基づいて、ワイヤレス識別情報送信機110は、異なるパケットの受信と効率的な処理とを確実にするために、第1のパケットフォーマットの第1のメッセージをブロードキャストすることと第2のパケットフォーマットの第2のメッセージをブロードキャストすることとの間において、ある数のミリ秒待機できる。言い換えると、ワイヤレス識別情報送信機110は、第1のパケットフォーマットのメッセージをブロードキャストすることと第2のパケットフォーマットのメッセージをブロードキャストすることとの間において第1の遅延を利用し、さらには、第1のパケットフォーマットのメッセージを再びブロードキャストすることに戻るまでに第2の遅延を利用できる。ブロック208において、ワイヤレス識別情報送信機110は、アルゴリズムから新たなデバイス識別子(例えば、ローリング識別子)を生成でき、次いで、再び第1のパケットフォーマットを使用してブロードキャストするためにブロック252に戻ることができる。
[0089] いくつかの実施形態では、ワイヤレス識別情報送信機110は、様々なデバイスのファームウェアまたはオペレーティングシステム上で改善された性能を得るために、複数の異なるパケットタイプまたはパケットフォーマットのメッセージを送信するように構成され得る。例えば、ワイヤレス識別情報送信機は、iPhone(またはiOsデバイス)によく適している(または最適化されている)ことが知られている第1のパケットフォーマットでフォーマットされた第1のメッセージと、Android(またはAndroidデバイス)によく適している(または最適化されている)ことが知られている第2のパケットフォーマットでフォーマットされた第2のメッセージと、センサデータおよびローリング識別子のような、ワイヤレス識別情報送信機に関連するデータの通信をサポートできる第3のパケットフォーマットでフォーマットされた第3のメッセージとをブロードキャストするように構成され得る。
[0090] 上で言及されたように、ローリング識別子および他の情報は、標準的なBluetooth LEメッセージのパケットフォーマット(またはパケットタイプ)のペイロード内で通信され得る。図3Aは、ある実施形態のローリング識別子を実装する、例示的なBluetooth LEメッセージ構造を示す。ある実施形態によるブロードキャストメッセージ300は、普通のBluetooth LEメッセージのアドレスおよびヘッダと、データフィールド302から308とを含んでよく、Bluetoothメッセージのペイロード部分またはアドバタイズされるデータフィールド310内にデバイス情報とローリング識別子とを含んでよい。例えば、ブロードキャストメッセージ300は、標準的なアクセスアドレスデータフィールド302を含んでよく、このフィールドは、送信されているBluetoothメッセージのタイプ、この場合は接続不可能アドバタイズイベントを識別する、4バイトの情報であり得る。ブロードキャストメッセージ300中のデータの次のブロックは、アドバタイズされるパケットデータユニットのタイプ304(例えば、1バイトのデータ)であってよく、これに、アドバタイズされるパケットデータユニットのヘッダ306が続いてよく、今度はこれに、アドバタイズされるパケットデータユニットのアドレス308が続き、これは6バイトのデータであり得る。標準的なBluetoothのデータフィールド302から308は基本的に、メッセージを接続不可能アドバタイズイベントとして識別し、これに、固有のローリング識別子とともに送信されている任意のデータが含まれるアドバタイズされたデータフィールド310が続く。
[0091] ブロードキャストメッセージ300のアドバタイズされたデータフィールド310は、2つのデータフィールド320および322(または部分)に、ブロードキャスト情報とローリング識別子とを組み込むことができる。Bluetooth LEパケットのタイプをアドバタイズする際、任意のタイプのアドバタイズデータが含まれてよく、ブロードキャストメッセージ300内にローリング識別子と他のデータとを含めるための柔軟性を提供する。図3Aに示される例示的な実施形態では、サービスのuniversally unique user identifier(UUID)データフィールド320が、図3Aに示されるようなバッテリ状態および温度のような、センサデータまたは他のデータをワイヤレス識別情報送信機から運ぶために使用され得る。例えば、データフィールド320は、メッセージのこの部分が17バイトの長さであることを示す、図3Aに示される11HEXのような、データフィールドの長さを示す標準的なBluetoothデータフィールド330を含んでよく、これに、後続の情報のバイトにおいて来る情報のタイプを示すコードを提供するデータタイプフィールド332が続き得る。
[0092] これらのヘッダフィールド330、332に続くものは、データフィールド334であり得る。このデータフィールド334は、コードの意図される意味を取得するためのテーブル参照鍵として使用され得る、普遍的に固有な値の形態のコードを含み得る。例えば、世界的に固有な識別子番号(すなわち、UUID)が、UUIDを作成するための手順に従って生成されてよく、これは次いで、対応するデータベースにおいて特定の意味、値、警告、および/またはコマンドにリンクされてよく、中心サーバによって保持されてよい。従って、有効なUUIDは、Bluetoothプロトコルと適合するが、デバイスの通常のアドレスまたは識別子として機能するのではなく特定のメッセージまたは条件を識別する、サービスUUIDフィールド334に含まれ得る。例えば、UUIDは、データベースにおいて、特定のバッテリレベルおよび温度の値または範囲とリンクされ得る。このようにして、ブロードキャストメッセージ300の標準的なUUID部分は、標準的なBluetoothプロトコルから逸脱することなく、多数の意味、値、警告、またはコマンドを伝えるために使用され得る。サービスUUIDデータフィールド334に未加工のデータまたはセンサデータを含めることも可能であり得るが、そのような未加工のデータは、このデータが普遍的に固有の識別子を表すというBluetoothプロトコルに適合しないであろう。
[0093] UUIDをデータテーブルとランダムな方式でリンクする代わりに、UUIDの標準的なフォーマットが、生成されるUUIDの範囲内にデータフィールドを提供するために使用され得る。例えば、図3Aは、サービスUUIDデータフィールド334が22ビットのUUIDプレフィックス340と12バイトのサフィックス346とを含み、UUIDプレフィックス340とサフィックス346との間に、送信されるべき3バイトのデータ、例えば、バッテリレベル値データフィールド342および温度値データフィールド344が含まれる、実施形態を示す。この例では、同じUUIDプレフィックス値340と同じUUIDサフィックス値とを含む、1024個の異なるUUIDが生成され得る。このデータ構造は次いで、データを搬送するためのプレフィックスとサフィックスとの間に3バイトのデータ、例えば、ワイヤレス識別情報送信機のバッテリレベルを示す(indicated)ための2バイト(データフィールド342)と、測定された温度を示すための1バイト(データフィールド344)とを提供する。このデータ構造は例として提供され、多くの他のデータ構造が使用されてよく、異なるタイプの情報がこの方式で伝えられてよい(または情報が伝えられなくてよい)。
[0094] サービスUUIDデータフィールド320に続くのは、ローリング識別子が含まれ得るデータフィールド322である。例えば、この識別子データフィールド322は、パケット内のデータのバイトの数を識別する、バイトのパケット長335を含み得る。このデータフィールドに、パケットタイプフィールド336が続いてよく、これは、後に続く情報のタイプ、この場合はデータフィールドが製造業者固有であることを示すコードを含む。これらのヘッダデータフィールドに、ワイヤレス識別情報送信機の製造業者またはタイプ、システムのサービス提供者などを識別するために使用され得る2バイトのデータ(例えば)を含む、製造業者IDフィールド337が続き得る。
[0095] ローリング識別子は、メッセージ300の最後のデータフィールド338に含まれ得る。最後のデータフィールド338に含まれるローリング識別子を生成するための様々な方法は、この文書へと参照によって組み込まれる関連する適用形態において説明される。例えば、このデータフィールド338は、ノンス(nonce)(例えば、タイマー、ノンス、またはカウンタ)と、ノンス、ワイヤレス識別情報送信機および中心サーバにのみ知られている鍵、ならびにワイヤレス識別情報送信機の固有の(例えば、MACアドレス)識別子を使用して生成される不明瞭にされた「ブロブ(blob)」とを含み得る。上で論じられた別の例として、このデータフィールド338は、カウンタ/時計/ノンス、ワイヤレス識別情報送信機および中心サーバにのみ知られているセキュリティ鍵、およびワイヤレス識別情報送信機の固有の(例えば、MACアドレス)識別子を使用して生成された、単一の「ブロブ」を含み得る。
[0096] 様々な実施形態において、最後のデータフィールド322に含まれるローリング識別子の長さは、データ(すなわち、データフィールド334)を通信するためのサービスUUIDデータフィールド320に含まれるデータのバイトの数を減らすことによって、増やされ得る。
[0097] 図3Bは、ある実施形態のローリング識別子を実装する、別の例示的なBluetooth LEメッセージ構造を示す。ある実施形態によるブロードキャストメッセージ350は、普通のBluetooth LEメッセージのアドレスおよびヘッダと、データフィールド302から308とを含んでよく、Bluetoothメッセージのペイロード部分またはアドバタイズされるデータフィールド310内にデバイス情報とローリング識別子とを含んでよい。例えば、ブロードキャストメッセージ350は、標準的なアクセスアドレスデータフィールド302を含んでよく、これは、送信されているBluetoothメッセージのタイプ、この場合は接続不可能アドバタイズイベントを識別する、4バイトの情報であり得る。ブロードキャストメッセージ350中のデータの次のブロックは、アドバタイズされるパケットデータユニットのタイプ304(例えば、1バイトのデータ)であってよく、これに、アドバタイズされるパケットデータユニットのヘッダ306が続いてよく、今度はこれに、アドバタイズされるパケットデータユニットのアドレス308が続き、これは6バイトのデータであり得る。標準的なBluetoothのデータフィールド302から308は基本的に、メッセージを接続不可能アドバタイズイベントとして識別し、これに、固有のローリング識別子とともに送信されている任意のデータが含まれるアドバタイズされたデータフィールド310が続く。
[0098] ブロードキャストされたメッセージ350のアドバタイズされたデータフィールド310は、2つのデータフィールド352および354(またはデータ部分)に、ブロードキャスト情報とローリング識別子とを組み込むことができる。Bluetooth LEパケットのタイプをアドバタイズする際、任意のタイプのアドバタイズデータが含まれてよく、ブロードキャストメッセージ350内にローリング識別子と他のデータとを含めるための柔軟性を提供する。メッセージ350は、サービスのuniversally unique user identifier(UUID)データフィールド352を含み得る。例えば、データフィールド352は、データフィールドの長さを示す標準的なBluetoothデータフィールド356を含んでよく、これに、後続の情報のバイトにおいて来る情報のタイプを示すコードを提供するデータタイプフィールド358が続き得る。これらのヘッダフィールド356、358に続くのは、コードの意図される意味を取得(obtained)するためのテーブル参照鍵として使用され得る、普遍的に固有な値(すなわち、UUID)の形態のコードを伴う部分360であり得る。
[0099] サービスUUIDデータフィールド352に続くのは、ローリング識別子が含まれ得るデータフィールド354(すなわち、製造業者データ)である。例えば、このデータフィールド354は、パケット内のデータのバイトの数を識別する、バイトのパケット長362を含み得る。このデータフィールドにパケットタイプフィールド364が続いてよく、これは後に続く情報のタイプを示すコードを含む。これらのヘッダデータフィールドに、ワイヤレス識別情報送信機の製造業者またはタイプ、システムのサービス提供者などを識別するために使用され得る2バイトのデータ(例えば)を含む、製造業者IDフィールド366が続き得る。ローリング識別子は、ローリング識別子情報とともにバッテリデータと、温度データと、他のセンサデータとを含み得る、メッセージ350の最後の部分368に含まれ得る。
[0100] 図4Aは、ある実施形態のローリング識別子を実装する、別の例示的なBluetooth LEメッセージ構造を示す。ある実施形態によるブロードキャストメッセージ400は、普通のBluetooth LEメッセージのアドレスおよびヘッダと、データフィールド302から308とを含んでよく、Bluetoothメッセージのペイロード部分またはアドバタイズされるデータフィールド310内にデバイス情報とローリング識別子とを含んでよい。例えば、ブロードキャストメッセージ400は、標準的なアクセスアドレスデータフィールド302を含んでよく、これは、送信されているBluetoothメッセージのタイプ、この場合は接続不可能アドバタイズイベントを識別する、4バイトの情報であり得る。
[0101] ブロードキャストメッセージ400中のデータの次のブロックは、アドバタイズされるパケットデータユニットのタイプ304(例えば、1バイトのデータ)であってよく、これに、アドバタイズされるパケットデータユニットのヘッダ306が続いてよく、今度はこれに、アドバタイズされるパケットデータユニットのアドレス308が続き、これは6バイトのデータであり得る。この実施形態では、標準的なBluetoothのデータフィールド302から308は基本的に、メッセージを接続不可能アドバタイズイベントとして識別し、これに、固有のローリング識別子とともに送信されている任意のデータが含まれるアドバタイズされたデータフィールド310が続く。
[0102] ブロードキャストメッセージ400のアドバタイズされたデータフィールド310は、2つのデータフィールド402および404(または部分)に、ブロードキャスト情報とローリング識別子とを組み込むことができる。Bluetooth LEパケットのタイプをアドバタイズする際、任意のタイプのアドバタイズデータが含まれてよく、ブロードキャストメッセージ400内にローリング識別子と他のデータとを含めるための柔軟性を提供する。メッセージ400は、サービスの普遍的に固有のユーザ識別子(UUID)データフィールド402を含み得る。例えば、データフィールド402は、データフィールドの長さを示す標準的なBluetoothデータフィールド404を含んでよく、これに、後続の情報のバイトにおいて来る情報のタイプを示すコードを提供するデータタイプフィールド406が続き得る。これらのヘッダフィールド404、406に続くのは、コードの意図される意味を取得(obtained)するためのテーブル参照鍵として使用され得る、普遍的に固有な値(すなわち、UUID)の形態のコードを伴うデータフィールド部分408であり得る。
[0103] サービスUUIDデータフィールド402に続くのは、ローリング識別子が含まれ得る別のデータフィールド404(すなわち、製造業者データ)であり得る。例えば、このデータフィールド404は、パケット内のデータのバイトの数を識別する、バイトのパケット長410を含み得る。このデータフィールドにパケットタイプフィールド412が続いてよく、これは後に続く情報のタイプを示すコードを含む。これらのヘッダデータフィールドに、ワイヤレス識別情報送信機の製造業者またはタイプ、システムのサービス提供者などを識別するために使用され得る2バイトのデータ(例えば)を含む、製造業者IDフィールド414が続き得る。ローリング識別子は、ローリング識別子情報とともにバッテリデータと、温度データと、他のセンサデータとを含み得る、メッセージ400の最後の部分416に含まれ得る。
[0104] 図4Bは、ある実施形態のローリング識別子を実装する、別の例示的なBluetooth LEメッセージ構造を示す。ある実施形態によるブロードキャストメッセージ450は、普通のBluetooth LEメッセージのアドレスおよびヘッダと、データフィールド302から308とを含んでよく、Bluetoothメッセージのペイロード部分またはアドバタイズされるデータフィールド310内にデバイス情報とローリング識別子とを含んでよい。例えば、ブロードキャストメッセージ450は、標準的なアクセスアドレスデータフィールド302を含んでよく、これは、送信されているBluetoothメッセージのタイプ、この場合は接続不可能アドバタイズイベントを識別する、4バイトの情報であり得る。ブロードキャストメッセージ450中のデータの次のブロックは、アドバタイズされるパケットデータユニットのタイプ304(例えば、1バイトのデータ)であってよく、これに、アドバタイズされるパケットデータユニットのヘッダ306が続いてよく、今度はこれに、アドバタイズされるパケットデータユニットのアドレス308が続き、これは6バイトのデータであり得る。この実施形態では、標準的なBluetoothのデータフィールド302から308は基本的に、メッセージを接続不可能アドバタイズイベントとして識別し、これに、固有のローリング識別子とともに送信されている任意のデータが含まれ得るアドバタイズされたデータフィールド310が続く。
[0105] ブロードキャストメッセージ450のアドバタイズされたデータフィールド310は、単一のデータ部分452に、ブロードキャスト情報とローリング識別子とを組み込むことができる。データ部分452(すなわち、製造業者データ)は、パケット内のデータのバイトの数を識別する、バイトのパケット長454を含み得る。このデータフィールドにパケットタイプフィールド456が続いてよく、これは後に続く情報のタイプを示すコードを含む。これらのヘッダデータフィールドに、例えば、ワイヤレス識別情報送信機の製造業者またはタイプ、システムのサービス提供者などを識別するために使用され得る2バイトのデータのような、製造業者IDフィールド458が続き得る。ローリング識別子は、ローリング識別子情報とともにバッテリデータと、温度データと、他のセンサデータとを含み得る、メッセージ450の最後の部分460に含まれ得る。
[0106] 図5は、モバイル近隣ブロードキャスト受信機138内の様々なモジュールの図500を示す。上で説明されたように、近隣ブロードキャスト受信機は、建物の周りに配置された専用デバイスなどの固定式の近隣ブロードキャスト受信機と、ワイヤレス識別情報送信機110からのブロードキャストメッセージを受信し長距離通信を介して(例えば、WiFiまたはセルラーネットワークを介して)中心サーバ120へとインターネット103を通じてサイティングメッセージを送信するための動作を実行するように構成されるモバイルデバイスのような、モバイル近隣ブロードキャスト受信機138とを含み得る。様々なモジュールおよびコンポーネントが、モバイル近隣ブロードキャスト受信機138内の要素に関して以下で説明されるが、様々な実施形態では、固定式の近隣ブロードキャスト受信機のような任意の近隣ブロードキャスト受信機が、同様のモジュールおよび/またはコンポーネントを含み得る。
[0107] モバイル近隣ブロードキャスト受信機138は、近接したワイヤレス識別情報送信機110からの受信されたブロードキャストメッセージを処理するために利用される、ソフトウェア、命令、ルーチン、アプリケーション、動作、または他の回路であり得る、コアクライアントモジュール115を含み得る。コアクライアントモジュール115はまた、近隣ブロードキャスト受信機142、138と中心サーバ120との間の通信を処理でき、例えば、サイティングメッセージを送信し、中心サーバ120から返信メッセージを受信する。例えば、コアクライアントモジュール115は、サイティングメッセージのアップロードまたは送信などの動作を、ユーザからの対話を伴わずに実行する、バックグラウンドサービスとして動作し得る。
[0108] コアクライアントモジュール115は、ブロードキャストメッセージおよび/もしくはサイティングメッセージに関する、アプリケーションプログラミングインターフェースデータ、コード、または他のコマンドに対応する、APIコンポーネント506を含み得る。例えば、APIコンポーネント506は、ワイヤレス識別情報送信機110から受信されたBluetooth LEアドバタイズパケットを聴取するとき、近隣ブロードキャスト受信機によって利用され得る。別の例として、APIコンポーネント506は、モバイル近隣ブロードキャスト受信機138を登録して、ワイヤレス識別情報送信機110に対応する通知、警告、または他の通信を受信するために利用され得る。
[0109] コアクライアントモジュール115はまた、受信されたブロードキャストメッセージを処理するための、認証システムコンポーネント508を含み得る。例えば、モバイル近隣ブロードキャスト受信機138は、認証要求のためのoAuthと、承認された通信相手のためのxAuthとをサポートできる。
[0110] コアクライアントモジュール115はまた、無線固有サイティング受信機コンポーネント510(例えば、Bluetooth LE、LTE−D、WiFi、および他の通信を処理するためのコンポーネント)と、運用、管理、および保守(またはOA&M)モジュール512と、ワイヤレス識別情報送信機ネットワークマネージャコンポーネント514と、記憶された先読み識別子に関するイベント登録コンポーネント516と、サイティングマネージャコンポーネント518とを含み得る。いくつかの実施形態では、イベント登録コンポーネント516は、中心サーバ120からダウンロードされ特定のワイヤレス識別情報送信機110に対応する多数のローリング識別子、例えば、ある時間枠の間にワイヤレス識別情報送信機110によってブロードキャストされるあり得るローリング識別子と一致し得るローリング識別子のセットを、記憶できる。
[0111] 多くの現代のモバイルデバイスのように、モバイル近隣ブロードキャスト受信機138は、第三者のアプリケーション(または「アプリ」)を実行するように構成され得るので、様々な第三者(例えば、業者)によって提供されるアプリケーションに関するソフトウェア命令とルーチンとを、実行し、管理し、別様に実施できる、第三者のアプリケーションモジュール116を含み得る。例えば、第三者のアプリケーションモジュール116は、様々な第三者のアプリケーションによって使用されるべき様々なデータをコアクライアントモジュール115から受信できる。例示の目的で、中心サーバ120に登録された百貨店に関連する第三者のアプリケーションは、モバイル近隣ブロードキャスト受信機138のユーザがその百貨店(例えば、店舗のジオフェンス)に入ったとき、そこにとどまったとき、および/またはそこから離れたときに、コアクライアントモジュール115から通知を受信するように構成され得る。いくつかの実施形態では、最適化の目的で、第三者のアプリケーションモジュール116を介して実行されるアプリケーションまたはアプリは、特定のワイヤレス識別情報送信機が近隣にあるとき、または代替的には近隣から離れたときに、コアクライアントモジュール115から受信された通知を受信するように登録し、またはそうでなければ受信された通知に構成され得る。例えば、アプリケーションは、前もって、特定のワイヤレス識別情報送信機が近隣に入ったか、近隣にとどまっている(例えば、近くで止まっており動いていない)か、または近隣から離れたかを示すイベント通知を受信するために、コアクライアントモジュール115に登録できる。
[0112] モバイル近隣ブロードキャスト受信機138はまた、短距離信号受信機回路のような、様々な動作を実行し回路を管理するための、オペレーティングシステムおよびプラットフォームモジュール520を含み得る。具体的には、オペレーティングシステムおよびプラットフォームモジュール520は、Bluetooth LEプロトコルを利用する通信を処理するためのBluetooth Low Energyモジュール524と、様々なセルラーワイヤレスネットワークおよび同様の長距離ワイヤレスネットワーク(例えば、LTE−Dなど)に対応する通信を処理するためのセルラーネットワークモジュール526とを含み得る。
[0113] いくつかの実施形態では、オペレーティングシステムおよびプラットフォームモジュール520は、本明細書で説明されるような第1のタイプおよび第2のタイプのBluetoothアドバタイズパケットのような、異なるタイプのパケットの受信を監視するための、切替えモジュール550を含み得る。切替えモジュール550は、特定のタイプのデータパケットが受信されるときにサードパーティのアプリケーションモジュール116および/またはコアクライアントモジュール115に示すことなどによって、近隣ブロードキャスト受信機138内の様々なモジュールを示し、移し、および/または通知するように構成され得る。
[0114] オペレーティングシステムおよびプラットフォーム520はまた、時間を記録しタイムスタンプデータを生成し得る時間サービスコンポーネント528と、低精度の位置データまたは代替的にはより正確なGPS(またはA−GPS)位置データを保持し得る位置サービスコンポーネント530と、記憶コンポーネント532と、WiFiまたは他のワイヤレスネットワークを介した通信を可能にするためのワイヤレスワイドエリアネットワーク/ワイヤレスローカルエリアネットワークコンポーネント522とを含み得る。
[0115] いくつかの実施形態では、コアクライアントモジュール115は、ワイヤレス識別情報送信機の識別子(例えば、関心のあるリスト上の全ての送信機のローリング識別子、ユーザにより所有される全ての送信機の識別子など)のセットを中心サーバから要求できる。そのようなセットは、現在使用されておりある時間の期間使用されることが予想される、ワイヤレス識別情報送信機に対応し得る。
[0116] 図6は、固定式の近隣ブロードキャスト受信機またはモバイル近隣ブロードキャスト受信機のような近隣ブロードキャスト受信機上で実施され得る、ある実施形態の方法600を示す。決定ブロック602において、近隣ブロードキャスト受信機は、ブロードキャストメッセージが受信されるかどうかを決定できる。例えば、近隣ブロードキャスト受信機は、ブロードキャストアドバタイズメントパケットまたはワイヤレス識別情報送信機によるペアリングの試みを聴取し始めることができる。近隣ブロードキャスト受信機は、継続的に監視モードであってよく、または、中心サーバから受信された警告(または探索アクティブ化メッセージ)に応答して、特定の識別子の聴取を始めることができる。ペアリングが行われる実施形態では、近隣ブロードキャスト受信機が、ワイヤレス識別情報送信機との以前のペアリングにおいて保存された鍵を使用することによって、または、中心サーバから受信される鍵を使用することによって、鍵を使用することなく任意のワイヤレス識別情報送信機とペアリングするように設定される場合、ペアリングは自動的に確立され得る。近隣ブロードキャスト受信機がブロードキャストメッセージを受信しない場合(すなわち、決定ブロック602=「いいえ」)、近隣ブロードキャスト受信機は、決定ブロック602における動作を継続できる。
[0117] 近隣ブロードキャスト受信機がブロードキャストメッセージを受信する場合(すなわち、決定ブロック602=「はい」)、ブロック604において、近隣ブロードキャスト受信機は、受信されたブロードキャストメッセージおよび他の関連するデータからの情報に基づいて、サイティングメッセージを生成できる。具体的には、サイティングメッセージは、ローリング識別子(すなわち、符号化されたデバイス識別子)、MACアドレス、または、特定のワイヤレス識別情報送信機を識別するために使用され得る他の固有のコードのような、受信されたブロードキャストメッセージを送信したワイヤレス識別情報送信機に固有の識別子を含み得る。代替的な実施形態では、ワイヤレス識別情報送信機の識別子は、ペアリングプロセスの一部として受信され得る。
[0118] サイティングメッセージに含まれ得る他の関連するデータは、近隣ブロードキャスト受信機がブロードキャストメッセージを受信した時間、位置情報、近隣ブロードキャスト受信機の識別情報、関連するサービス(例えば、関連付けられる業者)、および信号強度情報のような、ブロードキャストメッセージの受信に関する様々な情報を含み得る。言い換えると、近隣ブロードキャスト受信機は、現在の状態についてのデータ(例えば、タイムスタンプ、GPS座標、最も近い基地局のセルIDなど)を、ブロードキャストメッセージおよび/またはワイヤレス識別情報送信機の識別子と関連付けることができる。このデータは、各識別子に対応するサイティングが発生したときからのタイムスタンプおよびGPS座標と関連付けられる1つまたは複数の識別子を伴うアレイのような、様々なタイプのデータ構造のいずれかに記憶され得る。いくつかの実施形態では、サイティングメッセージは、近隣ブロードキャスト受信機の識別情報を確認するために中心サーバによって使用され得る、デジタル証明書またはコードのような、認証データを含み得る。例えば、サイティングメッセージのメタデータ内で、近隣ブロードキャスト受信機は、近隣ブロードキャスト受信機および中心サーバにのみ知られている特別なハッシュコードを含み得る。
[0119] ブロック606において、近隣ブロードキャスト受信機は、例えば、図1を参照して上で論じられたようなセルラーネットワーク(例えば、LTE、3G、または4Gネットワーク)または他のネットワークおよびインターネットを介して、サイティングメッセージを中心サーバに送信できる。サイティングメッセージを送信することによって接触イベントを報告すると、近隣ブロードキャスト受信機は、決定ブロック602における動作の実行に直ちに戻り、ワイヤレス識別情報送信機からのさらなるブロードキャストを待機できる。これにより、近隣ブロードキャスト受信機は、中心サーバに接触イベントを継続的に報告することが可能になる。
[0120] 図7Aは、モバイル近隣ブロードキャスト受信機が、決定されたパケットフォーマット(またはパケットタイプ)に基づいてワイヤレス識別情報送信機の識別子を中継するためのある実施形態の方法700を示す。ブロック702において、近隣ブロードキャスト受信機は、近隣の範囲内のワイヤレス識別情報送信機によって送信されるBluetooth LEブロードキャストメッセージのような、パケットを受信できる。決定ブロック706において、近隣ブロードキャスト受信機は、受信されたパケットがワイヤレス識別情報送信機と関連付けられるパケットフォーマットであるかどうかを決定できる。例えば、近隣ブロードキャスト受信機は、図3A〜図4Bを参照して上で説明されたパケット構造のようなワイヤレス識別情報送信機に関するソフトウェア実装形態(例えば、ファームウェア、アプリケーション、命令セット、ルーチン、サービス、プロセス、スレッド、オペレーティングシステムなど)に対応する既知のまたは別様に事前に定義されたパターンもしくは構造と受信されたメッセージの構造が一致するかどうかを識別するために、その構造を評価できる。受信されたパケットがワイヤレス識別情報送信機と関連付けられるパケットフォーマットではないと近隣ブロードキャスト受信機が決定する場合(すなわち、決定ブロック706=「NO」)、ブロック704において、近隣ブロードキャスト受信機は、デフォルトのファームウェア、アプリケーション、または通常のBluetooth LEメッセージと関連付けられるサービスなどによって、受信されたパケットを普通に処理でき、ブロック702の動作を続けることができる。
[0121] 受信されたパケットがワイヤレス識別情報送信機と関連付けられるパケットフォーマットであると近隣ブロードキャスト受信機が決定する場合(すなわち、決定ブロック706=「Yes」)、ブロック604’において、近隣ブロードキャスト受信機は、図6のブロック604の動作を参照して上で説明されたように、受信されたブロードキャストパケットからの情報と他の関連するデータとに基づいてサイティングメッセージを生成できる。ブロック606において、近隣ブロードキャスト受信機は、サイティングメッセージを中心サーバに送信できる。
[0122] 図8は、ワイヤレス識別情報送信機への近接に基づいてコンテンツを提供するための、ある実施形態の方法800を示す。近隣ブロードキャスト受信機は、ブロック802において、識別コードおよび/または第2のセグメントを含むワイヤレス識別情報送信機(図8では「WIT」と呼ばれる)からのブロードキャストメッセージを受信できる。近隣ブロードキャスト受信機は、決定ブロック805において、識別コードおよび/または第2のセグメントと関連付けられる動作がローカルに(例えば、近隣ブロードキャスト受信機のメモリに)記憶されるかどうかを決定できる。関連する動作がローカルで発見される場合(すなわち、決定ブロック805=はい)、ブロック808において、動作は近隣ブロードキャスト受信機によって実行され得る。
[0123] 関連する動作がローカルで発見されない場合(すなわち、決定ブロック805=いいえ)、近隣ブロードキャスト受信機は、ブロック810において、識別子および/または第2のセグメントを伴うサイティングメッセージを中心サーバに送信できる。いくつかの実施形態では、近隣ブロードキャスト受信機は、ユーザデバイスのような別のデバイスにメッセージを送信できる。近隣ブロードキャスト受信機は、ブロック812において、命令メッセージを受信できる。この命令は、識別子および/または第2のセグメントを伴うサイティングメッセージに応答して、中心サーバまたは他のデバイスによって送信され得る。ブロック814において、近隣ブロードキャスト受信機は、受信された命令メッセージに基づいて動作を実行でき、例えば、ウェブページまたは他のオンラインリソースに行くことによってコンテンツにアクセスできる。代替的な実施形態では、近隣ブロードキャスト受信機は、決定ブロック805を飛ばして、ブロック810においてサイティングメッセージを送信することとローカルに記憶された動作の実行を試みることとのいずれかに自動的に進むことができる。
[0124] 近接に基づくコンテンツ公開システムは、広範な活動のために使用され得る。例えば、ティーンエイジャーは、ワイヤレス識別情報送信機を持ち運ぶことがあり、彼らはそのワイヤレス識別情報送信機をソーシャルネットワーキングページ(例えば、Facebook(登録商標))に向ける。彼らが友人の近くにいる場合、近隣ブロードキャスト受信機(すなわち、モバイル近隣ブロードキャスト受信機として動作するように構成される携帯電話)でそのページが直ちにアクセスされ得る。不動産仲介業者は、ある家のためのウェブページを準備し、その家の近くを運転する誰もがその情報にアクセスできるように、そのウェブページを指すワイヤレス識別情報送信機をその家の看板に付加できる。店舗は、クーポンへのリンク、消費者の報告、または追加の栄養情報のような動的な表示を提供するために、製品とともにワイヤレス識別情報送信機を含み得る。行方不明の犬が首輪にワイヤレス識別情報送信機を有する場合、首輪を入手するために犬と格闘しようとする代わりに、近隣ブロードキャスト受信機が単にワイヤレス識別情報送信機にアクセスして、メッセージまたは呼を所有者に送信できる。
[0125] 様々な特徴および代替的な動作により、システムは、柔軟で拡張可能な機能を有することが可能になり得る。行われる動作は、時間とともに近隣ブロードキャスト受信機において更新され得るアプリケーションによって制御されるので、機能は追加され得る。
[0126] 図9は、中心サーバ120内の様々なモジュールの図900を示す。様々なモジュールおよびコンポーネントが、中心サーバ120内のモジュール、コンポーネント、および/または要素の文脈で以下で説明される。しかしながら、様々な実施形態において、中心サーバ120は、個人のコンピューティングデバイス、サーバブレード、または、以下で説明される様々なモジュールおよび/もしくはコンポーネントと関連付けられる動作を実行できる他のユニットを含んでよく、またはそれらに接続されてよい。
[0127] 上で説明されたように、中心サーバ120は、ワイヤレス識別情報送信機に対応するデータを受信し、記憶し、別様に処理するように構成され得る。例えば、中心サーバ120は、近隣ブロードキャスト受信機142、モバイル近隣ブロードキャスト受信機138、第三者のシステム101、ならびに他のサポートシステムおよび/またはサービス102のような様々なデバイスと、インターネット103を介して通信を交換するように構成され得る。
[0128] 中心サーバ120は、データ、例えば、近隣ブロードキャスト受信機142、138、第三者のシステム101、または他のサポートシステムおよび/もしくはサービス102から受信されるデータを処理するための様々な動作を実行するためのいくつかのコンポーネント104〜109を含み得る。具体的には、中心サーバ120は、サイティングメッセージを処理し、警告または通知エンジンモジュールを実行し、アプリケーションプログラミングインターフェース(API)コマンドを処理し、中心サーバ120内の他のコンポーネントとデータを交換できる、コアコンポーネント108を含み得る。コアコンポーネント108は、短期間データと第三者固有のデータとを記憶するためのユニットを含み得る、データレイヤモジュール902を含み得る。コアコンポーネント108はまた、近隣ブロードキャスト受信機へ送信するための警告メッセージを生成し、様々なターゲットワイヤレス識別情報送信機の探索を開始するための、警告エンジンモジュール904を含み得る。コアコンポーネント108はさらに、ユーザのプライバシーポリシーまたはプロファイル選好に基づいて、一般的なデータ、匿名のデータ、または別様に処理されたデータを生成できる、データ匿名化モジュール906を含み得る。例えば、データ匿名化モジュール906は、ワイヤレス識別情報送信機の消費者であるユーザが店舗に対して特定されず、しかしユーザが店舗内にいるという事実は依然として店舗に報告されるように、店舗と関連付けられる近隣ブロードキャスト受信機に送信される返信メッセージから、個人情報を取り除くことができる。コアコンポーネント108はまた、様々なユーザのためのプライバシー許可情報を保持し得る、プライバシーマネージャモジュール908を含み得る。例えば、プライバシーマネージャモジュール908は、登録においてユーザにより提供されたプライバシーパラメータのデータベースを含み得る。
[0129] コアコンポーネント108はまた、探索を組織化し実施するのを支援するための探索マネージャモジュール910と、認証システムモジュール912とを含み得る。コアコンポーネント108はさらに、近隣ブロードキャスト受信機142、138からの受信されたサイティングメッセージ内で報告されるブロードキャストメッセージと関連付けられるワイヤレス識別情報送信機を識別するための、中心サーバ120によって利用され得るサイティングリゾルバモジュール914を含み得る。コアコンポーネント108は、動作を開始するための機能とインターフェースとを含み得るAPIモジュール916と、業者、第三者、および他のサービスへの統合された形の送信のためのある期間にわたって様々なサイティングメッセージを合成するためのサイティング統合モジュール918とを含み得る。コアコンポーネント108はまた、近隣ブロードキャスト受信機142、138および第三者のシステム101のようなデバイスとの様々な通信を、インターネットを介して送信し受信するための、ネットワークモジュール920を含み得る。
[0130] 中心サーバ120はまた、長期データ(例えば、保管されたユーザデータ、過去の位置情報など)を記憶し得る、データ保管コンポーネント104を含み得る。データ保管コンポーネント104は、登録ウェブサイトを介してユーザによって提供されるプロファイル情報のような、ワイヤレス識別情報送信機のユーザに関係する情報を記憶するための様々なデータベースを含み得る。データ保管コンポーネント104は、コアコンポーネント108のデータレイヤモジュール902とデータを交換するように構成され得る。中心サーバ120はまた、ユーザポータルのアクセス、スクリプト、およびツール(例えば、ソフトウェアユーティリティ、ルーチンなど)と関連付けられる、ソフトウェアを処理し、および/または記憶し得る、運用、管理および保守(またはOA&M)コンポーネント105を含み得る。OA&Mコンポーネント105は、コアコンポーネント108とデータを交換するように構成され得る。
[0131] 中心サーバ120はまた、開発者のアカウントデータを記憶し、登録、アカウント管理を実行し、開発者と関連付けられる管理ルーチンを警告(または通知)し得る、開発者ポータルコンポーネント106を含んでよく、開発者は例えば、ワイヤレス識別情報送信機110のユーザと対話するために登録するベンダーまたは業者である。中心サーバ120はまた、ユーザのアカウントデータを記憶し、登録、アカウント管理を実行し、ユーザと関連付けられるルーチンを探索し得る、ユーザポータルコンポーネント109を含んでよく、ユーザは例えば、ワイヤレス識別情報送信機と関連付けられる人である。ユーザポータルコンポーネント109および開発者ポータルコンポーネント106は、コアコンポーネント108の認証システムモジュール912とデータを交換するように構成され得る。中心サーバ120はまた、ワイヤレス識別情報送信機110と関連付けられる工場鍵を記憶し、さらに、受信されたサイティングメッセージ内の暗号化された、符号化された、ローリングした、または別様に難読化された識別情報を、付随するユーザデータと照合するための動作、ソフトウェア、またはルーチンを実行できる、ローリング識別子(またはID)リゾルバコンポーネント107を含み得る。ローリング識別子(またはID)リゾルバコンポーネント107は、コアコンポーネント108のサイティングリゾルバモジュール914とデータを交換するように構成され得る。
[0132] 様々な実施形態において、ローリングIDリゾルバコンポーネント107のような図9を参照して説明されたモジュールおよびコンポーネントは、ソフトウェア命令、アプリケーション、ルーチン、スレッド、回路、またはハードウェアユニットによって実行され、または別様に可能にされ得る。
[0133] 図10は、様々な実施形態において使用するための、ワイヤレス識別情報送信機の登録プロセスを示す。一般に、ブロードキャストメッセージが中心サーバによって処理され得る前に、中心サーバは、ワイヤレス識別情報送信機およびそのユーザが中心サーバに登録されることを要求し得る。例えば、あらゆる追跡、探索、またはワイヤレス識別情報送信機に関する他の位置ベースの活動が開始され得る前に、中心サーバは、世界中を移動する様々なワイヤレス識別情報送信機と関連付けられるユーザを決定することが可能でなければならない。登録は、ブロードキャストメッセージ中のワイヤレス識別情報送信機によって送信される識別子と、ワイヤレス識別情報送信機と、そのユーザとの間にリンクを作成し得る。例えば、行方不明の子供の親に子供が発見されたという通知を送信するためには、中継された難読化された(または符号化された)識別子が、登録されたユーザアカウントに関連して記憶されるような親の携帯電話番号を示すアカウント情報と照合されなければならない。
[0134] 具体的には、登録を通じて、各ワイヤレス識別情報送信機と中心サーバ(すなわち、カウンタ)との間で、タイミング機構が同期され得る。そのようなカウンタによって、ワイヤレス識別情報送信機および中心サーバは、識別子をそれぞれ符号化(またはローリング)および符号化でき、ワイヤレス識別情報送信機(およびそのユーザ)と関連付けられる識別情報を秘匿されおよび非公開である状態に保つ。そのようなタイミング機構またはカウンタを同期するための最も適切な時間は、以下で説明されるような、デバイス登録および/またはアカウント作成プロセスの間であり得る。図10では、スマートフォンのようなモバイルデバイスは、アカウント作成と登録動作とを実行するためにユーザによって使用されるものとして説明される(例えば、モバイルデバイスがウェブポータルにアクセスして中心サーバに登録するなど)。しかしながら、インターネットに接続され、登録ウェブポータルまたはウェブサイトを介して中心サーバとの通信を交換することが可能な任意のコンピューティングデバイスに、関連があり得る。
[0135] ブロック1002において、ユーザのモバイルデバイス(例えば、iPhone、Android、タブレットデバイスなど)が、ワイヤレス識別情報送信機とともに使用するためのアプリケーションをインストールし得る。そのようなアプリケーション(または「アプリ」)は、バックグラウンドサービスとしてモバイルデバイスのプロセッサ上で実行されてよく、または代替的に、ユーザによる選択的な使用のためにアクティブ化されてよい。本開示の全体で説明されるように、そのようなアプリケーションは、モバイルデバイスが、例えば、受信された信号をブロードキャストメッセージとして識別し、それに応答して位置情報を有するサイティングメッセージを中心サーバに中継することによって、近接したワイヤレス識別情報送信機からの短距離ブロードキャストメッセージを処理することを可能にし得る。
[0136] ブロック1004において、モバイルデバイスは、ユーザ情報(例えば、デバイス識別情報または「deviceID」)とともに登録要求を送信できる。登録要求は、ウェブポータル、ウェブサイト、または、中心サーバによって制御されもしくは別様にアクセス可能なウェブサーバとのインターネット通信を介して、中心サーバに送信され得る。言い換えると、モバイルデバイスは、登録プロセスを、またはデバイスID(deviceID)と、登録要求をアカウントと結びつけるために中心サーバが利用し得る他の情報とを提供することによって、呼び出すことができる。例えば、図9を参照して上で説明されたように、ユーザのモバイルデバイスは、登録ウェブサイトにアクセスし、ユーザから入力を受信し、中心サーバによる使用のために、ユーザ入力をデータとして登録ウェブサイトに送信できる。
[0137] いくつかの実施形態では、ユーザ情報は、名前、住所、連絡先情報(例えば、ソーシャルネットワークサイト、携帯電話番号、電子メールアドレス、電話番号など)、年齢、および他の人口統計学的情報のような、ユーザについての個人情報、さらに、ワイヤレス識別情報送信機および/またはユーザのアカウントと関連付けられ得る近隣ブロードキャスト受信機についての識別情報を含み得る。例えば、中心サーバに送信されるユーザ情報は、ブロック1002の動作でアプリケーションをインストールしたことに応答して、ワイヤレス識別情報送信機上のシリアル番号および/またはモバイルデバイスによって生成される確認コードを含み得る。ユーザ情報はまた、ユーザの好みの小売店、製品群、および食事または消費するエリアのような、選好情報を含み得る。
[0138] ユーザ情報はさらに、個人情報がどのように配信され中心サーバにより使用され得るかを示す、プライバシー許可を含み得る。いくつかの実施形態では、ユーザは、中心サーバがユーザについての識別情報を何ら保存しないように、匿名のユーザとして登録できる。例えば、特徴のない私書箱、使い捨ての携帯電話番号、または、ユーザもしくはアカウントの所有者を直接識別しない他の連絡先情報とリンクされたアカウントが登録され得る。これは、中心サーバにより提供されるサービスを利用することを選択し得るが私的な情報または識別情報の漏洩を懸念する人には、重要であり得る。
[0139] ブロック1012において、ユーザのモバイルデバイスは、中心サーバまたは所有されたワイヤレス識別情報送信機と関連付けられるデバイスIDからの認証情報(例えば、コード、メッセージ)のような、アカウント情報を記憶できる。
[0140] ブロック1006において、中心サーバは、アカウント登録のためのユーザ情報を受信できる。ブロック1008において、中心サーバは、ユーザのアカウントを登録できる。例えば、中心サーバは、全ての登録されたユーザのデータベースに、提供されたデバイス識別情報を含むユーザの情報を記憶できる。ブロック1010において、中心サーバは、アカウント作成情報をユーザに提供できる。アカウント作成情報は、認証コード、または、ユーザのモバイルデバイスが今後の使用のために記憶し得る他の情報を含み得る。例えば、中心サーバは、ユーザのモバイルデバイスによってアクセス可能なウェブサイト上でアカウント作成の確認を表示し、または代替的に、確認信号、テキストメッセージ、電子メール、または他の通信をユーザのモバイルデバイスに送信できる。
[0141] ブロック201において、例えばユーザがバッテリを装着したことに応答して、ワイヤレス識別情報送信機が起動し得る。ワイヤレス識別情報送信機が起動すると、ノンス値またはカウンタ値が初期化され得る。例えば、ワイヤレス識別情報送信機は、時間の経過を表す値を、値0からインクリメントし始めることができる。
[0142] ブロック1013において、ワイヤレス識別情報送信機は、符号化された(またはローリング)識別子を含むメッセージ(すなわち、ブロードキャストメッセージ)をブロードキャストできる。例えば、ワイヤレス識別情報送信機は、数秒ごとにブロードキャストメッセージを送信し始めることができる。ワイヤレス識別情報送信機は、本明細書に組み込まれる関連する適用形態において説明される実施形態の方法によってローリング識別子を生成できる。一般に、ブロードキャストメッセージは、擬似ランダム関数を実行することによって生成されるデータを含むペイロードを含み得る。例えば、ワイヤレス識別情報送信機は、擬似ランダム関数を実行して、ワイヤレス識別情報送信機のデバイスIDの入力値、ノンス値もしくはカウンタ値、ならびに秘密鍵、シード、または、ワイヤレス識別情報送信機および中心サーバにのみ知られている他の値に基づいて、符号化されたデータを生成できる。いくつかの実施形態では、擬似ランダム関数は、ワイヤレス識別情報送信機および中心サーバにのみ知られているランダムに選択されたシード値を利用し得る、多項式の時間計算可能な関数であり得るので、擬似ランダム関数は、その擬似ランダム関数と同じ範囲への出力を有する、同じ領域上で定義されたランダム関数とは計算上は区別不可能であり得る。いくつかの実施形態では、鍵付きハッシュメッセージ認証コード(HMAC)または暗号ベースのメッセージ認証コード(CMAC)が、擬似ランダム関数として使用され得る。
[0143] いくつかの実施形態では、ワイヤレス識別情報送信機は、モバイルデバイスがブロック1004の動作による登録プロセスを開始してから、ある事前に定義された秒数以内にアクティブ化されることが要求され得る。言い換えると、ワイヤレス識別情報送信機がノンス値またはカウンタ値のインクリメントを開始すると、ユーザは、ある期間内に中心サーバに登録しなければならない。これにより、中心サーバは、登録の間にワイヤレス識別情報送信機におけるノンス値またはカウンタ値を決定しようとするとき、ある数の値のみにおいて試みることが可能になる。
[0144] いくつかの実施形態では、ワイヤレス識別情報送信機は、ブロードキャストメッセージのペイロード内のデータを調整することによって、初期ブロードキャストを示すことができる。例えば、ワイヤレス識別情報送信機は、ワイヤレス識別情報送信機の初期化時間期間を示すものとして中心サーバが認識し得る、ブロードキャストメッセージ内のビットを変更できる。ペイロード内に初期化インジケータがある場合、中心サーバは、中心サーバの参照データテーブル内のすでに登録された(または認識された)ワイヤレス識別情報送信機に対応するペイロードに対する比較を避けるために、受信されたペイロードと記憶されたペイロードとの比較を迅速に行うことができる。
[0145] ブロック1014において、ユーザのモバイルデバイスが、ブロードキャストメッセージを受信し得る。言い換えると、インストールされたアプリケーション(またはアプリ)に基づいて、モバイルデバイスは、モバイル近隣ブロードキャスト受信機として機能し得る。ブロック1002の動作によりインストールされたアプリのような、インストールされたアプリケーションは、登録要求を介して中心サーバへの登録動作を開始したことに応答して、そのようなブロードキャストメッセージを受信するのを待機していることがある。ブロック1016において、モバイルデバイスは、ワイヤレス識別情報送信機のローリング識別子と、記憶されたデバイスIDおよび認証情報のような他の情報とを送信できる。いくつかの実施形態では、モバイルデバイスは、例えば、テキスト比較および/または解析動作を使用することによって、受信されたブロードキャストメッセージから符号化された情報を抽出できる。例えば、モバイルデバイスは、最上位ビット演算を実行できる。
[0146] ブロック1018において、中心サーバは、符号化された情報、さらには認証情報とデバイスIDとを伴うメッセージを受信し得る。ブロック1020において、中心サーバは、例えば、モバイルデバイスからの受信されたメッセージ中の、認証情報を検証できる。具体的には、中心サーバは、認証情報を、ブロック1008〜1010の動作で生成された情報と比較できる。
[0147] ブロック1022において、中心サーバは、デバイスIDとあり得るノンス値またはカウンタ値とを使用して、ローリング識別子のセットを生成できる。中心サーバは、そのセットの符号化された識別子を、モバイルデバイスから受信されたローリング識別子と比較できる。いくつかの実施形態では、中心サーバは、デバイスIDおよびいくつかのノンス値またはカウンタ値とともに、上で説明されたように、擬似ランダム関数を使用することによって、符号化されたデータのセットを計算できる。例えば、中心サーバは、ワイヤレス識別情報送信機と共有されるシードと、モバイルデバイスによって示されるデバイスIDと、0で始まる多くのノンス値またはカウンタ値とを伴う、擬似ランダム関数を実行できる。
[0148] ブロック1024において、中心サーバが受信されたローリング識別子を生成されたセット中のローリング識別子の1つと照合するとき、中心サーバは、WITに関連して、関係するノンス値またはカウンタ値と時間とを記憶できる。中心サーバは、一致するローリング識別子を生成するために使用されるノンス値またはカウンタ値を使用して、ワイヤレス識別情報送信機上で実行されるノンスまたはカウンタと同期できる。いくつかの実施形態では、中心サーバは、登録されることおよび/または同期されることが成功したものとしてワイヤレス送信機を記述するインジケータを記憶し得る。
[0149] 任意選択のブロック1026において、中心サーバは次いで、例えば、メッセージをモバイルデバイスに送信することによって、登録結果メッセージをユーザに送信できる。登録結果メッセージは、中心サーバが受信された符号化された識別子を生成された識別子と照合することが可能であったかどうかを示し得る。
[0150] ブロック1028において、モバイルデバイスが、登録結果メッセージを受信し得る。いくつかの実施形態では、登録結果メッセージは、登録プロセスが失敗したことを示し(例えば、モバイルデバイスによって受信された、受信されたブロードキャストメッセージが、ユーザのワイヤレス識別情報送信機に対応しなかった)、モバイルデバイスは、別のブロードキャストメッセージを受信し中継することによって、登録を再び試みることができる。
[0151] 上で説明された動作、特にブロック1013〜1024の中の動作は、様々なデバイスによって実行されるメッセージ処理動作、さらには任意の伝搬遅延が、ワイヤレス識別情報送信機においてノンス値またはカウンタ値をインクリメント(または更新)するために必要な時間よりもはるかに小さくなり得るということを仮定する。これにより、ワイヤレス識別情報送信機および中心サーバにおけるノンス値またはカウンタ値が、1より大きくは異ならないことが確実になる。
[0152] 図11は、近隣ブロードキャスト受信機から受信されたサイティングメッセージを処理するための、中心サーバのためのある実施形態の方法1100を示す。上で説明されたように、中心サーバは、様々なモジュールと、コンポーネントと、回路と、ソフトウェアとを利用して、サイティングメッセージを処理するように構成され得る。決定ブロック1102において、中心サーバは、サイティングメッセージが受信されるかどうかを決定できる。中心サーバは、受信回路、バッファ、キュー、または他のインジケータを評価して、メッセージが近隣ブロードキャスト受信機のような様々なデバイスからいつ受信されるかを決定できる。いくつかの実施形態では、中心サーバは、上で説明されたようなネットワークモジュールを利用して、サイティングメッセージが受信されるかどうかを決定できる。一般に、サイティングメッセージは、インターネットを通じてセルラーネットワークを介して送信されるパケットのような、長距離通信を介して受信され得る。中心サーバがサイティングメッセージを受信しない場合(すなわち、決定ブロック1102=「いいえ」)、中心サーバは、決定ブロック1102における動作を継続できる。
[0153] 中心サーバがサイティングメッセージを受信する場合(すなわち、決定ブロック1102=「はい」)、ブロック1104において、中心サーバは、ワイヤレス識別情報送信機情報と、近隣ブロードキャスト受信機情報と、関連するデータとを、サイティングメッセージに基づいて識別できる。中心サーバは、受信されたサイティングメッセージ内の様々なデータと情報のセグメントとを評価し、解析し、別様に入手可能にできる。例えば、中心サーバは、サイティングメッセージを解析して、ワイヤレス識別情報送信機からの含まれるブロードキャストメッセージを識別できる。別の例として、中心サーバは、ワイヤレス識別情報送信機の識別情報(すなわち、ローリング識別子)、近隣ブロードキャスト受信機の識別情報(例えば、受信機ID)、位置情報、タイムスタンプ情報、センサデータ(例えば、加速度センサデータなど)、近隣ブロードキャスト受信機と関連付けられるアプリケーション(またはアプリ)の識別子(例えば、インストールされているアプリケーションのリスト、近隣ブロードキャスト受信機で実行される関連するアプリの識別子など)に対応する、符号化されたデータを識別できる。いくつかの実施形態では、中心サーバは、上で説明されたようなサイティングリゾルバモジュールによって、ブロック1104の動作を実行できる。
[0154] ブロック1106において、中心サーバは、サイティングメッセージ内のローリング識別子に基づいて、ワイヤレス識別情報送信機の識別情報を取得できる。中心サーバは、ローリング識別子を復号し、逆スクランブリングし、解読し、または別様に入手可能にするための動作を実行できる。例えば、中心サーバは、秘密鍵を適用するための動作、または、ワイヤレス識別情報送信機の識別情報を取得するための復号アルゴリズムを実行できる。いくつかの実施形態では、ブロック1106の動作は、上で説明されたようなローリングIDリゾルバコンポーネントによって、中心サーバにより実行され得る。例えば、中心サーバは、サイティングリゾルバモジュールに、ローリングIDリゾルバコンポーネントとデータを交換させて、復号されたワイヤレス識別情報送信機の識別情報を取得させ得る。
[0155] ブロック1108において、中心サーバは、取得されたワイヤレス識別情報送信機の識別情報に基づいて、ワイヤレス識別情報送信機のユーザ情報を取り出すことができる。例えば、中心サーバは、人口統計学的な情報、以前の挙動(例えば、移動経路、位置の履歴など)を示す記憶されたデータのような、ワイヤレス識別情報送信機に関するユーザアカウント情報を取り出すことができる。いくつかの実施形態では、ブロック1108の動作は、上で説明されたような認証システムモジュールによって、中心サーバにより実行され得る。例えば、中心サーバは、認証システムモジュールに、ワイヤレス識別情報送信機の識別情報をユーザポータルコンポーネントと交換させ、ユーザ登録データベース内に保存されたユーザ情報を取得させ得る。
[0156] ブロック1110において、中心サーバは、近隣ブロードキャスト受信機のユーザ情報および関連するサービスのような、近隣ブロードキャスト受信機の識別情報を、識別された近隣ブロードキャスト受信機の情報に基づいて取り出すことができる。例えば、中心サーバは、受信されたサイティングメッセージを送信した近隣ブロードキャスト受信機と関連付けられる業者の識別情報、近隣ブロードキャスト受信機が参加するように登録されている追跡サービス、さらに、近隣ブロードキャスト受信機に対する任意の他の関連する情報を取り出すことができる。中心サーバは、サイティングメッセージ内の情報に基づいて、電子メールアドレスと、MACアドレスと、電話番号と、関連する近隣ブロードキャスト受信機のユーザに関する他の連絡先情報とを取り出すことができる。例えば、中心サーバは、中心サーバからの後続の送信、例えば、関心のあるアイテムに近接していることを示す電子メールまたはSMSテキストメッセージのために使用され得る、近隣ブロードキャスト受信機と関連付けられるユーザ連絡先情報を決定できる。いくつかの実施形態では、中心サーバは、モバイル近隣ブロードキャスト受信機の動作を実行するように構成される、スマートフォンのユーザの識別情報を決定できる。
[0157] いくつかの実施形態では、ブロック1110の動作は、上で説明されたような認証システムモジュールによって、中心サーバにより実行され得る。例えば、中心サーバは、認証システムモジュールに、近隣ブロードキャスト受信機の情報を開発者(またはユーザ)ポータルコンポーネントと交換させて、開発者の登録データベース内に保存されているような関連する登録されたサービス(例えば、業者、店舗、ベンダー、サービスなど)についての情報を取得させ得る。
[0158] 任意選択のブロック1111において、中心サーバが、サイティングメッセージを認証し得る。受信されたサイティングメッセージ内の認証情報に基づいて、中心サーバは、既知の、または別様に有効な近隣ブロードキャスト受信機から来たものとしてサイティングメッセージの正当性を確証する、認証動作を実行できる。上で説明されたように、サイティングメッセージは、有効な近隣ブロードキャスト受信機の識別情報を確証するために使用され得る、秘密コード、証明書、またはハッシュデータのようなデータを含み得る。
[0159] 第3者が、登録されたサービスと関連付けられる近隣ブロードキャスト受信機になりすますことを試みることがあり(例えば、非道なスパム送信者が、不正なサイティングメッセージを送信することによって、業者の店舗の近隣ブロードキャスト受信機を模擬しようと試みることがある)、中心サーバは、サイティングメッセージ内の情報が有用であり登録されたサービス(例えば、登録された業者、有効な開発者、または正当な近隣ブロードキャスト受信機を配備する他の関係者)に関連することを確証する認証情報を確認できる。例えば、中心サーバは、登録された開発者として中心サーバ内で確立された業者に関するサイティングメッセージ内の不明瞭にされたヘッダ情報を検出できる。
[0160] サイティングメッセージが、ある建物内の全ての近隣ブロードキャスト受信機が保有する空間コードのような、中心サーバによって予想される認証情報を含まない、または、中心サーバに記憶された情報と一致しない認証情報を含む場合、中心サーバは、サイティングメッセージと全ての含まれる情報とを無視できる。例えば、期限切れの、または不完全な認証情報を伴うサイティングメッセージは、中心サーバにより無視されてよく、または代替的に、不正な可能性のある近隣ブロードキャスト受信機のリストに記憶されてよい。
[0161] 任意選択のブロック1112において、中心サーバは、取得されたデータおよび/または取り出されたデータに基づいて、ハッシュされたデータを生成できる。いくつかの実施形態では、任意選択のブロック1112の動作は、上で説明されたようなデータ匿名化モジュールによって、中心サーバにより実行され得る。ブロック1114において、中心サーバは、ワイヤレス識別情報送信機の識別情報に関連して、サイティングメッセージに基づいてデータを記憶できる。例えば、中心サーバは、ワイヤレス識別情報送信機の復号された識別情報に関連して、サイティングメッセージからの識別された関連するデータをデータベースに記憶できる。いくつかの実施形態では、ブロック1114の動作は、上で説明されたようなデータレイヤモジュールによって、中心サーバにより実行され得る。
[0162] 上で説明されたように、返信メッセージのような様々なメッセージが、警告(または探索アクティブ化メッセージ)が、ユーザと関連付けられるモバイルデバイスのような様々な受信者へ、中心サーバによって送信され得る。例えば、中心サーバは、ユーザのタブレット、スマートフォン、ワイヤレス受信機デバイス、または他のコンピューティングデバイスにメッセージを送信できる。受信者はまた、モバイルデバイス上で実行するアプリケーションまたはアプリを含み得る。いくつかの実施形態では、中心サーバはまた、EMT、消防、地元の警察、小売店、業者のコンピューティングデバイス、および広告サーバを含み得る登録されたサービスのような、他の第3者の受信者またはデバイスにメッセージを送信できる。
[0163] サイティングメッセージを受信したことに応答して中心サーバによって送信されるメッセージは、ユーザにより持ち運ばれる携帯電話またはモバイル近隣ブロードキャスト受信機のようなデバイスに既知のワイヤレス識別情報送信機の近隣の位置を知らせるために送信され得る。例えば、小売店内の固定式の近隣ブロードキャスト受信機のような近隣ブロードキャスト受信機が、ユーザと関連付けられるワイヤレス識別情報送信機からのブロードキャストメッセージを中継するとき、中心サーバは、ユーザが店舗の受信機デバイスの近くにいることを示すメッセージをユーザのモバイルデバイスに返信することによって、応答できる。さらに、ユーザのデバイスで実行される第3者のアプリケーションは、メッセージ内の情報を使用できる。例えば、ユーザのスマートフォンで実行される小売店のアプリは、小売店の建物の近隣の範囲内の、表示エリアの近隣の範囲内にユーザが移動したという通知を受信できる。様々な他の実施形態では、第3者のアプリケーションは、ワイヤレス識別情報送信機と関連付けられる所有されたアイテムを追跡するために利用され得る。例えば、特定の第3者のアプリケーションは、探索されている行方不明の子供の近隣の範囲内にユーザがいるとき、着信音を鳴らすことができる。
[0164] 図11に戻ると、決定ブロック1152において、中心サーバは、第3者のアプリケーション(またはアプリ)が近隣ブロードキャスト受信機の情報を取得したことを許可されたと決定できる。言い換えれば、ワイヤレス識別情報送信機のユーザと関連付けられる、中心サーバに記憶されたデータに基づいて、中心サーバは、任意の登録されたサービス、またはユーザのデバイスと関連付けられる第3者のアプリケーションを検出できる。例えば、中心サーバは、データベース情報を評価して、小売店に対応する第3者のアプリケーションをユーザが自身のスマートフォンにインストールしたことを識別できる。近隣ブロードキャスト受信機の情報は、近隣ブロードキャスト受信機の識別情報(例えば、IDコードまたは識別子)と近隣ブロードキャスト受信機のユーザ識別情報とを含み得る。いくつかの実施形態では、中心サーバは、第3者が開発者または登録されたサービスとして登録されるときに示される情報、または代替的に、中心サーバ内のユーザのプロファイル内に記憶されたユーザの許可設定に基づいて示される情報のような、第3者の開発者の権利に基づく情報を第3者のアプリケーションが許可されるかどうかを識別できる。いくつかの実施形態では、中心サーバは、受信されたサイティングメッセージ内で提供されるアプリケーション識別情報を使用して、ユーザのデバイス上の第3者のアプリケーションが近隣ブロードキャスト受信機の情報を受信できるかどうかを決定できる。例えば、サイティングメッセージは、サイティングメッセージに対応し、従って、中心サーバから任意の近隣ブロードキャスト受信機の情報を受信することが許可される、アプリケーションのインジケータ(例えば、アプリID)を含み得る。
[0165] 第3者のアプリが取得した近隣ブロードキャスト受信機の情報を有することを許可されない場合(すなわち、決定ブロック1152=「いいえ」)、ブロック1156において、中心サーバは、ワイヤレス識別情報送信機の識別情報とサイティングメッセージからの関連するデータとのみを含むメッセージをユーザのデバイスに送信できる。例えば、中心サーバによって送信されるメッセージは、取得されたワイヤレス識別情報送信機の識別情報と、ユーザ情報と、タイムスタンプデータと、サイティングメッセージからの位置情報とを含み得る。
[0166] 第3者のアプリが近隣ブロードキャスト受信機情報を取得したことを許可される場合(すなわち、決定ブロック1152=「はい」)、ブロック1154において、中心サーバは、ワイヤレス識別情報送信機の識別情報と、近隣ブロードキャスト受信機の情報と、サイティングメッセージからの関連するデータとを含むメッセージをユーザのデバイスに送信できる。例えば、中心サーバによってユーザのスマートフォンに送信されるメッセージは、取得された近隣ブロードキャスト受信機の識別情報のインジケータ(例えば、シリアルコード、グループへの所属、業者のカテゴリなど)を含み得る。中心サーバは次いで、決定ブロック1102の動作を継続できる。いくつかの実施形態では、中心サーバは、図9を参照して上で説明されたような警告エンジンモジュールを利用して、様々なデバイスへ送信するためのメッセージを送信および/または生成できる。
[0167] 図12は、中心サーバ内で実施され得るある実施形態の方法1200を示す。方法1200は、最初はワイヤレス識別情報送信機によってブロードキャストされる、符号化されたデータ、ローリングするデータ、または別様に保護されたデータを含むサイティングメッセージを、近隣ブロードキャスト受信機から受信したことに応答して、中心サーバによって実行され得る。ワイヤレス識別情報送信機のユーザのプライバシーは、識別子が時間とともに変わるように、各ワイヤレス識別情報送信機に対してローリング識別子またはランダムに変化する識別子を使用することによって、保護され得る。ワイヤレス識別情報送信機がある回数またはある時間期間(例えば、1時間)識別子をブロードキャストしたとき、または1つまたは複数のペアリングの後など、定期的に、またはあるイベントに基づいて、新たな識別子が生成され得る。識別子のこのローリングは、ワイヤレス識別情報送信機が依然として追跡され得るように、中心サーバと協調し得る。例えば、ワイヤレス識別情報送信機および中心サーバは、共通のタイムスケールに識別子を生成するために使用される暗号学的に安全な擬似乱数生成器アルゴリズムを各々有し得るので、任意の所与の瞬間に、中心サーバは、特定のワイヤレス識別情報送信機によって送信されている識別子を計算できる。
[0168] ローリング識別子を生成すること、または識別子を難読化する他の方法は、第3者からのなりすまし攻撃を防ぎ得るという点で重要である。例えば、識別子が不変であれば、第3者は、例えば、近隣ブロードキャスト受信機になりすまし、次いで、識別子を使用してワイヤレス識別情報送信機を追跡することによって、識別子を探り出すことができる。ローリング識別子は、第3者が擬似乱数生成器または最新のローリング識別子を生成する他の手段を欠いている場合、そのような攻撃を妨げて不可能なものにし得る。
[0169] ブロック1202において、中心サーバは、近隣ブロードキャスト受信機からのサイティングメッセージの中で、ワイヤレス識別情報送信機のローリング識別子を受信できる。ブロック1204において、中心サーバは、ローリング識別子を、ワイヤレス識別情報送信機と共有されるアルゴリズム、例えば擬似ランダム関数または共有される秘密鍵を伴う暗号化アルゴリズムによって計算されるコードと、比較できる。アルゴリズムは、ある期間にわたってワイヤレス識別情報送信機によって生成されブロードキャストされるローリング識別子と揃うことが予想されるコードを計算するために中心サーバによって利用される、ソフトウェア命令、ルーチン、アルゴリズム、回路、またはモジュールであり得る。様々な実施形態において、一部の識別子が欠けていた場合、中心サーバは、受信された識別子を次のいくつかのコードと比較できる。受信された識別子が中心サーバによって生成または予想される任意のコードと一致する場合、ブロック1206において、中心サーバは、一致する識別子と任意の関連するデータとを、ワイヤレス識別情報送信機に対応するシリアルコードと関連付けることができる。このように、中心サーバがワイヤレス識別情報送信機のシリアルコードを伴うユーザ要求、例えば、子供により持ち運ばれるワイヤレス識別情報送信機を位置決定するための親からの要求を後で受信すると、中心サーバは、以前のそれぞれのローリング識別子を探索する必要なく、全ての以前の一致と任意の関連するデータとを見つけることができる。
[0170] 図13A〜図13Bおよび図14A〜図14Bは、近隣ブロードキャスト受信機による受信および処理のための異なるパケットフォーマットのメッセージ(すなわち、ビーコンメッセージまたはパケット)をワイヤレス識別情報送信機がブロードキャストするための実施形態の方法を示す。上で説明されたように、異なるパケットフォーマットは各々、受信機デバイス上で実行される、ファームウェアまたはアプリケーションのような異なるソフトウェア実装形態と関連付けられてよく、またはそうでなければそれらによく適していてよい。さらに、異なるパケットフォーマット(およびソフトウェア実装形態)は、「近隣システム」と呼ばれる異なる通信フレームワークと関連付けられ得る。異なる近隣システムは、Bluetooth LEパケットのような同じタイプの一般的な通信プロトコルまたは信号を利用し得るが、異なる近隣システムへの関連または適用可能性を示すために、異なるパケットフォーマットのパケットおよび/または他のパケットデータ(例えば、ヘッダ情報)を利用できる。言い換えると、異なる近隣システムの送信機(またはビーコンデバイス)は、通信プロトコルは同じであるがパケットフォーマットが異なるパケットを送信できる。具体的には、ある近隣システムは、本明細書で全般的に説明されるように、Bluetooth LEパケットと、ワイヤレス識別情報送信機と、近隣ブロードキャスト受信機と、中心サーバとを利用する、独自のアーキテクチャと関連付けられ得る。
[0171] 図13Aおよび図13Bは、近隣ブロードキャスト受信機138による処理のためにワイヤレス識別情報送信機110が第1のパケットフォーマットの第1のパケット(またはブロードキャストメッセージ)と第2のパケットフォーマットの第2のパケットとをブロードキャストするための、実施形態の方法1300、1350を示す。一般に、登録呼が、受信しているブロードキャストメッセージに基づいて近隣ブロードキャスト受信機138によって実行されてよく、ファームウェア、ルーチン、およびアプリケーションのような近隣ブロードキャスト受信機138上で様々なソフトウェア実装形態によって使用されてよい。しかしながら、近隣ブロードキャスト受信機138の効率性および他の挙動は、受信されたパケットを処理するために使用される様々なソフトウェア実装形態に基づいて異なり得る。従って、ブロードキャスト受信機デバイスは、電力消費を制限するためにスリープするように、または稀に実行するように、ローリング識別子を含むブロードキャストメッセージと関連付けられるソフトウェア実装形態に構成できる。ブロードキャスト受信機デバイスはさらに、関連するパケットが利用可能であると決定されたとき、そのようなソフトウェア実装形態を動作させ、または実行するように構成され得る。例えば、ローリング識別子を伴うブロードキャストメッセージが近くにあることを示す、第1のパケットフォーマットのパケットを受信したことに応答して、近隣ブロードキャスト受信機138は、第2のパケットフォーマットのメッセージを扱うのによく適している(または最適化されている)ファームウェアを起動し、またはそのデューティ比を上げることができ、これによって、バッテリ電力をより効率的に使用し、および/またはパケット処理のレイテンシがより短くなる。
[0172] 様々な実施形態において、近隣ブロードキャスト受信機138は、Bluetooth(またはBluetooth LE)送受信機を含み、様々なBluetoothアドバタイズパケットを受信して処理するように構成される、スマートフォンであり得る。例えば、近隣ブロードキャスト受信機138は、異なるパケットフォーマットまたは構造のBluetoothアドバタイズパケットを扱うためのソフトウェア実装形態(例えば、ソフトウェア、ルーチン、演算、またはアプリ)を実行できる。
[0173] 図13Aを参照すると、ブロック208において、方法1300ワイヤレス識別情報送信機110が、ローリング識別子を生成するための擬似ランダムアルゴリズムのようなあるアルゴリズムから新たなデバイス識別子を生成できる場合。ブロック1302において、ワイヤレス識別情報送信機110は、第1の近隣システムと関連付けられる第1のパケットフォーマットでフォーマットされ、第2の近隣システムの存在を示す情報を含む、第1のパケットをブロードキャストできる。第1のパケットフォーマットのそのようなパケットは、受信機デバイス上で実行される第1のソフトウェア実装形態(例えば、ファームウェア、アプリケーション、ルーチンなど)による処理によく適していることがある。例えば、ブロードキャストパケットは、スマートフォン受信機(例えば、近隣ブロードキャスト受信機138)のオペレーティングシステムとともに使用するのによく適する(または最適化される)ようにメッセージが構築されることを示す、ヘッダまたは他のフラグもしくはコードとともにフォーマットされ得る。上で説明されたように、接続不可能Bluetoothパケットの異なる構造のような様々なパケットフォーマットは、Bluetooth規格のような通信プロトコル規格によって示され得る。
[0174] 第1のパケットはまた、受信デバイスによって実行または識別されると、第2のソフトウェア実装形態(例えば、ファームウェア、ソフトウェア、ルーチンなど)を開始させ、準備させ、優先させ(例えば、デューティ比の増大)、または別様に起動させ得る、コマンド、命令、またはコードを含み得る。例えば、第1のパケットは、任意の近接受信デバイスが第2のパケットフォーマットのメッセージと関連付けられるファームウェアを開始させる(または起動する)ためのコマンドを含み得る。別の例として、第1のパケットは、アプリケーションに、近隣ブロードキャスト受信機138のフォアグラウンドへと来させ、異なるパケットフォーマットを有するメッセージの聴取を開始させ得る、トークンを含み得る。言い換えると、第1のパケットは、特別なデータ(例えば、センサデータ、不明瞭にされたローリング識別子など)をブロードキャストしているワイヤレス識別情報送信機110の近くにあることを近隣ブロードキャスト受信機138(例えば、スマートフォン)に知らせる情報を含むように設計され得るので、近隣ブロードキャスト受信機138は、レイテンシを減らすために、これらのブロードキャストを受信することに登録しなければならない。様々な実施形態において、第1のパケットは、ブロック208における動作とともに生成されるような、ローリング識別子を含んでも含まなくてもよい。いくつかの実施形態では、第1のパケットは、第1のパケットフォーマットでフォーマットされるとき、サービスUUIDを含まないことがあり、または代替的に、長さが0のサービスUUIDを含むことがある。
[0175] 第1のパケットフォーマットの第1のパケットをブロードキャストした後で、ワイヤレス識別情報送信機110は、事前に定義された数のミリ秒(例えば、40ms、50ms、60ms、100msなど)の間、ビジー待機サイクル(busy-wait cycle)を実行することなどによって、任意選択のブロック1304においてある期間待機できる。事前に定められた数のミリ秒は、近隣ブロードキャスト受信機138が第1のパケットを受信して処理することが必要であり得る、所定の長さの時間(または閾値)に対応し得る。任意選択の実施形態では、ワイヤレス識別情報送信機110は、事前に定義された数の反復の間、ブロック1302における動作によって第1のパケットをブロードキャストし続けることができる。例えば、ワイヤレス識別情報送信機110は、近くの近隣ブロードキャスト受信機138が第1のパケットを受信して処理できることを確実にするために、事前に定義された数の繰り返しの間、数ミリ秒ごとに第1のパケットを再ブロードキャストできる。任意選択の待機期間および/または第1のパケットをブロードキャストする反復の回数は、既知の処理サイクルの時間または広範な受信機デバイスの機能に基づいてよく、または代替的に、近隣ブロードキャスト受信機138に対する特定の機能/処理の要件に基づいてよい。
[0176] 図13Bを参照すると、近隣ブロードキャスト受信機138は、方法1350のブロック1352において、第1のソフトウェア実装形態を介して第1のパケットフォーマットの第1のパケットを受信できる。上で説明されたように、近隣ブロードキャスト受信機138は、Bluetooth規格において定義される、および/または図3A〜図4Bを参照して上で説明されたパケットフォーマットのような、短距離ワイヤレス信号114を介してブロードキャストされ第1のソフトウェア実装形態と関連付けられる、既知の構造のBluetoothアドバタイズパケットを監視するように構成され得る。上で説明されたように、第1のソフトウェア実装形態は、第1のパケットフォーマットのパケットを効率的に処理するための近隣ブロードキャスト受信機138による使用に対して設計される、またはそうでなければそれによく適している(または最適化されている)、ファームウェア、アプリケーション、ルーチンなどであり得る。いくつか実施形態では、受信された第1のパケットは、第1のパケットフォーマットを示すヘッダビット、コード、または他の情報を含んでよく、近隣ブロードキャスト受信機138は、第1のパケットフォーマットを示す情報を検出したことに応答して、第1のソフトウェア実装形態の演算、ルーチン、メソッド、ソフトウェアなどを実行するように構成され得る。
[0177] 第1のソフトウェア実装形態を介して第1のパケットフォーマットのパケットを受信する(および処理する)ことで、下で説明されるように、近隣ブロードキャスト受信機によってサポートされる他のソフトウェア実装形態を介して他のフォーマットのパケットを監視および/または受信するときよりも、受信機電力の消費が少なくなり得る。例えば、第1のパケットフォーマットと関連付けられる第1のソフトウェア実装形態は、受信された第1のパケットを最小限の量のレイテンシおよび/またはバッテリ電力の消費で解析する、オペレーティングシステムルーチンであり得る。近隣ブロードキャスト受信機138は、第1のソフトウェア実装形態を普通に(またはデフォルトで)実行するように構成され得る。
[0178] ブロック1354において、近隣ブロードキャスト受信機138は、第2の近隣システムの存在を示す情報を検出するために、受信された第1のパケットを第1のソフトウェア実装形態によって処理できる。近隣ブロードキャスト受信機138は、第2の近隣システムと関連付けられるメッセージが利用可能であること、および/または第2の近隣システムと関連付けられる第2のソフトウェア実装形態が近隣ブロードキャスト受信機138によって実行されるべきであることを示す、コマンド、インジケータ、フラグ、コード、または命令を識別するために、受信された第1のパケットを処理できる。例えば、受信された第1のパケットは、近隣ブロードキャスト受信機138があるルーチンをロードし、開始し、起動し、または登録するためのコマンドを含み得る。
[0179] 従って、ブロック1356において、第2の近隣システムの存在を示す情報(すなわち、第2のフォーマットのメッセージ)を検出したことに応答して、近隣ブロードキャスト受信機138は、処理された第1のパケットに基づいて第2のパケットフォーマットと関連付けられるアプリまたはファームウェアを起動することなどによって、第2の近隣システムと関連付けられる第2のソフトウェア実装形態を調整する(または第2のソフトウェア実装形態の挙動を変更する)ことができる。言い換えると、受信機138は、第2のパケットフォーマットのパケットをより良好に扱うように調整され得る。そのような調整または変更は、第2のソフトウェア実装形態を起動すること、または第2のソフトウェア実装形態の動作パラメータを単に変更することを含み得る。例えば、近隣ブロードキャスト受信機138は、受信機における第2のパケットフォーマットのパケットの受信をアプリケーションが監視する頻度を上げるために、アプリケーションのデューティ比を変更できる。第2のソフトウェア実装形態は、第2の近隣システムの存在の検出に基づいて、休眠状態またはコールド状態から起動または開始されてよく、またはされなくてもよい。
[0180] いくつかの実施形態では、第2のパケットフォーマットの後続の第2のパケットがワイヤレス識別情報送信機110によって送信され得ることを示す、第1のパケット内のデータを検出したことに応答して、近隣ブロードキャスト受信機138は、第2のパケットフォーマットの後続のメッセージを受信するために、1つまたは複数のオペレーティングシステムのAPIに登録できる。例えば、近隣ブロードキャスト受信機138は、受信された第1のパケットにおいて示されるサービスUUIDに基づいてパケットを受信することに登録し、全ての後続のパケットを受信することに登録し、または、サービスUUIDを伴う後続のパケットを受信することと、ワイヤレス識別情報送信機110と関連付けられる/それへとコーディングされる独自の値を伴う後続のパケットを受信することのいずれかに登録できる。いくつかの実施形態では、近隣ブロードキャスト受信機138は、受信された第1のパケットを処理したことに応答して、第2のパケットフォーマットのために休眠アプリケーションをロードし、または別様に開始できる。
[0181] 図13Aに戻ると、方法1300のブロック1306において、ワイヤレス識別情報送信機110は、第2の近隣システムと関連付けられる第2のフォーマットでフォーマットされデバイス識別子を含む、第2のパケット(またはメッセージ)をブロードキャストできる。例えば、第2のパケットは、図3A〜図4Bを参照して上で説明されたようなパケット構造の1つでフォーマットされる、無接続Bluetoothパケットであり得る。ワイヤレス識別情報送信機110は、第1のパケットのブロードキャストから事前に定義された期間が経過すると(例えば、第1のパケットの送信から50ms、51ms、60などが経過すると)、短距離ワイヤレス信号を介して第2のパケットフォーマットの第2のパケットをブロードキャストできる。第2のパケットは、暗号化される、または別様に不明瞭にされるローリング識別子のような、ブロック208の動作において生成される識別子を含み得る。第2のパケットはさらに、センサデータ(例えば、サーミスタセンサデータ、加速度計センサデータ、放射線センサデータ、湿度センサデータ、CO2センサデータなど)のような、他のデータを含み得る。いくつかの実施形態では、第2のパケットは、サービスUUIDまたは長さが0よりも大きなサービスUUIDを含み得る。ワイヤレス識別情報送信機110は次いで、任意選択のブロック1308において、事前に定義された数のミリ秒のようなある期間待機でき、新たなデバイス識別子を生成するためにブロック208の動作へと続くことができる。任意選択の実施形態では、ワイヤレス識別情報送信機110は、事前に定義された数の時間または繰り返しの間ブロードキャストを繰り返すことなどによって第2のパケットのブロードキャストを繰り返すために、ブロック1306の動作を続けることができる。
[0182] 図13Bに戻ると、方法1350のブロック1358において、近隣ブロードキャスト受信機138は、調整された第2のソフトウェア実装形態によって第2のパケットを受信でき、ブロック1360において第2のパケットフォーマット(および第2の近隣システム)と関連付けられる第2のソフトウェア実装形態によって受信された第2のパケットを処理できる。言い換えると、近隣ブロードキャスト受信機138は、ブロック1356の動作により行われた調整に応答して第2のパケットを受信できる。例えば、起動されたファームウェアは、受信された第2のパケット内のローリング識別子および/またはデータを識別するために、受信された第2のパケット内のヘッダデータを解釈できる。ブロック1362において、近隣ブロードキャスト受信機138は、ワイヤレス識別情報送信機110(すなわち、ローリング識別子)が近隣ブロードキャスト受信機138の近隣の範囲内にあることを示すサイティングメッセージを中心サーバに送信することのような、処理された第2のパケットに基づく動作を実行できる。近隣ブロードキャスト受信機138はまた、第2のパケットの受信のログをとること、アプリケーションを開始すること、およびユーザに情報を放出すること(例えば、ワイヤレス識別情報送信機110が近くにあることを示すテキストメッセージをレンダリングすること、サウンドサンプルを再生することなど)などによって、受信された第2のパケットを処理したことに応答して様々な動作(例えば、ソフトウェア命令、ルーチンなど)を実行できる。近隣ブロードキャスト受信機138は、さらなるメッセージを受信するためにブロック1352に戻ることによって動作を繰り返すことができる。
[0183] いくつかの実施形態では、近隣ブロードキャスト受信機138は、第1のパケットおよび第2のパケットが受信されると、ワイヤレス識別情報送信機110からの後続のブロードキャストメッセージを無視するように構成され得る。例えば、近隣ブロードキャスト受信機138は、後続のパケットが無視され得るか新たな通信として処理され得るかを決定するために、ワイヤレス識別情報送信機110から第1のパケットおよび/または第2のパケット内で受信されるデータ(例えば、ローリング識別子)を後続のパケット内のデータと比較できる。そのような技法は、近隣ブロードキャスト受信機138の近隣の範囲内にある間に同じデータを繰り返し(および継続的に)ブロードキャストし得る、ワイヤレス識別情報送信機110からのパケットの冗長な処理を避けるために価値があり得る。いくつかの実施形態では、近隣ブロードキャスト受信機138は、ある数の秒、分などのような、事前に定義された数の時間の間、後続のメッセージを無視するだけでよい。
[0184] 図14A〜図14Bは、ワイヤレス識別情報送信機110が近隣ブロードキャスト受信機138による処理のために第1のデータ部分を含む第1のパケットフォーマットの第1のパケットと第2のデータ部分を含む第2のパケットフォーマットの第2のパケットとをブロードキャストするための、実施形態の方法1400、1450を示す。方法1400、1450は、第1のパケットと第2のパケットの両方にわたって分散するデータをブロードキャストして処理するための動作を含み得るということを除き、上で説明された方法1300、1350とそれぞれ同様であり得る。言い換えると、第1のパケットフォーマットの第1のパケットは、近隣ブロードキャスト受信機138に、第2のタイプのパケットと関連付けられるソフトウェア実装形態を調整または変更させる(例えば、起動させる、またはアプリケーション、ファームウェア、演算、ルーチンなどと関連付けられるデューティ比を変更させる)ように構成され得るだけではなく、第2のタイプのパケットと関連付けられるそのソフトウェア実装形態によって使用され得るデータの部分も含み得る。例えば、ワイヤレス識別情報送信機110は、固有の識別子(例えば、ローリングコード)のような元のペイロードを2つのデータセグメントへと分割するための動作を実行でき、次いで、第1のパケットフォーマットの第1のBluetoothパケットにおいて第1のデータセグメントをブロードキャストし、第2のパケットフォーマットの第2のBluetoothパケットにおいて第2のデータセグメントをブロードキャストできる。近隣ブロードキャスト受信機138は、情報(例えば、完全なローリング識別子)および/またはコマンドを生成するために、第1のパケットおよび第2のパケットからのデータセグメントを一緒に組み合わせ、または別様に処理するように構成され得る。様々な実施形態において、一連の順序付けられたコマンド、ソフトウェア命令、パスコード、鍵、またはアプリケーションデータのような順序情報は、第1のパケットおよび第2のパケットからのデータが受信され処理されない限り順序情報が知られ得ない、使用され得ない、または実行され得ないように、第1のパケットおよび第2のパケットにおいて別々に送信され得る。例えば、ワイヤレス識別情報送信機110は、第1のパケットのデータにおいてコマンドの第2の命令を送信でき、第1のパケットと第2のパケットの両方のデータを組み合わせるときにだけ近隣ブロードキャスト受信機138がコマンドを実行できるように、第2のパケットのデータにおいてコマンドの第1の命令と第3の命令とを送信できる。
[0185] 図14Aの方法1400を参照すると、ブロック208において、ワイヤレス識別情報送信機110は、あるアルゴリズムから新たなデバイス識別子を生成できる。ブロック1402において、ワイヤレス識別情報送信機110は、第1の近隣システムと関連付けられる第1のパケットフォーマットでフォーマットされ、第2の近隣システムの存在を示す情報を含み、データの第1の部分を含む、第1のパケット(またはメッセージ)をブロードキャストできる。例えば、データの第1の部分は、命令セットの始まり、アプリケーションデータのセグメント、秘密メッセージまたは秘密情報のサブセットなどであり得る。データの第1の部分とともに第1のパケットフォーマットの第1のパケットをブロードキャストした後で、ワイヤレス識別情報送信機110は、事前に定義された数のミリ秒(例えば、40ms、50ms、60ms、100msなど)の間、ビジー待機サイクルを実行することなどによって、任意選択のブロック1304においてある期間待機できる。事前に定められた数のミリ秒は、近隣ブロードキャスト受信機138が第1のパケットを受信して処理することが必要であり得る、所定の長さの時間(または閾値)に対応し得る。任意選択の実施形態では、ワイヤレス識別情報送信機110は、事前に定義された数の時間/繰り返し/反復の間、ブロック1402における動作によって第1のパケットをブロードキャストし続けることができる。例えば、ワイヤレス識別情報送信機110は、近くの近隣ブロードキャスト受信機138が第1のパケットを受信して処理できることを確実にするために、ある数の繰り返しの間、数ミリ秒ごとに第1のパケットを再ブロードキャストできる。任意選択の待機期間および/または第1のパケットをブロードキャストする反復の回数は、既知の処理サイクルの時間または広範な受信機デバイスの機能に基づいてよく、または代替的に、近隣ブロードキャスト受信機138に対する特定の機能/処理の要件に基づいてよい。
[0186] 図14Bの方法1450を参照すると、ブロック1352、1354〜1360の動作は上で説明されたものと同様であり得る。具体的には、近隣ブロードキャスト受信機138は、ブロック1352において、第1のソフトウェア実装形態を介して第1のパケットフォーマットの第1のパケットを受信できる。上で説明されたように、近隣ブロードキャスト受信機138は、Bluetooth規格において定義される、および/または図3A〜図4Bを参照して上で説明されたパケットフォーマットのような、短距離ワイヤレス信号114を介してブロードキャストされる、既知の構造のBluetoothアドバタイズパケットを監視するように構成され得る。ブロック1354において、近隣ブロードキャスト受信機138は、第2の近隣システムの存在を示す情報を検出するために、受信された第1のパケットを第1のソフトウェア実装形態によって処理できる。ブロック1452において、近隣ブロードキャスト受信機138は、処理された第1のパケットからデータの第1の部分を識別し記憶できる。具体的には、近隣ブロードキャスト受信機138は、第1の部分が存在することを示し、ワイヤレス識別情報送信機110からの後で受信されるデータと組み合わされ得る、受信された第1のパケットのペイロード内のコード、ビット、メッセージ、または他の情報を識別できる。例えば、近隣ブロードキャスト受信機138は、近隣ブロードキャスト受信機138によってまだ受信されていない他のパケットともに使用されるべきデータをペイロードが含むことを示すフラグビットを検出するために、受信された第1のパケット内のデータを解析できる。近隣ブロードキャスト受信機138は、第2のパケットフォーマットおよび/またはアプリケーションと関連付けられる一時記憶バッファまたは他の位置に、データの第1の部分を記憶できる。例えば、データの第1の部分は、近隣ブロードキャスト受信機138がワイヤレス識別情報送信機110からのブロードキャストメッセージからの部分的なデータと関連付けるレジスタまたはメモリに記憶され得る。いくつかの実施形態では、近隣ブロードキャスト受信機138は、データの残り(すなわち、データの第2の部分)を受信するときの正しい後続の組合せ動作を可能にするために、受信された第1のパケット、ならびに/または第1のパケットおよび/もしくはワイヤレス識別情報送信機110に対応する識別子に関連して、データの第1の部分を記憶できる。例えば、近隣ブロードキャスト受信機138は、第1のパケット内でも示される固有の識別子またはタイムスタンプとリンクされるデータベースのデータ記録に、データの第1の部分を記憶できる。
[0187] 近隣ブロードキャスト受信機138は、あるルーチンまたはソフトウェアに対する、ロード、開始、起動、または登録のためのコマンドのような、近隣ブロードキャスト受信機138によって実行されるべき動作を示す、コマンド、コード、または命令を識別するために、受信された第1のパケットを処理できる。従って、ブロック1356において、第2の近隣システムの存在を示す情報を検出したことに応答して、近隣ブロードキャスト受信機138は、処理された第1のパケットに基づいて第2のパケットフォーマットと関連付けられるアプリまたはファームウェアを起動することなどによって、第2の近隣システムと関連付けられる第2のソフトウェア実装形態を調整する(または第2のソフトウェア実装形態の挙動を変更する)ことができる。
[0188] 方法1400に戻ると、ブロック1406において、ワイヤレス識別情報送信機110は、第2の近隣システムと関連付けられる第2のフォーマットでフォーマットされデータの第2の部分とデバイス識別子とを含む、第2のパケット(またはメッセージ)をブロードキャストできる。例えば、第2のパケットは、図3A〜図4Bを参照して上で説明されたようなパケット構造の1つでフォーマットされる、無接続Bluetoothパケットであり得る。第2のパケットは、暗号化される、または別様に不明瞭にされるローリング識別子のような、ブロック208の動作において生成される識別子を含み得る。データの第2の部分は、有用な情報、命令、コマンド、またはデータを生成するために第1のデータ内で組み合わされ得る、様々なタイプの情報を含み得る。例えば、第2の部分は、データの第1の部分の中の情報と組み合わされない限り意味をなさない、または有用ではない情報を含み得る。別の例として、データの第2の部分は、センサデータ報告の前半であるデータの第1の部分と組み合わされ得る、センサデータ報告の後半であり得る。ワイヤレス識別情報送信機110は次いで、新たなデバイス識別子を生成するためにブロック208の動作へと続く前に、任意選択のブロック1308において、事前に定義された数のミリ秒のようなある期間待機できる。任意選択の実施形態では、ワイヤレス識別情報送信機110は、第2のパケット事前に定義された数の繰り返しをブロードキャストするなど、第2のパケットのブロードキャストを繰り返すために、ブロック1406の動作を続けることができる。
[0189] いくつかの実施形態では、デバイス識別子は、データの第1の部分と第2の部分とに分割され得る。例えば、ワイヤレス識別情報送信機110は、不明瞭にされた識別子またはローリング識別子を表す第1の数のビットを伴う第1のパケットを送信でき、不明瞭にされた識別子の残りを表す第2の数のビットを伴う第2のパケットを送信できる。
[0190] 方法1450に戻ると、ブロック1358において、近隣ブロードキャスト受信機138は、調整された第2のソフトウェア実装形態を介して第2のパケットフォーマットの第2のパケットを受信でき、ブロック1360において、第2の近隣システム(および第2のパケットフォーマット)と関連付けられる第2のソフトウェア実装形態によって、受信された第2のパケットを処理できる。例えば、起動されたアプリケーションは、受信された第2のパケット内でローリング識別子および/またはデータを識別するために、受信された第2のパケット内のヘッダデータを解釈できる。ブロック1454において、近隣ブロードキャスト受信機138は、処理された第2のパケット内からデータの第2の部分を識別できる。例えば、処理(例えば、解析および解析されたデータの解釈)に基づいて、近隣ブロードキャスト受信機138は、受信された第1のパケット内の第1の部分と組み合わされるべき第2の部分を第2のパケットのペイロードが含むことを示す、ビット、フラグ、またはコードを検出できる。
[0191] ブロック1456において、近隣ブロードキャスト受信機138は、受信された第1のパケットおよび第2のパケットからのデータの識別された第1の部分と第2の部分とを使用して、動作を実行できる。例えば、近隣ブロードキャスト受信機138は、データの記憶された第1の部分をデータの第2の部分と組み合わせ、または統合するための動作を実行できる。別の例として、近隣ブロードキャスト受信機138は、第1の部分および第2の部分によって表される動作の順序を識別するために、データの第1の部分と第2の部分とを分析でき、動作を順序通りに実行できる。別の例として、近隣ブロードキャスト受信機138は、中心サーバに中継されるべきサイティングメッセージに、データの第1の部分と第2の部分の両方を詰めることができる。いくつかの実施形態では、データの第1の部分および第2の部分は、近隣ブロードキャスト受信機138によって実行され得るコマンド(例えば、ソフトウェア命令、API呼など)を生成するために、近隣ブロードキャスト受信機138によって処理され、または別様に組み合わされ得る。別の実施形態では、データの第1の部分および第2の部分は、ワイヤレス識別情報送信機110と関連付けられるローリング識別子を生成するために処理され、または別様に組み合わされ得る。近隣ブロードキャスト受信機138は、さらなるパケットを受信するためにブロック1352に戻ることによって動作を繰り返すことができる。
[0192] 図15は、例示的なワイヤレス識別情報送信機110のコンポーネントを示す。ワイヤレス識別情報送信機110は、マイクロコントローラ1501と、アンテナ1506に結合された短距離無線1504(例えば、Bluetooth無線または送受信機)と、メモリ1502と、バッテリ1510とを含み得る。これらのコンポーネントは共通の接続によってリンクされるものとして示されるが、これらは様々な方法で相互接続され構成され得る。例えば、ワイヤレス識別情報送信機110は、マイクロコントローラ1501がメモリ1502の内容に基づいてメッセージをいつ送信するかを決定できるように、構成され得る。いくつかの実施形態では、マイクロコントローラ1501はBluetoothシステムオンチップユニットであり得る。メモリ1502はまた、マイクロコントローラ1501からのコマンドに基づいて、アンテナ1506を介して短距離無線1504によって送信されるべき1つまたは複数のメッセージまたはメッセージの部分を含み得る。バッテリ1510は、他のコンポーネントにより必要とされるような電力を供給できる。また、いくつかの実装形態では、マイクロコントローラ1501、短距離無線1504、および/またはメモリ1502は、単一の集積回路として一緒に集積され得る。これらのコンポーネントは、標準的な、または市販の構成のマイクロチップであってよく、例示的な実施形態の構造と矛盾しないブロックとして図15において表される。
[0193] ワイヤレス識別情報送信機110は、ブレスレットのような様々な物体と結合され、または様々な物体に組み込まれ得る。例えば、例示的なワイヤレス識別情報送信機110は、腕時計バンドまたは犬の首輪のような、ストラップに容易に取り付けられる形態であり得る。代替的な実施形態は、ワイヤレス識別情報送信機110を、追跡を必要とし得る任意の他の動く物体に組み込むことができる。
[0194] ワイヤレス識別情報送信機110は、定期的に電力節減モードに入り、またはスリープ状態になることによって、例えば、スリープと、ワイヤレス識別情報送信機110の識別コードを伴うパケットのブロードキャストとを一定の間隔で繰り返すことによって、電力を節減できる。様々な実施形態は、より頻繁に、またはより稀にブロードキャストするいくつかの実施形態、スリープ期間とスリープ期間との間に数秒または数分ごとに目覚めてブロードキャストするいくつかの実施形態などの、ブロードキャストとスリープの様々な周期を含み得る。
[0195] いくつかの実施形態では、バッテリ1510は交換可能なコイン電池バッテリであり得る。別の実施形態では、ワイヤレス識別情報送信機110は、アンテナ1506を利用して、更新ソフトウェア、命令、または、送信間隔および/もしくは送信電力の構成などの構成動作において記憶し使用するための他のデータを受信できる。上で説明されたように、ワイヤレス識別情報送信機110はまた、ローリングコードまたは識別子を生成するための、ソフトウェア、アルゴリズム、命令、コード、または他のルーチンを記憶し実行できる。いくつかの実施形態では、ワイヤレス識別情報送信機は、時間(例えば、UTC)情報を保持しなくてよいが、代わりに、時計として30ppm 16kHzの水晶を使用し得る。時計として水晶をそのように使用することで、1年で約40秒の時間のずれが生じ得る。
[0196] あるいは、メモリ1502は、マイクロコントローラ1501の中に含まれてよく、マイクロコントローラ1501は、別個の処理ユニットも含み得る。短距離無線1504は、デバイスIDを含むメッセージまたは信号をブロードキャストすることが可能な送信機、または代替的に、RF信号を送信し受信するように構成される送受信機であってよく、通信プロトコルを利用した他のデバイスとの通信を可能にする。例えば、ワイヤレス識別情報送信機110は、スマートフォンのような、他の短距離無線対応デバイスと通信するように構成され得る。いくつかの実施形態では、短距離無線1504は、LTE−D、ピアツーピアLTE−D、およびWiFi−Directのような、様々な低エネルギーのワイヤレス通信プロトコルを介して通信するように構成され得る。
[0197] いくつかの実施形態では、ワイヤレス識別情報送信機110は、近隣ブロードキャスト受信機によって受信されることが可能な、および/またはユーザにより聞かれることが可能な音を放出するように構成されるスピーカ(図示されず)を含み得る。例えば、ワイヤレス識別情報送信機110は、聴取している近隣ブロードキャスト受信機にその存在を示し得る、可聴の通信を放出できる。別の実施形態では、ワイヤレス識別情報送信機110は、変化する信号強度で信号を送信するように構成されてよく、これにより、ワイヤレス識別情報送信機110からのブロードキャストが近隣ブロードキャスト受信機によって受信され得る範囲を変化させる。
[0198] 加えて、ワイヤレス識別情報送信機110は、様々な条件と変数とを測定するための、1つまたは複数のセンサを含み得る。いくつかの実施形態では、ワイヤレス識別情報送信機110は、加速度計1515(または、ジャイロスコープまたは重力計のような任意の他の動きセンサ)を含んでよく、これは、ワイヤレス識別情報送信機110と関連付けられる資産の動きを示すデータを収集できる。例えば、加速度計1515は、ワイヤレス識別情報送信機110を持ち運ぶ子供の動きを記述する動きデータを生成できる。ワイヤレス識別情報送信機110に含まれ得る他のセンサには、温度センサ1516(サーミスタのような)、放射線センサ1517、湿度センサ1518、および二酸化炭素(CO2)センサ1519がある。様々な実施形態において、ワイヤレス識別情報送信機110は、これらおよび他のセンサの任意の組合せを含み得る。これらの可能性のあるセンサは、ワイヤレス識別情報送信機110に組み込まれ得るセンサのタイプの例にすぎず、他のタイプのセンサも含まれ得る。例えば、ワイヤレス識別情報送信機110はまた、マイクロフォン、カメラ、熱センサ、圧力センサ、および光センサのような、様々な図に示されないセンサを含み得る。
[0199] 図16は、例示的な近隣ブロードキャスト受信機の実施形態の主要なコンポーネントを示す。近隣ブロードキャスト受信機142は、アンテナ1606に結合された短距離ワイヤレス無線(例えば、ワイヤレス識別情報送信機中のBluetooth無線)と通信することが可能な短距離無線1604(例えば、Bluetooth無線または送受信機)と、インターネットのようなネットワークを介して中心サーバ120に直接または間接的に返信することが可能な2次的ネットワークデバイス1608とを含み得る。いくつかの実施形態では、2次的ネットワークデバイス1608は、セルラーまたはワイヤレスの無線もしくはモデム、または他の有線ネットワークデバイスであってよい。近隣ブロードキャスト受信機142はまた、プロセッサ1601と、メモリ1602と、主要な電源または近隣ブロードキャスト受信機142が商用電源に結合された場合のバックアップ電源のいずれかとしてのバッテリ1610とを含み得る。近隣ブロードキャスト受信機142は、GPS受信機1614、または、ワイヤレス識別情報送信機から受信される任意のメッセージと関連付けるべき現在の位置を決定するための他のタイプの位置決定機構を含み得る。近隣ブロードキャスト受信機がモバイルではない場合、いくつかの実施形態では、位置が知られており不変であり得るので、近隣ブロードキャスト受信機は、GPS受信機1614を含まなくてよい。これらのコンポーネントは共通の接続によってリンクされるものとして示されるが、これらは様々な方法で相互接続され構成され得る。これらのコンポーネントは、標準的な、または市販の構成のマイクロチップであってよく、例示的な実施形態の構造と矛盾しないブロックとして図16において表される。
[0200] 図17は、様々な実施形態での使用に適したスマートフォンタイプのモバイルデバイスのシステムブロック図である。スマートフォンであるモバイルデバイス1700は、内部メモリ1702とディスプレイ1703とスピーカ1754とに結合されたプロセッサ1701を含み得る。加えて、スマートフォンであるモバイルデバイス1700は、プロセッサ1701に結合されたワイヤレスデータリンクおよび/または携帯電話送受信機1705に接続され得るとともに、広範囲のワイヤレス通信ネットワークを通じて通信することが可能な、電磁放射を送信および受信するためのアンテナ1704を含み得る。スマートフォンであるモバイルデバイス1700は、通信することまたはワイヤレス識別情報送信機とペアリングすることが可能な、別個の短距離無線送受信機1724を含み得る。スマートフォンであるモバイルデバイス1700は通常、ユーザ入力を受け取るためのメニュ選択ボタンまたはロッカースイッチ1708も含み得る。いくつかの実施形態では、スマートフォンであるモバイルデバイス1700はまた、プロセッサ1701に結合されたGPSチップ1726を含み得る。
[0201] 図18は、本開示の様々な態様を実装するのに適したサーバ1800のシステムブロック図である。サーバ1800は、市販のサーバデバイスであってよい。そのようなサーバ1800は通常、揮発性メモリ1802と、ディスクドライブ1803などの大容量不揮発性メモリとに結合されたプロセッサ1801とを含む。サーバ1800はまた、プロセッサ1801に結合されたフロッピー(登録商標)ディスクドライブ、コンパクトディスク(CD)またはDVDディスクドライブ1806を含み得る。サーバ1800はまた、他のブロードキャストシステムコンピュータとサーバとに結合されたローカルエリアネットワークのような、ネットワーク1805とのデータ接続を確立するための、プロセッサ1801に結合されたネットワークアクセスポート1804を含み得る。
[0202] プロセッサ1501、1601、1701、1801は、以下で説明される様々な実施形態の機能を含む、種々の機能を実行するようにソフトウェア命令(アプリケーション)によって構成され得る任意のプログラマブルマイクロプロセッサ、マイクロコンピュータあるいは1つまたは複数の多重プロセッサチップであり得る。一部のモバイル近隣ブロードキャスト受信機では、1つのプロセッサをワイヤレス通信機能専用とし、1つのプロセッサを他のアプリケーションの実行専用とするなど、複数のプロセッサ1701が設けられ得る。一般に、ソフトウェアアプリケーションは、アクセスされ、プロセッサ1501、1601、1701、1801にロードされる前に内部メモリ1502、1602、1702、1802に記憶され得る。プロセッサ1501、1601、1701、1801は、アプリケーションソフトウェア命令を記憶するのに十分な内部メモリを含み得る。
[0203] 上記の方法の説明およびプロセスフロー図は、単に説明のための例として提供されたものであり、様々な実施形態のステップが提示された順序で実行されなければならないことを要求または暗示するものではない。当業者により諒解されるように、上記の実施形態におけるステップの順序は、任意の順序で実行され得る。「その後」、「次いで」、「次に」などの単語は、ステップの順序を限定するものではなく、これらの単語は、単に、読者に方法の説明を案内するために使用される。さらに、例えば、冠詞「a」、「an」または「the」を使用する単数形の請求項の要素への言及は、その要素を単数形に限定するものと解釈されるべきではない。
[0204] 本明細書で開示される実施形態に関して説明された様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得る。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的なコンポーネント、ブロック、モジュール、回路、およびステップが、上では概してそれらの機能に関して説明された。そのような機能がハードウェアとして実装されるか、ソフトウェアとして実装されるかは、具体的な適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明された機能を具体的な適用例ごとに様々な方法で実装できるが、そのような実装の決定は、本発明の範囲からの逸脱を生じるものと解釈されるべきではない。
[0205] 本明細書で開示される態様に関して説明された様々な例示的な論理、論理ブロック、モジュール、および回路を実装するために使用されるハードウェアは、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)または他のプログラマブル論理デバイス、個別ゲートまたはトランジスタ論理、個別ハードウェアコンポーネント、あるいは本明細書で説明された機能を実行するように設計されたそれらの任意の組合せを用いて実装または実行され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサは、コンピューティングデバイスの組合せ、例えば、DSPおよびマイクロプロセッサ、複数のマイクロプロセッサ、DSPコアと連係する1つまたは複数のマイクロプロセッサ、またはいかなる他のこのような構成の組合せとしても実装され得る。代替的に、いくつかのステップまたは方法は、所与の機能に固有の回路によって実行され得る。
[0206] 1つまたは複数の代表的な態様において、説明された機能は、ハードウェア、ソフトウェア、プロセッサ実行可能ソフトウェア命令(またはプロセッサ実行可能命令)、ファームウェア、またはそれらの任意の組合せにおいて実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を通じて送信され得る。本明細書で開示される方法またはアルゴリズムのステップは、有形の非一時的プロセッサ可読またはコンピュータ可読の記憶媒体(すなわち、プロセッサ実行可能命令を記憶している非一時的プロセッサ可読記憶媒体)上に存在し得るプロセッサ実行可能ソフトウェアモジュールにおいて具現化され得る。有形の非一時的コンピュータ可読記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であり得る。限定ではなく、例として、そのような非一時的コンピュータ可読媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMまたは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気ストレージデバイス、あるいは、命令またはデータ構造の形態で所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得る、任意の他の媒体を備え得る。本明細書で使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)と、レーザディスク(登録商標)(disc)と、光ディスク(disc)と、デジタル多用途ディスク(disc)(DVD)と、フロッピーディスク(disk)と、ブルーレイ(登録商標)ディスク(disc)とを含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザで光学的に再生する。上記の組合せも非一時的コンピュータ可読媒体の範囲内に含まれるべきである。加えて、方法またはアルゴリズムの動作は、コンピュータプログラム製品に組み込まれ得る、有形の非一時的機械可読媒体および/またはコンピュータ可読媒体上のコードおよび/または命令の1つまたは任意の組合せまたはセットとして存在し得る。
[0207] 開示された実施形態の上記の説明は、当業者が本発明を製作または使用することを可能にするように提供されたものである。これらの実施形態への様々な修正は当業者には容易に明らかであり、本明細書で定義された一般原理は、本発明の趣旨または範囲から逸脱することなく他の実施形態に適用され得る。従って、本発明は、本明細書で示された実施形態に限定されるものではなく、以下の特許請求の範囲ならびに本明細書で開示される原理および新規の特徴に合致する最も広い範囲を与えられるべきである。
[0207] 開示された実施形態の上記の説明は、当業者が本発明を製作または使用することを可能にするように提供されたものである。これらの実施形態への様々な修正は当業者には容易に明らかであり、本明細書で定義された一般原理は、本発明の趣旨または範囲から逸脱することなく他の実施形態に適用され得る。従って、本発明は、本明細書で示された実施形態に限定されるものではなく、以下の特許請求の範囲ならびに本明細書で開示される原理および新規の特徴に合致する最も広い範囲を与えられるべきである。
以下に、出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
第1のパケットフォーマットと第2のパケットフォーマットとを使用してインターリーブ方式で送信されるビーコンメッセージを処理するための方法であって、
受信機によって、ビーコンによって送信される前記第1のパケットフォーマットの第1のメッセージを受信することと、
ビーコンによって送信されている前記第2のパケットフォーマットの1つまたは複数のメッセージの存在を示す、前記第1のメッセージ中の情報を検出することと、
前記検出された情報に基づいて、前記第2のパケットフォーマットの前記1つまたは複数のメッセージを処理するように前記受信機を調整することと、
前記受信機を調整したことに応答して前記受信機によって、ビーコンによって送信される前記第2のパケットフォーマットの第2のメッセージを受信することと、
前記受信機によって、前記受信された第2のメッセージに基づいて動作を実行することとを備える、方法。
[C2]
前記第2のパケットフォーマットの前記第2のメッセージを受信することが、前記第1のパケットフォーマットの前記第1のメッセージを受信することよりも多量の電力を消費する、C1に記載の方法。
[C3]
前記受信機によって、前記第1のパケットフォーマットの前記第1のメッセージを受信することが、前記受信機によって、第1のビーコンから前記第1のパケットフォーマットの前記第1のメッセージを受信することを備え、
前記受信機を調整したことに応答して前記受信機によって、ビーコンによって送信される前記第2のパケットフォーマットの前記第2のメッセージを受信することが、前記受信機を調整したことに応答して前記受信機によって、前記第1のビーコンから前記第2のパケットフォーマットの前記第2のメッセージを受信することを備える、C1に記載の方法。
[C4]
前記受信機によって、前記第1のパケットフォーマットの前記第1のメッセージを受信することが、前記受信機によって、第1のビーコンから前記第1のパケットフォーマットの前記第1のメッセージを受信することを備え、
前記受信機を調整したことに応答して前記受信機によって、ビーコンによって送信される前記第2のパケットフォーマットの前記第2のメッセージを受信することが、前記受信機を調整したことに応答して前記受信機によって、第2のビーコンから前記第2のパケットフォーマットの前記第2のメッセージを受信することを備える、C1に記載の方法。
[C5]
前記第2のビーコンがモバイルデバイスである、C4に記載の方法。
[C6]
前記検出された情報に基づいて、前記第2のパケットフォーマットの前記1つまたは複数のメッセージを処理するように前記受信機を調整することが、
前記受信機によって、前記検出された情報に基づいて、前記第2のパケットフォーマットの前記1つまたは複数のメッセージと関連付けられるソフトウェア実装形態を起動することと、
前記受信機によって、前記受信機における前記第2のパケットフォーマットの前記1つまたは複数のメッセージの受信を前記ソフトウェア実装形態が監視する頻度を上げるために、前記第2のパケットフォーマットの前記1つまたは複数のメッセージと関連付けられる前記ソフトウェア実装形態のデューティ比を変更することとの少なくとも1つを備える、C1に記載の方法。
[C7]
前記受信機によって、前記受信された第2のメッセージに基づいて前記動作を実行することが、前記受信機によって、前記受信された第2のメッセージからのデータを含むサイティングメッセージをサーバに送信することを備える、C1に記載の方法。
[C8]
前記受信機によって、前記受信された第1のメッセージを処理することによってデータの第1の部分を識別することと、
前記受信機によって、前記受信された第2のメッセージを処理することによって前記データの第2の部分を識別することとをさらに備え、
前記受信機によって、前記受信された第2のメッセージに基づいて前記動作を実行することが、
前記受信機によって、前記データの前記識別された第1の部分と前記データの前記識別された第2の部分とを組み合わせることと、
前記受信機によって、前記データの前記識別された第1の部分と前記データの前記識別された第2の部分との組合せに基づいてコマンドを生成することと、
前記受信機によって前記コマンドを実行することと
を備える、C1に記載の方法。
[C9]
前記第1のメッセージおよび前記第2のメッセージが接続不可能Bluetoothパケットである、C1に記載の方法。
[C10]
前記第1のメッセージが、0という第1の長さを伴う第1の普遍的な固有の識別子を含み、または、Bluetooth SIGにより規定される普遍的な固有の識別子を含まず、
前記第2のメッセージが、0ではない第2の長さを伴う第2の普遍的な固有の識別子を含む、C1に記載の方法。
[C11]
前記第2のパケットフォーマットが、前記第2のパケットフォーマットの前記1つまたは複数のメッセージにおいて、前記第1のメッセージにおけるよりも多くのデータが送信されることを可能にする、C1に記載の方法。
[C12]
前記第2のパケットフォーマットがより強いセキュリティプロトコルを利用する、C1に記載の方法。
[C13]
前記受信機がモバイルデバイスに含まれる、C1に記載の方法。
[C14]
前記ビーコンがモバイルデバイスに含まれる、C1に記載の方法。
[C15]
ビーコンによって送信される第1のパケットフォーマットの第1のメッセージを受信することと、
ビーコンによって送信されている第2のパケットフォーマットの1つまたは複数のメッセージの存在を示す、前記第1のメッセージ中の情報を検出することと、
前記検出された情報に基づいて、前記第2のパケットフォーマットの前記1つまたは複数のメッセージを処理するようにコンピューティングデバイスを調整することと、
前記コンピューティングデバイスを調整したことに応答して、ビーコンによって送信される前記第2のパケットフォーマットの第2のメッセージを受信することと、
前記受信された第2のメッセージに基づいて動作を実行することと
を備える動作を実行するように、プロセッサ実行可能命令によって構成されたプロセッサを備える、コンピューティングデバイス。
[C16]
前記第2のパケットフォーマットの前記第2のメッセージを受信することが、前記第1のパケットフォーマットの前記第1のメッセージを受信することよりも多量の電力を消費するように、前記プロセッサがプロセッサ実行可能命令によって構成される、C15に記載のコンピューティングデバイス。
[C17]
前記第1のパケットフォーマットの前記第1のメッセージを受信することが、第1のビーコンから前記第1のパケットフォーマットの前記第1のメッセージを受信することを備え、
前記コンピューティングデバイスを調整したことに応答して、ビーコンによって送信される前記第2のパケットフォーマットの前記第2のメッセージを受信することが、前記コンピューティングデバイスを調整したことに応答して、前記第1のビーコンから前記第2のパケットフォーマットの前記第2のメッセージを受信することを備えるように、前記プロセッサがプロセッサ実行可能命令によって構成される、C15に記載のコンピューティングデバイス。
[C18]
前記第1のパケットフォーマットの前記第1のメッセージを受信することが、第1のビーコンから前記第1のパケットフォーマットの前記第1のメッセージを受信することを備え、
前記コンピューティングデバイスを調整したことに応答して、ビーコンによって送信される前記第2のパケットフォーマットの前記第2のメッセージを受信することが、前記コンピューティングデバイスを調整したことに応答して、第2のビーコンから前記第2のパケットフォーマットの前記第2のメッセージを受信することを備えるように、前記プロセッサがプロセッサ実行可能命令によって構成される、C15に記載のコンピューティングデバイス。
[C19]
前記第2のビーコンがモバイルデバイスである、C18に記載のコンピューティングデバイス。
[C20]
前記検出された情報に基づいて、前記第2のパケットフォーマットの前記1つまたは複数のメッセージを処理するように前記コンピューティングデバイスを調整することが、
前記検出された情報に基づいて、前記第2のパケットフォーマットの前記1つまたは複数のメッセージと関連付けられるソフトウェア実装形態を起動することと、
前記コンピューティングデバイスにおける前記第2のパケットフォーマットの前記1つまたは複数のメッセージの受信を前記ソフトウェア実装形態が監視する頻度を上げるために、前記第2のパケットフォーマットの前記1つまたは複数のメッセージと関連付けられる前記ソフトウェア実装形態のデューティ比を変更することとの少なくとも1つを備えるように、前記プロセッサがプロセッサ実行可能命令によって構成される、C15に記載のコンピューティングデバイス。
[C21]
前記受信された第2のメッセージに基づいて前記動作を実行することが、前記受信された第2のメッセージからのデータを含むサイティングメッセージをサーバに送信することを備えるように、前記プロセッサがプロセッサ実行可能命令によって構成される、C15に記載のコンピューティングデバイス。
[C22]
前記プロセッサが、
前記受信された第1のメッセージを処理することによってデータの第1の部分を識別することと、
前記受信された第2のメッセージを処理することによって前記データの第2の部分を識別することとをさらに備えるプロセッサ実行可能命令によって構成され、
前記受信された第2のメッセージに基づいて前記動作を実行することが、
前記データの前記識別された第1の部分と前記データの前記識別された第2の部分とを組み合わせることと、
前記データの前記識別された第1の部分と前記データの前記識別された第2の部分との組合せに基づいてコマンドを生成することと、
前記コマンドを実行することと
を備える、C15に記載のコンピューティングデバイス。
[C23]
前記第1のメッセージおよび前記第2のメッセージが接続不可能Bluetoothパケットである、C15に記載のコンピューティングデバイス。
[C24]
前記第1のメッセージが、0という第1の長さを伴う第1の普遍的な固有の識別子を含み、または、Bluetooth SIGにより規定される普遍的な固有の識別子を含まず、
前記第2のメッセージが、0ではない第2の長さを伴う第2の普遍的な固有の識別子を含む、C15に記載のコンピューティングデバイス。
[C25]
前記第2のパケットフォーマットが、前記第2のパケットフォーマットの前記1つまたは複数のメッセージにおいて、前記第1のメッセージにおけるよりも多くのデータが送信されることを可能にする、C15に記載のコンピューティングデバイス。
[C26]
前記第2のパケットフォーマットがより強いセキュリティプロトコルを利用する、C15に記載のコンピューティングデバイス。
[C27]
前記コンピューティングデバイスがモバイルデバイスである、C15に記載のコンピューティングデバイス。
[C28]
前記ビーコンがモバイルデバイスに含まれる、C15に記載のコンピューティングデバイス。
[C29]
コンピューティングデバイスのプロセッサに、
ビーコンによって送信される第1のパケットフォーマットの第1のメッセージを受信することと、
ビーコンによって送信されている第2のパケットフォーマットの1つまたは複数のメッセージの存在を示す、前記第1のメッセージ中の情報を検出することと、
前記検出された情報に基づいて、前記第2のパケットフォーマットの前記1つまたは複数のメッセージを処理するように前記コンピューティングデバイスを調整することと、
前記コンピューティングデバイスを調整したことに応答して、ビーコンによって送信される前記第2のパケットフォーマットの第2のメッセージを受信することと、
前記受信された第2のメッセージに基づいて動作を実行することと
を備える動作を実行させるように構成されたプロセッサ実行可能命令を記憶した、非一時的プロセッサ可読記憶媒体。
[C30]
受信機と、
第1のビーコンとを備え、
前記受信機が、
第1の送受信機と、
前記第1の送受信機に結合され、動作を実行するようにプロセッサ実行可能命令によって構成された第1のプロセッサとを備え、前記動作が、
前記第1の送受信機を介して、第1のパケットフォーマットの第1のメッセージを受信することと、
近くのビーコンによって送信されている第2のパケットフォーマットの1つまたは複数のメッセージの存在を示す、前記第1のメッセージ中の情報を検出することと、
前記検出された情報に基づいて、前記第2のパケットフォーマットの前記1つまたは複数のメッセージを処理するように前記受信機を調整することと、
前記受信機を調整したことに応答して前記第1の送受信機を介して、前記第2のパケットフォーマットの第2のメッセージを受信することと、
前記受信機によって、前記受信された第2のメッセージに基づいて動作を実行することと
を備え、
前記第1のビーコンが、
第2の送受信機と、
前記第2の送受信機に結合され、動作を実行するようにプロセッサ実行可能命令によって構成された第2のプロセッサとを備え、前記動作が、
前記第2の送受信機を介して、前記第1のパケットフォーマットの前記第1のメッセージをブロードキャストすること
を備える、システム。