一种实时同步主备数据的高速铁路调度集中自律机系统的制作方法
2021-02-04 06:02:50|288|起点商标网
[0001]
本发明涉及轨道交通技术领域,尤其涉及一种实时同步主备数据的高速铁路调度集中自律机系统。
背景技术:
[0002]
高速铁路行车调度系统是铁路运输日常组织工作的指挥中枢。部署于车站的自律机系统依据调度中心铺画的阶段计划生成管辖范围内的行车指令,并在股道、区间、道岔和各类信号机等站场对象以及由这些对象组合表征的进路的状态变化驱动和指令触发时机管控下,有序可靠执行内部业务逻辑和安全卡控操作。作为行车调度系统核心单元,自律机系统的稳定运行对保障列车行驶平稳和高铁行车安全至关重要。
[0003]
调度系统运行过程中的软硬件故障以及各类突发事件不可避免的导致自律机系统单点故障。根据国铁集团相关企业技术标准和现场实际需要,现有自律机系统实行主备双机热备冗余运行模式:自律机备机在车站控制模式、关键逻辑状态、列车进路序列、调车作业单、控制命令等关键数据方面,与自律机主机保持严格一致和伪/准同步。这就涉及自律机主备机同步运行方式的选定,包括主备数据同步方案和主备同步交互逻辑。现有自律机主备同步方式包括超完备数据延迟同步、故障时刻即时伪同步、第三方存储介质同步等方式,但在同步数据交互总量、同步时机波动幅度和受第三方安防设备影响等方面存在较为明显缺陷,此外较大的同步延迟也在特定场景下难以满足自律机主备平顺倒切需求。
[0004]
随着高速铁路行车密度持续加大,自律机内部用于主要行车业务的核心数据量不断攀升。自律机系统主备机间核心数据的高效、可靠和(准)实时同步以及突发故障下的主备平顺倒切能力,成为行车调度系统稳定运行的现实迫切需求。设计一种同步逻辑清晰、同步时机合理、同步数据量小和同步效能优异的自律机系统,实现实时同步主备数据功能,对于提升行调系统整体稳定运行和智能改进有极大促进作用。
[0005]
下面针对现有技术中的同步方式及其缺陷进行说明。
[0006]
方案一、自律机主备机完全独立且同步运行各自业务逻辑,即通过输入数据的一致性和业务逻辑的一致性间接实现核心数据的一致性。
[0007]
该方案下,自律机主备机分别连接分机,接收分机相同的输入数据,包括阶段计划、站场显示、车次追踪、联锁排路等信息。在相同输入的驱动下,部署于两套硬件设备的同一自律机程序各自独立运行预期一致的业务逻辑,并产生预期一致的业务输出。方案一预期通过相同的程序实现、相同的外部输入、相同的内部逻辑,在主备机中产生相同的输出数据,进而解决了自律机主备机间的数据同步问题。但是,分机到自律机的网络延迟和阻塞将会导致自律机主备机接收数据时序的偏差,破坏调度任务和时序任务的业务一致性;自律机主备机硬件性能差异、操作系统时钟漂移以及自律机程序固有轮询处理间隔的抖动,破坏业务逻辑的步调一致性。在长时间不间断运行后,自律机主备机不可避免地产生内部数据的差异。轻微的数据差异会在时间的加持下不断被放大,进而影响主备倒切后行车逻辑的平滑过渡。
[0008]
方案二、自律机备机不独立运行业务逻辑,由自律机主机定时周期性或在特定时机向备机同步本地全体数据,即超完备数据延迟同步方案。
[0009]
相较于方案一,方案二中的自律机备机仍然接收分机数据(站场显示、车次追踪等),但不再独立运行业务逻辑,自然也无对应业务数据输出。自律机主机对分机的输入数据施加本地业务处理操作并产生输出数据后,定时周期性或在特定时机(如数据变化累计一定程度后)向备机同步本地全体数据,实现自律机主备数据同步功能。其中,同步的全体数据包括自律机内部对象实体的标识、属性、状态、临时附属信息以及与外部对象的关联关系等由计划信息、分机输入数据以及自律机业务逻辑融合产生的一切运行数据。方案二中的全体数据不加区分的将自律机主备倒切的必备数据和额外附属数据一并同步,实现简单,但数据量大。尤其是,自律机主备倒切的必备数据是方案二中超完备数据的子集,额外的无意义补集数据的同步导致方案中传输数据量较高,加重网络负担和分机业务处理压力。定时周期性或变化数据累加阈值逻辑可能进一步增加同步数据量,还导致同步时机延迟,自律机备机无法时刻保持与主机的严格数据一致性,影响主备倒切平顺效果和业务处理连贯性。
[0010]
方案三、自律机备机不再接收外部数据,包括分机数据和自律机主机同步数据。在主备倒切后,新升为主机的自律机设备(原备机)立即向中心调度台重新申请完整阶段计划,从当前节点开始执行业务操作,即故障时刻即时伪同步方案。
[0011]
相较于方案二,方案三中的自律机主机保持不变。但自律机备机不再接收分机的外部数据,也不接收自律机主机的同步数据(自律机主机也可不再发送同步数据)。突发故障或人工倒切后,新自律机主机(倒切前的原自律机备机)接收分机的外部输入,包括站场显示、车次追踪等,并向中心调度台重新申请全部阶段计划。新主机在行调台重新下达的阶段计划基础上,重新创建与原主机一致的指令链表,并依据即时站场显示更新指令状态,使新主机重建倒切前的原主机的内部数据状态。方案三中,主备机间不再同步数据,阶段计划的额外下达辅助实现倒切前后新旧主机的状态/数据一致。但是,方案三中的每一次主备倒切必然涉及一次阶段计划的重新下达。首先,调度员的人工介入增加人工工作量,频繁的倒切还会产生频繁的人工介入,引起调度员反感;其次,倒切时刻新主机接收的阶段计划(如调度员未修改完成的中间临时计划)可能与倒切前旧主机接收的阶段计划不相同,使得新主机不具备复原旧主机状态的基础;第三,倒切前的旧主机内部数据状态是由阶段计划和连续的站场显示变化累计所得。由于缺少状态演进过程,新主机在根据即时站场显示和新阶段计划复原旧主机累计状态方面存在较大难度。
[0012]
方案四、借助第三方存储介质,自律机主机将同步数据定时周期性或在特定时机存储于备机的相关介质中。自律机备机不独立运行业务逻辑,在备机升为主机后,新主机读取介质中的同步内容实现数据同步,即第三方存储介质同步方案。
[0013]
相较于方案二,方案四不再依赖socket网络通信和分机转发,而是由自律机主机直接访问(如网络映射的方式)备机的存储介质(如硬盘),通过网络读写的方式将自律机主机数据存储于备机介质中。由于同步数据的持久化操作,方案四不受备机中自律机程序运行与否的影响,在特定场景下同步可靠性高于方案二。但是,在网络安全压力越来越大的背景下,自律机主机直接访问备机的存储介质极易被安防监控设备拦截,导致同步操作失败。此外,第三方存储介质的读写操作性能严重落后于数据的内存操作性能,拖累自律机主备
同步效率。
技术实现要素:
[0014]
本发明的目的是提供一种实时同步主备数据的高速铁路调度集中自律机系统,提升了自律机主备同步的实时性,减少了自律机主备同步数据量,缓解既有同步路径中网络节点的消息分发和网络设备压力,降低同步操作中故障发生概率。
[0015]
本发明的目的是通过以下技术方案实现的:
[0016]
一种实时同步主备数据的高速铁路调度集中自律机系统,包括:自律机主机与自律机备机,二者内部均设有同步模块;
[0017]
自律机主机同步模块,根据同步轮询间隔或者外部输入驱动触发整体同步流程,抽取涉及行车业务操作的全部数据,构造完整自律机主备同步数据,通过通信模块将完整自律机主备同步数据转发至自律机备机同步模块,进行整体同步;
[0018]
或者,根据外部输入驱动或业务轮询间隔触发增量同步流程,抽取在当前阶段与上一阶段之间涉及行车业务操作中发生变化的数据,构造增量变化的同步数据,通过通信模块将增量变化的同步数据转发至自律机备机同步模块,进行增量同步。
[0019]
由上述本发明提供的技术方案可以看出,通过自律机主备定时整体同步辅助实时增量同步,实现自律机主备倒切过程中业务逻辑无缝过渡,保证自律机业务逻辑完整性、一致性、统一性和连贯性,最终实现行车调度系统核心功能稳定可靠持续运行,保障高铁行车安全。
附图说明
[0020]
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
[0021]
图1为本发明实施例提供的一种实时同步主备数据的高速铁路调度集中自律机系统的示意图;
[0022]
图2为本发明实施例提供的自律机内部对象实体关联关系示意图;
[0023]
图3为本发明实施例提供的对象标识数据示意图;
[0024]
图4为本发明实施例提供的同步对象的数据结构示意图;
[0025]
图5为本发明实施例提供的自律机主备数据同步整体流程图;
[0026]
图6为本发明实施例提供的自律机主机主动同步间隔n计算流程图。
具体实施方式
[0027]
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
[0028]
本发明实施例提供一种实时同步主备数据的高速铁路调度集中自律机系统,两套
自律机设备中ip地址较小的模块为a机,另一套为b机。同一时刻,a/b机只有一套模块为主机,另一套为备机。a/b机主备状态可由设备节点故障自行切换或人工手工切换。
[0029]
自律机根据阶段计划生成进路指令(简称为指令),依据股道、无岔、区间、道岔、信号机等站场对象以及由这些站场对象所表征的进路的状态,驱动内部业务逻辑和安全卡控的正确执行。作为后台服务类程序,自律机与车站分机、车次追踪等子系统共用硬件设备,日常无人直接操作和无人值守。鉴于自律机系统对保证行车安全的重要性和独特运用环境,根据国铁集团相关企业标准,车站自律机采用工业控制专用硬件平台和模块化结构,支持双机热备。
[0030]
自律机主机和自律机备机独立运行于各自硬件平台,互相备份,共同执行同一服务。当工作主机出现异常时,备机升为主机,接管倒切前工作主机的工作,继续对外提供行车控制服务,保证调度系统不间断运行,是整套系统高可用性的基础。
[0031]
如图1所示,为实时同步主备数据的高铁调度自律机系统的主要结构,在既有业务模块和通信模块之间,新增实现同步主备数据功能的同步模块,自律机主机同步模块抽取业务模块核心数据,经过内部同步流程处理后,通过通信模块将同步数据经由分机转发至自律机备机。自律机备机同步模块反向解析,复原核心数据交送至下层业务模块;具体来说:自律机主机同步模块,根据同步轮询间隔或者外部输入驱动触发整体同步流程,抽取涉及行车业务操作的全部数据,构造完整自律机主备同步数据,通过通信模块将完整自律机主备同步数据转发至自律机备机,进行整体同步;或者,根据外部输入驱动或业务轮询间隔触发增量同步流程,抽取在当前阶段与上一阶段之间涉及行车业务操作中发生变化的数据,构造增量变化的同步数据,通过通信模块将增量变化的同步数据转发至自律机备机,进行增量同步。
[0032]
为了便于理解,下面从同步数据对象及相互关系、数据同步流程、同步数据协议三个方面进行介绍。
[0033]
一、同步数据对象及相互关系。
[0034]
作为行车调度的核心模块,自律机主要应用场景及功能包括:
[0035]
1、列车行车控制:接收中心行调台或车站车务终端的阶段计划,结合站场进路配置生成进路指令;监控内部进路指令列表,对待执行的进路指令通过发送控制命令的方式自动择机执行;依据进路指令、控制命令及站场显示,创建相关列车接发车进路预告;根据站场显示、对端设备(主要分机、机车等设备)消息回执等方式,实现进路指令、控制命令以及进路预告的全生命周期管理。
[0036]
自律机业务逻辑中,可能与各类外部设备产生数据交互,此处主要指排路、控制命令以及进路预告业务逻辑中,所涉及的对端设备。排路过程中,自律机向车站分机发送控制命令,分机向自律机返回相应回执,所以此时的对端设备是分机。发送接车进路预告逻辑中,自律机通过一系列中间设备,向机车发送进路预告信息;机车收到并确认后,确认回执信息通过一系列设备返回至自律机,所以此时的对端设备是机车。
[0037]
2、调车行车控制:接收调车作业单,自动检查列车调车冲突,实现调车计划的自动办理等功能。
[0038]
3、设备逻辑状态控制:通过控制终端人工操作或外部接口采集获取的设备逻辑状态变化控制功能。设备逻辑状态包括封锁、停供电、分路不良等状态。
[0039]
4、设备行车状态控制:接收中心助调台或车站车务终端的人工操作指令,实现车站行车设备的远程控制。设备行车状态包括道岔定反位、股道占用等状态。
[0040]
5、对象状态监控:监控部分实体对象和虚拟对象,包括对象逻辑状态和行车状态以及对象属性的变化,并对外提供报警提示信息。
[0041]
6、内部状态输出:自律机将行车业务逻辑中得到的内部对象状态以特定数据协议形式定期全体或实时增量对外输出。
[0042]
7、其他:其他涉及行车控制操作的业务功能、辅助功能等。
[0043]
分析自律机应用场景及功能,同时结合自律机系统既有实现和配置数据,将自律机内部数据节点转换为若干类别对象实体,包括站场对象、端口对象、进路对象、行车指令对象、控制命令对象、进路预告对象、站场对象逻辑状态对象等。各对象实体关联关系见图2。图中圆圈代表对象实体(即指令、命令、进路、端口、预告等均为对象实体);带箭头的指针代表有方向的关联关系,其中双箭头指针代表两个对象相互关联。
[0044]
部分对象来源于基础数据配置,是实体站场对象或逻辑站场对象的信息化表示,如站场对象、端口对象、进路对象等。自律机主备机具备完全相同的基础数据配置,因此此类静态对象实体无需同步。
[0045]
部分对象是外部实时数据与基础数据的融合,如部分站场对象逻辑状态对象。此类对象不涉及行车操作,由外部对象实时发送至自律机,这些信息的源头和保持方,都不是自律机,如移动授权、限速状态等,这些对象逻辑状态是站场即时状态的一种呈现,无需主备同步。
[0046]
部分对象涉及行车业务操作,是自律机行车逻辑的具体状态体现,需要在自律机主备机间进行同步,包括行车指令对象、控制命令对象、进路预告对象以及站场对象逻辑状态对象,此处所涉及的站场对象逻辑状态由行车调度自律机系统自行产生、保持,并对外发送,它们包含影响行车安全的逻辑状态对象,例如对象封锁、停供电、分路不良等。
[0047]
同步数据实体对象及关联关系确定后,根据数据存储方式和主备同步方法的特点和需求,划分附属于对象实体之上的数据类别,包括对象标识数据和对象附属数据。
[0048]
1、对象标识数据。
[0049]
对象标识数据为对象实体的身份id,用于区分、查找和定位实体对象,除对象实体增加和删除外,对象标识数据在对象实体的全生命周期保持不变。
[0050]
由于行车调度自律机是对可靠性、稳定性和计算效率有较高要求的时间敏感系统。自律机主备同步逻辑中,需要引入对象标识数据来标识同步数据,同时兼顾消息来源设备卡控、来源站码卡控、时间卡控以及消息追溯和现场问题调试辅助等功能。依据系统和业务特点,采用snowflake算法思想构造对象标识数据。
[0051]
本发明实施例中,采用32位整型数值表示对象标识数据:其中最高位表示当前保存该对象实体的自律机设备,自律机a机保存对象标识数据最高位为0,自律机b机为1;低31位由首次创建该对象实体的自律机设备递增构造,该部分值在存续期间唯一且保持不变。
[0052]
如图3所示,对象标识数据为32bit整数型数值,依次包含4部分内容:自律机ab机的标识字段、车站标识字段、递增序列字段和时间标识字段。
[0053]
1)自律机ab机的标识字段。
[0054]
自律机主机与自律机备机的标识字段为1bit二进制数值,用于标识设备来源,定
义自律机a机发送同步数据的最高位为0,自律机b机则为1;当自律机a机为自律机主机时,自律机b机接收到同步数据后,校验同步数据的最高位是否为0;若为1,则抛弃该同步数据;当自律机b机为自律机主机时,自律机a机进行相同的校验操作。
[0055]
2)车站标识字段。
[0056]
车站标识字段为7bit二进制数值,标识同一调度台内的不同车站。行车调度系统中以单一调度台管辖设备/车站为消息分发虚拟网络,一般单调度台包含10个左右车站。7bit二进制数据取值范围为0~127,在满足调度台内车站自律机标识需求的基础上,适当为其他调度设备保留预留。同一车站的自律机ab机具有相同的车站标识码,同调度台不同车站则为不同车站标识码;当自律机主机向自律机备机发送同步数据时,自律机备机检查车站标识字段,当与本机车站标识字段不一致时,抛弃该同步数据。
[0057]
3)递增唯一序列字段。
[0058]
递增唯一序列字段为18bit二进制数值,取值范围为0~262143;自律机主备机保存当前共同交互的递增唯一序列值;自律机主机发送同步数据值,该字段递增加一,当备机转为新主机时,继续交互的序列值,进行后续同步;自律机备机接收的新同步数据的序列值必定大于上次同步数据的序列值(上限262143再度轮转到数值0的场景为特殊情况);当新同步数据的序列值小于等于上次同步数据的序列值时,抛弃该同步数据;
[0059]
4)时间标识字段。
[0060]
时间标识字段为6bit二进制数值,取值范围0~63。该时间标识字段填入主机发送同步数据的系统时间的秒数值;如20:40:35,则该字段二进制数值为100011(十进制为35)。自律机备机接收同步数据时,校验时间标识字段与本机系统时间的秒数是否相同或者差值不超过设定值内;当数值超过设定值,可能由于网络延迟或网络回环造成该包同步数据已不具备时间有效性,无法表征当前自律机主机的内部数据状态,抛弃该同步数据。
[0061]
上文所提及的同步数据包括:完整自律机主备同步数据与增量变化的同步数据。也即不区分整体同步操作和增量同步操作。上述对象标识数据构造算法具备计算简单、信息量大、存储和传输效率高,同时兼顾数据有效性校验功能,有效避免由于消息分发错误或网络阻塞导致的消息失效问题。
[0062]
2、对象附属数据。
[0063]
对象附属数据为实体对象的结构化属性值,随各种控制操作与外部输入产生相应变化;对象附属数据可在对象实体的全生命周期的任意时刻发生改变,包括增加、删除和修改;对象附属数据分为独立附属数据和依赖附属数据两类;独立附属数据直接存储于所属对象实体的数据结构体中,依赖数据则通过对象实体数据结构中的链接关系,间接存储于其他的对象实体的数据结构中,依赖附属数据通过一级链接或者多级链接关系获取。
[0064]
一个典型的对象数据环境如图4所示。图中包含4个对象实体(简称为“对象”),对象1/2/3/4,以对象1为例。假设当前a机为主机,b机为备机。示例中,a机根据输入首次创建对象1,则对象1标识数据最高位为0(图中对象1标识数据的x位),低31位为(图中y位)唯一递增不重复数值。当a机向b机同步该对象实体时,b机更改标识最高位由0为1,并保持低31位数值不变,作为b机中该对象的标识数据。划分最高位为设备标识符,可以缩小现场调试中的问题范围,加快问题解决进度。对象1的标识数据下方为对象1的附属信息数据。对象1的独立附属信息1/2/5直接存储于对象1的结构体中,依赖附属信息3以指针的形式存储于
关联结构体中,附属信息4则存在多级链接关系。图4中所有浅灰色方框为对象标识数据类型数据,深灰色方框为独立附属数据类型数据,白色方框为依赖附属数据类型数据。
[0065]
对象标识数据为数据结构中的关键区,对象附属数据(包括独立附属数据和依赖附属数据)中的变化部分又称为数据结构中的变化区,未变部分称为保持区;独立附属数据自身发生变化即可转换为变化区,依赖附属数据则需要链接对象实体的数据的变化才能够转换为变化区;图4中,当对象3发生变化时(主要是对象3的增加或删除场景),对象1和对象4需要同步更新各自依赖附属数据中链接至对象4的部分,即对象3的数据变化除在自身直接产生变化区外,连带在对象1和对象4的依赖附属数据中产生变化区。
[0066]
完整自律机主备同步数据包含涉及行车业务操作的全部对象实体的相关数据;增量变化的同步数据包含数据产生变化的对象实体的相关数据,具体将在后文进行介绍。
[0067]
二、数据同步流程。
[0068]
自律机主备同步业务是附属核心行车业务的辅助功能。在保证主业中心地位的前提下,同步业务以低优先级和附属流程的方式实现和执行。设计包括整体同步方式和增量同步方式的自律机主备同步完整流程。
[0069]
如图5所示,为自律机主备同步完整流程,主要包括三个分支:中间分支sa为主要负责由外部数据驱动的业务逻辑,包括行车业务逻辑、主备数据增量同步业务逻辑和主备数据整体同步业务逻辑(此逻辑由自律机备机的同步请求触发);左侧分支sb主要负责由时间触发的行车业务逻辑以及关联的主备数据增量同步业务逻辑;右侧分支sc主要负责由时间触发的主备数据整体同步业务逻辑。主要流程如下:
[0070]
步骤s0、自律机启动,读取静态配置文件,初始化内部参数和部分对象链表,构建多任务框架,即前文介绍的三个分支。
[0071]
1、增量同步逻辑。
[0072]
包含外部输入驱动与、业务轮询间隔两类触发方式。
[0073]
1)外部输入驱动的增量同步流程。
[0074]
步骤sa1、自律机主机等待外部数据输入。
[0075]
步骤sa2、自律机主机对输入数据进行有效性检查和规整化操作。
[0076]
步骤sa3、自律机主机对输入数据进行分类判定,数据类型包括行车业务相关数据和备机同步请求数据两大类;对于自律机备机同步请求将触发整体同步流程,对于行车业务相关数据,转入步骤sa4。
[0077]
步骤sa4、自律机主机触发对应业务逻辑,如阶段计划数据对应创建行车指令操作、人工排路操作对应排路操作等。
[0078]
步骤sa5、对步骤sa4步骤中业务操作所产生的对象实体及对象实体数据的变化,向行车调度其它子系统发送关联业务数据输出,如根据阶段计划创建行车指令后需要向控制终端发送进路表信息等。
[0079]
步骤sa6、步骤sa1至sa5为核心行车业务,在完成上述流程后,鉴定步骤sa4中对象实体数据是否存在变化,存在任何对象数据变化时,转步骤sa7;否则,转步骤sa;
[0080]
步骤sa7、步骤对sa4中业务操作所产生的对象实体及对象实体数据的变化进行筛查,划定对象实体数据的变化区和保持区,即限定主备同步的增量数据范围。
[0081]
步骤sa8、对步骤sa7中限定的增量同步数据范围进行转换,按照协议(即,同步数
据协议,将在后文介绍)生成当前阶段的增量变化的同步数据。
[0082]
步骤sa9、发送增量变化的同步数据至自律机备机,转步骤sa1。
[0083]
作为后台程序,自律机通过上层业务逻辑层和下层数据操作层实现业务与数据的解耦和隔离。根据同步数据范围和需求,图5的步骤sa6通过在自律机数据层预置相应触发器,以实现附属数据的变检功能。
[0084]
2)业务轮询间隔触发增量同步流程。
[0085]
自律机等待业务时间间隔轮询条件。如步骤sb1所示,当满足特定业务时间条件时,直接转入步骤sa4执行对应行车业务逻辑,并可能执行对应的主备数据增量同步业务逻辑。典型的场景如行车指令已到时间触发条件,自律机尝试执行列车自动排路操作。
[0086]
不同于整体同步逻辑,增量同步逻辑需要精确确定自律机内部影响行车业务的变化数据。变化数据限定范围偏小,容易出现数据遗漏未同步的问题;变化数据限定范围偏大,则会导致同步冗余和网络资源浪费。在上述步骤sa7中,引入了增量同步数据检测算法(即三色区域算法检测)实现变化对象实体本身及受影响的对象实体间关系数据的精确检测,从而构造增量变化的同步数据,主要步骤包括:
[0087]
1)构造三种颜色区域,记为第一颜色区域、第二颜色区域及第三颜色区域,用于存放实体对象。例如,三个颜色区域可以依次为白色、灰色、黑色。
[0088]
2)罗列所有对象实体,包括上次同步之后已删除或新增加的对象实体,将所有对象实体放置于第一颜色区域。
[0089]
3)将步骤sa6中实际变化的对象实体由第一颜色区域转移至第三颜色区域。
[0090]
4)遍历第三颜色区域中的对象实体,将第三颜色区域中的对象实体关联的(包括主动关联、被动关联和双向关联)对象实体由白色区域转移至第二颜色区域。
[0091]
本发明实施例中,对象实体关联是指程序逻辑实现中,两个对象实体有业务依赖关系。如图2所示,图2中两个对象实体间的箭头,即代表两对象存在关联关系;a指向b,代表a主动关联b,b被动关联a(如a为指令,b为进路);如果a和b间是双向箭头,则ab为双向关联(如指令和预告)。
[0092]
5)遍历第二颜色区域中的对象实体,将第二颜色区域中的对象实体关联(包括主动关联、被动关联和双向关联)的对象实体由第一颜色区域转移至第二颜色区域,已处于第二颜色区域或第三颜色区域的关联对象实体,保持位置不变;重复本步骤,直至第二颜色区域中内容不再发生变化。
[0093]
6)第三颜色区域中对象实体为实际变化的对象,第二颜色区域中对象实体为受影响对象;将第三颜色区域中对象实体的关键区与变化区、以及第二颜色区域中对象实体的关键区分别打包,组合后构成增量变化的同步数据。
[0094]
上述算法执行完毕后:
[0095]
第一颜色区域为安全区域,未受任何逻辑业务影响。区域中的对象为无需同步的对象,对象本身在上次同步之后,无新增或删除操作,对象的附属数据也不存在修改操作。
[0096]
第三颜色区域为污染区域,受到逻辑业务的直接影响。区域中的对象为数据本身发生变化,包括对象新增或删除,对象的附属数据存在修改等。在增量同步逻辑中,需要对黑色区域中对象的关键区数据和变化区数据打包同步。
[0097]
第二颜色区域为隔离区域,受到逻辑业务的间接影响。区域中的对象数据本身无
变化,但关联对象存在变化,需要在备机重建灰黑区域对象之间的关联关系。在增量同步逻辑中,需要对灰色区域中对象的关键区数据打包同步。
[0098]
2、整体同步逻辑。
[0099]
包括同步轮询间隔及外部输入驱动两类触发方式,前者为主动触发,后者为被动触发。
[0100]
1)同步轮询间隔触发的整体同步流程。
[0101]
步骤sc1、自律机主机等待主备整体同步轮询间隔条件,当满足主备整体同步时间条件时,转步骤sc2。
[0102]
步骤sc2、自律机主机对内部数据和业务操作进行加锁操作,以保证对象实体的数据资源在本任务分支和其他业务分支执行的步骤sa4并发访问同一数据的一致性和有序性。
[0103]
步骤sc3、构造完整自律机主备同步数据。
[0104]
步骤sc4、自律机主机向自律机备机发送完整自律机主备同步数据,并进行解锁操作。
[0105]
在图5所示的同步流程中,任务分支sa和任务分支sb为高优先级任务分支,任务分支sc为低优先级任务分支。
[0106]
设定同步轮询间隔为n(单位秒),递增步长为e(单位秒);n的取值范围为[n
min
,n
max
],n
min
、n
max
分别为同步轮询间隔下限、同步轮询间隔上限。如图6所示,自律机主机主动发起的整体同步的同步间隔n的计算流程包括:
[0107]
步骤s1、初始时刻,n=n
min
;设定较小的同步间隔值n,使主备机尽早建立完整且一致的数据结构。
[0108]
步骤s2、自律机主机同步线程让出cpu,整体同步逻辑空转,等待同步时机。
[0109]
步骤s3、判定当前时刻是否距上次整体同步已超过n秒;未超过时,则转入步骤s2继续等待;否则,转步骤s4。
[0110]
步骤s4、整体同步时机已到,自律机主机触发整体同步流程。
[0111]
步骤s5、整体同步流程结束,判定同步过程中是否发生异常;当无异常时,转步骤s6;当有异常时,如同步数据发送失败,说明主备间网络、调度设备等存在异常,需立即缩小同步间隔,尽早再次同步,转步骤s1。
[0112]
步骤s6、设定n以步长e递增。
[0113]
步骤s7、当n小于等于n
max
时,转步骤s2,等待下次同步时机;n超过n
max
时,转步骤s8。
[0114]
步骤s8、限定n=n
max
,避免同步间隔n的无限扩大。
[0115]
在整体同步单次完整交互流程无异常时,同步间隔n以步长e递增,在保证基本同步业务的基础上,减少了同步次数和同步数据量。当整体同步发生异常时(如自律机主机同步消息发送失败,或者自律机备机解析失败未及时发送确认回执,等等),同步间隔n立即回退至n
min
,尽早再次同步。算法在“慢加快减”的思路下,兼顾了同步效率和同步需求。
[0116]
实际使用中,可设定n
min
=10,n
max
=600,e=10。
[0117]
2)外部输入驱动触发的整体同步流程。
[0118]
如图5的步骤sa3所示,自律机主机接收到的外部输入数据为来自律机备机的同步
请求,直接执行步骤sc3。
[0119]
所述自律机备机至少在如下三种情况会发送同步请求:
[0120]
a)自律机备机首次启动或刚刚复位后;
[0121]
b)自律机备机对接收到的完整自律机主备同步数据或者增量变化的同步数据校验错误时;
[0122]
c)自律机备机检测到网络设备、调度设备或其他网络节点异常时。
[0123]
三、同步数据协议。
[0124]
本发明实施例中,针对整体同步逻辑及增量同步逻辑设计了同步数据协议,以约定的协议和格式进行构造、组包、分发和解析处理。同步数据的构造组包和解析处理互为逆过程。
[0125]
同步数据协议中约定的同步数据格式如表1所示,主要包括:
[0126]
通用协议包头,包括:行车调度内部通信协议包头、以及通信协议信息类型;在行车调度系统内部,有一套内部的通信协议的,比如站场表示信息,追踪车次信息、逻辑表示信息、控制命令信息等。自律机主备同步信息,也跟上述信息类型一样;行车调度系统内,对每一个信息类型分配一个数值id,用于唯一标识。
[0127]
同步数据头,包括:同步类型与压缩标识;所述同步类型包括:整体同步与增量同步两类;压缩标识用于指示同步数据是否为压缩数据;
[0128]
同步数据内容,包括:一组或多组变动类别、关键区数据以及变化区数据;
[0129][0130]
表1同步数据协议中的同步数据格式
[0131]
本发明实施例中,所述关键区数据和变化区数据采用xml数据格式或者json数据格式。
[0132]
优选的,可以预先搜集与分析自律机主备同步历史数据,对同步数据中出现频率高于设定值(可根据情况自行设定)的格式化文字进行提取和标签化,统一使用数字id表征;将格式化文字与数字id及其映射关系存储于静态配置文件中,定义为同步数据模板;该同步数据模板由自律机主备机在启动时静态加载或通过后台参数动态加载;自律机主机在
同步数据构造过程中,基于同步数据模板将将详细的、包含冗余的格式化文字使用数字id来表征。自律机备机在同步数据解析操作中,再次利用数据模板执行反向转化。模板的引入进一步缩减了同步数据内容量,减轻了网络数据流量和网络压力。
[0133]
本发明实施例上述方案,主要获得如下有益效果:
[0134]
1)自律机主备倒切业务无需人工干预,减轻调度员人工介入次数和调度员人工劳动强度;避免调度员延迟操作导致的同步阻塞和新主机无基础数据可用的实际问题。
[0135]
2)自律机主备倒切业务无需第三方存储介质介入,不易受安防设备和安全策略的影响。
[0136]
3)提升了自律机主备同步的实时性,减少了自律机主备同步数据量,缓解既有同步路径中网络节点的消息分发和网络设备压力,降低同步操作中故障发生概率。
[0137]
4)通过自律机主备定时整体同步辅助实时增量同步,实现自律机主备倒切过程中业务逻辑无缝过渡,保证自律机业务逻辑完整性、一致性、统一性和连贯性,最终实现行车调度系统核心功能稳定可靠持续运行,保障高铁行车安全。
[0138]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例可以通过软件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,上述实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0139]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将系统的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
[0140]
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除
相关标签: 关系逻辑
热门咨询
tips