基于MQ/MB平台的空管系统架构设计与应用

来源 :软件工程师 | 被引量 : 0次 | 上传用户:coolhongchacool
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:为了应对航空运输高速发展态势给我们空管带来的挑战,空管系统的建设方向应随着业务的发展及业务模式的改变提出前瞻性的建设规划。就空管信息系统建设而言,大数据集中处理、信息协同共享、分布式构架已经是建设的趋势。针对空管系统结构的合理规划,架构设计是重中之重,在保证安全性、稳定性的前提下还需考虑到整体系统可扩展性、前瞻性;本文使用IBM Websphere MQ V7.0、MB V7.0消息中间件来有效的构建整体系统的架构平台,并通过示范应用有效的验证了该方案的可行性,符合未来空管系统建设发展的要求,同时也为其他类似系统的建设提供了一种可行的解决方案。
  关键词:MQ;MB;中间件;发布订阅;路由
  中图分类号:TM923.5 文献标识码:A
  1 引言(Introduction)
  通过近几年对空管系统的研发和投产的实践来看,实际的管制用户需求不再局限于传统的航班计划、动态、统计等信息的获取上,而是强调围绕航班对象为目标、涉及整个航班生命周期管理中的各类信息的产生和使用,这对空管而言是一个全新的课题。
  在当前IT水平高速发展的形式下,各个领域的信息化建设都是朝着大型的、集约式的、平台化的模式发展,建立集中数据处理中心,为各种专业化的生产系统提供数据服务。
  未来空管系统的建设方向应随着业务的发展及业务模式的改变提出前瞻性的建设规划,而不是一味被动式进行系统改造、升级及新建,最后形成的局面将是用户和维护人员面前一堆屏显、系统与系统之间盘枝错综、系统本身也是一大堆补丁。国外的民航系统的建设和实践及国内近期的建设理念已经给了我们很大的参考和思路,并且当前的业务发展方向(未来10—20年)也是可预见的,就信息系统建设而言,数据大集中处理,信息协同共享、分布式部署应用已经是建设的趋势。
  针对空管系统结构的合理规划,架构设计是重中之重,在保证安全性、稳定性的前提下还需考虑到整体系统可扩展性、前瞻性;本文使用IBM Websphere MQ V7.0、MB V7.0消息中间件来有效的构建整体系统的架构平台,使得系统升级灵活,兼容新老系统过渡,并使用基于内容的消息路由,提供发布订阅通信模式以满足动态需求,提供点对点通信模式满足高可用,既能满足强时序性又能提供分布式,也提供负载均衡模式,以适应未来空管系统的构建和发展。
  2 系统平台需要解决的问题(To solve the problem
  of system platform)
  伴随着世界经济的发展,国际航空运输量在21世纪初有了大幅度的增加,以信息、通信技术为代表的新科技的广泛应用,使空中交通运输和世界经济领域的其他活动一起形成了快速全球化的发展态势。国际民航组织(ICAO)提出“全球空管运行”的新概念,其主要特点是建立共享、交互集成平台,使民航运输参与各方在安全的前提下,提升系统绩效。在此概念基础上,世界许多国家依据自身情况和未来预期开始规划和建立新一代空中交通管理系统,以适应新趋势的发展要求。为了应对航空运输高速发展态势给我们空管带来的全面挑战,除了全面提升传统的保障能力外,还必须加快新技术、新系统的研究和应用,同时还必须逐步把飞行信息服务功能拓展和延伸到各航空相关保障和服务单位。因此,在信息化系统变迁的过程中,传统的系统设计架构已难以适应空管大型运行系统的设计要求,新的系统架构应解决以下问题:
  (1)兼容新老系统过渡,系统升级灵活
  把未来的新信息系统有机地包容到现有系统中,使现在和未来能自然而有机地结合在一起,实现新老系统的无缝过渡。
  (2)可靠的、标准化的通信交互模式
  空管的系统种类繁多如电报、雷达、气象、情报、飞行计划等,不同系统的信息交互格式、方式差异很大,无法进行有机地整合,新系统架构平台应提供一套统一、完善、准确的数据交互规范,并从可靠性、安全性、冗余性等方面充分考虑。
  (3)减少系统之间的复杂度
  面对现有系统“点对点”式的系统架构,若想要增加或移除一些应用功能,真可谓“牵一发动全身”,举步维艰,所以新系统架构就需要具备松耦合,灵活扩展的特点,减少整体系统的复杂度。
  (4)使系统之间交互模式由数据共享向服务共享转化
  类似于硬件的虚拟化概念,其基础无非就是设备群、数据群、服务群等一层层向上,最终用户并不知道数据源在哪里、那台设备正在为其服务、那个应用服务正在相应他的操作。系统架构平台上的每个子系统或应用模块仅将业务专业部分的功能做专做精,通过服务的订阅能够消费其他系统应用功能服务,降低开发成本和资源。
  结合以上问题我们希望能够利用一种成熟、有效的中间件技术,加以二次开发,根据空管业务实际特点,构建一套科学、合理的系统架构平台设计方案,本文选取了IBM Websphere MQ V7.0、MB V7.0消息中间件来有效的构建整体系统的架构平台,并通过实践应用以验证其可行性,为空管系统的建设和发展提供技术依据和服务。
  3 WebsphereMQ MB的概述(Overview of
  WebsphereMQ MB)
  MQ(Message Queue)是IBM消息中间件的一款拳头产品,目的是使得任意两个分布式进程之间能够异步可靠的进行消息传输。MQ是一种以自己的复杂来换取企业应用简单化的基础平台软件。MQ能够支持目前绝大多数的操作系统,Unix、Linux、Windows等,也提供丰富的编程接口(API)包括VB、C、C 、C#、Java、JMS等。MQ提供了基于消息队列的存储转发机制,在7.0版本之后也提供了较为完善的基于主题的发布订阅机制[1]。
  MB(Message Broker)是在MQ的基础上发展出来的企业服务总线,其能完成各系统之间的联通性,提供方便的格式转换,具备可配置可编程的智能路由,且能支持基于内容的发布订阅机制。MB安装部署简易,在开发部署上提供友好的图形化界面,通过拖放标准化组件能够快速编程,使用ESQL能够完成简易的逻辑,也可同使用Java来完成复杂逻辑编程。MB支持广泛的通信协议,包括MQ、JMS、HTTP、WebServices;支持广泛的数据格式例如XML、SOAP、CSV、Binary等;无缝集成标准商业数据库Oracle、DB2、SQL Server等[2]。   如果把MQ比作网线,那么MB就相当于路由器,除了有MQ端口之外,还有各种各样的其他接入端口。使用MQ这种业界成熟的消息中间件产品,和MB这样领先的企业服务总线[3],使得我们能快速的解决信息孤岛的问题。
  MQ支持目前主流的两种消息方式,既点对点通信(PTP)与发布订阅通信(Pub/Sub)[4]。
  4 MQ/MB在空管系统中的应用(Application of
  MQ/MB in air traffic control system)
  航班运行协同决策(CDM)系统是民航发展背景下应运而生的新生空管信息系统,其是基于资源共享和信息交互的多主体(空管、机场、航空公司等)联合协同运行的理念,用于创造透明、高效的航班运行环境,是科学管理和决策航班机场放行,提高航班运行正常率的有效技术手段。在该系统中我们将基于MQMB平台的搭建新的系统架构,作为整个系统的基石。
  4.1 基于MQ的设计与应用
  4.1.1 模型设计
  新建协同决策集成平台(MQ: QM_CDM_MEP_01)用于连接各机场,各航空公司,还有现有的空管信息集成平台(MQ: MQ_ATC_MEP_01),关系如图1所示。
  针对每个系统为其创建两个队列,一个是输入队列,一个是输出队列,队列的命名规则为ATC/APT/CMP.XXXX.IN.LQ/RQ/TQ与ATC/APT/CMP.XXXX.OUT.LQ/RQ/TQ,ATC开头表示空管,APT开头的表示机场,CMP开头的表示航空公司,XXXX表示空管系统名称、机场代码、航空公司代码,IN表示输入队列,OUT表示输出队列,LQ表示本地队列,RQ表示远程队列,TQ表示传输队列。
  而协同决策平台与现有的空管信息集成平台之间通过建立发送方通道与接收方通道来连通。通过远程队列访问对方的本地队列,其中远程队列要访问对端的本地队列需要先通过传输队列。而传输队列又通过自己的发送方通道将消息发送到远端对应的接收方通道。
  首先创建一个队列管理器,命名为QM_CDM_MEP_01。
  以下给出部分创建命令。
  在CMD控制台上,使用命令RUNMQSC QM_CDM_MEP_01连接该队列管理器。
  #创建本地队列
  DEFINE QLOCAL(APT.ZSPD.IN.LQ)
  DEFINE QLOCAL(APT.ZSPD.OUT.LQ)
  ……
  #创建传输队列
  DEFINE QLOCAL(ATC.CDM.OUT.TQ)USAGE(XMITQ)TRIGDATA(TO.QM_ATC_MEP_01)INITQ(SYSTEM.CHANNEL.INITQ)
  #创建远程队列
  DEFINE QREMOTE(ATC.CDM.OUT.RQ)RNAME(CDM.MEP.LQ) RQMNAME(QM_ATC_MEP_01)XMITQ(ATC.CDM.OUT.TQ)
  #创建服务器连接通道
  DEFINE CHANNEL(SVRCONN)CHLTYPE(SVRCONN)
  #创建发送方通道
  DEFINE CHANNEL(TO.QM_ATC_MEP_01)CHLTYPE(SDR)CONNAME(‘QM_ATC_MEP_01的IP地址(侦听端口号)’)XMITQ(ATC.CDM.OUT.TQ)
  #创建接收方通道
  DEFINE CHANNEL(TO.QM_CDM_MEP_01)CHLTYPE(RCVR)
  在空管信息集成平台中也需创建对应的发送方通道与接收方通道(方法同上)
  4.1.2 验证测试
  (1)通信测试
  测试两个队列管理器之间的通信。先启动QM_CDM_MEP_01中的发送方通道TO.QM_ATC_MEP_01,然后在ATC_CDM_OUT_RQ中手动放入测试消息,放入成功后,在QM.ATC_MEP_01队列管理器中的CDM.MEP.LQ队列中就能看到刚才放入的测试信息。
  (2)性能测试
  模拟空管系统、机场系统和航空公司的通信,模拟的消息大小为4kB—8kB。
  场景一:航空公司向空管提起请求航班起飞时间,空管系统回复航班起飞时间。
  场景二:机场系统实时向空管系统提供航班准备情况,停机位情况。
  场景三:空管系统实时发布限制情况。不间断模拟收发7*24小时。
  测试结果显示MQ中平均每秒消息流量能够达到5000多条,如图3所示是MQ队列管理器所在服务器在某一时刻的Windows任务管理器的网络流量截图。该消息传输性能足以满足信息交换要求。
  4.1.3 小结
  本方案不仅为空管、机场和航空公司间的信息集成提供了切实可行的解决方案,也演示了在MQ中如何创建队列管理器、本地\传输\远程队列、服务器连接\发送方\接收方通道,并通过实际测试证明了该方案是一套高性能、超稳定能够满足生产系统7*24小时持续运行的信息集成平台,从集成平台架构看具备松耦合,灵活扩展的特点,减少整体系统的复杂度,并提供了统一的数据标准。
  4.2 基于MB的设计与应用
  4.2.1 模型设计
  我们重点使用MB基于消息内容的路由、发布订阅机制,模拟三大系统在空管内部的消息交互,主要包括流量系统、塔台系统、CDM平台系统。对于空管信息集成平台而言有三个输入队列FLOW.IN.LQ,CDM.MEP.LQ,TOWER.IN.LQ;每个系统有各自的接收队列FLOW.OUT.LQ,ATC.CDM.RQ,TWR.XXXX.OUT.LQ,其中XXXX为塔台所在机场的ICAO代码。接收队列所订阅的主题详见表1。   首先我们创建队列管理器QM_ATC_MEP_01,并在其中创建队列与预订。预订是在MQ7.0版本才新增的概念,是指预先订阅某种主题(或主题字符串)的消息,将所订阅到的消息放到一个目的队列中。
  系统间传输的消息的格式使用XML,为了便于读者理解,在此我们简明定义以下消息格式,发送方在发送的时候需要在DST字段填入目的系统的名字。
  下面我们使用MB来完成基于内容的消息路由,路由的依据就是消息中的DST字段。
  (1)创建消息流项目
  打开MB开发工具Toolkit,在选择菜单栏中的文件→新建→消息流项目,新建消息流项目的名称为ATC_MEP。
  (2)创建消息流
  选中已建好的消息流项目ATC_MEP,右键选择新建消息流,新建的消息流名称为ROUTE。
  首先我们为消息流选择输入队列。在右侧的选用板中的WebSphereMQ栏目中拖入MQInput控件,命名FLOW.IN.LQ。双击MQInput控件FLOW.IN.LQ,在基本一栏中的队列名称中输入FLOW.IN.LQ,在输入消息解析一栏中的消息域中选择XMLNSC。用同样的方法处理CDM.MEP.LQ和TOWER.IN.LQ。
  下一步选择消息处理组件和消息发布组件。变换一栏中拖入Compute组件,在其中可以使用ESQL语言用来进行简单的编程;在路由一栏中拖入Publication组件,该组件是用来发布消息到某个特定主题的。
  使用连线工具将各个组件连接起来,连接方式如图4所示。
  (3)创建代理及发布消息流
  在Toolkit左下角Brokers区域中选择新建本地代理,输入代理名称MB_ATC_MEP_01,队列管理器名称QM_ATC_MEP_01,操作系统用户名及密码。在创建代理时需要注意用户名不要超过12个字节,否则会出现发布失败的错误。
  创建代理成功之后,将消息流ROUTE拖放到代理MB_ATC_MEP_01下的默认执行组default中,就完成了消息流的发布。此时可以看到在队列管理器QM_ATC_MEP_01下的三个输入队列FLOW.IN.LQ、TOWER.IN.LQ、CDM.MEP.LQ的打开输入计数变为1,表示此时MB已连接这三个队列,从其中取消息。
  4.2.2 验证测试
  在那三个测试队列中放入测试消息,可以在TWR.ZSPD.OUT.LQ队列中发现该消息,说明消息路由成功。
  测试消息:ZSPDTest Message
  在多数中间件中如果使用了发布订阅模型,那么消息的消费者希望做负载均衡往往效果不尽如人意。例如浦东塔台的处理程序要是简单的订阅了ZSPD的主题,以后随着浦东的航班量不断地增加,那么原先的处理程序要是出现性能瓶颈想通过多部署一个程序来扩容就有问题了。首先这个新加的程序为了收到同样的数据也需要订阅ZSPD的主题,那么同样一条发送给浦东塔台的数据就会同时发送给了这两个程序,这样一来每个程序处理的量并没有减少,没法起到负载均衡的作用。而我们所做的设计刚好能够解决这类问题,就是利用MQ自身的订阅功能,将订阅到的消息先存放的队列里面,处理程序直接从队列中取数据处理,根据PTP模型的特性,多个程序从队列中消费数据,第一个程序取走后第二个程序就收不到了,假设浦东塔台起了N个处理程序,那么每个程序就只处理了1/N的消息量,快速稳定地实现了处理程序的负载均衡。
  4.2.3 小结
  该设计方案有以下三大明显优势。
  (1)便捷的负载均衡。因为各个塔台系统需要向流量系统提交请求,导致流量系统原先处理程序处理量巨大,我们可以在流量系统的接收队列上起多份相同的程序,以起到负载均衡的作用。
  (2)动态增加删除预订。如果浦东塔台测试系统希望收到与正式系统一致的数据,以满足业务测试,在以前则需要去修改我们的路由代码,让其多发一份数据给测试环境,并重新部署,而现在只需要在MQ的预订中新增一条主题ZSPD到队列TWR.ZSPD.TEST.OUT.LQ的预订即可,测试完成后直接删除该预订,不会对其他系统造成任何影响。
  (3)快速集成新系统。如果现在有新的一个塔台需要加入到该空管信息集成平台中,那么只需新建一个队列,新增一个预订即可,无需在平台上做任何修改。
  5 结论(Conclusion)
  本文阐述了MQ、MB的核心概念,以民航空管信息系统建设为背景,使用两种不同的方式展现了多系统跨平台跨语言的信息集成。通过基于MQ/MB中间件进行系统构架平台的设计和应用,有效的验证了该方案的可行性,并符合未来空管系统建设发展的要求,同时也为其他类似实时运行系统的建设提供了一种可行的解决方案。
  参考文献(References)
  [1] 陈宇翔.精通WebSphere MQ[M].合肥:安徽科学技术出版社,
  2004:1-105.
  [2] 陈宇翔.精通Websphere Message Broker[M].北京:水利水电出
  版社,2007:1-400.
  [3] IBM公司.Connecting Your Business Using WebSphere Message
  Broker V7 as an ESB[M].2010:1-536.
  [4] 许骏,柳泉波,李玉顺.面向服务的网格计算:新型分布式计算
  体系与中间件[M].北京:科学出版社,2009:1-340.
  作者简介:
  蔡永福(1985-),男,本科,助理工程师.研究领域:航空计算
  机信息管理.
  陈晓建(1966-),男,硕士,高级工程师.研究领域:航空计算
  机信息管理.
  曹烨琇(1983-),女,本科,工程师.研究领域:航空计算机信
  息管理.
其他文献
1.(表示人或物的特征)意为“带有”、“具有”。  如:(1)I like living in aroom with two windows.  我喜欢住在带有两个窗子的房间里。  (2)He is a little man with thick glasses.  他是个矮个的、戴着深度眼镜的男人。  2.(表示工具、手段)意为“以……”、“用……”。  如:(1)We listen with
摘 要:本文提出一种基于改进蜂群算法的视频目标检测方法,首先对两幅图像进行优化获得最大互信息值,进而获得最佳空间匹配参数,最后通过三帧差分法检测出目标。该算法相对传统算法,能够抑制背景残留噪声,而且不需要对图像进行预处理、特征选取以及背景更新,降低了算法复杂度。通过与传统蜂群算法的结果对比,证明了改进算法的有效性和可靠性。  关键词:视频检测;蜂群算法;互信息  中图分类号:TP391 文献标识码
1978年,中国原油产量达到1亿吨。1981年11月30日和12月1日,国务院领导同志在五届全国人大四次会议上做《政府工作报告》时,提出今后经济建设的10条方针,其中第3条讲:“世界上年产石油一亿吨以上的国家不到十个。我国是其中一个,一亿多吨石油是一笔很大的财富,合理利用这笔财富,对于提高全社会的经济效益具有重大的作用。”根据这次会议的精神,石油部成立了规划小组,着手研究用好1亿吨石油的具体规划。
哥哥打电话来告诉我,说母亲挑水时扭伤了腰。我赶紧回老家看母亲。一向能干的母亲,终于躺到了床上。她身上盖着被子,双脚露在被子外面,脚掌上粘着很多灰尘。我说:“妈,让我帮你洗洗脚吧。”母亲想自己洗,可实在洗不了,就叹一口气:“唉,真没用。”  我端来一盆温水,放在母亲的脚下,然后挽起母亲的裤腿,帮她洗脚。母亲的脚非常粗糙,仿佛油漆师傅打磨家具的砂纸,我轻轻一摸,竟有一种刈手的感觉。母亲脚掌不长,却特别
近期的云南鲁甸地震中,拥有234年历史的拖姑清真寺在众多钢筋水泥的现代建筑纷纷倒塌之时,这栋建于清雍正年间的木构建筑却完好无损。  我们的祖先为了躲避自然界的严寒酷暑而建起了房屋,并将其发展为一种文化和艺术形式。  建筑虽为人造物,但寻求人与自然的和谐相处之道,始终是古今中外建筑师们的理想。对于中国传统建筑而言,便是对“天人合一”的追求,而这也恰恰是中国传统养生学的主旨。建筑与养生,两个看似不相干
大凡可以称为大师或奇人的人,一定有着不同寻常的人生经历和过人之处。  晚清道光年间,广东南海泌冲有这么一个人,父亲和外祖父都是学养深厚的“数学爱好者”,自然给了他那个年代少有的数理启蒙教育。他自小受在乡村私塾教学的父亲的影响,10岁时,就接触了《周易》《九章算术》《周髀算经》等。年纪稍大,他开始学习经史子集。对传统文化宽泛的认知,加上他对算术浓厚的兴趣,为他日后研习西方文化和科学知识埋下了兴趣的种
改善居民的生活品质是全面建设社会主义现代化国家的重要要求,其中居住品质是人们关注的焦点之一。重庆市住房发展“十四五”规划应推动实现从“住有所居”向“住有宜居”转变,不断提升人民群众的获得感、幸福感、安全感。  要以人民为中心。重庆市住房发展“十四五”规划,要坚持问政于民、問需于民、问计于民,注重共商共建共享,让规划发展成果更多地惠及人民群众。规划要聚焦人民关心的住房发展突出问题,以“住有所居”为首
● 教材分析  “Excel电子表格”是江西科技出版社出版的《初中信息技术》(八年级)第2、3、4、5章的内容,主要包括认识Excel、Excel数值型数据处理、表格的编辑、Excel表格的排版打印及统计表等内容。课程标准里关于教师如何使用教材的一个重要观点是,教师用教材教而不是教教材,提倡教师合理延伸和拓展教学资源。考虑到知识的连贯性(Word中的表格),我把第5章“Excel表格的排版”提到第
北宋书画家米芾爱好石头,几乎达到癫狂的程度。他在涟水做官的时候,出了一桩人命案。罪犯是他顶头上司的亲属,顶头上司在官场暗通关节,很有神通,使得批文迟迟不得下来,米芾的心里又气又急。这时,听说钦差要来涟水,米芾想,这下此案总可以了结了吧。  一天,米芾在书房看书,有人求见。来人说:“听闻米大人喜欢弄石,特地带来几块献给大人。”说着,那人就从袖子里取出一块石头。米芾想,你我素不相识,为何前来献石?其中
妈妈“临走”的时候没有忘记交代我一件事。  “母亲节要到了,记得要去送花,以后……记得还要每年都送,千万不要忘记了!”  我点点头,明白妈妈说的,是要我把花送给一个叫丁素芬的女人。  不是我们的亲戚,也不是自己的好朋友,更不是常来光顾的客户,(我真不知道妈妈为什么要那么执着,走到人生的尽头了不记挂着要给一个不相干的人送花①)  听在我们店里帮工已经做了很久的琴姐说,给丁素芬送花的事从我们很小就开始