首页 文学文摘 时政新闻 科技科普 经济法律 健康生活 管理财经 教育教学 文化艺术 社科历史

民航协同决策平台业务监控客户端的设计与实现

作者:张宇灏 李云鹏 谷叶 来源:电子技术与软件工程

摘 要

当前华东地区的航班协同决策系统已经进入性能提升与功能扩展的阶段,各地的部署工作也在有序展开。因此运维与监控人员急需一套能够对现有庞大系统进行业务监控与硬件监控的综合监控平台。通过实现与监控服务器端的通信接口、并综合考虑了监控人员的实际需要,本文实现了与现有监控服务器互通的客户端程序,实现了对数据的远程监控与实施显示、告警等功能。

【关键词】LabviewCS 架构 FSM

为了应对逐渐增加的航班压力与准点率要求,当前民航系统正在大力建设基于海量数据的航班协同决策系统。这就要求系统将原本分散在异地、不同系统之间的信息进行高效的转化与集中计算。这对传统的运维模式与运维监控软件带来了不小的挑战。

为了解决设备运行状态、业务处理状态以及数据传输状态的监控问题,并为监控人员提供一套兼具实时性、扩展性与可定制性的监控软件,本文综合考虑了当前华东区协同决策系统的业务数据传输组件与设备部署情况,根据现有监控服务器端的数据接口与部署情况,设计并实现了监控客户端程序。

1 运行条件与要求

1.1 现有服务器端运行情况

协同决策系统平台在设计上实现了基于中间件技术的数据总线结构,各个子系统通过实现中间件的数据接口可以实现子系统之间的数据交互。这种扁平化的网络部署结构具有易于扩展以及使异构操作系统对用户透明的优势。监控服务器端通过订阅中间件中的业务topic实现对业务数据的收集;通过snmp协议实现对物理设备的监控;并将监控结果通过定制的中间件topic发送至数据总线。因此对于监控客户端来说,一是需要实现与监控服务器端的数据交互协议,即可接收服务器端传来的数据;二是实现底层中间件的数据通信,以实现扁平化扩展。

1.2 客户端运行要求

(1)实现与数据总线(中间件)之间数据通信接口;并实现与监控服务器端之间的数据交互协议。

(2)保证被监控数据的实时性与准确性;对需要产生告警的监控信息能够即时给出明显的警告提示。

(3)提供历史数据请求查询接口。

(4)提供一定的安全性检验。

(5)当业务需求变更时可以方便的进行业务配置以适应新的监控要求。

(6)为了便于在华东区进行部署,采用瘦客户端以减轻监控客户端主机的硬件要求。

2 系统设计与实现

2.1 监控系统间通信设计

2.1.1 数据传输过程

客户端与服务器端的数据封装传输过程如图1所示。从服务器端发送的数据经由底层中间件传输链路发送至客户端底层队列,并由上层进行解封装与有效性检验等操作。每一层负责自己部分的数据处理与传输工作,并对上层提供数据接口。

2.1.2 中间件接口定制

客户端订阅服务器端的数据发送topic以及向服务器端进行查询的topic如表1所示。

2.1.3 输入安全性检验

对于输入信息进行范围、长度以及特殊字符的检验以防止SQL注入的发生。

2.2 客户端监控模式设计

监控数据存在周期发送与突发发送两种类型。由于出现异常状况时,系统会在短时间内接收到大量的告警信息,容易造成接收端瞬时接收与显示压力。因此在客户端的应用层采用topic缓存队列以及消息(事件)触发机制:接收线程在空闲时自动处于等待状态,直到有消息进入中间件的接收队列。检测到队列深度变化后缓存队列自动将消息逐条读取与解析,并缓存入队列以等待下一个界面数据刷新周期进行显示。这样就有效防止了底层中间件队列溢出导致的数据丢失、以及数据处理与显示时间不够的问题。本文采用有限状态机(FSM)图描述客户端的监控处理模式。

图2显示的是客户端启动后的状态变化图:当程序启动,系统会启动一个定时器用于握手信号的确认。当握手信号获得确认或计数器超过设定阈值后,客户端进入等待数据状态。在该状态下系统仅对有效的接收信息进行响应。根据是否为查询返回值以及监控对象是否有效,数据将被推送至不同的待处理队列。

图3显示的是客户端信息显示区的状态变化图。显示区与后台处理为两个不同的线程,采用的也是事件响应机制。对于不同的监控内容,模块会监听不同的信息队列。当收到有收到新的数据时会对数据进行冗余校验,然后对通过校验的数据执行不同的处理逻辑。

2.3 监控功能实现

综合考虑软件开发难度、中间件支持情况、以及客户端部署工作量,本文采用Labview编写监控客户端显示界面与后台程序。采用该语言的优势如下:

(1)NI公司对Labview提供了对于多种中间件技术的支持模块,经过简单的二次开发即可实现底层的数据交互接口。

(2)Labview是基于线程的语言,多个循环控制框可以并行运行。对于客户端消息接收队列以及消息驱动的处理逻辑,非常适合多线程处理。

(3)Labview提供图像化的编程形式,内置了多种常用的数据显示方案,采用数据流的概念解决程序中的数据传递过程。此外,软件功能的模块化与图形化也易于客户端后续的功能扩展与管理。

(4)Labview 的运行环境较小,也内置提供了程序打包工具,方便后续的软件部署。

后台程序采用典型的多线程设计方法;线程之间采用队列与通知器模块实现数据的传递,并使用计时器控制数据传输速度。数据的解析部分先读取接收数据内的类型信息,再将数据分发到对应的处理队列中。

显示模块与后台数据接收与处理模块耦合度低,后台数据根据版面刷新计时器的设定时间准备好待显示的数据,并通过队列向显示模块推送数据。

2.4 客户端功能与性能

(1)计算机设备监控界面提供了对于被监控对象的状态跟踪显示、历史数据查询、以及异常信息告警功能;在主界面上还提供了对各监控对象的当前运行状态的统计数据、以及异常信息的逐条显示功能。

(2)当需要对业务功能进行拓展时,可以在解析部分添加新的解析规则与新的结果簇,后台处理线程能够自动匹配新的规则与变量;当需要调整显示模块的布局时,由于Labview可以对变量直接指定显示方法,因此降低了调整显示布局的难度。

(3)后台处理队列最快支持每秒约500条的数据解析能力;并且每个子监控界面的后台程序可缓存至少1000条已解析的数据。

3 结语

本文综合考虑了华东区协同决策系统的监控客户端程序的设计需求与条件,设计并实现了监控客户端与服务器的通信接口、监控逻辑、以及前后台程序,并为监控人员对华东地区协同平台内的硬件与业务情况提供了整合性的监控显示。

参考文献

[1]LabVIEW 宝典[M].北京:电子工业出版社,2011.

[2]Blume P A.The LabVIEW style book[M]. Pearson Education, 2007.

[3]张剑.民航网络设备监控系统设计[D]. 吉林大学,2007.

[4]Kurose,James F.,and Keith W.Ross. Computer Networking:A Top-Down Approach:International Edition. Pearson Higher Ed,2013.

作者简介

张宇灏,现为中国民用航空华东地区空中交通管理局助理工程师。主研领域为计算机软件技术。

李云鹏,现为中国民用航空华东地区空中交通管理局工程师。

谷叶,现为中国民用航空华东地区空中交通管理局助理工程师。

作者单位

中国民用航空华东地区空中交通管理局 上海市 200335