王品德
(西南电子电信技术研究所,四川 成都 610041)
基于DDS的跨域数据同步研究*
王品德
(西南电子电信技术研究所,四川 成都 610041)
数据分发服务(DDS)是由OMG组织发布的一种数据传输规范,可提供实时、高效、可靠的数据传输功能。为适应实时、非实时等各类数据的跨域数据同步需求,实现分布式系统中各个节点间的信息共享和协同工作,设计了一种基于DDS的跨域数据同步系统,给出了系统架构和系统组成,并详细介绍了进行全网配置信息同步和业务数据同步的工作原理。为其在分布式系统中的应用提供了一种切实可行的解决方案。
数据分发服务; 跨域; 数据同步
在大规模分布式系统中,为了支持各个节点之间的资源共享、信息共享和协同工作,需要系统提供一个全局的数据空间[1],负责系统中各类资源信息和业务数据的管理和维护。为确保系统用户在任意一个节点上能够共享全局的数据,必须实现一个具有高吞吐量、低响应时间、高可靠性和高准确性的数据同步系统。
目前实现的数据同步系统,大多数都是针对数据库同步或者文件同步进行设计[2],能够保证各个节点的数据库表和文件列表能够实时的同步,采用的方法主要为数据复制,能够很好的解决了数据同步过程中的数据冲突问题,但对于各个节点实时生成信息的同步,以及节点分域情况下跨域同步组[3]的数据同步研究较少。多数同步研究主要在集中在处理通信问题,而研究同步控制的较少。
数据分发服务(DDS)是对象管理组织(OMG)发布的一种分布式实时通信规范,提供丰富的QoS服务质量策略,在不同的网络上都具有较高的数据传输性能[4]。针对分布式系统内各个节点的网络情况和同步需求,本文采用DDS作为同步服务通信的基础环境,重点针对广域网上多节点分域情况下跨域数据同步的需求,设计了基于DDS的跨域数据同步系统,并详细介绍了系统的工作原理。
在大规模分布式系统中,由于节点数量很多,为简化设计、提高同步效率,一般将各节点按照地理位置、网络连接情况和归属单位等因素划分为多个域。跨域数据同步系统工作的拓扑结构如图1所示。图中的交换节点和同步节点共同构成了一个同步域,域中可包含多个同步节点,但是只能有一个交换节点。交换节点的作用是负责域间数据的同步,域内的同步节点与域外的同步节点同步数据必须通过交换节点。同步节点和交换节点都部署同步服务软件,实现数据同步数据发送和接收。在跨域的同步节点之间可以设置同步组,以明确数据同步的范围。系统内同步的数据包括全局业务工作信息、全局数据资源信息和设备资源状态信息[5]。
图1 跨域数据同步拓扑结构
系统内各类用户均可以发起数据同步,也可接收其他用户同步到本地的数据。当有外部系统如用户管理服务发起用户信息同步请求时,数据同步系统的运行过程如下:①用户管理服务A调用同步节点内部部署的同步服务软件,将同步数据发送到同步节点;②同步节点根据同步组的设置明确需要将同步数据同步到用户管理服务B所在的同步节点;③用户管理服务A所在的同步节点找到交换节点2查询到用户管理服务B的路由;④交换节点2和交换节点3完成两个域间数据的同步,并最终将数据同步到用户管理服务B所在的同步节点;⑤同步节点的同步服务收到数据后将其发送给用户管理服务B从而完成用户管理信息的同步过程。
数据同步系统既要保证各节点间的配置信息同步,同时还要保证准确无误地传输上层应用的同步数据,因此系统要求具有很高的可靠性和稳定性,在数据通信上尤其要保证实时性和灵活性。
根据跨域数据同步系统的需求,系统要实现的功能包括同步节点配置、同步交换管理、同步状态监视、全局同步信息统计、配置信息同步、通信路由管理等功能。为了将数据通信从数据同步系统中独立出来,上层的同步逻辑不需要了解通信的细节并确保通信可靠,本文利用DDS的强大共享数据分发能力和开放的体系结构,基于DDS设计了同步服务软件和交换服务软件,分别部署到同步节点和交换节点上,同步服务软件之间协同工作完成数据同步,交换服务在同步服务软件的基础上增加路由管理、跨域配置信息同步和同步数据交换的功能。同步服务和交换服务均可以配置其工作域和工作组。系统整体上设计为无中心的架构,整体架构如图2所示。
图2 系统分层架构
图2中同步服务与交换服务采用了统一的体系架构设计,“路由管理”等三个部分为交换服务特有的功能,其它的功能为两者都具有的功能。为了确保软件内部功能的松耦合,软件采用了分层的设计方法,划分了应用层、业务逻辑层、服务层和数据通信层。
应用层:主要负责界面展示,包括同步服务和交换服务的运行参数配置、导入导出、申请加入和退出同步系统、同步数据的查询浏览、服务运行状态查询等功能界面。
业务逻辑层:完成同步服务和交换服务的核心业务逻辑实现,与同步数据业务相关的包括同步信息配置、同步交换管理、以及同步出现错误后的二次同步和定时同步等功能;与服务状态监视相关的包括服务状态管理和日志管理,完成本地服务状态的收集与存储上报;与全局数据同步业务相关的包括全局同步信息统计和全局同步配置信息管理,负责协同全网各域的同步服务,保持同步配置信息的一致,并且汇总整个系统的数据同步情况。
服务层:为业务逻辑层功能的实现提供各种服务,包括存储类的数据访问、文件存储服务;数据通信类的数据收发、消息通信服务和配置信息分发。
数据通信层:完成底层的路由管理和数据通信。采用DDS作为底层的通信中间件,同步服务之间、同步服务与交换服务之间的所有数据都基于DDS的主题进行收发。路由管理负责维护交换节点之间的路由关系和本域内同步服务的路由关系,确保不同域的同步服务可以通过路由中转进行通信。
3.1 系统组成
本系统划分了用户界面、同步配置、路由管理、同步交换管理、服务状态管理、日志服务、文件存储服务、数据访问、消息通信服务和DDS通信等功能模块,如图3所示。
图3 系统组成
其中,同步交换管理是核心模块,主要完成同步数据的收发、同步异常处理和冲突处理,以及同步服务和交换服务软件的运行管理。
3.2 全网配置信息同步
在同步服务的部署和配置发生变化时使用,如数据同步系统中新增一个同步服务,或者某一个同步服务配置了一个新的同步组时,都需要将自身的变化信息进行全网同步,以确保其他同步服务能够按照最新的配置进行协同工作。在整个数据同步系统中设置了一个主控节点,用于进行接收变化信息,并通知其他同步服务或交换服务同步更新配置。主控节点从交换服务中进行选取,当一个交换服务失效后,系统将在剩下的交换服务中自动换取一个作为主控节点。同步过程如图4所示。
图4 全网配置信息同步过程
图4中有三个节点参与了配置信息全网同步的过程,其中S和D为同步服务,C为主控的交换服务。具体的同步过程如下:
1)同步服务S的配置信息变化后,发起全网同步,将最新的配置信息通过DDS发送到主控服务。
2)主控服务C通过DDS接收到S同步服务发送的配置信息后,首先将新的配置信息与旧的配置信息进行对比,筛选出新添加的服务(也可能是新的能通信的服务),发起全网同步,并等待其他服务返回更新情况。
3)主控服务C通知其他在线的同步服务有新的配置信息,并通过DDS发送新配置信息,同步服务D接收到新配置信息后,对同步配置进行修改,并返回更新情况。
4)主控服务C收到D反馈的更新情况,确认是否已完成全网同步,如果没有完成则继续等待,等待超时后,将向更新失败的节点重发配置信息,如果依然发送不成功,则提示用户同步节点配置信息同步不成功,需要人工干预。
5)主控服务收到所有服务同步完成的结果时,将结束等待,从而完成整个同步过程。
需要说明的是在主控服务C向同步服务D发送同步配置时,如果D和C同属于一个域,那么可以直接发送同步配置信息,否则需要进行跨域的同步;主控服务C需要通过路由服务找到同步服务D所在域的交换服务,通过交换服务进行配置信息的域内同步。此外,同步配置失败需要在同步服务中设置失败重试次数,在设置次数内可进行重试,一旦超过设置的次数,则不再进行同步,最后通过人工盘点方式重新取出配置信息进行全网同步。
3.3 业务数据同步
业务数据同步是整个同步系统对外提供的核心功能。为了更好的简化同步数据的交换过程,在同步服务中对DDS的通信进行了封装,外部应用调用封装DLL提供的接口函数,即可实现将数据提交到同步服务或交换服务。外部应用与同步服务、同步服务与交换服务、同步服务之间都通过DDS进行同步数据的收发。数据进行同步前,需要针对各种数据类型定义相应的数据同步组,外部应用提交需要同步的数据后,同步服务会根据该数据定义的同步组,将数据同步到组内所有同步服务,同步过程如图5所示。
图5 业务数据同步过程
图5中有外部应用,同步的源服务S和目的服务D,具体的同步过程如下:
1)外部应用通过DDS把需要同步的数据发送给源同步服务S。
2)同步服务S收到同步数据后,由同步交换管理模块进行数据的合法性检测,为确保同步数据不会因程序异常而丢失,在同步完成前先进行同步数据的存储,数据库中存储本次同步的信息包括发送者和数据类型等,文件系统存储具体的同步数据。
3)S存储数据后,将根据数据的类型找到相关同步组的同步服务D,并通过DDS把数据发送到D。
4)D收到同步数据后将信息进行存储并返回同步成功信息,S收到返回信息后将不再等待,并删除在2)步中存储的数据,从而完成数据同步的过程。
在需要跨域同步时,需要经过交换服务进行中转,通信过程类似。在同步服务S未收到同步服务D的回复消息时,将进行超时重发。对于超过重试次数的同步数据,将其存在同步失败表中,后续通过人工盘点方式重新取出数据进行同步。
跨域数据同步系统,实现了同步服务和交换服务,可将其应用到跨多个域的数据同步中。同步系统能够按照业务需求实现各类数据的同步,系统典型应用示例如图6所示。
图6 系统典型应用示例
图6中有北京、成都和上海三个节点,每个节点部署同步服务和交换服务。北京和成都两个节点位于一个同步组,配置同步用户信息。成都和上海两个节点位于一个同步组,配置同步设备信息。同步内容如下:
1)将成都节点的用户管理服务增加的用户信息同步到北京节点的用户管理服务。
2)将北京节点的用户管理服务增加的用户信息同步到成都节点的用户管理服务。
3)将上海节点的设备服务写入的设备信息同步到成都节点的设备服务。
通过在某专用广域网络上搭建上述试验系统进行试验,证明DDS能够确保广域网上可靠的数据通信,同步系统能够按照配置正确执行数据同步操作,上层应用能够基于同步服务实现远程传递同步数据,从而保证各个节点数据的完整性和一致性。
本文构建了基于DDS的跨域数据同步系统,包括同步服务和交换服务,以满足跨域应用间的数据同步需求。由于DDS是成熟的通信中间件,能够快速应用和部署,并满足同步数据跨域的可靠通信要求,能应用于数据同步系统研制。但是在实际项目中,由于网络的不稳定性给数据同步带来了很大的影响,同步服务和交换服务内部的业务逻辑能否完全适应各种网络的应用,还需要进一步试验验证,从而进一步提升同步系统的稳定性、可靠性和适应性。
[1] 李军.数据分发服务中的全局数据空间(GDS)的研究与设计[J]. 舰船电子工程,2010,30(04):62-64. LI Jun. Research and Design of“Global Data Space” in Data Distribution Service Specification for Real-time Systems[J].Ship Electronic Engineering,2010,30(04):62-64.
[2] 董立岩,毛锐,余宜诚等.基于分布式多服务系统的数据同步方法[J].吉林大学学报:理学版,2011,49(04):745-749. DONG Li-yan, MAO Rui, YU Yi-cheng,et al. Synchronization Method based on Distributed Multi-service System [J]. Journal of Jilin University (Science Edition), 2011, 49(04):745-749.
[3] 仲维亮,杨斌,雷国志. 基于DDS的传输插件的性能比较和分析[J]. 通信技术,2013,46(03):13-15. ZHONG Wei-liang, YANG Bin, LEI Guo-zhi. Comparison and Analysis on Performances of DDS Transmission Plugins [J]. Communications Technology, 2013,46(03):13-15.
[4] 伍枫,谷建华,赵天.跨域服务注册中心的数据同步研究[J].软件技术与数据库,2011,37(24):38-41. WU Feng, GU Jian-hua, ZHAO Tian-hai. Research on Data Synchronization for Cross-Domain Service Registry Center[J]. Computer Engineering, 2011,37(24):38-41.
[5] 刘焕敏.分布式装备管理信息系统的数据同步机制研究与实现[J].火力与指挥控制,2012,37(12):152-154. LIU Huan-min. Study and Application of Data Synchronization Strategies in Distribution Equipment Management Information System[J]. Fire Control & Command Control, 2012, 37(12):152-154.
Cross-Domain Data Synchronization based On DDS
WANG Pin-De
(Southwest Institute of Electronic and Telecommunication Technology,Chengdu Sichuan 610041,China)
DDS (Data Distribution Service),as a data distribution specification published by OMG, can provide real-time, high-efficient and reliable data distribution. In order to adapt the requirement for cross-domain data synchronization with real-time and non-real-time data and implement data sharing and cooperative work between the nodes in distributed system, a cross domain data synchronization system based on DDS is proposed and designed. System architecture and composition are given, and the working principle of configuration-data distribution and business-data distribution also described in detail. Meanwhile, a feasible solution for its application in distributed system is also provided.
DDS; cross-domain; data synchronization
date:2014-10-27;Revised date:2015-02-18
TP391
A
1002-0802(2015)04-0447-06
王品德(1980—),男,硕士研究生,工程师,主要研究方向为计算机网络及信息安全。
10.3969/j.issn.1002-0802.2015.04.013
2014-10-27;
2015-02-18