首页> 中国专利> 在数据库环境通过背景同步的数据完整性

在数据库环境通过背景同步的数据完整性

摘要

本发明描述了数据库环境中维持数据完整性的系统、方法和计算器程序产品。在运作中,在远程数据系统开始一个进程以同步来自远程数据库系统的远程数据与综合数据库的综合数据。在同步进程发生时远程数据的每一行元数据被利用以允许事务访问到远程数据。

著录项

  • 公开/公告号CN102272751A

    专利类型发明专利

  • 公开/公告日2011-12-07

    原文格式PDF

  • 申请/专利权人 移动解决方案公司;

    申请/专利号CN200980153521.8

  • 发明设计人 麦克·索德;

    申请日2009-12-03

  • 分类号G06F17/00;

  • 代理机构北京路浩知识产权代理有限公司;

  • 代理人谢顺星

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-18 04:00:10

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-07-22

    授权

    授权

  • 2012-02-08

    实质审查的生效 IPC(主分类):G06F17/00 申请日:20091203

    实质审查的生效

  • 2011-12-07

    公开

    公开

说明书

技术领域

本发明涉及在数据库环境中保持数据的完整性,特别是在数据库 环境中通过背景同步保持数据的完整性。

背景技术

在当今不断扩展的计算环境中,许多企业员工使用便携式、移 动计算装置如个人笔记本电脑、平板电脑、个人数码助理、智能电 话和其它类似装置来执行工作。这些远程系统通常运行采取“始终 可用”或“偶然连接”的架构的移动商务应用程序。在这种方式下,远 程系统在本地存储数据,使自己的数据应用程序在网络是否可用时 都可以继续使用。尽管有本地数据存储,为商务应用程序使用的数 据的最终来源不是远程系统,而是公司服务器上的综合数据库。每 隔一段时间,在流动员工中被利用和更新的数据需要通过有线或无 线网络连接与综合数据库的中央数据存储同步,以确保数据的完整 性。

虽然数据同步显然是必要的,以保持移动计算环境中的数据一 致,但是从移动装置移动数据到综合服务器并从综合服务器移动数 据到移动装置的同步操作会需要大量的计算机和网络资源,往往需 要很长时间才能完成。这些操作包括追踪移动装置和服务器上的数 据变化、传输正确的变化、确保数据的唯一键值被保留并确定和解 决冲突的发生。通常情况下,数据同步进程的必要控制要求在同步 进程发生时远程系统中的数据访问受到限制,以最多只允许数据的 唯读访问。然而,当同步操作进行其间缺少对远程数据库的同时事 务访问的支持会降低性能和效率。

因此,在远程数据库环境中通过在数据修改操作的背景运行的 同步以确保数据完整性的方法是有需要的。本发明解决这样的需要。

发明内容

本发明涉及数据库环境中保持数据完整性的系统、方法和计算 机程序产品。

在一个实施例中,本发明在远程数据系统开始一个进程以同步 来自远程数据库系统的远程数据与综合数据库的综合数据,并在同 步进程发生时利用远程数据的每一行元数据以允许事务访问。

本发明的更多特征、优点、以及各实施方式的结构和运作将连 同参照附图在以下详细描述。需注意本文描述的具体实施方式只示 意作说明用途,而本发明并不局限于此。本发明所教导内容使相关 领域技术人员显而易见地联想到更多的实施方式。

附图说明

纳入本说明并构成本文一部分的附图,描绘了本发明的实施方 式。附图及其描述进一步说明了本发明的原理,并容许相关领域技 术人员制作及使用本发明。

图1展示了本发明一个实施例中实现背景同步的计算环境例子 的框图。

图2说明了本发明一个实施例中在数据库环境下确保数据完整 性的同步进程的整体流程的框图。

图3说明了本发明一个实施例中保持同步进程的元数据的整体 流程的框图。

图4说明了本发明一个实施例中确定元数据的上传状态值部分 的整体流程的框图。

图5说明了本发明一个实施例中解释上载状态值影响同步进程 的整体流程的框图。

图6说明了一个实施本发明的有用计算机的例子。

当结合附图和以下的详细描述,本发明的特点和优势将更加明 显。在附图中,参考编号通常指相同、功能相似和/或结构相似的组 件。一般来说,参考编号最左方的数字指出该参考编号最初出现的 附图的号码。

具体实施方式

在移动环境中,特别是手持式计算机系统,本地数据库应用的 利用必须支持本地数据库与网络服务器上的综合数据库的数据同步 的需要。一个已知的数据库应用在名称为数据库系统和从便携式装 置访问数据库的方法并专利权已转让给受让人的美国专利6341288 中描述了,其在多个装置之间更具便携性,该多个装置包括具有有 限计算能力的装置。随着计算能力、存储装置、和移动系统的其它 系统组件已在近年来有所改善以支持多线程处理,相应地,在当今 快速节奏和移动办公环境中,有必要增加一个不仅可以保持数据的 完整性,而且还可以作为背景运作以允许大量连续的事务访问并改 善效率和性能的同步工序。

图1展示了本发明一个实施例中实现背景同步的移动计算环境 102的框图。其中包括中央系统104和一个或多个远程系统106如便 携式、手持移动计算装置,例如笔记本电脑装置、个人数码助理、 手机和相类似的。中央系统104和远程系统106之间通过通信网络 108的任何已知手段(例如互联网,但不限于互联网)来通信。

中央系统104包括同步系统110和综合数据库系统112。综合数 据库系统112作为数据库管理器和数据库来运作,其中数据库可以 进一步包括索引和表数据,而数据库管理器可以是任何数据库管理 系统(DBMS)的形式,并可以包括但不限于拥有处理器和内存以 执行和储存指令的装置。在一个不是为了限制本发明例子,综合数 据库系统112可包括软件、固件和硬件或它们的组合,数据库管理 器可以是如SYBASE Adaptive Sever Enterprise的DBMS。该软件可 以包含一个或多个应用程序和操作系统。硬件可以包括但不限于处 理器、内存和用户界面显示屏。自选的输入装置如键盘、鼠标、手 写笔或任何其它指示装置也可以使用。数据库管理器可以存储和操 作在数据库中的数据。数据库管理器可直接被系统用户作为软件包 的组件来使用,或可用于提供各种服务到独立的软件包。

每个远程系统106优选地包含远程数据库系统114。远程数据库 系统114可进一步包含在综合数据库系统的数据库中的数据子集, 该数据子集包括数据库索引和表数据。远程系统106可以包括但不 限于拥有处理器和内存以执行和储存指令的装置。在一个不是为了 限制本发明的例子,远程数据库系统114可被提供作为SYBASE  SQL Anywhere UltraLite并可以包括软件、固件和硬件或它们的 组合。该软件可以包含一个或多个应用程序和操作系统。硬件可以 包括但不限于处理器、内存和用户界面的显示屏。自选的输入装置 如键盘、手写笔或任何其它指示装置也可以使用。

在综合数据库系统112的数据库和在远程数据库系统114的该 数据库的子集可以是根据本领域中已知的不同逻辑数据模型或存储 的数据的视图来管理和操作的数据集合。在目前的数据库市场,逻 辑数据模型的例子包括采用行业标准SQL查询语言的关系模型。数 据库表对本领域的技术人员来说是已知的,数据库表可以进一步包 括几个记录,每个记录由几个列组成。

作为一个例子,在关系架构系统中操作数据包括对存在于数据 库中的表、共享列和索引的操作。例如,在远程数据库系统114,行 映图存储结构可以维持从行标识符到行状态(行状态在下文进一步 说明)和行处理的映射。该行标识符可以被添加到列目录的末尾以 作为提供列和行标识符的有序目录的索引键的一部份。行处理可以 包含存储结构中的行数据的坐标。从概念上讲,行映图是线性阵列 并被行标识符索引。通过分配该阵列的数据段到存储页并用内部寻 址节把数据段连接一起到树的方法来存储数组,其在树的深度相当 于该行映图的大小。与已知的B-树结构相似,树的叶子包含实际的 数组。根和内部节点用来确定拥有最少输入/输出成本的阵列。

同步系统110运行以确保综合数据库系统的112的数据库与在 远程数据库系统114中该数据库的子集之间数据完整性。在一个不 是为了限制的本发明例子中,同步系统110可提供作为SYBASE  SQL Anywhere MobiLink也可以包括软件、固件和硬件或它们的 组合。通过通信数据的变更,远程系统106和中央系统104之间可 实现高效数据同步。

在一个优选的实施例,移动计算环境102的背景同步进程在及 时知道甚么数据变更应上传到中央系统104和什么数据变更应该被 忽略时通过创建远程数据库系统114的数据“快照”来实现。该快照 以多类型位值的形式使用元数据,包括上载值以作为每数据行的行 状态。此元数据必须负责追踪仅仅超过一个简单单一位的行情况以 表示插入或删除行,因为在背景正被同步的行也可能在前景被改变。 因此,即使一背景同步被处理以确保下一背景同步进程的任何修改 被捕获,本发明的元数据也可以追踪和识别数据库操作过程中被修 改的行。

现在参考图2,本发明一个实施例中在数据库环境下确保数据完 整性的同步进程的整体流程的框图被展示了。正如将要描述的,在 同步过程中会有一些不同的信息交换,从而限制了协议的“聊天”。 当通信可能会比较慢和具有较高的延迟时,这可能是有利的,例如 当使用电话线路或公共无线网络连接,本领域的技术人员非常理解。

通常,当用户选择执行数据同步(框块200),远程系统106和 中央系统104之间通过通信网络108建立了连接,同步进程开始发 生了。要同步的数据在上载流中从远程系统106传送到中央系统104 (框块202)。在一个优选的实施例,上载流的建设依赖于使用行状 态元数据以确定哪些行传送到中央系统104和这些行的情况。通过 使用行状态元数据,同步功能可发生而无需使用在本领域中共知的 且更复杂和费时的典型日志事务追踪和联合。

当接收到上载流,中央系统104把上载流应用到综合数据库系 统112(框块204),并在综合数据库系统112(框块206)执行上载流 的变更。随着执行数据变更以完成同步进程的上传阶段,中央系统 通过发送回复到远程系统106以表明在中央系统106(框块210)的上 载流已经完成执行以启动下载阶段。中央系统104然后建立并传送 下载流到远程系统106(框块210)。远程系统106调整已成功上载 的行(框块212)的行元数据状态并应用于接收到下载流(框块214)。 基于来自下载流的数据,进行必要的调整到行状态以执行来自远程 数据库系统114(框块216)的数据并完成同步过程。

现在参考图3,根据本发明的一个实施例,图3展示了维持元数 据来实现图2中同步进程的整体步骤。当远程系统106的用户实行 数据库操作(框块300)如删除、更新或添加操作,该进程启动了。 根据操作的发生,行状态的元数据用来反映任何变化。如下面的列 表所示,在一个优选的实施例,元数据包括四个一起提供行状态的 值:

插入类型(正常,插入,后影像);

删除类型(无,删除,移除);

执行状态(插入执行,插入没有执行,或许);及

上载状态(没有计算,包括,除外)。

为了让每个值的三个情况得到允许,8位(每个值2位)可以用 来提供元数据。

作为例子,在一个行初步插入的数据库操作,插入类型值=插入、 删除类型值=无、执行状态值=插入没有执行以及上载状态值=没有计 算。在行的更新,新版本的行被标记为删除类型值=无、执行状态值 =插入没有执行以及上载状态值=没有计算。对于行更新的插入类型 值,如果行的旧版本拥有删除类型值不等于删除和插入类型值是后 影像或删除类型值不等于移除并且执行状态值等于或许或者插入执 行,后影像值的情况会被使用。当行变更“可能“已上载,但因为 还没有收到确认而产生不确定性时,“或许”这个词会被使用。否则, 插入类型值=插入。无论新行的插入类型值是后影像或插入,已更新 的行的旧版本会被更改为删除类型=删除。

在行删除上,通常删除类型值=删除。然而,在一个实施例中, 停止同步设置可能被用来允许某些数据不进行同步进程。该功能的 目的是减少每个远程系统106持有来自综合数据库114的行子集。 也就是说,在综合数据库114看来,删除并没有真正从中删除了, 所以他们不应该被上传。删除类型的移除值用于反映这一点。

在实行数据库操作后,进程可以通过执行数据库操作(框块302) 来继续。数据库的操作执行取决于是否存在受影响的行的在先同步。 对于删除,如果该行从来没有被同步,那么它会被删除。如果该行 已被同步,那么它不会被删除,因为删除操作需要首先同步到综合 数据库。当更新行的事务被执行,受该事务影响的所有行状态会被 修改,以反映该执行。当更新被同步了,行的新老版本都需要允许 冲突检测和解决。然后,旧行从数据库中删除,而新行就变成一个 普通的行。行的新增使该行被标记为已执行。

对于每个数据库操作(插入、更新和删除),在同步(框块306) 其间,当对同步进程的检测是肯定的(框块304),额外的标记通过更 新行状态元数据的上载状态值情况来进行。如果没有同步进程正在 进行(框块304是否定的),远程数据库系统忽略行状态的上载状态 值部分,并继续数据库事务(框块300)的标准处理。

如上面的目录所示,在一个优选的实施例,上载状态值情况包 括:没有计算,包括和除外,其中没有计算值是用来表示行没有发 生执行同步的上载开始了,包括值是用来表示行应该是同步的一部 分,而除外值是用来表示行不是同步的一部分。这些行状态元数据 的上载状态值使得上载开始的一刻同步操作与数据库的执行状态的 快照一起作业。有了这个快照,数据库中的变改不会影响上载的数 据,并且上载数据的完整性得到保证因为远程系统106会继续处理 数据库事务。

图4的框块流程图展示了确定行状态元数据的上传状态值部分 的进程。上载状态值的初步检测发生以确定实际上其是否需要设置 (框块400)。一般来说,当同步其间行的执行发生,行状态的上载 状态值会被设置为包括或除外,而同步完成时,行状态的上载状态 值会被改回没有计算。

因此,如果上载状态值已设置为包括或除外,则没有需要对上 载状态值做变更,因为已设置的上载状态值表明自从上载开始后这 不是第一次在该行执行。此外,如果行状态的执行状态值情况是或 许,那么该行已经被上传但尚未被确定为成功完成,并且没有需要 对该行的上载状态值部分做变更。在这种情况下,维持上载状态值 (框块402)并完成该进程。

如果上载状态值确实需要设置(框块400是肯定的),即执行状 态值情况不等于或许以及上载状态值情况等于没有计算,则做出测 定以判定如果该行在还没执行的状态时(框块404)如何处理该行。如 果确定系统将上载该行(框块404是肯定的),那么上载值设置为包 括(框块406)。否则,上载值设置为除外(框块408)。

在一个优选的实施例中,对于拥有行状态为插入类型=正常、执 行状态=插入执行以及删除类型=没有或删除的行,不需要对其进行 上载并把其上载状态情况设置为除外。如果删除类型值情况等于删 除和插入类型值情况等于正常,或者删除类型值情况等于移除和插 入类型值情况不等于正常,该行需要被上载而上载状态值情况设置 为包括。

图5说明了本发明一个实施例中解释上载状态值影响同步进程 的整体流程的框图。在本发明的一个实施例,在上载其间确定每一 行如何上载的进程利用以下方法:识别四个状态指标中之其一:表 明该行没有得到上载的零状态;表明该行会被上载并作为插入的插 入状态;表明该行会被上载并作为删除的删除状态;或表明该行会 被上载并作为遗失插入的遗失插入状态。遗失插入与插入非常相似, 但其帮助解释附有移除设置的行作为删除类型以作为停止同步设置 的结果。在一般情况下,同步系统110不会下载刚刚上载的行。也 就是说,如果综合数据库系统112确定遗失插入行应该被下载到远 程系统106,同步系统110通常会优化下载以省略下载该行,因为同 步系统110知道远程数据库系统106已包含该行。然而,通过使用 遗失插入状态,该行会被同步系统110识别为正在从远程数据库中 删除。这禁用了正常的优化,并允许该行被下载到远程系统106。

在假设正被考虑的行不在′正常′状态的情况下,进程开始实施, 因为在一个优选的实施例,行上的迭代映射会跳过′正常′行,即拥有 插入类型=正常、删除类型=无、执行状态值=插入执行以及上载状态 值=没有计算的行。对于不在′正常′状态的行,进程判断行状态是否 等同于′移除′状态(框块500)。′删除′状态通常指插入类型=正常、删 除类型=移除、执行状态值=插入执行以及上载状态值=没有计算。当 行在′移除′状态时,不需要考虑其的上载(框块502)并且其会标示 为零状态。

如果行不在′正常′状态或′移除′状态,进程会继续进行并确定行状 态值是否=或许(框块504)。如果是这样,该行在正在进行的同步 进程中已经被上载,并不需要考虑再次上载。因此,会显示零状态 (框块502)。该检查确保上载发生为两阶段的进程,例如,第一阶 段上载插入和更新,第二阶段上载删除,而每个阶段使用映射迭代 来实施。

当行执行状态值不是或许,进程会继续进行并检测行的上载状 态值。如果上载状态值=除外(框块506),那么不需要上载该行并 标示其状态为零(框块502)。如果上载状态值=包括(框块508), 那么标示其状态为删除(框块510),因为上载开始后的插入执行不 会被上载,因此上载状态值不会是插入。

为了说明行已经被修改但还没有执行(即上载状态值=没有计 算),进程会继续进行并确定该行是否还没执行(框块512)和插入 (框块514)。如果是这样,那么该行被跳过,因为还没执行的插入 不上载,并且状态显示为零(框块502)。如果不是,该行是还没执 行的删除,并且插入类型会被检查(框块516)。如果插入类型是正 常,该行不需要包括在同步里而其状态会标示为零(框块502)。对 于除了正常之外的插入类型,其状态会标示为插入(框块518)。

如果这些情况没有找到,那么该行是在上载之前已执行的行。 删除类型值情况是用来确定状态标识(框块520)。对于删除类型= 无,进程会返回插入标识(框块518)。对于删除类型=移除,该进 程会返回遗失插入标识(框块522)。而对于删除类型=删除,该进 程会返回删除标识(框块510)。

在这种方式下,同步进程发生并保证即每行的元数据正确反映 准确的行状态。正如所述,加入上载值情况允许当同步正在进行时 对远程数据库的同时访问,而不需要只允许只读模式的访问或提高 试图修改远程数据库所产生的错误。因此,对远程数据库的有效和 无缝利用产生了,尤其有利于移动数据库环境。

示范计算机系统实施例

在本发明的一个实施例中,这里所述的实施例中的系统和组件 是使公知的计算器来实施,如图6所示的例子计算器602。例如,中 央系统104或远程系统106可以用计算机602来实现。

计算机602可以是任何商业可用的和众所周知的并有能力执行 这里所述的功能的计算机,如IBM、Apple、Sun、HP、Dell、Compaq、 Digital、Cray等可用的计算器。

计算机602包括一个或多个处理器(也称为中央处理单元,或 CPU),如处理器606。该处理器606连接到通信总线604。

计算机602还包括主内存608,如随机存取存储器(RAM)。主 内存608已储存控制逻辑625A(电脑软件)和数据在其中。

计算机602还包括一个或多个辅助存储装置610。辅助存储装置 610包括如硬盘驱动器612和/或可移除的存储装置或驱动器614以 及其它类型的存储装置如存储卡和记忆棒。可移除的存储驱动器614 代表了软盘驱动器、磁带驱动器、光盘驱动器、光存储装置、磁带 备份等。

可移除的存储驱动器614与可移除的存储单元616互动。可移 除的存储单元616包括电脑可用或可读的存储媒介624,存储媒介 624中存储有计算机软件628B(控制逻辑)和/或数据。可移除的存 储单元616代表软盘、磁带、光盘、DVD、光存储盘或任何其它计 算机数据存储装置。可移除的存储驱动器614以公知的方式读取来 自和/或写入到可移除的存储单元616。

计算机602还包括输入/输出/显示装置622,如显示器、键盘、 指示装置等。

计算机602还包括通讯或网络接口618。网络接口618使计算机 602可以和远程装置进行通信。例如,网络接口618允许计算机602 通过通信网络或媒介624B(代表计算机可用或可读媒介的形式)如 局域网、广域网、互联网等进行通信。网络接口618可通过有线或 无线连接与远程站点通信。

通过通信媒介624B,计算机602可以传送或接收控制逻辑 628C。更具体地说,计算机602可以通过通信媒介624B来接收和 传送与控制逻辑630调制的载波(电磁信号)。

这里所述的任何包括存储有控制逻辑(软件)的计算器可用或 可读的介质的仪器或产品都统称为计算机程序产品或程序存储装 置。这包括但不限于计算器602、主内存608、辅助存储装置610、 可移除的存储单元616和与控制逻辑630调制的载波。这种计算机 程序产品包含当一个或多个数据处理装置被执行时可引致数据处理 装置如这里所述般运作的控制逻辑,并代表了本发明实施例。

除了本文所述的,本发明可以用其它软件、硬件和/或操作系统 来实现。任何适合用于执行本文所述的功能的软件、硬件和操作系 统都可以使用。

虽然本发明以移动计算环境来描述,本发明的背景同步可以应 用到移动计算环境或可从本文所述的功能得益,但这只是作为说明 性的,而不是限制本发明的使用环境。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号