首页 / 专利库 / 电脑零配件 / 固件 / 软件 / 软件套件 / 软件组件 / 规则引擎 / 航班运行数据报文解析系统及方法

航班运行数据报文解析系统及方法

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

专利汇可以提供航班运行数据报文解析系统及方法专利检索,专利查询,专利分析的服务。并且本 发明 提供的航班运行数据报文解析系统,包括报文采集识别模 块 、报文解析模块、报文预处理匹配模块和报文数据监控管理模块;本发明提供的报文解析方法,通过对报文数据进行采集识别分类,并将分类后的报文数据传输至报文解析模块进行解析与存储,再由报文预处理匹配模块对数据加工和验证,并根据航班计划信息和解析后的航班信息进行匹配运算,得到最佳匹配航班;报文数据监控管理模块最后对数据进行统计和标记,并根据报文数据生成全文索引,实现对报文数据全文检索,从而构建统一的解析系统,实现了对报文数据的采集分类、解析以及匹配相应的航班,生成报文数据全文索引,方便运维人员对报文数据的管理与维护,实现了对航班运行过程管理与监控。,下面是航班运行数据报文解析系统及方法专利的具体信息内容。

1.航班运行数据报文解析系统,其特征在于:包括报文采集模(1)、报文解析模块(2)、报文预处理匹配模块(3)和报文数据监控管理模块(4),其中:
所述报文采集模块(1)用于对报文数据的采集分类与存储,并将分类后的报文数据和采集识别成功消息传输至所述报文解析模块(2),发送报文采集识别成功与否的消息给报文数据监控管理模块(4);
所述报文解析模块(2)用于报文数据的解析,并将解析成功消息发送至所述报文预处理匹配模块(3),发送解析成功与否的消息至报文数据监控管理模块(4);
所述报文预处理匹配模块(3)根据航班计划中的信息和解析到的数据进行验证、匹配运算,得到最佳的航班并将匹配结果消息发送至所述报文数据监控管理模块(4);
所述报文数据监控管理模块(4)根据采集识别结果消息、解析结果消息和匹配结果消息进行数据统计和标记,根据报文数据生成全文索引,实现对报文数据全文检索。
2.根据权利要求1所述的航班运行数据报文解析系统,其特征在于:所述报文采集模块(1)采用集群进行部署,通过分布式机制zookeeper协调多个采集节点对数据源进行报文数据采集分类,并将分类后的数据进行储存;最后发送含有报文数据结构的采集识别成功消息至所述报文解析模块(2);最终根据采集识别结果、采集识别开始时间、采集识别结束时间等信息发送至所述报文数据监控管理模块(4)。
3.根据权利要求2所述的航班运行数据报文解析系统,其特征在于:所述报文解析模块(2)上设置有规则引擎QLExpress和MongoDB数据库;所述报文解析模块(2)在系统启动时加载报文解析规则并定时更新或者手动触发加载更新解析规则,当收到采集识别成功通知消息时,根据报文解析规则和规则引擎QLExpress解析出分类后的报文数据的键值对,将解析成功生成的键值对和采集识别成功消息组合成的JSON格式数据存入报文类别集合的MongoDB数据库中,同时JSON数据作为消息发送给报文预处理匹配模块(3);最后对收到的采集识别成功消息追加报文解析开始时间、解析结束时间,并发送至所述报文数据监控管理模块(4)。
4.根据权利要求3所述的航班运行数据报文解析系统,其特征在于:当所述报文预处理匹配模块(3)接收到解析成功通知消息时,读取消息中的解析结果,其中包含的航班起飞降落地址、航班号、承运人及报文生成时间推算航班日期,航班起飞降落时间数值类根据需要采用范围匹配,匹配航班计划中的航班信息,并根据航班中的信息和解析到的数据算出最佳的航班;最后在匹配通知消息追加匹配开始时间、匹配结束时间和航班ID,作为匹配结果消息发送至所述报文数据监控管理模块(4)。
5.航班运行数据报文解析方法,其特征在于,包括以下步骤:
S1:报文采集模块(1)采集报文数据并进行分类与存储,并将分类后的报文数据和采集识别成功消息传输至所述报文解析模块(2),将采集识别成功与否消息传输至所述报文数据监控管理模块(4);
S2:报文解析模块(2)对报文数据进行解析及结果存储,并将解析成功消息发送至报文预处理匹配模块(3),发送解析成功与否消息至报文数据监控管理模块(4);
S3:报文预处理匹配模块(3)根据航班中的信息和解析到的数据进行匹配运算,得到最佳的航班并将匹配结果消息发送至报文数据监控管理模块(4);
S4:报文数据监控管理模块(4)根据采集识别通知消息、解析通知消息、匹配通知消息进行数据统计和标记,根据报文数据生成全文索引,实现对报文数据全文检索。
6.根据权利要求5所述的航班运行数据报文解析方法,其特征在于,在所述步骤S1中,报文采集模块(1)采用集群进行部署,通过分布式锁机制zookeeper协调多个采集节点对数据源进行报文数据采集分类,并将分类后的数据进行储存;最后发送含有报文数据结构,如果是大报文,为包含报文存储地址数据结构的采集识别成功通知消息至报文解析模块(2)。
7.根据权利要求6所述的航班运行数据报文解析方法,其特征在于,在所述步骤S2中,报文解析模块(2)在系统启动时加载报文解析规则并定时更新或者手动触发加载解析规则,当收采集识别成功消息时,根据报文解析规则和设置在报文解析模块(2)上的规则引擎QLExpress解析出分类后的报文数据的键值对,并将生成的键值对数据以及其他相关数据组合生成的JSON格式数据,并存入设置在报文解析模块(2)上用于存储报文类别集合的MongoDB数据库中;最后对收到的采集识别成功消息追加报文解析开始时间、解析结束时间、解析成功与否等信息,并发送至报文数据监控管理模块(4)。
8.根据权利要求7所述的航班运行数据报文解析方法,其特征在于,在所述步骤S3中,当报文预处理匹配模块(3)接收到采集识别成功消息时,如果消息中包含解析结果地址,则读取MongoDB数据库中的JSON文件,否则读取消息中解析结果JSON,根据JSON数据中包含的航班起飞降落地址、航班号、承运人及报文生成时间推算航班日期,航班起飞降落时间数值类根据需要采用范围匹配,匹配航班计划中的航班信息,并根据航班中的信息和解析到的数据算出最佳的航班;最后在匹配通知消息追加匹配开始时间、匹配结束时间和航班ID,作为匹配结果消息发送至报文数据监控管理模块(4)。

说明书全文

航班运行数据报文解析系统及方法

技术领域

[0001] 本发明涉及航班报文解析技术领域,更具体的,涉及一种航班运行数据报文解析系统,还涉及一种航班运行数据报文解析方法。

背景技术

[0002] 航班运行报文数据(SITA、AFTN、ACARS、LDM、ADS-B等)由航空公司、机场、空管局、民航局等单位通过网络或者卫星传输数据,最终给到各家航空公司。航空公司根据自身需要购买各种报文数据服务或者与其他机构互换数据获取报文数据。各家航空公司根据自身需要开发报文解析、初步加工处理关联到航班,最后数据为生产业务服务。航班报文数据具有极高的数据价值:影响资源调度、降低航班运行(延误、安全)险、降低运行成本、提供航班运行各个环境监控、及时调整生产计划、提高生产效率。
[0003] 但现有的报文解析无法构成统一的解析系统,对报文解析开发是针对具体报文,无法通用,针对自由格式报文、非规范报文每次变更需要重新开发,效率低下;对报文数据无统一管理、无数据处理警告,当报文解析出现问题时,排查不便,不能成为航空业务领域报文处理全面解决方案。在架构方面,现有报文存在单点故障,高可用及负载均衡能,不能动态增加报文识别分类和解析功能,没有报文采集、识别分类、解析、预处理、验证、匹配到航班全流程处理管理过程,各个业务单位重复解析报文,导致各个环节的数据不一致,形成一个个数据孤岛,不便于运维人员对报文数据的管理。

发明内容

[0004] 本发明为克服现有的报文解析无法构成统一的解析系统,存在无法动态增加报文识别分类和解析功能和无法实现航班数据全流程处理管理的技术缺陷,提供一种航班运行数据报文解析系统。
[0005] 本发明还提供一种航班运行数据报文解析方法。
[0006] 为解决上述技术问题,本发明的技术方案如下:
[0007] 航班运行数据报文解析系统,包括报文采集模、报文解析模块、报文预处理匹配模块和报文数据监控管理模块,其中:
[0008] 所述报文采集模块用于对报文数据的采集分类,并将采集分类成功以消息形式传输至所述报文解析模块,同时存储原始数据;
[0009] 所述报文解析模块用于报文数据的解析与解析结果存储,并将解析成功消息发送至所述报文预处理匹配模块,发送解析通知消息至报文数据监控管理模块;
[0010] 所述报文预处理匹配模块根据航班中的信息和解析到的数据进行匹配运算,得到最佳的航班并将匹配结果消息发送至所述报文数据监控管理模块;
[0011] 所述报文数据监控管理模块根据采集分类通知消息、解析通知消息、匹配结果消息进行数据统计和标记,根据报文数据生成全文索引,实现对报文数据全文检索。
[0012] 其中,所述报文采集模块采用集群进行部署,通过分布式机制zookeeper协调多个采集节点对数据源进行报文数据采集分类,并将分类后的数据进行储存;最后发送含有报文数据结构的采集识别成功消息至所述报文解析模块。
[0013] 上述方案中,为了提高系统并发性能以及系统响应的实时性,报文数据通过报文采集模块识别出各种分类,每种分类都可以并发处理,相同分类先后处理,即提高了处理的性能,在一定程度上也保障了数据的有序性。
[0014] 上述方案中,当报文采集模块消息中间件采用Kafka时,通过部署Kafka集群,每个消息子类别对应一个消息分区,在资源允许下给每个消息分区配置独立的磁盘,以此保证数据高速顺序写入。当消息被消费时,每个分区同时指挥有一个消费者进行读取,保证了消息读取顺序处理,即使采用的消息中间件无法保证数据消费的顺序性,在采集到的报文数据上包含了报文数据接收的时间戳。
[0015] 上述方案中,报文采集模块采集的报文数据来源不同,通信方式协议各异,因此报文采集模块包含了主动采集和被动采集两种方式。其中,主动采集方式支持数据库JDBC、MQ消息、FTP、NFS网络文件共享等,被动采集方式支持MQ消息、Http请求。报文采集模块采用集群进行部署,通过分布式锁机制zookeeper协调多个采集节点对数据源进行报文数据采集和分类。其中,报文数据分类采用树形层次结构,如果父类别没有识别表达式,则默认匹配到该分类,直到最终叶子节点类别识别都成功,则该报文数据属于该叶子节点报文类别。因为报文数据可能同时归属于多个类别,因此采用多报文识别表达式并发计算识别报文,只要符合即可归属到对应的类别报文下并把报文数据原文上传到FTP或者分布式文件系统中,上传目录结构根据报文父子类别层级及接收报文数据时间日期创建,最后发送含有报文数据结构的采集识别成功消息至报文解析模块,其中报文数据结构包含采集开始时间,结束时间,报文类型,报文跟踪ID,采集时生成唯一的UUID和报文数据小于1M报文原文或存储报文的url地址。
[0016] 上述方案中,当报文采集模块成功采集报文数据时,发送采集识别成功通知消息;不论采集识别是否成功,都将发送结果消息给监控管理模块。
[0017] 其中,所述报文解析模块上设置有规则引擎QLExpress和MongoDB数据库;所述报文解析模块在系统启动时加载报文解析规则并定时更新或者手动触发更新,当收到解析通知消息时,根据报文解析规则和规则引擎QLExpress解析出分类后的报文数据的键值对,并将生成的键值对生成的JSON数据与接受到的消息数据组合,并存入报文类别集合的MongoDB数据库中;最后对收到的解析通知消息追加报文解析开始时间、解析结束时间,并发送至所述报文数据监控管理模块。
[0018] 上述方案中,报文解析模块在系统启动时加载报文解析规则,所述报文解析规则在系统上线前根据报文分类编写的QLExpress表达式计算代码,以报文类别为键,解析规则为值存入缓存中,如redis,当有更新时同时更新缓存,并启动一个后台线程,定时加载最新解析规则,同时当有在线更新或新增报文解析规则时同步更新缓存数据。
[0019] 其中,当所述报文预处理匹配模块接收到解析成功通知消息时,读取消息中的解析结果数据,或者读取所述MongoDB数据库中的JSON数据,根据JSON数据中包含的航班起飞降落地址、航班号、承运人及推算的航班信息查询实际航班信息,航班起飞降落时间数值类根据需要采用范围匹配,并根据航班中的信息和解析到的数据算出最佳的航班;最后在解析成功消息中追加匹配开始时间、匹配结束时间和航班ID,作为匹配结果消息发送至所述报文数据监控管理模块。
[0020] 上述方案中,所述报文数据监控管理模块订阅报文采集模块发送的采集成功与采集失败信息,订阅报文解析模块发送的解析成功与解析失败信息,订阅报文预处理匹配发送的匹配成功与匹配失败信息。当接收到报文识别成功或者失败消息时,根据报文原文内容生成索引,以提供报文全文检索。最后根据报文跟踪ID、各个节点成功与失败、各个节点时刻信息,统计识别率、解析率、匹配率以及各个阶段效率及出错告警。
[0021] 航班运行数据报文解析方法,包括以下步骤:
[0022] S1:报文采集模块采集报文数据并进行分类,对原报文分类存储,并将分类后的报文数据和解析通知消息传输至所述报文解析模块和数据监控管理模块;
[0023] S2:报文解析模块对报文数据进行解析与存储,并将匹配通知消息发送至报文预处理匹配模块,发送解析通知消息至报文数据监控管理模块;
[0024] S3:报文预处理匹配模块根据航班中的信息和解析到的数据进行匹配运算,得到最佳的航班并将匹配结果消息发送至报文数据监控管理模块;
[0025] S4:报文数据监控管理模块根据采集识别结果消息、解析结果消息、和匹配结果消息进行数据统计和标记,根据报文数据生成全文索引,实现对报文数据全文检索。
[0026] 其中,在所述步骤S1中,报文采集模块采用集群进行部署,通过分布式锁机制zookeeper协调多个采集节点对数据源进行报文数据采集分类,并将分类后的数据进行储存;最后发送含有报文数据结构的解析通知消息至报文解析模块。
[0027] 上述方案中,为了提高系统并发性能以及系统响应的实时性,报文数据通过报文采集模块识别出各种分类,每种分类都可以并发处理,相同分类先后处理,即提高了处理的性能,在一定程度上也保障了数据的有序性。
[0028] 上述方案中,当报文采集模块消息中间件采用Kafka时,通过部署Kafka集群,每个消息子类别对应一个消息分区,在资源允许下给每个消息分区配置独立的磁盘,以此保证数据高速顺序写入。当消息被消费时,每个分区同时只能有一个消费者进行读取,保证了消息读取顺序处理,即使采用的消息中间件无法保证数据消费的顺序性,在采集到的报文数据上包含了报文数据接收的时间戳。
[0029] 上述方案中,报文采集模块采集的报文数据来源不同,通信方式协议各异,因此报文采集模块包含了主动采集和被动采集两种方式。其中,主动采集方式支持数据库JDBC、MQ消息、FTP、NFS网络文件共享等,被动采集方式支持MQ消息、Http请求。报文采集模块采用集群进行部署,通过分布式锁机制zookeeper协调多个采集节点对数据源进行报文数据采集和分类。其中,报文数据分类采用树形层次结构,如果父类没有识别表达式,则默认匹配到该分类,直到最终叶子节点类别识别都成功,则该报文数据属于该叶子节点报文类别。因为报文数据可能同时归属于多个类别,因此采用多报文识别表达式并发计算识别报文,只要符合即可归属到对应的类别报文下并把报文数据原文上传到FTP或者分布式文件系统中,上传目录结构根据报文父子类别层级及接收报文数据时间日期创建,最后发送含有报文数据结构的采集识别成功消息至报文解析模块,其中报文数据结构包含采集开始时间,结束时间,报文类型,报文跟踪ID,采集时生成唯一的UUID和报文数据小于1M报文原文或存储报文的url地址。
[0030] 上述方案中,当报文采集模块成功采集报文数据时,发送采集识别成功消息;不论采集识别是否成功,都将发送结果消息给监控管理模块。
[0031] 其中,在所述步骤S2中,报文解析模块在系统启动时加载报文解析规则并定时更新,当收到解析通知消息时,根据报文解析规则和设置在报文解析模块上的规则引擎QLExpress解析出分类后的报文数据的键值对,并将生成的键值对生成的JSON数据与接受到的消息数据组合,并存入设置在报文解析模块上用于存储报文类别集合的MongoDB数据库中;最后对收到的解析通知消息追加报文解析开始时间、解析结束时间,并发送至报文数据监控管理模块。
[0032] 上述方案中,报文解析模块在系统启动时加载报文解析规则,所述报文解析规则在系统上线前根据报文分类编写的QLExpress表达式计算代码,以报文类别为键,解析规则为值存入缓存中,如redis,当有更新时同时更新缓存,并启动一个后台线程,定时加载最新解析规则,同时当有在线更新或新增报文解析规则时同步更新缓存数据。
[0033] 其中,在所述步骤S3中,当报文预处理匹配模块接收到报文解析成功通知消息时,读取消息中的解析结果数据,或者读取MongoDB数据库中的JSON数据,根据JSON数据中包含的航班起飞降落地址、航班号、承运人及推算的航班信息查询实际航班信息,航班起飞降落时间数值类根据需要采用范围匹配,并根据航班中的信息和解析到的数据算出最佳的航班;最后在报文解析成功通知消息追加匹配开始时间、匹配结束时间和航班ID,作为匹配结果消息发送至报文数据监控管理模块。
[0034] 上述方案中,所述报文数据监控管理模块订阅报文采集模块发送的采集成功与采集失败信息,订阅报文解析模块发送的解析成功与解析失败信息,订阅报文预处理匹配发送的匹配成功与匹配失败信息。当接收到报文识别成功或者失败消息时,根据报文原文内容生成索引,以提供报文全文检索。最后根据报文跟踪ID、各个节点成功与失败、各个节点时刻信息,统计识别率、解析率、匹配率以及各个阶段效率及出错告警。
[0035] 与现有技术相比,本发明技术方案的有益效果是:
[0036] 本发明提供的一种航班运行数据报文解析系统,还提供了一种航班运行数据报文解析方法,通过报文采集模块、报文解析模块、报文预处理匹配模块和报文数据监控管理模块构建了统一的解析系统,各个节点通过分布式进行部署,实现了对报文数据的采集分类、解析以及匹配相应的航班,生成报文数据全文索引,方便运维人员报文数据的管理与维护,实现了对航班数据的流程处理管理。附图说明
[0037] 图1为本发明所述系统的结构示意图;
[0038] 图2为发明所述方法的流程示意图;
[0039] 其中:1、报文采集模块;2、报文解析模块;3、报文预处理匹配模块;4、报文数据监控管理模块。

具体实施方式

[0040] 附图仅用于示例性说明,不能理解为对本专利的限制;
[0041] 为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;
[0042] 对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
[0043] 下面结合附图和实施例对本发明的技术方案做进一步的说明。
[0044] 实施例1
[0045] 如图1所示,航班运行数据报文解析系统,包括报文采集模块1、报文解析模块2、报文预处理匹配模块3和报文数据监控管理模块4,其中:
[0046] 所述报文采集模块1用于对报文数据的采集分类,并将分类后的报文数据和解析通知消息传输至所述报文解析模块2,,存储原始报文并发送采集识别结果给所述报文数据监控管理模块4;
[0047] 所述报文解析模块2用于报文数据的解析与解析结果存储,并将解析成功消息发送至所述报文预处理匹配模块3,发送解析结果消息至报文数据监控管理模块4;
[0048] 所述报文预处理匹配模块3根据航班中的信息和解析到的数据进行匹配运算,得到最佳的航班并将匹配结果消息发送至所述报文数据监控管理模块4;
[0049] 所述报文数据监控管理模块4根据采集识别通知消息、解析通知消息、匹配通知消息进行数据统计和标记,根据报文数据生成全文索引,实现对报文数据全文检索。
[0050] 更具体的,所述报文采集模块1采用集群进行部署,通过分布式锁机制zookeeper协调多个采集节点对数据源进行报文数据采集分类,并将分类后的数据进行储存;最后发送含有报文数据结构的解析通知消息至所述报文解析模块2。
[0051] 在具体实施过程中,为了提高系统并发性能以及系统响应的实时性,报文数据通过报文采集模块1识别出各种分类,每种分类都可以并发先处理,相同分类先后处理,即提高了处理的性能,在一定程度上也保障了数据的有序性。
[0052] 在具体实施过程中,当报文采集模块1消息中间件采用Kafka时,通过部署Kafka集群,每个消息子类别对应一个消息分区,在资源允许下给每个消息分区配置独立的磁盘,以此保证数据高速顺序写入。当消息被消费时,每个分区同时指挥只能有一个消费者进行读取,保证了消息读取顺序处理,即使采用的消息中间件无法保证数据消费的顺序性,在采集到的报文数据上包含了报文数据接收的时间戳。
[0053] 在具体实施过程中,报文采集模块采集1的报文数据来源不同通信方式协议各异,因此报文采集模块1包含了主动采集和被动采集两种方式。其中,主动采集方式支持数据库JDBC、MQ消息、FTP、NFS网络文件共享等,被动采集方式支持MQ消息、Http请求。报文采集模块1采用集群进行部署,通过分布式锁机制zookeeper协调多个采集节点对数据源进行报文数据采集和分类。其中,报文数据分类采用树形层次结构,如表1所示。如果父类别没有识别表达式,则默认匹配到该分类,直到最终叶子节点类别识别都成功,则该报文数据属于该叶子节点报文类别。因为报文数据可能同时归属于多个类别,因此采用多报文识别表达式并发计算识别报文,只要符合即可归属到对应的类别报文下并把报文数据原文上传到FTP或者分布式文件系统中,上传目录结构根据报文父子类别层级及接收报文数据时间日期创建,最后发送发送含有报文数据结构的采集识别成功消息至报文解析模块,其中报文数据结构包含采集开始时间,结束时间,报文类型,报文跟踪ID,采集时生成唯一的UUID和报文数据小于1M报文原文或存储报文的url地址。
[0054] 表1:报文分类数据结构
[0055]
[0056] 在具体实施过程中,报文类别分上下级,每一级每一种类别可以存在多个子类别。最顶级类别没有父类时,则PARENT_ID可为null值。报文识别时,只有父类别识别通过再进入子类别识别,如果父类别无识别表达式,则默认为识别成功。所述报文识别表达式数据结构具体如表2所示:
[0057] 表2:报文识别表达式数据结构
[0058]
[0059]
[0060] 在具体实施过程中,每一种报文类别可以关联多个识别表达式,识别表达式通过CATEGORY_CODE区分隶属于不同报文类别。其中METHOD为识别模式,即表达式采用识别的方式是通过正则匹配或者文本字符位置或者QLExpress程序表达式,根据需要后续可以新增识别方式。其中NON为表达式计算结果取非,即计算结果为true时,则该表达式最终结果为false。其中LOGIC_OPERATOR标识的值为and、or或者扩展形式“(and“或者”(or”形式,标记符可以重叠多个,比如:((((and,创建这种方式是方便消息类别多个识别表达式可以灵活组合逻辑运行符及优先级,即多个表达式可以组成:
[0061] (a表达式or(b表达式and c表达式and(e表达式or f表达式)))
[0062] 这种表达式存储方式为左括号标记符,每个标记符、逻辑操作符and/or、识别表达式计算结果——true/false分别为一个计算单元,每个计算单元分别存储到链表节点中,如:
[0063]( a… or ( b… and c… and ( e… or f… ) ) )
[0064] 上述表达式生成算法
[0065] 接收到操作符,如果以非“a/o“开头,则获取标记符个数记为i,没有标记符则i为零;
[0066] 链表中已有标记符个数记为j(其中“(”标记符个数减去“)”标记符个数为j的值);
[0067] 如果i-j=n,n>0,则链表中增加逻辑运算符,然后增加n个“(”标记符节点,如果n<0少于零,则增加n个”)”标记符节点,如果n=0则直接添加逻辑运行符(and/or)。如果最后结束后,j>0,则链表中增加j个“)”标记符节点;
[0068] 最后针对链表第一个节点如果为and或者or时,则删除首节点;
[0069] 最后通过“双栈算术表达式求值算法”对链表求值。
[0070] 在具体实施过程中,当报文采集模块成功采集报文数据时,发送采集识别成功消息;不论采集识别是否成功,都将发送结果消息给监控管理模块。
[0071] 更具体的,所述报文解析模块上设置有规则引擎QLExpress和MongoDB数据库;所述报文解析模块在系统启动时加载报文解析规则并定时更新,当收到采集识别成功消息时,根据报文解析规则和规则引擎QLExpress解析出分类后的报文数据的键值对,并将生成的键值对生成的JSON数据与接受到的消息数据组合,并存入报文类别集合的MongoDB数据库中,并通知预处理匹配模块;最后对收到的采集识别成功消息追加报文解析开始时间、解析结束时间,并发送至所述报文数据监控管理模块。
[0072] 在具体实施过程中,报文解析模块在系统启动时加载报文解析规则,所述报文解析规则在系统上线前根据报文分类编写的QLExpress表达式计算代码,以报文类别为键,解析规则为值存入缓存中,如redis,当有更新时同时更新缓存,并启动一个后台线程,定时加载最新解析规则,同时当有在线更新或新增报文解析规则时同步更新缓存数据。
[0073] 更具体的,当所述报文预处理匹配模块接收到解析成功消息时,读取消息中的解析结果数据,或者读取所述MongoDB数据库中的JSON数据,根据JSON文件中包含的航班起飞降落地址、航班号、承运人及推算的航班信息查询实际航班信息,航班起飞降落时间数值类根据需要采用范围匹配,并根据航班中的信息和解析到的数据算出最佳的航班;最后在匹配通知消息追加匹配开始时间、匹配结束时间和航班ID,作为匹配结果消息发送至所述报文数据监控管理模块。
[0074] 在具体实施过程中,所述报文数据监控管理模块订阅报文采集模块发送的采集成功与采集失败信息,订阅报文解析模块发送的解析成功与解析失败信息,订阅报文预处理模块匹配发送的匹配成功与匹配失败信息。当接收到报文识别成功或者失败消息时,根据报文原文内容生成索引,以提供报文全文检索。最后根据报文跟踪ID、各个节点成功与失败、各个节点时刻信息,统计识别率、解析率、匹配率以及各个阶段效率及出错告警。
[0075] 实施例2
[0076] 更具体的,在实施例1的基础上,如图2所示,航班运行数据报文解析方法,包括以下步骤:
[0077] S1:报文采集模块1采集报文数据并进行分类,并将分类后的报文数据和采集识别成功消息传输至所述报文解析模块2,并保存原始报文数据,发送采集识别结果消息至报文数据监控管理模块4;
[0078] S2:报文解析模块2对报文数据进行解析与存储,并将解析成功消息发送至报文预处理匹配模块3,发送报文解析结果消息至报文数据监控管理模块4;
[0079] S3:报文预处理匹配模块3根据航班计划中的信息和解析到的数据进行匹配运算,得到最佳的航班并将匹配结果消息发送至报文数据监控管理模块4;
[0080] S4:报文数据监控管理模块4根据采集识别通知消息、解析通知消息、匹配通知消息进行数据统计和标记,根据报文数据生成全文索引,实现对报文数据全文检索。
[0081] 更具体的,在所述步骤S1中,报文采集模块1采用集群进行部署,通过分布式锁机制zookeeper协调多个采集节点对数据源进行报文数据采集分类,并将分类后的数据进行储存;最后发送含有报文数据结构的采集解析成功消息至报文解析模块2。
[0082] 在具体实施过程中,为了提高系统并发性能以及系统响应的实时性,报文数据通过报文采集模块1识别出各种分类,每种分类都可以并发先处理,相同分类先后处理,即提高了处理的性能,在一定程度上也保障了数据的有序性。
[0083] 在具体实施过程中,当报文采集模块1消息中间件采用Kafka时,通过部署Kafka集群,每个消息子类别对应一个消息分区,在资源允许下给每个消息分区配置独立的磁盘,以此保证数据高速顺序写入。当消息被消费时,每个分区同时指挥只能有一个消费者进行读取,保证了消息读取顺序处理,即使采用的消息中间件无法保证数据消费的顺序性,在采集到的报文数据上包含了报文数据接收的时间戳。
[0084] 在具体实施过程中,报文采集模块1采集的报文数据来源不同,通信方式协议各异,因此报文采集模块1包含了主动采集和被动采集两种方式。其中,主动采集方式支持数据库JDBC、MQ消息、FTP、NFS网络文件共享等,被动采集方式支持MQ消息、Http请求。报文采集模块1采用集群进行部署,通过分布式锁机制zookeeper协调多个采集节点对数据源进行报文数据采集和分类。其中,报文数据分类采用树形层次结构,如果父类别没有识别表达式,则默认匹配到该分类,直到最终叶子节点类别识别都成功,则该报文数据属于该叶子节点报文类别。因为报文数据可能同时归属于多个类别,因此采用多报文识别表达式并发计算识别报文,只要符合即可归属到对应的类别报文下并把报文数据原文上传到FTP或者分布式文件系统中,上传目录结构根据报文父子类别层级及接收报文数据时间日期创建,最后发送含有报文数据结构的采集识别成功消息至报文解析模块,其中报文数据结构包含采集开始时间,结束时间,报文类型,报文跟踪ID,采集时生成唯一的UUID和报文数据小于1M报文原文或存储报文的url地址。
[0085] 在具体实施过程中,当报文采集模块1成功采集报文数据时,发送采集识别成功消息;不论采集识别是否成功,都将发送结果消息给监控管理模块。
[0086] 更具体的,在所述步骤S2中,报文解析模块2在系统启动时加载报文解析规则并定时更新,当收到采集识别成功消息时,根据报文解析规则和设置在报文解析模块2上的规则引擎QLExpress解析出分类后的报文数据的键值对,并将生成的键值对生成的JSON数据与接受到的消息数据组合,并存入设置在报文解析模块上用于存储报文类别集合的MongoDB数据库中;最后对收到的采集识别成功消息追加报文解析开始时间、解析结束时间,并发送至报文数据监控管理模块4。
[0087] 在具体实施过程中,报文解析模块2在系统启动时加载报文解析规则,所述报文解析规则在新分类上线前根据报文分类编写的QLExpress表达式计算代码,以报文类别为键,解析规则为值存入缓存中,如redis,当有更新时同时更新缓存,并启动一个后台线程,定时加载最新解析规则,同时当有在线更新或新增报文解析规则时同步更新缓存数据。
[0088] 更具体的,在所述步骤S3中,当报文预处理匹配模块3接收到解析成功消息时,读取消息中的解析结果数据,或者读取MongoDB数据库中的JSON数据,根据JSON数据中包含的航班起飞降落地址、航班号、承运人及推算的航班信息查询实际航班信息,并根据航班计划中的信息和解析到的数据算出最佳的航班;最后在解析成功消息追加匹配开始时间、匹配结束时间和航班ID,作为匹配结果消息发送至报文数据监控管理模块4。
[0089] 在具体实施过程中,所述报文数据监控管理模块4订阅报文采集模块1发送的采集成功与采集失败信息,订阅报文解析模块2发送的解析成功与解析失败信息,订阅报文预处理模块3匹配发送的匹配成功与匹配失败信息。当接收到报文识别成功或者失败消息时,根据报文原文内容生成索引,以提供报文全文检索。最后根据报文跟踪ID、各个节点成功与失败、各个节点时刻信息,统计识别率、解析率、匹配率以及各个阶段效率及出错告警。
[0090] 显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
高效检索全球专利

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

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

申请试用

分析报告

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

申请试用

QQ群二维码
意见反馈