本发明属于轨道交通综合监控系统大规模实时数据在线更新发布技术领域,具体指代一种应用于轨道交通综合监控系统中基于策略的动态反馈对大规模实时数据进行更新发布的系统及方法。
背景技术:
轨道交通综合监控系统是一个大型的轨道交通自动化系统,需集成或互联轨道交通的各个机电设备系统,包括信号系统(ats)、电力监控系统(pscada)、环境与设备监控系统(bas)、自动售检票系统(afc)、视频监控系统(cctv)、广播系统(pa)、乘客信息系统(pis)、消防(系统fas)、门禁系统(acs)、屏蔽门系统(psd)、防淹门系统(fg)、自动对时系统(clk)、通信集中告警系统(tel/alm)等。轨道交通综合监控的主要功能包括对机电设备的实时集中监控功能和各系统之间协调联动功能两大部分。一方面,通过综合监控系统,可实现对电力设备、火灾报警信息及其设备、车站环控设备、区间环控设备、环境参数、屏蔽门设备、防淹门设备、电扶梯设备、照明设备、门禁设备、自动售检票设备、广播和闭路电视设备、乘客信息显示系统的播出信息和时钟信息等进行实时集中监视和控制的基本功能;另一方面,通过综合监控系统,还可实现晚间非运营情况下、日间正常运营情况下、紧急突发情况下和重要设备故障情况下各相关系统设备之间协调互动等高级功能。
综合监控系统的主要监控量包括数字量输入(di)、数字量输出(do)、模拟量输入(ai)、模拟量输出(ao)等,监视主要针对di和ai点,控制主要针对do、ao点;综合多条实际线路情况估算,在一条典型的地铁线路的轨道交通综合监控系统需满足50万设备点,其中数字量点30万,模拟量点20万才能达到项目要求。综合监控系统的核心是实时数据库,正常工况下实时数据库的性能可以满足系统性能要求,在某种极端情况下,会出现短时间内发生大量事件的情况,也就是一般所说的系统“雪崩”现象,几十万点状态变化数据瞬间堆积到数据库,根据计算“雪崩”情况下的数据库负载上升了6-10倍,使数据库无法即时处理,甚至使用服务器宕机。
技术实现要素:
针对于上述现有技术的不足,本发明的目的在于提供一种用于综合监控系统的大规模实时数据更新发布系统及方法,以解决现有技术中轨道交通综合监控系统出现异常工况时,输入量di和ai大规模增加,阻塞系统处理通道,使系统处理性能大幅下降的问题。
为达到上述目的,本发明采用的技术方案如下:
本发明的一种用于综合监控系统的大规模实时数据更新发布系统,包括:
订阅查询模块,用于接收订阅、查询请求信息,及输出订阅、查询结果信息;
实时动态影响因素库,用于存储实时动态影响因素;
策略合成模块,用于根据静态更新发布策略及实时动态影响因素生成动态更新发布策略;
预处理模块,根据动态更新发布策略对数据点数据进行预处理;
策略执行模块,用于根据上述动态更新发布策略控制对预处理后的数据点数据的更新和发布;
数据存储模块,用于存储实时更新和发布的结果数据,并将发送给实时动态影响因素库。
优选地,所述订阅查询模块接收订阅、查询请求信息,并于数据存储模块中得到订阅、查询结果数据后,通过查询和信息发布接口的方式进行相应结果数据的输出;及还将接收订阅、查询请求信息反馈至实时动态影响因素库。
优选地,所述动态更新发布策略具体为:若数据点当前已被订阅,则该数据点的更新不得拒绝或放弃,根据订阅次数和除订阅次数以外的实时动态影响因素确定优先级;若数据点最近一段时间内被多次查询,则该数据点的更新不得拒绝或放弃,根据查询次数和除查询次数以外的实时动态影响因素确定优先级;若数据点最近有订阅或查询,则该数据点的更新不得拒绝或放弃,根据最近的订阅或查询时间和除最近订阅时间及查询时间以外的实时动态影响因素确定优先级;根据数据点的特点和数据关联关系,确定特殊数据点,特殊数据点的更新不得拒绝或放弃,并且优先更新;根据数据点的更新结果、更新次数和更新时间间隔,调整数据点优先级;根据特殊点的更新情况和短时间全部并发更新数据量,确定当前工况,当发生特点数据更新并且短时间并发更新数据达到异常工况要求,按异常工况策略处理。
优选地,所述预处理模块根据动态更新发布策略对数据点数据进行预处理,即拒绝数据点数据更新和直接放弃数据点数据,并将结果信息反馈至实时动态影响因素库中。
优选地,所述策略执行模块根据动态更新发布策略对预处理后的数据点数据进行多线程处理,更新并存储实时数据点数据至数据存储模块,然后信息发布,即拒绝、放弃或直接发布数据点数据。
本发明的一种用于综合监控系统的大规模实时数据更新发布方法,包括步骤如下:
1)根据静态更新发布策略及实时动态影响因素生成动态更新发布策略;
2)根据上述动态更新发布策略控制实时数据点数据的更新和发布,并将更新和发布结果数据反馈至实时动态影响因素库中;
3)对上述更新和发布结果数据进行存储;
4)将订阅、查询信息更新至实时动态影响因素;
5)直接返回查询结果至查询接口;
6)根据动态更新发布策略,完成对步骤3)中结果数据的信息发布状态。
优选地,所述步骤1)中的静态更新发布策略包含:拒绝数据点数据更新,直接放弃数据点数据,低优先级处理数据点数据,正常处理数据点数据,高优先级处理数据点数据以及异常工况处理数据点数据。
优选地,所述步骤1)中的实时动态影响因素分为四类,一类是根据查询和订阅情况,包括数据点订阅次数、数据点最近订阅时间、数据点一定时间内查询次数、数据点最近查询时间;一类是根据预处理情况,包括短时间全部并发更新数量、数据点一定时间内更新次数及数据点最近更新时间;一类是数据处理情况,包括数据处理结果、最近处理时间;一类是根据实时结果数据存储,包括数据优先级、数据关联关系、数据最后被使用时间、数据最新变化时间、一定时间内数据更新发布结果记录。
所述的更新情况,考虑一定时间内数据更新次数、最近数据更新时间等数据更新结果对后续的数据点数据更新发布的影响,一定时间内数据更新次数少或最近没有更新的数据,后续其优先级会随时间相对提高。
所述的关联关系,考虑特殊数据点和数据被关联引用次数等因素,特殊数据点数据更新和发布必须最先进行处理,不得拒绝和放弃。
优选地,所述步骤1)中动态更新发布策略具体包括:若数据点当前已被订阅,则该数据点的更新不得拒绝或放弃,根据订阅次数和除订阅次数以外的实时动态影响因素确定优先级;若数据点最近一段时间内被多次查询,则该数据点的更新不得拒绝或放弃,根据查询次数和除查询次数以外的实时动态影响因素确定优先级;若数据点最近有订阅或查询,则该数据点的更新不得拒绝或放弃,根据最近的订阅或查询时间和除最近订阅时间及查询时间以外的实时动态影响因素确定优先级;根据数据点的特点和数据关联关系,确定特殊数据点,特殊数据点的更新不得拒绝或放弃,并且优先更新;根据数据点的更新结果、更新次数和更新时间间隔,调整数据点优先级;根据特殊点的更新情况和短时间全部并发更新数据量,确定当前工况,当发生特点数据更新并且短时间并发更新数据达到异常工况要求,按异常工况策略处理。
优选地,所述步骤2)具体包含:根据动态更新发布策略对数据点数据进行预处理,即拒绝数据点数据更新和直接放弃数据点数据,并将结果信息反馈至实时动态影响因素库中;以及对预处理后的数据进行多线程处理,更新并存储实时数据点数据,然后信息发布,即拒绝、放弃或直接发布数据点数据,并将更新后的结果信息反馈至实时动态影响因素库中。
优选地,所述步骤6)中的完成信息发布状态具体包含:拒绝发布、放弃发布、低优先级发布、正常发布及高优先级发布、异常工况下信息发布。
本发明的有益效果:
本发明的方法专门针对轨道交通综合监控系统各种工况(包括正常工况、雪崩工况、阻塞工况、故障工况、灾难工况)要求设计,满足大规模数据在线更新发布的要求,具有如下特点:
1.处理性能高,实时数据容量大于100万点,实时数据并发更新大于30万点/秒,实时数据并发查询大于10万点/秒,实时数据并发发布大于10万点/秒;
2.网络流量低,更新与发布接口分离,更新接口采用专有封装格式,降低网络流量;更新数据采用实时数据压缩方法,降低网络流量,降低60%的网络流量;
3.反应迅速,重要数据变化刷新时间小于200毫秒,重要数据响时间小于800毫秒,数据变化刷新时间小于1秒,控制命令下发时间小于1秒;
4.稳定性高,异常工况下采用动态更新发布策略,防止系统宕机。
附图说明
图1为本发明系统的原理框图;
图2为本发明方法的原理图;
图3为本发明的实时动态影响因素图。
具体实施方式
为了便于本领域技术人员的理解,下面结合实施例与附图对本发明作进一步的说明,实施方式提及的内容并非对本发明的限定。
参照图1所示,本发明的一种用于综合监控系统的大规模实时数据更新发布系统,包括:
订阅查询模块,用于接收订阅、查询请求信息,通过发布接口的方式进行相应结果数据的输出;发布接口采用查询与订阅相结合的方式,查询方式是客户端需要的时候主动通过一来一回的方式得到数据点的值;订阅发布(即信息发布)方式是客户端订阅数据点的值,当数据点的值发生改变时,服务端直接把数据推送至客户端,不需要客户端每次都主动查询。以及订阅查询模块还将订阅、查询请求信息反馈至下述实时动态影响因素库。
参照图3所示,实时动态影响因素库,用于存储实时动态影响因素;实时动态影响因素分为四类,一类是根据查询和订阅情况,包括数据点订阅次数、数据点最近订阅时间、数据点一定时间内查询次数、数据点最近查询时间;一类是根据预处理情况,包括短时间全部并发更新数量、数据点一定时间内更新次数及数据点最近更新时间;一类是数据处理情况,包括数据处理结果、最近处理时间;一类是根据实时结果数据存储,包括数据优先级、数据关联关系、数据最后被使用时间、数据最新变化时间、一定时间内数据更新发布结果记录。
策略合成模块,用于根据静态更新发布策略及实时动态影响因素生成动态更新发布策略;所述静态更新发布策略为启动时通过系统静态策略配置信息自动生成,包含:拒绝数据点数据更新,直接放弃数据点数据,低优先级处理数据点数据,正常处理数据点数据,高优先级处理数据点数据以及异常工况处理数据点数据;动态更新发布策略包含:若数据点当前已被订阅,则该数据点的更新不得拒绝或放弃,根据订阅次数和除订阅次数以外的实时动态影响因素确定优先级;若数据点最近一段时间内被多次查询,则该数据点的更新不得拒绝或放弃,根据查询次数和除查询次数以外的实时动态影响因素确定优先级;若数据点最近有订阅或查询,则该数据点的更新不得拒绝或放弃,根据最近的订阅或查询时间和除最近订阅时间及查询时间以外的实时动态影响因素确定优先级;根据数据点的特点和数据关联关系,确定特殊数据点,特殊数据点的更新不得拒绝或放弃,并且优先更新;根据数据点的更新结果、更新次数和更新时间间隔,调整数据点优先级;根据特殊点的更新情况和短时间全部并发更新数据量,确定当前工况,当发生特点数据更新并且短时间并发更新数据达到异常工况要求,按异常工况策略处理。
预处理模块,首先对接收到的数据进行缓存处理,然后对数据进行格式转化(将不同种类不同格式的数据转化为统一的内部数据格式),再根据动态更新发布策略对数据点数据进行处理,即拒绝数据点数据更新、直接放弃数据点数据、根据优先级将数据传给策略执行模块处理,并将结果信息反馈至实时动态影响因素库中。
策略执行模块,用于根据上述动态更新发布策略对预处理后的数据点数据的更新和发布;具体为:对预处理后的数据进行多线程处理,更新并存储实时数据点数据,然后信息发布,并将更新后的结果信息反馈至实时动态影响因素库中;
其中,策略执行模块连接更新接口,更新接口与查询订阅接口分开,采用大规模数据更新接口;大规模数据更新接口针对数据类型进行优化,采用专有数据结构;大规模数据更新接口采用实时压缩方式,减少冗余数据,减少网络流量;
其中,所述多线程处理具体为:根据服务器性能(cpu核数、内存大小)、数据点数量和类型,综合采用多线程、多级缓存、多级处理、动态优先级等方式进行处理,将结果数据存储至数据存储模块,并将处理情况反馈至实时动态影响因素库中;检测cpu核数,确定多线程数量;根据内存大小,确定各级缓存大小;根据数据点数量和类型,确定数据点的静态优先级、基础动态优先级以及异常情况时的处理方式(告警、日志、联动等)。
数据存储模块,用于存储实时更新和发布的结果数据,并将发送给实时动态影响因素库,以及传输实时更新和发布的结果数据给订阅查询模块。
参照图2所示,本发明的一种用于综合监控系统的大规模实时数据更新发布方法,包括步骤如下:
1)根据静态更新发布策略及实时动态影响因素生成动态更新发布策略;其中,
静态更新发布策略包含:拒绝数据点数据更新,直接放弃数据点数据,低优先级处理数据点数据,正常处理数据点数据,高优先级处理数据点数据以及异常工况处理数据点数据;
实时动态影响因素分为四类,一类是根据查询和订阅情况,包括数据点订阅次数、数据点最近订阅时间、数据点一定时间内查询次数、数据点最近查询时间;一类是根据预处理情况,包括短时间全部并发更新数量、数据点一定时间内更新次数及数据点最近更新时间;一类是数据处理情况,包括数据处理结果、最近处理时间;一类是根据实时结果数据存储,包括数据优先级、数据关联关系、数据最后被使用时间、数据最新变化时间、一定时间内数据更新发布结果记录。
动态更新发布策略具体包括:若数据点当前已被订阅,则该数据点的更新不得拒绝或放弃,根据订阅次数和除了订阅次数以外的实时动态影响因素确定优先级;若数据点最近一段时间内被多次查询,则该数据点的更新不得拒绝或放弃,根据查询次数和除了查询次数以外的实时动态影响因素确定优先级;若数据点最近有订阅或查询,则该数据点的更新不得拒绝或放弃,根据最近的订阅或查询时间和除最近订阅时间和查询时间以外的实时动态影响因素确定优先级;根据数据点的特点和数据关联关系,确定特殊数据点,特殊数据点的更新不得拒绝或放弃,并且优先更新;根据数据点的更新结果、更新次数和更新时间间隔,调整数据点优先级;根据特殊点的更新情况和短时间全部并发更新数据量,确定当前工况,当发生特点数据更新并且短时间并发更新数据达到异常工况要求,按异常工况策略处理。
2)根据上述动态更新发布策略控制实时数据点数据的更新和发布,并将更新和发布结果数据反馈至实时动态影响因素库中;具体为:根据动态更新发布策略对数据点数据进行预处理,即拒绝数据点数据更新和直接放弃数据点数据,并将结果信息反馈至实时动态影响因素库中;以及对预处理后的数据进行多线程处理,更新并存储实时数据点数据,并将更新后的结果信息反馈至实时动态影响因素库中;
其中,策略执行模块连接更新接口,更新接口与查询订阅接口分开,采用大规模数据更新接口;大规模数据更新接口针对数据类型进行优化,采用专有数据结构;大规模数据更新接口采用实时压缩方式,减少冗余数据,减少网络流量;
其中,所述多线程处理具体为:根据服务器性能(cpu核数、内存大小)、数据点数量和类型,综合采用多线程、多级缓存、多级处理、动态优先级等方式进行处理;检测cpu核数,确定多线程数量;根据内存大小,确定各级缓存大小;根据数据点数量和类型,确定数据点的静态优先级和基础动态优先级。
3)将上述更新和发布结果数据存储至数据存储模块中,并将更新后的结果信息反馈至实时动态影响因素库中。更新结果数据包括更新后的数据点数值、数据点一定时间内更新次数、数据点最近更新时间、数据最新变化时间等,发布结果数据包括数据最后被使用时间、一定时间内数据发布次数等。
4)将订阅、查询信息更新至实时动态影响因素。订阅查询信息包括数据点订阅次数、数据点最近订阅时间、数据点一定时间内查询次数、数据点最近查询时间等。
5)根据订阅、查询信息将相应的结果数据发送至对应发布接口;具体为:当接到查询请求时,则于数据存储模块中存储的数据中找到相对应的查询结果数据,通过查询接口输出;当接到的订阅请求对应的数据存储模块中存储的结果数据发生变化时,将变化后的结果数据过信息发布接口输出;并将查询结果信息反馈至实时动态影响因素库中。
此外,当发布接口接收的订阅、查询请求信息对应的结果数据发生变化时,订阅查询模块将从数据存储模块中获取的实时更新和发布的结果数据信息发布至发布接口,并将变化信息反馈至实时动态影响因素库中。
在综合监控系统中,所有的数据点数据变化后,都要通过更新接口更新到综合监控系统;只有用户主动发送查询请求,进行主动查询才能从综合监控系统得到查询结果;综合监控系统接收到订阅请求信息后,综合监控系统才会发布这些对应的数据点变化信息。一般综合监控系统有几十至百万点,异常工况下每秒要更新二、三十万点数据信息;每个查询或订阅请求只有几十个点,打开几十个订阅请求,总共也就几千个数据点需要同时发布。根据综合监控系统数据更新并发量远比发布查询数据并发量大的特点,使更新与查询接口分离,对更新接口进行专门优化,减少网络流量。
本发明具体应用途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进,这些改进也应视为本发明的保护范围。