龙源期刊网航班时刻分布式计算系统的设计与实现作者:姚笛陈晓建韩剑峰张宇灏来源:《电子技术与软件工程》2015年第16期摘要现阶段是我国民航业快速发展的时期。民航系统需要解决航班流量增加、航班准点率要求提高、以及未来系统扩容性等问题。为此采用分布式架构与中间件技术,基于现有的业务流程与数据处理需要设计了航班时刻计算系统。实验表明该系统能够处理由当前运行系统引接的实际航班数据,并在航班高峰期表现稳定。系统解决了计算任务分派、异构系统信息通讯、系统数据同步、以及并发数据访问瓶颈等问题,提高了现有民航系统的运行保障能力。【关键词】分布式计算航班时刻计算MQ中间件当前,我国民航运输业正迎来一段快速建设与发展的黄金时期,航班流量的增加以及旅客对航班准点率的要求都对现有民航信息收集、处理与发布能力提出了更高的要求。民航为此投入大量人力物力决心建成一个高效、可靠、互联的航班信息网。然而在建设过程中,民航实时数据量巨大、信息提供方网络物理连接带宽有限、以及传统系统互不相连的客观条件对系统的计算速度与数据搜索能力提出了巨大的挑战,传统的具有中心节点的数据存储与计算结构已经难以应对高速增长的海量数据即时处理任务。同时,航班信息系统必须保证24小时不间断地可靠运行,当系统局部出现问题时仍可以继续提供航班信息等安全性要求也是系统安全冗余机制必须考虑的问题。针对这些情况,本文综合考虑民航行业的数据分布特点、计算需求、以及地域限制,研究并提出了一种基于分布式计算技术的航班时刻计算系统与数据库部署结构,采用中间件技术解决了分布式计算过程中的数据交互与传输问题,并通过运行数据进行实验,验证了系统运行的可靠性。1运行条件分析航班时刻计算涉及到以下数据:天气数据、航路数据、机场限制、航空公司限制等,最终形成的有效航班时刻需要同时满足复数的航班约束条件。因此航班时刻计算系统需要考虑如下问题:(1)为了提供更加准确的航班信息作为空域管制的决策依据,系统应具备综合处理雷达、电报、地方机场等引接数据的能力,并能给出多制约条件下的航班通行窗口以供决策。(2)为了保障民航系统数据传输的安全、可靠与高效,当前民航信息网络具有专门的信息传输线路。然而随着航班数量的增加,异地数据传输的带宽限制成为了制约系统实时性的瓶龙源期刊网颈。在当前的数据链路条件下,系统应能够最大化地利用传输带宽,减少由于传输阻塞而导致的信息缺失。(3)影响航班准点的因素很多,包括航空公司计划、空中交通流量限制、机场突发事件、天气变化等。系统应能够实时跟踪引接数据的变化,及时响应不同部门的数据添加与修改要求,并能够缓存大量并发的数据请求。现有民航信息网在物理上实现了各地方分局站与华东空管局之间的互联。因此本系统应能够挂接到已有的民航网络以实现信息共享,并以标准化的格式传输数据。2系统设计及实现2.1系统设计概述当前民航系统内并行存在异构的业务系统、数据库系统以及外部引接系统。传统的C/S架构采用中心服务器连接多客户端的星型结构,对于跨平台、跨区域的支持较弱,且中央节点容易出现数据处理瓶颈,因此难以支持本系统的现有运行条件。参考现有的B/S结构的分布式系统,我们设计了基于组件思想的分布式架构,并采用中间件技术解决了异构系统之间的通信问题。其优点如下所述:(1)支持并行处理请求,将局部的大量数据计算分派到远程系统,防止单一系统资源的过度使用。(2)将业务功能拆分成许多功能组件(服务),并部署到相联系的硬件环境,从而实现异地系统组件的高效复用。(3)通过中间件技术,实现在不同系统之间的消息通信与数据传输。由此可以减少系统解析不同格式数据的开销,在操作时也无需考虑系统差异导致的接口问题。(4)组件化的服务调用确保了局部计算节点出现故障或超时未响应时可以将计算转到异地进行,而不会产生业务中断。2.2业务架构设计系统需要根据业务需求从数据库中读取公共数据,并执行相关的业务逻辑处理与分析。为了实现分层化与组件化的目标,我们在业务架构上将运行系统分为用户应用层、公共信息管理层以及公共数据传输层。业务架构如图1所示。其中用户应用层主要面向客户,提供客户端程序的显示与操作接口,并对不同的用户发布定制化的界面显示与功能操作。主要包括数据统计分析、数据维护、流量日志管理、管制数据维护等基本功能。龙源期刊网公共信息管理层实现了业务数据的处理与分析,并向用户应用层提供订阅的业务消息。其业务模块包括雷达数据处理、电报数据处理、机场数据处理、气象数据处理等。数据与消息的传输采用中间件技术以屏蔽异构系统与数据格式的差异。公共数据传输层主要包括系统数据库以及数据传输链路。为了挂接现有的民航系统,本系统的数据库直接采用原有的中心数据库,并采用一定的措施与算法分发数据。引接的数据包括气象、航班情报、航路情况、航班流量、航班限制等数据。2.3系统总体设计2.3.1系统架构设计航班时刻计算业务涉及到不同的数据同步、任务发布、任务实时性、以及非本地化策略。因此系统的部署结构需要适应复杂的工作环境,并具有足够的扩展性以支持民航发展的需求。我们参考了典型的分布式应用架构,按照图2所示的系统架构部署了系统的运行环境。其中客户端由直接相连的业务服务器提供具体的业务推送,主要负责简单的显示与操作逻辑并能够进行基本的数据筛选;业务服务器主要负责将业务分解成基本的任务单元,并调用远程服务器的资源进行并行处理;远程服务器直接读写数据中心的数据库,完成所接收的业务计算要求。(1)设计上考虑了网络A中本地、异地数据链路的物理限制,将大量的计算任务分配到网络相连的机器上,从而突破了客户端数据传输的瓶颈。(2)将数据中心的不同业务数据实时推送到不同的业务数据库以保证系统整体的数据一致性;数据推送的方式缓解了并发数据访问的压力。(3)将计算资源集中化以提升运行效率。在功能分组阶段,将服务器的基本任务功能与本地缓存数据相匹配;本地缓存根据不同的实时性要求,定时读取业务数据库的内容。2.3.2业务通信设计民航系统在可靠性与安全性方面有很高的要求。具体到本业务系统来说,在大量终端请求的情况下应做到业务消息与数据的可靠传输,确保不影响终端设备的正常使用;根据不同的数据实时性需求确定不同的数据同步策略:对于实时性要求高的业务保证数据的实时同步,对于实时性要求较低的则保证数据的异步同步;远程计算资源的分配与调用应遵循统一的规则以确保安全与效率;当出现系统局部异常时通过快速切换到冗余或新节点的方式减少对实际运行的影响。本系统使用IBM公司开发的MQ中间件以保证系统的跨平台性以及进程间的数据通信功能,其消息队列模式对于保证大量并发业务请求具有良好的处理结构。其结构如图3所示。龙源期刊网系统中消息队列模式主要用于控制业务与数据流:发送端将待传输的数据与消息统一放入DataQueue与BusinessQueue后,MB根据预先设定的规则动态搜索、路由到接收方后,再由接收方的接收队列读取。系统根据不同的业务层级设计了不同的处理规则:(1)对于业务服务器,其消息队列主要用于业务分发与数据接收;服务器需要额外维护业务与数据路由表,从而实现对业务分配以及调用情况进行实时记录与监控。为了确保业务可靠性,接受到任务的服务器将发送任务接受应答以提示连接可靠;当发生远程服务器长时间未应答(noreply)时,业务服务器将检查现有网络情况,并进行动态的任务再分配。(2)对于部署了不同功能模块的被调用服务器,消息队列主要用于数据传输与模块间通信。该部分数据队列具有较大的数据读写压力,因此采用多接收队列的配置方式,并设置多队列冗余发送以确保不丢失数据;业务队列主要提供本服务器的数据库连接信息与业务协调信息,并根据任务的优先级与数据实时性要求与其他服务器协调模块调用进程。2.4系统冗余设计为确保系统业务执行功能的安全性与健壮性,我们在多个层面设计了部署措施:(1)业务服务器采用双机冗余作为系统热备,正常运行时相同配置的消息队列同时接受订阅的消息并执行本地处理;当一套服务器出现故障或通信失效时可以立即切换到正常工作的机器。(2)在业务服务器端添加缓存数据库,当网络状态出现故障或时延时,客户端可以在一段时间内继续执行部分业务查询与操作以减少运行影响;系统将缓存期间的数据库操作,当网络恢复后再执行数据同步。(3)采用中心数据库向业务数据库同步数据的方式作为数据库的存储备份。业务数据库接收任务服务器指定的数据读取策略,可以选择被动推送方式或主动订阅的方式接受数据。2.5与现有系统连接本系统能够在不改变现有民航信息网络结构的情况下实现系统挂接。如图4所示。从结构上来说,本系统的客户端服务器与业务服务器直接挂接在现有的ESB总线上,通过远程消息实现系统的运转;业务数据库与业务服务器协同部署,从而实现计算模块与数据的聚合;以ESB总线为中心的扁平化的部署结构具有很好的业务拓展性,也为远程服务访问提供了统一接口。3系统实验3.1实验方法龙源期刊网本航班计算系统作为实际运行上线系统,需要包含上线前的仿真实验以及上线后的运行实验。仿真实验阶段先采用轻量级部署的小系统,并引接部分运行数据以验证系统的可操作性与数据传输性能;待系统性能稳定后逐渐增加实验硬件与数据量,以模拟实际运行条件。本阶段需要确认数据引接是否都正确以及数据处理准确性。运行实验前期系统部署在实际工作环境,与现有系统并行工作,从而对比验证系统是否具备与原有系统相当的处理能力与操作规范;实验后期替换原有系统独立运行,与使用者的操作流程进行磨合。本阶段需要确认系统具备7x24小时不间断稳定运行的能力,并能够应对华东地区平时的一般流量情况数据,以及高峰时期大量的数据处理任务。3.2实验条件3.2.1仿真实验仿真实验采用实际运行的现场运行环境以达到全真模拟,仅在机器数量以及系统复杂度上进行缩减。详细的运行环境如表1所示。仿真实验期间,系统引接上海两场的部分航班数据进行计算,并与原运行系统的结果进行同步比较已验证系统的基本运行能力。表3:仿真实验期间上海机场起降架次(2014年)月份范围本期完成1上海合计536552上海合计479743上海合计522884上海合计538255上海合计544796上海合计529667上海合计571678上海合计58423龙源期刊网运行实验为了使本系统在民航流量快速增长时期仍能够长期稳定运行,在系统配置时采用较大的余量,并使用实际运行数据进行实验。实验时间为2014年1月至11月,前期先在上海本地两场现场运行,后期逐渐开始引接华东地区机场数据。实验期间上海及华东地区机场起降架次如表4所示。表4:运行实验期间华东机场起降架次(2014年)月份范围本期完成1华东合计1639782华东合计1553533华东合计1706674华东合计1753945华东合计1776316华东合计1686447华东合计1833018华东合计1871279华东合计17907210华东合计18457211华东合计178234运行实验期间系统对7至10月的高峰期表现出较稳定的运行状态,并能提供准确的航班计算数据。龙源期刊网结果分析通过两次运行试验,分析得出如下结论:(1)实验期间系统前期存在一个逐渐磨合与修正业务细节的过程。实验后期系统较好地完成了对于华东地区航班的时刻计算任务,并提供了相较于原有系统更好的数据收集、信息整合以及排班策略功能。(2)通过7x24小时,长达11个月的运行实验,验证了系统长期稳定运行的能力,并具有足够的运算能力。实验结果验证了该系统能够胜任华东地区的流量增长需求,并提供了更加稳定与高效的系统运行处理能力。4结语本文介绍了航班时刻分布式计算系统的系统架构设计与