FR3102587A1 - Système, procédé et appareil pour la corrélation d’objets de données - Google Patents

Système, procédé et appareil pour la corrélation d’objets de données Download PDF

Info

Publication number
FR3102587A1
FR3102587A1 FR1911906A FR1911906A FR3102587A1 FR 3102587 A1 FR3102587 A1 FR 3102587A1 FR 1911906 A FR1911906 A FR 1911906A FR 1911906 A FR1911906 A FR 1911906A FR 3102587 A1 FR3102587 A1 FR 3102587A1
Authority
FR
France
Prior art keywords
correlation
data
storage
objects
messages
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR1911906A
Other languages
English (en)
Other versions
FR3102587B1 (fr
Inventor
Serge BEUZIT
Jean-Samuel PASQUALI
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amadeus SAS
Original Assignee
Amadeus SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Amadeus SAS filed Critical Amadeus SAS
Priority to FR1911906A priority Critical patent/FR3102587B1/fr
Priority to EP20200667.2A priority patent/EP3812914A1/fr
Priority to US17/071,575 priority patent/US11416316B2/en
Priority to CN202011143406.7A priority patent/CN112711486A/zh
Publication of FR3102587A1 publication Critical patent/FR3102587A1/fr
Application granted granted Critical
Publication of FR3102587B1 publication Critical patent/FR3102587B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/288Entity relationship models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Radar Systems Or Details Thereof (AREA)
  • Image Analysis (AREA)
  • Measurement Of Velocity Or Position Using Acoustic Or Ultrasonic Waves (AREA)

Abstract

Un premier-à-deuxième moteur de corrélation détermine des corrélations entre de premiers objets d’un premier flux d’objets et des deuxièmes objets d’un deuxième stockage d’objets, et génère des premiers messages de corrélation indicatifs de corrélations pour une première-à-deuxième direction d’objet et une deuxième-à-première direction d’objet. Un deuxième-à-premier moteur de corrélation détermine des corrélations respectives entre les deuxièmes objets à partir d’un deuxième flux d’objets et les premiers objets d’un premier stockage d’objets, et génère des deuxièmes messages de corrélation indicatifs de corrélations respectives pour la deuxième-à-première direction d’objet et la première-à-deuxième direction d’objet. Un premier-à-deuxième moteur de stockage de corrélation reçoit les premiers et deuxièmes messages de corrélation pour la première-à-deuxième direction d’objets, et actualise le stockage de la première-à-deuxième corrélation sur la base des messages reçus. Un deuxième-à-premier moteur de stockage de corrélation reçoit les premiers et deuxièmes messages pour la deuxième-à-première direction d’objets, et actualise le stockage de la deuxième-à-première corrélation d’objet sur la base des messages reçus.

Description

Système, procédé et appareil pour la corrélation d’objets de données
Cette spécification concerne de façon générale la gestion d’objets de données et spécifiquement un système, un procédé et un appareil pour détecter les corrélations entre les objets de données.
Contexte
Certains systèmes informatiques servent d’intermédiaires entre diverses entités, telles que d’autres systèmes informatiques qui fournissent des données d’entrée représentant divers types d’objets de données. Les corrélations entre les objets de données mentionnés ci-dessus peuvent nécessiter un suivi par d’autres entités dans les systèmes. Le système informatique servant d’intermédiaire peut détecter les corrélations susmentionnées, mais les messages indiquant des mises à jour des objets de données, lesquelles affectent la détection de corrélations, peuvent être reçus à des moments imprévisibles et dans un ordre imprévisible. Cela peut mener à la détection de corrélations erronées, nécessitant une intervention manuelle pour la correction, ou si une correction n’est pas faite, à un comportement erroné du système.
Résumé :
Un aspect de la spécification fournit un système pour la corrélation d’objets de données, le système comprenant : (i) un premier-à-deuxième moteur de corrélation configuré pour : déterminer des corrélations entre des premiers objets, tels qu’ils sont reçus, via un premier flux d’objets et des deuxièmes objets tels qu’ils sont stockés dans un deuxième stockage d’objets ; et générer des premiers messages de corrélations indicatifs des corrélations pour, à la fois, une première-à-deuxième direction d’objet et une deuxième-à-première direction d’objet ; (ii) un deuxième-à-premier moteur de corrélation configurer pour : déterminer des corrélations respectives entre des deuxièmes objets, tels qu’ils sont reçus via un deuxième flux d’objets et des premiers objets tels qu’ils sont stockés dans un premier stockage d’objets ; et générer des deuxièmes messages de corrélations indicatifs des corrélations respectives pour, à la fois, une deuxième-à-première direction d’objet et une première-à-deuxième direction d’objet ; (iii) un premier-à-deuxième moteur de stockage de corrélations pour : recevoir les premiers messages de corrélation et les deuxièmes messages de corrélation pour la première-à-deuxième direction d’objet ; et un ou plusieurs de remplir et d’actualiser un premier-à-deuxième stockage de corrélations d’objets sur la base des messages de corrélation reçus ; et (iv) un deuxième-à-premier moteur de stockage de corrélation configuré pour : recevoir les premiers messages de corrélation et les deuxièmes messages de corrélation pour la deuxième-à-première direction d’objet ; et un ou plusieurs de remplir et d’actualiser un deuxième-à-premier stockage de corrélations d’objets sur la base des messages respectifs de corrélation reçus.
Le premier-à-deuxième moteur de stockage peut par ailleurs être configuré pour, en réponse au stockage d’une première-à-deuxième corrélation d’objets actualisée au premier-à-deuxième stockage de corrélations d’objets : transmettre, au deuxième-à-premier moteur de stockage, une commande pour retirer une deuxième-à-première corrélation d’objet au deuxième-à- premier stockage de corrélations d’objets, la deuxième-à-première corrélation d’objets existante correspondant à une première-à-deuxième corrélation d’objets qui est une ou plusieurs de retirée et actualisée par la première-à-deuxième corrélation d’objet actualisée.
Le deuxième-à-premier moteur de stockage peut par ailleurs être configuré pour, en réponse au stockage d’une deuxième-à-première corrélation d’objets actualisée au deuxième-à-premier stockage de corrélations d’objets : transmettre, au premier-à-deuxième moteur de stockage, une commande pour retirer une première-à-deuxième corrélation d’objet au premier-à-deuxième stockage de corrélations d’objets, la première-à-deuxième corrélation d’objets existante correspondant à une deuxième-à-première corrélation d’objets qui est une ou plusieurs de retirée et actualisée par la deuxième-à-première corrélation d’objet actualisée.
Le système peut par ailleurs comprendre un premier moteur de flux d’objet configuré pour : recevoir les premiers objets du premier flux d’objet ; stocker les premiers objets au premier stockage d’objets ; et fournir les premiers objets au premier-à-deuxième moteur de corrélation.
Le système peut par ailleurs comprendre un deuxième moteur de flux d’objet configuré pour : recevoir les deuxièmes objets du deuxième flux d’objet ; stocker les deuxièmes objets au deuxième stockage d’objets ; et fournir les deuxièmes objets au deuxième-à-premier moteur de corrélation.
Le premier-à-deuxième moteur de stockage peut par ailleurs être configuré pour un ou plusieurs de remplir et d’actualiser le premier-à-deuxième stockage de corrélation d’objets sur la base des messages de corrélation reçus par un ou plusieurs de : le stockage, au premier-à-deuxième stockage de corrélation d’objets, d’une nouvelle première-à-deuxième corrélation indiquée par les messages de corrélation reçus ; l’ajout, au premier-à-deuxième stockage de corrélation d’objets, à une première-à-deuxième corrélation existante, d’une première-à-deuxième corrélation supplémentaire indiquée par les messages de corrélation reçus ; et le remplacement, au premier-à-deuxième stockage de corrélation d’objets, de la première-à-deuxième corrélation existante par une première-à-deuxième corrélation actualisée indiquée par les messages de corrélation reçus.
Le deuxième-à-premier moteur de stockage est par ailleurs configuré pour une ou plusieurs de remplir et d’actualiser le deuxième au premier stockage de corrélation d’objets sur la base des messages respectifs de corrélation reçus par un ou plusieurs de : le stockage, au deuxième-à-premier stockage de corrélation d’objets, d’une nouvelle deuxième-à-première corrélation indiquée par les messages de corrélation reçus ; l’ajout, au deuxième-à-premier stockage de corrélation d’objets, à une deuxième-à-première corrélation existante, d’une deuxième-à-première corrélation supplémentaire indiquée par les messages de corrélation reçus ; et le remplacement, au deuxième-à-premier stockage de corrélation d’objets, de la deuxième-à-première corrélation existante par une deuxième-à-première corrélation actualisée indiquée par les messages de corrélation reçus.
Les premiers objets et les deuxièmes objets comprennent respectivement des enregistrements de noms de passagers différents, des données de billet, des données de programmation, des données d’inventaire, des données de gestion de client, des données historiques et des données de bagages, des données d’équipage, des données de gestion de vol, des données comptables de recettes, des données de fidélisation, des données d’expérience client et des données de relation client.
Le premier-à-deuxième moteur de stockage de corrélation est par ailleurs configuré pour : en réponse au remplissage ou à l’actualisation du premier-à-deuxième stockage de corrélation d’objets, transmettre une première notification d’événement à un gestionnaire d’événements ; et dans lequel le deuxième-à-premier moteur de stockage de corrélation est par ailleurs configuré pour : en réponse au remplissage ou à l’actualisation du deuxième-à-premier stockage de corrélation d’objets, transmettre une deuxième notification d’événement à un gestionnaire d’événements ;
Un autre aspect de la spécification fournit un procédé comprenant : à un premier-à-deuxième moteur de corrélation : la détermination de corrélations entre des premiers objets, tels qu’ils sont reçus via un premier flux d’objets et des deuxièmes objets tels qu’ils sont stockés à un deuxième stockage d’objets ; et la génération de premiers messages de corrélations indicatifs des corrélations pour, à la fois, une première-à-deuxième direction d’objet et une deuxième-à-première direction d’objet ; à un deuxième-à-premier moteur de corrélation : la détermination de corrélation respective entre les deuxièmes objets tels qu’ils sont reçus via un deuxième flux d’objets et les premiers objets tels qu’ils sont stockés à un premier stockage d’objets ; et la génération de deuxièmes messages de corrélations indicatifs des corrélations respectives pour, à la fois, une deuxième-à-première direction d’objet et une première-à-deuxième direction d’objet ; à un premier-à-deuxième moteur de stockage de corrélations : la réception des premiers messages de corrélations et des deuxièmes messages de corrélations pour la première-à-deuxième direction d’objet ; et un ou plusieurs du remplissage et de l’actualisation d’un premier-à-deuxième stockage de corrélation d’objets sur la base des messages de corrélation reçus ; et à un deuxième-à-premier moteur de stockage de corrélations : la réception de premiers messages de corrélations et des deuxièmes messages de corrélations pour la deuxième-à-première direction d’objet ; et un ou plusieurs du remplissage et de l’actualisation d’un deuxième-à-premier stockage de corrélations sur la base de messages respectifs de corrélation reçus ; et
Le procédé peut par ailleurs comprendre, au premier-à-deuxième moteur de stockage : en réponse au stockage d’une première-à-deuxième corrélation d’objets actualisée, la transmission, au deuxième-à-premier moteur de stockage, d’une commande pour retirer une deuxième-à-première corrélation d’objet existante au deuxième-à-premier stockage de corrélations d’objets la deuxième-à-première corrélation d’objets existante correspondant à une première-à-deuxième corrélation d’objets qui est une ou plusieurs de retirée et actualisée par la première-à-deuxième corrélation d’objet actualisée.
Le procédé peut par ailleurs comprendre, au deuxième-à-premier moteur de stockage : en réponse au stockage d’une deuxième-à-première corrélation d’objets actualisée au deuxième-à-premier stockage de corrélation d’objets, la transmission, au premier-à-deuxième moteur de stockage, d’une commande pour retirer une première-à-deuxième corrélation d’objets existante au premier-à-deuxième stockage de corrélations d’objets, la première-à-deuxième corrélation d’objets existante correspondant à une deuxième-à-première corrélation d’objets qui est une ou plusieurs de retirée et actualisée par la deuxième-à-première corrélation d’objet actualisée.
Le procédé peut par ailleurs comprendre à un premier moteur de flux d’objet : la réception des premiers objets du premier flux d’objets ; le stockage des premiers objets au premier stockage d’objets ; et fournir les premiers objets au premier-à-deuxième moteur de corrélation.
Le procédé peut par ailleurs comprendre, un deuxième moteur de flux d’objets la réception des deuxièmes objets du deuxième flux d’objet ; le stockage des deuxièmes objets au deuxième stockage d’objets ; et fournir les deuxièmes objets au deuxième-à-premier moteur de corrélation.
Le procédé peut par ailleurs comprendre, au premier-à-deuxième moteur de stockage, le remplissage ou l’actualisation du premier-à-deuxième stockage de corrélation d’objets sur la base des messages de corrélation reçus par un ou plusieurs de : le stockage, au premier-à-deuxième stockage de corrélation d’objets, d’une nouvelle première-à-deuxième corrélation indiquée par les messages de corrélation reçus ; l’ajout, au premier-à-deuxième stockage de corrélation d’objets, à une première-à-deuxième corrélation existante, d’une première-à-deuxième corrélation supplémentaire indiquée par les messages de corrélation reçus ; et le remplacement, au premier-à-deuxième stockage de corrélation d’objets, de la première-à-deuxième corrélation existante par une première-à-deuxième corrélation actualisée indiquée par les messages de corrélation reçus.
Le procédé peut par ailleurs comprendre, au deuxième-à-premier moteur de stockage, le remplissage ou l’actualisation du deuxième-à-premier stockage de corrélations d’objets sur la base des messages respectifs de corrélation reçus par un ou plusieurs de : le stockage, au deuxième-à-premier stockage de corrélation d’objets, d’une nouvelle deuxième-à-première corrélation indiquée par les messages de corrélation reçus ; l’ajout, au deuxième-à-premier stockage de corrélation d’objets, à une deuxième-à-première corrélation existante, d’une deuxième-à-première corrélation supplémentaire indiquée par les messages de corrélation reçus ; et le remplacement, au deuxième-à-premier stockage de corrélation d’objets, de la deuxième-à-première corrélation existante par une deuxième-à-première corrélation actualisée indiquée par les messages de corrélation reçus.
Les premiers objets et les deuxièmes objets comprennent respectivement des enregistrements de noms de passagers différents, des données de billet, des données de programmation, des données d’inventaire, des données de gestion de client, des données historiques et des données de bagages, des données d’équipage, des données de gestion de vol, des données comptables de recettes, des données de fidélisation, des données d’expérience client et des données de relation client.
Le procédé peut par ailleurs comprendre au premier-à-deuxième moteur de stockage de corrélation, en réponse au remplissage ou à l’actualisation du premier-à-deuxième stockage de corrélation d’objets, la transmission d’une première notification d’événement à un gestionnaire d’événements ; et au deuxième-à-premier moteur de stockage de corrélation, en réponse au remplissage ou à l’actualisation du deuxième-à-premier stockage de corrélation d’objets, la transmission d’une deuxième notification d’événement à un gestionnaire d’événements ;
Les modes de réalisation sont décrits en faisant référence aux figures suivantes, dans lesquelles :
illustre un système pour la corrélation d’objets de données ;
illustre certains composants du sous-système de corrélation de la FIG. 1 ;
illustre un procédé d’actualisation des répertoires d’objets de données et de détection de corrélations d’objets dans le système de la FIG. 1 ;
illustre une mise en œuvre exemplaire du procédé de la FIG. 3 ;
illustre une mise en œuvre exemplaire du procédé de la FIG. 3 ;
illustre une mise en œuvre exemplaire du procédé de la FIG. 3 ;
illustre une mise en œuvre exemplaire du procédé de la FIG. 3 ;
illustre un procédé pour le traitement de messages de corrélation résultant de la mise en œuvre du procédé de la FIG. 3 ;
illustre une mise en œuvre exemplaire des procédés de la FIG. 3 et de la FIG. 5.
illustre une mise en œuvre exemplaire des procédés de la FIG. 3 et de la FIG. 5.
illustre une mise en œuvre exemplaire des procédés de la FIG. 3 et de la FIG. 5.
illustre une mise en œuvre exemplaire des procédés de la FIG. 3 et de la FIG. 5.
illustre une mise en œuvre exemplaire des procédés de la FIG. 3 et de la FIG. 5.
illustre une mise en œuvre exemplaire des procédés de la FIG. 3 et de la FIG. 5.
illustre une mise en œuvre exemplaire des procédés de la FIG. 3 et de la FIG. 5.
illustre une mise en œuvre exemplaire des procédés de la FIG. 3 et de la FIG. 5.
Description détaillée
FIG. 1 illustre un système 100 pour la détection de corrélations entre des objets de données. Le système 100 inclut au moins une source de deux types différents de ces objets de données également dénommés sources de données. Deux sources de données exemplaires 104-1 et 104-2 sont illustrées dans la FIG. 1 (ci-après dénommés, collectivement, les sources de données 104 et, génériquement, une source de données 104 ; une nomenclature similaire est également utilisée pour d’autres composants dans la présente). Les sources de données 104 peuvent être des dispositifs informatiques de systèmes de dispositifs informatiques. Les activités particulières effectuées aux sources de données 104 ne sont pas particulièrement limitées. Aux fins de la présente description, chaque source de données 104 génère et/ou actualise des objets de données d’un type spécifique conformément à un quelconque mécanisme interne approprié pour initier la génération ou l’actualisation d’objets.
C’est-à-dire que la source de données 104-1 génère et/ou actualise des objets de données d’un premier type et la source de données 104-2 génère et/ou actualise des objets de données d’un deuxième type. Cet arrangement est présenté dans le but de simplifier l’illustration. Dans d’autres exemples, chaque source de données 104 peut générer et/ou actualiser des objets de données des deux types. Par ailleurs, le système 100 peut inclure des sources de données supplémentaires 104, au-delà de celles qui sont montrées dans la . Plus généralement, une ou plusieurs sources de données 104 dans le système 100 génèrent et/ou actualisent au moins deux types d’objets de données. Comme il en ressortira de la description ci-dessous, le système 100 sert à détecter et à stocker des corrélations entre des paires de types d’objets de données. Lorsque le système 100 inclut des sources pour plus de deux types d’objets de données, les corrélations restent en paires et donc les éléments et les étapes du procédé décrit ci-dessous peuvent être répétés pour chaque paire.
Les objets de données peuvent avoir une grande variété de structures de donnée (p. ex. des formats de fichiers) et peuvent contenir une grande variété de types de données. Dans les exemples expliqués ci-dessous, le premier type d’objets de données est un enregistrement de nom de passager (PNR) contenant des données qui définissent un itinéraire de voyage. Le PNR peut contenir des données identifiant un ou plusieurs voyageurs ainsi que des données définissant un ou plusieurs vols, réservations d’hôtel, réservations de location de véhicules, ou similaires. Comme le comprendront les hommes de métier, une variété d’autres données peut également être contenue dans un PNR.
Le deuxième type d’objet de données décrit dans les exemples ci-dessous est un billet électronique ou e-billet. L’e-billet contient des données définissant un produit ou un service de voyage acheté tel qu’un vol. Les hommes de métier comprendront maintenant que les e-billets et les PNRs peuvent contenir des informations qui se chevauchent et il existe typiquement des corrélations entre les PNRs et les e-billets. C’est-à-dire qu’un PNR donné peut être corrélé à un plusieurs e-billet, en ce que le PNR définit un itinéraire qui inclut des vols auxquels correspondent les e-billets. Les e-billets à leur tour sont donc corrélés avec ce PNR ; c’est-à-dire que la corrélation est bidirectionnelle. La corrélation entre le PNR et l’e-billet repose sur le fait que les deux documents sont associés aux mêmes produits ou services. Une grande variété d’autres types d’objets de données sont également envisagés. Par exemple, des objets de données contenant des données de programmation de vol peuvent aussi être traités par le système 100, par exemple pour détecter des corrélations entre les données de programmation et les données de PNR et/ou pour détecter des corrélations entre des données de programmation et des données d’e-billet, en plus des corrélations e-billet/PNR mentionnées ci-dessus.
Comme il en ressortira également, la création et l’actualisation des PNRs et des e-billets peuvent être mises en œuvre par des entités différentes (les sources de données 104). En effet, les PNRs peuvent par exemple être actualisés par un nombre de parties (p. ex. les deux sources de données 104) telles qu’un système d’agence de voyages, un système informatique d’une compagnie aérienne, et similaire.
D’autres composants du système 100 peuvent reposer sur la corrélation susmentionnée entre un premier et un deuxième type d’enregistrements de données (p. ex. entre les PNRs et les e-billets mentionnés ci-dessus). Dans l’exemple illustré, le système 100 inclut un gestionnaire d’événements 108 qui peut être implémenté quand un ou plusieurs dispositifs informatiques connectés à un réseau 112 (auquel les sources de données 104 sont aussi connectées). Le gestionnaire d’événements 108 reçoit des notifications de corrélation entre des objets de données du premier et du deuxième type ainsi que des notifications d’autres événements (p. ex. des sources de données 104 elles-mêmes et/ou d’autres dispositifs informatiques).
Le gestionnaire d’événements 108, en réponse à ces notifications, peut mettre en œuvre une quelconque d’une grande variété d’actions basées sur ces notifications. Lorsque les objets de données sont des PNRs et des données de programmation, par exemple, le gestionnaire d’événements 108 peut générer une notification à l’agence de voyages ou directement à un voyageur lorsqu’il détecte qu’un changement de programmation est survenu pour un vol. Le changement de programmation peut être reçu au gestionnaire d’événements 108 sous la forme d’une notification d’un serveur de compagnie aérienne (non illustré) et peut inclure un identifiant d’itinéraire (p. ex. une chaîne alphanumérique) ainsi qu’une heure de départ actualisée ou toute autre information de programmation pertinente. Pour générer les notifications appropriées, le gestionnaire d’événements 108 a besoin de déterminer quels PNRs (qui contienne ou font référence à des informations de contact pour les voyageurs ou pour les agents) sont associés au e-billet modifié.
Dans d’autres exemples, le gestionnaire d’événements 108 peut, lors de la réception d’un PNR contenant des informations de passagers, détecter les exigences de langage, les exigences d’accessibilité ou similaires du passager, et déterminer sur la base d’un des attributs d’aéronef et d’équipage (qui peuvent être récupérés en utilisant les données de l’e-billet ; dans d’autres modes de réalisation, les attributs d’équipage peuvent être stockés dans encore un autre type d’objets de données qui peut être corrélé avec les données de PNR conformément aux mécanismes décrits dans la présente) si des changements de personnel ou d’équipements d’aéronefs sont nécessaires. Le gestionnaire d’événements 108, en d’autres termes, doit être conscient des corrélations entre les PNRs et les e-billets.
La détection de corrélations entre des PNRs et des e-billets et en vérité entre de quelconques objets de données d’un premier type et d’un deuxième type est compliquée par la nature de la création et de l’actualisation des objets de données. Spécifiquement, les objets de données du premier type et les objets de données du deuxième type peuvent être générés et/ou actualisés à tout moment. Par ailleurs, des notifications de ces actualisations ne sont pas nécessairement reçues à un composant de corrélation du système 100 dans le même ordre que la génération des notifications. L’ordre dans lequel ces messages sont générés et reçus peut être affecté par la temporisation des événements aux sources de données, la latence survenant du traitement multifilières ou de toute autre distribution de ressources informatiques (p. ex. à travers de multiples noyaux, de multiples localisations géographiques, ou similaires) aux sources de données durant la génération des mises à jour aux objets de données, de la latence du réseau dans la livraison des notifications et similaire.
Dans certains systèmes, la corrélation d’objets de données est mise en œuvre par un composant central de corrélation tel qu’un serveur configuré pour recevoir des objets de données actualisés des deux sources de données 104. Le composant de corrélation tente ensuite de découvrir des corrélations entre les objets de données. Le composant de corrélation peut être implémenté pour traiter des mises à jour d’objets de données entrantes en une seule fois, mais l’évolutivité du composant de corrélation pour gérer des volumes croissants de mises à jour d’objets de données peut devenir excessivement coûteuse. Si le composant de corrélation est distribué pour améliorer l’évolutivité, le composant de corrélation peut être vulnérable à diverses situations de concurrence, cependant, l’ordre dans lequel les notifications de mises à jour pour des objets de données sont reçues affecte le résultat de la détection de corrélation. C’est-à-dire que parce que l’ordre dans lequel un ensemble donné de notifications de mise à jour d’objets de données est reçu dans un système distribué est pratiquement impossible à prédire pour un composant de corrélation, certaines des corrélations détectées peuvent être erronées donnant lieu à des comportements de système erronés (p. ex. au gestionnaire d’événements 108). De plus, la mise en œuvre de détection de corrélation à un composant de corrélation centralisé tel qu’indiqué ci-dessus peut entrainer des demandes computationnelles excessives, particulièrement lorsque des types supplémentaires d’objets de données doivent être corrélés (c.-à-d. au-delà des deux exemples susmentionnés).
Le système 100, par contraste à un unique composant de corrélation centralisé tel que mentionné ci-dessus, inclut un ensemble d’autres composants connectés au réseau 112 qui détecte des corrélations entre des objets de données de types différents et notifie le gestionnaire d’événements 108 des corrélations. Plus spécifiquement, bien que des corrélations entre des objets de données soient bidirectionnelles (c’est-à-dire que si un PNR donné est corrélé à un e-billet donné, alors par définition ce e-billet est corrélé au PNR), les autres composants du système 100 détectent des corrélations séparées unidirectionnelles qui, ensemble, représentent une corrélation bidirectionnelle entre des objets de données. Ces composants implémentent aussi une certaine fonctionnalité pour rendre le système 100 robuste lorsqu’il est confronté à certaines conditions de concurrence de sorte que dans le temps, des corrélations correctes sont détectées quels que soient l’ordre et la temporisation de la réception des notifications de mise à jour d’objets de données.
Avant d’aborder la description d’autres composants du système 100, on comprendra que l’utilisation de PNRs et d’e-billets comme exemple de types d’objets de données dans la description ci-dessous est uniquement à titre d’illustration. Comme il en ressortira de la description ci-dessous, le système 100 peut être déployé pour détecter des corrélations entre des objets de données d’un quelconque d’une grande variété de types. D’autres exemples de types d’objets de données incluent des objets contenant un quelconque ou plusieurs des données d’inventaire, des données de gestion de clients, des données d’historique et des données de bagages, des données d’équipage, des données de gestion de vol, des données comptables de recettes, des données de fidélisation, des données d’expérience client et des données de relation client.
Les composants supplémentaires du système 100 susmentionnés incluent un premier et un deuxième nœud de stockage 116-1 et 116-2 qui peuvent aussi être dénommés moteurs de flux d’objets. Les nœuds de stockage 116 reçoivent des données brutes en provenance des sources de données 104 qui définissent des objets de données nouveaux ou actualisés, applique une quelconque analyse requise, transformation, ou similaire, aux données brutes et stockent les données analysées dans des répertoires respectifs d’objets de données 120-1 et 120-2. En d’autres termes, les nœuds de stockage 116 sont responsables de la conservation de versions actuelles des objets de données. En particulier, le nœud de stockage 116-1 concerne des versions actuelles des objets de données du premier type (p. ex. PNRs) et le nœud de stockage 116-2 concerne des versions actuelles des objets de données du deuxième type (p. ex. e-billets). Lorsqu’un objet de données est actualisé dans un répertoire 120, le nœud de stockage correspondant 116 génère une notification pour transmission via le réseau 112 à un sous-système124. Le sous-système 124 est montré dans la FIG. 1 comme étant implémenté sur un dispositif informatique unique (p. ex. un serveur, ou une collection de serveurs physiques implémentant un serveur logique), mais comme il en ressortira de la description ci-dessous, certains composants du sous-système 124 sont modulaires et peuvent donc être déployés comme dispositifs informatiques indépendants.
Le sous-système 124 inclut deux répertoires de corrélation distincts 128. Le premier répertoire 128-F2S contient des « premières-à-deuxièmes » corrélations. C’est-à-dire que dans l’exemple où les enregistrements de données incluent des PNRs et des e-billets, le répertoire 128-F2S contient des indications, pour chaque PNR à partir desquelles des e-billets sont corrélés à ce PNR. Le répertoire 128-S2F contient des « deuxièmes-à-premières » corrélations qui dans le présent exemple signifie pour chaque e-billet, quels PNRs sont corrélés à cet e-billet. Ainsi, comme noté ci-dessus, plutôt que de suivre des corrélations bidirectionnelles dans un seul répertoire, le sous-système 124 suit deux ensembles de corrélations unidirectionnelles. Les sous-composants du sous-système 124 interagissent les uns avec les autres pour maintenir les répertoires 128-F2S et 128-S2F et pour assurer une concordance entre les répertoires 128-F2S et 128-S2F. C’est-à-dire que le sous-système 124 fournit une éventuelle cohérence entre les répertoires 128 et, lorsque cette cohérence est atteinte, des corrélations correctes.
Les descriptions ci-dessous tournent autour du système 100 tel qu’il est illustré dans la FIG. 1. Dans d’autres modes de réalisation cependant, le nombre de types d’objets de données peut être plus important que deux et le nombre de corrélations à suivre peut donc aussi être plus élevé. Dans ces modes de réalisation, le nombre de sources de données 104 peut varier tout comme le nombre de nœuds de stockage 116. Pour chaque paire d’objets de données devant être corrélée, un sous-système 124 peut être déployé. Par exemple, dans un système dans lequel quatre types d’objets de données doivent être corrélés les uns avec les autres, six instances du sous-système 124 peuvent être implémentées.
Pour résumer, les sources de données 104 génèrent des données brutes définissant des mises à jour d’objets de données de types variés. Les données brutes sont obtenues par les nœuds de stockage 116 via le réseau 112 (illustré via un trajet simplifié 132) qui actualise les répertoires 120 avec les versions actuelles des objets de données pertinents. Les nœuds de stockage 116 génèrent des notifications de changements des objets de données, pour une remise au sous-système 124 via le réseau 112 (ainsi qu’illustré via un trajet simplifié 136). Le sous-système 124 à son tour détecte des corrélations entre les objets de données et notifie le gestionnaire d’événements 108 via le réseau 112 (ainsi qu’illustré via un trajet simplifié 140) pour un traitement ultérieur.
Faisant maintenant référence à la FIG. 2, certains composants du sous-système 124 seront décrits de façon plus détaillée avant d’aborder les actions effectuées par les composants du sous-système 124 pour détecter des corrélations entre les objets de données.
Comme le montre la FIG. 2, le serveur 124 inclut au moins un processeur 200, tel qu’une unité centrale de traitement (CPU) ou similaire. Le processeur 200 est relié à une mémoire 204 implémentée comme un support non transitoire approprié, lisible par ordinateur (p. ex. une combinaison appropriée de sous-systèmes de mémoires volatiles et non volatiles incluant une quelconque ou plusieurs mémoires à accès aléatoire [RAM], mémoires à lecture seule [ROM], mémoires programmables à lecture seule effaçables électriquement [EEPROM], mémoires flash, stockage informatique magnétique, et ainsi de suite). Le processeur 200 et la mémoire 204 sont généralement compris d’un ou de plusieurs circuits intégrés (ICs).
Le processeur 200 est aussi interconnecté à une interface de communication 208 qui permet au serveur 124 de communiquer avec les autres dispositifs informatiques du système 100 via le réseau 112. L’interface de communication 208 inclut donc tous les composants nécessaires (p. ex. des contrôleurs d’interface de réseau [NICs] des unités de radio, et similaires) pour communiquer via le réseau 112. Les composants spécifiques de l’interface de communication 208 sont sélectionnés en fonction de la nature du réseau 112. Le sous-système 124 peut aussi inclure des dispositifs d’entrée et de sortie connectés au processeur 200, tel que des claviers, des souris, des écrans, et similaires de ce genre (non illustrés).
Les composants du sous-système 124 mentionnés ci-dessus peuvent être déployés dans une seule enceinte ou sous un format distribué. Par conséquent dans certains exemples, le sous-système 124 inclut une pluralité de processeurs qui peuvent soit partager la mémoire 204 et l’interface de communications 208 ou qui ont chacune des interfaces de communications et des mémoires associées distinctes.
La mémoire 204 stocke les répertoires 128 mentionnés ci-dessus en lien avec la . La mémoire 204 stocke aussi une pluralité d’instructions de programmation lisibles par ordinateur, exécutables par le processeur 200 sous forme d’applications variées. En particulier, la mémoire 204 stocke un ensemble d’applications distinct pour chaque répertoire 128. Dans le présent exemple par conséquent la mémoire 204 stocke deux ensembles d’applications. Chaque ensemble inclut une application de corrélation 212, également dénommée moteur de corrélation 212, ou simplement un corrélateur 212. Chaque ensemble inclut également un moteur de stockage de corrélations 216. Dans la description ci-dessous, le processeur 200 et de façon plus générale le sous-système 124 sont censés être configurés pour mettre en œuvre ces actions. On comprendra qu’ils sont configurés ainsi via l’exécution (par le processeur 200) des instructions des applications stockées dans la mémoire 204.
Les corrélateurs 212 détectent des corrélations unidirectionnelles basées sur des notifications reçues des nœuds de stockage 116 comme cela sera exposé de façon plus détaillée ci-dessous. Dans le présent exemple, le corrélateur 212-1 détecte des corrélations des PNRs aux e-billets (c.-à-d. quels e-billets sont corrélés à chacun des PNRs) et le corrélateur 212-2 détecte des corrélations des e-billets aux PNRs (c.-à-d. quels PNRs sont corrélés à chaque e-billet). Les corrélateurs 212, lorsqu’ils détectent une corrélation, envoient des messages de corrélation aux moteurs de stockage de corrélation 216. Comme on le verra ci-dessous, chaque corrélateur 212 peut générer des messages de corrélation pour transmission à la fois à son moteur de stockage de corrélation « local » 216 et au moteur de stockage de corrélation « distant » ou « apparié » 216. C’est-à-dire que le corrélateur 212-1 peut générer des messages de corrélation pour remise à la fois au moteur de stockage de corrélation 216-1 et au moteur de stockage de corrélation 216-2.
Les moteurs de stockage de corrélation 216 à leur tour traitent les messages de corrélation reçus afin d’actualiser les répertoires de corrélation 128. En particulier, le moteur de stockage de corrélation 216-1 actualise le répertoire 128-F2S alors que le moteur de stockage de corrélations 216-2 actualise le répertoire 128-S2F. Les moteurs de stockage de corrélations 216 peuvent aussi, sous certaines conditions, échanger des messages directement les uns avec les autres afin de mitiger le stockage de corrélation obsolète résultant de situations de concurrence mentionnées précédemment. De plus, les moteurs de stockage de corrélation 216 génèrent des notifications d’événement pour remise au gestionnaire d’événements 108, p. ex. via l’interface de communications 208.
Faisant maintenant référence à la FIG. 3, certains aspects d’exploitation du système 100 seront décrits de façon plus détaillée. Spécifiquement, la FIG. 3 illustre un procédé 300 d’actualisation des répertoires 120 et de détection de corrélations entre les objets de données. Le procédé 300 sera décrit conjointement à sa mise en œuvre dans le système 100. En particulier, certains blocs du procédé 300 sont mis en œuvre aux nœuds de stockage 116 et d’autres blocs du procédé 300 sont mis en œuvre au sous-système 124, via l’exécution des corrélateurs 212.
La première portion du procédé 300, consistant des blocs 305 à 315 est mise en œuvre par les nœuds de stockage 116. C’est-à-dire, que chaque nœud de stockage 116 met en œuvre une instance indépendante des blocs 305 à 315 pour traiter toutes données reçues des sources de données. Par ailleurs, chaque nœud de stockage 116 peut mettre en œuvre de multiples instances des blocs 305-315 en parallèle (bien qu’ils ne débutent pas et ne terminent pas nécessairement en même temps) donnant lieu à de multiples notifications qui sont reçues des sources de données 104.
Au bloc 305, un nœud de stockage 116 reçoit, d’une source de données 104, des données brutes définissant de nouveaux objets de données ou une mise à jour d’un objet de donnée de données existant. Par exemple, en faisant référence brièvement à la FIG. 4A, deux instances du bloc 305 sont illustrées avec les nœuds de stockage 116-1 et 116-2 recevant des messages respectifs 400-1 et 400-2 qui contiennent des données brutes (p. ex. des sources de données 104-1 et 104-2 respectivement) définissant de nouveaux objets de données. Les messages 400-1 peuvent être reçus simultanément ou à des moments différents. De façon plus générale, il n’est pas nécessaire d’avoir un quelconque lien causal entre les horaires de réception des messages 400-1 et 400-2. Bien que les données reçues aux nœuds de stockage 116 sont dénommées ci-dessus des données brutes, elles peuvent aussi avoir été formatées avant la réception au nœud de stockage 116 pour se conformer à un quelconque modèle de données approprié.
Au bloc 310, chaque nœud de stockage 116 actualise le répertoire d’objets correspondant 120 sur la base des données brutes reçues au bloc 305. Par exemple, les données brutes peuvent être analysées pour détecter une quelconque structure de donnée prédéfinie appropriée ; le répertoire correspondant 120 peut être interrogé pour déterminer si les données brutes représentent un nouvel objet de données une actualisation d’un objet de données existant, et similaire. Le tableau 1 ci-dessous illustre des contenus exemplaires des répertoires 120-1 et 120-2 avant et après une mise en œuvre des blocs 305 et 310 à chacun des moteurs de stockage 116.
Contenu des répertoires 120
Contenu précédent Contenu actuel
Répertoire 120-1 -- PNR-A1
Répertoire 120-2 -- TKT-X1
Dans l’exemple montré ci-dessus, les répertoires 120 sont censés être initialement vides. Le message 400-1 définit un nouveau PNR dénommé PNR-A1 (signifiant une première version du PNR-A). Le message 400-2 définit un nouveau e-billet, dénommé TKT-X1 (signifiant une première version de TKT-X).
Au bloc 315, en réponse à l’actualisation du répertoire correspondant 120, chaque nœud de stockage 116 transmet une notification au sous-système 124 et spécifiquement au corrélateur 212 correspondant. Ainsi, comme le montre la FIG. 4B, le nœud de stockage 116-1 transmet une notification 404-1 au corrélateur 212-1 et le nœud de stockage 116-2 transmet une notification 404-2 au correcteur 212-2. Les notifications 404 peuvent être remises via un quelconque mécanisme approprié (p. ex. une queue pour chaque corrélateur 212 qui peut aussi être dénommée flux d’objets de données). Les notifications 404 peuvent contenir certaines ou toutes les données dans les objets stockés dans les répertoires 120 via la mise en œuvre du bloc 310.
De retour à la FIG. 3, les blocs restants du procédé 300 sont mis en œuvre par les corrélateurs 212. Ainsi que noté ci-dessus par rapport au nœud de stockage 116, chaque corrélateur 212 met en œuvre une instance indépendante des blocs 320 à 340 et ces instances n’ont pas besoin d’être liées temporairement. Au bloc 320, chaque corrélateur 212 reçoit la notification 404 mentionnée ci-dessus par rapport au bloc 315. Au bloc 325, le corrélateur 212 demande des données du répertoire d’objets appariés 120 (distinct du répertoire local). C’est-à-dire que, comme le montre la FIG. 4C, le corrélateur 212-1 demande des données du répertoire 120-2 en envoyant une requête 408-1 au nœud de stockage 116-2 et le corrélateur 212-2 demande des données du répertoire 120-1 en envoyant une requête 408-2 au nœud de stockage 116-1.
Le but des requêtes 408 est de découvrir si le répertoire apparié 120 contient des objets de données qui sont corrélées à un objet de données défini dans le message reçu au bloc 320. Ainsi, le corrélateur 212-1 cherche à découvrir si le répertoire 120-2 contient des objets de données d’e-billet qui sont corrélés au PNR-A1 et le corrélateur 212-2 cherche découvrir si le répertoire 120-1 contient des objets de données de PNR qui sont corrélées à TKT-X1. La nature des requêtes 408 n’est pas particulièrement limitée et les corrélateurs 212 peuvent mettre en œuvre une quelconque d’une grande variété d’opérations pour détecter des corrélations. Des exemples de ces opérations peuvent être des interrogations au répertoire apparié 120 concernant des enregistrements contenant un identifiant qui est censé être présent dans les deux types d’enregistrements de données. Cependant, pour ce type d’objets de données, des identifiants communs n’ont pas besoin d’être présents dans les objets de données devant être corrélés et la corrélation est donc un processus plus complexe. La corrélation peut impliquer, par exemple, la récupération d’ensembles d’identifiants de chacun des enregistrements de données (aucun d’entre eux n’apparaissant nécessairement explicitement dans les autres enregistrements de données) et l’application de divers algorithmes de corrélation.
De retour à la FIG. 3, suivant la récupération des données des répertoires appariés 120 et la détection de corrélations (le cas échéant), le corrélateur 212 poursuit au bloc 330. Au bloc 330, le corrélateur 212 détermine si des corrélations ont été détectées au bloc 325. Dans le présent exemple, il est supposé que le corrélateur 212-1 détermine au bloc 325 que l’e-billet TKT-X1 est corrélé au PNR PNR-A1 et que le corrélateur 212-2 détermine au bloc 325 que le PNR PNR-A1 est corrélé à TKT-X1. La détermination au bloc 330 est donc affirmative pour les deux corrélateurs 212 et les deux corrélateurs 212 poursuivent au bloc 335. Lorsque la détermination au bloc 330 est négative, le bloc 335 est omis et le corrélateur 212 poursuit directement au bloc 340.
Au bloc 335, chaque corrélateur 212, lors de la détection d’une corrélation au bloc 325, envoie un message au moteur de stockage de corrélations appariées 216 (c.-à-d. le moteur de stockage de corrélations « distant » 216 pour notifier le moteur de stockage de corrélations appariées 216 de l’inverse de la corrélation détectée au bloc 325. Ainsi que noté ci-dessus, les corrélations entre les objets de données sont bidirectionnelles, mais le sous-système 124 détecte et suit chaque corrélation bidirectionnelle comme deux corrélations unidirectionnelles liées. Par conséquent, si au bloc 325 le corrélateur 212-1 a détecté une corrélation exprimée par PNR-A1 => TKT-X1, au bloc 335 le corrélateur 212-1 envoie un message au moteur de stockage de corrélations 216-2 indiquant une corrélation exprimée par TKT-X1 => PNR-A1. De même, si au bloc 325 le corrélateur 212-2 a détecté une corrélation exprimée par TKT-X1 => PNR-A1, au bloc 335 le corrélateur 212-2 envoie un message au moteur de stockage de corrélations 216-1 indiquant une corrélation exprimée par PNR-A1 => TKT-X1.
Suivant la transmission de messages de notification au bloc 335, les corrélateurs 212 poursuivent au bloc 340 où chaque corrélateur notifie également son moteur local de stockage de corrélations 216 de la corrélation dans la direction détectée au bloc 325. Ainsi, dans les exemples des FIGS. 4A-AC, corrélateur 212-1 envoie un message au moteur de stockage de corrélations 216-1 définissant la corrélation PNR-A1 => TKT-X1 et le corrélateur 212-2 envoie un message au moteur de stockage de corrélations 216-2 définissant la corrélation TKT-X1 => PNR-A1. La FIG. 4D illustre les messages envoyés aux blocs 335 et 340. En particulier, les corrélateurs 212-1 et 212-2 envoient des messages respectifs 412-1 et 412-2 aux moteurs de stockage de corrélations appariées 216-2 et 216-1, et envoient également des messages respectifs 416-1 et 416-2 aux stockages de corrélations locaux 216-1 et 216-2.
Les messages envoyés au bloc 335 sont dénommés messages partiels alors que les messages envoyés au bloc 340 sont dénommés messages intégraux ou complets. Les messages intégraux 516 sont dénommés ainsi parce que chaque message 516 est censé (sauf échec d’un corrélateur 212 pour détecter une corrélation) représenter l’ensemble intégral des corrélations unidirectionnelles applicables aux objets de données pertinents. Par contre, les messages partiels 512 sont ainsi dénommés parce que chaque message partiel 512 n’est pas nécessairement censé représenter un ensemble entier de corrélations unidirectionnelles. À titre d’exemple illustratif, envisageons un scénario dans lequel le répertoire 120-1 contient trois objets de données PNR-A1, PNR-B1 et PNR-C1 (c.-à-d. trois PNRs distincts) et dans lequel le répertoire 120-2 contient deux objets de données TKT-X1 et TKT-Y1. PNR-A1 est corrélé aux deux objets e-billets alors que l’e-billet TKT-X1 est seulement corrélé à PNR-A1. Lorsque le corrélateur 212-2 détecte la corrélation TKT-X1 => PNR-A1, cette corrélation représente l’ensemble entier des corrélations dans la direction e-billets vers PNRs. Cependant, puisque la recherche pour des corrélations a commencé avec l’objet TKT-X1, elle ne peut pas détecter la corrélation entre PNR-A1 et TKT-Y1. Le corrélateur 212-2 génère donc un message indiquant que l’ensemble intégral des corrélations dans la deuxième-à-première direction est TKT-X1 => PNR-A1, et un autre message indiquant qu’un ensemble partiel de corrélations dans la première-à-deuxième direction est PNR-A1 => TKT-X1. Un message intégral peut remplacer toutes les corrélations stockées dans le répertoire local 128 alors qu’un message partiel ne peut pas remplacer, mais plutôt ajoute à des corrélations existantes dans le répertoire apparié 128.
Après la mise en œuvre du bloc 340, les corrélateurs 212 attendent d’autres messages en provenance des nœuds de stockage 116. De façon similaire, après la mise en œuvre du bloc 315, les nœuds de stockage 116 attendent d’autres données brutes.
En résumé, les nœuds de stockage 116 reçoivent et traitent des données brutes pour actualiser les répertoires d’objets de données 120 et les corrélateurs 212 reçoivent des messages en provenance des nœuds de stockage 116 indiquant les mises à jour des répertoires 120. Chaque corrélateur 212 détecte des corrélations dans une direction spécifique, notifie le moteur local de stockage de corrélations 216 de cette corrélation et notifie également le moteur de stockage de corrélations appariées 216 de la corrélation opposée.
Comme il en ressortira maintenant, les messages partiels et intégraux générés par des corrélateurs 212 doivent être traités par les moteurs de stockage de corrélations 216 pour actualiser les répertoires de corrélations 128. Faisant maintenant référence à la FIG. 5, la fonctionnalité des moteurs de stockage de corrélation 216, également dénommés simplement moteurs 216 ci-dessous sera exposée de façon plus détaillée. La FIG. 5 illustre un procédé 500 de traitements de messages de corrélations aux moteurs de stockage de corrélations 216.
Comme il en ressortira de la description ci-dessus, les moteurs de stockage de corrélations 216 reçoivent divers messages à la fois des corrélateurs locaux 212 et des corrélateurs appariés ou distants 212 (ainsi que de l’autre moteur 216, comme on le verra ci-dessous). Les corrélateurs 212 peuvent avoir généré ces messages sur la base d’une information qui a depuis été remplacée, en fonction de la temporisation de la réception des messages en provenance des nœuds de stockage 116. Par ailleurs, les messages générés par les corrélateurs 212 peuvent être retardés par une grande variété de facteurs (p. ex. la latence du réseau, la latence présentée par le traitement distribué, d’autres charges computationnelles au dispositif informatique qui implémentent le corrélateur 212). L’ordre dans lequel les messages de corrélations sont reçus à un moteur donné de stockage de corrélations 216 d’un corrélateur donné 212 est prévisible. Spécifiquement, le sous-système 124 est configuré pour délivrer des messages d’un corrélateur donné 212 à un moteur donné de stockage de corrélations 216 dans un ordre croissant monotone. Cependant, l’ordre dans lequel les messages de corrélation sont reçus à un moteur donné de stockage de corrélations 216 des corrélateurs différents 212 est imprévisible et les moteurs de stockage de corrélations 216 sont donc configurés, comme cela sera décrit ci-dessous, pour traiter les messages de corrélations entrants afin de réduire la probabilité de cette imprévisibilité donnant lieu au stockage de corrélations erronées dans les répertoires 128.
Ainsi que noté ci-dessus, par rapport au procédé 300, des instances distinctes du procédé 500 sont mises en œuvre par chaque moteur de stockage de corrélation 216. Chaque moteur 216 met en œuvre une instance du procédé 500 pour chaque message de corrélation reçu. Des exemples de mises en œuvre du procédé 500 par le moteur de 216-1 en réponse à la réception du message intégral 412-1 (en provenance du corrélateur 212-1) et du message partiel 416-2 (du corrélateur 212-2).
Au bloc 505 le moteur 216-1 reçoit un message de corrélation. Dans le présent exemple, le moteur 216-1 est supposé recevoir le message « intégral » 412-1 spécifiant la corrélation unidirectionnelle PNR-A1 => TKT-X1 (c.-à-d.dans la première-à-deuxième direction). Au bloc 510, le moteur 216-1 détermine si le message est un message d’enlèvement. Les messages d’enlèvement sont un type de message de corrélation qui est généré non pas par les corrélateurs, mais par les moteurs 216 eux-mêmes. La génération et le traitement d’enlèvement des messages seront discutés ultérieurement de façon plus détaillée à travers un exemple. Dans le présent exemple de mise en œuvre du procédé 500, la détermination au bloc 510 est négative, et le moteur 216-1 poursuit au bloc 515.
Au bloc 515, le moteur 216-1 détermine si le message est un message intégral ou partiel. Le type de message de corrélation peut être indiqué de façon implicite par l’origine du message. Par exemple, lorsque le message de corrélation reçue au bloc 505 est reçu en provenance d’un corrélateur local 212 (c.-à-d. le corrélateur 212-1 dans le cas du moteur 216-1), le message est un message intégral. Lorsque d’autre part le message de corrélation reçu au bloc 505 est reçu d’un corrélateur apparié (c.-à-d. le corrélateur 212-2 dans le cas moteur 216-1) le message est un message apparié. Dans d’autres exemples, le message de corrélation peut contenir une indication explicite de son type, telle qu’une balise, un en-tête de champ ou similaire.
Dans le présent exemple, le message 412-1 est un message intégral et le moteur de 216-1 poursuit donc au bloc 517. Au bloc 517, le moteur 216-1 détermine si le message de corrélation concerne une version actuelle de l’enregistrement de données pertinent. Par exemple, les répertoires 128 peuvent inclure des identifiants de version pour chaque enregistrement de données qui y est représenté. Si le message de corrélation reçu au bloc 505 concerne une version de l’enregistrement de données qui est égale ou supérieure à (c.-à-d. plus récente que) la version représentée dans le répertoire 128, la détermination au bloc 517 est affirmative. Dans le présent exemple, les répertoires 128 sont supposés être initialement vides et la détermination au bloc 517 est donc affirmative. Le résultat d’une détermination négative au bloc 517 sera expliqué dans un exemple subséquent dans la présente.
Au bloc 520, le moteur 216-1 détermine si le répertoire 128-F2S correspond à la corrélation indiquée par le message 412-1. La détermination au bloc 520 dans le cas d’un message de corrélation intégral, indique si le répertoire 128-F2S contient un enregistrement pour l’objet de données pertinent (c.-à-d. PNR-A1 dans cet exemple) qui correspond complètement au contenu du message de corrélation. Dans le présent exemple, le répertoire 128-F2S est supposé être initialement vide et la détermination au bloc 520 est donc négative. Le moteur 216-1 poursuit au bloc 525 où le moteur de 216-1 insère un enregistrement dans le répertoire 128-F2S (c.-à-d. qu’il remplit le répertoire 128-F2S), ou si le répertoire 128-F2S contient déjà un enregistrement pour l’objet de données pertinent, il remplace cet enregistrement.
Par conséquent, dans le présent exemple, le moteur 216-1 crée un enregistrement dans le répertoire 128-F2S, ainsi que montré ci-dessous dans le tableau 2.
Répertoire 128-F2S
ID Objet Corrélation(s)
PNR-A PNR-A1 => TKT-X1
Comme on le voit ci-dessus, le répertoire 128-F2S contient un enregistrement pour l’objet de données PNR-A qui contient toutes corrélations détectées par le moteur 216-1. Les corrélations sont stockées dans l’enregistrement avec les identifiants de version. Dans le présent exemple, les identifiants de version sont « 1 » pour les deux objets de données.
Suite à l’insertion de l’enregistrement au bloc 525, le moteur 216-1 détermine, au bloc 530, si l’opération au bloc 525 a impliqué la suppression de quelconques corrélations. Comme il en ressortira, le remplacement d’un enregistrement en réponse à un message de corrélation intégral peut donner lieu à la suppression d’une ou de plusieurs corrélations précédentes. Le cas échéant, la détermination au bloc 530 est affirmative. Cependant, dans le présent exemple aucun remplacement n’a été nécessaire parce que le répertoire 128-F2S était précédemment vide. La détermination au bloc 530 est donc négative et le moteur 216-1 poursuit au bloc 535. Au bloc 535, le moteur 216-1 génère une notification d’événement pour transmission au gestionnaire d’événements 108 montré dans la FIG. 1. La notification d’événements contient des données indiquant la corrélation ajoutée au répertoire 128-F2S. La notification d’événements peut donc être similaire en contenu au message de corrélation reçu au bloc 505 bien que dans d’autres exemples comme on le verra ci-dessous cela peut ne pas être le cas pour des mises à jour complexes au répertoire 128-F2S.
Un autre exemple de mise en œuvre du procédé 500 sera maintenant exposé pour le traitement du message partiel 416-2 par le moteur 216-1. Le message 416-2 définit la corrélation unidirectionnelle PNR-A1 => TKT-X1 qui est l’inverse de la corrélation détectée par le corrélateur 212-2, ainsi que décrit ci-dessus par rapport aux FIGS. 4A-4D.
Suivant la réception du message 416-2 au bloc 505, la détermination au bloc 510 est négative. La détermination au bloc 515 est que le message 416-2 est un message partiel. Le moteur 216-2 poursuit donc au bloc 540 où une détermination similaire à celle du bloc 517 est mise en œuvre. La détermination au bloc 540 est affirmative parce que le message 416-2 concerne la même version de PNR-A que celle qui est actuellement représentée dans le répertoire 128-F2S. Par conséquent, le moteur 216-2 poursuit au bloc 545 pour déterminer si le répertoire 128-F2S contient la corrélation dans le message 416-2. La détermination au bloc 545 se distingue de la détermination au bloc 520 du fait qu’une correspondance exacte n’est pas nécessaire au bloc 545. Par exemple, si le répertoire 128-F2S contient un enregistrement définissant la corrélation d’un message entrant ainsi qu’une autre corrélation pour le même objet de données, la détermination au bloc 545 est affirmative.
Dans le présent exemple, la détermination au bloc 545 est affirmative parce que le répertoire 128-F2S (ainsi que montré dans le tableau 2) contient déjà la corrélation indiquée par le message 416-2. Le moteur 216-2 rejette donc le message 416-2 au bloc 550 et la mise en œuvre du procédé 500 se termine. C’est-à-dire, qu’aucune notification d’événement n’est générée après le bloc 550. Dans d’autres modes de réalisation, le moteur 216-2 peut toujours envoyer une notification d’événement et le gestionnaire d’événements 108 en aval peut être configuré pour détecter qu’aucun changement n’est survenu. Dans l’éventualité où la détermination au bloc 545 serait négative, le répertoire 128-F2S serait actualisé au bloc 555, non pas par le remplacement de l’enregistrement relatif au PNR-A, mais par l’ajout de la corrélation du message 416-2 à une quelconque corrélation existante dans l’enregistrement pour le PNR-A. Suite à cet ajout, une notification d’événement serait générée au bloc 535, comme mentionné ci-dessus.
Un exemple d’implémentation plus complexe des procédés 300 et 500 sera maintenant décrit par rapport aux FIGS. 6A-9B. Initialement (c.-à-d. avant les mises en œuvre du procédé 500 décrites ci-dessous) il est supposé que les répertoires 120 et 128 sont tous vides. L’exemple ci-dessous implique trois objets de données PNR-A, PNR-B et TKT-X et implique également deux versions de TKT-X. L’état final attendu des répertoires 128 est de refléter les corrélations suivantes : PNR-A1 n’est corrélé à aucun des objets TKT ; et PNR-B1 est corrélé à TKT-X2 (et, par définition, TKT-X2 est corrélé à PNR-B1).
Faisant référence à la FIG. 6A, quatre messages 600 contenant des données brutes qui définissent des objets de données respectifs sont reçus aux nœuds de stockage 116. En particulier, un premier message 600-1 définissant un objet de données TKT-X1 est reçu au moteur de stockage 116-2. Un deuxième et un troisième message 600-2 et 600-3 sont reçus au nœud de stockage 116-1, définissant les objets de données PNR-A1 et PNR-B1. Un quatrième message 600-4 est ensuite reçu au nœud de stockage 116-2, définissant une version actualisée de l’objet de données TKT-X dénommé TKT-X2. Via les mises en œuvre respectives des blocs 305, 310 et 315, les nœuds de stockage 116 actualisent les répertoires 120 et génèrent des notifications de mises à jour. Les notifications de mise à jour 604-1, 604-2, 604-3 et 604-4 sont illustrées dans les nœuds de stockage 116, mais leur transmission peut être retardée pour diverses raisons. La temporisation de la transmission ainsi que l’ordre de la transmission peuvent donc varier. On notera en particulier que le répertoire 120-2 est actualisé pour remplacer l’objet de données TKT-X1 par TKT-X2 avant qu’un quelconque message 604 ne soit consommé (p. ex. devant être transmis). En d’autres termes, le message 604-1 au moment de sa transmission sera obsolète, car il concerne une version de TKT-X qui n’apparaît plus dans le répertoire 120-2. Le tableau 3 illustre le contenu des répertoires 120 suivant la réception des messages 600 et la génération (mais par la transmission) des messages 604.
Répertoires 120
Répertoire Objets de données
120-1 PNR-A1; PNR-B1
120-2 TKT-X2
Comment le voit ci-dessus, le répertoire 120-2 contient uniquement la version la plus récente de l’objet de données TKT-X.
Faisant maintenant référence à la FIG. 6B, la transmission des messages 604 commence. Dans le présent exemple, le message 604-1 est le premier message à transmettre. Lors de la réception du message 604-1 au corrélateur 212-2 (au bloc 320 du procédé 300), le corrélateur 212-2 (au bloc 325 du procédé 300) récupère les données du répertoire 120-1, détecte que l’objet TKT-X1 est corrélé à l’objet PNR-A1 et génère deux messages de corrélation aux blocs 335 et 340 : un message intégral 608-1 pour transmission au moteur 216-2 et un message partiel 608-2 pour transmission au moteur 216-1. Cependant, comme avec les messages discutés précédemment, les messages 608 ne sont pas immédiatement consommés/transmis.
Faisant référence à la FIG. 7A, le message 604-3 est ensuite délivré au corrélateur 212-1. Le corrélateur 212-1, sur la base des données du répertoire 120-2, détecte que PNR-B1 est corrélé à TKT-X2 et génère deux messages de corrélation 608-3 et 608-4 (c.-à-d. via les blocs 335 et 340). Le message 608-3 est un message intégral indiquant la corrélation dans la direction telle qu’elle est détectée par le corrélateur 212-1 et le message 608-4 est un message partiel indiquant la corrélation dans la direction opposée telle qu’elle est détectée par le corrélateur 212-1. Suivant la génération des messages 608-3 et 608-4, le message 608-4 est délivré au moteur 216-2 alors que la livraison du message 608-3 est retardée.
Au moteur 216-2, lors de la réception du message 608-4 (bloc 505) la détermination au bloc 505 est négative et le moteur 216-2 poursuit via le bloc 515 au bloc 540. La détermination au bloc 540 est affirmative, et la détermination au bloc 545 est négative (parce que le répertoire 128-S2F est vide). Le répertoire 128-S2F est donc actualisé pour contenir la corrélation TKT-X2=>PNR-B1 (bloc 555) et un événement est transmis au gestionnaire d’événements (bloc 535) contenant la même corrélation.
Faisant référence maintenant à la FIG. 7B, le message 604-2 est ensuite délivré au corrélateur 212-1. Via la mise en œuvre du bloc 325, le corrélateur 212-1 consulte le répertoire 120-2 et détermine que le PNR-A1 n’est corrélé à aucun e-billets. La détermination au bloc 330 est donc négative et le bloc 335 est omis. Par conséquent, aucun message partiel n’est généré, mais un message intégral 608-5 est généré au corrélateur 212-1 indiquant un ensemble vide de corrélations pour le PNR-A1. Dans le présent exemple, le message 608-5 est délivré immédiatement au moteur 216-1. Le moteur 216-1, via les blocs 505, 510, 515, 517, 520, 525, 530 et 535, actualise le répertoire 128-F2S avec la corrélation du message 608-5.
Faisant référence à la FIG. 8A, le message généré précédemment 608-1 est ensuite délivré au moteur 216-2 (bloc 505). Le moteur 216-2 effectue une détermination négative au bloc 510 et poursuit au bloc 517. Au bloc 517, la détermination est négative parce que le message 608-1 concerne une version obsolète de l’objet TKT-X (c.-à-d. TKT-X1 alors que la nouvelle version TKT-X2 est déjà présente). Par conséquent, le moteur 216-2 poursuit au bloc 560 du procédé 500 où le message 608-1 est éliminé [c.-à-d. rejeté]. Ensuite, au bloc 565, le moteur 216-2 génère une commande d’enlèvement, également dénommée message d’enlèvement 612-1, pour transmission au moteur 216-1. Le message d’enlèvement reflète le fait qu’en tandem avec le message intégral 608-1 qui a été découvert comme étant obsolète, un message partiel 608-2 a aussi été généré. Le message 608-2 contient donc aussi une corrélation obsolète qui sera transmise au moteur 216-1. Le message d’enlèvement 612-1 sert ensuite à inverser l’information obsolète communiquée par le message partiel 608-2 au cas où le message 608-2 serait accepté par le moteur 216-1 [c.-à-d. écrit au répertoire 128-F2S].
Faisant référence à la FIG. 8B, le message partiel 608-2 est délivré au moteur 216-1. Le moteur 216-1, via les blocs 505, 510, 515, 540 [où la détermination est affirmative, car le message 608-2 concerne la même version de PNR-A que le répertoire 128-F2S], 545 et 555, insère la corrélation PNR-A1=>TKT-X1 dans le répertoire 128-F2S. Comme le comprendront les hommes de métier, la corrélation insérée dans le répertoire 128-F2S dans la FIG. 8B est erronée, en raison de la nature obsolète du message 608-2. Le message d’enlèvement 612-1 mentionné ci-dessus sert à inverser l’actualisation incorrecte montrée dans la Fig. 8 B. Pendant ce temps, le moteur 216-1 envoie également une notification d’événement au gestionnaire d’événements 108 indiquant la corrélation de PNRA-1 à TKT-X1.
Faisant maintenant référence à la FIG. 9A, le message 608-3 est ensuite délivré aux moteurs 216-1. Via les blocs 505, 510, 515, 517, 520, et 525, le moteur 216-1 actualise le répertoire 128-F2S pour inclure à la fois la corrélation précédente de PNR-A1 à TKT-X1 et une corrélation de PNR-B1 à TKT-X2. Un événement est aussi envoyé au bloc 535 au gestionnaire d’événements 108 indiquant la corrélation PNR-B1 à TKT-X2.
Faisant référence à la FIG. 9B, le message d’enlèvement 612-1 est délivré au moteur 216-1 La détermination au bloc 510 est affirmative et le moteur 216-1 poursuit donc au bloc 570. Au bloc 570, le moteur 216-1 recherche dans le répertoire 128-F2S une corrélation correspondant à celle qui est définie dans le message d’enlèvement 612-1 et si la corrélation est localisée, elle est supprimée. Le répertoire 128-F2S est donc actualisé comme le montre la FIG. 9B pour, à nouveau, refléter la corrélation correcte à partir de PNR-A1 [c.-à-d. à aucun objet e-billet].
Le message 604-4 est ensuite délivré au corrélateur 212-2. Via une autre mise en œuvre des blocs 320 à 340, le corrélateur 212-2 génère un message partiel 608-6 et un message intégral 608-7. Comme il en ressortira maintenant, les messages 608-6 et 608-7 sont tous deux redondants avec les contenus de chacun des répertoires 128. Par conséquent, le moteur 216-1 fera une détermination affirmative au bloc 545 et éliminera le message 608-6. Le moteur 216-2 pendant ce temps fera une détermination affirmative au bloc 520 et éliminera le message 608-7. Ainsi que noté antérieurement, le moteur 216-2 peut aussi générer une notification d’événement avec une corrélation identique que celle d’une corrélation envoyée précédemment et le gestionnaire d’événements 108 peut détecter qu’aucun changement n’est survenu.
Par conséquent, la mise en œuvre du procédé 300 par les nœuds de stockage 116 et les corrélateurs 212 pour maintenir les objets de données et détecter des composants unidirectionnels des corrélations bidirectionnelles, ainsi que la mise en œuvre du procédé 500 par les moteurs 216, permettent au sous-système 124 d’arriver à l’ensemble correct de corrélations, même en étant confronté à divers retards imprévisibles de remise des messages qui donnent lieu à des messages générés et délivrés en désordre de sorte que certains messages contiennent des informations qui ne sont plus correctes.
D’autres mécanismes sont aussi envisagés pour résoudre les conflits entre les contenus de répertoire et les messages entrants. Par exemple, dans d’autres modes de réalisation le message obsolète 608-1, plutôt que d’être éliminé peut être stocké dans le répertoire 128-S2F. C’est-à-dire, que des messages intégraux obsolètes peuvent être traités comme des messages partiels et ajoutés au répertoire 128 plutôt que d’être éliminés de sorte que le répertoire 128-S2F dans la FIG. 8A contiendrait un enregistrement pour TX contenant deux corrélations : TX2=>PB1 ; TX1=>PA1. Dans cette implémentation, la réception du message intégral 608-7 [FIG. 9B] donnerait lieu au remplacement de cet enregistrement par l’enregistrement correct montré dans la FIG. 9. De plus, le remplacement impliquerait l’enlèvement de la corrélation TX1=>PA1. Cet enlèvement à son tour conduirait à une détermination affirmative au bloc 530 et la génération d’un message d’enlèvement au bloc 565, similaire au message 612-1 (simplement généré à un moment différent).
Les hommes de métier apprécieront que dans certains modes de réalisation, la fonctionnalité d’une quelconque des applications 212, 216 peut être implémentée en utilisant du matériel préprogrammé ou des éléments micrologiciels (p. ex. des circuits intégrés spécifiques aux applications [ASICs], des mémoires à lecture seule programmables et effaçables électriquement [EEPROMs], etc.) ou d’autres composants associés.

Claims (17)

  1. Un système pour la corrélation d’objets de données, le système comprenant :
    une première source de données pour générer et / ou mettre à jour des objets de données d'un premier type,
    une deuxième source de données pour générer et / ou mettre à jour des objets de données d'un second type,
    un premier nœud de stockage et un deuxième nœud de stockage pour recevoir des données brutes des première et deuxième sources de données et pour maintenir les versions actuelles des objets de données d'un premier et d'un deuxième type de données respectifs, stockés dans des référentiels de données respectifs,
    dans lequel lorsqu'un objet de données est actualisé dans un répertoire, le nœud de stockage correspondant générant une notification pour transmission via le réseau à un sous-système de corrélation,
    un sous-système de corrélation, comprenant:
    1. un moteur de première-à-deuxième corrélation configuré pour :
      1. déterminer des corrélations entre de premiers objets, tels qu’ils sont reçus via un premier flux d’objets et de deuxièmes objets tels qu’ils sont stockés dans un deuxième stockage d’objets ; et
      2. générer de premiers messages de corrélations indicatifs des corrélations pour, à la fois, une première-à-deuxième direction d’objet et une deuxième-à-première direction d’objet ;
    2. un deuxième-à-premier moteur de corrélation configuré pour :
      1. déterminer des corrélations respectives entre de deuxièmes objets, tels qu’ils sont reçus via un deuxième flux d’objets et de premiers objets tels qu’ils sont stockés dans un premier stockage d’objets ; et
      2. générer de deuxièmes messages de corrélations indicatifs des corrélations respectives pour, à la fois, une deuxième-à-première direction d’objet et une première-à-deuxième direction d’objet ;
    3. un premier-à-deuxième moteur de stockage de configuré pour :
      1. recevoir les premiers messages de corrélation et les deuxièmes messages de corrélation pour la première-à-deuxième direction d’objet ; et
      2. un ou plusieurs de remplir et d’actualiser un premier-à-deuxième stockage de corrélations d’objets sur la base des messages de corrélation reçus ; et
    4. un deuxième-à-premier moteur de stockage de corrélation configuré pour :
      1. recevoir les premiers messages de corrélation et les deuxièmes messages de corrélation pour la deuxième-à-première direction d’objet ; et
      2. un ou plusieurs de remplir et d’actualiser un deuxième-à-premier stockage de corrélations d’objets sur la base des messages respectifs de corrélation reçus,
    dans lequel le premier-à-deuxième moteur de stockage de corrélation est par ailleurs configuré pour : en réponse au remplissage ou à l’actualisation du premier-à-deuxième stockage de corrélation d’objets, transmettre une première notification d’événement à un gestionnaire d’événements ; et dans lequel le deuxième-à-premier moteur de stockage de corrélation est par ailleurs configuré pour : en réponse au remplissage ou à l’actualisation du deuxième-à-premier stockage de corrélation d’objets, transmettre une deuxième notification d’événement à un gestionnaire d’événements,
    dans lequel le système n'est pas un système de corrélation centralisé unique, mais comprend un ensemble d'autres composants connectés au réseau qui détectent les corrélations entre des objets de données de différents types et notifient le gestionnaire d'événements des corrélations,
    dans lequel, bien que les corrélations entre les objets de données soient bidirectionnelles, ces autres composants du système détectent des corrélations séparées et unidirectionnelles qui, ensemble, représentent une corrélation bidirectionnelle entre les objets de données.
  2. Le système de la revendication 1, dans lequel le premier-à-deuxième moteur de stockage est par ailleurs configuré pour, en réponse au stockage d’une première-à-deuxième corrélation d’objets actualisée au premier-à-deuxième stockage de corrélations d’objets : transmettre, au deuxième-à-premier moteur de stockage, une commande pour retirer une deuxième-à-première corrélation d’objet existante au deuxième-à-premier stockage de corrélations d’objets, la deuxième-à-première corrélation d’objets existante correspondant à une première-à-deuxième corrélation d’objets qui est une ou plusieurs de retirée et d’actualisée par la première-à-deuxième corrélation d’objet actualisée.
  3. Le système de la revendication 1, dans lequel le deuxième-à-premier moteur de stockage est par ailleurs configuré pour, en réponse au stockage d’une deuxième-à-première corrélation d’objets actualisée au deuxième-à-premier de stockage de corrélations d’objets : transmettre, au premier-à-deuxième moteur de stockage, une commande pour retirer une première-à-deuxième corrélation d’objet au premier-à-deuxième stockage de corrélations d’objets, la première-à-deuxième corrélation d’objets existante correspondant à une deuxième-à-première corrélation d’objets qui est une ou plusieurs de retirée et d’actualisée par la deuxième-à-première corrélation d’objet actualisée.
  4. Le système de la revendication 1 comprenant par ailleurs un premier moteur de flux d’objet configuré pour :
    1. recevoir les premiers objets du premier flux d’objet
    2. stocker les premiers objets au premier stockage d’objets ; et
    3. fournir les premiers objets au premier-à-deuxième moteur de corrélation.
  5. Le système de la revendication 1 comprenant par ailleurs un deuxième moteur de flux d’objet configuré pour :
    1. recevoir les deuxièmes objets du deuxième flux d’objet ;
    2. stocker les deuxièmes objets au deuxième stockage d’objets ; et
    3. fournir les deuxièmes objets au deuxième-à-premier moteur de corrélation.
  6. Le système de la revendication 1, dans lequel le premier-à-deuxième moteur de stockage est par ailleurs configuré pour un ou plusieurs de remplir et d’actualiser le premier-à-deuxième stockage de corrélation d’objets sur la base des messages de corrélation reçus par un ou plusieurs de :
    1. le stockage, au premier-à-deuxième stockage de corrélation d’objets, d’une nouvelle première-à-deuxième corrélation indiquée par les messages de corrélation reçus ;
    2. l’ajout, au premier-à-deuxième stockage de corrélation d’objets, à une première-à-deuxième corrélation existante, d’une première-à-deuxième corrélation supplémentaire indiquée par les messages de corrélation reçus ; et
    3. le remplacement, au premier-à-deuxième stockage de corrélation d’objets, de la première-à-deuxième corrélation existante par une première-à-deuxième corrélation actualisée indiquée par les messages de corrélation reçus.
  7. Le système de la revendication 1, dans lequel le deuxième-à-premier moteur de stockage est par ailleurs configuré pour un ou plusieurs de remplir et d’actualiser le deuxième-à-premier stockage de corrélation d’objets sur la base des messages respectifs de corrélation reçus par un ou plusieurs de :
    1. le stockage, au deuxième-à-premier stockage de corrélation d’objets, d’une nouvelle deuxième-à-première corrélation indiquée par les messages de corrélation reçus ;
    2. l’ajout, au deuxième-à-premier stockage de corrélation d’objets, à une deuxième-à-première corrélation existante, d’une deuxième-à-première corrélation supplémentaire indiquée par les messages de corrélation reçus ; et
    3. le remplacement, au deuxième-à-premier stockage de corrélation d’objets, de la deuxième-à-première corrélation existante avec une deuxième-à-première corrélation actualisée indiquée par les messages de corrélation reçus.
  8. Le système de la revendication 1, dans lequel les premiers objets et les deuxièmes objets comprennent respectivement des différents enregistrements de noms de passagers, données de billet, données de programmation, données d’inventaire, données de gestion de client, données historiques et données de bagages, données d’équipage, données de gestion de vol, données comptables de recettes, données de fidélisation, données d’expérience client et données de relation client.
  9. Un procédé pour la corrélation d’objets de données, le procédé comprenant :
    une première source de données, générant et / ou mettant à jour des objets de données d'un premier type,
    une deuxième source de données, générant et / ou mettant à jour des objets de données d'un second type,
    au niveau d'un premier nœud de stockage et d'un deuxième nœud de stockage recevant des données brutes des première et seconde sources de données et conservant les versions actuelles des objets de données d'un premier et d'un deuxième type de données respectifs, stockés dans des référentiels de données respectifs,
    dans lequel lorsqu'un objet de données est actualisé dans un répertoire, le nœud de stockage correspondant générant une notification pour transmission via le réseau à un sous-système de corrélation,
    1. à un premier-à-deuxième moteur de corrélation, composé par d'un sous-système de corrélation:
      1. la détermination de corrélations entre de premiers objets, tels qu’ils sont reçus via un premier flux d’objets et de deuxièmes objets tels qu’ils sont stockés à un deuxième stockage d’objets ; et
      2. la génération de premiers messages de corrélations indicatifs des corrélations pour, à la fois, une première-à-deuxième direction d’objet et une deuxième-à-première direction d’objet ;
      3. à un deuxième-à-premier moteur de corrélation, composé par d'un sous-système de corrélation:
      4. la détermination de corrélations respectives entre les deuxièmes objets tels qu’ils sont reçus via un deuxième flux d’objets et les premiers objets tels qu’ils sont stockés à un premier stockage d’objets ; et
      5. la génération de deuxièmes messages de corrélations indicatifs des corrélations respectives pour, à la fois, la deuxième-à-première direction d’objet et la première-à- deuxième direction d’objet ;
    2. à un premier-à-deuxième moteur de stockage de corrélations, composé par d'un sous-système de corrélation:
      1. la réception des premiers messages de corrélations et des deuxièmes messages de corrélations pour la première-à-deuxième direction d’objet ; et
      2. un ou plusieurs du remplissage et de l’actualisation d’un premier-à-deuxième stockage de corrélation d’objets sur la base des messages de corrélation reçus ; et
      3. à un deuxième-à-premier moteur de stockage de corrélations, composé par d'un sous-système de corrélation:
      4. la réception de premiers messages de corrélations et de deuxièmes messages de corrélations pour la deuxième-à-première direction d’objet ; et
      5. un ou plusieurs du remplissage et de l’actualisation à un deuxième-à-premier stockage de corrélations sur la base des messages respectifs de corrélation reçus,
    3. par le premier-à-deuxième moteur de stockage de corrélation : en réponse au remplissage ou à l’actualisation du premier-à-deuxième stockage de corrélation d’objets, transmettre une première notification d’événement à un gestionnaire d’événements ; et parle deuxième-à-premier moteur de stockage de corrélation: en réponse au remplissage ou à l’actualisation du deuxième-à-premier stockage de corrélation d’objets, transmettre une deuxième notification d’événement à un gestionnaire d’événements,
    dans lequel le système n'est pas un système de corrélation centralisé unique, mais comprend un ensemble d'autres composants connectés au réseau qui détectent les corrélations entre des objets de données de différents types et notifient le gestionnaire d'événements des corrélations,
    dans lequel, bien que les corrélations entre les objets de données soient bidirectionnelles, ces autres composants du système détectent des corrélations séparées et unidirectionnelles qui, ensemble, représentent une corrélation bidirectionnelle entre les objets de données.
  10. le procédé de la revendication 10 comprenant par ailleurs, au premier-à-deuxième moteur de stockage : en réponse au stockage d’une première-à-deuxième corrélation d’objets actualisée au stockage d’une première-à-deuxième corrélation d’objets, la transmission, au deuxième-à-premier moteur de stockage, d’une commande pour retirer une deuxième-à-première corrélation d’objet existante au deuxième-à-premier stockage de corrélations d’objets, la deuxième-à-première corrélation d’objets existante correspondant à une première-à-deuxième corrélation d’objets qui est une ou plusieurs de retirée et d’actualisée par la première-à-deuxième corrélation d’objet actualisée.
  11. Le procédé de la revendication 10 comprenant par ailleurs, au deuxième-à-premier moteur de stockage : en réponse au stockage d’une deuxième-à-première corrélation d’objets actualisée au deuxième-à-premier stockage de corrélation d’objets, la transmission, au premier-à-deuxième moteur de stockage, d’une commande pour retirer une première-à-deuxième corrélation d’objets existante au premier-à-deuxième stockage de corrélations d’objets, la première-à-deuxième corrélation d’objets existante correspondant à une deuxième-à-première corrélation d’objets qui est une ou plusieurs de retirée et d’actualisée par la deuxième-à-première corrélation d’objet actualisée.
  12. Le procédé de la revendication 10 comprenant par ailleurs à un premier moteur de flux d’objet :
    1. la réception des premiers objets du premier flux d’objets ;
    2. le stockage des premiers objets au premier stockage d’objets ; et
    3. la fourniture des premiers objets au premier-à-deuxième moteur de corrélation.
  13. Le procédé de la revendication 10 comprenant par ailleurs, un deuxième moteur de flux d’objets
    1. la réception des deuxièmes objets du deuxième flux d’objet ;
    2. le stockage des deuxièmes objets au deuxième stockage d’objets ; et
    3. la fourniture des deuxièmes objets au deuxième-à-premier moteur de corrélation.
  14. Le procédé de la revendication 10, comprenant par ailleurs, au premier-à-deuxième moteur de stockage, le remplissage ou l’actualisation du premier-à-deuxième stockage de corrélation d’objets sur la base des messages de corrélation reçus par un ou plusieurs de :
    1. le stockage, au premier-à-deuxième stockage de corrélation d’objets, d’une nouvelle première-à-deuxième corrélation indiquée par les messages de corrélation reçus ;
    2. l’ajout, au premier-à-deuxième stockage de corrélation d’objets, à une première-à-deuxième corrélation existante, d’une première-à-deuxième corrélation supplémentaire indiquée par les messages de corrélation reçus ; et
    3. le remplacement, au premier-à-deuxième stockage de corrélation d’objets, de la première-à-deuxième corrélation existante par une première-à-deuxième corrélation actualisée indiquée par les messages de corrélation reçus.
  15. Le procédé de la revendication 10, comprenant par ailleurs, au deuxième-à-premier moteur de stockage, le remplissage ou l’actualisation du deuxième-à-premier stockage de corrélations d’objets sur la base des messages de corrélation respectifs reçus par un ou plusieurs de :
    1. le stockage, au deuxième-à-premier stockage de corrélation d’objets, d’une nouvelle deuxième-à-première corrélation indiquée par les messages de corrélation reçus ;
    2. l’ajout, au deuxième-à-premier stockage de corrélation d’objets, à une deuxième-à-première corrélation existante, d’une deuxième-à-première corrélation supplémentaire indiquée par les messages de corrélation reçus ; et
    3. le remplacement, au deuxième-à-premier stockage de corrélation d’objets, de la deuxième-à-première corrélation existante par une deuxième-à-première corrélation actualisée indiquée par les messages de corrélation reçus.
  16. Le procédé de la revendication 10, dans
    lequel les premiers objets et les deuxièmes objets comprennent respectivement des enregistrements des différents enregistrements de noms de passagers, données de billet, données de programmation, données d’inventaire, données de gestion de client, données historiques et données de bagages, données d’équipage, données de gestion de vol, données comptables de recettes, données de fidélisation, données d’expérience client et données de relation client.
  17. Le procédé de la revendication 10, comprenant
    par ailleurs :
    1. au premier-à-deuxième moteur de stockage de corrélation, en réponse au remplissage ou à l’actualisation du premier-à-deuxième stockage de corrélation d’objets, la transmission d’une première notification d’événement à un gestionnaire d’événements ; et
    2. au deuxième-à-premier moteur de stockage de corrélation, en réponse au remplissage ou à l’actualisation du deuxième-à-premier stockage de corrélation d’objets, la transmission d’une deuxième notification d’événement au gestionnaire d’événements.
FR1911906A 2019-10-24 2019-10-24 Système, procédé et appareil pour la corrélation d’objets de données Active FR3102587B1 (fr)

Priority Applications (4)

Application Number Priority Date Filing Date Title
FR1911906A FR3102587B1 (fr) 2019-10-24 2019-10-24 Système, procédé et appareil pour la corrélation d’objets de données
EP20200667.2A EP3812914A1 (fr) 2019-10-24 2020-10-08 Système, procédé et appareil pour la corrélation d' objets de données
US17/071,575 US11416316B2 (en) 2019-10-24 2020-10-15 System, method and apparatus for correlation of data objects
CN202011143406.7A CN112711486A (zh) 2019-10-24 2020-10-23 用于数据对象的相关性的系统、方法和装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1911906 2019-10-24
FR1911906A FR3102587B1 (fr) 2019-10-24 2019-10-24 Système, procédé et appareil pour la corrélation d’objets de données

Publications (2)

Publication Number Publication Date
FR3102587A1 true FR3102587A1 (fr) 2021-04-30
FR3102587B1 FR3102587B1 (fr) 2023-04-07

Family

ID=71094397

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1911906A Active FR3102587B1 (fr) 2019-10-24 2019-10-24 Système, procédé et appareil pour la corrélation d’objets de données

Country Status (4)

Country Link
US (1) US11416316B2 (fr)
EP (1) EP3812914A1 (fr)
CN (1) CN112711486A (fr)
FR (1) FR3102587B1 (fr)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2500832A1 (fr) * 2011-03-15 2012-09-19 Amadeus S.A.S. Procédé et système pour un mécanisme de synchronisation dans un système de réservation de serveurs multiples
WO2015094004A1 (fr) * 2013-12-16 2015-06-25 Siemens Aktiengesellschaft Dispositif informatique pour la détection de corrélations dans des données
AU2015201818A1 (en) * 2014-04-11 2015-10-29 Amadeus S.A.S System and method for generating an electronic miscellaneous document
US20160147622A1 (en) * 2014-11-24 2016-05-26 Microsoft Technology Licensing, Llc Enhanced error detection in data synchronization operations
WO2016168726A1 (fr) * 2015-04-16 2016-10-20 Google Inc. Systèmes et procédés de notification aux utilisateurs de changements apportés à des fichiers dans des systèmes de stockage de fichiers en nuage
US9973374B1 (en) * 2013-11-07 2018-05-15 Cole Asher Ratias Systems and methods for synchronizing content and information on multiple computing devices
US20180150477A1 (en) * 2016-11-28 2018-05-31 Open Text Sa Ulc System and method for content synchronization

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2500848A1 (fr) * 2011-03-15 2012-09-19 Amadeus S.A.S. Procédé et système pour la gestion centralisée de contexte de réservation dans un système de réservation de serveurs multiples
US20140200932A1 (en) * 2013-01-11 2014-07-17 Amadeus S.A.S. Method and computer implemented system providing automatic electronic miscellaneous document reconciliation
US10614048B2 (en) * 2013-09-20 2020-04-07 Oracle International Corporation Techniques for correlating data in a repository system
WO2018176215A1 (fr) * 2017-03-28 2018-10-04 Oracle International Corporation Systèmes et procédés permettant de fournir de manière intelligente des informations de support au moyen d'un apprentissage automatique

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2500832A1 (fr) * 2011-03-15 2012-09-19 Amadeus S.A.S. Procédé et système pour un mécanisme de synchronisation dans un système de réservation de serveurs multiples
US9973374B1 (en) * 2013-11-07 2018-05-15 Cole Asher Ratias Systems and methods for synchronizing content and information on multiple computing devices
WO2015094004A1 (fr) * 2013-12-16 2015-06-25 Siemens Aktiengesellschaft Dispositif informatique pour la détection de corrélations dans des données
AU2015201818A1 (en) * 2014-04-11 2015-10-29 Amadeus S.A.S System and method for generating an electronic miscellaneous document
US20160147622A1 (en) * 2014-11-24 2016-05-26 Microsoft Technology Licensing, Llc Enhanced error detection in data synchronization operations
WO2016168726A1 (fr) * 2015-04-16 2016-10-20 Google Inc. Systèmes et procédés de notification aux utilisateurs de changements apportés à des fichiers dans des systèmes de stockage de fichiers en nuage
US20180150477A1 (en) * 2016-11-28 2018-05-31 Open Text Sa Ulc System and method for content synchronization

Also Published As

Publication number Publication date
US11416316B2 (en) 2022-08-16
FR3102587B1 (fr) 2023-04-07
US20210124629A1 (en) 2021-04-29
EP3812914A1 (fr) 2021-04-28
CN112711486A (zh) 2021-04-27

Similar Documents

Publication Publication Date Title
US10754846B2 (en) Age-based policies for determining database cache hits
US11520770B2 (en) System and method for providing high availability data
US20190229939A1 (en) Communication Gateway Services in a Networked Message Distribution System
US10021202B1 (en) Pushed based real-time analytics system
CN103051667B (zh) 向多个目标分发多源推送通知
US20110161284A1 (en) Workflow systems and methods for facilitating resolution of data integration conflicts
US20100332451A1 (en) System and method for providing high availability data
US11954125B2 (en) Partitioned backing store implemented in a distributed database
FR3099613A1 (fr) Systèmes d’apprentissage automatiques et procédés pour le placement de données dans le stockage distribué
US11915335B2 (en) System and method for ridesharing
US20160117617A1 (en) Using preferential status indicators for alternative flight recommendations
US20190379753A1 (en) Intelligently delivering notifications including summary of followed content and related content
US8819175B2 (en) Medical-information management system and medical-information management method
US20180012161A1 (en) System and method for optimizing utilization of a population of underutilized physical facilities such as tourist facilities
EP2610788A1 (fr) Moteur á déplacement sans interruption et procédé associé
US10997206B2 (en) Subscription-based change data capture mechanism using database triggers
FR3102587A1 (fr) Système, procédé et appareil pour la corrélation d’objets de données
US9432218B2 (en) Secure message delivery to a transient recipient in a routed network
US9524312B2 (en) Prioritized, incremental data retrieval from a database, with an event listener
US20200272953A1 (en) Using a status centric view for alternative recommendations
US20180089681A1 (en) System and method for compliance screening
CN117972096B (zh) 一种社交平台互动消息的处理方法及系统
US20230273915A1 (en) Data conflict resolution in periodically offline systems
US20210286779A1 (en) Asynchronous processing of large-scale data in a cloud computing environment
FR3099619A1 (fr) Dispositif, système et procédé pour la synchronisation, basée sur un mode, d’enregistrements de données

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20210430

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5