机票数据的调取方法、系统、存储介质和电子设备与流程

文档序号:14249644阅读:710来源:国知局
机票数据的调取方法、系统、存储介质和电子设备与流程

本发明涉及互联网技术领域,尤其涉及一种机票数据的调取方法、系统、存储介质和电子设备。



背景技术:

旅游平台提供机票预订服务,针对用户的机票搜索行为,需要从不同的航空公司调取机票数据进行整合处理。其中,负责整合各航司数据并显示的服务器,可以称为聚合层,聚合层的职责是整合各航司返回的数据,通过聚合层定义的规则,如价格规则,促销规则,进行数据的过滤,合并,并最终在网站或者手机端应用展示。

通常情况下,聚合层由于其负责业务的特点,可以方便地控制是否需要某具体航司查询,如根据是否有某航线的配置是否应该查询某直连航司,根据某国家地区的条件是否搜索特定的航司。聚合层与对接层的职责分工及区别:在组织结构上,聚合层与对接层的团队分开;在业务维护上,各航司的业务点不同,可能需要不同的产品经理来维护;在总体的系统复杂度上,这种在聚合层配置而最终是作用到具体对接上的参数的配置方式,也与系统往服务的高内聚,便于扩展的发展方向上有不一致的地方;以上问题,如果对接的航司数量不多,都不是问题,也是比较便捷的做法,但一旦对接的航司数量庞大,如数量以千计以上,则以上问题就是突出的问题。

需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。



技术实现要素:

针对现有技术中的缺陷,本发明要解决的问题在于,对影响到是否查询某具体航司的触发条件交由对接具体航司的所在的服务器的接口来维护,从而实现聚合层与对接层的维护分离,减少聚合层系统维护底层系统规则的工作量。

根据本发明的一个方面,提供一种机票数据的调取方法,用于电商服务器从多个航空公司服务器调取机票数据,所述方法包括:建立与多个航空公司服务器对接的多个接口,每个接口分别与一对应的航空公司服务器对接;在每个所述接口中,配置与其对接的航空公司服务器的查询触发条件;每个所述接口将其对接的航空公司服务器的查询触发条件以对应的航空公司id为标识同步至电商服务器的缓存数据库;所述电商服务器接收用户端发送的查询请求,根据所述查询请求遍历所述缓存数据库,筛选出被所述查询请求命中的查询触发条件,并根据筛选出的查询触发条件的航空公司id对应至匹配的接口;所述电商服务器通过匹配的接口,向对应的航空公司服务器分别调取预设格式的机票数据,展示至用户端。

优选地,所述每个所述接口将其航空公司服务器的查询触发条件以对应的航空公司id为标识同步至电商服务器的缓存数据库的步骤包括:所述电商服务器在缓存数据库中建立多个分区,每个分区以一航空公司id为标识,订阅该航空公司服务器的查询触发条件;每个所述接口将其对接的航空公司服务器的查询触发条件以对应的航空公司id为标识发布至消息队列;所述消息队列根据所述缓存数据库的每个分区的订阅,将各航空公司服务器的查询触发条件分别同步至具有相同航空公司id的分区中。

优选地,上述的机票数据的调取方法还包括:每个所述接口实时接收与其对接的航空公司服务器对其查询触发条件的变更信息,并通过发布订阅方式将所述航空公司服务器的查询触发条件的变更信息同步至所述电商服务器的缓存数据库。

优选地,所述将变更信息同步至所述电商服务器的缓存数据库的步骤包括:每个所述接口实时接收与其对接的航空公司服务器对其查询触发条件的变更信息,将所述变更信息以对应的航空公司id为标识发布至消息队列;所述消息队列根据所述电商服务器的订阅,将所述变更信息以对应的航空公司id为标识同步至所述缓存数据库中具有相同航空公司id的查询触发条件。

优选地,所述查询触发条件的变更信息包括查询触发条件的增加、查询触发条件的删除、及查询触发条件的修改。

优选地,所述查询触发条件包括航空公司名称、航线、国家、币种。

优选地,所述根据所述查询请求遍历所述缓存数据库,筛选出被所述查询请求命中的查询触发条件的步骤包括:提取所述查询请求的关键词,包括航空公司名称、航线、国家、币种中的至少一个;遍历所述缓存数据库,筛选出至少完全包含所述关键词的查询触发条件,作为被所述查询请求命中的查询触发条件。

优选地,所述电商服务器调取机票数据后,展示至用户端前还包括:对调取的机票数据按照预设条件进行排序,并筛选出排序中前预定比例的机票数据。

根据本发明的另一个方面,提供一种机票数据的调取系统,用于从多个航空公司服务器调取机票数据,所述系统包括:多个接口,每个所述接口分别与一对应的航空公司服务器对接,每个所述接口中配置有与其对接的航空公司服务器的查询触发条件;缓存数据库,所述缓存数据库中存储有每个所述接口同步的其对接的航空公司服务器的查询触发条件,分别以对应的航空公司id为标识;电商服务器,接收用户端发送的查询请求,根据所述查询请求遍历所述缓存数据库,筛选出被所述查询请求命中的查询触发条件,并根据筛选出的查询触发条件的航空公司id通过匹配的接口向对应的航空公司服务器分别调取预设格式的机票数据,展示至用户端。

优选地,多个所述接口和所述缓存数据库之间通过发布订阅方式同步消息,多个所述接口为消息的发布方,所述缓存数据库为消息的订阅方。

根据本发明的另一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的机票数据的调取方法的步骤。

根据本发明的另一个方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述的机票数据的调取方法的步骤。

有鉴于此,本发明与现有技术相比的有益效果在于:

1)对影响到是否查询某具体航司的触发条件交由对接具体航司所在服务器的接口来维护,从而实现电商服务器和接口的维护分离,减少电商服务器系统维护底层系统规则的工作量;

2)减少独立航司的触发条件与电商服务器的耦合,方便底层航司服务数量的扩展,如不同航司支持的不同航线,不同国家,不同语言需求的直连航司的扩展,如进行国际化的业务扩展;

3)减少电商服务器对不同航司的业务规则定义的繁琐程度,提升底层航司系统作为微服务的内聚性,提升接口具体服务自定义规则的灵活度和准确性,如由具体航司的产品经理对所在的航司进行维护,而可以减少电商服务器的修改,提升总体系统的稳定性。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出本发明示例性实施例中一种机票数据的调取方法的步骤示意图;

图2示出实施例中接口与电商服务器之间发布订阅消息的步骤示意图;

图3示出本发明示例性实施例中一种机票数据的调取系统的流程示意图;

图4示出本发明示例性实施例中一种计算机可读存储介质的示意图;

图5示出本发明示例性实施例中一种电子设备的示意图。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。

此外,附图仅为本发明的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

图1示出本发明示例性实施例中一种机票数据的调取方法的步骤示意图。参照图1所示,本实施例中机票数据的调取方法包括:

步骤s101、建立与多个航空公司服务器对接的多个接口,每个接口分别与一对应的航空公司服务器对接。其中,接口也是电商服务器的一部分,是电商服务器与航空公司服务器对接的通道。

步骤s102、在每个接口中,配置与其对接的航空公司服务器的查询触发条件。本实施例将每个航空公司的查询触发条件交由每个对应的接口进行定义和维护,方便针对各个不同的航空公司分别独立维护。

步骤s103、每个接口将其对接的航空公司服务器的查询触发条件以对应的航空公司id为标识同步至电商服务器的缓存数据库。从而,电商服务器可以直接使用接口定义的查询触发条件。

具体的,缓存数据库与接口之间采用发布订阅消息模式进行同步,接口为消息队列的发布方,缓存数据库为订阅方,消息发布订阅方式为多对多关系。参照图2所示,具体包括以下步骤:步骤s1031、电商服务器在缓存数据库中建立多个分区,每个分区以一航空公司id为标识,订阅该航空公司服务器的查询触发条件;步骤s1032、每个接口将其对接的航空公司服务器的查询触发条件以对应的航空公司id为标识发布至消息队列;步骤s1033、消息队列根据缓存数据库的每个分区的订阅,将各航空公司服务器的查询触发条件分别同步至具有相同航空公司id的分区中。

步骤s104、电商服务器接收用户端发送的查询请求,根据查询请求遍历所述缓存数据库,筛选出被查询请求命中的查询触发条件,并根据筛选出的查询触发条件的航空公司id对应至匹配的接口。其中,查询触发条件包括航空公司名称、航线、国家、币种。根据查询请求遍历缓存数据库,筛选出被查询请求命中的查询触发条件的步骤包括:提取查询请求的关键词,包括航空公司名称、航线、国家、币种中的至少一个;遍历缓存数据库,筛选出至少完全包含关键词的查询触发条件,作为被查询请求命中的查询触发条件。

具体的,例如用户的查询请求包含关键词:bjs-hkg(航线名称),则电商服务器根据该关键词遍历缓存数据库,筛选出被该航线“bjs-hkg”命中的查询触发条件。例如航司a和航司b具有该航线“bjs-hkg”的航班,则航司a和航司b的查询出发条件被命中。而其余航司不具有该航线“bjs-hkg”的航班,则其查询触发条件不会被命中。

进一步的,若用户的查询请求不仅包含关键词“bjs-hkg航线”,还包含航空公司名称“东方航空”。在航司a和航司b中间,航司a的航空公司名称为“东方航空”,而航司b的航空公司名称为“南方航空”,此时则只有航司a的查询出发条件被命中,航司b的查询触发条件不会被命中。

步骤s105、电商服务器通过匹配的接口,向对应的航空公司服务器分别调取预设格式的机票数据,展示至用户端。电商服务器调取机票数据后,展示至用户端前还包括:对调取的机票数据按照预设条件进行排序,并筛选出排序中前预定比例的机票数据,然后进行展示。

进一步的,还包括:每个接口实时接收与其对接的航空公司服务器对其查询触发条件的变更信息,并通过发布订阅方式将航空公司服务器的查询触发条件的变更信息同步至电商服务器的缓存数据库。其具体步骤为:每个接口实时接收与其对接的航空公司服务器对其查询触发条件的变更信息,将变更信息以对应的航空公司id为标识发布至消息队列;消息队列根据电商服务器的订阅,将变更信息以对应的航空公司id为标识同步至缓存数据库中具有相同航空公司id的查询触发条件。

其中,查询触发条件的变更信息包括查询触发条件的增加、查询触发条件的删除、及查询触发条件的修改。

本实施例中,对影响到是否查询某具体航司的触发条件交由对接具体航司所在服务器的接口来维护,从而实现电商服务器和接口的维护分离,减少电商服务器系统维护底层系统规则的工作量;同时可以减少独立航司的触发条件与电商服务器的耦合,方便底层航司服务数量的扩展,提升总体系统的稳定性。

本发明还提供一种机票数据的调取系统,用于从多个航空公司服务器调取机票数据。参照图3所示,系统包括聚合层10和对接层20,在聚合层10和对接层20建立发布订阅消息队列用来同步规则,对接层20为消息队列的发布方,聚合层10为订阅方,消息发布订阅方式为多对多关系。对接层20对应每个独立的航司服务,维护航线查询规则,国家地区及币值等影响到聚合层10最终是否查询对接层20的规则;聚合层10以消息队列的方式订阅对接层20的最终影响到聚合层10是否会查询该直连航司的规则,存入聚合层10缓存数据库101中。

另外,对接层20对接各独立航司服务,规则的增加修改删除发布到信息队列,连同直连航司标志,通过队列的发布订阅机制同步到聚合层10;聚合层10通过订阅到的规则消息,根据航司标识更新缓存数据库101,使用缓存数据库101判断是否查询对接的航司服务。

具体的,对接层20包括多个接口201,每个接口201分别与一对应的航空公司服务器对接,每个接口201中配置有与其对接的航空公司服务器的查询触发条件,例如图示的多个接口201中分别配置有航司a(指代航空公司a的服务器)的查询触发条件、航司b(指代航空公司b的服务器)的查询触发条件…航司n(指代航空公司n的服务器)的查询触发条件。各个航空公司服务器的查询触发条件通过发布订阅消息队列的方式从各个接口201更新至缓存数据库101。

接口201发布消息(包括配置的对应航空公司服务器的查询触发条件以及后续可能的变更信息)至消息队列,分别以对应的航空公司id为标识。消息队列根据缓存数据库101的订阅,分别将消息队列中的消息以对应的航空公司id为标识同步至缓存数据库101的不同分区。从而,缓存数据库101即中存储有每个接口201同步的其对接的航空公司服务器的查询触发条件,分别以对应的航空公司id为标识。

电商服务器(包括聚合层10和对接层20)接收用户端发送的查询请求,根据查询请求遍历缓存数据库101,筛选出被查询请求命中的查询触发条件,并根据筛选出的查询触发条件的航空公司id通过匹配的接口201向对应的航空公司服务器分别调取预设格式的机票数据,展示至用户端。

在本发明的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被例如处理器执行时可以实现上述任意一个实施例中所述机票数据的调取方法的步骤。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述机票数据的调取方法描述的根据本发明各种示例性实施方式的步骤。

参考图4所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品400,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

所述程序产品400可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。

所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

在本发明的示例性实施例中,还提供一种电子设备,该电子设备可以包括处理器,以及用于存储所述处理器的可执行指令的存储器。其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一个实施例中所述机票数据的调取方法的步骤。

所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。

下面参照图5来描述根据本发明的这种实施方式的电子设备500。图5显示的电子设备500仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图5所示,电子设备500以通用计算设备的形式表现。电子设备500的组件可以包括但不限于:至少一个处理单元510、至少一个存储单元520、连接不同系统组件(包括存储单元520和处理单元510)的总线530、显示单元540等。

其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元510执行,使得所述处理单元510执行本说明书上述机票数据的调取方法部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元510可以执行如图1中所示的步骤。

所述存储单元520可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)5201和/或高速缓存存储单元5202,还可以进一步包括只读存储单元(rom)5203。

所述存储单元520还可以包括具有一组(至少一个)程序模块5205的程序/实用工具5204,这样的程序模块5205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

总线530可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。

电子设备500也可以与一个或多个外部设备600(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备500交互的设备通信,和/或与使得该电子设备500能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口550进行。并且,电子设备500还可以通过网络适配器560与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。网络适配器560可以通过总线530与电子设备500的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备500使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本发明实施方式的上述机票数据的调取方法。

综上,与各独立航司关联的查询触发条件交由每个接口独立配置,聚合层需要维护的工作量会得到减少,聚合层可支持数量众多的航司查询,直连航司的接入容易扩展;由于各航司业务的不同点,每个接口独立给航司定义查询触发条件会更准确灵活,使得对接层与各航司的对接更适合以微服务的高内聚的方式工作。同时,减少电商服务器对不同航司的业务规则定义的繁琐程度,提升底层航司系统作为微服务的内聚性,提升接口具体服务自定义规则的灵活度和准确性,如由具体航司的产品经理对所在的航司进行维护,而可以减少电商服务器的修改,提升总体系统的稳定性。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由所附的权利要求指出。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1