用于在电子设备中同步数据的系统和方法

文档序号:6624938阅读:98来源:国知局
专利名称:用于在电子设备中同步数据的系统和方法
背景技术
数据同步通过允许数据在一个电子设备上改变在另一个电子设备上执行从而提高了计算设备的灵活性。比如,在一个移动设备上修改日历应用程序,上述修改可以通过数据同步被复制到存储在个人计算机里的相同的日历应用程序上。
与应用相关联的同步文件处理与文件相关联的数据的状态。比如,一个计算设备可以具有包括很多项目的电子邮件应用程序收件箱。这些项目可以通过跟踪与所有项目或者所有项目的用户机相关联的信息而同步。同步文件可以存储与项目用户机有关的信息但是设备不知道保留了项目。这样,设备上保留项目的修改不能被更新。
用户想要按照预先确定的标准过滤数据。例如,一个用户可以请求所有的电子邮件信息过一段时间接收。那么同步文件检查每一个电子邮件应用中的项目来确定那个项目是否是在给定的时间里接收的。如果没有具有过滤特征的索引来确定该项目是否包括在过滤参数中,过滤处理是慢而且效率低的,因为每一个项目都要被检查。
发明概述本发明针对用于在电子设备间同步数据的系统和方法。同步引擎包括一个支持跟踪可变数据的数据库,过滤器和恢复同步。出现在电子设备中的数据改变因为数据同步被跟踪。数据库按照预先确定的参数过滤数据,参数包括例如数据阵列,设备的状态,项目的种类比如最近增加的项目、修改的项目或者删除的项目。恢复同步允许在同步处理过程由于通信中断而丢失的数据进行恢复。
根据本发明的一个方面,提供一种在第一个电子设备和第二个电子设备之间同步数据的计算机执行的方法。在第一个电子设备和第二个电子设备之间选择包含将要被更新的元数据的数据库。从第一个电子设备发出一个询问给第二个电子设备,这样一个将要被更新的元数据的项目列表由第二个电子设备产生。项目列表在第二个电子设备上反映了与元数据相关联的信息而不是在第一个电子设备上。将要被更新的信息从第一个电子设备发送到第二个电子设备。
根据本发明的另一方面,提供一种在第一个电子设备和第二个电子设备之间同步数据的系统。该系统包括一个连接第一和第二电子设备的数据库,一个同步引擎连接数据库。在第一和第二电子设备上元数据的改变在数据库中执行。同步引擎被配置为发送一个询问给第二个电子设备,这样一个将要被更新的元数据的项目列表由第二个电子设备产生。列表在第二个电子设备上反映了与元数据相关联的信息而不是在第一个电子设备上。同步引擎更佳地被配置为从第一个设备发送将要被更新的数据到第二个电子设备。
附图的简要说明

图1示出了根据本发明的一典型实施例的被使用的计算设备。
图2示出了根据本发明本发明用于在电子设备之间同步数据的系统的功能方块图。
图3是根据本发明用于在电子设备之间同步数据的操作流程图优选实施例的详细说明简要地来说,描述了用于在电子设备之间同步数据的系统和方法。同步引擎包括同步引擎包括一个支持跟踪可变数据的数据库,过滤器和恢复同步。出现在电子设备中的数据改变因为数据同步被跟踪。数据库按照预先确定的参数过滤数据,参数包括例如数据阵列,设备的状态,项目的种类比如最近增加的项目、修改的项目或者删除的项目。恢复同步允许在同步处理过程由于通信中断而丢失的数据进行恢复。
操作环境的图解说明参照图1,提供一种用于执行本发明实例系统包括计算机设备,例如计算机设备100。计算设备100可以配置成客户机、服务器、移动设备或其他与基于协作系统的网络中的数据相结合的计算机设备。在一个最基本的配置中,计算机设备100典型地至少包括一个传输单元102和系统存储器104。根据更精确的配置和计算机设备的类型,系统存储器104可以是不稳定的(如RAM),稳定的(如ROM,闪寸)或一些二者的结合。系统存储器104典型地包括一个操作系统105一个或多个应用程序106,也可以包括程序数据107。在以下详细描述的本发明是在应用程序106中执行。
计算机设备100具有附加的特征或功能。例如,计算机设备100也可以包括附加的存储设备(可移动的和/或不可移动的)例如有磁盘、光盘或磁带。上述附加的存储通过可移动存储109和不可移动存储110在图1中描述。计算机存储媒体可以包括易失的和不易失的,可移动的和不可移动的,媒体通过任何方式和技术来存储信息,例如计算机可读指令、数据指令、程序模型或其他数据。系统存储器104,可移动存储109和不可移动存储110都是计算机存储媒体的实例。计算机存储媒体包括但不仅仅局限于RAM、ROM、EEPROM、闪寸或其他存储技术,如CD-ROM,多用数字圆盘(DVD)或其他光学存储、磁性盒式磁带、磁带、磁性圆盘存储或其他磁性存储设备,或任何可以存储想要存储的信息并能被计算机设备100访问的其他存储媒体。计算机设备100也可以有输入设备112像键盘、鼠标、手写笔、声音输入设备、触摸输入设备等。输出设备114例如显示屏、扬声器、打印机等也可以包括进去。
计算机设备100也包含通信连接设备116从而允许设备与其它计算机设备118进行通信,例如通过网络。网络包括本地网络和宽带网络,也有其他大型网络但不仅仅局限于内联网和外联网。通信连接设备116是通信媒体的一个例子。通信媒体可以被具体表述,通过计算机可读指令、数据指令、程序模型、或其他脉冲数据信号,例如一个载体或其他传输装置,包括任何媒体传输信息。术语“脉冲数据信号”是指一种信号具有一个或多个特征,按照信号中的编码信息设置或改变。顺便举例,但不仅仅局限于,通信媒体包括有线媒体例如有线网络或者直接通过电线连接,和无线媒体例如声学的、RF、红外线的和其它无线媒体。在此所用的术语计算机可读媒体包括存储媒体和通信媒体。
电子设备之间的数据同步图2是根据本发明本发明的用于在电子设备之间同步数据的系统的功能框图。系统包括电子设备200,210,数据库220,过滤器240,同步引擎250和应用程序接口(API)260。电子设备200,210可以是电子化信息通信的任何设备。例如,电子设备200,210是一个图1中所示的计算机设备。
数据库220包括与文件相关联的信息。一方面,数据库220用于存储电子设备200和/或210的内容,另一方面,数据库220存储在一个电子设备200,210外部的服务器中。再一个方面,数据库220与一个像公司企业内部局域网的内部区域相联系。
数据库220包括列表230用于描述与应用程序相联系的数据项目。列表计划在存储于数据库220的元数据中定义。数据库220也包括一文件夹列表。例如,预一个电子邮件应用相联系的文件夹包括收件箱,发送项目和删除项目。列表230包括与每一个文件夹相联系的信息和与每一个文件夹项目相联系的信息。一方面,一个列表指向另一个与上层文件夹相联系的列表。
数据库220跟踪与设备应用程序相联系的项目,包括任何涉及项目的变化。数据库220保持项目的状态,项目包括关于电子设备的信息同时与驱动同步过程相联系。当与电子设备200(或210)相联系的数据改变了,这种变化也在数据库220中执行。数据库220随后通知电子设备210(或200)对所存储的数据的变化,这样,电子设备210(或200)从数据库220检索数据,同时数据在电子设备210(或200)上更新。与所述数据相关的应用程序不断地通知电子设备200,210关于数据的变化。
在一个例子中,数据变化可以包括一个新的电子邮件信息到达收件箱,输入一个日历项目,或者收到一个新的会议请求。在另一个例子中,数据变化可以包括在电子设备200(或210)中产生一个新的项目。更进一步,数据变化包括在数据库220中改变一个文件夹名称。
电子设备200,210可以要求从数据库220通过使用过滤器240检索特殊的项目。这些项目可以根据项目变化的种类进行分类。例如,产生变化的项目的分类包括最近添加的项目,修改的项目,软清除的项目以及删除的项目。软清除的项目涉及已过滤的曾经与电子设备200(或210)相关联但是不再包含在特殊的过滤范围之内的项目。例如,过滤器240可以设置成接收与电子邮件应用相关联的收件箱文件夹中所有两天内收到的项目。当项目存在的时间超过2天那么可以被认为是软清除了。
过滤器240允许电子设备200,210从列表230检索被请求信息。当电子设备200,210和与被请求项目相关联的文件夹同步,与电子设备200,210相关联的设置才被确定,这样仅仅被请求的项目自先前的同步被发送给电子设备200,210之后才被确定。具体地,数据变化与被添加的、被修改的、被软清除的和删除的项目保持一致,从一个正在请求数据变化的设备发送到数据库220,且在后来的同步期间不再回到发出请求的设备。
过滤器240在询问访问数据库220中的列表230时被执行。过滤器240提供被请求项目的指标来加速检索改变的项目。这样,每一条数据库220中的项目不需要一一被检索才能确定是否符合过滤器240设定的参数。例如,用户要请求同一个人设定的指定会议请求的所有的日历项目。过滤器240可能仅仅检索数据库220中列表230中与这个人相关联的日历项目。被请求的项目然后再回到发出请求的电子设备。
API260揭露与应用程序相关联的接口。具体地,API260是一个信息应用程序来揭露与电子邮件应用相关联的接口。
同步引擎250控制数据库220。同步引擎250协调数据库250和API260这样同步引擎250每被激活一次,同步引擎250便与API260和列举的项目互相通信。项目列举确保每一条在API260中的项目也能在数据库中存在从而实现数据库220和API260之间的一一对应。具体地,API260和数据库220之间的关系受到限制这样每一个项目不能存储在API260中的每个文件夹里。项目可能仅仅存储在与应用相关联的文件夹中才被同步,因为设备一次只同步与一个应用相关联的数据。
在一个例子中,同步引擎250收到关于在指定文件夹中的一个项目变化了或者移动到了电子设备200的一个不同的文件夹里的通知。数据库220被更新来反映这种变化。同步引擎250发出一个命令给电子设备210,这样电子设备210通知数据库220中的被改变的数据。当电子设备210从数据库220请求被改变的数据,与对应的文件夹相关联的侧面信息也被数据库220通知。侧面信息包括有关在前的同步操作这样可以确定是否请求是不是重复了。侧面信息也用于确定是否有必要恢复。
同步引擎250检查先前过滤的结果来确定存储在电子设备200中的数据。一个新的过滤处理计算机电子设备200上的一项目列表被添加、被修改、被软清除或被删除。改变两个电子设备200,210上的相同的项目,这样每个电子设备上产生不同项目模型。例如,与指定项目相关联的开始和结束的时间在电子设备200上改变了,同时在电子设备210也变为不同的时间。因而,存储在电子设备200和存储在电子设备210上的数据产生冲突。任何这样的冲突在同步过程中都可以被解决。
图3是根据本发明在被修改的电子设备和发出请求的电子设备之间同步数据操作流程图。被修改的电子设备包括已改变的元数据。发出请求的电子设备向与设备相关联的数据库请求改变的元数据,这样元数据在发出请求的设备上更新。元数据包括数据和数据的种类。
当元数据在被修改的电子设备上改变且存储在相关联的数据库中,操作开始。移动到步骤300,发出请求的电子设备选择包含变化的元数据的数据库。发出请求的电子设备通过同步引擎通知数据库的变化。数据库可以是发出请求的电子设备内部的或外部的。
进行到步骤305,有计划地从数据库查询被改变的元数据。每一个查询都是根据变化的元数据的类型特别计划的,这样仅仅是被请求的元数据自最后一次同步之后收到通知。提前到步骤310,发出请求的电子设备查询数据库的更新的元数据。
跳到步骤315,数据库从被修改的电子设备通知一变化列表的元数据。与变化的元数据相关联的唯一的标识符被发送到数据库。具体地,唯一标识符是改变的数量,数据每改变一次数量就被更新(例如,涉及的唯一标识符被移除)。
继续到判定步骤320,判断将要被更新的元数据中与元数据相关联的族名是否与发生变化的元数据的族名相同。当元数据通过同步引擎第一次产生、读取、修改或者是其它的方式,元数据就被分配一个族名。族名用于确定自最后一次同步之后元数据是否改变。如果族名和最后一次同步被执行时相同,那么一些元数据请求更新。具体地,每一个被改变的元数据的类型都与单个的族名相关联。如果族名相同,操作进行到步骤355。如果族名不相同,操作进行到步骤325。
继续进行判定步骤325,判定族名是否比所期望的少1。如果族名是比所期望的少1,处理继续到步骤335。如果族名不是比所期望的少1,处理继续到步骤330,在该步骤将同步错误发送给用户。处理随后在结束步骤395终止。
继续进行步骤335,发出请求的电子设备请求从数据库更新元数据,这样,发出请求的电子设备可以处理请求。转到步骤340,获得的与被更新的元数据相关联的侧面信息同意请求。侧面信息包括关于先前的同步操作的信息,这样可以确定更新请求是否重复。执行步骤345,与侧面信息相匹配的元数据被确定。继续步骤350,来自最后的更新请求命令持续到来自当前的更新请求命令才被解决。操作进行到步骤370。
前进到步骤355,发出请求的电子设备请求来自数据的将要被更新的元数据,这样发出请求的设备可以处理查询。转到步骤360,获得的与被更新的元数据相关联的侧面信息同意请求。转到步骤365,与侧面信息相匹配的元数据被确定。
前进到进行步骤370,在前的查询过滤器与当前查询过滤器相比较找出与侧面信息相匹配的元数据。继续步骤375,元数据被分类。具体地,元数据被分离成下面几类最新添加的项目,修改的项目,软清除的项目和删除的项目。
移动到步骤380,执行冲突分解操作来解决存储在不同电子设备上的相同元数据的不同种类之间的冲突。每一个元数据项目被发送到发出请求的电子设备来与一元数据项目列表比较,发出请求的电子设备在前解决元数据项目之间的冲突。
前进到步骤385,最后一变化列表的元数据产生了并被发送到发出请求的电子设备,这样,发生变化的元数据在发出请求的电子设备上被更新。更新的元数据可以包括产生新的元数据,删除元数据,或者修改元数据就像移动元数据到一个不同的文件夹。继续步骤390,与元数据相关联的族名改变了。操作在步骤395结束。
在一个实施例中,与大部分最新更新的请求相关联的数据的文件备份被存储,这样如果电子设备之间在同步期间被中断数据还可以恢复。由于电子设备与网络中断连接,或者由于系统缺陷,数据可能会丢失。
上述说明、示例和数据提供了关于本发明组成的制造和使用的一个完整描述。上述说明只是对本发明精神的展示,并不用以限制本发明的保护范围。
权利要求
1.一种用于在第一电子设备和第二电子设备之间同步数据的计算机执行方法,包括选择包含将要在第一电子设备和第二电子设备之间更新的元数据的数据库;响应于选择的数据库的类型,发送一来自第一个电子设备的查询请求到第二电子设备,这样通过第二电子设备产生将要被更新的元数据的一项目列表,其中反映与元数据相关的信息的该列表存在于第二电子设备上而不是在第一电子设备上;以及发送该来自第一电子设备的将要被更新的信息到第二电子设备。
2.如权利要求1所述的计算机执行方法,进一步包括根据将要被更新的元数据的类型特别设计该查询。
3.如权利要求1所述的计算机执行方法,其中该第二电子设备查询该数据库以找出被更新的元数据。
4.如权利要求1所述的计算机执行方法,进一步包括检索来自数据库的将要被更新的元数据的项目列表。
5.如权利要求1所述的计算机执行方法,进一步包括比较与第一电子设备上改变的元数据相关联的族名和第二设备上将要更新的元数据,从而确定与元数据相关联的信息是在第二电子设备上而不是在第一电子设备上。
6.如权利要求1所述的计算机执行方法,进一步包括获得与将要被更新的元数据相关联的侧面信息,这样一个重复的更新元数据的请求被确定。
7.如权利要求1所述的计算机执行方法,进一步包括根据类型对元数据分类。
8.如权利要求1所述的计算机执行方法,进一步包括解决存储在第一电子设备上和存储在第二电子设备上的元数据之间的冲突,这样使存在于第一电子设备和第二电子设备上的元数据模型保持一致。
9.用于在第一电子设备和第二电子设备之间同步数据的一种系统,包括与第一和第二电子设备连接的数据库,其中在数据库中执行第一和第二电子设备上元数据的改变;与数据库连接的同步引擎,同步引擎配置为发送一个查询给第二电子设备,这样通过第二电子设备产生一将要被更新的元数据的列表,其中反映与元数据相关联的信息的该列表与存在于第二电子设备而不是在第一电子设备上;发送将要被更新的信息给第二电子设备。
10.如权利要求9所述的系统,其中该数据库在由第一电子设备和第二电子设备构成的组件中的至少一个存储部件里。
11.如权利要求9所述的系统,其中可以检索到来自数据库被更新的信息。
12.如权利要求9所述的系统,进一步包括与数据库连接的过滤器,这样特征信息从数据库是可检索的,其中特征信息包括基于信息产生何种变化的信息分类。
13.如权利要求12所述的系统,其中信息分类包括最近添加的信息,修改的信息,软清除的信息,和删除的信息。
14.如权利要求9所述的系统,其中同步引擎通过应用程序接口调整数据库,这样同步引擎每被激活一次,同步引擎就与应用程序接口和信息列举通信。
15.如权利要求14所述的系统,其中信息列举确保应用程序接口中的每一个项目也被包括在数据库中。
16.如权利要求9所述的系统,其中数据库包括侧面信息用于确定更新数据的请求是否重复。
17.如权利要求9所述的系统,其中数据库包括侧面信息用于确定恢复同步是否有必要。
18.如权利要求17所述的系统,其中恢复同步包括存储与大部分最新更新的请求相关联的数据的文件备份,这样当同步中断时还可以重新获得元数据。
19.一种计算机可读媒体,具有用于在第一电子设备和第二电子设备之间同步数据的计算机可执行指令,包括选择包含将要在第一电子设备和第二电子设备之间更新的元数据的数据库;响应于选择的数据库的类型,从第一个电子设备发送一根据将要被更新的元数据的类型而特别设计的查询请求到第二电子设备,这样通过第二电子设备产生将要被更新的元数据的项目列表,其中该反映信息的列表存在于在第二电子设备上而不是在第一电子设备上;以及从第一电子设备发送将要被更新的信息到第二电子设备。
20.如权利要求19所述的计算机可读媒体,进一步包括比较与第一电子设备上改变的元数据相关联的族名和第二设备上将要更新的元数据,从而确定与元数据相关联的信息是在第二电子设备上而不是在第一电子设备上。
21.一种用于在第一电子设备和第二电子设备同步数据的系统,包括用于选择包含将要在第一电子设备和第二电子设备之间更新的元数据的数据库的装置;用于从第一电子设备发送查询信息到第二电子设备的装置,这样通过第二电子设备产生一将要被更新的元数据的项目列表,其中反映与元数据相关的信息的该列表存在于第二电子设备上而不是在第一电子设备上;以及用于从第一电子设备发送将要被更新的信息到第二电子设备的装置。
全文摘要
电子设备通常需要同步自身数据。一个同步引擎包括数据库用于支持改变数据的跟踪、过滤和恢复同步。发生在电子设备中的数据改变因为数据同步被跟踪。数据通过数据库依据预定的标准而被过滤,标准例如时间排列,设备状态,项目的分类例如新添加的项目、修改的项目、或者删除的项目。恢复同步允许由于同步操作中断引起的丢失数据的恢复。
文档编号G06F12/00GK1694073SQ20051007831
公开日2005年11月9日 申请日期2005年5月8日 优先权日2004年5月5日
发明者B·拉杰弗, K·R·沃尔特斯, 杨志东 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1