APP下载

铁路调度系统复杂事件处理方法的研究

2016-02-16刘皓玮易志刚

铁路计算机应用 2016年6期
关键词:实例报警定义

刘皓玮,易志刚,张 源

(中国铁道科学研究院 通信信号研究所,北京 100081)

铁路调度系统复杂事件处理方法的研究

刘皓玮,易志刚,张 源

(中国铁道科学研究院 通信信号研究所,北京 100081)

铁路调度指挥是一项综合性、复杂性极高的工作,为了能够在保证行车安全的前提下,快速有效地应对各种复杂情况,调度员需要掌握所有与行车相关的信息。本文运用复杂事件处理方法理论,详细分析影响列车安全、高速、高效运行的业务场景,研究铁路调度指挥系统复杂事件的定义、捕获事件、事件生命周期、事件处理流程等,提出铁路调度系统复杂事件处理方法。应用结果表明,该方法能够实现铁路调度系统中复杂事件的监控、识别和处理,具有较好的有效性。

铁路调度;复杂事件处理;体系架构

高速铁路具有运营密度高、列车速度高、安全要求高、客服质量高等特点,铁路调度指挥系统(简称:调度系统)是其重要保障。调度指挥需要掌握大量的相关信息,包括:计划信息、信号系统状态、牵引供电状态、动车组状态、防灾报警、沿线基础设施状态和维修状态等。在这些信息中包含着某些特殊情况的信息,例如施工引起的限速,或某处风速报警。对这些特殊情况,调度员应在当前整体运营环境下,及时有效地综合分析相关信息,判断是否会有危及行车安全、引起列车晚点等非正常情况发生,并立即采取有效的处置措施。完全以人工方式发现并处理这些非正常情况是非常困难的,应当由调度系统进一步对信息进行综合分析,从中发现危及行车安全、影响列车运行等潜在风险,因此这对调度系统提出新的要求。

本文研究铁路调度系统的复杂事件处理机制、以及调度系统复杂事件的定义、捕获事件、复杂事件生成、事件生命周期、事件处理流程等。规划系统应做出什么样的响应,通过事件处理,实时处理事件流中的事件,识别特定的业务模式,及时做出决策。

1 复杂事件处理

复杂事件处理起源于20世纪90年代初对事件之间相互关系,以及具有一定约束的复杂事件序列等方面的研究工作[1]。复杂事件处理(CEP,Complex Event Processing)是一种从大量分散数据中提取特定价值信息的新方法[2~4],已在网络入侵探测等方面取得了成功的应用[5]。复杂事件处理具有一套完整的机制,对于调度系统信息综合分析的需要,通过复杂事件处理方法,将调度员关注的来自各个外部系统的大量信息,按照事件定义,把信息转化为具有明确意义的事件,实时捕捉事件;分析事件间的关联性,识别特定的模式,并对特定模式予以响应,辅助调度员监控相关状态变化和可能出现的潜在问题。

1.1 简单事件与复杂事件

简单事件(或称原子事件、基本事件)是瞬时发生的,且是系统中最小的、原子性的变化和动作。原子性是指事件要么完全发生,要么根本不发生。复杂事件是将简单事件进行关联和整合,形成的新事件类型。复杂事件还可以与简单事件、其它复杂事件进行关联和整合。

1.2 事件处理方法

近十几年来,对复杂事件处理技术进行了大量研究,发展出了基于有限自动机模型、Petri网模型、匹配树模型和有向图模型等复杂事件处理的基本模型。事件处理方法有Petri网方法、规则语言方法等。Petri网处理方法具有图形化的表达方式,能够直观的表达业务逻辑,通过Petri网的聚合,能够大量减少冗余规则,但在计算方法的实现和分布式计算方面还缺乏成熟的应用经验。规则语言方法使用非过程的声明型规则语言,事件处理规则描述具有清晰的业务含义,规则处理具有明确的处理算法,计算过程便于实现,更易于与既有系统集成[6]。

本文使用规则语言方法研究铁路调度系统复杂事件处理方法。

2 铁路调度系统事件定义与产生

铁路调度系统的事件是系统或系统用户感兴趣的任何事情,可以是系统状态的变化、用户行为的记录,或是一些风雨雪的灾害报警、设备故障报警等信息,也可以是某些数值指标超过了阈值,例如某方向列车客票提前3天预售超过90%,列车晚点超过5 min,还可以是调度指挥过程中一些特殊情况,例如某区段施工9:00至11:00限速120 km,等等。本节定义铁路调度系统事件,以及从事件的产生一直到事件的使用和消耗策略的整个事件生命周期。

2.1 事件的定义

通过对铁路调度系统事件定义,明确在调度指挥过程中的某些状态变化,可能会对列车运行、行车组织、旅客服务、运营安全等方面造成影响,由系统以事件的形式实时捕获这些状态变化,及时通知系统和调度员采取相应措施。

定义1:事件E=(i,atrrs,param,caus,t0,t1),表示某一事件类型,既可以是简单事件,也可以是复杂事件。

其中: i是事件类型的唯一标识符,Ei表示事件类型标识为i的事件类型,即E.i=Ei,A(Ei,Ej,i≠j) | Ei.i≠Ej.j;atrrs=(topic,name,origin,priority),表示事件属性的多元组;topic为主题域,把事件按计划类、监控类、命令类等分为不同的主题域;name为事件名称,同一主题域内事件类型不能重名,不同主题域中的事件类型可以重名;origin为事件来源,可以表示来自不同的子系统,或某一调度终端设备;priority为事件优先级,可以定义为事件响应的紧迫度,即“一般”,“优先”,“紧急”;param为事件参数,对事件发生情况的数据补充,可以为空。

caus={e0,e1,…,em},m≥0,表示引发该事件的原因事件集合,若m=0,即caus为空。

t0,t1表示事件起始时间和结束时间。

通常,e表示事件类型E的实例,而ei表示Ei的实例,表示Ei的第j个实例,Ei·atrra表示事件Ei的某项属性。

2.2 事件的时序关系

对于由一系列事件组成的事件流而言,事件的发生有先有后,事件间存在着时序关系。存在时序关系的事件流即为事件序列。

定义2:事件时间操作符T(e)

其中,Tb(e)为事件起始时间操作符,Te(e)为事件结束时间操作符。对于复杂事件,t0时刻即Tb(e)为事件的发生时间。

定义3:时间间隔操作符Distance(e1,e2),表示两个事件实例结束时间的间隔。

Distance(e1,e2)←→|Te(e1)-Te(e2)|。

定义4:时间区间操作符,记为Interval(e1,e2),表示第1个事件实例的开始与第2个事件的结束时间之间的间隔;如果该操作符只有一个操作数,表示该事件实例的开始时间和结束时间的间隔。

定义5:顺序操作符Seq(E1,E2),表示事件E1结束后事件E2发生,使E1与E2串接在一起发生的复杂事件。

定义6:Within(E,T)为时限操作符,表示事件E必须发生在T时间范围内。事件E可以是简单事件,也可能为复杂事件。

2.3 事件生命周期管理

事件上下文环境约束(Context)规定了事件类型与其实例的关系,规定了对事件实例的使用策略。事件序列中的事件数量随着时间将不断增加,对事件检测形成巨大压力。同时,还必须有相应的事件实例消耗策略,以及从序列中清除老化事件实例的策略,避免事件序列的无限增长,并保证复杂事件监测的效率。

(1)顺序约束(SequenceContext),从事件序列中选择每类事件的第1个实例,即参与复杂事件检测。

(2)最近约束(NewestContext),从事件序列中选择最近发生的事件实例,即参与复杂事件检测。

(3)连续约束(SuccessionContext),事件序列中的每一个事件实例都参与复杂事件检测。

(4)积累约束(AccumulationContext),事件序列中的所有事件实例都将被保留直到复杂事件被检测到。

定义7:Instance(Ei,Context),为事件实例运算符,按事件上下文环境约束从事件队列中计算某类事件的数量,并按事件上下文环境约束取得相应的实例序列。

当复杂事件被检测到后,还需要按照相应的事件实例消耗策略,对事件序列进行管理。

定义8 :Clear(Ei),为事件实例老化运算符,将相关事件类型的所有实例都从事件序列中清除;,将某些参与检测的事件实例事件从序列中清除。事件序列中其余成员将继续参与其它复杂事件检测。

对事件序列的管理,还需要运用老化策略,将过期的事件实例从事件序列中清除。按照上下文关系,对各类事件的生命周期进行管理。

(1)事件实例生命周期:对于每个事件类型,规定其实例的生命周期,可以是几分钟或者数天,定时从事件序列中删除过期的事件实例。

(2)事件序列容量函数:事件序列在有限时间内为有限容量,因此必须规定每个事件类型其在事件序列中的实例数量,若某事件实例数超过额定数量,需按时间顺序,删除最早发生的事件实例,以保持事件序列为有限长度。

3 铁路调度系统复杂事件处理

铁路调度指挥和运营过程中会动态地产生大量数据,数据之间存在时序关系,且具有时空关联性,其中,某些数据具有特殊含义和隐含的语义关系。通过一定的预处理,可以把这些数据转化为事件,而这些事件之间存在着各种关系,经过一系列的处理可以将这些事件组织成完整的顺序关系,即组成一个偏序集。

3.1 事件流接入过程

事件的产生是指铁路调度系统内的调度业务动态信息、状态变化等转换为简单事件的过程,是根据调度业务事件定义将数据流转换成事件流的过程。在产生事件的属性中记录了相关的业务数据和环境数据。事件探测器通过对数据流中特殊意义数据的检测,或对数据库中的数据进行抓取产生事件,是产生事件的事件源。铁路调度系统事件流接入过程如图1所示。

图1 铁路调度系统事件流接入过程

在现有条件下,为了支撑业务流程完整性,铁路调度系统通过数据流接口或数据库接口与防灾安全系统、调度集中(CTC)系统、供电监控及数据采集(PSCADA)系统、旅客服务系统、铁路客票系统、动车管理系统、综合维修系统等相关系统接口,铁路调度系统与其它系统间形成数据流,通过对事件的捕获,把数据流转换为事件流,为后续的事件处理提供便利。

数据接口适配器(Data Adaptors)提供与外部系统数据链路和数据协议上的适配过程,把外部系统的数据接入铁路调度系统。

统一语义数据接入(Unified Semantics Data Access)是将外部系统接入的数据按照统一的数据字典进行数据语义方面的统一,通过统一语义数据接入保证检测事件语义的统一,才能有效地进行复杂事件的检测。

调度员在铁路调度系统中进行的相关业务操作也是事件,如调整计划、发送调度命令等业务操作,都可以形成相应的事件。

3.2 复杂事件处理过程

复杂事件处理包括简单事件检测、复杂事件检测、事件老化以及事件响应过程。复杂事件处理过程通过对大量业务数据的筛选,减少了业务事件的数量,提高了调度员对关键业务事件的处理和响应能力。简单事件检测过程是根据简单事件定义,把数据流变成事件流的过程。由事件探测器产生的简单事件构成的事件序列,是复杂事件处理的开端。

由于事件源可以是从外部系统进入的数据产生,也可以是从铁路调度系统内部的业务操作和业务状态的变化产生,不同类型的事件由若干探测器产生,在放入事件队列中会产生排队现象,会出现后发生的事件先进入队列的现象,因此事件序列是以事件产生的时间作为序列的时序标准,不是以进入事件序列的顺序为标准。但是由同一探测器产生的事件则是排队进入事件序列中的。铁路调度系统复杂事件处理流程如图2所示。

3.3 复杂事件检测

复杂事件检测是根据复杂事件检测规则,把简单事件变成复杂事件的过程。事件老化是根据事件消耗策略(事件老化规则),即事件上下文定义,对事件序列中的特定事件进行消除。事件响应过程是对检测出的复杂事件进行后续相关业务处理流程的调用,或通知(报警)等相关操作。

图2 铁路调度系统复杂事件处理过程

复杂事件检测又是在事件序列中检出满足复杂事件检测规则的事件组合的过程。随着规则数量的增加和事件序列长度的增加,如果直接对事件序列进行检测,由于各检测规则所对应的老化规则不同,无法对整个事件序列进行老化处理,检测效率将无法满足应用的需要。同时,当复杂事件检出后,相关事件应按老化规则予以清除,如不能清除,那么就会出现该项规则成立条件始终具备的情况,该复杂事件会被重复检出。对于上述问题,必须优化数据组织结构和复杂事件检测过程,提高复杂事件的检出效率。

定义事件实例存放的数据结构,按照事件类型,将事件实例分类存放。例如,E1类型的事件实例放入队列ES1,={e1,e2e3,…},E2类型的事件实例放入队列ES2,={e1,e2,e3,…},等等。由于每个事件实例都有其时间属性,因此按照事件类型分类存放并不会破坏事件间的时序关系。

持久化层是事件数据在数据库中的集中统一存储。内存数据对象层是将数据库中的事件数据转换为数据对象后在内存中的映像。由后台服务机制,使内存数据对象层与持久化层中的事件数据保持同步,对事件数据的存取都是经内存数据对象层间接完成的,从而提高事件数据的存取效率。

复杂事件检测过程如图3所示。

4 应用实例

以高速铁路防灾报警信息处理中,风报警的场景为例说明铁路调度系统复杂事件处理的过程。防灾系统监测高速铁路沿线风、雨、雪、落物等信息,当超过一定的阈值时,向调度中心发送报警信息,调度中心收到报警信息后做出相应的处理,实现铁路调度业务中复杂事件的监控、识别和处理,具有较好的有效性。模拟系统采用MySQL作为数据库,Tomcat为应用服务器平台,MQ为通信中间件,硬件采用IBM X3550 8 G Mem,Xeon 2.0 GHz CPU。

图3 复杂事件检测过程

4.1 简单事件生成

(1)建立数据接口适配器。通过数据接口适配器,与防灾安全系统、CTC系统、客服系统、综合维修系统等系统接口,接入列车运行状态与调整计划、维修计划等数据,防灾安全系统以风速报警信息数据流为例进行说明。

(2)进行统一语义处理。风报警信息和风报警解除信息包含风速计代码及名称、报警时间及位置、风速、风向、报警级别、影响范围、管制措施建议(限速、封锁)等信息,其中关于位置、范围等的定义,与列车运行计划、维修施工地点等位置的定义存在语义上的差异,必须统一为列车运行计划中的位置定义。

(3)生成简单事件。事件探测器将接收到的风报警信息和风报警解除信息转换为简单事件E1,E2,与[定义1]同,事件E=(i,atrrs,param,caus,t0,t1)。atr-rs=(topic,name,origin,priority)为事件属性,topic=02表示监控类主题域;name=01表示风报警,name=02表示风报警解除;origin=01表示事件来源为防灾安全系统;priority=02表示事件优先级为“优先”;param为该报警的相关参数,位置为线路编号和公里处,影响范围为监测点预定义影响范围2 000 m。

例如,8号线路95.3 km处,北京时间2014年3月9日4:30:20,风速20 m/s,风向315。,建议列车限速运行(160 km/h)。i=1,atrrs=(02,01,01,02),p11为相应参数,按照位置、风速、风向、影响范围、管制措施建议等顺序表达为p11=(08,95,300;20;315;2000;160),cause为空,t0=20140309043020,t1为空,则有表达发生的风报警事件。

4.2 复杂事件检测

由于瞬时局部阵风产生的偶发报警信息,或风报警设备误差产生的误报信息,对调度员的正常工作产生不必要的影响,通过增加特定的约束条件,把风报警简单事件转换为风报警复杂事件,从而提高对风报警响应的效率。

4.2.1 定义复杂事件监测规则

规则1:若连续收到第i个设备的风报警事件Ai不少于5个,且30 s内没有收到相对应的风报警解除事件A'i,则生成<风报警复杂事件>Bi,选择最近约束(Newest Context)作为Ai事件上下文环境约束。

规则2:若Bi影响范围内有列车运行,则生成<影响行车复杂事件>Ei,并选择最近约束上下文环境。

4.2.2 复杂事件提交

进一步处理包括建议调度员对列车进行限速,并通知司机、相关车站等。调度员根据风报警的影响范围和相关规定对线路进行限速,并根据运行计划对影响范围的相关列车发布限速命令。提高对报警信息的处理效率,经过复杂事件处理,形成复杂事件,实现对调度员的分析帮助。

4.2.3 定义事件老化规则

规则3:收到相对应的风报警解除事件A'i,则清除Ai事件序列。

规则4:报警范围内没有列车运行,则清除Bi事件序列。

4.2.4 复杂事件检测算法过程

5 结束语

本文定义铁路调度系统调度业务复杂事件,对铁路运营调度过程中产生的大量实时数据进行及时、高效的处理,筛选、抽取出简单事件,依据复杂事件定义,将简单事件进行关联和整合形成新的复杂事件。通过对运营调度典型业务处理场景的分析,将铁路调度业务处理流程与复杂事件处理规则进行整合分析。应用该研究成果的铁路调度系统可以从海量的铁路运营实时数据中发现影响运营的事件,确保适时采取恰当的处理措施。随着高速铁路的不断发展,对运力资源的高效合理运用更加注重,各工种调度之间的协同工作也越来越紧密,一个复杂事件的影响范围也逐渐扩大,这种影响范围的广度和深度极具复杂性,因此,如何有效地从历史数据中挖掘出有效的知识,不断丰富和调整对复杂事件的定义规则和处理规则,将是我们下一步的研究方向。

[1]E.Wu,Y.Diao,and S.Rizvi.High-performance complex event processing over streams[C].In Proc.SIGMOD,2006,June 27-29,Chicago.

[2]臧传真,范玉顺.基于智能物件的制造企业复杂事件处理研究[J].计算机集成制造系统,2007,13(11).

[3]David Luckham.The power of events:an introduction to complex event processing in distributed enterprise systems[M].Boston,USA.-Addison-Wesley,2002.

[4]MarkPalmer.An Overview and History of Complex Event Processing[EB/OL].The Event Processing Blog.April 2007.

[5]Chakravarthy,S.andMishra,D.Snoop:An expressive event specification language for active databases[J].Data&Knowledge Engineering,1994,14(1):1-26.

[6]Alonso G,Casati F.Web services and service-oriented architectures[C].Proceedings of the 21st International Conference on Data Engineering,Tokyo,Japan,2005:p1147-1147.

责任编辑 杨琍明

Complex event processing for Railway Dispatching System

LIU Haowei,YI Zhigang,ZHANG Yuan
( Signal &Communication Research Institute,China Academy of Railway Sciences,Beijing 100081,China)

Railway dispatching work is very comprehensively and complicatedly.In order to deal with various complicated situations effectively while train safety is guaranteed,the train controller needs to obtain the relevant information of train operation.This paper analyzed the business scene affecting the safety,high efficiency and high speed operation of trains in detail with the method and theory of complex event processing,researched on the definition,catching event,event life cycle,event handling process for the complex event of Railway Dispatching System,proposed a method of complex event processing for the System.The application result showed that the monitoring,identifcation and processing of complex event in railway dispatching business could be implemented by using this method,and it had good validity.

railway dispatching;complex event processing;system structure

U284.5∶TP39

A

1005-8451(2016)06-0055-06

2015-11-27

中国铁道科学研究院通信信号研究所青年基金项目(2015HT11)。

刘皓玮,研究员;易志刚,助理研究员。

猜你喜欢

实例报警定义
LKD2-HS型列控中心驱采不一致报警处理
2015款奔驰E180车安全气囊报警
成功的定义
死于密室的租住者
奔驰E260车安全气囊报警
完形填空Ⅱ
完形填空Ⅰ
修辞学的重大定义
山的定义
教你正确用(十七)