CBTC综合维护管理系统中基于Web的实时通信方法

来源 :科技资讯 | 被引量 : 0次 | 上传用户:yifengwuyang
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:本文提出了一种CBTC综合维护管理系统(MMS)中前端页面模块与后端服务模块的实时信息交换方法,该方法应用层采用stomp协议,基于websocket通信。在基于B/S架构的轨道交通综合维护管理系统中,服务器系统分为两部分:后端服务模块和前端页面显示模块。后端服务模块实时向前端页面模块发送消息,前端页面显示模块收到消息之后,解析并实时显示状态更新。本方法,通过在CBTC综合维护管理系统中增加消息代理服务器,对服务器的后端服务模块和前端页面展示模块进行了解耦,并提供了后端服务模块和前端页面显示模块的通用应用层协议封装,提供了客户端消息定义的管理和自动发布功能。增强了后端服务模块的扩展能力,简化了后端服务模块开发,通过向客户端广播实时消息,节省了带宽,减少了后端服务模块的负载。
  关键词:CBTC 综合维护管理系统 Websocket Stomp Active MQ 消息代理
  中图分类号:TP27 文献标识码:A 文章编号:1672-3791(2018)02(a)-0042-05
  城市轨道交通控制系统包含CBI、ZC、ATS、OBCU,他们共同协作,完成轨道交通的运营。在轨道交通信号系统建设完成之后,对这些控制子系统的和信号设备、机房设备的运行维护成为工作的重点。保障和提供运维的水平和效率,对轨道交通系统的正常运营具有重要意义。因此,需要有一个系统,能够接收、整合所有控制子系统的维护信息,能够及时监测信号设备和机房设备的运行状态,并能够对实时报警和趋势性预警信息及时提供报警提示。
  在此背景下,采用B/S架构的CBTC综合维护管理系统(MMS,Maintenance Management System)应运而生。
  1 背景分析
  目前的web应用中,后端服务器系统与前端页面的数据交互,通常采用方法有Ajax、轮询、websocket以及其他技术。
  采用Ajax,解决了页面部分刷新、服务器负载分担的问题,客户端和服务器异步通信,使得服务器可以更快的响应页面操作;采用轮询方式,服务器和页面实现逻辑简单,易于操作;采用websocket,可以保证应用的实时性;采用其他方式,也都具有各自的特点。
  在以上这些方法中,有一个共同的特点:由前端页面发起请求到服务器,由服务器处理所有页面的请求和客户端的管理。由此也带来了一些问题,主要表现为:
  (1)服务器不能及时把数据变化推送到客户端,实时性差。主要表现在采用Ajax和轮询方式。采用轮询方式,还占用了比较多的带宽和服务器资源,重复请求等,浪费比较多的资源。
  (2)后端服务模块和前端页面展示模块耦合度较高,导致服务器的扩展性较差。
  (3)后端服务模块要管理所有客户端的信息订阅,及信息发布,导致服务器开发复杂,且服务器负载较高。
  MQ全称为Message Queue,消息隊列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过写和检索出入列队的针对应用程序的数据(消息)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。
  在事件驱动架构的异步系统中,经常采用MQ作为事件驱动架构的主干,从而解耦不同的模块应用,提高服务器负载、高可用性以及更好的系统扩展性。
  本文方法采用的消息服务器是消息中间件MQ,采用开源ActiveMQ实现。ActiveMQ是Apache出品,最流行的、能力强劲的开源消息总线,也是一个中间件产品。它是JMS的一个实现。AcitveMQ提供了两种消息传递模型,PTP(即点对点模型)和Pub/Sub(即发布/订阅模型),分别称作:PTP Domain和Pub/Sub Domain。
  (1)PTP(使用Queue,即队列目标)消息从一个生产者传送至一个消费者。在此传送模型中,目标是一个队列。消息首先被传送至队列目标,然后根据队列传送策略,从该队列将消息传送至向此队列进行注册的某一个消费者,一次只传送一条消息。可以向队列目标发送消息的生产者的数量没有限制,但每条消息只能发送至、并由一个消费者成功使用。如果没有已经向队列目标注册的消费者,队列将保留它收到的消息,并在某个消费者向该队列进行注册时将消息传送给该消费者。
  (2)Pub/Sub(使用Topic,即主题目标)消息从一个生产者传送至任意数量的消费者。在此传送模型中,目标是一个主题。消息首先被传送至主题目标,然后传送至所有已订阅此主题的活动消费者。可以向主题目标发送消息的生产者的数量没有限制,并且每个消息可以发送至任意数量的订阅消费者。主题目标也支持持久订阅的概念。持久订阅表示消费者已向主题目标进行注册,但在消息传送时此消费者可以处于非活动状态。当此消费者再次处于活动状态时,它将接收此信息。如果没有已经向主题目标注册的消费者,主题不保留其接收到的消息,除非有非活动消费者注册了持久订阅。
  2 系统设计
  基于以上考虑,本文提出一种事件驱动的异步实时信息发布方法。
  (1)在服务器增加一个消息代理服务器,作为事件驱动的主干,负责Topic管理,订阅管理,消息接收和广播等。
  (2)MMS服务器后端模块作为消息的生产者,负责把实时信息以消息的形式,发送到消息代理服务器的Topic。
  (3)MMS服务器前端模块作为消息的消费者,在页面打开时,向消息代理服务器订阅相关的Topic,并在页面关闭时,取消订阅。
  (4)当MMS服务器后端模块接收到从控制子系统发送的实时信息之后,转换为json的形式,发送到消息代理服务器的具体Topic;消息代理服务器把消息广播至所有订阅了该Topic的所有页面;页面接收到广播之后,对页面的相关状态进行更新显示。   (5)系统软件架构采用JavaEE架构。该方法具体包括:后端服务模块,消息代理服务器,前端页面显示模块。系统框图如图1所示。
  系统的工作流程如下:
  ①服务器启动。
  ②消息代理服务器启动,按照配置创建不同的Topic。
  ③页面打开时,向消息代理服务器发布订阅请求,订阅本页面关心的Topic。
  ④服务器后端服务模块接收控制子系统的实时消息。
  ⑤服务器后端服务器模块把实时消息按照json格式发送到消息代理服务器的各个Topic。
  ⑥消息代理服务器把消息实时发布到所有订阅的页面,页面接收到jsion格式的消息,解析并显示在页面。
  ⑦当页面关闭时,向消息代理服务器发布取消订阅请求。
  2.1 后端服务模块
  后端服务模块是服务器子系统的核心组成部分,运行在服务器子系统。后端服务模块负责接收控制子系统的数据,包括:ATS、车载系统(OBCU),轨旁系统(ZC),和联锁系统(CBI),以及位于车站的微机监测采集数据。
  后端服务模块接收的实时数据包括:CBI系统状态,CBI报警,CBI开关量,ZC系统状态,ZC报警,微机监测报警,微机监测开关量。
  后端服务模块接收的ATS的实时维护数据包括,ATS的运行状态、ATS服务器内存占用、CPU占用,以及ATS与其他系统的通信状态,和ATS的报警信息。
  后端服务模块接收的车载系统的维护数据,包括:车载的运行状态,车辆监测信息,车载系统的报警信息,车载系统的运行日志。
  后端服务模块在接收到数据之后,存储到数据库,并把实时数据信息以json格式发送到消息代理服务器的每个Topic(如图2)。
  2.2 消息代理服务器
  消息代理服务器负责接收后端服务模块产生的实时消息,并通过广播的方式发送到前端显示模块显示。
  为了完成消息发布功能,消息代理服务器提供客户端订阅管理功能和主题管理功能。消息代理服务器采用开源第三方产品ActiveMQ,以独立的进程运行。
  当消息代理服务器启动之后,即可实时接收后端服务模块发送的实时数据。这些数据按照预先配置的主题名称排列,由消息代理服务器进行管理。Topic的名称配置,按照车站、系统和信息的类别三个层次进行组织,每种类型的信息为一个Topic。例如,车站6001的CBI开关量信息,Topic名称配置为6001.CDM.KGL;车站6001的CBI运行状态信息,Topic名称配置为6001.CDM.STATUS。
  消息代理服务器对前端页面的订阅和消息分发进行自动管理,当有消息更新时,消息代理服务器把消息自动更新到前端页面显示模块。当前端页面订阅主题时,消息代理服务器進行记录,并在前端页面取消订阅时,在消息代理服务器删除该订阅。
  消息代理服务器与前端页面的通信,采用基于websocket的通信,并在websocket之上,采用通用的stomp协议进行通信。
  2.3 前端页面显示模块
  前端页面显示模块用于显示实时数据和历史数据。
  前端页面显示模块,在实时数据显示页面打开时,向消息代理服务器注册订阅消息,订阅具体的Topic,Topic名称命名方式如前所述。
  前端页面收到数据之后,按照规定的格式解析json格式的消息,并通过javascript脚本实时更新页面的显示。
  前端页面与消息代理服务器的通信,采用基于websocket的通信,并在websocket之上,采用通用的stomp协议作为应用层协议。
  当页面关闭时,首先从消息代理服务器退订实时数据,取消实时数据的订阅(如图3、图4、图5)。
  3 系统实现
  系统的最后实现界面如图6、图7所示。界面显示比较友好、清晰。
  4 结语
  通过采用本方法,实现了在CBTC综合维护系统中基于web的实时通信,经实际应用,效果良好。通过本方法,实现了CBTC综合维护系统的服务器前后端模块的解耦,提高了基于web的实时信息显示的实时性,减轻了服务器的负载,提高了服务器的可扩展性。
  参考文献
  [1] (美)Craig walls,(美)Ryan Breidenbach,著.Spring in Action[M].李磊,程立,周悦虹,译.北京:人民邮电出版社,2006.
  [2] (美)Jason Lengstorf,(英)Phil Leggetter.Realtime Web Apps:With HTML5 WebSocket,PHP,and jQuery[M].Berkeley:Apress,2013.
  [3] Bruce Snyder,Dejan Bosanac,Rob Davies. Active MQ in Action[M].Greenwich:Manning Publications,2011.
  [4] The Apache Software Foundation.Active MQ[EB/OL].(2016-02—8)[2016-03-02].http://activemq.apache.org/getting-started.html.
  [5] The Apache Software Foundation.Stomp[EB/OL].[2016-03-02].http://activemq.apache.org/stomp.html.
  [6] 中华人民共和国铁道部运输局.铁路信号集中监测系统技术条件(运基信号[2010] 709号)[S].
其他文献
合理利用有机肥资源,将有机肥替代部分化肥是实现减肥目标的重要技术途径之一。特别对于盐碱化土壤,有机肥替代部分化肥既能减少化肥的使用又能改善土壤的理化性质,促进作物产量的提高。本文以滨海盐碱地为研究对象,2014—2016年连续两年在滨州市无棣县渤海粮仓试验基地通过大田试验,研究了不施肥(CK)、普通化肥(CCF)、有机肥替代低量化肥(LOM)、有机肥替代中量化肥(MOM)、有机肥替代高量化肥(HO
文章根据三峡升船机设计参数及过坝船舶统计数据分析,依据船闸总体设计规范对其通过能力进行计算,结果表明三峡升船机通过能力潜力巨大,可有效破解三峡过闸船舶待闸的瓶颈。
从重庆市涪陵页岩气田采集水基钻屑样品,对其理化性质与主要可能污染物共24项指标进行检测分析,结果表明:水基钻屑具有碱性强、盐分高的特征;速效钾含量较高(805~7 650 mg/kg
本文对城市隧道机电系统安全指标进行了分析,应用模糊数学理论建立了模糊综合安全评价指标体系和模型,并以厦门云顶隧道为例,对该隧道机电系统进行了模糊综合安全评价,得出隧
我国传统图形艺术在国外艺术的冲击下,面临着内忧外患局面。而将虚拟现实技术应用于我国传统图形艺术,是一种技术应用创新。利用虚拟现实技术建立传统图形虚拟博物馆、进行沉
本刊讯(记者吴曼)为进一步加强全省非洲猪瘟防控工作,强化防控政策解读和技术指导,全面提升基层防控能力和水平,结合'不忘初心、牢记使命'主题教育活动,7月9日,河北
随着我国经济不断发展,社会日益进步,环境问题越来越受到社会的重视,而大气污染的防治必须要做好监测工作,并且采取有效的举措。该文主要围绕大气污染的环境监测及治理措施展开了分析和论述,首先介绍当下大气污染环境监测存在的问题和不足;其次提出强化大气污染环境监测与治理的有效举措。
对于冲压模具,其在冲压过程中形成一定机械运动,另外,在开展冲压工艺时,基本机械运动的原理有着重要作用,因此,在开冲压作业时,需要通过有效措施,对机械运动加以控制,进而使