一种准确查询GDS航班缓存数据的方法和系统
技术领域
本发明涉及全球分销系统GDS的通信技术领域,特别是涉及一种准确查询GDS航班缓存数据的方法和系统。
背景技术
GDS(Global Distribution System)即“全球分销系统”,是应用于民用航空运输及整个旅游业的基于大型计算机信息服务系统支持下的大规模销售网络系统。GDS提供了一个全球产品数据平台,通过采用自愿协调一致的标准,使贸易伙伴彼此间在供应链中连续不断的协调产品数据属性,共享主数据,即共享GDS服务器的数据,保证各数据库的数据同步及各数据库之间协调一致。通过GDS,遍及全球的旅游销售机构可以及时地从航空公司、旅馆、租车公司、旅游公司获取大量的与旅游相关的信息,从而为顾客提供快捷、便利、可靠的服务。
其中,服务器的信息数据与客户端的信息数据是否协调一致是影响GDS为顾客提供快捷、便利、可靠的服务的关键因素。以航班信息查询为例,现有技术中保持客户端数据与服务器存储数据协调一致的方法为:客户端把从GDS服务器中取得的航班数据缓存到客户端本地,当客户要查询航班信息的时候从本地获取数据进行查询,直到缓存数据过期,判断缓存数据是否过期是以基准时间为标准来衡量的。比如,将基准时间设置为3分钟,3分钟后上述缓存数据过期。当再有客户查询航班信息需求时,客户端再从GDS的服务器获取新的航班数据,再次缓存到客户端本地,重复上述步骤不断更新缓存数据,使得客户端缓存数据与GDS数据协调一致。
但是,现有技术采用基准时间来判断航班数据是否过期的方法存在以下缺陷:由于GDS的航班数据的变化不是按照时间呈规律和线性变化的,单从时间上来区分航班数据与服务器数据是否保持协调一致的办法,不足以使缓存航班数据与GDS数据保持高度的一致,因为缓存数据有时会严重失真。另外,因为每单位基准时间就需要从服务器重新获得航班数据,访问服务器的次数比较多,那么,服务器与客户端的数据传输次数就比较多,造成GDS系统运算量很大。
总之,需要本领域技术人员迫切解决的一个问题就是:如何能够保持客户端缓存的航班数据与GDS存储的航班数据高度一致,提高客户查询航班信息的准确率。
发明内容
本发明所要解决的技术问题是提供一种准确查询GDS航班缓存数据的方法,能够非常方便、快捷地从客户端获得准确的航班信息数据。
为了解决上述问题,本发明公开了一种准确查询GDS航班信息的方法,包括:
接收航班查询条件;
判断本地缓存中是否有相匹配的查询条件,如果有,则执行下一步;否则,查询GDS服务器;
根据所述查询条件,判断本次查询与上次查询的时间间隔是否小于预置的基准时间,如果是,则执行下一步;如果否,则查询所述GDS服务器;
判断可订座位数量的当前变化率是否小于基准变化率,如果是,则查询所述本地缓存;如果否,则查询所述GDS服务器;
依据GDS服务器的查询结果,增加或更新本地的航班缓存数据。
优选的,所述查询条件包括:航线编号、航空公司、出发日期以及出发时间。
优选的,本发明通过以下方式获取当前变化率:
从GDS服务器获取当前时刻下,符合所述查询条件的航班的各种仓位的可预订座位的数量总和,与前一时刻的数量总和进行比较而获得当前变化率。
优选的,本发明还包括:依据当前变化率和基准变化率的关系线性调整基准时间。
优选的,所述基准时间与变化率的关系为:
所述调整后的基准时间与当前基准时间的比值等于基准变化率与当前变化率的比值。
优选的,本发明还包括:更新规则记录。
优选的,所述规则记录包括本次航班的查询条件和查询创建时间、状态、变化率以及基准时间。
优选的,所述状态包括从GDS服务器读取和从本地缓存读取。
优选的,所述预置的基准时间是季节性调整的或根据单独航线的忙碌程度调整的。
优选的,所述基准变化率为整体的基准变化率或者某一单独航线的基准变化率。
相应的,本发明还提供了一种准确查询GDS航班信息的系统,包括客户端和GDS服务器,所述客户端包括:
查询信息接收模块,用于接收航班查询信息;
查询条件判断模块,用于判断本地缓存中是否有相匹配的查询条件;
时间比较模块,判断本次查询与上次查询的时间间隔是否小于预知的基准时间;
变化率比较模块,用于判断可订座位数量的当前变化率是否小于基准变化率;
缓存信息查询模块,用于读取本地缓存航班数据;
GDS信息查询模块,用于从GDS服务器读取新的航班数据;
存储模块,用于增加或更新本地的航班缓存数据。
优选的,本发明还包括:基准时间调整模块,用于依据当前变化率和基准变化率的关系,线性调整基准时间。
优选的,本发明还包括:规则记录模块,用于更新规则记录。
优选的,所述变化率等于本次查询GDS服务器返回的结果与上次查询结果之差与所述上次查询结果的比较,其中,所述结果为符合所述查询条件航班的各种仓位的可预订座位的总和。
优选的,所述调整后的基准时间与当前基准时间的比值等于基准变化率与当前变化率的比值。
优选的,所述预置的基准时间是季节性调整的或根据单独航线的忙碌程度调整的。
优选的,所述基准变化率为整体的基准变化率或者某一单独航线的基准变化率。
与现有技术相比,本发明具有以下优点:
本发明针对本地航班信息查询,提出了一种准确查询GDS航班缓存数据的方法和系统,采用在原有的查询基准时间的基础上,增加查询基准变化率的步骤,如果可订座位数量的当前变化率小于基准变化率,则查询本地缓存的航班数据信息得到航班的可订座位信息;如果可订座位数量的当前变化率大于或等于所述基准变化率,则查询GDS服务器,然后将从GDS服务器查询得到的航班信息缓存到本地,用户再从本地缓存数据得到本次查询航班的可订座位信息。采用本发明提供的方法使得用户从本地缓存查询的航班信息更加接近于GDS服务器的航班信息,提高了本地缓存查询航班信息的准确率。
此外,当可订座位数量的当前变化率大于基准变化率时,不仅从GDS直接查询航班查询的信息,而且根据当前变化率线性调整下次查询的基准时间,减少本地缓存从GDS获得数据的时间间隔,保证本地与GDS之间数据传输的合理传输次数,进一步提高本地缓存查询航班信息的准确率。
附图说明
图1是本发明一种准确查询GDS航班信息的方法流程图;
图2是本发明一种准确查询GDS航班信息的系统的实施例结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图1,示出了本发明一种准确查询GDS航班信息的方法流程图,包括:
步骤101、接收航班查询条件;接收用户在本地查询航班信息时输入的航班查询条件,其中所述查询条件包括:航线编号、航空公司、出发日期以及出发时间。
步骤102、判断本地缓存中是否有相匹配的查询条件,如果有相匹配的查询条件,则执行步骤103;如果没有相匹配的查询条件,则执行步骤105即查询GDS服务器;其中,所述有相匹配的查询条件的情况是指本次查询输入的查询条件是上一次查询输入的查询条件的子集。
步骤103、根据所述查询条件,判断本次查询与上次查询的时间间隔是否小于预置的基准时间,如果所述时间间隔小于所述预置的基准时间,则执行步骤104;如果所述时间间隔大于或等于所述预置的基准时间,则执行步骤105即查询所述GDS服务器;其中,所述预置的基准时间是系统启动时根据经验设置的。
步骤104、判断可订座位数量的当前变化率是否小于基准变化率,如果所述当前变化率小于所述基准变化率,则执行步骤107;如果所述当前变化率大于或等于所述基准变化率,则执行所述步骤105即查询所述GDS服务器。
步骤105、查询GDS服务器的获得查询结果。
步骤106、将所述查询结果缓存到本地,增加或更新本地的航班缓存数据。其中,本步骤包括两种情况:一种情况为,本地缓存中原来没有符合查询条件的航班信息,则在本地缓存中增加本次从GDS服务器输出查询结果。另一种情况为本地缓存中原来存储有符合查询条件的航班信息,但是由于查询时间间隔超出了所述基准时间或者是可订座位的当前变化率大于或等于了所述基准变化率,本地缓存的航班信息已经无效了,则用从GDS服务器获得的航班信息将所述信息替换掉,进而更新本地缓存中的航班信息。
步骤107、从本地缓存中查询航班信息。
其中,在本发明实施例中,上述步骤104中的可订座位数量的当前变化率是,通过以下方式获取的:
从GDS服务器获取当前时刻下,符合所述查询条件航班的各种仓位的可预订座位的数量总和,与前一时刻的数量总和进行比较而获得当前变化率。可以用公式表示为:
变化率=|(∑本次查询-∑上次查询)|/∑上次查询
其中,“∑本次查询”表示本次查询信息发送给GDS服务器后,该GDS服务器反馈的满足所述查询条件的可订座位的总的数量;“∑上次查询”表示上次查询GDS服务器反馈的满足上次查询条件的可订座位的总的数量。
在上述步骤104中,所述基准变化率是根据经验值预先设定好的。
在上述步骤中,系统刚启动时的基准时间也是根据经验值预先设定好的。在以后的查询中,基准时间的长短是根据变化率和基准变化率的关系得到的。即依据当前变化率和基准变化率的关系,线性调整基准时间。它们之间的关系为:
当前基准时间/基准时间=基准变化率/当前变化率
即:当前基准时间=基准时间/(当前变化率/基准变化率)
从上式可以看出,基准时间和变化率成反比关系,变化率越大,代表航班的信息变化越频繁,本地缓存数据的更新所需时间就越短,则基准时间就要越短;变化率越大,代表航班的信息变化越缓慢,本地缓存数据的更新所需时间就越长,则基准时间就要越长。其中,所述基准时间是本次查询的基准时间,所述当前基准时间作为下一次查询的基准时间。
在本发明实施例中,优选的是,所述预置的基准时间是季节性调整的或根据单独航线的忙碌程度调整的。所述基准变化率为整体的基准变化率或者某一单独航线的基准变化率。例如,在春节或五一、十一假期期间,各航线都比较忙碌,各航线的航班信息变化都比较快,则会将所述基准时间调短,将所述基准变化率调低。而在平时,乘坐航班的乘客变少,航班信息变化相对降低,则根据经验值调高预置的基准时间或基准变化率。根据单独航线的忙碌程度调整的情况,例如在2008年09月01日—2008年09月15日期间,有重要世界会议在上海召开,则这段时间北京到上海的航线就会比较忙碌,航班信息变化比较频繁,则在这段时间内调高预置的基准时间或基准变化率。过了这段有效期,再将所述高预置的基准时间或基准变化率调整回原来的数值。采样这种办法,有效提高了本地查询航班信息的准确率。
在本发明提供的另外一实施例中,还包括:
步骤S:更新规则记录,该步骤可以与上述步骤106同时执行,无先后顺序之分。所述规则记录包括:
查询条件:航线编号、航空公司、出发日期或查询出发时间;
创建时间:本次查询后产生该记录的时间;
状态:包括从GDS服务器读取和从本地缓存读取,可以将所述从GDS服务器读取的状态记为1,将所述从本地缓存读取的状态记为0;
变化率和基准时间。
在本发明实施例中可以将上述规则记录建立以下数据模型:
航线编号 | 航空公司 | 出发日期 | 查询出发时间 | 创建时间 | 状态 | 变化率 | 基准时间 |
Peksha | 00 | 20080317 | 0 | 20080301 12:01:01001 | 1 | 0 | 300 |
Pekcan | CA | 20080317 | 12 | 20080301 12:01:01005 | 1 | 0 | 300 |
Peksha | CA | 20080317 | 12 | 20080301 12:05:01005 | 0 | 0 | 300 |
Peksha | 00 | 20080317 | 0 | 20080301 12:12:01005 | 1 | 0.01 | 300 |
Peksha | HU | 20080317 | 0 | 20080301 12:20:01005 | 1 | 0.04 | 150 |
Peksha | HU | 20080317 | 0 | 20080301 12:23:01005 | 1 | 0.01 | 300 |
在上述表格中显示了6条规则记录,其中系统开启时预置的基准时间为300s,基准变化率为0.02。当变化率小于0.02时,当前基准时间不发生变化,如第一行记录、第二行记录、第三行记录、第四行记录和第六行记录。当变化率大于0.02,如第五行的记录,变化率为0.04,则基准时间依据上述当前基准时间的计算公式,所述当前基准时间缩短为150s。
基于本发明提供的准确查询GDS航班信息的方法,本发明还提供了一种准确查询GDS航班信息的系统,参照图2,示出了本发明一种准确查询GDS航班信息的系统的实施例结构示意图,包括客户端21和GDS服务器22,所述客户端21包括:
查询信息接收模块201,用于接收航班查询信息;
查询条件判断模块202,用于判断本地缓存中是否有相匹配的查询条件;
时间比较模块203,判断本次查询与上次查询的时间间隔是否小于预置的基准时间;
变化率比较模块204,用于判断可订座位数量的当前变化率是否小于基准变化率;
缓存信息查询模块207,用于读取本地缓存航班数据;
GDS信息查询模块205,用于从GDS服务器22读取新的航班数据;
存储模块206,用于增加或更新本地的航班缓存数据。
其中,所述变化率等于本次查询GDS服务器返回的结果与上次查询结果之差与所述上次查询结果的比较,其中,所述结果为:符合所述查询条件航班的各种仓位的可预订座位的数量总和。
所述预置的基准时间是季节性调整的或根据单独航线的忙碌程度调整的。
所述基准变化率为整体的基准变化率或者某一单独航线的基准变化率。
在本发明一种准确查询GDS航班信息的系统的另外一优选实施例中,还包括:基准时间调整模块209,用于依据当前变化率和基准变化率的关系线性调整基准时间。所述调整后的基准时间与当前基准时间的比值等于基准变化率与当前变化率的比值。
在本发明一种准确查询GDS航班信息的系统的另外一优选实施例中,还包括:规则记录模块208,用于更新规则记录。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上对本发明所提供的一种准确查询GDS航班缓存数据的方法和系统,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。