(58)【調査した分野】(Int.Cl.,DB名)
前記第1のマスタービーコンは、前記一群のビーコンの各ビーコンに対して、前記各ビーコンの前記第2のプロファイル識別子が前記一群のビーコン間で重複がないように自動的に変更する、
請求項4に記載の方法。
前記第1のマスタービーコンが前記複数のビーコンの各ビーコンを自動的に検出するステップにおいて、前記第1のマスタービーコンは各ビーコンからのアドバタイズメントを取得し、
前記第1のマスタービーコンが前記一群のビーコンの各ビーコンを前記送信モードから前記受信モードに自動的に切り替えるステップにおいて、
前記第1のマスタービーコンは、前記ビーコンからの前記アドバタイズメントを使用して前記ビーコンのセキュリティプロトコルを識別するとともに、前記セキュリティプロトコルを使用して前記ビーコンを前記送信モードから前記受信モードに切り替え、
前記第1のマスタービーコンが前記一群のビーコンの各ビーコンを前記受信モードから前記送信モードに自動的に切り替えるステップにおいて、前記第1のマスタービーコンは
、前記セキュリティプロトコルを使用して前記ビーコンを前記受信モードから前記送信モードに切り替える、
請求項6に記載の方法。
前記マスタービーコンが、前記一群のビーコンの各ビーコンについて、前記ビーコンのUUID、変更された前記第1のプロファイル識別子及び変更された前記第2のプロファイル識別子を、前記マスタービーコンから離れたサーバ内のマスターデータベースに格納するステップをさらに含む、
請求項5に記載の方法。
【背景技術】
【0003】
以下の「背景技術」は、本発明について技術的理解を容易にするために提供されるものであり、「背景技術」に単に含まれる内容について、従来技術であることを認めるものと解釈されるべきではない。
【0004】
ブルートゥース(Bluetooth(登録商標))低エネルギー技術(BLE)は、ブルートゥーススマート技術としても知られており、ブルートゥース4.0仕様の一部として導入されたものであり、小型バッテリに依存しなければならないデバイスによる無線通信を長時間可能にするように設計されている。ブルートゥース4.0仕様及びその後継規格であるブルートゥース4.1仕様は、ともに、米国の5209 Lake Washington Blvd NE,Suite350,Kirkland,WA 98033に住所を有するブルートゥース・スペシャル・インタレスト・グループ(Bluetooth SIG)によって公布された。
【0005】
BLEの1つの用途は、ビーコンの分野にある。本明細書で使用される「ビーコン」という用語は、固定長のデータパケットを送信してフォーマットするBLEユニットを備えるとともに互換性のあるBLE対応受信デバイスによって受信できる識別子情報を有する無線近接デバイスを意味しており、最適な例としては、スマートフォン又はタブレットなどを意味する。無線近接デバイスは、近接デバイスと受信デバイスとの間の相対的な近接度(proximity)を判定するために使用される。BLEユニットは、データパケットをBLE対応の低電力無線信号として送信するように構成されたマイクロチップ及びアンテナを備える。データパケットを含む送信無線信号は、「アドバタイズメント(advertisement)」と呼ばれる。受信デバイス上で実行されるソフトウェアは、ビーコンからのアドバタイズメントを受信して処理し、そのビーコンへの相対的な近接性を判定するように構成されるとともに、特定のビーコンに対する特定の近接性を検出したときに所定の動作を実行するように構成される。特定の固定場所にビーコンを配置することにより、GPS(Global Positioning System)などの他のシステムとは独立して、受信デバイスにリアルタイムの位置認識を提供できる。例えば、特定のビーコンがショッピングモール内のトイレの入口の上に置かれている場合、スマートフォンで実行されるソフトウェアプログラムは、その特定のビーコンが検出されたとき(すなわち、スマートフォンの所有者がビーコンのBLE範囲内にある)、スマートフォンは、ビーコンつまりトイレに近づいていることを所有者に知らせる。ビーコンと受信機との近接度は、相対的な信号強度に基づいて決定され、現在の実装では、「隣接(immediate)」、「近い(near)」、「遠い(far)」及び「不明(unknown)」と分類される。したがって、受信機上で実行するソフトウェア、又は適切なネットワークを介して受信機と接続する別のコンピュータ上で実行されるソフトウェアに、適切な演算処理を実装させることによって、ビーコンを使用した位置情報アプリケーションの種類が豊富となる。これらのアプリケーションは、小売業者による顧客への近接通知の送信だけでなく、屋内マッピング(indoor mapping)及び経路案内システム(way−finding system)を含む。BLE及びBLEの現在の仕様は、ビーコン技術に対して適応性があることは、当業者には明らかである。
【0006】
ここで、
図1に示すように、第1例となるビーコンに対して、符号100を付している。当該ビーコン100は、基本構成となるビーコンを示しており、BLE無線信号を送受信するように構成されたBLEユニット102と、BLEユニット102に接続されてBLEユニット102を制御するように構成されたビーコン処理ユニット104と、ビーコン処理ユニット104に接続されたビーコン記憶装置106と、ビーコンに電力を供給するように構成された電源108(通常はバッテリ)を備える(なお、電源108との接続関係については、簡略化のために、図示を省略している。)。ビーコン記憶装置106は、ビーコン100の識別情報110を含む。通常の動作中、ビーコン処理ユニット104は、ビーコン100の識別情報110を引き出し、BLEユニット102に、ビーコン100の識別情報110を含むアドバタイズメントを周期的に送信させる(「送信モード」と呼ばれる)。ビーコン100の識別情報110は、新しい識別情報に置換できる。適切なBLE対応デバイスは、ビーコン100の新しい識別情報を受信してそのビーコン100の新しい識別情報をビーコン記憶装置106に書き込むという演算処理をビーコン処理ユニット104に起動させる信号をBLEユニット102に送信できる(「受信モード」と呼ばれる)。
図1では、個別のブロックとして図示したが、当業者にとって明らかなように、BLEユニット102、ビーコン処理ユニット104及び記憶装置106のうちの1つ以上を単一のユニットで統合するものとしてもよい。
【0007】
ビーコンは、追加の構成要素も含むことができる。
図1Aは、第2例となるビーコン100Aを示しており、
図1で同様の特徴を有する部分については同様の参照符号に接尾辞「A」を追記している。ビーコン100Aは、BLEユニット102A、ビーコン処理ユニット104A、ビーコン記憶装置106A及び電源108Aに加えて、ビーコン処理ユニット104Aに接続された温度センサ112A及びモーションセンサ114A(例えば、加速度計)も含んでいる。したがって、あるビーコンは、ビーコンの識別情報のほかに追加の情報を含むデータパケットを送信できる。温度センサ112A及びモーションセンサ114Aは、ビーコンの一部に追加できるセンサを単に例示したものにすぎず、ビーコンには、様々な種類センサ及び構成要素を幅広く追加することができる。
【0008】
現在、アドバタイズメント(ビーコンの識別情報を含むデータパケット)を送信するための4つの主要な公開ビーコンプロトコル(iBeacon、sBeacon(s−Beaconとも呼ばれる)、AltBeacon及びEddystone)がある。iBeaconプロトコルは、1 Infinite Loop, Cupertino, California, U.S.A. 95014に住所を有するアップル社(Apple Inc.)によって公布されている。iBeaconプロトコルに関する情報は、https://developer.apple.com/ibeacon/で入手できる。AltBeaconプロトコルは、The Powerhouse,3255 Grace Street NW,Washington,DC,U.S.A. 20007に住所を有するラディウスネットワークス社(Radius Networks,Inc.)によって公布されている。AltBeaconプロトコルに関する情報は、http://altbeacon.org/で入手できる。Eddystoneプロトコルは、1600 Amphitheatre Parkway, Mountain View, CA 94043, U.S.A.に住所を有するグーグル社(Google Inc.)によって公布されている。Eddystoneプロトコルに関する情報は、https://developers.google.com/beacons/?hl=enで入手できる。sBeaconプロトコルは、251 5
th Ave, Fl 6, New York City, New York, U.S.A. 10016に住所を有するシグナル360社(Signal360,Inc.)(以前のソニックノウティファイ社(Sonic Notify Inc.))によって公布されている。
【0009】
現在のBLE規格では、アドバタイズメントはビーコンの識別情報を含む37オクテットの16進文字列を有する。iBeacon、sBeacon及びAltBeaconの場合、ビーコンの識別情報は、ビーコンの先頭の16オクテットのユニバーサルユニーク識別子(UUID;universally unique identifier)と、それに続くビーコンの2オクテットの第1のプロファイル識別子と、それに続くビーコンの2オクテットの第2のプロファイル識別子を有する。例えば、アップル社によって公布されたiBeaconフォーマットでは、アドバタイズメントは、アドバタイズメントの全長を示すオクテット、続いて0xFFに設定された2番目のオクテット、続いて4C00に設定されたオクテット(アップル社の会社ID)、続いてデータ形式を示すオクテット、続いてデータ長を示すオクテット、続いて16オクテットのUUID、続いて2オクテットの第1のプロファイル識別子「メジャー(major)」、続いて2オクテットの第2のプロファイル識別子「マイナー(minor)」、続いて較正強度(calibration power)を示すオクテットを備える。iBeaconプロトコルとsBeaconプロトコルでは、UUIDは単に「UUID」と呼ばれ、AltBeaconプロトコルではUUIDは「ID1」と呼ばれる。いずれの場合も16オクテットの文字列であり、同じ機能を提供する。Eddystoneプロトコルでは、ビーコンの識別情報は8オクテットの文字列であり、「名前空間(Namespace)」と呼ばれる先頭の5オクテットのUUIDと、続いて「インスタンス(Instance)」と呼ばれるビーコンの3オクテットプロファイル識別子を含む。説明を簡潔にするために、本明細書では、用語「UUID」は、ビーコンのプロトコルにかかわらず、iBeacon、sBeacon及びAltBeaconプロトコルの先頭の16オクテットの識別子、及びEddystoneプロトコルの先頭の5オクテット「名前空間」識別子を表すものとする。
【0010】
第1のプロファイル識別子及び第2のプロファイル識別子は、ビーコン間で異なるものとしてもよい(例えば、それらはランダムに割り当てられてもよい)が、通常、各製造業者は同一のデフォルトUUIDを割り当てたビーコンを発送する。ビーコンのユーザ又は設置者は、UUID、第1のプロファイル識別子及び第2のプロファイル識別子を、受信デバイス上で実行されるソフトウェアプログラムの演算処理で認識できるように適切な値に設定する。例えば、小売店チェーンは、全店舗におけるすべてのビーコンが同一のUUIDを有するように設定して、前記小売店チェーン専用の携帯電話ソフトウェアアプリケーションが前記UUIDを有するビーコンを検索するようにしてもよい。
【0011】
第1のプロファイル識別子は、概念的にビーコンをグループにまとめるものであり、第2のプロファイル識別子は、グループ内の個々のビーコンを識別するものである。小売店チェーンの例によると、特定の店舗にあるすべてのビーコンに、その店舗を識別するための同一の第1のプロファイル識別子が与えられ、次いで、個々のビーコンに、店舗内の異なる位置を示す異なる第2のプロファイル識別子が与えられる。iBeaconプロトコルでは、第1のプロファイル識別子及び第2のプロファイル識別子は、それぞれ「メジャー」及び「マイナー」と呼ばれ、AltBeaconプロトコルでは、第1のプロファイル識別子及び第2のプロファイル識別子は、「ID2」及び「ID3」と呼ばれる。sBeaconプロトコルでは、第1のプロファイル識別子及び第2のプロファイル識別子は、第1のプロファイル識別子構成要素及び第2のプロファイル識別子構成要素に概念的に分離され得る「SID」と呼ばれる単一の文字列にまとめられている。同様に、Eddystoneプロトコルでは、3オクテットの「インスタンス」プロファイル識別子は、概念的に第1のプロファイル識別子構成要素と第2のプロファイル識別子構成要素とに分けられる。
【0012】
複数のビーコンが存在する環境では、ビーコンを互いに区別するために、ビーコンごとにUUID、第1のプロファイル識別子及び第2のプロファイル識別子を個別に設定しなければならない。これは、識別子の値を変化させるビーコンを十分に近接させる必要があるので、ビーコンの識別子の設定には時間がかかる。さらに、製造業者がUUID、第1のプロファイル識別子及び第2のプロファイル識別子を所望の値に予め設定してビーコンを発送することは、実行可能な解決策ではない。なぜなら、各ビーコンのUUID、第1のプロファイル識別子及び第2のプロファイル識別子(すなわち、どのプリセットされたビーコンであるか)を個々に決定して、各ビーコンが配置されるべき場所に確実に配置することが、依然としてユーザ又は設置者に要求されるからである。
【0013】
したがって、配置された各ビーコンのUUID、第1のプロファイル識別子及び第2のプロファイル識別子を設定又は決定するために必要とされる労働集約的なプロセスが、ビーコン技術の採用に重大な障害となっている。
【発明を実施するための形態】
【0026】
ここで
図2を参照して説明する。
図2は、マスタービーコン200の一例を示すブロック図である。当該マスタービーコン200は、ブルートゥースユニット202と、マスタービーコン処理ユニット204と、マスタービーコン記憶装置206と、電源208と、無線ローカルエリアネットワーク(WLAN)ユニット216と、移動体通信ユニット218と、GPSユニット220とを備える。ブルートゥースユニット202は、BLEに対応しており、BLE無線信号を送受信するように構成されている。当該BLE無線信号の送受信には、ビーコンを送信モードと受信モードとの間で切り替えるとともにビーコン記憶装置に新しいデータを書き込むためのBLE無線信号の送信動作が含まれている。WLANユニット216は、ビーコン200がインターネットなどの他のネットワークと接続できるローカルネットワークへの無線接続を可能にし、移動体通信ユニット218は、移動体通信ネットワークを介してインターネットへの接続を可能にする。GPSユニット220は、測位情報を提供する。電源208は、典型的にはバッテリであり、他の構成要素に電力を供給するように構成されている(なお、電源208との接続関係については、簡略化のために、図示を省略している。)。マスタービーコン処理ユニット204には、ブルートゥースユニット202、マスタービーコン記憶装置206、電源208、WLANユニット216、移動体通信ユニット218、GPSユニット220が接続されている。マスタービーコン記憶装置206には、マスタービーコン200のマスタービーコン識別子(UUID)222と、マスタービーコン200の第1のプロファイル識別子224と、マスタービーコン200の第2のプロファイル識別子226と、マスタービーコン処理ユニット204によって実行可能な命令情報228とが格納される。マスタービーコン処理ユニット204は、例えば、ARMコントローラである。
図2に示すブロック図は、マスタービーコン200の構成要素を機能的な意味で説明するために提供されており、本開示によるマスタービーコンの構成について、構造的又は物理的に制限されるものではない。
図2において明確に示された構成要素は、本開示から逸脱することなく互いに統合され、互いに組み合わせられてもよい。例えば、マスタービーコン処理ユニットとマスタービーコン記憶装置とを統合してもよい。
【0027】
図2に示すマスタービーコン200の構成例は、マスタービーコンの1つの好ましい実施形態を表しているが、他の実施形態としてもよい。例えば、固定配置を意図したマスタービーコンは、移動体通信ユニット又はGPSユニットを省略して、ブルートゥースユニット、マスタービーコン処理ユニット、マスタービーコン記憶装置、電源及びWLANユニットのみで構成できる。同様に、マスタービーコンは、GPSユニットの有無にかかわらず、WLANユニットを備えない場合は、ブルートゥースユニット、マスタービーコン処理ユニット、マスタービーコン記憶装置、電源及び移動体通信ユニットで構成される。マスタービーコンは、様々なタイプのセンサといった、
図2において不図示となる構成要素が追加されるものであってもよい。マスタービーコンは、表示装置を備えるものであっても備えていないものであってよい。コストを低減するためには、表示装置が設けられていないことが好ましい。代替となる別の実施形態として、マスタービーコンは、上述したようなBLE対応のブルートゥースユニットを有するとともに後述するマスタービーコンとして動作するのに必要な命令情報を格納して実行させることで、従来のスマートフォンにより達成できる。
【0028】
ついで
図3を参照して説明する。
図3は、複数のビーコンを(第1の)マスタービーコンに自動的にリンクするための方法300の一例を示すフローチャートである。リンクされた各ビーコンはマスタービーコンのBLE範囲内にある。方法300は、主に(第1の)マスタービーコンによって実行される。方法300の各ステップは、人間の介入なしに自動的に実行されることが好ましい。
【0029】
ステップ302において、受信モードにあるマスタービーコンは、各ビーコンからアドバタイズメントを取得することによって、複数のビーコンの内の各ビーコンを自動的に検出する。ステップ304において、マスタービーコンは、アドバタイズメントからビーコンに関する詳細情報を抽出し、各ビーコンの詳細情報を局所領域(a local array)に格納する。ビーコンの詳細情報は、検出されたビーコンの各々のUUID、第1のプロファイル識別子及び第2のプロファイル識別子を含む。
【0030】
ステップ306において、マスタービーコンは、マスタービーコンから離れたサーバ上のマスターデータベースを確認して、検出されたビーコンのいずれかが、方法300を実行しているマスタービーコンに関連付けられているものとしてマスターデータベースに既に記録されているか否かを判定する。ステップ306における「ノー(No)」判定は、マスタービーコンが初期設定動作を実行することを示し、ステップ308に進む。また、ステップ306における「イエス(Yes)」判定は、マスタービーコンが更新動作を実行することを示し、ステップ312に進む。
【0031】
ステップ308において、マスタービーコンは、カウンタの値を0に設定し、ステップ310に進み、次に(又は最初に)検出されたビーコンにインデックスを付ける。その後、マスタービーコンはステップ318Aに進み、マスターデータベースを確認して、現ビーコン(インデックス付けされたビーコン)が稼働中の別の(第2の)マスタービーコンと既に関連付けられているかどうかを判定する。ステップ318Aにおいて「イエス」と判定され、現ビーコンが別の(第2の)マスタービーコンと既に関連付けられている場合は、マスタービーコンは、後述のステップ336Aに進む。言い換えれば、方法300を実行するマスタービーコンは、既に構築されたビーコンと別のマスタービーコンとの関連付けを阻害しない。ステップ318Aにおいて「ノー」と判定され、現ビーコンが別のマスタービーコンと関連付けられていない場合は、マスタービーコンはステップ320Aに進む。ビーコンが、2つ以上のマスタービーコンによるBLE範囲内に物理的に配置されていない場合には、ステップ318Aを省略できる。なお、ステップ318Aで「イエス」と判定した後、ステップ336Aに進む前に、(第1の)マスタービーコンは、(第2の)マスタービーコンが稼働中であることを確認するために、(第2の)マスタービーコンからの最新のハートビートの受信についてマスターデータベースを確認するものとしてもよい。このようにすることで、(第2の)マスタービーコンが稼働していないと(第1の)マスタービーコンが判定した場合、(第1の)マスタービーコンは、ネットワーク上のサーバ(リモートサーバ)に警告を通知して、ステップ320Aに進むため、マスタービーコンに対するフェイルオーバー機能を発揮できる。
【0032】
ステップ320A及び322Aの過程で、マスタービーコンは、送信モードに切り替わり、現ビーコンを送信モードから受信モードに切り替える。ステップ320Aにおいて、マスタービーコンは、ビーコンと通信するために適切なセキュリティプロトコルを決定する。アドバタイズメントに含まれているUUIDは、メーカーでデフォルト設定されているため、マスタービーコンはUUIDを使用してビーコンのメーカーを識別でき、マスタービーコン記憶装置から適切なセキュリティプロトコルを取得できる。また、セキュリティプロトコルは、ネットワーク上のサーバなどのネットワーク上の別装置(リモートロケーション)から取得されてもよい。ステップ320Aの後、マスタービーコンはステップ322Aに進み、マスタービーコンは、現ビーコンのセキュリティプロトコルを使用して、現ビーコンを送信モードから受信モードに切り替える。その後、ステップ324Aに進む。現ビーコンが送信モードにあるとき、現ビーコンのUUID、第1のプロファイル識別子及び第2のプロファイル識別子は一般に変更できないが、現ビーコンが受信モードにあるときは、UUID、第1のプロファイル識別子及び第2のプロファイル識別子の変更が許可される。
【0033】
ステップ324Aにおいて、マスタービーコンは、現ビーコンの第1のプロファイル識別子をマスタービーコンの第1のプロファイル識別子と同一に設定し、次にステップ326Aに進む。ステップ326Aにおいて、マスタービーコンは、現ビーコンの第2のプロファイル識別子の値を現在のカウンタ値で設定する。現ビーコンの次となるビーコンが処理される前にステップ334Aでカウンタの値が1つ計数される。これにより、現ビーコンの第2のプロファイル識別子を現在のカウンタ値に設定することで、結果的に、マスタービーコンに関連付けられている複数のビーコンそれぞれの第2のプロライフ識別子が重複しなくなる。カウンタ以外の他の手法を用いて、各ビーコンの第2のプロファイル識別子に値を割り当てて、第2のプロファイル識別子の値がマスタービーコンに関連付けられている複数のビーコン内で重複しないようにすることもできる。ステップ326Aの後、マスタービーコンはステップ328Aに進む。ステップ324A及び326Aは、逆の順序で実行されてもよい。
【0034】
ステップ328Aにおいて、マスタービーコンは、ステップ320Aで特定された現ビーコンのセキュリティプロトコルを使用して、現ビーコンを受信モードから送信モードに戻す。
【0035】
したがって、ステップ320A〜328Aによると、現ビーコンの第1のプロファイル識別子の変更処理(ステップ324A)と第2のプロファイル識別子の変更処理(ステップ326A)の前に、マスタービーコンは現ビーコンを送信モードから受信モードに切り替える(ステップ320A及び322A)。そして、現ビーコンの第1のプロファイル識別子が変更されるとともに(ステップ324A)第2のプロファイル識別子が変更された後(ステップ326A)、マスタービーコンは、現ビーコンを受信モードから送信モードに戻す(ステップ328A)。ステップ320A〜328Aは、マスタービーコンが現ビーコンを「捕捉」するための動作ステップとして集約(概念化)できる。ステップ328Aの後、マスタービーコンはステップ330Aに進む。
図3に示すように、ステップ318Aにおいて、検出されたビーコンが既に別のマスタービーコンと関連付けられていると判定されたときは、ステップ320A〜328Aならびにステップ330A及び332Aは省略される。したがって、ステップ320A〜332Aは、複数の検出されたビーコンのうちの一群のビーコンに対して実行される。検出されたビーコンの全てが別のマスタービーコンに関連付けられていない場合は、ステップ320A〜332Aが実行される一群のビーコンは、複数の検出されたビーコンすべてで構成される。検出されたビーコンのうち、既に別のマスタービーコンと関連付けられているビーコンが少なくとも1つあるとともに、別のマスタービーコンとまだ関連付けられていないビーコンも少なくとも1つある場合、ステップ320A〜332Aが実行される一群のビーコンは、複数の検出されたビーコンのうちの一部のビーコンで構成される。検出されたビーコンの全てが既に別のマスタービーコンと関連付けられている場合、ステップ320A〜332Aが実行される一群のビーコンは空となる。すなわち、この場合は、検出されたビーコンのいずれに対してもステップ320A〜332Aは実行されない。
【0036】
ステップ330Aにおいて、マスタービーコンは、マスタービーコンに対する現ビーコンの推定位置を三角測量により算出する。マスタービーコン又はリモートサーバは、マスタービーコンを起点として各ビーコンの相対位置を示すマップを生成でき、マスタービーコンが方法300を周期的に繰り返すことでビーコンの動きを追跡できる。追跡によるビーコンの移動データは、さまざまな目的で使用できる。三角測量の適切な方法は、当業者の能力の範囲内であり、本開示によって知らされる。ステップ330Aの後、マスタービーコンはステップ332Aに進み、ここでマスタービーコンは、現ビーコンに関する情報をリモートサーバ上のマスターデータベース内に格納する。リモートサーバ上のマスターデータベースに格納される情報は、現ビーコンの(変更されていない)UUID、現ビーコンの変更された第1のプロファイル識別子、現ビーコンの変更された第2のプロファイル識別子及び推定位置を含む。マスタービーコンは、ステップ318Aにおいて現ビーコンが他のマスタービーコンに関連付けられていないことが示される場合にのみステップ320A〜332Aに進むので、マスタービーコンは、そのビーコンが他の稼働中のマスタービーコンとまだ関連付けられていない場合にのみ現ビーコンの第1のプロファイル識別子及び第2のプロファイル識別子を変更する。
【0037】
ステップ332Aに続いて、マスタービーコンはステップ334Aに進み、カウンタを1計数する。このように、マスタービーコンは、ステップ320A〜328Aで現ビーコンを捕捉し、ステップ332Aで現ビーコンに関する情報を格納した後にのみステップ334Aに到達してカウンタを計数する。ステップ318Aで、現ビーコンが既に別の(第2の)マスタービーコンと関連付けられていることが示された場合、マスタービーコンはステップ318Aからステップ336Aへ直接進むので、カウンタは計数されない。ステップ334Aでカウンタを計数した後、又はステップ318Aで「イエス」と判定した後、マスタービーコンはステップ336Aに進む。
【0038】
ステップ336Aにおいて、マスタービーコンは、カウンタの値が、検出されたビーコンの数から、稼働中の別のマスタービーコンに関連付けられているとステップ318Aで判定されたために無視された(無効とされた)ビーコンの数を減じた数に等しいか否かを確認する(別のカウンタを使用して、検出されたが無視されたビーコンの数を追跡する)。カウンタの値が検出されたビーコンの数(無視されたビーコンを差し引いたもの)よりも小さいことから、まだ処理されるべきビーコンがあるものと判定すると(ステップ336Aで「ノー」)、マスタービーコンは、ステップ310に戻り、次のビーコンにインデックス付け(index)する。無視されたビーコンの数を減じた検出されたビーコンの数にカウンタの値が等しくなり、検出されたビーコンのすべてが処理された(ステップ318Aで無視される処理、又はステップ320A〜328Aで捕捉される処理)ものと判定すると(ステップ336Aで「イエス」)、マスタービーコンはステップ302に戻り、再びビーコンのアドバタイズメントに備えて待機状態となる。マスタービーコンは、ステップ336Aとステップ302との間で、所定の期間、休止してもよい。
【0039】
ステップ306で「イエス」と判定された場合、ステップ308〜336Aに示された上述の初期設定動作ではなく、マスタービーコンが更新動作を実行することとなり、方法300は、ステップ308ではなくステップ312に進む。
【0040】
ステップ312において、マスタービーコンは、マスターデータベース内においてマスタービーコンに既に関連付けられているビーコンの数に等しい値にカウンタを設定する。次いで、ステップ314に進んで、次の(又は最初の)検出されたビーコンにインデックス付けした後、マスタービーコンはステップ316に進んで、マスターデータベースを確認して、現ビーコンが方法300を実行しているマスタービーコンと既に関連付けられているかどうかを判定する。現ビーコンが方法300を実行しているマスタービーコンと既に関連付けられており、ステップ316での「イエス」判定がなされると、マスタービーコンは、後述のステップ336Bに進む。このように、方法300を実行するマスタービーコンは、そのマスタービーコンに既に関連付けられているビーコンに関して何の処理もしない。なお、現ビーコンが方法300を実行しているマスタービーコンと既に関連付けられている場合、マスタービーコンは、現ビーコンのアドバタイズメントから抽出された詳細情報がマスターデータベースの記憶レコード(record)に反映されていることより、上記関連付けを検証できるものとしてもよい。現ビーコンが方法300を実行しているマスタービーコンと関連付けられており、ステップ316で「ノー」の判定がなされると、マスタービーコンはステップ318Bに進む。
【0041】
ステップ318Bはステップ318Aに類似した処理となり、ステップ318Bにおいて、マスタービーコンは、現ビーコンが既に別の(第2の)稼働中のマスタービーコンに関連付けられているか否かを判定するためにマスターデータベースを確認する。現ビーコンが他の(第2の)マスタービーコンと既に関連付けられており、「イエス」の判定がなされると(且つ、他の(第2の)マスタービーコンが稼働中であるならば)、マスタービーコンはステップ336Bに進む。また、現ビーコンが他のマスタービーコンと関連付けられておらず、ステップ318Bで「ノー」の判定がなされると、マスタービーコンはステップ320Bに進む。
【0042】
ステップ320B〜334Bは、ステップ320A〜334Aと同じ処理である。マスタービーコンは現ビーコンを捕捉し(ステップ320B〜328B)、現ビーコンの推定位置を三角測量し(ステップ330B)、現ビーコンに関する情報をリモートサーバのマスターデータベースに格納し(ステップ332B)、カウンタを計数する(ステップ334B)。ステップ334Bの後、又はステップ318Bでの「イエス」判定の後、マスタービーコンはステップ336Bに進む。
【0043】
ステップ336Bは、ステップ336Aと同様であるが、方法300を実行するマスタービーコンに既に関連付けられているためにビーコンが無視された可能性も考慮する。ステップ336Bにおいて、マスタービーコンは、カウンタが、検出されたビーコンの数から、ステップ316で方法300を実行しているマスタービーコンと既に関連付けられていると判定されたか、又はステップ318Aで別のアクティブマスタービーコンと関連付けられていると判定されたために無視されたビーコンの数を減じた数に等しいかどうか確認する。カウンタの値が、検出されたビーコンの数から無視されたビーコンの数を差し引いた数より少ないと判定されると(ステップ334Bで「ノー」)、マスタービーコンは、次のビーコンにインデックス付けするためにステップ314に戻る。カウンタの値が、無視されたビーコンの数を減じた検出されたビーコンの数に等しいと判定されると(ステップ336Bで「イエス」)、検出されたビーコンのすべてが処理された(ステップ316又は318Bで無視されるか、ステップ320B〜332Bで捕捉されてビーコンの情報が格納されている)ものとして、マスタービーコンはステップ302に戻り、再びビーコンのアドバタイズメントに備えて待機する。マスタービーコンは、ステップ336Bとステップ302との間で、所定の期間、休止してもよい。
【0044】
図3に示される方法300では、すべてのビーコンが捕捉される限り、ビーコンは任意の順序で捕捉されてもよい。
【0045】
図3に示す方法300は、本開示の一例に過ぎず、本開示による別の方法としても構わない。例えば、これに限定されるものではないが、別の方法として、開始条件の特殊な処置を省略できるものとしてもよい。当該別の方法においては、ステップ306〜336Aを省略して、ステップ304〜ステップ312に直接進む。
【0046】
方法300の例示的な実施態様を概略的に示す
図4A〜
図4Fを参照して、以下に説明する。
【0047】
まず、
図4Aに示すように、
図2の例に示した構成のマスタービーコン200は、3つのビーコンのBLE範囲内にある。当該3つのビーコンは、iBeaconプロトコルに従ってそのアドバタイズメント482を送信する第1のビーコン440と、AltBeaconプロトコルに従ってそのアドバタイズメント484を送信する第2のビーコン442と、sBeaconプロトコルに従ってそのアドバタイズメント486を送信する第3のビーコン444である。第4のビーコン446は、マスタービーコン200のBLE範囲外に位置している。第4のビーコン446がマスタービーコン200のBLE範囲外にあるため、マスタービーコン200との通信において、第4のビーコン446で使用されるプロトコルは重要ではない。第5のビーコン430は、Eddystoneプロトコルに従ってそのアドバタイズメント431を送信する。ビーコン440,442,444,446,430は、例えば、
図1及び
図1Aに示す、従来の構成を有するものである。
【0048】
第1のビーコン440は、UUID450と、第1のプロファイル識別子(「メジャー」)452と、第2のプロファイル識別子(「マイナー」)454とを格納するビーコン記憶装置448を備えている。同様に、第2のビーコン442は、UUID(「ID1」)458と、第1のプロファイル識別子(「ID2」)460と、第2のプロファイル識別子(「ID3」)462とを格納するビーコン記憶装置456を備えている。第3のビーコン444は、UUID466と、第1のプロファイル識別子468及び第2のプロファイル識別子470による単一の「SID」文字列472とを格納するビーコン記憶装置464を備えている。第5のビーコン430は、UUID(「名前空間」)433と、第1のプロファイル識別子434及び第2のプロファイル識別子435による単一の「インスタンス」文字列436とを格納するビーコン記憶装置432を備えている。
【0049】
図4A〜
図4Fでは、図面を簡略化すべく、ビーコン440,442,444,430それぞれにおいて、ビーコン記憶装置448,456,464,432のみを図示し、ビーコン440,442,444,430における他の構成要素(例えば、処理ユニットや電源等)については不図示とする。
【0050】
マスタービーコン200は、インターネットなどの1つ又は複数の相互接続されたコンピュータネットワークによるネットワーク474を介して、マスタービーコン200から物理的に離れたリモートサーバ476と通信接続される。
図4A〜
図4Fでは、単一のサーバ476のみが図示されるものとしているが、本明細書で使用される「サーバ」は、同じ場所への配置又は地理的な分散配置のいずれに関わらず、協調的に相互接続された複数のコンピュータによるものとしてもよい。サーバ476は、マスターデータベース478を提供(host)するものであり、マスターデータベース478は、ビーコン440,442,444,430及びマスタービーコン200が一部となるビーコン及びマスタービーコンによるネットワークに関する情報を記憶している。また、サーバ476はマスターデータベース478上で動作するプログラム(program logic)480を実行して、マスタービーコン200と通信する。
【0051】
図4Aは、マスタービーコン200がビーコン440,442,444,430のいずれかを捕捉する前の初期状態を示す。第1のビーコン440、第2のビーコン442及び第3のビーコン444はそれぞれ、任意の文字列“xxxxxxxxxxxx”、“yyyyyyyyyyyy”、“zzzzzzzzzzzz”で示されるビーコン442,444,446それぞれの製造元によるデフォルトUUID450,458,466を有する。UUID450,458,466の文字列の長さを12文字と図示しているが、単に仮設定したもの(placeholder)であり、ASCII文字による値で表したものではない。UUID450,458,466は、iBeacon、AltBeacon及びsBeaconプロトコルで使用される標準の16オクテット長で構成されている。同様に、第5のビーコン430は、任意の5文字列qqqqqで図示されるデフォルトUUID433を有しているが、UUID433はEddystoneビーコンプロトコルにおける標準の5オクテット長で構成される。
【0052】
第1のビーコン440は、「1」で示す第1のプロファイル識別子(「メジャー」)452と「1」で示す第2のプロファイル識別子(「マイナー」)454を有し、第2のビーコン442は、「63」で示す第1のプロファイル識別子(「ID2」)460と「1722」で示す第2のプロファイル識別子(「ID3」)462を有し、第3のビーコン444は、単一の「SID」文字列として結合される「aa」で示す第1のプロファイル識別子468と「bb」で示す第2のプロファイル識別子470を有する。第5のビーコン430は、単一の「インスタンス」文字列436として結合される「dd」で示す第1のプロファイル識別子434と「ee」で示す第2のプロファイル識別子435を有する。マスタービーコン200は、「22」で示す第1のプロファイル識別子224と「0」で示す第2のプロファイル識別子226を有する。実施形態では、マスタービーコンは、マスタービーコンであることを示すために、その第2のプロファイル識別子を常に「0」に設定することが好ましい。
図4A〜
図4F及び
図5に示された第1のプロファイル識別子452,460,468,434,224及び第2のプロファイル識別子454,462,470,435について示された文字列の長さ及び値は、単に図示したものであり、ASCII文字で表現された値を意図するものではない。第1のプロファイル識別子452,460,468,434,224及び第2のプロファイル識別子454,462,470,435のオクテット長は、それぞれのプロトコルに準じた標準長である。同様に、
図4A〜
図4F及び
図5におけるマスタービーコン200の第1のプロファイル識別子224及び第2のプロファイル識別子226と、
図5に示された第2のマスタービーコン5200の第1のプロファイル識別子5224及び第2のプロファイル識別子5226について示された文字列の長さ及び値は、単に図示したものであり、実際のASCII文字又はオクテット長により表されたものではない。
【0053】
図4Aに示す初期状態では、マスタービーコン200は、各ビーコン440,442,444,430からそれぞれのアドバタイズメント482,484,486,431を取得することによって、ビーコン440,442,444,430を検出する(
図3に示す方法300のステップ302)。次いで、マスタービーコン200は、アドバタイズメント482,484,486,431からビーコン440,442,444,430に関する詳細情報を抽出し、各ビーコン440,442,444,430の詳細情報をマスタービーコン記憶装置206のローカルアレイ(局所配列)に格納する(
図3に示す方法300のステップ302)。次いで、マスタービーコン200は、ネットワーク474を介してサーバ476と通信して、検出されたビーコン440,442,444,430のいずれかがマスタービーコン200に既に関連付けられていることをマスターデータベース478が示す否かを確認する(
図3に示す方法300のステップ306)。
図4Aは初期状態を示すので、マスタービーコン200は、サーバ476から「ノー」の返信を受け、
図3に示す方法300のステップ308及び310を実行して、カウンタの値を0に設定するとともに、第1のビーコン440にインデックス付けを行う。次いで、マスタービーコン200は、第1のビーコン440が別のマスタービーコンと既に関連付けられているかどうかを確認し(
図3に示す方法300のステップ318A)、サーバ476より「ノー」となる信号を受信する。
【0054】
マスタービーコン200は、第1のビーコン440からのアドバタイズメント482を使用して、マスタービーコン記憶装置206に記憶された情報から適切なセキュリティプロトコルを識別して抽出する(
図3に示す方法300のステップ320A)。次に、
図4Bに示すように、マスタービーコン200は、抽出したセキュリティプロトコルを使用して、第1のビーコン440との通信チャネル488による通信を開始して、第1のビーコン440を送信モードから受信モードに切り替える(
図3に示す方法300のステップ322A)。次いで、マスタービーコン200は、第1のビーコン440の第1のプロファイル識別子(「メジャー」)452をマスタービーコン200の第1のプロファイル識別子224と同一の値に設定する(
図3に示す方法300のステップ324A)。例えば、マスタービーコン200は、第1のビーコン440の第1のプロファイル識別子(「メジャー」)452をその初期値「1」から、マスタービーコン200の第1のプロファイル識別子224と一致する値「22」に変更する。次に、マスタービーコン200は、第1のビーコン440の第2のプロファイル識別子(「マイナー」)454の値を現在のカウンタ値と等しい値に設定する(
図3に示す方法300のステップ326A)。第1のビーコン440は、最初に処理されるビーコンであるため、マスタービーコン200におけるカウンタ値は「1」である。マスタービーコン200は、第1のビーコン440の第2のプロファイル識別子(「マイナー」)454の初期値をカウンタ値による新しい値に置き換えるが、初期値が「1」であり、新しい値も「1」であるため、第1のビーコン440の第2のプロファイル識別子(「マイナー」)454に正味の変化はない。なお、第2のプロファイル識別子454において変化がないことは、偶然であって恣意的なものではない。
【0055】
図4Bに示すように、第1のビーコン440の第1のプロファイル識別子(「メジャー」)452及び第2のプロファイル識別子(「マイナー」)454を設定した後、マスタービーコン200はセキュリティプロトコルを使用して第1のビーコン440と通信し、第1のビーコン440を受信モードから送信モードに戻す(
図3に示す方法300のステップ328A)。次いで、マスタービーコン200は、第1のビーコン440の推定位置を三角測量し(
図3に示す方法300のステップ330A)、第1のビーコン440に関する関連情報をネットワーク474を介してマスターデータベース478に格納する(
図3に示す方法300のステップ332A)。リモートサーバ476のマスターデータベース478に格納された情報は、(変更されていない)第1のビーコン440のUUID450、変更された第1のビーコン440の第1のプロファイル識別子452、変更された第1のビーコン440の第2のプロファイル識別子454、三角測量による第1のビーコン440の推定位置を含むことができる。データベース478に格納されるビーコンに対する他の情報として、ビーコンに搭載されたセンサの種類、アドバタイズメントの符号化された時間、センサデータフィード、バッテリレベル、送信電力などを含むものとしてもよい。ビーコンのアドバタイズメントから認識される任意の情報をデータベース479に記憶できる。
図4Bに示すように、マスタービーコン200は、最初のビーコン(最初にインデックス付けしたビーコン)440のUUID450を、文字列「xxxxxxxxxxxx」によって示される初期の製造者デフォルト値から変更していない。
【0056】
カウンタを計数し(
図3に示す方法300のステップ334A)、第2ビーコン442、第3ビーコン444及び第5ビーコン430がまだ処理されていないと判定した後(
図3に示す方法300のステップ336A)、マスタービーコン200は、上記の動作手順を繰り返すことで、
図4Cに示すように、第2のビーコン442を捕捉し、
図4Dに示すように第3のビーコン444を捕捉し、第5のビーコン430を捕捉する。このとき、
図4Cに示すように、マスタービーコン200は、第2のビーコン442と通信チャネル490による通信を開始し、第2のビーコン442を受信モードに切り替える。次いで、マスタービーコン200は、マスタービーコン200の第1のプロファイル識別子224と一致する第2のビーコン442の第1のプロファイル識別子(「ID2」)460をその初期値「63」から「22」に変更するとともに、第2のビーコン442が現在のカウンタ値「2」と等しい値として変更し、第2のビーコン442を送信モードに戻す。同様に、
図4Dに示すように、マスタービーコン200は、第3のビーコン444と通信チャネル492による通信を開始し、第3のビーコン444を受信モードに切り替える。次いで、マスタービーコンは、第3ビーコン444の単一の「SID」文字列472を、「aa」が第1のプロファイル識別子468であるとともに「bb」が第2のプロファイル識別子470となる「aabb」から、マスタービーコン200の第1のプロファイル識別子224と一致する「22」が第1のプロファイル識別子468となるとともに現在のカウンタ値「3」を使用して第2のプロファイル識別子470が「03」に設定される「2203」に変更する。次いで、マスタービーコン200は、第3のビーコン444を送信モードに戻す。同様に、
図4Eに示すように、マスタービーコン200は、第5のビーコン430と通信チャネル437による通信を開始し、第5のビーコン430を受信モードに切り替える。第5のビーコン430が受信モードになると、マスタービーコン200は、第5のビーコン430の単一の「インスタンス」文字列436を「ddee」から「2204」に変更する。これにより、第1のプロファイル識別子434は、マスタービーコン200の第1のプロファイル識別子224と一致するように「dd」から「22」に変更され、第2のプロファイル識別子435は、現在のカウンタ値「4」に基づいて「ee」から「04」に変更される。いずれの場合も、マスタービーコン200は、ビーコン442,444,430を送信モードに戻した後、ビーコン442,444,430の推定位置を三角測量し、ビーコン442,444,430についての関連情報をマスターデータベース478にネットワーク474を介して格納する。第4のビーコン446は、BLE範囲外であるため、マスタービーコン200によって捕捉されない。
【0057】
図4Fは、第1のビーコン440、第2のビーコン442、第3のビーコン444及び第5のビーコン430がすべて捕捉されてビーコンネットワークが形成されている状態を示す。ビーコンネットワークは、マスタービーコン200と、マスタービーコン200のBLE範囲内にある複数のビーコン、すなわち第1のビーコン440、第2のビーコン442、第3のビーコン444及び第5のビーコン430とを備える。ビーコン440,442,444,430は
図1及び
図1Aに示す従来の構成を有しており、ビーコン440,442,444,430の各々は、BLEユニット、ビーコン処理装置及び電源(
図4A〜
図4Fでは図示せず)と、それぞれのビーコン記憶装置448,456,464,432を備える。各ビーコン440,442,444,430について、ビーコン記憶装置448,456,464,432は、そのビーコン440,442,444,430のUUID450,458,466,433と、そのビーコン440,442,444,430の第1のプロファイル識別子452,460,468,434と、そのビーコン440,442,444,430の第2のプロファイル識別子454,462,470,435とを格納する。
図4Fに示すように、各ビーコン440,442,444,430の第1のプロファイル識別子452,460,468,434は、「22」であり、マスタービーコン200の第1のプロファイル識別子224(これもまた「22」である)と同一である。各ビーコン440,442,444,430の第2のプロファイル識別子454,462,470,435は、複数のビーコン440,442,444,430内で重複していない。第1のビーコン440の第2のプロファイル識別子454は「1」であり、第2のビーコン442の第2のプロファイル識別子462は「2」であり、第3のビーコン444の第2のプロファイル識別子470は「3」であり、第5のビーコン430の第2のプロファイル識別子435は「4」であり、第2のプロファイル識別子によるセット{1,2,3,4}内で重複しない。
図4Fに示すように、第1のビーコン440、第2のビーコン442、第3のビーコン444及び第5のビーコン430は、それぞれ、任意の文字列「xxxxxxxxxxxx」、「yyyyyyyyyyyy」、「zzzzzzzzzzzz」、「qqqqq」で示される、メーカーデフォルト値のUUID450,458,466,433を保持している。
図4A〜
図4Fは、異なるメーカー(異なるUUID文字列によって示される)によるものであって異なるプロトコルを使用する4つのビーコン440,442,444,430を示しているが、
図4A〜
図4F及び
図4A〜
図4Fに対する説明に必要な変更を加えることで、1つ又は複数のビーコンが同じ製造者によるものとしてもよく、また、同じプロトコルを使用するものとしてもよい。
【0058】
マスタービーコン記憶装置206内の命令情報228は、移動体通信ユニット218及び無線ローカルネットワークユニット216のうちの少なくとも1つを使用してリモートサーバ476と接続するための命令情報と、ビーコン440,442,444,430の第1のプロファイル識別子452,460,468,434を変更するための命令情報と、ビーコン440,442,444,430の第2のプロファイル識別子454,462,470,435を変更するための命令情報とを含む。
【0059】
図5を参照して、以下に説明する。
図5は、
図3に示す方法300における特別な実施結果を示すものであり、サーバは、より大きなネットワーク内において論理的に単一とされる「メタ領域(metazone)」590に2つのマスタービーコン200,5200を割り当てる。
図5は、
図5Fに示すビーコンネットワークに第6のビーコン5440と第2のマスタービーコン5200が追加した構成を示している。
図5において、第1のビーコン440、第2のビーコン442、第3のビーコン444、第4のビーコン430のUUID450,458,466,433を表す任意の文字列“xxxxxxxxxxxx”、”yyyyyyyyyyyy”、”zzzzzzzzzzzz”及び”qqqqq”は、簡略化すべく、図示省略されている。第6のビーコン5440及び第2のマスタービーコン5200は、第1のビーコン440及び第1のマスタービーコン200とそれぞれ同一の構成を有しており、第1のビーコン440及び第1のマスタービーコン200と同様の機能を示す部分について、同様の参照符号に接頭辞「5」を付加した符号を付している。第4のビーコン446は、第1のマスタービーコン200と第2のマスタービーコン5200の両方のBLE範囲外にあり、図を簡略化すべく、
図5では不図示としている。
【0060】
図5に示すように、第6のビーコン5440は、第1のマスタービーコン200のBLE範囲(「範囲1」)の外側にあり、第2のマスタービーコン5200のBLE範囲(「範囲2」)の内側にある。さらに、第2のビーコン442、第3のビーコン444及び第5のビーコン430は、第1のマスタービーコン200及び第2のマスタービーコン5200の両方のBLE範囲内にある。第1のビーコン440は、第1のマスタービーコン200のBLE範囲内にのみ存在する。第2のマスタービーコン5200は、
図3に示す方法300を実行することで、ステップ318Aにおいて、第2のビーコン442、第3のビーコン444及び第5のビーコン430が既に第1のマスタービーコン200と関連付けられていることを検出するため、ステップ318Aにおいて、第2のビーコン442、第3のビーコン444及び第5のビーコン430を捕捉しない。このときさらに、第2のマスタービーコン5200は、自身のBLE範囲内において、別のマスタービーコンと既に関連付けられているビーコンを検出したことをサーバ476に通知するものとしてもよい。次に、第2のマスタービーコン5200は、第6のビーコン5440を捕捉し、第6のビーコン5440の第1のプロファイル識別子(「メジャー」)5460を第2のマスタービーコン5200の第1のプロファイル識別子5224と同一である「38」に設定し、第6ビーコン5440の第2のプロファイル識別子(「マイナー」)をカウンタ値「1」に設定する。第6のビーコン5440のUUID5505は、第1のビーコン440のUUID450と同一のままとし(第1のビーコン440と第6のビーコン5440が同じメーカーによるものであることを示す)、変更されない。(上述したように、第1のビーコン440のUUID450を表す任意の文字列“xxxxxxxxxxxx”は、
図5では簡略化のために図示省略されている。)
【0061】
プログラム480を実行するサーバ476は、第1のマスタービーコン200及び第2のマスタービーコン5200を、より大きなネットワーク内において論理的に単一となるネットワーク領域590に、捕捉されたビーコン440,442,444,430,5440と共に割り当てることができる。このとき、サーバ476は、第1のマスタービーコン200及び第2のマスタービーコン5200の少なくとも一方のマスタービーコン識別子222,5222を変更して、第1のマスタービーコン及び第2のマスタービーコンが任意の文字列“ttttttttttt”(当該文字列は、ASCII文字又はオクテット長で表した値ではない)で示される共通のマスタービーコン識別子を有するものとしてもよい。したがって、第1のマスタービーコン200のUUID222は、第2のマスタービーコン5200のUUID5222と同一の値となる。例えば、サーバ476は、一方のマスタービーコン識別子222,5222を他方のマスタービーコン識別子222,5222と同一に変更するものとしてもよいし、又は、マスタービーコン識別子222,5222を新しい値に変更するものとしてもよい。いずれの場合も、共通のマスタービーコン識別子222,5222は、ビーコン及びマスタービーコンで構成されるネットワーク内において世界でただ1つのものとなる。すなわち、共通となるマスタービーコン識別子222,5222は、論理上のメタ領域590を指定するものであり、メタ領域590以外となる他の論理上のメタ領域には使用できない。
【0062】
マスタービーコンは、メーカーのデフォルト状態に設定されたビーコンのBLE範囲内に配置されると、それらのビーコンを捕捉し、捕捉したビーコンに対して、割り当てられた第1のプロファイル識別子を第1のアドレス(プライマリアドレス)とするとともに割り当てられた第2のプロファイル識別子を第2のアドレス(セカンダリアドレス)とするアドレス配列を上書きする。この上書きされたアドレス配列は、UUID、第1のプロファイル識別子及び第2のプロファイル識別子の値を各ビーコンに対して個別に手動で設定又は決定する必要なしに、ビーコンに近接して作用するソフトウェアアプリケーションで使用できる。さらに、ビーコンをアドレス指定するために上記上書きされたアドレス配列を使用することによって、無線通信によって(すなわち、ビーコンが受信モードにあるときの命令によって)、変更可能なセンサの特性を任意に変更できる。特に、変更されるビーコンのBLE範囲内にマスタービーコンが配置される必要がない場合は、マスタービーコンは、捕捉されたビーコンの値を変更するように、リモートサーバとの接続を介して指示される。マスターデータベースは、各ビーコンをその三角測量された特定の位置に関連付けることもでき、マスタービーコンがGPSユニットを含む場合には、各ビーコンを(ビーコンの三角測量位置にマスタービーコンのGPS測量位置を紐づける)地球上での現在位置に関連付けることもできる。これにより、ビーコンの三角測量位置をアドレス配列に組み込むことが可能になる。例えば、カウンタに基づいて第2のプロファイル識別子に最初に割り当てられた値を、後に、ビーコンの位置に基づく既定のアドレス配列に合致するように、三角測量された位置に基づいて、再割り当てするものとしてもよい。
【0063】
上述の実施形態により、各ビーコンのUUID、第1のプロファイル識別子又は第2のプロファイル識別子を個別に変更(又は決定)する必要なく、ビーコンを利用するアプリケーションコードの開発を可能にする。一度に1つのビーコンずつ、上記アプリケーションコードで使用されるアドレス配列(UUID、第1のプロファイル識別子、第2のプロファイル識別子の値)を各ビーコンに与える代わりに、複数のビーコンを配置して、それらのビーコンを捕捉するのに適切な位置にマスタービーコンを配置すればよい。その後、サーバがマスタービーコンに適切な命令を与えることで、捕捉されたビーコンの全てにアドレス配列を与えることができる。マスタービーコンによって割り当てられた第1のプロファイル識別子及び第2のプロファイル識別子は、マスターデータベース内でアドホックネットワーク識別子として機能し、各ビーコンが、割り当てられた第1のプロファイル識別子に基づく第1のアドレスと、割り当てられた第2のプロファイル識別子に基づく第2のアドレスとの両方に紐づけられる。
【0064】
小売店チェーンが、靴売り場にビーコンを配置するにあたって、子供用靴売り場を示す1つのビーコンと、女性用靴売り場を示す1つのビーコンと、紳士用靴売り場を示す1つのビーコンとを置く場合を例に挙げて、以下に説明する。各ビーコンの第1のプロファイル識別子及び第2のプロファイル識別子の値を個別に設定又は決定する代わりに、単に各ビーコンを所望の位置に配置して、靴売り場において、前記各ビーコンのBLE範囲内となる位置に、既知の第1のプロファイル識別子を有するマスタービーコンを配置すればよい。これにより、マスタービーコンは、ビーコンを捕捉し、ビーコンの新しい第1のプロファイル識別子(全てマスタービーコンの第1のプロファイル識別子と同一)及び第2のプロファイル識別子(カウンタに基づいて順次割り当てられる)を割り当てるとともに、ビーコンとマスタービーコンとの相対位置を三角測量した後、ビーコンに対する情報をマスターデータベース格納する。なお、第2のプロファイル識別子は、位置に基づく既定のアドレス配列と一致するように、三角測量された位置に基づいて再割り当てされてもよい。
【0065】
靴売り場内の特定の領域への近接に基づいてアドバタイズメントを送信するスマートフォン用のアプリケーションといった、近接性に基づき動作するソフトウェアアプリケーションは、マスタービーコンの第1のプロファイル識別子とビーコンの相対位置の情報だけで開発され得る。例えば、第2のアドレスを、相対位置に関連付けられた(第1のアドレス内で)固有となるシリアル番号とすることで、第1のプロファイル識別子による第1のアドレスと、第2のプロファイル識別子による第2のアドレスによって、ビーコンをアドレス指定できる。開発者又はソフトウェアプログラムは、マスターデータベースを参照して、靴売り場の特定の位置におけるビーコンのUUID、第1のプロファイル識別子及び第2のプロファイル識別子の値を決定し、ビーコンの設置前後ごとに個別のビーコンに対して、UUID、第1のプロファイル識別子及び第2のプロファイル識別子の値を設定又は決定することがない。また、ビーコンの相対位置を三角測量した後に、第2のプロファイル識別子が位置に基づく既定のアドレス配列と一致するように再割り当てされる場合は、ビーコンの設置又は配置前どころか、ビーコンの製造前であっても、ビーコンの位置に基づく既定のアドレス配列に従ってアプリケーションコードを開発できる。ビーコンが適切な位置に置かれると、マスタービーコンは、ビーコンを捕捉するビーコンのBLE範囲内に位置し、マスターサーバと協働して、捕捉されたビーコンに対して、位置に基づく既定のアドレス配列を上書きすることができる。例えば、アプリケーションコードは、一般的な位置に配置されたマスタービーコンに対応する第1のプロファイル識別子と、位置に基づく既定のアドレス配列に従って指定された第2のプロファイル識別子とを有するビーコンを検索するための命令を含むものとしてもよい。
【0066】
上述したように、マスタービーコンは、捕捉したビーコンのUUIDを変更しない。より細かくアドレスを指定する必要がある場合は、マスタービーコンはそのUUIDを変更するように構成されるものとしてもよい。マスタービーコンは、UUIDを使用してビーコンメーカー及び然るべきセキュリティプロトコル(
図3に示す方法300のステップ320A又は320B)を決定するのだから、このような構成では、マスタービーコンは、新しいUUIDとメーカー若しくはセキュリティプロトコルとの関係性を後で呼び出すのに備えて記録するものとしてもよいし、所定のUUIDを使用してもよいし、ビーコンのUUIDとセキュリティプロトコルとの関連性を維持する方式に従ってUUIDを割り当てるものとしてもよい。逆に、ビーコンをマスタービーコンに捕捉されることなくマスタービーコンのBLE範囲内に配置したい場合には、ビーコンのUUIDをマスタービーコンで認識されないものに変更すればよい。例えば、ビーコンとして動作するように設計されたスマートフォンであっても、そのUUIDがマスタービーコンに捕捉されるべきビーコンとして認識されないものであれば、マスタービーコンに捕捉されない。したがって、マスタービーコンは、それぞれのビーコンのUUIDに基づいて、特定のビーコンのみを捕捉するように構成できる。
【0067】
マスタービーコンは、そのマスタービーコンが検出したビーコンの数をマスターデータベースに記録された予想数と比較することで、そのBLE範囲内で通信不能な(例えば、電源が故障している)ビーコンや、そのBLE範囲内への「外部」ビーコン(マスタービーコンのBLE範囲内にないと思われるビーコン)の導入を検出することもできる。この手法は、第1のマスタービーコンのBLE範囲内にビーコンが多すぎ、第2のマスタービーコンのBLE範囲内に十分なビーコンが存在しないことを測定することで、ビーコンの位置分布の評価にも使用できる。
【0068】
図3及び
図4A〜
図4Fに示されている一例の方法300は、ビーコンを(第1の)マスタービーコンに自動的に接続する方法の一実施形態に過ぎない。より一般的に言えば、本開示は、マスタービーコンにビーコンを自動的に接続する方法を意図している。その方法では、マスタービーコンは、複数のビーコン内の各ビーコンを自動的に検出し、複数のビーコン内の一群のビーコンの第1及び第2のプロファイル識別子の一方が(a)一群のビーコン内の各ビーコンで同一であり、かつ(b)マスタービーコンに関連するように、一群のビーコンの第1及び第2のプロファイル識別子の一方を自動的に変更する。好ましくは、同一に設定されていない第1及び第2のプロファイル識別子の他方は、一群のビーコン内のビーコンをよりはっきりと区別するために、一群のビーコン間で重複しないように設定される。上述した方法300において、マスタービーコンは、一群のビーコン内の各ビーコンの第1のプロファイル識別子を同一に変更し、第2のプロファイル識別子を一群のビーコン間で重複しないように変更する。また、方法300において、一群のビーコンの各ビーコンは、第1のマスタービーコンの第1のプロファイル識別子と同一であることによってマスタービーコンと関連付けられる。上記実施形態は、複雑でないアドレス方式(addressing scheme)を提供するので、現在のところ好ましい。ただし、他の実施形態も本開示に基づいて考えられる。
【0069】
例えば、1つの別実施形態として、マスタービーコンが、一群のビーコンの各ビーコンについて、第2のプロファイル識別子を同一に設定し、第1のプロファイル識別子を一群のビーコン間で重複しないように設定するものとしてもよい。当該別実装形態では、一群のビーコンの各ビーコンの第2のプロファイル識別子が、マスタービーコンの第2のプロファイル識別子と同一になるように設定される。
【0070】
さらに、一群のビーコンの各ビーコンの第1及び第2のプロファイル識別子のいずれか一方をマスタービーコンの第1及び第2のプロファイル識別子と同一に設定することは、一群のビーコンの各ビーコンの第1及び第2のプロファイル識別子をマスタービーコンに関連付ける単なる一方法例に過ぎない。他の実施形態として、マスタービーコンが、一群のビーコンにおける各ビーコンの第1及び第2のプロファイル識別子とは異なる単一の識別子のみを有するとともに、第1又は第2のプロファイル識別子とマスタービーコンとの関係が、例えばリモートサーバ内のマスターデータベースといった、データレコードの一部として、保持されてもよい。
【0071】
本開示では、iBeacon、sBeacon、AltBeacon及びEddystoneビーコンのプロトコルに言及して説明したが、これらは単なる例示であり、限定するものではない。本開示による各態様は、現存するプロトコル又は今後開発されるプロトコルであって、UUIDと第1及び第2のプロファイル識別子(概念的に第1及び第2のプロファイル識別子に分けられ得る単一のプロファイル識別子を含む)とを含むアドバタイズメントを送信させるプロトコルにより通信するビーコンに対して適用できる。
【0072】
上記説明から分かるように、本明細書に記載されるビーコンアドレス指定システム及び方法は、情報を編成、格納及び送信するために単に圏論(categories)を使用して数学的相関で情報を編成することよりも、多くのことを表している。当該ビーコンアドレス指定システム及び方法は、要するにビーコン技術に対して改良したものであり、ビーコンと通信してビーコンを使用する際や、ビーコンと相互作用するソフトウェアを開発する際に、効率的なアドレス指定構造を提供する。さらに、前記ビーコンアドレス指定システム及び方法は、特定の装置、つまり本明細書に開示されるようなビーコンに適用される。したがって、前記ビーコンアドレス指定システム及び方法は、ビーコンアプリケーションによる技術である。
【0073】
本技術の態様は、様々な実施形態による方法、装置(システム)及びコンピュータプログラム製品のフローチャート及び/又はブロック図を参照して、上述されている。これに関し、図面におけるフローチャート図及びブロック図は、本技術の様々な実施形態によるシステム、方法及びコンピュータプログラム製品の実施可能な構造、機能及び動作を示している。例えば、フローチャートやブロック図の各ブロックが、特定の論理関数を実施するための1又は複数の実行命令を構成するコードのモジュール、セグメント又はその一部を表すものとしてもよい。また、別の実施形態として、ブロックに記載の機能(関数)は、図に記載の順序とことなる順に実行されるものとしてもよい。例えば、連続して示される2つのブロックは、関連する機能次第では、実際には実質的に同時に実行されてもよいし、又は逆の順序で実行されてもよい。いくつかの具体的な例を上記に記載したが、必ずしもこれらの例に限るものではない。また、ブロック図及び/又はフローチャート図における各ブロックによる処理、ならびにブロック図及び/又はフローチャート図におけるブロックの組み合わせによる処理は、特定の機能又は動作を実行する専用のハードウェアによるシステムや、専用ハードウェアとコンピュータ処理との組み合わせによって実施されるものとしてもよい。
【0074】
フローチャート図及び/又はブロック図の各ブロック、及びフローチャート図及び/又はブロック図におけるブロックの組み合わせは、コンピュータプログラム(computer program instructions)によって実施される。これらのコンピュータプログラムは、汎用コンピュータ、専用コンピュータ、又は機械を生産するための他のプログラマブルデータ処理装置などのプロセッサで実行される。コンピュータ又は他のプログラマブルデータ処理装置のプロセッサを介して実行される上記プログラム(instructions)が、フローチャート及び/又はブロック図のブロックで指定された機能/動作を実行するための手段となる。
【0075】
上記コンピュータプログラムは、コンピュータ、他のプログラマブルデータ処理装置又は他の装置を特定の方法で機能させるコンピュータで読み取り可能な記録媒体に格納されるものとしてもよい。記録媒体に格納されたプログラムは、フローチャート及び/又はブロック図のブロックで指定された機能/動作を実行するプログラムを有した製造物を提供する。上記コンピュータプログラムは、コンピュータ、他のプログラマブルデータ処理装置又は他の装置に読み込まれて、一連の動作ステップを実行させる。コンピュータ又は他のプログラマブル装置上で実行される上記プログラムは、フローチャート及び/又はブロック図のブロックで指定された機能/動作を実行するための方法を提供する。
【0076】
本明細書における技術態様は、システム、方法又はコンピュータプログラム製品として具体化されるものである。したがって、本明細書における技術態様として、全てをハードウェアとする実施形態としてもよいし、全てをソフトウェア(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)とする実施形態としてもいし、「回路」、「モジュール」、「システム」などのハードウェアとソフトウェアとを組み合わせた実施形態としてもよい。さらに、本明細書に記載の技術態様として、コンピュータで読み取り可能なプログラムコードを担持する1つ又は複数のコンピュータで読み取り可能な媒体に組み込まれたコンピュータプログラム製品の形態であっても構わない。
【0077】
本明細書に記載の技術態様として、コンピュータプログラム製品に実装される場合、1つ又は複数のコンピュータで読み取り可能な媒体を任意に組み合わせて活用されるものとしてもよい。コンピュータで読み取り可能な媒体は、コンピュータで読み取り可能な信号媒体であってもよいし、コンピュータで読み取り可能な記憶媒体であってもよい。コンピュータで読み取り可能な記憶媒体は、例えば、電子、磁気、光学、電磁気、赤外線もしくは半導体などによるシステム、機器もしくは装置、又はこれらの任意の適切な組み合わせによるものである。コンピュータで読み取り可能な記憶媒体のより具体的な例(限定的な列挙ではない)として、1つ以上の有線を有する電気的接続、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、消去可能なプログラマブルリードオンリーメモリ(EPROM又はフラッシュメモリ)、光ファイバ、携帯型コンパクトディスクリードオンリーメモリ(CD−ROM)、光学記憶装置、磁気記憶装置、又は任意の上記の適切な組み合わせのいずれであってもよい。本明細書において、コンピュータで読み取り可能な記憶媒体は、命令を実行するシステム、機器又は装置で使用されるプログラムを含む又は格納する任意の有形の媒体である。したがって、本明細書に記載の技術態様を実施するためのコンピュータで読み取り可能なプログラムコードは、スマートフォン搭載のコンピュータシステムのメモリ又はコンピュータのメモリに含まれるか格納されるものであってもよいし、スマートフォン搭載のコンピュータシステム外又はコンピュータ外の媒体であってコンピュータで使用可能又は読み取り可能な媒体に含まれるか格納されるものであってもよいし、これらを任意に組み合わせたものであってもよい。
【0078】
コンピュータで読み取り可能な信号媒体には、例えば、ベースバンド又は搬送波に載せられたコンピュータで読み取り可能なプログラムコードを有する伝送データ信号が含まれている。当該伝送データ信号は、電磁方式、光学方式又はそれらの任意な組み合わせなどといった様々な形態によるものである。コンピュータで読み取り可能な信号媒体は、コンピュータで読み取り可能な記録媒体ではなく、プログラムによる命令を実行する、システム、機器又は装置によって使用されるプログラムを通信、伝送又は転送するコンピュータで読み取り可能な媒体である。
【0079】
コンピュータで読み取り可能な媒体上におけるプログラムコードは、無線、有線、光ファイバケーブル、無線周波数など、又はこれらの任意の適切な組み合わせなどといった任意の適切な媒体を使用して送信されるものであってもよい。本明細書中に記載された技術態様による操作を実行するコンピュータプログラムコードは、オブジェクト指向プログラミング言語及び従来の手続き型プログラミング言語を含む1つ又は複数のプログラミング言語の任意の組み合わせで記述される。前記プログラムコードは、全てがユーザのコンピュータ上で実行されるものとしてもよいし、独立したソフトウェアパッケージとして、一部がユーザのコンピュータ上で実行されるものとしてもよいし、一部がユーザのコンピュータ上で実行されるとともに一部がリモートコンピュータ上で実行されるものとしてもよいし、全てがリモートコンピュータ又はサーバ内で実行されるものとしてもよい。後者の態様におけるリモートコンピュータは、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介して、又は、(例えば、インターネットサービスプロバイダを使用したインターネット接続)外部コンピュータとの接続により、ユーザのコンピュータと接続されるものとしてもよい。
【0080】
最後に、本明細書で使用される用語は、特定の実施形態を説明する目的のみであり、限定することを意図するものではない。本明細書で使用されるように、文脈上明白に他の意味を解する場合を除き、単数形「a」、「an」及び「the」は、複数形も含むことが意図される。本明細書において、用語「含む(comprises)」及び/又は「含む(comprising)」は、記載された特徴、数値、ステップ、操作、要素、及び構成要素の少なくとも一つを有することを表しているが、他のステップ、動作、要素、構成要素、及びそれらのグループのうちの1つ又は複数を有することや追加することを除外するものではない。
【0081】
特許請求の範囲内の請求項における機能要素を加えた手段又はステップ全てに対応する構造、材料、動作、及び均等物は、請求項で請求される他の要素と組み合わせて機能を実行するための構造も含まれる。上記説明は、例示及び説明のために提示されるものであって、開示された形態で総括又は限定されるものではない。特許請求の範囲から逸脱することなく、多くの変更及び変形が可能である。上記実施形態は、技術原理及び実用的な用途について最も理解しやすくなるように、そして、意図する個々の用途に適した様々な変形例を含む様々な実施形態における技術を当業者が理解できるように、選択して記載されたものである。
【0082】
特定の実施形態を例として説明したが、特許請求の範囲から逸脱することなく、多くの変形及び変更が可能である。