FR3146775A1 - Method and device for controlling a mesh communication network for the execution of tasks relating to stateless functions - Google Patents
Method and device for controlling a mesh communication network for the execution of tasks relating to stateless functions Download PDFInfo
- Publication number
- FR3146775A1 FR3146775A1 FR2302508A FR2302508A FR3146775A1 FR 3146775 A1 FR3146775 A1 FR 3146775A1 FR 2302508 A FR2302508 A FR 2302508A FR 2302508 A FR2302508 A FR 2302508A FR 3146775 A1 FR3146775 A1 FR 3146775A1
- Authority
- FR
- France
- Prior art keywords
- gateway
- communication network
- nodes
- mesh communication
- iot
- 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
- 238000004891 communication Methods 0.000 title claims abstract description 140
- 238000000034 method Methods 0.000 title claims abstract description 77
- 230000006870 function Effects 0.000 title claims abstract description 25
- 230000004044 response Effects 0.000 claims abstract description 50
- 230000015654 memory Effects 0.000 claims description 29
- 238000004364 calculation method Methods 0.000 claims description 17
- 230000001360 synchronised effect Effects 0.000 claims description 6
- 230000001960 triggered effect Effects 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 description 25
- 238000004590 computer program Methods 0.000 description 6
- 238000009826 distribution Methods 0.000 description 6
- 230000015572 biosynthetic process Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 230000001413 cellular effect Effects 0.000 description 4
- 230000007774 longterm Effects 0.000 description 4
- 241000897276 Termes Species 0.000 description 3
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 3
- 238000010295 mobile communication Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000005265 energy consumption Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 101000628592 Homo sapiens StAR-related lipid transfer protein 7, mitochondrial Proteins 0.000 description 1
- 208000006670 Multiple fractures Diseases 0.000 description 1
- 102100026760 StAR-related lipid transfer protein 7, mitochondrial Human genes 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 229940082150 encore Drugs 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000004377 microelectronic Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000010926 purge Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16Y—INFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
- G16Y40/00—IoT characterised by the purpose of the information processing
- G16Y40/30—Control
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16Y—INFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
- G16Y30/00—IoT infrastructure
-
- 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/04—Network management architectures or arrangements
- H04L41/044—Network management architectures or arrangements comprising hierarchical management structures
-
- 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/30—Decision processes by autonomous network management units using voting and bidding
-
- 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/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
La présente invention concerne un procédé et un dispositif de contrôle d’un réseau de communication maillé pour l’exécution de tâches relatives à des fonctions sans état, ledit réseau de communication maillé comprenant des nœuds appelés passerelle et des nœuds IoT. Le procédé regroupe (110) les nœuds IoT en unités de calcul, élit (120) une passerelle gestionnaire de ressources qui élit (130) un nœud orchestrateur de calcul par unité de calcul. Le procédé calcule (170) une réponse à une requête par un vote à la majorité basé sur des réponses intermédiaires collectées (160) par les nœuds IoT d’une unité de calcul. La réponse finale est alors transmise (180) par le nœud orchestrateur de calcul à la passerelle gestionnaire des ressources qui la transmet (190) à un utilisateur émetteur de la requête. Figure pour l’abrégé : Figure 2The present invention relates to a method and a device for controlling a mesh communication network for the execution of tasks relating to stateless functions, said mesh communication network comprising nodes called gateways and IoT nodes. The method groups (110) the IoT nodes into computing units, elects (120) a resource manager gateway which elects (130) a computing orchestrator node per computing unit. The method calculates (170) a response to a request by a majority vote based on intermediate responses collected (160) by the IoT nodes of a computing unit. The final response is then transmitted (180) by the computing orchestrator node to the resource manager gateway which transmits it (190) to a user sending the request. Figure for abstract: Figure 2
Description
La présente invention concerne l’exécution de tâches relatives à des fonctions sans état en périphérie d’un réseau de communication maillé comprenant des nœuds IoT. En particulier, la présente invention concerne le contrôle d’un tel réseau de communication maillé.The present invention relates to the execution of tasks relating to stateless functions at the edge of a mesh communication network comprising IoT nodes. In particular, the present invention relates to the control of such a mesh communication network.
Avec les nouvelles formes d'objets connectés, smartphones et ordinateurs, les applications mises en œuvre sur ces objets connectés ont progressivement accru leur demande de connectivité et de puissance de calcul. Cette augmentation des besoins en ressources des applications s'est accompagnée d'une augmentation constante des caractéristiques embarquées, de la consommation d'énergie et du prix des appareils.With the new forms of connected objects, smartphones and computers, the applications implemented on these connected objects have gradually increased their demand for connectivity and computing power. This increase in the resource requirements of applications has been accompanied by a constant increase in the embedded characteristics, energy consumption and price of the devices.
Dans le but de maintenir les appareils abordables pour le public et d’exécuter des tâches relatives, par exemple, à des fonctions sans état dans un environnement optimal en termes de ressources, le « cloud computing» (« calcul dans le nuage », en français) a étendu ses services en ajoutant des nœuds à la périphérie des réseaux de communication maillés : Ceux-ci sont communément appelés Fog (en anglais, « brouillard » en français) ou Edge (en anglais, « bordure » en français).In order to keep devices affordable for the public and to perform tasks related to, for example, stateless functions in a resource-optimized environment, cloud computing has extended its services by adding nodes at the edge of mesh communication networks: These are commonly called Fog or Edge.
Dans le « cloud computing», les nœuds périphériques supportent moins de ressources de calcul que les autres nœuds du « cloud ». Leur latence et leur charge réseau inférieures sont toutefois suffisantes pour répondre aux demandes des applications actuelles. Même si l'ajout de ressources en périphérie des réseaux de communication maillés résout les problèmes de demande de ressources actuelles, le « cloud computing» repose toujours sur des ressources informatiques qui devront évoluer dans le temps. Le développement du « cloud computing» est par conséquent fragile économiquement et écologiquement car il peut être fortement impacté par de futures pénuries en semi-conducteurs et/ou par des crises de ressources.In cloud computing, edge nodes support fewer computing resources than other nodes in the cloud. However, their lower latency and network load are sufficient to meet the demands of current applications. Although adding resources at the edge of mesh communication networks solves current resource demand issues, cloud computing still relies on computing resources that will need to evolve over time. The development of cloud computing is therefore economically and environmentally fragile because it may be heavily impacted by future semiconductor shortages and/or resource crises.
Pour améliorer les capacités de la couche périphérique du « cloud » sans déployer des quantités massives de ressources informatiques supplémentaires, il est nécessaire de tirer profit des ressources qui sont déjà déployées.To improve the capabilities of the edge layer of the cloud without deploying massive amounts of additional computing resources, it is necessary to leverage the resources that are already deployed.
Les appareils IoT (de l’anglais « Internet of Things », en français « l’Internet des objets ») sont une source majeure de ressources informatiques sous-utilisée. Leur nombre augmente de manière exponentielle permettant ainsi de suivre l’évolution des besoins du « cloud computing». Les nœuds IoT sont généralement caractérisés par leur manque de ressources embarquées (calcul, énergie et stockage), leur disponibilité intermittente et leurs défauts. Ces nœuds subissent généralement des interruptions de réseau et des plantages inattendus qui les laissent injoignables pendant de longues périodes. Ces nœuds IoT peuvent également rencontrer des fautes byzantines en raison de caractéristiques bas de gamme ou d'attaques malveillantes.IoT (Internet of Things) devices are a major source of underutilized computing resources. Their number is increasing exponentially to keep up with the evolving needs of cloud computing. IoT nodes are typically characterized by their lack of onboard resources (computation, energy, and storage), their intermittent availability, and their faults. These nodes typically experience network interruptions and unexpected crashes that leave them unreachable for long periods of time. These IoT nodes may also encounter Byzantine faults due to low-end features or malicious attacks.
Pour utiliser des nœuds IoT pour le « cloud computing», il est donc nécessaire de mettre en œuvre un procédé de contrôle des infrastructures des réseaux de communication maillés pour dépasser les défauts des nœuds IoT et ainsi assurer la sécurité et la disponibilité des calculs de tâches à la périphérie du « cloud ».To use IoT nodes for cloud computing, it is therefore necessary to implement a method of controlling the infrastructures of mesh communication networks to overcome the faults of the IoT nodes and thus ensure the security and availability of task calculations at the edge of the cloud.
Le réseau de communication maillé 1 correspond avantageusement à un réseau de type cellulaire, par exemple un réseau cellulaire de téléphonie mobile. Un tel réseau cellulaire est composé d’un ensemble de cellules, chaque cellule correspondant à une zone de couverture géographique d’une antenne de communication (aussi appelée station de base) permettant d’établir des communications radio entre utilisateurs (aussi appelés clients ou usagers, chaque utilisateur étant porteur d’un dispositif de communication mobile) et/ou entre les utilisateurs et le réseau de communication maillé 1. La taille d’une cellule varie et est par exemple comprise entre 1 km et quelques dizaines de kilomètres (par exemple 20 ou 30 kms).The mesh communication network 1 advantageously corresponds to a cellular type network, for example a mobile telephone cellular network. Such a cellular network is composed of a set of cells, each cell corresponding to a geographic coverage area of a communication antenna (also called a base station) making it possible to establish radio communications between users (also called clients or users, each user carrying a mobile communication device) and/or between the users and the mesh communication network 1. The size of a cell varies and is for example between 1 km and a few tens of kilometers (for example 20 or 30 km).
Un utilisateur correspond par exemple à une personne physique portant un dispositif de communication mobile de type téléphone intelligent (de l’anglais « smartphone ») ou une tablette. Selon une variante, un utilisateur correspond à un véhicule embarquant un dispositif de communication de type calculateur, par exemple une unité de contrôle télématique, dite TCU (de l’anglais « Telematic Control Unit »), ou un dispositif de communication mobile de type téléphone intelligent embarqué dans le véhicule et connecté à ce dernier via une liaison filaire (par exemple de type USB (de l’anglais « Universal Serial Bus » ou en français « Bus série universel »)) ou sans fil (par exemple de type Bluetooth® ou Wifi®).A user corresponds, for example, to a natural person carrying a mobile communication device such as a smartphone or a tablet. According to a variant, a user corresponds to a vehicle carrying a computer-type communication device, for example a telematic control unit, known as a TCU (Telematic Control Unit), or a mobile communication device such as a smartphone embedded in the vehicle and connected to the latter via a wired connection (for example of the USB type (Universal Serial Bus)) or wireless connection (for example of the Bluetooth® or Wifi® type).
Le réseau de communication maillé 1 met en œuvre par exemple des communications selon la technologie LTE (de l’anglais « Long-Term Evolution » ou en français « Evolution à long terme »), LTE-Avanced (de l’anglais « Long-Term Evolution - Advanced » ou en français « Evolution à long terme avancée »), C-V2X (de l’anglais « Cellular - Vehicle to Everything » ou en français « Cellulaire – Véhicule vers tout ») qui s’appuie sur la 4G et bientôt la 5G, basées sur LTE.The mesh communication network 1 implements, for example, communications according to LTE technology (from the English "Long-Term Evolution" or in French "Evolution à long terme"), LTE-Avanced (from the English "Long-Term Evolution - Advanced" or in French "Evolution à long terme supérieure"), C-V2X (from the English "Cellular - Vehicle to Everything" or in French "Cellulaire - Véhicule vers tout") which is based on 4G and soon 5G, based on LTE.
Le réseau de communication maillé 1 est destiné à exécuter des tâches relatives à des fonctions sans état. Ces tâches sont ordonnées par utilisateur au travers de requêtes émises via le réseau de communication maillé 1. L’utilisateur reçoit alors des réponses à ses requêtes via le réseau de communication maillé 1.Mesh communication network 1 is intended to perform tasks related to stateless functions. These tasks are ordered by user through requests issued via mesh communication network 1. The user then receives responses to his requests via mesh communication network 1.
La topologie du réseau de communication maillé 1 comprend des nœuds appelés passerelle pour indiquer que ces nœuds correspondent à des passerelles (serveurs) du réseau de communication maillé 1, et des nœuds IoT pour indiquer que ces nœuds correspondent à des appareils IoT.The topology of the mesh communication network 1 includes nodes called gateways to indicate that these nodes correspond to gateways (servers) of the mesh communication network 1, and IoT nodes to indicate that these nodes correspond to IoT devices.
Selon l’exemple de la
Les passerelles P1 à P6 gèrent un grand ensemble de nœuds IoT. Elles sont considérablement moins nombreuses que les nœuds IoT mais plus ingénieuses et plus disponibles que les nœuds IoT. Leur disponibilité est presque complète. Cependant, même si cela peut se produire beaucoup moins souvent que pour les nœuds IoT, les passerelles peuvent subir des coupures de réseau, des plantages inattendus ou des attaques malveillantes. Ces attaques ont un impact plus important dans le cas du réseau de communication maillé 1 car elles refusent alors généralement le service de la passerelle et des appareils IoT dans son sous-réseau.Gateways P1 to P6 manage a large set of IoT nodes. They are considerably fewer in number than IoT nodes but more resourceful and more available than IoT nodes. Their availability is almost complete. However, even though it may happen much less often than for IoT nodes, gateways can experience network outages, unexpected crashes, or malicious attacks. These attacks have a greater impact in the case of mesh communication network 1 because they then generally deny service to the gateway and the IoT devices in its subnet.
Ainsi, il est impératif de prévoir un procédé de contrôle du réseau de communication maillé 1 qui gère les défauts des nœuds IoT et des passerelles de manière à assurer une continuité de l’exécution des tâches relatives à des fonctions sans état dans le « cloud ».Thus, it is imperative to provide a method for controlling the mesh communication network 1 which manages the faults of the IoT nodes and gateways in order to ensure continuity of the execution of tasks relating to stateless functions in the “cloud”.
La définition d’un tel procédé passe par la définition d’un modèle consensuel pour contrôler le réseau de communication maillé 1.Defining such a process involves defining a consensus model to control the mesh communication network 1.
Un tel modèle consensuel doit (i) garantir la sécurité du système dans les deux défauts byzantins et non byzantins qui incluent le partitionnement du réseau, les retards, l'impossibilité de joindre un nœud et la perte de paquets, (ii) maintenir la disponibilité du service dès qu’au moins une passerelle et trois nœuds IoT sont disponibles, (iii) ne pas dépendre du moment pour synchroniser la topologie et l'exécution des tâches et mettre en œuvre un mécanisme communication intermédiaire asynchrone et (iv) être complété dès qu'une majorité est atteinte et pouvoir compenser la perte de performances causée par des nœuds plus lents.Such a consensus model must (i) guarantee the security of the system under both Byzantine and non-Byzantine faults which include network partitioning, delays, node inability to reach a node and packet loss, (ii) maintain service availability as soon as at least one gateway and three IoT nodes are available, (iii) be independent of timing to synchronize the topology and task execution and implement an asynchronous intermediate communication mechanism and (iv) be completed as soon as a majority is reached and be able to compensate for the performance loss caused by slower nodes.
Les modèles de consensus (algorithmes de consensus) sont nés de la nécessité d'apporter des solutions non triviales pour parvenir à un accord entre plusieurs machines de la manière la plus efficace et la plus fiable possible et renforcer la tolérance aux pannes des systèmes. Ces algorithmes, grâce à l'utilisation de plusieurs processus et mécanismes, garantissent une valeur de sortie unique entre un ensemble de valeurs possibles proposées par différentes machines (nœuds) sur un ensemble de machines (« cluster » en anglais).Consensus models (consensus algorithms) were born from the need to provide non-trivial solutions to reach an agreement between multiple machines in the most efficient and reliable way possible and to strengthen the fault tolerance of systems. These algorithms, through the use of multiple processes and mechanisms, guarantee a unique output value between a set of possible values proposed by different machines (nodes) on a set of machines ("cluster" in English).
Paxos (A.Yousefpour. 2019. All one needs to know about fog computing and related edge computing paradigms: A complete survey. In J. of Syst. Architecture. Elsevier., D.Ongaro. 2014. In search of an understandable consensus algorithm. In 2014 USENIX Annual Technical Conference) est l’un de ces modèles de consensus. Paxos fonctionne en permettant à un groupe de nœuds de parvenir à un accord sur une valeur, en synchronisant ces valeurs et en les rendant apprenables pour tous les nœuds d’un groupe de nœuds. Pour ce faire, Paxos classe les nœuds en trois rôles (proposeur, accepteur et apprenant) ; il est possible qu'un nœud joue plus d'un rôle en même temps. Pour simplifier le comptage des votes et éviter la désynchronisation entre les nœuds lors de la réponse à différentes requêtes simultanées, ce modèle met en œuvre un processus en deux phases : (1) une phase de promesse et, une fois que la majorité des nœuds sont parvenus à un accord sur une valeur, (2) une phase de validation, au cours de laquelle le proposant détermine la réponse finale à une requête et propage le résultat à tous les nœuds du groupe de nœuds pour s'assurer que tout le réseau de communication maillé est synchronisé.Paxos (A. Yousefpour. 2019. All one needs to know about fog computing and related edge computing paradigms: A complete survey. In J. of Syst. Architecture. Elsevier., D. Ongaro. 2014. In search of an understandable consensus algorithm. In 2014 USENIX Annual Technical Conference) is one such consensus model. Paxos works by allowing a group of nodes to reach agreement on a value, synchronizing these values, and making them learnable for all nodes in a group of nodes. To do this, Paxos classifies nodes into three roles (proposer, acceptor, and learner); it is possible for a node to play more than one role at the same time. To simplify vote counting and avoid desynchronization between nodes when responding to different simultaneous requests, this model implements a two-phase process: (1) a promise phase and, once the majority of nodes have reached agreement on a value, (2) a validation phase, during which the proposer determines the final answer to a request and propagates the result to all nodes in the node group to ensure that the entire mesh communication network is synchronized.
Paxos a été largement critiqué en raison de son applicabilité complexe aux systèmes distribués réels en raison de l'hétérogénéité du système et des contraintes de nœud de groupe. De multiples propositions ont tenté d'améliorer cette adaptabilité et de réduire la complexité de Paxos. Cependant, ce propositions sont encore trop complexes pour les systèmes utilisant des nœuds IoT.Paxos has been widely criticized due to its complex applicability to real-world distributed systems due to system heterogeneity and cluster node constraints. Multiple proposals have attempted to improve this adaptability and reduce the complexity of Paxos. However, these proposals are still too complex for systems using IoT nodes.
Ayant pour objectifs d'atteindre des niveaux de performances élevées et de faciliter la compréhension et la mise en œuvre du modèle de consensus, ainsi que l'adaptabilité aux systèmes distribués réels, Raft (L.Lamport. 2019. Time, clocks, and the ordering of events in a distributed system.In Concurrency: the Works of Leslie Lamport) est alors apparu comme une alternative à Paxos pour la gestion de journaux (« log » en anglais) répliqués à travers tous les nœuds d’un groupe de nœuds. Même si Raft se concentre sur le stockage de réplication de données plutôt que sur l'exécution de tâches, la manière de parvenir à des accords sur la synchronisation et l'intégrité des données stockées repose sur les mêmes principes que Paxos.With the goals of achieving high performance levels and facilitating the understanding and implementation of the consensus model, as well as adaptability to real distributed systems, Raft (L. Lamport. 2019. Time, clocks, and the ordering of events in a distributed system. In Concurrency: the Works of Leslie Lamport) then emerged as an alternative to Paxos for managing logs replicated across all nodes in a node group. Although Raft focuses on storing data replication rather than executing tasks, the way of reaching agreements on the synchronization and integrity of stored data is based on the same principles as Paxos.
Pour simplifier la répartition des tâches (c'est-à-dire la coordination du système ou la maintenance de la topologie du réseau de communication maillé), Raft propose trois rôles exclusifs et différents des nœuds : (a) « meneur » (« leader » en anglais), le nœud est alors chargé de coordonner toutes les actions et demandes de gestion du système et de garantir la cohérence et l'organisation, (b) « suiveur » (« follower » en anglais), le nœud écoute alors passivement et suit les ordres du meneur, et (c) « candidat » (« candidate » en anglais), le nœud intervient alors pendant un processus d'élection du meneur. En plus de cette centralisation du pouvoir par le meneur, et du moyen de résoudre les incohérences dans la synchronisation des tables de journaux (« log » en anglais), Raft se base sur des horloges logiques de Lamport (L.Lamport. 2019. Time, clocks, and the ordering of events in a distributed system.In Concurrency: the Works of Leslie Lamport.) en ajoutant un nombre de comptage (appelé « terme » (« term » en anglais) dans Raft) qui permet la détection des informations obsolètes et la restauration de la table de journaux (« log » en anglais) des nœuds. Cependant, malgré les simplifications et optimisations apportées par Raft, la complexité et le coût du processus de vote sur lequel repose ce modèle rend difficile son applicabilité aux réseaux de communication maillé comprenant des nœuds IoT qui sont hautement mobiles et défaillants.To simplify the distribution of tasks (i.e., system coordination or maintenance of the mesh communication network topology), Raft proposes three exclusive and different roles of nodes: (a) "leader", the node is then responsible for coordinating all system management actions and requests and ensuring consistency and organization, (b) "follower", the node then passively listens and follows the leader's orders, and (c) "candidate", the node then intervenes during a leader election process. In addition to this centralization of power by the leader, and the means to resolve inconsistencies in the synchronization of log tables, Raft relies on Lamport logical clocks (L. Lamport. 2019. Time, clocks, and the ordering of events in a distributed system. In Concurrency: the Works of Leslie Lamport.) by adding a counting number (called a “term” in Raft) that allows the detection of obsolete information and the restoration of the nodes’ log table. However, despite the simplifications and optimizations provided by Raft, the complexity and cost of the voting process on which this model is based makes its applicability difficult to mesh communication networks comprising IoT nodes that are highly mobile and faulty.
Pirogue (A.Munir et al. 2017. IFCIoT: Integrated Fog Cloud IoT: A novel architectural paradigm for the future Internet of Things. In IEEE Consumer Electronics Magazine) se présente comme une variante de Raft. Pirogue se concentre sur la réduction élevée de son empreinte énergétique tout en conservant une performance similaire à celle de Raft. Dans Pirogue, le processus de vote statique classique est remplacé par un processus de vote linéaire dynamique (S. Jajodia et al. 1990. Dynamic voting algorithms for maintaining the consistency of a replicated database. In ACM Transactions on Database Systems.). Ce changement remplace la majorité de quorum statique classique par un quorum dynamique, nécessitant moins de nœuds pour obtenir une majorité en cas de déconnexion d’une passerelle (serveur). Pirogue propose un nouveau rôle des nœuds : témoin (« witness » en anglais), le nœud est alors capable de participer au quorum de consensus en cas de besoin. Ce rôle est mis en œuvre par des appareils à faible consommation n'ayant pas la capacité de stocker l'ensemble des données du système, ce qui réduit l'empreinte énergétique du groupe de nœuds.Pirogue (A. Munir et al. 2017. IFCIoT: Integrated Fog Cloud IoT: A novel architectural paradigm for the future Internet of Things. In IEEE Consumer Electronics Magazine) is presented as a variant of Raft. Pirogue focuses on the high reduction of its energy footprint while maintaining a performance similar to that of Raft. In Pirogue, the classic static voting process is replaced by a dynamic linear voting process (S. Jajodia et al. 1990. Dynamic voting algorithms for maintaining the consistency of a replicated database. In ACM Transactions on Database Systems.). This change replaces the classic static quorum majority with a dynamic quorum, requiring fewer nodes to obtain a majority in the event of a gateway (server) disconnection. Pirogue proposes a new role for nodes: witness, the node is then able to participate in the consensus quorum if needed. This role is implemented by low-power devices that do not have the capacity to store all of the system's data, which reduces the energy footprint of the node group.
Ces optimisations permettent à Pirogue d'atteindre des performances, une disponibilité et une tolérance aux pannes proches de celles d'un groupe à cinq nœuds modélisés par Raft avec des configurations à faible empreinte énergétique telles que des groupes à quatre nœuds ou trois nœuds et un témoin.These optimizations enable Pirogue to achieve performance, availability, and fault tolerance close to those of a five-node cluster modeled by Raft with low-energy footprint configurations such as four-node clusters or three nodes and a witness.
Les modèles de consensus actuels ne peuvent pas fonctionner sur des topologies de réseau de communication maillé 1 comprenant des nœuds IoT hétérogènes du type de celles décrites en relation avec la
En effet, les nœuds IoT et les passerelles sont très hétérogènes entre eux en termes de ressources qui dépendent non seulement de leurs caractéristiques matérielles qui peuvent être soit haut de gamme, soit bas de gamme, mais aussi du rapport cyclique et logiciel de ces nœuds et passerelles, puisque le but recherché est d’utiliser les ressources de réserve des nœuds IoT et des passerelles sans interrompre leurs fonctions d'origine.Indeed, IoT nodes and gateways are very heterogeneous among themselves in terms of resources that depend not only on their hardware characteristics that can be either high-end or low-end, but also on the duty cycle and software of these nodes and gateways, since the aim is to use the reserve resources of the IoT nodes and gateways without interrupting their original functions.
Par ailleurs, les nœuds IoT sont fortement restreints en ressources. Même si les passerelles sont beaucoup moins restreintes en ressources, elles représentent néanmoins une petite partie de l'ensemble des nœuds du réseau de communication maillé 1. D'autre part, les appareils IoT se caractérisent, pour la plupart d'entre eux, par leur manque de ressources matérielles (de calcul et de stockage) et leurs contraintes de batterie, puisqu'ils sont généralement alimentés par des batteries. Les modèles de consensus actuels sont généralement déployés sur des nœuds de serveur (passerelles) capables de stocker une copie complète des journaux (« log » en anglais) des nœuds du réseau de communication, ce qui n'est pas le cas pour les nœuds IoT.Furthermore, IoT nodes are highly resource-constrained. Although gateways are much less resource-constrained, they still represent a small fraction of the total mesh communication network nodes 1 . On the other hand, IoT devices are characterized, for the most part, by their lack of hardware resources (computation and storage) and their battery constraints, since they are usually powered by batteries. Current consensus models are usually deployed on server nodes (gateways) that are able to store a full copy of the logs of the communication network nodes, which is not the case for IoT nodes.
De plus, les nœuds IoT ont une disponibilité intermittente. Malgré les capacités de connectivité élevées des passerelles, les nœuds IoT subissent souvent des coupures de réseau et des plantages inattendus. Leur disponibilité est donc peu fiable, imprévisible et généralement intermittente.Additionally, IoT nodes have intermittent availability. Despite the high connectivity capabilities of gateways, IoT nodes often experience network outages and unexpected crashes. Their availability is therefore unreliable, unpredictable, and usually intermittent.
De plus, les modèles de consensus reposent sur un grand nombre de messages de coordination et de synchronisation transmis sur une dorsale entièrement connectée, mais compte tenu de la taille des topologies de réseau de communication maillé comprenant des nœuds IoT, plusieurs dorsales sont présentes nécessitant que les messages passent par plusieurs nœuds intermédiaires avant d’atteindre leur destination. Ainsi, la réduction du nombre de messages est nécessaire pour améliorer les performances d’un modèle de consensus.Moreover, consensus models rely on a large number of coordination and synchronization messages transmitted over a fully connected backbone, but given the size of mesh communication network topologies comprising IoT nodes, multiple backbones are present requiring messages to pass through multiple intermediate nodes before reaching their destination. Thus, reducing the number of messages is necessary to improve the performance of a consensus model.
De plus, les nœuds IoT sont des nœuds hautement mobiles, à la fois physiquement et d'un point de vue réseau. Cela complique le maintien d’une synchronisation complète des tables de journaux (« log » en anglais) comme cela est requis par les modèles de consensus actuels.Additionally, IoT nodes are highly mobile nodes, both physically and from a network perspective. This makes it difficult to maintain complete synchronization of log tables as required by current consensus models.
Il est donc nécessaire de définir un modèle de consensus qui puisse être déployé sur une réseau de communication maillé 1 comprenant des passerelles et des nœuds IoT qui répondent aux différentes limitations des modèles de consensus actuels exposées ci-dessus.It is therefore necessary to define a consensus model that can be deployed on a mesh communication network 1 comprising gateways and IoT nodes that address the various limitations of current consensus models outlined above.
Résumé de la présente inventionSummary of the present invention
Un objet de la présente invention est de résoudre au moins l’un des problèmes de l’arrière-plan technologique décrit précédemment.An object of the present invention is to solve at least one of the problems of the technological background described above.
Un objet de la présente invention est une plate-forme de service informatique collaborative ciblant l'exécution de fonctions sans état et utilisant des nœuds IoT ayant une disponibilité faible à moyenne d’une infrastructure d’un réseau de communication déjà déployée.An object of the present invention is a collaborative computing service platform targeting the execution of stateless functions and using IoT nodes having low to medium availability of an already deployed communication network infrastructure.
La présente invention repose sur un modèle de consensus original qui peut s'apparenter aux modèles de consensus de l’état de la technique tels que Raft ou Pirogue. Mais le modèle de consensus de la présente invention étend ces modèles de consensus classiques en ajoutant :
- des rôles et une classification des nœuds : Le modèle de consensus divise les nœuds en deux couches en fonction de leurs capacités énergétiques et de calcul : une première couche, qui contient peu les passerelles susceptibles d’être gestionnaire des ressources du réseau de communication maillé, et une deuxième couche, qui contient de nombreux nœuds IoT. De plus, les nœuds IoT sont regroupés dynamiquement en sous-réseau, encore appelé unité de calcul UC, en fonction de leur degré de disponibilité et des leurs capacités de calcul, pour optimiser l’exécution des tâches relatives à des requêtes utilisateur. Ainsi, PCM opère sur un ensemble hétérogène de couches.
- un contrôle du réseau de communication maillé à deux niveaux : au niveau d’une passerelle alors gestionnaire des ressources qui est élue dynamiquement et au niveau de chaque sous-réseau en élisant un nœud orchestrateur de calcul OC pour chaque sous-réseau.
- des possibilité de mise à jour dynamique des sous-réseaux et de l’élection de nœud OC pour répondre à un environnement IoT mobile hautement dynamique qui entraîne la modification de chacun des sous-réseaux.
- roles and classification of nodes: The consensus model divides the nodes into two layers according to their energy and computing capacities: a first layer, which contains few gateways likely to be managers of the resources of the mesh communication network, and a second layer, which contains many IoT nodes. In addition, the IoT nodes are dynamically grouped into subnets, also called computing units UC, according to their degree of availability and their computing capacities, to optimize the execution of tasks relating to user requests. Thus, PCM operates on a heterogeneous set of layers.
- a two-level mesh communication network control: at the level of a gateway then resource manager which is dynamically elected and at the level of each subnet by electing a calculation orchestrator node OC for each subnet.
- dynamic subnet update capabilities and OC node election to meet a highly dynamic mobile IoT environment that causes each of the subnets to change.
Ce modèle de consensus a pour objectif de compenser les limitations des nœuds IoT (c'est-à-dire une forte hétérogénéité, des ressources restreintes, une disponibilité intermittente, une forte dynamique et un manque de connexion directe entre les nœuds au sein de la plateforme) pour garantir la tolérance aux pannes, la synchronisation des informations dans le réseau de communication maillé et la coordination de l’exécution des tâches.This consensus model aims to compensate for the limitations of IoT nodes (i.e., high heterogeneity, limited resources, intermittent availability, high dynamics, and lack of direct connection between nodes within the platform) to ensure fault tolerance, information synchronization in the mesh communication network, and coordination of task execution.
La présente invention permet l’exécution de tâches par une infrastructure d’un réseau de communication maillé faiblement connecté en optimisant l'élection d’une passerelle gestionnaire des ressources qui réduit le nombre total de messages échangés.The present invention enables the execution of tasks by a weakly connected mesh communication network infrastructure by optimizing the election of a resource management gateway which reduces the total number of messages exchanged.
Le contrôle à deux niveaux et le regroupement des nœuds de leur degré de disponibilité et de leur capacité de calcul permettent de compenser leurs erreurs et d'améliorer les performances globales de l’exécution de tâches par le réseau de communication maillé.Two-level control and clustering of nodes in terms of their availability and computing capacity helps to compensate for their errors and improve the overall performance of task execution by the mesh communication network.
La présente invention limite la consommation énergétique pour l’exécution de tâches en périphérie du « cloud » car elle utilise les ressources d’appareils IoT au lieu des nœuds classiques en périphérie du « cloud ».The present invention limits the energy consumption for executing tasks at the edge of the cloud because it uses the resources of IoT devices instead of traditional nodes at the edge of the cloud.
La présente invention centralise la gestion des ressources d’un nombre important de nœuds IoT sans pour autant augmenter considérablement les messages échangés ni ralentir les performances du réseau de communication maillé.The present invention centralizes the management of resources of a large number of IoT nodes without significantly increasing the messages exchanged or slowing down the performance of the mesh communication network.
Etant donné que la présente invention améliore la tolérance aux pannes et la coordination des tâches, elle participe à réduire les ressources embarquées nécessaires aux véhicules, réduisant ainsi le prix du architectures embarquées de ces véhicules.Since the present invention improves fault tolerance and task coordination, it helps reduce the on-board resources required by vehicles, thereby reducing the price of the on-board architectures of these vehicles.
La présente invention offre de nombreuses possibilités pour le développement de futures applications résilientes Vehicle-to-Anything (V2X) qui pourraient être commercialisées.The present invention offers many possibilities for the development of future resilient Vehicle-to-Anything (V2X) applications that could be commercialized.
Selon un premier aspect, la présente invention concerne un procédé de contrôle d’un réseau de communication maillé pour l’exécution de tâches relatives à des fonctions sans état, ledit réseau de communication maillé comprenant des nœuds appelés passerelle pour indiquer que ces nœuds correspondent à des passerelles du réseau de communication maillé et des nœuds appelés nœuds IoT pour indiquer que ces nœuds correspondent à des appareils connectés à internet, ledit procédé comprenant les étapes suivantes :
- obtention d’unités de calcul à partir des nœuds IoT, chaque unité de calcul comprend des nœuds IoT et est rattachée à une passerelle pour former un sous-réseau du réseau de communication maillé ;
- élection d’une passerelle gestionnaire de ressources parmi les passerelles du réseau de communication maillé, ladite passerelle gestionnaire de ressources minimisant un nombre de messages échangés dans le réseau de communication maillé pour l’exécution de tâches ;
- élection, par la passerelle gestionnaire de ressources, d’un nœud orchestrateur de calcul pour chaque unité de calcul, un nœud orchestrateur de calcul d’une unité de calcul étant élu parmi les nœuds de ladite unité de calcul en fonction de performances et de disponibilité des nœuds de ladite unité de calcul ;
- acceptation, par la passerelle gestionnaire de ressources, d’une requête d’exécution de tâches émise par un utilisateur ;
- assignation, par la passerelle gestionnaire de ressources, de ladite requête à des nœuds IoT d’une unité de calcul pour l’exécution de tâches de ladite requête par les nœuds IoT de ladite unité de calcul ;
- collecte, par un nœud orchestrateur de calcul de ladite unité de calcul, d’au moins une réponse intermédiaire à ladite requête, chaque réponse intermédiaire étant soit obtenue par le nœud orchestrateur de calcul soit émise par un nœud IoT de l’unité de calcul à destination du nœud orchestrateur de calcul suite à l’exécution de la tâche par ledit nœud IoT de l’unité de calcul ;
- obtention, par le nœud orchestrateur de calcul, d’une réponse finale à partir d’un vote à la majorité basé sur les réponses intermédiaires collectées ;
- transmission de la réponse finale par le nœud orchestrateur de calcul à destination de la passerelle gestionnaire de ressources ; et
- transmission de la réponse finale par la passerelle gestionnaire de ressources à destination de l’utilisateur.According to a first aspect, the present invention relates to a method for controlling a mesh communication network for the execution of tasks relating to stateless functions, said mesh communication network comprising nodes called gateway to indicate that these nodes correspond to gateways of the mesh communication network and nodes called IoT nodes to indicate that these nodes correspond to devices connected to the internet, said method comprising the following steps:
- obtaining computing units from IoT nodes, each computing unit comprises IoT nodes and is attached to a gateway to form a subnetwork of the mesh communication network;
- election of a resource manager gateway among the gateways of the mesh communication network, said resource manager gateway minimizing a number of messages exchanged in the mesh communication network for the execution of tasks;
- election, by the resource management gateway, of a computing orchestrator node for each computing unit, a computing orchestrator node of a computing unit being elected from among the nodes of said computing unit based on the performance and availability of the nodes of said computing unit;
- acceptance, by the resource management gateway, of a task execution request issued by a user;
- assignment, by the resource management gateway, of said request to IoT nodes of a computing unit for the execution of tasks of said request by the IoT nodes of said computing unit;
- collection, by a computing orchestrator node of said computing unit, of at least one intermediate response to said request, each intermediate response being either obtained by the computing orchestrator node or emitted by an IoT node of the computing unit to the computing orchestrator node following the execution of the task by said IoT node of the computing unit;
- obtaining, by the calculation orchestrator node, a final response from a majority vote based on the collected intermediate responses;
- transmission of the final response by the calculation orchestrator node to the resource management gateway; and
- transmission of the final response by the resource management gateway to the user.
Selon un exemple de réalisation particulier et non limitatif, si la passerelle gestionnaire de ressources ne reçoit pas de réponse finale relative à ladite requête avant qu’un délai se soit écoulé, ladite requête est assignée à une autre unité de calcul.According to a particular and non-limiting exemplary embodiment, if the resource management gateway does not receive a final response relating to said request before a delay has elapsed, said request is assigned to another computing unit.
Selon un exemple de réalisation particulier et non limitatif, le procédé comporte en outre une étape de vérification d’une présence de ladite requête dans une mémoire cache de la passerelle gestionnaire des ressources, et une étape d’envoi d’une réponse finale mémorisée dans la mémoire cache en relation avec ladite requête si ladite requête est mémorisée dans ladite mémoire cache.According to a particular and non-limiting exemplary embodiment, the method further comprises a step of verifying the presence of said request in a cache memory of the resource management gateway, and a step of sending a final response stored in the cache memory in relation to said request if said request is stored in said cache memory.
Selon un exemple de réalisation particulier et non limitatif, le contenu de la mémoire cache de la passerelle gestionnaire des ressources est synchronisé avec les contenus des mémoires cache des autres passerelles du réseau de communication maillé.According to a particular and non-limiting exemplary embodiment, the content of the cache memory of the resource management gateway is synchronized with the contents of the cache memories of the other gateways of the mesh communication network.
Selon un exemple de réalisation particulier et non limitatif, la passerelle gestionnaire des ressources diffuse périodiquement aux passerelles du réseau de communication maillé un message comprenant une première table formée d’une union de plusieurs deuxièmes tables, chaque deuxième table représentant une disponibilité et des caractéristiques des nœuds IoT d’un sous-réseau du réseau de communication maillé,si une passerelle ne reçoit aucun message pendant un délai d'expiration d’élection, ladite passerelle déclenche une nouvelle élection d’une passerelle gestionnaire de ressources.According to a particular and non-limiting exemplary embodiment, the resource management gateway periodically broadcasts to the gateways of the mesh communication network a message comprising a first table formed from a union of several second tables, each second table representing an availability and characteristics of the IoT nodes of a subnetwork of the mesh communication network , if a gateway receives no message during an election expiration period, said gateway triggers a new election of a resource management gateway.
Selon un exemple de réalisation particulier et non limitatif, une nouvelle élection d’une passerelle gestionnaire de ressources est déclenchée pour vérifier si une passerelle gestionnaire des ressources actuelle minimise le nombre de messages échangés dans le réseau de communication maillé pour l’exécution de tâches.According to a particular and non-limiting exemplary embodiment, a new election of a resource management gateway is triggered to check whether a current resource management gateway minimizes the number of messages exchanged in the mesh communication network for the execution of tasks.
Selon un exemple de réalisation particulier et non limitatif, une nouvelle élection d’une passerelle gestionnaire de ressources est déclenchée dès qu’une passerelle du réseau de communication maillé est déconnectée.According to a particular and non-limiting exemplary embodiment, a new election of a resource management gateway is triggered as soon as a gateway of the mesh communication network is disconnected.
Selon un exemple de réalisation particulier et non limitatif, le procédé comporte en outre une étape de mise à jour d’une topologie du réseau de communication maillé et de diffusion d’une topologie mise à jour à toutes les passerelles du réseau de communication maillé.According to a particular and non-limiting exemplary embodiment, the method further comprises a step of updating a topology of the mesh communication network and broadcasting an updated topology to all the gateways of the mesh communication network.
Selon un deuxième aspect, la présente invention concerne un dispositif de contrôle d’un réseau de communication maillé pour l’exécution de tâches relatives à des fonctions sans état, le dispositif comprenant une mémoire associée à un processeur configuré pour la mise en œuvre des étapes du procédé selon le premier aspect de la présente invention.According to a second aspect, the present invention relates to a device for controlling a mesh communication network for the execution of tasks relating to stateless functions, the device comprising a memory associated with a processor configured for the implementation of the steps of the method according to the first aspect of the present invention.
Selon un troisième aspect, la présente invention concerne un véhicule comprenant un dispositif selon le me aspect.According to a third aspect, the present invention relates to a vehicle comprising a device according to the third aspect.
Selon un quatrième aspect, la présente invention concerne un programme d’ordinateur qui comporte des instructions adaptées pour l’exécution des étapes du procédé selon le premier aspect de la présente invention, ceci notamment lorsque le programme d’ordinateur est exécuté par au moins un processeur.According to a fourth aspect, the present invention relates to a computer program which comprises instructions adapted for the execution of the steps of the method according to the first aspect of the present invention, in particular when the computer program is executed by at least one processor.
Un tel programme d’ordinateur peut utiliser n’importe quel langage de programmation, et être sous la forme d’un code source, d’un code objet, ou d’un code intermédiaire entre un code source et un code objet, tel que dans une forme partiellement compilée, ou dans n’importe quelle autre forme souhaitable.Such a computer program may use any programming language, and may be in the form of source code, object code, or intermediate code between source code and object code, such as in a partially compiled form, or in any other desirable form.
Selon un cinquième aspect, la présente invention concerne un support d’enregistrement lisible par un ordinateur sur lequel est enregistré un programme d’ordinateur comprenant des instructions pour l’exécution des étapes du procédé selon le premier aspect de la présente invention.According to a fifth aspect, the present invention relates to a computer-readable recording medium on which is recorded a computer program comprising instructions for carrying out the steps of the method according to the first aspect of the present invention.
D’une part, le support d’enregistrement peut être n'importe quel entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une mémoire ROM, un CD-ROM ou une mémoire ROM de type circuit microélectronique, ou encore un moyen d'enregistrement magnétique ou un disque dur.On the one hand, the recording medium may be any entity or device capable of storing the program. For example, the medium may include a storage medium, such as a ROM memory, a CD-ROM or a microelectronic circuit type ROM memory, or a magnetic recording medium or a hard disk.
D'autre part, ce support d’enregistrement peut également être un support transmissible tel qu'un signal électrique ou optique, un tel signal pouvant être acheminé via un câble électrique ou optique, par radio classique ou hertzienne ou par faisceau laser autodirigé ou par d'autres moyens. Le programme d’ordinateur selon la présente invention peut être en particulier téléchargé sur un réseau de type Internet.On the other hand, this recording medium may also be a transmissible medium such as an electrical or optical signal, such a signal being able to be conveyed via an electrical or optical cable, by conventional or hertzian radio or by self-directed laser beam or by other means. The computer program according to the present invention may in particular be downloaded from a network such as the Internet.
Alternativement, le support d'enregistrement peut être un circuit intégré dans lequel le programme d’ordinateur est incorporé, le circuit intégré étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé en question.Alternatively, the recording medium may be an integrated circuit in which the computer program is incorporated, the integrated circuit being adapted to perform or to be used in performing the method in question.
D’autres caractéristiques et avantages de la présente invention ressortiront de la description des exemples de réalisation particuliers et non limitatifs de la présente invention ci-après, en référence aux figures 1 à 8 annexées, sur lesquelles :Other characteristics and advantages of the present invention will emerge from the description of the particular and non-limiting exemplary embodiments of the present invention below, with reference to the appended figures 1 to 8, in which:
Description des exemples de réalisationDescription of examples of implementation
Des procédés et dispositifs vont maintenant être décrits dans ce qui va suivre en référence conjointement aux figures 1 à 8. Des mêmes éléments sont identifiés avec des mêmes signes de référence tout au long de la description qui va suivre.Methods and devices will now be described in the following with joint reference to Figures 1 to 8. Like elements are identified with like reference signs throughout the description which follows.
La présente invention concerne un procédé 10 de contrôle d’un réseau de communication maillé 1 pour l’exécution de tâches relatives à des fonctions sans état.The present invention relates to a method 10 for controlling a mesh communication network 1 for the execution of tasks relating to stateless functions.
La présente invention concerne également un procédé 20 de mise à jour de la topologie du réseau de communication maillé 1 pour orchestrer l'exécution tolérante aux pannes des tâches sur des nœuds IoT souvent défectueux ou indisponibles de ce réseau de communication maillé 1.The present invention also relates to a method 20 for updating the topology of the mesh communication network 1 to orchestrate the fault-tolerant execution of tasks on often faulty or unavailable IoT nodes of this mesh communication network 1.
La présente invention concerne également un procédé 30 de formation d’unités de calcul par regroupement de nœuds IoT.The present invention also relates to a method 30 of forming computing units by grouping IoT nodes.
Selon la présente invention, chaque passerelle du réseau de communication maillé 1 mémorise à jour trois tables : une table de topologie globale (GTT de l’anglais « Global Topology Table), une table de topologie des nœuds du sous-réseau rattaché à la passerelle (SFTT de l’anglais « Sub-network Follower Topology ») et une table de suivi des tâches (TTT de l’anglais Task Tracking Table).According to the present invention, each gateway of the mesh communication network 1 stores three tables up to date: a global topology table (GTT), a topology table of the nodes of the sub-network attached to the gateway (SFTT) and a task tracking table (TTT).
La table SFTT représente la disponibilité et les caractéristiques des nœuds IoT d’un sous-réseau du réseau de communication maillé 1 comprenant plusieurs nœuds IoT. Ce sous-réseau est rattaché à une passerelle. La table SFTT est mémorisée par chaque passerelle.The SFTT table represents the availability and characteristics of the IoT nodes of a subnetwork of the mesh communication network 1 comprising several IoT nodes. This subnetwork is attached to a gateway. The SFTT table is stored by each gateway.
La table GTT d’une passerelle est formée par l’union de tables SFTT de d’autres passerelles qui sont connues de ladite passerelle. Un index de table gtt_index est associé à chaque table GTT. Cet index de table est utilisé pour la synchronisation des tables GTT comme on le verra par la suite.The GTT table of a gateway is formed by the union of SFTT tables of other gateways that are known to said gateway. A table index gtt_index is associated with each GTT table. This table index is used for the synchronization of GTT tables as will be seen later.
La table TTT comprend les tâches à exécuter et leur état d’exécution. Un index de table ttt_index est associé à chaque table TTT. Cet index de table est utilisé pour la synchronisation des tables TTT comme on le verra par la suite.The TTT table contains the tasks to be executed and their execution status. A table index ttt_index is associated with each TTT table. This table index is used for synchronizing the TTT tables as we will see later.
Un nœud IoT est soit dans un état « suiveur » (« follower » en anglais) soit dans un état orchestrateur de calcul (OC, « Calculus Orchestrator » en anglais).An IoT node is either in a “follower” state or in a Calculus Orchestrator (OC) state.
Un nœud suiveur est un nœud IoT passif c’est-à-dire qu’il n'émet aucune demande par lui-même. Un nœud suiveur exécute les demandes d’exécution de tâches qui lui sont assignées et envoie une réponse intermédiaire à un nœud OC de l’unité de calcul à laquelle appartient ce nœud suiveur.A follower node is a passive IoT node, i.e. it does not issue any requests by itself. A follower node executes the task execution requests assigned to it and sends an intermediate response to an OC node of the computing unit to which this follower node belongs.
Un nœud orchestrateur de calcul, dit nœud OC, est un nœud IoT qui est élu pour chaque unité de calcul UC. Un nœud OC d’une unité de calcul UC exécute les demandes d’exécution de tâches qui lui sont assignées et obtient une réponse intermédiaire suite à l’exécution d’une tâche. Un nœud OC collecte également des réponses intermédiaires produites par des nœuds suiveurs de cette unité de calcul UC suite à l’exécution de cette tâche par les autres nœuds suiveurs de l’unité de calcul UC. Le nœud OC produit une réponse finale à partir d’un procédé de vote basé sur les réponses intermédiaires qu’il a obtenues comme on le verra par la suite.A compute orchestrator node, called an OC node, is an IoT node that is elected for each compute unit UC. An OC node of a compute unit UC executes the task execution requests assigned to it and obtains an intermediate response following the execution of a task. An OC node also collects intermediate responses produced by follower nodes of this compute unit UC following the execution of this task by the other follower nodes of the compute unit UC. The OC node produces a final response from a voting process based on the intermediate responses it has obtained as we will see later.
Une passerelle peut être soit dans un état de gestionnaire de ressources (RM de l’anglais « Ressources Manager »), soit dans une état « répartiteur » (en anglais « dispatcher »), soit dans une état candidat (en anglais « Candidate »).A gateway can be in either a Resource Manager (RM) state, a Dispatcher state, or a Candidate state.
Une passerelle RM est adaptée pour la mise en œuvre du procédé 20 de contrôle d’un réseau de communication maillé pour l’exécution de tâches relatives à des fonctions sans état. En particulier, une passerelle RM est adaptée pour gérer toutes les demandes des utilisateurs (si un utilisateur émet une requête vers une autre passerelle du réseau de communication maillé 1, cette requête est redirigée vers la passerelle RM). Elle est également adaptée pour assigner une tâche à exécuter à des nœuds suiveurs d’une unité de calcul UC, pour sélectionner dynamiquement les nœuds OC et pour retransmettre une réponse finale à un utilisateur émetteur d’une demande d’exécution de tâche.An RM gateway is suitable for implementing the method 20 for controlling a mesh communication network for executing tasks relating to stateless functions. In particular, an RM gateway is suitable for managing all user requests (if a user issues a request to another gateway of the mesh communication network 1, this request is redirected to the RM gateway). It is also suitable for assigning a task to be executed to follower nodes of a computing unit UC, for dynamically selecting the OC nodes and for retransmitting a final response to a user issuing a task execution request.
Une passerelle RM est également adaptée pour mettre en œuvre le procédé 20 de mise à jour de la topologie du réseau de communication maillé 1. En particulier, une passerelle RM est adaptée pour gérer la dynamique des nœuds IoT et de diffuser un état d’une topologie du réseau de communication maillé 1, tel qu’il est connu de la passerelle RM, à destination des autres passerelles du réseau de communication maillé 1. Une passerelle RM synchronise également entre elles les tables GTT et TTT mémorisées par les passerelles du réseau de communication maillé 1.An RM gateway is also suitable for implementing the method 20 for updating the topology of the mesh communication network 1. In particular, an RM gateway is suitable for managing the dynamics of the IoT nodes and for broadcasting a state of a topology of the mesh communication network 1, as known to the RM gateway, to the other gateways of the mesh communication network 1. An RM gateway also synchronizes with each other the GTT and TTT tables stored by the gateways of the mesh communication network 1.
La passerelle RM est également adaptée pour mettre en œuvre un procédé 30 de formation des unités de calcul UC par regroupement des nœuds IoT.The RM gateway is also suitable for implementing a method 30 of forming the computing units UC by grouping the IoT nodes.
Par exemple, la passerelle RM peut déterminer un groupe de nœuds IoT et ajouter de nouveaux nœuds IoT à ce groupe sans consulter d'autres passerelles, n'ayant à propager les informations concernant cet ajout qu'une fois la décision prise. En particulier, une passerelle RM est adaptée pour choisir de manière optimale un nœud OC pour chaque unité de calcul UC.For example, the RM gateway can determine a group of IoT nodes and add new IoT nodes to this group without consulting other gateways, having to propagate information about this addition only after the decision is made. In particular, an RM gateway is suitable for optimally choosing an OC node for each computing unit UC.
L’utilisation d’une passerelle RM centrale simplifie la gestion des table GTT, SFTT et TTT hautement dynamiques qui sont utilisées pour l’exécution des tâches.Using a central RM gateway simplifies the management of the highly dynamic GTT, SFTT and TTT tables that are used for task execution.
Même si des pannes des passerelles sont considérablement moins fréquentes que celles des nœuds IoT, une passerelle RM peut échouer ou se déconnecter du réseau de communication maillé 1, auquel cas une nouvelle passerelle RM est élue.Although gateway failures are considerably less frequent than IoT node failures, an RM gateway can fail or disconnect from the mesh communication network 1, in which case a new RM gateway is elected.
Un répartiteur répond aux requêtes d’une passerelle RM.A dispatcher responds to requests from an RM gateway.
Selon la présente invention, le temps est divisé en périodes de longueur variable appelées ères. Les ères sont numérotées avec un nombre entier consécutif.According to the present invention, time is divided into periods of variable length called eras. The eras are numbered with a consecutive integer.
Les différents répartiteurs peuvent observer des transitions entre des ères à des moments différents, et ils peuvent ne pas toujours être conscients qu'une ou plusieurs élections se sont produites alors qu'ils étaient hors réseau. Ainsi, les ères agissent comme des horloges logiques, permettant aux passerelles d'identifier les informations les plus récentes.Different dispatchers may observe transitions between eras at different times, and they may not always be aware that one or more elections occurred while they were off-grid. Thus, eras act as logical clocks, allowing gateways to identify the most recent information.
Les ères et les index de table (gtt_index et ttt_index) sont utilisés pour la synchronisation des tables GTT et TTT comme on le verra en détails par la suite.The eras and table indexes (gtt_index and ttt_index) are used for synchronizing the GTT and TTT tables as will be seen in detail later.
Une passerelle dans l’état candidat, en bref passerelle candidat, est utilisée pour élire une nouvelle passerelle RM. Lors de la conversion d’une passerelle en passerelle candidat, la passerelle incrémente son ère d’une unité, initialise à 0 ses index des tables GTT et TTT, déclenche le procédé d'élection d’une passerelle RM et réinitialise un chronomètre des élections (délai d’élection).A gateway in the candidate state, in short candidate gateway, is used to elect a new RM gateway. When converting a gateway to a candidate gateway, the gateway increments its era by one, initializes its indexes of the GTT and TTT tables to 0, triggers the election process of an RM gateway, and resets an election timer (election delay).
Compte tenu de la disponibilité et de la dynamique intermittentes des nœuds IoT, les nœuds du réseau de communication maillé 1 communiquent à l'aide d'appels de procédure à distance asynchrones (RPC de l’anglais Remote Procedure Call) via des dispositifs de messages asynchrones déployés sur les passerelles. Un dispositif de messages asynchrones déployé sur une passerelle permet de transmettre un message de la passerelle vers les nœuds IoT du sous-réseau rattaché à cette passerelle. Les messages sont alors livrés au maximum une fois aux destinataires afin d'améliorer les performances. Un message à destination d’un nœud IoT est toutefois réémis par une passerelle dans le cas où une erreur s’est produite lors de la connexion du nœud IoT avec la passerelle. Les messages sont conservés jusqu'à ce qu'ils soient consommés ou effacés. Les passerelles peuvent nettoyer les piles de messages des nœuds IoT pour effacer les messages anciens non consommés qui sont arrivés sur la passerelle alors que ces nœuds IoT destinataires n'étaient pas disponibles.Given the intermittent availability and dynamics of IoT nodes, nodes in the mesh communication network 1 communicate using asynchronous remote procedure calls (RPCs) via asynchronous message devices deployed on gateways. An asynchronous message device deployed on a gateway is used to transmit a message from the gateway to the IoT nodes in the subnet attached to this gateway. The messages are then delivered at most once to the recipients in order to improve performance. However, a message destined for an IoT node is retransmitted by a gateway in the event that an error has occurred during the connection of the IoT node with the gateway. The messages are retained until they are consumed or deleted. Gateways can clean the message stacks of IoT nodes to delete old unconsumed messages that arrived at the gateway while these recipient IoT nodes were not available.
Différents messages sont définis. Chaque message comprend un type, des identifiants d’un nœud émetteur et d’un nœud récepteur, une ère de l’information portée par ce message, un index de table et une partie utile (« payload » en anglais).Different messages are defined. Each message includes a type, identifiers of a sending node and a receiving node, an era of information carried by this message, a table index and a useful part ("payload" in English).
Selon un exemple de réalisation particulier et non limitatif, un message peut être de l’un des quatre types 1, 2 3 ou 4 suivants :According to a particular and non-limiting example of embodiment, a message can be of one of the following four types 1, 2, 3 or 4:
configuration d’un nœud IoT suiveur destinée à être connue par un répartiteur ;configuration of a follower IoT node intended to be known by a distributor;
table GTT destinée à être connue d’un destinataire ;GTT table intended to be known to a recipient;
table SFTT destinée à être connue d’un destinataire ; etSFTT table intended to be known to a recipient; and
table TTT destinée à être connue d’un destinataire.TTT table intended to be known to a recipient.
L’index de table d’un message peut être est égal à gtt_index pour les messages de type 1 à 3 et ttt_index pour les messages de type 4.The table index of a message can be equal to gtt_index for messages of type 1 to 3 and ttt_index for messages of type 4.
La partie utile du message dépend du type de message. Si type 1 alors la partie comprend un cycle de service suiveur (« duty-cyle » en anglais). Le cycle de service suiveur est défini en millisecondes par trois valeurs <Actif, Occupé, Endormi> avec l'addition de ces trois valeurs inférieure à 120s). Si type 2 alors la partie utile comprend une table GTT. Si type 3 alors la partie utile comprend la table SFTT. Si type 4 alors la partie utile comprend la table TTT.The useful part of the message depends on the message type. If type 1 then the part includes a follower duty cycle. The follower duty cycle is defined in milliseconds by three values <Active, Busy, Asleep> with the sum of these three values less than 120s). If type 2 then the useful part includes a GTT table. If type 3 then the useful part includes the SFTT table. If type 4 then the useful part includes the TTT table.
Lors de la réception par un récepteur d'un nouveau message de type 1, 2, 3 ou 4, si les informations du message reçu sont pertinentes, c’est-à-dire si l'ère de ce message est supérieure à l’ère actuelle du récepteur, le récepteur actualise son ère et met à jour ses informations locales. Les informations du message reçu peuvent aussi être pertinentes si l’ère de ce message est égale à l’ère actuelle du récepteur et si l’index de ce message est supérieur à un index de table du récepteur (gtt_index ou ttt_index). Dans ce cas, le récepteur met à jour ses informations locales c’est-à-dire qu’il actualise l’index de table concerné qui devient alors égal à l’index porté par le message reçu et met à jour la table correspondante en fonction de la partie utile de ce message reçu. Si les informations du message reçu sont pertinentes, un journal d’historique des mises à jour est mis à jour en ajoutant une entrée pour toute nouvelle information du message qui ne serait pas déjà présente dans le journal et en supprimant les entrées du journal qui ne correspondraient pas aux informations portées par le message reçu. Un journal d’historique des mises à jour est mis à jour en ajoutant une entrée pour toute nouvelle information du message qui ne serait pas déjà présente dans le journal et en supprimant les entrées du journal qui ne correspondraient pas aux informations portées par le message reçu.When a receiver receives a new message of type 1, 2, 3 or 4, if the information in the received message is relevant, i.e. if the era of this message is greater than the current era of the receiver, the receiver updates its era and updates its local information. The information in the received message may also be relevant if the era of this message is equal to the current era of the receiver and if the index of this message is greater than a table index of the receiver (gtt_index or ttt_index). In this case, the receiver updates its local information, i.e. it updates the relevant table index which then becomes equal to the index carried by the received message and updates the corresponding table according to the useful part of this received message. If the information in the received message is relevant, an update history log is updated by adding an entry for any new information in the message that is not already present in the log and by deleting entries from the log that do not match the information carried by the received message. An update history log is updated by adding an entry for any new information in the message that is not already present in the log and by deleting entries from the log that do not match the information carried by the received message.
Si une entrée existante du journal est en conflit avec une nouvelle entrée, l'entrée existante et tout ce qui le suit sont supprimés.If an existing log entry conflicts with a new entry, the existing entry and everything after it are deleted.
Si les informations du message reçues sont obsolètes, c’est-à-dire si l’ère de ce message est inférieure à l’ère actuelle du récepteur ou si l’ère de ce message est égale à l’ère actuelle du récepteur et si l’index de ce message est inférieur à un index de table du récepteur alors le message est ignoré et le récepteur émet sa table GTT (message de type 2) et sa table TTT (message de type 4) à l’émetteur du message reçu.If the information of the received message is obsolete, that is, if the era of this message is less than the current era of the receiver or if the era of this message is equal to the current era of the receiver and if the index of this message is less than a table index of the receiver, then the message is ignored and the receiver sends its GTT table (message type 2) and its TTT table (message type 4) to the sender of the received message.
Dans une étape 110, des unités de calcul UC sont obtenues, chaque unité de calcul UC comprenant des nœuds IoT du réseau de communication maillé 1. Chaque unité de calcul UC est rattachée à une passerelle du réseau de communication maillé 1 et forme un sous-réseau du réseau de communication maillé.In a step 110, computing units UC are obtained, each computing unit UC comprising IoT nodes of the mesh communication network 1. Each computing unit UC is attached to a gateway of the mesh communication network 1 and forms a subnetwork of the mesh communication network.
Dans une étape 120, une passerelle est élue passerelle RM parmi les passerelles du réseau de communication maillé 1, ladite passerelle RM minimisant un nombre de messages échangés dans le réseau de communication maillé pour l’exécution de tâches.In a step 120, a gateway is elected as an RM gateway among the gateways of the mesh communication network 1, said RM gateway minimizing a number of messages exchanged in the mesh communication network for the execution of tasks.
Dans une étape 130, un nœud OC est élu par la passerelle RM pour chaque unité de calcul UC, un nœud OC d’une unité de calcul étant élu parmi les nœuds de ladite unité de calcul en fonction de performances et de disponibilité des nœuds de ladite unité de calcul.In a step 130, an OC node is elected by the RM gateway for each computing unit UC, an OC node of a computing unit being elected among the nodes of said computing unit according to the performance and availability of the nodes of said computing unit.
Dans une étape 140, la passerelle RM accepte une requête d’exécution de tâches émise par un utilisateur.In a step 140, the RM gateway accepts a task execution request issued by a user.
Chaque requête (appelée « Function Execution Request » (FER) en anglais, « Requête d’Exécution de Fonction » en français) contient une fonction sans état à exécuter par les nœuds IoT d’une unité de calcul UC. Une requête FER est composée de scripts de fonction à exécuter et de bibliothèques nécessaires à l’exécution de ces scripts.Each request (called a Function Execution Request (FER)) contains a stateless function to be executed by the IoT nodes of a computing unit UC. A FER request is composed of function scripts to be executed and libraries needed to execute these scripts.
Dans une étape 150, la passerelle RM assigne la requête à des nœuds d’une unité de calcul UC pour l’exécution des tâches de cette requête par les nœuds de cette unité de calcul UC.In a step 150, the RM gateway assigns the request to nodes of a computing unit UC for the execution of the tasks of this request by the nodes of this computing unit UC.
Dans une étape 160, le nœud OC de ladite unité de calcul UC collecte au moins une réponse intermédiaire, chaque réponse intermédiaire étant soit obtenue par le nœud OC soit émise par un nœud suiveur de l’unité de calcul à destination du nœud OC suite à l’exécution de la tâche par ledit nœud suiveur de l’unité de calcul UC.In a step 160, the OC node of said computing unit UC collects at least one intermediate response, each intermediate response being either obtained by the OC node or emitted by a follower node of the computing unit to the OC node following the execution of the task by said follower node of the computing unit UC.
Dans une étape 170, le nœud OC détermine une réponse finale à partir d’un vote à la majorité basé sur des réponses intermédiaires collectées.In a step 170, the OC node determines a final response from a majority vote based on collected intermediate responses.
Dans une étape 180, le nœud OC transmet la réponse finale à destination de la passerelle RM.In a step 180, the OC node transmits the final response to the RM gateway.
Dans une étape 190, la passerelle RM transmet la réponse finale à destination de l’utilisateur.In a step 190, the RM gateway transmits the final response to the user.
Selon une variante du procédé, dans une étape 135, la topologie du réseau de communications maillé 1 est mise à jour et diffusée à toutes les passerelles du réseau de communication maillé 1.According to a variant of the method, in a step 135, the topology of the mesh communications network 1 is updated and broadcast to all the gateways of the mesh communications network 1.
Selon une variante, si la passerelle RM ne reçoit pas de réponse finale relative à une requête avant qu’un délai se soit écoulé, la tâche est assignée à une autre unité de calcul UC.Alternatively, if the RM gateway does not receive a final response to a request before a timeout has elapsed, the task is assigned to another CPU.
Selon une variante, dans une étape 145, la passerelle RM vérifie la présence de chaque requête reçue par la passerelle RM dans sa mémoire cache locale.According to a variant, in a step 145, the RM gateway checks the presence of each request received by the RM gateway in its local cache memory.
Si la requête a déjà été demandée et correspond à l'une des requêtes stockées dans une mémoire cache, dans une étape 146, la passerelle RM envoie la réponse finale mémorisée à l’utilisateur et rafraîchit la mémoire cache.If the query has already been requested and matches one of the queries stored in a cache, in a step 146, the RM gateway sends the final stored response to the user and refreshes the cache.
Si aucune entrée de la mémoire cache ne correspond à la requête, la passerelle RM ajoute la requête dans sa table TTT de la passerelle en tant que nouvelle entrée, incrémente l'index de table TTT et émet un message asynchrone porteur de la requête à destination des nœuds d’une unité de calcul assignée à l’exécution de la requête.If no cache entry matches the query, the RM Gateway adds the query to its Gateway TTT table as a new entry, increments the TTT table index, and emits an asynchronous message carrying the query to the nodes of a compute unit assigned to execute the query.
Cette variante donne la priorité aux unités de calcul formées des nœuds les moins défectueux à un moment donné.This variant prioritizes computing units formed by the least faulty nodes at a given time.
Lorsque le nœud OC de l’unité de calcul UC sélectionnée répond la réponse finale relative à une requête, la passerelle RM mémorise la réponse finale dans l'entrée de sa table TTT locale relative à la requête, envoie la réponse finale à l’utilisateur et synchronise sa table TTT avec celle des répartiteurs du réseau de communication maillé 1.When the OC node of the selected UC computing unit responds with the final response to a query, the RM gateway stores the final response in its local TTT table entry for the query, sends the final response to the user, and synchronizes its TTT table with that of the dispatchers in the mesh communication network 1.
Selon l’exemple de la
Supposons que f11 correspond à une requête référencée f2 mémorisée dans la mémoire cache référencée FIFO de la passerelle RM. La passerelle RM envoie alors à l’utilisateur Cl1 la réponse finale Rf2 mémorisée dans la mémoire cache FIFO en relation avec f2. L’ère et l’index de table TTT de la passerelle RM restent inchangés. Sur la
Supposons maintenant que f11 ne corresponde pas à une entrée de la mémoire cache FIFO. La passerelle RM enregistre alors la nouvelle requête f11 dans la mémoire cache et incrémente de une unité l’index de table TTT ttt_index qui passe à 2.Now suppose that f11 does not match a FIFO cache entry. The RM gateway then stores the new query f11 in the cache and increments the TTT table index ttt_index by one to 2.
La passerelle RM sélectionne également une unité de calcul UC formée, selon l’exemple de la
Le nœud OC exécute la requête f11 et obtient une réponse intermédiaire référencéea.The OC node executes the query f11 and obtains an intermediate response referenced a .
Le nœud F1 exécute la requête f11 et fournit une réponse intermédiairecau nœud OC.Node F1 executes query f11 and provides an intermediate response c to node OC.
Le nœud F2 exécute la requête f11 et fournit une réponse intermédiaireaau nœud OC.Node F2 executes query f11 and provides an intermediate response a to node OC.
Le nœud OC obtient donc une majorité de vote et considère la réponse intermédiaireacomme étant la réponse finale (étape 170). Le nœud OC émet alors la réponse finaleaà la passerelle RM (étape 180) qui la mémorise dans la mémoire FIFO en relation avec la nouvelle entrée correspondante à la requête f11. La passerelle RM émet alors la réponse finaleaà destination de l’utilisateur CL1 (étape 190).The OC node therefore obtains a majority of votes and considers the intermediate response a as being the final response (step 170). The OC node then sends the final response a to the RM gateway (step 180) which stores it in the FIFO memory in relation to the new entry corresponding to the request f11. The RM gateway then sends the final response a to the user CL1 (step 190).
On peut noter que la mémoire cache peut suivre le principe d’une pile FIFO (First In First Out » en anglais, premier entré premier sorti en français). Dans ce cas, lorsque le nombre maximal d’entrées de la mémoire cache est atteint, toute nouvelle entrée implique la suppression d’une entrée mémorisée dans la mémoire cache. C’est ce qui est illustrée sur la
Selon un exemple de réalisation particulier et non limitatif, le contenu de la mémoire cache de la passerelle RM est synchronisée avec les contenus des mémoires cache des autres passerelles au même titre que les tables GTT c’est-à-dire que chaque fois qu’une nouvelle entrée est ajoutée ou supprimée à la mémoire cache d’une passerelle RM, l’index de la mémoire cache est incrémenté d’une unité et des messages asynchrones sont diffusés pour synchroniser les mémoires cache des autres répartiteurs du réseau de communication maillé 1 avec la mémoire cache de la passerelle RM.According to a particular and non-limiting exemplary embodiment, the content of the cache memory of the RM gateway is synchronized with the contents of the cache memories of the other gateways in the same way as the GTT tables, that is to say that each time a new entry is added or deleted to the cache memory of an RM gateway, the index of the cache memory is incremented by one unit and asynchronous messages are broadcast to synchronize the cache memories of the other distributors of the mesh communication network 1 with the cache memory of the RM gateway.
Selon un exemple de réalisation particulier et non limitatif, le déclenchement d’une élection d’une passerelle RM (étape 120) est basé sur un mécanisme de pulsation (« heartbeat » en anglais) défini comme suit.According to a particular and non-limiting exemplary embodiment, the triggering of an election of an RM gateway (step 120) is based on a heartbeat mechanism defined as follows.
Lorsqu'une passerelle démarre, elle se positionne dans l’état de répartiteur et diffuse un message de type 2 informant les autres passerelles du réseau de communication maillé 1 du contenu de sa table GTT (des tables SFTT qu’elle connaît). La passerelle reste dans cet état répartiteur tant qu'elle ne reçoit pas un message lui indiquant qu’une passerelle RM est valide ou un message lui indiquant qu’elle doit basculer dans un état candidat.When a gateway starts, it positions itself in the dispatcher state and broadcasts a type 2 message informing the other gateways of the mesh communication network 1 of the contents of its GTT table (the SFTT tables that it knows). The gateway remains in this dispatcher state until it receives a message indicating that an RM gateway is valid or a message indicating that it must switch to a candidate state.
Selon un exemple de réalisation particulier et non limitatif, une passerelle RM diffuse périodiquement un message de type 2 comprenant sa table GTT aux passerelles du réseau de communication maillé 1 afin de maintenir son autorité et de garder les tables de toutes les passerelles synchronisées. Cependant, si un répartiteur ne reçoit aucun message pendant un délai dit d'expiration d’élection, ce répartiteur suppose qu'aucune passerelle RM ni processus d'élection n'est en cours et déclenche une nouvelle élection pour choisir une nouvelle passerelle RM (étape 120).According to a particular and non-limiting exemplary embodiment, an RM gateway periodically broadcasts a type 2 message comprising its GTT table to the gateways of the mesh communication network 1 in order to maintain its authority and to keep the tables of all the gateways synchronized. However, if a distributor does not receive any message during a so-called election expiration period, this distributor assumes that no RM gateway or election process is in progress and triggers a new election to choose a new RM gateway (step 120).
Selon un mode de réalisation particulier et non limitatif, une nouvelle élection est déclenchée dès la déconnexion d’une passerelle du réseau de communication maillé 1.According to a particular and non-limiting embodiment, a new election is triggered as soon as a gateway is disconnected from the mesh communication network 1.
Selon un exemple de réalisation particulier et non limitatif, une nouvelle élection est déclenchée pour vérifier si une passerelle RM actuelle minimise le nombre de messages échangés dans le réseau de communication maillé pour l’exécution de tâches. Dans ce cas, la passerelle RM déclenche une nouvelle élection d’une passerelle RM (étape 120) en se considérant comme répartiteur. Si la passerelle RM n’est plus la passerelle candidate issue d’une élection, la passerelle RM augmente l'ère et détermine son successeur, en propageant son choix à la fois à la nouvelle passerelle candidate et au reste des répartiteurs du réseau de communication maillé 1. Ce mécanisme de succession permet d'accélérer l’élection d’une nouvelle passerelle RM (étape 120) et de s’assurer au fil du temps de l’optimalité d’une passerelle RM courante.According to a particular and non-limiting exemplary embodiment, a new election is triggered to verify whether a current RM gateway minimizes the number of messages exchanged in the mesh communication network for the execution of tasks. In this case, the RM gateway triggers a new election of an RM gateway (step 120) by considering itself as a distributor. If the RM gateway is no longer the candidate gateway resulting from an election, the RM gateway increases the era and determines its successor, by propagating its choice both to the new candidate gateway and to the rest of the distributors of the mesh communication network 1. This succession mechanism makes it possible to accelerate the election of a new RM gateway (step 120) and to ensure over time the optimality of a current RM gateway.
Il peut aussi se produite le cas où un répartiteur reçoive un message d'une autre passerelle, RM ou répartiteur à tout moment avec une ère ou un index de table plus élevé que son ère (ou avec la même ère ou index de table provenant d'une passerelle RM différente) tout en ayant déjà considéré une passerelle RM active . Ce cas peut probablement être dû à un comportement malveillant ou à une segmentation du réseau de communication maillé 1.It may also occur that a dispatcher receives a message from another gateway, RM or dispatcher at any time with a higher era or table index than its era (or with the same era or table index from a different RM gateway) while having already considered an active RM gateway. This case can probably be due to malicious behavior or segmentation of the mesh communication network 1.
Dans ce cas, selon un mode de réalisation particulier et non limitatif, le répartiteur alerte la passerelle RM active, qui fusionne sa table GTT avec la table GTT de l'autre passerelle RM, déclenche à nouveau le processus d’élection pour amener à une élection d’une unique passerelle RM.In this case, according to a particular and non-limiting embodiment, the distributor alerts the active RM gateway, which merges its GTT table with the GTT table of the other RM gateway, triggers the election process again to lead to an election of a single RM gateway.
Selon un exemple de réalisation particulier et non limitatif, si une passerelle RM ou candidate est "obsolète", cette passerelle est supposée avoir temporairement perdu la connexion réseau. Cette passerelle se synchronise avec l’ère et les indexes de table de la passerelle RM et déclenche une nouvelle élection de passerelle RM (étape 120), revenant à l'état de répartiteur. Ce même mécanisme fonctionne dans le sens inverse lors de la réception d'un numéro d'ère ancienne d'un autre répartiteur.According to a particular and non-limiting exemplary embodiment, if an RM or candidate gateway is "obsolete", this gateway is assumed to have temporarily lost network connectivity. This gateway synchronizes with the era and table indexes of the RM gateway and triggers a new RM gateway election (step 120), returning to the dispatcher state. This same mechanism works in the opposite direction when receiving an old era number from another dispatcher.
Selon un exemple de réalisation particulier et non limitatif, si un délai d'expiration d’élection de la passerelle RM s'écoule sans recevoir aucune requête émise par la passerelle RM, un répartiteur incrémente de une unité son ère et lance une nouvelle élection d’une nouvelle passerelle RM.According to a particular and non-limiting example embodiment, if an election expiration time of the RM gateway elapses without receiving any request sent by the RM gateway, a distributor increments its era by one unit and launches a new election of a new RM gateway.
Si une passerelle candidate reçoit un message d'un nœud prétendant être une passerelle RM pour la même ère ou une ère supérieure, la passerelle candidate bascule à l'état de répartiteur.If a candidate gateway receives a message from a node claiming to be an RM gateway for the same or higher era, the candidate gateway switches to the dispatcher state.
Selon un exemple de réalisation particulier et non limitatif, si le délai d’élection s'écoule sans majorité de répartiteurs, les passerelles candidates fusionnent leurs tables GTT, augmente l'ère et déclenche une nouvelle élection de passerelle RM (étape 120).According to a particular and non-limiting exemplary embodiment, if the election period elapses without a majority of distributors, the candidate gateways merge their GTT tables, increase the era and trigger a new RM gateway election (step 120).
Selon un exemple de réalisation particulier et non limitatif, l’élection d’une passerelle RM est mis en œuvre par un procédé 40 d’élection déterministe d’une passerelle RM basé sur une liste de tous les répartiteurs du réseau de communication maillé 1 (
Dans une étape 410, un répartiteur incrémente son ère de une unité.In a step 410, a distributor increments its era by one unit.
Dans une étape 420, une passerelle candidate est déterminée parmi les répartiteurs de la liste de répartiteurs.In a step 420, a candidate gateway is determined among the distributors in the distributor list.
Pour cela, par exemple, une table GTT la plus récente dans le réseau de communication maillé 1 est considérée. Cette table GTT contient une liste de répartiteurs, chacun ayant une liste de nœuds connectés et leurs capacités de calcul. Cette liste exclut la passerelle RM.For this, for example, a most recent GTT table in mesh communication network 1 is considered. This GTT table contains a list of dispatchers, each having a list of connected nodes and their computing capabilities. This list excludes the RM gateway.
Initialement, deux variables optimalDispatcher et optimalNumberOfMsgs sont initialisées à la valeur NULL.Initially, two variables optimalDispatcher and optimalNumberOfMsgs are initialized to NULL value.
Pour chaque répartiteur dispLeadTmp de la liste de répartiteurs, des étapes 430, 440 et 450 sont exécutées.For each dispatcher dispLeadTmp in the dispatcher list, steps 430, 440, and 450 are performed.
Dans l’étape 430, un nombre de message totalMessages est initialisé à 0.In step 430, a message count totalMessages is initialized to 0.
Dans l’étape 440, pour chaque répartiteur disp de la liste de répartiteurs, un nombre expectMsgs de messages qu'il est prévu d'échanger entre le répartiteur DispLeadTmp et le répartiteur disp est déterminé en considérant que le répartiteur DispLeadTmp est élu passerelle RM. Le nombre total de messages totalMsgs est alors mis à jour par : totalMsgs + expectMsgs ∗distance(dispLeadTmp, disp) dans laquelle distance(DispLeadTmp, disp) indique une distance entre les répartiteurs DispLeadTmp et disp.In step 440, for each dispatcher disp in the dispatcher list, a number expectMsgs of messages that are expected to be exchanged between the dispatcher DispLeadTmp and the dispatcher disp is determined by considering that the dispatcher DispLeadTmp is elected RM gateway. The total number of messages totalMsgs is then updated by: totalMsgs + expectMsgs ∗distance(dispLeadTmp, disp) in which distance(DispLeadTmp, disp) indicates a distance between the dispatchers DispLeadTmp and disp.
Dans l’étape 450, si le nombre total de messages totalMsgs est inférieur à un nombre optimal de message optimalNumberOfMsgs alors le répartiteur DispLeadTmp est considéré comme une passerelle RM et une variable optimalDispatcher est mise à jour avec l’identifiant du répartiteur DispLeadTmp. Le nombre optimal de messages optimalNumberOfMsgs est aussi égal au nombre total de messages totalMsgs.In step 450, if the total number of messages totalMsgs is less than an optimal number of messages optimalNumberOfMsgs then the dispatcher DispLeadTmp is considered as an RM gateway and a variable optimalDispatcher is updated with the identifier of the dispatcher DispLeadTmp. The optimal number of messages optimalNumberOfMsgs is also equal to the total number of messages totalMsgs.
Lorsque chaque répartiteur DispLeadTmp de la liste GTT a été considéré, la variable optimalDispatcher indique quel est le répartiteur qui a été élu passerelle candidate et la variable optimalNumberOfMsgs indique le nombre total de messages relatif à ce répartiteur.When each DispLeadTmp dispatcher in the GTT list has been considered, the optimalDispatcher variable indicates which dispatcher was elected as the candidate gateway and the optimalNumberOfMsgs variable indicates the total number of messages relating to this dispatcher.
Lors de l’exécution de ce processus d’élection 40, certains répartiteurs peuvent ne pas répondre dans un délai inférieur à un délai d’expiration d’élection. Chacun de ces répartiteurs qui a dépassé ce délai d'expiration d'élection exécute à son tour le processus d’élection 40 et informe la passerelle candidate issue de la première élection que, à sa connaissance, cette passerelle candidate est la passerelle RM la plus optimale pour cette nouvelle ère. Si un répartiteur du réseau de communication maillé 1 reçoit l'un de ces messages, il tente d'atteindre cette passerelle candidate. Si il y arrive alors cette passerelle est considérée comme ayant voté pour que cette passerelle candidate soit la nouvelle passerelle RM. Si le répartiteur n'est pas en mesure d’attendre cette passerelle candidate, il déclenchera une élection dans le reste des répartiteurs qui n'ont pas déjà voté pour cette passerelle candidate. Ensuite, ce répartiteur passe à l'état de passerelle candidate jusqu'à ce que l'une des trois évènements suivants se produise : (a) il remporte l'élection, (b) un autre répartiteur remporte l'élection ou est déjà la passerelle RM ou (c) une période d’élection s’écoule sans vainqueur.When performing this election process 40, some dispatchers may not respond within a time period less than an election timeout. Each such dispatcher that has exceeded this election timeout in turn performs the election process 40 and informs the candidate gateway from the first election that, to its knowledge, this candidate gateway is the most optimal RM gateway for this new era. If a dispatcher in the mesh communication network 1 receives one of these messages, it attempts to reach this candidate gateway. If it succeeds, then this gateway is considered to have voted for this candidate gateway to be the new RM gateway. If the dispatcher is unable to wait for this candidate gateway, it will trigger an election in the remaining dispatchers that have not already voted for this candidate gateway. Then, this dispatcher transitions to the candidate gateway state until one of three events occurs: (a) it wins the election, (b) another dispatcher wins the election or is already the RM gateway, or (c) an election period elapses without a winner.
Dans l’évènement a) se produit, une passerelle candidate ne remporte une élection que si la majorité des répartiteurs disponibles dans le réseau de communication maillé 1 votent qu'il s'agit de la passerelle RM la plus optimale. Chaque répartiteur vote pour exactement une passerelle candidate à chaque élection, qui, compte tenu du comportement déterministe du processus d’élection, doit toujours être le même si ces répartiteurs sont synchronisés sur tout le réseau de communication maillé 1; cela ne conduit jamais à un vote par division. Cependant, pour garantir l'exactitude du processus, la règle de la majorité garantit qu'une seule passerelle candidate peut remporter l'élection pour une ère particulière.In event a) occurs, a candidate gateway wins an election only if the majority of available dispatchers in mesh communication network 1 vote that it is the most optimal RM gateway. Each dispatcher votes for exactly one candidate gateway in each election, which, given the deterministic behavior of the election process, must always be the same if these dispatchers are synchronized across mesh communication network 1; this never leads to split voting. However, to ensure the correctness of the process, the majority rule guarantees that only one candidate gateway can win the election for a particular era.
Dans l’évènement b), en attendant les votes, une passerelle candidate peut recevoir un message d'une autre passerelle candidate prétendant être la passerelle RM. Si l'ère de cette passerelle RM est au moins aussi grande que l'ère actuelle de la passerelle candidate, la passerelle candidate le reconnaît comme une passerelle RM légitime et revient à l'état répartiteur. Cependant, si l'ère de cette passerelle RM est inférieur à l’ère actuelle, le message est rejeté et la passerelle candidate reste dans l'état candidat.In event b), while waiting for votes, a candidate gateway may receive a message from another candidate gateway claiming to be the RM gateway. If the era of this RM gateway is at least as large as the current era of the candidate gateway, the candidate gateway recognizes it as a legitimate RM gateway and returns to the dispatcher state. However, if the era of this RM gateway is smaller than the current era, the message is rejected and the candidate gateway remains in the candidate state.
Dans l’évènement c), à la fin d’une période d’élection, aucune des passerelles candidates n'a suffisamment de voix pour gagner ou perdre l'élection. Cela peut se produire s'il y a plusieurs fractures du réseau de communication maillé 1 ne permettant pas aux répartiteurs d'avoir une table GTT à jour. Lorsque cela se produit, chaque passerelle candidate envoie sa table GTT au reste des passerelles candidates. Cela fusionne les tables GTT et le processus d’élection est réexécuter, augmentant ainsi l'ère. Cette fois, il est confirmé que tous les répartiteurs participants partagent la même table GTT, et donc la même passerelle candidate. Une fois qu'une passerelle candidate remporte l'élection, cette passerelle propage la décision au reste des répartiteurs.In event c), at the end of an election period, none of the candidate gateways have enough votes to win or lose the election. This can happen if there are multiple fractures in the mesh communication network 1 that do not allow the dispatchers to have an up-to-date GTT table. When this happens, each candidate gateway sends its GTT table to the rest of the candidate gateways. This merges the GTT tables and the election process is rerun, increasing the era. This time, it is confirmed that all participating dispatchers share the same GTT table, and thus the same candidate gateway. Once a candidate gateway wins the election, this gateway propagates the decision to the rest of the dispatchers.
Selon un exemple de réalisation particulier et non limitatif, étant donné que l’élection d’une passerelle RM est calculée selon un procédé déterministe, les votes par division sont inhabituels. Cependant, si cela se produit, les nœuds divisés fusionnent leurs tables GTT et relancent une nouvelle élection d’une passerelle RM.In a particular and non-limiting example embodiment, since the election of an RM gateway is calculated according to a deterministic method, split votes are unusual. However, if this occurs, the split nodes merge their GTT tables and restart a new election of an RM gateway.
Dans une étape 210, la passerelle à laquelle est attaché un sous-réseau détermine la disponibilité de chaque nœud de ce sous-réseau et met à jour sa table SFTT pour indiquer les disponibilités et caractéristiques de chaque nœud disponible du sous-réseau.In a step 210, the gateway to which a subnet is attached determines the availability of each node of this subnet and updates its SFTT table to indicate the availability and characteristics of each available node of the subnet.
Il est avantageux de déléguer le maintien de la disponibilité des nœuds d’un sous-réseau à la passerelle à laquelle est rattaché ce sous-réseau car la congestion du réseau de communication maillé 1 et le nombre global de messages échangés sur ce réseau sont réduits.It is advantageous to delegate the maintenance of the availability of the nodes of a subnet to the gateway to which this subnet is attached because the congestion of the mesh communication network 1 and the overall number of messages exchanged on this network are reduced.
Chaque passerelle suit alors les défauts des nœuds IoT de manière flexible puisque chaque nœud IoT a une disponibilité et une périodicité différentes.Each gateway then tracks IoT node faults flexibly since each IoT node has different availability and periodicity.
Selon un mode de réalisation particulier et non limitatif, chaque nœud IoT de chaque sous-réseau émet périodiquement un message pour indiquer qu’il est disponible. Si une passerelle rattachée à un sous-réseau ne reçoit pas ledit message ou un message en relation avec une exécution d’une tâche d'un nœud IoT dudit sous-réseau pendant une période donnée, ladite passerelle suppose que le nœud IoT s'est déconnecté et le purge de sa table SFTT. De même, si une passerelle rattachée à un sous-réseau reçoit un message pour la première fois en relation avec une exécution d’une tâche d'un nœud IoT dudit sous-réseau, ladite passerelle suppose que le nœud IoT est connecté et l’ajoute à sa table SFTT.According to a particular and non-limiting embodiment, each IoT node of each subnetwork periodically emits a message to indicate that it is available. If a gateway attached to a subnetwork does not receive said message or a message relating to an execution of a task of an IoT node of said subnetwork during a given period, said gateway assumes that the IoT node has disconnected and purges it from its SFTT table. Similarly, if a gateway attached to a subnetwork receives a message for the first time relating to an execution of a task of an IoT node of said subnetwork, said gateway assumes that the IoT node is connected and adds it to its SFTT table.
Dans une étape 220, les tables SFTT des passerelles sont diffusées aux passerelles du réseau de communication maillé 1 pour que la nouvelle topologie d’un sous-réseau soit connue de l’ensemble des passerelles du réseau de communication maillé 1.In a step 220, the SFTT tables of the gateways are broadcast to the gateways of the mesh communication network 1 so that the new topology of a subnetwork is known to all the gateways of the mesh communication network 1.
Supposons dans cet exemple, que le réseau de communication maillé 1 comprenne une passerelle RM et quatre répartiteurs D2 à D5.Let us assume in this example that mesh communication network 1 includes an RM gateway and four D2 to D5 splitters.
Supposons également que la passerelle RM comprenne une table local GTT formée de l’union de sa table SFTT locale référencée SFTT1 et des tables SFTT de chacun des répartiteurs D2 à D5 référencées respectivement SFTT2, SFTT3, SFTT4 et SFTT5. L’ère courante de la passerelle RM est égale à 1 (e=1) et l’index de table GTT est égal à 1 (i=1).Let us also assume that the RM gateway includes a local GTT table formed by the union of its local SFTT table referenced SFTT1 and the SFTT tables of each of the distributors D2 to D5 referenced respectively SFTT2, SFTT3, SFTT4 and SFTT5. The current era of the RM gateway is equal to 1 (e=1) and the GTT table index is equal to 1 (i=1).
Dans étape 221, la passerelle RM diffuse périodiquement un message de type 2 pour diffuser sa table GTT à l’ensemble des autres répartiteurs du réseau de communication maillé 1.In step 221, the RM gateway periodically broadcasts a type 2 message to broadcast its GTT table to all other distributors in the mesh communication network 1.
Une fois ce message reçu par un répartiteur, dans étape 222, si les informations du message reçu sont pertinentes, ce répartiteur met à jour sa table GTT et les informations qu’ils mémorisent en fonction des informations pertinentes portées par ce message reçu.Once this message is received by a dispatcher, in step 222, if the information in the received message is relevant, this dispatcher updates its GTT table and the information it stores based on the relevant information carried by this received message.
Par exemple, ce répartiteur met à jour l’ère (e=1) et l’index de table GTT (i=1) ainsi que sa table GTT en fonction de la table GTT portée par le message de type 2.For example, this dispatcher updates the era (e=1) and the GTT table index (i=1) as well as its GTT table based on the GTT table carried by the type 2 message.
Selon l’exemple de la
Dans une étape 223, chaque répartiteur émet un message de type 3 porteur de sa table SFTT à destination de la passerelle RM.In a step 223, each distributor sends a type 3 message carrying its SFTT table to the RM gateway.
Dans une étape 224, la passerelle RM compare la table SFTT de chaque message reçu avec des informations qu’elle connait du sous-réseau correspondant à cette table SFTT (tables SFTT locales formant la table GTT locale).In a step 224, the RM gateway compares the SFTT table of each message received with information that it knows from the subnetwork corresponding to this SFTT table (local SFTT tables forming the local GTT table).
Si la passerelle RM ne trouve aucun changement (cas 1 sur la
Si la passerelle RM trouve un changement, dans étape 225, la passerelle RM fusionne les changements dans sa table GTT locale et augmente l’index de la table GTT. L'index n'augmente que d'une unité à chaque période, quel que soit le nombre de changements détectés.If the RM Gateway finds a change, in step 225, the RM Gateway merges the changes into its local GTT table and increases the GTT table index. The index increases by only one each period, regardless of the number of changes detected.
Selon l’exemple de la
Dans une étape 226, la passerelle RM diffuse la nouvelle table GTT à l’ensemble des répartiteurs du réseau de communication maillé 1.In a step 226, the RM gateway broadcasts the new GTT table to all the distributors of the mesh communication network 1.
Selon l’exemple de la
Puisque ce processus repose sur la comparaison de tables SFTT, il est avantageux de garder la comparaison aussi légère que possible. Cependant, les tailles de ces tables sont différentes. La table SFTT a une liste d'une douzaine de nœuds, et la table GTT a une liste de dizaines de tables SFTT par exemple.Since this process relies on comparing SFTT tables, it is beneficial to keep the comparison as lightweight as possible. However, the sizes of these tables are different. The SFTT table has a list of a dozen nodes, and the GTT table has a list of dozens of SFTT tables for example.
Selon une variante du processus de mise à jour de la topologie du réseau de communication maillé 1, la passerelle RM compare le couple <ère, index de table > du message reçu à celui stocké localement, ce qui permet d'identifier quelle est la table la plus récente parmi des tables SFTT et la table GTT locale. Le processus se poursuit ensuite par la comparaison des tables SFTT entre elles une fois que les tables SFTT contenue dans le message reçu est plus récent que la table GTT locale (a une ère plus élevée ou une même ère mais un index de table plus élevé que celui de la table SFTT de la table GTT).According to a variant of the process of updating the topology of the mesh communication network 1, the RM gateway compares the pair <era, table index> of the received message with that stored locally, which makes it possible to identify which is the most recent table among SFTT tables and the local GTT table. The process then continues by comparing the SFTT tables with each other once the SFTT tables contained in the received message are more recent than the local GTT table (has a higher era or the same era but a higher table index than that of the SFTT table of the GTT table).
La performance de chaque unité de calcul UC dépend fortement de la rapidité de la réception d'au moins la moitié des votes des nœuds de l’unité de calcul UC afin que le nœud OC puisse déterminer une réponse finale à une requête.The performance of each UC compute unit depends heavily on how quickly at least half of the votes from the UC nodes are received so that the OC node can determine a final answer to a query.
En conséquence, le procédé de formation d’unité de calcul (étape 110) tente de minimiser l'écart entre les périodes de disponibilité des nœuds.Accordingly, the computational unit formation method (step 110) attempts to minimize the gap between the availability periods of the nodes.
Dans une étape 310, la passerelle RM classe les nœuds IoT en fonction de leur degré de disponibilité et de leurs capacités de calcul : un nœud IoT est dit performant lorsque son degré de disponibilité et ses capacités de calcul sont élevées et dit non performant dans le cas contraire.In a step 310, the RM gateway classifies the IoT nodes according to their degree of availability and their computing capacities: an IoT node is said to be efficient when its degree of availability and its computing capacities are high and said to be non-efficient otherwise.
De plus, compte tenu des capacités limitées des appareils IoT, et afin de perdre le moins de périodes de calcul possible, le procédé de formation d’unité de calcul examine également la distribution des unités de calcul courante pour assigner les nœuds à une unité de calcul de manière à minimiser les changements de cette distribution.Additionally, considering the limited capabilities of IoT devices, and in order to waste as few computation periods as possible, the computation unit formation method also examines the current computation unit distribution to assign nodes to a computation unit in a way that minimizes changes in this distribution.
Dans une étape 320, un nombre d’unité de calcul N est calculée en fonction d’un nombre de nœuds M par unité de calcul.In a step 320, a number of calculation units N is calculated based on a number of nodes M per calculation unit.
Selon un mode de réalisation particulier et non limitatif, N est égal à 5.According to a particular and non-limiting embodiment, N is equal to 5.
Ce mode de réalisation est avantageux car il permet d’obtenir des performances de calcul optimales selon des tests réalisés par l’inventeur.This embodiment is advantageous because it allows optimal calculation performance to be obtained according to tests carried out by the inventor.
Dans une étape 330, chaque unité de calcul UC est formée par regroupement de N nœuds IoT du réseau de communication maillé 1, au moins un desdits nœuds étant performant et au moins un desdits nœuds étant non performant.In a step 330, each computing unit UC is formed by grouping N IoT nodes of the mesh communication network 1, at least one of said nodes being efficient and at least one of said nodes being non-efficient.
Selon un mode de réalisation particulier et non limitatif, les N nœuds les plus rapides sont par exemple distribués parmi les unités de calcul UC.According to a particular and non-limiting embodiment, the N fastest nodes are for example distributed among the computing units UC.
Selon un mode de réalisation particulier et non limitatif, chaque unité de calcul comprend un nœud OC.According to a particular and non-limiting embodiment, each computing unit comprises an OC node.
Selon un mode de réalisation particulier et non limitatif, lorsque une unité de calcul comprend 5 nœuds, l’un des nœuds d’une unité de calcul est considéré comme étant un nœud orchestrateur de calcul, deux autres nœuds sont des nœuds performants et deux autres nœuds sont des nœuds non performants.According to a particular and non-limiting embodiment, when a computing unit comprises 5 nodes, one of the nodes of a computing unit is considered to be a computing orchestrator node, two other nodes are high-performance nodes and two other nodes are non-performance nodes.
Dans une étape 340, chaque unité de calcul UC forme un sous-réseau du réseau de communication maillé 1 qui est rattaché à une passerelle du réseau de communication maillé 1. La passerelle mémorise une table SFTT représentant la disponibilité et les caractéristiques des nœuds IoT du sous-réseau. Les nœuds IoT de cette unité de calcul UC sont informés de leur rattachement à cette unité de calcul UC.In a step 340, each computing unit UC forms a subnetwork of the mesh communication network 1 which is attached to a gateway of the mesh communication network 1. The gateway stores a table SFTT representing the availability and the characteristics of the IoT nodes of the subnetwork. The IoT nodes of this computing unit UC are informed of their attachment to this computing unit UC.
Ce procédé de formation d’unités de calcul permet d’augmenter le nombre de périodes de calcul et d’homogénéiser les capacités de l'infrastructure du réseau de communication maillé 1 tout en cherchant maintenir une distribution antérieure des nœuds.This method of forming computing units makes it possible to increase the number of computing periods and to homogenize the capacities of the infrastructure of the mesh communication network 1 while seeking to maintain a previous distribution of nodes.
Ce procédé de formation d’unité de calcul peut consommer des ressources de manière importante et ajouter une surcharge au procédé de contrôle du réseau de communication maillé 1. Ainsi, si les nœuds IoT ont une forte intermittence de leur disponibilité, ce processus de formation d’unité de calcul ne peut être exécuté à chaque fois qu'une déconnexion de nœud IoT se produit sans pénaliser fortement les performances du procédé de contrôle du réseau de communication maillé 1.This computational unit formation process may consume significant resources and add overhead to the mesh communication network control process 1. Thus, if the IoT nodes have high intermittency in their availability, this computational unit formation process cannot be executed every time an IoT node disconnection occurs without severely penalizing the performance of the mesh communication network control process 1.
Selon un exemple de réalisation particulier et non limitatif, le procédé de formation d’unité de calcul, ne se produit que si l’une des conditions suivantes est vérifiée :
- une unité de calcul ne contient pas de nœud OC ou de nœud IoT performant ;
- le nombre de nœuds IoT du réseau de communication maillé 1 est inférieur à 3.N
- (c) lorsqu’une période prédéterminée est écoulée pour réoptimiser la distribution des nœuds IoT.
- a compute unit does not contain an OC node or a high-performance IoT node;
- the number of IoT nodes in mesh communication network 1 is less than 3.N
- (c) when a predetermined period has elapsed to re-optimize the distribution of IoT nodes.
La passerelle RM contrôle les nœuds IoT pour s'assurer que ces règles sont respectées.The RM Gateway monitors IoT nodes to ensure these rules are followed.
Selon une variante, pour garder l'infrastructure aussi performante que possible, en palliant les pertes de nœuds, la passerelle RM donne la priorité à l’exécution des tâches vers les unités de calcul UC avec tout leur quorum de nœuds performants actifs.Alternatively, to keep the infrastructure as performant as possible, by compensating for node losses, the RM gateway prioritizes task execution to the UC compute units with their full quorum of active performant nodes.
Selon une variante, la passerelle RM informe le nœud OC d’une unité de calcul UC chaque fois qu'un changement se produit dans cette unité de calcul UC concernant le nombre de nœuds de cette unité de calcul.Alternatively, the RM gateway informs the OC node of a computing unit UC whenever a change occurs in that computing unit UC regarding the number of nodes of that computing unit.
Cette variante optimise les performances du processus de contrôle du réseau de communication maillé 1.This variant optimizes the performance of the mesh communication network control process 1.
Selon une variante, lorsqu'une déconnexion d’un nœud OC d’une unité de calcul UC se produit, la passerelle RM doit choisir un autre nœud OC pour cette unité de calcul UC parmi les nœuds de cette unité de calcul UC pour que cette unité de calcul UC soit opérationnelle jusqu'à ce que le processus de formation d’unité de calcul soit à nouveau exécuté.Alternatively, when a disconnection of an OC node from a UC compute unit occurs, the RM gateway must choose another OC node for that UC compute unit from among the nodes of that UC compute unit so that that UC compute unit is operational until the compute unit formation process is performed again.
De cette façon, chaque unité de calcul peut tolérer une déconnexion de nœud hors du quorum des nœuds performants et jusqu'à trois déconnexions si deux d'entre elles sont des nœuds non performants.This way, each compute unit can tolerate one node disconnection outside the quorum of performing nodes and up to three disconnections if two of them are non-performing nodes.
Une fois qu'un nœud IoT d'une unité de calcul UC reçoit un message porteur d’une requête d’exécution de tâches, ce nœud IoT exécute ces tâches et renvoie son résultat au nœud OC de cette unité de calcul UC. Le nœud OC, qui connaît l'état de l’unité de calcul UC, vérifie alors s'il est en mesure d'obtenir un vote majoritaire.Once an IoT node of a computing unit UC receives a message carrying a request to execute tasks, this IoT node executes these tasks and returns its result to the OC node of this computing unit UC. The OC node, which knows the state of the computing unit UC, then checks whether it is able to obtain a majority vote.
Selon un exemple de réalisation particulier et non limitatif, le procédé de vote utilisé par le nœud OC est une variante du processus de vote connu sous le nom de DLV [S. Jajodia et al. 1990. Dynamic voting algorithms for maintaining the consistency of a replicated database. In ACM Transactions on Database Systems]. DLV définit dynamiquement un seuil de majorité de votes en fonction du nombre de nœuds connectés, ce qui permet d'améliorer la flexibilité et les performances du processus de vote. En cas d'égalité, le nœud OC privilégie sa réponse intermédiaire à une FER ou, si sa réponse intermédiaire ne fait pas partie des réponses intermédiaires ex aequo, la première réponse intermédiaire qui atteint la quantité ex aequo est retenue en tant que réponse finale. L’utilisation du processus de vote basé sur DLV nécessite au moins n + 2 serveurs par unité de calcul UC pour pouvoir tolérer n pannes au lieu des 2n + 1 requis par Raft. Cette propriété permet aux unités de calcul UC de fonctionner avec moins de membres avec un niveau acceptable de tolérance aux pannes, ce qui est critique dans un environnement défaillant et hautement dynamique.In a particular and non-limiting example embodiment, the voting method used by the OC node is a variant of the voting process known as DLV [S. Jajodia et al. 1990. Dynamic voting algorithms for maintaining the consistency of a replicated database. In ACM Transactions on Database Systems]. DLV dynamically defines a majority threshold of votes as a function of the number of connected nodes, which makes it possible to improve the flexibility and performance of the voting process. In the event of a tie, the OC node favors its intermediate response over a FER or, if its intermediate response is not part of the tied intermediate responses, the first intermediate response that reaches the tied quantity is retained as the final response. The use of the voting process based on DLV requires at least n + 2 servers per computing unit UC to be able to tolerate n failures instead of the 2n + 1 required by Raft. This property allows UC computing units to operate with fewer members with an acceptable level of fault tolerance, which is critical in a faulty and highly dynamic environment.
Le dispositif 23 est par exemple configuré pour la mise en œuvre d’au moins une des étapes d’au moins un procédé 10, 20, 30 ou 40. Les éléments du dispositif 23, individuellement ou en combinaison, peuvent être intégrés dans un unique circuit intégré, dans plusieurs circuits intégrés, et/ou dans des composants discrets. Le dispositif 23 peut être réalisé sous la forme de circuits électroniques ou de modules logiciels (ou informatiques) ou encore d’une combinaison de circuits électroniques et de modules logiciels.The device 23 is for example configured for the implementation of at least one of the steps of at least one method 10, 20, 30 or 40. The elements of the device 23, individually or in combination, can be integrated into a single integrated circuit, into several integrated circuits, and/or into discrete components. The device 23 can be produced in the form of electronic circuits or software (or computer) modules or even a combination of electronic circuits and software modules.
Selon différents modes de réalisation particuliers, le dispositif 23 est couplé en communication avec d’autres dispositifs ou systèmes similaires, par exemple les calculateurs 20, 21 et/ou 22 et/ou avec des dispositifs de communication, par exemple une TCU (de l’anglais « Telematic Control Unit » ou en français « Unité de Contrôle Télématique »), par exemple par l’intermédiaire d’un bus de communication ou au travers de ports d’entrée / sortie dédiés.According to various particular embodiments, the device 23 is coupled in communication with other similar devices or systems, for example the computers 20, 21 and/or 22 and/or with communication devices, for example a TCU (from the English “Telematic Control Unit” or in French “Telematic Control Unit”), for example via a communication bus or through dedicated input/output ports.
Le dispositif 23 comprend un (ou plusieurs) processeur(s) 230 configurés pour exécuter des instructions pour la réalisation d’au moins une partie des étapes d’au moins un procédé 10, 20, 30 ou 40 et/ou pour l’exécution des instructions du ou des logiciels embarqués dans le dispositif 23. Le processeur 230 peut inclure de la mémoire intégrée, une interface d’entrée/sortie, et différents circuits connus de l’homme du métier. Le dispositif 23 comprend en outre ou est en association avec au moins une mémoire 231 correspondant par exemple à une mémoire volatile et/ou non volatile et/ou comprend un dispositif de stockage mémoire qui peut comprendre de la mémoire volatile et/ou non volatile, telle que EEPROM, ROM, PROM, RAM, DRAM, SRAM, flash, disque magnétique ou optique.The device 23 comprises one (or more) processor(s) 230 configured to execute instructions for carrying out at least part of the steps of at least one method 10, 20, 30 or 40 and/or for executing the instructions of the software(s) embedded in the device 23. The processor 230 may include integrated memory, an input/output interface, and various circuits known to those skilled in the art. The device 23 further comprises or is in association with at least one memory 231 corresponding for example to a volatile and/or non-volatile memory and/or comprises a memory storage device which may comprise volatile and/or non-volatile memory, such as EEPROM, ROM, PROM, RAM, DRAM, SRAM, flash, magnetic or optical disk.
Le code informatique du ou des logiciels embarqués comprenant les instructions à charger et exécuter par le processeur est par exemple stocké sur la mémoire 231.The computer code of the embedded software(s) comprising the instructions to be loaded and executed by the processor is for example stored in the memory 231.
Selon un mode de réalisation particulier et non limitatif, le dispositif 23 comprend un bloc 232 d’éléments d’interface pour communiquer avec des dispositifs externes, par exemple un dispositif de calcul distant. Les éléments d’interface du bloc 232 comprennent une ou plusieurs des interfaces suivantes :
- interface radiofréquence RF, par exemple de type Bluetooth® ou Wi-Fi®, LTE (de l’anglais « Long-Term Evolution » ou en français « Evolution à long terme »), LTE-Advanced (ou en français LTE-avancé) ;
- interface USB (de l’anglais « Universal Serial Bus » ou « Bus Universel en Série » en français) ;
- interface HDMI (de l’anglais « High Definition Multimedia Interface », ou « Interface Multimedia Haute Definition » en français) ;
- interface LIN (de l’anglais « Local Interconnect Network », ou en français « Réseau interconnecté local »).
- RF radio frequency interface, for example of the Bluetooth® or Wi-Fi® type, LTE (Long-Term Evolution), LTE-Advanced;
- USB interface (from the English “Universal Serial Bus” or “Universal Serial Bus” in French);
- HDMI interface (from the English “High Definition Multimedia Interface” or “High Definition Multimedia Interface” in French);
- LIN interface (from the English “Local Interconnect Network”).
Selon un autre mode de réalisation particulier, le dispositif 23 comprend une interface de communication 233 qui permet d’établir une communication avec d’autres dispositifs, tels que les calculateurs 20, 21 et/ou 22 embarqués du véhicule via un canal de communication 234. L’interface de communication 233 correspond par exemple à un transmetteur configuré pour transmettre et recevoir des informations et/ou des données via le canal de communication 234. L’interface de communication 233 correspond par exemple à un réseau filaire de type CAN (de l’anglais « Controller Area Network » ou en français « Réseau de contrôleurs »), CAN FD (de l’anglais « Controller Area Network Flexible Data-Rate » ou en français « Réseau de contrôleurs à débit de données flexible »), FlexRay (standardisé par la norme ISO 17458) ou Ethernet (standardisé par la norme ISO/IEC 802-3).According to another particular embodiment, the device 23 comprises a communication interface 233 which makes it possible to establish communication with other devices, such as the on-board computers 20, 21 and/or 22 of the vehicle via a communication channel 234. The communication interface 233 corresponds for example to a transmitter configured to transmit and receive information and/or data via the communication channel 234. The communication interface 233 corresponds for example to a wired network of the CAN (Controller Area Network), CAN FD (Controller Area Network Flexible Data-Rate), FlexRay (standardized by the ISO 17458 standard) or Ethernet (standardized by the ISO/IEC 802-3 standard).
Bien entendu, la présente invention ne se limite pas aux exemples de réalisation décrits ci-avant mais s’étend à un procédé de de contrôle d’un réseau de communication maillé pour l’exécution de tâches relatives à des fonctions sans état qui inclurait des étapes secondaires sans pour cela sortir de la portée de la présente invention. Il en serait de même d’un dispositif configuré pour la mise en œuvre d’un tel procédé.Of course, the present invention is not limited to the exemplary embodiments described above but extends to a method of controlling a mesh communication network for the execution of tasks relating to stateless functions which would include secondary steps without departing from the scope of the present invention. The same would apply to a device configured for the implementation of such a method.
La présente invention concerne également un véhicule, par exemple automobile ou plus généralement un véhicule autonome à moteur terrestre, comprenant le dispositif de la
Claims (10)
- obtention (110) d’unités de calcul à partir des nœuds IoT, chaque unité de calcul comprend des nœuds IoT et est rattachée à une passerelle pour former un sous-réseau du réseau de communication maillé ;
- élection (120) d’une passerelle gestionnaire de ressources (RM) parmi les passerelles du réseau de communication maillé, ladite passerelle gestionnaire de ressources (RM) minimisant un nombre de messages échangés dans le réseau de communication maillé pour l’exécution de tâches ;
- élection (130), par la passerelle gestionnaire de ressources (RM), d’un nœud orchestrateur de calcul pour chaque unité de calcul, un nœud orchestrateur de calcul d’une unité de calcul étant élu parmi les nœuds de ladite unité de calcul en fonction de performances et de disponibilité des nœuds de ladite unité de calcul ;
- acceptation (140), par la passerelle gestionnaire de ressources (RM), d’une requête d’exécution de tâches émise par un utilisateur ;
- assignation (150), par la passerelle gestionnaire de ressources (RM), de ladite requête à des nœuds IoT d’une unité de calcul pour l’exécution de tâches de ladite requête par les nœuds IoT de ladite unité de calcul ;
- collecte (160), par un nœud orchestrateur de calcul (OC) de ladite unité de calcul, d’au moins une réponse intermédiaire à ladite requête, chaque réponse intermédiaire étant soit obtenue par le nœud orchestrateur de calcul soit émise par un nœud IoT de l’unité de calcul à destination du nœud orchestrateur de calcul (OC) suite à l’exécution de la tâche par ledit nœud IoT de l’unité de calcul ;
- obtention (170), par le nœud orchestrateur de calcul, d’une réponse finale à partir d’un vote à la majorité basé sur les réponses intermédiaires collectées ;
- transmission (180) de la réponse finale par le nœud orchestrateur de calcul (OC) à destination de la passerelle gestionnaire de ressources (RM); et
- transmission (190) de la réponse finale par la passerelle gestionnaire de ressources (RM) à destination de l’utilisateur.A method of controlling a mesh communication network for the execution of tasks relating to stateless functions, said mesh communication network comprising nodes called gateways to indicate that these nodes correspond to gateways of the mesh communication network and nodes called IoT nodes to indicate that these nodes correspond to devices connected to the internet, said method comprising the following steps:
- obtaining (110) computing units from the IoT nodes, each computing unit comprises IoT nodes and is attached to a gateway to form a subnetwork of the mesh communication network;
- election (120) of a resource manager gateway (RM) among the gateways of the mesh communication network, said resource manager gateway (RM) minimizing a number of messages exchanged in the mesh communication network for the execution of tasks;
- election (130), by the resource management gateway (RM), of a calculation orchestrator node for each calculation unit, a calculation orchestrator node of a calculation unit being elected from among the nodes of said calculation unit according to the performance and availability of the nodes of said calculation unit;
- acceptance (140), by the resource management gateway (RM), of a task execution request issued by a user;
- assignment (150), by the resource manager gateway (RM), of said request to IoT nodes of a computing unit for the execution of tasks of said request by the IoT nodes of said computing unit;
- collection (160), by a computation orchestrator node (OC) of said computation unit, of at least one intermediate response to said request, each intermediate response being either obtained by the computation orchestrator node or emitted by an IoT node of the computation unit to the computation orchestrator node (OC) following the execution of the task by said IoT node of the computation unit;
- obtaining (170), by the calculation orchestrator node, a final response from a majority vote based on the collected intermediate responses;
- transmission (180) of the final response by the calculation orchestrator node (OC) to the resource management gateway (RM); and
- transmission (190) of the final response by the resource management gateway (RM) to the user.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR2302508A FR3146775A1 (en) | 2023-03-17 | 2023-03-17 | Method and device for controlling a mesh communication network for the execution of tasks relating to stateless functions |
PCT/FR2024/050290 WO2024194550A1 (en) | 2023-03-17 | 2024-03-08 | Method and device for controlling a mesh communication network for executing tasks relating to stateless functions |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR2302508A FR3146775A1 (en) | 2023-03-17 | 2023-03-17 | Method and device for controlling a mesh communication network for the execution of tasks relating to stateless functions |
FR2302508 | 2023-03-17 |
Publications (1)
Publication Number | Publication Date |
---|---|
FR3146775A1 true FR3146775A1 (en) | 2024-09-20 |
Family
ID=86657390
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR2302508A Pending FR3146775A1 (en) | 2023-03-17 | 2023-03-17 | Method and device for controlling a mesh communication network for the execution of tasks relating to stateless functions |
Country Status (2)
Country | Link |
---|---|
FR (1) | FR3146775A1 (en) |
WO (1) | WO2024194550A1 (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220358118A1 (en) * | 2021-05-10 | 2022-11-10 | International Business Machines Corporation | Data synchronization in edge computing networks |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2508066C2 (en) | 1975-02-25 | 1983-01-27 | Agfa-Gevaert Ag, 5090 Leverkusen | Dosing device for powdery material |
-
2023
- 2023-03-17 FR FR2302508A patent/FR3146775A1/en active Pending
-
2024
- 2024-03-08 WO PCT/FR2024/050290 patent/WO2024194550A1/en unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220358118A1 (en) * | 2021-05-10 | 2022-11-10 | International Business Machines Corporation | Data synchronization in edge computing networks |
Non-Patent Citations (4)
Title |
---|
A.MUNIR ET AL.: "IFCIoT: Integrated Fog Cloud IoT: A novel architectural paradigm for the future Internet of Things", IN IEEE CONSUMER ELECTRONICS MAGAZINE, 2017 |
BALACHANDRAN SWEE ET AL: "Distributed Consensus to Enable Merging and Spacing of UAS in an Urban Environment", 2018 INTERNATIONAL CONFERENCE ON UNMANNED AIRCRAFT SYSTEMS (ICUAS), IEEE, 12 June 2018 (2018-06-12), pages 670 - 675, XP033396751, DOI: 10.1109/ICUAS.2018.8453460 * |
DIEGO ONGARO ET AL: "In Search of an Understandable Consensus Algorithm", PROCEEDINGS OF USENIX ATC ’14: 2014 USENIX ANNUAL TECHNICAL CONFERENCE, JUNE 19–20, 2014 • PHILADELPHIA, PA, 1 June 2014 (2014-06-01), pages 305 - 319, XP055630887, Retrieved from the Internet <URL:https://www.usenix.org/system/files/conference/atc14/atc14-paper-ongaro.pdf> [retrieved on 20191010] * |
S. JAJODIA ET AL.: "Dynamic voting algorithms for maintaining the consistency of a replicated database", IN ACM TRANSACTIONS ON DATABASE SYSTEMS, 1990 |
Also Published As
Publication number | Publication date |
---|---|
WO2024194550A1 (en) | 2024-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20110219137A1 (en) | Peer-to-peer live content delivery | |
CN103780615B (en) | Sharing method of client conversation data among multiple servers | |
WO2010034920A1 (en) | Determination and management of virtual networks | |
Wang et al. | Robust task offloading in dynamic edge computing | |
CN102148850A (en) | Cluster system and service processing method thereof | |
EP2454850A1 (en) | Method and system for the efficient and automated management of virtual networks | |
EP2502384B1 (en) | Method and system for distributing content with guarantees of delivery timescales in hybrid radio networks | |
CN112003943A (en) | Voice data synchronization method and device | |
WO2024194550A1 (en) | Method and device for controlling a mesh communication network for executing tasks relating to stateless functions | |
FR3146774A1 (en) | Method and device for updating a topology of a mesh communication network for execution of tasks relating to stateless functions | |
FR3146773A1 (en) | Method and device for forming computing units from IoT nodes of a mesh communication network for execution of tasks relating to stateless functions | |
EP3732565B1 (en) | Computer network of computing resource infrastructures and method for allocating said resources to client applications | |
CN102387062B (en) | Method for improving transmission rate of peer-to-peer (p2p) node in crossing network by dynamic bridging contact | |
CN114897283A (en) | Distributed satellite task planning system | |
Meiklejohn et al. | Loquat: A framework for large-scale actor communication on edge networks | |
Etxeberria-Agiriano et al. | Towards middleware-based cooperation topologies for the next generation of CPS | |
EP3563233B1 (en) | Computer network of computing resource infrastructures and method for allocating these resources to client applications | |
CN113890817A (en) | Communication optimization method and device | |
Shen et al. | Virtual net: a decentralized architecture for interaction in mobile virtual worlds | |
EP3080706B1 (en) | Method of backup of data stored in a terminal | |
US20240275620A1 (en) | Blockchain resource management system and method of use | |
Shih et al. | Service recovery for large scale distributed publish and subscription services for cyber-physical systems and disaster management | |
CN116340431B (en) | Distributed system, data synchronization method, electronic equipment and storage medium | |
Alhajj et al. | Improved Contact Graph Routing in Delay Tolerant Networks with Capacity and Buffer Constraints | |
FR2866185A1 (en) | Reduced neighboring cells list constituting process for e.g. cellular radio communication system, involves selecting at most N neighboring cells from classified neighboring cells to constitute reduced list of at most N neighboring cells |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PLFP | Fee payment |
Year of fee payment: 2 |
|
PLSC | Publication of the preliminary search report |
Effective date: 20240920 |