FR3124873A1 - Program processing planning system and method - Google Patents

Program processing planning system and method Download PDF

Info

Publication number
FR3124873A1
FR3124873A1 FR2107199A FR2107199A FR3124873A1 FR 3124873 A1 FR3124873 A1 FR 3124873A1 FR 2107199 A FR2107199 A FR 2107199A FR 2107199 A FR2107199 A FR 2107199A FR 3124873 A1 FR3124873 A1 FR 3124873A1
Authority
FR
France
Prior art keywords
quality
program
microservice
service
microservices
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR2107199A
Other languages
French (fr)
Other versions
FR3124873B1 (en
Inventor
Philippe ROOSE
Marc DALMAU
Hernan Humberto ALVAREZ-VALERA
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Universite de Pau et des Pays de lAdour
Original Assignee
Universite de Pau et des Pays de lAdour
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Universite de Pau et des Pays de lAdour filed Critical Universite de Pau et des Pays de lAdour
Priority to FR2107199A priority Critical patent/FR3124873B1/en
Priority to PCT/EP2022/068065 priority patent/WO2023275250A1/en
Publication of FR3124873A1 publication Critical patent/FR3124873A1/en
Application granted granted Critical
Publication of FR3124873B1 publication Critical patent/FR3124873B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4893Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • G06F9/4862Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate
    • G06F9/4868Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate with creation or replication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Telephonic Communication Services (AREA)
  • Multi Processors (AREA)

Abstract

Il est proposé un procédé de contrôle de traitement de programmes mis en œuvre dans un système comprenant des dispositifs informatiques connectés par un réseau, représentés par un graphe comprenant des nœuds, chacun ayant plusieurs ressources matérielles. Les nœuds sont logiquement indexés dans une structure multidimensionnelle selon les ressources d’un espace muldimensionnel. En réponse à une demande de traitement de microservices d’un programme, le procédé comprend un calcul (507), pour chaque microservice, d’un indicateur de qualité de service élémentaire associé au microservice, à partir de différences relatives à chaque paramètre de qualité de service parmi un ensemble de paramètres de qualité de services représentant des paramètres de capacité de ressources matérielles du dispositif source, et une opération (511) relative au traitement d’une partie des microservices du programme dans un dispositif du réseau en fonction des indicateurs de qualité de service. Le procédé permet d’optimiser la consommation énergétique des dispositifs. (Figure 5)A program processing control method implemented in a system comprising computing devices connected by a network, represented by a graph comprising nodes, each having several hardware resources, is proposed. The nodes are logically indexed in a multidimensional structure according to the resources of a multidimensional space. In response to a request for processing microservices from a program, the method comprises a calculation (507), for each microservice, of an elementary quality of service indicator associated with the microservice, from differences relating to each quality parameter from among a set of service quality parameters representing hardware resource capacity parameters of the source device, and an operation (511) relating to the processing of part of the microservices of the program in a device of the network according to the indicators of quality of service. The process makes it possible to optimize the energy consumption of the devices. (Figure 5)

Description

Système et procédé de planification de traitement de programmeProgram processing planning system and method

L’invention concerne de manière générale le traitement de programmes informatique et en particulier un système et un procédé de planification dynamique de programme dans un réseau comprenant un ensemble de dispositifs informatiques.The invention relates generally to the processing of computer programs and in particular to a system and a method for dynamic program planning in a network comprising a set of computing devices.

La gestion du traitement des programmes et des données dans les réseaux informatiques est un enjeu majeur. Un programme informatique peut être constitué d’un ensemble de microservices à exécuter en utilisant les ressources des dispositifs informatiques du réseau.Managing the processing of programs and data in computer networks is a major challenge. A computer program can consist of a set of microservices to be executed using the resources of network computing devices.

En particulier, dans un environnement de réseau décentralisé, l'équilibrage de charge, la découverte des microservices et l'économie d'énergie sont difficiles à analyser en l'absence d'entité centrale contenant toutes les informations nécessaires pour appliquer l'heuristique de planification de traitement des programmes.In particular, in a decentralized network environment, load balancing, microservices discovery and energy saving are difficult to analyze in the absence of a central entity containing all the information necessary to apply the heuristic of program treatment planning.

Il existe des structures capables de modéliser les ensembles de données dans les réseaux informatiques sous la forme d’espaces avec autant de dimensions que les ensembles de données ont des caractéristiques. De tels espaces permettent d'insérer, d'analyser et de récupérer des données à des coûts d'exploitation efficaces. Des exemples unidimensionnels de structures existantes de modélisation de données sont les arbres basés sur des binaires, effectuant des opérations de gestion de données en O(Log (N)). Cependant, ces opérations se compliquent avec l'incrémentation des dimensions de la recherche dans les arbres. Pour surmonter un tel problème, des solutions reposant sur des métriques définies par des fonctions de distance et/ou sur des espaces à plusieurs dimensions ont été proposées. Ces solutions sont capables de gérer des ensembles de données multidimensionnelles du point de vue :There are structures capable of modeling data sets in computer networks as spaces with as many dimensions as the data sets have characteristics. Such spaces make it possible to insert, analyze and retrieve data at efficient operating costs. One-dimensional examples of existing data modeling structures are binary-based trees, performing O(Log(N)) data management operations. However, these operations become more complicated with the incrementing of the dimensions of the search in the trees. To overcome such a problem, solutions based on metrics defined by distance functions and/or on multi-dimensional spaces have been proposed. These solutions are able to manage multidimensional datasets from the point of view of:

- des distances entre ses éléments (par exemple BKT, BT ou LAESA), comme décrit dans Edgar Chávez, Gonzalo Navarro, Ricardo Baeza-Yates, and José Luis Marroquín. 2001. Searching in Metric Spaces. ACM Comput. Surv. 33, 3 (Sept. 2001), 273–321. https://doi.org/10.1145/502807.502808; ou- distances between its elements (for example BKT, BT or LAESA), as described in Edgar Chávez, Gonzalo Navarro, Ricardo Baeza-Yates, and José Luis Marroquín. 2001. Searching in Metric Spaces. ACM Compute. Surv. 33, 3 (Sept. 2001), 273–321. https://doi.org/10.1145/502807.502808; Or

- de l'abstraction de l'univers dans lequel ils existent (par exemple KD-tree, R* tree ou Z-ordering), comme décrit dans Volker Gaede and Oliver Günther. 1998. Multidimensional Access Methods. ACM Comput. Surv. 30, 2 (June 1998), 170–231.- the abstraction of the universe in which they exist (for example KD-tree, R* tree or Z-ordering), as described in Volker Gaede and Oliver Günther. 1998. Multidimensional Access Methods. ACM Compute. Surv. 30, 2 (June 1998), 170–231.

De telles approches de gestion de données permettent non seulement de traiter des requêtes de traitement de programmes basées sur une seule caractéristique/dimension pour obtenir un seul élément, mais aussi de récupérer toutes les données qui répondent à différents critères dans une certaine région, soit du point de vue d'un autre élément, soit du point de vue du point de vue de l'univers entier.Such data management approaches not only make it possible to process program processing requests based on a single feature/dimension to obtain a single item, but also to retrieve all data that meets different criteria in a certain region, either from point of view of another element, or from the point of view of the point of view of the entire universe.

Cependant les solutions existantes ne permettent pas un placement dynamique du traitement des microservices dans les dispositifs d’un environnement distribué, tenant compte de la consommation énergétique du système.However, existing solutions do not allow a dynamic placement of microservices processing in the devices of a distributed environment, taking into account the energy consumption of the system.

Il existe ainsi un besoin pour un système et un procédé de planification de traitement de programme optimisé dans un réseau informatique constitué d’un ensemble de dispositifs informatiques.There is thus a need for a system and a method for scheduling optimized program processing in a computer network consisting of a set of computing devices.

Pour améliorer la situation, Il est proposé un procédé de contrôle de traitement de programmes mis en œuvre dans un système informatique comprenant une pluralité de dispositifs informatiques connectés au moyen d’au moins un réseau informatique. Chaque dispositif a une pluralité de ressources matérielles, chaque programme étant configuré sous la forme d’un ensemble de microservices, chaque dispositif étant apte à traiter au moins un programme. La pluralité de dispositifs informatiques est représentée sous la forme d’un graphe comprenant des nœuds, deux nœuds étant reliés par un lien, un nœud représentant un dispositif informatique, un lien reliant de nœuds représentant la connexion entre les deux dispositifs informatiques représentés par les nœuds. Les nœuds sont logiquement indexés dans une structure multidimensionnelle selon les ressources d’un espace muldimensionnel. Le procédé comprend les étapes consistant à :To improve the situation, a program processing control method implemented in a computer system comprising a plurality of computer devices connected by means of at least one computer network is proposed. Each device has a plurality of hardware resources, each program being configured as a set of microservices, each device being able to process at least one program. The plurality of computing devices is represented in the form of a graph comprising nodes, two nodes being connected by a link, a node representing a computing device, a connecting link of nodes representing the connection between the two computing devices represented by the nodes . The nodes are logically indexed in a multidimensional structure according to the resources of a multidimensional space. The method includes the steps of:

- Recevoir une demande de traitement d’au moins une partie des microservices d’un programme d’un dispositif source de l’ensemble de dispositifs, émise dans l'espace multidimensionnel;- Receive a request to process at least part of the microservices of a program from a source device of the set of devices, issued in the multidimensional space;

- Pour chaque paramètre de qualité de service parmi un ensemble de paramètres de qualité de service représentant des paramètres de capacité de ressources matérielles du dispositif source, déterminer la différence entre la valeur cible et la valeur obtenue du paramètre de qualité de service pour le traitement du microservice par le dispositif requérant, ce qui fournit une différence relative au paramètre de qualité de service ;les paramètres de qualité de service comprennent au moins la fréquence du processeur central du dispositif source, la capacité de la mémoire RAM du dispositif source, le taux de transfert de l’interface réseau du dispositif source, et le taux de transfert du disque dur du dispositif;- For each quality of service parameter among a set of quality of service parameters representing hardware resource capacity parameters of the source device, determining the difference between the target value and the value obtained from the quality of service parameter for the processing of the microservice by the requesting device, which provides a difference relative to the quality of service parameter; the quality of service parameters include at least the frequency of the central processor of the source device, the capacity of the RAM memory of the source device, the rate of source device's network interface transfer, and the device's hard disk transfer rate;

- Calculer pour chaque microservice, un indicateur de qualité de service élémentaire associé au microservice, à partir des différences relatives à chaque paramètre de qualité de service ; et- Calculate for each microservice, an elementary quality of service indicator associated with the microservice, from the differences relating to each quality of service parameter; And

- Calculer un indicateur de qualité de service de programme à partir des indicateurs de qualités de services élémentaires déterminées pour chaque microservice du programme;- Calculating a program service quality indicator from the elementary service quality indicators determined for each microservice of the program;

- Effectuer une opération de traitement relative au traitement d’au moins une partie des microservices du programme dans un dispositif du réseau en fonction des indicateurs de qualité de service.- Perform a processing operation relating to the processing of at least part of the microservices of the program in a device of the network according to the quality of service indicators.

Dans un mode de réalisation, l’opération de traitement est un arrêt de la partie des microservices du programme dans le dispositif source.In one embodiment, the processing operation is a termination of the microservices portion of the program in the source device.

Dans un mode de réalisation, le procédé comprend en outre une étape de sélection d’au moins un dispositif candidat cible parmi la pluralité de dispositifs en fonction de l’indicateur de qualité de service de programme et d’une information de consommation d’énergie déterminée pour chaque dispositif à l’instant T, en utilisant le graphe. L’opération de traitement consiste alors à déplacer ou dupliquer la partie des microservices dans le au moins un dispositif candidat sélectionné pour une exécution du programme par le au moins un dispositif sélectionné.In one embodiment, the method further comprises a step of selecting at least one target candidate device from among the plurality of devices according to the program quality of service indicator and energy consumption information determined for each device at time T, using the graph. The processing operation then consists of moving or duplicating the part of the microservices in the at least one candidate device selected for execution of the program by the at least one selected device.

Dans des modes de réalisation, dans l’étape de sélection, le dispositif source est apte à rechercher un nœud voisin logiquement proche du nœud représentant le dispositif source dans le graphe et pour mettre en œuvre des échanges de négociations avec le nœud voisin.In embodiments, in the selection step, the source device is able to search for a neighboring node logically close to the node representing the source device in the graph and to implement negotiation exchanges with the neighboring node.

Le procédé peut comprendre une étape consistant à gérer les dispositifs du réseau en utilisant le graphe dans laquelle un nœud du graphe est apte à être ajouté ou supprimé dynamiquement de l'espace multidimensionnel.The method can include a step consisting in managing the devices of the network using the graph in which a node of the graph is capable of being added or removed dynamically from the multidimensional space.

Un indicateur de qualité de service élémentaire associé à un microservice peut être calculé en effectuant la somme pondérée des différences relatives à chaque paramètre de qualité de service en utilisant des poids élémentaires associés à chaque paramètre de qualité de service.An elementary quality of service indicator associated with a microservice can be calculated by performing the weighted sum of the differences relating to each quality of service parameter using elementary weights associated with each quality of service parameter.

La somme des poids élémentaires peut être égale à 1.The sum of the elementary weights can be equal to 1.

Dans un mode de réalisation, un indicateur de qualité de service de programme peut être calculé en effectuant la somme pondérée des qualités de services élémentaires déterminées pour les microservices du programme en utilisant des poids globaux associés à chaque microservice.In one embodiment, a program service quality indicator can be calculated by performing the weighted sum of the elementary service qualities determined for the microservices of the program using global weights associated with each microservice.

La somme des poids globaux peut être égale à 1.The sum of the global weights can be equal to 1.

Dans un mode de réalisation, l’indicateur de qualité de service élémentaire calculé pour un microservice peut être la valeur minimale entre les différences relatives à chaque paramètre de qualité de service, chacune pondérée par un indicateur d’impact.In one embodiment, the elementary quality of service indicator calculated for a microservice can be the minimum value between the differences relating to each quality of service parameter, each weighted by an impact indicator.

Dans un mode de réalisation, l’indicateur de qualité de service de programme peut être la plus petite valeur parmi les indicateurs de qualité de service élémentaires calculés pour les microservices du programme.In one embodiment, the program quality of service indicator may be the smallest value among the elementary quality of service indicators calculated for the microservices of the program.

Le procédé peut comprendre une étape de détermination de l’information de consommation d’énergie de chaque dispositif de l’ensemble de dispositifs, l’étape de détermination comprenant :The method may include a step of determining the power consumption information of each device of the set of devices, the determining step comprising:

- déterminer la consommation d’énergie du processeur central CPU du dispositif ;- determine the energy consumption of the central processor CPU of the device;

- déterminer la consommation d’énergie de la RAM du dispositif ;- determine the energy consumption of the RAM of the device;

- déterminer la consommation d’énergie des carte d’interface réseau du dispositif et du disque dur du dispositif ;- determine the power consumption of the device's network interface card and the device's hard disk;

L’information de consommation d’énergie du dispositif peut être calculée à partir de la consommation d’énergie du processeur central CPU du dispositif, de la consommation d’énergie de la RAM, de la consommation d’énergie des cartes d’interface réseau et de la consommation du disque dur du dispositif.Device power consumption information can be calculated from device CPU central processor power consumption, RAM power consumption, network interface cards power consumption and consumption of the device's hard disk.

Dans un mode de réalisation, la consommation d’énergie E du processeur central CPU du dispositif peut être déterminée selon l’équation : In one embodiment, the energy consumption E of the central processor CPU of the device can be determined according to the equation:

désigne la capacitance du processeur central, désigne la tension du processeur central, désigne la fréquence du processeur central et la quantité d’énergie consommée à un instant donné par le (CPU) du dispositif. denotes the capacitance of the central processor, denotes the voltage of the central processor, denotes the frequency of the central processor and the amount of energy consumed at a given time by the (CPU) of the device.

La consommation d’énergie E générée par un microservice donné sur la carte d’interface réseau ou le disque dur du dispositif peut être déterminée, selon l’équation :The energy consumption E generated by a given microservice on the network interface card or the hard disk of the device can be determined, according to the equation:

Wu désigne la consommation en Watts du dispositif lorsque la carte d’interface réseau du dispositif ou le disque dur du dispositif est dans un état actif. Wi désigne lorsque la carte d’interface réseau du dispositif ou le disque dur du dispositif est dans un état inactif. Li désigne le taux de transfert d’un microservice. LMAXdésigne le taux de transfert maximal du microservice et L désigne la charge courante du dispositif à l’instant T.Wu refers to the Watts consumed by the device when the device's network interface card or the device's hard drive is in an active state. Wi refers to when the device's network interface card or the device's hard drive is in an idle state. Li denotes the transfer rate of a microservice. L MAX denotes the maximum transfer rate of the microservice and L denotes the current load of the device at time T.

Dans un mode de réalisation, le procédé est lui-même exécuté sous la forme d’un microservice.In one embodiment, the method itself is executed as a microservice.

Il est en outre proposé un système de contrôle de traitement de programmes, mis en œuvre dans un système informatique, comprenant une pluralité de dispositifs informatiques connectés au moyen d’au moins un réseau informatique, chaque dispositif ayant une pluralité de ressources matérielles, chaque programme étant configuré sous la forme d’un ensemble de microservices, chaque dispositif étant apte à traiter au moins un programme, la pluralité de dispositifs informatiques étant représentée sous la forme d’un graphe comprenant des nœuds, deux nœuds étant reliés par un lien, un nœud représentant un dispositif informatique, un lien reliant de nœuds représentant la connexion entre les deux dispositifs informatiques représentés par les nœuds. Les nœuds sont logiquement indexés dans une structure multidimensionnelle selon les ressources d’un espace muldimensionnel. Le système est configuré pour :
- Recevoir une demande de traitement d’au moins une partie des microservices d’un programme d’un dispositif source (D) de l’ensemble de dispositifs, émise dans l'espace multidimensionnel;
- Pour chaque paramètre de qualité de service parmi un ensemble de paramètres de qualité de service représentant des paramètres de capacité de ressources matérielles du dispositif source, déterminer la différence entre la valeur cible et la valeur obtenue du paramètre de qualité de service pour le traitement du microservice par le dispositif requérant, ce qui fournit une différence relative au paramètre de qualité de service, les paramètres de qualité de service comprenant au moins la fréquence du processeur central du dispositif source, la capacité de la mémoire RAM du dispositif source, le taux de transfert de l’interface réseau du dispositif source, et le taux de transfert du disque dur du dispositif;
- Calculer pour chaque microservice, un indicateur de qualité de service élémentaire associé au microservice, à partir des différences relatives à chaque paramètre de qualité de service ; et
- Calculer un indicateur de qualité de service de programme à partir des indicateurs de qualités de services élémentaires déterminées pour chaque microservice du programme ;
- Effectuer une opération de traitement relative au traitement d’au moins une partie des microservices du programme dans un dispositif du réseau en fonction des indicateurs de qualité de service.
There is further provided a program processing control system, implemented in a computer system, comprising a plurality of computing devices connected by means of at least one computer network, each device having a plurality of hardware resources, each program being configured in the form of a set of microservices, each device being capable of processing at least one program, the plurality of computing devices being represented in the form of a graph comprising nodes, two nodes being connected by a link, a node representing a computing device, a link connecting nodes representing the connection between the two computing devices represented by the nodes. The nodes are logically indexed in a multidimensional structure according to the resources of a multidimensional space. The system is configured for:
- Receiving a request to process at least part of the microservices of a program from a source device (D) of the set of devices, transmitted in the multidimensional space;
- For each quality of service parameter among a set of quality of service parameters representing hardware resource capacity parameters of the source device, determining the difference between the target value and the value obtained from the quality of service parameter for the processing of the microservice by the requesting device, which provides a difference relating to the quality of service parameter, the quality of service parameters including at least the frequency of the central processor of the source device, the capacity of the RAM memory of the source device, the rate of source device's network interface transfer, and the device's hard disk transfer rate;
- Calculate for each microservice, an elementary quality of service indicator associated with the microservice, from the differences relating to each quality of service parameter; And
- Calculating a program service quality indicator from the elementary service quality indicators determined for each microservice of the program;
- Perform a processing operation relating to the processing of at least a part of the microservices of the program in a device of the network according to the quality of service indicators.

Les modes de réalisation de l’invention permettent un placement du traitement des microservices sur les dispositifs informatiques du réseau de manière optimisée en fonction de la consommation d’énergie du système.Embodiments of the invention enable placement of microservices processing on network computing devices in an optimized manner based on system power consumption.

Ils permettent notamment une reconfiguration dynamique par redéploiement des microservices et de modifier dynamiquement les reconfigurations des applications sur les divers dispositifs matériels du réseau.They allow in particular a dynamic reconfiguration by redeployment of microservices and to dynamically modify the reconfigurations of the applications on the various hardware devices of the network.

Avantageusement, ils permettent de déterminer les déploiements de microservices qui permettent la meilleure exploitation matérielle et la plus faible consommation électrique des composants matériels des dispositifs informatiques matériels du réseau.Advantageously, they make it possible to determine the deployments of microservices which allow the best hardware exploitation and the lowest power consumption of the hardware components of the hardware computing devices of the network.

Brève Description des FiguresBrief Description of Figures

D’autres caractéristiques, détails et avantages de l’invention ressortiront à la lecture de la description faite en référence aux dessins annexés donnés à titre d’exemple et qui représentent, respectivement :Other characteristics, details and advantages of the invention will become apparent on reading the description given with reference to the appended drawings given by way of example and which represent, respectively:

La représente un exemple de système informatique dans lequel peut être mis en œuvre le système et le procédé de planification de traitement selon les modes de réalisation de l’invention; There depicts an exemplary computer system in which the treatment planning system and method according to embodiments of the invention may be implemented;

La représente schématiquement les composants matériels (ou ressources matérielles) d’un dispositif informatique, selon certains modes de réalisation de l’invention ; There schematically represents the hardware components (or hardware resources) of a computing device, according to certain embodiments of the invention;

La est un exemple d’architecture de superposition de réseau pouvant être utilisée par le réseau informatique ; There is an example of a network overlay architecture that can be used by the computer network;

La est un organigramme représentant le procédé de supervision de microservice, selon certains modes de réalisation de l’invention ; et There is a flowchart representing the microservice monitoring method, according to some embodiments of the invention; And

La est un organigramme représentant le procédé de planification de traitement, selon certains modes de réalisation de l’invention ; There is a flowchart depicting the treatment planning method, according to certain embodiments of the invention;

Description détaillée de la demandeDetailed description of the request

La représente un exemple de système informatique 100 dans lequel peuvent être mis en œuvre le système et le procédé de traitement de programme selon certains modes de réalisation.There depicts an exemplary computer system 100 in which the program processing system and method according to certain embodiments may be implemented.

Le système informatique comprend au moins un réseau de communication 2, qui peut être centralisé ou non centralisé, et un ensemble de dispositifs informatiques 10 connectés entre eux via le réseau 2.The computer system comprises at least one communication network 2, which can be centralized or non-centralized, and a set of computer devices 10 connected to each other via the network 2.

Un réseau de communication peut être par exemple un réseau de type WIFI ou satellite (par exemple, Ethernet, sans fil, 4G, Bluetooth, etc.).A communication network can for example be a WIFI or satellite type network (for example, Ethernet, wireless, 4G, Bluetooth, etc.).

Les dispositifs 10 (encore appelé « appareil » ou « machine ») peuvent comprendre tout type de dispositif informatique, notamment des dispositifs mobiles, comme des ordinateurs personnels, des téléphones mobiles intelligents (appelé « Smartphone » en langue anglo-saxonne), des tablettes informatiques, etc.The devices 10 (also called “device” or “machine”) can include any type of computer device, in particular mobile devices, such as personal computers, smart mobile telephones (called “Smartphone” in English language), tablets computers, etc.

Les dispositifs informatiques 10 peuvent supporter différents types de réseaux de communication.Computing devices 10 can support different types of communication networks.

Les dispositifs informatiques 10 peuvent comprendre des dispositifs hétérogènes, c’est à dire de différents types.The computing devices 10 can comprise heterogeneous devices, that is to say of different types.

Un dispositif informatique 10 est apte à exécuter un programme (encore appelé ‘application’). Chaque programme étant configuré sous la forme d’un ensemble de composants logiciels de programme encore appelés ci-après « microservices ». Chaque dispositif informatique 10 est apte à traiter (c’est-à-dire exécuter) un programme et les microservices compris dans un programme.A computer device 10 is capable of executing a program (also called an 'application'). Each program being configured in the form of a set of program software components also referred to below as “microservices”. Each computing device 10 is capable of processing (that is to say executing) a program and the microservices included in a program.

Les dispositifs informatiques 10 du réseau 2 sont représentés sous la forme d’un graphe comprenant des nœuds, deux nœuds étant reliés par une connexion, un nœud représentant un dispositif informatique, un lien reliant deux nœuds représentant la connexion entre les deux dispositifs informatiques représentés par les nœuds.The computing devices 10 of the network 2 are represented in the form of a graph comprising nodes, two nodes being linked by a connection, a node representing a computing device, a link connecting two nodes representing the connection between the two computing devices represented by the knots.

Chaque programme est ainsi déployé sur un graphe de dispositifs connectés, dont les nœuds peuvent être:Each program is thus deployed on a graph of connected devices, whose nodes can be:

- des dispositifs individuels ayant des caractéristiques hétérogènes (par exemple des dispositifs dépendant de batteries, des dispositifs mobiles, et des dispositifs ayant des interfaces réseau différentes) ou- individual devices with heterogeneous characteristics (e.g. battery dependent devices, mobile devices, and devices with different network interfaces) or

- des entités abstraites telles que des clusters ou des cloudlets.- abstract entities such as clusters or cloudlets.

Une entité abstraite désigne un fournisseur de ressources tel qu’un cluster ou un cloudlet. Une entité abstraite peut être déployée et connectée de la même manière que des dispositifs individuels, en établissant la quantité de ressources à fournir et gérer.An abstract entity designates a resource provider such as a cluster or a cloudlet. An abstract entity can be deployed and connected in the same way as individual devices, establishing the amount of resources to be provided and managed.

Les dispositifs informatiques 10 peuvent ou non appartenir à une même hiérarchie, c’est-à-dire appartenir ou non à un seul niveau d'abstraction. Dans un mode de réalisation où les nœuds appartiennent à une même hiérarchie, le procédé de planification de traitement de programme peut être distribué, c’est-à-dire qu’il n'est pas exécuté par une unique entité centrale qui décide de la manière dont la charge doit être équilibrée mais est distribué parmi les nœuds correspondant aux différents dispositifs informatiques 10. Les nœuds représentant les dispositifs informatiques 10 peuvent alors mettre en œuvre un procédé de négociation en échangeant des messages pour gérer la planification du traitement.The computing devices 10 may or may not belong to the same hierarchy, that is to say may or may not belong to a single level of abstraction. In an embodiment where the nodes belong to the same hierarchy, the program processing planning method can be distributed, that is to say it is not executed by a single central entity which decides on the how the load is to be balanced but is distributed among the nodes corresponding to the different computing devices 10. The nodes representing the computing devices 10 can then implement a negotiation process by exchanging messages to manage the processing schedule.

Le procédé de planification peut être utilisé dans différents types de système, tels que par exemple:The planning process can be used in different types of system, such as for example:

- Dans des systèmes de clusters gérés par différents types de technologies. Dans une telle application, le procédé de planification de traitement peut remplacer un procédé de déploiement et d'équilibrage de charge classique de manière à avoir des nœuds “masters” qui ne soient que des gestionnaires de découverte et d'application de restrictions (nombre de copies, vitesse de réponse requise, etc.).- In cluster systems managed by different types of technologies. In such an application, the processing planning process can replace a conventional deployment and load balancing process so as to have “master” nodes which are only discovery and restriction application managers (number of copies, required response speed, etc.).

- Dans des systèmes de dispositifs informatiques connectés par au moins un réseau 2 (par exemple ordinateurs portables, tablettes, téléviseurs intelligents) dans lesquels des applications peuvent être exécutées sur différents dispositifs du système, comme par exemple des systèmes de type Internet des Objets (IoT)).- In systems of computing devices connected by at least one network 2 (e.g. laptops, tablets, smart TVs) in which applications can be executed on different devices of the system, such as for example Internet of Things (IoT) type systems )).

Les connexions entre les dispositifs informatiques 10 (représentées par des liens entre deux nœuds) permettent de déterminer le taux de transfert auquel les microservices peuvent envoyer ou recevoir des données entre eux.The connections between the computing devices 10 (represented by links between two nodes) make it possible to determine the transfer rate at which the microservices can send or receive data between them.

Un dispositif informatique 10 désigne une entité de traitement identifiable par un unique identifiant de dispositif ID.A computer device 10 designates a processing entity identifiable by a unique device identifier ID.

La est un schéma représentant un dispositif informatique 10, selon des modes de réalisation de l’invention.There is a diagram representing a computing device 10, according to embodiments of the invention.

Un dispositif informatique 10 comprend un processeur 22, encore appelé Unité Centrale de Traitement ou CPU (acronyme pour l’expression anglaise correspondante « Central Processing Unit »), un dispositif de mémoire de masse 26, une interface entrée/sortie (E/S ou I/O en anglais) 28, et une interface homme-machine (HMI) 30. Le dispositif informatique 10 peut aussi être couplé à une ou plusieurs ressources externes 32 par l'intermédiaire d’un réseau 35 (qui peut être le même que le réseau 2 ou un autre réseau), ou d'un dispositif d’interface réseau 31. L’interface réseau 31 peut être connectée à un support de communication 33, qui peut être lui-même en communication avec d’autres dispositifs informatiques. Le dispositif d’interface réseau comprend une carte d’interface réseau NIC 310 (acronyme pour l’expression anglaise correspondante « Network Interface Card »). La carte réseau(NIC) permet les communications filaires et sans fil entre le dispositif 10 et d’autres dispositif informatiques 10 connectés via le réseau 2 ainsi que les communications via le réseau 35, par exemple au moyen du protocole Internet (IP).A computer device 10 comprises a processor 22, also called a Central Processing Unit or CPU (acronym for the corresponding English expression "Central Processing Unit"), a mass memory device 26, an input/output interface (I/O or I/O) 28, and a human-machine interface (HMI) 30. The computing device 10 can also be coupled to one or more external resources 32 via a network 35 (which can be the same as the network 2 or another network), or of a network interface device 31. The network interface 31 can be connected to a communication medium 33, which can itself be in communication with other computing devices. The network interface device comprises a network interface card NIC 310 (acronym for the corresponding English expression "Network Interface Card"). The network card (NIC) allows wired and wireless communications between the device 10 and other computing devices 10 connected via the network 2 as well as communications via the network 35, for example by means of the Internet protocol (IP).

Les ressources externes 32 peuvent inclure, sans limitation, des serveurs, des bases de données, des dispositifs de mémoire de masse, des dispositifs périphériques, des services de réseau cloud, ou tout autre ressource informatique appropriée pouvant être utilisée avec le dispositif 10.External resources 32 may include, without limitation, servers, databases, mass storage devices, peripheral devices, cloud network services, or any other suitable computing resources that may be used with device 10.

Le processeur CPU 22 est configuré pour exécuter sur des instructions de programme enregistrées dans la mémoire 34.CPU 22 is configured to execute on program instructions stored in memory 34.

La mémoire 26 comprend une mémoire à accès aléatoire RAM 260 (Random Access Memory). La mémoire 26 peut en outre inclure un ou plusieurs dispositifs de mémoire comme par exemple et sans limitation une mémoire à lecture seule (ROM acronyme pour Read-Only Memory), une mémoire volatile, une mémoire non volatile, une mémoire vive statique (SRAM acronyme pour Static Random Access Memory), une mémoire dynamique à accès aléatoire (DRAM acronyme pour Dynamic Random Access Memory), une mémoire flash, une mémoire cache ou tout autre dispositif capable de stocker des informations.The memory 26 comprises a random access memory RAM 260 (Random Access Memory). The memory 26 may further include one or more memory devices such as, for example and without limitation, a read-only memory (ROM acronym for Read-Only Memory), a volatile memory, a non-volatile memory, a static random access memory (SRAM acronym for Static Random Access Memory), dynamic random access memory (DRAM acronym for Dynamic Random Access Memory), flash memory, cache memory or any other device capable of storing information.

La mémoire de masse 24 comprend au moins un disque dur HDD 240 (Hard Disk Drive). Elle peut en outre comprendre des dispositifs de stockage de données tels qu’un disque optique, ou tout autre dispositif capable de stocker des informations.The mass memory 24 comprises at least one hard disk HDD 240 (Hard Disk Drive). It may further include data storage devices such as an optical disc, or any other device capable of storing information.

Le processeur CPU 22 peut fonctionner sous le contrôle d'un système d'exploitation 261 qui réside dans la mémoire 26. Le système d'exploitation 261 peut gérer les ressources du dispositif informatique 10 de sorte que le code des programmes du dispositif informatique 10, intégré sous forme d'un ou plusieurs logiciels d'application, telle que les applications 262 qui résident dans la mémoire 26, puisse disposer d'instructions exécutées par le processeur 22. En variante, le processeur 22 peut exécuter directement les applications 262 sans système d'exploitation 261. Une ou plusieurs structures de données 264 peuvent également résider dans la mémoire 26, et peuvent être utilisées par le processeur 22, le système d'exploitation 261, et/ou les applications 262 pour stocker ou manipuler des données.CPU 22 may operate under the control of an operating system 261 which resides in memory 26. Operating system 261 may manage the resources of computing device 10 such that the program code of computing device 10, integrated as one or more application software, such as applications 262 which reside in memory 26, may have instructions executed by processor 22. Alternatively, processor 22 may directly execute applications 262 without system 261. One or more data structures 264 may also reside in memory 26, and may be used by processor 22, operating system 261, and/or applications 262 to store or manipulate data.

L'interface E/S 28 fournit une interface machine qui couple le processeur 22 de façon fonctionnelle avec d'autres dispositifs et systèmes, tels que le réseau 35 ou les ressource externes 32.I/O interface 28 provides a machine interface that operably couples processor 22 with other devices and systems, such as network 35 or external resources 32.

Le système informatique 100 peut comprendre des applications localisées extérieurement aux dispositifs informatiques 10 et pouvant être distribuées aux dispositifs informatiques 10 fournies par un système Cloud (nuage) sur le réseau 35.Computing system 100 may include applications located external to computing devices 10 and distributable to computing devices 10 provided by a cloud system over network 35.

L’interface Homme Machine IHM 30 peut être couplée avec le processeur 22 pour permettre à un utilisateur d'interagir directement avec le dispositif informatique 10. L’interface IHM 30 peut inclure un affichage vidéo ou alphanumérique, un écran tactile, un haut-parleur et tout autre élément visuel et/ou audio capable de communiquer des données à l'utilisateur. L’interface IHM 30 peut aussi inclure des dispositifs de contrôle de saisie tels qu'un clavier alphanumérique, un dispositif de pointage, des claviers, des boutons poussoir, des boutons de commande, des microphones, etc., capables d'accepter des commandes ou des saisies de l'utilisateur et de les transmettre au processeur 22.The Human Machine Interface HMI 30 can be coupled with the processor 22 to allow a user to interact directly with the computing device 10. The HMI interface 30 can include a video or alphanumeric display, a touch screen, a loudspeaker and any other visual and/or audio element capable of communicating data to the user. The HMI interface 30 can also include input control devices such as an alphanumeric keyboard, a pointing device, keyboards, push buttons, command buttons, microphones, etc., capable of accepting commands or user inputs and transmit them to the processor 22.

Le dispositif 10 peut comprendre une ou plusieurs bases de données 25 pour collecter et organiser les données utilisées par les différents composants du système. La base de données 25 peut inclure des données et/ou des structures de données stockant les données. Les bases de données 25 peuvent résider dans la mémoire de masse 24.The device 10 can comprise one or more databases 25 to collect and organize the data used by the various components of the system. Database 25 may include data and/or data structures storing the data. Databases 25 can reside in mass memory 24.

Chaque dispositif informatique 10 a des capacités de composants spécifiques en termes de fréquence de processeur central CPU (22), de taille de RAM (260), de vitesse de disque dur (240), de taux de transfert du réseau 2 (vitesse à laquelle les données sont envoyées ou reçues par le réseau 2), et de batterie (29), en fonction du type de dispositif et de sa configuration.Each computing device 10 has specific component capabilities in terms of CPU (22) central processor frequency, RAM (260) size, hard drive (240) speed, network 2 transfer rate (speed at which the data is sent or received by the network 2), and battery (29), depending on the type of device and its configuration.

Chaque dispositif 10 est capable d’exécuter des microservices, en leur fournissant une quantité de ressources qui peut dépendre de leurs besoins et/ou de besoins de microservices compétiteurs (par exemple en cas de planification partagée proportionnelle).Each device 10 is capable of executing microservices, providing them with an amount of resources that may depend on their needs and/or on the needs of competing microservices (for example in the case of proportional shared planning).

Un dispositif 10 comprend un programme de supervision qui s’exécute sur le dispositif pour :A device 10 includes a supervisory program that runs on the device to:

- suivre le statut de chacun de ses composants en terme de charge, de capacité et de consommation d’énergie; et- monitor the status of each of its components in terms of load, capacity and energy consumption; And

- pour exécuter un procédé de planification de traitement distribué selon les modes de réalisation de l’invention.- to execute a distributed treatment planning method according to the embodiments of the invention.

Le procédé de planification de traitement distribué permet de déterminer une opération de microservices parmi:The distributed processing planning method allows to determine a microservices operation among:

- un déplacement de microservice(s) vers un autre dispositif pair 10;- a movement of microservice(s) to another peer device 10;

- un démarrage d’exécution de microservice(s) ;- a start of execution of microservice(s);

- un arrêt d’exécution de microservice(s) ;- a stop in the execution of microservice(s);

- un duplication d’un microservice vers un autre dispositif pair 10.- a duplication of a microservice to another peer device 10.

De telles opérations peuvent dépendre de conditions de consommation énergétique de critères de négociation, d’équilibre de charge, de nombre de sauts, etc.Such operations may depend on conditions of power consumption, negotiation criteria, load balance, number of hops, etc.

Un programme (ou application) est également représenté par graphe orienté comprenant un ensemble de nœuds élémentaires, chaque nœud élémentaire représentant un microservice, les nœuds élémentaires étant reliés par des connexions entre les microservices.A program (or application) is also represented by a directed graph comprising a set of elementary nodes, each elementary node representing a microservice, the elementary nodes being linked by connections between the microservices.

Tel qu’utilisé ici, un microservice désigne une entité fonctionnelle (composant logiciel du programme) identifiable avec un unique identifiant de microservice ID, qui a une fonction associée. Un microservice est un code qui représente cette fonction associée et qui peut être dupliqué par un système de traitement de programme. Lorsqu’un microservice est déployé sur un dispositif 10, le microservice requiert une quantité de ressources en termes de processeur central CPU (22), de capacité réseau (31), de RAM (260) et de disque dur (240) de la part du dispositif 10 qui l’exécute.As used here, a microservice means a functional entity (program software component) identifiable with a unique microservice identifier ID, which has an associated function. A microservice is code that represents this related function and can be duplicated by a program processing system. When a microservice is deployed on a device 10, the microservice requires an amount of resources in terms of central CPU (22), network capacity (31), RAM (260) and hard disk (240) from of the device 10 which executes it.

Les microservices peuvent être de différents types tels que par exemple des microservices d’interface utilisateur graphique, des microservices de calcul et des microservices de gestion de données.Microservices can be of different types such as for example GUI microservices, compute microservices and data management microservices.

Ces types de microservices peuvent différer entre eux sur le plan de :These types of microservices can differ from each other in terms of:

- leur consommation de ressources par défaut,- their default resource consumption,

- la quantité de données qu’ils envoient ou reçoivent, et- the amount of data they send or receive, and

- l’indicateur de restriction associé qui indique si le microservice peut être ou non déplacé et/ou dupliqué d’un dispositif 10 à un autre.- the associated restriction indicator which indicates whether or not the microservice can be moved and/or duplicated from one device 10 to another.

Par exemple un microservice d’interface graphique IU peut être associé à un indicateur de restriction indiquant qu’il ne peut pas être déplacé dans la mesure où l’expérience utilisateur peut être affectée par un tel déplacement. Un microservice de calcul peut être associé à un indicateur de restriction indiquant qu’il peut être dupliqué ou déplacé vers un autre dispositif voisin. Un microservice de gestion de données peut être associé à un indicateur de restriction indiquant qu’il peut être déplacé mais un tel déplacement peut avoir un impact fort sur la consommation de bande passante.For example, a UI GUI microservice might have a restriction flag indicating that it cannot be moved because the user experience might be affected by such a move. A compute microservice can be associated with a restriction flag indicating that it can be duplicated or moved to another nearby device. A data management microservice can be associated with a restriction flag indicating that it can be moved, but such a move can have a strong impact on bandwidth consumption.

Un utilisateur d’un dispositif 10 peut créer son propre type de microservice.A user of a device 10 can create their own type of microservice.

Les connexions entre deux dispositifs peuvent être directes (sans composants intermédiaires autres qu’un routeur) ou indirectes. Les connexions entre des microservices peuvent être logiques/fonctionnelles. Une connexion physique supporte plusieurs connexions de microservice et permet de suivre le taux de transfert possible maximum et courant entre deux dispositifs 10 (capacité de transmission maximale du dispositif avec l’interface réseau).Connections between two devices can be direct (without intermediate components other than a router) or indirect. Connections between microservices can be logical/functional. A physical connection supports multiple microservice connections and tracks the maximum and current possible transfer rate between two devices 10 (maximum transmission capacity of the device with the network interface).

Les connexions entre des microservices stockent logiquement un ensemble de connexions physiques qu’ils utilisent pour communiquer. Ainsi, il est possible de déterminer au moyen d’un superviseur du microservice le trajet des dispositifs 10 qu’une connexion de microservice utilise pour opérer, de même que les taux de transfert courant et attendu.Connections between microservices logically store a set of physical connections that they use to communicate. Thus, it is possible to determine by means of a microservice supervisor the path of the devices 10 that a microservice connection uses to operate, as well as the current and expected transfer rates.

Le système informatique 100 peut comprendre un centre d’opération 12 correspondant à une entité centralisée qui stocke toutes les références à des connexions dans le réseau 2 et à des dispositifs 10 déployés.The computer system 100 may include an operations center 12 corresponding to a centralized entity which stores all references to connections in the network 2 and to devices 10 deployed.

Le système informatique 100 met en œuvre un procédé de planification pour déployer et planifier les microservices sur les dispositifs 10 du réseau, en fonction de la consommation d’énergie des dispositifs 10, et de la Qualité de Service des programmes.The computer system 100 implements a planning process to deploy and plan the microservices on the devices 10 of the network, according to the energy consumption of the devices 10, and the Quality of Service of the programs.

Lors du déploiement de dispositifs 10 dans le réseau 2, les paramètres de capacité du nouveau dispositif 10 peuvent être spécifiés. Par exemple, les paramètres de capacité peuvent comprendre :When deploying devices 10 in network 2, the capacity parameters of the new device 10 can be specified. For example, capacity parameters can include:

- la fréquence du CPU 22 du dispositif 10 en Ghz,- the frequency of the CPU 22 of the device 10 in Ghz,

- la capacité RAM 260 du dispositif 10 en MB,- the RAM capacity 260 of the device 10 in MB,

- la capacité réseau 31 en Mb/s du dispositif 10,- the network capacity 31 in Mb/s of the device 10,

- la capacité du disque dur 240 du dispositif en MB/s,- the capacity of the hard disk 240 of the device in MB/s,

- la capacité de la batterie 29 du dispositif.- the capacity of the battery 29 of the device.

Dans un mode de réalisation, le système informatique 100 peut comprendre un gestionnaire de dispositifs 120, par exemple mis en œuvre dans le centre d’opération 12, configuré pour ajouter un dispositif 10 dans le réseau ou supprimer un dispositif 10 du réseau 2. La suppression peut être effectuée statiquement en réponse à une commande d’un utilisateur ou dynamiquement, selon un scénario de déploiement. Un opérateur du système peut activer une commande de suppression pour chaque dispositif 10 provoquant la suppression d’un dispositif 10, lorsque la commande de suppression est activée.In one embodiment, the computer system 100 may include a device manager 120, for example implemented in the operations center 12, configured to add a device 10 to the network or remove a device 10 from the network 2. deletion can be done statically in response to a user command or dynamically, depending on a deployment scenario. A system operator can activate a deletion command for each device 10 causing the deletion of a device 10, when the deletion command is activated.

Le procédé de planification de traitement de programme permet de planifier le traitement (l’exécution) des microservices sur un ou plusieurs dispositifs 10 du réseau. Ainsi, une fois déployé, un microservice utilise une quantité de ressources pour un temps déterminé ou indéfini.The program processing scheduling method allows scheduling the processing (execution) of microservices on one or more network devices. Thus, once deployed, a microservice uses a quantity of resources for a determined or indefinite time.

La taille d’un microservice en termes de sérialisation (quantité de données à envoyer sur le réseau si le microservice est déplacé ou dupliqué) peut être prédéfinie. Un tel attribut de taille peut être utilisé pour analyser le coût des opérations relatives à l’exécution de la planification du traitement en termes d’efficacité et d’énergie.The size of a microservice in terms of serialization (amount of data to send over the network if the microservice is moved or duplicated) can be predefined. Such a size attribute can be used to analyze the cost of operations relating to the execution of treatment planning in terms of efficiency and energy.

Le système informatique 100 peut comprendre un gestionnaire de microservices 122 configuré pour exécuter une opération de microservice pouvant être un arrêt, un démarrage, une migration ou une duplication d’un microservice.Computer system 100 may include a microservices manager 122 configured to perform a microservice operation which may be a shutdown, startup, migration, or replication of a microservice.

Les microservices peuvent être déplacés (migrés) d’un dispositif D du réseau à un autre dispositif du réseau D’ en réponse à l’exécution du procédé de planification du traitement du microservice.Microservices can be moved (migrated) from one device D in the network to another device in the network D' in response to the execution of the microservice processing scheduling process.

Le gestionnaire de microservices 122 peut être implémenté dans le centre d’opération (comme dans l’exemple de la ) ou depuis un dispositif spécifique qui connaît ses pairs connectés et est capable d’exécuter des algorithmes décentralisés.The microservices manager 122 can be implemented in the operations center (as in the example in the ) or from a specific device that knows its connected peers and is able to run decentralized algorithms.

En réponse à une demande de déplacement d’un microservice d’un dispositif D à un autre dispositif D’ :In response to a request to move a microservice from a device D to another device D':

- le microservice libère d’abord les ressources de son dispositif courant D ;- the microservice first releases the resources of its current device D;

- le système de planification de traitement de programme exécute le processus de déplacement du microservice de D vers D’ en utilisant la connexion de réseau impliquée pendant une période de temps basée sur la taille du microservice ;- the program processing scheduling system executes the process of moving the microservice from D to D' using the involved network connection for a period of time based on the size of the microservice;

- le microservice commence à se mettre en compétition pour les ressources du nouveau dispositif D’. Si un microservice est déplacé, le microservice peut devenir inatteignable pour une de ses dépendances. Des mécanismes de recherche peuvent alors être mis en œuvre pour une instance dupliquée ou pour établir une recherche spéciale et des mécanismes d’optimisation de trajet pour résoudre un tel problème d’accès au microservice.- the microservice begins to compete for the resources of the new device D'. If a microservice is moved, the microservice may become unreachable for one of its dependencies. Search mechanisms can then be implemented for a duplicate instance or to establish special search and path optimization mechanisms to solve such a microservice access problem.

Le gestionnaire de microservices 122 peut dupliquer un microservice requis en réponse à l’exécution du procédé de planification du traitement du microservice, par exemple si le procédé de planification détermine qu’un tel microservice est très demandé et produit une consommation d’énergie excessive ou une faible QoS (Qualité De Service). Le procédé de planification détermine alors le dispositif cible D’ sur lequel dupliqué le microservice qui peut être : - le même dispositif que le microservice d’origine, ou - un autre dispositif connecté ou atteignable par le dispositif D.The microservice manager 122 may duplicate a required microservice in response to performing the microservice processing scheduling process, for example if the scheduling process determines that such a microservice is in high demand and producing excessive power consumption or low QoS (Quality Of Service). The planning process then determines the target device D' on which the microservice is duplicated, which can be: - the same device as the original microservice, or - another device connected or reachable by device D.

Le gestionnaire de microservices 122 peut arrêter ou démarrer un microservice en réponse à l’exécution du procédé de planification du traitement du microservice.The microservices manager 122 may stop or start a microservice in response to executing the microservice processing scheduling process.

Les dispositifs et/ou les microservices arrêtés peuvent être mis en état de veille ou supprimés de manière permanente.Shut down devices and/or microservices can be put on standby or permanently deleted.

Le procédé de planification permet d’optimiser la charge des dispositifs informatique 10 du système 100 en fonction de la consommation d'énergie des composants matériels des dispositifs informatiques 10.The planning method makes it possible to optimize the load of the computing devices 10 of the system 100 according to the energy consumption of the hardware components of the computing devices 10.

Le procédé de planification des ressources permet de déterminer dynamiquement les dispositifs informatiques 10 sur lesquels le traitement d’un ou plusieurs programmes (ou applications) constitué de microservices doit s’exécuter de manière à optimiser la consommation d’énergie dans le réseau 2.The resource planning process makes it possible to dynamically determine the computing devices 10 on which the processing of one or more programs (or applications) consisting of microservices must be executed so as to optimize the energy consumption in the network 2.

Dans un mode de réalisation de l’invention où le procédé de planification est décentralisé, chaque dispositif informatique 10 peut exécuter des étapes du procédé de planification et négocier avec les autres dispositifs informatiques du réseau 2 en échangeant des messages pour la sélection du ou des dispositifs informatiques cibles sur lesquels la ou les programmes requis doivent être exécutés.In one embodiment of the invention where the planning method is decentralized, each computing device 10 can execute steps of the planning method and negotiate with the other computing devices of the network 2 by exchanging messages for the selection of the device or devices. target computers on which the required program(s) are to be executed.

Dans des modes de réalisation, des paramètres de configuration du procédé de planification peuvent être modifiés pour réduire la consommation énergétique d'une ou plusieurs ressources spécifiées (comme le CPU 22, la RAM 260, la batterie 29, etc.).In embodiments, configuration parameters of the scheduling method may be modified to reduce the power consumption of one or more specified resources (such as CPU 22, RAM 260, battery 29, etc.).

Les dispositifs informatiques 10 sont agencés de sorte que chaque dispositif informatique 10 puisse rechercher un autre dispositif informatique dans le réseau 2, en fonction de la charge d’au moins une ressource parmi un ensemble de ressources des dispositifs informatiques 10. Le gestionnaire de dispositifs 3 est notamment apte à ajouter ou supprimer dynamiquement de nouveaux dispositifs. Ainsi un dispositif peut être isolé à un moment donné et reconnecter dynamiquement à un autre instant.The computing devices 10 are arranged so that each computing device 10 can search for another computing device in the network 2, depending on the load of at least one resource among a set of resources of the computing devices 10. The device manager 3 is particularly capable of dynamically adding or removing new devices. Thus a device can be isolated at a given time and reconnect dynamically at another time.

Dans un mode de réalisation, l’ensemble de ressources informatiques comprend une ou plusieurs ressources parmi le CPU 22, la RAM 260, la carte d’interface réseau NIC 310, le disque dure 20, la batterie 29 d’un dispositif informatique 10.In one embodiment, the set of computing resources includes one or more of CPU 22, RAM 260, network interface card NIC 310, hard disk 20, battery 29 of a computing device 10.

Le système et le procédé de planification de traitement de programme selon les modes de réalisation de l’invention exploitent des requêtes d'un espace multidimensionnel de ressources matérielles (encore appelées ‘composants matériels’ ci-après) pour optimiser la consommation de l'énergie dans un environnement de microservices.The program processing planning system and method according to the embodiments of the invention exploit requests from a multidimensional space of hardware resources (also called 'hardware components' below) to optimize energy consumption. in a microservices environment.

La consommation d'énergie des composants matériels des dispositifs informatiques 10 est étroitement liée à la manière dont sont utilisés ces composants matériels. Par exemple pour un composant de type processeur, la consommation d’énergie peut dépendre de l'intensité, ou de l’utilisation de fonctionnalités spéciales du processeur comme un « turbo boost », etc.The energy consumption of the hardware components of the computing devices 10 is closely related to the way in which these hardware components are used. For example for a processor type component, the power consumption may depend on the intensity, or the use of special processor features such as a "turbo boost", etc.

Ainsi, à un instant donné, pour un microservice M exécuté dans un dispositif informatique D source (10) générant une charge L et une consommation d'énergie E, le procédé de planification de traitement de programme détermine un dispositif destinataire D' dans le réseau 2 tel que:Thus, at a given instant, for a microservice M executed in a source computing device D (10) generating a load L and an energy consumption E, the program processing planning method determines a destination device D' in the network 2 such as:

- D’ dispose au moins de ressources matérielles C de telle sorte que C>=L et- D' has at least material resources C such that C>=L and

- la consommation d'énergie E' générée par le microservice M dans D' soit inférieure à la consommation énergétique E (par exemple, en raison de la charge de courant ou des caractéristiques particulières des composants matériels concernés).- the energy consumption E' generated by the microservice M in D' is less than the energy consumption E (for example, due to the current load or the particular characteristics of the hardware components concerned).

Le dispositif D’ est alors candidat pour exécuter le microservice M en déplaçant M de D vers D’.Device D' is then a candidate to run microservice M by moving M from D to D'.

Le procédé de planification de traitement de programme selon les modes de réalisation de l’invention permet une organisation intelligente des dispositifs informatiques 10 du réseau 2 (par exemple réseau P2P). Ainsi, si un dispositif informatique D a des problèmes de surcharge ou d'énergie (par exemple, situation de batterie faible, dépenses énergétiques des ventilateurs, etc.), le système et le procédé de planification de traitement selon les modes de réalisation de l’invention permettent au dispositif informatique D de déplacer un ou plusieurs microservices M vers un autre dispositif informatique D’ pour diminuer la charge de D et/ou économiser l'énergie de D. En outre, le système et le procédé de planification de traitement selon les modes de réalisation de l’invention peuvent permettre à un dispositif informatique D’ sous-chargé de proposer de l'aide à un ou plusieurs autres dispositifs informatiques D pour traiter les microservices de ces dispositifs D d'une manière plus économe en énergie.The program processing planning method according to the embodiments of the invention allows an intelligent organization of the computing devices 10 of the network 2 (for example P2P network). Thus, if a computing device D has overload or power problems (e.g., low battery situation, fan power expenditures, etc.), the treatment scheduling system and method according to embodiments of the of the invention allow the computing device D to move one or more microservices M to another computing device D' to decrease the load of D and/or save the energy of D. In addition, the system and the process planning method according to embodiments of the invention may enable an under-loaded computing device D' to provide assistance to one or more other computing devices D to process the microservices of those devices D in a more power-efficient manner.

Les ressources matérielles des dispositifs 10 dans le réseau 2 sont organisées sous la forme d'un espace multidimensionnel à N dimensions (par exemple un espace à 4 dimensions). Les dimensions correspondent à des paramètres de capacités représentant des paramètres de capacité de composants des dispositifs informatiques 10.The hardware resources of the devices 10 in the network 2 are organized in the form of an N-dimensional multidimensional space (for example a 4-dimensional space). The dimensions correspond to capacity parameters representing component capacity parameters of the computing devices 10.

Chaque nœud (10) du réseau 2 peut faire des requêtes dans l'espace multidimensionnel selon la ou les ressources à optimiser, chaque nœud pouvant trouver un voisin logiquement proche au sens des paramètres à optimiser sur ces ressources (énergie par exemple) pour engager des négociations et effectuer des opérations sur les microservices (telles qu’une opération d’arrêt, de déplacement, ou de duplication) pour optimiser les paramètre choisis, chaque nœud pouvant entrer ou sortir dynamiquement de l'espace sans altérer la stabilité du système.Each node (10) of the network 2 can make requests in the multidimensional space according to the resource or resources to be optimized, each node being able to find a logically close neighbor in the sense of the parameters to be optimized on these resources (energy for example) to engage negotiations and perform operations on microservices (such as a stop, move, or duplicate operation) to optimize the chosen parameters, each node being able to dynamically enter or exit the space without altering the stability of the system.

Dans un mode de réalisation, l’espace multidimensionnel est un espace à au moins 4 dimensions (N au moins égal à 4), les quatre dimensions correspondant 4 paramètres de capacité comprenant un paramètre de capacité du processeur central 22, à un paramètre de capacité de la RAM 260, à un paramètre de capacité de l’interface réseau 31, et à un paramètre de capacité du disque dur 240.In one embodiment, the multidimensional space is a space with at least 4 dimensions (N at least equal to 4), the four dimensions corresponding to 4 capacity parameters comprising a capacity parameter of the central processor 22, to a capacity parameter of the RAM 260, a capacity parameter of the network interface 31, and a capacity parameter of the hard disk 240.

Dans un mode de réalisation, les quatre paramètres de capacité comprennent :In one embodiment, the four capacity parameters include:

C1. la fréquence du processeur 22 exprimée en GHz,C1. the frequency of the processor 22 expressed in GHz,

C2. la capacité de la RAM 260 exprimée en Mo,C2. the capacity of RAM 260 expressed in MB,

C3. le taux de transfert réseau associé à l’interface réseau 31, etC3. the network transfer rate associated with network interface 31, and

C4. la vitesse du disque dur 240.C4. hard disk speed 240.

Pour faciliter la suite de la description, il sera considéré que l’espace multidimensionnel U est défini, dans un ensemble de dispositifs 10 connectés à un réseau commun 2, et comprend les 4 dimensions C1 à C4.To facilitate the rest of the description, it will be considered that the multidimensional space U is defined, in a set of devices 10 connected to a common network 2, and includes the 4 dimensions C1 to C4.

Des requêtes peuvent être échangées dans l’espace U pour permettre à un dispositif 10 de déterminer le ou les dispositifs 10 du réseau qui ont des ressources suffisantes ou des caractéristiques optimales pour un traitement de microservices, comme par exemple, un microservice à faible besoin de processeur et un dispositif 10 dont le processeur est capable de désactiver certains cœurs pour exécuter un microservice donné.Queries may be exchanged in U-space to allow a device 10 to determine which device(s) 10 in the network have sufficient resources or optimal characteristics for microservice processing, such as a low-cost microservice. processor and a device 10 whose processor is capable of disabling certain cores to run a given microservice.

Pour déterminer si un microservice est un candidat pour un déplacement ou une duplication dans un processus de négociation ultérieur avec un autre dispositif 10 (mis en œuvre au moyen d’échange de messages entre les dispositifs 10), chaque dispositif 10 peut analyser les exigences, le type et les restrictions de traitement d’un microservice.To determine whether a microservice is a candidate for relocation or duplication in a subsequent negotiation process with another device 10 (implemented by means of message exchange between devices 10), each device 10 may analyze the requirements, the type and processing restrictions of a microservice.

Les microservices peuvent comprendre :Microservices can include:

- des microservices qui restent en cours d'exécution jusqu'à ce qu'un objectif soit atteint, tandis que d'autres continuent d'exécuter en permanence des demandes en attente.- microservices that stay running until a goal is met, while others keep running pending requests all the time.

- des microservices qui peuvent être déplacés ou non en fonction de leurs objectifs. Par exemple, alors qu'un microservice qui effectue des opérations CPU à coût élevé peut être déplacé ou dupliqué pour équilibrer la charge, un microservice qui représente un élément d'une interface graphique ne doit pas toujours être déplacé car il fonctionne généralement avec un seul écran.- microservices that can be moved or not depending on their objectives. For example, while a microservice that performs high-cost CPU operations can be moved or duplicated to balance the load, a microservice that represents an element of a GUI should not always be moved because it usually works with a single screen.

Le système et le procédé de planification selon les modes de réalisation de l’invention permettent de déterminer sur quel dispositif cible 10 du réseau exécuter un microservice, en mettant en œuvre un processus de négociation préalable d'une opération de microservices entre les dispositifs informatiques 10 à l’issu duquel il peut être décidé de démarrer, migrer, arrêter, ou dupliquer les microservices sur un dispositif informatiques sélectionné.The planning system and method according to the embodiments of the invention make it possible to determine on which target device 10 of the network to execute a microservice, by implementing a process of prior negotiation of a microservices operation between the computing devices 10 at the end of which it can be decided to start, migrate, stop, or duplicate the microservices on a selected computing device.

Dans un mode de réalisation décentralisé, le système et le procédé de planification de traitement selon les modes de réalisation de l’invention permettent à chaque dispositif 10 d'analyser sa propre charge et/ou sa propre consommation énergétique afin d'effectuer des opérations liées au traitement des microservices (opérations de négociation, d’équilibrage de charge, d’interrogation, etc.) au moyen d’échanges directs avec d'autres dispositifs 10 du réseau.In a decentralized embodiment, the treatment planning system and method according to the embodiments of the invention allow each device 10 to analyze its own load and/or its own energy consumption in order to perform operations related to the processing of microservices (operations of negotiation, load balancing, interrogation, etc.) by means of direct exchanges with other devices 10 of the network.

Le réseau 2 peut reposer sur différentes architectures de superposition de réseau pour permettre aux dispositifs informatiques 10 de rechercher des informations ou des dispositifs informatiques pairs dans un nombre logarithmique de sauts (“hops”) en faisant abstraction du réseau 2 en tant que déploiement de structure de données, tels que:Network 2 may be based on different network overlay architectures to allow computing devices 10 to seek information or peer computing devices in a logarithmic number of hops by abstracting Network 2 as a structure deployment. data, such as:

- une liste circulaire ordonnée itérée avec des techniques de hachage, dont les nœuds et les informations sont indexées dans le même univers d'identifiants un exemple de liste circulaire ordonnée repose par exemple sur la technique “Chord” (comme décrit par exemple dans Ion Stoica, Robert Morris, David Karger, M. Kaashoek, and Hari Balakrishnan.2001. Chord: A scalable peer-to-peer lookup service for internet applications, Vol. 149-160. 149–160. https://doi.org/10.1145/383059.383071);- an ordered circular list iterated with hashing techniques, whose nodes and information are indexed in the same universe of identifiers an example of an ordered circular list is based for example on the “Chord” technique (as described for example in Ion Stoica , Robert Morris, David Karger, M. Kaashoek, and Hari Balakrishnan.2001.Chord: A scalable peer-to-peer lookup service for internet applications, Vol.149-160.149–160.https://doi.org/ 10.1145/383059.383071);

- un arbre binaire qui peut être exploré à travers un espace binaire et des opérations logiques comme XOR (comme décrit par exemple dans Petar Maymounkov and David Eres. 2002. Kademlia: A Peer-to-peer Information System Based on the XOR Metric. Kademlia: A Peer-to-peer Information System Based on the XOR Metric 2429. https://doi.org/10.1007/3-540-45748-8_5 Microsoft. 2018. Creating composite UI based on microservices); ou- a binary tree that can be explored through binary space and logical operations like XOR (as described for example in Petar Maymounkov and David Eres. 2002. Kademlia: A Peer-to-peer Information System Based on the XOR Metric. Kademlia : A Peer-to-peer Information System Based on the XOR Metric 2429. https://doi.org/10.1007/3-540-45748-8_5 Microsoft. 2018. Creating composite UI based on microservices); Or

- une liste chaînée de nœuds qui peuvent rechercher des éléments en effectuant des sauts intelligents dans la structure (comme décrit par exemple dans S. Mandal, S. Chakraborty, and S. Karmakar. 2012. Deterministic 1–2 skip list in distributed system. In 2012 2nd IEEE International Conference on Parallel, Distributed and Grid Computing. 296–301).- a linked list of nodes that can search for items by performing smart skips in the structure (as described for example in S. Mandal, S. Chakraborty, and S. Karmakar. 2012. Deterministic 1–2 skip list in distributed system. In 2012 2nd IEEE International Conference on Parallel, Distributed and Grid Computing. 296–301).

Cependant, l’invention n’est pas limitée à de telles architectures de superpositions de réseau et peut reposer sur d’autres types d’architectures de superposition de réseau qui permettent le déploiement et les requêtes dans des espaces multidimensionnels sur les réseaux P2P.However, the invention is not limited to such network overlay architectures and may rely on other types of network overlay architectures that allow deployment and queries in multidimensional spaces on P2P networks.

Dans un exemple de mode de réalisation, l’espace U peut par exemple reposer sur l’architecture de superposition MAAN (Multi-Attribute Addressable Network) qui dépend de la technique Chord, comme décrit par exemple dans M. Cai, M. Frank, J. Chen, and P. Szekely. 2003. MAAN: a multi-attribute addressable network for grid information services. In Proceedings. First Latin American Web Congress.In an exemplary embodiment, the U-space can for example be based on the MAAN (Multi-Attribute Addressable Network) overlay architecture which depends on the Chord technique, as described for example in M. Cai, M. Frank, J. Chen, and P. Szekely. 2003. MAAN: a multi-attribute addressable network for grid information services. In Proceedings. First Latin American Web Congress.

Chord est un réseau de recouvrement de type table de hachage distribuée pour les réseaux pair à pair (P2P). Chord déploie une liste circulaire ordonnée de dispositifs 10 dans laquelle les dispositifs sont organisés dans le sens des aiguilles d'une montre en fonction de leur identifiant ID. Dans Chord, chaque dispositif ainsi que les éléments à rechercher (c'est-à-dire les données, les processus, etc.) sont identifiés avec le même univers d’identifiants IDs.Chord is a distributed hash table-like overlay network for peer-to-peer (P2P) networks. Chord deploys an ordered circular list of devices 10 in which devices are arranged clockwise according to their ID. In Chord, each device as well as the elements to be searched (i.e. data, processes, etc.) are identified with the same universe of IDs.

La table de hachage distribuée stocke des paires de clé/valeur en assignant des clés aux différents dispositifs informatiques 10 qui correspondent à des nœuds. Un nœud stocke les valeurs de toutes les clés dont il est responsable. Chord définit la manière selon laquelle des clés sont assignées à des nœuds et comment un nœud peut découvrir la valeur pour une clé donnée en localisant le nœud responsable de la clé.The distributed hash table stores key/value pairs by assigning keys to different computing devices 10 which correspond to nodes. A node stores the values of all the keys for which it is responsible. Chord defines how keys are assigned to nodes and how a node can discover the value for a given key by locating the node responsible for the key.

Les nœuds et les clés sont assignés un identifiant à m bits en utilisant une fonction de hachage (par exemple selon l’algorithme SHA-1).Nodes and keys are assigned an m-bit identifier using a hash function (e.g. according to the SHA-1 algorithm).

Selon le protocole Chord, les nœuds et les clés sont agencés dans un cercle d’identifiants qui a au plus 2mnœuds allant de 0 à 2m-1, m étant le nombre de bits dans la clé de hachage. Certains des nœuds correspondent à des dispositifs informatiques ou à des clés tandis que d’autres sont vides.According to the Chord protocol, nodes and keys are arranged in a circle of identifiers that has at most 2m nodes ranging from 0 to 2m -1, where m is the number of bits in the hash key. Some of the nodes correspond to computing devices or keys while others are empty.

Un nœud a un successeur et un prédécesseur. Le successeur d’un nœud est le nœud suivant dans le cercle selon une direction horaire.A node has a successor and a predecessor. The successor of a node is the next node in the circle in a clockwise direction.

Les nœuds correspondant à des clés peuvent également avoir des successeurs. Le successeur d’un nœud correspondant à une clé k est le premier nœud dont l’identifiant est égal à k ou qui suit k dans le cercle (appelé successeur (k)).Nodes corresponding to keys can also have successors. The successor of a node corresponding to a key k is the first node whose identifier is equal to k or which follows k in the circle (called successor (k)).

Chaque clé est stockée dans un nœud successeur de sorte qu’une recherche de clé k revient à rechercher successeur (k).Each key is stored in a successor node so that a search for key k is equivalent to searching for successor(k).

Le protocole Chord permet de demander une clé à un client (nœud généralement) pour trouver successeur (k).The Chord protocol makes it possible to request a key from a client (generally a node) to find a successor (k).

Chord implémente une méthode de recherche rapide selon laquelle chaque dispositif informatique 10 (représenté par un nœud chord) maintient une table d’adresses (appelée ‘finger table’ en langue anglo-saxonne) contenant jusqu’à m entrées, m étant le nombre de bits dans la clé de hachage. La table d’adresse contient autant d'éléments que la longueur de la chaîne de bits qui représente l'ID le plus élevé de tous les éléments.Chord implements a fast search method according to which each computer device 10 (represented by a chord node) maintains a table of addresses (called 'finger table' in English language) containing up to m entries, m being the number of bits in the hash key. The address table contains as many elements as the length of the bit string that represents the highest ID of all elements.

La i-ème entrée d’un nœud n contient successeur ((n+2i-1) mod m). La première entrée de la table du nœud est le successeur immédiat du nœud. Lorsqu’un nœud recherche une clé k, il passe la requête au successeur ou prédécesseur le plus proche de k selon la table ‘finger’The i-th entry of a node n contains successor ((n+2 i-1 ) mod m). The first entry in the node's table is the node's immediate successor. When a node searches for a key k, it passes the query to the nearest successor or predecessor of k according to the 'finger' table

La illustre un exemple d’architecture de superposition de type chord à plusieurs nœuds (N1, N8, etc.) agencés selon un cercle, comme décrit dans Ion Stoica, Robert Morris, David Karger, M. Kaashoek, and Hari Balakrishnan. 2001. Chord: A scalable peer-to-peer lookup service for internet applications, Vol. 149-160. 149–160. https://doi.org/10.1145/383059.383071.There illustrates an example of a chord-like overlay architecture with multiple nodes (N1, N8, etc.) arranged in a circle, as described in Ion Stoica, Robert Morris, David Karger, M. Kaashoek, and Hari Balakrishnan. 2001. Chord: A scalable peer-to-peer lookup service for internet applications, Vol. 149-160. 149–160. https://doi.org/10.1145/383059.383071.

La montre la table d’adresses (‘finger table’) du nœud N6. La montre les entrées de la table d’adresse au nœud N6 et une requête « Lookup(29) » pour rechercher la clé 29 en commençant au niveau du nœud N6 en utilisant l’algorithme de recherche Chord.There shows the address table ('finger table') of node N6. There shows the address table entries at node N6 and a "Lookup(29)" query to look up key 29 starting at node N6 using the Chord search algorithm.

Dans l’exemple de la , le système prend en charge jusqu'à 127 (1111111 dans le système binaire) dispositifs 10. Par conséquent, la table d’adresses peut contenir jusqu'à 7 éléments. Chaque index i de la table d’adresse est défini par l'identifiant ID de chaque nœud ajouté à 2iétant compris entre 0 et la longueur de la chaîne de bits qui représente l'ID le plus élevé de tous les éléments.In the example of the , the system supports up to 127 (1111111 in the binary system) 10 devices. Therefore, the address table can contain up to 7 elements. Each index i of the address table is defined by the identifier ID of each node added to 2 i being between 0 and the length of the bit string which represents the highest ID of all the elements.

Dans l’approche Chord existante, chaque fois qu’un élément E est recherché à travers un nœud N, N recherche l’index du successeur de E dans sa table d’adresse (finger table), c’est-à-dire l’index le plus élevé possible qui ne dépasse pas l’identifiant de E. Par exemple, si dans la topologie de la , l'élément 24 est recherché par le nœud N6, il sera déterminé que l'élément 24 doit être dans le nœud N23, puisqu'il s'agit de l'élément stocké entre l'index 22 (N6 + 16), c'est-à-dire le plus haut identifiant possible, qui ne dépasse pas 24 (sinon, N6 + 32 = 38). Ainsi, la structure de données utilisée pour rechercher des éléments est une table de hachage cohérente.In the existing Chord approach, whenever an element E is searched through a node N, N searches for the index of E's successor in its finger table, i.e. l 'highest possible index that does not exceed the identifier of E. For example, if in the topology of the , element 24 is searched by node N6, it will be determined that element 24 must be in node N23, since it is the element stored between index 22 (N6 + 16), c ie the highest possible identifier, which does not exceed 24 (otherwise, N6 + 32 = 38). Thus, the data structure used to look up items is a consistent hash table.

D'autre part, les nœuds peuvent rejoindre et quitter à tout moment le réseau 2 de manière dynamique. Une opération d’insertion ou de sortie de nœud du réseau 2 peut être mise en œuvre pour atteindre ce dynamisme.On the other hand, the nodes can join and leave the network 2 dynamically at any time. A network 2 node insertion or exit operation can be implemented to achieve this dynamism.

Un nouveau nœud nN et d'autres nœuds du réseau doivent effectuer plusieurs opérations pour que nN rejoigne le réseau Chord. Le nœud entrant nN se voit d’abord attribuer un ID unique en utilisant une fonction SHA-1 pour transformer son adresse IP. Ensuite, un mécanisme externe garantit une connexion entre nN et un nœud préexistant du réseau Chord qui est trouvé en exécutant une requête à l'intérieur du réseau pour trouver un nœud représentatif d'un successeur immédiat de nN: nN1.A new node nN and other nodes in the network must perform several operations for nN to join the Chord network. The incoming node nN is first assigned a unique ID using a SHA-1 function to transform its IP address. Then, an external mechanism guarantees a connection between nN and a preexisting node of the Chord network which is found by executing a query inside the network to find a node representative of an immediate successor of nN: nN1.

L’information de nN1, constituée d'une référence de nœud prédécesseur de cercle immédiat et d'une table d’adresses (“finger table”), est ensuite utilisée par nN pour affecter sa propre référence de prédécesseur de cercle à celle de nN1 et remplir sa propre “finger table” en copiant celle de nN1. Enfin, la référence prédécesseur de nN1 est remise à nN à cet instant.The information of nN1, consisting of an immediate circle predecessor node reference and a table of addresses (“finger table”), is then used by nN to assign its own circle predecessor reference to that of nN1 and fill its own “finger table” by copying that of nN1. Finally, the predecessor reference of nN1 is reset to nN at this instant.

Une fois que nN a été initialisé, une mise à jour est émise en se déplaçant dans le sens antihoraire le long du cercle pour mettre à jour les tables d’adresses (‘finger tables’) des nœuds précédents, en reconnaissant l'existence de nN et en préservant la cohérence des tables d’adresses. Cette mise à jour est effectuée en attribuant l'ID de nN aux références de tables d’adresses (“finger tables”) appropriées à l'intérieur de la table d’adresses du nœud prédécesseur P si les deux conditions suivantes sont remplies :Once nN has been initialized, an update is issued moving counter-clockwise along the circle to update the previous nodes' finger tables, recognizing the existence of nN and preserving the consistency of the address tables. This update is performed by assigning the ID of nN to the appropriate finger table references within the address table of the predecessor node P if the following two conditions are met:

- P précède nN d’au moins 2i-1 où i est compris entre 1 et m, avec m désignant la longueur des tables d’adresse, et- P precedes nN by at least 2 i -1 where i is between 1 and m, with m designating the length of the address tables, and

- La dernière entrée du nœud P succède à nN. Cette opération de mise à jour est maintenue jusqu'à ce qu'un nœud précédent P, dont la i-ème entrée précède nN, soit atteint. Enfin, la responsabilité des clés correspondantes est déléguée du nœud nN1 à nN.- The last entry of node P succeeds nN. This update operation is maintained until a previous node P, whose i-th entry precedes nN, is reached. Finally, the responsibility for the corresponding keys is delegated from node nN1 to nN.

Une opération de sortie d’un nœud affecte les membres du réseau lorsque l'opération de sortie est exécutée. Plus précisément, un nœud sortant LN informe tout d’abord son nœud prédécesseur pLN que le nœud successeur immédiat de LN dans le cercle, LN1, est désormais son successeur immédiat dans le cercle. Ensuite, la référence de prédécesseur de cercle de LN1 est définie sur pLN. Une opération de mise à jour similaire à celle décrite pour l'opération d’insertion est effectuée avec l'ID du successeur de LN. Le but de cette opération de mise à jour est de maintenir à jour les tables d’adresses (“finger tables”) situées dans la contre-horloge le long du cercle. Enfin, la responsabilité des clés de LN est déléguée à LN1.An exit operation from a node affects network members when the exit operation is performed. More precisely, an outgoing node LN first informs its predecessor node pLN that the immediate successor node of LN in the circle, LN1, is now its immediate successor in the circle. Then the circle predecessor reference of LN1 is set to pLN. An update operation similar to that described for the insert operation is performed with the LN successor ID. The purpose of this update operation is to keep the address tables (“finger tables”) located in the counter clock along the circle up to date. Finally, responsibility for LN's keys is delegated to LN1.

L’architecture MAAN existante généralise l'approche Chord pour prendre en charge les requêtes à n dimensions ainsi que les requêtes par intervalle. MAAN utilise une première fonction de hachage (SHA-1 par exemple) afin d'attribuer un identifiant de bits de longueur m pour chaque nœud et une deuxième fonction de hachage préservant la localité (une fonction configurée pour fournir en sortie des valeurs consécutives à partir d'entrées associées) qui, à la différence de l'approche Chord de base, est utilisé pour attribuer à chaque attribut un identifiant dans l'espace de m-bits en fonction de sa valeur (même espace partagé par les identifiants de nœud de m-bits). L’utilisation de tels identifiants permet d’éviter que la première fonction de hachage (SHA-1) ne détruise la localité des clés dans la mesure où MAAN cherche à leur associer des valeurs d'attributs numériques au lieu des noms d'objets. Ainsi, cela permet l'exécution de deux approches de résolution de requêtes multi-attributs différentes qui ne sont pas possibles dans le système de Chord, ces deux approches comprenant:The existing MAAN architecture generalizes the Chord approach to support n-dimensional queries as well as range queries. MAAN uses a first hash function (SHA-1 for example) to assign a bit identifier of length m for each node and a second locality-preserving hash function (a function configured to output consecutive values from associated entries) which, unlike the basic Chord approach, is used to assign each attribute an identifier in the m-bit space based on its value (same space shared by the node identifiers of m-bits). The use of such identifiers prevents the first hash function (SHA-1) from destroying the locality of the keys insofar as MAAN seeks to associate them with numeric attribute values instead of object names. Thus, this allows the execution of two different multi-attribute query resolution approaches that are not possible in Chord's system, these two approaches including:

- Une approche itérative, qui consiste en une recherche de ressources issue d'un nœud N et composée d'un nombre M de sous-requêtes suivantes en fonction du nombre n de dimensions d'attribut disponibles. L’approche itérative fournit une série de listes de candidats qui sont ensuite intersectées dans le nœud d'origine N dans le but de trouver le candidat le plus apte ;- An iterative approach, which consists of a search for resources coming from a node N and composed of a number M of following sub-queries according to the number n of attribute dimensions available. The iterative approach provides a series of candidate lists which are then intersected in the original node N with the aim of finding the most suitable candidate;

- Une résolution de requête dominée par un attribut unique visant à trouver des candidats appropriés en effectuant une recherche répondant aux besoins d'un seul attribut dominant, retournant un ensemble candidat X. Des sous-requêtes pour d'autres attributs sont ensuite appliquées sur X pour obtenir un ensemble unique des candidats dont les membres répondent aux besoins d'autres ressources. Enfin, le nœud d'origine N procède à la sélection du candidat le plus apte par corrélation. En variante, les sous-requêtes peuvent être appliquées localement dans les nœuds membres de X.- A single attribute dominated query resolution aimed at finding suitable candidates by performing a search that meets the needs of a single dominant attribute, returning a candidate set X. Subqueries for other attributes are then applied on X to obtain a single set of candidates whose members meet the needs of other resources. Finally, the origin node N proceeds to the selection of the most suitable candidate by correlation. Alternatively, subqueries can be applied locally in member nodes of X.

Les ressources de périphériques (CPU 22, RAM 260, HDD 240, Interface Réseau 31 et/ou batterie 29) existent à l'intérieur de l'espace U en fonction de la disponibilité de leurs capacités de traitement. Le procédé de planification de traitement selon les modes de réalisation permet de trouver et d’indexer efficacement les ressources qui permettent d’effectuer des opérations de migration et de duplication des microservices afin de réaliser des économies d'énergie. L'espace U étant multidimensionnel (au moins 4 dimensions de ressources), une indexation multidimensionnelle des ressources est prise en charge.The peripheral resources (CPU 22, RAM 260, HDD 240, Network Interface 31 and/or battery 29) exist inside the space U according to the availability of their processing capacities. The processing planning method according to the embodiments makes it possible to efficiently find and index the resources which make it possible to carry out migration and duplication operations of the microservices in order to achieve energy savings. The space U being multidimensional (at least 4 dimensions of resources), a multidimensional indexing of resources is supported.

L'espace U comprenant au moins les 4 dimensions liées aux ressources matérielles (1) fréquence du processeur en GHz, (2) capacité de la RAM en MB, (3) taux de transfert réseau en Mbps, et (4) vitesse du disque dur en Mbps, l’architecture de superposition, par exemple MAAN, peut être utilisée pour indexer chaque valeur de disponibilité de ressource de périphérique sur l'axe U correspondant.U space including at least the 4 dimensions related to hardware resources (1) processor frequency in GHz, (2) RAM capacity in MB, (3) network transfer rate in Mbps, and (4) disk speed drive in Mbps, the overlay architecture, for example MAAN, can be used to index each device resource availability value to the corresponding U axis.

Lorsqu'un appareil a l'intention de rejoindre le réseau MAAN, au moins 4 nœuds logiques différents sont créés dans les 4 dimensions de l’espace (un nœud pour chaque dimension), conformément à l'axe de l'espace U. Ces 4 nœuds logiques suivent des opérations similaires à celles décrites pour des opérations d'insertion de nœuds de Chord. Une formule de préservation de localité qui, pour toute dimension, transforme une valeur numérique représentant la disponibilité d'une ressource en un identifiant correspondant cohérent avec l'espace d'identifiant disponible est en outre utilisée.When a device intends to join the MAAN network, at least 4 different logical nodes are created in the 4 space dimensions (one node for each dimension), in accordance with the space axis U. These 4 logical nodes follow operations similar to those described for Chord node insertion operations. A locality preservation formula which, for any dimension, transforms a numeric value representing the availability of a resource into a corresponding identifier consistent with the available identifier space is further used.

La formule 1 indique une limite supérieure pour les valeurs d'entrée numériques et un nombre maximal de nœuds pris en charge :Formula 1 indicates an upper limit for numeric input values and a maximum number of nodes supported:

(1) (1)

Dans la formule (1), V désigne une valeur d’entrée, N désigne la quantité maximale des nœuds et SL désigne la valeur maximale qu’un nœud peut avoir concernant une ressource (disponibilité d’un composant matériel).In formula (1), V denotes an input value, N denotes the maximum quantity of nodes, and SL denotes the maximum value that a node can have regarding a resource (availability of a hardware component).

La formule (1) est utilisée pour transformer la disponibilité d'une ressource en un nombre entier ID.Formula (1) is used to transform the availability of a resource into an integer ID.

Ainsi, la valeur d’entrée numérique V est multipliée par le nombre maximal de nœuds pris en charge (à tout moment) N et le produit obtenu VxN est divisé par la valeur limite de ressource maximale SL de tous les dispositifs, où les valeurs SL et N sont relatives à chaque contrainte de dimension. Une limite inférieure existe en tant que valeur constante de 0 pour toutes les dimensions en considérant que la position 0 est associée à 0 disponibilité des ressources, tandis que SL n’est pertinent que pour le contexte de chaque dimension (différence d’unités et de magnitudes) et N est une valeur constante.Thus, the digital input value V is multiplied by the maximum number of nodes supported (at any time) N and the obtained product VxN is divided by the maximum resource limit value SL of all devices, where the values SL and N are relative to each dimension constraint. A lower bound exists as a constant value of 0 for all dimensions considering that position 0 is associated with 0 resource availability, while SL is only relevant for the context of each dimension (difference in units and magnitudes) and N is a constant value.

La formule (1) permet de conserver un univers unique d’ID entiers numériques pouvant être attribués aux nœuds quelle que soit la dimension. Ainsi, selon les modes de réalisation de l’invention, les tables d’adresses (“finger tables”) contiennent des enregistrements dans des paires d'identificateurs d'espace de m-bit et de références de nœuds. De tels éléments permettent d’exécuter des requêtes à n-dimensions en appliquant une approche itérative comme celle utilisée dans la proposition originale de MAAN.Formula (1) maintains a unique universe of numeric integer IDs that can be assigned to nodes regardless of dimension. Thus, according to embodiments of the invention, the address tables (“finger tables”) contain records in pairs of m-bit space identifiers and node references. Such elements make it possible to execute n-dimensional queries by applying an iterative approach like the one used in the original MAAN proposal.

Il est à noter que les nœuds ayant une valeur de disponibilité déjà existante pour n'importe quel attribut peuvent rejoindre le réseau, ce qui entraîne une attribution d'identifiant identique à celle d'un nœud préexistant dans le réseau. Pour éviter une collision provoquant le placement de tout nœud entrant entre un nœud de cercle successeur et (s’il existe) un nœud identique à lui-même, ci-après appelé « nœud jumeau » (“twin node” en langue anglo-saxonne), un procédé peut être mis en œuvre pour gérer les nœuds impliqués dans ce phénomène de collision, selon des modes de réalisation de l’invention. Lorsqu'un “nœud jumeau” TN tente de rejoindre le réseau et trouve un nœud prédécesseur rN (nœud racine qui a attribué le même identifiant que TN) le long du cercle, TN entre dans une liste de “nœuds jumeaux” de rN dans laquelle chaque nœud a une référence à son jumeau dans la position précédente et suivante dans la liste.Note that nodes with an already existing availability value for any attribute can join the network, resulting in an ID assignment identical to that of a pre-existing node in the network. To avoid a collision causing the placement of any incoming node between a successor circle node and (if it exists) a node identical to itself, hereinafter called "twin node" ("twin node" in English language ), a method can be implemented to manage the nodes involved in this collision phenomenon, according to embodiments of the invention. When a “twin node” TN tries to join the network and finds a predecessor node rN (root node that has assigned the same identifier as TN) along the circle, TN enters a list of “twin nodes” of rN in which each node has a reference to its twin in the previous and next position in the list.

Dans la suite de la description, il est supposé que l’approche itérative de la technique MAAN est utilisée, à titre d’exemple non limitatif, en considérant toute liste de candidats. Un verrou candidat peut être utilisé pour éviter les collisions de sélection de ressources. Des collisions de sélection de ressources se produisent lorsque le même nœud est sélectionné comme candidat le plus apte par plusieurs exécutions de requêtes différentes et que des opérations simultanées de migration/duplication de microservices se produisent vers ce nœud, provoquant la saturation et augmentation de la consommation énergétique du nouveau candidat en raison des microservices nouvellement reçus en concurrence. Le verrou-candidat est appliqué sur chaque membre , ce qui signifie que les appareils peuvent être candidats à une seule requête à la fois.In the rest of the description, it is assumed that the iterative approach of the MAAN technique is used, by way of non-limiting example, by considering any list of candidates. A candidate lock can be used to avoid resource selection collisions. Resource selection collisions occur when the same node is selected as the fittest candidate by multiple different query executions and concurrent microservice migration/duplication operations occur to that node, causing saturation and increased consumption energy of the new candidate due to the newly received competing microservices. The candidate-lock is applied on each member , which means devices can be candidates for only one query at a time.

L'opération de sortie d’un nœud est similaire à celle de la technique Chord, en traitant les “twin node” comme une fonctionnalité supplémentaire. Pour toute liste de « twin nodes » à l'intérieur de tout nœud racine parent préexistant rN, si rN quitte le réseau, le premier “twin node” TN de la liste de twins à l'intérieur de rN est affecté comme nouveau rN en copiant les éléments de rN, tels que la référence du prédécesseur et sa table d’adresse (“finger table”). Dans le cas où un “twin node” à l'intérieur de la liste de jumeaux de rN part, il est supprimé de la liste “twins” de rN et les références de son prédécesseur et successeur de la liste sont réinitialisées.The output operation of a node is similar to that of the Chord technique, treating twin nodes as an additional feature. For any list of twin nodes inside any pre-existing parent root node rN, if rN leaves the network, the first twin node TN in the list of twins inside rN is assigned as the new rN in copying the elements of rN, such as the reference of the predecessor and its address table (“finger table”). In the event that a “twin node” inside rN's twins list leaves, it is removed from rN's “twins” list and the references of its predecessor and successor in the list are reset.

Des trames de données (« dataframes ») peuvent être implémentées pour obtenir la valeur du changement de disponibilité des ressources dans chaque dispositif, ce qui permet de contrôler la fréquence à laquelle les nœuds sont réindexés dynamiquement dans l’architecture de superposition (par exemple MAAN). Les trames de données (“dataframes”) désignent une collection limitée de valeurs de mesure de la disponibilité des ressources liées à une seule ressource. Le processus de réindexation d'un seul nœud peut ainsi être effectué via un service de supervision qui fait partir le nœud puis le rejoindre à nouveau s'il y a un changement substantiel de son identifiant.Dataframes can be implemented to obtain the value of resource availability change in each device, allowing control over how often nodes are dynamically re-indexed in the overlay architecture (e.g. MAAN ). Dataframes are a limited collection of resource availability measurement values related to a single resource. The process of reindexing a single node can thus be carried out via a monitoring service which makes the node leave and then join it again if there is a substantial change in its identifier.

Le système 100 peut mettre en œuvre un procédé de calcul pour déterminer si un nœud doit être ré-indexé ou non comprenant les étapes consistant à:System 100 may implement a calculation method to determine whether or not a node should be re-indexed comprising the steps of:

- trouver la valeur moyenne dans la trame de données (dataframe) pour obtenir un identifiant qui lui est associé, et- find the average value in the dataframe (dataframe) to get an identifier associated with it, and

- si l'identifiant est différent de celui actuellement indexé, effectuer une opération de ré-indexation sur ce nœud.- if the identifier is different from the one currently indexed, perform a re-indexing operation on this node.

Pour réduire la consommation d’énergie dans le réseau 2 de dispositifs 10, les caractéristiques des composants matériels des dispositifs et la manière dont ils sont utilisés par les processus en cours d’exécution sont pris en compte. L'exécution de microservices dans les dispositifs du réseau prend en compte leur charge en termes de fréquence CPU (22), de RAM (260), de taux de transfert réseau (310) et de vitesse de disque dur (240) et/ou batterie (29).To reduce energy consumption in the network 2 of devices 10, the characteristics of the hardware components of the devices and the way in which they are used by the running processes are taken into account. Execution of microservices in network devices takes into account their load in terms of CPU frequency (22), RAM (260), network transfer rate (310) and hard disk speed (240) and/or battery (29).

L’optimisation de la consommation du réseau prend en compte, pour chaque composant CPU (22), de RAM (260), de taux de transfert réseau (310) et de vitesse de disque dur (240) et/ou batterie (29):Network consumption optimization takes into account, for each CPU component (22), RAM (260), network transfer rate (310) and hard disk speed (240) and/or battery (29) :

- la quantité d'énergie consommée par rapport à sa charge,- the amount of energy consumed in relation to its load,

- la quantité d'énergie consommée par un microservice en cours d'exécution, et- the amount of energy consumed by a running microservice, and

- la quantité d'énergie consommée par un microservice s'il était migré ou dupliqué sur un autre dispositif.- the amount of energy consumed by a microservice if it were migrated or duplicated on another device.

En réponse à une insertion d’un dispositif informatique 10 dans le réseau 2 (le réseau 2 ayant par exemple une configuration MAAN contenant l’espace U déployé), un procédé de supervision de microservices peut être mis en œuvre pour superviser ses microservices et ses ressources matérielles par exemple par le gestionnaire de microservice 122 ou de manière décentralisée par le dispositif 10.In response to an insertion of a computing device 10 in the network 2 (the network 2 having for example a MAAN configuration containing the space U deployed), a microservices supervision method can be implemented to supervise its microservices and its hardware resources, for example by the microservice manager 122 or in a decentralized manner by the device 10.

La décrit le procédé de supervision mis en œuvre par un dispositif 10 pour son insertion dans le réseau 2, selon des modes de réalisation de l’invention (approche décentralisée de la supervision).There describes the supervision method implemented by a device 10 for its insertion into the network 2, according to embodiments of the invention (decentralized approach to supervision).

À l’étape 400, à chaque instant écoulé la charge supportée par chacun des composants matériels du dispositif 10 est estimée.In step 400, at each elapsed instant the load supported by each of the hardware components of device 10 is estimated.

À l’étape 402, l’ensemble de microservices que le dispositif exécute sont gérés en utilisant un procédé de supervision mis en œuvre par chaque dispositif. L’étape 402 de gestion de microservices permet de vérifier que chaque composant matériel du dispositif n’est pas en surcharge. S’il est vérifié qu’un composant du dispositif est en surcharge, une opération de microservice parmi un démarrage, un arrêt, une migration ou une duplication de microservice peut être mise en œuvre.In step 402, the set of microservices that the device runs are managed using a monitoring method implemented by each device. Step 402 of microservices management makes it possible to verify that each hardware component of the device is not overloaded. If it is verified that a component of the device is overloaded, a microservice operation among a start, a stop, a migration or a microservice duplication can be implemented.

À l’étape 402, le dispositif 10 utilise son procédé de supervision pour analyser son état de charge par composant (ressource matérielle) et son état de consommation énergétique par composant.In step 402, the device 10 uses its supervision method to analyze its state of charge by component (hardware resource) and its state of energy consumption by component.

À l’étape 404, des informations relatives au dispositif et/ou aux microservices sont déterminées, comprenant :In step 404, device and/or microservice information is determined, including:

- des informations de performances relatives au dispositif 10 telles que la charge des composants matériels du dispositif, ou les capacités des composants matériels du dispositif;- performance information relating to the device 10 such as the load of the hardware components of the device, or the capacities of the hardware components of the device;

- des informations relatives aux microservices que le dispositif exécute, comme les exigences de traitement, le temps d'exécution et la charge générée par l’exécution des microservices dans chacun des composants matériels.- information related to the microservices that the device is running, such as processing requirements, execution time and the load generated by running the microservices in each of the hardware components.

De telles informations peuvent être collectées pendant l’étape 402 de gestion de supervision.Such information may be collected during step 402 of supervisory management.

À l’étape 406, le procédé de supervision peut mettre en œuvre une analyse des trames de données (“dataframes”) de chaque ressource matérielle (notamment le CPU 22, la RAM 260, le HDD 240, l’interface réseau 31, et optionnellement la batterie 29) du dispositif 10 pour maintenir des informations de consommation mises à jour.At step 406, the supervision method can implement an analysis of the data frames (“dataframes”) of each hardware resource (in particular the CPU 22, the RAM 260, the HDD 240, the network interface 31, and optionally the battery 29) of the device 10 to maintain updated consumption information.

Une telle supervision est mise en œuvre de sorte que les dispositifs 10 du réseau 2 puissent atteindre un état d'énergie de charge efficace au moyen du procédé de planification de traitement de programme selon les modes de réalisation de l’invention et d’échanges de messages dans le cadre d’un processus de négociation collaborative entre les dispositifs 10.Such supervision is implemented so that the devices 10 of the network 2 can achieve an energy-efficient load state by means of the program processing planning method according to the embodiments of the invention and exchanges of messages as part of a collaborative negotiation process between devices 10.

Les informations collectées pendant le procédé de supervision permettent de déterminer les états de charge et de consommation par ressource matérielle du dispositif 10. Le traitement de planification de traitement permet à un dispositif initial de rechercher un autre dispositif candidat 10 dans le réseau 2 et négocier avec ce dispositif candidat pour déplacer ou dupliquer au moins une partie des microservices du programme en fonction de l’état de charge et de consommation du dispositif source déterminé à partir des informations collectées par le procédé de supervision.The information collected during the supervision process makes it possible to determine the states of load and consumption per hardware resource of the device 10. The processing of processing planning allows an initial device to search for another candidate device 10 in the network 2 and to negotiate with it. this candidate device for moving or duplicating at least part of the microservices of the program according to the state of charge and consumption of the source device determined from the information collected by the supervision method.

Le procédé de planification permet notamment:The planning process allows in particular:

- à un dispositif source D (10) de rechercher un autre dispositif candidat D’ pour traiter un microservice répondant aux exigences de traitement associés au microservice avec une consommation d'énergie inférieure ; ou- a source device D (10) to search for another candidate device D' to process a microservice meeting the processing requirements associated with the microservice with lower power consumption; Or

- à un dispositif source D qui présente des conditions de surcharge dans ses ressources matérielles (CPU 22 et/ou composants NIC 310 et HDD 240 par exemple) de mettre en œuvre une action d’économie d’énergie, pour éviter l’utilisation de mécanismes de dissipation de chaleur (comme un ventilateur) qui entraîne une consommation d'énergie plus élevée ; ou- to a source device D which presents overload conditions in its hardware resources (CPU 22 and/or NIC 310 and HDD 240 components for example) to implement an energy saving action, to avoid the use of heat dissipation mechanisms (like a fan) which results in higher power consumption; Or

- de migrer des microservices d’un dispositif source D à un dispositif destinataire D’ pour arrêter le dispositif D, et ainsi économiser de l'énergie ;- to migrate microservices from a source device D to a destination device D' to stop the device D, and thus save energy;

- à un dispositif source D de migrer des microservices à consommation élevée/faible vers un ou plusieurs dispositif destinataires.- a source device D to migrate high/low consumption microservices to one or more destination devices.

L’exécution du procédé de planification peut avoir pour résultat des actions relatives aux microservices ou au dispositif source D (opération de microservice tel qu’un déplacement ou une migration ou une action d’économie d’énergie dans le dispositif source D) qui dépendent de la situation énergétique du dispositif source selon qu’il est déterminé, en réponse à l’exécution du procédé de planification de traitement, que:Execution of the planning process may result in actions relating to the microservices or to the source device D (microservice operation such as a move or a migration or a power saving action in the source device D) that depends the energy situation of the source device depending on whether it is determined, in response to the execution of the treatment planning method, that:

i. le dispositif source D est saturé : dans ce cas, des opérations de migration sont effectuées en réponse à l’exécution du procédé de planification de traitement.i. the source device D is saturated: in this case, migration operations are performed in response to the execution of the processing planning method.

ii. le dispositif source D n'est pas saturé mais il est détecté que la consommation d'énergie peut être atténuée/réduite : dans ce cas, des opérations de migration de microservices peuvent être effectuées pour réduire la charge matérielle.ii. the source device D is not saturated but it is detected that the power consumption can be mitigated/reduced: in this case, microservices migration operations can be performed to reduce the hardware load.

Dans le cas ii. où le dispositif source D est déterminé comme non saturé, les actions mises en œuvre pour diminuer la consommation peuvent comprendre une réduction de la charge d'un appareil à un taux donné (par exemple 80% ou moins), ce qui atténue la consommation d'énergie supplémentaire (par exemple, la diminution de consommation induite par une réduction de vitesse du ventilateur)In case ii. where the source device D is determined to be unsaturated, actions taken to decrease consumption may include reducing the load of a device to a given rate (e.g. 80% or less), which mitigates the consumption of additional energy (for example, the reduction in consumption induced by a reduction in fan speed)

Une ressource matérielle (22, 240, 260, 31, 310, 29) est considérée saturée (sur la base d'observations comportementales précédentes de l'algorithme) lorsque l'une des ressources matérielles est chargée au-delà d’un seuil de charge, qui peut être fixé à 85%. De plus, une consommation électrique supplémentaire fixée à un taux donné, par exemple de 20%, peut être appliquée à un dispositif saturé pour mettre en évidence la saturation.A hardware resource (22, 240, 260, 31, 310, 29) is considered saturated (based on previous behavioral observations of the algorithm) when one of the hardware resources is loaded beyond a threshold of load, which can be set at 85%. Additionally, additional power consumption set at a given rate, for example 20%, can be applied to a saturated device to highlight saturation.

Si une condition de saturation de dispositif est détecté, le procédé de planification peut sélectionner un ou plusieurs microservices du programme, par exemple le ou les microservices les plus lourds du programme (en terme de charge), et exécuter une recherche de dispositifs candidats D’ répondant aux exigences de charge pour héberger et traiter les microservices sélectionnés.If a device saturation condition is detected, the planning process can select one or more microservices of the program, for example the heaviest microservice(s) of the program (in terms of load), and execute a search for candidate devices D' meeting the load requirements to host and process the selected microservices.

S'il n'y a pas de dispositifs candidats disponibles, une nouvelle recherche de dispositif peut être mise en œuvre itérativement en utilisant les exigences d’autres microservices du programme jusqu’à ce qu’un ou des dispositifs candidats soit trouvés. Les microservices sélectionnés peuvent être alors migrés vers les dispositifs candidats sélectionnés.If there are no candidate devices available, a new device search can be implemented iteratively using the requirements of other program microservices until a candidate device(s) is found. The selected microservices can then be migrated to the selected candidate devices.

Dans des modes de réalisation de l’invention, le procédé de planification de traitement de programme exploite notamment la qualité de service QoS des microservices.In embodiments of the invention, the program processing planning method exploits in particular the quality of service QoS of the microservices.

Le procédé de planification de traitement peut calculer la valeur de la qualité de service QoS des microservices proportionnellement aux ressources matérielles (hardware) requises ou obtenues. Le QoS d’un programme est déterminé proportionnellement au QoS de chaque microservice qui le compose.The processing planning method can calculate the quality of service QoS value of the microservices in proportion to the hardware resources (hardware) required or obtained. The QoS of a program is determined in proportion to the QoS of each microservice that composes it.

Ainsi pour un microservice M exécuté dans un dispositif D, une Qualité de Service optimale (QoS=100%) est définie en spécifiant:Thus for a microservice M executed in a device D, an optimal Quality of Service (QoS=100%) is defined by specifying:

- les ressources dont le microservice M a besoin pour s’exécuter en termes de fréquence de CPU 22 en GHz, la consommation de RAM 260 in MB, le taux de transfert réseau 310 en MB/s et le taux de transfert de disque dur 240 en MB/s, et- resources microservice M needs to run in terms of CPU frequency 22 GHz, RAM consumption 260 MB/s, network transfer rate 310 MB/s and hard disk transfer rate 240 in MB/s, and

- une valeur d’impact dont chacun des paramètres de qualité a besoin. La valeur d’impact peut être comprise entre 0 et 1 et la somme de toutes les valeurs d’impact peut être égale à 1.- an impact value that each of the quality parameters needs. The impact value can be between 0 and 1, and the sum of all impact values can be 1.

Il existe des différences entre les ressources M nécessaires à l’exécution d’un microservice et les ressources obtenues du dispositif D. Chaque différence entre les ressources demandées par M et les ressources obtenues de D, pour chaque paramètre de qualité de service, peuvent être exprimées en pourcentage (entre 0 et 100). Les paramètres de qualité de service correspondent aux paramètres de capacité de l’univers U.There are differences between the resources M needed to run a microservice and the resources obtained from device D. Each difference between the resources requested by M and the resources obtained from D, for each quality of service parameter, can be expressed as a percentage (between 0 and 100). The quality of service parameters correspond to the capacity parameters of the universe U.

La suite de la description sera faite en référence à un espace U comprenant 4 dimensions pour faciliter la compréhension de l’invention, correspondant aux quatre paramètres de capacités : paramètre de fréquence CPU 22, paramètre de RAM 260, paramètre de taux de transfert de réseau 310, et paramètre de taux de transfert de disque dur 240. Ces quatre paramètres de capacité seront désignés Cependant l’homme du métier comprendra aisément que d’autres paramètres de capacité relatives à des composants matériels du dispositif 10 peuvent être ajoutés, comme un paramètre de capacité de batterie, pour un espace U avec plus de 4 dimensions.The rest of the description will be made with reference to a space U comprising 4 dimensions to facilitate understanding of the invention, corresponding to the four capacity parameters: CPU 22 frequency parameter, RAM 260 parameter, network transfer rate parameter 310, and hard disk transfer rate parameter 240. of battery capacity, for a U space with more than 4 dimensions.

Les différences entre les ressources demandées et celle obtenue pour chaque paramètres de qualité de service peuvent comprendre au moins :The differences between the resources requested and those obtained for each QoS parameter may include at least:

- La différence DCpour le paramètre de fréquence CPU 22,- The difference D C for the CPU frequency parameter 22,

- La différence DRpour le paramètre de RAM 260,- D R difference for RAM setting 260,

- La différence DNpour le paramètre de taux de transfert de réseau 310, et- The difference D N for the network transfer rate parameter 310, and

- La différence DHpour le paramètre de taux de transfert de disque dur 240.- D H difference for HDD transfer rate setting 240.

Dans la première approche dite « indépendante », une QoS d’un microservice QoSMest définie par la somme pondérée des différences relatives aux différents paramètres de qualité de service, le poids Iiassocié à chaque paramètre de qualité de service étant une valeur inférieure à 1, la somme des poids étant égale à 1 selon l’équation 11:In the first so-called “independent” approach, a QoS of a QoS M microservice is defined by the weighted sum of the differences relating to the various quality of service parameters, the weight I i associated with each quality of service parameter being a lower value to 1, the sum of the weights being equal to 1 according to equation 11:

La QoS d’un programme (application) QoSprogest définie par la QoS déterminée pour chacun des N microservices QoSiqui compose le programme, sur la base de la valeur d’impact que l’utilisateur définit :The QoS of a program (application) QoS prog is defined by the QoS determined for each of the N QoS microservices i that make up the program, based on the impact value that the user defines:

Dans la deuxième approche dite “dépendante”, la qualité de service d’un microservice M est limitée par la ressource qui a obtenu le moins de quantité de ressources par rapport aux autres, en prenant en compte le paramètre d’impact IC, IN, IRet IHspécifié par l’utilisateur pour chaque paramètre de qualité de service. La QoS d’un microservice QoSMest alors définie par:In the second so-called “dependent” approach, the quality of service of a microservice M is limited by the resource that has obtained the least quantity of resources compared to the others, taking into account the impact parameter I C , I N , I R and I H specified by the user for each quality of service parameter. The QoS of a QoS M microservice is then defined by:

La QoS d’un programme PROG composé d’un ensemble de microservices Mi, l’ensemble de microservices étant noté M = [M0...Mn], est limitée par le microservice ayant la plus petite valeur de QoS, soit :The QoS of a PROG program composed of a set of microservices Mi, the set of microservices being denoted M = [M0...Mn], is limited by the microservice with the smallest QoS value, i.e.:

(5) (5)

Le procédé de planification peut évaluer le QoS des applications et microservices à un taux spécifique prédéfini.The planning process can assess the QoS of applications and microservices at a specific predefined rate.

La consommation de puissance d’un dispositif est basée sur le niveau d’utilisation de chaque composant du dispositif.The power consumption of a device is based on the level of use of each component of the device.

La consommation de puissance d’un dispositif est définie par une fonction qui relie la consommation de puissance exprimée en Watts à la fréquence CPU 22 utilisée, au taux de transfert courant du disque dur 240 et au taux de transfert 310 courant du réseau (la consommation de RAM 260 est indépendante de sa charge).The power consumption of a device is defined by a function which relates the power consumption expressed in Watts to the CPU frequency 22 used, to the current transfer rate of the hard disk 240 and to the current transfer rate 310 of the network (the consumption of RAM 260 is independent of its load).

Les modèles suivants peuvent par exemple et sans limitation être utilisés pour mesurer l’énergie des dispositifs et des microservices:The following models can for example and without limitation be used to measure the energy of devices and microservices:

Afin de trouver la quantité d’énergie consommée à un temps par le CPU 22 d’un dispositif D, en fonction de sa charge, l’équation (6) suivante peut être utilisée :In order to find the amount of energy consumed at a time by the CPU 22 of a device D, depending on its load, the following equation (6) can be used:

(6) (6)

La formule (6) fournit la consommation d’énergie en Joules (watts*secondes) du processeur de DDà partir de sa capacitance commutée par le cycle d’horloge (CD), de sa tension (VD), de la fréquence de processeur FD(cycles par seconde) et du facteur TD, en secondes. .Formula (6) provides energy consumption in Joules (watts*seconds) of processor D D from its clock-cycle-switched capacitance (C D ), voltage (V D ), processor frequency F D (cycles per second), and factor T D , in seconds . .

L’énergie consommée par un microservice M, en termes de CPU de D peut être déterminée en interprétant l’équation (5) proportionnellement à la charge que M génère dans ce composant CPU de D. Ainsi, à partir de la “capacitance” CDde ce processeur, la tension VD, du facteur TDet de la fréquence totale FDà un instant donné, si le microservice M le charge à X%, l'énergie consommée pour le processus M sera calculée dans la même proportion que la charge mentionnée selon l’équation (7):The energy consumed by a microservice M, in terms of the CPU of D can be determined by interpreting equation (5) in proportion to the load that M generates in this CPU component of D. Thus, from the “capacitance” C D of this processor, the voltage V D , of the factor T D and of the total frequency F D at a given instant, if the microservice M loads it at X%, the energy consumed for process M will be calculated in the same proportion as the load mentioned according to equation (7):

(7) (7)

Pour déterminer l'énergie consommée par M sur le processeur d'un périphérique externe (pour savoir combien d'énergie le microservice va consommer avant de le migrer), l'équation (7) peut être utilisé pour déduire le nombre d'instructions de programme de M en tenant compte du nombre d'instructions par unité de temps que le processeur peut exécuter.To determine the power consumed by M on the processor of an external device (to know how much power the microservice will consume before migrating it), equation (7) can be used to derive the number of instructions from program of M taking into account the number of instructions per unit of time that the processor can execute.

Ainsi, si le processeur de D est capable d'exécuter les instructions du programme à dans le temps T1 et si M consomme % de la capacité de ce composant au temps T1, alors M exécute également les instructions du programme de manière proportionnelle :Thus, if D's processor is capable of executing program instructions at in time T1 and if M consumes % of the capacity of this component at time T1, then M also executes the program instructions proportionally:

(8) (8)

En considérant un autre dispositif D2, il est possible de déduire le pourcentage de sa charge CPU si M était exécuté dans ce dispositif, en fonction du nombre d’instructions dans le temps T1 que D2 peut exécuter :By considering another device D2, it is possible to deduce the percentage of its CPU load if M were executed in this device, depending on the number of instructions in time T1 that D2 can execute:

(9) (9)

L’énergie que le processeur de D2 consommerait pour traiter M peut être calculée selon l’équation (6), en tenant compte des proportions précitées:The energy that D2's processor would consume to process M can be calculated according to equation (6), taking into account the above proportions:

(10) (10)

L’équation (10) permet d’obtenir à partir de D, une estimation de l’énergie que le CPU de D2 consommerait s’il exécutait M. Ainsi, dans un processus de négociation, cette consommation peut être utilisée avant une opération de migration ou de duplication.Equation (10) makes it possible to obtain from D, an estimate of the energy that the CPU of D2 would consume if it executed M. Thus, in a negotiation process, this consumption can be used before a migration or duplication operation.

Comme la charge de la RAM entraîne généralement des augmentations relativement faibles de la consommation globale d'énergie, dans un mode de réalisation, la consommation de RAM est estimée de manière à éviter les situations de surcharge qui peuvent avoir un impact sur les performances du programme et une augmentation de la charge/consommation du disque.Because RAM loading typically results in relatively small increases in overall power consumption, in one embodiment, RAM consumption is estimated to avoid overload situations that can impact program performance and an increase in disk load/consumption.

Dans un mode de réalisation, la consommation d'énergie de la RAM 260 d’un dispositif 10 peut être estimée comme une valeur de puissance constante multipliée par le temps d’analyse T en secondes (watt *s) selon l’équation (11):In one embodiment, the power consumption RAM 260 of a device 10 can be estimated as a constant power value multiplied by the analysis time T in seconds (watt *s) according to equation (11):

(11) (11)

En variante, des modèles mathématiques basés sur la quantité d'opérations de lecture et d'écriture que la RAM effectue dans un temps donné peuvent être utilisés.Alternatively, mathematical models based on the amount of read and write operations the RAM performs in a given time can be used.

La consommation d'énergie de la RAM peut par exemple être estimée à partir du nombre d'accès et d'opérations que la RAM effectue dans le contexte de l'exécution d'un programme.The energy consumption of the RAM can for example be estimated from the number of accesses and operations that the RAM performs in the context of the execution of a program.

Pour modéliser la consommation d’énergie des interfaces réseau 31 d’un dispositif et des unités de disque dur 240, leur hétérogénéité est prise en compte.To model the energy consumption of the network interfaces 31 of a device and the hard disk drives 240, their heterogeneity is taken into account.

Dans le cas des interfaces réseau 31, différents types de connexions (par exemple Ethernet, WIFI, 2G, 3G, 4G, 5G, etc.) peuvent être pris en compte. Pour chaque type de connexion, il existe une relation entre la consommation d'énergie et la vitesse de transmission à laquelle la connexion fonctionne.In the case of network interfaces 31, different types of connections (eg Ethernet, WIFI, 2G, 3G, 4G, 5G, etc.) can be taken into account. For each type of connection, there is a relationship between power consumption and the baud rate at which the connection operates.

Similairement, la consommation d'énergie produite par le disque dur 240 est liée à son taux de transfert. La consommation d’une carte réseau 310 et/ou d’un disque dur 240, lorsqu'ils sont dans leur état actif (lecture / écriture) et leur état inactif peut être prédéterminée.Similarly, the power consumption produced by the hard disk 240 is related to its transfer rate. The consumption of a network card 310 and/or a hard disk 240, when they are in their active state (read / write) and their inactive state can be predetermined.

Pour chacun des deux composants carte réseau NIC 310 et disque dur HDD 240 d’un dispositif, la consommation électrique du composant à un instant T peut être liée au taux de transfert du composant. Le taux de transfert d’une carte réseau 310 ou d’un disque dur 240 est la moyenne des états d'émission/réception et de l’état inactif (idle) du composant considéré (310 ou 240) à l’instant T. Pour un dispositif D donné, la consommation électrique en watts lorsque le composant NIC 310 (respectivement HDD 240) est dans un état actif est notée Wuet lorsque son composant NIC 310 (respectivement HDD 240) est dans un état inactif est notée Wi.For each of the two network card NIC 310 and hard disk HDD 240 components of a device, the power consumption of the component at a time T can be linked to the transfer rate of the component. The transfer rate of a network card 310 or of a hard disk 240 is the average of the transmission/reception states and of the inactive state (idle) of the component considered (310 or 240) at time T. For a given device D, the power consumption in watts when the NIC component 310 (respectively HDD 240) is in an active state is denoted W u and when its NIC component 310 (respectively HDD 240) is in an inactive state is denoted W i .

La carte réseau NIC 310 ou le disque dur HDD 240 d’un dispositif (D) seront communément désignés par la notation « ND » ci-après, ND désignant ainsi soit la carte réseau NIC 310 soit le disque dur HDD 240.The NIC 310 network card or the HDD 240 hard disk of a device (D) will be commonly designated by the notation "ND" below, ND thus designating either the NIC 310 network card or the HDD 240 hard disk.

Pour un taux de transfert courant L, Wuest multiplié par L par rapport à sa capacité de transfert maximale LMAX. Ce résultat est ensuite ajouté à la consommation correspondant à l’état inactif. Pour cela, Wi est multiplié par le complément de charge de ND par rapport à LMAX, c’est à dire LMAX-L. Pour obtenir la consommation d’énergie en Joules (watts*s), T est pris en compte (T en secondes). Ainsi, la consommation d'énergie de la carte réseau NIC 310 ou de disque dur HDD 240 est donnée par l’équation (12), avec ND désignant la carte réseau NIC 310 ou le disque dur HDD 240 :For a current transfer rate L, W u is multiplied by L with respect to its maximum transfer capacity L MAX . This result is then added to the consumption corresponding to the inactive state. For this, Wi is multiplied by the additional charge of ND with respect to L MAX , ie L MAX -L. To obtain the energy consumption in Joules (watts*s), T is taken into account (T in seconds). Thus, the power consumption of the NIC 310 network card or the HDD 240 hard disk is given by equation (12), with ND designating the NIC 310 network card or the HDD 240 hard disk:

(12) (12)

Afin de modéliser la consommation d’énergie d’un microservice M en fonction de sa charge générée dans la carte réseau NIC 310 ou le disque dur HDD 240 d’un dispositif (D) (tous deux désignés communément par la notation « ND »)), l’équation (12) peut être utilisée en ne tenant compte que de la charge générée par M, soit LM, et en considérant l’état de repos que M génère proportionnellement de la même manière que LMpour la charge actuelle L du ND, ce qui donne l’équation (13) suivante:In order to model the energy consumption of a microservice M according to its load generated in the network card NIC 310 or the hard disk HDD 240 of a device (D) (both commonly denoted by the notation "ND") ), equation (12) can be used considering only the load generated by M, i.e. L M , and considering the state of rest that M generates proportionally in the same way as L M for the current load L of the ND, which gives the following equation (13):

(13) (13)

Pour modéliser la consommation d’énergie qu'un microservice M produirait en fonction de sa charge générée dans un autre dispositif, l’équation (13) s’écrit, en considérant le composant ND de D1, sa capacité de transfert maximale et sa charge actuelle :To model the energy consumption that a microservice M would produce depending on its load generated in another device, equation (13) is written, considering the ND component of D1, its maximum transfer capacity and its current load :

(14) (14)

Le procédé de planification de traitement de programme permet de mesurer la consommation d’énergie dans une plage de temps. Cette analyse peut être effectuée pour chaque dispositif ou pour chaque scénario entier (tous les dispositifs).The program processing planning method enables the power consumption to be measured in a range of time. This analysis can be performed for each device or for each entire scenario (all devices).

En réponse à l’exécution du procédé de planification, des métriques relatives aux performances du procédé de planification peuvent être estimées telles que: (1)le Temps d’exécution, (2) le Nombre d’opérations effectuées, (3) les données transmises par les mouvements/les duplications sur le dispositif ou dans le réseau, (4) l’énergie utilisée pour des mouvements/duplications sur des dispositifs ou sur le réseau, et (5) la charge par dispositif et la charge globale des dispositifs.In response to the execution of the planning process, metrics relating to the performance of the planning process can be estimated such as: (1) the execution time, (2) the number of operations performed, (3) the data transmitted by movements/duplicates on the device or in the network, (4) the energy used for movements/duplicates on devices or on the network, and (5) the load per device and the overall load of the devices.

Un affichage de telles métriques peut être en outre généré sur une interface graphique destinée à un opérateur du système 100.A display of such metrics may further be generated on a graphical interface for an operator of system 100.

La illustre le procédé de planification de traitement de programme selon certains modes de réalisationThere illustrates the program processing scheduling method according to some embodiments

À l’étape 500, une demande de traitement d’au moins un programme à un instant donné T de la part d’un dispositif requérant (D) de l’ensemble de dispositifs 10 du réseau 2. Le programme comprend un ensemble de microservices associés.At step 500, a request to process at least one program at a given instant T from a requesting device (D) of the set of devices 10 of the network 2. The program comprises a set of microservices associates.

Pour chaque microservice associé au programme (bloc 502), des valeurs cibles pour un ensemble de paramètres de qualité de service définis pour le microservice et les valeurs obtenues pour l’ensemble de paramètres de qualité de service par le dispositif requérant (D) sont extraites à l’étape 504.For each microservice associated with the program (block 502), target values for a set of quality of service parameters defined for the microservice and the values obtained for the set of quality of service parameters by the requesting device (D) are extracted at step 504.

Pour chaque paramètre de qualité de service (bloc 505), la différence entre la valeur cible et la valeur obtenue du paramètre de qualité de service pour le traitement du microservice par le dispositif requérant D est déterminée, à l’étape 506, ce qui fournit une différence relative au paramètre de qualité de service.For each quality of service parameter (block 505), the difference between the target value and the obtained value of the quality of service parameter for the processing of the microservice by the requesting device D is determined, at step 506, which provides a difference relating to the quality of service parameter.

À l’étape 507, pour chaque microservice, un indicateur de qualité de service élémentaire associé au microservice (encore appelé indicateur de qualité de service de microservice) est calculé à partir des différences relatives à chaque paramètre de qualité de service.In step 507, for each microservice, an elementary quality of service indicator associated with the microservice (also called microservice quality of service indicator) is calculated from the differences relating to each quality of service parameter.

À l’étape 508, l'indicateur de qualité de service globale (encore appelé indicateur de qualité de service de programme est calculé à partir des indicateurs de qualités de services élémentaires déterminées pour chaque microservice du programme.In step 508, the overall quality of service indicator (also called program service quality indicator is calculated from the elementary service quality indicators determined for each microservice of the program.

À l’étape 510, au moins un dispositif cible D’ parmi ladite pluralité de dispositifs est sélectionné, en mettant en œuvre une recherche, dans le réseau, en fonction de l’indicateur de qualité de service de programme et d’une information de consommation d’énergie déterminée pour chaque dispositif à l’instant T.In step 510, at least one target device D' among said plurality of devices is selected, by implementing a search, in the network, according to the program quality of service indicator and energy consumption information determined for each device at time T.

À l’étape 511, une opération de microservices (opération relative au traitement d’une partie des microservices du programme) est exécutée pour un ou plusieurs microservices sélectionnés du programme PROG dans un dispositif du réseau en fonction de l’indicateur de qualité de service de programme calculé.In step 511, a microservices operation (operation relating to the processing of part of the microservices of the program) is executed for one or more selected microservices of the program PROG in a device of the network according to the quality of service indicator calculated program.

Par exemple, l’opération de microservices peut être un arrêt de programme. Dans un tel mode de réalisation, l’arrêt du programme peut être mis en œuvre directement après l’étape 508 et dans ce cas l’étape 510 n’est pas effectuée.For example, the microservices operation might be a program shutdown. In such an embodiment, the stopping of the program can be implemented directly after step 508 and in this case step 510 is not carried out.

En variante, l’opération de microservices peut être un déplacement ou une duplication des microservices du programme PROG sur le dispositif D’ sélectionné à l’étape 510 pour une exécution du programme par le dispositif D’.As a variant, the microservices operation can be a movement or a duplication of the microservices of the program PROG on the device D′ selected at step 510 for execution of the program by the device D′.

Le procédé de traitement de programme, selon les modes de réalisation de l’invention, permet ainsi d’exécuter un programme sur un ou plusieurs dispositifs 10. Par exemple, si un des dispositifs 10 consomme beaucoup d'énergie, un microservice du dispositif 10 peut être déplacé vers un autre dispositif, si les coûts de puissance de traitement sont meilleurs. Dans un autre exemple, si un microservice consomme beaucoup parce que de nombreux autres microservices en consomment les données, le dispositif 10 peut également chercher à dupliquer le microservice. Dans un autre exemple d’application de l’invention, si un microservice a une restriction de non-mouvement de sorte que le microservice ne peut pas être déplacé, le microservice peut être dupliqué sur un autre dispositif D’ (cas d’un microservice GUI par exemple).The program processing method, according to the embodiments of the invention, thus makes it possible to execute a program on one or more devices 10. For example, if one of the devices 10 consumes a lot of energy, a microservice of the device 10 can be moved to another device, if processing power costs are better. In another example, if a microservice consumes a lot because many other microservices consume its data, the device 10 can also seek to duplicate the microservice. In another example application of the invention, if a microservice has a non-movement restriction so that the microservice cannot be moved, the microservice can be duplicated on another device D' (case of a microservice GUI for example).

Avantageusement, le procédé de planification de traitement de programme peut être lui-même implémenté sous la forme d’un microservice.Advantageously, the program processing planning method can itself be implemented in the form of a microservice.

L’homme du métier comprendra que le systèmes ou des sous-système selon les modes de réalisation de l’invention peuvent être mis en œuvre de diverses manières par matériel (« hardware »), logiciel, ou une combinaison de matériel et de logiciels, notamment sous la forme de code de programme pouvant être distribué sous la forme d'un produit de programme, sous diverses formes. En particulier, le code de programme peut être distribué à l'aide de supports lisibles par ordinateur, qui peuvent inclure des supports de stockage lisibles par ordinateur et des supports de communication. Les procédés décrits dans la présente description peuvent être notamment implémentés sous la forme d’instructions de programme d’ordinateur exécutables par un ou plusieurs processeurs dans un dispositif informatique d'ordinateur. Ces instructions de programme d’ordinateur peuvent également être stockées dans un support lisible par ordinateur.Those skilled in the art will understand that the systems or subsystems according to the embodiments of the invention can be implemented in various ways by hardware (“hardware”), software, or a combination of hardware and software, including in the form of program code that may be distributed as a program product, in various forms. In particular, the program code may be distributed using computer readable media, which may include computer readable storage media and communication media. The methods described in this description may in particular be implemented in the form of computer program instructions executable by one or more processors in a computer computing device. These computer program instructions may also be stored in computer-readable media.

Par ailleurs, l'invention n'est pas limitée aux modes de réalisation décrits ci-avant à titre d’exemple non limitatif. Elle englobe toutes les variantes de réalisation qui pourront être envisagées par l'homme du métier. En particulier, l’homme du métier comprendra que l’invention n’est pas limitée aux exemples d’architectures de superposition (Chord, Maan) cités à titre d’illustration.  Furthermore, the invention is not limited to the embodiments described above by way of non-limiting example. It encompasses all the variant embodiments which may be envisaged by those skilled in the art. In particular, those skilled in the art will understand that the invention is not limited to the examples of overlay architectures (Chord, Maan) cited by way of illustration.

Claims (16)

1. Procédé de contrôle de traitement de programmes mis en œuvre dans un système informatique comprenant une pluralité de dispositifs informatiques connectés au moyen d’au moins un réseau informatique (2), chaque dispositif ayant une pluralité de ressources matérielles, chaque programme étant configuré sous la forme d’un ensemble de microservices, chaque dispositif étant apte à traiter au moins un programme, ladite pluralité de dispositifs informatiques étant représentée sous la forme d’un graphe comprenant des nœuds, deux nœuds étant reliés par un lien, un nœud représentant un dispositif informatique, un lien reliant de nœuds représentant la connexion entre les deux dispositifs informatiques représentés par les nœuds, caractérisé en ce que les nœuds sont logiquement indexés dans une structure multidimensionnelle selon les ressources d’un espace muldimensionnel, caractérisé en que procédé comprenant les étapes consistant à :
- Recevoir (500) une demande de traitement d’au moins une partie des microservices d’un programme d’un dispositif source (D) dudit ensemble de dispositifs, émise dans l'espace multidimensionnel;
  • Pour chaque paramètre de qualité de service parmi un ensemble de paramètres de qualité de service représentant des paramètres de capacité de ressources matérielles du dispositif source, déterminer la différence entre la valeur cible et la valeur obtenue du paramètre de qualité de service pour le traitement du microservice par le dispositif requérant, ce qui fournit une différence relative au paramètre de qualité de service (506), les paramètres de qualité de service comprenant au moins la fréquence du processeur central (22) du dispositif source, la capacité de la mémoire RAM (260) du dispositif source, le taux de transfert de l’interface réseau (31) du dispositif source, et le taux de transfert du disque dur (240) du dispositif;
  • Calculer (507) pour chaque microservice, un indicateur de qualité de service élémentaire associé au microservice, à partir des différences relatives à chaque paramètre de qualité de service ; et
  • Calculer un indicateur de qualité de service de programme à partir des indicateurs de qualités de services élémentaires déterminées pour chaque microservice du programme;
  • Effectuer (511) une opération de traitement relative au traitement d’au moins une partie des microservices du programme dans un dispositif du réseau en fonction des indicateurs de qualités de service calculés.
1. Program processing control method implemented in a computer system comprising a plurality of computer devices connected by means of at least one computer network (2), each device having a plurality of hardware resources, each program being configured under the form of a set of microservices, each device being capable of processing at least one program, the said plurality of computing devices being represented in the form of a graph comprising nodes, two nodes being connected by a link, a node representing a computing device, a connecting link of nodes representing the connection between the two computing devices represented by the nodes, characterized in that the nodes are logically indexed in a multidimensional structure according to the resources of a multidimensional space, characterized in that method comprising the steps consists in :
- Receive (500) a request to process at least part of the microservices of a program from a source device (D) of said set of devices, transmitted in the multidimensional space;
  • For each quality of service parameter from a set of quality of service parameters representing hardware resource capacity parameters of the source device, determine the difference between the target value and the obtained value of the quality of service parameter for processing the microservice by the requesting device, which provides a difference relative to the quality of service parameter (506), the quality of service parameters including at least the frequency of the central processor (22) of the source device, the capacity of the RAM memory (260 ) of the source device, the transfer rate of the network interface (31) of the source device, and the transfer rate of the hard disk (240) of the device;
  • Calculate (507) for each microservice, an elementary quality of service indicator associated with the microservice, from the differences relating to each quality of service parameter; And
  • Calculating a program service quality indicator from the elementary service quality indicators determined for each microservice of the program;
  • Perform (511) a processing operation relating to the processing of at least part of the microservices of the program in a device of the network according to the calculated quality of service indicators.
2. Procédé selon la revendication 1, caractérisé en ce que ladite opération de traitement est un arrêt de ladite au moins une partie des microservices du programme dans le dispositif source.2. Method according to claim 1, characterized in that said processing operation is a stop of said at least part of the microservices of the program in the source device. 3. Procédé selon la revendication 1, caractérisé en ce qu’il comprend en outre l’étape suivante :
- Sélectionner au moins un dispositif candidat cible parmi ladite pluralité de dispositifs en fonction de l’indicateur de qualité de service de programme et d’une information de consommation d’énergie déterminée pour chaque dispositif à l’instant T, en utilisant ledit graphe,
et en ce que ladite opération de traitement consiste à déplacer ou dupliquer ladite au moins une partie des microservices dans ledit au moins un dispositif candidat sélectionné pour une exécution du programme par ledit au moins un dispositif sélectionné.
3. Method according to claim 1, characterized in that it further comprises the following step:
- Selecting at least one target candidate device from said plurality of devices according to the program quality of service indicator and energy consumption information determined for each device at time T, using said graph,
and in that said processing operation consists of moving or duplicating said at least part of the microservices in said at least one selected candidate device for execution of the program by said at least one selected device.
4. Procédé selon la revendication 3, caractérisé en ce que dans l’étape de sélection, le dispositif source est apte à rechercher un nœud voisin logiquement proche du nœud représentant ledit dispositif source dans ledit graphe et pour mettre en œuvre des échanges de négociations avec ledit nœud voisin.4. Method according to claim 3, characterized in that in the selection step, the source device is able to search for a neighboring node logically close to the node representing said source device in said graph and to implement negotiation exchanges with said neighbor node. 5. Procédé selon l’une des revendications 1 à 4, caractérisé en ce qu’il comprend une étape consistant à gérer les dispositifs du réseau en utilisant ledit graphe dans laquelle un nœud du graphe est apte à être ajouté ou supprimé dynamiquement de l'espace multidimensionnel.5. Method according to one of claims 1 to 4, characterized in that it comprises a step consisting in managing the devices of the network by using said graph in which a node of the graph is capable of being added or deleted dynamically from the multidimensional space. 6. Procédé selon l’une des revendications précédentes, caractérisé en ce qu’un indicateur de qualité de service élémentaire associé à un microservice est calculé en effectuant la somme pondérée des différences relatives à chaque paramètre de qualité de service en utilisant des poids élémentaires associés à chaque paramètre de qualité de service.6. Method according to one of the preceding claims, characterized in that an elementary quality of service indicator associated with a microservice is calculated by carrying out the weighted sum of the differences relating to each quality of service parameter using elementary weights associated to each quality of service parameter. 7. Procédé selon la revendication 6, caractérisé en ce que la somme des poids élémentaires est égale à 1.7. Method according to claim 6, characterized in that the sum of the elementary weights is equal to 1. 8. Procédé selon l’une des revendications, caractérisé en ce qu’un indicateur de qualité de service de programme est calculé en effectuant la somme pondérée des qualités de services élémentaires déterminées pour les microservices du programme en utilisant des poids globaux associés à chaque microservice.8. Method according to one of the claims, characterized in that a program service quality indicator is calculated by carrying out the weighted sum of the elementary service qualities determined for the microservices of the program by using global weights associated with each microservice . 9. Procédé selon la revendication 8, caractérisé en ce que la somme des poids globaux est égale à 1.9. Method according to claim 8, characterized in that the sum of the global weights is equal to 1. 10. Procédé selon l’une des revendications 1 à 5, caractérisé en ce que l’indicateur de qualité de service élémentaire calculé pour un microservice est la valeur minimale entre les différences relatives à chaque paramètre de qualité de service, chacune pondérée par un indicateur d’impact.10. Method according to one of claims 1 to 5, characterized in that the elementary quality of service indicator calculated for a microservice is the minimum value between the differences relating to each quality of service parameter, each weighted by an indicator impact. 11. Procédé selon la revendication 10, caractérisé en ce que l’indicateur de qualité de service de programme est la plus petite valeur parmi les indicateurs de qualité de service élémentaires calculées pour les microservices du programme.11. Method according to claim 10, characterized in that the program quality of service indicator is the smallest value among the elementary quality of service indicators calculated for the microservices of the program. 12. Procédé selon l’une des revendications précédentes, caractérisé en ce qu’il comprend en outre une étape de détermination de l’information de consommation d’énergie de chaque dispositif de l’ensemble de dispositifs, ladite étape de détermination comprenant :
- déterminer la consommation d’énergie du processeur central CPU (22) du dispositif ;
- déterminer la consommation d’énergie de la RAM (260) du dispositif ;
- déterminer la consommation d’énergie des carte d’interface réseau (310) du dispositif et du disque dur (240) du dispositif ;
l’information de consommation d’énergie du dispositif étant calculée à partir de la consommation d’énergie du processeur central CPU (22) du dispositif, de la consommation d’énergie de la RAM (260), de la consommation d’énergie des cartes d’interface réseau (310) et de la consommation du disque dur (240) du dispositif.
12. Method according to one of the preceding claims, characterized in that it further comprises a step of determining the energy consumption information of each device of the set of devices, said step of determining comprising:
- determining the energy consumption of the central processor CPU (22) of the device;
- determining the power consumption of the RAM (260) of the device;
- determining the energy consumption of the network interface card (310) of the device and of the hard disk (240) of the device;
the power consumption information of the device being calculated from the power consumption of the central processor CPU (22) of the device, the power consumption of the RAM (260), the power consumption of the network interface cards (310) and hard disk (240) consumption of the device.
13. Procédé selon la revendication 12, caractérisé en ce que la consommation d’énergie E du processeur central CPU (22) du dispositif pendant un temps est déterminée selon l’équation :

Avec désignant la capacitance du processeur central, désignant la tension du processeur central, désignant la fréquence du processeur central.
13. Method according to claim 12, characterized in that the energy consumption E of the central processor CPU (22) of the device for a time is determined according to the equation:

With denoting the capacitance of the central processor, denoting the voltage of the central processor, designating the frequency of the central processor.
14. Procédé selon l’une des revendications 12 et 13, caractérisé en ce que la consommation d’énergie E générée par un microservice donné sur la carte d’interface réseau (310) ou le disque dur (240) du dispositif est déterminée, selon l’équation :

, avec Wu désignant la consommation en Watts du dispositif lorsque la carte d’interface réseau du dispositif ou le disque dur (240) du dispositif est dans un état actif, Wi désignant lorsque la carte d’interface réseau du dispositif ou le disque dur (240) du dispositif est dans un état inactif, Li désignant le taux de transfert d’un microservice, LMAXdésignant le taux de transfert maximal du microservice et L désignant la charge courante du dispositif à l’instant T.
14. Method according to one of claims 12 and 13, characterized in that the energy consumption E generated by a given microservice on the network interface card (310) or the hard disk (240) of the device is determined, according to the equation:

, where Wu is the Watts consumption of the device when the device network interface card or the hard disk (240) of the device is in an active state, Wi is when the network interface card of the device or the hard disk ( 240) of the device is in an idle state, Li denoting the transfer rate of a microservice, L MAX denoting the maximum transfer rate of the microservice and L denoting the current load of the device at time T.
15. Procédé selon l’une des revendications précédentes, caractérisé en ce que le procédé est lui-même exécuté sous la forme d’un microservice.15. Method according to one of the preceding claims, characterized in that the method is itself executed in the form of a microservice. 16. Système de contrôle de traitement de programmes mis en œuvre dans un système informatique comprenant une pluralité de dispositifs informatiques connectés au moyen d’au moins un réseau informatique (2), chaque dispositif ayant une pluralité de ressources matérielles, chaque programme étant configuré sous la forme d’un ensemble de microservices, chaque dispositif étant apte à traiter au moins un programme, ladite pluralité de dispositifs informatiques étant représentée sous la forme d’un graphe comprenant des nœuds, deux nœuds étant reliés par un lien, un nœud représentant un dispositif informatique, un lien reliant de nœuds représentant la connexion entre les deux dispositifs informatiques représentés par les nœuds, caractérisé en ce que les nœuds sont logiquement indexés dans une structure multidimensionnelle selon les ressources d’un espace muldimensionnel, caractérisé en que le système est configuré pour :
- Recevoir une demande de traitement d’au moins une partie des microservices d’un programme d’un dispositif source (D) dudit ensemble de dispositifs, émise dans l'espace multidimensionnel;
  • Pour chaque paramètre de qualité de service parmi un ensemble de paramètres de qualité de service représentant des paramètres de capacité de ressources matérielles du dispositif source, déterminer la différence entre la valeur cible et la valeur obtenue du paramètre de qualité de service pour le traitement du microservice par le dispositif requérant, ce qui fournit une différence relative au paramètre de qualité de service, les paramètres de qualité de service comprenant au moins la fréquence du processeur central (22) du dispositif source, la capacité de la mémoire RAM (260) du dispositif source, le taux de transfert de l’interface réseau (31) du dispositif source, et le taux de transfert du disque dur (240) du dispositif;
  • Calculer pour chaque microservice, un indicateur de qualité de service élémentaire associé au microservice, à partir des différences relatives à chaque paramètre de qualité de service ; et
  • Calculer un indicateur de qualité de service de programme à partir des indicateurs de qualités de services élémentaires déterminées pour chaque microservice du programme ;
  • Effectuer une opération de traitement relative au traitement d’au moins une partie des microservices du programme dans un dispositif du réseau.
16. Program processing control system implemented in a computer system comprising a plurality of computing devices connected by means of at least one computer network (2), each device having a plurality of hardware resources, each program being configured under the form of a set of microservices, each device being capable of processing at least one program, the said plurality of computing devices being represented in the form of a graph comprising nodes, two nodes being connected by a link, a node representing a computing device, a connecting link of nodes representing the connection between the two computing devices represented by the nodes, characterized in that the nodes are logically indexed in a multidimensional structure according to the resources of a multidimensional space, characterized in that the system is configured For :
- Receive a request to process at least part of the microservices of a program from a source device (D) of said set of devices, transmitted in the multidimensional space;
  • For each quality of service parameter from a set of quality of service parameters representing hardware resource capacity parameters of the source device, determine the difference between the target value and the obtained value of the quality of service parameter for processing the microservice by the requesting device, which provides a difference relating to the quality of service parameter, the quality of service parameters including at least the frequency of the central processor (22) of the source device, the capacity of the RAM memory (260) of the source, the transfer rate of the network interface (31) of the source device, and the transfer rate of the hard disk (240) of the device;
  • Calculate for each microservice, an elementary quality of service indicator associated with the microservice, from the differences relating to each quality of service parameter; And
  • Calculate a program service quality indicator from the elementary service quality indicators determined for each microservice of the program;
  • Perform a processing operation relating to the processing of at least a portion of the program's microservices in a network device.
FR2107199A 2021-07-02 2021-07-02 System and method for program processing planning Active FR3124873B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR2107199A FR3124873B1 (en) 2021-07-02 2021-07-02 System and method for program processing planning
PCT/EP2022/068065 WO2023275250A1 (en) 2021-07-02 2022-06-30 System and method for planning the processing of a program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2107199 2021-07-02
FR2107199A FR3124873B1 (en) 2021-07-02 2021-07-02 System and method for program processing planning

Publications (2)

Publication Number Publication Date
FR3124873A1 true FR3124873A1 (en) 2023-01-06
FR3124873B1 FR3124873B1 (en) 2024-02-23

Family

ID=77519311

Family Applications (1)

Application Number Title Priority Date Filing Date
FR2107199A Active FR3124873B1 (en) 2021-07-02 2021-07-02 System and method for program processing planning

Country Status (2)

Country Link
FR (1) FR3124873B1 (en)
WO (1) WO2023275250A1 (en)

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
ALVAREZ VALERA, DALMAU, ROOSE, LARRACOECHEA, HERZOG: "An energy saving approach understanding microservices as multidimensional entities in p2p networks", EXTENDED ABSTRACTS OF THE 2021 CHI CONFERENCE ON HUMAN FACTORS IN COMPUTING SYSTEMS, 22 March 2021 (2021-03-22), pages 69 - 78, XP058643122 *
ION STOICAROBERT MORRISDAVID KARGERM. KAASHOEKHARI BALAKRISHNAN., CHORD: A SCALABLE PEER-TO-PEER LOOKUP SERVICE FOR INTERNET APPLICATIONS, vol. 149-160, 2001, pages 149 - 160, Retrieved from the Internet <URL:https://doi.org/10.1145/383059.383071>
M. CAIM. FRANKJ. CHENP. SZEKELY: "MAAN: a multi-attribute addressable network for grid information services.", IN PROCEEDINGS. FIRST LATIN AMERICAN WEB CONGRESS, 2003
S. MANDAIS. CHA-KRABORTYS. KARMAKAR: "Deterministic 1-2 skip list in distributed system", IN 2012 2ND IEEE INTERNATIONAL CONFÉRENCE ON PARALLEL, DISTRIBUTED AND GRID COMPUTING, 2012, pages 296 - 301

Also Published As

Publication number Publication date
WO2023275250A1 (en) 2023-01-05
FR3124873B1 (en) 2024-02-23

Similar Documents

Publication Publication Date Title
Liu et al. A task scheduling algorithm based on classification mining in fog computing environment
US10496627B2 (en) Consistent ring namespaces facilitating data storage and organization in network infrastructures
US8560639B2 (en) Dynamic placement of replica data
JP6133889B2 (en) Detect and mine device performance information to anticipate and send updates to devices
JP4681615B2 (en) Node workload split
US8769055B2 (en) Distributed backup and versioning
US8713182B2 (en) Selection of a suitable node to host a virtual machine in an environment containing a large number of nodes
US10146814B1 (en) Recommending provisioned throughput capacity for generating a secondary index for an online table
JP2012523044A (en) Restore differential files and systems from peers and the cloud
US10158709B1 (en) Identifying data store requests for asynchronous processing
US10135703B1 (en) Generating creation performance metrics for a secondary index of a table
US20040205242A1 (en) Querying a peer-to-peer network
Mansouri QDR: a QoS-aware data replication algorithm for Data Grids considering security factors
Sacha et al. Decentralising a service-oriented architecture
US20240104031A1 (en) Forwarding incoming io to scm namespaces
Deiab et al. Energy efficiency in cloud computing
Pingle et al. Big data processing using apache hadoop in cloud system
Selvi et al. Popularity (hit rate) based replica creation for enhancing the availability in cloud storage
Akila et al. QoS-aware rule-based traffic-efficient multiobjective service selection in big data space
García-Arenas et al. Assessing speed-ups in commodity cloud storage services for distributed evolutionary algorithms
FR3124873A1 (en) Program processing planning system and method
US20160352825A1 (en) Dynamic Swarm Segmentation
Wang et al. Virtual network embedding with pre‐transformation and incentive convergence mechanism
Wei et al. PIVOT: An adaptive information discovery framework for computational grids
Achache et al. Hybrid fuzzy clustering to improve services availability in P2P-based SaaS-cloud

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20230106

PLFP Fee payment

Year of fee payment: 3