一种数据同步方法和装置与流程

文档序号:16667631发布日期:2019-01-18 23:22阅读:156来源:国知局
一种数据同步方法和装置与流程

本发明涉及数据同步技术领域,更具体的涉及一种数据同步方法和装置。



背景技术:

目前数据对接方案主要是针对同一种业务、相同格式的数据编写单一数据同步方案,多种异构应用系统里的业务数据之间的同步就得编写多个方案。特别是在大型企业里,因业务不同、开发语言不同、技术更新时间不同导致的异构应用系统多而分散,比如采用java语言开发的财务系统、用.net语言开发的crm系统(即客户关系管理系统)、hr系统、oa系统或各种因技术的更新换代导致的新老式系统,因为异构系统的开发语言不同,导致异构系统的数据库的接口不同,所以使用通常的应用程序编程接口是不能调动异构系统的业务数据的。但是,实际应用中,多个异构应用系统的部分业务数据是通用的,要从不同语言开发的应用系统中调用通用的业务数据。

现有技术中的技术问题主要在于,对于多种异构应用系统的业务数据在数据同步过程中,无法给予统一技术解决方案,产品业务兼容度和应用性不强。



技术实现要素:

本发明的目的是为了解决现有技术中存在的缺点,如:目前技术问题主要在于对于多种异构业务数据同步无法给予统一技术解决方案,产品业务兼容度和应用性不强,而提出的一种数据同步方法。

为了实现上述目的,本发明采用了如下技术方案:

根据本发明的一方面,提供了一种数据同步方法,应用于同步服务器中,包括发送方、接收方,方法包括:发送方具有发送方接口服务,接收方具有接收方接口服务;发送方通过发送方接口服务发送业务数据给同步服务器;接收方通过接收方接口服务接收业务数据;在发送方接口服务和接收方接口服务进行可视化约定配置,可视化约定配置包括接口配置和字段对应关系配置;接收方发起同步请求,在接收方和同步服务器之间进行数据同步。

需要进一步说明的是,接口配置即确认发送方和接收方,字段对应关系配置即对发送方的业务数据和接收方的业务数据的具体字段寻找符合业务逻辑的对应关系。优选地,字段对应关系配置均采用json格式。

需要进一步说明的是,业务数据包括下述一种或多种的组合:对业务数据按业务类型进行分类得到的多个业务数据组、对业务数据进行哈希算法(hash)分布处理形成的多个任务组、未预先处理的业务数据。

需要进一步说明的是,哈希算法的分布处理,在字段对应关系配置中进行。哈希算法(hash)分布采用0-9这10个随机数,即哈希算法(hash)表长度设为10。

需要进一步说明的是,同步服务启动后,同步服务器按照接收方实际业务需要定时同步服务器中的业务数据。

根据本发明的另一方面,还提出一种数据同步装置,应用于同步服务器中,装置包括:

业务分类部件,用于对发送方的业务数据按照业务类型进行分类,得到多个业务数据组;请求接收部件,用于从接收方接收同步请求;数据同步部件,包括应用程序编程接口,用于在接收方和同步服务器之间进行业务数据组同步;接口服务配置部件,用于对发送方接口服务和接收方接口服务进行可视化约定配置,包括接口配置部件和字段对应关系配置部件。

优选地,字段对应关系配置部件包括哈希分布部件,哈希分布部件用于对业务数据进行哈希算法(hash)分布处理,形成多个任务组,从而可并行处理多个任务。

本发明的有益效果为:

首先,在设计思路上对任意发送方接口服务和接收方接口服务进行可视化约定配置,按照业务逻辑进行设置,保证所有的业务同步都能可靠地通过统一服务完成数据传输,本发明主要用在异构应用系统之间不同业务数据格式的业务数据交换,如hr用户数据导入到crm系统,新的物业订单数据同步到旧的物业管理系统等等,所有这些数据传输都使用同样的一套同步服务,不需要每个业务系统都开发一个同步服务程序,不同业务系统的兼容性强,易用性好。

其次,所有发送方数据先暂存在同步服务器数据库中,同步服务再启动任务,按照下游接收方实际业务需要按时同步数据,这样保证了数据同步的安全性和及时性。

最后,本发明实现多种异构业务数据在同步服务中的多任务并发,通过哈希算法可将大数据量的同步任务分成多个业务数据组,同时形成多个线程进行业务数据同步,方便快捷,极大地节省同步服务时间。

附图说明

图1为本发明提出的一种数据同步方法的流程示意图;

图2为本发明提出的一种数据同步方法中多任务并发的两种路径示意图;

图3为对称加密方法的流程示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。

在本发明的描述中,需要理解的是,术语“上”、“下”、“前”、“后”、“左”、“右”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。

本发明提出一种数据同步方法,应用于同步服务器中,包括发送方、接收方,方法包括:发送方具有发送方接口服务,接收方具有接收方接口服务;发送方通过发送方接口服务发送业务数据给同步服务器;接收方通过接收方接口服务接收业务数据;在发送方接口服务和接收方接口服务进行可视化约定配置,可视化约定配置包括接口配置和字段对应关系配置;接收方发起同步请求,在接收方和同步服务器之间进行数据同步。

如图1所示,为本发明提出的一种实施例:

s1:所述发送方具有发送方接口服务,所述接收方具有接收方接口服务;

s2:在所述发送方接口服务和接收方接口服务进行可视化约定配置,包括接口配置和字段对应关系配置;

s3:发送方通过发送方接口服务发送业务数据给同步服务器;

s4:接收方发起同步请求,在所述接收方和同步服务器之间进行数据同步;

s5:接收方通过接收方接口服务接收业务数据。

进一步地,所述接口配置即确认发送方和接收方,因业务不同、开发语言不同、技术更新时间不同导致的异构应用系统多而分散,比如采用java语言开发的财务系统、用.net语言开发的crm系统(即客户关系管理系统)、hr系统、oa系统或各种因技术的更新换代导致的新老式系统,因此需要根据不同的业务需要确定具体某个应用系统为发送方或接收方,比如财务系统作为发送方发送业务数据给作为接收方的crm系统,因crm系统是通过java语言开发的,财务系统是通过.net语言开发的,这两个异构应用系统中的业务数据同步是更高难度的异构数据同步。

其中,接口配置的主要工作为:设置发送方接口名称、url、访问方式:post/get,input:输入参数json,output:输出结果json,同时,也设置接收方接口名称、url、访问方式:post/get,input:输入参数json,output:输出结果json。

进一步地,字段对应关系配置即对发送方的业务数据和接收方的业务数据的具体字段寻找符合业务逻辑的对应关系,如表1和表2所示,对发送方的业务数据和接收方的业务数据进行可视化的约定配置,表1的左侧栏为发送方的业务数据的具体字段,表1的右侧栏为接收方的业务数据的具体字段。表2为符合业务逻辑的对应关系,如发送方的id对应的是接收方的r_id,两者是相同的意思只是表示为不同的字符。优选地,字段对应关系配置均采用json格式,json格式是一种标准格式,便于数据解析。

表1

表2

进一步地,业务数据包括下述一种或多种的组合:对业务数据按业务类型进行分类得到的多个业务数据组、对业务数据进行哈希算法(hash)分布处理形成的多个任务组、未预先处理的业务数据。

对业务数据按业务类型进行分类得到的多个业务数据组,即根据不同的业务类型,比如采购数据、招聘数据、客户数据等,分成不同的业务数据组。

对业务数据进行哈希算法(hash)分布处理形成的多个任务组,哈希算法的分布处理是在字段对应关系配置中进行,在实际操作中,即在字段对应关系配置中追加一个字段,调用哈希算法,即可根据哈希算法将业务数据分成多个任务组。优选地,当业务数据达到了一定的数据量,比如百万级,哈希算法(hash)分布采用0-9这10个随机数,即哈希算法(hash)表长度设为10,也就是将业务数据分成了10个十万级的线程,进行多任务并发,可同时进行数据同步。

哈希算法(hash),就是把任意长度的输入通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。实际中的哈希算法(hash)函数是指把一个大范围映射到一个小范围,把大范围映射到一个小范围的目的往往是为了节省空间,使得数据容易保存。普通的哈希算法(hash)有两点特性:创建哈希表(哈希算法(hash)map)需要先指定大小,即默认创建一个能够存储多少个元素的哈希表,它的默认大小为16;当不断地向哈希算法(hash)map中添加元素时,哈希算法(hash)map越来越满,当添加的元素达到了装载因子乘以表长时,就需要扩容。扩容时,原来已经映射到哈希表中的某个位置(桶)的元素需要重新再哈希,然后再把原来的数据复制到新的哈希表中。

因为有数学证明,扩容成两倍大小,使得再哈希的元素个数最少。对于普通的哈希表而言,扩容的代价是很大的。因为普通的哈希算法(hash)计算地址方式如下:哈希算法(hash)(key)%m,为了演示方便,举个极端的例子如下:

假设哈希函数为哈希算法(hash)(x)=x,哈希表的长度为5(有5个桶):

key=6时,哈希算法(hash)(6)%5=1,即key为6的元素存储在第一个桶中;

key=7时,哈希算法(hash)(7)%5=2,即key为7的元素存储在第二个桶中;

key=13时,哈希算法(hash)(13)%5=3,即key为13的元素存储在第三个桶中....

假设现在哈希算法(hash)表长度扩容成8,那么key为6,7,13的数据全都需要重新哈希。因为,

key=6时,哈希算法(hash)(6)%8=6,即key为6的元素存储在第六个桶中;

key=7时,哈希算法(hash)(7)%8=7,即key为7的元素存储在第七个桶中;

key=13时,哈希算法(hash)(13)%8=5,即key为13的元素存储在第五个桶中....

从上可以看出:扩容之后,元素的位置全变了。比如:key为6的元素原来存储在第一个桶中,扩容之后需要存储到第6个桶中。

最后,接收方发起同步请求,同步服务器根据请求接收部件接收该请求,启动同步服务,同步服务器按照接收方实际业务需要定时同步服务器中的业务数据。

本发明还提出一种数据同步装置,应用于同步服务器中,装置包括:

业务分类部件,用于对发送方的业务数据按照业务类型进行分类,得到多个业务数据组;请求接收部件,用于从接收方接收同步请求;数据同步部件,包括应用程序编程接口,用于在接收方和同步服务器之间进行业务数据组同步;接口服务配置部件,用于对发送方接口服务和接收方接口服务进行可视化约定配置,包括接口配置部件和字段对应关系配置部件。在实际应用中,发送方和接收方都有各自存储业务数据的数据库,现有技术是同步服务器直接通过应用程序编程接口将业务数据从数据库中提取出来进行传输的。通过本发明对发送方接口服务和接收方接口服务进行可视化约定配置,发送方和接收方即可通过数据同步部件的应用程序编程接口和接口服务无障碍传输业务数据。

进一步地,字段对应关系配置部件包括哈希分布部件,哈希分布部件用于对业务数据进行哈希算法(hash)分布处理,形成多个任务组,从而可并行处理多个任务。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

通过本发明的方法,首先,在设计思路上对任意发送方接口服务和接收方接口服务进行可视化约定配置,按照业务逻辑进行设置,保证所有的业务同步都能可靠地通过统一服务完成数据传输,本发明主要用在异构应用系统之间不同业务数据格式的业务数据交换,如hr用户数据导入到crm系统,新的物业订单数据同步到旧的物业管理系统等等,所有这些数据传输都使用同样的一套同步服务,不需要每个业务系统都开发一个同步服务程序,不同业务系统的兼容性强,易用性好。其次,所有发送方数据先暂存在同步服务器数据库中,同步服务再启动任务,按照下游接收方实际业务需要按时同步数据,这样保证了数据同步的安全性和及时性。最后,本发明实现多种异构业务数据在同步服务中的多任务并发,通过哈希算法可将大数据量的同步任务分成多个业务数据组,同时形成多个线程进行业务数据同步,方便快捷,极大地节省同步服务时间。

进一步地,同步服务器与接收方之间的同步业务数据通过对称加密方法进行加密,明文经过加密转变成密文,密文可以经过解密转变成明文,对称加密方法中加密与解密均使用相同的密码,并且是可逆的,对称加密采用了对称密码编码技术,它的特点是文件加密和解密使用相同的密钥,即加密密钥也可以用作解密密钥,对称加密算法使用起来简单快捷,密钥较短,且破译困难。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述部件的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。

该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1