首页 / 专利库 / 银行与财务事项 / 票据交换所 / 用于跟踪数据库记录的中断索引

用于跟踪数据库记录的中断索引

阅读:971发布:2020-05-11

专利汇可以提供用于跟踪数据库记录的中断索引专利检索,专利查询,专利分析的服务。并且用于处理 数据库 记录的系统、方法和 计算机程序 产品。 数据库管理系统 可以接收识别正在交换的票据数据库中的票据的查询。响应于接收到查询,数据库管理系统可以从过渡数据库中检索索引到票据的过渡记录。过渡记录可以包括具有一个或多个数组的中断索引,每个数组定义链接的数据元素的集合。数据库管理系统可以从票据数据库中检索由数据元素识别的附加票据,并将票据排列成定义正在交换的票据的中断历史的有序集合。然后,数据库管理系统可以基于中断历史生成混合路线,并使用该混合路线来确定正在交换的票据的价值。,下面是用于跟踪数据库记录的中断索引专利的具体信息内容。

1.一种用于处理数据库记录的系统,所述系统包括:
一个或多个处理器;以及
存储器,耦合到所述一个或多个处理器,该存储器存储程序代码,所述程序代码在由所述一个或多个处理器执行时使得所述系统:
接收识别存储在第一数据库中的第一数据库记录的查询;
从第二数据库检索索引到第一数据库记录的第二数据库记录,第二数据库记录包含中断索引,所述中断索引包括定义链接的数据元素的集合的至少一个数组;
识别第一数据库中包括所述链接的数据元素中的至少一个链接的数据元素的数据库记录集合,所述数据库记录集合包括第一数据库记录和第三数据库记录;以及通过以下操作从所述数据库记录集合生成第一数组:
用来自第一数据库记录的数据元素初始化第一数组,以及
将来自第三数据库记录的至少一个数据元素添加到第一数组。
2.如权利要求1所述的系统,其中来自第一数据库记录的数据元素是从最早的数据元素到最新的数据元素排序的第一系列数据元素,第三数据库记录包括从最早的数据元素到最新的数据元素排序的第二系列数据元素,并且所述程序代码使所述系统通过以下操作来生成第一数组:
从第三数据库记录中选择最新的先前未选择的数据元素;
确定所选择的数据元素的状态;
响应于指示所选择的数据元素被交换的状态,设置交换标志并丢弃所选择的数据元素;以及
响应于指示所选择的数据元素未被交换的状态,将所选择的数据元素添加到第二数组或第三数组之一。
3.如权利要求2所述的系统,其中所述程序代码使所述系统通过以下操作将所选择的数据元素添加到第一数组或第二数组之一:
如果未设置交换标志,那么将所选择的数据元素添加到第二数组;以及如果设置了交换标志,那么将所选择的数据元素添加到第三数组。
4.如权利要求2或权利要求3所述的系统,其中所述程序代码还使所述系统响应于所选择的数据元素是第三数据库记录的最早数据元素而通过以下操作来更新第一数组:
在第一数组的最早数据元素之前将第二数组附加到第一数组,以及
在第一数组的最新数据元素之后将第三数组附加到第一数组。
5.如权利要求2至4中任一项所述的系统,其中所述数据库记录集合中的每个数据库记录具有指示将该数据库记录添加到第一数据库的时间的时间戳,所述数据库记录集合包括第四数据库记录,第四数据库记录的时间戳发生在第三数据库记录的时间戳之后,并且所述程序代码还使所述系统:
响应于指示所选择的数据元素被交换的状态,确定所选择的数据元素是否出现在第四数据库记录的费用元素中,以及
如果所选择的数据元素没有出现在第四数据库记录的费用元素中,那么中止数据库记录的处理。
6.如权利要求2至5中任一项所述的系统,其中第一系列数据元素是构成第一票据的第一票证集合,并且第二系列数据元素是构成第二票据的第二票证集合。
7.如权利要求1至6中任一项所述的系统,其中所述程序代码还使所述系统:
从第一数组生成混合票据;
使用定价引擎确定所述混合票据的第一价值;以及
将第一价值指派给第一数据库记录。
8.如权利要求7所述的系统,其中所述程序代码还使所述系统:
使用定价引擎为交换第一数据库记录的第五数据库记录确定第二价值;
确定等于第二价值与第一价值之间的差的第三价值;以及
将第三价值指派给第五数据库记录。
9.如权利要求1至4中任一项所述的系统,其中所述数据库记录集合中的每个数据库记录具有指示将该数据库记录添加到第一数据库的时间的时间戳,并且所述程序代码还使所述系统:
基于每个数据库记录的时间戳对所述数据库记录集合进行排序,使得所述数据库记录集合被配置为从具有最早时间戳的数据库记录到具有最新时间戳的数据库记录排序的一系列数据库记录。
10.一种处理数据库记录的方法,所述方法包括:
接收识别存储在第一数据库中的第一数据库记录的查询;
从第二数据库检索索引到第一数据库记录的第二数据库记录,第二数据库记录包含中断索引,所述中断索引包括定义链接的数据元素的集合的至少一个数组;
识别第一数据库中包括所述链接的数据元素中的至少一个链接的数据元素的数据库记录集合,所述数据库记录集合包括第一数据库记录和第三数据库记录;以及通过以下操作从所述数据库记录集合生成第一数组:
用来自第一数据库记录的数据元素初始化第一数组,以及
将来自第三数据库记录的至少一个数据元素添加到第一数组。
11.如权利要求10所述的方法,其中来自第一数据库记录的数据元素是从最早的数据元素到最新的数据元素排序的第一系列数据元素,第三数据库记录包括从最早的数据元素到最新的数据元素排序的第二系列数据元素,并且生成第一数组包括:
从第三数据库记录中选择最新的先前未选择的数据元素;
确定所选择的数据元素的状态;
响应于指示所选择的数据元素被交换的状态,设置交换标志并丢弃所选择的数据元素;以及
响应于指示所选择的数据元素未被交换的状态,将所选择的数据元素添加到第二数组或第三数组之一。
12.如权利要求11所述的方法,其中将所选择的数据元素添加到第一数组或第二数组之一包括:
如果未设置交换标志,那么将所选择的数据元素添加到第二数组;以及如果设置了交换标志,那么将所选择的数据元素添加到第三数组。
13.如权利要求11或权利要求12所述的方法,还包括:响应于所选择的数据元素是第三数据库记录的最早数据元素而通过以下操作更新第一数组:
在第一数组的最早数据元素之前将第二数组附加到第一数组,以及
在第一数组的最新数据元素之后将第三数组附加到第一数组。
14.如权利要求11至13中任一项所述的方法,其中所述数据库记录集合中的每个数据库记录具有指示将该数据库记录添加到第一数据库的时间的时间戳,所述数据库记录集合包括第四数据库记录,第四数据库记录的时间戳发生在第三数据库记录的时间戳之后,并且还包括:
响应于指示所选择的数据元素被交换的状态,确定所选择的数据元素是否出现在第四数据库记录的费用元素中,以及
如果所选择的数据元素没有出现在第四数据库记录的费用元素中,那么中止数据库记录的处理。
15.如权利要求11至14中任一项所述的方法,其中第一系列数据元素是构成第一票据的第一票证集合,并且第二系列数据元素是构成第二票据的第二票证集合。
16.如权利要求10至15中任一项所述的方法,还包括:
从第一数组生成混合票据;
使用定价引擎确定混合票据的第一价值;以及
将该第一价值指派给第一数据库记录。
17.如权利要求16所述的方法,还包括:
使用定价引擎为交换第一数据库记录的第五数据库记录确定第二价值;
确定等于第二价值与第一价值之间的差的第三价值;以及
将第三价值指派给第五数据库记录。
18.如权利要求10至13中任一项所述的方法,其中所述数据库记录集合中的每个数据库记录具有指示将该数据库记录添加到第一数据库的时间的时间戳,并且还包括:
基于每个数据库记录的时间戳对所述数据库记录集合进行排序,使得所述数据库记录集合被配置为从具有最早时间戳的数据库记到具有最新时间戳的数据库记录排序的一系列数据库记录。
19.如权利要求10所述的方法,其中第一数组定义混合路线。
20.一种用于处理数据库记录的计算机程序产品,所述计算机程序产品包括:
非瞬态计算机可读存储介质;以及
存储在存储介质上的程序代码,当所述程序代码由一个或多个处理器执行时,使得所述一个或多个处理器:
接收识别存储在第一数据库中的第一数据库记录的查询;
从第二数据库检索索引到第一数据库记录的第二数据库记录,第二数据库记录包含中断索引,所述中断索引包括定义链接的数据元素的集合的至少一个数组;
识别第一数据库中包括所述链接的数据元素中的至少一个链接的数据元素的数据库记录集合,所述数据库记录集合包括第一数据库记录和第三数据库记录;以及通过以下操作从所述数据库记录集合生成第一数组:
用来自第一数据库记录的数据元素初始化第一数组,以及
将来自第三数据库记录的至少一个数据元素添加到第一数组。

说明书全文

用于跟踪数据库记录的中断索引

技术领域

[0001] 本发明一般而言涉及计算机和计算机软件,尤其涉及用于管理旅行管理系统中的数据库记录的系统、方法和计算机程序产品。

背景技术

[0002] 旅行管理系统一般包括一个或多个数据库,每个数据库存储和组织多个记录数据结构或“记录”。由旅行管理系统维护以管理行程的数据库记录通常包括存储定义旅行路线的数据的乘客姓名记录(PNR),以及可以兑换旅行路线中包括的交通路段的登机牌的一张或多张票据。
[0003] 在航空旅行的背景下,旅行路线可以包括连接起始位置和目的地位置的一个或多个段。每段可以指在旅客首次登上飞机的一个点与该旅客离开飞机的另一个点之间的航班的操作。段可以包括一个或多个支路(leg),每个支路包括从一个计划的出发站到下一个计划的到达站的飞机的操作。行程路线可以包括多个连接的段,其中旅客在连续段之间的每个连接点处改变飞机。
[0004] 有时,具有已签发票据的旅客可能被迫更改他们的路线。例如,在影响段的调度的事件(例如,取消连接两个地点的航班)之后,具有包括被中断的段的旅行路线的旅客可能需要修改他们的旅行路线。修改可以包括用一个或多个取代段取代被中断的段或包括被中断的段的段的组合。一旦找到合适的解决方案,就可以基于修改后的路线签发新票据。这张新票据可以交换之前持有的全部或部分票据。通常,旅客不需要为此次交换付费。
[0005] 对于非自愿的改变,用于更新旅行管理系统中的数据库记录的正常过程常常被绕过,使得登机牌可以快速地签发并且不向滞留的旅客收费。这会导致数据库记录不准确。如果在非自愿交换之后期望路线的另一次改变,那么不准确的数据库记录可能是特别麻烦的。
[0006] 因此,需要改进的系统、方法和计算机程序产品来管理旅行管理系统中的数据库记录,以在非自愿票据交换的情况下维持数据库的准确性,并且提高从数据库中检索相关数据的速度和效率。

发明内容

[0007] 在实施例中,提供了一个系统,该系统包括一个或多个处理器和耦合到处理器的存储器。存储器可以存储程序代码,所述程序代码在由至少一个处理器执行时使所述系统接收识别存储在第一数据库中的第一数据库记录的查询,并从第二数据库检索索引到第一数据库记录的第二数据库记录。第二数据库记录可以包含中断索引,所述中断索引包括定义链接的数据元素的集合的至少一个数组。所述程序代码还可以使所述系统识别第一数据库中包括所述链接的数据元素中的至少一个链接的数据元素的数据库记录集合。包括所述链接的数据元素中的至少一个链接的数据元素的所述数据库记录集合可以包括第一数据库记录和第三数据库记录。所述程序代码还可以使所述系统通过用来自第一数据库记录的数据元素初始化第一数组并将来自第三数据库记录的至少一个数据元素添加到第一数组来从该数据库记录集合生成第一数组。
[0008] 在另一方面,来自第一数据库记录的数据元素可以包括从最早的数据元素到最新的数据元素排序的第一系列数据元素,第三数据库记录可以包括从最早的数据元素到最新的数据元素排序的第二系列数据元素,并且所述程序代码还可以使系统通过从第三数据库记录中选择最新的先前未选择的数据元素并确定所选择的数据元素的状态来生成第一数组。响应于指示所选择的数据元素被交换的状态,所述程序代码可以使所述系统设置交换标志并丢弃所选择的数据元素。响应于指示所选择的数据元素未被交换的状态,所述程序代码可以使所述系统将所选择的数据元素添加到第二数组或第三数组之一。
[0009] 在另一方面,所述程序代码还可以使所述系统通过以下操作将所选择的数据元素添加到第一数组或第二数组之一:如果未设置交换标志,那么将所选择的数据元素添加到第二数组;以及如果设置了交换标志,那么将所选择的数据元素添加到第三数组。
[0010] 在另一方面,响应于所选择的数据元素是第三数据库记录的最早数据元素,所述程序代码还可以使所述系统通过以下操作来更新第一数组:在第一数组的最早数据元素之前将第二数组附加到第一数组,以及在第一数组的最新数据元素之后将第三数组附加到第一数组。
[0011] 在另一方面,所述数据库记录集合中的每个数据库记录可以具有指示将该数据库记录添加到第一数据库的时间的时间戳,并且所述数据库记录集合可以包括具有发生在第三数据库记录的时间戳之后的时间戳的第四数据库记录。响应于指示所选择的数据元素被交换的状态,所述程序代码还可以使所述系统确定所选择的数据元素是否出现在第四数据库记录的费用元素中,并且如果所选择的数据元素没有出现在第四数据库记录的费用元素中,那么中止数据库记录的处理。
[0012] 在另一方面,第一系列数据元素可以包括构成第一票据的票证(coupon)集合,并且第二系列数据元素可以包括构成第二票据的票证集合。
[0013] 在另一方面,所述程序代码还可以使所述系统从第一数组生成混合票据,使用定价引擎确定混合票据的第一价值,并将第一价值指派给第一数据库记录。
[0014] 在另一方面,所述程序代码还可以使所述系统使用定价引擎为交换第一数据库记录的第五数据库记录确定第二价值,确定等于第二价值与第一价值之间的差的第三价值,并将第三价值指派给第五数据库记录。
[0015] 在另一方面,所述程序代码还可以使所述系统基于每个数据库记录的时间戳对数据库记录集合进行排序,使得该集合被配置为从具有最早时间戳的数据库记录到具有最新时间戳的数据库记录排序的一系列数据库记录。
[0016] 在另一个实施例中,提供了一种处理数据库记录的方法。所述方法可以包括接收识别存储在第一数据库中的第一数据库记录的查询,以及从第二数据库检索索引到第一数据库记录的第二数据库记录,第二数据库记录包含中断索引,所述中断索引包括定义链接的数据元素的集合的至少一个数组。所述方法还可以包括识别第一数据库中包括所述链接的数据元素中的至少一个链接的数据元素的数据库记录集合。包括述链接的数据元素中的至少一个链接的数据元素的所述数据库记录集合可以包括第一数据库记录和第三数据库记录。所述方法还可以包括通过用来自第一数据库记录的数据元素初始化第一数组并将来自第三数据库记录的至少一个数据元素添加到第一数组来从所述数据库记录集合生成第一数组。
[0017] 在另一方面,来自第一数据库记录的数据元素可以包括从最早的数据元素到最新的数据元素排序的第一系列数据元素,第三数据库记录可以包括从最早的数据元素到最新的数据元素排序的第二系列数据元素,并且所述方法可以通过从第三数据库记录中选择最新的先前未选择的数据元素、确定所选择的数据元素的状态、响应于指示所选择的数据元素被交换的状态而设置交换标志并丢弃所选择的数据元素、以及响应于指示所选择的数据元素未被选择的状态而将所选择的数据元素添加到第二数组或第三数组之一来生成第一数组。
[0018] 在另一方面,所述方法可以通过以下操作来将所选择的数据元素添加到第一数组或第二数组之一:如果未设置交换标志,那么将所选择的数据元素添加到第二数组;以及如果设置了交换标志,那么将所选择的数据元素添加到第三数组。
[0019] 在另一方面,响应于所选择的数据元素是第三数据库记录的最早的数据元素,所述方法可以通过以下操作来更新第一数组:在第一数组的最早数据元素之前将第二数组附加到第一数组,以及在第一数组的最新数据元素之后将第三数组附加到第一数组。
[0020] 在另一方面,数据库记录集合中的每个数据库记录可以具有指示将数据库记录添加到第一数据库的时间的时间戳,所述数据库记录集合可以包括具有发生在第三数据库记录的时间戳之后的时间戳的第四数据库记录,并且所述方法还可以包括,响应于指示所选择的数据元素被交换的状态,确定所选择的数据元素是否出现在第四数据库记录的费用元素中,以及如果所选择的数据元素没有出现在第四数据库记录的费用元素中,那么中止数据库记录的处理。
[0021] 在另一方面,第一系列数据元素可以包括构成第一票据的票证集合,并且第二系列数据元素可以包括构成第二票据的票证集合。
[0022] 在另一方面,该方法还可以包括从第一数组生成混合票据,使用定价引擎确定混合票据的第一价值,并将第一价值指派给第一数据库记录。
[0023] 在另一方面,该方法可以包括使用定价引擎为交换第一数据库记录的第五数据库记录确定第二价值,确定等于第二价值与第一价值之间的差的第三价值,并将第三价值指派给第五数据库记录。
[0024] 在另一方面,所述方法还可以包括基于每个数据库记录的时间戳对数据库记录集合进行排序,使得该集合被配置为从具有最早时间戳到具有最新时间戳的数据库记录排序的一系列数据库记录。
[0025] 在另一方面,第一数组可以定义混合路线。
[0026] 在另一个实施例中,提供了一种用于处理数据库记录的计算机程序产品。该计算机程序产品可以包括非瞬态计算机可读存储介质,以及存储在该介质上的程序代码,当所述程序代码由一个或多个处理器执行时,使得处理器接收识别存储在第一数据库中的第一数据库记录的查询,以及从第二数据库检索索引到第一数据库记录并且包含中断索引的第二数据库记录,所述中断索引包括定义链接的数据元素集合的至少一个数组。所述程序代码还可以使处理器识别第一数据库中包括链接的数据元素中的至少一个链接的数据元素的数据库记录集合。包括链接的数据元素中的至少一个链接的数据元素的数据库记录集合可以包括第一数据库记录和第三数据库记录。所述程序代码还可以使处理器通过用来自第一数据库记录的数据元素初始化第一数组并将来自第三数据库记录的至少一个数据元素添加到第一数组来从所述数据库记录集合生成第一数组。
[0027] 在另一个实施例中,提供了一种系统,所述系统包括一个或多个处理器,以及耦合到处理器的存储器。存储器存储包括用于从数据库检索信息的索引的第一数据以及程序代码。当所述程序代码由至少一个处理器执行时,可以使系统从第一数据库记录中检索定义由于影响一个或多个父票证的中断而已被交换为第二取代票证集合的第一父票证集合的第一数据,并从第二数据库记录中检索定义第二取代票证集合的第二数据。所述程序代码还可以使所述系统定义第一运算符数组,其中每个运算符与第一父票证集合中的相应一个父票证对应并指示相应的父票证是否与中断对应,定义第二运算符数组,其中每个运算符与第二取代票证集合中的相应一个取代票证对应并指示相应的取代票证是否与中断对应,并且定义第三链接数组,其中每个链接将第一集合中的至少一个父票证链接到第二集合的至少一个取代票证。所述程序代码还可以使所述系统将第一数组、第二数组和第三数组存储在索引中。
[0028] 在另一方面,第三数组可以将第一集合中的每个父票证链接到第二集合中的至少一个取代票证,并将第二集合中的每个取代票证链接到第一集合中的至少一个父票证。
[0029] 在另一方面,第一集合和第二集合中的每一个集合中的父票证可以按时间顺序排序,并且所述程序代码可以使系统通过选择第一集合中最早的父票证、选择第二集合中最早的取代票证并将所选择的父票证与所选择的取代票证进行比较来定义第一数组、第二数组和第三数组。响应于所选择的父票证匹配所选择的取代票证,所述程序代码可以使所述系统将指示所选择的父票证不与中断对应的第一操作符添加到第一数组,将指示所选择的取代票证不与中断对应的第二操作符添加到第二数组,并向将所选择的父票证链接到所选择的取代票证的第一链接添加到第三数组。
[0030] 在另一方面,可以基于计数器选择所选择的父票证和所选择的取代票证中的每一个,并且程序代码还可以使系统响应于所选择的父票证与所选择的取代票证匹配而递增计数器以选择下一个最早的父票证和下一个最早的取代票证,并基于计数器选择下一个最早的父票证和下一个最早的取代票证进行比较。每当所选择的父票证与所选择的取代票证匹配时,程序代码还可以使系统递增计数器。
[0031] 在另一方面,程序代码还可以使系统响应于所选择的父票证与所选择的取代票证不匹配而选择第一集合中的最新父票证、选择第二集合中的最新取代票证,并将最新父票证与最新取代票证进行比较。响应于最新父票证与最新取代票证匹配,程序代码还可以使系统将指示最新父票证不与中断对应的第三操作符添加到第一数组,将指示最新取代票证不与中断对应的第四操作符添加到第二数组,并向将最新父票证链接到最新取代票证的第二链接添加到第三数组。
[0032] 在另一方面,程序代码还可以使系统响应于最新父票证与最新取代票证不匹配而向第一数组添加指示最新父票证与中断对应的第五运算符,向第二数组添加指示最新取代票证与中断对应的第六运算符,并向将最新父票证链接到最新取代票证的第三链接添加到第三数组。
[0033] 在另一方面,程序代码还可以使系统响应于所选择的父票证与所选择的取代票证匹配而确定第一集合中是否存在下一个最早的父票证,以及第二集合中是否存在下一个最早的取代票证,并且仅在下一个最早的父票证和下一个最早的取代票证都存在时才将第一运算符添加到第一数组、将第二运算符添加到第二数组、将第一链接添加到第三数组。
[0034] 在另一方面,程序代码还可以使系统响应于下一个最早的父票证和下一个最早的取代票证中的至少一个不存在,如果下一个最早的父票证存在,那么对于第一集合中剩余的每个父票证,向第一数组添加指示相应的父票证与中断对应的相应运算符。程序代码还可以使系统响应于下一个最早的父票证和下一个最早的取代票证中的至少一个不存在,如果下一个最早的取代票证存在,那么对于第二数组中剩余的每个取代票证,向第二数组添加指示相应的取代票证与中断对应的相应运算符。
[0035] 在另一方面,程序代码还可以使系统,如果下一个最早的父票证存在,那么对于第一集合中剩余的每个父票证,向第三数组添加将父票证链接到第二集合中的最新取代票证的相应链接,并且如果下一个最早的取代票证存在,那么对于第二集合中剩余的每个取代票证,向第三数组添加将取代票证链接到第一集合中的最新父票证的相应链接。
[0036] 在另一个实施例中,提供了一种从数据库生成用于信息检索的索引的方法。所述方法可以包括从第一数据库记录中检索定义由于影响一个或多个父票证的中断而已被交换为第二取代票证集合的第一父票证集合的第一数据,并从第二数据库记录中检索定义第二取代票证集合的第二数据。该方法还可以包括定义第一运算符数组,其中每个运算符与第一父票证集合中的相应一个父票证对应并指示相应的父票证是否与中断对应,定义第二运算符数组,其中每个运算符与第二取代票证集合中的相应一个取代票证对应并指示相应的取代票证是否与中断对应,并且定义第三链接数组,其中每个链接将第一集合中的至少一个父票证链接到第二集合的至少一个取代票证。该方法还可以包括将第一数组、第二数组和第三数组存储在索引中。
[0037] 在另一方面,第三数组可以将第一集合中的每个父票证链接到第二集合中的至少一个取代票证,并将第二集合中的每个取代票证链接到第一集合中的至少一个父票证。
[0038] 在另一方面,第一集合和第二集合中的每一个集合中的父票证可以按时间顺序排序,并且可以通过选择第一集合中最早的父票证、选择第二集合中最早的取代票证并将所选择的父票证与所选择的取代票证进行比较来定义第一数组、第二数组和第三数组。响应于所选择的父票证匹配所选择的取代票证,该方法可以将指示所选择的父票证不与中断对应的第一操作符添加到第一数组,将指示所选择的取代票证不与中断对应的第二操作符添加到第二数组,并向将所选择的父票证链接到所选择的取代票证的第一链接添加到第三数组。
[0039] 在另一方面,可以基于计数器选择所选择的父票证和所选择的取代票证中的每一个,并且该方法还可以包括:响应于所选择的父票证与所选择的取代票证匹配而递增计数器以选择下一个最早的父票证和下一个最早的取代票证,并基于计数器选择下一个最早的父票证和下一个最早的取代票证进行比较,其中每当所选择的父票证与所选择的取代票证匹配时,计数器递增。
[0040] 在另一方面,响应于所选择的父票证与所选择的取代票证不匹配,该方法可以选择第一集合中的最新父票证,选择第二集合中的最新取代票证,并将最新父票证与最新取代票证进行比较。响应于最新父票证与最新取代票证匹配,该方法可以将指示最新父票证不与中断对应的第三操作符添加到第一数组,将指示最新取代票证不与中断对应的第四操作符添加到第二数组,并向将最新父票证链接到最新取代票证的第二链接添加到第三数组。
[0041] 在另一方面,响应于最新父票证与最新取代票证不匹配,该方法可以向第一数组添加指示最新父票证与中断对应的第五运算符,向第二数组添加指示最新取代票证与中断对应的第六运算符,并向将最新父票证链接到最新取代票证的第三链接添加到第三数组。
[0042] 在另一方面,响应于所选择的父票证与所选择的取代票证匹配,该方法可以确定第一集合中是否存在下一个最早的父票证,以及第二集合中是否存在下一个最早的取代票证,并且仅在下一个最早的父票证和下一个最早的取代票证都存在时才将第一运算符添加到第一数组、将第二运算符添加到第二数组、以及将第一链接添加到第三数组。
[0043] 在另一方面,响应于下一个最早的父票证和下一个最早的取代票证中的至少一个不存在,如果下一个最早的父票证存在,那么该方法可以对于第一集合中剩余的每个父票证,向第一数组添加指示相应的父票证与中断对应的相应运算符。响应于下一个最早的父票证和下一个最早的取代票证中的至少一个不存在,如果下一个最早的取代票证存在,那么该方法还可以对于第二数组中剩余的每个取代票证,向第二数组添加指示相应的取代票证与中断对应的相应运算符。
[0044] 在另一方面,如果下一个最早的父票证存在,那么该方法可以包括:对于第一集合中剩余的每个父票证,向第三数组添加将父票证链接到第二集合中的最新取代票证的相应链接。如果下一个最早的取代票证存在,那么该方法还可以包括:对于第二集合中剩余的每个取代票证,向第三数组添加将取代票证链接到第一集合中的最新父票证的相应链接。
[0045] 在另一方面,第一父票证集合中的每张票证可以具有状态和出发时间,并且检索定义第一父票证集合的第一数据可以包括从第一父票证集合中过滤其状态是已飞行或者其出发时间在具有已飞行状态的另一个父票证的出发时间之前的每个父票证。
[0046] 在另一个实施例中,提供了一种用于生成用于从数据库检索信息的索引的计算机程序产品。该计算机程序产品可以包括非瞬态计算机可读存储介质,以及存储在该介质上的程序代码,当程序代码由一个或多个处理器执行时,使处理器从第一数据库记录中检索定义由于影响一个或多个父票证的中断而已被交换为第二取代票证集合的第一父票证集合的第一数据,并从第二数据库记录中检索定义第二取代票证集合的第二数据。程序代码还可以使处理器定义第一运算符数组,其中每个运算符与第一父票证集合中的相应一个父票证对应并指示相应的父票证是否与中断对应,定义第二运算符数组,其中每个运算符与第二取代票证集合中的相应一个取代票证对应并指示相应的取代票证是否与中断对应,并且定义第三链接数组,其中每个链接将第一集合中的至少一个父票证链接到第二集合的至少一个取代票证。程序代码还可以使处理器将第一数组、第二数组和第三数组存储在索引中。
[0047] 在另一个实施例中,提供了一种系统,该系统包括一个或多个处理器和耦合到处理器的存储器。存储器可以存储程序代码,该程序代码在由至少一个处理器执行时使系统从第一数据库记录中检索定义第一票证的第一集合的第一数据,并从第二数据库记录中检索定义第二段集合的第二数据。程序代码还可以使系统针对第二集合中的每个段生成与该段对应的第二票证,并识别第二票证要取代的每个第一票证。程序代码还可以使系统针对识别出的每个第一票证创建包括识别第一票证的第一票证元素和识别第二票证并且链接到第一票证元素的第二票证元素的数组。程序代码还可以使系统将该数组添加到第一索引。
[0048] 在另一方面,程序代码还可以使系统针对第一索引中的每个数组确定第一票证是否受中断的影响,并且如果第一票证受到中断的影响,那么将第一票证标志为与中断对应。
[0049] 在另一方面,可以响应于接收到用第二票据交换第一票据的第一请求而生成第一索引,并且将第一索引存储在第三数据库记录中。响应于接收到显示第二票据的请求,程序代码可以使系统从第三数据库记录中检索第一索引,并且对于第一索引中的每个数组,检索定义第二票证的第三数据、检索定义链接到第二票证的第一票证的第四数据,并检索识别链接到第二票证的第一票证是否被标志为与中断对应的第五数据。程序代码还可以使系统使用第三数据、第四数据和第五数据来发送对请求的回复,该回复被配置为使得发出请求的系统针对由第三数据定义的每个第二票证显示定义第二票证的第六数据、与第二票证链接的第一票证,以及第一票证是否与中断对应。
[0050] 在另一方面,程序代码还可以使系统确定发出请求的系统是否与第六数据的定义与第二票证链接的第一票证的一部分兼容,并且如果发出请求的系统不兼容,那么从回复中过滤掉第六数据的该部分。
[0051] 在另一方面,第一索引可以存储在第三数据库记录中,并且程序代码还可以使系统针对第一集合中的每个第一票证从第一数据库记录中提取第一票证的费用分量、将费用分量存储在费用元素中、在产品元素中存储识别第一票证和第一数据库记录的第三数据、链接费用元素和产品元素以定义数据结构,并将该数据结构添加到第二索引。程序代码还可以使系统将第二索引存储在第三数据库记录中。
[0052] 在另一方面,第一数据库记录可以包括原始票据,第二数据库记录可以包括预订记录,第一索引可以包括中断索引,并且第二索引可以包括费用结构索引。
[0053] 在另一方面,可以响应于接收到用第二票据交换第一票据的第一请求而生成第一索引,并且程序代码还可以使系统响应于接收到用第三票据交换第二票据的第二请求而从第二数据库记录中检索定义第三段集合的第三数据。程序代码还可以使系统针对第三段集合中的每个段生成与该段对应的第三票证,并识别第三票证要取代的每个第二票证。对于识别出的每个第二票证,程序代码可以使系统识别与第二票证对应的每个数组,将识别第三票证的第三票证元素添加到识别出的数组,并将第三票证元素链接到第二票证元素。由此,第一索引可以被配置为提供每个第三票证和至少一个对应的第一票证之间的映射。
[0054] 在另一方面,程序代码还可以使系统针对第一索引中的每个第一数据结构确定第二票证是否受中断的影响,并且如果第二票证受到中断的影响,那么标志第二票证为被中断。
[0055] 在另一方面,程序代码还可以使系统针对每个第二票证确定第二票证是否被多于一个第三票证取代。如果第二票证被多于一个第三票证取代,那么程序代码可以使系统识别包括与第二票证对应的第二票证元素的每个数组,并且对于识别出的每个数组,生成识别出的数组的副本,使得存在对应的数组以接受取代第二票证的每个第三票证的第三票证元素。
[0056] 在另一个实施例中,提供了一种对数据库记录加索引以进行信息检索的方法。该方法可以包括从第一数据库记录中检索定义第一票证的第一集合的第一数据,并从第二数据库记录中检索定义第二段集合的第二数据。该方法还可以包括:针对第二集合中的每个段生成与该段对应的第二票证,并识别第二票证要取代的每个第一票证。对于识别出的每个第一票证,该方法可以创建包括识别第一票证的第一票证元素和识别第二票证并且链接到第一票证元素的第二票证元素的数组。该方法还可以将该数组添加到第一索引。
[0057] 在另一方面,该方法还可以包括:针对第一索引中的每个数组确定第一票证是否受中断的影响,并且如果第一票证受到中断的影响,那么将第一票证标志为与中断对应。
[0058] 在另一方面,可以响应于接收到用第二票据交换第一票据的第一请求而生成第一索引,并且将第一索引存储在第三数据库记录中,并且该方法还可以包括接收显示第二票据的请求。响应于接收到该请求,该方法可以从第三数据库记录中检索第一索引。对于第一索引中的每个数组,该方法可以检索定义第二票证的第三数据、检索定义链接到第二票证的第一票证的第四数据,并检索识别链接到第二票证的第一票证是否被标志为与中断对应的第五数据。该方法还可以包括使用第三数据、第四数据和第五数据来发送对请求的回复,该回复被配置为使得发出请求的系统针对由第三数据定义的每个第二票证显示定义第二票证的第六数据、与第二票证链接的第一票证,以及第一票证是否与中断对应。
[0059] 在另一方面,该方法还可以包括确定发出请求的系统是否与第六数据的定义与第二票证链接的第一票证的一部分兼容,并且如果发出请求的系统不兼容,那么从回复中过滤掉第六数据的该部分。
[0060] 在另一方面,可以基于发出请求的系统的身份或请求中的标志的状态来确定发出请求的系统是否与第六数据的该部分兼容。
[0061] 在另一方面,第一索引可以存储在第三数据库记录中,并且对于第一集合中的每个第一票证,该方法还可以包括从第一数据库记录中提取第一票证的费用分量、将费用分量存储在费用元素中、在产品元素中存储识别第一票证和第一数据库记录的第三数据、链接费用元素和产品元素以定义数据结构,并将该数据结构添加到第二索引。然后,该方法可以将第二索引存储在第三数据库记录中。
[0062] 在另一方面,可以响应于接收到用第二票据交换第一票据的第一请求而生成第一索引,并且该方法还可以包括响应于接收到用第三票据交换第二票据的第二请求而从第二数据库记录中检索定义第三段集合的第三数据。对于第三段集合中的每个段,该方法可以生成与该段对应的第三票证,并识别第三票证要取代的每个第二票证。对于识别出的每个第二票证,该方法可以识别与第二票证对应的每个数组,将识别第三票证的第三票证元素添加到识别出的数组,并将第三票证元素链接到第二票证元素。由此,第一索引可以被配置为提供每个第三票证和至少一个对应的第一票证之间的映射。
[0063] 在另一方面,该方法还可以包括:针对第一索引中的每个第一数据结构确定第二票证是否受中断的影响,并且如果第二票证受到中断的影响,那么标志第二票证为被中断。
[0064] 在另一方面,该方法还可以包括,对于每个第二票证,确定第二票证是否被多于一个第三票证取代。如果第二票证被多于一个第三票证取代,那么该方法可以识别包括与第二票证对应的第二票证元素的每个数组,并且对于识别出的每个数组,生成识别出的数组的副本,使得存在对应的数组以接受取代第二票证的每个第三票证的第三票证元素。
[0065] 在另一个实施例中,提供了一种用于处理数据库记录的计算机程序产品。该计算机程序产品可以包括非瞬态计算机可读存储介质,以及存储在该介质上的程序代码,当程序代码由一个或多个处理器执行时,使处理器从第一数据库记录中检索定义第一票证的第一集合的第一数据,并从第二数据库记录中检索定义第二段集合的第二数据。程序代码还可以使处理器针对第二集合中的每个段生成与该段对应的第二票证,并识别第二票证要取代的每个第一票证。程序代码还可以使处理器针对识别出的每个第一票证创建包括识别第一票证的第一票证元素和识别第二票证并且链接到第一票证元素的第二票证元素的数组。程序代码还可以使处理器将该数组添加到第一索引。
[0066] 以上概述可以给出本发明的一些实施例的简化概述,以便提供对本文讨论的发明的某些方面的基本理解。本概述不意在提供本发明的广泛概述,也不意在识别任何关键或至关重要的要素或者描绘本发明的范围。概述的唯一目的仅仅是以简化的形式给出一些概念,作为对下面给出的详细描述的介绍。附图说明
[0067] 接合到本说明书中并构成其一部分的附图图示了本发明的各种实施例并且,与上面给出的本发明的一般描述以及下面给出的实施例的详细描述一起,用来解释本发明的实施例。
[0068] 图1是示例性操作环境的示意图,该操作环境包括与用户系统、提供者系统、预订数据库和票据数据库通信的数据库管理系统
[0069] 图2是可以用于提供图1的操作环境的示例性计算机的示意图。
[0070] 图3是可以存储在图1的预订数据库中的预订记录的图像的示意图。
[0071] 图4是可以存储在图1的票据数据库中的原始票据的图像的示意图。
[0072] 图5是具有更新后的路线的图3的预订记录的图像的示意图。
[0073] 图6是图4的原始票据的图像以及响应于根据由图5的预订记录定义的更新后的路线执行票据的部分重新签发而签发的重新签发票据的图像的示意图。
[0074] 图7是图4的原始票据的图像以及响应于根据由图5的预订记录定义的更新后的路线执行票据的完整重新签发而签发的重新签发票据的图像的示意图。
[0075] 图8是可以由图1的数据库管理系统实现的票据交换处理的流程图
[0076] 图9是可以由图8的处理用于执行票据交换的交换索引的图解视图。
[0077] 图10-13描绘了用于生成图9的交换索引的处理的流程图。
[0078] 图14-18是示例性票证集合的示意图,其例示了应用于多个不同的票据交换场景的图10-13的处理。
[0079] 图19是包括中断索引的过渡记录的示意图,该中断索引可以基于图9的交换索引来确定。
[0080] 图20是图5的预订记录的更新后的版本的图像以及可能已经基于更新后的预订记录签发的票据的多个图像的示意图。
[0081] 图21是来自图19的过渡记录的示意图,如它可以在签发图20的重新签发票据之后出现的。
[0082] 图22是可以由图1的用户系统显示的示例性父票据和示例性重新签发票据的富集图像的示意图。
[0083] 图23是响应于图22中的重新签发票据的交换而签发的示例性重新签发票据的富集图像的示意图。
[0084] 图24是图23的富集图像的示例性遮蔽(mask)版本的示意图。
[0085] 图25是示例性原始票据的图像的示意图。
[0086] 图26是图25的原始票据的图像以及在用重新签发票据交换原始票据之后的示例性重新签发票据的图像的示意图。
[0087] 图27是原始票据和图26的重新签发票据的图像以及在交换先前的重新签发票据而签发的示例性重新签发票据的图像的示意图。
[0088] 图28是示例性过渡记录以及可以基于存储在过渡记录中的数据生成的混合票据、付费路线、报价路线和报价定价记录的示意图。
[0089] 图29是图1的数据库管理系统的示意图,示出了系统的附加细节。
[0090] 图30是可以由图29的数据库管理系统实现的票据交换处理的流程图。
[0091] 图31和32是可以使图29的数据库管理系统实现图30的处理的一部分的文件的示意图。
[0092] 图33是可以由图29的数据库管理系统实现以生成混合路线的处理的流程图。

具体实施方式

[0093] 本发明的实施例可以由数据处理系统实现,该数据处理系统提供处理和数据库功能,其实现多个数据库系统之间的互连。本发明的实施例可以包括数据库管理系统,其提供用户系统、提供者系统和数据库系统之间的接口。数据库管理系统可以包括生成过渡记录的交换服务器。过渡记录可以存储用于管理对由从用户系统交换票据的请求造成的票据和预订数据库记录的更新的数据。过渡记录可以包括费用结构索引和中断索引,其提供预订和票据数据库中的记录之间的映射功能。这种映射功能可以提高交换服务器响应于接收到交换票据的请求而处理数据库记录的速度和效率。
[0094] 现在参考图1,根据本发明实施例的操作环境10可以包括数据库管理系统12、用户系统14、提供者系统16、预订数据库18和票据数据库20。数据库管理系统12、用户系统14、提供者系统16、预订数据库18和票据数据库20中的每一个可以通过网络22进行通信。网络22可以包括一个或多个私有或公共数据网络(例如,因特网),其使得能够在连接到网络22的系统之间交换数据。
[0095] 数据库管理系统12可以包括电子票务服务器(ETS)24、交换服务器26和过渡记录数据库28。数据库管理系统12可以被配置为从用户系统14和/或提供者系统16接收并处理查询。数据库管理系统12可以接收并处理诸如搜索查询、提供有用信息的(informative)定价查询、确认定价查询、票据签发请求、票据重新签发/交换请求或者与旅行产品的搜索、定价、预订和票务相关联的任何其它查询之类的查询。响应于接收到查询,数据库管理系统12可以与用户系统14、提供者系统16、预订数据库18、票据数据库20或其它合适的系统中的一个或多个进行通信以处理查询。在实施例中,数据库管理系统12可以包括全球分销系统(GDS)。
[0096] 用户系统14可以是旅行社系统、航空公司预订系统、旅行网站系统,或用于搜索、预订、购买和/或交换旅行产品的任何其它系统。由用户系统14发送到数据库管理系统12的查询可以包括定义始发地、目的地、要预订的空间的数量、期望旅行的时间段、具体航班或与查询的目的相关的任何其它相关信息的数据。
[0097] 提供者系统16可以包括计算机预订系统(CRS),其使数据库管理系统12能够预订和支付旅行产品,诸如机票之类。对于航空旅行的提供者,CRS可以管理旅行网络的节点之间的空间的预订。旅行网络的每个节点可以包括提供者操作航班的站(例如,机场)。提供者系统16还可以直接或通过数据库管理系统12与其它提供者系统交互,以使确认承运人能够销售由运营承运人提供的空间的票据。然后,运营承运人可以向确认承运人针对所提供的产品开账单。
[0098] 响应于用户系统14发送预订旅行产品(诸如航班之类)的请求,数据库管理系统12可以生成新的预订记录和/或修改预订数据库18中的现有预订记录。预订记录可以包括一个或多个数据元素,或包含定义与一个或多个预订旅行产品相关联的路线和旅客信息的数据的“元素”。路线可以包括来自多个旅行产品提供者的旅行产品。在航空旅行的上下文中,路线可以包括段的集合,其包括始发地和目的地之间的一个或多个航班。为了促进在预订数据库18中定位预订记录,记录定位符或其它合适的标识符可以与预订记录相关联。在实施例中,预订记录可以包括存储在乘客姓名记录(PNR)数据库中的乘客姓名记录。
[0099] 预订记录可以包括识别已经在其上预订空间的段的元素。基于超额预订的概念,可以将空间与座位区分开。超额预订指的是在预期由于乘客在出发时未能出现而导致某些预订空间未被使用的情况下,提供者预订比飞机上的实际座位更多空间的做法。段可以指在乘客首次登机的点与乘客最终离开飞机的点之间的飞机的操作。段可以包括乘客可以离开并重新登上同一架飞机的任何数量的站点。航班可以指具有相同航班指示符的一个或多个段的操作,并且可以涉及多于一架飞机。为了预订包括多个段的航班,可以在预订记录中创建各自定义航班段的多个元素。
[0100] 预订旅行产品可以包括针对产品的可用性而检查提供者库存,例如,包括路线的段上的可用空间。这个检查可以包括从用户系统14向数据库管理系统12发送预订请求。数据库管理系统12进而可以针对所请求产品的可用性而查询对应的提供者系统16。如果所请求的产品可用,那么可以预订产品,并且提供者库存减少以反映预订。
[0101] ETS 24可以被配置为管理票据数据库20中与票据的签发、修改和使用有关的记录。每张票据可以包括定义航班信息的数据库记录,诸如确认承运人、运营承运人、航班号、航班始发地、航班目的地、预订舱位(class)、航班日期以及为该票据支付的价格之类。票据记录还可以包括时间戳,该时间戳指示票据何时被“签发”,例如,添加到票据数据库20中或在票据数据库20中提交。票据可以响应于接收到已确认相关联预订记录的指示而由ETS 24签发。ETS 24可以基于存储在预订记录中的数据来填充票据中的元素。这个信息可以包括预订记录中定义的每个段的详细信息,诸如预订舱位、出发日期、登机点、下机点、乘客身份、用于购买段的一种或多种付款方式等。
[0102] 票据可以包括定义“票证(coupon)”的元素。对于给定的路线,可以向乘客签发一张或多张票据,其包括用于路线的每个段的票证。每张票证可以识别票据可以用于获得登机牌的具体段。如果票证未使用,那么票证的状态可以是“开放”,如果票证已被使用,那么票证的状态可以是“已飞行”,或者如果票证已经针对另一个航班被交换,那么票证的状态可以是“已交换”。
[0103] 票据数据库20中的每张票据可以具有唯一标识符或票据号,其可以存储在票据的元素中。为了检索存储在票据中的数据,可以将票据显示查询发送到票据数据库20。响应于接收到显示查询,票据数据库20可以从与查询中的票据号匹配的数据库记录返回数据。
[0104] 票据可以包括可以用于获得除登机牌以外的产品的附加票证。票据数据库20还可以存储其它类型的电子文档,诸如电子杂项文档(EMD),其表示由旅客购买的可收费服务的支付。这些可收费服务可以使用特殊服务请求(SSR)在预订记录中表示。可收费的服务可以与预订记录中的EMD和/或票证号相关联。
[0105] 现在参考图2,操作环境10的数据库管理系统12、用户系统14、提供者系统16、预订数据库18和票据数据库20可以在一个或多个计算机设备或系统(诸如示例性计算机30)上实现。计算机30可以包括处理器32、存储器34、大容量存储存储器设备36,输入/输出(I/O)接口38和人机界面(HMI)40。计算机30也可以可操作地经由网络22和/或I/O接口38耦合到一个或多个外部资源42。外部资源可以包括但不限于服务器、数据库、大容量存储设备、外围设备、基于的网络服务,或者可以由计算机30使用的任何其它合适的计算机资源。
[0106] 处理器32可以包括选自微处理器、微控制器、数字信号处理器、微计算机、中央处理单元、现场可编程阵列、可编程逻辑设备、状态机、逻辑电路、模拟电路、数字电路或基于存储在存储器34中的操作指令来操纵信号(模拟或数字)的任何其它设备的一个或多个设备。存储器34可以包括单个存储器设备或多个存储器设备,包括但不限于只读存储器(ROM)、随机存取存储器(RAM)、易失性存储器、非易失性存储器、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、闪速存储器、高速缓存存储器或能够存储数据的任何其它设备。大容量存储存储器设备36可以包括数据存储设备,诸如硬盘驱动器光驱、带驱动器、易失性或非易失性固态设备或能够存储数据的任何其它设备。
[0107] 处理器32可以在驻留在存储器34中的操作系统44的控制下操作。操作系统44可以管理计算机资源,使得体现为一个或多个计算机软件应用(诸如驻留在存储器34中的应用46)的计算机程序代码可以具有由处理器32执行的指令。处理器32还可以直接执行应用46,在这种情况下可以省略操作系统44。一个或多个计算机软件应用可以包括包括服务器的应用的运行实例,其可以接受来自一个或多个对应的客户端应用的请求并向其提供回复。一个或多个数据结构48也可以驻留在存储器34中,并且可以被处理器32、操作系统44和/或应用46用来存储和/或操纵数据。
[0108] I/O接口38可以提供将处理器32可操作地耦合到其它设备和系统(诸如网络22或外部资源42)的机器接口。由此,应用46可以经由I/O接口38通过通信与网络22和/或外部资源42协同工作,以提供包括本发明实施例的各种特征、功能、应用、处理和/或模。应用46还可以具有由一个或多个外部资源42执行的程序代码,和/或以其它方式依赖由计算机30外部的其它系统和/或网络部件提供的功能和/或信号。实际上,由于几乎无限的硬件和软件配置是可能的,应当理解的是,本发明的实施例可以包括位于计算机30的外部、分布在多个计算机和/或其它外部资源42之间和/或由计算资源(硬件和软件)提供的应用,作为经网络22的服务提供,诸如云计算服务之类。
[0109] HMI 40可以可操作地耦合到计算机30的处理器32,以使用户能够直接与计算机30进行交互。HMI 40可以包括视频和/或字母数字显示器、触摸屏、扬声器和任何其它能够向用户提供数据的适合的音频和视频指示器。HMI 40还可以包括能够接受来自用户的命令和/或输入并将录入的输入发送到处理器32的输入设备和控件,诸如字母数字键盘、定点设备、小键盘、按钮、控制旋钮、麦克等。
[0110] 数据库50可以驻留在大容量存储存储器设备36上,并且可以被用来收集和组织由本文所述的各种系统和模块使用的数据。数据库50可以包括数据以及存储和组织数据的支持数据结构。特别地,数据库50可以被布置成具有任何数据库组织和/或结构,包括但不限于关系数据库、层次数据库、网络数据库、面向对象的数据库,或其组合。
[0111] 形式为作为指令在处理器32上执行的计算机软件应用的数据库管理系统可以被用来响应于查询而访问存储在数据库50的记录中的数据,其中查询可以由操作系统44、其它应用46和/或一个或多个模块动态地确定和执行。虽然在本文中在具体情况下可以使用关系、层次、网络、面向对象或其它数据库术语来描述本发明的实施例,但是应当理解的是,本发明的实施例可以使用任何合适的数据库管理模型,而不限于任何特定类型的数据库。
[0112] 图3描绘了从法国尼斯到纽约约翰肯尼迪机场的航班的示例性预订记录的图像60,其通过巴黎的戴高乐机场连接。预订记录包括存储记录标识符的标识符字段62、乘客姓名字段64和段数量字段65、66。记录标识符可以是字母数字串(例如,89DRGH),其唯一地识别预订数据库18内的预订记录。乘客姓名字段可以存储乘客的姓名(例如,“John Smith”)。
如果多于一名乘客乘坐由预订记录定义的路线,那么可以在预订记录中列出多于一名乘客。每个段字段65、66可以包括航班标识符(例如,AF7711)和舱位代码(例如,表示经济舱的“Y”)。航班标识符可以包括承运人标识符(例如,AF=法国航空公司)和航班号(例如,
7711)。每个段字段还可以包括定义旅行日期(例如,19MAR)、始发地和目的地点(例如,NCECDG)、以及该段的计划出发和到达时间(例如,在7:10出发,在8:45到达)的数据。
[0113] 一旦预订了包括路线的旅行产品,旅客就可以通过购买旅行产品的一张或多张票据来提交(commit)路线。购买机票可以涉及定价、预订和票务。响应于从用户系统14接收到请求,数据库管理系统12可以在费用引擎的帮助下对票据定价。费用引擎可以通过计算由预订记录定义的路线的一个或多个段中的每一段的费用并且将这些费用相加以产生总费用来确定票据的总费用。所得到的票据可以包括一张或多张票证,每张票证与旅程中包括的其中一个段或服务对应。
[0114] 票据的路线可以定义可以使用票据以获得登机牌的段,以及构成行程的其它服务。路线的每个段可以包括一个或多个连续的支路,每个支路将计划的出发站连接到计划的到达站。
[0115] 一旦确认了可用性并且路线被定价,就可以要求旅客批准该交易。响应于旅客批准交易,数据库管理系统12或其它预订系统可以提交到预订记录,向ETS 24发送请求以生成旅行产品的票据,并且使得旅客的账户被收取服务价格的费用。
[0116] 图4描绘了示例性票据数据库记录或“票据”的图像70,其可以响应于在图像60中对预订记录89DRGH进行预订而创建。票据可以包括包含唯一地识别票据的数据(例如,TKT-001)的票据号字段72,包含识别从其生成票据的预订记录的数据的记录定位符字段74,乘客姓名字段76,多个票证字段78、79,以及多个费用分量字段82、83。在示例性票据TKT-001中,票证C1可以与预订记录89DRGH的段S1对应,并且票证C2可以与预订记录89DRGH的段S2对应。
[0117] 每张票证可以包括定义航班号、预订舱位代码、出发日期和时间、始发代码、目的地代码和航班状态的数据。在示例性票据TKT-001中,航班状态显示为“O”或“开放”,表示未使用票证。其它段状态可以包括“F”或“已飞行”,以及“E”或“已交换”。票据还可以包括一个或多个费用分量字段82、83。在票据TKT-001中,费用分量字段82、83显示在票证字段78、79下方,并且与针对预订记录89DRGH的段S1和S2计算的费用FC1和FC2对应。
[0118] 在一些情况下,由于发生中断,旅客可能在其路线中遭受非自愿改变。例如,如果由于天气或机械问题导致航班取消、由于在先段延迟到达而导致错过连接段、调度改变或机场发生最后一分钟问题,那么会发生中断。路线的非自愿改变可以通过完全交换票据或部分交换来处理。在部分交换的情况下,票据数据库中可能存在两个共存的有效(live)票据,每张票据提供旅客的总路线的一部分。在任何一种情况下,都可以在预订记录中定义取代被中断的段的新的路线。然后可以基于更新后的预订记录生成重新签发票据。
[0119] 以使用图像60中描绘的预订记录89DRGH和图像70中描绘的票据TKT-001作为示例,响应于从尼斯到巴黎的段被中断,承运人的代理或自动重新适应(re-accomodation)应用可以更改由预订记录89DRGH定义的路线。例如,可以通过在预订记录中用通过柏林连接的航班取代尼斯到巴黎段来修改预订记录89DRGH。
[0120] 图5描绘了预订记录89DRGH的图像61,如它可以在如上所述被修改之后出现的。图像61示出了在预订记录89DRGH的段字段65中定义的先前段S1已被两个取代段字段67、68取代,这两个段字段67、68定义经由柏林将尼斯连接到戴高乐的新段S1和S2。先前的段S2仍然是路线的一部分,并且现在在段字段69中被指定为段S3。可以针对取代交换的票据的修订路线签发重新签发票据,或者可以签发仅取代中断的段的重新签发票据。在任何一种情况下,因为改变是非自愿的,所以费用可以与原先预订的航班保持不变。在常规的预订系统中,这可能需要代理人手动设置取代段的费用。
[0121] 图6描绘了在票据TKT-001的完全交换中签发重新签发TKT-002的场景。在这种情况下,交换的或“父”票据TKT-001可以如票据图像71中所示的那样出现,并且重新签发票据TKT-002可以如票据图像90中所示的那样出现。重新签发票据可以包括包含新票据号的票据号字段92,包含识别从其生成票据TKT-002的预订记录89DRGH的数据的记录定位符字段94,乘客姓名字段96,多个票证字段98-100,以及多个费用分量字段102-104。
[0122] 在重新签发票据TKT-002的票证字段98、99中识别出的取代票证C1、C2的总费用可以被设置为与被取代的票证(TKT-001的C1)相同的金额(例如,80美元),以将总费用维持在原票价。因为票据TKT-001被完全取代,所以票据TKT-001中的票证C1和C2的状态可以是代表“已交换”的“E”,因为它们已被票据TKT-002中的票证C1、C2和C3取代。
[0123] 图7描绘了部分交换,其中仅针对新的段签发票据TKT-002。在这种情况下,票据TKT-001和TKT-002可以作为票据数据库20中的有效票据共存。如票据TKT-001的图像73和TKT-002的图像91所描绘的,在这种替代场景下,票证C2的状态在票据TKT-001中保持开放,而TKT-002仅包括票证字段98和99以及费用分量字段102和103。
[0124] 因为旅客通常不会由于因中断导致他们的路线改变而被收费,所以可以在不计算取代费用的情况下生成与中断相关联的重新签发票据。例如,当航空公司响应由于天气状况、装备问题、航班机组可用性、超额预订、延迟连接航班等导致的航班中断而在不收费的情况下重新签发票据时,可能会发生这种情况。在不计算取代费用的情况下重新签发票据可以使代理人能够快速地向中断的乘客签发新票据。但是,这些票据可能是缺乏固有费用数据的非标准票据。
[0125] 当在非自愿交换之后请求涉及重新签发票据的附加交易时,缺乏固有费用数据可能产生问题。例如,用于确定忠诚度计划积分(例如,常旅客里程累积)、取消航班补偿和/或退款或重新签发票据的交换价值的计算可以基于所支付的段而不是基于由于非自愿交换而实际飞行或出票的段。这些类型的计算可能需要全局费用信息(例如,票据的总价格)以及关于费用分量和/或票证级别的原始票据的结构价格的信息。
[0126] 作为具体示例,如果作为非自愿交换的一部分而签发的重新签发票据随后由旅客自愿交换,那么通常不应当对非自愿改变的航班向旅客估价(assess)额外的费用。如果旅客稍后要求重新签发票据的部分退款,那么确定重新签发票据的剩余价值可能需要关联原始票据和重新签发票据中的段。然后可以使用重新签发票据来确定每张票证的状态(例如,开放、飞行或交换),并且原始票据可以用于定义每个段的货币价值(例如,支付了多少和/或费用的金额)。
[0127] 可以使结构价格信息的确定进一步复杂化的情景可以包括票据的部分交换,这可以导致在多张票据之间分割完整的路线。在一些情况下,由于票据的年龄,可能已从系统中清除了一个或多个交换的票据。因为票据寿命可以不同,所以与重新签发的票据相关的一些交换票据可以是可用的,而其它票据可能丢失。出于至少这些原因,试图通过识别和检索每个交换的票据来确定结构价格信息,并且重建交换历史可以产生错误的结果。
[0128] 可以基于延迟航班的价值来确定对退票据或交换的票据的补偿。因为未购买由于非自愿交换而签发的取代段的票证,所以这些票证的价值可能不一定基于为交换段支付的金额或取代段的正常费用来确定。即,这些段可以具有与交换或取代段的正常费用无关的值。在一些情况下,补偿可以与最初购买的票据的原始票证相关联。但是,可能难以或不可能仅基于票据记录来确定特定段的交换是自愿的还是非自愿的。在交换整张票据的情况下,可能也难以确定交换发生。
[0129] 可能需要票据和预订记录遵守某些标准格式,以便在各种承运人、旅行社和GDS系统之间保持兼容性。因此,为了解决由非自愿交换引起的问题,可能不可能仅仅将新类型的数据添加到票据和预订记录或以其它方式修改票据和预订记录。为了解决这些问题,本发明的实施例可以采用过渡记录来跟踪旧费用分量和票证数据。过渡记录可以包括新类型的数据库记录,交换服务器26使用该记录来提供本发明实施例的各种特征。交换服务器26可以分析票据和预订记录以确定哪些航班已被中断,将旧路线中的段链接到新路线中的对应段,以及在过渡记录中存储定义这些中断的段和链接的数据。
[0130] 交易记录可以包括如果已经作为自愿交换的一部分签发那么将包括在非自愿票据中的费用结构数据。交换服务器26还可以基于过渡记录中的数据创建包括当前路线中的所有票证的混合票据。来自最初购买的票据的费用信息以及到混合票据的票证的链接可以存储在过渡记录中,并且可以促进确定非自愿交换票据的结构价格信息。
[0131] 混合票据可以使非自愿票据能够被显示为好像其已经被定价和购买,而不是作为交换的一部分签发。这可以使后续处理能够通过将先前签发的票据与对应的重新签发票据相匹配来透明地对非自愿交换的票据进行操作。根据给定的非自愿票据,本发明的实施例可以使用户系统14显示实际的完整路线,包括已飞行和开放段。这可以允许在交换链中的票据之间进行相关,这可以促进以后非自愿交换的票据的交换或退款。对于重新签发票据的任何给定票证,交换服务器26可以找到票证的定价元素,例如票证所源自的(一个或多个)原始费用分量。这可以使交换服务器26能够为票证指派值。补偿规则可适用于这些费用分量,并基于原始价格确定里程累积。
[0132] 图8描绘了可以由交换服务器26实现以管理非自愿交换的票据交换处理110的流程图。在方框112中,处理110可以接收非自愿交换的请求。这个请求可以包括正在交换的票据的票据号和/或与该票据相关联的预订记录的记录定位符。响应于接收到请求,处理110可以前进到方框114并且从票据数据库20检索正在交换的票据。检索票据可以包括向票据数据库20发送请求票据图像(image)的查询。这个图像可以包括定义包括票据的票证和用于对票据定价的费用分量的数据,并且可以包括在由票据数据库20发送到交换服务器26的回复中。对于示例性原始定价和购买的票据TKT-001,票据数据库20可以将图4的图像70返回到交换服务器26。
[0133] 响应于从票据数据库20接收到回复,处理110可以前进到方框116并检查票据中的每张票证的状态以确定票据是否有资格进行交换。例如,如下票据可能不符合交换条件,对于所述票据所有票证已经被飞行。如从图像70中的票证字段78、79可以看出的,TKT-001的票证C1和C2是开放的。因此,票据TKT-001可以有资格进行交换。
[0134] 一旦确定了正在交换的票据的每张票证的状态,处理110就可以前进到方框117并且检索由票据的记录定位符字段中的数据识别出的预订记录。在本示例中,票据TKT-001的记录定位符字段74识别预订记录89DRGH,其可以如图5的图像61所描绘的那样出现。预订记录可以定义包括取代来自先前路线的一个或多个中断段的一个或多个取代段(例如,段S1和S2)的取代路线。
[0135] 响应于接收到预订记录的图像,处理110可以进行到方框118并且在票据数据库20中创建重新签发票据(例如,票据TKT-002)。处理110还可以修改原始票据(例如,票据TKT-001)以反映对那个票据状态的改变。在本示例性场景中,连接尼斯到巴黎的原始段S1已经在预订记录89DRGH中被包括具有在柏林的连接的航班的两个段S1和S2取代。对于完全交换的情况,可以在票据数据库20中创建如图6的图像90所描绘的票据TKT-002。因为图像90中描绘的票据TKT-002是如图像70中所描绘的票据TKT-001的完全替代,所以可以通过将票证的状态改变为“已交换”来修改TKT-001,如图像71中所示。
[0136] 一旦已经创建和/或修改了交换中涉及的票据,处理110就可以前进到方框119。在方框119中,处理110可以确定父票据和重新签发票据中的每一个的哪些票证与中断相关联。一旦识别出中断的票证,处理110就可以前进到方框120,并创建存储与票据交换有关的数据的过渡记录。如下所述,过渡记录可以提高涉及重新签发票据的交换的未来数据检索操作的速度和效率。
[0137] 确定哪些票证与中断对应并创建链接这些票证的过渡记录的处理可以通过识别父票据中涉及交换的一张或多张票证开始。如果被比较的票证具有相同的航班信息,那么可以将父票据中的票证视为与重新签发票据中的票证匹配。例如,航班信息可以包括确认承运人和运营承运人的身份、航班号、出发和到达地点、预订和/或舱位、和/或出发和到达的航班日期。
[0138] 图9描绘了示例性交换索引122,其包括若干数组或“集合”124-128。交换服务器26可以使用这些集合来识别父票据和重新签发票据中的中断票证,并且将父票据中的票证与重新签发票据中的对应取代票证链接。集合124-128可以包括在父票据中开放(并因此可交换)的一个或多个父票证ag的集合A。对于具有m张票证的集合A,该集合可以定义如下:
[0139] A={ag},g∈[0,m]    (等式1)
[0140] 在部分交换的情况下,可以过滤集合A中的票证,以便仅分析可能涉及票据交换的票证。例如,可以从分析中排除具有已飞行状态的任何票证。如果父票据中的一张或多张票证已经不按顺序飞行(即,存在具有比已飞行票证更早的离开日期的开放票证),那么具有在已飞行票证的离开日期之前的离开日期的任何开放票证也可以从集合A中过滤掉。
[0141] 交换服务器26还可以确定重新签发票据中的一个或多个取代票证bh的集合B。集合B可以包括n张票证,其共同提供取代集合A中的中断段的票证的解决方案。票证bh的集合B可以定义如下:
[0142]
[0143] 为了记录与每个集合中票证之间的中断和链接的关联,交换服务器可以用m个布尔运算符a′g填充集合A',用n个布尔运算符b′h填充集合B',并且用l个链接填充集合D。例如,集合A'可以由等式3表示,
[0144] A′={a′g},g∈[0,m]   (等式3)
[0145] 其中,如果票证ag与被中断的段对应,那么每个运算符a′g具有真值(例如,“1”),而如果票证ag不与被中断的段对应,那么具有假值(例如,“0”)。类似地,集合B′可以由等式4表示,
[0146]
[0147] 其中,如果票证bh与中断对应(即,票证正在取代中断的票证ag),那么每个运算符b′h具有真值,而如果对应的票证bh不与中断对应,那么具有假值(即,票证bh不取代中断的票证ag)。在实施例中,每个运算符a′g和b′h的值可以以假开始或者按照其他方式最初被设置为假。集合D可以包括链接的数组,其提供将每张票证ag链接到取代票证ag的一张或多张票证bh的索引。
[0148] 集合D可以包括l个链接dk的集合,每个链接dk包括定义父票证ag和对应取代票证bh之间的关系的数据结构。每个链接dk可以表示为:
[0149] dk=(ag,bh)   (等式5)
[0150] 每个父票证ag可以链接到至少一个取代票证bh。同样,每个取代票证bh可以链接到至少一个父票证ag。例如,中断的段可以由多于一个段代替(例如,如果直飞航班由连接航班代替),反之亦然。这可以导致m不等于n。因此,集合D中的链接dk的数量l可以通过下式提供:
[0151] l=max(n,m)
[0152] 因为每个父/取代票证被链接到至少一个取代/父票证。在被中断的段和取代段之间可能不一定存在一对一的对应关系,因为单个被中断的段可以被两个取代段取代,或者两个被中断的段可以被单个取代段取代。
[0153] 生成集合A′、B′和D的处理可以包括比较集合A中最早的父票证(即,具有最早出发时间的票证)(例如,票证a1)和集合B中最早的取代票证(例如,票证b1)。如果票证匹配(即,每张票证可兑换(redeemable)的段基于航班数据看起来是相同的段),那么交换服务器26可以将集合A中的下一个最早的父票证与集合B中的下一个最早的取代票证进行比较,按时间顺序推进,直到找到两个不匹配的票证。
[0154] 响应于识别出不匹配的一对票证,处理可以选择集合A中最新的父票证(即,具有最新的出发时间的票证)(例如,票证an)、集合B中最新的取代票证(例如,票证bm),并比较这些票证。如果票证匹配,那么交换服务器26可以将集合A中的下一个最新票证与集合B中的下一个最新票证进行比较,以反向时间顺序推进,直到找到两个不匹配的票证。然后,交换服务器26可以确定最早的非匹配票证对和最新的非匹配票证对之间的所有票证都与中断相关联,其中最早的非匹配票证对和最新的非匹配票证对之间包括所述最早的非匹配票证对和所述最新的非匹配票证对。即,识别出的票证与集合A中的中断的票证ag以及集合B中对应的取代票证bh对应。
[0155] 图10-13呈现了描绘处理130的流程图,该处理130可由交换服务器26实现,以检测中断的票证、将它们与其对应的取代票证匹配,并生成交换索引。参考图10,在方框132中,处理130可以初始化一个或多个计数器,例如,通过设置计数器i=1和计数器j=0。计数器可以用于跟踪正在分析集合A和B中的哪些票证,以及通过处理130将链接ak添加到集合D的位置。
[0156] 一旦设置了计数器,处理130就可以前进到方框134并比较来自集合A的票证ai与来自集合B的票证bi。如果票证不匹配(判定框136的“否”分支),那么处理130可以前进到方框138,在集合A′和B′中将a′i和b′i的值设置为真,从而指示票证与中断相关联,并且前进到方框139(图11)。如果票证匹配(判定框136的“是”分支),那么处理130可以前进到方框140。
[0157] 在方框140中,处理130可以确定票证ai+1是否存在于集合A中,并且票证bi+1是否存在于集合B中。如果在其相应集合中不存在任一票证(判定框140的“否”分支),那么处理130可以前进到方框142(图12)。如果两张票证都存在于它们相应的集合中(判定框140的“是”分支),那么处理130可以前进到方框144。
[0158] 在方框144中,处理130可以分别在集合A′和B′中将a′i和b′i的值设置为假,以指示票证不与中断相关联,并且向集合D添加链接di=(ai,bi)。链接di可以定义票证ai和票证bi之间的关系。然后,处理130可以前进到方框146,递增计数器i,返回到方框134,并继续票证比较处理。
[0159] 现在参考图11,在方框139中,处理130可以将票证am-j与票证bn-j进行比较。如果票证不匹配(判定框148的“否”分支),那么处理130可以前进到方框150。在方框150中,处理130可以将集合A′中的每个运算符a′i至a′m-j以及集合B′中的每个运算符b′i至b′m-j的值设置为真。对于g=i至m-j以及h=i至n-j,处理130还可以将链接d=(ag,bh)添加到D。一旦在其相应的集合中定义了运算符和链接,处理130就可以结束。
[0160] 如果票证匹配(判定框148的“是”分支),那么处理130可以前进到方框152。在方框152中,处理130可以确定运算符a′m-j或运算符b′n-j是否为真。如果任一运算符为真(判定框
152的“是”分支),那么处理130可以前进到方框154(图13)。如果两个操作符都不为真(判定框152的“否”分支),那么处理130可以前进到方框156。
[0161] 在方框156中,处理130可以分别将集合A′和B′中的a′m-j和b′n-j设置为假,并且向集合D添加链接dl-j=(am-j,bn-j)。链接dl-j可以定义票证am-j和票证bn-j之间的关系。然后,处理130可以前进到方框158,递增计数器j,返回到方框139,并继续票证比较处理。
[0162] 现在参考图12,在方框142中,处理130可以确定票证bi+1是否存在于集合B中。如果票证存在(判定框142的“是”分支),那么处理130可以前进到方框160并且将集合B′中的每个运算符b′i+1至bn的值设置为真。对于h=i至n,处理130还可以向集合D添加链接d=(ai,bh)。一旦设置了运算符b′i+1至b′n′的值并将链接d添加到集合D,处理130就可以结束。如果票证bi+1在集合B中不存在(判定框142的“否”分支),那么处理130可以前进到方框162。
[0163] 在方框162中,处理130可以确定票证ai+1是否存在于集合A中。如果票证存在(判定框162的“是”分支),那么处理130可以前进到方框164。在方框164中,对于g=i至m,处理130可以将集合A′中的每个运算符a′i+1至a′m的值设置为真,并且将链接d=(ag,bi)添加到D。一旦设置了运算符a′i+1至a′m的值并且将链接d添加到集合D,处理130就可以结束。如果在集合A中不存在票证ai+1(判定框162的“否”分支),那么处理130可以前进到方框166,生成指示没有检测到中断的票证的消息,并且结束。
[0164] 现在参考图13,在方框154中,处理130可以确定运算符b′n-j的值是否为真。如果运算符b′n-j的值为真(判定框154的“是”分支),那么处理130可以前进到方框168,将集合B′中的运算符b′n-j的值设置为假,并将集合A′中的每个运算符a′i至a′m-j-1的值设置为真。在结束之前,对于g=i至m-j,处理130还可以将链接dg=(ag,bn-j)添加到D。如果运算符b′n-j的值不为真(判定框154的“否”分支),那么处理130可以前进到方框170。在方框170中,处理130可以将集合A′中的运算符a′m-j的值设置为假,并且将集合B′中的每个运算符b′i至b′n-j-I的值设置为真。对于h=i至n-j,处理130还可以在结束之前将链接dh=(am-j,bh)添加到D。
[0165] 图14描绘了上述处理130对来自父票据的票证182-185的示例性集合180(例如,票证a1-a4的集合A)以及来自重新签发票据的票证192-195的示例性集合190(例如,票证b1-b4的集合B)的应用。交换服务器26可以通过初始化计数器i=1和计数器j=0,并且基于计数器i的值按时间顺序中从集合A和集合B中的每一个中选择最早的票证(例如,票证a1和票证b1)来开始分析。
[0166] 交换服务器26可以比较所选择的票证a1与b1(如双箭头线200所指示的)以确定它们是否具有相同的航班信息。响应于确定票证确实具有相同的航班信息(即,a1=b1),交换服务器26可以接下来确定票证a2是否存在于集合A中,并且票证b2是否存在于集合B中。响应于确定这些票证确实存在于它们相应的每个集合中,交换服务器26可以设置(或根据具体情况核实)集合A′的运算符a′1和集合B′的运算符b′2的值等于假(从而指示它们与中断的链接无关),并且向集合D添加链接d1=(a1,b1),并将计数器i递增到2。
[0167] 然后,交换服务器26可以将集合A的票证a2与来自集合B的票证b2进行比较(如双箭头线202所指示的),它们是由计数器i指示的每个集合中按时间顺序的下一张票证。因为票证a2的航班信息与票证b2的航班信息不同,所以交换服务器26可以确定票证a2与票证b2不匹配,即,a2≠b2。
[0168] 响应于确定a2≠b2,交换服务器26可以将集合A′的运算符a′2和集合B′的运算符b′2的值设置为真。交换服务器26还可以基于计数器j的值和每个集合中票证的数量按照时间顺序从集合A和集合B中的每一个中选择最新出现的票证(例如,集合A的票证a4和集合B的票证b4),并比较所选择的票证,如由双箭头线204所指示的。因为这些票证中的每一个的航班信息是相同的,所以交换服务器26可以确定a4=b4。响应于确定a4=b4,交换服务器26还可以确定集合A′的运算符a′4或集合B′的运算符b′4的值是否为真。在本示例中,由于运算符a′4和运算符b′4都未被设置为真,因此交换服务器26可以确定这两个运算符都没有为真的值。作为这个确定的结果,交换服务器26可以将这些运算符中的每一个的值设置为假,将链接d4=(a4,b4)添加到集合D,并将计数器j递增到1。
[0169] 然后,交换服务器26可以基于计数器j的值按照时间顺序从集合A和集合B中的每一个中选择下一个最新的票证(例如,集合A的票证a3和集合B的票证b3),并且比较选择的票证,如双箭头线206所指示的。因为这些票证中的每一个的航班信息是相同的,并且运算符a′3和运算符b′3都没有被设置为真,所以交换服务器26可以将这些运算符中的每一个的值设置为假,将链接d3=(a3,b3,)添加到集合D,并将计数器j递增到2。
[0170] 然后,交换服务器26可以基于计数器j的值按时间顺序从每个集合中选择下一个最新的票证(例如,集合A的票证a2和集合B的票证b2),并比较票证,如双箭头线208所指示的。响应于确定a2≠b2,交换服务器26可以将运算符a′2的值设置为真,将运算符b′2的值设置为真,将链接d2=(a2,b2)添加到集合D,并且结束分析。
[0171] 图15描绘了上述处理130对票证182-185的示例性集合180和来自重新签发票据的票证212-215的另一个示例性集合210(例如,票证b1-b4的集合B)的应用,其中票证b1和b2已经取代票证a1和a2。
[0172] 交换服务器26可以通过初始化计数器并按照时间顺序从集合A和集合B中的每一个中选择最早的票证(例如,如计数器i所指示的票证a1和票证b1)来开始分析。交换服务器26可以比较所选择的票证a1与b1(如双箭头线220所指示的)以确定它们是否具有相同的航班信息。响应于确定票证不具有相同的航班信息(即,a1≠b1),交换服务器26可以将集合A′的运算符a′1和集合B′的运算符b′1的值设置为真。
[0173] 然后,交换服务器26可以按照时间顺序从集合A和集合B中的每一个中选择最新出现的票证(例如,集合A的票证a4和集合B的票证b4),并比较所选择的票证,如双箭头线222所指示的。因为这些票证中的每一个的航班信息是相同的,所以交换服务器26可以确定a4=b4。响应于确定a4=b4,交换服务器26还可以确定集合A′的运算符a′4或集合B′的运算符b′4的值是否为真。因为运算符a′4和运算符b′4都没有被设置为真,所以交换服务器26可以将这些运算符中的每一个的值设置为假,并将链接d4=(a4,b4)添加到集合D,并将计数器j递增到1。
[0174] 然后,交换服务器26可以基于计数器j的值按照时间顺序从集合A和集合B中的每一个中选择下一个最新的票证(例如,集合A的票证a3和集合B的票证b3),并比较所选择的票证,如双箭头线224所指示的。因为这些票证中的每一个的航班信息是相同的,并且运算符a′3和运算符b′3都没有被设置为真,所以交换服务器26可以将这些运算符中的每一个的值设置为假,并将链接d3=(a3,b3)添加到集合D,并将计数器j递增到2。
[0175] 然后,交换服务器26可以基于计数器j的值按照时间顺序从集合A和集合B中的每一个中选择下一个最新的票证(例如,集合A的票证a2和集合B的票证b2),并且比较所选择的票证,如双箭头线226所指示的。响应于确定a2≠b2,交换服务器26可以将运算符a′1、a′2、b′1和b′2的值设置为真,将链接d1=(a1,b1)和d2=(a2,b2)添加到集合D,并结束分析。
[0176] 图16描绘了上述处理130对票证182-185的示例性集合180和来自重新签发票据的票证232-236的示例性集合230(例如,票证b1-b5的集合B)的应用,其中票证b2和b3取代票证a2。
[0177] 交换服务器26可以通过初始化计数器并从它们相应的集合A和B中选择最早的票证a1和b1来开始分析。交换服务器26可以比较所选择的票证(如双箭头线238所指示的),确定它们具有相同的航班信息,并且票证a2存在于集合A中且票证b2存在于集合B中。响应于这些确定,交换服务器26可以将集合A′的运算符a′1和集合B′的运算符b′2的值设置为假,将链接添加到集合D,并将计数器i递增到2。
[0178] 然后,交换服务器26可以基于计数器i的值按时间顺序从集合A和集合B中的每一个中选择下一个最早的票证(例如,集合A的票证a2和集合B的票证b2),并且比较所选择的票证,如双箭头线240所指示的。因为票证a2的航班信息不同于票证b2的航班信息,所以交换服务器26可以确定a2≠b2。响应于这个确定,交换服务器26可以将集合A′的运算符a′2和集合B′的运算符b′2的值设置为真,从集合A和集合B中的每一个中按时间顺序选择最新出现的票证(例如,集合A的票证a4和集合B的票证b5),并比较所选择的票证,如双箭头线242所指示的。
[0179] 因为票证a4与b5的航班信息是相同的,所以交换服务器26可以确定a4=b5。响应于确定a4=b5,交换服务器26还可以确定集合A′的运算符a′4或集合B′的运算符b′5的值是否为真。因为运算符a′4和运算符b′5都没有设置为真,所以交换服务器26可以将这些运算符中的每一个的值设置为假,将链接d5=(a4,b5)添加到集合D,并将计数器j递增到1。
[0180] 然后,交换服务器26可以基于计数器j的值按照时间顺序从集合A和集合B中的每一个中选择下一个最新的票证(例如,集合A的票证a3和集合B的票证b4),并比较所选择的票证,如双箭头线244所指示的。因为这些票证中的每一个的航班信息是相同的,并且运算符a′3和运算符b′4都没有被设置为真,所以交换服务器26可以将这些运算符中的每一个的值设置为假,将链接d4=(a3,b4)添加到集合D,并将计数器j递增到2。
[0181] 然后,交换服务器26可以基于计数器j的值按照时间顺序从集合A和集合B中的每一个中选择下一个最新的票证(例如,集合A的票证a2和集合B的票证b3),并比较所选择的票证,如双箭头线246所指示的。响应于确定a2≠b3,交换服务器26可以将运算符a′2、b′2和b′3的值设置为真,将链接d2=(a2,b2)和d3=(a2,b3)添加到集合D,并结束分析。
[0182] 图17描绘了上述处理130对票证182-185的示例性集合180和来自重新签发票据的票证252-254的示例性集合250(例如,票证b1-b3的集合B)的应用,其中与票证a1和a2对应的航班用与票证b1对应的直飞航班取代。
[0183] 交换服务器26可以初始化计数器,从它们相应的集合A和B中选择最早的票证a1和b1,并且比较所选择的票证a1与b1,如双箭头线256所指示的。响应于确定票证不具有相同的航班信息,交换服务器26可以将集合A′的运算符a′1和集合B′的运算符b′1的值设置为真,按照时间顺序从集合A和集合B中的每一个中选择最新出现的票证(例如,集合A的票证a4和集合B的票证b3),并比较所选择的票证,如双箭头线258所指示的。
[0184] 响应于确定a4=b3,交换服务器26可以确定集合A′的运算符a′4或集合B′的运算符b′3的值是否为真。因为运算符a′4和运算符b′3都没有被设置为真,所以交换服务器26可以将这些运算符中的每一个的值设置为假,并将链接d4=(a4,b3)添加到集合D,并将计数器j递增到1。
[0185] 然后,交换服务器26可以基于计数器j的值按照时间顺序从集合A和集合B中的每一个中选择下一个最新的票证(例如,集合A的票证a3和集合B的票证b2),并比较所选择的票证,如双箭头线260所指示的。响应于确定a3=b2,交换服务器26可以确定集合A′的运算符a′3或集合B′的运算符b′2的值是否为真。因为运算符a′3和运算符b′2都没有被设置为真,所以交换服务器26可以将这些运算符中的每一个的值设置为假,将链接d3=(a3,b2)添加到集合D,并将计数器j递增到2。
[0186] 然后,交换服务器26可以基于计数器j的值按照时间顺序从集合A和集合B中的每一个中选择下一个最新的票证(例如,集合A的票证a2和集合B的票证b1),并比较所选择的票证,如双箭头线262所指示的。响应于确定a2≠b1,交换服务器26可以将运算符a′1、a′2和b′1的值设置为真,将链接d2=(a2,b1)添加到集合D,并且结束分析。
[0187] 图18描绘了上述处理130对票证182-185的集合180和来自重新签发票据的票证272、274的示例性集合270(例如,票证b1-b2的集合B)的应用,其中与票证a1和a2对应的航班已被取消。
[0188] 交换服务器26可以初始化计数器,从它们相应的集合A和B中选择最早的票证a1和b1,并且比较所选择的票证a1与b1,如双箭头线276所指示的。响应于确定票证不具有相同的航班信息,交换服务器26可以将集合A′的运算符a′1和集合B′的运算符b′1的值设置为真。
[0189] 然后,处理130可以按照时间顺序从集合A和集合B中的每一个中选择最新出现的票证(例如,集合A的票证a4和集合B的票证b2),并比较所选择的票证,如双箭头线278所表示的。响应于确定a4=b2,交换服务器26可以确定集合A′的运算符a′4或集合B′的运算符b′2的值是否为真。因为运算符a′4和运算符b′2都没有被设置为真,所以交换服务器26可以将这些运算符中的每一个的值设置为假,将链接d4=(a4,b2)添加到集合D,并将计数器j递增到1。
[0190] 然后,交换服务器26可以基于计数器j的值按照时间顺序从集合A和集合B中的每一个中选择下一个最新的票证(例如,集合A的票证a3和集合B的票证b1),并比较所选择的票证,如双箭头线280所表示的。交换服务器26可以确定这些票证中的每一个的航班信息是相同的。但是,作为先前与票证a1的比较的结果,交换服务器26还可以确定运算符b′1已被设置为真。响应于确定运算符b′1已被设置为真,交换服务器26可以将运算符b′1设置为假,将运算符a′1和a′2的值设置为真,并将链接 和d3=(a3,b1)添加到集合D,并结束分析。
[0191] 一旦已经识别出并链接了父票据中中断的票证及其重新签发票据中对应的取代票证,交换服务器26就可以将这个信息存储在数据库记录中以供将来使用。但是,票据和预订记录可能需要遵守某些标准格式,以便在各种承运人、旅行社和GDS系统之间维持兼容性。因此,可能无法将新类型的数据添加到票据和预订记录或以其它方式进行修改,以存储由交换服务器26生成的附加非标准数据。
[0192] 为了提供用于存储由交换服务器26生成的非标准数据的记录,本发明的实施例可以使用过渡记录。过渡记录可以包括由交换服务器26用于跟踪旧费用分量和票证数据的各数据字段,并且可以包括由交换服务器26用来提供本发明实施例的各种特征的新类型的数据库记录。过渡记录可以存储提供重新签发票据的完整交换历史的信息。存储在交易记录中的信息可以与具体的预订记录相关联,并且可以包括当前路线的每张票证的副本以及来自链接到目前路线的票证的任何原始定价和购买的票据票证的费用和票证信息。
[0193] 图19描绘了根据本发明实施例的示例性过渡记录300,其包括费用结构索引302和中断索引304。过渡记录300还可以包括指示生成记录的处理以及过渡记录300是否是基于多于一个原始票据生成的的各标志(未示出)。
[0194] 费用结构索引302可以存储描述在任何交换之前最初签发的票据的数据,包括原始票据的费用分量和票证的细节。除了添加中断标志之外,这个数据可以保持不被交换处理修改,中断标志可以在每次交换之后更新。由此,费用结构索引302可以允许数据库管理系统12处理票据交换而无需从票据数据库20中检索原始票据。
[0195] 费用结构索引302可以包括费用元素310、312和产品元素314、316。每个费用元素310、312可以存储原始票据的票证的费用数据,并且可以链接到相应的产品元素314、316以定义数据结构315、317。每个产品元素可以存储识别与产品元素所链接到的费用元素对应的票据和票证的数据。费用结构索引302还可以包含来自最初购买的票据的基本费用和税数据。
[0196] 中断索引304可以基于来自一个或多个交换索引的数据提供每张票证的交换的映射,并且可以在每次交换票据时更新。通过允许数据库管理系统12将来自重新签发票据的票证与原始票据的对应票证以及任何其它中间父票据相匹配,中断索引304可以使得能够进行重新签发票据的后续处理,使用缺少这个特征的系统将可能无法进行所述后续处理。
[0197] 中断索引304可以包括一个或多个数组318-320,每个数组定义链接的数据元素的集合。每个数组318-320可以包括与来自父票据的票证字段对应的票证元素322-324,以及与来自重新签发票据的票证字段对应的票证元素326-328。数组318-320可以被布置在中断索引304内,作为从最早的数组(例如,具有与具有最早出发时间的票证对应的数据元素的数组)到最新的数组(例如,具有与具有最新出发时间的票证对应的数据元素的数组)的有序的一系列数组。
[0198] 票证元素322-324可以与集合A的票证对应,票证元素326-328可以与集合B的票证对应,并且票证元素之间的链接可以由生成的对应中断索引的集合D的各链接d定义,所述生成与重新签发票据(例如,TKT-002)与父票据(例如,TKT-001)的交换相关联。与中断相关联的票证元素(例如,票证元素322和323)可以被标记为中断。票证元素的状态可以通过在对应交换索引的集合A′和/或集合B′中将相关联的运算符a'g和/或b′h的值设置为真(中断)或假(未中断)来定义。
[0199] 举例来说,可以根据票据TKT-002与票据TKT-001的示例性交换来描述过渡记录300,如上面参考图3-6所描述的。在这个示例中,费用元素310可以存储定义用于票据TKT-
001的票证C1的费用信息的数据。费用信息可以包括费用的金额(例如,80美元)和指示费用是针对已经被交换的票证定价的状态标志(例如,“*OLD”)。相关联的产品元素314可以存储定义用于被交换产品的产品信息的数据,例如,识别票据TKT-001的票证C1可以用于获得登机牌的具体段的数据。产品元素314还可以包括指示产品被中断的状态标志(例如,*DIS)。
[0200] 每个数组318-321中的最新数据元素326-328可以存储定义作为当前路线的一部分的票证的细节的数据,并且可以用于定义混合票据。在完全交换的情况下,混合票据中的票证可以与票据数据库中的重新签发票据一一对应,或者在部分交换的情况下,混合票据中的票证可以包含来自票据数据库20中的多张票据中的每张票据的票证。
[0201] 在当前示例中,票证元素326可以包括识别票据TKT-002的票证C1的数据,票据TKT-002的票证C1可以已被签发以交换票据TKT-001的票证C1。因而,票证元素326可以链接到票证元素322,票证元素322可以包括识别票据TKT-001的票证C1的数据,并且可以被标记为与中断对应。
[0202] 票证元素327可以包括识别票据TKT-002的示例性票证C2的数据,票据TKT-002的示例性票证C2也被签发以交换票据TKT-001的票证C1。因而,票证元素327可以链接到票证元素323,票证元素323还可以包括识别票据TKT-001的票证C1的数据并且被标记为与中断对应。票证元素328可以包括识别票据TKT-002的示例性票证C3的数据,票据TKT-002的示例性票证C3被签发以交换票据TKT-001的票证C2。因而,票证元素328可以链接到票证元素324,票证元素324可以包括识别票据TKT-001的票证C2的数据。但是,因为票证C2不与触发用票据TKT-002交换票据TKT-001的中断对应,所以票证元件324可以不包含指示票据TKT-
001的票证C2与中断相关联的标志。中断索引304的数组318-320可以共同提供包括旅客的当前路线的票证的交换历史。
[0203] 在导致票据TKT-001被换成票据TKT-002的中断之后,可能发生另一次中断。响应于这后来发生的中断,承运人的代理人或自动重新适应应用可以通过用一个或多个取代段替换被中断的一个或多个段来更改路线。例如,如果如图像61(图5)中所示的预订记录89DRGH的段S3预订的巴黎到纽约段被取消(例如,由于机械故障或缺少机组人员),那么段S3可以被另一个航班取代。
[0204] 图20描绘了更新后的预订记录89DRGH的图像63、更新后的票据TKT-002的图像93,以及可能被签发以交换票据TKT-002的重新签发票据TKT-003的图像340。如图像63所示,预订记录89DRGH的段字段330和段字段332定义了段S3和S4,它们已经取代了预订记录89DRGH的段字段69中被中断的段S3,如图像61所示。
[0205] 票据图像340可以包括包含识别票据的数据(例如,TKT-003)的票据号字段342、记录定位符字段344、乘客姓名字段346、多个票证字段348-351,以及多个费用分量字段356-359。每张票证C1-C4可以与如图像63所描绘的更新后的预订记录89DRGH中定义的相应段S1-S4对应。因为改变是非自愿的,所以总费用可以再次与最初预订的航班保持不变。
[0206] 在交换之后,可以更新票据数据库20中的对应父票据记录,以反映每张票证的当前状态。例如,票据TKT-003中的取代票证C3和C4的总费用可以设置为80美元以将总费用维持在原始费用,并且父票据TKT-002中的票证C1、C2和C3的状态可以被设置为“E”以指示已经交换了票证。原始票据TKT-001可以保持不变,在这种情况下票据TKT-001可以保持如图像71所描绘的那样(图6)。一旦签发了重新签发票据TKT-003,交换服务器26就可以分析票据记录、生成交换索引,并更新过渡记录300以反映这些改变。
[0207] 图21描绘了根据以上示例在票据TKT-003的签发之后过渡记录300可以如何出现。在所描绘的示例性实施例中,中断索引304包括新的票证元素360-363,其包含识别被签发以取代票据TKT-002的票证的票证的数据。每个票证元素360-363可以与对应的数组318-
321相关联,对应的数组318-321提供相关联的票证元素360-363的交换历史。票证元素328和329可以包括中断标志以指示这些票证与最新或最近的中断对应。
[0208] 费用元件310、312和产品元素314、316可以存储图19和21中未示出的附加数据。可以存储在费用元素310、312中的附加类型的数据可以包括识别或定义费用分量号、基础费用、忠诚点数、始发地、目的地、行程指示符、费用基础代码和票据代号、费用系列代码和所有者、乘客设施费用、税和/或其它费用的数据。可以存储在产品元素314、316中的附加数据的类型可以包括票证号、航班号、运营航空公司代码、预订舱位、出发和到达机场的机场代码、出发和到达时间、原始票据号,以及是否存在中断标志。产品元素314、316可以包括原始票据的费用计算中涉及的所有段,包括已经飞行的段。
[0209] 响应于指示用户希望查看票据的输入,在用户系统14上运行的客户端应用可以将显示查询发送到数据库管理系统12。响应于接收到查询,数据库管理系统12可以针对在所述查询中识别出的票据来查询票据数据库20,和/或针对与该票据对应的过渡记录来查询过渡记录数据库28。数据库管理系统12可以使用来自过渡记录的数据来丰富来自票据记录的数据,并将响应发送到客户端应用。
[0210] 图22描绘了TKT-001的图像370和TKT-002的图像400,其可以响应于数据库管理系统12接收到显示查询而被显示。作为示例,在交换票据TKT-002之前发送的票据TKT-001的显示查询可以使用户系统14显示票据TKT-001的图像370。所显示的票据图像370包括票据号字段372、记录定位符字段374、乘客姓名字段376、票证字段378、379、费用计算行382以及费用分量字段384、386。
[0211] 如果数据库管理系统12在由尼斯到巴黎航班AF7711的中断引起的交换之后接收到从预订记录89DRGH发出的票据的显示查询,那么数据库管理系统12可以使用户系统14显示票据图像400。票据图像400的下划线部分可以表示添加到票据图像400的信息,该信息是基于来自过渡记录300的数据生成的。所显示的票据图像400包括票据号字段402、记录定位符字段404、乘客姓名字段406、票证字段408-410、费用计算行414以及费用分量字段416、418。票据图像400还可以包括原始票据票证字段420、422,其提供与原始定价和签发的票据有关的信息。这些字段420、422可以提供结构化费用分量和具有票证细节的旧飞行信息。
[0212] 所显示的图像400可以包括附加到票证字段408和409的信息,例如,“(DIS TKT-001 C1)”。这个信息可以将当前票证链接到它取代的中断的票证。例如,附加到TKT-002的票证C1和C2的信息可以提供票证被签发以取代来自票据TKT-001的中断的票证C1的指示。
数据(例如,“FOR TKT-001 C1”、“FOR TKT-001C2”)也可以附加到费用分量字段416、418,以提供费用的源的指示。
[0213] 图23描绘了TKT-003的图像430,其可以响应于数据库管理系统12在由于巴黎到纽约航班的中断而造成的TKT-002与TKT-003交换之后接收显示查询而被显示。与图22一样,图像430的下划线部分可以表示基于来自过渡记录300的数据添加到票据图像430的信息。所显示的票据图像430可以包括票据号字段432、记录定位符字段434、乘客姓名字段436、票证字段438-441、费用计算字段446、费用分量字段448、450以及原始票据票证数据字段452、
454。
[0214] 将TKT-003的每张票证链接到来自票据TKT-001和TKT-002的中断的票证的附加数据可以提供相应票证的交换历史。例如,在票证字段438中附加到票证C1的链接数据可以通知用户该票证是针对与票据TKT-002的票证C1相同的段,而票据TKT-002的票证C1进而是票据TKT-001的中断的票证C1的取代票证。在票证字段439中附加到票证C2的链接数据可以通知用户该票证是针对与票据TKT-002的票证C2相同的段,而票据TKT-002的票证C2进而是票据TKT-001的中断的票证C1的取代票证。在票证字段440和441中附加到票证C3和C4的链接数据可以通知用户这些票证中的每一个取代票据TKT-002的票证C3,而票据TKT-002的票证C3进而是与票据TKT-001的票证C2相同的票证。
[0215] 富集的票据图像可以比遵守IATA标准的标准票据图像更复杂,并且非标准数据的存在可以造成某些应用的问题。例如,通过将费用分量与原始票证相关联,富集的票据图像可以造成与向每个段指派货币价值所需的系统的兼容性问题。例如,可能需要离港控制系统(DCS)为上面的示例性票据TKT-003中的每个段提供货币价值。但是,由于票据TKT-003中的费用分量与TKT-001的原始票证C1和C2相关联,因此一些系统可能无法处理富集的票据。
[0216] 为了使具有兼容性问题的系统能够使用富集的票据图像,交换服务器26可以被配置为响应于确定发出请求的系统与富集的票据图像不兼容而遮蔽(mask)富集的票据图像的某些部分。交换服务器26可以例如基于发出请求的系统的身份和/或查询中的数据字段(例如,如果在查询中设置了“仅标准视图”标志)来确定何时遮蔽富集的票据图像。遮蔽算法可以使用存储在过渡记录中的中断链接来创建富集的票据图像的简化版本。这些链接可以允许交换服务器26将存储在费用分量字段中的费用分量与当前段相关联。
[0217] 图24描绘了可以从富集的票据图像430生成的被遮蔽的票据图像460。交换服务器26可以从由添加到图像430中的票证字段438的右部分的数据定义的链接中确定票据TKT-
003的票证C1链接到票据TKT-001的C1。交换服务器26还可以基于添加到票据图像430的底部的结构化费用分量字段448中的数据来确定适用的费用是FC1。因为费用分量(在费用计算中并以结构化形式)与票据的图像中的当前航班相关联,所以客户端应用可以不需要显示原始航班,这些航班通常不在IATA标准票据中存在。因此,可以从发送到发出请求的系统的图像460遮蔽父航班信息,如图24中所示。
[0218] 在一些情况下,旅客可能希望自愿交换先前已经进行非自愿交换的票据。这种类型的交换会造成由于父票据已经以非标准费用签发所导致的对重新签发票据定价以及确定父票据的交换价值的问题。非标准费用可能导致无法针对重新签发票据向旅客收费,并且因此预订系统确定不需要查询费用引擎来为重新签发票据定价。因此,由于非自愿交换而签发的票据中的每张票证的费用可以基于在中断之前先前交换的票据的费用,或者硬编码为预定义的值。由于非自愿交换而签发的重新签发票据中的每张票证的价格因此可能与重新签发票据中的取代路线的正常费用不对应。而且,在多次非自愿交换票据的情况下,旅客的路线可以散布在若干票据上,每张票据中的票证具有若干状态之一,诸如已飞行、已交换或开放。
[0219] 图25描绘了原始票据TKT-004的示例性票据图像500,其包括票据号字段502、记录定位符字段504、乘客姓名字段506、票证字段508-510和费用计算行512。TKT-004包括针对包括从Louisville到洛杉矶的 航班的段的三张票证,该航班在芝加哥和丹佛停靠。票据图像500可以描绘在旅客出发前往芝加哥之后出现的票据TKT-004。
[0220] 如可以看出的,用于SDFMDW(Louisville到芝加哥)段的票证C1的状态是已飞行,指示这张票证已被用于旅行,而剩余的用于段MDWDEN(芝加哥到丹佛)和DENLAX(丹佛到洛杉矶)的票证C2和C3仍然开放。费用计算行512指示每个段的费用是258.00美元。因此,从Louisville到洛杉矶的最初预订航班的总价格为774.00美元。如果在Louisville-芝加哥航段已经飞行后取消从芝加哥飞往丹佛的航班,那么可以对TKT-004票据进行部分交换。
[0221] 图26描绘了示出在交换之后可能出现的票据TKT-004的票据图像501,以及描绘重新签发票据TKT-005的票据图像520。票据图像520可以包括票据号字段522、记录定位符字段524、乘客姓名字段526、票证字段528、530以及费用计算字段532。如在图像501中可以看到的,票据TKT-004的票证C2的状态已经变为“E”或者已交换,并且票据TKT-004的票证C3的状态保持开放。重新签发票据TKT-005可以包括取代TKT-004的票证C2的开放票证C1和C2。因此,在票据数据库20中可以存在两张有效票据,用于乘客的未飞行或“剩余”路线。
[0222] 从芝加哥到丹佛的段已经被从芝加哥到St.Louis的段以及从St.Louis到丹佛的另一段取代。但是,重新签发票据TKT-005中的费用元素可能只在父票据的现有费用元素前添加“I-日期”。I-日期可以仅仅提供该票据于2016年3月19日签发以换取另一张票据的指示。因此,费用计算本身可能无法与由重新签发票据定义的路线对应。
[0223] 图27描绘了票据TKT-004的图像503、票据TKT-005的图像521、以及新签发的票据TKT-006的图像540。图像503、521和540可以描绘在TKT-005的票证C1被非自愿地交换为TKT-006(例如由于航班WN0984的中断)之后的票据TKT-004、TKT-005和TKT-006。此时,旅客的剩余路线可能散布在三张有效的票据上。票据图像540可以包括票据号字段542、记录定位符字段544、乘客姓名字段546、票证字段548和费用计算字段550。如可以看出的,TKT-004可以因最新的中断而保持不变,票据TKT-005的票证C1的状态已改变为“E”或已交换,并且重新签发的票据TKT-006可以包括票证C1以取代TKT-005的票证C1。
[0224] 如以上示例所示,作为非自愿交换的一部分签发的票据中的费用元素可以提供费用是基于非自愿交换的票据的指示。但是,如果票据是自愿交换的,那么费用元素本身可能无法提供与重新签发票据的票证或整个取代路线的费用有关的信息。而且,仅可以为原始票据中的初始付费路线提供完整视图。由于可能进行部分交换,因此先前票据中可能存在未出现在重新签发票据中的开放票证。此外,父票据还可以包括一张或多张已飞行票证。对于具有已飞行票证的票据的自愿交换,可以执行考虑已飞行票证的新费用计算,并且将已飞行票证的图像存储在二进制大对象(BLOB)数据库中。但是,对于非自愿交换,已飞行票证可能无法出现在重新签发票据中。
[0225] 继续参考图27,如果旅客请求自愿交换票据TKT-006,那么使用常规系统执行交换的代理人可以从费用计算字段550知道TKT-005的票证C1被交换为TKT-006的票证C1,但可能无法查看TKT-004中的票证C1,或者甚至无法通知票据TKT-004的存在。
[0226] 本发明的实施例可以通过处理链接到原始路线的费用数据(即,由原始票据定义的路线)以及链接到路线的被中断部分的路线数据(例如,由重新签发票据定义的路线)来解决这个问题。由此,交换服务器26可以识别哪些票证实际被中断,从而可以至少部分地基于被改变的一个或多个段是否被中断来确定交换的价格。即使路线散布在若干票据上,交换服务器26也可以协调整个路线。这种类型的多票据协调可能要求交换服务器26根据所请求的改变类型一次改变多张票据的票证状态。
[0227] 图28描绘了可以在上述交换序列期间生成的示例性过渡记录600、混合票据602、已付费路线604、报价路线606和可以基于存储在过渡记录600中的数据生成的报价定价记录608。过渡记录600可以包括费用结构索引610和中断索引612,并且可以索引到过渡记录600中引用的每张票据(例如票据TKT-004、TKT-005和TKT-006)的票据号。费用结构索引610可以包括费用分量元素614-616,每个费用分量元素可以链接到针对一张或多张原始定价的票据(例如,票据TKT-004)的对应产品元素618-620。中断索引604可以包括一个或多个数组622-624,每个数组定义链接的票证元素626-631的集合。
[0228] 每个数组622-624可以包括以特定次序保持多个票证元素626-631的数据容器。例如,该次序可以基于签发每个票证元素的时间,使得每个数组622-624被配置为从最旧元素到最新元素排序的一系列票证元素。每个数组622-624的每个票证元素626-631可以识别具体票据中的具体票证,以及票证的状态(例如,中断或活跃)。票证元素626-631可以按其定义交换的序列的相应数组622-624中的次序排列。在示例性中断索引612中,数组622中的最早的票证元素626可以将票据TKT-004的票证C2识别为要交换的最早的票证,并且数组622中的最后的票证元素628可以将票据TKT-006的票证C1识别为该系列中签发的最新票证。可以使用整数索引来访问每个数组中的票证元素,以指定正在访问数组中的哪个元素。例如,在数组622内,票证元素626可以被索引为元素“1”,票证元素627可以被索引为元素“2”,并且票证元素628可以被索引为元素“3”。
[0229] 每个数组622-624可以将数组的最近或最新签发的票证的交换历史提供回“原始”票证。在每个数组622-624中识别出的原始票证可以是最后定价的票证,诸如在最初购买的票据中或在作为自愿交换的一部分签发的重新签发的票据中签发的票证。在本示例中,数组622包括识别票据TKT-004的票证C2交换的一个票证序列的票证元素626-628,数组623包括识别票据TKT-004的票证C2交换的另一个票证的票证元素629和630,并且数组624包括识别票据TKT-004的票证C3的票证元素631,票证C3尚未被交换并且因此仍然是活跃的。混合票据602可以包括一张或多张虚拟票证632-634。虚拟票证632-634中的每一个可以与由每个数组622-624中的最新出现的票证元素识别的开放票证对应。
[0230] 由过渡记录提供的加索引可以提高可以定位包括与数据库查询中识别出的票据相关的信息的数据库记录的速度和效率。中断索引可以将与现有路线相关联的所有票证识别回到最后定价的票据及其包括中断指示的完整历史。例如,这个信息可以用于计算正在被交换的票据的价值,其可以针对交换的价格而被记入(credit)。
[0231] 当仅包含已经定价的票证的票据被自愿交换时,交换处理可以将费用计算规则应用于剩余的路线以确定票据的交换价值。交换处理还可以将费用计算规则应用于新路线以确定重新签发票据的价格。然后,可以基于重新签发票据的价格与父票据的交换价值之间的差来确定需要为交换收集的金额。但是,如果交换的票据已经进行了非自愿交换,那么所交换的一张或多张票据可以包括从未定价的票证。因此,为了自愿交换票据,交换服务器26可能需要确定正在交换的票据的价值。
[0232] 图29描绘了交换服务器26的实施例,其包括数据检索和解码模块650、业务对象模型(BOM)652、混合票据模块654,以及与定价引擎658通信的接口模块656。
[0233] 当旅客交换票据时,用户系统14可以向交换服务器26发送识别要交换的票据的交换请求。响应于接收到请求,数据检索和解码模块650可以查询预订数据库18、票据数据库20和/或过渡记录数据库28中的一个或多个,以识别和检索关于任何中断的数据,涉及任何先前的非自愿交换的票据和/或预订记录历史。
[0234] 数据检索和解码模块650可以解码接收到的数据并将中断历史存储在BOM 652中,其提供被配置为存储非标准数据的容器。存储在过渡记录中的数据可以使数据检索和解码模块650能够为正在交换的票据建立中断历史。例如,可以通过向票据数据库20查询在与正在交换的票据相关联的过渡记录中识别出的票据来生成中断历史。票据数据库20返回的票据可以被添加到票据集合,并且票据集合被排序,使得票据按照从具有最早时间戳的票据到具有最新时间戳的票据的次序排列。由此产生的一系列数据库记录可以提供以最近签发的完全定价的票据开始并且延伸到正在交换的票据的票据列表。
[0235] 使用示例性过渡记录600作为示例,BOM 652可以调用混合票据模块654以生成混合票据602,BOM 652可以将混合票据602转发到接口模块656。接口模块656可以将混合票据602转发到定价引擎658以进行定价。混合票据602可以包括虚拟票证632-634,虚拟票证
632-634与来自尚未飞行的当前路线的每个段对应,并且可以使交换服务器26能够使用定价引擎658来评估非自愿交换的票据。定价引擎658可以计算混合票据602的价值,其可以用于确定正在交换的票据的价值。BOM 652还可以包括或访问业务规则(例如,承运人要求)和用于将费用规则应用于虚拟票证632-634的执行对象模型。
[0236] 一旦生成了中断历史、经定价的混合票据和已付费路线,接口模块656就可以向用户系统14发送回复,该回复使得用户系统14以树的形式显示表示路线的价格的数据结构,以及定价引擎658提供的所有定价细节。混合票据602可以使交换服务器26能够执行由定价引擎658保证是正确的自动计算,并且该自动计算基于航空公司提交的费用模式。提供给定价引擎658的输入可以包括关于用例的完整细节,包括乘客、路线和选项。
[0237] 对于在非自愿交换之后发生的自愿交换,接口模块656可以提供关于已付费路线的详细信息(例如,已付费路线的哪些部分已被中断)以及在连续中断之后的当前路线。使用过渡记录600和/或BOM652来存储非标准数据结构,交换服务器26可以提供增强的特征,同时保留定价请求消息的全局结构和可重用性。混合票据602的构造还可以使得不同的中断结果能够被分解成因素的集合(例如,虚拟票证),这些因素可以以标准方式提供给定价引擎658以进行处理。接口模块656可以接收定价引擎658的输出,并将结果存储在预订数据库18中的相关联预订记录的费用行中。
[0238] 图30描绘了图示交换处理660的流程图,该交换处理660可以由交换服务器26实现以处理先前已经在非自愿交换中涉及的票据的自愿交换的请求。在方框662中,处理660可以接收交换票据(诸如上面关于图27描述的票据TKT-006)的请求。响应于接收到请求,处理660可以前进到方框664并检索与正在交换的票据相关联的过渡记录。这种检索可以包括例如向过渡记录数据库28发送查询,请求数据库返回索引到或包含正被交换的票据的票据号的过渡记录。作为响应,过渡记录数据库28可以返回与票据相关联的过渡记录,例如过渡记录600。
[0239] 在方框666中,处理660可以检索数据并基于此生成中断历史。图31和32描绘了示例性文件668和670,每个文件包括一系列EDIFACT命令,这些命令可以使数据检索和解码模块650检索票据数据以用于生成中断历史。EDIFACT命令文件668的被指示为“[data]”的部分可以填充有附加的EDIFACT命令,诸如文件670的那些命令。通过执行EDIFACT命令而检索出的数据可以包括所讨论票据的交换历史中所涉及的仍然活跃的票据(例如包括具有开放状态的票证的票据)。
[0240] 处理660可以基于过渡记录600中的数据来识别票据数据库20中在交换历史中涉及的票据。例如,处理660可以从费用结构索引和/或中断索引中提取票据号。使用这些票据号,处理660可以查询票据数据库20以检索识别出的票据。处理660还可以向预订数据库18查询预订记录历史。处理660可以结合费用结构索引、中断索引和/或检索到的票据使用预订记录历史来生成每个活跃票证的中断历史。
[0241] 处理660可以基于检索到的数据生成正在交换的票据的完整中断历史。正在被处理的票据的中断历史可以在票证级别上散布在多个数据容器(例如,二进制大对象)上。这些对象可以由过渡记录数据库28返回和/或从预订数据库18中的预订记录历史数据检索。票证级别的数据容器可以用于聚合来自多个对象的中断数据并构建要检索的先前票据的列表。
[0242] 在实施例中,中断历史可以由包括一系列票据T1,T2,...Tn的数据库记录集合来表示,其中T1是该系列中最早的票据(即,具有最早时间戳的票据,例如,定价的票据),而票据Tn是该系列中最新的票据(即,具有最新时间戳的票据,例如,被交换的票据)。交换服务器26还可以使得检索出的票据由用户系统14显示,以便向代理人提供乘客路线的最新状态。
[0243] 一旦生成了中断历史,处理660就可以前进到方框672并生成混合票据(例如,混合票据602),其可以被发送到定价引擎658以计算正在交换的票据的价值。混合票据可以包括与已经或将要飞行的当前路线中的每个段对应的票证,并且可以使交换服务器26能够使用定价引擎658来处理非自愿交换的票据。
[0244] 响应于生成混合票据,处理660可以前进到方框674并对混合票据进行定价。对混合票据进行定价可以包括将混合票据发送到定价引擎658,使得基于航空公司提交的费用模式来确定价格。然后,处理660可以前进到方框676,更新预订记录,并确认票据数据库20中的重新签发票据。
[0245] 第一签发引用可以用于在路线改变处理中创建旧文档(FO)元素或行。FO行可以参考用于交换的原始票据号。票据数据表可以包括签发信封号、票据号、原始票据号、乘客引用、乘客姓名和确认承运人字段,并且可以在重新定价处理中用于构建新票据。
[0246] 更新预订记录可以包括在预订记录中创建多票据FO行以促进剩余的开放票证的交换。FO行可以包括关于最初签发的票据,重新签发票据号和正在交换的票证的细节。FO行可以识别在重新签发票据被签发时应当交换的票证,从而保证交换的完整性。FO创建处理可以使用仍包含开放票证的连续中断的票据列表来构建多票据FO行。这种多票据FO行可以是签发后端服务器所期望的标准格式。示例性FO行可以如下所示格式化:
[0247] FO TKTO_City_Date/IATA..../TK TnE 1/TKTjF3,4/.../TKT 1F 1,3...[0248] 图33描绘了图示可以由交换服务器用来定义混合路线的处理680的流程图,从该处理可以生成处理660的方框672中的混合票据。混合路线H可以包括从中断历史中的票据提取出的票证数组。在方框682中,处理680可以初始化混合路线。初始化可以包括将票据计数器i定义为初始值n(其中n是中断历史中的票据总数),并且如下定义混合路线H:
[0249] H=C∈Tn
[0250] 其中Tn表示正在交换的票据,使得混合路线H最初包括票据Tn中的所有票证C。
[0251] 在方框684中,处理680可以清除工作数组B和E,以及交换标志或“e-标志”。处理680可以使用工作数组B和E来临时存储随后将被附加到当前版本的混合路线H的开始或末尾的票证,以生成混合路线H的更新版本。e-标志可以用于跟踪在处理特定票据时是否遇到具有“已交换”状态的票证。在方框684中,处理680还可以递减票据计数器i,并通过设置j等于票据Ti中的票证的数量来初始化票证计数器j,票据Ti最初可以是紧接在票据Tn之前的父票据或票据Tn-1。然后,处理680可以前进到方框686并从票据Ti中选择票证Cj。
[0252] 在方框688中,处理680可以确定票证Cj的状态是否是“已交换”。如果状态是“已交换”(判定框688的“是”分支),那么处理680可以前进到方框690,设置e-标志,并且前进到方框692。在方框692中,处理680可以确定票证Cj是否包括在先前处理的票据Ti+1(即,被签发以换取票据Cj的票据)的费用元素中。如果票证Cj不存在于票据Ti+1的费用元素中(判定框692的“否”分支),那么可以指示票据Ti已被交换多于一张票据。在这种情况下,处理680可以前进到方框694,拒绝交换,并终止。如果票证Cj包括在先前处理的票据Ti+1的费用元素中(判定框692的“是”分支),那么处理680可以前进到方框696。
[0253] 返回到方框688,如果票证Cj的状态不是“已交换”(判定框688的“否”分支),那么处理680可以前进到方框698。在方框698中,处理680可以确定是否设置了e-标志。如果设置了e-标志(判定框698的“是”分支),那么处理680可以前进到方框700,将票证Cj附加到工作数组E的开始,并且前进到方框696。如果未设置e-标志(判定框698的“否”分支),那么处理680可以前进到方框702,将票证Cj附加到工作数组B的开始,并且前进到方框696。
[0254] 在方框696中,处理680可以确定票证Cj是否是票据Ti中剩余的最后一张票证,即,是否j=1。如果票证Cj不是票据Ti中剩余的最后一张票证(判定框696的“否”分支),那么处理680可以前进到方框704,递减票证计数器j,并返回到方框686以开始处理票据Ti中的下一张票证。如果票证Cj是票据Ti中剩余的最后一张票证(判定框696的“是”分支),那么处理680可以前进到方框706。
[0255] 在方框706中,处理680可以通过将工作数组B中的票证附加到混合路线H的开始并且将工作数组E中的票证附加到路线H的末尾来更新混合路线H。即,如下更新混合路线H:
[0256] Hm=B+Hm-1+E.
[0257] 然后,处理680可以前进到方框708并确定票据Ti是否是最后一张票据,即,是否i=1。如果票据Ti不是最后一张票据(判定框708的“否”分支),那么处理680可以返回到方框684并开始处理下一张票据。如果票据Ti是最后一张票据(判定框708的“是”分支),那么子处理680可以前进到方框710,存储混合路线,并返回到主处理660。
[0258] 一般而言,被执行以实现本发明的实施例的例程(无论是实现为操作系统的一部分还是实现为具体的应用、部件、程序、对象、模块或指令序列,或其子集)在本文可以被称为“计算机程序代码”或简称为“程序代码”。程序代码通常包括在各个时间驻留在计算机中的各种存储器和存储设备中的计算机可读指令,并且当由计算机中的一个或多个处理器执行时,使计算机执行必要的操作以执行实施本发明的实施例的各个方面的操作和/或元件。用于执行本发明的实施例的操作的计算机可读程序指令可以是例如汇编语言或者以一种或多种编程语言的任何组合书写的源代码或目标代码。
[0259] 本文描述的各种程序代码可以基于其在本发明的具体实施例中实现的应用来识别。但是,应当认识到的是,以下的任何特定程序命名仅仅是为了方便而使用的,并且因此本发明不应当仅限于在由这种命名法识别和/或暗示的任何具体应用中使用。此外,考虑到计算机程序可以被组织成例程、过程、方法、模块、对象等的一般无限数量的方式,以及可以在驻留在典型计算机中的各种软件层(例如,操作系统、库、API、应用、小应用程序、基于Web的服务等)之间分配程序功能的各种方式,应当认识到的是,本发明的实施例不限于本文描述的程序功能的具体组织和分配。
[0260] 本文描述的任何应用/模块中体现的程序代码能够以各种不同形式作为程序产品单独地或集体地分布。特别地,可以使用其上具有计算机可读程序指令的计算机可读存储介质来分发程序代码,以使处理器执行本发明的实施例的各方面。
[0261] 固有地非暂态的计算机可读存储介质可以包括以用于存储信息(诸如计算机可读指令、数据结构、程序模块或其它数据)的任何方法或技术实现的易失性和非易失性以及可移除和不可移除的有形介质。计算机可读存储介质还可以包括RAM、ROM、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪速存储器或其它固态存储器技术,便携式光盘只读存储器(CD-ROM)或其它光学存储器,磁带盒、磁带、磁盘存储器或其它磁存储设备,或者可用于存储期望信息并可由计算机读取的任何其它介质。计算机可读存储介质不应当被视为暂态信号本身(例如,无线电波或其它传播电磁波,传播通过传输介质(诸如波导)的电磁波或通过导线发送的电信号)。计算机可读程序指令可以经由网络从计算机可读存储介质或外部计算机或外部存储设备下载到计算机,另一种类型的可编程数据处理装置或者另一个设备。
[0262] 存储在计算机可读介质中的计算机可读程序指令可以被用来引导计算机、其它类型的可编程数据处理装置或其它设备以特定方式运作,使得存储在计算机可读介质中的指令产生包括指令的制造品,所述指令实现在流程图、序列图和/或框图中指定的功能、动作和/或操作。计算机程序指令可以被提供给通用计算机、专用计算机或其它可编程数据处理装置的一个或多个处理器,以产生机器,使得经由一个或多个处理器执行的指令导致一系列计算被执行,以实现在流程图、序列图和/或框图中指定的功能、动作和/或操作。
[0263] 在某些替代实施例中,在流程图、序列图和/或框图中指定的功能、动作和/或操作可以与根据本发明的实施例一致地重新排序、串行处理和/或并发处理。而且,流程图、顺序图和/或框图中的任何一个可以包括比与本发明的实施例一致地示出的方框更多或更少的方框。
[0264] 本文使用的术语仅用于描述特定实施例,而不是限制本发明的实施例。如本文所使用的,单数形式“一个”和“该”也意在包括复数形式,除非上下文另有明确指示。还将理解的是,当在本说明书中使用时,术语“包括”和/或“包含”指定所述特征、整数、动作、步骤、操作、元件和/或部件的存在,但不排除一个或多个其它特征、整数、动作、步骤、操作、元件、部件和/或其组合的存在或添加。此外,就在或者具体实施方式或者权利要求书中使用术语“包括”、“具有”、“包含”、“由…组成”或其变体而言,这些术语意在以类似于术语“包括”的方式是包容性的。
[0265] 虽然已经通过对各种实施例的描述说明了本发明的所有内容,并且虽然已经相当详细地描述了这些实施例,但是本申请人的意图不是要以任何方式将所附权利要求的范围限制到这种细节。本领域技术人员将容易看出附加的优点和修改。因此,本发明的更广泛的方面不限于具体细节、代表性的装置和方法,以及所示出和描述的说明性示例。因而,在不背离本申请人的总体发明性构思的精神或范围的情况下,可以从这种细节有所偏离。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈