JP7128564B2 - 通信ノード、通信システム、通信方法、及びプログラム - Google Patents

通信ノード、通信システム、通信方法、及びプログラム Download PDF

Info

Publication number
JP7128564B2
JP7128564B2 JP2022522007A JP2022522007A JP7128564B2 JP 7128564 B2 JP7128564 B2 JP 7128564B2 JP 2022522007 A JP2022522007 A JP 2022522007A JP 2022522007 A JP2022522007 A JP 2022522007A JP 7128564 B2 JP7128564 B2 JP 7128564B2
Authority
JP
Japan
Prior art keywords
node
communication
child
stored
destination
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.)
Active
Application number
JP2022522007A
Other languages
English (en)
Other versions
JPWO2022039278A1 (ja
Inventor
重明 白水
Original Assignee
株式会社ポリテック
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 株式会社ポリテック filed Critical 株式会社ポリテック
Publication of JPWO2022039278A1 publication Critical patent/JPWO2022039278A1/ja
Application granted granted Critical
Publication of JP7128564B2 publication Critical patent/JP7128564B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/02Communication route or path selection, e.g. power-based or shortest path routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks
    • H04W84/20Leader-follower arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W92/00Interfaces specially adapted for wireless communication networks
    • H04W92/16Interfaces between hierarchically similar devices
    • H04W92/18Interfaces between hierarchically similar devices between terminal devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明は、通信ノード、通信システム、通信方法、及びプログラムに関し、特に、通信経路の形成の高速化を実現可能な通信ノード、通信システム、通信方法、及びプログラムに関する。
グラフ理論の通信工学への応用例としては、無向グラフによる「クロード・シャノンの誤りなし通信路容量算出問題」やいわゆる「シャノン容量」等が知られており、主に経路やコストの最適化等を目的として移動体通信での基地局の割り当て等に応用される(例えば特許文献1参照)。なお、本明細書中に特許文献1の明細書、特許請求の範囲、図面全体を参考として取り込むものとする。
特開平7-46727号公報
しかしながら、特許文献1に記載の技術では、通信経路の形成が遅く、通信の開始までに時間がかかってしまうといった課題があった。
本発明は、上記の課題を解決するためになされたものであって、通信経路の形成の高速化を実現可能な通信ノード、通信システム、通信方法、及びプログラムを提供することを目的とする。
上記の目的を達成するため、本発明の第1の観点に係る通信ノード(2-m)は、ピア・ツウ・ピア方式で通信を行う通信ノード(2-m)であって、子ノードに当たる前記通信ノード(2-m)を記憶する記憶部(22-m)と、データの発信先となる前記通信ノード(2-m)である発信先ノード(2-2、B)との間の通信経路の形成が指示されたことに応答して、該発信先ノード(2-2、B)が、前記記憶部(22-m)に前記子ノードとして記憶されているか否かを判別し、前記発信先ノード(2-2、B)が子ノードとして記憶されていない場合、前記記憶部(22-m)に子ノードとして記憶されている前記通信ノード(2-1、A)に、前記発信先ノード(2-2、B)との間の通信経路の形成をさらに指示し、前記発信先ノード(2-2、B)が子ノードとして記憶されている場合、該発信先ノード(2-2、B)との間の通信経路を形成する制御部(23-m)と、を備える。
上記の通信ノード(2-m)において、前記制御部(23-m)は、親ノードに当たる前記通信ノード(2-12、L)から前記通信経路の形成を指示するコマンドを受信した場合において、該通信経路が形成されたときには、該通信経路が形成されたことを示す戻り値を、該親ノードに当たる通信ノード(2-12、L)に送信する、ようにしてもよい。
上記の通信ノード(2-m)において、前記制御部(23-m)は、前記発信先ノード(2-2、B)が子ノードとして記憶されていない場合、前記コマンドを、前記記憶部(22-m)に子ノードとして記憶されている前記通信ノード(2-1、A)に送信し、前記子ノードとして記憶されている通信ノード(2-1、A)から前記戻り値を受信したことに応答して、該戻り値を前記親ノードに当たる通信ノード(2-12、L)に送信する、ようにしてもよい。
本発明の第2の観点に係る通信システム(1)は、ピア・ツウ・ピア方式で通信を行う通信ノード(2-m)を複数具備する通信システム(1)であって、前記通信ノード(2-m)は、子ノードに当たる前記通信ノード(2-m)を記憶する記憶部(22-m)と、データの発信先となる前記通信ノード(2-m)である発信先ノード(2-2、B)との間の通信経路の形成が指示されたことに応答して、該発信先ノード(2-2、B)が、前記記憶部(22-m)に前記子ノードとして記憶されているか否かを判別し、前記発信先ノード(2-2、B)が子ノードとして記憶されていない場合、前記記憶部(22-m)に子ノードとして記憶されている前記通信ノード(2-1、A)に、前記発信先ノード(2-2、B)との間の通信経路の形成をさらに指示し、前記発信先ノード(2-2、B)が子ノードとして記憶されている場合、該発信先ノード(2-2、B)との間の通信経路を形成する制御部(23-m)と、を備える。
上記の通信システム(1)において、前記制御部(23-m)は、親ノードに当たる前記通信ノード(2-12、L)から前記通信経路の形成を指示するコマンドを受信した場合において、該通信経路が形成されたときには、該通信経路が形成されたことを示す戻り値を、該親ノードに当たる通信ノード(2-12、L)に送信し、前記親ノードに当たる通信ノード(2-12、L)は、前記データの発信元となる前記通信ノード(2-m)である場合、前記戻り値を受信したことに応答して、前記形成された通信経路を介した前記発信先ノード(2-2、B)との通信を開始する、ようにしてもよい。
本発明の第3の観点に係る通信方法は、ピア・ツウ・ピア方式で通信を行う通信ノード(2-m)であって、子ノードに当たる前記通信ノード(2-m)を記憶する記憶部(22-m)と、制御部(23-m)と、を備える通信ノード(2-m)による通信方法であって、前記制御部(23-m)が、データの発信先となる前記通信ノード(2-m)である発信先ノード(2-2、B)との間の通信経路の形成が指示されたことに応答して、該発信先ノード(2-2、B)が、前記記憶部(22-m)に前記子ノードとして記憶されているか否かを判別し、前記発信先ノード(2-2、B)が子ノードとして記憶されていない場合、前記記憶部(22-m)に子ノードとして記憶されている前記通信ノード(2-1、A)に、前記発信先ノード(2-2、B)との間の通信経路の形成をさらに指示し、前記発信先ノード(2-2、B)が子ノードとして記憶されている場合、該発信先ノード(2-2、B)との間の通信経路を形成する、ことを特徴とする。
本発明の第4の観点に係る通信方法は、ピア・ツウ・ピア方式で通信を行う通信ノード(2-m)であって、子ノードに当たる前記通信ノード(2-m)を記憶する記憶部(22-m)を備える通信ノード(2-m)を複数具備する通信システム(1)による通信方法であって、前記通信ノード(2-m)が、データの発信先となる前記通信ノード(2-m)である発信先ノード(2-2、B)との間の通信経路の形成が指示されたことに応答して、該発信先ノード(2-2、B)が、前記記憶部(22-m)に前記子ノードとして記憶されているか否かを判別し、前記発信先ノード(2-2、B)が子ノードとして記憶されていない場合、前記記憶部(22-m)に子ノードとして記憶されている前記通信ノード(2-1、A)に、前記発信先ノード(2-2、B)との間の通信経路の形成をさらに指示し、前記発信先ノード(2-2、B)が子ノードとして記憶されている場合、該発信先ノード(2-2、B)との間の通信経路を形成する、ことを特徴とする。
本発明の第5の観点に係るプログラムは、ピア・ツウ・ピア方式で通信を行う通信ノード(2-m)であって、子ノードに当たる前記通信ノード(2-m)を記憶する記憶部(22-m)を備える通信ノード(2-m)のコンピュータに、データの発信先となる前記通信ノード(2-m)である発信先ノード(2-2、B)との間の通信経路の形成が指示されたことに応答して、該発信先ノード(2-2、B)が、前記記憶部(22-m)に前記子ノードとして記憶されているか否かを判別する手順と、前記発信先ノード(2-2、B)が子ノードとして記憶されていない場合、前記記憶部(22-m)に子ノードとして記憶されている前記通信ノード(2-1、A)に、前記発信先ノード(2-2、B)との間の通信経路の形成をさらに指示し、前記発信先ノード(2-2、B)が子ノードとして記憶されている場合、該発信先ノード(2-2、B)との間の通信経路を形成する手順と、を実行させる。
本発明によれば、通信経路の形成の高速化を実現可能な通信ノード、通信システム、通信方法、及びプログラムを提供することができる。
本実施形態に係る通信システムの構成例を示す図である。 通信端末の構成例を示すブロック図である。 Aは、通信端末のOSがLinux(登録商標)の場合の経路形成アプリの構成を示す図であり、Bは、通信端末のOSがAndroid(登録商標)の場合の経路形成アプリの構成を示す図である。 実装ルール1の説明図である。 実装ルール2の説明図である。 実装ルール4の説明図である。 実装ルール5の説明図である。 コマンドのループを例示する説明図である。 プロパティの構成例を示す図である。 DHTによる分散管理を例示する説明図である。 Aは、ノードのプロパティを例示する図であり、Bは、グラフとプロパティとを利用したコンテクスト(文脈)の表現を例示する図である。 Aは、従来のデータ通信モデルを例示する図であり、Bは、本実施形態に係るデータ通信モデルを例示する図である。 データ通信開始処理の詳細を示すフローチャートである。 データ通信開始処理の続きを示すフローチャートである。 データ通信開始処理の続きを示すフローチャートである。 Aは、有向グラフを利用した経路形成を例示する図であり、Bは、ノード同士の関係を例示する図である。 グラフ生成及び利用を例示するシーケンス図である。 1親等探索リレーを例示する図である。 接続元ノードの行動を例示するフローチャートである。 問い合わせを受けた接続親ノード(スーパーノード)の行動を例示するフローチャートである。 接続親ノードから問い合わせを受けたスーパーノードの行動を例示するフローチャートである。 Aは、家庭内ネットワークの構成例を示す図であり、Bは、各機器のドメインを例示する図である。 家庭内ネットワークの構成変更を説明するための図である。 家庭内ネットワークの構成変更フローを例示するシーケンス図である。
以下、本発明を実施するための形態について説明する。
まず、本発明の実施形態に係る通信システムの構成について図面を参照しつつ説明する。本実施形態に係る通信システムは、従来と異なり、ノード同士の機能や役割、さらにはノードの主体たる「人間」同士の関係性までをも考慮したルーティングを行うことを目的とし、有向グラフが「関係」のコンテクストを簡潔に記述し得る点に着目している。
図1は、本実施形態に係る通信システムの構成例を示すブロック図である。
図1に示すように、通信システム1は、複数の通信端末2-m(mは自然数)を具備する。複数の通信端末2-mは、インターネット等のネットワークNを介して相互に通信可能に接続され、通信ノード、あるいは単にノードと呼ばれる。複数の通信端末(ノード)2-mは、ピア・ツウ・ピア方式で通信を行い、ピア・ツウ・ピア(P2P)型ネットワークを構成する。
通信端末(ノード)2-mは、例えば汎用のパーソナルコンピュータ、汎用のサーバコンピュータ、若しくはタブレットコンピュータ、スマートフォン、及びデジタル家庭電化製品等のIP(Internet Protocol)通信機能を持つCPU(Central Processing Unit)を備えたスマートデバイス等から構成される。
図2は、通信端末の構成例を示すブロック図である。
図2に示すように、通信端末(ノード)2-mは、それぞれ、通信部21-mと、記憶部22-mと、制御部23-mと、を備え、これらはバス等を介して接続される。
通信部21-mは、例えば無線通信装置等から構成される。通信部21-mは、他の通信端末(ノード)2-mとネットワークNを介したデータの送受信を行う。
記憶部22-mは、例えば汎用のフラッシュメモリ等の不揮発性メモリ等から構成される。記憶部22-mは、プロパティを管理するテーブル等を保持(記憶)する。プロパティは、通信端末(ピア)2-mのユーザを特定するためのユーザID(Identification)に対応付けて、ドメイン及びドメインIDに加え、対象ノードとの関係(親ノード又は子ノード)、対象ノードのユーザID及びドメインID、スコープを必須で管理する他、信用定数や、IPアドレスポートなどのアクセスに関するパラメータ(以下、「接続情報」という。)を記憶部22-mに登録する。ここで、ユーザIDは、例えば32バイトのバイナリデータから構成される。「親ノード」とは、自己が所属する接続グループの親(グループオーナ)の通信端末(ノード)2-mをいう。「子ノード」とは、自己が親(グループオーナ)であるグループに所属する通信端末(ノード)2-mをいう。IPアドレス等の接続情報には、自己との接続に必要な接続情報と、親ノードや子ノードとの接続に必要な接続情報と、が含まれる。親ノードや子ノードとの接続に必要な接続情報は、親ノードや子ノードのユーザIDに対応付けてプロパティに登録されている。記憶部22-mには、通信端末2-m間の論理的経路(通信経路)を形成するためのアプリケーションプログラム(以下、「経路形成アプリ」という。)がインストールされている。
図3Aは、通信端末のOSがLinux(登録商標)の場合の経路形成アプリの構成を示す図であり、図3Bは、通信端末のOSがAndroid(登録商標)の場合の経路形成アプリの構成を示す図である。
図3Bにように、経路形成アプリは、接続グラフ、多重認証グラフ(アプリグラフ)、及びユーザグラフ等を備える。
接続グラフは、接続ノードのグラフであって、参加者を組織する基礎的なグラフである。ユーザIDを有する通信端末2-mは、100%属している。
アプリグラフは、特定のアプリ利用者が属するグラフである。
ユーザグラフは、経路形成アプリ内でのチャットグループや、フォロー、友達登録などユーザが任意で作成するグラフである。
図2に示す制御部23-mは、例えばCPU、ROM(Read Only Memory)、及びRAM(Random Access Memory)等から構成される。CPUは、RAMをワークメモリとして用い、ROM及び記憶部22に記憶されているプログラム等を適宜実行することによって、通信端末(ノード)2-mの各種動作を制御する。
本実施形態において、制御部23-mは、記憶部22に記憶されている経路形成アプリを実行することにより、グラフを使用して、通信端末2-m間の論理的経路を形成する。ここで、グラフは、通信端末(ノード)2-mの他、以下に定義するノード、エッジ、プロパティ、及びメソッドから構成され、いわゆるプロパティグラフモデルの一種である。
ノードは、点や丸で表現されるエンティティで、「ラベル」を付けて種別を分類する。本実施形態では、「ラベル」を「プロパティ」と呼ぶ。また、ノードは、何らかの形でネットワークNにつながっていて、データがやりとりされる主体の総称をいい、スマートフォンやコンピュータ等の物理的な通信端末の他、ユーザや法人、近隣など抽象概念もノードとして取り扱ってもよい。特に本実施形態に係るルールを解して振舞うノードをピアと呼ぶ。すなわち、ピアは、特定のプロトコル(自然言語を含む)を理解し、特定のコンテキストで閉じた関係のあるノードをいう。ユーザIDを有するピアは、本実施形態に係るプロトコルを話すノードをいう。応用例として、本実施形態に係る英語ピアは、本実施形態に係る通信システム1に参加していて英語を理解するノードをいう。広義には操作している人間を含む。直接関係のあるユーザIDを有するピア同士は必ず親子関係が存在する。ノードは、属性を表す「プロパティ」の他、メソッドと呼ばれる機能を持つ。メソッドは、経路形成アプリに組み込まれた機能で、常駐する通信システム1そのものが関与するものではない。特殊なケースとして認証やルーティングに関する機能(メソッド)は、経路形成アプリに組み込まれた機能と見做す。
エッジは、通信端末(ノード)2-m間の関係性を表すものである。エッジには、親子の一親等の関係として、必ず、方向、属性(ドメイン)、並びに開始ノードとなる子ノード又は終了ノードとなる親ノードがあり、宙ぶらりんの関係はない。エッジは、子ノードとなる通信端末(ノード)2-mが管理するプロパティによって定義され、振舞いが決まる。エッジの方向と属性とは、それぞれノードの構造とメソッドの取扱とを明示する。
プロパティは、通信端末(ノード)2-m及びエッジにおける属性情報であり、通信端末(ノード)2-mが、記憶部22-mに記憶されるテーブルで管理する。また、通信端末(ノード)2-mは、属性情報をkey/value形式のデータに整理し、台帳として共有保持してもよい。
メソッドは、他の通信端末(ノード)2-mからの起動要求(例えば通信開始コマンドや経路形成コマンド等)に応じて実行されるものである。通信端末(ノード)2-mは、メソッドを実行に際して、必ず一親等直上の親ノードに戻り値を返して終了する。また、通信端末(ノード)2-mは、直接親子関係のある子ノードに対して、同じメソッドを起動させることができる。
ここで、親子関係を持つ通信端末(ノード)2-m間で親ノードが子ノードに対して発行する起動要求を「コマンド」と呼び、親でない通信端末(ノード)2-mが発行する起動要求を「アテンション(喚起)」と呼んで区別する。コマンド又はアテンション(喚起)が発せされると、必ずそのコマンド又はアテンション(喚起)の戻り値は、当該ドメインの親ノードとなる通信端末(ノード)2-mに返される。コマンド又はアテンション(喚起)は、その戻り値のベクトルがエッジと一致するので、通信端末(ノード)2-mをつないだ構造化に準じる。
本実施形態に係る通信システム1は、リレー接続を担う通信端末(ノード)2-mを明示することで論理的に経路を構築している。物理的な経路の制限を受けずに経路を増やすことができ、指定する経路の信頼性や性能の定量的な評価も可能である。この際、ネットワークNの物理的接続と、経路形成アプリが持つ通信端末(ノード)2-m間の関係と、を統合したグラフとして取り扱うと多くのメリットがあることが知られている。しかし、これには、分析にかかる計算量が増大し、グラフデータベースによるルーティングを実現するためには、新たな工夫が必要である。IoT(Internet of Things)のアプリケーションでは、500億ノードといわれる膨大な数のノードのネットワーク上で、非力な演算能力しか持たないものを含めて、パフォーマンスを落とさずに結果を返すことが求められる。したがって、本実施形態に係る通信システム1は、単純なルールをもって、個々の通信端末(ノード)2-mの演算を限定的で小さくまとめ、グラフデータを分散したまま、ネットワークN上の通信端末(ノード)2-mに分散連携してクエリやそのほかの機能を実行する。
本実施形態に係るグラフの定義を以下、箇条書きにする。
定義1.子→親:一親等制限をグラフの単位とする。
グラフにおける子ノードとなる通信端末(ノード)2-mの制御部23-mは、エッジに沿って、親ノードとなる通信端末(ノード)2-mにイベントの報告をする。具体的には、コマンドの戻り値の流れで有向グラフを形成する。
定義2.通信端末(ノード)2-mには、プロパティが設定される。通信端末(ノード)2-mは、当該通信端末(ノード)2-m直上の親ノードと、当該通信端末(ノード)2-m直下の子ノードと、をプロパティとして管理する。通信端末(ノード)2-mは、ドメイン、ユーザID、及びドメインIDに加え、対象ノードとの関係(親ノード又は子ノード)、対象ノードのユーザID及びドメインID、スコープを必須で管理する他、信用定数やIPアドレスポートなどのアクセスに関するパラメータを記憶部22-mに保持する。
定義3.通信端末(ノード)2-mは、経路形成アプリが予め定義する機能を持ち、これをメソッドと呼ぶ。
定義4.他の通信端末(ノード)2-mからのメソッドの起動要求は、起動要求を発行する他の通信端末(ノード)2-mのプロパティ、起動要求するメソッド、及び起動要求固有のシリアル番号等をもって発行することができる。
定義5.メソッドの起動要求を受けた通信端末(ノード)2-mの制御部23-mは、プロパティが定義するスコープに応じて(起動要求を無視したり、メソッドの起動要求の拒否を含めて)対処する。メソッドの起動要求を受けると、通信端末(ノード)2-mの制御部23-mは、起動要求の持つドメイン直上の親ノードに戻り値を返す。
本実施形態に係るグラフは、通信端末(ノード)2-m間の関係を記述する。通信端末(ノード)2-mに常駐するグラフマネージャは、他の通信端末(ノード)2-mからメソッドの起動要求を受けて、戻り値を発行する。本実施形態では、この戻り値の流れを矢印で記述する。また、この矢印をもって、通信端末(ノード)2-mの従属関係(親子関係)を整合する。すなわち、「ノード(A)はノード(C)に属する」という関係は、ノード(C)を親ノードとしてノード(A)を従属させる。例えばノード(C)がノード(A)に要求コマンド(例えば経路形成コマンド等)を発すると、ノード(A)は、ノード(C)に戻り値を返す。通信端末(ノード)2-mは、他のノード(パブリック、ドメイン、プライベート)が持つのメソッド(“関数”)に対して、ユニークなコマンドID(自らのユーザID、コマンドシリアルから生成)と起動を継承する深さとを指定してグラフに関するメソッド(処理関数)を起動する。子ノードに対して起動した関数の戻り値をもって終了する。直接の子ノードではない通信端末(ノード)2-mに対してアテンション(喚起)を発呼しても、戻り値は、発呼した通信端末(ノード)2-mには帰らず、メソッドを実行した通信端末(ノード)2-mの直接の親ノードに戻り値が報告されることに注意を要する。コマンド及びアテンション(喚起)には、R.U.P.A.D.という5つの引数があり、関連性(Relation)、緊急性(Urgency)、優先度(Priority)、結合性(Association)、及び委託深度(Depth)をリザーブされたキーを持つ。
以下、定義に従って、実装ルールを説明する。
(実装ルール1)
グラフは、コマンドの戻り値の流れで有向グラフを形成する。 実装ルール1の目的は、コマンドと戻り値との流れを制限することで、親ノードとなる通信端末(ノード)2-mにグラフの管理権限を持たせることにある。
グラフは、通信端末(ノード)2-m間の関係を記述する。通信端末(ノード)2-mに常駐するグラフマネージャは、他の通信端末(ノード)2-mからのコマンド(破線→)を受けて、戻り値を発行する。この戻り値の流れを矢印で記述する。
図4は、実装ルール1の説明図である。
図4Aに示すように、「ノード(A)はノード(C)に属する」という関係は、ノート(C)を親ノードとしてノード(A)を従属させる。例えば、図4Bに示すように、ノード(C)がノード(A)にコマンドを発すると、ノード(A)は、ノード(C)に戻り値を返す。この際、ノード(A)は、直上の親ノード(C)限定でコマンドを受付ける。
この際、ノード(A)は、直上の親ノード(C)限定でコマンドを受付るが、それ以外の通信端末(ノード)2-mからの処理の要求は、アテンション(喚起)として処理する。例えば、図4Cに示すように、上記「ノード(A)はノード(C)に属する」という関係に加えて、ノード(C)を親としてノード(B)を従属させる。ノード(C)がノード(B)にコマンドを発すると、ノード(B)はノード(C)に戻り値を返す。
図4Dに示すように、ノード(A)がノード(B)に起動要求を発すると、ノード(B)は、これを「アテンション(喚起)」として扱い、処理を実行してもノード(A)にではなく、ノード(C)に戻り値を返す。
子ノードは、グラフの文脈やドメイン・スコープが一致しても起動要求の起源が親ノードでない場合、仮に処理を発動しても、親ノードからの起動要求では無い場合、これを受け付けない。発呼された起動要求はあくまでアテンション(喚起)として処理される。
(実装ルール2)
通信端末(ノード)2-mの制御部23-mによる検索は、直接探索に限定し、2親等以上の探索は、委託に限定し直接探索は行わない。実装ルール2の目的は、探索計算の負荷を分散させるとともに、委託探索の方法を定義し、ネットワークNが不要な探索でリソースを浪費することを回避するために、既知の通信端末(ノード)2-mからの報告を安全に逆上させる方法を持たせることにある。
図5は、実装ルール2の説明図である。
図5に示すように、ノード(L)を親としてノード(C)を従属させると、ノード(L)がノード(C)に対して発する起動要求(コマンド)の戻り値は、ノード(L)に帰る。ノード(L)がノード(B)に対して発する起動要求は、アテンション(喚起)として解され、その戻り値は、必ず直上の親ノード(C)に報告される。ノード(C)は、ノード(B)からの戻り値を受けて直上の親ノード(L)に報告される。既知の通信端末(ノード)2-mの系統を見出す時に用いる。
探索の対象が一親等を超える位相に存在する場合、直下のメンバーの通信端末(ノード)2-mに委託して探索する。このルールは、膨大なグラフを探索する際に発生する負荷を軽減させ探索速度を向上させること、セキュリティを担保することといった二つの効果をもたらす。
(実装ルール3)
本実施形態に係るグラフは、オーバーレイをドメインという概念をプロパティとして構成する。グラフでは、通信端末(ノード)2-mのプロパティとして“ドメイン”をアサインする。ここで、ドメインとしてユーザIDを持つ全ての通信端末(ノード)2-mが参加する接続グラフと、経路形成アプリを含む上位レイヤが定義するオーバーレイグラフと、が存在する。したがって、接続グラフという“オーバーレイグラフ”は、 通信システム1をアプリケーションプログラムと見立ててオーバーレイグラフの一種と見ることで、統一したルールでグラフを扱う。
ここで、ドメインは、単位グラフのオーバーレイの名称である。スコープは、閲覧範囲、コマンド・アテンション(喚起)の受付範囲である。スコアは、子ノードに対する評価パラメータである。
(実装ルール4)
本実施形態に係るグラフは、離散グラフを持つ。実装ルール4の目的は、ユーザIDを有する通信端末(ノード)2-mが存在しないネットワークや、グローバルなインターネットから隔離されたイントラネットに限定して、本実施形態に係る通信システム1を実装する方法を定義する。
図6は、実装ルール4の説明図である。
同一ドメインないであっても、エッジを辿って結ばれていない離散ノードが存在する場合がある。図6に示すように、離散ノードは、ノード(K)のように単独で存在する場合もあれば、ノード(A)-ノード(B)-ノード(C)-ノード(D)-ノード(E)、ノード(F)-ノード(G)-ノード(H)-ノード(I)-ノード(J)のように、エッジを辿って結ばれた通信端末(ノード)2-mが複数のコロニーを形成してコロニー間を結ぶエッジが存在しない場合もある。離れ小島になった通信端末(ノード)2-mやコロニーを離散グラフと呼ぶ。離散グラフの処理は、ドメインと目的をベースにして、スコープのキーにアサインされた値で制限をかける。
通信端末(ノード)2-mを新設した場合、新たな経路形成アプリを設定して、他のコロニーとの通信が確立せず、やむを得ず、孤島のような通信端末(ノード)2-mを加えたときには、通信が確立次第、以下のケースに基づいて処理をする。
(実装ルール5)
本実施形態に係るグラフの通信端末(ノード)2-mは、他のユーザIDを有する通信端末(ノード)2-mからの起動要求で起動するメソッドまたは関数(コマンド)を持つ。実装ルール1により、起動要求を発信する通信端末(ノード)2-mが起動要求を受ける通信端末(ノード)2-mの親であり、これが管理するグラフ関係を持つユーザIDを有する通信端末(ノード)2-mであることを必要条件として起動させるメソッドまたは関数は、ドメインが一致していることをパブリックメソッド、またはパブリック関数と呼ぶ。この際、ドメインを指定して制限をかけることもできる。ドメインは、外部が1親等の親ノードであることを必要条件として起動させるメソッドまたは関数をプライベートメソッドまたはプライベート関数と呼ぶ。自らを親ノードとする子ノードに対してユニークな委託IDを振ったメソッドまたは関数機能を委託することができる。メソッドまたは関数機能の戻り値は、親ノードに返す。委託を受けた子ノードは、自らを親ノードとする子ノード、すなわち祖ノードから見ると孫ノードに対して通信端末(ノード)2-m間の関係を記述する。ユーザIDを有する通信端末(ノード)2-mに常駐するグラフマネージャは、他の通信端末(ノード)2-mからのコマンド(破線→)を受けて、戻り値を発行する。この戻り値の流れを矢印で記述する。
図7は、実装ルール5の説明図である。
図7に示すように、ノード(L)は、ノード(B)を探索する際、まず、ノード(L)を親ノードとする直下に位置する通信端末(ノード)2-mのリストからノード(B)を探索する。上記の図のような位相になっている場合、当然ノード(L)のリストには、ノード(B)が存在しないので、探索の委託を直下に位置にする通信端末(ノード)2-m群に、この場合はノード(C)に対してノード(B)の探索を委託する。ノード(C)が持つノード(C)を親ノードとするメンバーリストにノード(B)が存在するので、ノード(C)は、ノード(B)に対してコマンドを発する。ノード(B)は、そのコマンドの戻り値をノード(C)に返す。ノード(C)は、ノード(C)に対してコマンドを発したノード(L)に対してノード(B)から受け取った戻り値をノード(C)の戻り値の一部として返す。一見、無駄な作業に見えるが、各通信端末(ノード)2-mが親ノードとして、その直下に10個の通信端末(ノード)2-mを管理していると、あるコマンドに対して非力なマイクロコンピュータでも通信時間を含めて100ミリ秒で処理が終わる。10親等の処理で1010個の通信端末(ノード)2-m、すなわち一秒間で10,000,000,000=100億個の通信端末(ノード)2-mの探索が可能である。これにより、本実施形態に係る通信システム1は、通信経路の形成の高速化を実現することができる。
図7に示す例では、ノード(C)を頂点とするグラフをリストしている。ノード(A),(B),(D),(E),(F),(G),(H),(I),及び(J)は、ノード(C)に帰属し、同時にノード(C)は、ノード(K),(L),及び(M)に帰属する。ここでは、一方向の戻り値の矢印を描いているが、それぞれ一方向に上り、下りでループになっている場合も考えられる。
図8は、コマンドのループを例示する説明図である。
例えば、図8に示すように、ノード(A)がノード(C)を親ノードとするグラフ(コミュニティ)の子ノードであり、ノード(C)がノード(L)を親ノードとするグラフの子ノードで、なおかつノード(L)がノード(A)を親ノードとするグラフの子ノードである場合、ノード(L)がノード(C)に対して起動要求(委託探索(経路形成コマンド))Relay command A0を発令すると、ノード(C)は、ノード(A)に対して起動要求(委託探索)Relay command A1を発令し、ノード(A)がノード(L)に対して起動要求(委託探索)Relay command A2を発令する。起動要求(委託探索)などのリレーされるコマンドは、全体として無限ループを発生するので、同じコマンドを繰り返し重複処理しないように、リレーするコマンドに委託探索のID(例えば、最初にコマンドを発呼したノード(以下、「原始発呼ノード」という。)のユーザID及びコマンドシリアル等)を持たせて、これを根拠にループを切断すればよい。また、コマンドを発呼する際に、委託の深さとドメインとを指定して、探索に制限をかけてもよい。
(プロパティの構造と予約キー)
単位グラフは、当該通信端末(ノード)2-mのプロパティとして管理する。以下、ユーザIDを有する通信端末(ノード)2-mの実装例で、当該通信端末(ノード)2-mが管理するプロパティのレコードの内容を箇条書きで掲載する。
図9は、プロパティの構成例を示す図である。
図9に示すように、プロパティは、ドメイン(Domain)、ドメインID(Domain ID)、ユーザID(HYDRA ID)、スコープ(Scope)、スコア(Score)、及びアクセス(Access)等を含む。なお、プロパティは、リアルノード及びバーチャルノードのいずれかを示すピアタイプを含んでもよい。バーチャルノードは、センサなど、本実施形態に係るプロトコルを話さないが、ユーザIDを有する通信端末(リアルノード)2-mの手足として便宜上ユーザIDを取得している通信端末(リアルノー
)2-mである。
ドメイン(Domain)は、当該単位グラフを規定する経路形成アプリが定義するドメインであって、具体的に、通信端末(ノード)2-mの所属に関する階層的データ(例えば、家庭内ネット、照明機器、及びリモートコントローラ等)である。
ドメインID(Domain ID)は、当該ドメインにおける管理対象の通信端末(ノード)2-mのドメインIDである。
ユーザID(HYDRA ID)は、管理対象の通信端末(ノード)2-mのユーザIDである。
スコープ(Scope)は、誰が何をどこまで見えるかについてのデータであって、閲覧範囲、コマンド・アテンション(喚起)の受付範囲を示し、管理対象の通信端末(ノード)2-mの情報開示範囲を、公開(Public)、非公開(Private)、及びドメイン(Domain)のいずれかに定義するものである。公開(Public)は、誰でも閲覧できることを示し、非公開(Private)は、自分だけで子ノードに継承しないことを示し、ドメイン(Domain)は、誰が子ノードに継承するかを示す。例えば、ドメイン(Domain)は、ドメインが一致すれば、公開し、親ノードは、子ノードに対して、子ノードの子ノード(孫ノード)にメソッド(関数)の委託を継承することができる。
スコア(Score)は、親ノードが子ノードを評価する指標を示し、管理対象ノードの信頼定数を、Parent, Value, RUPAD, 及びNeuralのいずれかに定義するものである。ここで、Parentは、管理対象の通信端末(ノード)2-mが当該ドメインの親ノードである。Valueは、対象の子ノードの信頼定数である。RUPADは、処理を含めた接続強度の配列である。Neuralは、結合処理を含めた接続強度の配列である。
アクセス(Access)は、管理対象の通信端末(ノード)2-mへの直接接続の方法を定義するものである。アクセス(Access)は、動的に変化するが、IPアドレス+ポートや、TURN(Traversal Using Relay around NAT)等の経由サービスのアクセス情報を記載する。
プロパティは、単位グラフを定義し、当該通信端末(ノード)2-mがプロパティとしてローカルに管理する。ユーザIDを有する通信端末(ノード)2-mの実装で、この情報を純粋にローカルにおいてのみ保存しておくより、バックアップとしてネットワーク上に分散管理するメリットが大きい。キーヴァリュー方式による分散ハッシュテーブル(Distributed Hash Table, DHT)による分散管理の例を記載する。
図10は、DHTによる分散管理を例示する説明図である。
KEYとなるデータは、ドメイン、親ノードのユーザID(親HID(HYDRA ID))、及びスコープの組み合わせで、DHTのハッシュインデックスを作成する。
ドメイン(Domain)は、当該単位グラフを規定する経路形成アプリが定義するドメインである。
親ノードのユーザID(親HID(HYDRA ID))は、当該通信端末(ノード)2-mのユーザIDである。
スコープ(Scope)は、管理対象の通信端末(ノード)2-mの情報開示範囲を、公開(Public)、ドメイン(Domain)、及びキー(Key)のいずれかに定義するものである。ここで、ドメイン(Domain)は、ドメインが一致すれば、公開し、親ノードは、子ノードに対して、子ノードの子ノード(孫ノード)にメソッド(関数)の委託を継承することができる。キー(Key)は、非公開なグラフについて、暗号化するためのキー(鍵)を記載するものである。
VALUEとなるデータは、子ノードのユーザID(子HID(HYDRA ID))、スコア、及びアクセスの組み合わせで、ハッシュインデックスに紐づけて作成する。
子ノードのユーザID(子HID(HYDRA ID))は、管理対象の通信端末(ノード)2-mのユーザIDである。
スコア(Score)は、管理対象ノードの信頼定数を、Parent, Value, 及びRUPADのいずれかに定義するものである。ここで、Valueは、対象の子ノードの信頼定数である。RUPADは、処理を含めた接続強度の配列である。
アクセス(Access)は、管理対象の通信端末(ノード)2-mへの直接接続の方法を定義するものである。アクセス(Access)は、動的に変化するが、IPアドレス+ポートや、TURN(Traversal Using Relay around NAT)等の経由サービスのアクセス情報を記載する。
図11Aは、ノードのプロパティを例示する図であり、図11Bは、グラフとプロパティとを利用したコンテクスト(文脈)の表現を例示する図である。
図11Bに示すように、グラフとプロパティとを利用することで、単純なデータによって複雑なコンテクスト(文脈)を表現できる。
図12Aは、従来のデータ通信モデルを例示する図であり、図12Bは、本実施形態に係るデータ通信モデルを例示する図である。
図12Aに示す従来のデータ通信モデルにおいて、インターネットは、始点となるノード(A)及び終点となるノード(B)だけ指定すれば間は抽象化されていて、途中経路を指定することはできない。実際に働いている誰とも知れないルータ24-mたちのことは意識しなくていい。
図12Bに示す本実施形態に係るデータ通信モデルにおいては、始点となるノード(A)と終点となるノード(B)以外にも接続グラフで組織されたノードが抽象化されているので、各ノードを経路として指定することで、論理的経路の多重化を実現できる。実際に働いている誰とも知れないルータ24-mたちのことはやはり意識しなくていい。論理的経路の多重化については、国際出出願PCT/JP2021/ 25226にその詳細が記載されている。なお、本明細書中にPCT/JP2021/ 25226の明細書、特許請求の範囲、図面全体を参考として取り込むものとする。
次に、上記構成を備える通信システム1が実行する各種処理について図面を参照して説明する。
通信端末(ノード)2-mのうちの通信端末2-12(ノード(L))において、ユーザが、データの発信先となる通信端末2-2(発信先ノード、本実施形態では「ノード(B)」)とのデータ通信を指示したことに応答して、通信システム1は、データ通信開始処理を実行する。
図13~図15は、データ通信開始処理の詳細を示すフローチャートである。
図13~図15に示すデータ通信開始処理において、まず、通信端末2-12(ノード(L))の制御部23-12は、ノード(B)が、記憶部22-12に記憶されているプロパティに、ノード(L)の子ノードとして登録されているか否かを判別する(図13に示すステップS1301)。
ノード(B)がノード(L)の子ノードとして登録されている場合(ステップS1301;Yes)、制御部23-12は、プロパティに登録されているノード(B)の接続情報を用いて、ノード(L)とノード(B)とを直接接続する第1通信経路を形成する(ステップS1302)。
そして、制御部23-12は、ノード(B)とのデータ通信の開始を指示する通信開始コマンドを通信部21-12から第1通信経路を介してノード(B)に送信する(ステップS1303)。
通信端末2-2(ノード(B))の制御部23-2は、ノード(L)から第1通信経路を介して送信される通信開始コマンドを通信部21-2で受信したことに応答して(ステップS1304)、第1戻り値を通信部21-2から第1通信経路を介して、親ノードであるノード(L)に送信する(ステップS1305)。
通信端末2-12(ノード(L))の制御部23-12は、ノード(B)から第1通信経路を介して送信される第1戻り値を通信部21-12で受信したことに応答して(ステップS1306)、ノード(B)とのデータ通信を開始してから(ステップS1307)、データ通信開始処理を終了する。
これに対して、ノード(B)がノード(L)の子ノードとして登録されていない場合(ステップS1301;No)、制御部23-12は、プロパティから、ノード(L)の子ノードとして登録(記憶部22-12に記憶)されている通信端末2-3(ノード(C))を検出する(図14に示すステップS1308)。
続いて、制御部23-12は、ステップS1308で検出したノード(C)の接続情報を用いて、ノード(L)とノード(C)とを通信可能に接続する(ステップS1309)。
そして、制御部23-12は、間の通信経路の形成を指示する経路形成コマンドを通信部21-12からネットワークNを介してノード(C)に送信する(ステップS1310)。経路形成コマンドには、ノード(B)のユーザID等が含まれる。
通信端末2-3(ノード(C))の制御部23-3は、ノード(L)からネットワークNを介して送信される経路形成コマンドを通信部21-3で受信したことに応答して(ステップS1311)、経路形成コマンドに含まれるユーザIDから特定されるノード(B)が、記憶部22-3に記憶されているプロパティに、ノード(C)の子ノードとして登録(記憶部22-3に記憶)されているか否かを判別する(ステップS1312)。
ノード(B)がノード(C)の子ノードとして登録されている場合(ステップS1312;Yes)、制御部23-3は、プロパティに登録されているノード(B)の接続情報を用いて、ノード(C)とノード(B)とを通信可能に接続することにより、ノード(C)を介してノード(L)とノード(B)とを接続する第2通信経路を形成する(図15に示すステップS1313)。
そして、制御部23-3は、経路形成コマンドを通信部21-3から第2通信経路を介してノード(B)に送信する(ステップS1314)。
通信端末2-2(ノード(B))の制御部23-2は、ノード(C)から第2通信経路を介して送信される経路形成コマンドを通信部21-2で受信したことに応答して(ステップS1315)、第2通信経路が形成されたことを示す第2戻り値を通信部21-2から第2通信経路を介して、親ノードであるノード(C)に送信する(ステップS1316)。
通信端末2-3(ノード(C))の制御部23-3は、ノード(B)から第2通信経路を介して送信される第2戻り値を通信部21-12で受信したことに応答して(ステップS1317)、第2戻り値を含み、第2通信経路が形成されたことを示す第3戻り値を通信部21-3から第2通信経路を介して、親ノードであるノード(L)に送信する(ステップS1318)。
通信端末2-12(ノード(L))の制御部23-12は、ノード(C)から第2通信経路を介して送信される第3戻り値を通信部21-12で受信したことに応答して(ステップS1319)、ノード(B)とのデータ通信を開始してから(図13に示すステップS1307)、データ通信開始処理を終了する。
これに対して、ノード(B)がノード(C)の子ノードとして登録されていない場合(ステップS1312;No)、制御部23-3は、プロパティから、ノード(L)の子ノードとして登録されている通信端末2-1(ノード(A))を検出する(図14に示すステップS1320)。
続いて、制御部23-3は、ステップS1320で検出したノード(A)の接続情報を用いて、ノード(L)とノード(A)とを通信可能に接続する(ステップS1321)。
そして、制御部23-3は、ノード(B)との通信経路の形成を依頼する経路形成コマンドを、通信部21-3からネットワークNを介してノード(A)に送信する(ステップS1322)。
その後、制御部23-3は、複数の通信端末(ノード)2-mを介してノード(L)とノード(B)とを接続する第3通信経路が形成されたときに、ノード(A)から第3通信経路を介して送信される、第3通信経路が形成されたことを示す第4戻り値を通信部21-3で受信したか否かを判別し(ステップS1323)、受信するまで(ステップS1323;No)、ループして待つ。
そして、第4戻り値を受信すると(ステップS1323;Yes)、制御部23-3は、第4戻り値を含み、第3通信経路が形成されたことを示す第5戻り値を通信部21-3から第3通信経路を介して、親ノードであるノード(L)に送信する(ステップS1324)。
通信端末2-12(ノード(L))の制御部23-12は、ノード(C)から第3通信経路を介して送信される第5戻り値を通信部21-12で受信したことに応答して(ステップS1325)、ノード(B)とのデータ通信を開始してから(ステップS1307)、データ通信開始処理を終了する。
以上説明したように、本実施形態に係る通信システム1は、ピア・ツウ・ピア方式で通信を行う通信端末(通信ノード)2-mを複数具備する。通信端末2-mは、子ノードに当たる通信ノード2-mをプロパティに記憶(登録)する記憶部22-mと、制御部23-mと、を備える。
通信端末2-3(ノード(C))の制御部23-3は、データの発信元であり、且つノード(C)の親ノードでもある通信端末2-12(ノード(L))から送信される経路形成コマンドを受信して、データの発信先となる通信端末(発信先ノード)2-2であるノード(B)との間の通信経路の形成が指示されたことに応答して、ノード(B)が、記憶部22-3にノード(C)の子ノードとして記憶(登録)されているか否かを判別する。
制御部23-3は、ノード(B)がノード(C)の子ノードとして記憶されていない場合、記憶部22-mに子ノードとして記憶(登録)されている通信端末2-1(ノード(A))に経路形成コマンドを送信して、ノード(B)との接続経路の形成をさらに指示する。その後、第3通信経路が形成されたときに、制御部23-mは、子ノードに当たるノード(A)から第3通信経路が形成されたことを示す第4戻り値を受信したことに応答して、第4戻り値を含み、第3通信経路が形成されたことを示す第5戻り値を、親ノードに当たるノード(L)に送信する。
これに対して、制御部23-3は、ノード(B)がノード(C)の子ノードとして記憶されている場合、ノード(B)との間の第2通信経路を形成する。このように、第2通信経路が形成されたときに、制御部23-3は、第2通信経路が形成されたことを示す第3戻り値を、親ノードに当たるノード(L)に送信する。
そして、ノード(L)の制御部23-12は、第3又は第5戻り値を受信したことに応答して、形成された第2又は第3通信経路を介したノード(B)との通信を開始する。
このように、ノード(L)は、ノード(B)を探索する際、まず、ノード(L)を親ノードとする直下に位置する通信端末(ノード)2-mのリストからノード(B)を探索する。上記の図のような位相になっている場合、当然ノード(L)のリストには、ノード(B)が存在しないので、探索の委託を直下に位置にする通信端末(ノード)2-m群に、この場合はノード(C)に対してノード(B)の探索を委託する。ノード(C)が持つノード(C)を親ノードとするメンバーリストにノード(B)が存在するので、ノード(C)は、ノード(B)に対して経路形成コマンドを発する。ノード(B)は、その経路形成コマンドの戻り値をノード(C)に返す。ノード(C)は、ノード(C)に対して経路形成コマンドを発したノード(L)に対してノード(B)から受け取った戻り値をノード(C)の戻り値の一部として返す。一見、無駄な作業に見えるが、各通信端末(ノード)2-mが親ノードとして、その直下に10個の通信端末(ノード)2-mを管理していると、あるコマンドに対して非力なマイクロコンピュータでも通信時間を含めて100ミリ秒で処理が終わる。10親等の処理で1010個の通信端末(ノード)2-m、すなわち一秒間で10,000,000,000=100億個の通信端末(ノード)2-mの探索が可能である。
これにより、本実施形態に係る通信システム1は、通信経路の形成の高速化を実現することができる。
また、本実施形態に係る通信システム1によれば、ピア・ツウ・ピア(P2P)方式で論理層でのルーティングを行うネットワーク上で、任意のノードを頂点(親ノード)として一親等の子ノードを単位グラフとして親ノードが管理することができる。
さらに、本実施形態に係る通信システム1によれば、有向グラフのプロパティにデータを付加することでID(Identification)や関係性等のコンテクスト(文脈)を簡潔に記述したグラフデータを利用して、条件に合致するノードを探索することができる。
また、本実施形態に係る通信システム1によれば、探索においては、各ノードが1親等のみの探索をリレーする方法により高速化を実現することができる。
さらに、本実施形態に係る通信システム1によれば、有向グラフのプロパティにデータを付加することでID(Identification)や関係性等のコンテクスト(文脈)を簡潔に記述したグラフデータを利用して、ネットワークの構成を柔軟に変更することができる。
そして、本実施形態に係る通信システム1によれば、有向グラフのエッジのプロパティを頂点がそれに従属するノードが管理することができる。
以下、本発明の実施例1について図面を参照しつつ説明する。
[実施例1-1]
実施例1-1は、実施例1におけるグラフを利用した経路形成を例示するものである。
本実施例に係る通信システム1は、経路選択において、送信者である通信端末(ノード)2-mとの「関係性」、「信頼度」を考慮して、セキュリティ向上しつつ、論理的経路の多重化を行う。関係性を記述する手段は、グラフデータである。グラフ検索高速化の手段は、1親等コマンドリレー、例えば探索のリレーである。上述したように、単純なデータ(プロパティ・スコープ・ラベル等)で複雑なコンテクスト(文脈)を表現できるため、(トークンを通じて)ビッグデータとして利用可能である。
図16Aは、有向グラフを利用した経路形成を例示する図であり、図16Bは、ノード同士の関係を例示する図である。
図16Aに示すように、重要なデータは、直接知っていて信用できるノード(D)及び(E)経由で送信するようなことが可能となる。
図16Bに示すように、親ノードであるノード(L)は、委託探索を受けても探索する義務はないので、子ノードであるノード(C)は、しばらく待って何もなければ通信部21-1からネットワークNを介して委託探索を別の親ノードに送信すればよい。この場合、最低限待ち時間などのガイドラインが必要となる。
[実施例1-2]
実施例1-2は、実施例1でのグラフ生成と利用とを例示するものである。
図17は、グラフ生成及び利用を例示するシーケンス図である。
図17に示すように、ノード(A)は、ユーザIDの取得時に接続グラフに組み込まれる。ノード(A)は、通常グラフを徐々増やしていく。そして、ノード(A)は、いざ認証接続というときにグラフを利用する。
[実施例1-3]
実施例1-3は、実施例1における1親等探索リレーを例示するものである。
通信端末(ノード)2-mがぞれぞれの立ち位置で所定の行動をとることで全体として巨大なグラフデータベース検索が可能となる。
図18は、1親等探索リレーを例示する図である。
図18に示すように、スーパーノード(S)は、特殊な通信端末(ノード)2-mであり、全員が全員に対して親子関係があるため、双方向でコマンドと戻り値とが発生する。
親ノードから子ノードに問い合わせのコマンドを送り、どこかで目的のユーザIDが見つかると、その戻り値が届いた経路を辿って最初に問い合わせたスーパーノード(S)まで戻る。
ループが発生したらその探索経路は切れる。
図19は、接続元ノードの行動を例示するフローチャートである。
図20は、問い合わせを受けた接続親ノード(スーパーノード)の行動を示すフローチャートである。
図20に示すように、共有テーブルに当該ユーザIDを含むグラフを問合せ(query)において「はい(あり)」と判別された場合には、そもそも存在しないユーザIDの可能性もあるから実装上はここで切っている。
図21は、接続親ノードから問い合わせを受けたスーパーノードの行動を例示するフローチャートである。
以上説明したように、実施例1によれば、ピア・ツウ・ピア(P2P)ネットワーク上で特定のユーザIDや属性を持つノードを、例えば、探索したいときにリクエストにグラフを含め、1親等探索をリレーすることで、高速かつ柔軟に探索することができる。
図22Aは、家庭内ネットワークの構成例を示す図であり、図22Bは、各機器のドメインを例示する図である。
図22Aに示す家庭内ネットワークにおいて、IоT GW、HYDRA蛍光灯、及び冷蔵庫は、ユーザIDを有するノード(リアルノード)であり、TVリモコン及びIоT蛍光灯リモコンは、バーチャルノードである。図22Bに示すように、各機器は、ドメインを持つ。
図23は、家庭内ネットワークの構成変更を説明するための図である。
図23に示すように、通常ネットワークの構成変更はハードウェア機器の組み換えを伴う工事が必要となるが、本実施例に係る家庭内ネットワークでは、各機器が論理的に抽象化されているため、ドメインネームを指定してネットワーク構成を柔軟に変更できる。
図24は、家庭内ネットワークの構成変更フローを例示するシーケンス図である。
図24に示す家庭内ネットワークの構成変更フローのシナリオは、家庭内ネットワークのうち玄関の鍵と寝室の照明について本日限りで、妹のスマホに入っているIoTアプリに操作権限を付与するというものである。
以上説明したように、実施例2によれば、家庭内などのIоT(Internet of Things)において、多数のデバイスをネットワーク上で管理する際に、ハードウェアによらずソフトウェアにより簡単かつ柔軟に管理することが可能となる。
なお、本発明は、上記の実施形態に限定されず、種々の変形、応用が可能である。以下、本発明に適用可能な上記の実施形態の変形態様について、説明する。
上記の実施形態において、制御部23-mのCPUが実行するプログラムは、予めROM等に記憶されていた。しかしながら、本発明は、これに限定されず、上述の処理を実行させるためのプログラムを、既存の汎用コンピュータに適用することで、上記の実施形態に係る通信端末(ノード)2-mとして機能させてもよい。
このようなプログラムの提供方法は任意であり、例えばコンピュータが読取可能な記録媒体(フレキシブルディスク、CD(Compact Disc)-ROM、DVD(Digital Versatile Disc)-ROM等)に格納して配布してもよいし、インターネット等のネットワーク上のストレージにプログラムを格納しておき、これをダウンロードさせることにより提供してもよい。
また、上記の処理をOSとアプリケーションプログラムとの分担、又はOSとアプリケーションプログラムとの協働によって実行する場合には、アプリケーションプログラムのみを記録媒体やストレージに格納してもよい。また、搬送波にプログラムを重畳し、ネットワークを介して配信することも可能である。例えば、ネットワーク上の掲示板(BBS:Bulletin Board System)に上記プログラムを掲示し、ネットワークを介してプログラムを配信してもよい。そして、このプログラムを起動し、OSの制御下で、他のアプリケーションプログラムと同様に実行することにより、上記の処理を実行できるように構成してもよい。
なお、本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施の形態及び変形が可能とされるものである。また、上述した実施の形態は、本発明の一実施例を説明するためのものであり、本発明の範囲を限定するものではない。
本出願は、2020年8月21日に出願された日本国特許出願2020-140500に基づく。本明細書中に日本国特許出願2020-140500の明細書、特許請求の範囲、図面全体を参照として取り込むものとする。
1 通信システム
2-m 通信端末(通信ノード)
21-m 通信部
22-m 記憶部
23-m 制御部
24-m ルータ

Claims (8)

  1. ピア・ツウ・ピア方式で通信を行う通信ノード(2-m)であって、
    子ノードに当たる前記通信ノード(2-m)を記憶する記憶部(22-m)と、
    データの発信先となる前記通信ノード(2-m)である発信先ノード(2-2、B)との間の通信経路の形成が指示されたことに応答して、該発信先ノード(2-2、B)が、前記記憶部(22-m)に前記子ノードとして記憶されているか否かを判別し、前記発信先ノード(2-2、B)が子ノードとして記憶されていない場合、前記記憶部(22-m)に子ノードとして記憶されている前記通信ノード(2-1、A)に、前記発信先ノード(2-2、B)との間の通信経路の形成をさらに指示し、前記発信先ノード(2-2、B)が子ノードとして記憶されている場合、該発信先ノード(2-2、B)との間の通信経路を形成する制御部(23-m)と、
    を備える通信ノード(2-m)。
  2. 前記制御部(23-m)は、親ノードに当たる前記通信ノード(2-12、L)から前記通信経路の形成を指示するコマンドを受信した場合において、該通信経路が形成されたときには、該通信経路が形成されたことを示す戻り値を、該親ノードに当たる通信ノード(2-12、L)に送信する、
    ことを特徴とする請求項1に記載の通信ノード(2-m)。
  3. 前記制御部(23-m)は、前記発信先ノード(2-2、B)が子ノードとして記憶されていない場合、前記コマンドを、前記記憶部(22-m)に子ノードとして記憶されている前記通信ノード(2-1、A)に送信し、
    前記子ノードとして記憶されている通信ノード(2-1、A)から前記戻り値を受信したことに応答して、該戻り値を前記親ノードに当たる通信ノード(2-12、L)に送信する、
    ことを特徴とする請求項2に記載の通信ノード(2-m)。
  4. ピア・ツウ・ピア方式で通信を行う通信ノード(2-m)を複数具備する通信システム(1)であって、
    前記通信ノード(2-m)は、
    子ノードに当たる前記通信ノード(2-m)を記憶する記憶部(22-m)と、
    データの発信先となる前記通信ノード(2-m)である発信先ノード(2-2、B)との間の通信経路の形成が指示されたことに応答して、該発信先ノード(2-2、B)が、前記記憶部(22-m)に前記子ノードとして記憶されているか否かを判別し、前記発信先ノード(2-2、B)が子ノードとして記憶されていない場合、前記記憶部(22-m)に子ノードとして記憶されている前記通信ノード(2-1、A)に、前記発信先ノード(2-2、B)との間の通信経路の形成をさらに指示し、前記発信先ノード(2-2、B)が子ノードとして記憶されている場合、該発信先ノード(2-2、B)との間の通信経路を形成する制御部(23-m)と、
    を備える通信システム(1)。
  5. 前記制御部(23-m)は、親ノードに当たる前記通信ノード(2-12、L)から前記通信経路の形成を指示するコマンドを受信した場合において、該通信経路が形成されたときには、該通信経路が形成されたことを示す戻り値を、該親ノードに当たる通信ノード(2-12、L)に送信し、
    前記親ノードに当たる通信ノード(2-12、L)は、前記データの発信元となる前記通信ノード(2-m)である場合、前記戻り値を受信したことに応答して、前記形成された通信経路を介した前記発信先ノード(2-2、B)との通信を開始する、
    ことを特徴とする請求項4に記載の通信システム(1)。
  6. ピア・ツウ・ピア方式で通信を行う通信ノード(2-m)であって、子ノードに当たる前記通信ノード(2-m)を記憶する記憶部(22-m)と、制御部(23-m)と、を備える通信ノード(2-m)による通信方法であって、
    前記制御部(23-m)が、データの発信先となる前記通信ノード(2-m)である発信先ノード(2-2、B)との間の通信経路の形成が指示されたことに応答して、該発信先ノード(2-2、B)が、前記記憶部(22-m)に前記子ノードとして記憶されているか否かを判別し、
    前記発信先ノード(2-2、B)が子ノードとして記憶されていない場合、前記記憶部(22-m)に子ノードとして記憶されている前記通信ノード(2-1、A)に、前記発信先ノード(2-2、B)との間の通信経路の形成をさらに指示し、前記発信先ノード(2-2、B)が子ノードとして記憶されている場合、該発信先ノード(2-2、B)との間の通信経路を形成する、
    ことを特徴とする通信方法。
  7. ピア・ツウ・ピア方式で通信を行う通信ノード(2-m)であって、子ノードに当たる前記通信ノード(2-m)を記憶する記憶部(22-m)を備える通信ノード(2-m)を複数具備する通信システム(1)による通信方法であって、
    前記通信ノード(2-m)が、データの発信先となる前記通信ノード(2-m)である発信先ノード(2-2、B)との間の通信経路の形成が指示されたことに応答して、該発信先ノード(2-2、B)が、前記記憶部(22-m)に前記子ノードとして記憶されているか否かを判別し、
    前記発信先ノード(2-2、B)が子ノードとして記憶されていない場合、前記記憶部(22-m)に子ノードとして記憶されている前記通信ノード(2-1、A)に、前記発信先ノード(2-2、B)との間の通信経路の形成をさらに指示し、前記発信先ノード(2-2、B)が子ノードとして記憶されている場合、該発信先ノード(2-2、B)との間の通信経路を形成する、
    ことを特徴とする通信方法。
  8. ピア・ツウ・ピア方式で通信を行う通信ノード(2-m)であって、子ノードに当たる前記通信ノード(2-m)を記憶する記憶部(22-m)を備える通信ノード(2-m)のコンピュータに、
    データの発信先となる前記通信ノード(2-m)である発信先ノード(2-2、B)との間の通信経路の形成が指示されたことに応答して、該発信先ノード(2-2、B)が、前記記憶部(22-m)に前記子ノードとして記憶されているか否かを判別する手順と、
    前記発信先ノード(2-2、B)が子ノードとして記憶されていない場合、前記記憶部(22-m)に子ノードとして記憶されている前記通信ノード(2-1、A)に、前記発信先ノード(2-2、B)との間の通信経路の形成をさらに指示し、前記発信先ノード(2-2、B)が子ノードとして記憶されている場合、該発信先ノード(2-2、B)との間の通信経路を形成する手順と、
    を実行させるためのプログラム。
JP2022522007A 2020-08-21 2021-08-21 通信ノード、通信システム、通信方法、及びプログラム Active JP7128564B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2020140500 2020-08-21
JP2020140500 2020-08-21
PCT/JP2021/030696 WO2022039278A1 (ja) 2020-08-21 2021-08-21 通信ノード、通信システム、通信方法、及びプログラム

Publications (2)

Publication Number Publication Date
JPWO2022039278A1 JPWO2022039278A1 (ja) 2022-02-24
JP7128564B2 true JP7128564B2 (ja) 2022-08-31

Family

ID=80323032

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022522007A Active JP7128564B2 (ja) 2020-08-21 2021-08-21 通信ノード、通信システム、通信方法、及びプログラム

Country Status (2)

Country Link
JP (1) JP7128564B2 (ja)
WO (1) WO2022039278A1 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012217164A (ja) 2011-03-31 2012-11-08 Mitsubishi Electric Research Laboratories Inc マルチホップネットワークにおいて複数の経路を発見する方法および複数の経路を検索するノード

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050036486A1 (en) * 2003-08-12 2005-02-17 Zafer Sahinoglu Route discovery in ad-hoc networks with data packets

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012217164A (ja) 2011-03-31 2012-11-08 Mitsubishi Electric Research Laboratories Inc マルチホップネットワークにおいて複数の経路を発見する方法および複数の経路を検索するノード

Also Published As

Publication number Publication date
WO2022039278A1 (ja) 2022-02-24
JPWO2022039278A1 (ja) 2022-02-24

Similar Documents

Publication Publication Date Title
Fremantle et al. A survey of secure middleware for the Internet of Things
CN110326255B (zh) 管理消息传递协议通信
TWI221979B (en) Secured and access controlled peer-to-peer resource sharing method and apparatus
Korzun et al. Deployment of Smart Spaces in Internet of Things: Overview of the design challenges
CN106209741B (zh) 一种虚拟主机及隔离方法、资源访问请求处理方法及装置
WO2013064727A1 (en) Method and apparatus for providing identity based encryption in distributed computations
Buthpitiya et al. Hermes--A context-aware application development framework and toolkit for the mobile environment
US20220277107A1 (en) Confidential computing workflows
WO2016141783A1 (zh) 访问控制、策略获取、属性获取方法及相关装置
Al-Bahri et al. Integrating internet of things with the digital object architecture
CN117176415A (zh) 集群访问方法、装置、电子设备及存储介质
JP7128564B2 (ja) 通信ノード、通信システム、通信方法、及びプログラム
Mosch et al. User-controlled resource management in federated clouds
CN107231664B (zh) 一种用于对用户设备进行流量控制的方法与设备
WO2019037602A1 (zh) 一种用于对用户设备进行无线连接预授权的方法与设备
Ali et al. The quest for fully smart autonomous business networks in IoT platforms
Hilia et al. Semantic based authorization framework for multi-domain collaborative cloud environments
Pandey et al. Aglets (A java based Mobile agent) and its security issue
Sawant et al. Securing IoT Using MultiChain
Buccafurri et al. A middleware to allow fine-grained access control of twitter applications
US20230247081A1 (en) Declarative rendering of hypertext transfer protocol headers
Ishibashi et al. Machine-machine communications using relationships in social media
Gatial et al. Platform for distributed execution of agents for trusted data collection
Sicari Applications in the Cloud Edge Continuum: Environment, Challenges and Directions
Alazzawi et al. Comparative analysis of security protocols in IoT

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220411

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20220411

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220524

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: 20220809

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220812

R150 Certificate of patent or registration of utility model

Ref document number: 7128564

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250