Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
MANAGEMENT SYSTEM FOR DIGITAL TWINS, AND ASSOCIATED MANAGEMENT METHOD
Document Type and Number:
WIPO Patent Application WO/2023/247172
Kind Code:
A1
Abstract:
The invention relates to a system (1000) for managing digital twins, comprising: a management module (100) for at least one digital twin (200) of an entity (300), the digital twin being accessible via a telecommunications network, the digital twin (200) comprising a first set of at least one property having a value that can change over time; and a database (400) which is connected to the digital twin management module (100) and configured to store representations (410) of digital twins (200), the representations being compatible with one another, a representation (410) of a digital twin comprising a second set of at least one property having a value that changes over time as a function of the change in the value of the at least one property of the first set of the corresponding twin.

Inventors:
HASSAN THOMAS (FR)
GERBAUD STÉPHANIE (FR)
RAIPIN PARVEDY PHILIPPE (FR)
Application Number:
PCT/EP2023/065101
Publication Date:
December 28, 2023
Filing Date:
June 06, 2023
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ORANGE (FR)
International Classes:
H04L67/1095; G06F16/27; G16Y10/25; G16Y40/10; G16Y40/35; H04L67/12; H04L67/565; G06F16/28
Domestic Patent References:
WO2022002694A12022-01-06
Foreign References:
EP3709195A12020-09-16
EP3809216A12021-04-21
Download PDF:
Claims:
Revendications

[Revendication 1] Système (1000) de gestion de jumeaux numériques comprenant :

- un module de gestion (100) d'au moins un jumeau numérique (200) d'une entité (300), ledit jumeau numérique étant accessible au travers d'un réseau de télécommunications, ledit jumeau numérique (200) comprenant un premier ensemble d'au moins une propriété ayant une valeur pouvant évoluer au cours du temps;

- une base de données (400) connectée au module de gestion (100) de jumeaux numériques et configurée pour enregistrer des représentations (410) de jumeaux numériques (200), les représentations étant compatibles entre elles, une représentation (410) d'un jumeau numérique comprenant un deuxième ensemble d'au moins une propriété ayant une valeur évoluant au cours du temps en fonction de l'évolution de la valeur de la au moins une propriété du premier ensemble du jumeau correspondant.

[Revendication 2] Système de gestion selon la revendication 1, dans lequel la base de données (400) est une base de données orientée documents, une représentation (410) étant stockée dans la base de données (400) sous la forme d'un document comprenant le deuxième ensemble d'au moins une propriété.

[Revendication 3] Système selon la revendication 2, dans lequel le module de gestion (100) comprend au moins un agent (120) dédié à la gestion d'une représentation, ledit agent (120) comprenant un module de synchronisation (MOD_SYN) configuré pour déclencher, en réponse à la détermination d'une évolution de la valeur de la au moins une propriété du premier ensemble, une mise-à-jour de la valeur de la au moins une propriété du deuxième ensemble, la mise-à-jour étant fonction d'une stratégie de synchronisation caractérisant une fréquence de synchronisation et/ou un état de synchronisation.

[Revendication 4] Système selon la revendication 3, dans lequel ledit jumeau numérique (200) est un jumeau physique (210) correspondant à une réplique numérique de l'entité, un jumeau virtuel (220) correspondant à une simulation de l'entité étant associé au jumeau physique (210), et l'état de synchronisation est un état parmi :

- une désynchronisation entre l'entité (300), les jumeaux physique (210) et virtuel (220), et la représentation correspondante (410) ;

- une synchronisation entre l'entité (300), les jumeaux physique (210) et virtuel (220), et la représentation correspondante (410) ; - une réplication de la valeur d'au moins une propriété du jumeau physique (210) avec la valeur d'au moins une propriété correspondante du jumeau virtuel (220) et une synchronisation entre le jumeau physique (210) et la représentation correspondante (410);

- une réplication de la valeur d'au moins une propriété du jumeau virtuel (220) avec la valeur d'au moins une propriété correspondante du jumeau physique (210) et une synchronisation entre le jumeau virtuel (220) et la représentation correspondante (410).

[Revendication 5] Système de gestion selon la revendication 1, dans lequel la base de données (400) est une base de données orientée graphe.

[Revendication 6] Système de gestion selon l'une quelconque des revendications 1 à 5, dans lequel le module de gestion (100) est configuré pour gérer au moins un premier et deuxième jumeaux numériques liés entre eux par une relation sémantique, le module de gestion comprenant une indication selon laquelle les représentations des premier et deuxième jumeaux numériques sont également liées entre elles.

[Revendication 7] Système de gestion selon l'une quelconque des revendications 1 à 6, dans lequel le module de gestion comprend :

- un module (MOD_RX) de réception d'une instruction visant à interagir avec un jumeau numérique (J) ;

- un module (MOD_DET) de détermination qu'un agent dudit module de gestion n'a pas été préalablement associé audit jumeau numérique (J) ;

- un module (MOD_INS) d'instanciation d'un agent associé audit jumeau numérique (J) configuré pour instancier ledit agent en mémoire de manière dynamique ; et

- un module (MOD_INS_REP) d'instanciation configuré pour instancier une représentation.

[Revendication 8] Système de gestion selon la revendication 7 en combinaison avec la revendication 3, dans lequel l'agent comprend en outre :

- un module (MOD_ACC) d'accès au jumeau numérique (J) ; et,

- un module de gestion (MOD_API) d'au moins un ensemble d'interfaces de programmation spécifiant les méthodes applicables au jumeau numérique (J).

[Revendication 9] Système de gestion selon l'une quelconque des revendications 1 à 8, dans lequel le module de gestion (100) comprend en outre un module de réponse configuré pour générer une réponse représentative de la réussite de l'application d'une méthode sur un jumeau numérique.

Description:
Description

Titre de l'invention : Système de gestion de jumeaux numériques, procédé de gestion associé

Domaine Technique

[0001] La présente invention appartient au domaine général de l'Internet des Objets. Elle concerne plus particulièrement un système de gestion de jumeaux numériques. Elle concerne également un procédé de gestion mis en œuvre par un tel système de gestion de jumeaux numériques.

Technique antérieure

[0002] Un jumeau numérique peut être défini comme une réplication numérique d'un objet réel ou d'un procédé, qui présente la particularité d'évoluer en fonction des transformations de l'objet ou du procédé auquel il est attaché. La particularité d'un jumeau numérique est de s'appuyer sur un modèle physique qui est alimenté en continu par des données collectées via des capteurs disposés sur ou à proximité de l'objet réel, ou issues d'une inspection à un certain instant de cet objet.

[0003] Ainsi, à la différence d'une modélisation numérique classique, un jumeau numérique est généralement configuré pour fournir à chaque instant des informations sur l'état actuel de fonctionnement de l'objet réel auquel il est relié, mais également pour simuler un scénario, voire prédire ou anticiper certaines situations au regard du fonctionnement actuel de cet objet.

[0004] Dans le domaine de l'industrie, et en particulier de l'aérospatial ou de la construction automobile, les jumeaux numériques sont de plus en plus populaires car ils offrent une surveillance accrue, permettent d'anticiper d'éventuelles pannes et facilitent ainsi les prises de décision. Ils sont également de plus en plus utilisés pour le suivi de systèmes complexes, tels que les villes, puisqu'ils permettent d'inclure des données de construction et de gestion des bâtiments, ainsi que des données issues des réseaux de transport et d'énergie.

[0005] Cependant, de manière conventionnelle, de tels systèmes complexes utilisent une pluralité de jumeaux numériques qui sont généralement conçus par différents fournisseurs de jumeaux numériques, selon un certain format de données, parfois propriétaire. Ces différents jumeaux numériques, qui représentent des sous-systèmes ou des objets réels du système complexe, ne sont alors pas interopérables entre eux, et l'intérêt d'un jumeau numérique d'un tel système complexe s'en trouve alors limité.

[0006] À titre d'exemple, dans le cadre d'une ville, les autoroutes, les ponts et tunnels, les chemins de fer, les métros, et les autres infrastructures de transport sont généralement exploités et entretenus par plusieurs opérateurs. Chaque opérateur peut décider de concevoir un jumeau numérique de l'infrastructure qu'il gère, mais celui-ci est généralement réalisé indépendamment des autres jumeaux numériques représentant les autres infrastructures de transport de la ville. Pour que ces opérateurs puissent coopérer plus efficacement et ainsi améliorer l'exploitation, la planification et le développement de l'infrastructure de transport, il s'avère donc souhaitable d'améliorer la coopération entre ces différents jumeaux numériques.

Exposé de l'invention

[0007] La présente invention a pour objectif de remédier à tout ou partie des inconvénients de l'art antérieur, notamment ceux exposés ci-avant, en proposant une solution qui permette de gérer un jumeau numérique et d'en stocker une représentation dans une base de données, sans que cette représentation ne suivre un schéma de données prédéterminé nécessitant d'être stocké dans ladite base de données. Les représentations peuvent alors suivre un schéma de données par exemple défini par un utilisateur du système en fonction du cas d'utilisation de ce jumeau numérique.

[0008] Plus particulièrement, la présente invention permet de gérer un jumeau numérique indépendamment de son format de données, ce qui rend sa gestion et son utilisation flexible.

[0009] À cet effet, et selon un premier aspect, l'invention concerne un système de gestion de jumeaux numériques comprenant :

- un module de gestion d'au moins un jumeau numérique d'une entité, ledit jumeau numérique étant accessible au travers d'un réseau de télécommunications, ledit jumeau numérique comprenant un premier ensemble d'au moins une propriété ayant une valeur pouvant évoluer au cours du temps ;

- une base de données connectée au module de gestion (100) de jumeaux numériques et configurée pour enregistrer des représentations de jumeaux numériques, les représentations étant compatibles entre elles, une représentation d'un jumeau numérique comprenant un deuxième ensemble d'au moins une propriété ayant une valeur évoluant au cours du temps en fonction de l'évolution de la valeur de la au moins une propriété du premier ensemble du jumeau correspondant.

[0010] Les représentations d'une base de données sont dites compatibles entre elles dans le sens où une première représentation d'un premier jumeau numérique peut interagir avec une deuxième représentation d'un deuxième jumeau numérique, les formats des premier et deuxième jumeaux numériques ne permettant pas nécessairement cette interaction. Par interaction, on entend par exemple l'échange de données mais également la gestion (génération, évolution, suppression) de relations entre ces première et deuxième représentations.

[0011] Dans des modes particuliers de mise en œuvre, le système peut comporter en outre l'une ou plusieurs des caractéristiques suivantes, prises isolément ou selon toutes les combinaisons techniquement possibles. [0012] Selon une implémentation particulière, la base de données est une base de données orientée documents, et une représentation est stockée dans la base de données sous la forme d'un document comprenant le deuxième ensemble d'au moins une propriété.

[0013] Cette implémentation est avantageuse en ce qu'elle ne nécessite pas de schéma de données prédéterminé nécessitant d'être stocké dans ladite base de données, et qu'elle permet de stocker une représentation quel que soit le format du jumeau numérique associé, et quelles que soient les propriétés de ce jumeau numérique.

[0014] Selon une implémentation particulière, le module de gestion (100) comprend au moins un agent (120) dédié à la gestion d'une représentation et l'agent comprend un module de synchronisation configuré pour déclencher, en réponse à la détermination d'une évolution de la valeur de la au moins une propriété du premier ensemble, une mise-à-jour de la valeur de la au moins une propriété du deuxième ensemble, la mise-à-jour étant fonction d'une stratégie de synchronisation caractérisant une fréquence de synchronisation et/ou un état de synchronisation.

[0015] Cette implémentation est avantageuse en ce qu'elle permet d'éviter une congestion liée à la réception simultanée d'un nombre significatif de requêtes par le module de gestion de jumeaux numériques.

[0016] Selon une implémentation particulière, le jumeau numérique est un jumeau physique correspondant à une réplique numérique de l'entité, un jumeau virtuel correspondant à une simulation de l'entité étant associé à ce jumeau physique, et l'état de synchronisation est un état parmi :

- une désynchronisation entre l'entité, les jumeaux physique et virtuel, et la représentation correspondante ;

- une synchronisation entre l'entité, les jumeaux physique et virtuel, et la représentation correspondante ;

- une réplication de la valeur d'au moins une propriété du jumeau physique avec la valeur d'au moins une propriété correspondante du jumeau virtuel et une synchronisation entre le jumeau physique et la représentation correspondante ;

- une réplication de la valeur d'au moins une propriété du jumeau virtuel avec la valeur d'au moins une propriété correspondante du jumeau physique et une synchronisation entre le jumeau virtuel et la représentation correspondante.

[0017] Selon une implémentation particulière, la base de données est une base de données orientée graphe.

[0018] L'utilisation d'une base de données orientée graphes est avantageuse puisque les relations entre les différentes entrées de la base de données sont stockées dans la base de données elle- même, et n'ont pas à être déterminées à la volée, sur réception d'une requête spécifique. De cette manière, le temps de réponse est considérablement réduit, même pour des requêtes complexes. Par ailleurs, une base de données orientée graphe est particulièrement adaptée à l'Internet des Objets et aux systèmes complexes puisqu'elle permet de stocker une grande quantité de données (potentiellement complexes), sans que ceci n'affecte le traitement d'une requête dans une telle base.

[0019] Selon une implémentation particulière, le module de gestion est configuré pour gérer au moins un premier et deuxième jumeaux numériques liés entre eux par une relation sémantique, et le module de gestion comprend une indication selon laquelle les représentations des premier et deuxième jumeaux numériques sont également liées entre elles.

[0020] Cette implémentation est avantageuse en ce qu'elle permet de gérer un système complexe constitué d’un grand nombre de jumeaux en interaction.

[0021] Selon une implémentation particulière, le module de gestion comprend :

- un module de réception d'une instruction visant à interagir avec un jumeau numérique (J)

- un module de détermination qu'un agent dudit module de gestion n'a pas été préalablement associé audit jumeau numérique (J) ;

- un module d'instanciation d'un agent associé audit jumeau numérique (J) configuré pour instancier ledit agent en mémoire de manière dynamique ; et,

- un module d'instanciation configuré pour instancier une représentation.

[0022] Selon une implémentation particulière, l'agent comprend en outre :

- un module d'accès au jumeau numérique (J) ; et,

- un module de gestion d'au moins un ensemble d'interfaces de programmation spécifiant les méthodes applicables au jumeau numérique (J).

[0023] Selon une implémentation particulière, le module de gestion comprend en outre un module de réponse configuré pour générer une réponse représentative de la réussite de l'application d'une méthode sur un jumeau numérique.

[0024] Selon un deuxième aspect, l'invention concerne un procédé de gestion de jumeaux numériques par un système de gestion de jumeaux numériques, le procédé comprenant:

- la réception d'une instruction visant à interagir avec un jumeau numérique (J) ;

- la détermination qu'aucun agent dudit module de gestion n'a été préalablement associé audit jumeau numérique (J) ;

- l'instanciation d'un agent associé audit jumeau numérique (J), l'instanciation étant réalisée en mémoire et de manière dynamique ; et, - l'instanciation d'une représentation d'un jumeau numérique, en fonction de données d'association.

[0025] De manière générale, on considère que les étapes d'un procédé ne doivent pas être interprétées comme étant liées à une notion de succession temporelle.

[0026] Selon un troisième aspect, l'invention concerne un programme d'ordinateur comportant des instructions pour la mise en œuvre d'un procédé de gestion, lorsque ledit programme est exécuté par un processeur.

[0027] Selon un quatrième aspect, l'invention concerne un support d'enregistrement lisible par un ordinateur sur lequel est enregistré le programme d'ordinateur selon l'invention.

Brève description des dessins

[0028] D'autres caractéristiques et avantages de la présente invention ressortiront de la description faite ci-dessous, en référence aux dessins annexés qui en illustrent un exemple de réalisation dépourvu de tout caractère limitatif. Sur les figures :

[0029] [Fig.lA] la figure IA représente schématiquement un premier exemple de réalisation, conforme à l'invention, d'un système de gestion de jumeaux numériques.

[0030] [Fig.lB] la figure IB représente schématiquement un deuxième exemple de réalisation, conforme à l'invention, d'un système de gestion de jumeaux numériques.

[0031] [Fig.2A] la figure 2A illustre schématiquement un exemple d'agents associés à des jumeaux numériques liés entre eux par une relation sémantique.

[0032] [Fig.2B] la figure 2B illustre schématiquement un exemple d'agents associés à des jumeaux numériques appartenant à un même système de jumeaux numériques.

[0033] [Fig.2C] la figure 2C représente schématiquement un exemple de systèmes de jumeaux numériques liés entre eux par une relation sémantique.

[0034] [Fig.3A] la figure 3A représente schématiquement un exemple de réalisation, conforme à l'invention, d'un module de gestion 100 appartenant au système de gestion de la figure IA ou de la figure IB.

[0035] [Fig.3B] la figure 3B représente schématiquement un exemple de réalisation, conforme à l'invention, d'un agent 120 appartenant au module de gestion 100 de la figure 3A.

[0036] [Fig.4] La figure 4 représente schématiquement un exemple d'architecture matérielle d'un module de gestion 100 appartenant au système de gestion de la figure IA ou de la figure IB. [0037] [Fig.5] la figure 5 représente, sous la forme d'un diagramme temporel, un exemple de procédé de gestion de jumeaux numériques, tel qu'il est mis en œuvre par le système de gestion de la figure IA ou de la figure IB.

Description des modes de réalisation

[0038] Les éléments communs ou analogues à plusieurs figures portent les mêmes signes de référence et présentent des caractéristiques identiques ou analogues, de sorte que ces éléments communs ne sont généralement pas à nouveau décrits, par souci de concision.

[0039] La figure IA représente schématiquement un premier exemple de réalisation, conforme à l'invention, d'un système de gestion de jumeaux numériques.

[0040] Le système 1000 de gestion de jumeaux numériques comprend un module 100 de gestion de jumeaux numériques connecté, au travers d'un réseau de télécommunication 500, à un jumeau numérique 200. Le module 100 de gestion de jumeaux numériques est également connecté à une base de données 400.

[0041] Base de données 400

[0042] Selon une implémentation particulière, la base de données 400 est une base de données NoSQL (acronyme de « Not Only SQL »). Ces bases de données sont particulièrement adaptées à l'Internet des Objets, puisqu'elles permettent de stocker et analyser des volumes importants de données, sans que les données ne suivent nécessairement un schéma de données prédéterminé nécessitant d'être stocké dans ladite base de données. Autrement dit, les données ne sont pas nécessairement organisées sous la forme de tables liées entre elles par des jointures, et il est donc possible d'interagir avec ces bases de données sans utiliser de langage de requête complexe. Des interfaces de programmations permettent typiquement de manipuler les données en utilisant un langage représentant de l'information structurée, tel que XML (acronyme de « extensible Markup Language) ou JSON (acronyme de « JavaScript Object Notation »).

[0043] Selon une implémentation particulière, la base de données 400 est une base de données NoSQL orientée documents. Chaque entrée de la base de données correspond alors à un couple [clef, valeur]. Et la valeur correspond à un document contenant une liste de propriétés, chaque propriété étant associée à une valeur qui peut elle-même être une liste de propriétés. Selon une implémentation particulière, le document est un fichier de type JSON ou XML.

[0044] L'utilisation d'une base de données NoSQL orientée documents offre l'avantage de manipuler des données (e.g., des documents) structurées sans qu'un schéma de données préalablement défini et nécessitant d'être stocké dans ladite base de données ne soit nécessaire. Par ailleurs, elle permet de manipuler ces documents, et en particulier de récupérer un ensemble d'informations structurées de manière hiérarchique en utilisant une unique clef. Avec une base de données relationnelle, cette opération serait coûteuse en terme de ressource de traitement puisqu'elle nécessiterait potentiellement de réaliser plusieurs jointures.

[0045] Selon une implémentation particulière, la base de données 400 est une base de données orientée graphe. Dans ce cas, les relations entre les différentes entrées de la base de données sont stockées dans la base de données 400 elle-même, et n'ont pas à être déterminées à la volée, sur réception d'une requête spécifique. De cette manière, le temps de réponse est considérablement réduit, même pour des requêtes complexes. Par ailleurs, une base de données orientée graphe est particulièrement adaptée à l'Internet des Objets et aux systèmes complexes puisqu'elle permet de stocker une grande quantité de données (potentiellement complexes), sans que ceci n'affecte le traitement d'une requête dans une telle base.

[0046] Module de gestion de jumeaux numériques

[0047] De retour à la figure IA, le module de gestion 100 comprend un module générique 110 configuré pour gérer un ensemble d'au moins un agent 120. Plus précisément, le module générique est responsable de l'organisation logique en mémoire d'agents 120, incluant notamment le regroupement logique d'agents dédiés à des jumeaux issus d'un même domaine fonctionnel ou dédiés à une même application, et la génération de relations sémantiques entre ces agents, lesdites relations générées répliquant les liens stockés dans la base de données entre les jumeaux numériques.

[0048] Un agent 120 est configuré pour traiter un unique jumeau numérique 200, ainsi que la représentation 410 de ce jumeau numérique dans la base de données 400. Les fonctionnalités de cet agent 120 seront décrites plus précisément ci-après. La représentation 410 correspond à une entrée de la base de données 400. Ainsi, si la base de données est une base de données NoSQL orientée documents, la représentation 410 correspond à un document de cette base.

[0049] Jumeau numérique

[0050] Il convient de rappeler à ce stade qu'un jumeau numérique peut être défini comme une réplication numérique d'une entité, e.g., un objet réel ou un procédé, qui présente la particularité d'évoluer en fonction des transformations de l'entité à laquelle il est attaché.

[0051] Le jumeau numérique 200 peut être soit un jumeau numérique physique 210 et il correspond dans ce cas à une réplique numérique la plus fidèle possible d'un objet réel 300. En variante, le jumeau numérique 200 est un jumeau numérique virtuel 220 et correspond alors à une version simulée ou adaptée de l'objet 300. Concernant cet aspect, l'homme du métier peut se référer au document « Differentiating Digital Twin From Digital Shadow: Elucidating A Paradigm Shift To Expedite A Smart, Sustainable Built Environment », Samad M. E. Sepasgozar, Buildings, 77(4), 151. Enfin, en variante, le jumeau numérique 200 comprend un jumeau numérique physique 210 et un jumeau numérique virtuel 220. Ce jumeau numérique 200 est relié à l'objet 300 qu'il représente, par exemple au travers d'un réseau de communication 510. [0052] Synchronisation du iumeau numérique 200 et de sa représentation 410

[0053] Un jumeau numérique 200 est par définition configuré pour fournir à chaque instant des informations sur l'état actuel de fonctionnement de l'objet réel 300 auquel il est relié, et à fortiori, il en est de même pour sa représentation 410 en base de données 400. Autrement dit, lorsqu'au moins une valeur d'une propriété du jumeau numérique évolue dans le temps, la valeur de la propriété correspondante de la représentation évolue de manière similaire. Selon une implémentation particulière, la valeur de la propriété correspondante de la représentation est égale à celle de la propriété du jumeau numérique. Cette synchronisation n'est pas nécessairement immédiate, mais dépend d'une stratégie de synchronisation, accessible par l'agent 120 gérant ce jumeau numérique 200, et caractérisant une fréquence de synchronisation et/ou un état de synchronisation.

[0054] La fréquence de synchronisation dépend généralement du type d'objet, mais également de l'utilisation qui en est faite. Ainsi, si l'objet considéré est par exemple une lampe éclairant une serre agricole en fonction de la luminosité ambiante, une synchronisation une fois toutes les 30 minutes sera amplement suffisante. Si par contre la lampe éclaire un bureau, une synchronisation une fois par minute sera préférable.

[0055] L'état de synchronisation correspond :

- soit à une désynchronisation totale entre l'objet réel 300, les jumeaux numériques physique 210 et virtuel 220, et à fortiori la représentation 410 correspondante ;

- soit à une synchronisation totale entre l'objet réel 300, les jumeaux numériques physique 210 et virtuel 220, et la représentation 410 correspondante ;

- soit à une synchronisation directionnelle « jumeau numérique physique vers jumeau numérique virtuel », c'est-à-dire à une réplication des valeurs des propriétés du jumeau numérique physique 210 sur les valeurs des propriétés correspondantes du jumeau numérique virtuel 220, puis une synchronisation entre le jumeau numérique (physique ou virtuel) et la représentation correspondante 410 ; ou,

- soit à une synchronisation directionnelle « jumeau numérique virtuel vers jumeau numérique physique », c'est-à-dire à une réplication des valeurs des propriétés du jumeau virtuel 220 sur les valeurs des propriétés correspondantes du jumeau physique 210, puis une synchronisation entre le jumeau numérique (physique ou virtuel) et la représentation correspondante 410.

[0056] Selon une implémentation particulière, en cas de détection, par un agent 120 ou plus généralement un module de gestion 100, d'une désynchronisation entre l'objet réel 300 et son jumeau numérique 200 (physique et/ou virtuel) ou entre le jumeau numérique 200 et sa représentation 410 en base de donnée, ledit module de gestion est configuré pour transmettre une notification, à un utilisateur du système 1000, comprenant une indication selon laquelle au moins certains des composants du système sont désynchronisés entre eux.

[0057] Données d'association

[0058] Il convient de rappeler que, lorsqu'au moins une valeur d'une propriété du jumeau numérique évolue dans le temps, la valeur de la propriété correspondante de la représentation évolue également.

[0059] La détermination de la propriété correspondante se fait au travers de données d'association. Ces données d'association sont stockées par l'agent 120 et définissent une relation, pouvant évoluer dans le temps, entre les propriétés du jumeau numérique 200 et les propriétés de sa représentation 410.

[0060] Selon une implémentation particulière, lorsque le jumeau numérique 200 comprend un jumeau numérique physique 210 et un jumeau numérique virtuel 220, la base de données 400 comprend deux représentations associées à ce jumeau numérique 200, chacune étant associée à un des jumeaux physique et virtuel. Dans ce cas, l'agent 120 gérant ledit jumeau numérique 200 comprend d'une part des premières données d'association liant les propriétés du jumeau physique 210 et la représentation dudit jumeau physique, d'autre part des deuxième données d'association liant les propriétés du jumeau virtuel 220 et la représentation dudit jumeau virtuel.

[0061] Selon une implémentation particulière, ces données d'association sont codées en dur et définies par un utilisateur du système 1000 pour un jumeau numérique 200 particulier.

[0062] En variante, les données d'association sont déterminées de façon dynamique, en fonction d'un standard ou d'une norme. Plus précisément, un jumeau numérique 200 est conforme à un standard, tel que DTDL (acronyme de « Digital Twins Definition Language » et dont une spécification peut être accédée depuis l'adresse https://qithub.com/Azure/opendiqitaltwins- dtdl/blob/master/DTDL/v2/dtdlv2.md) ; NGSI-LD (définit dans le document ETSI GS CIM 009 VI.4.1, Context Information Management (CIM) NGSI-LD API, publié en février 2021) ; SensorThings API (dont une spécification peut être accédée depuis l'adresse https://qithub.com/opengeospatial/sensorthings) ; ou WoT TD (acronyme de « Thing Description Ontology - Thing Description » et dont une spécification peut être accédée depuis l'adresse https://www.w3.org/2019/wot/td). Et une association entre les propriétés du jumeau numérique 200 et les propriétés de sa représentation 410 en base de données peut alors être déduite.

[0063] Selon une implémentation particulière, un composant logiciel convertit la représentation d'une ou de plusieurs représentations de format standards vers la représentation en base de données. Ce composant peut tirer parti des métadonnées (e.g. MIME type) du fichier de représentation, indiquant de quel format il s'agit en entrée.

[0064] Autres particularités [0065] Dans l'exemple illustré par cette figure IA, les données collectées via des capteurs disposés sur ou à proximité de l'objet réel 300 sont enregistrées dans une base de données 600 connectée à l'objet réel 300 au travers d'un réseau de télécommunication 530. Cette base de données 600 peut également être accédée par le jumeau numérique 200 via le réseau de télécommunication 520. La base de données 600 peut également stocker des métadonnées de l'objet 300. Ces métadonnées comprennent par exemple la date de création, la date de dernière mise à jour, la date d'expiration, le propriétaire (ID), un indicateur de visibilité et/ou de confidentialité.

[0066] Les réseaux de télécommunication 500, 510, 520 et 530 peuvent correspondre à des réseaux distincts ou à un même réseau. Aucune limitation n'est attachée au type de réseau de télécommunication, qui est par exemple un réseau Internet, un réseau Wifi, ou un réseau de téléphonie fixe ou mobile. En variante, les réseaux de télécommunication 500, 510, 520 et 530 peuvent ne correspondre qu'à une simple liaison filaire ou sans fil.

[0067] Dans l'exemple de la figure IA, le jumeau numérique 200 est plus précisément une instance d'un jumeau numérique, ce jumeau numérique ayant été développé de sorte à modéliser un type particulier d'objet dont l'objet réel 300 appartient.

[0068] Figure IB

[0069] La figure IB représente schématiquement un deuxième exemple de réalisation, conforme à l'invention, d'un système de gestion de jumeaux numériques.

[0070] Dans cet exemple, le module 100 de gestion de jumeaux numérique est lié à une bibliothèque 700 de jumeaux numériques 200, les jumeaux de la bibliothèque correspondant à des jumeaux numériques physiques 210, des jumeaux numériques virtuels 220 ou comprenant à la fois un jumeau numérique physique 210 et un jumeau numérique virtuel 220.

[0071] Les jumeaux numériques 200 de la bibliothèque 700 ont été développés pour un type particulier d'objet. À la différence de l'exemple illustré par la figure IA qui manipule des jumeaux 200 déjà instanciés, la bibliothèque 700 stocke des jumeaux numériques 200 qui, lorsqu'ils sont stockés dans la bibliothèque 700, ne sont pas encore instanciés, et a fortiori, ne sont pas encore reliés à un objet réel 300.

[0072] L'instanciation d'un tel jumeau numérique est mise en œuvre, par exemple lorsqu'un utilisateur du système 1000 souhaite utiliser un jumeau numérique de la bibliothèque pour un objet 300 de son environnement. Cet objet 300 est connecté, directement ou au travers d'un réseau de télécommunication (non représenté), au module de gestion 100.

[0073] Dans cet exemple, la base de données 400 stocke alors une représentation d'une instanciation d'un jumeau numérique 200 de la bibliothèque 700 de jumeaux numériques.

[0074] Organisation des jumeaux numériques [0075] Si l'objet réel 300 est par exemple une lampe située dans un bureau, lorsque celle-ci s'allume ou s'éteint réellement, ce changement d'état devrait pouvoir être automatiquement diffusé au dispositif de climatisation équipant ce bureau. De manière symétrique, le jumeau numérique de la lampe devrait être lié au jumeau numérique du dispositif de climatisation afin de pouvoir l'informer qu'une valeur d'une de ses propriétés a évolué, et ainsi permettre au dispositif de climatisation de s'éteindre lorsque la lampe est éteinte. Dans cet exemple, les jumeaux numériques sont donc liés entre eux par une relation sémantique, et appartiennent à un même système, ici un système de gestion d'un bâtiment.

[0076] De manière plus générale, plusieurs jumeaux numériques 200 peuvent donc former un système complexe qui peut être représenté sous la forme d'un graphe, chaque nœud correspondant à un jumeau numérique, un arc entre deux nœuds correspondant à une relation sémantique entre deux jumeaux numériques 200. Cette structuration ou hiérarchie entre les jumeaux numériques doit également être reflétée au niveau des agents gérant les représentations de ces jumeaux numériques. En variante, lorsqu'une base de données orientée graphe est utilisée, ces relations sont également spécifiées au sein de cette base de données.

[0077] Ainsi, la figure 2A illustre schématiquement un exemple d'agents 120-1 et 120-2 gérant les représentations de jumeaux numériques liés entre eux par une relation sémantique 130-1. La relation sémantique correspond par exemple à « est_une_partie_de », « est_un », « est_connecté_à ».

[0078] La figure 2B illustre schématiquement un exemple d'agents 120-3 et 120-4 gérant les représentations de jumeaux numériques appartenant à un même système de jumeaux numériques. Plus précisément, l'agent 120-3 est lié par la relation sémantique 130-2 à l'agent 120-4, et ces deux agents appartiennent également à un même système 140-1.

[0079] La figure 2C représente schématiquement un exemple de deux systèmes 140-2, 140-3 de jumeaux numériques liés entre eux par une relation sémantique 150-1. La relation sémantique liant deux système correspond par exemple à « est_une_partie_de », « est_un », « est_connecté_à ».

[0080] Figures 3A, et 3B

[0081] La figure 3A représente schématiquement un exemple de réalisation, conforme à l'invention, d'un module de gestion 100 appartenant au système de gestion 1000 de la figure IA ou de la figure IB.

[0082] La figure 3B représente schématiquement un exemple de réalisation, conforme à l'invention, d'un agent 120 appartenant au module de gestion 100 de la figure 3A.

[0083] La figure 4 représente schématiquement un exemple d'architecture matérielle d'un module de gestion 100 appartenant au système de gestion de la figure IA ou de la figure IB. [0084] Tel qu'illustré par la figure 4, le module de gestion 100 de jumeaux numériques dispose de l'architecture matérielle d'un ordinateur. Ainsi, le module comporte, notamment, un processeur 1, une mémoire vive 2, une mémoire morte 3 et une mémoire non volatile 4. Il comporte en outre un module de communication 5.

[0085] La mémoire morte 3 du système constitue un support d'enregistrement tel que proposé, lisible par le processeur 1 et sur lequel est enregistré un programme d'ordinateur PROG_P conforme à l'invention, comportant des instructions pour l'exécution d'étapes du procédé de gestion tel que proposé ci-après. Le programme PROG_P définit des modules fonctionnels du module de gestion 100 tels que représentés à la figure 3A et de l'agent 120 tels que représentés à la figure 3B, qui s'appuient ou commandent les éléments matériels 1 à 5 du module de gestion cités précédemment, et qui comprennent notamment :

- un module MOD_RX de réception d'une instruction visant à interagir avec un jumeau numérique (J) ;

- un module MOD_DET de détermination qu'aucun agent dudit module de gestion n'a pas été préalablement associé audit jumeau numérique (J) ;

- un module MOD_INS d'instanciation d'un agent associé audit jumeau numérique (J) configuré pour instancier ledit agent en mémoire de manière dynamique.

[0086] Par ailleurs, une fois instancié, l'agent 120 comprend :

- un module d'instanciation MOD_INS_REP configuré pour instancier une représentation dudit jumeau numérique (J) ;

- un module MOD_ACC d'accès au jumeau numérique (J) ;

- un module MOD_SYN de synchronisation configuré pour déclencher, en réponse à la détermination d'une évolution de la valeur d'une propriété du jumeau numérique, une mise- à-jour de la valeur de la propriété correspondante de la représentation, la mise-à-jour étant fonction d'une stratégie de synchronisation caractérisant une fréquence de synchronisation et/ou un état de synchronisation ; et,

- un module MOD_API de gestion d'au moins un ensemble d'interfaces de programmation spécifiant les méthodes applicables au jumeau numérique (J).

[0087] Par ailleurs, le module de gestion 100 peut encore comporter d'autres modules, notamment pour mettre en œuvre des modes particuliers du procédé de gestion, comme cela est décrit plus en détail ultérieurement.

[0088] Il convient de noter que l'instruction reçue par le module MOD_RX de réception d'une instruction est émise par un utilisateur du système 1000 souhaitant interagir avec un jumeau numérique particulier, ou par un module de contrôle configuré pour avertir le module de gestion 100 de l'enregistrement d'un nouveau jumeau dans la base de données 700. [0089] Par ailleurs, il convient également à noter que selon une implémentation particulière, la requête reçue par le module MOD_RX de réception comprend une indication permettant d'identifier de manière unique un jumeau numérique 200. Il s'agit par exemple d'un identifiant unique tel qu'un URI (acronyme de « Uniform Ressource Identifier »). Le module MOD_DET de détermination est alors configuré pour comparer cet identifiant unique avec une liste d'identifiants uniques de jumeaux préalablement instanciés par le module de gestion 100. Si la liste ne contient pas l'identifiant présent dans la requête, cela signifie alors qu'aucun agent dudit module de gestion n'a pas été préalablement associé au jumeau numérique identifié dans la requête.

[0090] Le module MOD_ACC d'accès au jumeau numérique peut également être configuré pour mettre en œuvre un processus d'authentification du jumeau numérique. Ce processus d'authentification peut utiliser une clé cryptographique qui est symétrique ou asymétrique. En variante, pour accroître la sécurité par rapport à ces solutions basées sur des clefs, un protocole de type EAP (acronyme de « Extensible Authentication Protocol ») utilisant un serveur d'authentification peut être mis en œuvre.

[0091] Selon une implémentation particulière, le module MOD_ACC est également configuré pour vérifier que l'utilisateur ayant émis la requête reçue par le module MOD_RX dispose des droits d'accès pour appliquer une certaine fonction sur le jumeau numérique (J).

[0092] Par ailleurs, il est à noter que le module MOD_API d'obtention d'au moins un ensemble d'interfaces de programmation spécifiant les méthodes applicables au jumeau numérique (J) peut comprendre un sous-module MOD_API_PHY configuré pour obtenir les interfaces de programmation spécifiant les méthodes applicables au jumeau numérique physique 210, et un sous-module MOD_API_VIRT configuré pour obtenir les interfaces de programmation spécifiant les méthodes applicables au jumeau numérique virtuel 220.

[0093] Le module de communication 5 du module de gestion 100 lui permet notamment de communiquer avec la base de données 400, et avec le jumeau numérique 200 ou avec la bibliothèque 700 de jumeaux numériques, et intègre à cet effet les modules de réception MOD_RX et d'accès MOD_ACC, ainsi que des moyens matériels et logiciels tels que ceux décrits ci-avant pour mettre en œuvre le procédé de gestion.

[0094] La figure 5 représente, sous la forme d'un diagramme temporel, un exemple de procédé de gestion de jumeaux numériques, tel qu'il est mis en œuvre par le système de gestion de la figure IA ou de la figure IB.

[0095] Tel qu'illustré par la figure 5, le procédé de gestion comprend une première étape E410, mis en œuvre par le module MOD_RX de réception, par le module de gestion 100, d'une instruction visant à interagir avec un jumeau numérique 200. Selon une implémentation particulière, la requête reçue par le module MOD_RX de réception comprend une indication permettant d'identifier de manière unique un jumeau numérique 200. Il s'agit par exemple d'un identifiant unique tel qu'un URI (acronyme de « Uniform Ressource Identifier »).

[0096] Le procédé de gestion comprend en outre une étape de la détermination, par le module MOD_DET de détermination du module de gestion 100, qu'aucun agent dudit module de gestion n'a été préalablement associé audit jumeau numérique 200. Plus précisément, cet identifiant unique est comparé avec une liste d'identifiants uniques de jumeaux préalablement instanciés par le module de gestion 100. Si la liste ne contient pas l'identifiant présent dans la requête, cela signifie alors qu'aucun agent dudit module de gestion n'a pas été préalablement associé au jumeau numérique identifié dans la requête.

[0097] Si tel est le cas, un nouvel agent 120 est instancié en mémoire de manière dynamique lors d'une étape E430 par le module MOD_INS d'instanciation. Cette mise en œuvre est avantageuse en ce qu'elle optimise la ressource mémoire disponible. Le procédé comprend en outre une étape E440 au cours de laquelle l'agent 120 transmet une notification au module de gestion 100 pour l'informer que ledit agent est correctement instancié.

[0098] Lors d'une étape E450, une représentation en base de données 400 dudit jumeau numérique 200 est instanciée. Cette étape est mise en œuvre par le module d'instanciation MOD_INS_REP de l'agent 120. Dans une implémentation particulière, le module d'instanciation accède à une base de données (telle que la base de données 600 de la figure IA) et obtient :

- une information permettant d'accéder au jumeau numérique ;

- une stratégie de synchronisation associée au jumeau numérique 200 ;

- un ensemble d'interfaces de programmation spécifiant les méthodes applicables au jumeau numérique 200 ; et,

- des données d'association qui définissent une projection, pouvant évoluer dans le temps, entre les propriétés du jumeau numérique 200 et les propriétés de sa représentation en base de données 400.

[0099] Le procédé comprend en outre une étape E460 au cours de laquelle la représentation 410 transmet une notification à l'agent 120 pour l'informer que ladite représentation est correctement instanciée.

[0100] La requête reçue lors de l'étape E410 comprend également une fonction (f) à appliquer sur le jumeau numérique 200 et, le cas échéant, des valeurs des paramètres de cette fonction. En variante, une nouvelle requête comprenant cette fonction (f) et, le cas échéant, des valeurs des paramètres de cette fonction est reçue par le module de gestion 100. Lors d'une étape E470, le module de gestion 100 transmet, à destination de l'agent 120, la fonction (f) à appliquer sur le jumeau numérique 200 ainsi que les valeurs des paramètres de cette fonction. En réponse à la réception de cette fonction, le module MOD_API détermine si cette fonction (f) peut effectivement être appliquée au jumeau numérique 200, et si c'est le cas, le module MOD_ACC détermine si l'utilisateur ayant émis la requête dispose des droits d'accès nécessaires pour appliquer cette fonction (f) au jumeau numérique 200. Si c'est le cas, une instruction visant à appliquer la fonction (f) est transmise au jumeau numérique 200 lors d'une étape E480.

[0101] En réponse à la réception de cette instruction, le jumeau numérique 200 met en œuvre cette fonction (f) lors d'une étape E490, et met à jour la valeur d'au moins une propriété reflétant la mise en œuvre de cette fonction. Ainsi si le jumeau numérique représente une lampe, et si la fonction vise à éteindre la lampe, alors le jumeau numérique met en œuvre cette fonction et la valeur de la propriété « état » passe de la valeur « 1 » à la valeur « 0 ».

[0102] S'il est synchronisé avec l'objet 300 auquel il est relié, ledit jumeau numérique 200 transmet lors d'une étape 500 une instruction à l'objet 300 qu'il représente, de sorte que ce dernier mette également en œuvre cette fonction (f). En retour, l'objet 300 retourne au jumeau numérique 200, la valeur d'au moins une propriété ayant été modifiée après application de la fonction (f) lors d'une étape E510.

[0103] Lors d'une étape E520, les valeurs des propriétés du jumeau numérique et/ou de l'objet reflétant la mise en œuvre de cette fonction (f) sont transmises à l'agent 120, qui met alors à jour la représentation correspondante lors d'une étape E530.

[0104] Enfin, lors d'une étape E540, ces valeurs sont transmises, par un module de réponse de l'agent à destination du module de gestion 100, qui les transmet à un dispositif d'affichage lors d'une étape E550.

[0105] Selon une implémentation particulière, les échanges entre le module de gestion et l'utilisateur, et/ou entre le module de gestion et le jumeau numérique 200, et/ou entre le jumeau numérique et l'objet 300 qu'il représente sont conformes au protocole HTTP (acronyme de « Hypertext Transfer Protocol»).

[0106] Selon une implémentation particulière, les échanges E510, E520, E540 et E550 comprennent une localisation programmatique de l'effet de la mise en œuvre de la fonction (f). Dans ce cas, un paradigme de communication conforme à HATEOAS (acronyme de « Hypermedia As The Engine of Application State ») est par exemple utilisé.

[0107] Selon une implémentation particulière, les échanges E510, E520, E540 et E550 comprennent une durée d'exécution de la fonction (f) et/ou une date effective de fin de mis en œuvre de la fonction (f).

[0108] Le procédé de gestion a été décrit jusqu'à présent dans le cas où la valeur d'au moins une propriété du jumeau numérique 200 et/ou de l'objet 300 qu'il représente est transmise au module de gestion 100, mais ce procédé n'en reste pas moins applicable dans le cas particulier où c'est une information représentative de l'échec (ou du succès) de la mise en œuvre de cette fonction (f) qui est transmise sur toute la chaîne de traitement, en fonction du mode de synchronisation.