使用设备数据模式同步服务器和设备数据的制作方法

文档序号:6554516阅读:215来源:国知局
专利名称:使用设备数据模式同步服务器和设备数据的制作方法
技术领域
本发明涉及数据库,并且更具体地说,涉及使用设备数据模式(schema)来同步设备(例如,手持无线设备)上存储的数据与服务器上存储的数据。
背景技术
包括蜂窝电话、个人数字助理(PDA)之类的无线通信设备经常在无线设备上存储用于设备所提供的应用程序的数据。数据可以帮助用户操作无线设备或者提供便携信息。这种数据除了其他数据之外还可以包括地址簿、约会日历、任务列表、备忘录以及帮助使用该设备来进行文字输入的字典。通常还远离无线设备来存储这种数据,例如存储在企业服务器、个人计算机或其他远程存储设备上。例如,地址簿和日历数据可以在移动设备上的应用程序与企业环境中所提供的类似应用程序之间共享。数据通常存储在包括表的数据库中。表(例如,对于地址簿)可以存储多个记录(例如,一个记录定义带有地址及通信详情的联系方式),其中记录具有一个或多个字段用于存储数据(例如,名字、中间名、姓氏、头衔、公司、地址、商务电话号码、传真、家庭电话号码、电子邮件地址等)。
数据可以以多种方式改变。可以加入新的记录,或者删除现有记录。可以改变一个或多个字段内的数据。有时候可以加入新的字段或者删除现有字段。记录中的字段可以用来定义对在数据库表内标识该记录有用的键。还可以改变键。
通常,对无线设备以及远程存储设备中的一个或多个上的数据进行改变需要同步,以在所有设备上反映出所希望的数据状态。可以通过在无线设备与远程存储设备之间传送对数据做出的改变并解决任何冲突,来进行同步。可以无线地(通过空气)执行同步,或者如果无线设备可以使用串行或其他基于有线的连接来耦合到远程存储设备,也可以以有线的方式来执行同步。通常根据用于在无线设备与远程存储设备之间建立通信并且传送改变的协议来执行同步。希望定义一种灵活且允许无线设备对记录字段和键进行改变的协议。
US2004/224672公开了一种同步服务器,用于同步移动无线设备中的数据库与该移动设备无线连接到的通信网络中的数据库。在移动设备以及网络方对移动设备和数据库信息的网络拷贝执行散列函数。对由此形成的散列信息进行比较,这提供了数据库是否彼此匹配的初步指示。如果确定数据库不匹配,则比较数据,并且响应于这种额外比较,使数据彼此匹配。US2004/224672描述了散列发生器,用于从这种数据库中检索内容并将数据散列为短摘要(short-digest)形式。然后将散列信息路由到同步服务器,以便进行散列信息比较步骤。
US6272545公开了一种同步管理器,其维护参考存储装置,该参考存储装置提供移动设备上的对象存储装置中存储的对象的实例与桌面计算机上的对象存储装置中存储的对象之间的映射。同步管理器确定从上次同步以来是否已经在桌面上对桌面计算机对象存储装置中存储的任何对象进行了修改。如果与相同对象相对应的句柄出现在桌面计算机对象存储装置以及参考存储装置中,但是它们并不相同,这表明从上次同步以来桌面计算机对象存储装置中的对象已经修改过。同步管理器还确定从上次同步以来移动设备对象存储装置中存储的任何对象是否已经被添加或修改过。为了确定是否添加或删除了对象,同步管理器比较参考存储装置中的对象列表与由同步管理器维护的移动设备对象存储装置上的对象列表。
WO01/69435公开了一种处理,利用该处理,在发起同步过程时,客户设备(包含数据库的第一版本)向服务器(包含数据库的第二版本)发送第一同步消息。第一同步消息包括来自数据库的前一同步过程的MAPITEM记录、在第二数据库中要执行的UPDATES、当前时间以及上次同步处理的时间。响应于来自客户设备的同步消息,更新服务器处的数据库的第二版本。MAPITEM记录是前一同步处理的记录。UPDATES是对客户设备处的数据做出的改变列表。

发明内容
这里描述了用于同步存储在无线移动设备中的第一数据与存储在远程设备上的第二数据的方法和装置。由设备维护描述要同步的数据的模式。设备提供模式,以帮助同步。同步服务器可以透明地处理设备数据模式的改变。在一个实施例中,一种用于同步存储在移动设备中的第一数据与存储在远程存储设备中的第二数据的方法包括从所述移动设备接收描述所述第一数据的模式;使用所述模式,匹配所述第一和第二数据各自的实例;响应于所述匹配,确定所述第一和第二数据之间的差异;以及响应于所述差异,更新所述第一和第二数据中至少一个。
本领域的普通技术人员将清楚这些以及其他方面(包括一个或多个计算机程序产品方面)。


为了更容易地理解本发明,在附图中图示了本发明的实施例作为实例,其中图1是图示了根据本发明的实施例被配置来帮助移动无线设备与远程存储设备(包括,企业服务器)之间的数据同步的无线通信网络的相关部件的方框图;图2是适于实现本发明实施例的优选无线通信设备的方框图;图3是根据本发明的无线同步操作的流程图;图4是在图1中从移动设备向同步服务器的无线通信中的初始化会话(包括模式数据)的类似伪代码的描述;以及图5是根据图3的流程图的操作在无线设备与服务器之间用于同步数据的消息流量的示例的表示。
在所有附图中,相同的特征由相同的标号表示。
具体实施例方式
图1是通信系统100的方框图,该通信系统100包括移动设备102,移动设备102通过无线通信网络104进行通信。图2是根据本发明实施例改装的优选移动设备102的示意图。移动设备102优选地包括视觉显示器122、键盘132,并且可选地包括一个或多个辅助输入/输出(I/O)接口128,其中每个接口耦合到控制器。控制器还耦合到射频(RF)收发机电路,例如,包括天线(未示出)的通信子系统111。
通常,控制器被实现为运行在移动台102中诸如闪存124、其他ROM(未示出)以及RAM 126之类的存储器部件中存储的操作系统及应用程序软件的中央处理单元(CPU)或微处理器138。控制器通常将控制移动设备102的全面操作,而与通信功能相关的信号处理操作通常在RF收发机电路111中执行。控制器与显示器122接口连接,以显示接收到的信息、存储的信息、用户输入等等。键盘132(可以是电话类型小键盘或完整的字母数字键盘)通常用来输入要存储在移动设备中的数据、要发送到网络104的信息、要进行电话呼叫的电话号码、要在移动设备102上执行的命令、以及可能的其他或不同用户输入。辅助I/O 128可以包括滚轮或用于在软件所提供的图形用户界面(GUI)中导航并选择选项的其他设备。
微处理器138还与另外的设备子系统接口连接,例如显示器122、闪存124或其他永久性存储装置、随机访问存储器(RAM)126、辅助输入/输出(I/O)子系统128、串行端口130、键盘132、扬声器134、麦克风136、短程通信子系统140、以及以142一般地表示的任何其他设备子系统。图2所示的某些子系统执行通信相关功能,而其他子系统可以提供“常驻”或设备上功能。尤其是,某些子系统(例如,键盘132和显示器122)可以用于通信相关功能(例如,输入用于通过通信网络传输的文本消息)以及设备常驻功能(例如,计算器或任务列表)。微处理器338所使用的操作系统软件优选地存储在永久性存储装置中,例如闪存124,或者可以是只读存储器(ROM)或类似存储元件(未示出)。本领域的技术人员将认识到,操作系统、特定的设备应用程序或它们的一部分可以临时载入易失性存储装置(例如,RAM326)。
除了其操作系统功能之外,微处理器138优选地还实现设备102上软件的执行。通常在制造期间在设备102上安装控制基本设备操作的预定应用程序集(至少包括数据和语音通信应用程序)。可以加载到设备102上的优选应用程序可以是个人信息管理器(PIM)应用程序,该程序能够组织并管理涉及用户的数据项目,例如但不限于即时管理(IM)、电子邮件、日历事件、语音邮件、约会以及任务项目。当然,在设备102和SIM 162上可用一个或多个存储装置,以帮助存储PIM数据项目及其他信息。
PIM应用程序优选地能够通过无线网络发送及接收数据项目。在优选实施例中,PIM数据项目通过无线网络与所存储的或与主计算机系统相关联的移动设备用户的相应数据项目无缝地集成、同步及更新,由此在设备102上创建关于这些项目的镜像主计算机。当主计算机系统是移动设备用户的办公室计算机系统时,这是尤其有利的。另外的应用程序也可以通过网络100、辅助I/O子系统128、串行端口130、短程通信子系统140或任何其他合适的子系统142加载到设备102上,并且由用户安装在RAM 126中,或者优选地安装在非易失性存储装置(未示出)中,以便由微处理器138执行。这种应用程序安装方面的灵活性增加了设备102的功能性,并且可以提供增强的设备上功能、通信相关功能或同时提供这两者。例如,安全通信应用程序可以实现使用设备102来执行电子商务功能及其他这种金融交易。
在数据通信模式中,接收到的信号(例如,文本消息、电子邮件消息或下载的web页面)由通信子系统111处理,并且输入到微处理器138。微处理器138优选地将进一步处理信号,以输出到显示器122和/或辅助I/O设备128。设备102的用户还可以使用键盘132结合显示器122并可能结合辅助I/O设备128来编写数据项目(例如,电子邮件消息)。这些编写的数据项目可以通过通信子系统111或短程通信子系统140发送到通信网络上。
对于语音通信,设备102的整体操作基本上是类似的,除了所接收到的信号将输出到扬声器134并且要发送的信号由麦克风136生成之外。还可以在设备102上实现可替代的语音或音频I/O子系统(例如,语音消息记录子系统)。虽然优选地语音或音频信号输出主要通过扬声器334来完成,但是例如也可以使用显示器122来提供呼叫方身份的指示、语音呼叫的持续时间、或者其他语音呼叫相关的信息。
虽然是可选的部件,串行端口130通常实现在希望与用户的桌面计算机进行同步的个人数字助理(PDA)类型通信设备中。串行端口130使用户能够通过外部设备或软件应用程序来设置属性,并且以不同于通过无线通信网络的方式向设备102提供信息或软件下载,扩展了设备102的能力。例如,通过直接并因此可靠及可信的连接,替代下载路径可以用于将加密密钥加载到设备102上,从而提供安全的设备通信。
图1的短程通信子系统140是另一可选的部件,其提供设备102与不同系统或设备(不必是类似的设备)之间的通信。例如,子系统140可以包括红外设备及相关电路和部件,或者蓝牙TM通信模块,以提供与类似功能的系统和设备之间的通信。蓝牙TM是Bluetooth SIG,Inc.的注册商标。
移动设备102可以由单个单元组成,例如数据通信设备、蜂窝电话、具备数据和语音通信能力的多功能通信设备、能够进行无线通信的个人数字助理(PDA)、或者结合了内部调制解调器的计算机。或者,移动设备102可以是包括多个分离部件的多模块单元,包括但决不限于连接到无线调制解调器的计算机或其他设备。具体地说,例如,在图1的移动设备方框图中,RF收发机电路和天线可以实现为无线调制解调器单元(可以插入到膝上型计算机上的端口中)。在这种情形中,膝上型计算机将包括显示器、键盘、以及一个和多个辅助UI,并且控制器可以保留在与计算机的CPU通信或者被实现为计算机的CPU的无线调制解调器单元内。还能想到,通常不能进行无线通信的计算机或其他设备可以适于连接到例如上述之一的单个单元设备的RF收发机电路和天线,并有效地对它们进行控制。
移动设备102在无线通信网络104中并通过中继站106向同步服务器108通信。本领域的普通技术人员将会理解,可以使用许多无线载波协议来支持通信,包括GSM、GPRS等。网络接入与设备102的订户或用户相关联,因此设备102需要订户身份模块或“SIM”卡162插入到SIM IF 164中,以便在网络中工作。设备102是电池供电的设备,从而其还包括电池IF 154用于容纳一个或多个可再充电电池156。这种电池156向设备102中大多数电子电路(如果不是全部的话)提供电力,并且电池IF 154向其提供机械和电气连接。电池IF 154耦合到稳压器(未示出),该稳压器向所有电路提供电源V+。
图1的通信系统100中所示的无线链路代表一个或多个不同信道(通常是不同的射频(RF)信道)以及无线网络104与移动设备102之间所使用的相关协议。RF信道是必须保存的有限资源(通常是由于整体带宽的限制以及移动设备102的有限电池电力)。本领域的技术人员将认识到,实际实践中的无线网络取决于所希望的网络覆盖的整体范围,可以包括数百个小区。所有相关部件可以通过多个开关和路由器(未示出)连接起来,并且由多个网络控制器控制。
移动设备102包括应用程序软件及其数据105,例如地址簿、任务列表以及备忘录等。数据105可以与企业环境(例如,在企业网络中向移动设备102提供电子邮件、日历和其他服务)中维护的应用程序数据相同步。同步代理103提供设备上的应用程序105与同步服务器108(协调数据105与同步服务器108的同步)之间的接口。同步代理103从这些应用程序105接收记录改变的通知,将数据转换为用于传送到同步服务器108的格式,并且向同步服务器公式化表达同步请求。在相反方向,同步代理处理来自同步服务器的命令,并且将改变应用到存储在设备上的应用程序数据。
中继站106提供无线网络104与数据网络(例如,因特网)之间的网桥,将同步服务器108耦合到无线网络。中继站106提供多种服务,包括协议转换和路由选择。
同步服务器108提供应用程序连接器110与同步代理103之间的接口。例如,同步服务器108接受来自应用程序连接器110的同步请求,过滤出任何改变数据,并且将过滤出的数据转换为用于发送到设备102的格式。这种格式化数据与相关头部信息根据设备连接器112所提供的定义,一起传送到同步代理103。对于相反方向的通信,对从设备102接收到的同步请求执行类似的操作。
设备连接器112包括关于移动设备102的特有信息。设备连接器112的主要责任是将记录(通常是XML形式)转换为设备102理解的格式,反之亦然。将设备连接器112设计为基于XML文档的支持不同版本的设备软件以及其他设备类型。
企业管理服务器118提供接口,以创建并维护存储在同步服务器108可访问的数据库中的用户配置信息120。企业管理服务器118提供UI配置,用于设置字段映射、激活/禁止同步数据库以及其他相关同步配置。同步服务器108周期性地轮询该信息120以获得任何改变,并且用于发送到同步代理和/或相关连接器。
应用程序连接器110分别将后端源服务器114(例如,MicrosoftExchange或Lotus Notes)接口连接到同步服务器。当在服务器的数据库114中出现记录改变时,相关的应用程序连接器110检测到记录改变,公式化同步请求,并且将该请求发送到同步服务器。应用程序连接器110可以提供包含关于设备102上特定数据库的数据库模式(schema)/映射信息的XML文档。同步服务器108处理该XML文档,以将来自应用程序连接器110的任何数据传送到设备。如下面进一步描述的那样,根据本发明的实施例,例如在初始化慢同步过程时,设备102可以向同步服务器提供这种模式。
图3是根据本发明实施例用于同步无线设备(例如,移动台102)与第二远程存储设备(例如,源服务器数据库114)上的数据的操作300的流程图。在步骤302,进行设备102的同步配置。在检测到需要同步的服务时,同步代理103检查设备102上是否存在同步配置信息。如果该同步配置信息不存在,则同步代理103向同步服务器108发送“取”配置命令。同步服务器108通过向设备102发送配置信息,做出响应。该配置信息标识可用数据源(即,“交换”连接器110),用来同步的数据库(例如,“地址簿”)(即,114)、用户同步设置(来自120)以及可用的一系列初始字段映射标签。这一系列字段标签允许同步操作执行字段增量(delta)(即,在字段级别进行比较,以确定数据差别),以最小化最终同步期间的无线流量。
根据本发明的本实施例,同步分为两个阶段慢同步阶段和同步阶段。在同步出现之前发起慢同步阶段。在配置之后,在步骤304,同步代理103以顺序方式对每个激活的数据库初始化慢同步操作。发起同步代理103向同步服务器108发送“初始化”命令,以发起慢同步过程(指示要使用的数据库)。该慢同步过程试图合并源服务器114与设备102之间类似的记录,如果存在记录冲突则解决这些冲突。只有一侧存在的记录会在相应一侧反映出来。在该慢同步过程中,不删除记录。该慢同步过程的结果创建映射历史,从而同步服务器108能够在服务器与设备之间唯一地标识记录。通过使用映射历史,来自一侧的对记录的任何更新、添加或删除将使另一侧上的相应记录在最终的同步阶段期间更新。
另外,企业管理服务器110及其存储装置120的任何用户配置改变可以由同步服务器108检测到,并反映到设备102和连接器110。
如上所述,慢同步过程试图合并服务器114与设备102之间类似的记录。为了比较不同数据存储装置(例如,设备102上的存储装置以及源服务器数据库114上的另一存储装置)中存储的记录,需要数据库的模式。数据库模式可以以多种方式来描述,例如可扩展标记语言(XML)文档及其他编码。服务器108可以以不同方式获得模式。例如,根据本发明的本实施例,设备102可以在初始化阶段根据同步协议提供模式。或者,适用的应用程序连接器110可以提供相应数据库的模式,以向服务器108给出进行基于记录的匹配所需的知识。如果可以从多个位置获得模式,则可能需要用来确定使用哪个模式的机制。配置设置和/或受控安全策略可能对于管理这种判决是有用的。
为了减少在慢同步阶段从设备102读取或者发送到设备102的记录数目,使用一种记录分组方法,其中一组记录由这些记录的内容的散列值代表。组的散列值代表该组中的记录的总体散列。在慢同步阶段期间,服务器108将从设备102发送的组数据与服务器108处使用模式所生成的相应组数据匹配(或不匹配),以确定设备记录(即,来自数据105)中哪一个不需要读取到服务器108,服务器114的记录中哪一个需要发送到设备102,以及这两者之间的记录中哪些有冲突并需要解决。
根据本发明的实施例,向每个组赋予一个ID。组ID的范围从0到组数-1。表内每个记录在其数据库内具有唯一的记录ID。各个记录响应于该记录的记录ID被分配到一个组,例如如下进行分配组ID=记录ID MOD(组数)因此,如果记录ID已知,则该记录所属的组也已知。本领域的普通技术人员将认识到,使用模运算(MOD)不能保证每组中记录数的较好平衡,但是这是易于计算的。
从一组的记录中生成组数据值可以以多种方式来确定。然而,为了使确定组数据值的过程相对容易,考虑如下的假设组内记录顺序无所谓。这样,不需要对记录进行排序来计算组数据值,并且无论组内记录如何排列,对于每种排列,组数据值应该相同;并且每个单独记录的记录(或实例)数据值基于该记录字段的散列。
并且无论记录字段如何排列,记录数据值应该相同,这是可能的,因为所有记录字段标签通过定义都是唯一的。
于是,无论记录的字段在记录中如何出现并且记录如何在组中出现,组数据值都是相同的。在本实施例中,对记录字段定义的散列函数是“异或”(XOR)以生成记录数据。并且为了从记录散列值确定组数据值而对记录定义的散列函数也是XOR。
该技术采用散列来标识类似的记录信息。使用两个散列来描述记录“键字段”散列和“记录”散列。由设备的模式设置的“键字段”散列是描述记录内特定字段的数值,而“记录”散列是描述记录内所有映射字段的值。例如,假设在设备102上配置了联系方式映射,其中“名字”、“姓氏”和“公司”字段组成“键”散列,而“记录”散列包含记录内针对联系方式的所有映射字段(例如,地址字段、电子邮件、web页面、各种电话号码等)。
如上所述,在本实施例中,如果可能的话,数据库模式由同步代理103在初始化命令时(步骤304)提供,以开始慢同步阶段。模式向同步服务器108指示设备的当前数据库结构。数据库可以具有多个表,并且每个表与其表ID和模式相关联,其中模式利用字段ID、字段类型(键或非键)描述了记录格式。图4是在从设备102向同步服务器108的无线通信中的初始化会话402(包括模式数据)的类似伪代码的描述400。对于要同步的每个数据库(即,数据库1、数据库2…数据库N),提供数据库配置模式信息(例如,对于数据库1是402)。数据库配置信息402包括数据库的唯一ID 404,并且对于它的每个表(对象),包括该表的唯一表ID 406、表默认指示符408以及表模式410(包括一个或多个字段ID和键属性指示符对)。
设备102与服务器108之间的通信通常以带宽节省方式来编码,例如标签长度编码(TLE)格式。如前所述,设备连接器112可以帮助适当的数据转换或变换。
当设备102向服务器发送初始化命令(包括组散列值和可选的数据库模式)时(步骤304),服务器侧作为响应,开始慢同步阶段比较过程,以匹配记录,创建映射用于将来的同步(步骤306)。服务器108首先开始比较组散列,以匹配记录。
如果设备102不发送数据库模式,服务器利用可从适用的应用程序连接器110获得的相应数据库的XML映射,来计算组散列值。然而,如果设备102发送数据库模式(例如,402),服务器108基于从设备102接收到的模式,计算记录键散列和记录散列,然后计算适用的相应源服务器数据库114的所有记录的组散列值。
服务器108然后比较自己生成的组散列与从设备102接收到的组散列。服务器108基于组ID,匹配各自的组和组散列值。如果两个各自的散列匹配,则服务器108认为来自该组的相应记录匹配。本领域的普通技术人员将认识到,使用XOR运算来生成散列不能保证记录的每个集合具有唯一的散列值。存在这样的可能(尽管这种可能通常很小)两个组实际上都不具有相同的记录,而将它们认为匹配。用来减小错误的正匹配的额外校验可以包括将所比较的组中的记录的计数进行比较。这样,设备102可以与组散列值一起发送记录计数(未示出)。可以生成可替代的散列值,或者可以生成并比较使用不同函数的第二散列值。
如果两个各自的组散列值不匹配,则在每个各自的组的记录之间存在一个或多个差异。作为响应,服务器108询问设备102来提供不匹配的组中每个记录的键和字段散列。可以基于记录的键散列来匹配记录。记录字段散列可以用来确定特定的记录是否与另一记录冲突(如果这两个记录匹配,并且共享相同的唯一ID,并共享相同的键散列值)。
响应于匹配过程,服务器108确定哪个记录可以·加入到设备102,如果这些记录只存在于服务器108上;·在设备102上更新,如果它们在服务器108和设备102上都存在,但是解决冲突时赞同服务器108而非设备记录(即,服务器记录胜利);以及·读取,如果记录只存在于设备102上,或者在服务器108和设备102上都存在但是解决冲突时赞同设备102从而设备记录战胜服务器记录。
该慢同步过程创建历史文件(映射服务器与设备之间的记录)。此时,认为同步了记录。
图5图示了设备102与同步服务器108之间的消息交换500,其图示了慢同步初始化阶段以及用于合并映射记录来完成慢同步阶段的服务器会话和设备会话。在502,设备102发送具有可选的数据库模式和组散列的初始化消息。响应于所接收到的哪个组散列匹配服务器108使用数据库模式所确定的组散列的确定,在504,服务器108发送对不匹配的特定一列组的获取记录散列请求。
在506,设备102发送记录散列。服务器108做出响应,由此初始化结束(508)。在510,已经完成映射并且确定了要向设备发送哪些新记录、要从设备请求哪些记录、以及要向设备记录做出那些改变的服务器将适当的命令发送到设备,并接收响应(512)。在514,设备102发送适当的记录,并接收响应(516),完成初始化和记录更新。
再参考图3,在初始化数据库之后,可以通过使用映射,以命令的形式发送改变(例如,以面向会话的协议无线发送),来同步将来的改变(步骤312)。优选地,最小化无线传输,并且利用适当的命令发送字段级别的改变来修改各自的记录,以反映出新的字段改变。任一方(服务器108或设备102)都可以发起这种改变,并且可以响应于改变立即发送同步请求(以逐步方式),或者收集这种改变并以批量方式将它们发送到其他同步方。可以将各个数据库配置为逐步或批量方式。
数据库的慢同步初始化可以在如下时间开始·数据库被OTA激活,但是没有初始化;·数据库被OTA禁止,并且变为OTA激活;·数据库同步类型改变;·数据库模式改变;·新的模式加入到数据库中;以及·同步服务器108通过发送初始化命令强行开始初始化。
在步骤314图示了由于上述原因中任一个而进行的重新初始化。本领域的普通技术人员将认识到,该步骤可以在所图示的操作中其他点处发生,因为这些事件可以异步发生。虽然没有明确示出,但是可以操作设备102来添加数据库,或者改变现有数据库的模式。这种事件可以发起慢同步阶段操作(步骤304~310)以及任何必要的配置需求(步骤302)。
有利的是,所述无线(OTA)同步可以有效地同步使用不同源(例如,Lotus Notes或Microsoft Exchange)的各种数据库(包括联系方式、任务和备忘录)。还可以同步其他应用程序数据,例如“电子邮件设置”以及“电子邮件过滤器”。OTA协议能够同步多种数据库配置。同步服务器108优选地对每个记录采用字段级别增量,以便最小化无线流量。另外,最优化的记录处理聚集单独记录的多个改变,从而一批内的多个改变被合并或过滤,以在合适时去除冗余改变。OTA协议支持在一个给定的同步请求或会话内对多个数据库进行同时同步。该协议支持批量或逐步同步(可在各个数据库上配置),以在慢同步初始化之后同步记录。可以将每个数据库配置为支持双向同步、向服务器的单向同步、以及向设备的单向同步。设备上的同步代理103可以支持多个服务。设备连接器112使用XML字段映射文档可以支持多个设备和软件版本。协议和操作可以支持第三方开发者。
本申请的上述实施例仅仅是用作示例的。本领域的技术人员在所附权利要求的范围内,可以对具体实施例做出替换、修改和改变。这里在所附权利要求中描述的发明应该覆盖并包含技术中所有合适的改变。
权利要求
1.一种由服务器(108)执行用于同步存储在移动设备(102)中的第一数据与存储在远程存储设备(114)中的第二数据的方法,包括从所述移动设备(102)接收描述所述第一数据的模式;使用所述模式,匹配所述第一和第二数据各自的实例;响应于所述匹配,确定所述第一和第二数据之间的差异;以及响应于所述差异,更新所述第一和第二数据中至少一个。
2.如权利要求1所述的方法,包括响应于所述匹配,维持所述第一和第二数据的同步。
3.如权利要求1或2所述的方法,包括接收代表所述第一数据的实例的组的组匹配数据;使用所述模式生成所述第二数据的实例的组的相应组匹配数据;确定所述第一数据和所述第二数据各自的组匹配数据之间组级别的差异;并且其中响应于所述组级别的差异,匹配所述第一和第二数据各自的实例。
4.如权利要求3所述的方法,包括响应于所述组级别的差异,请求所述第一数据的实例匹配数据;使用所述模式生成所述第二数据的相应实例匹配数据;确定所述第一数据和所述第二数据各自的实例匹配数据之间实例级别的差异,并且其中响应于所述实例级别的差异,匹配所述第一和第二数据各自的实例。
5.如权利要求3或4所述的方法,其中,所述第一数据的组匹配数据以及所述第二数据的组匹配数据包括所述第一数据和第二数据的相应组的各自的散列数据。
6.如权利要求4或5所述的方法,其中,所述第一数据的实例匹配数据以及所述第二数据的实例匹配数据包括来自所述第一数据和第二数据的相应组的所述第一数据和第二数据的实例的各自的散列数据。
7.如权利要求1至6中任一项所述的方法,其中,将所述第一和第二数据存储到各自的数据库的相应表中,定义所述第一和第二数据的所述各自的数据库以及所述各自的实例的数据库模式的所述模式包括所述各自的数据库的记录。
8.如权利要求1至7中任一项所述的方法,其中,更新包括根据无线面向会话的协议传送至少某些差异,以更新所述第一数据。
9.如权利要求1至8中任一项所述的方法,其中,更新包括根据无线面向会话的协议接收至少某些差异,以更新所述第二数据。
10.如权利要求2所述的方法,其中维持包括确定所述第二数据的改变,并且根据无线面向会话的协议发送这些改变中的至少某一些,以更新所述第一数据;以及根据无线面向会话的协议接收所述第一数据的改变,并且更新所述第二数据作为响应。
11.如权利要求10所述的方法,其中所述发送响应于逐步方式和批量方式。
12.如权利要求2、10或11所述的方法,其中所述接收、匹配、确定以及更新定义了慢同步阶段,并且所述维持包括同步阶段。
13.如权利要求12所述的方法,包括响应于所述模式的改变执行所述慢同步阶段。
14.如权利要求1至13中任一项所述的方法,其中使用将所述服务器(108)和移动设备(102)耦合起来进行通信的无线网络(104)来执行接收和更新的步骤。
15.一种由移动设备(102)执行用于同步存储在所述移动设备(102)中的第一数据与存储在远程存储设备(114)中的第二数据的方法,包括在所述移动设备(102)处存储描述所述第一数据的模式;将所述模式传送到服务器(108),所述服务器适于使用所述模式匹配所述第一和第二数据各自的实例,并响应于所述匹配确定所述第一和第二数据之间的差异;以及响应于所述服务器(108)所确定的所述差异,更新所述第一和第二数据中至少一个。
16.如权利要求15所述的方法,包括响应于所述匹配,维持所述第一和第二数据的同步。
17.如权利要求15或16所述的方法,包括向所述服务器提供代表所述第一数据的实例的组的组匹配数据,所述服务器适于使用所述模式生成所述第二数据的实例的组的相应组匹配数据;确定所述第一数据和所述第二数据各自的组匹配数据之间组级别的差异;并且响应于所述组级别的差异,匹配所述第一和第二数据各自的实例。
18.如权利要求17所述的方法,包括响应于来自所述服务器的请求提供所述第一数据的实例匹配数据,以便使用所述模式生成所述第二数据的相应实例匹配数据;确定所述第一数据和所述第二数据各自的实例匹配数据之间实例级别的差异,并且响应于所述实例级别的差异,匹配所述第一和第二数据各自的实例。
19.如权利要求17或18所述的方法,其中,所述第一数据的组匹配数据以及所述第二数据的组匹配数据包括所述第一数据和第二数据的相应组的各自的散列数据。
20.如权利要求18或19所述的方法,其中,所述第一数据的实例匹配数据以及所述第二数据的实例匹配数据包括来自所述第一数据和第二数据的相应组的所述第一数据和第二数据的实例的各自的散列数据。
21.如权利要求15至20中任一项所述的方法,其中,将所述第一和第二数据存储到各自的数据库的相应表中,定义所述第一和第二数据的所述各自的数据库以及所述各自的实例的数据库模式的所述模式包括所述各自的数据库的记录。
22.如权利要求15至21中任一项所述的方法,其中,更新包括根据无线面向会话的协议从所述服务器(108)接收至少某些差异,以更新所述第一数据。
23.如权利要求15至22中任一项所述的方法,其中,更新包括根据无线面向会话的协议向所述服务器(108)发送至少某些差异,以更新所述第二数据。
24.如权利要求16所述的方法,其中维持包括确定所述第一数据的改变,并且根据无线面向会话的协议发送这些改变中的至少某一些,以更新所述第二数据;以及根据无线面向会话的协议接收所述第二数据的改变,并且更新所述第一数据作为响应。
25.如权利要求24所述的方法,其中所述发送响应于逐步方式和批量方式。
26.如权利要求16、24或25所述的方法,其中所述定义、传送、以及更新定义了慢同步阶段,并且所述维持包括同步阶段。
27.如权利要求26所述的方法,包括响应于所述模式的改变发起所述慢同步阶段。
28.如权利要求15至27中任一项所述的方法,其中使用将所述服务器(108)和移动设备(102)耦合起来进行通信的无线网络(104)来执行传送和更新的步骤。
29.一种用于同步存储在移动设备(102)中的第一数据与存储在远程存储设备(114)中的第二数据的服务器(108),包括通信系统,用于向/从所述移动设备(102)发送/接收消息;耦合到所述通信系统的处理器,用于处理所接收到的消息以及用于发送的消息;以及耦合到所述处理器的存储器,用于存储指令以将所述处理器配置为从所述移动设备(102)接收描述所述第一数据的模式;使用所述模式,匹配所述第一和第二数据各自的实例;响应于所述匹配,确定所述第一和第二数据之间的差异;以及响应于所述差异,更新所述第一和第二数据中至少一个。
30.如权利要求29所述的服务器(108),其中所述指令将所述处理器配置为响应于各自的实例的匹配,维持所述第一和第二数据的同步。
31.如权利要求29或30所述的服务器(108),其中所述指令将所述处理器配置为接收代表所述第一数据的实例的组的组匹配数据;使用所述模式生成所述第二数据的实例的组的相应组匹配数据;确定所述第一数据和所述第二数据各自的组匹配数据之间组级别的差异;并且其中用来匹配所述第一和第二数据各自的实例的指令响应于所述组级别的差异。
32.如权利要求31所述的服务器(108),其中所述指令将所述处理器配置为响应于所述组级别的差异,请求所述第一数据的实例匹配数据;使用所述模式生成所述第二数据的相应实例匹配数据;确定所述第一数据和所述第二数据各自的实例匹配数据之间实例级别的差异,并且其中用来匹配所述第一和第二数据各自的实例的指令响应于所述实例级别的差异。
33.如权利要求32所述的服务器(108),其中,所述第一数据的组匹配数据以及所述第二数据的组匹配数据包括所述第一数据和第二数据的相应组的各自的散列数据。
34.如权利要求32或33所述的服务器(108),其中,所述第一数据的实例匹配数据以及所述第二数据的实例匹配数据包括来自所述第一数据和第二数据的相应组的所述第一数据和第二数据的实例的各自的散列数据。
35.如权利要求29至34中任一项所述的服务器(108),其中,将所述第一和第二数据存储到各自的数据库的相应表中,定义所述第一和第二数据的所述各自的数据库以及所述各自的实例的数据库模式的所述模式包括所述各自的数据库的记录。
36.如权利要求29至35中任一项所述的服务器(108),其中,用于将所述处理器配置来更新的指令包括将所述处理器配置来根据无线面向会话的协议向所述移动设备(102)发送至少某些差异以更新所述第一数据的指令。
37.如权利要求29至36中任一项所述的服务器(108),其中,用于将所述处理器配置来更新的指令包括将所述处理器配置来根据无线面向会话的协议从所述移动设备(102)接收至少某些差异以更新所述第二数据的指令。
38.如权利要求30所述的服务器(108),其中,用于将所述处理器配置来维持的指令包括将所述处理器配置来进行如下步骤的指令确定所述第二数据的改变,并且根据无线面向会话的协议发送这些改变中的至少某一些,以更新所述第一数据;以及根据无线面向会话的协议接收所述第一数据的改变,并且更新所述第二数据作为响应。
39.如权利要求38所述的服务器(108),其中,用于将所述处理器配置来发送的所述指令响应于逐步方式和批量方式。
40.如权利要求30、38或39所述的服务器(108),其中,用于将所述处理器配置来接收、匹配、确定以及更新的指令定义了慢同步阶段能力,并且用于将所述处理器配置来维持的所述指令定义了同步阶段能力。
41.如权利要求40所述的服务器(108),包括响应于所述模式的改变执行所述慢同步阶段能力的指令。
42.一种移动设备(102),用于同步存储在所述移动设备(102)中的第一数据与存储在远程存储设备(114)中的第二数据,所述移动设备包括通信系统(111),用于向/从所述服务器(108)发送/接收消息;耦合到所述通信系统(111)的处理器(138),用于处理所接收到的消息以及用于发送的消息;以及耦合到所述处理器(138)的存储器(124、126),用于存储指令以将所述处理器配置为在所述移动设备(102)处定义描述所述第一数据的模式;将所述模式传送到服务器(108),所述服务器适于使用所述模式匹配所述第一和第二数据各自的实例,并响应于所述匹配确定所述第一和第二数据之间的差异;以及响应于所述服务器(108)所确定的所述差异,更新所述第一和第二数据中至少一个。
43.如权利要求42所述的移动设备(102),包括将所述处理器(138)配置为响应于各自的实例的匹配来维持所述第一和第二数据的同步的指令。
44.如权利要求42或43所述的移动设备(102),包括将所述处理器(138)配置来进行如下步骤的指令向所述服务器(108)提供代表所述第一数据的实例的组的组匹配数据,所述服务器(108)适于使用所述模式生成所述第二数据的实例的组的相应组匹配数据;确定所述第一数据和所述第二数据各自的组匹配数据之间组级别的差异;并且响应于所述组级别的差异,匹配所述第一和第二数据各自的实例。
45.如权利要求44所述的移动设备(102),包括将所述处理器(138)配置来进行如下步骤的指令响应于来自所述服务器的请求提供所述第一数据的实例匹配数据,以便使用所述模式生成所述第二数据的相应实例匹配数据;确定所述第一数据和所述第二数据各自的实例匹配数据之间实例级别的差异,并且响应于所述实例级别的差异,匹配所述第一和第二数据各自的实例。
46.如权利要求44或45所述的移动设备(102),其中,所述第一数据的组匹配数据以及所述第二数据的组匹配数据包括所述第一数据和第二数据的相应组的各自的散列数据。
47.如权利要求45或46所述的移动设备(102),其中,所述第一数据的实例匹配数据以及所述第二数据的实例匹配数据包括来自所述第一数据和第二数据的相应组的所述第一数据和第二数据的实例的各自的散列数据。
48.如权利要求42至47中任一项所述的移动设备(102),包括将所述处理器(138)配置来将所述第一和第二数据存储到各自的数据库的相应表中的指令,定义所述第一和第二数据的所述各自的数据库以及所述各自的实例的数据库模式的所述模式包括所述各自的数据库的记录。
49.如权利要求42至48中任一项所述的移动设备(102),其中,用于将所述处理器(138)配置来更新的指令包括用于根据无线面向会话的协议从所述服务器(108)接收至少某些差异以更新所述第一数据的指令。
50.如权利要求42至49中任一项所述的移动设备(102),其中,用于将所述处理器(138)配置来更新的指令包括将所述处理器(138)配置来根据无线面向会话的协议向所述服务器(108)发送与所述第一数据的至少某些差异以更新所述第二数据的指令。
51.如权利要求43所述的移动设备(102),其中,用于将所述处理器(138)配置来维持的指令包括确定所述第一数据的改变,并且根据无线面向会话的协议发送这些改变中的至少某一些,以更新所述第二数据的指令。
52.如权利要求51所述的移动设备(102),其中,将所述处理器(138)配置来发送的所述指令响应于逐步方式和批量方式。
53.如权利要求43、50或51所述的移动设备(102),其中,用于将所述处理器(138)配置来定义、发送以及更新的指令定义了慢同步阶段能力,并且用于将所述处理器(138)配置来维持的指令定义了同步阶段能力。
54.如权利要求53所述的移动设备(102),包括将所述处理器(138)配置为响应于所述模式的改变发起所述慢同步阶段的指令。
55.一种机器可读介质,包括可在权利要求29至41中任一项所述的服务器(108)上执行的程序代码装置,用于实现权利要求1至14中任一项所述的方法。
56.一种机器可读介质(124),包括可在权利要求42至54中任一项所述的移动设备(120)上执行的程序代码装置(105),用于实现权利要求15至28中任一项所述的方法。
57.一种电信系统(100),包括权利要求29至41中任一项所述的服务器(108)和/或权利要求42至54中任一项所述的移动设备(102)。
全文摘要
提供了用于同步存储在无线移动设备中的第一数据与存储在远程设备上的第二数据的方法和装置。设备维护描述数据的模式。设备提供模式,以帮助同步。同步服务器可以透明地处理设备数据模式的改变。在一个实施例中,一种用于同步存储在移动设备中的第一数据与存储在远程存储设备中的第二数据的方法包括从所述移动设备接收描述所述第一数据的模式;使用所述模式,匹配所述第一和第二数据各自的实例;响应于所述匹配,确定所述第一和第二数据之间的差异;以及响应于所述差异,更新所述第一和第二数据中至少一个。
文档编号G06F17/30GK1818902SQ20061000699
公开日2006年8月16日 申请日期2006年1月25日 优先权日2005年1月31日
发明者巴里·沃伦·林克特, 朱杰, 萨利姆·海德·奥马尔 申请人:捷讯研究有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1