CN112702386B - 一种飞机故障信息实时订阅系统 - Google Patents
一种飞机故障信息实时订阅系统 Download PDFInfo
- Publication number
- CN112702386B CN112702386B CN202011385976.7A CN202011385976A CN112702386B CN 112702386 B CN112702386 B CN 112702386B CN 202011385976 A CN202011385976 A CN 202011385976A CN 112702386 B CN112702386 B CN 112702386B
- Authority
- CN
- China
- Prior art keywords
- message
- module
- submodule
- subscription
- sub
- 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.)
- Active
Links
- 238000004458 analytical method Methods 0.000 claims abstract description 48
- 238000000034 method Methods 0.000 claims description 118
- 230000008569 process Effects 0.000 claims description 95
- 230000004044 response Effects 0.000 claims description 87
- 238000012423 maintenance Methods 0.000 claims description 82
- 238000012545 processing Methods 0.000 claims description 28
- 230000003068 static effect Effects 0.000 claims description 26
- 238000004891 communication Methods 0.000 claims description 13
- 238000000605 extraction Methods 0.000 claims description 11
- 238000012544 monitoring process Methods 0.000 claims description 11
- 239000000284 extract Substances 0.000 claims description 8
- 230000000977 initiatory effect Effects 0.000 claims description 6
- 238000007726 management method Methods 0.000 claims description 6
- 230000000903 blocking effect Effects 0.000 claims description 5
- 238000001914 filtration Methods 0.000 claims description 5
- 230000002457 bidirectional effect Effects 0.000 claims description 4
- 238000007429 general method Methods 0.000 claims description 4
- 230000001133 acceleration Effects 0.000 claims description 3
- 238000010367 cloning Methods 0.000 claims description 3
- 230000003993 interaction Effects 0.000 claims description 3
- 230000000153 supplemental effect Effects 0.000 claims description 3
- 238000012916 structural analysis Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 12
- 239000000203 mixture Substances 0.000 description 12
- 101150101095 Mmp12 gene Proteins 0.000 description 11
- 238000005538 encapsulation Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 6
- 238000003745 diagnosis Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 208000031963 Beta-mercaptolactate cysteine disulfiduria Diseases 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 101000799969 Escherichia coli (strain K12) Alpha-2-macroglobulin Proteins 0.000 description 3
- 239000000470 constituent Substances 0.000 description 3
- 238000011068 loading method Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000013024 troubleshooting Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000007639 printing Methods 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 102000010410 Nogo Proteins Human genes 0.000 description 1
- 108010077641 Nogo Proteins Proteins 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种飞机故障信息实时订阅系统,报文解码模块接收飞机传送的飞机故障报文,将其转换为结构化数据,保存在数据库模块中,并推送给报文解码信使模块,该模块分析该报文的基本属性,将分析结果形成飞机故障报文属性包送入报文解码消息队列模块的消息队列;报文订阅模块供人为完成个性化报文订阅操作,从报文解码消息队列模块实时获取与订阅相关的报文属性包,生成报文电子邮件包,推送给邮件发送模块,再发向订阅接收者。本发明提供实时订阅,可规避由于飞机下行消息量大而无法即时关注关键信息的盲区,且可实现跨越局域网限制的飞机故障信息推送;本发明在报文解码消息队列模块中将飞机故障报文形成消息队列,其它应用系统可直接调用。
Description
技术领域
本发明属于飞机状态监视与故障诊断技术,特别涉及一种飞机故障信息实时订阅系统。
背景技术
飞机中央维护计算系统(CMCS)具有以下主要功能:
1、飞机数据装载:大多数的航线可装载软件(LSAP)可通过中央维护计算系统提供的数据装载功能向所连接的外设部件(LRU)/模块(LRM)进行加载。
2、飞机故障信息处理:CMC通过ARINC429/629总线与大多数机载外设(LRU)连接,实时采集LRU发送到总线上的自检信息(BITE),CMC根据内置的诊断数据库(LDI)与判定逻辑生成诊断/维护数据,保存在内置的存储设备中。飞机维护人员可通过机载显示(如MCDU或MAT)/打印设备在驾驶舱中查阅/打印这些数据,作为排故的参考依据;也可通过对CMCS的配置,这些数据可以报文的形式全部或有选择地通过ACARS(飞机通讯与寻址报告系统)数据链实时发送到地面,为飞机维护人员提供一种快速数据获取途径。
3、测试:在MCDU/MAT上,飞机维护人员也可向所连接的LRU主动发起测试命令,以重新获取LRU的故障信息与状态。
CMCS在飞机排故方面的使用:CMC启动后,自动执行以下工作:
(1)根据LRU总线上的自检数据,监视飞机系统的故障;
(2)根据内置的诊断数据库与判定逻辑,将LRU总线自检数据转换为故障信息;
(3)若检测到LRU故障,则在MCDU或MAT上,提供故障/维护消息的显示;
若飞机具备ACARS通讯条件,则故障/维护消息将通过ACARS数据链发送。
CMC也同时监视EICAS(发动机指示与机组警告系统)在其多功能显示器(MFD)上给出的驾驶舱效应(FDE)信息,如文本警告信息、故障旗标注等,并根据内置的诊断数据库与判定逻辑,给出其与维护消息的关联关系,维护人员据此进行飞机故障排除或隔离。若飞机具备ACARS通讯条件,则FDE及其关联的MMSG也将一并被发送。
通常情况下,对CMCS飞机故障信息的获取分为人工获取与自动获取:
(1)人工获取:人工接近飞机驾驶舱,在MCDU/MAT上查阅(或等同外置维护工具)或打印,或使用磁盘/等同外部存储设备(如可擦除式DVD-RW/USB存储设备等)将飞机故障信息导出。由于人工获取方式的不便利性,目前已基本不使用,或者将人工获取方式处于应急备用状态。
(2)自动获取:在具备ACARS数据链条件的情况下,CMCS会将飞机故障信息实时发送到航空公司的地面IT系统。
但是,随着飞机电子化程度提高以及机队规模的扩大(如大型航空公司),在大量数据面前,仅提供CMCS飞机故障信息的获取与显示(一般在网站或移动app上实现),远不能满足对日趋复杂的飞机故障信息的快速发现与危险等级的确定。特别是飞机维护人员离开航空公司局域网环境时,或由于公司IT涉密环境限制无法接近公司局域网时,将不能获取飞机故障信息;或由于信息量过大,重要的飞机故障信息被“淹没”,以至于未被及时发现而埋下安全隐患。
发明内容
本发明的目的在于提供一种可提供实时订阅、及时获取关键飞行警告信息、实现跨越局域网限制的飞机故障信息推送的飞机故障信息实时订阅系统。
本发明的目的通过以下的技术措施来实现:一种飞机故障信息实时订阅系统,它安装在地面系统中,其特征在于,所述飞机故障信息实时订阅系统主要由报文解码模块、报文解码信使模块、报文解码消息队列模块、数据库模块、报文订阅模块、应用模块和邮件发送模块组成,其中,所述报文解码模块、报文解码信使模块、报文解码消息队列模块、报文订阅模块和邮件发送模块依次单向通信连接,所述数据库模块分别与所述报文解码模块、报文解码信使模块和应用模块双向通信连接,所述报文订阅模块与应用模块双向通信连接;
所述报文解码模块接收飞机实时传送的飞机故障报文,并将其转换为结构化数据,保存在数据库模块中,同时推送给所述报文解码信使模块,所述报文解码信使模块分析该报文的基本属性,将分析结果形成飞机故障报文属性包送入报文解码消息队列模块的消息队列;所述报文订阅模块供人为完成面向工程师工种细分的个性化报文订阅操作,从所述报文解码消息队列模块实时获取与订阅相关的报文属性包,并通过应用模块获取所述数据库模块中的相关数据,生成报文电子邮件包,推送给邮件发送模块,由所述邮件发送模块将报文电子邮件包发向订阅接收者。
本发明的报文订阅模块可供系统管理员(通常是飞机维修系统工程师)在订阅服务器上完成面向飞机维护人员专业与工种细分的个性化报文订阅操作,提供基于飞机主最低设备清单MMEL与飞机制造商维护知识库的机组警告与机载设备故障信息的实时订阅,并提供关键飞行警告信息筛选的统一参考入口,规避由于飞机下行消息量大而无法即时关注关键信息的盲区。本发明通过邮件发送模块将飞机故障信息发向订阅接收者的手持移动设备(如手机)上,可实现跨越局域网限制的飞机故障信息推送,从而克服了现有必须登录公司网络才能获取飞机故障信息的不便利性(航空公司的数据一般只允许在局域网内部访问),而且,使用分散的个人数据终端,可以长时间保存关键飞机故障信息,构造面向个人数字终端的数据存储与可追溯性;另外,本发明在报文解码消息队列模块中将飞机故障报文形成消息队列,其它应用系统可直接调用,可以从本系统实时获取飞机故障信息。
本发明所述报文解码模块主要由报文池扫描子模块、报文解析子模块和报文解码广播子模块组成,所述报文池扫描子模块对报文池进行定时扫描,若报文是飞机故障报文,则进入报文解析子模块,否则,该报文被抛出;报文解析子模块对飞机故障报文进行格式化解析,若解析过程出错,则该报文被抛出,若解析过程无错,则由报文解码广播子模块向所述报文解码信使模块发送报文解码消息戳。
本发明所述报文池扫描子模块包括活动进程控制器子模块和报文解析子进程分配器子模块,所述活动进程控制器子模块在发起子进程之前检查此前设置的进程堵塞标记,若有该标记,则等待下一次计时到;若无此标记,则进一步检查当前活动进程数是否超过主机CPU逻辑核数,若当前活动进程数大于或等于主机CPU逻辑核数,不发起子进程,否则,发起子进程,为报文池中的每个报文分配一个标识号,并绑定在初始化过的进程池中,形成静态的报文解码子进程簇;所述报文解析子进程分配器子模块将静态的报文解码子进程簇中的静态进程分配到每个CPU逻辑核上,静态进程依次被激活成为动态进程,每个激活的动态进程随即锁定一个CPU逻辑核进程资源,形成动态的报文解码子进程簇,每个动态进程解码完毕后,便释放一个CPU逻辑核进程资源。
本发明所述报文解析子模块主要由依次连接的内存表初始化子模块、报文分解器子模块和内存表提交子模块组成,且所述内存表初始化子模块、报文分解器子模块和内存表子模块分别与数据库模块连接,其中,所述内存表初始化子模块从数据库中获取预先定义的飞机故障报文结构字段,装入报文解码模块主机内存,形成空白的飞机故障报文内存表;所述报文分解器子模块对飞机故障报文结构化数据进行解析,并将解析结果保存在内存表提交子模块中,所述内存表提交子模块向数据库模块写入该解析结果。
本发明所述报文分解器子模块包括依次连接的报头提取子模块、报文类型提取子模块、飞机故障/维护消息内容分析子模块、内存表强制字段更新子模块、飞机维护代码详细内容获取子模块和飞机故障代码详细内容获取子模块,所述报头提取子模块提取飞机故障报文的报头,作为报文的属性之一保存在内存表提交子模块中;所述报文类型提取子模块提取飞机故障报文的报文类型,作为报文的属性之一保存在内存表提交子模块中;所述飞机故障/维护消息内容分析子模块解析出飞机故障报文中飞机故障/维护消息字段,并将其保存在内存表提交子模块中;所述内存表强制字段更新子模块中的内存表强制字段包括数据库索引号、飞机号、航班号和时间戳,其中,数据库索引由数据库模块自动生成,用于完成数据唯一性参照与检索加速;时间戳由解码器主机时钟年月日与报文的路由时间时分组成,用于标识飞机故障报文时间信息的完整性;飞机维护代码详细内容获取子模块以所述飞机故障/维护消息内容分析子模块输出的飞机维护代码为输入条件,经过所述飞机维护代码描述内容获取子模块与所述飞机维护代码维护建议内容获取子模块从数据库模块中获取预先定义的与飞机故障报文中的飞机维护代码对应的详细描述与维护建议,保存在内存表提交子模块中;所述飞机故障代码详细内容获取子模块以所述飞机故障/维护消息内容分析子模块输出的飞机故障代码为输入条件,从数据库模块中获取预先定义的与飞机故障报文中的飞机故障代码对应的详细描述,保存在内存表提交子模块中。
本发明所述报文解码广播子模块在一条飞机故障报文被成功解码后自动执行,向所述报文解码信使模块发送报文解码消息戳,所述报文解码信使模块收到报文解码消息戳后向所述报文解码广播子模块发送应答字,若报文解码广播子模块在设定的时间间隔内未收到来自相应IP地址的报文解码信使模块发送的应答字,则判定此IP地址上的报文解码信使模块已停止工作,将不再向其发送报文解码消息戳,直到收到一个新的来自该IP地址的报文解码信使模块发送的应答字。
本发明所述报文解码信使模块包括信使启停控制子模块、UDP服务子模块、应答字心跳子模块和报文属性包生成器子模块,所述信使启停控制子模块分别与UDP服务子模块、应答字心跳子模块连接,所述信息启停控制子模块控制UDP服务子模块启动或停止,并同时控制应答字心跳子模块停止,所述UDP服务子模块还分别与应答字心跳子模块、报文属性包生成器子模块连接,所述UDP服务子模块控制应答字心跳子模块启动,所述应答字心跳子模块定时向报文解码模块发送应答字,所述报文属性包生成器子模块与报文解码消息队列模块连接,所述应答字心跳子模块还与所述报文解码模块连接,所述UDP服务子模块接收所述报文解码广播子模块发来的报文解码消息戳,生成飞机故障报文属性包,以XML数据包的形式送入所述报文解码消息队列模块的消息队列中。
本发明所述UDP服务子模块主要由监听器子模块、应答字发送子模块、报文属性包生成器启动子模块和应答字心跳启动子模块组成,所述监听器子模块分别与应答字发送子模块、报文属性包生成器启动子模块和应答字心跳启动子模块连接,所述报文属性包生成器启动子模块还与应答字发送子模块连接,监听器子模块启动后,监听在位于主机IP地址上的由系统管理预先指定端口上,通过应答字心跳启动子模块启动应答字心跳子模块,并通过应答字发送子模块向报文解码模块发送第一个应答字,随后进入报文解码消息戳的监听状态;所述监听器子模块接收到报文解码消息戳后,通过应答字发送子模块向报文解码模块发送应答字,随后将报文解码消息戳输入到报文属性包生成器启动子模块,启动报文属性包生成进程;所述应答字发送子模块在每次报文解码消息戳被监听器子模块收到后由报文属性包生成器启动子模块调用,向报文解码模块发送应答字。
为了避免网络弱连接造成的不稳定,应答字发送子模块设有如下容错功能,所述应答字发送子模块向报文解码模块发送第一次应答字失败,其将自动再尝试发送第二次和第三次,若三次发送全部失败,其将自动抛出异常到系统日志中,由管理员通过检查系统日期,追溯与排查错误原因。
本发明所述报文属性包生成器子模块主要由报文属性包启动子模块、订阅属性包生成子模块、报文属性包生成子模块和消息队列发送子模块依次连接组成,所述报文属性包启动子模块解析报文解码消息戳,输出唯一标识号、解码表名、消息时间戳这三个实例变量,根据唯一标识号、解码表名从数据库模块中获取飞机故障报文基本属性,输出标准消息标识符、飞机号、航班号和报文时间戳这四个实例变量,根据飞机号从数据库模块中获取该飞机故障报文中飞机的完全属性,并保存在实例对象中;所述订阅属性包生成子模块与用户在客户端订阅操作所形成的数据库连接,所述数据库是大量订阅条件集合构成的订阅池,所述订阅属性包生成子模块将订阅池中可被满足的订阅条件封装成订阅属性包发送给报文属性包生成子模块,所述报文属性包生成子模块将报文解码消息戳中的飞机号循环输入订阅属性包,对订阅属性包中的每个元素依次执行以下操作:判断输入的飞机号是否为订阅的有效飞机号、获取订阅的真值表达式、将订阅属性值绑定到订阅代理对象上、获取该订阅的共享用户清单、飞机过滤和获取用户订阅邮件接收者清单,生成飞机故障报文属性包;所述消息队列发送子模块以订阅属性对象的订阅优先级属性为输入,确定目标队列的优先级,飞机故障报文属性包以XML消息内容形式被封装,发送给报文解码消息队列模块。
本发明所述数据库模块储存的结构化数据包括动态数据和静态数据,所述动态数据由报文解码模块解码飞机故障报文结构化数据自动更新,即飞机故障报文结构化数据样本在结构化解析后保存在飞机故障报文动态数据表中;所述静态数据包括飞机故障报文解码完整性补充数据和订阅支撑数据。
本发明所述应用模块包括代理抽象层子模块、业务逻辑子模块、工具箱子模块和数据库操作子模块,所述代理抽象层子模块分别与报文订阅模块、业务逻辑子模块和工具箱子模块连接,所述工具箱子模块与所述数据库操作子模块连接,所述代理抽象层子模块提供远程接入报文订阅模块、业务逻辑子模块和工具箱子模块的操作方法;所述业务逻辑子模块与工具箱子模块连接,业务逻辑子模块调用工具箱子模块中的通用方法,再经数据库操作子模块与数据库模块发生交互。
本发明所述报文订阅模块包括系统启动子模块、自动服务子模块和用户订阅操作界面子模块,订阅用户登录成功后,经过系统启动子模块启动,自动服务子模块和用户操作界面子模块各自运行在独立的线程空间,所述自动服务子模块主要由飞机故障报文属性包处理子模块和邮件推送子模块组成,所述飞机故障报文属性包处理子模块与报文解码消息队列模块连接获取飞机故障报文属性包,所述飞机故障报文属性包处理子模块通过应用模块和数据库模块连接,与数据库发生双向数据交互,生成订阅邮件推送内容,经过所述邮件推送子模块将邮件推送内容推向邮件发送模块;所述用户订阅操作界面子模块供用户完成飞机故障信息的订阅操作,形成订阅条件被保存在数据库模块中。
本发明所述飞机故障报文属性包处理子模块主要由消息分配器子模块和飞机故障报文下载器子模块组成,所述消息分配器子模块将飞机故障报文属性包写入本地缓存,本地缓存写入成功后,随即启动解析格式飞机故障报文下载任务接口和源格式飞机故障报文下载任务接口,同时,根据飞机故障报文属性包ID获取订阅邮件接收地址清单,将清单送入订阅客户端邮件发送任务接口与订阅服务器端邮件发送任务接口,由邮件推送子模块完成订阅邮件的推送;所述飞机故障报文下载器子模块下载解析格式飞机故障报文或者源格式飞机故障报文。
本发明在所述用户订阅操作界面子模块上进行飞机故障信息的订阅操作,包括订阅创建、订阅修订和订阅克隆/撤销。
与现有技术相比,本发明具有如下显著的效果:
(1)本发明的报文订阅模块可供系统管理员(通常是飞机维修系统工程师)在订阅服务器上完成面向飞机维护人员专业与工种细分的个性化报文订阅操作,提供基于飞机主最低设备清单MMEL与飞机制造商维护知识库的机组警告与机载设备故障信息的实时订阅,并提供关键飞行警告信息筛选的统一参考入口,规避由于飞机下行消息量大而无法即时关注关键信息的盲区。
(2)本发明通过邮件发送模块将飞机故障信息发向订阅接收者的手持移动设备(如手机)上,可实现跨越局域网限制的飞机故障信息推送,从而克服了现有必须登录公司网络才能获取飞机故障信息的不便利性(航空公司的数据一般只允许在局域网内部访问),而且,使用分散的个人数据终端,可以长时间保存关键飞机故障信息,构造面向个人数字终端的数据存储与可追溯性。
(3)本发明在报文解码消息队列模块中将飞机故障报文形成消息队列,其它应用系统可直接调用,可以从本系统实时获取飞机故障信息。
附图说明
下面结合附图和具体实施例对本发明作进一步的详细说明。
图1是本发明的整体组成结构示意图;
图2是飞机故障报文样本;
图3是飞机故障报文结构化数据样本;
图4是报文解码模块的工作流程框图;
图5是报文池扫描子模块的工作流程框图;
图6是报文池扫描子模块及其子进程的发起关系流程框图;
图6a是8核CPU解码器负载样本;
图7是报文解析子模块的组成结构框图;
图8是报文类型样本;
图9是飞机维护消息详细内容获取子模块的组成结构框图;
图10是飞机故障代码详细内容获取子模块的组成结构框图;
图11是报文解码信使模块整体组成结构示意图;
图12是UDP服务子模块的组成结构示意图;
图13是应答字心跳子模块的组成结构示意图;
图14是报文属性包生成器子模块的组成结构示意图;
图15是报文属性包生成子模块的组成结构示意图;
图16是消息队列发送子模块的组成结构示意图;
图17是单一主表结构结果集样本;
图18是应用模块的组成结构示意图;
图19是报文解码消息队列模块的组成结构示意图;
图20是报文订阅模块的组成结构示意图;
图21是报文属性包处理子模块的组成结构示意图;
图22是飞机故障报文下载器子模块的组成结构示意图;
图23是邮件发送模块的组成结构示意图;
图24是用户订阅操作界面子模块的功能操作示意图。
具体实施方式
如图1所示,是本发明一种飞机故障信息实时订阅系统,它安装在地面系统中,用于接收由ACARS实时传输的CMCS飞行故障信息,飞机故障信息实时订阅系统主要由报文解码模块、报文解码信使模块、报文解码消息队列模块、数据库模块、报文订阅模块、应用模块和邮件发送模块组成,每个模块安装在相应的服务器中,报文解码模块、报文解码信使模块、报文解码消息队列模块、报文订阅模块和邮件发送模块依次单向通信连接,数据库模块分别与报文解码模块、报文解码信使模块和应用模块双向通信连接,报文订阅模块与应用模块双向通信连接;
报文解码模块接收由飞机通过ACARS数据链实时传输的CMCS飞机故障报文,并将其转换为结构化数据,持久保存在数据库模块中,同时推送给报文解码信使模块,报文解码信使模块分析该报文的基本属性,将分析结果形成飞机故障报文属性包送入报文解码消息队列模块的消息队列;报文订阅模块供人为完成面向工程师工种细分的个性化报文订阅操作,从报文解码消息队列模块实时获取与订阅相关的报文属性包,并通过应用模块获取数据库模块中的相关数据,生成报文电子邮件包,推送给邮件发送模块,由邮件发送模块将报文电子邮件包发向订阅接收者。
基于数据安全的考虑,应用模块集成所有与数据库IO双向吞吐应用逻辑,外部与人操作相关的应用逻辑(如报文订阅模块)全部通过应用模块获取数据资源。
报文解码消息队列模块接收报文解码信使模块推送的报文属性包,以队列形式保存在其内置数据库中,并响应报文订阅模块的接入。
系统管理员(通常是飞机系统工程师)在报文订阅模块上完成面向工程师工种细分的个性化报文订阅操作;报文订阅模块接入报文解码消息队列模块,实时获取与订阅相关的报文属性包,接入应用模块获取有关数据,生成电子邮件包,推向邮件发送模块。
邮件发送模块器完成由报文订阅模块送入的报文电子邮件包,发向订阅接收者(飞机维护人员)。
一、报文解码模块
该模块接收自航空公司ACARS报文网管输入的CMCS飞机故障报文,通常以文件的形式输入,图2是波音B777飞机故障报文样本,图3是波音B777飞机故障报文结构化数据样本。
以B777为例,说明解码器模块的工作过程,如图4所示,解码器对ACARS报文池进行定时扫描,扫描时间间隔由系统管理员灵活配置,一般设置为几秒(如5秒)。时间间隔太长,会造成系统实时响应变差;时间间隔太短,会并发大量线程,若系统整体硬件性能不高,容易造成系统IO资源紧张,使系统整体性能恶化。
报文解码模块主要由报文池扫描子模块、报文解析子模块和报文解码广播子模块组成,报文池扫描子模块对报文池进行定时扫描,首先判断报文标签是否等于CFD(ARINC620协议定义,CMCS飞机故障报文的ACARS下行报文标签为CFD),若不等于CFD,说明此报文非CFD报文,该报文被抛出(或其它用途);若等于CFD,则进入报文解析子模块,并完成CFD报文的格式化解析;若解析过程出错(可能是由于数据传输过程中的噪声数据或其它不可预期原因所致),该报文被抛出(或其它用途);若解析过程无错,则报文池扫描子模块向接入的报文解码信使模块发送报文解码消息戳。
1、报文池扫描子模块
如图5、6所示,报文池扫描子模块由活动进程控制器子模块与报文解析子进程分配器子模块及其发起的进程组成。报文解析子模块和报文解码广播子模块为该子模块的下游串接模块。
报文池扫描子模块本质上是一个由定时器触发的扫描子进程。该子进程由一个活动进程控制器子模块控制其是否应该被发起。扫描子进程被发起后,将从报文池中获取的每个报文唯一地绑定在一个预先初始化过的进程池中(进程池中的每个进程经初始化后处于非激活状态,即静态的报文解码子进程,其并不消耗CPU资源),通过报文解析子进程分配器子模块将进程池中的静态进程循环分配到每个CPU逻辑核上,静态进程依次被激活,成为动态的报文解码子进程;一旦某个静态进程被激活为动态,该进程立即锁定一个CPU逻辑核进程资源,形成一组并行的报文解码子进程簇;一旦某个激活的报文解码子进程解码完毕,便释放一个CPU逻辑核进程资源,该进程又变为静态进程,随即被操作系统归还到进程池中。由此看出,CPU逻辑核数越多,解码效率越高。
1.1活动进程控制器子模块
由于报文池中的报文数量可能很大(从十几到上万不等),报文扫描子进程执行过程中,需接近数据库,为每个报文分配一个唯一的标识号(下称RAW_ID),此过程必须消耗数据库的IO资源。当清单数目较大时,该进程会花费较长的IO等待时间,在一次文件池扫描未结束之前,不允许因定时器计时到而并发起第二次扫描,否则会导致数据库会话超额而死锁。因此,进程进入文件池扫描环节之后,立即设置扫描进程堵塞标记,进程控制器子模块在发起子进程之前检查此标记,若被堵塞,则等待下一次计时到;若未被堵塞,则进一步检查当前活动进程(即报文解码子进程)数是否超过主机CPU逻辑核数,以免过多报文解码子进程被发起,同样导致数据库会话超额而死锁。
1.2报文解析子进程分配器子模块
报文解析子进程分配器子模块接管报文解码子进程簇,以串行方式,从报文解码子进程簇中的第一个进程遍历到最后一个(此过程称为循环),逐个激活,由操作系统动态分配到每个相对闲置的CPU逻辑核上,同时锁定该CPU逻辑核的线程资源,从而避免在一个循环中过多的子进程被激活,导致数据库会话超额。可见,如果报文解码模块宿主主机是单逻辑核CPU,报文解码模块实为单线程作业;CPU逻辑核越多,多线程并行解码能力越强。
如图6a所示,⑥为活动进程控制器子模块所在CPU逻辑核负载情况,由于该进程一直处于活动状态,因此其所在CPU逻辑核负载最高;②③④⑤⑦⑧为报文解码子进程所在CPU逻辑核负载情况。各进程所在CPU逻辑核编号由操作系统动态分配。
2、报文解析子模块
报文解析子模块实际上是由报文解析子进程分配器子模块发起的一个子进程,用于完成CFD报文的结构化内容解析。该模块由图7所示的若干子模块/子进程串行完成。
报文解析子模块主要由依次连接的内存表初始化子模块、报文分解器子模块和内存表提交子模块组成,且内存表初始化子模块、报文分解器子模块和内存表子模块分别与数据库模块连接,其中,内存表初始化子模块从数据库中获取预先定义的飞机故障报文结构字段,装入报文解码模块主机内存,形成空白的飞机故障报文内存表;报文分解器子模块对飞机故障报文结构化数据进行解析,并将解析结果保存在内存表提交子模块中,内存表提交子模块向数据库模块写入该解析结果,该子模块之前所有的CFD内存表写入数据将被持久保存。
报文分解器子模块包括依次连接的报头提取子模块、报文类型提取子模块、飞机故障/维护消息内容分析子模块、内存表强制字段更新子模块、飞机维护代码详细内容获取子模块和飞机故障代码详细内容获取子模块。
报头提取子模块提取飞机故障报文的报头(CFD报头为CFD报文的第一行,即第一个“回车/换行”符号),作为报文的属性之一保存在内存表提交子模块中;
在设计上,有的飞机有CFD报头(如波音飞机),有的飞机可能没有明确的CFD报头(如空客飞机),也可能CFD报文是压缩/紧凑编码而没有报头。报头中往往包含关于飞机/航班的基本信息,如飞机号,航班号,起飞到达地点等;也可能包含关于CMC的基本构型信息,如CMC的软件件号,生成此CFD报文的时间,航段开启的时间等;
报头提取子模块会根据飞机的特性自动执行(有报头)或跳过(无报头)。
报文类型提取子模块提取飞机故障报文的报文类型,作为报文的属性之一保存在内存表提交子模块中。报文类型是飞机故障报文的重要属性,其标识飞机故障报文的物理含义,如图8所示,RTE表示飞机实时发出的CFD故障报;MPC表示飞机航后发出的当前航段的非关联CFD故障报,等等。
飞机故障/维护消息内容分析子模块解析出飞机故障报文中飞机故障/维护消息字段,并将其保存在内存表提交子模块中,其中包括飞机故障代码、飞机维护代码、故障状态、驾驶舱警告信息、飞行阶段、维护消息检测源设备,维护消息等级等。
内存表强制字段更新子模块中的内存表强制字段包括数据库索引号、飞机号、航班号和时间戳,其中,数据库索引由数据库模块自动生成,用于完成数据唯一性参照与检索加速;时间戳由解码器主机时钟年月日与报文的路由时间时分组成,用于标识飞机故障报文时间信息的完整性。因此,内存表强制字段的内容不一定源自CFD报文内容。
飞机维护代码是CFD报文中的一个字段,其由ATA章-节-位置-项目号组成(有的飞机MMSG不包含ATA项目号)。如图9所示,飞机维护代码详细内容获取子模块以飞机故障/维护消息内容分析子模块输出的飞机维护代码为输入条件,经过飞机维护代码描述内容获取子模块与飞机维护代码维护建议内容获取子模块从数据库模块中获取预先定义的与飞机故障报文中的飞机维护代码对应的详细描述与维护建议,保存在内存表提交子模块中;有的飞机CFD报文中已经包含了飞机维护代码的详细描述,本子模块会根据飞机的特性自动执行或跳过。
飞机故障代码是CFD报文中的一个字段,其由ATA章-节-位置-项目号组成。如图10所示,飞机故障代码详细内容获取子模块以飞机故障/维护消息内容分析子模块输出的飞机故障代码为输入条件,从数据库模块中获取预先定义的与飞机故障报文中的飞机故障代码对应的详细描述,保存在内存表提交子模块中。有的飞机CFD报文中已经包含了飞机故障代码的详细描述,本子模块会根据飞机的特性自动执行或跳过。
3、报文解码广播子模块
报文解码广播子模块是报文解码模块和报文解码信使模块之间的桥梁。报文解码广播子模块在一条飞机故障报文被成功解码后自动执行,向所有接入的报文解码信使模块发送UDP协议的报文解码消息戳,消息戳唯一标识一个ACARS报文被成功解码的事件发生,其格式定义如下:
消息戳=CFD报文唯一标识号(RAW_ID)+“#”+CFD报文解码表名
如:MessageStamp=1234534#CFD_B777
其中:“1234534”为CFD报文标识号(RAW_ID);
CFD_B777为该报文的解码表(用于存储该报文的结构化数据)
报文解码信使模块接到输入的消息戳之后,在报文属性包生成器子模块中生成报文属性包,并将其发送到消息队列中。详见后续内容。
3.1报文解码广播子模块的伺服状态
多个报文解码信使模块接入报文解码模块,报文解码模块主线程向解码广播进程启动子模块输入接入的信使模块列表,并启动该子模块。一经启动成功,报文解码广播子模块进入伺服状态,等待并响应报文解码信使模块的应答字,建立握手连接。
UDP协议为非握手协议,发送者以广播的形式,尽量向可能存在接收者发送数据报,并不检验数据报是否被成功送达。报文解码模块为确保消息戳被送达确实存在且处于活动状态的报文解码信使模块,其双方必须约定彼此互信的握手应答方案,本发明中使用如下应答方案:
报文解码模块向报文解码信使模块列表中给出的主机IP地址与端口(由系统管理员预先设定)发送UDP消息戳广播数据报,报文解码信使模块收到消息戳之后,立刻向消息戳源IP地址(即报文解码模块所在主机的IP地址)及其设定端口(由系统管理员预先设定)发送应答字“ACK”三个字母(该应答字也是基于UDP协议数据报)。若报文解码模块在给定的时间间隔内(由管理员预先设定)未收到来自相应IP地址的UDP“ACK”应答字,则判定此IP地址上的报文解码信使模块已停止工作,将不再向其广播消息戳,直到收到一个新的来自该IP地址的UDP“ACK”应答字。
二、报文解码信使模块
如图11所示,报文解码信使模块以系统服务的形式运行在其主机后台,随主机自动启停。报文解码信使模块包括信使启停控制子模块、UDP服务子模块、应答字心跳子模块和报文属性包生成器子模块,信使启停控制子模块分别与UDP服务子模块、应答字心跳子模块连接,信息启停控制子模块控制UDP服务子模块启动或停止,并同时控制应答字心跳子模块停止,UDP服务子模块还分别与应答字心跳子模块、报文属性包生成器子模块连接,UDP服务子模块控制应答字心跳子模块启动,应答字心跳子模块定时向报文解码模块发送应答字,报文属性包生成器子模块与报文解码消息队列模块连接,应答字心跳子模块还与报文解码模块连接,UDP服务子模块接收报文解码广播子模块发来的报文解码消息戳,生成飞机故障报文属性包,以XML数据包的形式送入报文解码消息队列模块的消息队列中。
应答字心跳子模块定时向报文解码模块发送UDP应答字“ACK”,以不间断通达其有效性。
1、信使启停控制子模块
信使启停控制子模块内置启动子模块与停止子模块,启动子模块随其宿主主机平台的启动而自动启动,控制UDP服务进程对象与UDP服务对象的初始化;停止子模块随其宿主主机平台关闭而自动停止,控制UDP服务进程对象与UDP服务对象的销毁以及应答字心跳子模块的停止。
2、UDP服务子模块
如图12所示,UDP服务子模块主要由监听器子模块、应答字发送子模块、报文属性包生成器启动子模块和应答字心跳启动子模块组成,监听器子模块分别与应答字发送子模块、报文属性包生成器启动子模块和应答字心跳启动子模块连接,报文属性包生成器启动子模块还与应答字发送子模块连接。
UDP服务子模块由UDP服务进程对象被信使启停控制子模块中的信使启动子模块初始化后自动启动。
(1)监听器子模块启动后,便开始监听在位于主机IP地址上的由系统管理预先指定端口上,立即通过应答字心跳启动子模块启动应答字心跳子模块;通过应答字发送子模块向报文解码模块发送第一个应答字ACK,随后进入解码消息戳的输入等待状态(即监听状态);
(2)接收到解码消息戳后,立即通过应答字发送子模块向报文解码模块发送ACK应答字,以表明其工作状态,随后将消息戳输入到报文属性包进程启动子模块,启动报文属性包生成进程。
(3)应答字发送子模块在每次消息戳被监听器子模块收到后由报文属性包生成器启动子模块调用,向报文解码模块发送ACK应答字,以表明其工作状态。
此外,为了避免网络弱连接造成的不稳定,应答字发送子模块设有如下容错功能:若第一次ACK发送失败,其将自动再尝试发送2次;若3次发送全部失败,其将自动抛出异常到系统日志中;管理员通过检查系统日期,可追溯与排查错误原因。
3、应答字心跳子模块
如图13所示,应答字心跳子模块主要由一个定时器对象组成,其定时启动事件读入由系统管理员指定的定时间隔(秒);计时到事件触发UDP应答字ACK向报文解码模块的发送;定时停止事件销毁定时资源。
其中,定时启动事件由UDP服务子模块的信使心跳启动子模块触发;定时停止事件由信使启停控制子模块的信使停止子模块触发。
4、报文属性包生成器子模块
如图14所示,报文属性包生成器子模块根据不同的ACARS报文,生成不同的报文属性包(XML数据包)。针对CMCS飞机故障报文生成的报文属性包称为CFD报文属性包。报文属性包生成器子模块由UDP服务子模块中的ACARS报文属性包生成器启动子模块启动。
报文属性包生成器子模块主要由报文属性包启动子模块、订阅属性包生成子模块、报文属性包生成子模块和消息队列发送子模块依次连接组成。
4.1报文属性包启动子模块
该子模块依次完成以下三个过程:
(1)解析解码消息戳,输出以下三个实例变量:
RAW_ID、解码表名、消息时间戳;
(2)根据“RAW_ID”、“解码表名”从数据库中获取“CFD报文基本属性”,输出以下四个实例变量:
报文SMI、飞机号、航班号、报文时间戳;
(3)根据飞机号从数据库中获取该CFD报文中飞机的完全属性,并保存在Aircraft实例对象中。飞机完全属性包括飞机尾号、机型、客户名、客户ID、营运人名、营运人ID、持有者名等等。
4.2订阅属性包生成子模块
订阅是一个由用户在客户端(即报文订阅模块-详见后续内容)上完成的操作,从而生成对下行ACARS报文的各种筛选条件(即订阅条件)。大量用户的订阅操作,形成一个大量的订阅条件集合,我们称之为订阅池。在报文解码信使模块中,系统需要根据下行ACARS报文的属性,在订阅池中精准地找到哪个(或哪些)订阅条件可被满足,即该报文被哪些用户订阅了,报文解码信使模块将把该报文(属性包)推送到相应的队列中。
一个ACARS下行报文(CFD报文)可能同时满足多个订阅(即订阅条件),每个订阅都有各自的属性。订阅属性包生成子模块就是将这些满足条件的订阅封装为一个整体(即订阅属性包),为后续的CFD报文属性包生成做准备。
订阅属性包生成子模块与数据库(即订阅池)连接,将报文属性包启动子模块从消息戳中解析出的解码表名与订阅激活标记真值条件送入数据库,执行逻辑与的操作,得到一个订阅属性包,即订阅属性包就是:消息戳给确定的解码表名与处于激活状态的订阅集合。
4.3报文属性包生成子模块
如图15所示,报文属性包生成子模块将消息戳中的飞机号循环输入订阅属性包,对属性包中的每个元素进行以下操作:
(1)判断输入的飞机号是否为订阅的有效飞机号
此过程需要接近数据库,并以该订阅的主键提取订阅模块用户预先选定的有效飞机号列表,若此飞机号不在此列表中,则判定此飞机号为无效飞机号,循环指针直接指向订阅属性包中的下一个订阅;否则,执行下一步。
(2)取订阅的真值表达式
订阅真值表达式是一串返回值为数值的SQL子句,其通式如下:
SELECT COUNT(DISTINCT(RAW_ID))CNT FROM{解码表名}WHERE({用户订阅条件子句})AND RAW_ID={RAW_ID}
其中:解码表名为ACARS报文解码表名(本发明中为CFD报文解码表名);
用户订阅条件子句为用户在订阅模块上生成的订阅条件子句;
RAW_ID为ACARS下行报文唯一标识号。
(3)将订阅属性值绑定到订阅代理对象上
订阅代理对象即订阅属性对象,是订阅对象在主机内存中的副本。一个订阅具有多种属性。订阅代理对象是对其多种属性的封装,以便系统对其作为一个整体进行调用与销毁。
(4)获取该订阅的共享用户清单
一个订阅若其共享属性被标定为“是”,则其它订阅用户可直接调用此订阅,于是就存在所谓共享用户。因此,一个订阅完整的用户清单=本订阅用户名+共享用户名。
(5)飞机过滤
飞机过滤即飞机号过滤器,在报文订阅模块中,考虑大机队管理,允许系统管理员设定基于全局的飞机过滤选项,即预先设定某账号下有效飞机的清单列表。因此,系统将用户名与下行报文中的飞机号输入飞机号过滤器,若此飞机号在此清单中,则判定此订阅对此飞机有效,继而执行下一步处理(获取用户订阅邮件接收者清单);否则判定此订阅对此飞机无效,继而循环指针指向订阅用户名清单中的下一个。
(6)获取用户订阅邮件接收者清单
在报文订阅模块中,用户完成对订阅邮件接收地址的配置;此过程向系统输入订阅用户名与订阅主键,获取对应的订阅邮件接收地址清单。
(7)获取订阅服务器端报文下载路径
若订阅者需要报文以邮件附件形式发送给订阅接收者,则必须指定该报文在服务器端的缓存路径,即服务器端报文下载路径。此过程获取订阅服务器端报文下载路径。
(8)生成CFD报文属性包
经过以上(1)~(6)的过程,生成飞机故障报文属性包,其内容包括以下对象:报文解码消息戳、报文基本属性、完整飞机属性、订阅属性、订阅条件真值表达式、订阅用户、用户订阅邮件接收者清单、订阅服务器端报文下载路径。
4.4消息队列发送子模块
如图16所示,消息队列发送子模块以订阅属性对象的订阅优先属性为输入,确定目标队列的优先级,其中:
根据订阅创建者对订阅属性的确定,订阅优先属性可为以下四种优先级:(1)未分类;(2)最高优先级;(3)中等优先级;(4)低优先级。按照如下对应关系,转换为队列优先级:(1)未分类转换为低优先级;(2)高优先级转换为最高优先级;(3)中等优先级转换为正常优先级;(4)低优先级转换为最低优先级;(5)默认为正常优先级。
队列优先级的不同,将影响到该队列在消息队列服务中处理的优先级与系统整体效率。
确定目标队列的优先级之后,系统尝试连接消息队列服务与创建消息会话,并按照图16中的顺序依次完成消息生产者的创建,XML消息内容(即送入消息队列中的消息内容)封装与发送,随即关闭消息会话,并关闭与消息队列服务的连接。
其中,队列消息内容包括:CFD报文属性包、订阅类型、余冗校验码、CFD报文唯一标识符、CFD报文时间戳、CFD报文解码表名、CFD报文标准消息标识符、飞机号、航班号、订阅优先级、订阅创建者、订阅是否可共享、订阅主键和订阅名称。
队列消息内容包含CFD报文属性包以及其它与订阅或报文相关的从属属性。其中,队列消息内容用于报文订阅模块对队列的快速访问;CFD报文属性包用于报文订阅模块对订阅及其报文属性的快速访问。
三、数据库模块
数据库模块存储CFD报文的结构化数据及其底层业务逻辑关系。数据库模块储存的结构化数据包括动态数据和静态数据。
1、动态数据
动态数据由报文解码模块解码CFD报文结构化数据自动更新,飞机故障报文结构化数据结构化解析后保存在CFD报文动态数据表中。
各种机型的CFD报文结构化字段差异较大,但从数据关联关系上来讲,大致分为单一主表结构的CFD报文解码表结构和主从表结构的CFD报文解码表结构,B777机型、A320系列飞机/A330的CFD报文解码表都属于单一主表结构。其中,单一主表结构的CFD报文解码表中,驾驶舱效应与维护消息保存在同一张数据表中,一个RAW_ID确定一个CFD报文的解码结果集,一个CFD报文结果集可能由多条记录组成,参见图17,其中:同一个RAW_ID表示结果集为同一个CFD报文的解码结果;同一个航班表示该CFD报文为同一个航班产生的报文,即飞机号相同、航班号相同、时间戳相同,起飞到达地点相同的结果集为同一个航班的数据。
A380机型、B787/A350机型的CFD报文解码表都属于主从表结构,其中:主表保存CFD报文的基本信息与航班信息,其中RAW_ID为CFD报文唯一标识号,其与一条主表记录唯一对应;CMS_ID唯一指向一个子表结果集,其子表结果集包括:实时FDCE警告信息、实时故障信息、航后FDCE警告信息和航后故障信息。“实时FDCE驾驶舱警告信息FD”子表通过外键CMS_ID与主表发身关联/级联。“实时飞行故障信息FM”子表通过外键CMS_ID与主表发身关联/级联。“航后FDCE驾驶舱警告信息FD”子表通过外键CMS_ID与主表发身关联/级联。“航后飞行故障信息FM”子表通过外键CMS_ID与主表发身关联/级联。
2、静态数据
静态数据包括飞机故障报文解码完整性补充数据和订阅支撑数据。为了减小数据流量,下行的CFD飞机故障报文往往采用精简格式,即在不损失信息量的前提下,尽可能少传输冗余的内容,由地面系统通过补充数据将冗余的内容补充,以实现CFD飞机故障报文内容的完整解析。
因此,飞机故障报文解码完整性补充数据在报文解码模块解码过程中自动调用,用于补充故障信息的扩展内容,如驾驶舱效应警告代码与警告内容的完整性参照、维护消息代码与其描述的完整性参照、维护消息代码与其知识库完整性参照。当增加冗余数据回放后,报文数据显示驾驶舱效应警告代码的警告内容、维护消息代码的详细描述及其知识库内容。
订阅支撑数据的详细描述见后续内容。
四、应用模块
报文订阅服务器模块通过应用模块与数据库模块双向连接。
应用模块内置面向数据库的IO操作、安全审计操作以及其它界于报文订阅模块与后台配置的底层应用操作,基本架构如图18所示。
其中,代理抽象层子模块面向报文订阅模块及该模块内部各子模块,提供面向远程接入模块的各种操作方法。应用模块包括代理抽象层子模块、业务逻辑子模块、工具箱子模块和数据库操作子模块,代理抽象层子模块分别与报文订阅模块、业务逻辑子模块和工具箱子模块连接,工具箱子模块与数据库操作子模块连接,业务逻辑子模块与工具箱子模块连接。业务逻辑子模块调用工具箱模块中的通用方法,再经数据库操作子模块与数据库模块发生交互。
(1)代理抽象层子模块
该子模块通过http协议与报文订阅模块发生网络交互,其中保存面向工具子模块与业务逻辑子模块的原型方法及其形参列表(托管方法);报文订阅模块通过引用代理抽象层子模块的存根访问其内部子模块的各种功能,以此起到应用隔离的作用。
(2)业务逻辑子模块
该子模块定义报文订阅子模块订阅数据获取的方法与处理逻辑,业务逻辑子模块调用工具箱子模块中的通用方法,再经数据库操作子模块与数据库模块发生交互。
(3)工具箱子模块
该子模块定义一般用途的应用操作方法与处理逻辑。
(4)数据库操作子模块
该子模块定义面向数据基本操作(如数据的增加、删除、查询、更新)方法与处理逻辑。除托管方法外,还包括在整个应用模块内部使用的私有方法,如数据库模块链接的建立与断开、服务日志的更新等。
五、报文解码消息队列模块
报文解码消息队列模块提供系统由报文解码模块到报文订阅模块之间实时信息通讯的中继服务。
报文解码消息队列模块采用Apach ActiveMQ开源平台构建,提供基于tcp协议,并支持失效转移/断线重连机制的消息队列基础服务,其基础架构如图19所示。
(1)集群支持
报文解码消息队列模块由贡献者集群与消费者集群组成。报文解码信使模块(消息的生产者)将报文属性包(即消息)送入每个由订阅用户名确定的队列中,此称之为贡献者队列;多个贡献者队列宿主在同一台服务器上(即队列服务器)。多个队列服务器组成贡献者集群;同理,多个消息的接收者(即报文订阅模块)组成消费者集群。
(2)失效转移/自动重连机制
为保证系统的容错性与鲁棒性,系统往往配置成贡献者集群。通过连接配置failover:(tcp://URI#1:port#1,tcp://URI#2),可在贡献者集群中的多个队列服务器之间形成自动失效转移机制。
图19中的URI≠1为第一台队列服务器的URI;URI≠2为第二台队列服务器的URI。两台队列服务器URI地址之间使用逗号分割,以此类推,系统在贡献者群集多个队列服务器之间实现失效转移,即某一台队列服务器失效后,系统自动切换到另一台。如果群集中只有一台队列服务器有效,则系统将仅在这一台队列服务器上实现断线重连机制,即唯一的一台队列服务器从故障中恢复后,消息的生产者(信使模块)可自动重建连接。对于消息的消费者,配置同样的连接字串,实现失效转移或断线重连。
(3)负载均衡
如上所述,如果某个URI失效,消息的生产者或消费者会立即转向URI地址列表中其他可以连接的队列服务器进行重连,以保证继续正常工作。但默认情况下,这种选择是由系统决定的随机选择,而并不是URI#1失效了就会选则URI#2重连,以此保证系统负载均衡。若系统管理员系统不希望这种由系统决定的负责均衡可通过配置连接字串扩展属性改变这一特征,如:
failover:(tcp://URI#1,tcp://URI#2,....)?randomize=false
其中:开关选项randomize=false,表示按照队列服务器URI列表顺序从左到右进行失效重连;若开关选项randomize=truue,表示在队列服务器URI列表顺序中随机进行失效重连。
(4)并发复用
值得注意的是,一个贡献者(即一个同名队列)可对应多个同名消费者,这些同名消费者可能是宿主在同一台计算机上以相同账号登录的多个订阅模块副本(在本发明中是不允许这样做的),也可是分布在不同计算机上以相同账号登录的报文订阅模块。此时,只有当与之连接的所有报文订阅模块全部接收了队列的报文属性包之后,才认为该贡献者中的消息被完全消耗。系统使用这种方式保证报文订阅模块的并发复用。
(5)消息过期控制
由于报文解码信使模块并不检查报文订阅模块(即消费者)的在线状态,因此,系统长时间的运行,有可能在已经下线了的贡献者队列中生成大量的消息(报文属性包),导致队列服务器资源耗尽,因此报文解码信使模块使用非持久性队列写入方式,若报文解码信使模块未能在指定的时间内签收某消息,则此消息自动过期/销毁。
系统管理员通过配置报文解码信使模块的后台属性,修订消息过期时限,如下:
<!--The ActiveMQ Time2Live timespan(Seconds)for NonPersistent
QueueMessage-->
<add key=″NonPersistentQTime2Live″value=″600″/>
其中value=″600″意为“消息过期时限=600秒”,即默认条件下,消息过期时限为10分钟。即报文订阅模块未能在10分钟之内接收此报文属性包,此报文属性包将自动从其贡献者队列中清除。
六、报文订阅模块
如图20所示,报文订阅模块包括系统启动子模块、自动服务子模块和用户订阅操作界面子模块,订阅用户登录成功后,经过系统启动子模块后,自动服务子模块与用户操作界面子模块各自运行在独立的线程空间。自动服务子模块主要由飞机故障报文属性包处理子模块和邮件推送子模块组成,飞机故障报文属性包处理子模块与报文解码消息队列模块连接获取飞机故障报文属性包,飞机故障报文属性包处理子模块通过应用模块和数据库模块连接,与数据库发生双向数据交互,生成订阅邮件推送内容,经过邮件推送子模块将邮件推送内容推向邮件发送模块;用户操作界面子模块提供用户完成基于MMEL的故障信息订阅、MMSG的故障信息订阅与定义CFD故障信息订阅的复杂操作,形成订阅条件被保存在数据库模块中。
1、系统启动子模块
(1.1)系统启动子模块由订阅用户登录,创建消息队列消费者对象、从配置文件中获取消息队列服务器URI、启动对消息贡献者的监听几个过程顺序组成。对消息贡献者的监听启动完成之后,系统进入监听状态,等待签收CFD报文属性包消息(即进入自动服务状态)。其中,消息队列消费者对象由以下4个接口对象组成:
消息工厂接口:用于封装消息队列服务器上的消息生产者抽象接口,并生成指向队列服务器(集群)的连接;
消息连接接口:维持消费者与队列服务器(集群)之间的连接,支持失效转移/断线重连;
消息会话接口:用于维持消息贡献者与消费者事务一致性,即维护消费者的消息签收状态与消息贡献者的发送状态对应匹配一致性,并生成消息消费者;
消息消费者接口:用于封装本地消息消费者存根接口,该消息消费者指向给定队列名/用户名的消息贡献者,并产生指向给定队列名/用户名的消息贡献者的监听。
2、自动服务子模块
经系统子模块启动系统后,报文订阅模块进入监听状态,即进入自动服务子模块,此时该模块作为消息的消费者与同名消息的贡献者的消息队列形成消息的派送与签收的会话关系。
2.1飞机故障报文属性包处理子模块
飞机故障报文属性包处理子模块主要由消息分配器子模块和飞机故障报文下载器子模块组成。如图21所示,飞机故障报文属性包处理子模块接收来自消息贡献者的CFD报文属性包,由于报文属性包是一个大XML流,所以需经XML序列化之后方可获取其完整属性:
(1)提取属性包CRC32校验码属性值:sIMsgCRC32
(2)根据接收到的属性包内容,重新生成CRC32校验码值:rIMsgCRC32
(3)若“sIMsgCRC32=rIMsgCRC32”则说明经网络传输接收到的CFD报文属性包完好无损,否则该属性包被篡改或破坏,丢弃后返回“监听状态”。
(4)从属性包中提取航空公司代码属性值:AIRLINE_ID
若AIRLINE_ID属性提取失败,则丢弃该属性包后返回监听状态;否则进入消息分配器子模块,同时在报文订阅模块的显示界面上显示该消息的接收者状态。
在消息分配器子模块中,将CFD报文属性XML数据包以CFD报文属性包ID合并AIRLINE_ID为文件名后写入本地缓存,是为了在后续数据处理过程中,减少对数据库服务器的IO访问频度,即将数据库服务器的IO负载分散到客户端。本地缓存写入成功后,随即启动如下两个任务接口:
(1)启动解析格式CFD报文下载任务接口;
(2)启动源格式CFD报文下载任务接口;
消息分配器子模块将启动参数输入接口函数,函数的执行过程在飞机故障报文下载器子模块中完成。
同时,根据CFD报文属性包ID获取订阅邮件接收地址清单,将清单送入订阅客户端邮件发送任务接口与订阅服务器端邮件发送任务接口,由邮件推送子模块完成订阅邮件的推送。
其中,在订阅客户端邮件发送任务接口中,系统首先判断报文订阅模块的运行模式,若为客户端模式,则接口函数直接返回,不会将任务推向邮件发送模块;在订阅服务器端邮件发送任务接口中,系统首先判断订阅模块的运行模式,若为服务器端模式,则接口函数直接返回,不会将任务推向邮件发送模块。
如图22所示,飞机故障报文下载器子模块由消息分配器子模块输入CFD报文下载文件名/CFD报文属性包ID/CFD报文下载输出目录三个变量,从CFD报文属性包中提取报文机型与报文唯一标识符RAW_ID,若用户指定下载CFD源格式报文,则总数据库中获取CFD源报文内容;否则,根据不同机型下载CFD解析格式报文内容,并输出到指定的目录中。
解析格式CFD报文,提供友好格式的CMCS故障信息报文,原则上,其格式显示与机载打印机输出格式相同,以飞机提供维护人员不需接近飞机驾驶擦便可获得飞机故障信息的便捷。
源格式CFD报文,是经ACARS数据量传输的精简格式的CMCS故障信息报文,其不便飞机提供维护人员直接阅读,多用于系统管理员面向原始数据的分析与容错处理,因此源格式CFD报文下载多为系统管理员或高级用户数据分析所需。这两种格式的下载过程,属航空公司ACARS报文处理基础功能部分(本发明仅需航空公司ACARS报文处理系统提供http接口即可)。
本子模块具有“自动容错”功能:当无法从航空公司ACARS报文处理系统提供的http接口获CFD取解析格式报文内容时,系统会自动通过其应用模块,从数据库中获取源格式CFD报文,同样作为订阅邮件的附件被发送到订阅用户的邮箱中,以此通达用户航空公司ACARS报文处理系统已产生故障,须系统管理员进行维护。
2.2邮件推送子模块
如图23所示,该子模块由消息分配器子模块启动,输入来自消息分配器子模块的以下变量:CFD报文属性包ID;订阅邮件地址清单。输入消息分配器子模块的以下变量:CFD报文附件文件名(含完整路径);CFD报文附件类型。
模块启动进程从报文订阅模块本地配置中获取全局静态属性设置,该设置由系统管理员在用户UI上完成预配置。
系统根据SMTP服务器端口类型的不同,启动SMTPs邮件发送进程或MSA邮件发送进程中的其中一个。由于端口类型的不同,邮件发送进程将订阅者邮件地址清单封装在各自不同的邮件消息对象中(即SMTP邮件消息对象或MSA邮件消息对象)。
本模块依次经过生成邮件消息对象→附加邮件附件→设定邮件优先等级、生成邮件客户端对象的进程,最后发送订阅邮件到邮件服务器。
生成邮件消息对象:该进程生成邮件消息对象的内容部分,其中包括邮件标题、邮件正文、邮件正文头部信息、订阅属性包摘要、MMEL/FDE摘要信息、MMEL/FDE摘要信息和MMSG摘要信息。
邮件标题,邮件标题包含CFD报文属性包的关键属性,以便邮件接收者快速识别飞机故障的摘要信息,其中包括:
飞机号、航班号、机型、ATA章节、MMEL相关、MMEL Nogo状态、故障代码、FDE/EICAS警告信息、MMEL放行信息、EICAS警告等级、CFD报文解析类型、ETOPS相关状态、MMEL功能号等。
邮件正文:邮件正文包含邮件正文头部信息、订阅属性包摘要信息、MMEL/FDE摘要信息(若故障信息为MMSG信息,则给出MMSG摘要信息)。
MMSG摘要给出可能导致故障的原因与失效辅助信息。
附加邮件附件:邮件的附件就是CFD报文的解析格式或源格式内容,其在CFD报文下载子模块中已生成。在本模块中,附件的完整文件名(包括本地完整路径)由CFD报文下载子模块输入。本进程在附加邮件附件之前会首先检查附件邮件附件文件的有效性,若判定为无效附件(往往是由于CFD报文下载子模块内部错误导致无法生成附件)则本进程自动跳过(进入设定邮件等级的进程)。
本进程具有容错通知功能:若订阅用户收到的邮件无附件,则表明CFD报文下载子模块内部发生错误,此时,通知管理员进行维护。若订阅期待接收的附件为解析格式的CFD报文,但收到的却是源格式报文,此系由航空公司ACARS报文处理系统提供的http接口失效导致,此时,通知管理员进行维护。
设定邮件优先等级:订阅的优先级,由用户通过订阅操作界面,在订阅过程中确定。邮件的优先等级由订阅属性包的订阅优先级属性转换而来。
生成邮件客户端对象:根据邮件服务器端口的不同,生成两种邮件客户端对象,即SMTPs邮件客户端与MSA(CD0)邮件客户端,全局静态属性设置参数值应需注入两种邮件客户端对象后,发送到邮件服务器。
邮件客户端对象相当于邮件消息对象的发送器,其属性的确定由全局静态属性设置确定,其中端口类型的选择,确定生成不同的邮件客户端。此选项的设定,由管理在系统设置界面上完成。
本邮件推送子模块完成对邮件客户端对象的封装和邮件消息对象的封装,其中,对邮件客户端对象的封装包括SMTPs-邮件客户端属性封装和MSA(CDO)-邮件客户端属性封装,邮件消息对象的封装包括SMTPs邮件对象静态属性封装和MSA(CD0)邮件对象静态封装。
3、用户订阅操作界面子模块
用户订阅操作界面子模块为本发明后台系统管理员所用的管理模块,其基本功能模块如图24所示。
通过此模块,管理员完成有关飞机故障信息的订阅创建、修订、克隆/撤销等操作。飞机故障信息包括两大类,即FDE警告信息与MMSG维护消息。FDE警告信息在本发明中特指显示在飞机主显示系统(EICAS或ECAM或MFD显示器)上的文本警告信息。MMSG维护消息,即维护消息或故障,为机载设备自检系统触发的信息,通常不为机组直接察觉,但多数MMSG可触发FDE警告信息。
主最低设备清单在飞机交付航空公司时,由飞机制造商提供。主最低设备清单提供在机载设备故障/失效条件下可放行的最低设备要求。主最低设备清单提供EICAS/ECAM显示的故障信息列表,为飞机CMCS FDE故障信息的一部分,其信息量庞大。本模块集成主最低设备清单提供的EICAS/ECAM显示的故障信息清单在其数据库模块中,由系统管理员通过本模块,根据飞机维护人员的工种细分特征,有选择地创建订阅,以避免大量FDE信息的生成导致飞机维护人员无法抓住关键故障信息的现象。使用工具软件解析主最低设备清单结构化数据。
飞机故障信息的订阅操作(即创建订阅)由FDE警告信息订阅操作子模块、MMSG故障信息订阅操作子模块、用户自定义CFD故障信息订阅操作子模块和提交订阅子模块完成。具体的,管理员通过FDE警告信息选择面板、MMSG故障信息选择面板勾选所需订阅项目,由于空客和波音飞机主最低设备清单数据结构存在差异,两种机型的操作界面不同。
当所需CFD故障信息订阅条件复杂,以至于基于MMEL或MMSG维护知识库都无法满足时,系统管理员使用用户自定义CFD故障信息订阅操作子模块,完成对CFD报文内容的自定义逻辑组合,实现复杂订阅条件的生成。用户自定义CFD故障信息订阅操作子模块提供用户抽选CFD报文内容字段,并生成动态订阅真值条件的操作面板。
提交订阅子模块:该模块是创建订阅的最后一步,即管理员所有的订阅操作只有经过订阅提交子模块方可生效。订阅提交面板由以下部件组成:①订阅通用属性设置区;②编译/提交进度显示区;③日志显示区;④一键编译/提交按钮。管理员在订阅通用属性设置区,完成订阅通用属性的设置工作。管理员完成订阅的编译/提交。
订阅修订子模块:管理员创建/提交之后的订阅项目,通过订阅修订子模块完成其关键属性的修订,包括删除、禁止、共享、设置本地CFD报文下载、分配/撤销订阅邮件地址、重新分配/撤销订阅有效飞机号等操作。
七、邮件发送模块
该模块是企业通用的电子邮件IT基础设施。在本发明中,该模块作为订阅邮件的投递目标,可由企业自行搭建,也可使用通用的ISP SMTP基础服务,需支持端口标准(Port25、Port 587、Port 465)。对端口的选择,由管理员在邮件推送子模块上配置完成,在本发明中,报文订阅模块将订阅消息发送到本模块(起中继作用),再由本模块投递到订阅用户邮件接收服务器。
移动应用设备(如智能手机)安装pushMail邮件客户端,可同步接收飞机故障信息订阅。
Claims (11)
1.一种飞机故障信息实时订阅系统,它安装在地面系统中,其特征在于:所述飞机故障信息实时订阅系统主要由报文解码模块、报文解码信使模块、报文解码消息队列模块、数据库模块、报文订阅模块、应用模块和邮件发送模块组成,其中,所述报文解码模块、报文解码信使模块、报文解码消息队列模块、报文订阅模块和邮件发送模块依次单向通信连接,所述数据库模块分别与所述报文解码模块、报文解码信使模块和应用模块双向通信连接,所述报文订阅模块与应用模块双向通信连接;
所述报文解码模块接收飞机实时传送的飞机故障报文,并将其转换为结构化数据,保存在数据库模块中,同时推送给所述报文解码信使模块,所述报文解码信使模块分析该报文的基本属性,将分析结果形成飞机故障报文属性包送入报文解码消息队列模块的消息队列;所述报文订阅模块供人为完成面向工程师工种细分的个性化报文订阅操作,从所述报文解码消息队列模块实时获取与订阅相关的报文属性包,并通过应用模块获取所述数据库模块中的相关数据,生成报文电子邮件包,推送给邮件发送模块,由所述邮件发送模块将报文电子邮件包发向订阅接收者;
所述报文解码模块主要由报文池扫描子模块、报文解析子模块和报文解码广播子模块组成,所述报文池扫描子模块对报文池进行定时扫描,若报文是飞机故障报文,则进入报文解析子模块,否则,该报文被抛出;报文解析子模块对飞机故障报文进行格式化解析,若解析过程出错,则该报文被抛出,若解析过程无错,则由报文解码广播子模块向所述报文解码信使模块发送报文解码消息戳;
所述报文解码信使模块包括信使启停控制子模块、UDP服务子模块、应答字心跳子模块和报文属性包生成器子模块,所述信使启停控制子模块分别与UDP服务子模块、应答字心跳子模块连接,所述信息启停控制子模块控制UDP服务子模块启动或停止,并同时控制应答字心跳子模块停止,所述UDP服务子模块还分别与应答字心跳子模块、报文属性包生成器子模块连接,所述UDP服务子模块控制应答字心跳子模块启动,所述应答字心跳子模块定时向报文解码模块发送应答字,所述报文属性包生成器子模块与报文解码消息队列模块连接,所述应答字心跳子模块还与所述报文解码模块连接,所述UDP服务子模块接收所述报文解码广播子模块发来的报文解码消息戳,生成飞机故障报文属性包,以XML数据包的形式送入所述报文解码消息队列模块的消息队列中;
所述报文属性包生成器子模块主要由报文属性包启动子模块、订阅属性包生成子模块、报文属性包生成子模块和消息队列发送子模块依次连接组成,所述报文属性包启动子模块解析报文解码消息戳,输出唯一标识号、解码表名、消息时间戳这三个实例变量,根据唯一标识号、解码表名从数据库模块中获取飞机故障报文基本属性,输出标准消息标识符、飞机号、航班号和报文时间戳这四个实例变量,根据飞机号从数据库模块中获取该飞机故障报文中飞机的完全属性,并保存在实例对象中;所述订阅属性包生成子模块与用户在客户端订阅操作所形成的数据库连接,所述数据库是大量订阅条件集合构成的订阅池,所述订阅属性包生成子模块将订阅池中可被满足的订阅条件封装成订阅属性包发送给报文属性包生成子模块,所述报文属性包生成子模块将报文解码消息戳中的飞机号循环输入订阅属性包,对订阅属性包中的每个元素依次执行以下操作:判断输入的飞机号是否为订阅的有效飞机号、获取订阅的真值表达式、将订阅属性值绑定到订阅代理对象上、获取该订阅的共享用户清单、飞机过滤和获取用户订阅邮件接收者清单,生成飞机故障报文属性包;所述消息队列发送子模块以订阅属性对象的订阅优先级属性为输入,确定目标队列的优先级,飞机故障报文属性包以XML消息内容形式被封装,发送给报文解码消息队列模块;
所述应用模块包括代理抽象层子模块、业务逻辑子模块、工具箱子模块和数据库操作子模块,所述代理抽象层子模块分别与报文订阅模块、业务逻辑子模块和工具箱子模块连接,所述工具箱子模块与所述数据库操作子模块连接,所述代理抽象层子模块提供远程接入报文订阅模块、业务逻辑子模块和工具箱子模块的操作方法;所述业务逻辑子模块与工具箱子模块连接,业务逻辑子模块调用工具箱子模块中的通用方法,再经数据库操作子模块与数据库模块发生交互。
2.根据权利要求1所述的飞机故障信息实时订阅系统,其特征在于:所述报文池扫描子模块包括活动进程控制器子模块和报文解析子进程分配器子模块,所述活动进程控制器子模块在发起子进程之前检查此前设置的进程堵塞标记,若有该标记,则等待下一次计时到;若无此标记,则进一步检查当前活动进程数是否超过主机CPU逻辑核数,若当前活动进程数大于或等于主机CPU逻辑核数,不发起子进程,否则,发起子进程,为报文池中的每个报文分配一个标识号,并绑定在初始化过的进程池中,形成静态的报文解码子进程簇;所述报文解析子进程分配器子模块将静态的报文解码子进程簇中的静态进程分配到每个CPU逻辑核上, 静态进程依次被激活成为动态进程,每个激活的动态进程随即锁定一个CPU逻辑核进程资源,形成动态的报文解码子进程簇,每个动态进程解码完毕后,便释放一个CPU逻辑核进程资源。
3.根据权利要求2所述的飞机故障信息实时订阅系统,其特征在于:所述报文解析子模块主要由依次连接的内存表初始化子模块、报文分解器子模块和内存表提交子模块组成,且所述内存表初始化子模块、报文分解器子模块和内存表子模块分别与数据库模块连接,其中,所述内存表初始化子模块从数据库中获取预先定义的飞机故障报文结构字段,装入报文解码模块主机内存,形成空白的飞机故障报文内存表;所述报文分解器子模块对飞机故障报文结构化数据进行解析,并将解析结果保存在内存表提交子模块中,所述内存表提交子模块向数据库模块写入该解析结果。
4.根据权利要求3所述的飞机故障信息实时订阅系统,其特征在于:所述报文分解器子模块包括依次连接的报头提取子模块、报文类型提取子模块、飞机故障/维护消息内容分析子模块、内存表强制字段更新子模块、飞机维护代码详细内容获取子模块和飞机故障代码详细内容获取子模块,所述报头提取子模块提取飞机故障报文的报头,作为报文的属性之一保存在内存表提交子模块中;所述报文类型提取子模块提取飞机故障报文的报文类型,作为报文的属性之一保存在内存表提交子模块中;所述飞机故障/维护消息内容分析子模块解析出飞机故障报文中飞机故障/维护消息字段,并将其保存在内存表提交子模块中;所述内存表强制字段更新子模块中的内存表强制字段包括数据库索引号、飞机号、航班号和时间戳,其中,数据库索引由数据库模块自动生成,用于完成数据唯一性参照与检索加速;时间戳由解码器主机时钟年月日与报文的路由时间时分组成,用于标识飞机故障报文时间信息的完整性;飞机维护代码详细内容获取子模块以所述飞机故障/维护消息内容分析子模块输出的飞机维护代码为输入条件,经过所述飞机维护代码描述内容获取子模块与所述飞机维护代码维护建议内容获取子模块从数据库模块中获取预先定义的与飞机故障报文中的飞机维护代码对应的详细描述与维护建议,保存在内存表提交子模块中;所述飞机故障代码详细内容获取子模块以所述飞机故障/维护消息内容分析子模块输出的飞机故障代码为输入条件,从数据库模块中获取预先定义的与飞机故障报文中的飞机故障代码对应的详细描述,保存在内存表提交子模块中。
5.根据权利要求4所述的飞机故障信息实时订阅系统,其特征在于:所述报文解码广播子模块在一条飞机故障报文被成功解码后自动执行,向所述报文解码信使模块发送报文解码消息戳,所述报文解码信使模块收到报文解码消息戳后向所述报文解码广播子模块发送应答字,若报文解码广播子模块在设定的时间间隔内未收到来自相应IP地址的报文解码信使模块发送的应答字,则判定此IP地址上的报文解码信使模块已停止工作,将不再向其发送报文解码消息戳,直到收到一个新的来自该IP地址的报文解码信使模块发送的应答字。
6.根据权利要求5所述的飞机故障信息实时订阅系统,其特征在于:所述UDP服务子模块主要由监听器子模块、应答字发送子模块、报文属性包生成器启动子模块和应答字心跳启动子模块组成,所述监听器子模块分别与应答字发送子模块、报文属性包生成器启动子模块和应答字心跳启动子模块连接,所述报文属性包生成器启动子模块还与应答字发送子模块连接,监听器子模块启动后,监听在位于主机IP地址上的由系统管理预先指定端口上,通过应答字心跳启动子模块启动应答字心跳子模块,并通过应答字发送子模块向报文解码模块发送第一个应答字,随后进入报文解码消息戳的监听状态;所述监听器子模块接收到报文解码消息戳后,通过应答字发送子模块向报文解码模块发送应答字,随后将报文解码消息戳输入到报文属性包生成器启动子模块,启动报文属性包生成进程;所述应答字发送子模块在每次报文解码消息戳被监听器子模块收到后由报文属性包生成器启动子模块调用,向报文解码模块发送应答字。
7.根据权利要求6所述的飞机故障信息实时订阅系统,其特征在于:所述应答字发送子模块向所述报文解码模块发送第一次应答字失败,其将自动再尝试发送第二次和第三次,若三次发送全部失败,其将自动抛出异常到系统日志中。
8.根据权利要求7所述的飞机故障信息实时订阅系统,其特征在于:所述数据库模块储存的结构化数据包括动态数据和静态数据,所述动态数据由报文解码模块解码飞机故障报文结构化数据自动更新,即飞机故障报文结构化数据样本在结构化解析后保存在飞机故障报文动态数据表中;所述静态数据包括飞机故障报文解码完整性补充数据和订阅支撑数据。
9.根据权利要求8所述的飞机故障信息实时订阅系统,其特征在于:所述报文订阅模块包括系统启动子模块、自动服务子模块和用户订阅操作界面子模块,订阅用户登录成功后,经过系统启动子模块启动,自动服务子模块和用户操作界面子模块各自运行在独立的线程空间,所述自动服务子模块主要由飞机故障报文属性包处理子模块和邮件推送子模块组成,所述飞机故障报文属性包处理子模块与报文解码消息队列模块连接获取飞机故障报文属性包,所述飞机故障报文属性包处理子模块通过应用模块和数据库模块连接,与数据库发生双向数据交互,生成订阅邮件推送内容,经过所述邮件推送子模块将邮件推送内容推向邮件发送模块;所述用户订阅操作界面子模块供用户完成飞机故障信息的订阅操作,形成订阅条件被保存在数据库模块中。
10.根据权利要求9所述的飞机故障信息实时订阅系统,其特征在于:所述飞机故障报文属性包处理子模块主要由消息分配器子模块和飞机故障报文下载器子模块组成,所述消息分配器子模块将飞机故障报文属性包写入本地缓存,本地缓存写入成功后,随即启动解析格式飞机故障报文下载任务接口和源格式飞机故障报文下载任务接口,同时,根据飞机故障报文属性包ID获取订阅邮件接收地址清单,将清单送入订阅客户端邮件发送任务接口与订阅服务器端邮件发送任务接口,由邮件推送子模块完成订阅邮件的推送;所述飞机故障报文下载器子模块下载解析格式飞机故障报文或者源格式飞机故障报文。
11.根据权利要求10所述的飞机故障信息实时订阅系统,其特征在于:在所述用户订阅操作界面子模块上进行飞机故障信息的订阅操作,包括订阅创建、订阅修订和订阅克隆/撤销。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011385976.7A CN112702386B (zh) | 2020-11-30 | 2020-11-30 | 一种飞机故障信息实时订阅系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011385976.7A CN112702386B (zh) | 2020-11-30 | 2020-11-30 | 一种飞机故障信息实时订阅系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112702386A CN112702386A (zh) | 2021-04-23 |
CN112702386B true CN112702386B (zh) | 2024-05-24 |
Family
ID=75506616
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011385976.7A Active CN112702386B (zh) | 2020-11-30 | 2020-11-30 | 一种飞机故障信息实时订阅系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112702386B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113542415B (zh) * | 2021-07-16 | 2022-05-24 | 哈尔滨工业大学 | 基于可配置订阅链的异构数据资源调度系统及方法 |
CN113825038B (zh) * | 2021-07-26 | 2023-06-20 | 中国南方航空股份有限公司 | 一种飞机发动机高级振动监测装置 |
CN114913621A (zh) * | 2022-06-30 | 2022-08-16 | 奇瑞汽车股份有限公司 | 一种实车网络信号采集系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104023020A (zh) * | 2014-06-13 | 2014-09-03 | 中国民航信息网络股份有限公司 | 针对移动设备的TypeB报文订阅推送系统及相应方法 |
CN105843906A (zh) * | 2016-03-23 | 2016-08-10 | 中国商用飞机有限责任公司 | 一种用于飞机实时空地数据的收发和处理的系统 |
CN106569801A (zh) * | 2016-10-18 | 2017-04-19 | 中国运载火箭技术研究院 | 一种基于复杂参数的组态化显控系统 |
CN108306980A (zh) * | 2018-03-06 | 2018-07-20 | 北京工业大学 | 一种机务飞行保障大数据日志分析系统 |
CN111470047A (zh) * | 2020-02-28 | 2020-07-31 | 中国南方航空股份有限公司 | 一种民航飞机引气和/或空调系统健康监控方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160344745A1 (en) * | 2006-09-25 | 2016-11-24 | Weaved, Inc. | Method and protocol for secure device deployment using a partially-encrypted provisioning file |
-
2020
- 2020-11-30 CN CN202011385976.7A patent/CN112702386B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104023020A (zh) * | 2014-06-13 | 2014-09-03 | 中国民航信息网络股份有限公司 | 针对移动设备的TypeB报文订阅推送系统及相应方法 |
CN105843906A (zh) * | 2016-03-23 | 2016-08-10 | 中国商用飞机有限责任公司 | 一种用于飞机实时空地数据的收发和处理的系统 |
CN106569801A (zh) * | 2016-10-18 | 2017-04-19 | 中国运载火箭技术研究院 | 一种基于复杂参数的组态化显控系统 |
CN108306980A (zh) * | 2018-03-06 | 2018-07-20 | 北京工业大学 | 一种机务飞行保障大数据日志分析系统 |
CN111470047A (zh) * | 2020-02-28 | 2020-07-31 | 中国南方航空股份有限公司 | 一种民航飞机引气和/或空调系统健康监控方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112702386A (zh) | 2021-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112702386B (zh) | 一种飞机故障信息实时订阅系统 | |
CN104536899B (zh) | 一种基于智能集群的软件部署及其维护方法 | |
US8868601B2 (en) | Distributed file system logging | |
US7483898B2 (en) | System and method for auditing a network | |
CN103944924A (zh) | 一种基于RESTful的泛在网发布订阅中间件模型 | |
CN110046041B (zh) | 一种基于celery调度框架的数据采集方法 | |
JP2001188765A (ja) | 分散コンピューティング環境で複数の関係する障害を表す障害情報を参照する技法 | |
US20070078943A1 (en) | Message based application communication system | |
US20080059436A1 (en) | Providing a visual representation of a sub-set of a visual program | |
CN109450693A (zh) | 混合云监控系统及使用其的监控方法 | |
US20080140829A1 (en) | Test Flight On-Board Processing System And Method | |
US20120254337A1 (en) | Mainframe Management Console Monitoring | |
EP4379554A1 (en) | Data processing method and apparatus, and device, storage medium and program product | |
US20090063395A1 (en) | Mapping log sets between different log analysis tools in a problem determination environment | |
US20180006902A1 (en) | Network workflow replay tool | |
Ogle et al. | Canonical situation data format: The common base event v1. 0.1 | |
CN114531479A (zh) | 一种基于mqtt的通用数据采集系统 | |
CN113342769A (zh) | 一种统一日志记录工具、方法、存储介质及设备 | |
Shkuta et al. | Comparative analysis of tools for the integration of IT systems: Narzędzia do integracji systemów informatycznych-analiza porównawcza | |
Wang et al. | Formal verification method for configuration of integrated modular avionics system using MARTE | |
KR102668325B1 (ko) | 인터페이스 관리 방법, 인터페이스 거버넌스 시스템, 및 인터페이스를 관리하는, 컴퓨터로 실행가능한 프로그램을 저장하는 저장매체 | |
KR102669668B1 (ko) | 인터페이스 관리 방법, 인터페이스 거버넌스 시스템, 및 인터페이스를 관리하는, 컴퓨터로 실행가능한 프로그램을 저장하는 저장매체 | |
Pardo-Castellote | Data-Centric Programming Best Practices: Using DDS to Integrate Real-World Systems | |
US20240289201A1 (en) | System, method, and non-transitory computer-readable media for providing cloud application fault detection | |
CN114331352B (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 |