非时间相关的数据库同步的制作方法

文档序号:6473982阅读:97来源:国知局
专利名称:非时间相关的数据库同步的制作方法
背景技术
本发明一般涉及通信系统,更具体地涉及提供用于数据库同步的技术,例如一个包括电话簿的数据库,该电话簿存储在蜂窝式无线通信系统移动终端的用户识别模块(SIM)中,和个人电脑(PC)中相应数据库之间的同步。
在美国以及世界其它地方,蜂窝式电话工业在商业运营中获得了显著的发展。在主要大都市地区的增长远远超出预期,并迅速超出了系统的容量。如果这种趋势持续下去,该工业增长的影响不久将延伸到甚至是最小的市场。需要创新的解决方案来顺应这种增加容量的需求,并保持高质量服务以及避免价格增加。
一种公认的趋势是以个人电脑发展为象征的所谓信息工业与以移动电话发展为象征的所谓通信工业的趋同化。两类设备都具有的特征是性能(硬件)迅速提高和应用(软件)能力的增长。在不久的将来,移动电话更直接地与其它信息设备进行通信从而交换信息是可能的,如与个人电脑PC交换信息。许多无线服务的用户也拥有个人电脑,并且,当每种设备在数据处理能力上更加完善时,这些用户就希望在各设备间交换数据,例如在存储于各设备中的数据库(如电话号码簿)之间交换数据。
考虑FIG.1中描述的实例。其中,PC 10与移动电话20通过通信链路30连接在一起。通信链路30既可以是有线的也可以是无线(如,红外线)的链路。本领域的一般技术人员应该明白,虽然PC和移动电话被作为两个设备之间实现数据库同步的实例时,本发明不局限于这两类设备,事实上可以应用于任何两类设备之间进行数据库同步,例如电子记事簿,寻呼机等。该PC 10包括数据库40,例如,包括电话纪录或日历,移动电话20包括一个相应的数据库,它存储在用户识别模块(SIM)卡50中。在无线通信领域的一般技术人员应当知道,SIM卡50是一种可拆卸的智能卡,它为GSM无线通信标准而制造,是一种以可拆卸方式来便利地组合、存储相关移动用户信息要素的机制,此卡可以插入或从移动电话中拆卸。“同步”这个术语,用在这里是指两个或多个设备相关的数据库操作,它的意思是改变一个数据库的内容使它匹配或“镜像”另一个数据库的内容。
依据惯例,为了同步数据库40和存储在SIM卡50中的数据库,逐条比较每个数据库的每条纪录是必要的。例如,存储在SIM卡50中的电话簿纪录数据库能通过链路30传输给PC10。然后,比较和更新每个数据库中的纪录,这样两个数据库就相互镜像。例如,数据库40中已有相关纪录的变更,但从移动电话20传输到PC10的这个版本数据库中没有,该变更就能够被替换回移动电话20中,以更新存储在SIM卡50中的数据库。这个同步过程(有时可选地称为“完全同步”或“慢速同步”)是复杂和耗时的。例如,仅仅识别SIM卡的数据库发生了什么变更通常就要求PC 10比较最近接收到的版本和以前存储的版本。
为了解决这个问题,如附图2中所示在该设备中添加一个变更日志。此变更日志包括彼此间同步之后每一方数据库中操作的相关纪录的信息。此变更日志也纪录了两个数据库之间最近一次执行同步操作的时间,因此上一次更新以前的变更就能够被忽略。例如,变更日志可以在一部分内存中实现,为每次变更记录一个事件(如添加、删除或修改),事件发生的数据库记录的标识以及指示事件发生的时间标记。例如,如果PC 10的数据库40与移动电话20的SIM 50同步之后向PC 10的数据库40中添加一个电话纪录,然后这样一个标记就被添加到变更日志200中。同样地,如果移动电话20(和SIM卡50)的用户删除他或她的电话簿中的一条纪录,那么这个变更就会反映到变更日志210中。而且,如果变更日志为空,那么PC 10的数据库40就无需进行变更。在同步期间,使用变更日志200和210是具有优势的,只有从最近的上次同步更新以来的这些被修改、添加或删除的纪录(正如变更日志中纪录的一样)需要在设备之间传输。这样,此同步过程可以执行的更迅速,因此这个过程被称为“快速同步”。
然而,在特定的环境下,甚至当变更日志以实现为能快速同步时,还是需要执行两个设备相应数据库的完全(如,慢速)同步。例如,如果用户复位或清除他或她的移动电话日历数据库,这种行为指定在两个数据库之间执行一次完全同步,这就是说,在这种情况下大量变更对于使用变更日志200和210来完成同步没有特别的益处。当快速同步可用时,由于,例如,通过随机地或递增地改变作为同步过程的一部分在两个设备之间传输的数据库标识符(DID)值,而完成调用两个数据库的完全同步。DID值的变更作为一个信号,告诉执行数据库同步的设备使用完全同步替代快速同步。接收设备(如,PC)比较从其它设备(如,移动电话)接收到的DID和以前存储的DID。如果它们相同,那么将使用快速同步。如果它们不同,就执行完全同步。
令人遗憾,尽管它可以加速同步过程,增加变更日志引入另一个问题。更具体地,快速同步依赖于变更日志200、210中每个条目的时间标志的使用。时间标志表明一个具体的变更所发生的时间。当一个数据库的变更日志(如,SIM 50的变更日志210)被提供给另一个设备(如,PC 10),当修改一个数据库中某一条目同时另一个数据库的同一个条目发生不同的修改时,在另一个设备中的同步引擎(未显示)使用时间标志解决潜在的会发生的冲突。在这种情况下,规则是假设最近发生的变更是正确的。例如,考虑这种情况当每个设备中的数据库已经相互同步时,两个设备(表示为“设备1”和“设备2”)中都存在“A”记录。在同步之后,假设设备1中A记录在12:34被删除,然而设备2中的相同记录在12:40被修改。设备1和2进行下一次相互同步时,同步程序将检测到同一个记录在一方被删除,同时在另一方被修改。采用规则最近的修改是正确的,设备2中执行的对A记录的修改将通过把它拷贝到设备1中的方式保留下来。现在两个设备又同步了。
可以看出,由于时间标志在同步过程中扮演如此重要的角色,设备的定时器必须非常精确、相互校准并且无变化。在移动设备中并不总是这种情况。移动设备的用户旅行到另一个时区因而改变设备时钟的时间,这是非常普遍的。但是,这会引发同步的问题,因为如果用户的定时器向前或向后调整,可能数据库最近的一次变更会不正确地表现为在上次同步操作以前已经发生了。其结果,这次变更将在同步工作中被忽略,实际上丢失了这次变更。
图3和4解释由于改变设备时钟,当执行随后的数据库同步操作时,会导致错误结果发生的一些情况。首先参照附图3,这个时序图显示两个设备每一方的时钟和事件,表示为“设备1”和“设备2”。在时间T1,两个设备的时钟都读取为“下午1:00”,这时执行完一次快速数据库同步操作。如前面所述,这使这次同步的时间与其它事情一起被记录到变更日志200中。稍晚些时候,在表示为T2的时间,设备1的时钟被回拨,因而它现在读取为下午12:00(如,比下午1:00以前的一个时间)。例如,这可能是由于旅行通过一个或几个时区而发生的。在时间T2,设备1数据库中的记录“A”被改变。这个变更以及表示变更发生时间的时间标志=下午12:00一起被记录到变更日志200中。在随后的晚些时间,表示为时间T3,设备1的时钟显示为下午8:00,同时设备2的时钟显示为下午9:00。在T3这个时间,在设备1和设备2的各自数据库之间,另一次快速数据库同步操作被执行。作为这次同步操作的一部分,同步引擎查看变更日志200中的时间标志,并忽略所有看起来是在上次同步操作(发生在时间T3)以前发生的变更。其结果,对记录“A”的变更实际发生在时间T2,但看起来是在时间T1(如,上次同步操作的时间)以前发生的。因而,发生在时间T2的记录“A”的变更在这次同步操作中被忽略,实际上丢失了这个变更。可以注意到,即使在时间T2和T3之间的某一时刻,设备1的时钟向前拨1小时,这样,在时间T3,设备1和2的时钟都读取为下午9:00,发生在时间T2的设备1中记录“A”的变更将在此次同步操作中丢失。
图4解释当随后执行数据库同步操作时改变设备时钟,会导致错误结果发生的另一个情况。这里,这个时序图显示定时时钟和两个设备事件,表示为“设备1”和“设备2”。在时间T1,两个设备的时钟读取为“下午1:00”,这时执行完一次快速数据库同步操作。如前面所述,这使这次同步的时间与其它事情一起被记录到变更日志200中。随后设备1中时钟的值被向前拨,因而在时间T2,当设备2的时钟只读取为“下午2:00”时,设备1的时钟读取为“下午3:00”。在时间T2,设备1数据库中的记录“A”被改变。这个变更以及表示变更发生时间的时间标志=下午3:00一起被记录在变更日志200中。随后,设备1的时钟再次被改变,这次是向后拨,这样在表示为T3的时间,它和设备2的时钟都读取为下午2:30。在时间T3,在设备1和设备2的数据库之间,一次快速数据库同步操作被再次执行。然而,由于在时间T2,记录“A”的变更时间标志表明这次变更发生在下午3:00(即,一个比当前时间下午2:30还要晚的时间),记录“A”的变更将在本次同步操作中被忽略,实际上丢失了这个数据。
构造其它由于改变时钟而导致快速同步操作实际上丢失一个或更多数据库记录变更的例子也是可能的。
因此,期望提供既保证数据库同步中变更日志的使用,又能适应携带设备跨时区的移动的技术和装置。
发明概述应该强调,在本说明书中使用的术语“包括”和“已包括”用于详细列出存在所述的特征、整数、步骤或部件;但这些术语的使用不排除存在或附加一个或多个其它特征、整数、步骤、部件或其有关的组。
依据本发明的一方面特征,前面所述的以及其它目标能通过同步第一数据库和第二数据库的方法、装置以及计算机可读存取介质来实现,其中第一数据库位于一个移动终端中。同步包括设置一个指示器来表明应该执行一次完全同步,以响应检测到移动终端的一个定时器被回拨。然后,如果设置了该指示器,就在第一数据库和第二数据库之间执行一次完全同步。
这个指示器可以是专用于这个目的数据。然而在可选的实施例中,设置指示器可以替代为包括改变数据库标识符的值。既然无论什么情况下数据库标识符都将在两个数据库间通信,如果仅仅为表示应该执行一次完全同步的目的,就无需通信附加信息。
如果没有设置指示器,就执行一次第一数据库和第二数据库之间的快速同步作为替代。
而且,如果期望建立一种默认同步技术,在执行第一数据库和第二数据库之间的完全同步之后,可以复位该指示器。
附图简述结合附图,通过阅读下面的详细描述将理解本发明的目标和优势,其中附

图1是模块图,说明两个设备之间同步数据库的传统技术;附图2是模块图,说明附图FIG.1中系统和技术的一种改进形式,其中,为了同步数据库,变更日志被引入到每个设备中;附图FIG.3说明由于改变一个设备的时钟,当执行随后的传统数据库同步操作时,会导致错误结果发生的一种情况;
附图FIG.4说明由于改变一个设备的时钟,当执行随后的传统数据库同步操作时,会导致错误结果发生的另一种情况;附图FIG.5是一个流程图,说明按照本发明,同步实体选择执行哪种同步类型的典型执行步骤;以及附图FIG.6是一个流程图,描述在必要时保证设备执行一次完全同步操作而不是快速同步操作的执行步骤。
发明详述下面参考附图描述本发明的各种特征,其中相同的部分用相同的参考符号表示。
下面的描述是依据蜂窝式无线电话系统的术语来写的,但它应理解为本发明不局限于这种环境。更具体而言,下面的描述是用GSM从属系统(如,终端采用SIM卡)相关的术语来写的,但它应被本领域一般技术人员理解为本发明可以在其它通信/信息处理应用中实现,这些应用包括依据其它标准设计的应用,如IS-95或PDC,也包括那些使用其它接入方法的应用,如CDMA。而且,下面的技术也可以应用于任何两个信息/通信设备之间的数据库同步。
现在通过大量示范实施例来更详细地描述这个发明。为了便于理解这个发明,本发明的许多特征是用计算机系统部件执行的处理序列的术语来描述。可以认识到,在每个实施例中,各种处理都能由专门的电路(如,离散的逻辑门相互连接来执行专门的功能)来执行,或由一个或多个可编程处理器来执行程序指令,或者这两者的组合。而且,此外可以认为,在已经存储适当的计算机指令集合的计算机可读存取介质的任何形式中,本发明能被完全实例化,该计算机指令集合使处理器实现这里所描述的技术。这样,本发明的各种特征都可以以一些不同的形式被实例化,并且所有这些形式都按预期归属于本发明的范畴内。对于本发明各种特征的每一个,实施例的任何这种形式都可以参照这里,作为“逻辑配置”来执行所述的处理。
如前所述,一个系统可能对完全同步和快速同步都支持。在这样的系统中,可能选择使用其一作为默认的操作。例如,快速同步可能是一种在大多数情况执行的同步类型。那么,当快速同步可用时,可以通过给该同步实体提供某种类型的指示器通知应该执行一次完全同步,实现两个数据库的完全同步调用。这种指示器可以采用的形式,例如,数据库标识符(DID)值的随机变更和增量变更,它作为同步过程的一部分在两个设备间传输。
附图5是一个流程图,它描述同步实体选择执行哪种同步类型的典型执行步骤。同步实体依赖于两个指示器本地生成的指示器(本地同步类型)、和由另一个设备提供的指示器(远程同步类型)。为什么有两个指示器的原因是因为初始化同步过程的设备与决定调用完全同步操作而不调用快速同步的设备可能不是同一个设备。
这些指示器可能是为这个目的专门保留的特别分配的变量。然而,这不是本发明的一个实质特征。例如,这些指示器中任何一个或两个都能采用数据库标识符(DID)值变更的形式。这种实施例的一个优势在于作为变更日志的一部分,DID值通常是数据库间交换的参数中的一个。这样,可以取消进一步交换附加参数(即同步类型指示器)的需要。在任何具体系统中采用的具体策略不是关键,并且可能留给个别的设计者决定。为了简明,此示例实施例采用了出于这种意图的指示器。
开始同步过程,本地同步类型的指示器被提取出来,例如,从本地存储设备(步骤501)中提取出来。(在实施例中,DID的一次变更表明需要执行一次完全同步,重新恢复本地同步类型的指示器意味着比较当前的DID和上次同步操作时保存的DID。)也可以接收其它设备(远程同步类型的指示器)提供的指示器(步骤503)。
然后测试两个指示器的值。例如,首先测试本地同步类型的指示器(判定模块505)。如果它表明要求一次完全同步(判定模块505中的“是”分支),然后本地同步类型的指示器返回到它的默认值(即,设置为表明应该执行一次快速同步)(步骤507)并且执行一次完全同步(步骤509)。设置本地同步类型的指示器为默认值,除非要做特殊动作,否则,确保在下一次同步操作被调用时执行默认操作。
如果本地同步类型的指示器不是要调用完全同步(判定模块505中的“否”分支),那么就测试远程同步类型的指示器(判定模块511)。如果远程同步类型的指示器表明应该执行完全同步(判定模块511中的“是”分支),就执行一次完全同步操作(步骤509)。
可选地,如果远程同步类型的指示器没有表明要执行完全同步(判定模块511中的“否”分支),那么执行一次快速同步(步骤513)。
现在回到本发明的发明背景部分描述的“时间旅行”问题,依照本发明,无论何时,只要同步操作是在时间变更操作之后,通过引发执行一次完全同步操作而不是快速同步来解决这个问题。更具体地,如果一次变更中设备定时器被设置为此前的某个时间,而且同步操作是在此次变更之后,就应该执行一次完全同步。如果一次变更中设备时钟被设置为此后的某个时间,而且同步操作是在此次变更之后,执行一次完全同步操作也是许可的,但不是必需的。这样将确保同步不依赖于时间标志值,但却要通过一次一个地比较两个数据库之间的记录来执行同步。
附图6是一个流程图,描述在必要时保证设备执行一次完全同步操作而不是快速同步操作的执行步骤。首先,执行一次测试以确定设备的本地时钟值是否已经被调整为以前的值(判定模块601)。如果它已经如此(判定模块601中的“是”分支),那么设置本地同步类型的指示器表明应该执行一次完全同步操作(步骤603)。否则,跳过这个步骤(判定模块601中的“否”分支)。在一些实施例中,这种同步类型的指示器可以采用变更DID值的形式。
本发明解决了“时间旅行”问题,因此使数据库同步中有可能使用时间标志。这个解决方案可能不是最佳的,但是它有防止数据丢失的优势。每次用户改变设备时钟(或者至少,每次用户把设备时钟变更为此前的某个时间),就执行一次完全同步,在同步中读取存储在设备中的全部数据,并且与另一设备的数据库相比较。识别两个设备的不同之处并加以更新。在一些冲突情况下,一条相同的纪录在两个设备的数据库中都被改变,而没有任何能力精确地判定哪一次改变是最近的改变,这些冲突情况可以采用总是从特定的一个设备(例如,总是选用在PC上所作的修改)中选择记录的策略。
本发明已经参照具体的实施例来描述。但是,容易明白,除了那些上面描述的优选的实施例,本领域的一般技术人员可以以特定的形式来具体化本发明。在不背离本发明的精神的情况下,这是可以做到的。优选的实施例仅仅是说明性的,并且在任何情况下不应被认为是限制性的。本发明范畴在所附的权利要求中而不是在前面的描述中,并且所有符合权利要求范围的变体和等效都确定包括在内。
权利要求
1.一种同步第一数据库和第二数据库的方法,其中第一个数据库位于一个移动终端中,此方法包括设置一个指示器来表明应该执行一次完全同步,以响应检测到该移动终端的一个定时器被回拨;以及如果设置了该指示器,就执行一次第一数据库和第二数据库之间的完全同步。
2.权利要求1所述的方法,其中设置该指示器包括改变数据库标识符的值。
3.权利要求1所述的方法,进一步包括如果没有设置该指示器,就执行一次第一数据库和第二数据库之间的快速同步。
4.权利要求1所述的方法,进一步包括在执行一次第一数据库和第二数据库之间的完全同步之后,复位该指示器。
5.一种用于同步第一数据库和第二数据库的装置,其中第一数据库位于一个移动终端中,该装置包括设置一个指示器来表明应该执行一次完全同步以响应检测到该移动终端的一个定时器被回拨的逻辑电路;以及如果设置了该指示器,执行一次第一数据库和第二数据库之间的完全同步的逻辑电路。
6.权利要求5所述的装置,其中设置指示器的逻辑包括改变一个数据库标识符值的逻辑电路。
7.权利要求5所述的装置,进一步包括如果没有设置该指示器,执行一次第一数据库和第二数据库之间的快速同步的逻辑电路。
8.权利要求5所述的装置,进一步包括在执行一次第一数据库和第二数据库之间的完全同步之后,复位该指示器的逻辑。
9.一种存储了同步第一数据库和第二数据库的程序指令的计算机可读存取介质,其中第一数据库位于一个移动终端中,该程序指令包括设置一个指示器来表明应该执行一次完全同步,以响应检测到该移动终端的一个定时器被回拨的程序指令;以及如果设置了该指示器,执行一次第一数据库和第二数据库之间的完全同步的程序指令。
10.权利要求9所述的计算机可读存取介质,其中,设置指示器的程序指令包括改变数据库标识符值的计算机指令。
11.权利要求9所述的计算机可读存取介质,进一步包括如果没有设置该指示器,执行一次第一数据库和第二数据库之间的快速同步的程序指令。
12.权利要求9所述的计算机可读存取介质,进一步包括在执行一次第一数据库和第二数据库之间的完全同步之后,复位该指示器的程序指令。
13.一种同步第一数据库与第二数据库的方法,其中第一个数据库位于一个移动终端中,此方法包括设置一个指示器来表明应该执行一次完全同步,以响应检测到该移动终端的一个定时器被该移动终端用户改变;以及如果设置了该指示器,就执行一次第一数据库和第二数据库之间的完全同步。
14.权利要求13所述的方法,其中设置该指示器包括改变数据库标识符的值。
15.权利要求13所述的方法,进一步包括如果没有设置该指示器,执行一次第一数据库和第二数据库之间的快速同步。
16.权利要求13所述的方法,进一步包括在执行一次第一数据库和第二数据库之间的完全同步之后,复位该指示器。
17.一种用于同步第一数据库和第二数据库的装置,其中第一数据库位于一个移动终端中,该装置包括设置一个指示器来表明应该执行一次完全同步,以响应检测到该移动终端的一个定时器被该移动终端用户改变的逻辑;以及如果设置了该指示器,执行一次第一数据库和第二数据库之间的完全同步的逻辑。
18.权利要求17述的装置,其中设置指示器的逻辑电路包括改变数据库标识符值的逻辑。
19.权利要求17所述的装置,进一步包括如果没有设置该指示器,执行一次第一数据库和第二数据库之间的快速同步的逻辑。
20.权利要求17所述的设备,进一步包括在执行一次第一数据库和第二数据库之间的完全同步之后,复位该指示器的逻辑。
21.一种存储了同步第一数据库和第二数据库的程序指令的计算机可读存取介质,其中第一数据库位于一个移动终端中,该程序指令包括设置一个指示器来表明应该执行一次完全同步以响应检测到该移动终端的一个定时器被该移动终端用户改变的程序指令;以及如果设置了该指示器,执行一次第一数据库和第二数据库之间的完全同步的程序指令。
22.权利要求21所述的计算机可读存取介质,其中设置指示器的程序指令包括改变数据库标识符值的计算机指令
23.权利要求21所述的计算机可读存取介质,进一步包括如果没有设置该指示器,执行一次第一数据库和第二数据库之间的快速同步的程序指令。
24.权利要求21所述的计算机可读存取介质,进一步包括在执行一次第一数据库和第二数据库之间的完全同步之后,复位该指示器的程序指令。
全文摘要
同步第一数据库与第二数据库,其中第一数据库位于一个移动终端中。为了避免发生错误的同步结果,如果移动终端的一个时钟相对于第二数据库的一个时钟改变时,无论何时检测到移动终端中的时钟已经被回拨,就设置一个指示器来表明应该执行一次完全同步。然后,当同步发生时,如果设置了该指示器,在第一数据库和第二数据库间执行完全同步。否则,可以使用变更日志执行一次快速同步。该指示器可以是数据库标识符变更的形式。
文档编号G06F17/30GK1633656SQ01817952
公开日2005年6月29日 申请日期2001年8月21日 优先权日2000年8月25日
发明者J·比尔克勒, L·诺瓦克 申请人:艾利森电话股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1