Brevet FR3090926A1 — publié le 20200626

Description Titre de l'invention : PROCÉDÉ ET SYSTÈME AUTO-ADAPTATIF D'AGRÉGATION DE SOURCES DE DONNÉES Domaine technique [0001] De façon générale, l'invention concerne des ordinateurs et des logiciels et, en par- ticulier, des procédés, des systèmes et des produits-programmes d'ordinateur pour agréger de façon dynamique des données de multiples sources de données. [0002] CONTEXTE [0003] Les systèmes informatisés et les réseaux sont largement utilisés pour améliorer la productivité et optimiser les ressources dans des environnements où d'importants flux de données doivent être échangés entre de multiples dispositifs utilisateurs. Dans certains systèmes ou architectures informatisés, les données peuvent être collectées dans un système centralisé (système cible) à partir de multiples sources de données connectées au système cible via un réseau. [0004] Ces multiples sources de données publient, poussent ou transmettent des données variées dans leur propre format de données vers le système cible. [0005] Actuellement, un système cible recevant des données de multiples sources de données ayant de multiples formats de données fusionne ces données de façon statique et peut sélectionner une action à exécuter sur la base de ces données fusionnées. Ce fusionnement de données peut créer des problèmes d'incohérence complexes. Par ailleurs, dans certains environnements, ce fusionnement de données est soumis à des contraintes de temps, car une décision doit être prise quasiment en temps réel concernant les actions qui doivent être exécutées sur la base des données reçues depuis les multiples sources. En particulier, dans certains systèmes existants, la détermination de l'action à exécuter doit nécessairement être faite par un opérateur humain gérant le système cible. En outre, lorsque le système cible se connecte à une nouvelle source de données, un nouvel analyseur doit être ajouté statiquement au système cible, au cours d'une phase de maintenance, ce qui bloque la production du système cible. Par ailleurs, si l'analyseur lié à une source donnée de données doit être modifié, par exemple pour ajouter une nouvelle règle, il est nécessaire d'ajouter statiquement le code lié à la nouvelle règle avant le l'exécution. Par conséquent, tout changement lié aux sources de données connectées au système cible nécessite l'implémentation statique des règles supplémentaires découplées dans le système cible et d'ajouter du code dur supplémentaire pour implémenter des règles soutenant la décision d'une nouvelle action en tenant compte du changement. 100061 Par conséquent, les approches existantes pour fusionner des données provenant de 2 multiples sources de données dans un système cible ralentissent et impactent la latence du système cible en raison du temps nécessaire pour intégrer une nouvelle source de données ou pour mettre à jour l'analyseur lié à une source donnée de données connectée au système. En particulier, l'intégration d'une nouvelle source de données ou la mise à jour de l'analyseur lié à une source donnée de données peut bloquer le système cible pendant le temps d'exécution (phase de production). Par ailleurs, des coûts élevés de maintenance de logiciels sont nécessaires, car le comportement des dispositifs sources de données peut évoluer et changer rapidement. [0007] Par exemple, le fonctionnement d'un système de fournisseurs de contenu en ligne ou plus généralement le fonctionnement d'un système basé sur l'informatique en nuage partageant des réserves de ressources de système informatique configurablcs sur l'interna afin de livrer du contenu ou des produits à un utilisateur peut être retardé par l'intégration d'une nouvelle source de données (p. ex. une nouvelle ressource de système informatique) créant ainsi un délai dans la transmission du contenu ou du produit à l'utilisateur. [0008] Il est donc nécessaire d'améliorer la vitesse, le traitement en temps réel des volumes de données reçus et la complexité computationnelle des systèmes existants qui fusionnent des données provenant de multiples dispositifs sources de données. [0009] RÉSUMÉ [0010] Afin de résoudre ces problèmes et d'autres, il est fourni un système d'agrégation de données pour agréger des données d'au moins deux dispositifs sources de données, chaque dispositif source de données étant connecté au système d'agrégation de données via un réseau. Le système comprend une unité d'agrégation de données configurée pour déterminer une action d'agrégation de données à exécuter par le système, en réponse à un message reçu par au moins un dispositif source de données, chaque message comprenant des données, le système comprenant par ailleurs une unité de vérification de cohérence configurée pour vérifier la cohérence de chaque message reçu d'un dispositif source de données en utilisant une ou plusieurs règles de cohérence et pour déterminer une action à exécuter par l'unité d'agrégation de données en fonction de la vérification de cohérence. Le système comprend par ailleurs une unité de détermination de métriques de précision configurée pour déterminer une métrique de précision pour l'action exécutée sur la base des valeurs de rétroaction reçues d'un ensemble d'au moins un dispositif utilisateur, l'unité d'agrégation de données comprenant une unité d'actualisation de règles (106) configurée pour mettre à jour les règles de cohérence sur la base des métriques de précision déterminées pour les actions exécutées. [0011] Dans un mode de réalisation, les données sont gérées dans chaque dispositif source de données dans au moins un format de donnée source et les données sont gérées dans 3 le système d'agrégation de données dans au moins un format de donnée cible, le système d'agrégation comprenant une unité d'analyse configurée pour analyser chaque message de données reçu d'un dispositif donné de sources de données dans un format de donnée source et une unité de conversion configurée pour convertir au moins une partie des données comprises dans le message analysé dans un format de donnée cible. [0012] Le système d'agrégation de données peut comprendre des moyens de stockage pour stocker au moins une partie des données converties. [0013] Dans un mode de réalisation, chaque message reçu d'un dispositif source de données comprend un identifiant qui identifie le dispositif source de données. [0014] Dans certains modes de réalisation, le système d'agrégation de données est configure pour exécuter une fonction de valeur en utilisant un plusieurs paramètres dérivés des valeurs de rétroaction reçues comme entrées de l'ensemble des dispositifs utilisateurs pour l'action exécutée et fournissant une valeur de sortie, ladite unité de métrique de précision déterminant la métrique de précision pour l'action exécutée sur la hase de ladite valeur de sortie. [0015] Lesdits un ou plusieurs paramètres peuvent comprendre un paramètre représentant le nombre d'occurrences d'une valeur de rétroaction donnée reçue de l'ensemble des dispositifs utilisateurs. [0016] Dans un mode de réalisation, la valeur donnée de rétroaction est une valeur indiquant un rejet de l'action. [0017] Dans certains modes de réalisation, la fonction de valeur peut fournir un résultat re- présentant une valeur de rétribution pour l'action. [0018] De façon avantageuse, lesdites règles de cohérence comprennent un ensemble de fonctions de prise de décision configurées pour déterminer une opération d'agrégation de données à exécuter à partir des messages reçus. [0019] En particulier, lesdites fonctions de prise de décision sont basées sur un nettoyage de données et/ou une fusion de données et/ou des conditions de consolidation de données et/ou des valeurs de rétroaction reçues pour des actions antérieures. [0020] 11 est fourni par ailleurs un procédé pour agréger des données d'au moins deux dis- positifs sources de données, chaque dispositif source de données étant connecté au système d'agrégation de données via un réseau. De façon avantageuse, le procédé comprend : [0021] - la détermination d'une action d'agrégation de données à exécuter par le système d'agrégation de données, en réponse à un message reçu d'au moins un dispositif source de données, chaque message comprenant des données, [0022] - la vérification de la cohérence de chaque message reçu d'un dispositif source de données en utilisant une ou plusieurs règles de cohérence, et [0023] - la détermination d'une action à exécuter en fonction de la vérification de cohérence. [0024] Le procédé comprend la détermination d'une métrique de précision pour l'action exécutée sur la hase de valeurs de rétroaction reçues d'un ensemble d'au moins un dispositif utilisateur. Le procédé comprend par ailleurs une étape de mise à jour desdites règles de cohérence sur la hase des métriques de précision déterminées pour les actions exécutées. [0025] Les modes de réalisation de l'invention fournissent de manière avantageuse un procédé et un système d'agrégation de données auto-adaptatif qui évitent la nécessité d'un codage en dur ou le besoin de règles découplées afin d'intégrer un changement lié à la source de données ou pour améliorer la détermination dès actions à exécuter. Brève description des dessins [0026] Les dessins annexés qui sont incorporés et constituent une partie de cette spéci- fication, illustrent des modes variés de réalisation de l'invention et, avec la description générale de l'invention ci-dessus et la description détaillée des modes de réalisation donnée ci-après, servent à expliquer les modes de réalisation de l'invention. [0027] La [fig.1] est une vue schématique d'un système d'agrégation de données en commu- nication via un réseau avec de multiples sources de données selon certains modes de réalisation. [0028] La [fig.2] représente un exemple d'environnement dc fonctionnement du système d'agrégation de données, selon une application exemplaire de l'invention à un système de tour de contrôle de lignes aériennes. [0029] La [fig.3] est un organigramme illustrant un procédé d'agrégation de données à partir de multiples sources de données, conforme à un mode de réalisation de l'invention. [0030] La [fig.4] est une vue schématique d'un exemple de système de fonctionnement pour héberger un composant dc l'environnement de la figure 1. Description des modes de réalisation [00311 Faisant référence à la Figure 1, un exemple d'environnement de fonctionnement 100 d'un système d'agrégation de données 10 est illustré conformément à des modes de réalisation de l'invention. 10032] Le système d'agrégation de données 10 (également désigné comme «système cible» peut être connecté à un ou plusieurs dispositifs sources de données informatiques 20 (également désigné ci-après « sources de données » ou dispositifs d'acheminement»). Chaque dispositif source de données 20 est configuré pour gérer des données ayant un ou plusieurs format(s) de source. Tel qu'utilisés ici, les termes « gérer des données » font référence à un quelconque traitement qui peut être effectué par un dispositif source de données incluant le stockage, la transmission ou une quelconque opération/ fonction/application exécutée sur les données. Les données gérées par les différents dispositifs sources de données 20 peuvent tous être liés à un même champ d'application ou à divers champs d'application, le système d'agrégation de données exécutant des applications sur la base des données agrégées provenant des dispositifs sources de données différents 20. [0033] Les dispositifs sources de données 20 peuvent être des dispositifs fiables ayant la capacité de communiquer avec le système cible 10 en utilisant un processus cryptographique tel qu'un processus d'encryption/décryption ou un processus d'authentification. [0034] Les dispositifs sources de données 20 peuvent gérer des données interdépendantes dans le sens où tout changement effectué aux données gérées par un dispositif source de données 20 peut impacter les données gérées par un ou plusieurs autres dispositifs sources de données, ou être indépendantes des autres dispositifs sources de données. Les dispositifs sources de données peuvent par exemple être des systèmes de fournisseurs de contenu, fournissant divers contenus, des dispositifs sources de données particuliers ou des outils. Autrement, les dispositifs sources de données 20 peuvent gérer des données indépendantes. [0035] Chaque dispositif source de données 20 peut être accédé par un ou plusieurs uti- lisateurs, chaque utilisateur étant équipé d'un dispositif utilisateur 4. L'accès ou la gestion d'un dispositif source de données 20 peut être limité à un ensemble limité d'utilisateurs utilisant un processus d'authentification. [0036] Dans certains modes de réalisation, un dispositif source de données 20 peut par ailleurs être connecté à d'autres systèmes, outils ou bases de données externes pour échanger des données. [0037] Chaque dispositif utilisateur 4 peut être un dispositif informatique personnel, une tablette informatique, un terminal client léger, un smartphone etlou tout autre dispositif informatique qui permettent à l'utilisateur de soumettre des requêtes à l'unité auto-adaptative d'agrégation de données 1 sur un réseau 5. Chaque dispositif client 4 peut héberger des navigateurs web etlou des logiciels d'applications personnalisées (p. ex. un système client), et peut inclure une interface utilisateur client (telle qu'une Interface graphique d'utilisateur GUI). [0038] Un dispositif source de données 20 peut comprendre un ou plusieurs dispositifs de stockage pour stocker des données dans un ou plusieurs formats sources. Les données gérées par chaque dispositif source de données 20 peuvent en particulier correspondre à un système de données défini par ledit un ou plusieurs formats de sources de données. [0039] Le système d'agrégation de données 10 peut être configuré pour agréger de façon dynamique les données provenant de multiples dispositifs sources de données 20 et peut gérer de façon centralisée ces données de sorte qu'un changement lié à un 6 dispositif source de données 20 peut être intégré de façon dynamique dans le système cible 10 pendant le temps d'exécution sans avoir besoin de coder en dur les changements et d'interrompre le fonctionnement du système cible. Des exemples de changements liés à un dispositif source de données 20 incluent par exemple un changement dans les données gérées par un dispositif source de données 20, un changement dans le format(s) des données gérées par un dispositif source de données, une connexion d'un nouveau dispositif source de données 20 au système cible 10, une déconnexion d'un dispositif source de données existant du système cible 10. [0040] Chaque dispositif source de données 20 peut communiquer avec le dispositif d'agrégation 10 via au moins un réseau 5. Un réseau 5 peut inclure un ou plusieurs réseaux privés et/ou publics (p. ex. Internet) qui permettent l'échange de données, tels qu'Tnternet, un réseau de zone locale (LAN), un réseau de zone étendue (WAN), un réseau cellulaire voix/données, une ou plusieurs connexions par bus à haute vitesse et/ ou d'autres types de réseaux de communication de ce genre. Le réseau 5 peut utiliser des technologies de communication normales et/ou des protocoles tels que 4G, Ethernet, 802.11, TCP/IP (Protocole de contrôle de transmission/Protocole Internet), HTTP (Protocole de transport hypertexte), FTP (Protocole de transfert de fichier), etc. Les données peuvent être échangées sur le réseau 5 selon des technologies d'échange de données et/ou des formats tels que le langage de balisage hypertexte (HTML) et le langage de balisage étendu (XML). [0041] Dans certains modes de réalisation, les dispositifs sources de données 20 peuvent par ailleurs interagir les uns avec les autres par l'intermédiaire du système d'agrégation de données 10, en utilisant un réseau. [0042] Le système d'agrégation de données 10 peut être configuré pour agréger des données provenant des multiples dispositifs sources de données 20, chaque dispositif source de données 20 gérant les données dans un ou plusieurs formats de données sources définis par un système source de données. En particulier, le système d'agrégation de données 10 peut être configuré pour rejeter, stocker ou mettre à jour au moins une partie d'un message (c.-à-d. partiellement ou complètement) reçu d'un dispositif source de données 20, le message comprenant des données dans un format de source de données. [0043] Le système d'agrégation de données 10 peut comprendre une unité d'agrégation auto-adaptative 1 configurée pour traiter des messages de données reçus d'un ou de plusieurs dispositifs sources de données et pour déterminer une action d'agrégation de données à exécuter en fonction du traitement des messages de données. [0044] L'unité d'agrégation auto-adaptative 1 peut comprendre un ou plusieurs agents agrégateurs auto-adaptatifs 11 configurés pour mettre en oeuvre (ou exécuter) une action d'agrégation de données. Les agents agrégateurs auto-adaptatifs 11 peuvent par 7 ailleurs être configurés pour mettre à jour de façon dynamique (ou affiner) un ensemble de règles de cohérence 15 conservé dans l'unité d'agrégation auto-adaptative 1 sur la hase de données de méta-apprentissage. [0045] Dans un mode de réalisation, le système d'agrégation de données 10 peut comprendre des moyens de stockage tels qu'une ou plusieurs mémoires ou une ou plusieurs hases de données pour stocker des données reçues des dispositifs sources de données 20. [0046] Les données reçues de chaque dispositif source de données 20 (également désigné comme source de données «émettrice») peuvent aussi être reçues dans un format donné de source qui correspond au format des données selon lequel le dispositif source de données émetteur 20 gère (p. ex. stocke, traite ou transmet) les données. [0047] Le système d'agrégation de données 10 peut comprendre une unité d'analyse de données 101 configurée pour analyser un message de données reçu d'un dispositif source de données 20 dans un format donné de source de données avant la transmission à l'unité de conversion 101. [0048] L'unité d'analyse de données 101 peut appliquer une ou plusieurs règles d'analyse 12. [0049] Le système d'agrégation de données 10 peut par ailleurs comprendre une unité de conversion 102 configurée pour convertir le format des données comprises dans le message de données reçu d'un dispositif source de données 20 dans un format cible prédéfini en utilisant une ou plusieurs règles de conversion (ou mesures) 13. [0050] Le système d'agrégation de données 10 peut stocker les données converties reçues du dispositif source de données 20 dans le stockage et/ou les utiliser pour déterminer une action d'agrégation de données devant être exécutée. Les moyens de stockage peuvent conserver les données agrégées de dispositifs sources de données 20 dans le format cible. [0051] Le système d'agrégation de données 10 peut comprendre une unité de véri- fication 103 (également désigné comme « vérificateur de cohérence de données ») configurée pour vérifier la cohérence d'un message de données reçu en utilisant les règles de cohérence sur la base des données converties. L'unité de vérification 103 peut être configurée pour vérifier la cohérence d'un message de données reçu en appliquant les règles dispositif cohérence 15 et en tenant compte des données reçues précédemment par d'autres dispositifs sources de données (qui peuvent être stockées dans le système cible, par exemple dans des moyens de stockage). [0052] Les règles de cohérence initiales 15 peuvent être chargées au moment du chargement. Le système d'agrégation de données 10 affine alors, de façon continue, les règles de cohérence au cours de l'exécution en utilisant les données de méta-apprentissage. [0053] Si l'unité de vérification 103 détermine que les données converties satisfont une ou 8 plusieurs règles de cohérence prédéfinics, les données peuvent être stockées dans les moyens de stockage ou traitées directement par le système cible (par exemple elles peuvent être utilisées par une ou plusieurs applications exécutées par le système cible 10). [0054] Dans certains modes de réalisation, le système d'agrégation de données 10 peut par ailleurs déterminer une action d'agrégation de données devant être exécutée conséquemment à la phase de vérification de cohérence. Les agents d'agrégation de données peuvent ensuite exécuter ou déclencher l'exécution d'actions d'agrégation de données. [0055] Dans certains modes de réalisation, le système d'agrégation de données 10 peut par ailleurs comprendre une unité de notation d'action 104 (également désignée ci-après « unité de détermination de métriques de précision ») pour chaque action exécutée sur la hase des données de rétroaction 400 reçues d'un ensemble d'au moins un utilisateur. [0056] Le système d'agrégation de données 10 peut par exemple soumettre une notification relative à une action exécutée à l'ensemble des utilisateurs, chaque utilisateur étant équipé d'un dispositif utilisateur 4, en réponse à l'exécution de l'action par le système d'agrégation de données 10. Cette notification peut comprendre un message incitant chaque utilisateur à fournir des données de rétroaction relatives à l'action exécutée. La notification peut par ailleurs comprendre un identifiant qui identifie l'action pour laquelle chaque utilisateur est incité à saisir des données de rétroaction. [0057] En réponse à la notification, chaque utilisateur peut transmettre un message comprenant une valeur(s) de rétroaction 400 (également désignée comme «donnée de rétroaction d'utilisateur») au système d'agrégation de données 10 en utilisant le dispositif utilisateur 4. Ces données de rétroaction 400 représentent des données en temps réel observées ou mesurées par l'utilisateur. Le message comprenant les données de rétroaction 400 peut par ailleurs comprendre l'identifiant qui identifie l'action liée à la notification et potentiellement un identifiant qui identifie le dispositif utilisateur 4 à partir duquel les données de rétroaction ont été reçues. [0058] Dans un mode de réalisation, l'utilisateur peut sélectionner une valeur de rétroaction paimi une liste de valeurs de rétroaction affichées sur une interface dédiée sur une interface d'utilisateur graphique fournie sur le dispositif utilisateur 4. Les valeurs de rétroaction peuvent par exemple comprendre une valeur d'acceptation (indiquant que l'action exécutée est acceptée), une valeur de rejet (indiquant que l'action est rejetée) ou une valeur « sans réponse») si aucune des valeurs d'acceptation/rejet n'est préférée par l'utilisateur. [0059] En réponse à la réception des données de rétroaction d'utilisateur 400 provenant de différents utilisateurs de l'ensemble des utilisateurs, l'unité de notation d'action 104 peut être configurée pour calculer une notation de précision (également désignée comme «pondération de précision » ou « métrique de précision») associée à l'action 9 exécutée en utilisant une fonction de valeur prédéfinic 105. Dans un mode de réalisation, la fonction de valeur 105 peut retenir comme entrées un plusieurs paramètres relatifs aux données de rétroaction 400 reçues de l'ensemble des dispositifs utilisateurs. Les paramètres relatifs aux données de rétroaction 400 peuvent comprendre par exemple un paramètre représentant le nombre d'occurrences d'une valeur donnée de rétroaction reçue de l'ensemble des dispositifs utilisateurs, telle que par exemple le nombre de fois que la rétroaction s'est avérée négative (ou rejetée) pour l'action envisagée (signifiant que la règle est incohérente) parmi les utilisateurs de l'ensemble des utilisateurs. Dans un mode de réalisation, la fonction de valeurs peut par exemple fournir un résultat représentant une valeur de rétribution (également désignée comme « valeur de sortie ») pour l'action envisagée, la valeur de rétribution étant utilisée par l'unité de notation d'action 104 afin de déterminer une notation de précision associée à l'action. Tel qu'utilisée ici, une rétroaction « négative» fait référence à une valeur de rétroaction fournie par un utilisateur pour indiquer qu'une règle est incohérente. Une rétroaction négative peut ainsi être fournie par un utilisateur pour indiquer un rejet de l'action envisagée par un utilisateur (option de rejet). [0060] Dans certains modes de réalisation, l'agent(s) adaptatif agrégateur de données 11 peut comprendre une unité d'actualisation de règles 106. L'unité d'actualisation de règles 106 peut être configurée pour mettre à jour (ou affiner) une ou plusieurs règles de cohérence 15 sur la base de la notation de précision déterminée pour une action donnée par l'unité de notation de précision 104. [0061] Les règles de cohérence (ou «mesures ») 15 appliquées par l'unité de véri- fication 103 peuvent comprendre un ensemble de fonctions de prise de décision basées sur un nettoyage des données, des conditions de fusionnement et/ou de consolidation, ces fonctions de prise de décision étant configurées pour déterminer une fonction d'agrégation de données (ou opération) devant être exécutée à partir des messages reçus. [0062] Telle qu'utilisée ici, une « action» fait référence à une ou plusieurs opérations d'agrégation de données ou applications exécutables par les agents agrégateurs 11 en réponse à la vérification de cohérence. [0063] Telle qu'utilisée ici, une «rétroaction» (également désignée comme «donnée de ré- troaction» ou « valeur de rétroaction») fait référence à une donnée représentant l'évaluation d'un utilisateur de la pertinence d'une action exécutée. [0064] Telle qu'utilisée ici, une «fonction de valeur» fait référence à une fonction configurée pour déterminer un paramètre tel qu'une «rétribution» pour les données de rétroaction 400 en lien avec l'action reçues par un ensemble d'utilisateurs. On remarquera que, bien que représentée en dehors de l'unité de notation d'action 104, dans certains modes de réalisation, la fonction de valeur 105 peut faire partie de l'unité de notation d'action 104 (implémentée directement par l'unité de notation d'action 104). [0065] Les modes de réalisation de l'invention permettent un rapprochement en temps réel de données provenant de multiples dispositifs sources de données 20 en utilisant un processus auto-adaptatif. [0066] L'invention peut être appliquée par exemple à un système de livraison d'un commerçant en ligne. Ce commerçant peut avoir de multiples systèmes acheminant des données concernant la position du colis, par exemple en transit ou en route pour une livraison ou en cours de livraison. Chaque colis peut être scanné à chaque point de transit et en même temps peut être suivi par un GPS à bord du véhicule de livraison. Les actualisations du système GPS arrivent généralement avec latence. Par exemple, la séquence suivante d'événements peut sc produire : [0067] - un poste de transit peut enregistrer une heure d'arrivée du colis ; [0068] - le système GPS dans le véhicule de livraison peut envoyer une actualisation indiquant que le colis est toujours en transit. [0069] Si la temporisation de la mise à jour est reçue du véhicule de livraison en commençant à partir du point de transit précédent, l'état et l'heure d'arrivée du colis peuvent alors être supplantés par l'actualisation du GPS résultant ainsi en un état incohérent. Dans l'art antérieur, un tel état d'incohérence nécessite d'être corrigé par une correction manuelle d'un utilisateur. Avec le système auto-adaptatif agrégateur de données 10 conforme à des modes de réalisation de l'invention, l'actualisation GPS peut être rejetée par un utilisateur et la fonction de notation peut renvoyer une note négative pour l'action de mise à jour des données. [0070] Alors que si la temporisation de la mise à jour est reçue à partir du véhicule de livraison qui a commencé à partir du point de transit actuel, la mise à jour est alors correcte et l'utilisateur peut soit accepter ou n'envoyer aucune réponse, la fonction de notation renvoyant une notation positive. [0071] Dans les deux cas, l'agent 11 peut apprendre qu'elle est la meilleure action de mise à jour de données. [0072] Le système d'agrégation de données 10 implémente ainsi un processus d'auto-apprentissage pour améliorer la qualité d'agrégation des données et ajuster le comportement en apprenant de façon continue (en analysant) à partir des actions correctives, en utilisant les notations d'actions déterminées par l'unité de notation d'action 104. [0073] Dans certains modes de réalisation, les données de rétroaction 400 saisies dans le système d'agrégation de données 10 par un utilisateur peuvent être représentées dans un format spécifique tel que par exemple {IDactualisation : id, Actionutilisateur : 0/1}, où une valeur zéro (« 0 ») indique une acceptation et une valeur («I») indique un rejet. Dans l'absence d'une réponse, aucune donnée ne peut être envoyée au système 11 d'agrégation de données 10. Le format des données de rétroaction peut être enrichi pour inclure des informations supplémentaires telles que des informations indiquant les misons pour lesquelles l'utilisateur a rejeté ou accepté, ou une action corrective effectuée par l'utilisateur en réponse à l'action prise par l'agent 11. [0074] Par conséquent, une combinaison en temps réel de multiples dispositifs sources de données 20 fiables fournissant des dimensions différentes peut être utilisée pour optimiser la qualité des données gérées par le système et les performances du système. [0075] Cela permet de générer un seul système de données 10 à partir de plusieurs systèmes hétérogènes sans nécessiter aucune interaction humaine. Ce système d'agrégation de données 10 peut s'auto-ajuster et évoluer de façon dynamique dans le temps au fur et à mesure que les sources de données et/ou la qualité des données changent sans nécessiter aucune interaction manuelle. [0076] L'unité de notation d'action 104 peut implémenter un ou plusieurs algorithmes d'apprentissage de renforcement qui permettent d'agréger de multiples sources de données, en auto-évaluant de façon continue la qualité d'agrégation des données, en effectuant un auto-apprentissage pour améliorer constamment, en s'adaptant automatiquement aux changements en matière de contexte et de qualité de source de données. [0077] Les solutions conventionnelles proposées par l'art antérieur nécessitent le déve- loppement d'un code dur pour spécifier de façon explicite la manière de rapprocher les données à partir de multiples dispositifs sources de données 20 (en implémentant les conditions manuellement, par exemple en codant en dure la règle «Si (champ F n'est pas présent dans SOURCE DE DONNÉES 1 alors prendre champ F dans SOURCE DE DONNÉES 2 »). Par contraste, le système d'agrégation conformément aux modes de réalisation de l'invention peut apprendre en ligne de façon continue à partir de différentes combinaisons explorées, générer une valeur de rétribution si la qualité du résultat se situe dans un rayon défini par un seuil de précision ou explorer plus de combinaisons que dans l'art antérieur. [0078] Dans un exemple d'application de l'invention à l'industrie du transport aérien, les dispositifs sources de données 20 peuvent être un ou plusieurs dispositifs connectés au système cible 10, le système cible 10 représentant un système de contrôle de trafic aérien qui est connecté à une pluralité de dispositifs sources de données 20 pour agréger des données à partir de là. [0079] Un système de contrôle de ligne aérienne utilise un nombre d'outils dédiés au contrôle des « créneaux» qui correspondent à une fenêtre temporelle dans laquelle les aéronefs traversent un espace aérien contrôlé. [0080] Les créneaux sont émis par les autorités sur la base d'une planification et des at- tributions (p. ex. sur la base du premier planifié, premier attribué). Bien que les créneaux soient attribués dans un ordre chronologique, des perturbations peuvent 12 survenir en raison de plusieurs facteurs, ce qui nécessite une réallocation optimale et dynamique des créneaux attribués aux divers aéronefs dans un espace aérien donné contrôlé. [0081] Par ailleurs les gestionnaires de créneaux doivent non seulement échanger des créneaux entre les vols dans le plan de vol des opérateurs aériens, mais ils doivent également échanger des informations avec d'autres opérateurs de la même ligne aérienne gérant des outils supplémentaires relatifs au contrôle d'autres paramètres liés au trafic aérien. Des exemples d'outils incluent, par exemple, un outil de planification de vol configure pour surveiller l'état de la planification d'une compagnie aérienne. Les données gérées par ces outils supplémentaires peuvent être impactées par un changement de créneau horaire. De façon plus générale, bien que ces outils de gestion de données soient gérés séparément par chaque opérateur associé pour des raisons de sûreté et sécurité, les données gérées par ces outils dépendent les uns des autres dans le sens où un quelconque changement survenant parmi les données gérées par un outil peut impactcr un ou plusieurs autres outils. Par ailleurs, le système de contrôle d'une compagnie aérienne peut recevoir des messages de sources de données différentes qui peuvent présenter des incohérences par rapport aux autres. [0082] La figure 2 représente un exemple d'environnement de fonctionnement d'un système d'agrégation de données 10 conforme à un exemple d'application de l'invention pour le contrôle du trafic aérien. [0083] L'environnement de la figure 2 inclut une pluralité de dispositifs sources de données 20 connectés au dispositif d'application 10 via le réseau 5, chaque dispositif source de données correspondant à un dispositif de gestion de planification spécifique lié au contrôle du trafic aérien. Chaque système 20 peut par ailleurs échanger des données avec d'autres systèmes externes tels qu'un système de gestion de ressources d'aviation, un système de gestion de passagers, etc. [0084] Dans l'exemple d'environnement de la figure 2, les systèmes de gestion de plani- fication 20 peuvent inclure : [0085] - Un outil de gestion de planification d'une compagnie aérienne 20-1 (également désigné ci-après « outil de planification de compagnie aérienne») qui est configuré pour collecter les données d'autres systèmes afin de suivre l'état de la planification d'une compagnie aérienne ; [0086] - Un outil de gestion PAX 20-2 (également désigné ci-après « outil PAX ») qui est configuré pour agréger les données de passagers relatives à chaque vol de la compagnie aérienne, telles que le nombre de passagers voyageant dans une classe spécifique pour un vol donné ; [0087] - Un outil de gestion de créneaux 20-3 (également désigné ci-après «outil de créneau ») qui est configuré pour fournir une attribution de créneau horaire (tel que par 13 exemple un créneau horaire pour le décollage ou l'atterrissage) pour chaque vol ; tel qu' utilisé ici, un créneau horaire est défini au moins par un horaire de début, un horaire de fin, et un identifiant d'aéroport ; [0088] - Un outil de gestion d'équipage 20-4 (également désigné ci-après « outil d'équipage ») qui est configuré pour agréger les données relatives à l'équipage pour chaque telles que le nombre de personnes attribuées à chaque équipage par catégorie d'équipage (p. ex., pilote) par vol ; [0089] - Un outil de gestion de maintenance 20-5 (également désigné ci-après «outil de maintenance») qui est configuré pour fournir des données de maintenance pouvant inclure à la fois les données planifiées et non planifiées pour un aéronef donné (telles que par exemple les vérifications d'unité de puissance auxiliaire (APU). [0090] On remarquera que la liste ci-dessus des dispositifs de gestion de planification n'est pas exhaustive et que le dispositif d'agrégation de données 10 peut se connecter de façon transparente à de nouveaux outils tels que par exemple un outil de gestion de bagages pour surveiller le traitement des bagages des passagers pour chaque vol. [0091] L'outil de planification 20-1 peut gérer un certain nombre aéronefs. L'outil de plani- fication 20-1 peut déterminer des programmes différents pour chaque aéronef géré en affectant ces aéronefs aux planifications. Lorsqu'un aéronef commence à circuler selon les plannings, les perturbations au sein d'une compagnie aérienne causées par exemple par des conditions météorologiques, des pannes d'aéronefs ou d'autres événements qui peuvent impacter la planification initiale, peuvent survenir. Par conséquent, la planification perturbée peut impacter une autre planification ou des données gérées par d'autres outils 20. Par exemple, une perturbation peut entraîner un retard de vol ce qui peut impacter la disponibilité de l'aéronef pour les prochains créneaux, les correspondances des passagers, les planifications d'équipage, etc. [0092] L'outil de gestion d'équipage 20-4 peut comprendre une fonction de planification d'équipage configurée pour déterminer les exigences légales minimums pour les ressources en équipage par vol pour tous plans de planification donnés au cours d'une période en tenant compte de divers paramètres tels que les réglementations nationales et/ou les règlements d'une compagnie, les contraintes d'équipage (p. ex. vacances, journées de repos, formation) et/ou des préférences. Les exigences en matière de ressources d'équipage peuvent être représentées en fonction de la base, de la flotte ou par catégorie de rang/fonction individuel d'équipage. [0093] L'outil de gestion d'équipage 20-4 peut par ailleurs comprendre une fonction d'attribution d'équipage configurée pour générer une affectation d'équipage pour chaque vol en tenant compte de diverses réglementations internationales et/ou nationales, et/ou les règlements de la compagnie, et/ou les demandes et préférences individuelles d'un équipage. 14 [0094] L'outil de gestion d'équipage 20-4 peut aussi comprendre une fonction de suivi des équipages configurés pour surveiller des ressources de l'équipage d'une compagnie aérienne et identifier de façon dynamique les ressources d'équipage disponibles si des ressources supplémentaires sont nécessaires dans certaines situations. [0095] L'outil de gestion d'équipage 20-4 peut aussi comprendre des enregistrements d'équipage sous forme d'une base de données pour les enregistrements administratifs, médicaux, de formation d'un équipage et des accumulateurs de temps de vol/ responsabilité. [0096] Dans une telle application de l'invention au contrôle du trafic aérien, un utilisateur d'un système 20 (également désigné ci-après «opérateur» ou «contrôleur d'opérations » ou «contrôleur ops » ou «partie prenante») désigne l'opérateur responsable pour la gestion d'un aspect des opérations des lignes aériennes. [0097] Dans un exemple d'application de l'invention au contrôle du trafic aérien, le système de contrôle de trafic aérien (système cible) 10 peut recevoir des messages d'une ou de plusieurs sources de données 20 relatives à un vol donné et comprenant des données relatives au détournement d'un vol. Par exemple, cc message peut être lié à un vol ayant un état actuel : «Vol SYD-HKG à terre à SYD juste avant le décollage». [0098] Par exemple, le système de contrôle d'une compagnie aérienne 10 peut recevoir : [0099] - Un premier Message de données «MESSAGE 1» reçu d'une première source de données SOURCE 1 » comprenant des données indiquant une instruction de détournement pour dévier le vol; [0100] - Un deuxième message de données «MESSAGE 2» reçu d'une deuxième source de données 2 «SOURCE 2» comprenant des données indiquant qu'il n'y a aucun détournement. [0101] Dans les systèmes de contrôle de trafic aérien existants, soit le message 1 ou le message 2, est accepté par un opérateur qui gère le système de contrôle de trafic aérien pendant que le système d'agrégation 10 est basée sur une analyse statique et humaine. Par contraste le système 10, confolmément à l'invention, est configuré pour déterminer une action à exécuter en ayant appris des données passées liées aux mêmes situations et en affinant de façon dynamique les règles de cohérence 15 en utilisant les données de rétroaction 400. [0102] Des modes de réalisation de l'invention résolvent ainsi la complexité des inco- hérences en fusionnant des données provenant de sources différentes fiables pour faciliter le processus de prise de décision critique quasiment en temps réel. [0103] Le système d'agrégation de données 10 conformément aux modes de réalisation de l'invention évite que les administrateurs des systèmes de lignes aériennes aient besoin d'effectuer des actions correctives manuelles pour rectifier des données (dans l'art antérieur, ces actions correctives ne sont pas effectuées en temps réel avant que problème se pose). [0104] Le système d'agrégation de données 10 conformément à des modes de réalisation de l'invention améliore par ailleurs la rapidité et le traitement en temps réel du volume de données ainsi que la complexité liée à l'hétérogénéité des systèmes d'acheminement. Le coût de maintenance logicielle est également réduit, car le système cible est rapidement auto-évolutif et auto-changeant lorsqu'une nouvelle source de données ou un champ de données différent est ajouté. [0105] Les données provenant de différents dispositifs sources de données 20 peuvent être par conséquent agrégés de façon dynamique dans le système cible 10 sans avoir besoin d'interrompre le fonctionnement du système cible. [0106] La figure 3 est un organigramme décrivant le procédé d'agrégation de données reçues d'un dispositif source de données 20 implémenté dans le système cible. [0107] À l'étape 300, un message comprenant des données est reçu d'un dispositif source de données dans un format de source de données. [0108] À l'étape 302, le message est analysé et les données du message sont converties dans un format de données cible du système cible 10 en utilisant des règles de conversion. [0109] À l'étape 304, la cohérence du message de données reçu est vérifiée en utilisant les règles de cohérence 15 basées sur les données converties. [0110] À l'étape 306, une action d'agrégation de données est exécutée en réponse à l'étape de vérification de cohérence du message. L'étape 306 peut par ailleurs comprendre le stockage d'au moins une partie des données converties dans le système cible 10. [0111] Une notification peut ensuite être envoyée à un ensemble d'utilisateurs pour les inciter à saisir des données de rétroaction relatives à l'action exécutée, par exemple en sélectionnant une valeur de rétroaction parmi un ensemble de valeurs de rétroaction possibles (par exemple la liste des valeurs de rétroaction peut comprendre les valeurs accepter », «rejeter» et « sans réponse»). [0112] En réponse à la réception des données de rétroaction 400 d'un ou de plusieurs uti- lisateurs (bloc 308) une notation de précision est déterminée à l'étape 310 pour l'action exécutée en utilisant une fonction de valeur, la fonction de valeur prenant comme entrée les paramètres liés aux valeurs de rétroaction reçues de l'ensemble des utilisateurs. [0113] La fonction de valeur peut par exemple déterminer une valeur de rétribution basée sur les données de rétroaction reçues de l'ensemble des utilisateurs. [0114] À l'étape 312, ladite une ou plusieurs règles de cohérence 15 peuvent être mises à jour (par exemple affinées) sur la base de la notation de précision déterminée pour l'action exécutée. [0115] Dans certains modes de réalisation, le procédé peut comprendre la connexion d'une nouvelle source de données au système d'agrégation de données 10 en implémentant 16 les étapes suivantes : [0116] - Ajout des règles d'analyse initiales dans les règles d'analyse (12); [0117] - Ajout des règles de conversion initiales dans les règles de conversion (13); [0118] - Ajout des règles de cohérence initiales dans les règles de cohérence (15); [0119] Lorsque les règles initiales sont définies, chaque unité correspondante a alors un point de départ qui sera amélioré automatiquement au fur et à mesure que des actions correctives et des données de rétroaction 400 sont reçues d'un utilisateur. [0120] On remarquera que l'invention n'est pas limitée à une application de l'invention à l' industrie du transport aérien et peut généralement s'appliquer à toute architecture impliquant la réception de messages de données provenant de multiples dispositifs sources de données dans un système cible exécutant une ou plusieurs actions d'agrégation de données en fusionnant les données comprises dans ces messages. Par exemple, l'invention peut aussi être appliquée un système basé sur l'informatique en nuages partageant des réserves de dispositifs sources de données sur Internet afin de délivrer du contenu ou des produits aux dispositifs utilisateurs. [0121] Les modes de réalisation de l'invention fournissent donc un procédé et un système auto-adaptatif d'agrégation de données qui évitent le besoin de codage en dur ou l'utilisation de règles découplées pour intégrer un changement relatif à la source de données ou pour améliorer la détermination des actions à exécuter. [0122] Par ailleurs ils fournissent un processus d'auto-apprentissage capable de déterminer quelle source de données est la plus fiable, pour quelles informations et dans quelles circonstances. [0123] Des modes de réalisation de l'invention permettent aussi de résoudre des inco- hérences et des conflits de données en temps réel avec une fiabilité optimisée. [0124] Les modes de réalisation de l'invention évitent d'avoir recours à des actions cor- rectives manuelles a posteriori. [0125] Le système cible 100 peut par ailleurs intégrer de façon dynamique tout changement relatif à une source de données pendant le temps d'exécution sans avoir besoin de bloquer la production du système. [0126] Un ou plusieurs composants du système d'agrégation de données 10, tels que le dispositif d'agrégation de données 10, les dispositifs sources de données 20 et les dispositifs utilisateurs 4 peuvent être implémentés sur un ou plusieurs dispositifs ou systèmes informatiques, collectivement désignés comme étant un ordinateur tel qu'un ordinateur. [0127] La figure 4 est un diagramme bloc illustrant de façon schématique un ordinateur 30 qui peut être utilisé pour implémenter les composants du système d'agrégation de données 10 et/ou les dispositifs utilisateurs 4 conformément à des modes de réalisation. [0128] L'ordinateur 30 peut comprendre, par exemple, un ou plusieurs dispositifs sé- 17 lectionnés parmi les dispositifs suivants : ordinateur de bureau, ordinateur portable, poste de travail, tablette numérique, smartphonc, ordinateur portatif, serveur de niveau entreprise, ou tout autre dispositif informatique de cc genre. Une combinaison de dispositifs différents peut être utilisée dans certains modes de réalisation. [0129] L'ordinateur 30 peut inclure un processeur 32, une mémoire 34, un dispositif de mémoire de masse 36, une interface entrée/sortie (1/0) 38, et une interface homme-machine (HMI) 39. L'ordinateur 30 peut aussi être couplé de façon fonctionnelle à une ou plusieurs ressources extérieures 42 par l'intermédiaire du réseau 5 (qui peut être le réseau 22) et/ou de l'interface 1/0 38. Les ressources externes peuvent inclure, mais de façon non exhaustive, des serveurs, des bases de données, des dispositifs de stockage de masse, des dispositifs périphériques, des services de réseau basés sur le cloud, ou toute autre ressource informatique appropriée qui peut être utilisée avec l'ordinateur 30. [0130] Le processeur 32 peut inclure un ou plusieurs dispositifs sélectionnés parmi les suivants : microprocesseurs, microcontrôlcurs, processeurs de signal numérique, micro-ordinateurs, unités centrales de traitement, des réseaux de portes programmables, des dispositifs logiques programmables, des machines à état défini, des circuits logiques, des circuits analogiques, des circuits numériques, ou tout autre dispositif servant à manipuler des signaux (analogues ou numériques) sur la hase d'instructions de fonctionnement enregistrées dans la mémoire 34. La mémoire 34 peut inclure un seul dispositif ou une pluralité de dispositifs de mémoire, notamment, mais sans s'y limiter, la mémoire à lecture seule (ROM), la mémoire à accès aléatoire (RAM), la mémoire volatile, la mémoire non volatile, la mémoire vive statique (SRAM), la mémoire dynamique à accès aléatoire (DRAM), la mémoire flash, l'antémémoire (cache memory) ou tout autre dispositif capable de stocker des informations. Le dispositif de mémoire de masse 36 peut inclure des dispositifs de stockage de données tels qu'un disque dur, un disque optique, un dérouleur de bande magnétique, un circuit à l'état solide non volatile, ou tout autre dispositif capable de stocker des informations. Une base de données 44 peut résider sur le dispositif de stockage de masse 36, et peut être utilisée pour collecter et organiser les données utilisées par les différents systèmes et modules décrits ici. [0131] Le processeur 32 peut fonctionner sous le contrôle d'un système d'exploitation 46 qui réside dans la mémoire 34. Le système d'exploitation 46 peut gérer les ressources de l'ordinateur de telle façon que le code de programme de l'ordinateur, intégré sous forme d'un ou plusieurs logiciels d'application, tels que l'application 48 qui réside dans la mémoire 34, puisse disposer d'instructions exécutées par le processeur 32. Dans un autre mode de réalisation, le processeur 32 peut exécuter l'application 48 directement et dans ce cas, le système d'exploitation 46 peut être omis Une ou plusieurs 18 structures de donnée 50 peuvent également résider dans la mémoire 34, et peuvent être utilisées par le processeur 32, le système d'exploitation 46, ou l'application 48 pour stocker ou manipuler des données. [0132] L'interface 1/0 38 peut fournir une interface machine qui couple le processeur 32 de façon fonctionnelle avec d'autres dispositifs et systèmes, tels que le réseau 5 ou la ressource externe 42. L'application 48 peut ainsi collaborer avec le réseau 6 et/ou la ressource externe 42 en communiquant par l'intermédiaire de l'interface 1/0 38 pour fournir les divers éléments, fonctions, applications, processus et/ou modules composant les modes de réalisation de l'invention. L'application 48 peut aussi comporter un code de programme qui est exécuté par une ou plusieurs ressources externes 42, ou repose autrement sur les fonctions et/ou signaux fournis par d'autres composants de système ou de réseau externes à l'ordinateur 30. En effet, au vu des configurations presque infinies de matériel informatique et de logiciel possibles, les hommes de métier comprendront que les modes de réalisation de l'invention peuvent inclure des applications situées à l'extérieur de l'ordinateur 30, distribuées à des ordinateurs multiples ou à d'autres ressources externes 42 ou fournies par des ressources informatiques (matériel et logiciel) qui sont fournies comme service sur le réseau 5 tel qu'un service informatique en nuage, [0133] Le HMI 39 (tel que le HMI 30 dans l'implémentation de la figure 1 du dispositif client 3) peut être couplé de façon fonctionnelle au processeur 32 de l'ordinateur 30 d'une façon connue pour permettre à un utilisateur de l'ordinateur 30 d'interagir directement avec l'ordinateur 30. Le HMI 39 peut inclure un affichage vidéo ou alphanumérique, un écran tactile, un haut-parleur et tout autre indicateur visuel et audio capable de communiquer des données à l'utilisateur. Le HMI 39 peut aussi inclure des dispositifs d'entrée et des contrôles tels qu'un clavier alphanumérique, un périphérique de pointage, des claviers, des boutons poussoirs, des boutons de commande, des microphones, etc., capables d'accepter des commandes ou des saisies de l'utilisateur, et de les transmettre au processeur 32. [0134] Une base de données 44 peut résider sur le dispositif de mémoire de masse 36, et peut être utilisée pour collecter et organiser les données utilisées par les différents systèmes et modules décrits ici. La base de données 44 peut inclure des données ainsi que les structures de donnée qui les accommodent pour stocker et organiser les données. En particulier, la base de données 44 peut être aménagée avec toute organisation ou structure de base de données, notamment, mais de façon non restrictive, une base de données relationnelle, une base de données de type hiérarchique, une base de données en réseau, une base de données orientée objet, ou des combinaisons de celles-là. Un système de gestion de base de données sous forme de logiciel informatique d'application qui s'exécute sous la forme d'instructions sur le 19 processeur 32 peut être utilisé pour accéder à l'information ou aux données stockées dans des enregistrements de la base de données 44 en réponse à une interrogation, lorsqu'une interrogation peut être déterminée de façon dynamique et exécutée par le système d'exploitation 46, les autres applications 48, ou un ou plusieurs modules. Bien que des modes de réalisation de l'invention puissent être décrits ici en utilisant une terminologie de hase de données relationnelle, hiérarchique, de réseau, orientée-objet, ou autre terminologie dans des cas spécifiques, les hommes de métier comprendront que les modes de réalisation de l'invention peuvent utiliser tout modèle de gestion de hase de données approprié, et ne sont pas limités à un quelconque type particulier de hase de données. [0135] Bien que l'invention présente des avantages particuliers dans le domaine des systèmes de tour de contrôle de lignes aériennes, on remarquera que l'invention s'applique aussi à l'agrégation de données provenant de multiples sources de données, dans un environnement quasiment en temps réel. [0136] En général les routines exécutées pour mettre en oeuvre les modes de réalisation de l'invention, qu'elles soient implémentées dans le cadre d'un système d'exploitation ou d'une application spécifique, d'un composant, d'un programme, d'un objet, d'un module ou d'une séquence d'instructions, ou même un sous-ensemble de ces facteurs, peuvent être désignées ici par «code de programme informatique » ou simplement « code de programme». Un code de programme comporte typiquement des instructions lisibles par ordinateur qui résident à divers moments dans divers dispositifs de mémoire et de stockage dans un ordinateur et qui, lorsqu'elles sont lues et exécutées par un ou plusieurs processeurs dans un ordinateur, amènent l'ordinateur à effectuer des opérations nécessaires à l'exécution d'opérations et/ou d'éléments propres à la mise en oeuvre des aspects variés des modes de réalisation de l'invention. Les instructions d'un programme, lisibles pat- ordinateur, pour mettre en oeuvre les opérations des modes de réalisation de l'invention peuvent être, par exemple, le langage d'assemblage, ou encore un code source ou un code objet écrit en combinaison avec un ou plusieurs langages de programmation. [0137] Divers codes de programme décrits ici peuvent être identifiés, selon l'application dans laquelle ils sont implémentés, dans des modes de réalisation spécifiques de l'invention. Cependant, il doit être noter que toute nomenclature de programme particulière est utilisée ici uniquement par convenance, et que donc l'utilisation de invention ne peut être limitée uniquement à toute application spécifique identifiée et/ou impliquée par ladite nomenclature. Par ailleurs, au vu du nombre généralement infini de moyens par lesquels les programmes informatiques peuvent être organisés selon des sous-programmes, procédures, procédés, modules, objets, et ainsi de suite, ainsi que les façons variées d'allouer les fonctionnalités d'un programme aux diverses couches de logiciels qui sont hébergées dans un ordinateur typique (p. ex., les systèmes d'exploitation, les bibliothèques, les interfaces d'application de programme (APTs), les applications, les petites applications (applets) etc.), il doit être noté que les modes de réalisation de l'invention ne sont pas limités à l'organisation et à l'allocation spécifiques des fonctionnalités de programme décrites ici. [0138] Le code de programme mis en oeuvre dans une/un quelconque des applications/ modules décrit(e)s ici peut être distribué individuellement ou collectivement comme un produit-programme d'ordinateur, sous une variété de formes. En particulier, le code de programme peut être distribué en utilisant un support de stockage lisible par ordinateur, disposant d'instructions de programme lisibles par ordinateur en lui-même, permettant à un processeur de mettre en oeuvre des aspects des modes de réalisation de l' invention. [0139] Les supports de stockage lisibles par ordinateur, qui sont intrinsèquement non tran- sitoires, peuvent inclure des supports tangibles volatiles et non volatiles, amovibles et non amovibles, implémentés dans tout procédé ou technologie de stockage d'information, tels que des instructions de programme lisibles par ordinateur, des structures de données, des modules de programme, ou autres données. Les supports de stockage lisibles par ordinateur peuvent aussi comprendre des mémoires RAM, ROM, à lecture exclusivement, programmable et effaçable (EPROM), à lecture exclusivement, programmable et effaçable électriquement (EEPROM), une mémoire flash, ou toute technologie de support solide de mémoire (disque compact portable doté d'une mémoire à lecture seule (CD-ROM), ou tout autre stockage optique, cassettes magnétiques, bandes d'enregistrement magnétiques, disques de stockage magnétiques, autres dispositifs de stockage magnétiques, ou tout autre support pouvant être utilisé pour stocker l'information désirée et apte à être lu par un ordinateur. Un support de stockage lisible par ordinateur ne peut être interprété comme signaux transitoires en soi (par exemple, des ondes radio ou toutes autres ondes électromagnétiques se propageant entre un support de transmission telle qu'un guide d'ondes, ou des signaux électriques transmis par câble). Les instructions de programme lisibles par ordinateur peuvent être téléchargées sur un ordinateur, un autre type d'appareil de traitement de données programmable ou sur tout autre dispositif de support de stockage lisible par ordinateur, ou vers un ordinateur externe ou vers un dispositif de stockage externe par un réseau. [0140] Les instructions de programme lisibles par ordinateur, enregistrées sur un support lisible pal- ordinateur, peuvent être utilisées pour amener un ordinateur, d'autres types d'appareils programmables de traitement de données, ou d'autres dispositifs, à fonctionner d'une façon particulière, de sorte que les instructions stockées sur le support lisible par ordinateur produisent un article de fabrication incluant les instructions qui mettent en oeuvre les fonctions, les actions et/ou les opérations spécifiées 21 dans les organigrammes, diagrammes de séquence, et/ou diagrammes blocs. Les instructions de programme informatique peuvent être fournies à un ou plusieurs processeurs d'un ordinateur à usage général ou un ordinateur dédié ou un autre appareil programmable de traitement de données pour produire une machine, de sorte que les instructions, lorsqu'elles sont exécutées par le ou les processeurs, accomplissent une série de calculs pour mettre en oeuvre les fonctions, actions, et/ou les opérations spécifiées dans les organigrammes, diagrammes séquentiels et/ou diagrammes blocs. [0141] Bien que l'invention soit illustrée par une description de divers modes de réalisation et bien que ces modes de réalisation soient décrits de façon très détaillée, il n'est pas dans l'intention du demandeur de restreindre ou de limiter de quelque manière que ce soit le champ d'application des revendications annexées à de tels détails. Des avantages et des modifications supplémentaires apparaîtront aisément aux hommes de métier. Bien que les modes de réalisation de la figure 3 aient été décrits selon un ordre de traitement particulier, l'homme de métier comprendra aisément que l'invention n'est pas limitée à cette séquence d'étapes et que certaines étapes peuvent être implémentées dans un ordre différent. De façon générale, dans certains autres modes de réalisation, les fonctions, les actions et/ou des opérations spécifiées dans les organigrammes, diagrammes de séquence, et/ou des diagrammes blocs peuvent être ré-ordonnées, traitées en série, et/ou traitées en même temps conformément aux modes de réalisation de l'invention. De plus, tout organigramme, diagramme séquentiel et/ou diagramme bloc peut inclure plus ou moins de blocs que ceux qui sont illustrés, tout en restant cohérents avec les modes de réalisation de l'invention. [Revendication 1]