联邦式数据交换与共享技术研究与实现
2016-05-31彭汉仔谭献海翟妍伟
彭汉仔 谭献海 翟妍伟
摘 要:针对电务综合监测系统存在的数据源异构问题,提出了一种基于XML的联邦数据交换与共享框架来管理各个监测站点的数据。该框架将每个数据源看成一个独立的联邦进行管理。每个联邦成员都可以了解整个联邦有哪些可供共享的数据,并调阅查看其它成员的历史数据,同时订阅其他成员发布的实时数据和推送报警信息等实时数据。
关键词:异构数据;数据集成与交换;联邦;数据透明访问;订阅发布
中图分类号:TP392 文献标识码:A 文章编号:2095-1302(2016)05-00-03
0 引 言
当今铁路快速发展,带动了信号技术的跨越式进步。大量先进的信号系统与技术投入运营。如装备监测设备可进行实时状态信息采集,并利用这些采集的实时信息进行故障诊断和及时报警,可以在极大程度上提高铁路的运行效率。然而这些监测信息、状态信息等大都存储于各个地区不同的监测站点,而这些站点维护着自己的监测系统,使用着彼此互不兼容的存储格式,形成了一个个“信息孤岛”[1]。所以要想充分利用这些监测信息、状态信息,进行计算机辅助故障诊断、判断故障、开展智能化研究、预测设备健康状况等工作时,就必须对现有的互不兼容的异构数据库进行数据集成。目前,现有的数据集成方案已日趋成熟,然而国内乃至世界范围内将数据集成技术运用到铁路电务综合检测上的成功案例基本没有。本研究在充分分析各个监测站点数据格式的基础上,提出一套基于各个监测站点的联邦式管理方法,用以实现各个站点间的透明访问[2,3]、成员间历史数据交换、成员实时数据的订阅与即时推送[4]。在保证现有各个数据源独立性的同时,以一个统一的视角对当前的所有监测信息、状态信息等进行综合利用。为电务综合监测系统进行高效的智能故障诊断提供良好的数据基础。
1 电务综合监测联邦式数据交换与共享系统设计
电务综合监测联邦式数据库管理系统要求系统内的两个成员之间可以进行数据互操作,即联邦内的任意一个成员可以调阅联邦内其他成员的数据,可以订阅联邦内其他成员更新的实时数据。要求当一个联邦成员有数据更新时,可以将该更新内容推送给其它订阅了该数据的成员。
系统主要分为以下几个模块:
(1)注册模块
所有想要加入联邦系统的数据源都需要向联邦控制中心申请注册,成功后才能以一个邦员的身份做其他操作。
(2)数据定义模块
根据数据源结构的不同可以手动或者自动定义本地数据库全部数据的基本信息,为控制中心制定全局数据库提供基本信息。
(3)数据发布模块
该模块负责信息定义邦员的数据发布,并将该信息提交至控制中心的数据容器。
(4)数据订阅模块
该模块负责定义邦员的数据订阅情况,并将该信息提交至控制中心的数据容器 。
(5)数据自动推送模块
在邦员有数据更新时,会将这些更新推送给订阅了该数据的其他邦员。
(6)透明访问模块
提供对全局数据的访问,联邦系统自动根据查询请求分解成针对各个邦员的子查询,并汇总结果,返回给请求发起方,在不知道系统内其他成员的情况下获取对应的数据。
该系统流程主要分为成员注册初始化、成员之间的数据共享交换、系统透明访问三个部分。成员注册初始化过程如图1所示。
图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 Subscribe Model,GSM)文件,即全局订阅文件。
1.2 联邦成员数据共享交换流程
控制中心通过数据容器来描述整个联邦的全局数据及各个邦员的数据订阅/发布情况,并将最新副本冗余存储到各个邦员。数据容器总共包含三大配置文件:GDM(全局数据模型),GPM(全局发布模型),GSM(全局订阅模型)。
GDM:记录联邦系统中的所有数据基本信息。
GPM:记录各个邦员的数据发布情况。
GSM:记录各个邦员的数据订阅情况。
当数据容器的内容有变更时,控制中心会将变动情况推送给各个邦员,各邦员会根据该变动修改自身维护的订阅发布文件以和控制中心保持一致。
此外,在邦员有实时数据更新时,会根据自己维护的订阅发布配置文件,将这些更新推送给订阅了该数据的其他邦员。数据容器主要构成如图2所示。联邦成员数据交换如图3所示。
图2 数据容器的主要构成图
图3 联邦成员的数据交换图
1.3 透明访问流程
系统内成员之间的数据共享和交换如图4所示。
当用户在访问联邦系统的全局数据时,邦员可以根据自身维护的数据容器配置文件副本或这些数据所在数据源对应IP,并向其发送命令请求。其他邦员接收并执行这些查询请求然后返回查询结果,查询发起者将这些查询结果汇总并呈献给用户,用户只需知道该系统可以提供哪些数据即可,无需知道这些数据具体由谁提供,达到将整个系统看成一个数据源实现透明访问的效果。
图4 系统内成员数据交换结构图
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文件中。
图5 pub_sub.txt内容示意图
2.3 数据的自动发布
每个邦员自身的数据有更新时,会在数据容器的GSM中查询哪些邦员订阅了该数据,同时获取对应邦员的IP地址。使用底层封装好的Socket接口向这些IP地址发送对应的内容更新。
2.4 数据透明访问
外界访问联邦数据库系统时,直接针对数据容器中的虚拟全局数据库进行访问,在接受到请求后,控制中心分局GOM中的内容分解为针对各个邦员的子查询,子查询返回结果后由控制中心汇总结果并对外返回数据,访问者只需要知道虚拟全局数据库中有哪些数据,而不需要知道联邦系统中具体有哪些邦员。对外屏蔽系统内其他邦员的存在,从而达到透明访问的效果。
3 系统演示
在本地数据定义阶段,邦员可进行全局数据的定义,可以选择曾经定义过的LDM(Local Data Model,LDM)文件或者手动添加新数据覆盖原有的LDM文件。数据定义界面如图6所示。
图6 数据定义界面
邦员可以在图7所示的透明访问界面里看到当前系统的所有全局数据,通过输入指定的查询条件查询到对应的数据,而不需要知道这些数据的具体来源[10]。
4 结 语
电务综合监测系统需要综合多个监测站点的监测数据来做故障诊断及智能分析,然而各个监测站点之间的差异性异常复杂,使得这个场合的数据集成变为一个难题。使用联邦式的管理方式结合XML在结构上可以比较清晰地描述整个系统结构,便于维护管理。
图7 透明访问界面
参考文献
[1] 黄晓川,杨晓鹏,黄琛.基于XML异构数据库中数据迁移技术的研究[J].科技视界,2014(34):97-98.
[2] Brodie M L.Data Integration at Scale: From Relational Data Integration to Information Ecosystems[C].IEEE International Conference on Advanced Information Networking & Applications. IEEE, 2010:2-3.
[3] Jovanovic P, Romero O, Simitsis A, et al. ORE: an iterative approach to the design and evolution of multi-dimensional schemas[J]. Fifteenth International Workshop on Data Warehousing & Olap, 2012:1-8.
[4] 赵伟.发布/订阅系统数据模型的设计与实现[D].南京:南京理工大学,2009.
[5] 鱼滨,郑娅峰.基于XML的异构系统集成框架的研究[J].计算机应用与软件,2005,22(7):14-15.
[6] 苏明.基于XML的数据集成中间件的研究[D].西安:西安电子科技大学,2013.
[7] 胡昔祥.基于P2P和XML内容的发布订阅系统.计算机工程与应用[J]. 2007,43(29):101-103.
[8] 王哲,宋茂强.基于SaaS的XML数据库中间件的设计与实现[J].计算机安全,2010(2):73-76.
[9]齐凤亮,金蓓弘,陈海彪,等.发布/订阅系统中的原子订阅管理和匹配[J].计算机科学,2009,36(12):111-114.
[10] 陈远斌.面向信息共享的数据集成技术应用研究[D].哈尔滨:哈尔滨工程大学,2013.