CN115118686A - 一种旅客报文的处理系统、方法、设备、介质和产品 - Google Patents
一种旅客报文的处理系统、方法、设备、介质和产品 Download PDFInfo
- Publication number
- CN115118686A CN115118686A CN202210719928.XA CN202210719928A CN115118686A CN 115118686 A CN115118686 A CN 115118686A CN 202210719928 A CN202210719928 A CN 202210719928A CN 115118686 A CN115118686 A CN 115118686A
- Authority
- CN
- China
- Prior art keywords
- message
- passenger
- messages
- database
- module
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims abstract description 91
- 238000000034 method Methods 0.000 title claims abstract description 62
- 238000004458 analytical method Methods 0.000 claims abstract description 81
- 238000005192 partition Methods 0.000 claims abstract description 20
- 238000004590 computer program Methods 0.000 claims description 17
- 230000008569 process Effects 0.000 abstract description 25
- 230000006870 function Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 230000036961 partial effect Effects 0.000 description 8
- 230000002829 reductive effect Effects 0.000 description 8
- 230000008859 change Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 230000002159 abnormal effect Effects 0.000 description 5
- 238000012217 deletion Methods 0.000 description 5
- 230000037430 deletion Effects 0.000 description 4
- 239000000047 product Substances 0.000 description 4
- 238000012163 sequencing technique Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000010006 flight Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- RZVHIXYEVGDQDX-UHFFFAOYSA-N 9,10-anthraquinone Chemical compound C1=CC=C2C(=O)C3=CC=CC=C3C(=O)C2=C1 RZVHIXYEVGDQDX-UHFFFAOYSA-N 0.000 description 1
- VPGRYOFKCNULNK-ACXQXYJUSA-N Deoxycorticosterone acetate Chemical compound C1CC2=CC(=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H](C(=O)COC(=O)C)[C@@]1(C)CC2 VPGRYOFKCNULNK-ACXQXYJUSA-N 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- KXGVEGMKQFWNSR-UHFFFAOYSA-N deoxycholic acid Natural products C1CC2CC(O)CCC2(C)C2C1C1CCC(C(CCC(O)=O)C)C1(C)C(O)C2 KXGVEGMKQFWNSR-UHFFFAOYSA-N 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- RGCLLPNLLBQHPF-HJWRWDBZSA-N phosphamidon Chemical compound CCN(CC)C(=O)C(\Cl)=C(/C)OP(=O)(OC)OC RGCLLPNLLBQHPF-HJWRWDBZSA-N 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9057—Arrangements for supporting packet reassembly or resequencing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Mobile Radio Communication Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种旅客报文的处理系统、方法、设备、介质和产品,处理旅客报文的系统包括多个报文接收模块、多个报文存储模块、多个报文解析模块和至少一个数据库,报文消息队列被设置为单分区属性,从而报文消息队列仅允许多个报文接收模块中的一个报文接收模块获取旅客报文,即虽然系统中包括多个报文接收模块,但同一时间只有一个报文接收模块在工作。由此,该处理系统不仅处于分布式系统环境下能够保证可靠性,还能够通过只有一个报文接收模块、一个报文存储模块、一个报文解析模块在工作,且报文解析模块按照报文存储模块为旅客报文增加的顺序标识顺序处理旅客报文,从而降低处理旅客报文过程中出现报文丢失或乱序等异常的概率。
Description
技术领域
本发明涉及数据处理技术领域,尤其是涉及一种旅客报文的处理系统、方法、设备、介质和产品。
背景技术
民航离港系统的旅客报文目前包含两种类型报文,分别为旅客名单报(PassengerName List,PNL)和旅客名单增减报(Addition-Deletion List,ADL)。PNL是航班初始化时,由订座系统发送给离港系统、该航班的第一份报文,包含该航班已订妥的旅客名单信息。ADL在离港系统接收到PNL报文后持续发送,包括航班初始化后变更的旅客增减信息。
以A380客机为例,一个航班的旅客数据最多可以达到500人左右,PNL包括很多旅客的信息,故PNL往往通过拆分为多个子报文的方式批量按顺序发送。特别是ADL,增加一名旅客和删除一名旅客必须严格按顺序处理,否则会出现误删除或者增加错误旅客信息的系统问题。
在传统主机系统时代,由于离港系统处理PNL单通道单进程处理,故不会打乱原有报文的发送顺序。但是在开放系统中,特别是当前互联网分布式系统时代,为了保证系统的可靠性,各个节点的处理环节都是多机冗余并发处理的,这样就会产生“多机同时处理多份报文”的情况,有可能发生“第二份报文先于第一份处理”的异常情况。
发明内容
针对上述问题,本申请提供一种旅客报文的处理系统、方法、设备、介质和产品,用于解决分布式系统环境下,在保证系统可靠性的前提下,降低处理旅客报文过程中出现异常的概率。
基于此,本申请实施例公开了如下技术方案:
一方面,本申请实施例提供一种处理旅客报文的系统,其特征在于,所述系统包括多个报文接收模块、多个报文存储模块、多个报文解析模块和至少一个数据库;
所述报文接收模块,用于从报文消息队列中获取旅客报文,并向所述多个报文存储模块中任意一个报文存储模块发送报文存储模块调用请求;其中,所述报文消息队列被设置为单分区属性,以便所述报文消息队列仅允许所述多个报文接收模块中的一个报文接收模块获取所述旅客报文;
所述报文存储模块,用于根据所述报文存储模块调用请求,将所述旅客报文和所述旅客报文的顺序标识存储至所述数据库中;其中,所述顺序标识用于表征所述旅客报文存储至所述数据库的存储顺序;
所述多个报文解析模块中的目标报文解析模块,用于校验所述数据库中所述旅客报文是否满足预设条件,若是,从所述数据库中获取所述旅客报文,按照所述旅客报文的顺序标识表征的先后顺序解析所述旅客报文,得到所述旅客报文对应的旅客数据,并将所述旅客数据存储至所述数据库。
另一方面本申请提供了一种处理旅客报文的方法,所述方法应用于处理旅客报文的系统,所述系统包括多个报文接收模块、多个报文存储模块、多个报文解析模块和至少一个数据库;
所述报文接收模块从报文消息队列中获取旅客报文,并向所述多个报文存储模块中任意一个报文存储模块发送报文存储模块调用请求;其中,所述报文消息队列被设置为单分区属性,以便所述报文消息队列仅允许所述多个报文接收模块中的一个报文接收模块获取所述旅客报文;
所述报文存储模块根据所述报文存储模块调用请求,将所述旅客报文和所述旅客报文的顺序标识存储至所述数据库中;其中,所述顺序标识用于表征所述旅客报文存储至所述数据库的存储顺序;
所述多个报文解析模块中的目标报文解析模块校验所述数据库中所述旅客报文是否满足预设条件,若是,从所述数据库中获取所述旅客报文,按照所述旅客报文的顺序标识表征的先后顺序解析所述旅客报文,得到所述旅客报文对应的旅客数据,并将所述旅客数据存储至所述数据库。
另一方面本申请提供了一种计算机设备,所述设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行上述方面所述的方法。
另一方面本申请提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行上述方面所述的方法。
另一方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方面所述的方法。
相对于现有技术,本申请上述技术方案的优点在于:
处理旅客报文的系统包括多个报文接收模块、多个报文存储模块、多个报文解析模块和至少一个数据库,即该系统处于分布式系统环境下。报文消息队列被设置为单分区属性,从而报文消息队列仅允许多个报文接收模块中的一个报文接收模块获取旅客报文,即虽然系统中包括多个报文接收模块,但同一时间只有一个报文接收模块在工作,当该工作的报文接收模块出现故障,系统中的其他报文接收模块会自动接替出现故障的报文接收模块继续工作,从而保障系统的可靠性。报文接收模块从报文消息队列中获取旅客报文后,向多个报文存储模块中任意一个报文存储模块发送报文存储模块调用请求,进而保证只有一个报文存储模块在工作,报文存储模块将旅客报文和用于标识该旅客报文存储至数据库的存储顺序的顺序标识一同存储至数据库中。多个报文解析模块中的目标报文解析模块校验数据库中旅客报文是否符合预设条件,若是,则从数据库中获取旅客报文,并按照旅客报文的顺序标识表征的先后顺序解析旅客报文,得到旅客报文对应的旅客数据,并将旅客数据存储至数据库中。由此,本申请提供的处理旅客报文的系统,不仅处于分布式系统环境下保证可靠性,还能够通过只有一个报文接收模块、一个报文存储模块、一个报文解析模块在工作,且报文解析模块按照报文存储模块为旅客报文增加的顺序标识顺序处理旅客报文,从而降低处理旅客报文过程中出现报文丢失或乱序等异常的概率。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
图1为本申请提供的一种处理旅客报文的系统的示意图;
图2为本申请提供的一种处理旅客报文的方法的流程图;
图3为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
在分布式系统中,“顺序”和“并发”两个矛盾的概念。要保证“顺序”必须单点或单进程处理,单点或单进程一旦出现故障,就降低了系统的可靠性。分布式系统中“并发”既提高了系统可靠性,也提高了系统的运行效率,但要实现“并发”,就要去除单点,从而打乱数据处理的“顺序”,这又不符合一些特定场景下的业务要求。后台服务系统,为了提高系统可靠性,各个处理节点都要冗余,但为了业务的“顺序”要求,又要避免“并发”乱序处理。在民航离港后台服务系统中,接收和处理旅客名单报文,就是一个典型的需要“顺序处理”的业务场景。如何在分布式系统中保证顺序处理报文,是一个技术上的难题。
基于此,本申请提供一种处理旅客报文的系统,该统包括多个报文接收模块、多个报文存储模块、多个报文解析模块和至少一个数据库,即该系统处于分布式系统环境下。报文消息队列被设置为单分区属性,从而报文消息队列仅允许多个报文接收模块中的一个报文接收模块获取旅客报文,即虽然系统中包括多个报文接收模块,但同一时间只有一个报文接收模块在工作,当该工作的报文接收模块出现故障,系统中的其他报文接收模块会自动接替出现故障的报文接收模块继续工作,从而保障系统的可靠性。报文接收模块从报文消息队列中获取旅客报文后,向多个报文存储模块中任意一个报文存储模块发送报文存储模块调用请求,进而保证只有一个报文存储模块在工作,报文存储模块将旅客报文和用于标识该旅客报文存储至数据库的存储顺序的顺序标识一同存储至数据库中。多个报文解析模块中的目标报文解析模块校验数据库中旅客报文是否符合预设条件,若是,则从数据库中获取旅客报文,并按照旅客报文的顺序标识表征的先后顺序解析旅客报文,得到旅客报文对应的旅客数据,并将旅客数据存储至数据库中。由此,本申请提供的处理旅客报文的系统,不仅处于分布式系统环境下保证可靠性,还能够通过只有一个报文接收模块、一个报文存储模块、一个报文解析模块在工作,且报文解析模块按照报文存储模块为旅客报文增加的顺序标识顺序处理旅客报文,从而降低处理旅客报文过程中出现报文丢失或乱序等异常的概率。
下面结合图1,对本申请实施例提供的一种处理旅客报文的系统进行介绍。参见图1,该图为本申请实施例提供的一种处理旅客报文的系统的示意图。该系统包括3个报文接收模块、3个报文存储模块、3个报文解析模块和一个数据库。其中,报文接收模块、报文存储模块和报文解析模块的数量可以相同,也可不同,本申请对此不做具体限定。数据库也可以为多个,本申请对此不做具体限定。
本申请实施例提供的处理旅客报文的系统应用于订座系统和离港系统之间,即订座系统会经过本申请实施例提供的处理旅客报文的系统,将旅客数据发送给订座系统。
下面对订座系统和离港系统进行说明。
(1)订座系统是中国航信为航空公司用户提供旅客订座服务的系统。订座系统通过网络连接至终端设备,实现航班/旅客信息与主机系统的自动传输和处理。订座系统和离港系统、航空公司常旅客系统、电子客票系统、国外航空公司等系统进行连接。订座系统为航空公司用户提供航班数据控制、航班可利用信息查询、旅客预定和出票、机上座位控制、航班变更及旅客保护、常旅客识别等功能。
(2)离港系统为航班旅客办理乘机手续,对飞机进行配载计算、航班控制和自动处理电报等功能的计算机实时网络系统。
下面对本申请实施例提供的处理旅客报文的系统所包括的各个模块进行说明。
订座系统将旅客数据以报文的形式,即旅客报文存储在报文消息队列中。报文消息队列属于消息队列(Message Queue,简称MQ),用于存储至少一条旅客报文,以便报文接收模块能够从报文消息队列中获取到旅客报文。其中,消息队列从字面意思上看,本质是个队列,FIFO先入先出,只不过队列中存放的内容是message而已。其主要用途:不同进程Process/线程Thread之间通信。
作为一种可能的实现方式,同一航班的旅客报文可以按照顺序保存在报文消息队列的单一分区中。
在本申请实施例中,报文消息队列被设置为单分区属性,单分区属性的报文消息队列仅允许多个报文接收模块中的一个报文接收模块获取旅客报文。由此,虽然系统中包括多个报文接收模块,但同一时间只有一个报文接收模块能够从报文消息队列中获取旅客报文,或者说同一时间只有一个报文接收模块在工作。例如,每个报文接收模块中均具有报文接收进程,多个报文接收模块中的多个报文接收进程同时运行,并监听报文消息队列,由于报文消息队列设置为单分区属性,报文消息队列的监听客户端可以保证同一时间只有一个报文接收进程在工作。
需要说明的是,当该工作的报文接收模块出现故障,系统中的其他报文接收模块会自动接替出现故障的报文接收模块继续工作,从而保障系统的可靠性。
报文接收模块从报文消息队列中获取旅客报文后,向多个报文存储模块中任意一个报文存储模块发送报文存储模块调用请求。报文存储模块根据报文存储模块调用请求,将旅客报文和旅客报文的顺序标识存储至数据库中,由此,同一时间只有一个报文接收模块在工作,该工作的报文接收模块仅调用一个报文存储模块,即只有一个报文存储模块在工作,使得每条旅客报文均可以按照先后顺序存储至数据库中。此外,若旅客报文被拆分为多条子报文,还能够保证多条子报文先存储至数据库后再一起解析,避免后续解析出现异常。而且,在存储的同时,每条旅客报文还会与用于表征旅客报文存储至数据库的存储顺序的顺序标识一同存储至数据库,无论旅客报文是PNL还是ADL,均可以按照先后顺序存储,从而后续可以按照先后顺序处理旅客报文,降低出现“第二份报文先于第一份处理”的异常情况的概率。
作为一种可能的实现方式,顺序标识可以为时间戳,报文存储模块可以将数据库存储旅客报文的存储时间作为旅客报文的顺序标识。需要说明的是,为了保证多个系统时间的一致性,可以采用数据库存储时间作为时间戳。
需要说明的是,每份旅客报文存储在数据库中,可以包括航班信息、原始报文内容、子报文的部分(Part)编号,子报文的总Part数、报文时间戳、报文所属处理分区等信息。
多个报文解析模块中的目标报文解析模块,用于校验数据库中旅客报文是否完整,若是,从数据库中获取旅客报文。由此,同一时间只有一个报文解析模块在工作,即目标报文解析模块在工作,避免产生“多机同时处理多份报文”的情况。需要说明的是,处理旅客报文的系统可以设置目标报文解析模块,从而保证处理旅客报文的系统中只有一个报文处理模块在工作。
目标报文解析模块校验旅客报文是否满足预设条件,例如,旅客报文的格式是否满足对应的格式要求,又如若旅客报文包括被拆分为多条子报文分开发送并存储,则可以校验旅客报文是否完整等,以保证该旅客报文接收完整后,再顺序处理解析入库,本申请对此不做具体限定。若旅客报文通过校验,则说明旅客报文可以进行后续解析处理。然后从数据库中获取旅客报文,按照旅客报文的顺序标识表征的先后顺序解析旅客报文,得到旅客报文对应的旅客数据,并将旅客数据存储至数据库。由此,通过顺序标识按照先后顺序处理旅客报文可以降低发生“第二份报文先于第一份处理”的异常情况的概率。
若旅客报文不满足预设条件,即未通过校验,则可以先暂时不从数据库中获取旅客报文,直至其满足预设条件后,再对其进行解析处理。
作为一种可能的实现方式,不论是PNL还是ADL,在报文的末尾均会有END标识,故若数据库中存储的报文具有END标识,可以触发对应的目标报文解析模块工作。
下面分别对PNL和ADL进行说明。
(1)PNL示例:
PNL
XX995/31MAR CTU
CFG/008F028C156Y
RBD F/FA C/CJ Y/YTHMGSLQEVRKINBUWXPZOD
AVAIL
CTU SPN
F008
C028
Y145
-SPN11Y
1DIXON/DAXXX.L/MZ8DDY.R/RLOC RYUJFB
.R/DOCS
HK1/P/USA/99999999/USA/05FEB76/M/01FEB11/DIXON/DANXX
.S/MP/XX000888888888888/0Z
1EVERGREEN/GRAXXX-A8.C/GRP.L/NT2V73.R/RLOC RYUJEA
.R/DOCS
HK1/P/USA/99999999/USA/24DEC38/M/01FEB12/EVERGREEN/GRXXX/G
.S/MP/XX000888888888888/0Z
1JONES/XXX.L/MZ8DDS.R/RLOC RYUJED
.R/DOCS HK1/P/USA/99999999/USA/04JAN87/M/01FEB11/JONES/MXX
.S/MP/XX000888888888888/0Z
1NATIONALS/WASHINGXXX-A8.L/NT2V73.R/RLOC RYUJEA
.R/DOCS
HK1/P/USA/99999999/USA/08MAR56/M/01JAN11/NATIONALS/WASHIXXXON
.S/MP/XX000888888888888/11
1OMALLEY/JOSXXX.L/MZ8DDT.R/RLOC RYUJEF
.R/DOCS
HK1/P/IRL/99999999/IRL/15APR58/M/01JAN11/OMALLEY/JOSXXX
.S/MP/XX000888888888888/0Z
1PADRON/ANNEXXX-A8.L/NT2V73.R/RLOC RYUJEA
.R/DOCS
HK1/P/ESP/99999999/ESP/08MAR44/F/01FEB12/PADRON/ANNEXXX
.R/DOCA HK1/D/USA/1000 FIRST STREET NW/WASHINGXXX/DC/20007/PADRON/ANNEXXX
.S/MP/XX000888888888888/0Z
-SPN00T
-SPN00H
END
其中,PNL是报文开始标识,END是报文结尾标识,即PNL的END标识。
(2)ADL示例:
ADL
CA111Z/09AUG PEK PART1
-SHA21C
ADD
1CHERLIAN/SXXX.L/X1TX0.R/FOID HK1 NI999999999/2030CNY
.R/TKNE HK1 9999999999999/1.R/FQTV CA 999999999/C.R/CTC 666666666
.R/CTCT 666666666
.R/CTC BJS000-06AUG10-9999-T BJS/BJS/T 010-666666666/BJS AI TE BO LUY
.RN/-UN AIR CO-XXX/WA.R/CTC T BJS/NG XXXXX PID 9999/4ET
1CHUA/CHEEXXXX.L/FE6PC.R/FOID HK1 NI999999A
.R/TKNE HK1 9999999999999/1.R/CTC 6666666 CHEN.R/TKNA TICTKED
.R/CTC SHA000-05AUG10-0945-T SHA/SHA/T 021-6666666/SHA DONG MEI AXXX
.RN/-TION TOURISXXXX-.R/CTC T SHA/CC/LIU GANG
DEL
1BB-IB4.L/H6MSN.O/CA4308Y21CTU
CHG
1CC-IB3.L/H6MSN.O/CA4308Y21CTU.R/CKIN TESTB.R/CTC C
1DD-IB3.L/H6MSN.R/CKIN TESTB.R/CKIN TEST.R/CTC C
ENDADL
其中,ADL是报文开始标识,ADD/DEL/CHG是段标识,ENDADL是报文结尾标识,即ADL的END标识。
由上述技术方案可知,处理旅客报文的系统包括多个报文接收模块、多个报文存储模块、多个报文解析模块和至少一个数据库,即该系统处于分布式系统环境下。报文消息队列被设置为单分区属性,从而报文消息队列仅允许多个报文接收模块中的一个报文接收模块获取旅客报文,即虽然系统中包括多个报文接收模块,但同一时间只有一个报文接收模块在工作,当该工作的报文接收模块出现故障,系统中的其他报文接收模块会自动接替出现故障的报文接收模块继续工作,从而保障系统的可靠性。报文接收模块从报文消息队列中获取旅客报文后,向多个报文存储模块中任意一个报文存储模块发送报文存储模块调用请求,进而保证只有一个报文存储模块在工作,报文存储模块将旅客报文和用于标识该旅客报文存储至数据库的存储顺序的顺序标识一同存储至数据库中。多个报文解析模块中的目标报文解析模块校验数据库中旅客报文是否符合预设条件,若是,则从数据库中获取旅客报文,并按照旅客报文的顺序标识表征的先后顺序解析旅客报文,得到旅客报文对应的旅客数据,并将旅客数据存储至数据库中。由此,本申请提供的处理旅客报文的系统,不仅处于分布式系统环境下保证可靠性,还能够通过只有一个报文接收模块、一个报文存储模块、一个报文解析模块在工作,且报文解析模块按照报文存储模块为旅客报文增加的顺序标识顺序处理旅客报文,从而降低处理旅客报文过程中出现报文丢失或乱序等异常的概率。
作为一种可能的实现方式,处理旅客报文的系统还包括多个报文定时器模块。由于报文解析模块属于服务,服务仅触发一次,若服务在触发过程中出现崩溃或系统出现死机等情况,例如,目标报文解析模块从数据库中获取旅客报文后崩溃或所属系统死机,会导致旅客报文还没被处理就丢失,从而影响数据的处理情况,故通过多个报文定时器模块中的目标报文定时器模块,每隔固定时间向目标报文解析模块发送报文解析模块调用请求。由此,通过一个报文定时器模块定时向目标报文解析模块发送报文解析模块调用请求,以便目标报文解析模块根据报文解析模块调用请求校验数据库中旅客报文是否满足预设条件,可支持异常情况多次重试处理,提高处理旅客报文的系统鲁棒性。
需要说明的是,相比于仅通过可以通过报文定时器模块调用目标报文解析模块对旅客报文进行处理,通过END标识触发目标报文解析模块进行相应处理的同时,辅以报文定时器模块调用目标报文解析模块对旅客报文进行处理可以降低报文定时器的处理压力。
需要说明的是,定时模块的启动触发是由平台提供的基本功能,而平台本身就是单点执行(虽然是多部署,但是为冷备份模式,同一时间只有一个部署运行)。
作为一种可能的实现方式,若旅客报文被拆分为多条子报文存储至报文消息队列中,多条子报文具有用于表征顺序的部分标识,如PART1、PART2等,多条子报文的顺序标识相同,即属于同一条旅客报文的多条子报文的顺序标识相同。目标报文解析模块从数据库中获取旅客报文后,按照旅客报文所包括的多条子报文的部分标识表征的先后顺序,拼接多条子报文,得到旅客报文。然后按照旅客报文的顺序标识表征的先后顺序解析旅客报文,得到旅客报文对应的旅客数据,并将旅客数据存储至所述数据库。
需要说明的是,本申请实施例不仅限于对旅客报文的处理,对包括多条子报文的其他通用报文均可使用。
作为一种可能的实现方式,若旅客报文被拆分为多条子报文存储至报文消息队列中,可能会存在个别子报文出现问题,导致该条旅客报文均无法完成处理,故可以当目标报文定时处理器向目标报文解析模块发送报文存储模块调用请求超过预设次数,则提醒对应工作人员手工补充该条子报文。由此,本申请实施例提供的处理旅客报文的系统,不仅支持分part的旅客报文接收完整后再处理,还支持对分part的旅客报文缺失的异常处理。
作为一种可能的实现方式,数据库还可以分为两个,如原始报文数据库和解析结果数据库,其中,原始报文数据库用于存储来自于报文存储模块的旅客报文,解析结果数据库用于存储旅客报文解析得到的旅客数据。从而确保旅客报文先存储再处理,可用于系统维护和历史问题排查。由此,数据库虽然从逻辑上表现为一个“单点”,但在实际物理部署上,一般也至少是双机做HA架构,以提高系统可靠性。
作为一种可能的实现方式,由于出现数据处理异常的情况仅出现在一个航班对应的航班报文中,故为了提高处理效率,可以让一个报文接收模块、一个报文存储模块和一个报文解析模块针对一个航班的数据进行处理,另一个报文接收模块、另一个报文存储模块和另一个报文解析模块针对另一个航班的数据进行处理。故,旅客报文还包括航班标识,报文接收模块根据旅客报文携带的航班标识,向航班标识对应的报文存储模块发送报文存储模块调用请求,以便报文存储模块将携带航班标识的旅客报文存储至数据库。
需要说明的是,系统还可以根据航班标识设置目标报文解析模块,甚至是目标定时器模块,即航班标识与目标报文解析模块、目标定时器模块、报文接收模块和报文存储模块具有对应关系。
作为一种可能的实现方式,可以根据航班所隶属的业务逻辑分区设置一个对应的报文接收模块、报文存储模块和报文解析模块进行处理。例如,中国的航班,调用亚洲分区的目标报文解析模块,德国的航班,调用欧洲分区的目标报文解析模块等。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
本申请实施例除了提供的处理旅客报文的系统外,还提供了处理旅客报文的方法,该方法应用于如图1所示的处理旅客报文的系统。如图2所示,该方法包括:
S201:所述报文接收模块从报文消息队列中获取旅客报文,并向所述多个报文存储模块中任意一个报文存储模块发送报文存储模块调用请求。
其中,所述报文消息队列被设置为单分区属性,以便所述报文消息队列仅允许所述多个报文接收模块中的一个报文接收模块获取所述旅客报文。
S202:所述报文存储模块根据所述报文存储模块调用请求,将所述旅客报文和所述旅客报文的顺序标识存储至所述数据库中。
其中,所述顺序标识用于表征所述旅客报文存储至所述数据库的存储顺序。
S203:所述多个报文解析模块中的目标报文解析模块校验所述数据库中所述旅客报文是否满足预设条件,若是,从所述数据库中获取所述旅客报文,按照所述旅客报文的顺序标识表征的先后顺序解析所述旅客报文,得到所述旅客报文对应的旅客数据,并将所述旅客数据存储至所述数据库。
作为一种可能的实现方式,所述顺序标识为时间戳,所述报文存储模块根据所述报文存储模块调用请求,将所述数据库存储所述旅客报文的存储时间作为所述旅客报文的顺序标识,将所述旅客报文和所述旅客报文的顺序标识存储至所述数据库中。
作为一种可能的实现方式,所述系统还包括多个报文定时器模块。在S203之后还包括:
S204:所述多个报文定时器模块中的目标报文定时器模块,用于每隔固定时间向所述目标报文解析模块发送报文解析模块调用请求;
S205:所述目标报文解析模块,用于根据所述报文解析模块调用请求校验所述数据库中所述旅客报文是否满足预设条件。
作为一种可能的实现方式,若所述旅客报文被拆分为多条子报文存储至所述报文消息队列中,所述多条子报文具有用于表征顺序的部分标识,所述多条子报文的顺序标识相同。所述目标报文解析模块从所述数据库中获取所述旅客报文后,按照所述旅客报文所包括的多条子报文的部分标识表征的先后顺序,拼接所述多条子报文,得到所述旅客报文。
作为一种可能的实现方式,所述旅客报文还包括航班标识;所述报文接收模块根据所述旅客报文携带的航班标识,向所述航班标识对应的报文存储模块发送报文存储模块调用请求。
作为一种可能的实现方式,所述目标报文解析模块与所述航班标识具有对应关系。
由上述技术方案可知,处理旅客报文的系统包括多个报文接收模块、多个报文存储模块、多个报文解析模块和至少一个数据库,即该系统处于分布式系统环境下。报文消息队列被设置为单分区属性,从而报文消息队列仅允许多个报文接收模块中的一个报文接收模块获取旅客报文,即虽然系统中包括多个报文接收模块,但同一时间只有一个报文接收模块在工作,当该工作的报文接收模块出现故障,系统中的其他报文接收模块会自动接替出现故障的报文接收模块继续工作,从而保障系统的可靠性。报文接收模块从报文消息队列中获取旅客报文后,向多个报文存储模块中任意一个报文存储模块发送报文存储模块调用请求,进而保证只有一个报文存储模块在工作,报文存储模块将旅客报文和用于标识该旅客报文存储至数据库的存储顺序的顺序标识一同存储至数据库中。多个报文解析模块中的目标报文解析模块校验数据库中旅客报文是否符合预设条件,若是,则从数据库中获取旅客报文,并按照旅客报文的顺序标识表征的先后顺序解析旅客报文,得到旅客报文对应的旅客数据,并将旅客数据存储至数据库中。由此,本申请提供的处理旅客报文的系统,不仅处于分布式系统环境下保证可靠性,还能够通过只有一个报文接收模块、一个报文存储模块、一个报文解析模块在工作,且报文解析模块按照报文存储模块为旅客报文增加的顺序标识顺序处理旅客报文,从而降低处理旅客报文过程中出现报文丢失或乱序等异常的概率。
作为一种示例,旅客报文中的字段名称、字段含义等如表1所示。
表1
其中,关于航班航站和报文状态说明
一、航班航站状态。
(1)未接收PNL:初始状态,还没有收到第一份PNL。
(2)正在接收PNL:已收到PNL的部分PART。
(3)已接收PNL:已收到完整的PNL,或收到NO PNL报文。
(4)正在解析PNL:正在进行PNL的解析,本状态变更由初始化业务驱动,开始解析PNL时变成本状态。
(5)已处理PNL:已经完成PNL的解析,本状态变更由PNL解析业务驱动,解析完成后变成本状态。
(6)已删除PNL:删除航班初始化时删除了PNL,本状态变更由删除航班初始化业务驱动,删除报文后变成本状态。
其中,(4)和状态(5)都代表航班已经初始化。航班初始化:民航旅客的订票信息首先保存在订座系统中,在距离航班起飞前固定的时间段内,离港系统会向订座系统发送请求,获取近期即将起飞的航班旅客数据,这个动作叫做航班初始化。航班初始化动作,一般国内航班在距离起飞前48小时之内,国际航班一般在起飞前72小时。
二、报文状态。
如果旅客报文有多个PART,则该旅客报文的所有PART的状态是一样的,都是旅客报文的状态。
(1)正在接收:已经收到PNL/ADL的部分PART。分成两种情况:还没有收到最后一个PART,无法确认报文的总PART数量,只能知道已经接收哪些PART;已经收到最后一个PART,可以知道还缺那些PART,本状态由旅客名单报排序业务驱动变更。
(2)已接收:已经收到PNL/ADL的所有PART,或者收到部分PART的报文,本状态由旅客名单报排序业务驱动变更。
(3)已处理:已经做过解析入库的操作,本状态变更由报文解析业务驱动,报文解析入库后变成本状态。
(4)已删除:航班删除初始化,删除了对应的PNL/ADL。本状态变更由删除航班初始化业务驱动,删除报文后变成本状态。
三、错误报文。
(1)ADL先于PNL到达:还没有收到完整的PNL就收到的ADL。
(2)PNL已存在:已经收到NO PNL报文后,再收到普通的PNL或NO PNL报文;或者已经收到普通PNL的至少一个PART后,又收到的NO PNL报文。
(3)航班已经初始化:航班已经初始化后收到的PNL。
(4)PART重复:PART重复的报文,包括后接收到的重复PART的自动报文、被手工报文替代的自动报文、被更新的手工报文替代的手工报文。
(5)格式错误:无法满足PNL/ADL格式基础信息解析的报文,或者收到的PART号超出报文总PART数的报文。
(6)报文顺序错误:上一个分PART报文还没有接收完整,收到的另一份自动报文。
(7)非PNL/ADL报文:不是PNL/ADL的报文。
四、关于规则与约束。
(一)PART判定规则。
(1)在报文处理之前,收到相同PART的报文(包括PNL报、相同ANA号的分PART的ADL报),优先级判定如下:
手工报文优先级高于自动报文(允许通过手工报文的方式修复自动报文中的错误);
后接收到的手工报文优先级高于先接收的手工报文(允许通过手工报文的方式修复前面手工报文的错误);
先接收的自动报文优先级高于后接收的自动报文(自动报文不应出现重复,认为后接收的自动报文为重复报文);
后接收的手工报文>先接收的手工报文>先接收的自动报文>后接收的自动报文;
在存在优先级更高的PART的情况下,报文认为是“PART重复”报文。
(2)如果PART号超出报文总PART数,报文认为是“格式错误”报文。
(3)如果报文已经处理,再收到其中的PART报文(包括自动报文和手工报文),都认为是“PART重复”报文。
(二)关于ADL报文顺序判定规则。
(1)自动报文以收到的第一个PART的时间戳作为排序时间;手工报文以收到完整报文的最后一个PART的时间戳作为排序时间;
(自动报文如果分PART,多个PART之间时间差距不大,认为收到第一个的时间就是系统希望发送报文的时间);
(手工报文如果分PART,考虑到实际操作的时间之间会有很大间隔,特别是可能出现迟迟无法完成所有报文发送的情况,认为收到了完整报文的时间才是报文的真实时间);
自动报文,如果收到了手工报文更新了自动报文其中的一个PART,接收手工报文的时间不影响自动报文的排序时间;
已完整接收的手工报文,如果收到了另一份手工报文更新了其中的一个PART,则以收到的最后一个有效手工报文的时间为排序时间。
(2)如果自动报文分PART,则所有PART接收完之前(自动行李和手工行李的和),不允许有其它的自动报文插入其中,但允许期间插入手工报文。
(3)如果手工报文分PART,则所有PART接收完之前(自动行李和手工行李的和),不允许有其它的手工报文插入其中,但允许期间插入自动报文。
违反了上述报文顺序判定规则的报文,都是“报文顺序错误”报文。
(三)关于PNL报文判定规则。
(1)PNL报文必须在ADL报文到达之前完整接收。
在PNL报文的所有PART都完整接收之前,如果收到自动或手动的ADL报,都认为ADL报文为“ADL先于PNL到达”的错误报文;
NO PNL作为PNL报中的一种,本身一个报文就算是完整PNL报文。已经接收NO PNL报之后,就可以接收ADL报了。
(2)如果已经接收了普通PNL报的部分PART,再接收到NO PNL报,认为NO PNL报为“PNL已存在”的错误报文;
(3)如果已经接收了NO PNL报,再接收到普通PNL报或NO PNL报,则认为收到的报文为“PNL已存在”的错误报文;
(4)手工报文方式的PNL报文更新。
如果已经接收了NO PNL报,不允许通过手工报文的形式接收任何形式PNL报;
如果接收的是普通PNL报,在PNL报文没有被处理之前,允许在任意时间接收手工普通PNL报对其中的PART进行更新修正。使用新报文,原报文变成“PART重复”的错误报文。
如果航班已经初始化,则认为收到的PNL报文为“航班已初始化”的错误报文。
需要说明的是,可以通过报文状态等判断旅客报文是否符合预设条件,如是否完整等。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面参考图3,其示出了适于用来实现本公开实施例的电子设备600的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图3示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图3所示,电子设备600可以包括处理装置(例如中央处理器、图形处理器等)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储装置606加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有电子设备600操作所需的各种程序和数据。处理装置601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
通常,以下装置可以连接至I/O接口605:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置606;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置607;包括例如磁带、硬盘等的存储装置606;以及通信装置609。通信装置609可以允许电子设备600与其他设备进行无线或有线通信以交换数据。虽然图3示出了具有各种装置的电子设备600,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备应用于处理旅客报文的系统,所述系统包括多个报文接收模块、多个报文存储模块、多个报文解析模块和至少一个数据库其中,所述报文接收模块从报文消息队列中获取旅客报文,并向所述多个报文存储模块中任意一个报文存储模块发送报文存储模块调用请求;其中,所述报文消息队列被设置为单分区属性,以便所述报文消息队列仅允许所述多个报文接收模块中的一个报文接收模块获取所述旅客报文;
所述报文存储模块根据所述报文存储模块调用请求,将所述旅客报文和所述旅客报文的顺序标识存储至所述数据库中;其中,所述顺序标识用于表征所述旅客报文存储至所述数据库的存储顺序;
所述多个报文解析模块中的目标报文解析模块校验所述数据库中所述旅客报文是否满足预设条件,若是,从所述数据库中获取所述旅客报文,按照所述旅客报文的顺序标识表征的先后顺序解析所述旅客报文,得到所述旅客报文对应的旅客数据,并将所述旅客数据存储至所述数据库。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置609从网络上被下载和安装,或者从存储装置606被安装,或者从ROM 602被安装。在该计算机程序被处理装置601执行时,执行本公开实施例的方法中限定的上述功能。
根据本申请的一个或多个实施例,【示例一】提供了一种处理旅客报文的系统,所述系统包括多个报文接收模块、多个报文存储模块、多个报文解析模块和至少一个数据库;
所述报文接收模块,用于从报文消息队列中获取旅客报文,并向所述多个报文存储模块中任意一个报文存储模块发送报文存储模块调用请求;其中,所述报文消息队列被设置为单分区属性,以便所述报文消息队列仅允许所述多个报文接收模块中的一个报文接收模块获取所述旅客报文;
所述报文存储模块,用于根据所述报文存储模块调用请求,将所述旅客报文和所述旅客报文的顺序标识存储至所述数据库中;其中,所述顺序标识用于表征所述旅客报文存储至所述数据库的存储顺序;
所述多个报文解析模块中的目标报文解析模块,用于校验所述数据库中所述旅客报文是否满足预设条件,若是,从所述数据库中获取所述旅客报文,按照所述旅客报文的顺序标识表征的先后顺序解析所述旅客报文,得到所述旅客报文对应的旅客数据,并将所述旅客数据存储至所述数据库。
根据本申请的一个或多个实施例,【示例二】提供了一种处理旅客报文的系统,所述顺序标识为时间戳,所述报文存储模块,还用于:
将所述数据库存储所述旅客报文的存储时间作为所述旅客报文的顺序标识。
根据本申请的一个或多个实施例,【示例三】提供了一种处理旅客报文的系统,所述系统还包括多个报文定时器模块;
所述多个报文定时器模块中的目标报文定时器模块,用于每隔固定时间向所述目标报文解析模块发送报文解析模块调用请求;
所述目标报文解析模块,用于根据所述报文解析模块调用请求校验所述数据库中所述旅客报文是否满足预设条件。
根据本申请的一个或多个实施例,【示例四】提供了一种处理旅客报文的系统,若所述旅客报文被拆分为多条子报文存储至所述报文消息队列中,所述多条子报文具有用于表征顺序的部分标识,所述多条子报文的顺序标识相同;
所述目标报文解析模块,具体用于:
从所述数据库中获取所述旅客报文后,按照所述旅客报文所包括的多条子报文的部分标识表征的先后顺序,拼接所述多条子报文,得到所述旅客报文。
根据本申请的一个或多个实施例,【示例五】提供了一种处理旅客报文的系统,所述旅客报文还包括航班标识;所述报文接收模块,具体用于:
根据所述旅客报文携带的航班标识,向所述航班标识对应的报文存储模块发送报文存储模块调用请求。
根据本申请的一个或多个实施例,【示例六】提供了一种处理旅客报文的系统,所述目标报文解析模块与所述航班标识具有对应关系。
根据本申请的一个或多个实施例,【示例七】提供了一种处理旅客报文的方法,所述方法应用于处理旅客报文的系统,所述系统包括多个报文接收模块、多个报文存储模块、多个报文解析模块和至少一个数据库;
所述报文接收模块从报文消息队列中获取旅客报文,并向所述多个报文存储模块中任意一个报文存储模块发送报文存储模块调用请求;其中,所述报文消息队列被设置为单分区属性,以便所述报文消息队列仅允许所述多个报文接收模块中的一个报文接收模块获取所述旅客报文;
所述报文存储模块根据所述报文存储模块调用请求,将所述旅客报文和所述旅客报文的顺序标识存储至所述数据库中;其中,所述顺序标识用于表征所述旅客报文存储至所述数据库的存储顺序;
所述多个报文解析模块中的目标报文解析模块校验所述数据库中所述旅客报文是否满足预设条件,若是,从所述数据库中获取所述旅客报文,按照所述旅客报文的顺序标识表征的先后顺序解析所述旅客报文,得到所述旅客报文对应的旅客数据,并将所述旅客数据存储至所述数据库。
根据本申请的一个或多个实施例,【示例八】提供了一种处理旅客报文的方法,所述顺序标识为时间戳,所述报文存储模块根据所述报文存储模块调用请求,将所述数据库存储所述旅客报文的存储时间作为所述旅客报文的顺序标识,将所述旅客报文和所述旅客报文的顺序标识存储至所述数据库中。
根据本申请的一个或多个实施例,【示例九】提供了一种处理旅客报文的方法,所述多个报文定时器模块中的目标报文定时器模块,用于每隔固定时间向所述目标报文解析模块发送报文解析模块调用请求;
所述目标报文解析模块,用于根据所述报文解析模块调用请求校验所述数据库中所述旅客报文是否满足预设条件。
根据本申请的一个或多个实施例,【示例十】提供了一种处理旅客报文的方法,若所述旅客报文被拆分为多条子报文存储至所述报文消息队列中,所述多条子报文具有用于表征顺序的部分标识,所述多条子报文的顺序标识相同。所述目标报文解析模块从所述数据库中获取所述旅客报文后,按照所述旅客报文所包括的多条子报文的部分标识表征的先后顺序,拼接所述多条子报文,得到所述旅客报文。
根据本申请的一个或多个实施例,【示例十一】提供了一种处理旅客报文的方法,所述旅客报文还包括航班标识;所述报文接收模块根据所述旅客报文携带的航班标识,向所述航班标识对应的报文存储模块发送报文存储模块调用请求。
根据本申请的一个或多个实施例,【示例十二】提供了一种处理旅客报文的方法,所述目标报文解析模块与所述航班标识具有对应关系。
根据本申请的一个或多个实施例,【示例十三】提供了一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如【示例七】至【示例十二】中任意一项所述的方法。
根据本申请的一个或多个实施例,【示例十四】提供了一种计算机可读介质,其上存储有计算机程序,其中,所述程序被处理器执行时实现如【示例七】至【示例十二】中任意一项所述的方法。
根据本申请的一个或多个实施例,【示例十五】提供了一种计算机程序产品,包括计算机程序或指令;当所述计算机程序或指令被处理器执行时,执行如【示例七】至【示例十二】任意一项所述的方法。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (10)
1.一种处理旅客报文的系统,其特征在于,所述系统包括多个报文接收模块、多个报文存储模块、多个报文解析模块和至少一个数据库;
所述报文接收模块,用于从报文消息队列中获取旅客报文,并向所述多个报文存储模块中任意一个报文存储模块发送报文存储模块调用请求;其中,所述报文消息队列被设置为单分区属性,以便所述报文消息队列仅允许所述多个报文接收模块中的一个报文接收模块获取所述旅客报文;
所述报文存储模块,用于根据所述报文存储模块调用请求,将所述旅客报文和所述旅客报文的顺序标识存储至所述数据库中;其中,所述顺序标识用于表征所述旅客报文存储至所述数据库的存储顺序;
所述多个报文解析模块中的目标报文解析模块,用于校验所述数据库中所述旅客报文是否满足预设条件,若是,从所述数据库中获取所述旅客报文,按照所述旅客报文的顺序标识表征的先后顺序解析所述旅客报文,得到所述旅客报文对应的旅客数据,并将所述旅客数据存储至所述数据库。
2.根据权利要求1所述的系统,其特征在于,所述顺序标识为时间戳,所述报文存储模块,还用于:
将所述数据库存储所述旅客报文的存储时间作为所述旅客报文的顺序标识。
3.根据权利要求1所述的系统,其特征在于,所述系统还包括多个报文定时器模块;
所述多个报文定时器模块中的目标报文定时器模块,用于每隔固定时间向所述目标报文解析模块发送报文解析模块调用请求;
所述目标报文解析模块,用于根据所述报文解析模块调用请求校验所述数据库中所述旅客报文是否满足预设条件。
4.根据权利要求1所述的系统,其特征在于,若所述旅客报文被拆分为多条子报文存储至所述报文消息队列中,所述多条子报文具有用于表征顺序的部分标识,所述多条子报文的顺序标识相同;
所述目标报文解析模块,具体用于:
从所述数据库中获取所述旅客报文后,按照所述旅客报文所包括的多条子报文的部分标识表征的先后顺序,拼接所述多条子报文,得到所述旅客报文。
5.根据权利要求1所述的系统,其特征在于,所述旅客报文还包括航班标识;所述报文接收模块,具体用于:
根据所述旅客报文携带的航班标识,向所述航班标识对应的报文存储模块发送报文存储模块调用请求。
6.根据权利要求5所述的系统,其特征在于,所述目标报文解析模块与所述航班标识具有对应关系。
7.一种处理旅客报文的方法,其特征在于,所述方法应用于处理旅客报文的系统,所述系统包括多个报文接收模块、多个报文存储模块、多个报文解析模块和至少一个数据库;
所述报文接收模块从报文消息队列中获取旅客报文,并向所述多个报文存储模块中任意一个报文存储模块发送报文存储模块调用请求;其中,所述报文消息队列被设置为单分区属性,以便所述报文消息队列仅允许所述多个报文接收模块中的一个报文接收模块获取所述旅客报文;
所述报文存储模块根据所述报文存储模块调用请求,将所述旅客报文和所述旅客报文的顺序标识存储至所述数据库中;其中,所述顺序标识用于表征所述旅客报文存储至所述数据库的存储顺序;
所述多个报文解析模块中的目标报文解析模块校验所述数据库中所述旅客报文是否满足预设条件,若是,从所述数据库中获取所述旅客报文,按照所述旅客报文的顺序标识表征的先后顺序解析所述旅客报文,得到所述旅客报文对应的旅客数据,并将所述旅客数据存储至所述数据库。
8.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求7所述的方法。
9.一种计算机可读介质,其特征在于,其上存储有计算机程序,其中,所述程序被处理器执行时实现如权利要求7所述的方法。
10.一种计算机程序产品,其特征在于,包括计算机程序或指令;当所述计算机程序或指令被处理器执行时,执行如权利要求7所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210719928.XA CN115118686B (zh) | 2022-06-23 | 2022-06-23 | 一种旅客报文的处理系统、方法、设备、介质和产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210719928.XA CN115118686B (zh) | 2022-06-23 | 2022-06-23 | 一种旅客报文的处理系统、方法、设备、介质和产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115118686A true CN115118686A (zh) | 2022-09-27 |
CN115118686B CN115118686B (zh) | 2024-08-09 |
Family
ID=83328473
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210719928.XA Active CN115118686B (zh) | 2022-06-23 | 2022-06-23 | 一种旅客报文的处理系统、方法、设备、介质和产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115118686B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101072176A (zh) * | 2007-04-02 | 2007-11-14 | 华为技术有限公司 | 一种报文处理的方法和系统 |
CN101252535A (zh) * | 2008-03-28 | 2008-08-27 | 杭州华三通信技术有限公司 | 集中式转发网络设备及方法 |
CN101277269A (zh) * | 2008-05-06 | 2008-10-01 | 杭州华三通信技术有限公司 | 实现可靠通信的终端、终端切换方法及系统和适用该系统的方法 |
CN101795236A (zh) * | 2010-03-31 | 2010-08-04 | 成都市华为赛门铁克科技有限公司 | 报文保序方法及装置 |
CN102480430A (zh) * | 2010-11-24 | 2012-05-30 | 迈普通信技术股份有限公司 | 实现报文保序的方法和装置 |
WO2015180265A1 (zh) * | 2014-05-28 | 2015-12-03 | 中兴通讯股份有限公司 | 多链路保护倒换的方法及装置 |
CN107403018A (zh) * | 2017-08-10 | 2017-11-28 | 中国民航信息网络股份有限公司 | 航班数据和旅客数据的处理方法及装置 |
CN107707484A (zh) * | 2017-11-01 | 2018-02-16 | 南京南瑞继保电气有限公司 | 一种基于区分链路标识的报文负荷均分结构及方法 |
CN109218226A (zh) * | 2017-07-03 | 2019-01-15 | 迈普通信技术股份有限公司 | 报文处理方法及网络设备 |
CN111224864A (zh) * | 2020-01-14 | 2020-06-02 | 平安国际智慧城市科技股份有限公司 | 消息传输方法、装置、计算机设备和存储介质 |
CN111478900A (zh) * | 2020-04-07 | 2020-07-31 | 中国民航信息网络股份有限公司 | 一种数据处理方法及系统 |
-
2022
- 2022-06-23 CN CN202210719928.XA patent/CN115118686B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101072176A (zh) * | 2007-04-02 | 2007-11-14 | 华为技术有限公司 | 一种报文处理的方法和系统 |
CN101252535A (zh) * | 2008-03-28 | 2008-08-27 | 杭州华三通信技术有限公司 | 集中式转发网络设备及方法 |
CN101277269A (zh) * | 2008-05-06 | 2008-10-01 | 杭州华三通信技术有限公司 | 实现可靠通信的终端、终端切换方法及系统和适用该系统的方法 |
CN101795236A (zh) * | 2010-03-31 | 2010-08-04 | 成都市华为赛门铁克科技有限公司 | 报文保序方法及装置 |
CN102480430A (zh) * | 2010-11-24 | 2012-05-30 | 迈普通信技术股份有限公司 | 实现报文保序的方法和装置 |
WO2015180265A1 (zh) * | 2014-05-28 | 2015-12-03 | 中兴通讯股份有限公司 | 多链路保护倒换的方法及装置 |
CN109218226A (zh) * | 2017-07-03 | 2019-01-15 | 迈普通信技术股份有限公司 | 报文处理方法及网络设备 |
CN107403018A (zh) * | 2017-08-10 | 2017-11-28 | 中国民航信息网络股份有限公司 | 航班数据和旅客数据的处理方法及装置 |
CN107707484A (zh) * | 2017-11-01 | 2018-02-16 | 南京南瑞继保电气有限公司 | 一种基于区分链路标识的报文负荷均分结构及方法 |
CN111224864A (zh) * | 2020-01-14 | 2020-06-02 | 平安国际智慧城市科技股份有限公司 | 消息传输方法、装置、计算机设备和存储介质 |
CN111478900A (zh) * | 2020-04-07 | 2020-07-31 | 中国民航信息网络股份有限公司 | 一种数据处理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN115118686B (zh) | 2024-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6217644B2 (ja) | ルール分配サーバ、イベント処理システム、方法及びプログラム | |
CN111447251A (zh) | 用于使用边缘计算来收集、监测并分析来自多个车辆的车辆数据的系统和方法 | |
CN112532752B (zh) | 数据上传方法、装置、电子设备及计算机可读存储介质 | |
US9986036B2 (en) | Apparatus and method of operating a system | |
CN112015816A (zh) | 数据同步方法、装置、介质及电子设备 | |
CN114625597A (zh) | 监控运维系统、方法、装置、电子设备及存储介质 | |
CN113722056A (zh) | 任务调度方法、装置、电子设备和计算机可读介质 | |
CN113672418A (zh) | 数据处理任务详情页面展示方法、装置、电子设备和介质 | |
CN115328741A (zh) | 一种异常处理方法、装置、设备和存储介质 | |
CN112232653A (zh) | 备降航班处理方法、装置、服务器和计算机存储介质 | |
CN112182006B (zh) | 一种航班数据更新方法、装置、服务器及存储介质 | |
CN115118686B (zh) | 一种旅客报文的处理系统、方法、设备、介质和产品 | |
CN112231327A (zh) | 一种航班信息更新方法、装置、服务器及存储介质 | |
CN114969072B (zh) | 基于状态机和数据持久化的数据传输方法、装置和设备 | |
CN115296979A (zh) | 一种故障处理方法、装置、设备及存储介质 | |
CN111061744B (zh) | 图数据的更新方法、装置、计算机设备及存储介质 | |
CN112651531A (zh) | 一种中转错失旅客的改期方法及相关设备 | |
CN112231560A (zh) | 航班信息查询方法、装置、设备及可读存储介质 | |
CN115134372B (zh) | 一种数据处理方法和相关装置 | |
CN111784295A (zh) | 一种航班生效方法及装置 | |
CN112307060B (zh) | 拣货任务处理的方法和装置 | |
CN114817398A (zh) | 一种替代边检系统回复报文的方法和相关装置 | |
CN112965827B (zh) | 信息调度方法、装置、电子设备和计算机介质 | |
CN113760590A (zh) | 故障处理方法、装置、电子设备和计算机可读介质 | |
CN112148726A (zh) | 一种删除表的方法和装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |