一种嵌入式设备与数据库数据同步方法转让专利

申请号 : CN201010527887.1

文献号 : CN102456052B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 宋余庆陈健美严振

申请人 : 江苏大学

摘要 :

本发明涉及一种嵌入式设备与数据库数据同步方法,属于计算机数据处理领域。该方法通过判断嵌入式设备网络连接状态,在网络未连接时,将需操作的数据存入新数据文档,并添加数据操作指令日志。在网络连接后再将操作指令日志的记录,连同新数据文档的内容一一发给数据库服务器,使数据库服务器可以根据相应的指令,实现数据同步。并且,还可以对数据传输过程中的网络连接中断采取重发的补救措施,从而确保嵌入式设备与远程数据库的同步,即嵌入式设备与远程数据库间的数据一致性。

权利要求 :

1.一种嵌入式设备与数据库数据同步方法,其特征在于:所述嵌入式设备按以下步骤实现与相互之间无线通讯的数据库服务器的数据同步:步骤1、生成数据库操作请求;

步骤2、准备数据库操作并判断当前嵌入式设备与网络是否连接,如是,进行步骤3;否则进行步骤4;

步骤3、检查判断本地数据暂存区是否有新操作指令日志和新数据文档,如是则进行步骤31,否则进行步骤33;

步骤31、读取新操作指令日志;

步骤32、根据操作指令日志的记录生成相应的数据库操作指令,将数据库操作指令连同新数据文档发送给数据库服务器,再转到步骤5;

步骤33、与数据库服务器进行常规数据同步传输操作,再转到步骤5;

步骤4、检查判断是否收到离线操作指令,若是则进行步骤41,若否则进行步骤42;

步骤41、停止对数据库的操作,返回步骤2;

步骤42、启动本地数据暂存区,建立存储拟对数据库操作具体数据的新数据文档;

步骤43、建立记录拟对数据库具体操作指令的新操作指令日志;

步骤44、返回步骤2;

步骤5、检查判断向数据库服务器发送数据的传输是否完成,若是则结束对数据库服务器的操作,否则进行步骤6;

步骤6、检查判断当前嵌入式设备的网络是否断开连接,若是则返回步骤2,否则进行步骤7;

步骤7、重新将本地数据暂存区新数据文档内容发送给数据库服务器,直至完成发送传输,结束对数据库服务器的操作。

2.根据权利要求1所述的嵌入式设备与数据库数据同步方法,其特征在于:所述新数据文档为xml数据文档。

3.根据权利要求1或2所述的嵌入式设备与数据库数据同步方法,其特征在于:所述嵌入式设备内含用于生成数据库操作请求的应用程序、用于当网络未连接时将数据转存到本地数据暂存区的模式转换器、本地数据暂存区和通信客户端;所述数据库服务器包含通信服务端、数据处理模块和数据库;所述通信服务端与通信客户端之间通过无线方式连接。

4.根据权利要求3所述的嵌入式设备与数据库数据同步方法,其特征在于:所述步骤1产生访问数据库请求的具体过程为: 步骤301 嵌入式设备上的应用程序接收操作者的操作生成相应的操作数据库的请求指令; 步骤302 应用程序对所生成的数据库请求按照预定格式封装成SQL指令包; 步骤303 向模式转换器发出访问数据库请求。

说明书 :

一种嵌入式设备与数据库数据同步方法

技术领域

[0001] 本发明涉及一种嵌入式设备与数据库同步方法,尤其是一种嵌入式设备离线时与数据库进行数据同步的方法,属于嵌入式数据库领域。

背景技术

[0002] 目前主流的数据库管理系统,如Oracle、MS-SQL Server、Sybase、DB2、MySQL等,都在原有的数据复制功能上添加更多的组件,提供了许多数据复制的工具,针对不同的应用提出并研究了各种数据同步复制方法,增加了更强大的技术支持。
[0003] 在分布式数据库应用环境中,不同的应用领域对数据复制的要求各异,不可能有一种复制方法能够适合所有领域中的应用需要。为此以下三种复制类型满足不同环境中的应用需要:
[0004] 1.快照复制:快照复制是数据库中最简单的一种复制方式,它拷贝数据库中出版物在某一时刻的结构和数据状态,之后通过复制代理将出版物快照复制给订阅服务器。快照复制操作由快照代理和分发代理实现。快照代理将出版物中各条目(表)的结构和数据拷贝到分发服务器的快照文件(但不是分发数据库)中,并在分发服务器的分发数据库中记录复制同步操作。分发服务器再根据分发数据库.中的同步记录将快照文件传递到订阅服务器的目的数据库中。
[0005] 2.事务复制:采用事务复制方式时,当订阅服务器对出版服务器中的出版物进行初始同步后,数据库监视INSERT,UPDATE,DELETE等数据更新语句的执行,并对影响出版物的事务进行标识。事务日志阅读代理从事务日志中捕获出版条目中数据的变化,并将引起这些变化的事务拷贝到分发服务器的分发数据库中。之后,由分发服务器将这些事务传递给订阅服务器,并在订阅服务器上顺序执行这些事务,对复制数据做增量修改,从而保证订阅服务器中的复制数据与出版服务器出版物中的数据一致(但不是实时一致)。由于事务的数据量远小于它所操作数据库的数据量,所以采用事务复制方式能够有效减轻网络的通信负担。
[0006] 3.合并复制:合并复制允许用户修改订阅服务器中的订阅数据,它能够自动监视订阅数据库中的数据变化并定期将这些变化进行合并再把合并后的结果提交给所有订阅者。如果在合并过程中发现不同用户对数据所做的修改存在冲突时,合并代理程序将根据建立订阅时为订阅者所设置的优先级裁决哪个用户的修改有效。
[0007] 以上各种方法均是针对网络状态良好的数据库之间数据同步方法,在移动嵌入式设备应用越来越广泛的情况下,移动嵌入式设备与数据库信息同步的要求逐步得到提高,而移动嵌入式设备网络环境复杂无法保证时刻处于联网状态,此时设备数据同步就显得越发的重要,然而当前却没有一种针对移动嵌入式设备在网络隔离状态下与数据库进行数据同步的方法。
[0008] 检索发现,专利申请号为200810216201.X的中国专利公开了一种大数据对象的传输方法,该方法解决了设备之间数据传送时网络突然断开情况下的数据续传问题。然而该方法没有解决嵌入式设备在网络断开情况下,因无法及时对远程数据库进行操作而导致的数据丢失问题。
[0009] 发明内容
[0010] 本发明的目的在于:针对上述现有技术的缺陷,提出一种可以解决移动嵌入式设备在暂时性物理隔离状态下与数据库进行数据同步难题的嵌入式设备与数据库数据同步方法。
[0011] 为达到上述目的,本发明的技术方案是:一种嵌入式设备与数据库同步数据方法,所述嵌入式设备按以下步骤实现与相互之间无线通讯的数据库服务器的数据同步(参见图9):
[0012] 步骤1、生成数据库操作请求;
[0013] 步骤2、准备数据库操作并判断当前嵌入式设备与网络是否连接,如是,进行步骤3;否则进行步骤4;
[0014] 步骤3、检查判断本地数据暂存区是否有新操作指令日志和新数据文档,如是则进行步骤31,否则进行步骤33;
[0015] 步骤31、读取新操作指令日志;
[0016] 步骤32、根据操作指令日志的记录生成相应的数据库操作指令,将数据库操作指令连同新数据文档发送给数据库服务器,再转到步骤5;
[0017] 步骤33、与数据库服务器进行常规数据同步传输操作,再转到步骤5;
[0018] 步骤4、检查判断是否收到离线操作指令,若是则进行步骤41,若否则进行步骤42;
[0019] 步骤41、停止对数据库的操作,返回步骤2;
[0020] 步骤42、启动本地数据暂存区,建立存储拟对数据库操作具体数据的新数据文档,最好是可以方便的与数据库进行数据交换的xml数据文档;
[0021] 步骤43、建立记录拟对数据库具体操作指令的新操作指令日志;
[0022] 步骤44、返回步骤2;
[0023] 步骤5、检查判断向数据库服务器发送数据的传输是否完成,若是则结束对数据库服务器的操作,否则进行步骤6;
[0024] 步骤6、检查判断当前嵌入式设备的网络是否断开连接,若是则返回步骤2,否则进行步骤7;
[0025] 步骤7、重新将本地数据暂存区新数据文档内容发送给数据库服务器,直至完成发送传输,结束对数据库服务器的操作。
[0026] 上述技术方案可以通过判断嵌入式设备网络连接状态,在网络未连接时,将需操作的数据存入新数据文档,尤其是XML载体,并添加数据操作指令日志。在网络连接后再将操作指令日志的记录,连同新数据文档的内容一一发给数据库服务器,使数据库服务器可以根据相应的指令,通过xml文件对数据库进行操作,实现数据同步。并且,还可以对数据传输过程中的网络连接中断采取重发的补救措施,从而确保嵌入式设备与远程数据库的同步,即嵌入式设备与远程数据库间的数据一致性。
[0027] 由此可见,本发明的方法可以在不影响应用程序正常数据库操作的情况下完成数据同步,使嵌入式数据库用户能够方便地与远程的数据库进行数据的交互而无需考虑网络是否保持连接,从而提高了嵌入式设备的适应性。
[0028] 归纳起来,本发明具有以下显著优点:
[0029] 1 、适应性高。无需增加任何附属硬件,只需在嵌入式设备和数据库一端安装相应的数据处理软件,就可以实现嵌入式设备在间隔性网络隔离状态下与数据库的数据同步,填补了嵌入式设备在网络间断离线状态下访问数据库的技术空缺。
[0030] 2 、方法简单。采用本发明后,嵌入式设备访问数据库服务器的方法变得简单直接,因此可以显著提高研发效率,使应用软件开发人员只关注系统开发,而无需关注网络连接状态的影响。
[0031] 3 、应用广泛。本发明适用于任何具有无线通信模块的嵌入式系统,可以在医疗卫生,国防军事,野外工作等诸多领域广泛应用。

附图说明

[0032] 下面结合附图对本发明作进一步的说明。
[0033] 图1为本发明一个实施例的硬件结构及其相互之间数据通信和交互示意图。
[0034] 图2是图1实施例的基本流程图。
[0035] 图3是图2实施例的嵌入式设备生成数据库操作请求流程图。
[0036] 图4是图2实施例在网络连接状态下直接与数据库通信流程图。
[0037] 图5是图2实施例在网络未连接状态下的数据库操作流程图。
[0038] 图6是图2实施例嵌入式设备、数据库网络拓扑图。
[0039] 图7是图2实施例的指令包的数据结构示意图。
[0040] 图8是图2实施例的日志格式示意图。
[0041] 图9是图2实施例的总体流程图。

具体实施方式

[0042] 实施例一
[0043] 为使本发明的目的、技术方案和优点更加清楚明白,以下举主要应用于嵌入式设备的实施例,并结合附图,对本发明进一步详细说明。
[0044] 如图1所示,本实施例的硬件环境主要包括嵌入式设备110及与之无线通信联系的数据库服务器120。嵌入式设备110内含访问数据库的应用程序111、模式转换器112、本地数据暂存区113和通信客户端114;数据库服务器120包含通信服务端121、数据处理模块122和数据库123。
[0045] 通信服务端121、通信客户端114之间通过无线方式连接。模式转换器112和数据处理模块122完成系统的核心同步功能。
[0046] 嵌入式设备110的通信客户端114和数据库服务器上的通信服务端121实质是提供连接通信的功能模块集合,主要负责嵌入式设备和数据库之间的连接通信和数据交换。模式转换器112判断网络连接状态,当网络未连接时对应用程序请求的数据库操作进行处理,将数据转为xml格式转存到本地数据暂存区113,并记录在网络未连接状态下每次对数据库的操作指令日志中。当网络连接时,该模块将离线时对数据库的操作指令日志及数据xml文件发送给数据库服务器120;本地数据暂存区113用来存储网络未连接情况下应用程序对数据库访问操作的数据及日志等内容。
[0047] 数据库服务器120中的数据处理模块122接收到嵌入式设备在断线时存储的xml数据及操作指令日志生成的指令,根据指令对数据库进行数据同步。
[0048] 本实施例的网络拓扑图如图6所示:远程数据库安装在服务器上,速度和效率较高;服务器需要连入局域网中。采用IEEE802.11b/g通信标准的嵌入式设备通过无线AP连入到相同的局域网中,嵌入式设备也可以在无网的环境下工作。
[0049] 本实施例的总流程参见图2,其步骤为:
[0050] 步骤201 嵌入式设备上的应用程序产生访问数据库请求;
[0051] 步骤202 模式转换器等待数据请求并判断当前设备的网络连接状态;若连接,则:
[0052] 步骤203 模式转换器采用正常的与数据库数据同步方式对数据库进行操作;若未连接,则:
[0053] 步骤204 模式转换器通知应用程序当前网络状态,并启用网络未连接状态下的数据库操作;
[0054] 本实施例上述步骤201 嵌入式设备产生访问数据库请求的过程参见图3,其具体操作步骤为:
[0055] 步骤301 嵌入式设备上的应用程序接收操作者的操作生成相应的操作数据库的请求指令;
[0056] 步骤302 嵌入式应用程序对所生成的数据库请求进行分析后,按照预定格式封装成SQL指令包;预定格式可以根据实际需求自定义,目的是为了方便实现,例如采取如图7所示格式的封装。其中TYPE_ID为SQL指令包的包头,表征指令类型:如将SQL语句中的查询操作定义为“S”,插入操作定义为“I”,更新操作定义为“U”,删除操作定义为“D”;SQL COMMAND为一条SQL字符串,如“select * from users”;
[0057] 步骤303 应用程序向模式转换器发送访问数据库请求;
[0058] 本实施例上述步骤203所述的正常与数据库同步具体流程如图4所示(不同嵌入式设备可以按其原有方式正常同步操作):
[0059] 步骤401 通信客户端通过TCP/IP协议与通信服务端建立通信连接,该通信连接的建立可以基于无线或有线方式;
[0060] 步骤402 判断数据存储去是否有数据,若无未更新数据,则步骤403,若有更新数据则步骤410;
[0061] 步骤403 通信客户端通过该建立起的连接向通信服务端发送生成的SQL指令包;
[0062] 步骤404 服务器端收到指令包后交由数据处理模块处理,解析出按前面所述格式封装的SQL指令;
[0063] 步骤405 数据处理模块根据解析出的SQL指令对数据库进行操作;
[0064] 步骤406 将数据库操作成功结果返回给嵌入式设备以供嵌入式上的应用程序调用;
[0065] 步骤407 判断数据是否发送完成,以防数据在发送过程中网络通信中断,若发送未完成则步骤408,若发送完成则步骤412;
[0066] 步骤408 判断当前网络状态是否连接,若网络状态连接中,则步骤409,若发送完成则步骤412;
[0067] 步骤409 重新传送数据,返回步骤407;
[0068] 步骤410 将存储在数据暂存区中的未同步数据及日志发送给数据库服务器;
[0069] 步骤411 数据处理模块根据发送过来的日志和数据xml文档对数据库进行操作并对数据暂存区的日志文件中的state状态改为已同步状态,即为1。State为该日志的状态信息,如:是否已经被同步,若同步则为1,若未同步则为0;
[0070] 步骤412 结束。
[0071] 本实施例上述步骤204所述的模式转换器通知应用程序当前网络状态,并启用网络未连接状态下的数据库操作具体操作步骤如下:
[0072] 步骤501 向应用程序发送当前离线网络状态,以确认是否继续进行离线数据库操作;
[0073] 步骤502 模式转换器判断应用程序所选择是否继续离线操作,
[0074] 若不进行离线数据库操作,则步骤503;若进行离线操作则步骤504;
[0075] 步骤503 退出;
[0076] 步骤504 模式转化模块提取封装好的指令包,将包中的SQL指令解析出来;
[0077] 步骤505 将指令中对数据操作的数据部分以XML文档的格式保存于嵌入式设备的存储空间中;
[0078] 步骤506 模式转换模块在数据暂存区中生成一个日志文件,该文件记录应用程序对数据库操作的指令及时间,具体格式见图8,其中,Date&Time记录当前操作数据库时间,如:2010-10-21&10:20:00,SQL COMMAND记录该数据库操作指令内容,User记录执行这条操作的使用者信息,State为该日志的状态信息,如:是否已经被同步,若同步则为1,若未同步则为0,最后返回步骤202;
[0079] 这样就完成了整个嵌入式设备与数据库在网络状态不稳定情况下的同步流程。综合起来,本实施例的嵌入式设备与数据库数据同步整个过程如图9所示:
[0080] 步骤901、应用程序生成数据库操作请求;
[0081] 步骤902、等待数据库操作并判断当前嵌入式设备的网络是否连接,如是,进行步骤903;否则进行步骤904;
[0082] 步骤903、检查判断本地数据暂存区是否有新操作指令日志和新数据文档,如是则进行步骤907,否则进行步骤909;
[0083] 步骤907、读取数据暂存区中操作指令日志的记录;
[0084] 步骤908、根据操作指令日志中的记录生成相应的数据库操作指令,将本地数据暂存区相应的新数据文档内容发送给数据库服务器,再转到步骤910;
[0085] 步骤908、与数据库服务器进行常规数据同步传输操作,再转到步骤910;
[0086] 步骤904、检查判断用户输入的是否离线操作指令,若是则进行步骤906,若否则停止对数据库的操作,返回步骤902;
[0087] 步骤905、启动本地数据暂存区,建立存储拟对数据库操作具体数据的新数据文档,最好是可以方便的与数据库进行数据交换的xml数据文档;
[0088] 步骤906、建立记录拟对数据库具体操作指令的新操作指令日志,返回步骤902;
[0089] 步骤910、检查判断向数据库服务器发送数据的传输是否完成,若是则结束对数据库服务器的操作914,否则进行步骤911;
[0090] 步骤911、检查判断当前嵌入式设备的网络是否断开连接,若是则返回步骤902,否则进行步骤912;
[0091] 步骤912、重新将本地数据暂存区新数据文档内容发送给数据库服务器,直至完成发送传输913,结束对数据库服务器的操作914。
[0092] 本实施例使得移动嵌入式设备在暂时性无网络连接和不影响原有工作方式的情况下,依然能够完成对数据的相应操作,在以后方便的时候连接到网络中,再与数据库进行数据同步,从而无需依赖网络的连接,扩大了移动嵌入式设备的应用范围,妥善解决了嵌入式设备与数据库间的数据一致性问题。
[0093] 除上述实施例外,本发明还可以有其他实施方式。凡采用等同替换或等效变换形成的技术方案,均落在本发明要求的保护范围。