JP2021519539A - ノード、ネットワークシステム、およびデータ同期方法 - Google Patents
ノード、ネットワークシステム、およびデータ同期方法 Download PDFInfo
- Publication number
- JP2021519539A JP2021519539A JP2020552010A JP2020552010A JP2021519539A JP 2021519539 A JP2021519539 A JP 2021519539A JP 2020552010 A JP2020552010 A JP 2020552010A JP 2020552010 A JP2020552010 A JP 2020552010A JP 2021519539 A JP2021519539 A JP 2021519539A
- Authority
- JP
- Japan
- Prior art keywords
- data
- data entry
- node
- entry
- version identifier
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/219—Managing data history or versioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/273—Asynchronous replication or reconciliation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0866—Checking the configuration
- H04L41/0873—Checking configuration conflicts between network elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Computing Systems (AREA)
- Information Transfer Between Computers (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
【課題】【解決手段】本開示は、各データエントリが、データエントリID、データエントリバージョン識別子、およびノードまたは他のノードの動作情報を表すデータペイロードを含む、複数のデータエントリを格納するように構成されたデータ記憶部(101)と、処理部(102)と、他のノードと通信する第1のインタフェース(103)と、を含む、ノード(11、12、13、14)を提供する。ノードは、データ記憶部内のデータエントリのデータエントリIDおよびデータエントリバージョン識別子を含む第1のデータパケットを、他のノードに送信し、他のノードにより送信された第2のデータパケットを受信し、第2のデータパケットは、他のノードのデータエントリのデータエントリIDおよびデータエントリバージョン識別子を含み、第2のデータパケットの受信したデータエントリバージョン識別子を、第2のデータパケットと同じデータエントリIDを有するデータ記憶部内の対応するデータエントリのデータエントリバージョン識別子と比較するように構成される。【選択図】図1
Description
本文書は、ノード、ネットワークシステム、およびネットワークシステムの複数のノード間のデータ同期方法に関する。
ノードは、異なるノード間の自動データ同期を提供するネットワークシステム、すなわち、人間の介入なしに、および中央制御ノードなしに、データがノード間で同期されるネットワークシステムでの使用に適する。
ネットワークシステムは、リソースまたは情報を共有するために一緒にリンクされた複数のノードを含むシステムである。データリンクは通常、光ケーブルなどの有線メディア、またはWi−Fiなどの無線メディアを介して確立される。ネットワークシステムは便利で効率的なデータ交換で知られているため、コンピュータネットワーク、電気通信、クラウドコンピューティング、テレビネットワークなどの我々の日常生活で広く使用されている。他のアプリケーションには、製造および/または倉庫保管に関連するアイテムの取り扱いと移動を制御する産業タイプの制御システムが含まれる。さらに他のアプリケーションには、車両の様々な構成要素間の通信のための、車両の内部通信ネットワークが含まれる。
ネットワークシステムは通常、他のノードに接続された通信チャネルを介して情報を作成、受信、または送信することができる複数のノードを含む。
ファイル同期など、ネットワークシステムの様々なアプリケーションでは、ネットワークシステムの様々なノード間でデータの整合性を長期間維持することが基本となる。従って、ネットワークシステムのソースノードからターゲットノードへ、またはその逆において、特定のデータ間の継続的な同期が必要である。例えば、あるノードに他のノードの誤動作が通知された場合、異常ノードへのデータの送信を停止し、他の機能ノードにデータをルーティングして、データが失われたり、データ送信が遅れたりしないようにし得る。その結果、通常、中央制御ノードと相当量の労力を要することになる、異常ノードによるネットワークシステム内のノードのデータ処理容量の再調整の必要性が回避され得、ネットワークシステムの効率とロバスト性を向上させることができる。
さらに、ロバストな手順でノードを再構成できることが望ましい。
したがって、人間の介入を減らし、ネットワークシステムの効率とロバスト性を向上させることができるノードが必要である。
本開示の目的は、改善されたノード、および特に人間の介入を減らしてネットワークシステムの効率およびロバスト性を改善することができるノードを提供することである。
本発明は、添付の独立請求項によって定義され、実施形態は、添付の従属請求項および以下の説明および図面に記載されている。
第1の態様によれば、各データエントリが、データエントリID、データエントリバージョン識別子、およびノードまたは他のノードの動作情報を表すデータペイロードを含む、複数のデータエントリを格納するように構成されたデータ記憶部を備えたノードが提供される。ノードは、処理部と、前記他のノードと通信する第1のインタフェースとをさらに備える。ノードは、データ記憶部内のデータエントリのデータエントリIDおよびデータエントリバージョン識別子を含む第1のハートビートデータパケットを、第1のインタフェースを介して、他のノードに送信するよう構成される。ノードは、第1のインタフェースを介して、前記他のノードにより送信された第2のハートビートデータパケットを受信するよう構成され、第2のハートビートデータパケットは、前記他のノードのデータエントリのデータエントリIDおよびデータエントリバージョン識別子を含む。ノードは、第2のハートビ―トデータパケットの受信したデータエントリバージョン識別子を、第2のハートビートデータパケットと同じデータエントリIDを有するデータ記憶部内の対応するデータエントリのデータエントリバージョン識別子と比較するように構成される。ノードは、その記憶部に格納されたデータエントリが前記他のノードの対応するデータエントリよりも新しいと判断した場合、ノードは、データ記憶部内の対応するデータエントリのデータエントリID、データエントリバージョン識別子、およびデータペイロードの少なくとも一部を含む第1の同期データパケットを前記他のノードに送信するように構成される。第1の同期データパケットのサイズは、第1のハートビートデータパケットのサイズより大きい。
第1のデータパケットは、本質的に、データ記憶部内のデータエントリのデータエントリIDおよびデータエントリバージョン識別子からなり得る。
データエントリIDおよび1つまたは複数のデータエントリの対応するデータエントリバージョン識別子のみを含むことにより、第1のデータパケットは、少量のデータのみでデータエントリのデータエントリバージョン識別子をブロードキャストするために使用され得る。
あるノードが他のノードの同期を引き起こす場合、送信された第1の同期データパケットは、データペイロードの一部など、同期用の追加データを含むことにより、より大きなサイズになる場合がある。
送信されたデータパケットの内容および/またはサイズを制御する利点は、他のすべてのデータパケットは比較的小さいサイズである一方、同期を引き起こすノードのみがより大きなサイズのデータパケットを送信できるため、ネットワークシステムが、多数のノード、すなわち、ノード間で同時に通信される多数のデータパケットを含んでいた場合であっても、帯域幅が狭いデータ通信チャネルは、ノード間のデータパケットの通信を処理できるため、ネットワークシステムを実装するためのコストと複雑さも軽減される。
さらに、本開示の方法およびノードの柔軟性は、送信および/または受信されたデータパケットの数またはサイズが大きいことによって引き起こされる問題を処理するために必要な変更なしに、多数のノードを含むネットワークシステムで使用できるように改善される。
複数の現在のノードを含むネットワークシステムに新しいノードを設置する必要がある場合、または既存のノードを再構成する必要がある場合、ノードは、「新しい」データエントリを有するノードにより引き起こされる同期によって、他のノードと自動的に同期され得る。従って、ネットワークシステム内の新しいノードの設置および既存のノードの再構成を容易にし得る。
本発明の1つのノードは、定期的に他のノードからハートビートデータパケットを送受信する。あるノードは、ノードの新しい操作情報など、他のノードよりも新しいデータエントリがあることを学習すると、同期データパケットを、古いデータエントリを有する他のノードに更新のために送信する。従って、同期サイクル中に2つのノード間で送信するために必要なデータパケットは2種類だけである。1)ハートビートデータパケット、および2)同期データパケット。
さらに、2つのノード間の同期は、一のノードが他のノードよりも新しいデータエントリを有することに気付いたときに、一のノードにより自動的に初期化できる。すなわち、本発明では、2つのノード間の同期を初期化するために特別な「同期の要求」は必要とされない。その結果、本発明の全てのノードは、同期を初期化するために同じ状態を有する。
また、一のノードが他のノードの同期を引き起こすために一時的な「マスタ」ノードとして機能し、「マスタ」ノードで同期するために他のノードが「スレーブ」ノードとして機能する場合も有利である。従って、データ同期は、中央制御ノードまたは人間の介入なしに、ネットワークシステム内の複数のノード間で達成することができる。
各ノードは、他のノードの同期を引き起こす「マスタ」ノードとして機能し得るため、フローティングマスタネットワークシステムが実現される。
ノードは、前記他のノードのデータ記憶部内の第2のデータエントリの、第2のデータエントリID、第2のデータエントリバージョン識別子、および第2のデータペイロードの少なくとも一部、を含む第2の同期データパケットを受信するようさらに構成され得る。第2の同期データパケットのサイズは、第2のデータパケットのサイズよりも大きい。第2の同期データパケットの第2のデータエントリバージョン識別子が、データ記憶部内の対応するデータエントリのデータエントリバージョン識別子よりも新しいと示されている場合、第2のデータペイロードの一部と第2の同期データパケットの第2のデータエントリバージョン識別子に応じて、ノードは、データ記憶部内の対応するデータエントリのデータペイロードおよびデータエントリバージョン識別子を更新するように構成される。
ノードは、そのデータペイロードの変更および/またはそのデータバージョン識別子の変更に基づいて、その記憶部に格納されたデータエントリが、前記他のノードの対応するデータエントリよりも新しいと決定するように構成され得る。
ノードは、第2のハートビートデータパケットのデータエントリバージョン識別子が、データ記憶部内の対応するデータエントリのデータエントリバージョン識別子よりも古いと示されることに基づいて、その記憶部に格納されたデータエントリが、前記他のノードの対応するデータエントリよりも新しいと決定するように構成され得る。
ノードは、第1の同期データパケットがデータペイロードの一部を含み、前記一部がそのデータエントリのデータペイロードのサブセットであるように構成され、第1の同期データパケットは、前記データエントリのための総データペイロードサイズの表示および/またはデータペイロード部分順序表示をさらに含む。
この場合、ノードは、2以上の同期パケットからのデータペイロードを併合するように構成され得る。このような併合は、データペイロードサイズおよびデータペイロード部分順序表示に基づいて実行され得る。
さらに、この場合、ノードは、データエントリに関して少なくとも2つ、好ましくは全ての同期パケットが受信された後にのみ、データエントリバージョン識別子を更新するように構成され得る。
ノードは、データエントリIDまたはデータエントリIDの範囲など、所定の基準を満たすデータエントリに対してのみ第1のハートビートデータパケットを送信するように構成され得る。
ノードは、第2のハートビートデータパケットの前記データエントリIDが、データエントリIDまたはデータエントリIDの範囲など、所定の基準を満たしている場合にのみ、前記第2のハートビートデータパケットを受信するように構成され得る。
ノードは、外部ユニットと通信する第2のインタフェースをさらに含み得る。
ノードは、データ記憶部内のデータエントリのデータペイロードを更新するために、第2のインタフェースを介して外部ユニットから第1の信号を受信するように、および/または外部ユニットを制御するために、前2のインタフェースを介して外部ユニットに第2の信号を提供するように、さらに構成され得る。
ノードは、第1の信号が受信されると、第1の信号に従って、データ記憶部内のデータエントリのデータペイロードを更新し、更新されたデータエントリのデータエントリバージョン識別子を更新して、より新しいバージョンを示す、ように構成され得る。
外部ユニットは、アクチュエータ、センサ、タグライタ、タグリーダ、カメラ、フォトアイ、押しボタン、キーボード、携帯電話、スマートデバイス、スキャナなどであり得る。
データエントリバージョン識別子はカウンタまたはタイムスタンプであり得る。
動作情報は、ノード構成などの動作モード、および/またはセンサ状態またはエラー状態などの動作状態を含み得る。
第1のインタフェースは、限定されないが、CAN、イーサネット、PROFIBUS、ProfiNET、I2C、SPI、およびRS−485で構成されるグループから選択されたプロトコルを使用するシリアルインタフェースなどの無線インタフェースまたは有線インタフェースを備えてもよい。
第2のインタフェースは、単一のインタフェース、または2つ以上の別個のインタフェースであり得る。
更新されたデータエントリのデータエントリバージョン識別子は、カウンタの値に対して演算動作を実行することにより更新し得、演算動作は、カウンタの値に、および/またはカウンタの値から所定の数を加算および/または減算することを含み、所定の数は1である。
動作情報は、動作モードおよび/または動作状態を含み得る。
ノードは、第1のハートビートデータパケットを、ノードおよび他のノードとは異なる少なくとも1つのノードに送信するように構成され得る。ノードは、アクセス可能な全てのノードに第1のハートビートデータパケットを送信するように構成され得る。
ノードは、第1のインタフェースを介して、前記少なくとも1つのノードにより送信されたハートビートデータパケットを受信し、前記ハートビートデータパケットは、前記少なくとも1つのノードのデータエントリのデータエントリIDおよびデータエントリバージョン識別子を含み、前記ハートビートデータパケットの受信したデータエントリバージョン識別子を、前記ハートビートデータパケットと同じデータエントリIDを有するデータ記憶部内の対応するデータエントリのデータエントリバージョン識別子と比較するよう構成され得、ノードは、その記憶部に格納されたデータエントリが前記少なくとも1つのノードの対応するデータエントリよりも新しいと判断した場合、ノードは、前記少なくとも1つのノードに、記憶部内の対応するデータエントリの、データエントリIDおよびデータエントリバージョン識別子、およびデータペイロードの少なくとも一部を含む同期データパケットを送信するように構成され、同期データパケットのサイズは、第1のハートビートデータパケットのサイズよりも大きい。
データペイロードは、ノードおよび前記他のノードとは異なる少なくとも1つのノードの動作情報をさらに表し得る。データペイロードは、全てのノードの動作情報を表し得る。第2の態様によれば、第1および第2のノードを含むネットワークシステムが提供される。
第1のノードは、各第1のデータエントリが、データエントリID、データエントリバージョン識別子、および第1のノードまたは第2のノードの動作情報を表すデータペイロードを含む、複数の第1のデータエントリを格納するように構成された第1のデータ記憶部と、第1の処理部と、第2のノードと通信する第1のインタフェースと、を含む。
第2のノードは、各第2のデータエントリが、データエントリID、データエントリバージョン識別子、および第1のノードまたは第2のノードの動作情報を表すデータペイロードを含む、複数の第2のデータエントリを格納するように構成された第2のデータ記憶部と、第2の処理部と、第1のノードと通信する第2のインタフェースと、を含む。
第1のノードは、第1のデータ記憶部内の第1のデータエントリのデータエントリIDおよびデータエントリバージョン識別子を含む第1のハートビートデータパケットを、第1のインタフェースを介して、第2のノードに送信し、第1のインタフェースを介して、第2のノードにより送信された第2のハートビートデータパケットを受信し、第2のデータパケットは、第2のノードの第2データエントリのデータエントリIDおよびデータエントリバージョン識別子を含み、第2のハートビ―トデータパケットの受信したデータエントリバージョン識別子を、第2のデータパケットと同じデータエントリIDを有するデータ記憶部内の対応するデータエントリのデータエントリバージョン識別子と比較するように構成される。第1のノードは、その記憶部に格納されたデータエントリが第2のノードの対応するデータエントリよりも新しいと判断した場合、第1のノードは、データ記憶部内の対応する第1のデータエントリのデータエントリID、データエントリバージョン識別子、およびデータペイロードの少なくとも一部を含む第1の同期データパケットを第2のノードに送信するように構成され、第1の同期データパケットのサイズは、第1のハートビートデータパケットのサイズより大きい。
第2のノードは、第2のノードの第2のデータエントリのデータエントリIDおよびデータエントリバージョン識別子を含む第2のハートビートデータパケットを送信し、第1のデータ記憶部内の対応する第1のデータエントリのデータエントリID、データエントリバージョン識別子、およびデータペイロードの少なくとも一部を含む第1の同期データパケットを受信し、第1の同期データパケットの受信したデータエントリバージョン識別子を、第2のデータ記憶部内の第2のデータエントリのデータエントリバージョン識別子と比較するよう構成され、第1の同期データパケットのデータエントリバージョン識別子が、第2のデータ記憶部内の第2のデータエントリのデータエントリバージョン識別子よりも新しいと示されている場合、および第1の同期データパケットが、第2のデータ記憶部内の第2のデータエントリと同じデータエントリIDに関連付けられたデータペイロードの一部を含む場合、データペイロードの一部と第1の同期データパケットのデータエントリバージョン識別子に応じて、第2のノードは、データ記憶部内の第2のデータエントリのデータペイロードおよびデータエントリバージョン識別子を更新するように構成される。
導入により定義された2つ以上のノードをネットワークシステムで使用し得る。
第1のノードは、外部ユニットと通信する第2のインタフェースをさらに含み得る。
第3の態様によれば、ネットワークシステムの一部を形成する複数のノード間のデータ同期の方法が提供され、各ノードは、複数のデータエントリを格納するように構成されたデータ記憶部を含み、各データエントリはデータエントリID、データエントリバージョン識別子、およびノードまたは他のノードの動作情報を表すデータペイロードを含み、処理ユニットおよび、前記他のノードと通信する第1のインタフェースを含む。
第3の態様によれば、ネットワークシステムの一部を形成する複数のノード間のデータ同期の方法が提供され、各ノードは、複数のデータエントリを格納するように構成されたデータ記憶部を含み、各データエントリはデータエントリID、データエントリバージョン識別子、およびノードまたは他のノードの動作情報を表すデータペイロードを含み、処理ユニットおよび、前記他のノードと通信する第1のインタフェースを含む。
方法は、各ノードにおいて、データ記憶部内のデータエントリのデータエントリIDおよびデータエントリバージョン識別子を含む第1のハートビートデータパケットを、第1のインタフェースを介して、他のノードに送信し、第1のインタフェースを介して、前記他のノードにより送信された第2のハートビートデータパケットを受信し、第2のデータパケットは、前記他のノードのデータエントリのデータエントリIDおよびデータエントリバージョン識別子を含み、第2のハートビ―トデータパケットの受信したデータエントリバージョン識別子を、第2のハートビートデータパケットと同じデータエントリIDを有するデータ記憶部内の対応するデータエントリのデータエントリバージョン識別子と比較するように構成される。ノードは、その記憶部に格納されたデータエントリが前記他のノードの対応するデータエントリよりも新しいと判断した場合、方法は、データ記憶部内の対応するデータエントリのデータエントリID、データエントリバージョン識別子、およびデータペイロードの少なくとも一部を含む第1の同期データパケットを前記他のノードに送信することを含む。第1の同期データパケットのサイズは、第1のハートビートデータパケットのサイズより大きい。
第1および第2のハートビートデータパケットは、本質的に、それぞれのデータエントリIDおよびデータエントリバージョン識別子からなり得る。
方法は、他のノードのデータ記憶部内の第2のデータエントリの、第2のデータエントリID、第2のデータエントリバージョン識別子、および第2のデータペイロードの少なくとも一部、を含む第2の同期データパケットを受信し、第2の同期データパケットのサイズは、第2のデータパケットのサイズよりも大きく、第2の同期データパケットの第2のデータエントリバージョン識別子が、データ記憶部内の対応するデータエントリのデータエントリバージョン識別子よりも新しいと示されている場合、第2のデータペイロードの一部と第2の同期データパケットの第2のデータエントリバージョン識別子に応じて、方法は、データ記憶部内の対応するデータエントリのデータペイロードおよびデータエントリバージョン識別子を更新するようにさらに構成される。
方法は、第1のハートビートデータパケットを、ノードおよび他のノードとは異なる少なくとも1つのノードに送信するようにさらに構成され得る。方法は、アクセス可能な全てのノードに第1のハートビートデータパケットを送信するようにさらに構成され得る。
方法は、第1のインタフェースを介して、前記少なくとも1つのノードにより送信されたハートビートデータパケットを受信し、前記ハートビートデータパケットは、前記少なくとも1つのノードのデータエントリのデータエントリIDおよびデータエントリバージョン識別子を含み、前記ハートビートデータパケットの受信したデータエントリバージョン識別子を、前記ハートビートデータパケットと同じデータエントリIDを有するデータ記憶部内の対応するデータエントリのデータエントリバージョン識別子と比較するようさらに構成され得、ノードは、その記憶部に格納されたデータエントリが前記少なくとも1つのノードの対応するデータエントリよりも新しいと判断した場合、方法は、前記少なくとも1つのノードに、記憶部内の対応するデータエントリの、データエントリIDおよびデータエントリバージョン識別子、およびデータペイロードの少なくとも一部を含む同期データパケットを送信するように構成され、同期データパケットのサイズは、第1のハートビートデータパケットのサイズよりも大きい。
方法は、第1のインタフェースを介して、前記少なくとも1つのノードにより送信されたハートビートデータパケットを受信し、前記ハートビートデータパケットは、前記少なくとも1つのノードのデータエントリのデータエントリIDおよびデータエントリバージョン識別子を含み、前記ハートビートデータパケットの受信したデータエントリバージョン識別子を、前記ハートビートデータパケットと同じデータエントリIDを有するデータ記憶部内の対応するデータエントリのデータエントリバージョン識別子と比較するようさらに構成され得、ノードは、その記憶部に格納されたデータエントリが前記少なくとも1つのノードの対応するデータエントリよりも新しいと判断した場合、方法は、前記少なくとも1つのノードに、記憶部内の対応するデータエントリの、データエントリIDおよびデータエントリバージョン識別子、およびデータペイロードの少なくとも一部を含む同期データパケットを送信するように構成され、同期データパケットのサイズは、第1のハートビートデータパケットのサイズよりも大きい。
データペイロードは、ノードおよび前記他のノードとは異なる少なくとも1つのノードの動作情報をさらに表し得る。データペイロードは、全てのノードの動作情報を表し得る。
方法は、導入として説明したように、ノードおよび2つ以上のそのようなノードを含むネットワークシステムによって実行することができる。
図1は、本開示に係るネットワークシステムの概略図である。ネットワークシステム1は、複数のノードを含み得る。例えば、図1のネットワークシステム1は、4つのノード11、12、13、14を含む。
ネットワークシステム1は、特定のタスクを実行する装置、またはユーザからの指示を受信するおよび/またはユーザにフィードバックを提供するHMI装置などの、ノード(図示せず)以外の装置を含み得る。ノードは、センサ、マイクロプロセッサ、外付けハードドライブ、キーボード、ディスプレイ、タッチスクリーンなどの特定のタスクを実行するそれぞれの装置に関連付け得る。ノード11、12、13、14は、ネットワークシステムの1つまたは複数の装置を制御および/または監視する装置であり得る。
図2に示すように、各ノード11、12、13、14は、データ記憶部101、処理部102、および第1のインタフェース103を備え得る。
データ記憶部101は、その中にデータまたは情報を記録するように適合された任意の種類の装置または媒体であり得る。データ記憶部に保存されているデータは、読み取り可能である。新しいデータは、データ記憶部に書き込み可能である。そのようなデータ記憶部の例は、CD‐RWディスク、ハードドライブ、およびフラッシュメモリを含むがこれらに限定されない、揮発性または不揮発性メモリ装置であり得る。
処理部102は、命令によって指定された基本的な演算、論理、制御、および入出力操作を実行することにより命令を実行するように適合された任意の種類の装置であり得る。処理部は、CPU、MCU、DSP、PLC、または単一の集積回路であり得る。
第1のインタフェース103は、1つまたは複数の他のノードと通信するために使用し得る。ノードは、第1のインタフェース103を介して、ネットワークシステム内の他のノードまたは複数の他のノードに第1のデータパケットを送信し得る。ノードは、第1のインタフェース103を介して、他のノードの1つにより送信された第2のデータパケットを受信し得る。
第1のインタフェース103は、無線インタフェースを含み得る。第2のインタフェースは、有線インタフェースを含み得る。その結果、1つのノードと他のノード間の通信は有線および/または無線であり得る。有線インタフェースは、CAN、イーサネット、PROFIBUS、I2C、SPI、またはRS−485から選択されたプロトコルを含むシリアルインタフェースであってもよい。無線インタフェースは、無線LAN、Wi−Fi、セルラーネットワークなどから選択される規格の下で無線通信を可能にし得る。
図2に示されるように、各ノード11、12、13、14は、外部ユニットと通信する第2のインタフェース104を備え得る。図2では、第2のインタフェース104は、2つの外部ユニット15および16と通信する。
第2のインタフェースは、単一のインタフェース、または2つ以上の別個のインタフェースであり得る。
外部ユニット15、16は、外付けハードドライブ、アクチュエータ、センサ、タグライタ、タグリーダ、カメラ、フォトアイ、押しボタン、キーボード、携帯電話、スマートデバイス、スキャナなどであり得る。
従って、ノード11、12、13、14は、第2のインタフェース104を介して、外部ユニット15、16から第1の信号を受信し得る。そのような信号を受信すると、処理部は、データ記憶部101内のデータエントリのデータペイロードを更新し得る。
例えば、外付けハードドライブのデータオーバーフローを示す信号を受信すると、プロセッサは、対応するデータエントリを更新して、外付けハードドライブでデータオーバーフローが発生したことを示し得る。
ノードは、第2のインタフェース104を介して、タスクを実行する外部ユニットを制御する命令などの第2の信号を外部ユニットに提供し得る。
例えば、ノードは、ノードを再起動させる信号を外付けハードドライブに提供し得る。
第2のインタフェース104は、無線インタフェースを含み得る。あるいは、第2のインタフェースは、シリアルインタフェースなどの有線インタフェースを含み得る。その結果、第2のインタフェースを介したノードと外部ユニットとの間の通信は、有線または無線であり得る。
本開示は、共通の通信ネットワークを介して情報を送信するように構成されたノード11、12、13、14に特に適用可能である。ノード11、12、13、14は、全てのノードが共通の通信ネットワークを介して通信される全ての情報を受信できるように通信するように構成され得る。
データ記憶部101には、複数のデータエントリが記憶されている。図3は、ノード11、12、13、14のデータ記憶部101に記憶されたデータエントリの例である。
各データエントリは、データエントリID、データエントリバージョン識別子、およびデータペイロードを含み得る。
図3および4a−4cに示すように、各データエントリのデータエントリIDはユニークであり得る。従って、ユニークなデータエントリIDを使用して、あるデータエントリを他のデータエントリと区別し得る。
データペイロードは、1つのノードの動作情報を表し得る。動作情報は、ノードの動作モードおよび/または動作状態を含み得る。
動作モードは、動作構成情報、例えば、このまたは他のノードが実行する機能の情報を含み得る。
動作状態は、ノードがフル稼働しているか、誤動作しているかなど、コントローラの実際の状態の情報を含み得る。動作状態は、非限定的な例として、外付けハードドライブの動作状態などの外部装置の動作状態を示し得る。
データエントリバージョン識別子は、データエントリのバージョンを示し得る。従って、例えば他のノードの対応するデータエントリと比較するときに、データエントリがより新しいかより古いかを表すために使用され得る。
図3および4a−4cに示すように、データエントリバージョン識別子は、カウンタであり得る。データエントリが更新されたとき、例えば、更新されたデータペイロードとともに、カウンタの値に対して演算動作を実行することにより、カウンタを更新し得る。カウンタの値は、全てのデータエントリに対して最初は「0」に設定し得る。1つのデータエントリの更新ごとに、そのデータエントリバージョン識別子、すなわちカウンタは、所定の値だけ増加され得る。所定の値は「1」であり得る。あるいは、減算などの他の算術動作も、カウンタの値に対して実行され得る。
データエントリバージョン識別子はタイムスタンプであり得る。タイムスタンプは、システムの起動時に全てのデータエントリに対して最初は「0」に設定し得る。システム起動後のデータエントリの更新ごとに、データエントリバージョン識別子としてタイムスタンプが付与され得る。付与されたタイムスタンプは、システムが起動してから更新が行われるまでに計算された時間間隔であり得る。
リアルタイムシステムが使用される場合、ネットワークシステム内の各ノードは、例えば、システムのグローバルクロック信号、外部の共通タイムサーバ、または外部のGPS信号によって同期され得、これにより必然的にシステム全体の複雑さが増加する。さらに、ネットワークシステムは、全てのノードをリアルタイムで同期させる中央ノードをさらに備え得る。従って、データエントリバージョン識別子を使用すると、ネットワークシステムが簡素化され得る。
さらに、リアルタイムシステムを使用する場合、2つのノード間のわずかな同期ミスにより、データエントリの時系列にエラーが発生し、システムが希望どおりに機能しなくなる可能性がある。ただし、リアルタイムの代わりにタイムスタンプを使用することにより、システムの起動時にタイムスタンプを初期値「0」に設定するだけで、正しい時系列を保証できる。従って、データエントリバージョン識別子を使用すると、ネットワークシステムのロバスト性が向上され得る。
各ノードは、ネットワークシステム内の全てのノードの全てのデータエントリを含むデータセット全体を格納し得る。あるいは、各ノードは、データセット全体の一部のみを格納し得る。例えば、各ノードは、それ自体に関連するシステム内のいくつかのノードのデータエントリのみを格納し得る。特に、ノードの特定のグループは、各ノードがそのグループを形成するノードの完全な情報を格納するように構成され得る。
図4a−4cは、ノードのデータ記憶部に記憶されたデータエントリの第2の例である。
図4aでは、上記の動作情報の1つまたは複数の変数を表すために各データエントリをどのように工夫し得るかが示されている。この例では、最初のデータエントリであるデータエントリID100は、10桁の長さで、4つの異なる変数を表す場合があり得る。従って、データ構造は、データペイロードの最初の2桁が変数1を表し、次の3桁が変数2を表し、次の2桁が変数3を表し、最後の3桁が変数4を表すように定義される。このデータ構造定義は、このデータエントリを処理できる必要がある全てのノードに認識される。
同様の方法で、第2のデータエントリ101は15桁の長さを有し、そして5つの異なる変数を表すように定義され得、第3のデータエントリ102は4桁のデータペイロードを有し、単一の変数を表し得る。
ハートビートデータパッケージは、
100 1、
の形式となり、ここで「100」はデータエントリIDを表し、「1」はデータエントリバージョン識別子を表す。
100 1、
の形式となり、ここで「100」はデータエントリIDを表し、「1」はデータエントリバージョン識別子を表す。
データ同期パケットは、データエントリのデータペイロード全体が1つの同期データパケットで送信され得るように定義され得る。このようなデータ同期パケットには、データエントリID、データエントリバージョンID、およびデータペイロードを含めるだけで済む。
従って、図4aに基づく同期データパケットは、
100 1 1234567890
の形式を取り得る。
100 1 1234567890
の形式を取り得る。
図4bでは、送信されているデータペイロード長が4桁に制限されている状況でのデータ同期パケット送信のためのデータ構造が示されている。つまり、データペイロード長は、特定のデータエントリに関連付けられているデータペイロードの合計よりも短くなる。従って、データエントリは3つのメッセージに分割される。このような場合、データペイロードの一部を含む2つ以上のパケットに基づいて、受信ノードがデータエントリのデータペイロード全体を正しくつなぎ合わせることができるようにする情報を提供する必要がある。
図4bには、データペイロードサイズの表示と、データペイロードのどの部分が送信されているかを示すフラグが提供されている。従って、受信ノードは、最大データペイロードサイズが4であるという知識に基づいて、パケットからのデータペイロードをつなぎ合わせるべき順序を決定できる。従って、データ同期パケットは、
100 1 15 1 1234、
100 1 15 2 5678、
100 1 15 3 90、
という形式を取り得る。
100 1 15 1 1234、
100 1 15 2 5678、
100 1 15 3 90、
という形式を取り得る。
他の方法として、各データエントリのペイロードサイズを全てのノードが認識し得、その場合、フラグのみが必要となる。
上記の例では、ペイロードフラグは、別個のデータフィールドまたはデータエントリ内の所定の位置を形成することに留意されたい。
他の方法として、ペイロードフラグは、データエントリIDフィールドなどの他のデータフィールドの1つに含まれ得る。例えば、上記の例による第1のデータエントリ100の同期データパケットは、
1001 1 15 1234、
1002 1 15 5678、
1003 1 15 90、
であり得る。
1001 1 15 1234、
1002 1 15 5678、
1003 1 15 90、
であり得る。
すなわち、データエントリIDを示すデータフィールドは、このデータエントリのどの部分がデータパケットに含まれるかを示すために展開され得る。
図4cを参照すると、さらに他の方法として、ペイロードフラグは、特定の範囲のデータエントリIDが、その範囲内のIDを有する各同期データパッケージがそのデータエントリに属するものとして識別できるように、一緒に1つのデータエントリを形成することを決定することにより完全に省略され得、これにより、受信ノードは、前記範囲内のデータエントリIDを有する同期データパケットのデータペイロードを併合する。この場合、第1のデータエントリ100の対応するデータパケットは、
100 1 15 1234、
101 1 15 5678、
102 1 15 90、
であり得る。
100 1 15 1234、
101 1 15 5678、
102 1 15 90、
であり得る。
また、この例では、データペイロードサイズを省略し得る。
次に、図5を参照して、ネットワークシステム1の動作について説明する。
ノード11、12、13、14は、データ記憶部内の1つまたは複数、好ましくは全てのデータエントリのデータエントリIDおよびデータエントリバージョン識別子を含む第1のデータパケットを、第1のインタフェース103を介して、他のノードに送信するように構成され得る、ステップs1。この送信は、ハートビート信号として定期的に実行し得る。
ノード11、12、13、14は、第1のインタフェース103を介して、他のノードの1つ、一部、または全てにより送信される1つまたは複数の第2のデータパケットを受信するように構成され得、ここで、第2のデータパケットは、他のノードのうちの前記1つのデータエントリのデータエントリIDおよびデータエントリバージョン識別子を含む、ステップs2。従って、各ノードは、それ自体のハートビート信号を送信するだけでなく、他のノードの1つまたは全てからハートビート信号を受信し得る。
ノード11、12、13、14は、受信した第2のデータパケットのデータエントリバージョン識別子を、第2のデータパケットと同じデータエントリIDを有するデータ記憶部内の対応するデータエントリのデータエントリバージョン識別子と比較するように構成され得る、ステップs3。通常、このような比較は、受信した第2のデータパケットごとに実行され得る。
ノードは、例えば、データペイロードを更新する第1の信号を受信したときに、データ記憶部内のデータエントリのデータペイロードを更新し、更新されたデータエントリのデータエントリバージョン識別子を更新して、より新しいバージョンを示すように構成され得る。
ステップs3において、第2のデータパケットのデータエントリバージョン識別子が、データ記憶部内の対応するデータエントリのデータエントリバージョン識別子よりも古いと示される場合、ノードは、データエントリID、データエントリバージョン識別子、およびデータ記憶部内の対応するデータエントリのデータペイロードの少なくとも一部、好ましくは全てを含む第1の同期データパケットを送信するように構成され得、第1の同期データパケットのサイズは第1のデータパケットのサイズよりも大きい、ステップs4。
従って、ノードは、ノードのデータ記憶部内の対応するデータエントリと比較して古いデータエントリを含むデータパケットを受信すると、ノードは、全てのノードがデータエントリに関して更新するまで、最新の対応するデータエントリを送信する。
第2のデータパケットのデータエントリバージョン識別子が、データ記憶部内の対応するデータエントリのデータエントリバージョン識別子よりも新しいと示されている場合、および第2のデータパケットが、データ記憶部内の対応するデータエントリと同じデータエントリIDに関連付けられたデータペイロードの一部を含む場合、データペイロードの一部と第2のデータパケットのデータエントリバージョン識別子に応じて、ノードは、データ記憶部内の対応するデータエントリのデータペイロードおよびデータエントリバージョン識別子を更新するように構成され得る、ステップs5。
一方、第2のデータパケットのデータエントリバージョン識別子が、記憶部内の対応するデータエントリのデータエントリバージョン識別子と同じである場合、同期操作を実行する必要はない。
ネットワークシステム1の複数のノード11、12、13、14間のデータ同期は、2つのノード11、12を含む以下の例で説明される。
第1のノード11は、そのデータ記憶部に記憶されたデータエントリA−11を有し得る。データエントリA−11は、データエントリID100、データエントリバージョン識別子1、および第1のノード11の動作状態の情報を含むデータペイロードを有し得る。
第2のノード12は、そのデータ記憶部に記憶されたデータエントリA−12を有し得る。データエントリA−12は、データエントリA−11のコピーであり得る。その結果、データエントリA−12は、データエントリA−11として、データエントリID100、データエントリバージョン識別子1、および第1のノード11の動作状態の情報を含むデータペイロードを有し得る。
第1のノード11は、外付けハードドライブのデータオーバーフローを示す信号を外付けハードドライブから受信し得る。
信号を受信すると、ノード11の処理部102は、データエントリA−11のデータペイロードの更新を発生させ得る。従って、更新されたデータエントリA’−11では、更新されたデータペイロードは、外付けハードドライブのデータオーバーフローを示し得る。結果として、ノード11は、更新されたデータエントリA’−11のデータエントリバージョン識別子を更新して、より新しいバージョンを示し得る。例えば、A’−11のデータエントリバージョン識別子が1から2に更新され得る。
つまり、データエントリのデータペイロードの変更は、同期データパケットの送信を発生させ得る。
あるいは、受信したハートビートデータパケットが古いデータエントリバージョン識別子を有することを第1のノードが発見したことに応答して、データ同期パケットの送信を発生することができる。
第2のノード12は、データエントリA−12のデータエントリID100およびデータエントリバージョン識別子1を含む第2のデータパケットを第1のノード11に送信し得る。
第1のノード11は、第2のノード12により送信された第2のデータパケットを受信し得る。受信したデータエントリIDが100であるため、第1のノード11は、受信した第2のデータパケットの受信したデータエントリバージョン識別子1を、同じデータエントリID100を有するそのデータ記憶部内の対応するデータエントリA’−11のデータエントリバージョン識別子2と比較し得る。
比較後、第2のデータパケットのデータエントリバージョン識別子1は、対応するデータエントリA’−11のデータエントリバージョン識別子2よりも古いと示されていると結論付けられる。すなわち、データエントリA−11に対応する第2のノード12のデータエントリA−12は、第1のノード11の更新されたデータエントリA’−11ほど更新されていない。
受信した第2のデータパケットの古いバージョンのデータエントリA−12を検出すると、第1のノード11は、更新されたデータエントリA’−11の、データエントリID100、データエントリバージョン識別子2、および外付けハードドライブのデータオーバーフローを示すデータペイロードの少なくとも一部を含む第1の同期データパケットを送信することができる。
更新のための追加のデータペイロードを構成するので、第1の同期データパケットのサイズは、それが以前に送信したデータパケットのサイズよりも大きくてもよい。
第2のノード12は、第1のノード11により送信された第1の同期データパケットを受信し得る。第1の同期データパケットは、第1のノード11の更新されたデータエントリA’−11の、データエントリID100、データエントリバージョン識別子2、および外付けハードドライブのオーバーフローを示すデータペイロードの一部を含み得る。
受信した第1の同期データパケットのデータエントリIDが100であるため、第2のノード12は、第1の同期データパケットの受信したデータエントリバージョン識別子2を、同じデータエントリID100を有するそのデータ記憶部内の対応するデータエントリA−12のデータエントリバージョン識別子1と比較し得る。
比較後、第1の同期データパケットのデータエントリバージョン識別子2は、対応するデータエントリA‐12のデータエントリバージョン識別子1よりも新しいと示されていると結論付けられる。すなわち、第2のノード12に記憶されたデータエントリA−12は、データエントリA−11のコピーであり、第1のノード11に記憶された更新されたデータエントリA’−11ほど更新されていない。
ノード11のデータエントリA’−11の新しいバージョンであること、および第1の同期データパケットが、ノード11のデータ記憶部内の対応するデータエントリA’−11に属するデータペイロードの一部を含むことが検出されると、第2のノード12は、受信した第1の同期データパケットに従って、データエントリA‐12データペイロードおよびのデータエントリバージョン識別子1を更新し得る。
更新されたデータエントリA’−12は、データエントリID100、更新されたデータエントリバージョン識別子2、およびデータエントリA’−11のデータオーバーフローとして外付けハードドライブのデータオーバーフローを示す更新されたデータペイロードを有し得る。すなわち、第2のノード12に格納された更新されたデータエントリA’−12は、第1のノード11の更新されたデータエントリA’−11のコピーとして更新される。
第2のノード12は、データ入力が更新されるまで、古いデータエントリバージョンを示す第2のデータパケットを送信し続ける。データエントリが更新された後、ノード12は、データエントリバージョン識別子も更新する。
複数のデータ同期パケットを送信する必要がある場合、第2のノードは、全てのデータ同期パケットが受信され、対応するデータペイロードが完全に受信されるまで、データエントリバージョン識別子の更新を延期する場合がある。
任意で、ノード12は、第1の通知をノード11に送信して、第1の同期データパケットが完全に受信され、完全に格納され、および/または更新が正常に行われたことをノード11に通知し得る。第1の通知は、データエントリID100および更新されたデータエントリA’−12の更新されたデータエントリバージョン識別子2を含むデータパケットであり得る。
任意で、第2のノード12は、第1の同期データパケットが完全に受信され、完全に格納され、および/または更新が正常に行われるまで、データエントリバージョン識別子1およびデータエントリA−12のデータエントリID100を含む第2の通知を第1のノード11に送信し得る。第2の通知は、第1の同期データパケットが完全に受信されていない、完全に格納されていない、および/または更新がまだ完了していないことを第1のノード11に通知するために使用され得る。
ネットワークシステム1内の他のノード13、14はそれぞれ、ノード11のデータエントリA−11のコピーとして、それぞれデータエントリA−13およびA−14を含み得る。他のノード13、14もまた、ノード11、12と同じ同期を実行することができ、その結果、更新されたデータエントリA’−13およびA’−14の更新されたデータエントリバージョン識別子もまた、更新されたデータエントリA’−12として2に更新され得る。その後、第1のノード11は、データエントリID100を有するデータエントリのデータエントリバージョン識別子が、データエントリバージョン識別子2よりも古いものとして示される第2のノード12および他のノード13、14からデータパケットを受信し得ない。
第1のノード11は、そのデータ記憶部内のデータエントリA’−11のデータエントリID100およびデータエントリバージョン識別子2を含む第2の同期データパケットを送信し得る。第2の同期データパケットのサイズは、第1の同期データパケットのサイズよりも小さくても良い。
すなわち、ネットワークシステム内の全てのノード12、13、14が更新されたデータエントリA’−11に同期された後、ノード11が任意のデータペイロードを含む第1の同期データパケットを送信し続ける必要はない。第1のノード11は、更新されたデータエントリA’−11のデータエントリID100およびデータエントリバージョン識別子2のみを含む、または更新されたデータエントリA’−11のデータエントリID100、データエントリバージョン識別子2、データペイロードのごく一部を含む、より小さなサイズのデータパケットの送信を開始し得る。
複数の現在のノード11、12、13、14を含むネットワークシステム1に新しいノードを設置する必要がある場合、新しいノードは、古いデータエントリバージョン識別子、例えば「0」、を有するデータエントリを含むように構成し得る。従って、新しいノードは、「新しい」データエントリを有するノードにより引き起こされる同期により、他の既存のノード11、12、13、14に自動的に同期され得る。従って、ネットワークシステム内の新しいノードの設置を容易にし得る。
ノード11を再構成する必要がある場合、ノードは、人間の介入なしに、「新しい」データエントリを有するノードにより引き起こされる同期によって、他のノードに自動的に同期され得る。従って、既存のノードの再構成が容易になり得る。
図4a〜4cに開示されているデータ入力構造には、ノードがこのデータエントリを必要とするかどうかを示すために使用され得る追加のフィールドが含まれ得る。このようなフィールドに基づいて、ノードは、不要なデータエントリに関連する全てのデータパケットを無視することができる。
そのようなネットワークシステムは、フローコンフィギュレータ、すなわち、各ノードの機能を決定するために使用される装置をさらに含み得る。このような決定は、ユーザインタフェースからの入力に基づいて、または受信した構成計画に基づいて行い得る。フローコンフィギュレータは、ノードに関して上記と同じ方法で通信し得るが、そのペイロードはユーザインタフェースまたは構成プランを介して操作できる点が異なる。
従って、ノードの構成は、フローコンフィギュレータのデータエントリの一部また全てを更新することで達成され得る。従って、フローコンフィギュレータは、他のノードから古いデータエントリがあることを示すメッセージの受信を開始するとすぐに、更新されたデータエントリの送信を開始する。
さらに、ノードは、特定の機能を割り当てることにより導入され得、受信および格納する必要のあるデータを認識し、そのデータエントリは0または1などの非常に低いデータエントリバージョン表示値にリセットされ得、これにより、既存のネットワークシステムに導入され、第1のハートビートデータパケットの送信を開始すると、他のノードは古いデータバージョンのノードがあることを認識し、そして同期データパケットの送信を開始して、新しいノードがデータエントリを更新できるようにする。
Claims (21)
- 各データエントリが、データエントリID、データエントリバージョン識別子、およびノードまたは他のノードの動作情報を表すデータペイロードを含む、複数のデータエントリを格納するように構成されたデータ記憶部(101)と、
処理部(102)と、
前記他のノードと通信する第1のインタフェース(103)と、を含み、
前記ノードは、
前記データ記憶部内のデータエントリのデータエントリIDおよびデータエントリバージョン識別子を含む第1のハートビートデータパケットを、前記第1のインタフェース(103)を介して、他のノードに送信し、
前記第1のインタフェース(103)を介して、前記他のノードにより送信された第2のハートビートデータパケットを受信し、前記第2のハートビートデータパケットは、前記他のノードのデータエントリのデータエントリIDおよびデータエントリバージョン識別子を含み、
前記第2のハートビ―トデータパケットの受信したデータエントリバージョン識別子を、前記第2のハートビートデータパケットと同じデータエントリIDを有する前記データ記憶部内の対応するデータエントリのデータエントリバージョン識別子と比較するように構成され、
前記ノードは、その記憶部に格納されたデータエントリが前記他のノードの対応するデータエントリよりも新しいと判断した場合、前記ノードは、データ記憶部内の対応するデータエントリのデータエントリID、データエントリバージョン識別子、およびデータペイロードの少なくとも一部を含む第1の同期データパケットを前記他のノードに送信するように構成され、
前記第1の同期データパケットのサイズは、前記第1のハートビートデータパケットのサイズより大きい、
データ通信ネットワークのノード(11、12、13、14)。 - 前記ノード(11、12、13、14)は、さらに、前記他のノードのデータ記憶部内の第2のデータエントリの、第2のデータエントリID、第2のデータエントリバージョン識別子、および第2のデータペイロードの少なくとも一部、を含む第2の同期データパケットを受信するように構成され、
前記第2の同期データパケットのサイズは、前記第2のハートビートデータパケットのサイズよりも大きく、
前記第2の同期データパケットの前記第2のデータエントリバージョン識別子が、前記データ記憶部内の対応するデータエントリのデータエントリバージョン識別子よりも新しいと示されている場合、前記第2のデータペイロードの一部と前記第2の同期データパケットの前記第2のデータエントリバージョン識別子に応じて、前記ノード(11、12、13、14)は、前記データ記憶部内の前記対応するデータエントリの前記データペイロードおよび前記データエントリバージョン識別子を更新するように構成される、
請求項1に記載のノード(11、12、13、14)。 - 前記ノード(11、12、13、14)は、そのデータペイロードの変更および/またはそのデータバージョン識別子の変更に基づいて、その記憶部に格納された前記データエントリが、前記他のノードの前記対応するデータエントリよりも新しいと決定するように構成される請求項1又は2に記載のノード(11、12、13、14)。
- 前記ノード(11、12、13、14)は、前記第2のハートビートデータパケットの前記データエントリバージョン識別子が、前記データ記憶部内の前記対応するデータエントリの前記データエントリバージョン識別子よりも古いと示されることに基づいて、その記憶部に格納された前記データエントリが、前記他のノードの前記対応するデータエントリよりも新しいと決定するように構成される請求項1又は2に記載のノード(11、12、13、14)。
- 前記ノード(11、12、13、14)は、前記第1の同期データパケットが前記データペイロードの一部を含み、前記一部がデータペイロードのサブセットであるように構成され、
前記第1の同期データパケットは、前記データエントリのための総データペイロードサイズの表示および/またはデータペイロード部分順序表示をさらに含む、
請求項1〜4いずれか一項に記載のノード(11、12、13、14)。 - 前記ノードは、データエントリIDまたはデータエントリIDの範囲など、所定の基準を満たすデータエントリに対してのみ前記第1のハートビートデータパケットを送信するように構成される、請求項1〜5いずれか一項に記載のノード(11、12、13、14)。
- 前記ノードは、前記第2のハートビートデータパケットの前記データエントリIDが、データエントリIDまたはデータエントリIDの範囲など、所定の基準を満たしている場合にのみ、前記第2のハートビートデータパケットを受信するように構成される、請求項1〜6いずれか一項に記載のノード(11、12、13、14)。
- 外部ユニット(15、16)と通信する第2のインタフェース(104)をさらに備える、請求項1〜7いずれか一項に記載のノード(11、12、13、14)。
- 前記ノード(11、12、13、14)は、
前記データ記憶部内のデータエントリのデータペイロードを更新するために、前記第2のインタフェース(104)を介して前記外部ユニット(15、16)から第1の信号を受信するように、および/または
前記外部ユニット(15、16)を制御するために、前記第2のインタフェース(104)を介して前記外部ユニット(15、16)に第2の信号を提供するように、
さらに構成される請求項8に記載のノード(11、12、13、14)。 - 前記第1の信号が受信されると、前記ノードは、
前記第1の信号に従って、前記データ記憶部内の前記データエントリの前記データペイロードを更新し、
更新されたデータエントリの前記データエントリバージョン識別子を更新して、より新しいバージョンを示す、
ように構成される請求項9に記載のノード(11、12、13、14)。 - 前記データエントリバージョン識別子は、カウンタまたはタイムスタンプを含む、請求項1〜10いずれか一項に記載のノード(11、12、13、14)。
- 前記動作情報は、ノード構成などの動作モード、および/またはセンサ状態又はエラー状態などの動作状態を含む、請求項1〜11いずれか一項に記載のノード(11、12、13、14)。
- 前記ノードは、前記ノードと前記他のノードとは異なる少なくとも1つのノードに、前記第1のハートビートデータパケットを送信するように構成される、
請求項1〜12いずれか一項に記載のノード(11、12、13、14)。
- 前記ノードは、
前記第1のインタフェースを介して、前記少なくとも1つのノードにより送信されたハートビートデータパケットを受信し、前記ハートビートデータパケットは、前記少なくとも1つのノードのデータエントリのデータエントリIDおよびデータエントリバージョン識別子を含み、
前記ハートビ―トデータパケットの受信したデータエントリバージョン識別子を、前記ハートビートデータパケットと同じデータエントリIDを有する前記データ記憶部内の対応するデータエントリのデータエントリバージョン識別子と比較するように構成され、
前記ノードは、その記憶部に格納された前記データエントリが前記少なくとも1つのノードの前記対応するデータエントリよりも新しいと判断した場合、前記ノードは、前記データ記憶部内の前記対応するデータエントリの前記データエントリID、前記データエントリバージョン識別子、および前記データペイロードの少なくとも一部を含む同期データパケットを前記少なくとも1つのノードに送信するように構成され、
前記同期データパケットのサイズは、前記第1のハートビートデータパケットのサイズより大きい、
請求項13いずれか一項に記載のノード(11、12、13、14)。 - 前記データペイロードはさらに、前記ノードおよび前記他のノードとは異なる少なくとも1つのノードの動作情報を表す、
請求項1〜14いずれか一項に記載のノード(11、12、13、14)。 - 第1および第2のノード(11、12、13、14)を含むネットワークシステム(1)であって、
前記第1のノードは、
各第1のデータエントリが、データエントリID、データエントリバージョン識別子、および前記第1のノードまたは前記第2のノードの動作情報を表すデータペイロードを含む、複数の第1のデータエントリを格納するように構成された第1のデータ記憶部と、
第1の処理部と、
前記第2のノードと通信する第1のインタフェースと、を含み、
前記第2のノードは、
各第2のデータエントリが、データエントリID、データエントリバージョン識別子、および前記第1のノードまたは前記第2のノードの動作情報を表すデータペイロードを含む、複数の第2のデータエントリを格納するように構成された第2のデータ記憶部と、
第2の処理部と、
前記第1のノードと通信する第2のインタフェースと、を含み、
前記第1のノードは、
前記第1のデータ記憶部内の第1のデータエントリのデータエントリIDおよびデータエントリバージョン識別子を含む第1のハートビートデータパケットを、前記第1のインタフェースを介して、前記第2のノードに送信し、
前記第1のインタフェースを介して、前記第2のノードにより送信された第2のハートビートデータパケットを受信し、前記第2のデータパケットは、前記第2のノードの第2データエントリのデータエントリIDおよびデータエントリバージョン識別子を含み、
前記第2のハートビ―トデータパケットの受信したデータエントリバージョン識別子を、前記第2のデータパケットと同じデータエントリIDを有する前記データ記憶部内の対応するデータエントリのデータエントリバージョン識別子と比較するように構成され、
前記第1のノードは、その記憶部に格納された前記データエントリが前記第2のノードの前記対応するデータエントリよりも新しいと判断した場合、前記第1のノードは、
前記データ記憶部内の前記対応する第1のデータエントリの前記データエントリID、前記データエントリバージョン識別子、および前記データペイロードの少なくとも一部を含む第1の同期データパケットを前記第2のノードに送信するよう構成され、
前記第1の同期データパケットのサイズは、前記第1のハートビートデータパケットのサイズより大きく、
前記第2のノードは、
前記第2のノードの前記第2のデータエントリのデータエントリIDおよびデータエントリバージョン識別子を含む前記第2のハートビートデータパケットを送信し、
前記第1のデータ記憶部内の前記対応する第1のデータエントリの前記データエントリID、前記データエントリバージョン識別子、および前記データペイロードの少なくとも一部を含む第1の同期データパケットを受信し、
前記第1の同期データパケットの受信したデータエントリバージョン識別子を、前記第2のデータ記憶部内の前記第2のデータエントリのデータエントリバージョン識別子と比較するよう構成され、
前記第1の同期データパケットの前記データエントリバージョン識別子が、前記第2のデータ記憶部内の前記第2のデータエントリの前記第2のデータエントリバージョン識別子よりも新しいと示される場合、および前記第1の同期データパケットが、前記第2のデータ記憶部の前記第2のデータエントリと同じデータエントリIDに関連付けられたデータペイロードの一部を含む場合、前記第2のノードは、
前記第1の同期データパケットの前記データペイロードの一部および前記データエントリバージョン識別子に従って、前記第2のデータ記憶部内の前記第2のデータエントリの前記データペイロードおよび前記データエントリバージョン識別子を更新する、ように構成される、ネットワークシステム。 - ネットワークシステム(1)の複数のノード(11、12、13、14)間のデータ同期の方法であって、
各ノード(11、12、13、14)は、
各データエントリが、データエントリID、データエントリバージョン識別子、およびノードまたは他のノードの動作情報を表すデータペイロードを含む、複数のデータエントリを格納するように構成されたデータ記憶部(101)と、
処理部(102)と、
前記他のノードと通信する第1のインタフェース(103)と、を含み、
前記方法は、各ノードにおいて、
前記データ記憶部内のデータエントリのデータエントリIDおよびデータエントリバージョン識別子を含む第1のハートビートデータパケットを、前記第1のインタフェースを介して、他のノードに送信し(s1)、
前記第1のインタフェースを介して、前記他のノードにより送信された第2のハートビートデータパケットを受信し、前記第2のデータパケットは、前記他のノードのデータエントリのデータエントリIDおよびデータエントリバージョン識別子を含み(s2)、
前記第2のハートビ―トデータパケットの受信したデータエントリバージョン識別子を、前記第2のハートビートデータパケットと同じデータエントリIDを有する前記データ記憶部内の対応するデータエントリのデータエントリバージョン識別子と比較する(s3)、ことを含み、
前記ノードは、その記憶部に格納された前記データエントリが前記他のノードの前記対応するデータエントリよりも新しいと判断した場合、前記方法は、
前記データ記憶部内の前記対応するデータエントリの前記データエントリID、前記データエントリバージョン識別子、および前記データペイロードの少なくとも一部を含む第1の同期データパケットを前記他のノードに送信し(s4)、
前記第1の同期データパケットのサイズは、前記第1のハートビートデータパケットのサイズより大きい、方法。
- 前記他のノードのデータ記憶部内の第2のデータエントリの、第2のデータエントリID、第2のデータエントリバージョン識別子、および第2のデータペイロードの少なくとも一部、を含む第2の同期データパケットを受信し、
前記第2の同期データパケットのサイズは、前記第2のデータパケットのサイズよりも大きく、
前記第2の同期データパケットの前記第2のデータエントリバージョン識別子が、前記データ記憶部内の対応するデータエントリのデータエントリバージョン識別子よりも新しいと示されている場合、前記方法は、前記第2のデータペイロードの一部と前記第2の同期データパケットの前記第2のデータエントリバージョン識別子に応じて、前記データ記憶部(101)内の前記対応するデータエントリの前記データペイロードおよび前記データエントリバージョン識別子を更新する、
請求項17に記載の方法。 - 前記第1のハートビートデータパケットを、前記ノードおよび前記他のノードとは異なる少なくとも1つのノードに送信する、ことをさらに含む、
請求項17又は18に記載の方法。 - 前記第1のインタフェースを介して、前記少なくとも1つのノードにより送信されたハートビートデータパケットを受信し、前記ハートビートデータパケットは、前記少なくとも1つのノードのデータエントリのデータエントリIDおよびデータエントリバージョン識別子を含み、
前記ハートビートデータパケットの受信したデータエントリバージョン識別子を、前記ハートビートデータパケットと同じデータエントリIDを有する前記データ記憶部内の対応するデータエントリのデータエントリバージョン識別子と比較する、ことをさらに含み、
前記ノードは、その記憶部に格納された前記データエントリが前記少なくとも1つのノードの前記対応するデータエントリよりも新しいと判断した場合、前記方法は、
前記データ記憶部内の前記対応するデータエントリの前記データエントリID、前記データエントリバージョン識別子、および前記データペイロードの少なくとも一部を含む同期データパケットを前記少なくとも1つのノードに送信し、
前記同期データパケットのサイズは、前記第1のハートビートデータパケットのサイズより大きい、
請求項19に記載の方法。 - 前記データペイロードは、前記ノードおよび前記他のノードとは異なる少なくとも1つのノードの動作情報をさらに表す、請求項17〜20いずれか一項に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SE1850333-4 | 2018-03-26 | ||
SE1850333A SE1850333A1 (en) | 2018-03-26 | 2018-03-26 | Node, network system and method of data synchronisation |
PCT/EP2019/057301 WO2019185488A1 (en) | 2018-03-26 | 2019-03-22 | Node, network system and method of data synchronisation |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021519539A true JP2021519539A (ja) | 2021-08-10 |
Family
ID=65904451
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020552010A Pending JP2021519539A (ja) | 2018-03-26 | 2019-03-22 | ノード、ネットワークシステム、およびデータ同期方法 |
Country Status (8)
Country | Link |
---|---|
US (1) | US20210109910A1 (ja) |
EP (1) | EP3777037A1 (ja) |
JP (1) | JP2021519539A (ja) |
CN (1) | CN111919419A (ja) |
CA (1) | CA3095223A1 (ja) |
MX (1) | MX2020010125A (ja) |
SE (1) | SE1850333A1 (ja) |
WO (1) | WO2019185488A1 (ja) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1798322B (zh) * | 2004-12-20 | 2010-09-08 | 松下电器产业株式会社 | 数据传输系统及方法 |
US11290524B2 (en) * | 2014-08-13 | 2022-03-29 | Microsoft Technology Licensing, Llc | Scalable fault resilient communications within distributed clusters |
-
2018
- 2018-03-26 SE SE1850333A patent/SE1850333A1/en not_active Application Discontinuation
-
2019
- 2019-03-22 EP EP19713019.8A patent/EP3777037A1/en not_active Withdrawn
- 2019-03-22 CN CN201980022818.4A patent/CN111919419A/zh active Pending
- 2019-03-22 JP JP2020552010A patent/JP2021519539A/ja active Pending
- 2019-03-22 CA CA3095223A patent/CA3095223A1/en not_active Abandoned
- 2019-03-22 MX MX2020010125A patent/MX2020010125A/es unknown
- 2019-03-22 US US17/041,107 patent/US20210109910A1/en not_active Abandoned
- 2019-03-22 WO PCT/EP2019/057301 patent/WO2019185488A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
SE1850333A1 (en) | 2019-09-27 |
EP3777037A1 (en) | 2021-02-17 |
WO2019185488A1 (en) | 2019-10-03 |
CN111919419A (zh) | 2020-11-10 |
CA3095223A1 (en) | 2019-10-03 |
MX2020010125A (es) | 2020-10-19 |
US20210109910A1 (en) | 2021-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10209693B2 (en) | Architecture for providing ubiquitous access to a home automation system | |
US10474116B2 (en) | Device synchronization and testing | |
KR102288521B1 (ko) | 블록체인 기반의 데이터 저장 장치 및 방법 | |
CN104935634B (zh) | 基于分布共享存储的移动设备数据共享方法 | |
US20160323461A1 (en) | Network device, control method, and storage medium | |
JP6261079B2 (ja) | ワークフロー管理装置、ワークフロー管理方法およびワークフロー管理プログラム | |
CN114079615B (zh) | 一种多集群环境下的应用同步方法、系统、介质和电子设备 | |
US20110167040A1 (en) | Method, apparatus and system for executing synchronization | |
KR102475744B1 (ko) | 제어장치 및 제어시스템 | |
CN112751693B (zh) | 分布式存储系统的数据处理方法、装置及电子设备 | |
JP2021519539A (ja) | ノード、ネットワークシステム、およびデータ同期方法 | |
CN109698974B (zh) | 一种显示进度的方法、装置、电子设备及介质 | |
JP2009245089A (ja) | 分散オブジェクト・プログラム及びレプリケーション処理方法 | |
JP6953641B2 (ja) | 運搬システムコントローラ、運搬システムおよびデータ同期方法 | |
CN110830591B (zh) | 一种信息同步方法、系统、电子设备及存储介质 | |
CN116171411A (zh) | 控制装置及程序 | |
RU2816181C1 (ru) | Способ и система для управления доступами к ресурсам программной среды в геонавигационных сервисах | |
JP5449471B2 (ja) | 共有データに対する更新処理の同期処理方法、データ共有システムおよびデータ共有プログラム | |
US6346944B1 (en) | Simulation display system | |
CN117033325B (zh) | 镜像文件的预热拉取方法及装置 | |
JP7153942B2 (ja) | 情報処理装置、方法、コンピュータプログラム、及び、記録媒体 | |
CN107770265A (zh) | 一种数据同步方法、数据同步装置及移动终端 | |
Piechnick et al. | Managing Distributed Context Models Requires Adaptivity too. | |
CN114297306A (zh) | 数据同步方法、装置、电子设备及存储介质 | |
CN115037595A (zh) | 网络恢复方法、装置、设备及存储介质 |