掌桥专利:专业的专利平台
掌桥专利
首页

一种基于文件的数据库数据双向同步系统及其方法

文献发布时间:2023-06-19 18:58:26


一种基于文件的数据库数据双向同步系统及其方法

技术领域

本发明属于软件技术领域,具体涉及一种基于文件的数据库数据双向同步系统及其方法。

背景技术

随着制造业企业信息化的不断发展,终端设备越来越多地应用于生产试验当中,用户可以从服务器实时下载查看生产试验数据,同时填写上报新产生的数据供其他用户使用。但在一些特殊行业,由于安全保密等原因,不允许终端设备使用无线网络,因此只能采用离线式数据同步。现有的同步方法是在将终端设备看作移动存储设备与服务器连接,通过USB的有线方式将数据存储的数据库文件直接拷贝,然后再通过数据对比的方式进行数据同步。由于是拷贝整个数据库后再进行同步,导致数据同步效率低下;同时,USB连接模式下无法对连接的设备进行安全认证,从而使攻击可以利用伪装的方法窃取和篡改数据,造成数据安全问题。

发明内容

本发明克服了现有技术的不足之一,提供了一种基于文件的数据库数据双向同步系统及其方法,能够解决离线状态下数据库数据同步存在的同步效率低下和数据安全问题。

根据本公开的一方面,提出了一种基于文件的数据库数据双向同步系统,所述系统包括:

服务端,所述服务端安装在服务器上,用于同步初始数据库,收集并整合客户端的同步数据,并将整合后的同步数据发送给客户端;

客户端,所述客户端安装在终端设备上,用于记录终端设备的本地数据库的数据变更情况,生成客户端同步数据,发送所述客户端同步数据到服务端,同时接收来自服务端的同步数据,根据所述服务端的同步数据同步客户端本地数据库。

在一种可能的实现方式中,所述服务器为一台,所述终端设备有多台。

根据本公开的另一方面,提出了一种基于文件的数据库数据双向同步方法,所述方法包括:

步骤S1:服务端使用加密算法对初始数据库进行加密生成已加密初始数据库,利用服务端签名算法生成所述已加密初始数据库的签名,将所述已加密初始数据库和签名作为初始同步数据发送给客户端;

步骤S2:客户端利用服务端签名验证算法对所述已加密初始数据库进行验证,若验证结果正确,使用解密算法对已加密初始数据库进行解密得到初始数据库,保存所述初始数据库在终端设备上,作为终端设备本地数据库;

步骤S3:客户端记录本地数据库变更操作,生成客户端本地数据库操作记录文件,利用整合算法将各客户端本地数据库操作记录文件进行整合,得到客户端数据库变更文件;

步骤S4:客户端利用加密算法对所述客户端数据库变更文件进行加密,生成已加密客户端数据库变更文件,利用客户端签名算法生成所述已加密客户端数据库变更文件的签名,将所述已加密客户端数据库变更文件和签名作为客户端同步数据发送给服务端;

步骤S5:服务端使用客户端签名验证算法对所述已加密客户端数据库变更文件进行验证,若验证结果正确,使用解密算法对所述已加密客户端数据库变更文件进行解密得到各客户端数据库变更文件,利用整合算法将各客户端数据库变更文件进行整合得到服务端数据库变更文件,根据所述服务端数据库变更文件变更本地数据库;

步骤S6:服务端利用加密算法对服务端数据库变更文件行加密生成已加密服务端数据库变更文件,利用服务端签名算法生成所述已加密服务端数据库变更文件的签名,将所述已加密服务端数据库变更文件和签名作为服务端同步数据发送给客户端;

步骤S7:客户端利用服务端签名验证算法对所述已加密服务端数据库变更文件进行验证,若验证结果正确,使用解密算法对已加密服务端数据库变更文件进行解密得到服务端数据库变更文件,根据所述服务端数据库变更文件更新客户端数据库变更文件和客户端本地数据库,根据所述服务端数据库变更文件,形成新的客户端数据库变更文件,利用新的客户端数据库变更文件更新本地数据库;

步骤S8:重复步骤S3-S7,完成服务端和客户端基于文件的数据库数据的双向同步。

在一种可能的实现方式中,所述加密算法和解密算法使用AES对称加密算法。

在一种可能的实现方式中,所述服务端签名算法或客户端签名算法包括:

利用SHA1数据摘要算法计算目标文件的数据摘要值;

利用RSA非对称加密算法和服务端/客户端的私钥,对所述目标文件的数据摘要值进行签名操作,得到服务端/客户端的目标文件的签名;

其中,所述目标文件为已加密初始数据库、已加密客户端数据库变更文件或已加密服务端数据库变更文件。

在一种可能的实现方式中,所述服务端签名验证算法或客户端签名验证算法包括:

利用RSA非对称加密算法和服务端/客户端的公钥,对服务端/客户端发来的目标文件的签名进行解密,得到数据摘要值;

采用SHA1数据摘要算法计算目标文件的数据摘要,得到新的数据摘要值;

如果数据摘要值和新的数据摘要值相同,说明目标文件正确,否则不正确;

其中,所述目标文件为已加密初始数据库、已加密客户端数据库变更文件或已加密服务端数据库变更文件。

在一种可能的实现方式中,所述数据库中每条记录包括:唯一标识、创建者、修改者、创建时间、修改时间共5个字段。

在一种可能的实现方式中,所述数据库变更文件为XML格式;所述数据库变更文件中的每条变更记录包括:所在数据库、所在数据表、所在记录的唯一标识、变更类型、操作时间、操作者、变更内容所在字段、内容变更前值、内容变更后值;所述变更类型包括增加、更改和删除。

在一种可能的实现方式中,所述整合算法为:如果存在若干条所在数据库、所在数据表、所在记录的唯一标识、变更类型、变更内容所在字段存在相同的变更记录,则仅保留操作时间最近的变更记录。

在一种可能的实现方式中,将操作者为当前客户端所在设备的变更记录删除后的服务器数据库变更文件作为新的客户端数据库变更文件。

有益之处:本公开的基于文件的数据库数据双向同步系统及其方法,通过服务端,所述服务端安装在服务器上,用于同步初始数据库,收集并整合客户端的同步数据,并将整合后的同步数据发送给客户端;客户端,所述客户端安装在终端设备上,用于记录终端设备的本地数据库的数据变更情况,生成客户端同步数据,发送所述客户端同步数据到服务端,同时接收来自服务端的同步数据,根据所述服务端的同步数据同步客户端本地数据库。能够解决离线状态下数据库数据同步存在的同步效率低下和数据安全问题,提高数据同步效率、且同步数据难以被攻击者窃取和被攻击者篡改。

附图说明

附图用来提供对本申请的技术方案或现有技术的进一步理解,并且构成说明书的一部分。其中,表达本申请实施例的附图与本申请的实施例一起用于解释本申请的技术方案,但并不构成对本申请技术方案的限制。

图1示出了根据本公开一实施例的基于文件的数据库数据双向同步系统原理图。

具体实施方式

以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达到相应技术效果的实现过程能充分理解并据以实施。本申请实施例以及实施例中的各个特征,在不相冲突前提下可以相互结合,所形成的技术方案均在本发明的保护范围之内。

另外,附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1示出了根据本公开一实施例的基于文件的数据库数据双向同步系统原理图。如图1所示,该系统可以包括服务端和客户端。

其中,服务端安装在服务器上,是安装在服务器上的软件;客户端安装在终端设备上,是安装在终端设备上的软件。服务器和终端设备平时不连接,各自处于单独的离线状态,仅在数据同步时,使用USB连接模式进行连接。其中,服务器有一台,终端设备有若干台。

服务端用于同步初始数据库,收集并整合客户端的同步数据,并将整合后的同步数据发送给客户端;客户端用于记录终端设备的本地数据库的数据变更情况,生成客户端同步数据,发送所述客户端同步数据到服务端,同时接收来自服务端的同步数据,根据所述服务端的同步数据同步客户端本地数据库。

本公开的基于文件的数据库数据双向同步系统,通过服务端安装在服务器上,用于同步初始数据库,收集并整合客户端的同步数据,并将整合后的同步数据发送给客户端;客户端安装在终端设备上,用于记录终端设备的本地数据库的数据变更情况,生成客户端同步数据,发送所述客户端同步数据到服务端,同时接收来自服务端的同步数据,根据所述服务端的同步数据同步客户端本地数据库。能够解决离线状态下数据库数据同步存在的同步效率低下和数据安全问题,提高数据同步效率、且同步数据难以被攻击者窃取和被攻击者篡改。

根据本公开的另一方面,提出了一种基于文件的数据库数据双向同步方法流程图。该方法可以应用于图1所示的系统上。该方法可以包括:

步骤S1:服务器与各终端设备第一次连接,服务端使用加密算法对初始数据库进行加密生成已加密初始数据库,利用服务端签名算法生成所述已加密初始数据库的签名,将所述已加密初始数据库和签名作为初始同步数据发送给客户端。

其中,数据库中每条记录包括:唯一标识、创建者、修改者、创建时间、修改时间共5个字段。

签名算法过程为:利用SHA1数据摘要算法计算目标文件的数据摘要值;利用RSA非对称加密算法和服务端/客户端的私钥,对所述目标文件的数据摘要值进行签名操作,得到服务端/客户端的目标文件的签名。目标文件可以为已加密初始数据库、已加密客户端数据库变更文件或已加密服务端数据库变更文件。加密算法使用AES对称加密算法,使用秘钥对目标文件进行加密。

步骤S2:各客户端利用服务端签名验证算法对所述已加密初始数据库进行验证,若验证结果正确,使用解密算法对已加密初始数据库进行解密得到初始数据库,保存所述初始数据库在终端设备上,作为终端设备本地数据库;否则,终止数据同步过程。

其中,签名验证算法过程为:利用RSA非对称加密算法和服务端/客户端的公钥,对服务端/客户端发来的目标文件的签名进行解密,得到数据摘要值;采用SHA1数据摘要算法计算目标文件的数据摘要,得到新的数据摘要值;如果数据摘要值和新的数据摘要值相同,说明目标文件正确,否则不正确。解密算法使用AES对称加密算法,使用秘钥对目标文件进行解密。

步骤S3:服务器和各终端设备断开连接,各终端设备客户端记录本地数据库变更操作,生成客户端本地数据库操作记录文件。

其中,数据库变更文件为XML格式;所述数据库变更文件中的每条变更记录包括:所在数据库、所在数据表、所在记录的唯一标识、变更类型(增加、更改、删除)、操作时间、操作者、变更内容所在字段、内容变更前值、内容变更后值。更新数据库变更文件时,可以将服务器数据库变更文件中,操作者为当前客户端所在设备的变更记录删除,即形成更新后的客户端数据库变更文件。

步骤S4:服务器和各终端设备再次连接,各服务端利用整合算法将各自客户端本地数据库操作记录文件进行整合,得到各客户端数据库变更文件。各客户端利用加密算法对所述客户端数据库变更文件进行加密,生成已加密客户端数据库变更文件,利用客户端签名算法生成所述已加密客户端数据库变更文件的签名,将所述已加密客户端数据库变更文件和签名作为客户端同步数据发送给服务端。

整合各客户端本地数据库操作记录文件时,如果存在若干条所在数据库、所在数据表、所在记录的唯一标识、变更类型、变更内容所在字段,这几项均存在相同的变更记录,则仅保留操作时间最近的变更记录。

步骤S5:服务端使用客户端签名验证算法对所述已加密客户端数据库变更文件进行验证,若验证结果正确,使用解密算法对所述已加密客户端数据库变更文件进行解密得到各客户端数据库变更文件,利用整合算法将各客户端数据库变更文件进行整合得到服务端数据库变更文件,根据所述服务端数据库变更文件更新本地数据库;若验证结果不正确,则终止数据同步过程。

步骤S6:服务端利用加密算法对服务端数据库变更文件行加密生成已加密服务端数据库变更文件,利用服务端签名算法生成所述已加密服务端数据库变更文件的签名,将所述已加密服务端数据库变更文件和签名作为服务端同步数据发送给各客户端;

步骤S7:各客户端利用服务端签名验证算法对所述已加密服务端数据库变更文件进行验证,若验证结果正确,使用解密算法对已加密服务端数据库变更文件进行解密得到服务端数据库变更文件,根据所述服务端数据库变更文件,形成新的客户端数据库变更文件,用新的客户端数据库变更文件,更新本地数据库;若验证结果不正确,则终止数据同步过程。

步骤S8:重复步骤S3-S7,完成服务端和客户端基于文件的数据库数据的双向同步。

以终端设备DV1和DV2,与服务器S基于数据库DB(初始状态如下表所示)的数据双向同步过程为例进行说明。

表1数据库DB初始状态表

S1、服务器S和终端设备DV

S2、DV

S3、服务器S和终端设备DV

DV1seg1RedBlue

DB

T
34a1

updateDV1seg1Blueyellow

;F

771fcreate

12:22:43DV2seg1nullGrayDB

T
771fcreate

DV2seg2nullhorse

S4、服务器和各终端设备再次连接,终端设备DV

F

34a1update

DV1seg1Blueyellow

;F

然后DV

S5、服务器S的服务端接收到DV

F

34a1update

DV1seg1Blueyellow

DB

T
771f

createDV2seg1nullGray

DB

T
771fcreateDV2

seg2nullhorse

服务器S的服务端依据F

表2DB’状态表

S6、服务器S的服务端使用加密算法,对F

S7、DV

其中,F

DV2seg1nullGrayDB

T
771fcreateDV2seg2nullhorse

;F

34a1update

10:33:51DV1seg1Blueyellow

然后,分别用F

S8、服务器和各终端设备再次断开连接,转到S3。

本公开的基于文件的数据库数据双向同步方法,具备数据双向同步效率高,同步数据难以被攻击者窃取和篡改,能够解决离线状态下数据库数据同步存在的同步效率低下和数据安全问题,提高数据同步效率。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

技术分类

06120115757103