摘 要: 鉴于目前数据同步领域存在的不足,通过对WCF技术、数据同步技术的研究和分析,构建了一个数据同步模型。该模型能实现多个数据中心的数据高效、实时地同步,为解决分布式信息系统的数据同步问题提供一种新方法。
关键词: 数据同步;WCF;增量同步
随着信息化建设的不断深入和扩充,不同地域的公司管理系统之间不能实现资源共享和信息互访的问题日益突出。为了解决跨地域管理所遇到的问题,多数企业采用分布式对象技术来解决数据同步这一问题。多数据中心的数据同步是一项复杂的系统工程,在数据的同步更新中更是面临着高效性、一致性、实时性等特殊要求[1]。本文在对WCF(Windows Communication Foundation)技术和数据同步技术进行分析与研究的基础上,建立一种多中心数据同步、实时、高效的数据通信同步模型。
1 WCF的基本通信机制
WCF是由微软推出的一个基于面向服务的通信框架产品,它整合了原有的分布式解决方案,提供了一种更灵活、更具操作性的解决方案[2],使软件研发人员在WCF下的开发工作变得更加方便轻松。
WCF采用的是基于终结点(Endpoint)的通信手段,它通过暴露终结点的方式,将要实现的业务数据传给调用程序[2]。一个终结点包含了实现通信所必需的所有信息,它由地址(Address)、绑定(Binding)和契约(Contract)三要素组成。其中地址决定了服务的位置,解决了服务寻址的问题;绑定说明服务所能理解的通信协议,它实现了通信的所有细节,包括网络传输、消息编码,以及为实现某种功能对消息进行的相应处理,WCF中具有一系列的系统定义绑定;契约说明服务提供的操作及数据交换格式。WCF框架示意图如图1所示。
2 数据通信同步分析
数据通信同步服务是多数据中心体制的神经网络,信息系统通过通信服务把不同区域的数据中心联系在一起,构建了一个数据传输交换的通道[3]。通信服务程序主要负责将分散在各地的数据汇总到大脑中,再将大脑的命令下发,从而实现系统内中心统一数据库和大量远程数据库之间的数据传输和不同类型数据库之间的数据交换。
2.1 数据通信中的主要同步数据类型
数据通信同步中涉及到的数据类型主要有基础数据、实时数据和非实时数据,具体特点比较如表1所示。
2.2 数据通信中的同步方式
在实现数据同步的过程中,按数据源节点的流向主要分为单向同步、双向同步。实际应用中,根据具体的需求选择相应的数据同步类型。数据通信中同步方式比较如表2所示。
2.3 数据通信中的同步机制
针对数据通信同步的复杂性,为了增强数据通信同步的合理性,通常会采用手动机制、实时机制、定时机制[4],如表3所示。
2.4 数据通信中的同步方法
由于不同服务器上存储的数据类型和作用不同而采用不同的同步方法,通常采用完全同步法和差异同步法,二者比较如表4所示。
3 多数据中心数据同步模型设计
3.1 数据通信系统架构
由于各数据结点在地理或者物理位置上的分散性而导致的信息孤岛,在同一个信息系统中的各结点不但要维护自身存储的数据,而且需要与其他结点保持数据一致,为使分布式信息系统解决数据管理和同步问题,建立系统结构如图2所示。
上述系统结构借助WCF框架构建了构建N层应用程序体系结构[5],实现各数据结点的数据同步。系统结构在实现分站之间数据同步的同时,还使得各结点的数据可以相互备份,增强了数据的安全性。在该系统中每个同步结点由数据库、数据库服务器和同步服务器组成。每个结点的数据可以是ADO.NET支持的不同厂商的数据库,如Microsoft SQL Server、Oracle和MySQL等。应用程序服务器上需要安装.NET Framework 3.5,承载一个WCF服务,远程的同步结点通过构建的服务实现数据的同步过程。
3.2 数据通信同步模型设计
通过对WCF技术的深入研究和分析,建立一个数据通信同步模型,该模型主要用于数据增量同步。在该模型中将数据同步服务细分为数据捕获、通信建立、数据传输、数据更新几个阶段。数据通信同步模型如图3所示。
(1)数据捕获:在这个阶段,对数据同步过程中的源数据结点中的数据进行监控,对数据变化信息(差异数据)进行捕获。当某一结点数据发生变化后,对差异数据进行捕获,生成数据变化列表。
(2)通信建立:当捕获到数据变化信息时,向通信同步服务发出数据同步的请求,然后调用通信同步服务,为数据传输做好准备。
(3)数据传输:将捕获到的差异数据按照要求进行相关处理后,并且按照预定的传输机制调用通信同步服务,将变化的数据信息传输至目标结点。
(4)数据更新:当目标结点获得源结点传送来的文件后,目标结点对接收到的数据进行逆向处理,然后应用事务处理机制将接收到的数据同步更新至本结点的对应位置,从而完成整个数据同步过程。
实现数据差异同步最关键的是及时捕获变化的数据,此过程一般有两点要求:第一,能按规则准确地捕捉到系统中的变化数据;第二,捕获变化数据过程不能对系统造成太大的压力而影响现有的系统功能。
目前最常用的捕捉变化数据的方法有触发器方式、时间戳方式、全表删除插入方式、全表对比方式、日志表方式等[5]。
数据同步问题是多数据中心的分布式信息系统经常要面临的问题,传统的数据库同步技术已落后于多数据中心数据同步的要求,数据同步技术的开发研究尚不成熟,无法满足企业的管理需求。本文通过对WCF技术和数据同步技术进行较深入的研究和分析,设计出一个多数据中心数据同步模型,有关该模型如何实现还有许多问题需要进一步探索。
参考文献
[1] 周伟,刘丰.分布式数据库数据同步技术研究[J].计算机与信息技术,2010(9):13-20.
[2] 刘黎志,吴云韬.应用WCF分布式框架实现移动数据同步[J].计算机应用,2011,31(12):3281-3284.
[3] 林源,陈志泊.分布式异构数据库同步系统的研究与应用[J].计算机工程与设计,2010,31(24):5278-5281.
[4] 杨佳,何丕雁.分布式实时数据库系统数据同步通信研究[J].广东通信技术,2008(4):73-79.
[5] 丁鲲,严浩.分布式数据库数据同步技术研究[J].海军工程大学学报,2004,16(5):100-104.