联邦式数据交换与共享技术研究与实现
扫描二维码
随时随地手机看文章
引 言
当今铁路快速发展,带动了信号技术的跨越式进步。大量先进的信号系统与技术投入运营。如装备监测设备可进行实时状态信息采集,并利用这些采集的实时信息进行故障诊断和及时报警,可以在极大程度上提高铁路的运行效率。然而这些监测信息、状态信息等大都存储于各个地区不同的监测站点,而这些站点维护着自己的监测系统,使用着彼此互不兼容的存储格式,形成了一个个“信息孤岛”[1]。所以要想充分利用这些监测信息、状态信息,进行计算机辅助故障诊断、判断故障、开展智能化研究、预测设备健康状况等工作时,就必须对现有的互不兼容的异构数据库进行数据集成。目前,现有的数据集成方案已日趋成熟,然而国内乃至世界范围内将数据集成技术运用到铁路电务综合检测上的成功案例基本没有。本研究在充分分析各个监测站点数据格式的基础上,提出一套基于各个监测站点的联邦式管理方法,用以实现各个站点间的透明访问[2,3]、成员间历史数据交换、成员实时数据的订阅与即时推送[4]。在保证现有各个数据源独立性的同时,以一个统一的视角对当前的所有监测信息、状态信息等进行综合利用。为电务综合监测系统进行高效的智能故障诊断提供良好的数据基础。
电务综合监测联邦式数据交换与共享系统设计
电务综合监测联邦式数据库管理系统要求系统内的两个成员之间可以进行数据互操作,即联邦内的任意一个成员可以调阅联邦内其他成员的数据,可以订阅联邦内其他成员更新的实时数据。要求当一个联邦成员有数据更新时,可以将该更新内容推送给其它订阅了该数据的成员。
系统主要分为以下几个模块:
(1) 注册模块
所有想要加入联邦系统的数据源都需要向联邦控制中心申请注册,成功后才能以一个邦员的身份做其他操作。
(2) 数据定义模块
根据数据源结构的不同可以手动或者自动定义本地数据库全部数据的基本信息,为控制中心制定全局数据库提供基本信息。
(3) 数据发布模块
该模块负责信息定义邦员的数据发布,并将该信息提交至控制中心的数据容器。
(4) 数据订阅模块
该模块负责定义邦员的数据订阅情况,并将该信息提交至控制中心的数据容器 。
(5) 数据自动推送模块
在邦员有数据更新时,会将这些更新推送给订阅了该数据的其他邦员。
(6) 透明访问模块
提供对全局数据的访问,联邦系统自动根据查询请求分解成针对各个邦员的子查询,并汇总结果,返回给请求发起方, 在不知道系统内其他成员的情况下获取对应的数据。
该系统流程主要分为成员注册初始化、成员之间的数据共享交换、系统透明访问三个部分。成员注册初始化过程如图 1 所示。
1.1 注册及初始化流程
(1) 注册
填写自身注册名称、自身IP、联邦控制中心 IP,根据控制中心IP 发出注册请求。如果符合注册资格则返回注册成功的消息。
(2) 邦员数据定义
定义自身的全部数据基础信息,形成 LDM(Local Data Model,LDM)文件发送给控制中心,控制中心汇总各个邦员的 LDM 文件形成 GDM(Global Data Model,GDM)文件。GDM 文件包含当前系统所有成员的全部数据信息。
(3) 邦员数据发布
定义邦员的数据发布信息,并提交至控制中心。控制中心汇总各个邦员的发布信息形成GPM(Global Publish Model, GPM)文件,即全局发布文件。
(4) 邦员数据订阅
定义邦员的数据订阅信息,提交至控制中心。控制中心汇总各个邦员的数据订阅信息形成 GSM(Global SubscribeModel,GSM)文件,即全局订阅文件。
1.2 联邦成员数据共享交换流程
控制中心通过数据容器来描述整个联邦的全局数据及各个邦员的数据订阅/发布情况,并将最新副本冗余存储到各个邦员。数据容器总共包含三大配置文件:GDM(全局数据模型), GPM(全局发布模型),GSM(全局订阅模型)。
GDM:记录联邦系统中的所有数据基本信息。
GPM:记录各个邦员的数据发布情况。
GSM:记录各个邦员的数据订阅情况。
当数据容器的内容有变更时,控制中心会将变动情况推送给各个邦员,各邦员会根据该变动修改自身维护的订阅发布文件以和控制中心保持一致。
此外,在邦员有实时数据更新时,会根据自己维护的订阅发布配置文件,将这些更新推送给订阅了该数据的其他邦员。数据容器主要构成如图2 所示。联邦成员数据交换如图3 所示。
1.3 透明访问流程
系统内成员之间的数据共享和交换如图 4 所示。
当用户在访问联邦系统的全局数据时,邦员可以根据自身维护的数据容器配置文件副本或这些数据所在数据源对应 IP,并向其发送命令请求。其他邦员接收并执行这些查询请求 然后返回查询结果,查询发起者将这些查询结果汇总并呈献 给用户,用户只需知道该系统可以提供哪些数据即可,无需知 道这些数据具体由谁提供,达到将整个系统看成一个数据源 实现透明访问的效果。
2 关键技术
2.1 虚拟全局数据定义
虚拟全局数据库是整个系统正常运行的基石。每个新加入的邦员都可以选择手动或者自动添加自身数据生成 LOM 文件并提交至控制中心生成GOM 文件。LOM 文件应当包含本地数据源中拥有的全部数据的基本信息。考虑到各个数据源之间存在结构上的差异,拟采用XML 来描述数据容器内的各种文件、数据消息、命令消息等中间数据交换介质[5,6]。
XML 具有非常高的自描述性,可有效提高在不同应用、不同模块间数据交换的可操作性。通过XML 可实现数据的标准化、结构化,解决不同平台、不同系统之间的数据结构/ 模式的差异问题,使得数据层在XML 技术的支持下统一起来[7,8]。
2.2 数据发布与订阅关系定义
每个邦员都可以通过发布模块和订阅模块来制定对应的发布/ 订阅文件。pub_sub.txt 用来表示自身发布和自身订阅的数据,并提交给控制中心[9]。该文件具体内容如图 5 所示,表明需要发布或订阅的数据名称即可,其他信息可在数据容器的GOM 文件中得到补充。控制中心收到各个邦员的 pub_sub.txt 内容后与自身保留的各个邦员的注册信息进行汇总并将对应的内容收纳进 GPM 文件和GSM 文件中。
2.3 数据的自动发布
每个邦员自身的数据有更新时,会在数据容器的GSM 中查询哪些邦员订阅了该数据,同时获取对应邦员的IP 地址。使用底层封装好的Socket 接口向这些IP 地址发送对应的内容更新。
2.4 数据透明访问
外界访问联邦数据库系统时,直接针对数据容器中的虚拟全局数据库进行访问,在接受到请求后,控制中心分局GOM中的内容分解为针对各个邦员的子查询,子查询返回结果后由控制中心汇总结果并对外返回数据,访问者只需要知道虚拟全局数据库中有哪些数据,而不需要知道联邦系统中具体有哪些邦员。对外屏蔽系统内其他邦员的存在,从而达到透明访问的效果。
3 系统演示
在本地数据定义阶段,邦员可进行全局数据的定义,可以选择曾经定义过的LDM(Local Data Model,LDM)文件或者手动添加新数据覆盖原有的LDM 文件。数据定义界面如图 6 所示。
邦员可以在图 7 所示的透明访问界面里看到当前系统的所有全局数据,通过输入指定的查询条件查询到对应的数据, 而不需要知道这些数据的具体来源[10]。
4 结 语
电务综合监测系统需要综合多个监测站点的监测数据来做故障诊断及智能分析,然而各个监测站点之间的差异性异常复杂,使得这个场合的数据集成变为一个难题。使用联邦式的管理方式结合XML 在结构上可以比较清晰地描述整个系统结构,便于维护管理。