JP2017169185A - コネクションレス・メッシュ・ネットワーキング - Google Patents

コネクションレス・メッシュ・ネットワーキング Download PDF

Info

Publication number
JP2017169185A
JP2017169185A JP2016159358A JP2016159358A JP2017169185A JP 2017169185 A JP2017169185 A JP 2017169185A JP 2016159358 A JP2016159358 A JP 2016159358A JP 2016159358 A JP2016159358 A JP 2016159358A JP 2017169185 A JP2017169185 A JP 2017169185A
Authority
JP
Japan
Prior art keywords
node
active
information
nodes
broadcast
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016159358A
Other languages
English (en)
Other versions
JP6736126B2 (ja
JP2017169185A5 (ja
Inventor
コバチ アレクサンダー,
Kovacs Alexander
コバチ アレクサンダー,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
TENTEN Ltd
Original Assignee
TENTEN Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by TENTEN Ltd filed Critical TENTEN Ltd
Publication of JP2017169185A publication Critical patent/JP2017169185A/ja
Publication of JP2017169185A5 publication Critical patent/JP2017169185A5/ja
Application granted granted Critical
Publication of JP6736126B2 publication Critical patent/JP6736126B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/06Selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS]; Services to user groups; One-way selective calling services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W48/00Access restriction; Network selection; Access point selection
    • H04W48/08Access restriction or access information delivery, e.g. discovery data delivery
    • H04W48/12Access restriction or access information delivery, e.g. discovery data delivery using downlink control channel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Computer Security & Cryptography (AREA)

Abstract

【課題】コネクションレス・メッシュ・ネットワーキングのための安全で確実な双方向通信データ伝送を実現する。【解決手段】他のノードとコネクションレス・メッシュ・ネットワークを形成するノードのそれぞれは、他のノードに情報を無線送信し、他のノードから送信された情報を無線受信する。ノードを識別する識別子を生成し、識別子及びデータペイロードを更新し、生成された識別子及び更新されたデータペイロードを含むブロードキャスト情報を、所定周波数で、周期的に無線でブロードキャストする。他のノードのそれぞれからブロードキャストされたブロードキャスト情報である他のブロードキャスト情報を、所定周波数で、周期的に受信し、他のノードからの他のブロードキャスト情報に従って識別子及びデータペイロードの更新を行う。【選択図】図9A

Description

本発明は、コネクションレス・メッシュ・ネットワーキングのためのノード、システム、方法及び記憶媒体に関する。
現状のメッシュ又はピアツーピアネットワーキングプロトコルでは、安全かつ確実で逐次的な双方向通信データ伝送が重視されている。このようなプロトコルは、その目的を達成するために、有効データの伝送前に通信セッションを確立し、エラーチェック、送信確認等を行うため、要するオーバーヘッドが大きい。
この一例として、例えば、Bluetooth(登録商標)Low Energy(BLE)という通信技術による接続がある。BLEでは、接続を確立することにより2ノード間での双方向通信が可能になる。接続を確立するには、マスターデバイスはまず、ブロードキャストモードで自機器をアドバタイジングしている機器を発見する必要がある。マスターはまず、ブロードキャスト装置に対して接続要求を送り、その後その接続要求のパラメータに従って双方向通信を行うことになる。このような接続は、管理される必要があり、特定の状況下では損失することがある。この通信においては、巡回冗長検証(CRC:Cyclical Redundancy Check)を使用したエラーチェックが行われ、エラーが発見された場合にはパケットが再送信される。
BLEで用いられるような接続を利用する際、わずかなデータ量しか送信されない使用形態の場合(例えば、あるネットワークにおいて複数のノードのうち、どちらが現在「アクティブ」になっているかを送信する場合等)には、実際に送信されるデータ量に対して帯域や複雑性の面でオーバーヘッドが非常に大きくなる。そのようなオーバーヘッドは、例えばネットワークにおける各ノードが正確な情報を持っていることを保証するために行う大規模なチェックによる遅延の発生等、性能の劣化に繋がる。このため、このようなプロトコルは、ノードが迅速に状況変化を認識しなければならないネットワークシステムには、不適切な場合がある。
本発明の様々な実施形態によれば、ノードが一つ以上の他のノードとコネクションレス・メッシュ・ネットワークを構築することができる。前記ノードのそれぞれは、前記一つ以上の他のノードに無線で情報を送信する送信器と、前記一つ以上の他のノードから送信された情報を無線で受信する受信器と、プログラムを保存するメモリと、前記メモリから前記プログラムを読み出して、実行することにより、前記プログラムに従って前記送信器及び前記受信器を制御する一つ以上のプロセッサとを備え、前記一つ以上のプロセッサは、前記ノードを識別する識別子を生成するよう制御し、前記識別子及びデータペイロードを更新するよう制御し、生成された識別子及び更新されたデータペイロードを含むブロードキャスト情報を、所定周波数で、周期的に無線でブロードキャストするよう前記送信器を制御し、前記一つ以上の他のノードのそれぞれからブロードキャストされたブロードキャスト情報である他のブロードキャスト情報を、所定周波数で、周期的に受信するよう前記受信器を制御し、前記他のノードからの前記他のブロードキャスト情報に従って前記識別子及び前記データペイロードの前記更新を行う。
本発明の他の側面は、添付の図面と関連した典型的な実施形態に関する以下の記述から明らかになるであろう。
本発明の一部の実施形態による各ノードのハードウェア構成図。 本発明の一部の実施形態によるトランザクション装置のハードウェア構成図。 本発明のシステム図を示す。 周期的なブロードキャストであるプロトコルデータ(ブロードキャスト情報)定義プロトコルを示す一例。 n個のノードが実施形態に従うアドホック・コネクションレス・メッシュ・ネットワークを形成する様子を示す一例。 ノードがアクティブノードになることを要求することを示す一例。 アクティブノードが要求ノードに新しいアクティブノードとなることを許可することを示す一例。 メッシュネットワークの状態が再度安定することを示す一例。 本発明の実施形態に係るコネクションレス・メッシュ・ネットワークを形成する各複数のノードが実行する処理を示すフローチャート。
本発明は、例示的な目的のための特定の実施形態を使用して以降で説明されるが、本発明がこれら実施形態に制限されるものと理解すべきではない。
本発明の本実施形態では、データが急速にすべての近傍ノード100に伝搬する複数のノード100がコネクションレス・メッシュ・ネットワークを形成する。他のノード100との接続/セッション確立をせずに、各ノード100は所定周波数にて、自身とデータペイロードを特定する識別子(ID)を含む情報を周期的に無線でブロードキャストする(「アドバタイジング」とも称す)。さらに、各ノード100は、所定周波数にて、全ての他のノード100からブロードキャストを周期的に受信する。なお、各ノード100は、それぞれノード100が受信する入力情報(ノード100のタッチパネルへのユーザのタッチによる入力等)に従って、もしくは他のノード100のブロードキャストを受信する際に受信される情報に従ってデータペイロードを随時生成/更新する。なお、各ノードは、例えば競合を解消するためにいつでも自分の識別子を変更しても良い。
一部の実施形態では、ノード100は、例えば、スマートフォンもしくはタブレットのような携帯端末であり、それらは例えば、所定周波数で電波を送信及び受信が可能であり、プログラム及びデータを保存するためのメモリ、プログラムを実行することにより機器を制御するための一つ以上のプロセッサ(例えばCPU101)を含む。
一部の実施形態では、周期的なコネクションレス・ブロードキャスト通信は、他のノード100との接続を確立することなしに(通信は特定の機器に指向される)BLE(Bluetooth Low Energy)のブロードキャストモードにおいて排他的にブロードキャストの実行(アドバタイジング)とブロードキャストの受信(スキャン)との両方を行う各ノード100により実現し得る。一部の実施形態では、このブロードキャストはAppleのiBeacon(登録商標)規格を使用して実施される。
BLEのブロードキャストモードでは、所定周波数で一方向性(一対多)のメッセージを送信することが可能である。オブザーバ通信装置は、所定周波数を繰り返しスキャンすることによりブロードキャスト装置から送信された一方向性のメッセージを受信可能である。ノード100は、一部の実施形態において、BLEのブロードキャスト装置(周辺装置)としての役割で情報を周期的にブロードキャストし、BLEのオブザーバ(セントラル)としての役割で全ての他ノード100からのブロードキャストを受信する。ここで、これら一方向性のメッセージをブロードキャスト及び受信することにより、ノード100はブロードキャストで受信される情報に基づいて情報(例えばネットワークの状態など)が随時更新される、迅速な多対多通信が達成されるメッシュネットワークを効果的に形成する。
なお、ブロードキャスト及びスキャンのための所定周波数は、例えばBLEの「アドバタイジングチャンネル」に対応する周波数帯域に含まれてもよい。ブロードキャストがBLEにより実施される本実施形態では、ブロードキャストは「アドバタイジング」と称されてもよい。
一部の実施形態では、各ノード100の不揮発メモリ(例えばROM103)に保存され、各ノード100の揮発メモリ(例えばRAM102)へと展開され、各ノード100のCPU101の制御の下で実行されるプログラム(アプリケーション)は、上述のブロードキャスト(アドバタイジング)、受信(スキャン)及びデータの生成/更新を行うためにノード100を制御する。特定の実施形態の一例では、ノード100が「アクティブ」もしくは「非アクティブ」になると、このようなプログラムを実行することにより、CPUは対応するノード100のユーザに通知する。この例は添付図面を参照して、以下に詳細を説明する。なお、この詳細な例は例示的であり、発明の権利範囲を制限することを意図していない。
コネクションレス・メッシュ・ネットワークを形成する複数のノード100は例えば、ユーザ端末であってもよい。例えばこのユーザ端末は、本件発明の実施形態に係る無線機能を備えている、スマートフォン、タブレット端末、PDA又はあらゆる他の機器であってもよい。以下、ノード100は、例えばスマートフォンであると仮定する。上記プログラムは、各スマートフォンにインストールされているものとする。各ノード100は、ブロードキャスト(無線データ送信)を実行可能な送信器105、ブロードキャストを受信可能(無線伝送の受信)な受信器106、受信した情報やプログラムを保存可能なメモリ(RAM102又は記憶部104)、及び統括制御を実行可能なCPU101のようなハードウェアを含んでもよいと仮定する。プログラムを実行することでCPU101は、ブロードキャストを行う送信器105の制御、ブロードキャストを受信する受信器106の制御、データ(情報)を保存及び抽出するメモリの制御、及び対応する機能(UI(user interface)画面を表示又はタッチ入力を受信する等)を行うタッチパネルディスプレイ(出力機器107、入力機器108)のような他のハードウェアの制御が可能である。
本実施形態では、複数のノード100の一つは、トランザクション装置200から報酬(ロイヤルティポイント情報等)を受信可能である。トランザクション装置200は、販売機、POS端末(Point Of Sale - 販売時点)、発券機、現金自動預け払い機(ATM)又は、例えばユーザによる商品の購入といった、ユーザ操作の照合に応じてポイントをユーザに発行することが可能な他の任意の装置を含んでもよい。以下、実施形態におけるトランザクション装置200として販売機を例示し説明する。なお、このようなトランザクション装置を必要としない実施形態と、このようなトランザクション装置を除くいかなる他の目的のためのメッシュネットワークのためのノードとが存在する。
以下で詳しく述べるように、トランザクション装置200は、無線送信器205、受信器206、CPU201及びメモリ(RAM202、ROM203、記憶部204)も備えているものとする。トランザクション装置200は、ノード100が、トランザクション装置200に近接していると判定可能な識別情報を周期的にブロードキャストするよう構成される。トランザクション装置200はさらに、トランザクション装置200で行われる取引に関連する報酬情報を送信するよう構成される。例えば、ノード100の一つのユーザがトランザクション装置200(販売機)から商品を購入したことに応じてこの報酬情報を送信してもよい。上記プログラム(アプリケーション)を実行しているノード100の一つがこの報酬情報を受信する際、例えば上記プログラム(アプリケーション)にログインしたユーザのユーザアカウントとともに、報酬(例えば購入に対応するロイヤルティポイント)に関する処理を実行する。本処理は例えば遠隔サーバへ識別情報及び報酬情報を伝送することを含むものであってもよい。
図1は、本発明の一部の実施形態による各ノード100のハードウェア構成図である。ノード100は、中央処理装置(CPU)101、ランダム・アクセス・メモリ(RAM)102、リード・オンリ・メモリ(ROM)103、記憶部104、送信器105及び受信器106、出力デバイス107及び入力デバイス108を備える。これら全ての構成要素は、バス109により互いに接続される。
CPU101は、ROM103に保存されているコンピュータプログラムをRAM102に読み出して、プログラムの命令の実行によりノード100の全体動作を制御できるハードウェアプロセッサである。簡単のため一つのCPU101のみが図示されているものの、ノード100の機能を達成するために複数のCPU101が連携して命令を実行するように構成してもよい。CPU101は、プログラムの命令を実行可能な任意のプロセッサであってもよい。
送信器105は、BLEのような特定の通信規格に従って、例えば他のノード100又はトランザクション装置200にデータを送信するための機器である。送信器105は、インターネットのようなコンピューティングネットワーク上のデータパケットを送信し、例えば、Universal Serial Bus(USB)、Ethernet、IEEE1394、無線周波数(RF)、近距離無線通信、802.11(WiFi)、TCP/IP等のようなインタフェースの各種方式を含んでもよい。CPU101は、バス109を経由して送信器105へ制御信号を送信することで、プログラムに従ってデータを送信するように送信器105を制御する。
受信器106は、BLEのような特定の通信規格に従って、例えば他のノード100又はトランザクション装置200からデータを受信するための機器である。受信器106は、インターネットのようなコンピューティングネットワーク上のデータパケットを受信し、例えば、Universal Serial Bus(USB)、Ethernet、IEEE1394、無線周波数(RF)、近距離無線通信、802.11(WiFi)、TCP/IP等のようなインタフェースの各種方式を含んでもよい。CPU101は、バス109を経由して受信器106に制御信号を送信することで、プログラムに従ってデータを受信するように受信器106を制御してもよい。
記憶部104は、様々な種類のデータを保存可能な不揮発記憶装置である。一部の実施形態では、例えば、記憶部104は内蔵メモリ機器であり、他の実施形態では、ノード100に着脱自在に取り付けられている。出力デバイス107は、ノード100のユーザに情報を提示するための機器であり、例えばLCDのディスプレイ又は携帯電話の画面等で構成され、ノード100のユーザに対して情報を出力する。ディスプレイ107は、ノード100に内蔵、又はノード100に外付けされるものであってもよい。
出力デバイス107は、視覚的出力装置に限られず、例えばスピーカのような音声出力装置を備えるものであってもよい。
入力デバイス108は、ノード100のユーザがノード100に情報を入力するのに使用する機器である。入力デバイス108は、ディスプレイ107に一体的に内蔵されるタッチパネル機器であってもよい。しかし入力デバイス108はこれに限られず、マイクロフォンのような音声入力装置を備えるものであってもよい。
一部の実施形態では、ノード100の機能は、CPU101がRAM102をワークエリアとして使用し、ROM103に保存されたソフトウェアプログラムを実行することにより実現可能である。プログラムに従って、CPU101は、バス109上で制御信号を送信し、信号を受信することにより、ノード100の他の構成要素の動作を制御できる。
図2は、本発明の一部の実施形態によるトランザクション装置200のハードウェア構成図。トランザクション装置200は、中央処理装置(CPU)201、RAM202、ROM203、記憶部204、送信器205及び受信器206、出力デバイス207、及び入力デバイス208を備える。これら全ての構成要素は、バス209により互いに接続される。
CPU201は、ROM203に保存されているコンピュータプログラムをRAM202に読み出して、プログラムの命令の実行によりトランザクション装置200の全体動作を制御できるハードウェアプロセッサである。簡単のため一つのCPU201のみが図示されているものの、トランザクション装置200の機能を達成するために複数のCPU201が連携して命令を実行するように構成してもよいことに留意すべきである。CPU201は、プログラムの命令を実行可能な任意のプロセッサであってもよい。
送信器205は、BLEのような特定の通信規格に従って、例えばノード100又は無線通信機能を備える他の機器にデータを送信するための機器である。送信器205は、インターネットのようなコンピューティングネットワーク上のデータパケットを送信し、例えば、Universal Serial Bus(USB)、Ethernet、IEEE1394、無線周波数(RF)、近距離無線通信、802.11(WiFi)、TCP/IP等のようなインタフェースの各種方式を含んでもよい。CPU201は、バス209を経由して送信器205に制御信号を送信することで、プログラムに従ってデータを送信するように送信器205を制御してもよい。
受信器206は、BLEのような特定の通信規格に従って、例えば他のノード100からデータを受信するための機器である。受信器206は、インターネットのようなコンピューティングネットワーク上のデータパケットを受信し、例えば、Universal Serial Bus(USB)、Ethernet、IEEE1394、無線周波数(RF)、近距離無線通信、802.11(WiFi)、TCP/IP等のようなインタフェースの各種方式を含んでもよい。CPU201は、バス209を経由して送信器205に制御信号を送信することで、プログラムに従ってデータを送信するように送信器205を制御してもよい。
記憶部204は、様々な種類のデータを保存可能な不揮発記憶装置である。一部の実施形態では、例えば、この記憶装置は内蔵メモリ機器であり、他の実施形態では、トランザクション装置200に着脱自在に取り付けられている。
出力デバイス207は、例えばLCDのディスプレイなどの装置であり、トランザクション装置200から商品を購入したいユーザに対して情報を出力する。ディスプレイ207は、トランザクション装置200に内蔵、又はトランザクション装置200に外付けされるものであってもよい。出力デバイス207は、視覚的出力装置に限られず、例えばスピーカのような音声出力装置を備えるものであってもよい。
入力デバイス208は、トランザクション装置200のユーザがトランザクション装置200に対して情報もしくは命令を入力するのに使用する機器である。入力デバイス208は、ユーザが購入する商品を選択するのに使用されるディスプレイ207に一体的に組み込まれたタッチパネル機器および/またはボタンであってもよい。しかし入力デバイス208はこれに限られず、マイクロフォンのような音声入力装置を備えるものであってもよい。
一部の実施形態では、トランザクション装置200の機能は、CPU201がRAM202をワークエリアとして使用してROM203に保存されたソフトウェアプログラムを実行することにより実現可能である。プログラムに従って、CPU201は、バス209上で制御信号を送信し、信号を受信することにより、トランザクション装置200の他の構成要素の動作を制御できる。
トランザクション装置200は、販売機、POS(Point Of Sale)端末、発券機、現金自動預け払い機(ATM)又は、例えば、ユーザ操作の照合に対してポイントをユーザに発行することが可能な他の任意の装置に内蔵されてもよいし、外部に搭載されてもよい。
図3は、後述する例におけるシステム図を示している。1からnまでの識別子を有する複数のノード100は、トランザクション装置200の近傍に存在する。任意のトランザクション装置200は、全てのノード100にブロードキャストを送信する。同様に、各ノード100は、全ての他のノード100にブロードキャストを送信し、他の各ノード100及びトランザクション装置200からのブロードキャストを受信する。
購入を行うユーザの対応ノード100(アクティブノード100)上で実行されているプログラム(アプリケーション)にログインしているユーザアカウントのみが、報酬と関連づけられるべきである。これを保証するため、CPU101がプログラムを実行することによるノード100の制御により、上述したコネクションレス・メッシュ・ネットワークを速やかに形成して、複数のノード100のいずれがアクティブノード100かを相互に通信する。このような動作により、各ノード100のユーザに対して現在アクティブになっているノード100がどれかが通知され、自分のノード100がアクティブになったという通知に合せて購入を行なうことができる。
ノード100のユーザは、例えば、対応するポイントを受信するために、他のユーザもしくはトランザクション装置200の近傍にあるとき、ノード100にインストールされたプログラム(アプリケーション)を起動する。プログラムの起動に際して、ノード100のCPU101は、まずノード100に、当該ノード100が現在アクティブでない(トランザクション装置200からの報酬通信を受信及び処理する準備ができていない状態(非アクティブ状態))旨をノード100のユーザに対して通知させる。これは、ノード100がトランザクション装置200の通信可能範囲内に必ずしもいないために実行される。これ以外にも、たとえノード100がトランザクション装置200の範囲内であっても、トランザクション装置200の範囲内にある他のノード100が同様にプログラム(アプリケーション)を実行している可能性がある。一部の実施形態では、この通知は、CPUがノード100を制御して、ノード100が非アクティブ状態であることを示すUI画面を(例えば、ノード100の表示部107上に)表示させる処理に対応する。
通知を行った後、ノード100は、トランザクション装置200が自己識別ブロードキャスト通知を送信する所定周波数をスキャンする。トランザクション装置200の識別情報に加えて、トランザクション装置200によるこのブロードキャストは、受信するノード100がトランザクション装置200からの距離を推定することを可能にする情報を含んでいてよい。例えば、トランザクション装置200は、仮にトランザクション装置200の送信器から1メートル離れた地点でのブロードキャストを受信した場合の予測RSSI(受信信号強度)の指標を送信してもよい。この値及び実測RSSIに基づいて、ノード100は、トランザクション装置200からの距離の推定を計算できる。
トランザクション装置200からブロードキャストを検知するためのスキャンと共に、各ノード100は、所定周波数にて、付近にある現在上記プログラムを実行中である任意の他のノード100からブロードキャストを受信するためにスキャンする。さらに、各ノード100は、所定周波数にて、当該ノード100を識別する識別子を含む情報を周期的にブロードキャストする。この識別子は、例えば、の所定範囲の識別子のうちから疑似ランダムに選択されてもよい。ノード100は、このようなブロードキャストや受信のために相互接続を確立することはない。
なお、他のノード100から受信したブロードキャストを解析することにより、ノード100が疑似ランダムに選択する識別子が他のノード100と衝突するとノード100が判定すると、ノード100は疑似ランダムに他の識別子を選択する。許容可能な衝突確率であると判定されたものに応じて予め識別子の範囲の大きさを判定してもよい。より大きな範囲を選択することは、衝突確率を低くさせる利点があり、一方で小さな範囲を選択することは、ブロードキャスト中で送信される必要があるデータを少なくする利点がある。
識別子と共に、ブロードキャスト情報は、少量のペイロード情報を含む。この例におけるペイロード情報は、ネットワークの現在の状態を示す情報を含む。つまり、この情報は、ブロードキャストを行なうノード100がアクティブ(アクティブノードID402)と判定したノード100の識別子を示す。ブロードキャストを行なうノード100がどのノードがアクティブなのかをまだ判定していない場合、例えば代わりにアクティブノードID402がまだ判定されていないことを示す情報が含まれていてもよい。
さらに、ブロードキャストのペイロード情報は、ブロードキャストしたノード100がアクティブノード100となることを望むこと(アクティブ要求フラグ403)を示すフラグの情報を含んでいてもよい。一部の実施形態では、このフラグは、ノード100が他のノード100の一つがアクティブノード100であると判定した状態において、ノード100のユーザがプログラムのUI画面に対して、例えば、アクティブノード100になることを望むことを示すように入力操作を行ったタイミングで設定される。例えば、この操作は、ノード100のタッチパネル上のタッチ入力に対応するものであってもよい。
なお、ペイロード情報400は、例えば前述したトランザクション装置200からノード100までの距離の推定の情報(距離推定情報404)も含むものであってもよい。
なお、ペイロード情報400は、例えばノード100が他のネットワークに属するノード100からのブロードキャスト信号をただ無視するように、異なるメッシュネットワークが近傍で共存可能であるようなネットワーク識別子も含んでもよい。
ノード100が、どのノード100がアクティブノード100であるかをまだ判定していない状態では、ノード100は、トランザクション装置200から自己識別ブロードキャストを受信するにあたり、どのノード100がアクティブノード100であるかを判定する処理を行う。なお、トランザクション装置200からのブロードキャストが、トランザクション装置200が所定距離内であることを示している場合のみ、ノード100は本処理を行うものであってもよい。これは、例えば、ノード100それぞれがトランザクション装置200のブロードキャストの範囲内であり、反面互いのブロードキャストの範囲でないといった状況を避けるためである。
どのノード100がアクティブノードであるかを判定する処理では、ブロードキャストが任意の他のノード100から受信されない場合、ノード100は自身がアクティブノードであると判定してもよい。この場合、ノード100は、ノード100が現在アクティブであることを、例えばノード100のLCD上のUI画面表示によりノード100のユーザに通知してもよい。これに対して、ノード100のユーザは、トランザクション装置200から購入を行い、そして報酬通信がトランザクション装置200から送信される。ノード100がこの送信を受信すると、そのノード100がアクティブノードであると判定されるため、ノード100のCPUが実行しているプログラム(アプリケーション)にログインしているユーザと、通信に対応するロイヤルティポイントと、を関連付ける処理を行う。
一部の実施形態では、トランザクション装置200からアクティブノード100への報酬情報の送信は、コネクションレス・ブロードキャスト送信であってもよい。その他の実施形態では、アクティブノード100とトランザクション装置200とが接続を確立した後、報酬情報がトランザクション装置200からアクティブノード100に送信される。
一方、ブロードキャストが任意の他のノード100から受信されるとき、ノード100は、任意の他のノード100が、ノード100がアクティブノード100であると既に判定されているかどうかを最初に判定する。それは、他のノード100から受信される各ブロードキャストのペイロード中のアクティブノードID402を検証することにより行う。任意の他のノード100がアクティブノード100であると既に判定されている場合、ノード100は、メモリ中に、現在のアクティブノード100を示す情報(例えば、識別子)を保存する。なお、ノード100はその後それ自身の周期的なブロードキャストのためにその情報を使用してデータペイロードを生成する。
一方、ノード100が他のノード100のいずれもどのノード100がアクティブであるかを判定していないと判定した場合、ノード100は、どのノード100がアクティブであるかを他のノード100から受信する各ブロードキャストのペイロードの情報に従って判定する。例えば、ノード100は、距離推定情報404に基づいて、どのノード100がアクティブであるかを判定してもよい。一部の実施形態では、ノード100は、アクティブノード100であるトランザクション装置200と最も近いと推定されるノード100がいずれかを判定する。一部の実施形態では、ノード100は、ノード100の識別子に基づいて、どのノード100がアクティブであるか判定する。例えば、最小の識別子を持つノード100がアクティブであると定めてもよい。どのノード100がアクティブか判定する他の方法は、例えばトランザクション装置200から推定された距離及び識別子の両方に基づいた方法等が利用可能である。
なお、距離推定情報404に基づいてどのノード100がアクティブであるか判定することは、トランザクション装置200に最近接したノード100(即ち対応ユーザが実際に購入を行う可能性が最も高いもの)がアクティブであると判定される可能性が最も高いという利点を有する。一方、アクティブノード100が単純に識別子に基づいて判定されると、距離推定情報404が他のノード100へブロードキャストされる必要がないという利点がある。
図4は距離推定情報404が用いられる際の周期的なブロードキャストであるプロトコルデータ400(ブロードキャスト情報)を定義するプロトコルの例を示す。「ノードID」401はブロードキャストしているノード100の識別子の情報に対応する。「アクティブノードID」402はブロードキャスト装置がアクティブであると判定したノードの識別子情報に対応する。「アクティブ要求可否」403はブロードキャスト装置がアクティブになるために要求しているかどうかを指し示すフラグに対応する。「距離推定」404はノード100からトランザクション装置200への推定された距離を指し示す。「ノードID」401、「アクティブノードID」402と「距離推定」404はプロトコルデータ400のペイロード情報を構成する。他のありうるデータとして、2つの別々のメッシュネットワークをすぐそばにて運用可能にするためのネットワークIDが含まれるが、これに限定されない。
図5は、n個のノード100が実施形態に応じたアドホック・コネクションレス・メッシュ・ネットワークを形成する様子を示す一例である。各ノード100の識別子は大きな太字で示され、図中左端のノード100Aの識別子は「1」、中央ノード100Bは「2」、右端のノード100Nは「n」である。ノード100のそれぞれは、識別子「1」を持つ左端のノード100Aがアクティブノードであると判定している。これは図中のノード100のそれぞれの中の四角に囲まれた小さい「1」によって図示されている。ノード100のそれぞれは「ノードID」401として自身の識別子を、「アクティブノードID」402として「1」を、「アクティブ要求可否」フラグ403として「no」を、そしてその値を簡略化のために「・・・」として省略された「距離推定」404をブロードキャストしている。また、各ノードはすべての他ノードのブロードキャストを受信している。
前述したように、非アクティブ状態にあるノード100のユーザーはアクティブノード100になることを要求するために、ノード100の操作(ノード100が受信する入力)を行ってよい。この場合、ノード100の以降のブロードキャストでアクティブ要求フラグ403がyesに設定される。図6は識別子「2」のノード100Bがアクティブノード100になるための要求を行う例を示す。
アクティブノード100がアクティブ要求フラグ403がセットされた他のノード100の一つからのブロードキャストを受信した際、アクティブノード100は要求ノード100からブロードキャストされたアクティブ要求フラグ403の情報を分析することで、要求ノード100がアクティブノード100になることを希望していることを検出できる。アクティブノード100は、その後要求ノード100の識別子を「アクティブノードID」402としてブロードキャストすることで、アクティブノード100としてのその立場を要求ノード100へ譲渡してもよい。
一部の実施形態においては、アクティブノード100は要求ノード100に即座にアクティブになることを許可する。その他の実施形態において、アクティブノード100は例えば所定時間または所定回数の要求の後に要求ノード100がアクティブになることを許可する。更に他の実施形態において、アクティブノード100は(ノード100のタッチパネルのUI画面に対するタッチ入力のような)入力デバイス108上で入力操作を行うアクティブノード100のユーザーに従って、要求ノード100がアクティブになることを許可する。
図7はアクティブノード100A(識別子「1」)が要求ノード100B(識別子「2」)に新たにアクティブノード100になることを許可する例を示す。なお、ノード100Aによるブロードキャストにおいて、識別子が「2」であるノード100Bが新たなアクティブノード100になることを許可するために、「2」が「アクティブノードID」402としてブロードキャストされる。
図8は、メッシュネットワークの状態が再度安定することを示す一例である。図7中の非アクティブノード100(識別子「2」−「n」)がアクティブノード100A(識別子「1」)からのブロードキャストを受信した際、(例えば記憶部104またはRAM102の情報を書き換えることで)アクティブノード100がノード「2」へ変わったことを反映するためにそのローカルの状態を更新する。また、続くブロードキャストにおいて、それらは「アクティブノードID」402として新たなアクティブノード100Bの識別子「2」を送信する。同様に、アクティブであったノード100A(識別子「1」)はアクティブノード100としてのその役割を譲渡し、「アクティブノードID」402として新たなアクティブノード100Bの識別子「2」を送信する。このように、ネットワークの状態(現在のアクティブノード100)は随時更新され、メッシュネットワークのすべてのノード100へ速やかに伝搬される。
一部の場面で、ノード100はその他のノード100からのブロードキャストを受信した際、ネットワークの現在の状態が矛盾していると判定する場合がある。例えば、当初はトランザクション装置200の範囲内にいるが互いの範囲内にない2つのノード100はそれぞれが自分自身がアクティブノード100になると判定する。しかしながら、2つのノード100がその後互いの範囲内に移動すると、それらは互いからのブロードキャストを受信し、「アクティブノードID」402で両者が自身をアクティブノード100であると主張していると判定する。このような場合、ノード100は自身がアクティブであると主張しているノード100は実際のアクティブノード100であると上述の手順で(推定された距離、識別子等を用いて)再度判定してもよい。さらに、このアクティブノード100の再判定は、以降の再判定を実行されたノードからのブロードキャストで非アクティブノード100へ伝搬される。例えば、内部状態が再判定によって非アクティブになったノード100がアクティブであることを示すように設定されていた非アクティブノード100は、そのローカルに保存された「アクティブノードID」402情報を、非アクティブになったノードが再判定の後にブロードキャストした「アクティブノードID」402(つまり再判定でアクティブのままであると判定されたノードの識別子)に従って更新するであろう。このように、矛盾の訂正はネットワークを経由して速やかに伝搬する。
さらに、現在のアクティブノードが付近から離れるまたはその電源が突然落とされた際、アクティブノード100がもはや周期的にブロードキャストしていないノード100であることを指し示す情報をその他のノード100が内部に保存するという状況が起こりうる。一部の実施形態においてそのような状況は、例えば所定時間の間に現在のアクティブノード100からのブロードキャストが受信されなかった際にどのノード100がアクティブノード100かという再判定を実行することで対応可能である。
一部の実施形態において、複数のノード100は上述のようにブロードキャスト能力を持たないがスキャン能力を有するデバイスを備える。これらのノード100は「第二クラス装置」とみなされ、ブロードキャストとスキャンの能力を両方持つノード100は「第一クラス装置」とみなされる。このような場合、第一クラス装置は上記の例で記載されたように動作する。一方、第二クラス装置はアクティブ状態になる前に第一クラス装置からのブロードキャストがないと検出するまで待機する。このような場合、第一クラス装置と第二クラス装置間の競合は回避できる。2つの第二クラス装置間の競合はその他の方法によって回避されてよい。例えば、上述したような手順によってアクティブノード100を判定するために、第二クラス装置は互いにWiFiによって通信してもよい。
図9A及び図9Bは、本発明の実施形態に係るコネクションレス・メッシュ・ネットワークを形成する複数のノード100のそれぞれが実行する処理を示すフローチャートである。例えば、ROM103に保存されたコンピュータプログラムをRAM102に読み出して、プログラムに応じたRAM102、記憶部104、発信器105、受信器106、出力デバイス107及び入力デバイス108を制御するCPU101により、ノード100は本処理を実現する。
本処理は、例えば、アプリケーションに対応したアイコン上のタッチ動作等、入力デバイス108を使用する操作を行うことにより、ノード100のユーザが対応アプリケーションのプログラムを起動するときに開始するものであってもよい。
S901にて、CPU101は、プロトコルデータ400中のノードID401、アクティブノードID402、アクティブ要求フラグ403及び距離推定情報404を、初期値を保存するようにRAM102又は記憶部104を制御することにより初期化する。なお、一部の実施形態では、距離推定情報404は存在せず、又はペイロード情報400の情報は異なる形式のものである。ここで、ノードID401は、前記のとおり、所定範囲内に疑似ランダムに生成された数値に初期化されるものであってもよい。アクティブノードID402及びアクティブ要求フラグ403は、所定の初期値(例えば、アクティブノードID402における-1、アクティブ要求フラグ403におけるno等)に設定されるものであってもよい。
次に、CPU101はS902に処理を進め、自己識別ブロードキャストがトランザクション装置200から受信器106を経由して周期的なアドバタイジングブロードキャストにて受信するかどうかを判定する。アドバタイジングブロードキャストがトランザクション装置200から受信された場合、CPU101は、S903に処理を進める。そうでないときは、CPU101はS902の処理を繰り返す。トランザクション装置200を採用しない実施形態では、S902はスキップされる。
S903にて、CPU101は、前記のとおり、トランザクション装置200から受信したブロードキャストに従って距離推定情報404を更新する。距離推定情報404を採用しない実施形態では、S903はスキップされる。
次に、CPU101はS904に処理を進め、通信範囲内の全ての他のノード101からの周期的なブロードキャストにおける各プロトコルデータ400(ノードID401、アクティブノードID402のペイロード情報、アクティブ要求フラグ403及び距離推定情報404)を受信するように受信器106を制御する。なお、この受信は、それぞれ他のノード100内で接続を確立せずに行われる。
次に、CPU101はS905に処理を進め、アクティブノードID402がS901で設定された初期値のままになっているかどうか判定する。この判定の目的は、後述の初期のアクティブノード100設定処理を行うかどうか判定するためである。
S905にて、CPU101はまた、自身(本ノード100)を含む複数のノード100のプロトコルデータ400の現在の状態が、他のノード100から受信されたプロトコルデータ400及びS901で初期化された本ノード100のプロトコルデータ400の現在のバージョンに基づいて矛盾しているかどうか判定する。上記のとおり、矛盾状態は、例えば、二つ以上のノード100がそれら自身がアクティブノードID402内のアクティブノード100であることを同時にブロードキャストするとき、及びアクティブノード100が突然ブロードキャストを中止したときに対応するものであってもよい。さらに、矛盾状態は、二つ以上のノード100がS901で自身における同一のノードID401を偶然生成する場合において、二つ以上のノード100が同一のノードID401を持っていると判定されるときに対応するものであってもよい。
CPU101は、プロトコルデータ400の情報が初期値のままになっていると判定した場合、或いは状態が矛盾していると判定した場合、S906に処理を進める。
S906にて、CPU101は、矛盾状態かどうかを再び判定する。状態が矛盾している場合、CPU101は、S901に処理を戻す。これは、システムを自己修正するために矛盾状態を解消するプロトコルデータを再初期化するという目的を果たす。なお、このフローは簡略化して説明したが、どのように状態が矛盾しているかに応じて矛盾状態を解消する処理がなされることにより最適化を図る。例えば、その他の実施形態では、例えば、IDが衝突しているノード100のみがそれらIDを再初期化し、他のノード100がその衝突を無視するものであってもよい。
S906にて、矛盾状態ではないとCPU101が判定した場合、S907に処理を進める。S907にて、CPU101は、他のノード100のいずれかが現在アクティブであるかどうかを判定する。S904で各プロトコルデータを解析し、ブロードキャストで他のノード100から受信する各ノードID401において初期値ではない(例えば、正、非ゼロ値)が設定されているかどうかを確認することにより、これを行うものであってもよい。なお、状態はS906にて矛盾していないと判定されたため、アクティブノード100となっている他のノード100が一台のみになる。
S907にて他のノード100がアクティブであるとCPU101が判定した場合、CPU101はS908に処理を進め、例えば、S904にてアクティブなノードであるノード100から受信したノードID401の値に、アクティブノードID402の自身の現在のバージョンを記憶するメモリを更新するようにRAM102又は記憶部104を制御する。
次に、CPU101はS909に処理を進め、RAM102または記憶部104に保存されているプロトコルデータ400の随時更新される現在のバージョンを、例えば、他のノード100へ所定周波数でブロードキャストするように送信器105を制御する。先に述べたとおり、例えば、BLEのブロードキャスト役割において、及びiBeaconに従ってこのブロードキャストは行われてよい。S909のブロードキャストを行った後、CPU101はS902に処理を進め、処理を繰り返す。
S907にてアクティブである他のノード100はないとCPU101が判定した場合、S910に処理を進め、初期アクティブノード設定処理を行う。初期アクティブノード設定処理は、前述したように、各距離推定情報404に従ってトランザクション装置200に最も近いと推定された複数のノード100のうちのノード100を、アクティブノード100として、判定することを含むものであってもよい。なお、初期アクティブノード設定処理は、ノード100の各ノードID401に従ってアクティブノード100を判定することを含むものであってもよい。例えば、ノード100のうち、ノードID401が最小(又は最大)であるノード100は、アクティブノード100であると定めてもよい。CPU101は、例えば、ノードID401へ現在値を保存するメモリを更新するようにRAM102又はメモリ104を制御する。続いて、CPU101はS909に処理を進める。
S905に戻り、CPU101は、プロトコルデータ400の情報が初期値のままになっていないと判定し、且つ矛盾状態ではないと判定した場合、S911に処理を進める。
S911にて、CPU101は、本ノード100が現在のアクティブノード100であるかどうかを判定する。つまり、CPU101は、RAM102または記憶部104に保存された自身の現在バージョンのプロトコルデータ400においてアクティブノードID402を読み込み、S901にて初期化された自身のノードID401と同じであるかどうかを判定する。
CPU101は、ノード100が現在のアクティブノード100であることを判定し、S912に処理を進める。そして、CPU101は、他のノード100の一つがアクティブノード100になることを要求したか否かを判定する。CPU101は、S904にて他のノード100のそれぞれから受信したプロトコルデータ400内のアクティブ要求フラグ403を読み込むことにより、この判定を行う。
CPU101が他のノード100がアクティブノード100になることを要求したと判定した場合、S913に処理を進める。そうでないときはS909に処理を進める。S913にてCPU101は、アクティブノード100の立場を、アクティブノード100になることを要求するノード100へ譲渡するための条件が満たされているかを判定する。前述したように、これらの条件は、ノード100がアクティブになることを所定回数要求したと判定されたこと、アクティブになることを要求するノード100の要求から所定時間が経過したこと、アクティブノード100がアクティブノードとしての立場を譲渡するように指示するためのノード100のユーザの入力操作が入力デバイス108を介して受信されたこと、などを含むものであってもよい。なお、複数の他のノード100がアクティブノード100となることを同時に要求している場合、S913の処理は、その一つがアクティブノード100に決められる、又は全てが譲渡する条件を満たしていないと判定されるまで、これらノード100に対して一つずつ行ってもよい。
CPU101が、アクティブノード100の立場を譲渡するための条件が満たされていると判定した場合、S914に処理を進め、自装置のプロトコルデータ400にて要求ノード100の識別子をアクティブノードID402として設定する。続いて、CPU101はS909に処理を進める。
S913にて、アクティブノード100になることを要求している他のノード100のいずれも、CPU101がアクティブノード100の立場を譲渡するための条件を満たしていないと判定した場合、S909に直接処理を進め、自身の現在のアクティブノードID402をそのまま残存させる。
S911に戻り、ノード100が現在のアクティブノード100でないとCPU101が判定した場合、S915に処理を進める。S915にて、CPU101は、他のノード100から受信した前回の周期的ブロードキャスト時から、現在のアクティブノード100が変わったかどうかを判定する。それまでアクティブノードだった他のノード100から受信されたプロトコルデータ400内のアクティブノードID402を読み込むこと、及びS904にてその他のノード100から受信されたノードID401及びアクティブノードID402が同一であるかどうか判定することにより、この処理を行う。これらが同一でない場合、それはアクティブノード100がアクティブノード100としての立場を譲渡したことを意味する。
S915にて、それまでのアクティブノード100がアクティブノード100としての立場を譲渡したとCPU101が判定した場合、CPU101はS916に処理を進める。そうでないときはS919に処理を進める。S916にて、CPU101は、RAM102又はストレージメモリ104に保存されたノードID401の現在のバージョンを新しいアクティブノード100(すなわち、S904にて受信された、それまでのアクティブノード100がブロードキャストしたアクティブノードID402中の識別子を持つノード100)に更新する。続いて、CPU101はS917に処理を進める。
S917にて、CPU101は、自ノード100がアクティブノード100になったかどうかを判定する。S916にて設定したIDがS901にて初期化されたノード100のIDと同一であるかどうかを判定することにより、この処理を行う。ノード100がアクティブノード100となった場合、CPU101はS918に処理を進める。そうでないときはS919に処理を進める。
S918にて、CPUはアクティブ要求フラグ403の現在のバージョンを再設定する。続いて、CPU101はS909に処理を進める。
S919にて、CPU101は、アクティブになることの要求が入力デバイス108を通してノード100のユーザから受信されたかどうかを判定する。先述のように、このような入力は、例えばこのフローチャートの処理を開始したプログラムのアプリケーションに表示されるボタン上のタッチ操作と対応するものであってもよい。
CPU101が、アクティブになることの要求を受信したと判定した場合、S920に処理を進める。そうでないときはS909に処理を進める。S920にて、CPU101は、プロトコルデータ400にてアクティブ要求フラグ403の現在のバージョンをyesに更新し、それからS909に処理を進める。
なお、CPU101は、ノード100がアクティブノードとなったと判定したことに併せてアクティブ化動作(例えば、S910又はS916にて)をノード100に行わせるよう制御するようにしてもよい。同様に、CPU101は、他のノード100がアクティブノードとなったと判定したことに併せて非アクティブ化動作(例えば、S910、S914又はS916にて)をノード100に行わせるよう制御するようにしてもよい。例えば、アクティブ化動作は、出力デバイス107を制御することによって、ユーザに本ノード100がアクティブになったことを通知することと対応するようにしてもよい。そして、非アクティブ化動作は、同様にノード100がアクティブでなくなったことを通知するようにしてもよい。このような通知は、ノード100がアクティブノード100となった/なくなったことをユーザに示してもよい。上記で挙げた例において、この通知はユーザにノード100がトランザクション装置200から報酬情報通信を受信する準備が整っているかどうかを示し、そこでユーザが販売機から購入するタイミングをこの通知を利用して合せることができる。
こうして、図9(A)及び図9(B)の処理により、ノード100は、自身のプロトコルデータ400のデータペイロードである、ノード100を識別する識別子であるノードID401(S901)、アクティブノードID402(S908、S910、S914、S916)、アクティブ要求フラグ403(S918、S920)及び距離推定情報404(S903)を更新する。S909にて、ノードは、ブロードキャスト情報(プロトコルデータ400)として、ノードID401とともにこの随時更新されるペイロード情報を他の全てのノード100に周期的にブロードキャストする。さらに、ノード100は、S904にて、他のブロードキャスト情報(他のノード100のプロトコルデータ)を周期的に受信する。この他のブロードキャスト情報は、一つ以上の他のノード100のそれぞれからブロードキャストされるブロードキャスト情報(対応する処理により各ノード100により随時更新されるノードID401、アクティブノードID402、アクティブ要求フラグ403及び距離推定情報404)である。本処理によれば、互いに接続を確立する必要なく、複数のノード100が、そのうちの一つが現在のアクティブノード100であるということを互いに通信するメッシュネットワークを速やかに形成することが可能となる。
本発明は上述の例に限られず、これ以外のアプリケーシヨン(例えば、鬼ごっこ、旗取り、ホットポテト、又はじゃんけんのようなゲーム)にも適宜適用させてもよい。
本発明によれば、少量のデータが全ての近接ノード100に無線により伝搬されるメッシュネットワークにおいて、パフォーマンスを向上させ、複雑さを低減させることが可能である。これは、例えば、接続オーバーヘッド、多重接続管理の低減の方が安全性や信頼性より高く重視されている場合には有益であり得る。

Claims (20)

  1. 一つ以上の他のノードとコネクションレス・メッシュ・ネットワークを形成するノードであって、
    前記ノードのそれぞれは、
    前記一つ以上の他のノードに情報を無線送信する送信器と、
    前記一つ以上の他のノードから送信された情報を無線受信する受信器と、
    プログラムを保存するメモリと、
    前記メモリから前記プログラムを読み出して、実行することにより、前記プログラムに従って前記送信器及び前記受信器を制御する一つ以上のプロセッサと
    を備え、
    前記一つ以上のプロセッサは、
    前記ノードを識別する識別子を生成するよう制御し、
    前記識別子及びデータペイロードを更新するよう制御し、
    生成された識別子及び更新されたデータペイロードを含むブロードキャスト情報を、所定周波数で、周期的に無線ブロードキャストするよう前記送信器を制御し、
    前記一つ以上の他のノードのそれぞれからブロードキャストされたブロードキャスト情報である他のブロードキャスト情報を、所定周波数で、周期的に受信するよう前記受信器を制御し、
    前記他のノードからの前記他のブロードキャスト情報に従って前記識別子及び前記データペイロードの前記更新を行う
    ことを特徴とするノード。
  2. 前記データペイロードは、どのノードが現在のアクティブノードであるかを示す情報であるアクティブノード情報を有し、
    前記一つ以上のプロセッサは、前記他のノードのそれぞれから受信した前記他のブロードキャスト情報の前記データペイロードに含まれるアクティブノード情報に従って、どのノードがアクティブノードであるかを判定し、アクティブノードであると判定されたノードの識別子を示す前記アクティブノード情報を更新するために前記データペイロードの前記更新を行うことを特徴とする請求項1に記載のノード。
  3. 前記一つ以上のプロセッサは、前記更新において、
    前記受信器による前回の周期的な受信との関連で前記一つ以上の他のノードのうちアクティブノードであると判定されたノードから受信した、無線送信された情報のデータペイロードに含まれるアクティブノード情報が新しいアクティブノードの識別子を示すとの判定に応じて、前記送信器がその後にブロードキャストするアクティブノード情報を前記新しいアクティブノードの識別子を示すように更新することを特徴とする請求項2に記載のノード。
  4. 前記データペイロードは、前記ノードのそれぞれがアクティブノードになることを要望するかどうかを示す情報であるアクティブ要求情報を更に有し、
    前記一つ以上のプロセッサは、前記他のノードのそれぞれから受信した前記他のブロードキャスト情報の前記データペイロードのそれぞれに含まれる前記アクティブノード情報及び前記アクティブ要求情報に従って、どのノードがアクティブノードであるかを判定することを特徴とする請求項3に記載のノード。
  5. 前記受信器による前回の周期的な受信との関連で前記ノードがアクティブノードであると判定された場合、前記一つ以上のプロセッサは、前記更新において、
    前記一つ以上の他のノードのうちのアクティブ要求ノードから受信した、無線送信された情報のデータペイロードに含まれるアクティブ要求情報が、前記アクティブ要求ノードがアクティブノードになることを要望することを示すとの判定に応じて、前記送信器がその後にブロードキャストするアクティブノード情報をアクティブ要求ノードの識別子を示すように更新する特徴とする請求項4に記載のノード。
  6. 前記一つ以上のプロセッサは、前記更新において、
    前記アクティブ要求ノードがアクティブノードになることを要望することを示す、無線送信された情報のデータペイロードに含まれる前記アクティブ要求情報を、前記アクティブ要求ノードから受信してから所定時間が経過した後、又は、
    前記アクティブ要求ノードがアクティブノードになることを要望することを示す、無線送信された情報のデータペイロードに含まれる前記アクティブ要求情報を、前記アクティブ要求ノードから所定回数受信したと判定したことに応じて、
    前記送信器がその後にブロードキャストするアクティブノード情報を前記アクティブ要求ノードの識別子を示すように更新することを特徴とする請求項5に記載のノード。
  7. アクティブノードの立場の譲渡を要求する前記ノードのユーザ操作に従って入力される譲渡要求情報を受け付ける入力デバイスをさらに有し、
    前記一つ以上のプロセッサは、前記更新において、前記入力デバイスが前記譲渡要求情報を受け付けたことに従って、前記送信器がその後にブロードキャストするアクティブノード情報を前記一つ以上の他のノードのうちの一つの識別子を示すように更新すること特徴とする請求項5に記載のノード。
  8. 前記一つ以上のプロセッサは、データペイロードの情報が初期状態のままであるかを判定し、
    データペイロードの情報が初期化状態のままであるとの判定に応じて、前記更新において、
    前記他のブロードキャスト情報のアクティブノード情報に示された、前記一つ以上の他のノードのうちの一つの識別子を示すように、或いは、
    前記一つ以上の他のノードのうちの一つの識別子を示す前記他のブロードキャスト情報のアクティブノード情報がない場合に、初期アクティブノード設定に従って前記ノードの識別子或いは前記一つ以上の他のノードのうちの一つの識別子を示すように
    前記アクティブノード情報を更新することを特徴とする請求項7に記載のノード。
  9. 前記初期アクティブノード設定は、前記ノード及び前記一つ以上の他のノードの各識別子に従って実行されることを特徴とする請求項8に記載のノード。
  10. 前記一つ以上のプロセッサは、前記受信器が受信した前記トランザクション装置からのブロードキャスト信号に基づいて、前記ノードと前記トランザクション装置との間の距離の推定を示す距離推定情報を生成し、前記送信器が周期的に無線ブロードキャストするブロードキャスト情報に前記距離推定情報を含めるようにし、
    前記初期アクティブノード設定は、前記ノードの前記距離推定情報及び前記一つ以上の他のノードの前記距離推定情報に従って実行されることを特徴とする請求項9に記載のノード。
  11. 前記一つ以上のプロセッサは、前記ブロードキャスト情報及び前記他のブロードキャスト情報が矛盾状態にあるかどうかを判定し、
    前記矛盾状態との判定に応じて、前記一つ以上のプロセッサは、前記ブロードキャスト情報を再初期化することを特徴とする請求項10に記載のノード。
  12. 前記一つ以上のプロセッサは、前記一つ以上のプロセッサが前記ノードがアクティブノードになったと判定したことに応じてノードにアクティブ化動作を実行させ、前記一つ以上のプロセッサが前記他のノードがアクティブノードになったとの判定に応じてノードに非アクティブ化動作を実行させるように制御することを特徴とする請求項11に記載のノード。
  13. 前記ノードのユーザに情報を出力する出力デバイスを更に有し、
    前記アクティブ化動作は、前記出力デバイスが前記ノードがアクティブになったことを示す通知を出力することに対応し、
    前記非アクティブ化動作は、前記出力デバイスが前記ノードが非アクティブになったことを示す通知を出力することに対応することを特徴とする請求項12に記載のノード。
  14. 前記ブロードキャストは、パラメータを含む接続要求を行って前記他のノードの一つと接続を確立し、前記パラメータに従って前記他のノードの一つと通信することなしに行われることを特徴とする請求項13に記載のノード。
  15. 前記一つ以上のプロセッサは、所定範囲内の疑似ランダム数値である識別子を生成することを特徴とする請求項14に記載のノード。
  16. 前記ブロードキャストは、BLE(Bluetooth Low Energy)のペリフェラル(ブロードキャスト)の役割において実行され、受信は、BLEのセントラル(オブザーバ)の役割において実行されること特徴とする請求項15に記載のノード。
  17. 前記ブロードキャストは、アドバタイジングに関するiBeaconの規格に従って実行されることを特徴とする請求項16に記載のノード。
  18. 複数のノードを含むコネクションレス・メッシュ・ネットワークシステムであって、
    各ノードは、
    他のノードに情報を無線送信する送信器と、
    前記他のノードから送信された情報を無線受信する受信器と、
    プログラムを保存するメモリと、
    前記メモリから前記プログラムを読み出して、実行することにより、前記プログラムに従って前記送信器及び前記受信器を制御する一つ以上のプロセッサと
    を備え、
    前記一つ以上のプロセッサは、
    前記ノードを識別する識別子を生成するよう制御し、
    前記識別子及びデータペイロードを更新するよう制御し、
    生成された識別子及び更新されたデータペイロードを含むブロードキャスト情報を、所定周波数で、周期的に無線ブロードキャストするよう前記送信器を制御し、
    前記他のノードのそれぞれからブロードキャストされたブロードキャスト情報である他のブロードキャスト情報を、所定周波数で、周期的に受信するよう前記受信器を制御し、
    前記他のノードからの前記他のブロードキャスト情報に従って前記識別子及び前記データペイロードの前記更新を行う
    ことを特徴とするシステム。
  19. 一つ以上の他のノードとコネクションレス・メッシュ・ネットワークを形成するノードを制御する制御方法であって、
    前記ノードを識別する識別子を生成する生成ステップと、
    前記識別子及びデータペイロードを更新する更新ステップと、
    生成された識別子及び更新されたデータペイロードを含むブロードキャスト情報を、所定周波数で、周期的に無線ブロードキャストするステップと、
    前記一つ以上の他のノードのそれぞれからブロードキャストされたブロードキャスト情報である他のブロードキャスト情報を、所定周波数で、周期的に受信するステップと、
    前記他のノードからの前記他のブロードキャスト情報に従って前記識別子及び前記データペイロードの前記更新を行うことを特徴とする方法。
  20. 一つ以上の他のノードとコネクションレス・メッシュ・ネットワークを形成するノードを制御する制御方法を実行させるためのプログラムを格納した、コンピュータにより読み取り可能な記憶媒体であって、
    前記方法は、
    前記ノードを識別する識別子を生成する生成ステップと、
    前記識別子及びデータペイロードを更新する更新ステップと、
    生成された識別子及び更新されたデータペイロードを含むブロードキャスト情報を、所定周波数で、周期的に無線ブロードキャストするステップと、
    前記一つ以上の他のノードのそれぞれからブロードキャストされたブロードキャスト情報である他のブロードキャスト情報を、所定周波数で、周期的に受信するステップと、
    前記他のノードからの前記他のブロードキャスト情報に従って前記識別子及び前記データペイロードの前記更新を行うことを特徴とする記憶媒体。
JP2016159358A 2015-03-17 2016-08-15 コネクションレス・メッシュ・ネットワーキング Active JP6736126B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201562134189P 2015-03-17 2015-03-17
US15/071,953 2016-03-16
US15/071,953 US10440521B2 (en) 2015-03-17 2016-03-16 Connection-less mesh networking

Publications (3)

Publication Number Publication Date
JP2017169185A true JP2017169185A (ja) 2017-09-21
JP2017169185A5 JP2017169185A5 (ja) 2019-09-19
JP6736126B2 JP6736126B2 (ja) 2020-08-05

Family

ID=56925746

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016159358A Active JP6736126B2 (ja) 2015-03-17 2016-08-15 コネクションレス・メッシュ・ネットワーキング

Country Status (2)

Country Link
US (1) US10440521B2 (ja)
JP (1) JP6736126B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021509551A (ja) * 2017-12-29 2021-03-25 ニコベンチャーズ トレーディング リミテッド デバイス間のデータ捕捉
US11510040B2 (en) 2017-05-03 2022-11-22 Nicoventures Trading Limited Method and an aerosol delivery device for transmitting aerosol delivery device information
US11871321B2 (en) 2017-12-29 2024-01-09 Nicoventures Trading Limited Device identification method

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3771234B1 (en) * 2019-07-18 2024-02-28 neXenio GmbH Method for broadcasting data
CN113438634B (zh) * 2021-06-22 2023-04-07 全民认证科技(杭州)有限公司 基于物联网的智能门锁蓝牙节点角色切换和组网方法
CN115442916A (zh) * 2022-08-15 2022-12-06 浙江猫精人工智能科技有限公司 广播包发送控制方法、终端设备、蓝牙Mesh设备及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6842460B1 (en) * 2001-06-27 2005-01-11 Nokia Corporation Ad hoc network discovery menu
US8953794B1 (en) * 2013-08-01 2015-02-10 Cambridge Silicon Radio Limited Apparatus and method for securing beacons
US20160099862A1 (en) * 2014-10-01 2016-04-07 Allied Telesis Holdings Kabushiki Kaisha Redundant network formation
US9958948B2 (en) * 2015-02-06 2018-05-01 Google Llc Systems and methods for altering a state of a system using a remote device that processes gestures

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11510040B2 (en) 2017-05-03 2022-11-22 Nicoventures Trading Limited Method and an aerosol delivery device for transmitting aerosol delivery device information
US11924728B2 (en) 2017-05-03 2024-03-05 Nicoventures Trading Limited Method and an aerosol delivery device for transmitting aerosol delivery
US12047855B2 (en) 2017-05-03 2024-07-23 Nicoventures Trading Limited Method and aerosol delivery device for transmitting aerosol delivery device information
US12096327B2 (en) 2017-05-03 2024-09-17 Nicoventures Trading Limited Method and aerosol delivery device for transmitting aerosol delivery device information
JP2021509551A (ja) * 2017-12-29 2021-03-25 ニコベンチャーズ トレーディング リミテッド デバイス間のデータ捕捉
US11871321B2 (en) 2017-12-29 2024-01-09 Nicoventures Trading Limited Device identification method
US12004574B2 (en) 2017-12-29 2024-06-11 Nicoventures Trading Limited Data capture across devices

Also Published As

Publication number Publication date
JP6736126B2 (ja) 2020-08-05
US20160278000A1 (en) 2016-09-22
US10440521B2 (en) 2019-10-08

Similar Documents

Publication Publication Date Title
JP6736126B2 (ja) コネクションレス・メッシュ・ネットワーキング
CN112787685B (zh) 用于支持无线通信的方法、装置及系统
KR102208438B1 (ko) 근접 서비스 데이터 송신 방법 및 그 전자 장치
US20220082676A1 (en) Electronic device for performing ranging through ultra-wide band (uwb), and method for operating electronic device
US20120309309A1 (en) Electronic device and method for operating an electronic device
KR102296162B1 (ko) 무선랜 통신 연결 방법 및 그 전자 장치
KR101474840B1 (ko) UPnP 기반의 네트워크 시스템 및 그 제어 방법
EP3385896A1 (en) System and method for transmitting/receiving data by using a mobile communication terminal in a zigbee pan
JP6451163B2 (ja) 通信機器
US20190253950A1 (en) Information Processing Device, Information Processing Method, and Program
KR20210071540A (ko) UWB(Ultra Wide Band)를 통해 레인징을 수행하는 전자 디바이스 및 전자 디바이스의 동작 방법
RU2748532C1 (ru) Способ идентификации устройства предоставления аэрозоля и портативное электронное устройство
JP2013517659A (ja) 電子機器及び電子機器の動作方法
CN103813325A (zh) 限定区域自组织网络的网络管理方法、通信设备和系统
CN111263338B (zh) 蓝牙Mesh网络的配网方法与相关配网设备及系统
CN104798069A (zh) 用于提供协议以解决当在多个设备之间进行同步时的同步冲突的方法、装置和计算机程序产品
WO2015056995A2 (ko) 무선 통신 시스템에서 디바이스들 간 무선 연결을 수행하기 위한 방법 및 장치
EP3804370B1 (en) Device for wireless communication handover
TW201602789A (zh) 無線通信系統
US20230189360A1 (en) Method for managing wireless connection of electronic device, and apparatus therefor
KR102238897B1 (ko) 근접 서비스 데이터 송신 방법 및 그 전자 장치
JP6842453B2 (ja) 通信機器
CN103873682B (zh) 一种信息处理方法及电子设备
KR20220018874A (ko) 전자 장치의 무선 연결을 관리하는 방법 및 그 장치
TWI753403B (zh) 訊息資料傳遞方法及訊息資料傳遞系統

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20161227

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190809

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190809

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200311

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200316

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200515

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200629

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200709

R150 Certificate of patent or registration of utility model

Ref document number: 6736126

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250