CN112711486A - 用于数据对象的相关性的***、方法和装置 - Google Patents

用于数据对象的相关性的***、方法和装置 Download PDF

Info

Publication number
CN112711486A
CN112711486A CN202011143406.7A CN202011143406A CN112711486A CN 112711486 A CN112711486 A CN 112711486A CN 202011143406 A CN202011143406 A CN 202011143406A CN 112711486 A CN112711486 A CN 112711486A
Authority
CN
China
Prior art keywords
correlation
storage
correlations
data
message
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011143406.7A
Other languages
English (en)
Inventor
S·布奇特
J-S·帕斯阔里
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
Publication of CN112711486A publication Critical patent/CN112711486A/zh
Pending legal-status Critical Current

Links

Images

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

本公开涉及用于数据对象的相关性的***、方法和装置。第一至第二相关性引擎确定来自第一对象馈源的第一对象与来自第二对象存储装置的第二对象之间的相关性,并生成指示针对第一至第二对象方向和第二至第一对象方向的相关性的第一相关性消息。第二至第一相关性引擎确定来自第二对象馈源的第二对象与来自第一对象存储装置的第一对象之间的相应相关性,并生成指示针对第二至第一对象方向和第一至第二对象方向的相应相关性的第二相关性消息。第一至第二相关性存储引擎接收针对第一至第二对象方向的第一和第二相关性消息,并基于接收到的消息来更新第一至第二相关性存储装置。

Description

用于数据对象的相关性的***、方法和装置
技术领域
本说明书总体涉及数据对象处理,并且具体地涉及用于检测数据对象之间的相关性的***、方法和装置。
背景技术
某些计算***介于各种实体之间,例如提供表示各种类型的数据对象的输入数据的其他计算***。上述数据对象之间的相关性可能需要被追踪,以供***中的其他实体进行后续操作。中介计算***可以检测以上相关性,但是影响相关性检测的指示对数据对象的更新的消息可能在不可预测的时间并且以不可预测的顺序被接收。这可能导致检测到不正确的相关性,从而需要手动干预来校正或者,如果未校正的话,则导致不正确的***行为。
发明内容
本说明书的一方面提供了一种用于数据对象的相关性的***,该***包括:(i)第一至第二相关性引擎,其被配置为:确定经由第一对象馈源接收的第一对象与存储在第二对象存储装置处的第二对象之间的相关性;以及生成第一相关性消息,其既指示第一至第二对象方向的相关性,也指示第二至第一对象方向的相关性;(ii)第二至第一相关性引擎,其被配置为:确定经由第二对象馈源接收的第二对象与存储在第一对象存储装置处的第一对象之间的相应相关性;以及生成第二相关性消息,其既指示所述第二至第一对象方向的相应相关性,也指示所述第一至第二对象方向的相应相关性;(iii)第一至第二相关性存储引擎,其被配置为:接收针对所述第一至第二对象方向的所述第一相关性消息和所述第二相关性消息;以及基于接收到的相关性消息,对第一至第二对象相关性存储装置进行填充和更新中的一个或多个;以及(iv)第二至第一相关性存储引擎,其被配置为:接收针对所述第二至第一对象方向的所述第一相关性消息和所述第二相关性消息;以及基于相应接收到的相关性消息,对第二至第一对象相关性存储装置进行填充和更新中的一个或多个。
第一至第二存储引擎还可以被配置为,响应于将更新的第一至第二对象相关性存储在所述第一至第二对象相关性存储装置处:将移除所述第二至第一对象相关性存储装置处现有的第二至第一对象相关性的命令发送到所述第二至第一存储引擎,所述现有的第二至第一对象相关性对应于由所述更新的第一至第二对象相关性进行移除和更新中的一个或多个的第一至第二对象相关性。
第二至第一存储引擎还可以被配置为,响应于在所述第二至第一对象相关性存储装置处存储更新的第二至第一对象相关性:将移除所述第一至第二对象相关性存储装置处现有的第一至第二对象相关性的命令发送到所述第一至第二存储引擎,所述现有的第一至第二对象相关性对应于由所述更新的第二至第一对象相关性进行移除和更新中的一个或多个的第二至第一对象相关性。
该***还包括:第一对象馈送引擎,其被配置为:从所述第一对象馈源接收所述第一对象;将所述第一对象存储在所述第一对象存储装置处;以及将所述第一对象提供到所述第一至第二相关性引擎。
该***还包括:第二对象馈送引擎,其被配置为:从所述第二对象馈源接收所述第二对象;将所述第二对象存储在所述第二对象存储装置处;以及将所述第二对象提供到所述第二至第一相关性引擎。
第一至第二存储引擎还被配置为基于所述接收到的相关性消息,通过以下一项或多项对所述第一至第二对象相关性存储装置进行填充和更新中的一个或多个:在所述第一至第二对象相关性存储装置处,存储由所述接收到的相关性消息指示的新的第一至第二相关性;在所述第一至第二对象相关性存储装置处,将由所述接收到的相关性消息指示的附加的第一至第二相关性添加到现有的第一至第二相关性;以及在所述第一至第二对象相关性存储装置处,用由所述接收到的相关性消息指示的更新的第一至第二相关性替换所述现有的第一至第二相关性。
第二至第一存储引擎还被配置为基于所述相应接收到的相关性消息通过以下一项或多项对所述第二至第一对象相关性存储装置进行填充和更新中的一个或多个:在所述第二至第一对象相关性存储装置处,存储由所述相应接收到的相关性消息指示的新的第二至第一相关性;在所述第二至第一对象相关性存储装置处,将由所述相应接收到的相关性消息指示的附加的第二至第一相关性添加到现有的第二至第一相关性;以及在所述第二至第一对象相关性存储装置处,用由所述相应接收到的相关性消息指示的更新的第二至第一相关性替换所述现有的第二至第一相关性。
第一对象和所述第二对象分别包括不同的以下各项:乘客姓名记录、票据数据、时间表数据、库存数据、客户管理数据、行李和历史数据、机组人员数据、航班管理数据、收入核算数据、忠诚度数据、客户体验数据和客户关系数据。
第一至第二相关性存储引擎还被配置为:响应于填充或更新所述第一至第二对象相关性存储装置,向事件处理器发送第一事件通知;以及其中所述第二至第一相关性存储引擎还被配置为:响应于填充或更新所述第二至第一对象相关性存储装置,向所述事件处理器发送第二事件通知。
本说明书的另一方面提供了一种用于数据对象的相关性的方法,所述方法包括:在第一至第二相关性引擎处:确定经由第一对象馈源接收的第一对象与存储在第二对象存储装置处的第二对象之间的相关性;以及生成第一相关性消息,其既指示第一至第二对象方向的相关性,也指示第二至第一对象方向的相关性;在第二至第一相关性引擎处:确定经由第二对象馈源接收的第二对象与存储在第一对象存储装置处的第一对象之间的相应相关性;以及生成第二相关性消息,其既指示所述第二至第一对象方向的相应相关性,也指示所述第一至第二对象方向的相应相关性;在第一至第二相关性存储引擎处:接收针对所述第一至第二对象方向的所述第一相关性消息和所述第二相关性消息;以及基于接收到的相关性消息,对第一至第二对象相关性存储装置进行填充和更新中的一个或多个;以及在第二至第一相关性存储引擎处:接收针对所述第二至第一对象方向的所述第一相关性消息和所述第二相关性消息;以及基于相应接收到的相关性消息,对第二至第一对象相关性存储装置进行填充和更新中的一个或多个。
该方法还包括,在所述第一至第二存储引擎处:响应于将更新的第一至第二对象相关性存储在所述第一至第二对象相关性存储装置处:将移除所述第二至第一对象相关性存储装置处现有的第二至第一对象相关性的命令发送到所述第二至第一存储引擎,所述现有的第二至第一对象相关性对应于由所述更新的第一至第二对象相关性进行移除和更新中的一个或多个的第一至第二对象相关性。
该方法还包括,在所述第二至第一存储引擎处:响应于在所述第二至第一对象相关性存储装置处存储更新的第二至第一对象相关性:将移除所述第一至第二对象相关性存储装置处现有的第一至第二对象相关性的命令发送到所述第一至第二存储引擎,所述现有的第一至第二对象相关性对应于由所述更新的第二至第一对象相关性进行移除和更新中的一个或多个的第二至第一对象相关性。
该方法还包括,在第一对象馈送引擎处:从所述第一对象馈源接收所述第一对象;将所述第一对象存储在所述第一对象存储装置处;以及将所述第一对象提供到所述第一至第二相关性引擎。
该方法还包括,在第二对象馈送引擎处:从所述第二对象馈源接收所述第二对象;将所述第二对象存储在所述第二对象存储装置处;以及将所述第二对象提供到所述第二至第一相关性引擎。
该方法还包括在所述第一至第二存储引擎处基于所述接收到的相关性消息通过以下一项或多项对所述第一至第二对象相关性存储装置进行填充或更新:在所述第一至第二对象相关性存储装置处,存储由所述接收到的相关性消息指示的新的第一至第二相关性;在所述第一至第二对象相关性存储装置处,将由所述接收到的相关性消息指示的附加的第一至第二相关性添加到现有的第一至第二相关性;以及在所述第一至第二对象相关性存储装置处,用由所述接收到的相关性消息指示的更新的第一至第二相关性替换所述现有的第一至第二相关性。
该方法还包括在所述第二至第一存储引擎处基于所述相应接收到的相关性消息通过以下一项或多项对所述第二至第一对象相关性存储装置进行填充或更新:在所述第二至第一对象相关性存储装置处,存储由所述相应接收到的相关性消息指示的新的第二至第一相关性;在所述第二至第一对象相关性存储装置处,将由所述相应接收到的相关性消息指示的附加的第二至第一相关性添加到现有的第二至第一相关性;以及在所述第二至第一对象相关性存储装置处,用由所述相应接收到的相关性消息指示的更新的第二至第一相关性替换所述现有的第二至第一相关性。
第一对象和所述第二对象分别包括不同的以下各项:乘客姓名记录、票据数据、时间表数据、库存数据、客户管理数据、行李和历史数据、机组人员数据、航班管理数据、收入核算数据、忠诚度数据、客户体验数据和客户关系数据。
该方法还包括:在所述第一至第二相关性存储引擎处,响应于填充或更新所述第一至第二对象相关性存储装置,向事件处理器发送第一事件通知;以及在所述第二至第一相关性存储引擎处,响应于填充或更新所述第二至第一对象相关性存储装置,向所述事件处理器发送第二事件通知。
附图说明
参考以下附图描述实施例,其中:
图1描绘了用于数据对象相关性的***;
图2描绘了图1的相关性子***的某些组件;
图3描绘了在图1的***中更新数据对象存储库和检测对象相关性的方法;
图4A描绘了图3的方法的示例执行;
图4B描绘了图3的方法的示例执行;
图4C描绘了图3的方法的示例执行;
图4D描绘了图3的方法的示例执行;
图5描绘了从图3的方法的执行而产生的处理相关性消息的方法;
图6A描绘了图3和图5的方法的示例执行;
图6B描绘了图3和图5的方法的示例执行;
图7A描绘了图3和图5的方法的示例执行;
图7B描绘了图3和图5的方法的示例执行;
图8A描绘了图3和图5的方法的示例执行;
图8B描绘了图3和图5的方法的示例执行;
图9A描绘了图3和图5的方法的示例执行;
图9B描绘了图3和图5的方法的示例执行。
具体实施方式
图1描绘了用于检测数据对象之间的相关性的***100。***100包括两种不同类型的此类数据对象的至少一个源,也称为数据源。图1中示出了两个示例数据源104-1和104-2(统称为多个数据源104,并且一般称为数据源104;类似的命名法也用于本文的其他组件)。数据源104可以是计算设备或计算设备***。在数据源104处执行的特定活动没有特别限制。为了本讨论的目的,每个数据源104根据用于发起对象生成或更新的任何合适的内部机制来生成和/或更新特定类型的数据对象。
也就是说,数据源104-1生成和/或更新第一类型的数据对象,并且数据源104-2生成和/或更新第二类型的数据对象。为了说明的简单起见而呈现这种布置。在其他示例中,每个数据源104可以生成和/或更新任一类型的数据对象。此外,除了图1所示的那些数据源之外,***100还可以包括其他数据源104。更一般地,***100中的一个或多个数据源104生成和/或更新至少两种类型的数据对象。如在下面的讨论中将显而易见的,***100用于检测和存储成对的数据对象类型之间的相关性。当***100包括用于两种以上类型的数据对象的源时,相关性保持成对的关系,因此可以针对每对重复下面描述的元素和方法步骤。
数据对象可以具有各种各样的数据结构(例如,文件格式),并且可以包含各种各样的数据类型。在下面讨论的示例中,第一类型数据对象是旅客姓名记录(PNR),其包含定义旅行路线的数据。PNR可以包含标识一个或多个旅客的数据,以及定义一个或多个航班、酒店预订、汽车租赁预订等的数据。对于本领域技术人员将显而易见的是,PNR中还可以包含多种其他数据。
在以下示例中讨论的第二类型数据对象是电子票据或e票据。电子票据包含定义购买的旅行服务或产品(例如,航班)的数据。如对于本领域技术人员现在将显而易见的,电子票据和PNR可以包含重叠信息,并且PNR和电子票据之间通常存在相关性。也就是说,给定PNR可以与一个或多个电子票据相关,因为PNR定义了包括电子票据所对应的航班的行程。电子票据进而因此与该PNR相关;也就是说,相关是双向的。PNR和电子票据之间的相关性在于,两个文档与相同的产品或服务相关联。还可以想到各种各样的其他数据对象类型。例如,除了上面提到的电子票据/PNR相关性之外,还可以由***100处理包含航班时刻表数据的数据对象,例如以检测调度数据和PNR数据之间的相关性,和/或以检测调度数据与电子票据数据之间的相关性。
还显而易见的是,PNR和电子票据的创建和更新可以由不同的实体(数据源104)执行。实际上,例如,PNR可以由多方(例如,两个数据源104)来更新,例如旅行社***、航空公司计算***等。
***100的其他组件可以依赖于第一类型数据记录和第二类型数据记录之间(例如,上述PNR和电子票据之间)的上述相关性。在所示的示例中,***100包括事件处理器108,其可以被实现为连接到网络112(数据源104也连接到该网络)的一个或多个计算设备。事件处理器108接收第一类型和第二类型的数据对象之间的相关性的通知以及其他事件的通知(例如,来自数据源104本身和/或来自其他计算设备)。
事件处理器108响应于此类通知,可以基于此类通知执行多种动作中的任何一种。例如,当数据对象是PNR和时间表数据时,事件处理器108可以在检测到发生了航班时间表改变后,向旅行社或直接向旅行者生成通知。时间表改变可以在事件处理器108处以通知的形式从航空公司服务器(未示出)接收,并且可以包括行程标识符(例如,字母数字字符串)以及更新的出发时间或任何其他合适的时间表信息。为了生成适当的通知,事件处理器108需要确定哪些PNR(包含或参考旅客或其代理商的联系信息)与变更后的电子票据相关联。
在其他示例中,事件处理器108可以在接收到包含乘客信息的PNR时,检测乘客的语言要求、可访问性要求等,并基于飞机和机组人员属性(其可以使用电子票据中的数据检索;在其他实施例中,机组人员属性可以被存储在另一类型的数据对象中,其根据本文描述的机制与PNR数据相关)确定是否需要改变飞机设备的人员配备。换句话说,事件处理器108必须知道PNR和电子票据之间的相关性。
由于数据对象的创建和更新的性质,检测PNR和电子票据之间,实际上是第一类型和第二类型的任何数据对象之间,的相关性变得很复杂。具体地,可以在任何时间生成和/或更新第一类型的数据对象和第二类型的数据对象。此外,不必在***100的相关组件处以与生成通知相同的顺序来接收这类更新的通知。此类消息的生成和接收顺序可能会受到以下各项影响:数据源处的事件的定时、对数据对象生成和更新期间在数据源处由多线程或计算资源的任何其他分布(例如,跨多个核心、多个地理位置等)引起的延迟、通知传递中的网络延迟等。
在一些***中,数据对象的相关性由诸如服务器的中央相关性组件执行,该服务器被配置为从两个数据源104接收更新的数据对象。然后,相关性组件尝试发现数据对象之间的相关性。可以将相关性组件实现为在单个线程中处理传入的数据对象更新,但是缩放相关性组件以处理不断增加的数据对象更新量可能会变得过分昂贵。如果分配相关组件以提高可伸缩性,则相关组件可能容易受到各种竞争条件的影响,然而,接收针对数据对象的更新通知的顺序会影响相关性检测的结果。也就是说,因为在分布式***中接收给定的一组数据对象更新通知的顺序通常是相关性组件无法预测的,所以某些检测到的相关性可能不正确,从而导致不正确的***行为(例如,在事件处理器108处)。另外,如上所述,在集中式相关性组件处执行相关性检测可能导致大量的计算需求,特别是当其他类型的数据对象必须相关时(即,超出上述两个示例)。
与如上所述的单个、集中式相关性组件相反,***100包括连接到网络112的一组其他组件,其检测不同类型的数据对象之间的相关性,并将相关性通知事件处理器108。更具体地,尽管数据对象之间的相关性是双向的(也就是说,如果给定PNR与给定电子票据相关,则根据定义电子票据与PNR相关),***100的其他组件检测到单独的、单向相关性,其共同代表数据对象之间的双向相关性。这些组件还实现某些功能以使***100抵御某些竞争条件,使得随着时间的推移,将检测正确的相关性,而与接收数据对象更新通知的顺序和时间无关。
在讨论***100的其他组件之前,将理解,在下面的讨论中,使用PNR和电子票据作为示例数据对象类型仅是出于说明性目的。如在下面的讨论中将显而易见的,***100可以被部署为检测多种类型中的任何一种的数据对象之间的相关性。数据对象类型的其他示例包括包含以下任何一项或多项的对象:库存数据、客户管理数据、行李和历史数据、机组人员数据、航班管理数据、收入核算数据、忠诚度数据、客户体验数据和客户关系数据。
上面提到的***100的其他组件包括第一存储节点116-1和第二存储节点116-2,它们也可以称为对象馈送引擎。存储节点116从定义新的或更新的数据对象的数据源104接收原始数据,将任何所需的解析、变换等应用于原始数据,并将解析的数据存储在相应数据对象存储库120-1和120中。换句话说,存储节点116负责维护数据对象的当前版本。特别地,存储节点116-1维护第一类型的数据对象的当前版本(例如,PNR),并且存储节点116-2维护第二类型的数据对象的当前版本(例如,电子票据)。当在存储库120中更新数据对象时,相应的存储节点116生成通知以供经由网络112向相关性子***124发送。子***124在图1中示出为被实现在单个计算设备(例如,服务器或实现一个逻辑服务器的物理服务器的集合)上,但是如在下面的讨论中将显而易见的,子***124的某些组件是模块化的,因此可以被部署为独立的计算设备。
子***124包括两个不同的相关性存储库128。第一存储库128-F2S包含“第一至第二”相关性。也就是说,在数据记录包括PNR和电子票据的示例中,存储库128-F2S针对每个PNR包含指示,其中电子票据与该PNR相关。存储库128-S2F包含“第二至第一”相关性,在本示例中,这意味着针对每个电子票据,哪些PNR与该电子票据相关。因此,如上所述,子***124不是追踪单个存储库中的双向相关性,而是追踪两组单向相关性。子***124的子组件彼此交互以维护存储库128-F2S和128-S2F,并确保存储库128-F2S和128-S2F之间的协议。也就是说,子***124在存储库128之间提供最终的一致性,并且当达到这种一致性时,提供正确的相关性。
下面的讨论围绕如图1所示的***100。然而,在其他实施例中,数据对象类型的数目可以大于两个,并且因此要追踪的相关性数目也可以更高。在这样的实施例中,数据源104的数量可以改变,存储节点116的数量也可以改变。针对要相关的每对数据对象,可以部署不同的子***124。因此,例如,在其中四种类型的数据对象必须全部彼此相关的***中,可以实现子***124的六个实例。
总而言之,数据源104生成原始数据,该原始数据定义对各种类型数据对象的更新。原始数据由存储节点116经由网络112(经由简化路径132示出)获得,其以相关数据对象的当前版本更新存储库120。存储节点116生成对数据对象的改变的通知,以供经由网络112(如经由简化路径136示出)传递至子***124。子***124进而检测数据对象之间的相关性并经由网络112(如经由简化路径140示出)通知事件处理器108,以供后续处理。
转向图2,在讨论由子***124的组件执行以检测数据对象之间的相关性的动作之前,将更详细地描述子***124的某些组件。
如图2所示,子***124包括至少一个处理器200,例如中央处理单元(CPU)等。处理器200与存储器204互连,该存储器204被实现为合适的非暂时性计算机可读介质(例如,非易失性和易失性存储器子***的合适组合,包括以下任意一个或多个:随机存取存储器(RAM)、只读存储器(ROM)、电可擦可编程只读存储器(EEPROM)、闪存、磁性计算机存储器等)。处理器200和存储器204通常包括一个或多个集成电路(IC)。
处理器200还与通信接口208互连,该通信接口208使服务器124能够经由网络112与***100的其他计算设备进行通信。因此,通信接口208包括任何必要的组件(例如,网络接口控制器(NIC)、无线电单元等)以经由网络112进行通信。通信接口208的特定组件是基于网络112的性质选择的。子***124还可以包括连接到处理器200的输入和输出设备,例如键盘、鼠标、显示器等(未示出)。
上面提到的子***124的组件可以部署在单个外壳中,也可以以分布式格式部署。因此,在一些示例中,子***124包括多个处理器,它们共享存储器204和通信接口208,或者每个具有不同的关联存储器和通信接口。
存储器204存储以上结合图1所提及的存储库128。存储器204还以各种应用的形式存储可由处理器200执行的多个计算机可读编程指令。特别地,存储器204针对每个存储库128存储一组不同的应用。因此,在本示例中,存储器204存储两组应用。每一组包括相关性应用212,其也被称为相关性引擎212或简称为相关器212。每组还包括相关性存储引擎216。在下面的描述中,处理器200,或更一般地子***124,据说被配置为执行特定操作。将理解的是,它们是经由执行(由处理器200)存储在存储器204中的应用的指令而如此配置的。
相关器212基于从存储节点116接收的通知来检测单向相关性,如将在下面更详细地讨论的。在本示例中,相关器212-1检测从PNR到电子票据的相关性(即,哪些电子票据与每个PNR相关),并且相关器212-2检测从电子票据到PNR的相关性(即,哪些PNR是与每个电子票据相关)。相关器212在检测到相关性时,将相关性消息发送到相关性存储引擎216。如将在下面看到的,每个相关器212可以生成相关性消息以发送到其“本地”相关性存储引擎216,并发送到“远程”或“配对”的相关性存储引擎216。也就是说,相关器212-1可以生成相关性消息以传递给相关性存储引擎216-1和相关性存储引擎216-2。
相关性存储引擎216进而处理接收到的相关性消息,以更新相关性存储库128。特别地,相关性存储引擎216-1更新存储库128-F2S,而相关性存储引擎216-2更新存储库128-S2F。在某些条件下相关性存储引擎216还可以彼此直接交换消息,以缓解由前面提到的竞争条件导致的过时相关性的存储。另外,相关性存储引擎216生成事件通知以传递到事件处理器108,例如经由通信接口208。
现在转向图3,将更详细地描述***100的操作的某些方面。具体地,图3示出了更新存储库120并检测数据对象之间的相关性的方法300。将结合其在***100内的执行来描述方法300。特别地,方法300的某些框在存储节点116处执行,并且方法300的其他框在子***124处执行,经由相关器212的执行。
包括框305至315的方法300的第一部分由存储节点116执行。也就是说,每个存储节点116执行框305至315的独立实例来处理从数据源接收的任何数据。此外,作为从数据源104接收到多个通知的结果,每个存储节点116可以并行地执行框305-315的多个实例(尽管不一定同时开始和结束)。
在框305处,存储节点116从数据源104接收定义新数据对象或对现有数据对象的更新的原始数据。例如简要地参考图4A,示出了框305的两个实例,其中存储节点116-1和116-2接收包含定义新的数据对象的原始数据的相应消息400-1和400-2(例如,分别来自数据源104-1和104-2)。可以同时或在不同时间接收消息400-1。更一般地,在消息400-1和400-2的接收时间之间不需要任何因果关系。尽管在存储节点116处接收到的数据在上面被称为原始数据,但是在存储节点116处被接收之前,它也可以被格式化以符合任何合适的数据模型。
在框310处,每个存储节点116基于在框305处接收到的原始数据来更新对应的对象存储库120。例如,可以对原始数据进行解析以检测任何合适的预定数据结构;可以搜索相应的存储库120以确定原始数据是表示新数据对象还是对现有数据对象的更新等。下表1说明了在每个存储引擎116处执行框305和310之前和之后的存储库120-1和120-2的示例内容。
存储库120的内容
[表1]
先前内容 当前内容
存储库120-1 -- PNR-A1
存储库120-2 -- TKT-X1
在以上示出的示例中,假设存储库120最初是空的。消息400-1定义了新的PNR,被称为PNR-A1(意味着PNR-A的第一版本)。消息400-2定义了新的电子票据,被称为TKT-X1(意味着TKT-X的第一版本)。
在框315处,响应于更新相应的存储库120,每个存储节点116将通知发送到子***124,具体地发送到相应的相关器212。因此,如图4B所示,存储节点116-1向相关器212-1发送通知404-1,并且存储节点116-2向相关器212-2发送通知404-2。通知404可以经由任何合适的机制(例如,针对每个相关器212的队列,其也可以称为数据对象馈源)来传递。经由框310的执行,通知404可以包含存储在存储库120中的对象中的一些或全部数据。
返回图3,方法300的其余框由相关器212执行。如以上结合存储节点116所述,每个相关器212执行框320至340的独立实例,并且这种实例不需要在时间上链接。在框320,每个相关器212接收以上结合框315提及的通知404。在框325,相关器212从成对的对象存储库120(与本地存储库区分开)请求数据。也就是说,如图4C所示,相关器212-1通过向存储节点116-2发送请求408-1来从存储库120-2请求数据,并且相关器212-2通过向存储节点116-1发送请求408-2从存储库120-1请求数据。
请求408的目的是发现配对的存储库120是否包含与在框320接收的消息中定义的数据对象相关的数据对象。因此,相关器212-1试图发现存储库120-2是否包含与PNR-A1相关的电子票据数据对象,并且相关器212-2试图发现存储库120-1是否包含与TKT-X1相关的PNR数据对象。不特别限制请求408的性质,并且相关器212可以执行多种操作中的任何一种来检测相关性。这样的操作的示例可以是在配对的存储库120中查询包含预期在两种类型的数据记录中都存在的标识符的记录。然而,对于某些类型的数据对象,通用标识符可能不存在于要相关的数据对象中,因此相关性是更为复杂的过程。相关性可以涉及例如从每个数据记录中检索标识符集合(没有一个标识符必须明确地出现在另一数据记录中)以及各种相关性算法的应用。
返回图3,在从配对的存储库120中检索数据并检测其中的相关性(如果有的话)之后,相关器212进行到框330。在框330,相关器212确定在框325是否检测到任何相关性。在本示例中,假设相关器212-1在框325处确定电子票据TKT-X1与PNR-A1相关,并且相关器212-2在框325处确定PNR PNR-A1与TKT-X1相关。因此,在框330处的确定对于两个相关器212都是肯定的,并且两个相关器212都进行到框335。当在框330处的确定是否定时,绕过框335,并且相关器212直接进行到框340。
在框335处,每个相关器212在框325处检测到相关性时,向配对的相关性存储引擎216(即,“远程”相关性存储引擎216)发送消息,以通知配对的相关性存储引擎216在框325处检测到的相关性的逆。如上所述,数据对象之间的相关性是双向的,但是子***124将每个双向相关性检测并追踪为两个相关的单向相关性。因此,如果在框325处相关器212-1检测到表示为PNR-A1=>TKT-X1的相关性,则在框335处,相关器212-1将指示表示为TKT-X1=>PNR-A1的相关性的消息发送到相关性存储引擎216-2。同样,如果在框325处相关器212-2检测到表示为TKT-X1=>PNR-A1的相关性,则在框335处,相关器212-2将指示表示为PNR-A1=>TKT-X1的相关性的消息发送到相关性存储引擎216-1。
在框335处发送通知消息之后,相关器212进行到框340,在框340处,每个相关器还向其本地相关性存储引擎216通知在框325处检测到的方向上的相关性。因此,在图4A-4C的示例中,相关器212-1将定义相关型PNR-A1=>TKT-X1的消息发送到相关性存储引擎216-1,并且相关器212-2将定义相关性TKT-X1=>PNR-A1的消息发送到相关性存储引擎216-2。图4D示出了在框335和340处发送的消息。特别地,相关器212-1和212-2将相应的消息412-1和412-2发送到配对的相关性存储引擎216-2和216-1,并且还将相应的消息416-1和416-2发送到本地相关性存储装置216-1和216-2。
在框335处发送的消息被称为部分消息,而在框340处发送的消息被称为完整或完全消息。完整消息516如此命名,是因为每个消息516被期望(不包括相关器212检测相关性失败)为代表应用于相关数据对象的完整单向相关性集合。另一方面,部分消息512如此命名是因为每个部分消息512不一定被期望为代表完整单向相关性集合。作为说明性示例,考虑一种情境,其中存储库120-1包含三个数据对象PNR-A1、PNR-B1和PNR-C1(即,三个不同的PNR),并且其中存储库120-2包含两个数据对象TKT-X1和TKT-Y1。PNR-A1与两个电子票据对象相关,而电子票据TKT-X1仅与PNR-A1相关。当相关器212-2检测到相关性TKT-X1=>PNR-A1时,该相关性表示在电子票据到PNR的方向上的完整相关性集合。然而,由于搜索相关性始于对象TKT-X1,因此其无法检测到PNR-A1与TKT-Y1之间的相关性。因此,相关器212-2生成指示第二至第一方向上的完整相关性集合为TKT-X1=>PNR-A1的消息,和指示第一至第二方向上的部分相关性集合是PNR-A1=>TKT-X1的另一消息。完整消息可以覆写存储在本地存储库128中的所有相关性,而部分消息不会覆写,而是添加到配对存储库128中任何现有的相关性中。
在执行框340之后,相关器212等待来自存储节点116的其他消息。类似地,在执行框315之后,存储节点116等待其他原始数据。
总之,存储节点116接收并处理原始数据以更新数据对象存储库120,并且相关器212从存储节点116接收指示对存储库120的更新的消息。每个相关器212在特定方向上检测相关性,向本地相关性存储引擎216通知该相关性,并且向配对的相关性存储引擎216通知相反的相关性。
现在显而易见的是,由相关器212生成的部分消息和完整消息必须由相关性存储引擎216处理以更新相关性存储库128。现在参考图5,将更详细地讨论相关性存储引擎216的功能,以下也简称为引擎216。图5示出了在相关性存储引擎216处处理相关性消息的方法500。
从上面的讨论将显而易见的是,相关性存储引擎216从本地相关器212和配对或远程的相关器212(以及另一引擎216,下文将看到)接收各种消息。相关器212可以基于已被取代的信息生成此类消息,取决于从存储节点116接收消息的定时。此外,由相关器212生成的消息可能会因多种因素而延迟(例如,网络延时、由分布式处理引入的延时、在实现相关器212的计算设备处的其他计算负荷)。在给定相关性存储引擎216处从给定相关器212接收相关性消息的顺序是可预测的。具体地,子***124被配置为以单调递增的顺序将消息从给定相关器212传递到给定相关性存储引擎216。然而,在给定相关性存储引擎216处从不同的相关器212接收相关性消息的顺序是不可预测的,因此,如下所述,相关性存储引擎216被配置为处理传入的相关性消息以降低这种不可预测性导致在存储库128中存储不正确的相关性的可能性。
如以上结合方法300所述,方法500的不同实例由每个相关性存储引擎216执行。每个引擎216针对接收到的每个相关性消息执行方法500的实例。由引擎216-1响应于接收到完整消息412-1(来自相关器212-1)和部分消息416-2(来自相关器212-2)而执行的方法500的示例执行。
在框505处,引擎216-1接收相关性消息。在本示例中,假设引擎216-1接收到“完整”消息412-1,其指定单向相关性PNR-A1=>TKT-X1(即,在第一至第二方向上)。在框510处,引擎216-1确定消息是否是移除消息。移除消息一种类型的相关性消息,其不是由相关器而是由引擎216本身生成。在后面的示例中将更详细地讨论移除消息的生成和处理。在方法500的当前示例执行中,在框510处的确定是否定的,并且引擎216-1进行到框515。
在框515处,引擎216-1确定消息是完整消息还是部分消息。相关性消息的类型可以由消息的来源隐式指示。例如,当在框505处接收到的相关性消息是从本地相关器212(即,在引擎216-1的情况下为相关器212-1)接收时,该消息是完整消息。另一方面,当在框505处接收到的相关性消息是从配对的相关器(即,在引擎216-1的情况下为相关器212-2)接收时,该消息是配对的消息。在其他示例中,相关性消息可以包含其类型的显式指示,例如标志、标头字段等。
在本示例中,消息412-1是完整消息,并且引擎216-1因此前进到框517。在框517处,引擎216-1确定相关性消息是否与相关数据记录的当前版本有关。例如,存储库128可以包括针对其中表示的每个数据记录的版本标识符。如果在框505处接收到的相关性消息与等于或大于(即,比该版本更新)存储库128中所表示的版本的数据记录的版本有关,则在框517处的确定是肯定的。在本示例中,假定存储库128最初是空的,因此在框517处的确定是肯定的。在本文的后续示例中将讨论框517处的否定确定的结果。
在框520处,引擎216-1确定存储库128-F2S是否与由消息412-1所指示的相关性匹配。在完整相关性消息的情况下,在框520处的确定是存储库128-F2S是否包含与相关性消息的内容完全匹配的相关性数据对象(即,该示例中的PNR-A1)的记录。在本示例中,假设存储库128-F2S最初是空的,因此在框520处的确定是否定的。引擎216-1前进到框525,在此处引擎216-1将记录***到存储库128-F2S中(即,填充存储库128-F2S),或者如果存储库128-F2S已经包含针对相关数据对象的记录,则覆写该记录。
因此,在本示例中,引擎216-1在存储库128-F2S中创建记录,如下表2所示。
存储库128-F2S
[表2]
对象ID (多个)相关性
PNR-A PNR-A1=>TKT-X1
如上面看到的,存储库128-F2S包含针对数据对象PNR-A的一条记录,其包含由引擎216-1检测到的任何相关性。相关性与版本标识符一起存储在记录中。在本示例中,针对两个数据对象的版本标识符均为“1”。
在框525处***记录之后,引擎216-1在框530处确定在框525处的操作是否涉及任何相关性的删除。将显而易见的是,响应于完整相关性消息而覆写记录可以导致一个或多个先前的相关性被移除。当这种情况发生时,在框530处的确定是肯定的。然而,在当前示例中,无需覆写,因为存储库128-F2S以前是空的。因此,在框530处的确定是否定的,并且引擎216-1进行到框535。在框535处,引擎216-1生成事件通知以供发送到图1中所示的事件处理器108。事件通知包含指示添加到存储库128-F2S的相关性的数据。因此,事件通知的内容可以与在框505处接收到的相关性消息相似,尽管在其他示例中,如下面将看到的,针对存储库128-F2S的更复杂的更新可能不是这种情况。
现在将讨论方法500的另一示例执行,针对由引擎216-1对部分消息416-2处理。消息416-2定义单向相关性PNR-A1=>TKT-X1,这是由相关器212-2检测到的相关性的逆,如上面结合图4A-4D所讨论的。
在框505处接收到消息416-2之后,在框510处的确定是否定的。在框515处的确定是消息416-2是部分消息。因此,引擎216-2进行到框540,在此处执行与框517类似的确定。在框540处的确定是肯定的,因为消息416-2与存储库128-F2S中当前表示的PNR-A的相同版本有关。因此,引擎216-2进行到框545以确定存储库128-F2S是否在消息416-2中包含相关性。在框545处的确定与在框520处的确定不同,因为在框545处不需要精确匹配。例如,如果存储库128-F2S包含定义来自传入消息的相关性以及针对同一数据对象的另一相关性的记录,则在框545处的确定是肯定的。
在本示例中,在框545处的确定是肯定的,因为存储库128-F2S(如表2所示)已经包含由消息416-2指示的相关性。因此,引擎216-2在框550处丢弃消息416-2,并且方法500的执行结束。也就是说,在框550之后没有事件通知被生成。在其他实施例中,引擎216-2仍然可以发送事件通知,并且下游的事件处理器108可以被配置为检测到没有发生改变。在框545处的确定为否定的事件中,在框555处将不是通过覆写与PNR-A有关的记录,而是通过将来自消息416-2的相关性添加至针对PNR-A的记录中的任何现有相关性来更新存储库128-F2S。在这样的添加之后,将在框535处生成事件通知,如上所述。
现在将结合图6A-9B讨论方法300和500的更复杂的示例实现。最初(即,在下面讨论的方法500的执行之前),假设存储库120和128都是空的。下面的示例涉及三个数据对象,PNR-A、PNR-B和TKT-X,并且还涉及TKT-X的两个版本。存储库128的预期最终状态将反映以下相关性:PNR-A1与任何TKT对象不相关;并且PNR-B1与TKT-X2相关(并且根据定义,TKT-X2与PNR-B1相关)。
参考图6A,在存储节点116处接收包含定义相应数据对象的原始数据的四个消息600。特别地,在存储引擎116-2处接收定义数据对象TKT-X1的第一消息600-1。在存储节点116-1处接收第二消息600-2和第三消息600-3,其定义数据对象PNR-A1和PNR-B1。然后在存储节点116-2处接收第四消息600-4,其定义数据对象TKT-X的更新版本,被称为TKT-X2。经由框305、310和315的相应执行,存储节点116更新存储库120并生成更新通知。在存储节点116中示出了更新通知604-1、604-2、604-3和604-4,但是由于各种原因,它们的发送可能被延迟。因此,发送的定时以及发送的顺序可能会有所不同。特别要注意的是,在消耗(例如,要发送)任何消息604之前,更新存储库120-2以用TKT-X2替换数据对象TKT-X1。换句话说,由于消息604-1与不再出现在存储库120-2中的TKT-X的版本有关,因此消息604-1在其发送时将过时。表3示出了在接收消息600和生成(但不发送)消息604之后的存储库120的内容。
存储库120
[表3]
存储库 数据对象
120-1 PNR-A1;PNR-B1
120-2 TKT-X2
如上所示,存储库120-2仅包含数据对象TKT-X的最新版本。
参考图6B,消息604的发送开始。在本示例中,消息604-1是要发送的第一消息。在相关器212-2处接收到消息604-1时(在方法300的框320处),相关器212-2(在方法300的框325处)从存储库120-1检索数据,检测对象TKT-X1与对象PNR-A1相关,并在框335和340处生成两个相关性消息:用于发送到引擎216-2的完整消息608-1;以及用于发送到引擎216-1的部分消息608-2。然而,与先前讨论的消息一样,消息608不会立即被消耗/发送。
转向图7A,然后将消息604-3传递到相关器212-1。相关器212-1基于来自存储库120-2的数据,检测到PNR-B1与TKT-X2相关,并生成两个相关性消息608-3和608-4(即,经由框335和340)。消息608-3是指示由相关器212-1检测到的方向上的相关性的完整消息,并且消息608-4是指示由相关器212-1检测到的相反方向上的相关性的部分消息。在生成消息608-3和608-4之后,消息608-4被传递到引擎216-2,而消息608-3的传递被延迟。
在引擎216-2处,在接收到消息608-4时(框505),在框505处的确定是否定的,并且引擎216-2经由框515进行到框540。在框540处的确定是肯定的,并且在框545处的确定是否定的(因为存储库128-S2F是空的)。因此,存储库128-S2F被更新为包含相关性TKT-X2=>PNR-B1(框555),并且事件被发送到包含相同相关性的事件处理器(框535)。
接下来参考图7B,消息604-2然后被传递到相关器212-1。经由框325的执行,相关器212-1咨询存储库120-2,并确定PNR-A1与任何电子票据不相关。因此,在框330处的确定是否定的,并且框335被绕过。因此,没有生成部分消息,但是在相关器212-1处生成完整消息608-5,其指示针对PNR-A1的相关性的空集合。在本示例中,消息608-5被立即传递到引擎216-1。引擎216-1经由框505、510、515、517、520、525、530和535,利用来自消息608-5的相关性来更新存储库128-F2S。
转向图8A,先前生成的消息608-1然后被传递到引擎216-2(框505)。引擎216-2在框510处做出否定确定,然后进行到框517。在框517处,该确定为否定,因为消息608-1与对象TKT-X的过时版本(即TKT-X1,而较新版本的TKT-X2已经存在)有关。因此,引擎216-2进行到方法500的框560,在此处消息608-1被丢弃(即,抛弃)。然后,在框565处,引擎216-2生成移除命令,也被称为移除消息612-1,以供发送到引擎216-1。移除消息反映了以下事实:与被发现已过时的完整消息608-1一起,还生成部分消息608-2。因此,消息608-2还包含过时的相关性,其将被发送到引擎216-1。然后,在消息608-2被引擎216-1接受(即写入到存储库128-F2S中)的事件中,移除消息612-1用于逆转由部分消息608-2传达的过时信息。
转向图8B,部分消息608-2被传递到引擎216-1。引擎216-1经由框505、510、515、540(其中确定是肯定的,因为消息608-2涉及与存储库128-F2S相同的PNR-A的版本)、545和555,在存储库128-F2S中***相关性PNR-A1=>TKT-X1。对于本领域技术人员将显而易见的是,***到图8B中的存储库128-F2S中的相关性是不正确的,这是消息608-2的过时性质的结果。上面提到的移除消息612-1用于逆转图8B所示的不正确的更新。同时,引擎216-1还将事件通知发送到事件处理器108,其指示从PNRA-1到TKT-X1的相关性。
参考图9A,消息608-3接下来被传递到引擎216-1。经由框505、510、515、517、520和525,引擎216-1更新存储库128-F2S以包括从PNR-A1到TKT-X1的先前相关性以及从PNR-B1到TKT-X2的相关性。在框535处,还向事件处理器108发送指示PNR-B1到TKT-X2的相关性的事件。
转向图9B,移除消息612-1被传递到引擎216-1。在框510处的确定是肯定的,并且引擎216-1从而进行到框570。在框570处,引擎216-1在存储库128-F2S中搜索在移除消息612-1中定义的相关性匹配,并且如果定位到相关性,则将其删除。存储库128-F2S因此如图9B所示被更新,以再次反映从PNR-A1的正确相关性(即,到无电子票据对象)。
然后,消息604-4被传递到相关器212-2。经由块320至340的另一执行,相关器212-2生成部分消息608-6和完整消息608-7。现在将显而易见的是,消息608-6和608-7对于每个存储库128的内容都是多余的。因此,引擎216-1将在框545处做出肯定确定并丢弃消息608-6。同时,引擎216-2将在框520处做出肯定确定,并丢弃消息608-7。如前所述,引擎216-2还可以生成具有与先前发送的相关性相同的相关性的事件通知,并且事件处理器108可以检测到没有发生改变。
因此,由存储节点116和相关器212执行方法300以维护数据对象并检测双向相关性的单向分量,以及由引擎216执行方法500使子***124能够到达正确的相关性集合,即使在消息传递时间中存在各种不可预测的延迟的情况下,这种情况导致消息生成和传递乱序,使得某些消息包含不再准确的信息。
还考虑其他机制以用于解决存储库内容与传入消息之间的冲突。例如,在其他实施例中,过时的消息608-1可以被存储在存储库128-S2F中,而不是被丢弃。也就是说,过时的完整消息可以被视为部分消息,并且被添加到存储库128中而不是被丢弃,使得图8A中的存储库128-S2F将包含针对TX的记录,该记录包含两个相关性:TX2=>PB1;TX1=>PA1。在该实现中,接收到完整消息608-7(图9B)将导致该记录被图9所示的正确记录替换。此外,该替换将涉及移除相关性TX1=>PA1。该移除进而导致在框530处的肯定确定,并且在框565处生成移除消息,类似于消息612-1(简言之,在不同时间生成)。
本领域技术人员将认识到,在一些实施例中,可以使用预编程的硬件或固件元件(例如,专用集成电路(ASIC)、电可擦除可编程只读存储器(EEPROM)等)或其他相关组件来实现应用212和216中的任何一个的功能。

Claims (18)

1.一种用于数据对象的相关性的***,所述***包括:
a.第一至第二相关性引擎,其被配置为:
i.确定经由第一对象馈源接收的第一对象与存储在第二对象存储装置处的第二对象之间的相关性;以及
ii.生成第一相关性消息,其既指示第一至第二对象方向的相关性,也指示第二至第一对象方向的相关性;
b.第二至第一相关性引擎,其被配置为:
i.确定经由第二对象馈源接收的第二对象与存储在第一对象存储装置处的第一对象之间的相应相关性;以及
ii.生成第二相关性消息,其既指示所述第二至第一对象方向的相应相关性,也指示所述第一至第二对象方向的相应相关性;
c.第一至第二相关性存储引擎,其被配置为:
i.接收针对所述第一至第二对象方向的所述第一相关性消息和所述第二相关性消息;以及
ii.基于接收到的相关性消息,对第一至第二对象相关性存储装置进行填充和更新中的一个或多个;以及
d.第二至第一相关性存储引擎,其被配置为:
i.接收针对所述第二至第一对象方向的所述第一相关性消息和所述第二相关性消息;以及
ii.基于相应接收到的相关性消息,对第二至第一对象相关性存储装置进行填充和更新中的一个或多个。
2.根据权利要求1所述的***,其中,所述第一至第二存储引擎还被配置为,响应于将更新的第一至第二对象相关性存储在所述第一至第二对象相关性存储装置处:将移除所述第二至第一对象相关性存储装置处现有的第二至第一对象相关性的命令发送到所述第二至第一存储引擎,所述现有的第二至第一对象相关性对应于由所述更新的第一至第二对象相关性进行移除和更新中的一个或多个的第一至第二对象相关性。
3.根据权利要求1所述的***,其中所述第二至第一存储引擎还被配置为,响应于在所述第二至第一对象相关性存储装置处存储更新的第二至第一对象相关性:将移除所述第一至第二对象相关性存储装置处现有的第一至第二对象相关性的命令发送到所述第一至第二存储引擎,所述现有的第一至第二对象相关性对应于由所述更新的第二至第一对象相关性进行移除和更新中的一个或多个的第二至第一对象相关性。
4.根据权利要求1所述的***,还包括:第一对象馈送引擎,其被配置为:
a.从所述第一对象馈源接收所述第一对象;
b.将所述第一对象存储在所述第一对象存储装置处;以及
c.将所述第一对象提供到所述第一至第二相关性引擎。
5.根据权利要求1所述的***,还包括第二对象馈送引擎,其被配置为:
a.从所述第二对象馈源接收所述第二对象;
b.将所述第二对象存储在所述第二对象存储装置处;以及
c.将所述第二对象提供到所述第二至第一相关性引擎。
6.根据权利要求1所述的***,其中,所述第一至第二存储引擎还被配置为基于所述接收到的相关性消息通过以下一项或多项对所述第一至第二对象相关性存储装置进行填充和更新中的一个或多个:
a.在所述第一至第二对象相关性存储装置处,存储由所述接收到的相关性消息指示的新的第一至第二相关性;
b.在所述第一至第二对象相关性存储装置处,将由所述接收到的相关性消息指示的附加的第一至第二相关性添加到现有的第一至第二相关性;以及
c.在所述第一至第二对象相关性存储装置处,用由所述接收到的相关性消息指示的更新的第一至第二相关性替换所述现有的第一至第二相关性。
7.根据权利要求1所述的***,其中,所述第二至第一存储引擎还被配置为基于所述相应接收到的相关性消息通过以下一项或多项对所述第二至第一对象相关性存储装置进行填充和更新中的一个或多个:
a.在所述第二至第一对象相关性存储装置处,存储由所述相应接收到的相关性消息指示的新的第二至第一相关性;
b.在所述第二至第一对象相关性存储装置处,将由所述相应接收到的相关性消息指示的附加的第二至第一相关性添加到现有的第二至第一相关性;以及
c.在所述第二至第一对象相关性存储装置处,用由所述相应接收到的相关性消息指示的更新的第二至第一相关性替换所述现有的第二至第一相关性。
8.根据权利要求1所述的***,其中,所述第一对象和所述第二对象分别包括不同的以下各项:乘客姓名记录、票据数据、时间表数据、库存数据、客户管理数据、行李和历史数据、机组人员数据、航班管理数据、收入核算数据、忠诚度数据、客户体验数据和客户关系数据。
9.根据权利要求1所述的***,其中,所述第一至第二相关性存储引擎还被配置为:响应于填充或更新所述第一至第二对象相关性存储装置,向事件处理器发送第一事件通知;以及其中所述第二至第一相关性存储引擎还被配置为:响应于填充或更新所述第二至第一对象相关性存储装置,向所述事件处理器发送第二事件通知。
10.一种用于数据对象的相关性的方法,所述方法包括:
a.在第一至第二相关性引擎处:
i.确定经由第一对象馈源接收的第一对象与存储在第二对象存储装置处的第二对象之间的相关性;以及
ii.生成第一相关性消息,其既指示第一至第二对象方向的相关性,也指示第二至第一对象方向的相关性;
iii.在第二至第一相关性引擎处:
iv.确定经由第二对象馈源接收的第二对象与存储在第一对象存储装置处的第一对象之间的相应相关性;以及
v.生成第二相关性消息,其既指示所述第二至第一对象方向的相应相关性,也指示所述第一至第二对象方向的相应相关性;
b.在第一至第二相关性存储引擎处:
i.接收针对所述第一至第二对象方向的所述第一相关性消息和所述第二相关性消息;以及
ii.基于接收到的相关性消息,对第一至第二对象相关性存储装置进行填充和更新中的一个或多个;以及
iii.在第二至第一相关性存储引擎处:
iv.接收针对所述第二至第一对象方向的所述第一相关性消息和所述第二相关性消息;以及
v.基于相应接收到的相关性消息,对第二至第一对象相关性存储装置进行填充和更新中的一个或多个。
11.根据权利要求10所述的方法,还包括,在所述第一至第二存储引擎处:响应于将更新的第一至第二对象相关性存储在所述第一至第二对象相关性存储装置处:将移除所述第二至第一对象相关性存储装置处现有的第二至第一对象相关性的命令发送到所述第二至第一存储引擎,所述现有的第二至第一对象相关性对应于由所述更新的第一至第二对象相关性进行移除和更新中的一个或多个的第一至第二对象相关性。
12.根据权利要求10所述的方法,还包括在所述第二至第一存储引擎处:响应于在所述第二至第一对象相关性存储装置处存储更新的第二至第一对象相关性,将移除所述第一至第二对象相关性存储装置处现有的第一至第二对象相关性的命令发送到所述第一至第二存储引擎,所述现有的第一至第二对象相关性对应于由所述更新的第二至第一对象相关性进行移除和更新中的一个或多个的第二至第一对象相关性。
13.根据权利要求10所述的方法,还包括,在第一对象馈送引擎处:
a.从所述第一对象馈源接收所述第一对象;
b.将所述第一对象存储在所述第一对象存储装置处;以及
c.将所述第一对象提供到所述第一至第二相关性引擎。
14.根据权利要求10所述的方法,还包括,在第二对象馈送引擎处:
a.从所述第二对象馈源接收所述第二对象;
b.将所述第二对象存储在所述第二对象存储装置处;以及
c.将所述第二对象提供到所述第二至第一相关性引擎。
15.根据权利要求10所述的方法,还包括在所述第一至第二存储引擎处基于所述接收到的相关性消息通过以下一项或多项对所述第一至第二对象相关性存储装置进行填充或更新:
a.在所述第一至第二对象相关性存储装置处,存储由所述接收到的相关性消息指示的新的第一至第二相关性;
b.在所述第一至第二对象相关性存储装置处,将由所述接收到的相关性消息指示的附加的第一至第二相关性添加到现有的第一至第二相关性;以及
c.在所述第一至第二对象相关性存储装置处,用由所述接收到的相关性消息指示的更新的第一至第二相关性替换所述现有的第一至第二相关性。
16.根据权利要求10所述的方法,还包括在所述第二至第一存储引擎处基于所述相应接收到的相关性消息通过以下一项或多项对所述第二至第一对象相关性存储装置进行填充或更新:
a.在所述第二至第一对象相关性存储装置处,存储由所述相应接收到的相关性消息指示的新的第二至第一相关性;
b.在所述第二至第一对象相关性存储装置处,将由所述相应接收到的相关性消息指示的附加的第二至第一相关性添加到现有的第二至第一相关性;以及
c.在所述第二至第一对象相关性存储装置处,用由所述相应接收到的相关性消息指示的更新的第二至第一相关性替换所述现有的第二至第一相关性。
17.根据权利要求10所述的方法,其中,所述第一对象和所述第二对象分别包括不同的以下各项:乘客姓名记录、票据数据、时间表数据、库存数据、客户管理数据、行李和历史数据、机组人员数据、航班管理数据、收入核算数据、忠诚度数据、客户体验数据和客户关系数据。
18.根据权利要求10所述的方法,还包括:
a.在所述第一至第二相关性存储引擎处,响应于填充或更新所述第一至第二对象相关性存储装置,向事件处理器发送第一事件通知;以及
b.在所述第二至第一相关性存储引擎处,响应于填充或更新所述第二至第一对象相关性存储装置,向所述事件处理器发送第二事件通知。
CN202011143406.7A 2019-10-24 2020-10-23 用于数据对象的相关性的***、方法和装置 Pending CN112711486A (zh)

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 (1)

Publication Number Publication Date
CN112711486A true CN112711486A (zh) 2021-04-27

Family

ID=71094397

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011143406.7A Pending CN112711486A (zh) 2019-10-24 2020-10-23 用于数据对象的相关性的***、方法和装置

Country Status (4)

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

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2689112T3 (es) * 2011-03-15 2018-11-08 Amadeus S.A.S. Método y sistema para mecanismo de sincronización en sistema de reservas de múltiples servidores
EP2500848A1 (en) * 2011-03-15 2012-09-19 Amadeus S.A.S. Method and system for centralized reservation context management on multi-server reservation system
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
US9973374B1 (en) * 2013-11-07 2018-05-15 Cole Asher Ratias Systems and methods for synchronizing content and information on multiple computing devices
US20160305847A1 (en) * 2013-12-16 2016-10-20 Siemens Aktiengesellschaft Computer device for detecting correlations within data
KR101761469B1 (ko) * 2014-04-11 2017-08-04 아마데우스 에스.에이.에스. Emc 생성 시스템 및 방법
US10133622B2 (en) * 2014-11-24 2018-11-20 Microsoft Technology Licensing, Llc Enhanced error detection in data synchronization operations
US10356157B2 (en) * 2015-04-16 2019-07-16 Google Llc Systems and methods for notifying users of changes to files in cloud-based file-storage systems
US11003632B2 (en) * 2016-11-28 2021-05-11 Open Text Sa Ulc System and method for content synchronization
SG11201908824PA (en) * 2017-03-28 2019-10-30 Oracle Int Corp Systems and methods for intelligently providing supporting information using machine-learning

Also Published As

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

Similar Documents

Publication Publication Date Title
US9886441B2 (en) Shard aware near real time indexing
US11423053B2 (en) Log event cluster analytics management
CN103577407B (zh) 用于分布式数据库的查询方法及查询装置
US8280917B1 (en) Batching content management operations to facilitate efficient database interactions
WO2017084410A1 (zh) 一种网管数据同步方法及装置
JP5292489B2 (ja) 持続的データ記憶技術
JP5550654B2 (ja) データベースにおいて大量の更新をリアルタイムで統合する方法
CN106610876A (zh) 数据快照的恢复方法及装置
US20130297360A1 (en) Flight-price monitoring systems and methods
JP5724735B2 (ja) データベース更新制御装置、データベース管理システムおよびデータベース更新制御プログラム
US20130132403A1 (en) Tenant placement in multitenant cloud databases with data sharing
US11561939B2 (en) Iterative data processing
US20160232626A1 (en) Travel activity tracking system
WO2014065115A1 (ja) ルール分配サーバ、イベント処理システム、方法及びプログラム
US20160321443A1 (en) Authentication system, synchronization method, and authentication apparatus
US12019646B2 (en) Information system with temporal data
US8700565B2 (en) Method and system for data filing systems
US10089350B2 (en) Proactive query migration to prevent failures
JP4189332B2 (ja) データベース管理システム、データベース管理方法、データベース登録要求プログラムおよびデータベース管理プログラム
CN106777310B (zh) 信息的校验方法及装置
CN116166735B (zh) 航空数据的处理方法、装置、电子设备及存储介质
US20110246421A1 (en) Distributed processing device, and storage medium storing distributed processing program
CN112711486A (zh) 用于数据对象的相关性的***、方法和装置
EP3016042A1 (en) Segmented availability cache
WO2014038057A1 (ja) 計算機システム、データ管理方法及びプログラムを格納する記録媒体

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination