CN110413677A - 一种支持并发应用的分布式数据同步方法和*** - Google Patents

一种支持并发应用的分布式数据同步方法和*** Download PDF

Info

Publication number
CN110413677A
CN110413677A CN201910692833.1A CN201910692833A CN110413677A CN 110413677 A CN110413677 A CN 110413677A CN 201910692833 A CN201910692833 A CN 201910692833A CN 110413677 A CN110413677 A CN 110413677A
Authority
CN
China
Prior art keywords
data
synchronization
data synchronization
module
new
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910692833.1A
Other languages
English (en)
Inventor
雷虹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuxi Lemon Technology Service Co Ltd
Original Assignee
Wuxi Lemon Technology Service Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuxi Lemon Technology Service Co Ltd filed Critical Wuxi Lemon Technology Service Co Ltd
Priority to CN201910692833.1A priority Critical patent/CN110413677A/zh
Publication of CN110413677A publication Critical patent/CN110413677A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种支持并发应用的分布式数据同步方法和***,具体包括数据同步应用端和数据同步服务端,数据同步服务端还包括数据同步管理单元,用于为数据同步应用端和数据同步服务端提供数据同步的工具和应用程序,确定数据之间的供需关系以及映射关系;所述数据同步应用端向所述数据同步服务端提供新数据,以及根据数据供需关系接收需要的新数据,并将所述新数据更新至本地数据库;所述数据同步服务端用于存储和分发数据,以保证数据的安全同步。通过上述技术方案为数据分布式部署业务提供实时、可靠、安全的数据同步工具,将高并发的应用***进行模块划分,并建立模块之间的数据供需关系,实现应用的分布式部署,提升应用的并发能力。

Description

一种支持并发应用的分布式数据同步方法和***
技术领域
本发明涉及数据同步技术领域,更具体地说,涉及一种支持并发应用的分布式数据同步方法和***。
背景技术
数据同步即指智能设备间或网络服务间的数据同步和信息共享,使数据保持完整性和统一性,数据同步的对象为数据,一般而言,完整的数据同步是实时的,即当前操作双方互为镜像,例如数据备份的过程即为数据同步的过程。
目前,在应用***中实现数据同步主要是基于ETL工具(ETL,Extract-Transform-Load,用来描述将数据从来源端经过萃取(extract)、转置(transform)、加载(load)至目的端的过程),ETL工具是直接以数据为对象进行同步处理的,数据共享和交换的过程与实际的业务***没有直接关系,无法与业务***本身的应用逻辑对数据的处理权限产生直接关联,因此,使用ETL工具对数据进行同步处理时,对应用***的数据安全存在一定破坏性,并且,应用***中各数据间的关联关系和约束判断无法通过简单的数据同步进行明确的定义和实现,无法保障应用***数据的正确流向和有效处理,而且也无法控制数据的非法变更。
随着业务***规模的日益扩大,及其对业务并发性要求的提升,使得业务***的分布式部署和数据的分布式部署成为数据库技术发展的必然趋势,为确保应用之间在相互协作时获取数据的正确性和有效性,进一步扩大业务***的应用能力,需要有可靠的、安全的数据同步工具来确保数据分布式部署时业务数据的合法性和准确性。
发明内容
本发明的目的在于提供一种支持并发应用的分布式数据同步方法和***,以解决现有技术中大规模业务应用***进行数据分布式部署时,业务数据的合法性和安全性无法保证的问题。
本发明的目的是通过以下技术方案实现的:
第一方面,本发明提供了一种支持并发应用的分布式数据同步方法,所述方法应用于分布式数据同步***中的数据同步应用端,所述分布式数据同步***还包括数据同步服务端;
所述方法包括:
接收并解析数据同步服务端广播的数据消息通知,得到解析结果;其中,所述解析结果包括需要同步所述数据消息通知对应的新数据;
基于所述需要同步新数据的解析结果,向所述数据同步服务端发送新数据的请求推送指令,以使所述数据同步服务端发送新数据;
接收并按照预设格式处理所述新数据,以处理后的所述新数据更新本地数据库的原数据;
生成包含所述新数据的处理状态的报告信息,并将所述报告信息发送至所述数据同步服务端,以提示所述数据同步服务端新数据已同步。
可选的,所述接收并解析数据同步服务端广播的数据消息通知之前,还包括:
建立与所述数据同步服务端的连接;
建立消息队列缓冲区,以存储新数据和消息通知。
可选的,所述接收并解析数据同步服务端广播的数据消息通知之前,还包括:
封装本地数据库原数据的变更数据,以形成新数据;
发送所述新数据至所述数据同步服务端,以使所述数据同步服务端生成并广播所述新数据的数据消息通知。
第二方面,本发明提供了一种支持并发应用的分布式数据同步方法,应用于数据同步服务端,所述方法包括:
生成并广播数据消息通知,以使数据同步应用端接收并解析所述数据消息通知;
接收所述数据同步应用端基于需要同步新数据的解析结果发送的新数据的请求推送指令;
基于所述请求推送指令,打包发送所述数据消息通知对应的新数据,以使所述数据同步应用端接收所述新数据;
接收所述数据同步应用端发送的包含所述新数据处理状态的报告信息,以记录所述新数据同步的日志。
可选的,所述广播数据消息通知,以使数据同步应用端接收并解析所述数据消息通知之前,还包括:
建立与所述数据同步应用端的连接,并建立服务端消息队列缓冲区,以存储数据消息。
可选的,所述广播数据消息通知,以使数据同步应用端接收并解析所述数据消息通知之前,还包括:
接收所述数据同步应用端发送的本地数据库原数据变更后的新数据;
基于所述新数据和预先设定的数据对象间供需关系,生成所述数据消息通知。
第三方面,本发明提供了一种支持并发应用的分布式数据同步***,包括:
数据同步服务端,和至少两个数据同步应用端;
所述数据同步服务端用于接收原数据变更后的新数据,并基于所述新数据和预先定义的数据对象间的供需关系生成数据消息通知,使所述数据同步应用端的数据同步,以及用于持久化存储不同版本的数据;
所述数据同步应用端用于提供变更后的新数据,和接收需要同步的新数据,并将本地数据库的原数据更新为新数据。
可选的,所述数据同步服务端包括数据传输服务模块、消息服务模块、数据仓库模块,以及定义数据对象、注册应用模块的数据同步管理单元;其中,
所述数据传输服务模块与所述数据同步应用端建立数据传输机制,用于提供数据传输服务和文件传输服务,所述数据传输服务模块中包括数据验证机制、数据过滤机制和数据版本管理规则;
所述消息服务模块提供与所述数据同步应用端实时输出数据的数据接口;
数据仓库模块,用于持久化存储不同版本的数据,其中,所述数据仓库包括关系型数据库和非关系型数据库。
可选的,所述数据同步管理单元分别与所述数据仓库模块和数据传输服务模块间相互通信连接;
所述数据同步管理单元包括数据结构模块和日志统计模块;其中,
所述数据结构模块用于定义数据对象并形成描述文件、注册应用模块并确定应用模块间数据对象的供需关系、建立标准数据类型并指定实际数据类型与标准数据类型的映射关系;
所述日志统计模块接收所述数据同步应用端的报告信息,记录数据同步日志。
可选的,所述数据同步应用端包括数据接口模块,消息组件模块和任务队列模块;其中,
所述数据接口模块提供与所述数据同步服务端的数据传输接口;
所述消息组件模块与所述数据同步服务端建立实时通讯连接,用于存储数据和消息通知并处理接收到的新数据;
所述任务队列模块用于存储来自于不同应用模块的数据队列,以缓冲数据队列排序进行数据处理。
本发明提供的技术方案具有以下有益效果:
本发明提供的技术方案中包括数据同步服务端、数据同步应用端和数据同步管理端,在数据同步管理端定义数据对象,注册应用模块,定义数据对象的供需关系和数据类型间的映射关系,并提供可运行的组件,作为统一的应用模块管理中心,针对大规模业务应用***进行模块拆分,为数据同步建立基础;数据同步应用端需要更新数据时,将数据进行封装并发送至数据同步服务端;数据同步服务端接收到更新数据通知时,根据数据对象的供需关系,广播数据消息通知,并在接收到请求推送指令后,打包发送新数据至请求新数据的数据同步应用端;需要接收数据的数据同步应用端接收数据消息通知,并在确定需要所述新数据后发送请求推送指令至数据同步服务端,接收并处理接收到的新数据,并调用基于数据同步管理端的开发组件形成的数据处理应用程序更新本地数据库的原数据,数据同步应用端完成数据同步后发送报告信息至数据同步服务端,完成数据同步流程。
通过上述技术方案可实现大规模并发应用***的分布式部署,实现对大规模并发***的模块化切分,基于应用模块间的数据供需关系和数据类型的映射关系,能准确可靠的实现应用间相互协作时获取数据的正确性和有效性;在统一的模块管理中心基础上,允许接入多个应用模块,满足进一步扩大业务***应用能力的需求,保障对大规模并发应用间同步业务数据的合法性和准确性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种应用于数据同步应用端的分布式数据同步方法流程示意图;
图2为本发明提供的一种应用于数据同步服务端的分布式数据同步方法流程示意图;
图3为本发明提供的一种分布式数据同步方法流程示意图。
图4为本发明提供的一种分布式数据同步***结构示意图;
图5为本发明提供的一种分布式数据同步***流程示意图;
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。
本具体实施方式提供了一种支持并发应用的分布式数据同步方法和***,解决了现有技术中业务***规模日益扩大,无法保证业务***分布式部署时业务数据的合法性和准确性的问题。
以下,结合附图对实施例作详细说明。此外,下面所示的实施例不对权利要求所记载的发明的内容起任何限定作用。另外,下面实施例所表示的构成的全部内容不限于作为权利要求所记载的发明的解决方案所必需的。
参考附图1-5,具体介绍本实施方式提供的一种支持并发应用的分布式数据同步方法和***,所述分布式数据同步***包括数据同步服务端和至少两个数据同步应用端,详细内容如下:
实施例一
如图1所示,本实施方式提供了一种分布式数据同步方法,应用于数据同步应用端,在实际业务分布***中,数据同步应用端可以提供需要修改的新数据,也可以接收新数据,同步更新本地数据库中的原数据。以下为应用于数据同步应用端的分布式数据同步方法,包括:
S11、接收并解析数据同步服务端广播的数据消息通知,得到解析结果;其中,所述解析结果包括需要同步所述数据消息通知对应的新数据。
一些实施例中,在接收数据同步服务端广播的数据消息通知之前,先启动数据同步应用端;在启动时,所述数据同步应用端将向所述数据同步服务端发送建立连接的请求,建立与所述数据同步服务端之间传输消息的通道,以建立所述数据同步服务端和所述数据同步应用端的实时通讯机制,用于当数据发生变化时进行实时的更新通知;并建立消息队列缓冲区,用于存储数据和消息通知。
在所述数据同步服务端进行数据消息通知广播后,所述数据同步应用端接收、读取、解析所述数据消息通知,得到解析结果,其中,解析结果包括需要同步新数据,和,不需要同步新数据。如果解析结果为需要同步新数据,则进行下一步骤S12;如果不需要同步的数据,则不做出应答。
S12、基于所述解析结果,向所述数据同步服务端发送新数据的请求推送指令,以使所述数据同步服务端打包发送新数据;
S13、接收并按照预设格式处理所述新数据,以处理后的所述新数据更新本地数据库的原数据;
一些实施例中,所述数据同步应用端在接收并处理所述新数据后,调用数据处理应用程序将本地数据库的原数据更新为处理后的新数据,其中,所述数据处理应用程序是由数据同步应用端根据数据处理需要以数据同步服务端提供的开发组件为基础进行参数配置、加载并运行所述开发组件形成的数据同步应用端本地操作数据的应用程序。
需要说明的是,数据处理应用程序是代码片段,是由数据同步服务端从外部结构中下载的客户端工具生成的相关代码片段,实现了基本的数据定义和接受处理的方法调用,数据处理应用程序的具体实现需要根据数据同步应用端本地应用自身的业务逻辑来实现;所述形成数据同步应用端本地操作数据的应用程序,也就是将所述代码片段放到所述数据同步应用端的运行环境中运行,得到数据处理应用程序。
所述数据同步应用端接收到的新数据是通过所述数据同步服务端的数据过滤机制、数据版本管理规则过滤后的新数据,所述接收到的新数据已经符合数据同步应用端的自身所需要的数据版本;所述按照预设格式处理所述新数据,也就是说,所述新数据处理后的格式满足各数据同步应用端的数据验证机制规定的数据要求,其中,具体的所述数据验证机制可由用户根据自身的数据同步需要设定。
S14、生成包含所述新数据的处理状态的报告信息,并将所述报告信息发送至所述数据同步服务端,以提示所述数据同步服务端已同步新数据。
一些实施例中,所述数据同步应用端向所述数据同步服务端报告新数据的处理状态,生成包含新数据的处理状态的报告信息,告知所述数据同步服务端已完成新数据的同步。
在上述数据同步应用端的分布式数据同步方法基础上,在接收并解析数据同步服务端广播的数据消息通知之前,还包括:
封装本地数据库原数据的变更数据,以形成新数据;
发送所述新数据至所述数据同步服务端,以使所述数据同步服务端生成并广播所述新数据的数据消息通知。
数据同步应用端的本地数据库中原始数据变更时,对变更数据进行数据封装,形成新数据,可选的,提供数据的数据同步应用端对数据进行变更是使用基于所述数据同步服务端生成的开发组件实现的数据变更应用程序进行变更数据的封装。
将新数据发送至所述数据同步服务端,是由数据同步应用端调用数据同步服务端提供的数据传输服务实现的,可选的,所述数据同步服务端的数据传输服务还包括文件传输服务,如果有文件数据变更,则通过数据同步服务端的所述文件传输服务发送或接收文件变更数据。
实施例二
如图2所示,本实施例提供了一种应用于数据同步服务端的分布式数据同步方法,所述数据同步服务端用于建立数据同步的消息中心,所述方法包括:
S21、生成并广播数据消息通知,以使数据同步应用端接收并解析所述数据消息通知;
一些实施例中,所述数据同步服务端广播数据消息通知,以使数据同步应用端接收并解析所述数据消息通知之前,还包括:
启动所述数据同步服务端,建立服务端消息队列缓冲区,以存储数据消息;所述数据同步服务端接收所述数据同步应用端启动后发送的连接请求,与所述数据同步应用端建立通信连接。
所述数据同步服务端接收数据同步应用端发送的新数据,根据预先设定的数据对象之间的供需关系,确定接收广播数据消息的对象,向数据同步应用端广播特定格式的数据消息通知,可选的,所述数据消息包括消息ID、消息来源应用模块的编号、接收数据的模块编号、数据对象的名称、消息类型和消息内容。
S22、接收所述数据同步应用端基于需要同步新数据的解析结果发送的新数据的请求推送指令;
所述数据同步应用端判断所述新数据是自身需要同步的数据时,向所述数据同步服务端发送请求推送指令,所述数据同步服务端接收到请求推送指令后,进行下一步骤S23;
S23、基于所述请求推送指令,打包发送所述数据消息通知对应的新数据,以使所述数据同步应用端接收并处理所述新数据;
一些实施例中,所述数据同步服务端可实现针对不同数据版本的持久化数据存储,确保在数据同步过程中减少不必要的重复,提高同步数据的效率。可选的,所述数据同步服务端用于持久化数据存储的数据仓库包括关系型数据库和非关系型数据库;关系型数据库包括Oracle数据库、MS sql server数据库、MySQL数据库、DB2数据库;所述非关系型数据库的类型包括:Hadoop(一种分布式***基础架构)、MongoDB(基于分布式文件存储的数据库)、DB4O(面向对象数据库引擎)、Active Directory(活动目录,使用了一种结构化的数据存储方式,并以此作为基础对目录信息进行合乎逻辑的分层组织)。
S24、接收所述数据同步应用端发送的包含所述新数据处理状态的报告信息,以记录所述新数据同步的日志。
实施例三
结合上述分布式数据同步方法,本具体实施方式还提供了一种应用于分布式数据同步***的数据同步方法,如图3所示,
S31、数据同步应用端本地数据库原数据有变更数据,封装成新数据发送至数据同步服务端;
S32、数据同步服务端接收所述新数据,基于所述新数据生成并广播数据消息通知;
可选的,所述数据消息通知的生成基于所述新数据和预先设定的数据对象间的供需关系,所述预先设定的数据对象间的供需关系是在注册应用模块时设定的。
S33、数据同步应用端接收并解析所述数据同步服务端发出的数据消息通知,获得解析结果。
收到所述数据消息通知的各所述数据同步应用端分别解析所述数据消息通知,并根据解析结果判断自身是否需要同步新数据,如果需要,则执行步骤S34,如果不需要,则不做出反应。
需要说明的是,如果数据同步***中,某一数据只有产生数据变更的数据同步应用端自身需要同步数据,则数据同步服务端接收到新数据后依然会按照数据对象的供需关系广播数据消息通知,产生变更数据的数据同步应用端接收到数据消息通知后,因不需要重复变更数据,则判断为不需要同步数据,则不做出反应,此次数据同步流程结束。
S34、数据同步应用端发出新数据的请求推送指令,请求所述数据同步服务端发送新数据;
S35、所述数据同步服务端打包新数据并发送;
所述数据同步服务端接收到新数据的请求推送指令,并基于所述请求推送指令,打包新数据并发送至所述数据同步应用端;
S36、所述数据同步应用端接收并处理所述新数据,以用新数据更新本地数据库的原数据。
S37、所述数据同步应用端生成并发送新数据的接收和处理状态的报告信息,实现数据同步;
S38、所述数据同步服务端接收报告信息,生成日志记录,实现数据同步。
实施例四
对应于上述分布式数据同步方法,本具体实施方式还提供了一种分布式数据同步***,如图4和图5所示,包括:
数据同步服务端,和多个数据同步应用端。
数据同步服务端(DSS,Data synchronization service),用于建立数据同步的消息中心,存储数据和分发数据;接收需要同步的新数据,根据预先设定的数据对象的供需关系向所述数据同步应用端广播数据消息通知,并在接收到数据同步应用端的请求推送指令后打包发送新数据,以及,对不同版本的数据进行持久化数据存储。
数据同步应用端(DSC,Data synchronization client,可译为:数据同步客户端),用于封装原数据变更后的数据并提供新数据;或,接收需要同步的数据,以及根据开发组件形成的数据处理应用程序用新数据更新本地数据库的原始数据。
在一些实施例中,数据同步服务端,包括数据传输服务模块,消息服务模块、数据仓库模块,以及定义数据对象、注册应用模块的数据同步管理单元,其中,所述数据传输服务模块与所述数据同步应用端建立数据传输机制,用于提供数据传输服务和文件传输服务,实现数据同步服务端和数据同步应用端间数据的传输。
可选的,所述数据传输服务模块中设置有数据验证机制、数据过滤机制和数据版本管理规则;所述数据验证机制,是针对不同类型的数据设置的,以确保数据在符合特定的数据要求下进行同步更新;所述数据过滤机制是根据预先设定的数据对象的供需关系建立的机制,以确保在数据同步时限定数据更新的范围;所述数据版本管理规则,同时可实现对数据的不同版本进行存储和管理,以确保各个应用模块可根据自身需要的数据版本获取数据。
所述数据传输服务模块中还包括在数据同步服务端和所述数据同步应用端之间建立的数据传输机制和文件传输机制;其中所述数据传输机制,传输需变更数据,数据传输服务的接口为WebService接口;所述文件传输机制,传输需要变更的文件,文件传输服务的实现包括FTP通信协议和Socket接口通讯模式。
所述消息服务模块,用于提供数据获取接口,与所述数据同步应用端建立实时通讯机制,以实现当数据发生变化时进行实时的更新通知。消息服务模块中使用JMS(JavaMessage Service,即Java消息服务应用程序接口,是一个Java平台中关于面向消息中间件的API,用于在分布式***中发送消息,进行异步通信)或Comet技术(一种基于HTTP长连接的web端实时通信技术)实现与数据同步应用端的实时数据交互,建立数据同步应用端和数据同步服务端的实时通讯机制。
所述数据仓库模块,用于持久化存储不同版本的数据,其中所述数据仓库模块中用于持久化存储数据的数据库包括关系型数据库和非关系型数据库,可选的,关系型数据库包括Oracle数据库、MS-sql server数据库、MySQL数据库、DB2数据库;所述非关系型数据库的类型包括:Hadoop(一种分布式***基础架构)、MongoDB(基于分布式文件存储的数据库)、DB4O(面向对象数据库引擎)、Active Directory(活动目录,使用了一种结构化的数据存储方式,并以此作为基础对目录信息进行合乎逻辑的分层组织)。
一些实施例中,在所述数据同步服务端还包括数据同步管理单元(DSM,Datasynchronization manager),所述数据同步管理单元用于为所述数据同步***提供数据参数配置;所述数据同步管理单元与所述数据仓库模块和所述数据传输服务模块间相互通信连接;所述数据同步管理单元用于注册应用模块,定义和管理数据结构,并在注册应用模块时确定各应用模块间的数据对象的供需关系,确定实际数据类型与标准数据集的映射关系。
在一些实施例中,所述数据同步管理单元包括数据结构模块和日志统计模块,在实际应用于大规模并发应用***时,实现具体业务***模块的注册和数据结构的定义和管理。
所述数据结构模块的功能包括:定义数据对象,描述数据特征和结构,形成XML描述文件;注册应用模块并确定应用模块间的数据对象的供需关系;建立标准数据类型并指定实际数据类型与标准数据类型的映射关系。所述日志统计模块接收所述数据同步应用端的报告信息,记录数据同步日志。
进一步的,数据同步管理单元为设置在所述数据同步服务端内部的数据同步管理程序,为所述数据同步服务端和所述数据同步应用端的数据同步进程提供统一的应用模块管理,定义数据对象,注册应用模块,提供形成应用程序的运行组件,可选的,生成的运行组件包括数据同步服务、数据对象定义和数据操作API(即Application Program Interface,操作***留给应用程序的一个调用接口);
在所述数据同步管理单元中,预先设置可下载数据同步管理单元以外的客户端工具,所述客户端工具可根据数据同步管理单元生成的XML描述文件自动产生不同开发语言的本地化的开发组件代码,使得本地化组件代码在数据同步应用端或数据同步服务端中生成具体应用程序的实现,比如,在数据同步应用端需要处理接收的新数据,并使用处理后的新数据更新本地数据库的原数据时,根据数据处理需要,以开发组件基础进行数据处理程序的具体实现,在数据同步应用端的运行环境中进行相关应用的配置、加载、运行开发组件,形成本地操作数据的数据处理应用程序,所述数据同步应用端可使用生成的数据处理应用程序处理新数据,并更新原数据。又比如,基于开发组件实现的程序方法进行变更数据的数据封装程序。
所述数据同步管理单元实现的功能包括:
对于常见的数据类型进行统一的抽象定义,形成标准数据类型,在对应不同的数据库或持久化数据存储***时转换为***指出的特定类型;
采用虚拟对象方式实现数据对象的定义,并支持数据对象之间的引用和继承;建立数据同步服务端描述语言,根据数据对象的定义,形成XML格式的描述文件,用于描述数据对象的特征和结构,各种开发语言可根据XML格式的描述文件生成符合使用规范的数据模型和操作代码;根据XML格式的描述文件形成DDL描述文件,根据具体应用的开发语言类型将客户端工具生成的本地化代码编译形成本地化的开发组件。其中,XML是eXtensibleMarkup Language,即扩展标记语言,是一种简单的数据存储语言;DDL(Data DefinitionLanguage),数据库模式定义语言是用于描述数据库中要存储的现实世界实体的语言。
注册应用模块,并在注册应用模块时定义应用模块可以提供的数据和需要接收的数据,保证数据建立和更新的流向,确保数据的来源可靠性和数据的可追溯性,从而提高同步更新数据的安全性。
日志统计单元用于记录数据同步分布过程中数据从数据同步服务端发出和接收的时间和具体流向,以及数据同步应用端发送的报告信息。
一些实施例中,数据同步应用端包括数据接口模块,消息组件模块和任务队列模块,其中,所述数据接口模块提供与所述数据同步服务端的数据传输接口;所述消息组件模块与所述数据同步服务端建立实时通讯连接,用于从所述数据同步服务端的消息服务模块获取并处理新数据,以及,存储数据和消息通知;任务队列模块用于存储来自于不同应用模块的数据队列,以缓冲数据队列,以排序方式进行有效的数据处理。
数据接口模块提供了二次开发接口,包括但不限于数据接口(Data-API)和对象存储接口,用于提供消息侦听服务,通过消息机制获取数据同步服务端的数据消息通知;消息组件模块与数据同步服务端的消息服务模块建立通信连接,以获取数据,并进行本地化处理,更新本地数据库的原数据,所述数据同步应用端建立了针对不同类型数据的数据验证机制,使得数据在更新时要符合数据格式需求。
如图4所示,在分布式数据同步***工作过程中,各终端间模块的连接包括:
在数据同步服务端内部,数据同步管理单元与数据仓库模块、数据传输服务模块分别建立双向通信连接,实现数据的定义和管理,以及应用模块的注册。
数据传输服务模块和数据仓库模块建立双向通信连接,数据传输服务模块通过消息服务模块将数据消息通知发送至数据同步应用端的消息组件模块中,通知数据同步应用端有需要更新的新数据;
数据同步服务端的数据传输服务模块与数据同步应用端的数据接口模块提供的数据接口进行通信连接,实现数据的传输和获取;
在数据同步应用端内部通过数据接口和对象存储接口的通信连接,实现将处理后的新数据更新至本地数据库。
在具体应用分布式数据同步***实现业务***的分布式部署时,业务***中的各数据同步应用端和数据同步服务端建立通信连接,由数据同步服务端中的数据同步管理单元将各数据同步应用端划分为不同的应用模块,并注册登记各应用模块,同时定义数据对象的供需关系,即定义数据应用模块可以提供的数据、需要获取的数据,保证数据建立和更新的流向,确保数据的可靠来源。数据同步应用端和数据同步服务端根据数据同步管理单元提供的数据配置和参数,进行数据的同步,有效提高了应用***的并发处理能力。
本发明提供的分布式数据同步***和应用于分布式数据同步***的数据同步方法,针对不断扩大的业务***,将应用模块实现拆分和分布式部署,在保证数据一致性的基础上实现协同工作,从而扩大业务平台的并发承载能力,同时,通过建立应用***平台之间的数据同步服务,以数据为基础实现应用端的整合,且可支持不同开发语言开发的数据同步应用端之间的应用整合,使得数据同步***中的各个模块可以独立设计实现并统一应用。鉴于此,通过本发明的技术方案可以实现大规模并发应用***的分布式部署,实现对大型业务***基于模块的切分,将过去集中式的数据处理转换为分布式进行处理,基于数据同步实现各种独立应用模块的整合,并且可以实现某一特定模块的多点部署,形成高性能的分布式数据同步***;各个分布式的模块都可以采用独立数据库部署,并可以部署于不同的应用服务器和专用数据库服务器,将数据读写压力分散到不同的处理服务器上,从而提升应用***的并发处理能力。
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是指至少两个。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (10)

1.一种支持并发应用的分布式数据同步方法,其特征在于,所述方法应用于分布式数据同步***中的数据同步应用端,所述分布式数据同步***还包括数据同步服务端;
所述方法包括:
接收并解析数据同步服务端广播的数据消息通知,得到解析结果;其中,所述解析结果包括需要同步所述数据消息通知对应的新数据;
基于所述需要同步新数据的解析结果,向所述数据同步服务端发送新数据的请求推送指令,以使所述数据同步服务端发送新数据;
接收并按照预设格式处理所述新数据,以处理后的所述新数据更新本地数据库的原数据;
生成包含所述新数据的处理状态的报告信息,并将所述报告信息发送至所述数据同步服务端,以提示所述数据同步服务端新数据已同步。
2.如权利要求1所述的方法,其特征在于,所述接收并解析数据同步服务端广播的数据消息通知之前,还包括:
建立与所述数据同步服务端的连接;
建立消息队列缓冲区,以存储新数据和消息通知。
3.如权利要求1所述的方法,其特征在于,所述接收并解析数据同步服务端广播的数据消息通知之前,还包括:
封装本地数据库原数据的变更数据,以形成新数据;
发送所述新数据至所述数据同步服务端,以使所述数据同步服务端生成并广播所述新数据的数据消息通知。
4.一种支持并发应用的分布式数据同步方法,其特征在于,应用于数据同步服务端,所述方法包括:
生成并广播数据消息通知,以使数据同步应用端接收并解析所述数据消息通知;
接收所述数据同步应用端基于需要同步新数据的解析结果发送的新数据的请求推送指令;
基于所述请求推送指令,打包发送所述数据消息通知对应的新数据,以使所述数据同步应用端接收所述新数据;
接收所述数据同步应用端发送的包含所述新数据处理状态的报告信息,以记录同步所述新数据的日志。
5.如权利要求4所述的分布式数据同步方法,其特征在于,所述广播数据消息通知,以使数据同步应用端接收并解析所述数据消息通知之前,还包括:
建立与所述数据同步应用端的连接,并建立服务端消息队列缓冲区,以存储数据消息。
6.如权利要求4所述的分布式数据同步方法,其特征在于,所述广播数据消息通知,以使数据同步应用端接收并解析所述数据消息通知之前,还包括:
接收所述数据同步应用端发送的本地数据库原数据变更后的新数据;
基于所述新数据和预先设定的数据对象间供需关系,生成所述数据消息通知。
7.一种支持并发应用的分布式数据同步***,其特征在于,包括:
数据同步服务端,和至少两个数据同步应用端;
所述数据同步服务端用于接收原数据变更后的新数据,并基于所述新数据和预先定义的数据对象间的供需关系生成数据消息通知,使所述数据同步应用端的数据同步,以及用于持久化存储不同版本的数据;
所述数据同步应用端用于提供变更后的新数据,和接收需要同步的新数据,并将本地数据库的原数据更新为新数据。
8.如权利要求7所述的分布式数据同步***,其特征在于,所述数据同步服务端包括数据传输服务模块、消息服务模块、数据仓库模块,以及定义数据对象、注册应用模块的数据同步管理单元;其中,
所述数据传输服务模块与所述数据同步应用端建立数据传输机制,用于提供数据传输服务和文件传输服务,所述数据传输服务模块中包括数据验证机制、数据过滤机制和数据版本管理规则;
所述消息服务模块提供与所述数据同步应用端实时输出数据的数据接口;
数据仓库模块,用于持久化存储不同版本的数据,其中,所述数据仓库包括关系型数据库和非关系型数据库。
9.如权利要求8所述的分布式数据同步***,其特征在于,所述数据同步管理单元分别与所述数据仓库模块和数据传输服务模块间相互通信连接;
所述数据同步管理单元包括数据结构模块和日志统计模块;其中,
所述数据结构模块用于定义数据对象并形成描述文件、注册应用模块并确定应用模块间数据对象的供需关系、建立标准数据类型并指定实际数据类型与标准数据类型的映射关系;
所述日志统计模块接收所述数据同步应用端的报告信息,记录数据同步日志。
10.如权利要求7所述的分布式数据同步***,其特征在于,所述数据同步应用端包括数据接口模块,消息组件模块和任务队列模块;其中,
所述数据接口模块提供与所述数据同步服务端的数据传输接口;
所述消息组件模块与所述数据同步服务端建立实时通讯连接,用于存储数据和消息通知并处理接收到的新数据;
所述任务队列模块用于存储来自于不同应用模块的数据队列,以缓冲数据队列排序进行数据处理。
CN201910692833.1A 2019-07-30 2019-07-30 一种支持并发应用的分布式数据同步方法和*** Pending CN110413677A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910692833.1A CN110413677A (zh) 2019-07-30 2019-07-30 一种支持并发应用的分布式数据同步方法和***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910692833.1A CN110413677A (zh) 2019-07-30 2019-07-30 一种支持并发应用的分布式数据同步方法和***

Publications (1)

Publication Number Publication Date
CN110413677A true CN110413677A (zh) 2019-11-05

Family

ID=68364026

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910692833.1A Pending CN110413677A (zh) 2019-07-30 2019-07-30 一种支持并发应用的分布式数据同步方法和***

Country Status (1)

Country Link
CN (1) CN110413677A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111813683A (zh) * 2020-07-14 2020-10-23 深圳前海移联科技有限公司 一种通用的软件测试环境自动同步方法
CN112163037A (zh) * 2020-09-17 2021-01-01 彩讯科技股份有限公司 一种数据同步方法、装置、计算机设备及存储介质
CN114265903A (zh) * 2021-12-28 2022-04-01 政和科技股份有限公司 一种数据收集和分发***及工作方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080021219A (ko) * 2006-08-30 2008-03-07 엔에이치엔(주) 컨텐츠 동기화 방법 및 장치
CN104866316A (zh) * 2015-06-02 2015-08-26 雷虹 数据中心中间件***
CN105893543A (zh) * 2016-03-31 2016-08-24 微梦创科网络科技(中国)有限公司 数据缓冲服务方法及***
CN107016031A (zh) * 2016-12-20 2017-08-04 常州市善松信息科技有限公司 一种数据中心中间件***
CN107729366A (zh) * 2017-09-08 2018-02-23 广东省建设信息中心 一种普适多源异构大规模数据同步***
CN107783975A (zh) * 2016-08-24 2018-03-09 北京京东尚科信息技术有限公司 分布式数据库同步处理的方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080021219A (ko) * 2006-08-30 2008-03-07 엔에이치엔(주) 컨텐츠 동기화 방법 및 장치
CN104866316A (zh) * 2015-06-02 2015-08-26 雷虹 数据中心中间件***
CN105893543A (zh) * 2016-03-31 2016-08-24 微梦创科网络科技(中国)有限公司 数据缓冲服务方法及***
CN107783975A (zh) * 2016-08-24 2018-03-09 北京京东尚科信息技术有限公司 分布式数据库同步处理的方法和装置
CN107016031A (zh) * 2016-12-20 2017-08-04 常州市善松信息科技有限公司 一种数据中心中间件***
CN107729366A (zh) * 2017-09-08 2018-02-23 广东省建设信息中心 一种普适多源异构大规模数据同步***

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111813683A (zh) * 2020-07-14 2020-10-23 深圳前海移联科技有限公司 一种通用的软件测试环境自动同步方法
CN111813683B (zh) * 2020-07-14 2023-10-03 深圳前海移联科技有限公司 一种通用的软件测试环境自动同步方法
CN112163037A (zh) * 2020-09-17 2021-01-01 彩讯科技股份有限公司 一种数据同步方法、装置、计算机设备及存储介质
CN114265903A (zh) * 2021-12-28 2022-04-01 政和科技股份有限公司 一种数据收集和分发***及工作方法
CN114265903B (zh) * 2021-12-28 2024-04-30 政和科技股份有限公司 一种数据收集和分发***及工作方法

Similar Documents

Publication Publication Date Title
CN106850788B (zh) 面向多源异构地理信息资源的集成框架及集成方法
EP2180663B1 (en) Trickle sync protocol
WO2020001108A1 (zh) 基于区块链的数据处理方法和装置
KR101950122B1 (ko) 경량 기기 간 프로토콜을 디바이스 관리 프로토콜과 상호연동하기
CN110413677A (zh) 一种支持并发应用的分布式数据同步方法和***
US7831724B2 (en) Services layer model for providing standards-based communications
CN109542865A (zh) 分布式集群***配置文件同步方法、装置、***及介质
US20090037430A1 (en) Unwired enterprise platform
CN104601665A (zh) 一种对物联网感知设备进行云端实时仿真的***和方法
EP2256990B1 (en) A method for transferring the network management configuration information between the element management systems
CN101582894B (zh) 一种用于企业信息化异构***集成的语义网关
CN103617255B (zh) 一种用于电力信息***的业务数据交换同步***及方法
CN105577446B (zh) 一种轻量级嵌入式网络管理***和方法
CN114024826B (zh) 基于服务网格技术实现分布式esb场景下的应用多活***
CN108536778A (zh) 一种数据应用共享平台及方法
CN110413418A (zh) 缓存同步装置及方法,缓存同步***、电子设备
CN102902745A (zh) 一种地理信息web服务集成方法
CN104980525A (zh) 一种基于状态中间件的普适性移动计算框架
CN101340448A (zh) 一种面向数字家庭的医疗数据集成方案
Cavalieri et al. Towards interoperability between OPC UA and OCF
CN110213156A (zh) 一种跨中心群组即时通信方法和***
CN103533094A (zh) 标码一体机及标码***
KR20140037605A (ko) Cim 스키마 및 시스템 토폴로지 정보를 이용한 ami의 동적 운영 방법
CN103107903B (zh) 一种资源数据共享方法和资源数据共享设备
CN115695537A (zh) 实现服务网格适配传统微服务注册中心的方法、***和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination