一种联程运输数据编码方法与装置与流程

文档序号:27552192发布日期:2021-11-24 22:52阅读:113来源:国知局
一种联程运输数据编码方法与装置与流程
一种联程运输数据编码方法与装置
【技术领域】
1.本发明涉及交通运输技术领域,尤其涉及一种联程运输数据编码方法与装置。


背景技术:

2.近年来,随着中国交通业的高速发展,特别是高铁成网后,飞机、高速列车和动车组列车开行密度逐渐增大,为广大旅客的出行提供了很大的便利。但由于我国各地区之间发展不均衡,单一交通方式不能覆盖旅客所有的出行需求。因此,旅客会产生自发的联程出行方式来满足出行需求。
3.空铁联运是一种较为受欢迎的联运类型。而空铁联程运输票务系统在实践过程中,往往由于航空方缓存机制的原因,导致机票数据缓存命中率低、新鲜度不足;以及既有航空公司的ndc接口数据量大,导致内存占用过高、数据存储量过大等问题,影响联运系统的性能和健壮度。
4.因此,铁路票务系统在空铁联运票务场景下,面临机票数据缓存效果不佳、数据存储量过大的困境。


技术实现要素:

5.有鉴于此,本发明实施例提供了一种联程运输数据编码方法与装置,能够解决铁路票务系统在空铁联运票务场景下所面临的机票数据缓存效果不佳、数据存储量过大的困境。
6.第一方面,本发明实施例提供了一种联程运输数据编码装置,所述装置包括空铁联运和机票销售系统,所述空铁联运和机票销售系统包括;
7.应用展示模块,用于展示目标应用中的关键业务;
8.应用服务模块,用于执行与所述关键业务对应的业务逻辑;
9.数据存储模块,用以存储与目标信息相关的数据信息和状态信息;
10.基础设施模块包括应用服务器集群和数据库服务器集群;
11.其中,所述应用服务器集群和所述数据库服务器集群均用于对目标应用的正常运行提供基础支撑。
12.可选地,所述空铁联运和机票销售系统还包括:
13.数据缓存单元,用于对航班余票数据进行定时拉取和实时拉取。
14.可选地,数据缓存单元,具体包括:
15.定时拉取子单元,用于根据预设时间段对所述航班余票数据进行拉取;
16.实时拉取子单元,用于根据预设条件对所述航班余票数据进行拉取。
17.可选地,所述预设时间段包括4小时,7小时,12小时或者23小时。
18.可选地,所述预设条件包括:当用户下单成功,所述航班余票数据减少使航班信息发生变动时;
19.或者,当用户进行下单,校验航班信息没有通过时。
20.可选地,所述数据存储模块,包括:
21.拆分子模块,用于对第三方机票平台航班查询接口返回的目标数据进行拆分存储。
22.可选地,所述目标数据包括:航班id列表、单个航班飞机信息和产品信息。
23.可选地,所述关键业务包括:航班查询、产品维护、航班预定、订单支付、航班出票、退票、改签和短信通知。
24.可选地,所述目标信息包括:航班、机票和订单。
25.另一方面,本发明实施例提供了一种实现上述联运运输数据编码装置的联运运输数据编码方法,其特征在于,所述方法包括:
26.通过html5+vue组合开源技术和https实现所述应用展示模块;
27.通过spring boot开源技术实现所述应用服务模块;
28.通过postgresql+rediscluster+es组合开源技术和高可用配置实现所述数据存储模块;
29.通过对服务器进行集群部署得到应用服务器集群和数据库服务器集群实现所述基础设施模块。
30.本发明实施例提供的联程运输数据编码方法与装置的技术方案中,所述装置包括空铁联运和机票销售系统,所述空铁联运和机票销售系统包括;应用展示模块,用于展示目标应用中的关键业务;应用服务模块,用于执行与关键业务对应的业务逻辑;数据存储模块,用以存储与目标信息相关的数据信息和状态信息;基础设施模块包括应用服务器集群和数据库服务器集群;其中,应用服务器集群和数据库服务器集群均用于对目标应用的正常运行提供基础支撑,能够解决铁路票务系统在空铁联运票务场景下所面临的机票数据缓存效果不佳、数据存储量过大的困境。
【附图说明】
31.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
32.图1为本发明一实施例提供的一种联程运输数据编码装置的结构示意图;
33.图2为图1中空铁联运和机票销售系统的结构示意图;
34.图3为本发明一实施例提供的一种联程运输数据编码方法的流程图。
【具体实施方式】
35.为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。
36.应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
37.在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制
本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
38.应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,甲和/或乙,可以表示:单独存在甲,同时存在甲和乙,单独存在乙这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
39.目前航空公司和第三方票务平台在局部地区推出过空铁联运产品,以实现航空和铁路的联运。但是,目前的空铁联运由第三方平台进行组合销售,其中铁路订票接口均未通过官方渠道进行调用,存在一定安全风险。由于铁路12306互联网售票平台建有风控机制,频繁的出现第三方异常访问可能导致连接失败,影响用户体验。
40.第三方票务平台与航空公司进行联程票务主要是与航空公司的新分销能力(new distribution capability,ndc)接口进行交互,由于ndc接口报文数据量较大,对于机票缓存和存储未实现数据集约化存储,需通过大量内存计算设备,计算资源成本高、缓存命中率不高,用户体验不佳。
41.综上,铁路票务系统在空铁联运票务场景下,面临机票数据缓存效果不佳、数据存储量过大的困境。
42.针对上述技术问题,本发明实施例提供一种联程运输数据编码方法与装置。
43.图1为本发明一实施例提供的一种联程运输数据编码装置的结构示意图,如图1所示,该装置包括:空铁联运和机票销售系统1。如图2所示,空铁联运和机票销售系统1包括:
44.应用展示模块11,用于展示目标应用中的关键业务。
45.其中,如图2所示,关键业务包括:航班查询、产品维护、航班预定、订单支付、航班出票、退票、改签和短信通知。
46.本发明实施例中,通过html5+vue组合开源技术和超文本传输协议(hyper text transfer protocol over secure socket layer,https)实现应用展示模块11。
47.应用服务模块12,用于执行与关键业务对应的业务逻辑。
48.例如,应用服务层能够执行机票的查询、销售、退票、改签等业务逻辑。
49.本发明实施例中,通过spring boot开源技术实现应用服务模块12。spring boot是一种研发框架,能够被任意项目的构建系统所使用。如图2所示,在开发应用服务模块12时,还使用到spring cloud开源技术。
50.应用服务模块12还包括api网关,如图2所示,api网关中的结点consul 1、consul 2
……
,用于连接不同航空公司的数据接口。本发明实施例针对不同航空公司的数据接口存在的差异,充分研讨第三方票务平台的对接策略,提出了制定统一请求和返回数据结构体,然后通过程序对不同接口的不同字段进行适配和转换,以适应统一的数据结构,提高了空铁联运和机票销售系统的兼容性和易用性,可与第三方票务平台实现快速对接。
51.数据存储模块13,用以存储与目标信息相关的数据信息和状态信息。
52.本发明实施例中,通过postgresql+rediscluster+搜索引擎(elastic search,es)组合开源技术和高可用配置实现数据存储模块13。
53.其中,目标信息包括:航班、机票和订单。
54.基础设施模块14包括应用服务器集群和数据库服务器集群。
55.其中,应用服务器集群和数据库服务器集群均用于对目标应用的正常运行提供基
础支撑。
56.本发明实施例采用linux操作系统,通过对服务器进行集群部署得到应用服务器集群和数据库服务器集群实现基础设施模块。
57.需要说明的是,图2示出的空铁联运和机票销售系统1采用统一安全访问控制,符合相应的信息系统建设安全保障体系。
58.本发明实施例中,数据存储模块13,还包括:数据缓存单元。
59.数据缓存单元,用于对航班余票数据进行定时拉取和实时拉取。
60.本发明实施例中,数据缓存单元,具体包括:定时拉取子单元和实时拉取子单元。
61.定时拉取子单元,用于根据预设时间段对航班余票数据进行拉取。
62.由于航班余票数据都是xml结构数据,数据量大,对航班余票数据的请求、解析以及组合需要较长时间,需要定时拉取航班余票数据进行缓存。
63.其中,预设时间段包括4小时,7小时,12小时或者23小时。
64.本发明实施例依据航线热度将定时拉取数据分为4个时间段。4个时间段分别为4小时,7小时,12小时、23小时,能够确保一天时间内能将所有航班余票数据拉取一次在一定程度上提高缓存命中率。在航班余票数据定时拉取时,要控制访问速度,利用线程池将查询并发量控制在20次/s的频率。
65.实时拉取子单元,用于根据预设条件对航班余票数据进行拉取。
66.其中,预设条件包括:当用户下单成功,航班余票数据减少使航班信息发生变动时;或者,当用户进行下单,校验航班信息没有通过时。
67.实时拉取航班余票数据目前适应于两种情况。第一种情况是当用户下单成功时,航班余票数据减少,航班信息可能发生变动,及时去拉取一次航班余票数据进行缓存是很有必要的。第二种情况是当用户拿到航班余票数据进行下单时,校验航班信息没有通过时,可能是缓存数据过旧导致,此时就需要实时更新航班余票数据。以上这两种情况都是为了保持缓存中航班余票数据的新鲜度。
68.本发明实施例中,数据存储模块13,包括:拆分子模块。
69.拆分子模块,用于对第三方机票平台航班查询接口返回的目标数据进行拆分存储。
70.其中,目标数据包括:航班id列表、单个航班飞机信息和产品信息。
71.例如,对航班id列表进行拆分存储,航班id列表包括:键:“ow:aa:”pkx:pvg:20210909”,值:[“mu2238”]。具体的,将ow、aa、pkx、pvg、20210209、[“mu2238”]分别进行存储。其中,ow代表飞机类型;aa代表查询类型,此时aa代表城市

城市;pkx代表出发三字码;pvg代表到达三字码;20210209代表日期;[“mu2238”]代表飞机id的list集合。
[0072]
例如,对单个航班飞机信息进行拆分存储,单个航班飞机信息包括:键:“mu_ow:bjs:sha:mu2238:20210909”,值:avopt对象。具体的,将mu_ow、bjs、sha、mu2238、20210209、avopt对象分别进行存储。其中,mu_ow代表航空公司飞行类型,bjs代表出发三字码,sha代表到达三字码,mu2238代表航班号,20210209代表日期。avopt对象包含航班的起飞日期、到达日期和餐食等基本信息。
[0073]
例如,对产品信息进行拆分存储,产品信息包括:键:“mu_ow:bjs:sha:mu2238:20210909:ch:n_10010”,值:product对象;和键:“mu_ow:bjs:sha:mu2238:20210909”,值:
avopt对象。具体的,将mu_ow、bjs、sha、mu2238、20210209、ch、n_10010、product对象、avopt对象分别进行存储。其中,mu_ow代表航空公司飞行类型,bjs代表出发三字码,sha代表到达三字码,mu2238代表航班号,20210209代表日期,ch代表乘坐人类型,n_10010代表产品号。product对象主要包括舱位信息和价格。avopt对象包含航班的起飞日期、到达日期和餐食等基本信息。
[0074]
本发明实施例通过对联程运输票务数据进行编码优化,可针对航空公司的机票数据缓存机制进行优化,同时对ndc数据存储、内存计算进行集约化利用。
[0075]
本发明实施例构建了机票缓存技术,对航班余票数据进行定时拉取和实时拉取,依据航线热度将定时拉取数据按时间段分片,确保缓存命中率和缓存数据新鲜度。
[0076]
本发明实施例构建了用于联程运输编码的计算装置,可实现对不同接口的不同字段进行适配和转换,实现联程票务统一接口编码,并支持机票缓存系统的实现。
[0077]
本发明实施例提供的一种联程运输数据编码装置的技术方案中,所述装置包括空铁联运和机票销售系统,所述空铁联运和机票销售系统包括;应用展示模块,用于展示目标应用中的关键业务;应用服务模块,用于执行与关键业务对应的业务逻辑;数据存储模块,用以存储与目标信息相关的数据信息和状态信息;基础设施模块包括应用服务器集群和数据库服务器集群;其中,应用服务器集群和数据库服务器集群均用于对目标应用的正常运行提供基础支撑,能够解决铁路票务系统在空铁联运票务场景下所面临的机票数据缓存效果不佳、数据存储量过大的困境。
[0078]
图3为本发明又一实施例提供的一种联程运输数据编码方法的流程图,所述方法能够实现上述图1至图2所示的联运运输数据编码装置。如图3所示,该方法包括:
[0079]
步骤201、通过html5+vue组合开源技术和https实现应用展示模块。
[0080]
具体的,通过html5+vue组合开源技术和https展示目标应用中的关键业务。关键业务包括:航班查询、产品维护、航班预定、订单支付、航班出票、退票、改签和短信通知。
[0081]
步骤202、通过spring boot开源技术实现应用服务模块。
[0082]
具体的,通过spring boot开源技术执行与关键业务对应的业务逻辑。例如,应用服务层能够执行机票的查询、销售、退票、改签等业务逻辑。
[0083]
本发明实施例中,spring boot是一种研发框架,能够被任意项目的构建系统所使用。如图2所示,在开发应用服务模块时,还使用到spring cloud开源技术。
[0084]
应用服务模块还包括api网关,如图2所示,api网关中的结点consul 1、consul 2
……
,用于连接不同航空公司的数据接口。本发明实施例针对不同航空公司的数据接口存在的差异,充分研讨第三方票务平台的对接策略,提出了制定统一请求和返回数据结构体,然后通过程序对不同接口的不同字段进行适配和转换,以适应统一的数据结构,提高了空铁联运和机票销售系统的兼容性和易用性,可与第三方票务平台实现快速对接。
[0085]
步骤203、通过postgresql+rediscluster+es组合开源技术和高可用配置实现数据存储模块。
[0086]
具体的,通过postgresql+rediscluster+es组合开源技术和高可用配置存储与目标信息相关的数据信息和状态信息。其中,目标信息包括:航班、机票和订单。
[0087]
本发明实施例中,数据存储模块,还包括:数据缓存单元,用于对航班余票数据进行定时拉取和实时拉取。数据缓存单元,具体包括:定时拉取子单元和实时拉取子单元。定
时拉取子单元,用于根据预设时间段对航班余票数据进行拉取。实时拉取子单元,用于根据预设条件对航班余票数据进行拉取。
[0088]
其中,预设条件包括:当用户下单成功,航班余票数据减少使航班信息发生变动时;或者,当用户进行下单,校验航班信息没有通过时。
[0089]
本发明实施例中,数据存储模块,还包括:拆分子模块,用于对第三方机票平台航班查询接口返回的目标数据进行拆分存储。其中,目标数据包括:航班id列表、单个航班飞机信息和产品信息。
[0090]
步骤204、通过对服务器进行集群部署得到应用服务器集群和数据库服务器集群实现基础设施模块。
[0091]
本发明实施例中,基础设施模块包括应用服务器集群和数据库服务器集群。其中,应用服务器集群和数据库服务器集群均用于对目标应用的正常运行提供基础支撑。
[0092]
具体的,本发明实施例采用linux操作系统,通过对服务器进行集群部署得到应用服务器集群和数据库服务器集群实现基础设施模块。
[0093]
需要说明的是,上述步骤201至步骤204的执行顺序可根据实际情况而定,本发明实施例对此不做限定。
[0094]
本发明实施例提供的一种联程运输数据编码方法的技术方案中,通过html5+vue组合开源技术和https实现应用展示模块;通过spring boot开源技术实现应用服务模块;通过postgresql+rediscluster+es组合开源技术和高可用配置实现数据存储模块;通过对服务器进行集群部署得到应用服务器集群和数据库服务器集群实现基础设施模块,能够实现上述联程运输数据编码装置,解决铁路票务系统在空铁联运票务场景下所面临的机票数据缓存效果不佳、数据存储量过大的困境。
[0095]
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1