CN102207957B - 部分项改变跟踪和同步 - Google Patents

部分项改变跟踪和同步 Download PDF

Info

Publication number
CN102207957B
CN102207957B CN201110100085.7A CN201110100085A CN102207957B CN 102207957 B CN102207957 B CN 102207957B CN 201110100085 A CN201110100085 A CN 201110100085A CN 102207957 B CN102207957 B CN 102207957B
Authority
CN
China
Prior art keywords
properties
email message
change
item
equipment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201110100085.7A
Other languages
English (en)
Other versions
CN102207957A (zh
Inventor
A·C·邓恩
J·R·沃伦
R·R·诺维特斯基
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=37758031&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=CN102207957(B) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN102207957A publication Critical patent/CN102207957A/zh
Application granted granted Critical
Publication of CN102207957B publication Critical patent/CN102207957B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/02Comparing digital values
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/216Handling conversation history, e.g. grouping of messages in sessions or threads
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/234Monitoring or handling of messages for tracking messages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail

Abstract

本发明涉及部分项改变跟踪和同步。此处的实施例改变了在两个设备之间处理和跟踪项同步的方式。对项的改变根据良好定义的属性组来跟踪,并且每一组独立于其它组来跟踪。本发明通过仅同步已改变的项的所选部分而不监视项内的每一个别属性的改变来提高客户机和服务器之间的同步速率。因此,如果对相对较大的电子邮件消息上的小数据属性(例如,跟踪标志)作出了改变,则这一改变将不会触发向运行在高速缓存模式下的客户机的大量下载,也不会有对用于跟踪每一个别属性的高存储和处理的要求。

Description

部分项改变跟踪和同步
本申请为申请日为2008年2月14日申请号为第200680029649.X号发明名称为“部分项改变跟踪和同步”的中国专利申请的分案申请。
背景
膝上型、手持式和其它便携式计算机或计算设备随着其尺寸变得更小并且变得更便宜而日益普及。另外,便携式计算机的操作速度和处理能力的提高也增加了其普及性。许多便携式计算机能够储存诸如地址簿、游戏、计算器等多个应用程序。这些应用程序可在制造期间被永久安装在便携式计算机中(例如,安装到只读存储器(ROM)上)。或者,一个或多个应用程序可在购买便携式计算机之后由用户安装。
随着这些设备的普及性和计算能力的增加,人们开始不仅仅使用单个计算设备来储存数据和应用程序。例如,除了常规的台式计算机之外,许多人通常还使用膝上型计算机。诸如蜂窝电话、个人数字助理(PDA)、因特网服务等其它设备也用于储存数据和应用程序。
这些计算设备中的每一个可以是分布式计算系统的一部分,其中有关信息可以是相关的并被储存在多个这样的设备上。例如,以高速缓存模式运行的电子邮件客户机被设计成在该客户机上本地保存邮箱的副本。由此,如果用户具有PDA和台式工作计算机,则每一设备将具有本地储存在其上的电子邮件项。理想地,PDA的电子邮件信息应当匹配台式工作计算机处的电子邮件信息。
当相同或相关的信息被储存在两个地方时,数据可能在一个位置上改变而在另一位置上没有改变。这一问题可通过同步来克服,同步是试图确保分布式系统内的每一设备具有最新的信息或数据的一种自动化过程。然而,同步具有其自己的一组问题。例如,当两个设备彼此同步时,这些系统通常在每一项的基础上,例如,每一电子邮件消息、每一联系人、每一约会等,来跟踪改变。因此,当两个设备或计算系统试图同步时,会下载整个项,而不管改变的属性(例如,标志、附件、正文、收件人等)的大小如何。尽管对于某些高带宽传输系统而言,这一全项跟踪和同步过程即使有也只有极少的问题,然而采用例如无线连接等较慢的链路,整个项的下载或流传送可能会严重限制数据的传输速率。
例如,考虑包括跟踪标志属性、收件人属性、正文属性和一个或多个附件属性等的电子邮件消息。如果跟踪标志的颜色改变,则必须在与另一设备同步时下载整个项。如果该电子邮件内的附件和其它数据相对较大,则跟踪标志的这一相对较小字节大小的改变导致整个项被下载;由此产生了慢数据链路上的大数据传输时间。
即使使用高带宽数据链路,下载整个项仍可能是不合需要的。例如,当顾客基于下载的字节数来为下载项付费时,如果一个项上仅有少量数据改变,例如上述的跟踪标志,则顾客仍必须为下载整个项付费。这一金钱的浪费可能会导致用户非常受挫。
某些复制系统可能是对在每一项的基础上跟踪并同步设备的系统的上述缺陷的一种解决方案。尽管某些复制系统能够在属性的基础上跟踪改变,但是这些系统仍具有其自己的内在问题。例如,对于大量的项的每一个别属性的跟踪造成了高存储和高处理要求两者。由此,这些跟踪和同步系统对于大多数用户而言是不实用的。
概述
现有同步系统的上述缺陷和缺点通过本发明的示例性实施例得以克服。请注意,提供以下概述是为了用简化的形式来介绍将在以下详细描述中进一步描述的一些概念。然而,本概述并不旨在标识出所要求保护的主题的关键或必要特征,也不旨在用于确定所要求保护的主题的范围。
在一个实施例中,提供了用于通过仅同步所改变项的所选部分而不监视该项内的每一个别属性的改变来提高客户机和服务器之间的同步速率的方法、系统和计算机程序产品。在该实施例中,接收同步自从服务器和客户机之间的最后一次同步以来所改变的数据项的请求,其中数据项表示具有可被修改或以其它方式改变的多个属性的完整消息。响应于同步数据的请求,首先确定一数据项自从最后一次同步以来是否改变。这一数据项包括多个属性组,该多个属性组基于行业常识和对多个属性组中的每一个内的属性如何相关的语义的理解来预定义。接着,确定多个属性组中的至少一个属性组自从最后一次同步以来是否改变。因此,该至少一个属性组可在不流传送整个至少一个数据项的情况下同步,以减少在同步时客户机和服务器之间的数据传输的时间。
在另一实施例中,提供了用于跟踪项的所选部分的改变以提高客户机和服务器之间的同步速率,而不监视项内的每一个别属性的改变的方法、系统和计算机程序产品。在该实施例中,出于同步的目的监视多个数据项,其中多个数据项中的每一个表示具有可被修改或以其它方式改变的多个属性的完整消息。在这一监视期间,确定一数据项自从客户机和服务器之间的最后一次同步以来是否改变,其中该数据项包括多个属性组,该多个属性组基于行业常识和对多个属性组中的每一个内的属性如何相关的语义的理解来预定义。
基于数据项已改变的判定,更新与数据项相关联的项改变标识符,该标识符将用于标识该数据项已改变以便与客户机进行同步。因此,还确定多个属性组中的至少一个属性组自从最后一次同步以来是否改变。基于至少一个属性组已改变的判定,更新与该至少一个属性组相关联的属性组改变标识符,该标识符将用于标识该至少一个属性组已改变,使得仅该至少一个属性组将与客户机同步以便减少客户机和服务器之间的数据传输的时间。
在另一实施例中,本发明还提供了其上储存有项数据结构的一个或多个计算机可读介质。该项数据结构包括以下:能够被修改或以其它方式改变的多个属性;用于指示多个属性中的一个或多个自从与客户机的最后一次同步以来是否被修改或以其它方式改变的项改变标识符;各自包括多个属性中的一个或多个属性的多个属性组,其中多个属性组基于行业常识和对多个属性组中的每一个内的一个或多个属性如何相关的语义的理解来预定;以及多个属性组改变标识符,用于指示多个属性组中的哪一个已改变以便仅同步这些已改变的属性组而不同步整个项。
本发明的其它特征和优点将在以下描述中阐明,并且其一部分将从该描述中显而易见,或者可通过对本发明的实践来获知。本发明的特征和优点可借助所附权利要求书中具体指出的工具和组合来实现和获得。本发明的这些和其它特征将从以下描述和所附权利要求书中变得更完全清楚,或者可通过如下所述对本发明的实践而获知。
附图简述
为了描述可获得本发明的上述和其它优点和特征的方式,将参考附图中所示的其具体实施例来呈现以上简要描述的本发明的更具体描述。要理解这些附图仅描绘了本发明的典型实施例,并且因此并不被认为是限制其范围,本发明将通过使用附图以附加的特征和细节来描述和解释,在附图中:
图1A示出了根据示例实施例的用于仅同步属性组的分布式系统;
图1B示出了根据示例实施例的对于项的属性组的映射;
图1C示出了根据示例实施例的一个示例同步项流;
图2A示出了根据示例实施例的提高客户机和服务器之间的同步速率的方法的流程图;
图2B示出了根据示例实施例的跟踪项的所选部分的改变的方法的流程图;以及
图3示出了提供用于实现本发明的各特征的合适的操作环境的示例计算系统。
详细描述
本发明涉及用于通过仅同步已改变的项的所选部分来提高同步速率的方法、系统和计算机程序产品。本发明的各实施例可包括专用或通用计算机,其包括各种计算机硬件或模块,如以下更详细讨论的。
在详细讨论此处的实施例之前,定义将在整个申请中使用的一些术语将是有用的。首先,此处使用“数据项”或“项”来表示具有可被修改或以其它方式改变的属性的完整消息。例如,数据项可以是完整的电子邮件消息、完整的联系人、完整的约会、完整的任务、完整的便笺或可在两个计算设备之间同步的任何其它类型的消息。项的“属性”表示消息中可独立于其它属性被修改或以其它方式改变的一部分。这些属性的示例包括如跟踪标志、优先级标志、项的正文、各个附件、各个收件人、消息状态、消息优先级、或用于消息的任何其它公知的属性。示例实施例规定属性可被划分成“属性组”,如将在以下更详细描述的,属性组是基于行业常识以及对每一属性组内的属性如何相关的语义的理解来预定的。
此处的实施例改变了在两个设备,例如服务器和客户机之间处理和跟踪项同步的方式。对项的改变被放置到上述定义良好的属性组中,并且每一组独立于其它组来跟踪。例如,一个组可包含项的正文,另一组可包含附件,而再一组可包括如跟踪标志、已读状态、优先级标志等高度易失的属性。注意,由于属性组是基于行业常识良好定义的,因此此处的实施例权衡了典型的复制系统所需的数据处理速率与存储和/或处理要求。换言之,本发明通过仅同步已改变的项的所选部分而不监视项内的每一个别属性的改变来提高客户机和服务器之间的同步速率。因此,如果对相对较大的电子邮件消息上的小数据属性(例如,跟踪标志)作出了改变,则这一改变不会触发向在高速缓存模式下运行的客户机的较大的下载,并且也不会有对于用于跟踪每一个别属性的高存储和处理的要求。
在描述本发明的各实施例的进一步细节之前,将参考图3来描述可用于实现本发明的原理的一个合适的计算体系结构。在以下描述中,除非另外指明,否则将参考由一个或多个计算机执行的动作和操作的符号表示来描述本发明的各实施例。由此,可以理解,有时被称为计算机执行的这类动作和操作包括计算机的处理单元对以结构化形式表示数据的电信号的操纵。这一操纵转换了数据或在计算机的存储器系统中的位置上维护它,这以本领域的技术人员都理解的方式重配置或改变了计算机的操作。维护数据的数据结构是具有数据的格式所定义的特定属性的存储器的物理位置。然而,尽管在上述上下文中描述本发明,但它并不意味着是限制性的,如本领域的技术人员所理解的,后文所描述的动作和操作的各方面也可用硬件来实现。
转向附图,其中相同的参考标号指代相同的元素,本发明的原理被示为在一合适的计算环境中实现。以下描述基于所述的本发明的实施例,并且不应认为是关于此处未明确描述的替换实施例而限制本发明。
图3示出了可用于这些设备的一个示例计算机体系结构的示意图。出于描述的目的,所绘的体系结构仅为合适环境的一个示例,并非对本发明的使用范围或功能提出任何局限。也不应将该计算系统解释为对图3所示的任一组件或其组合具有任何依赖或需求。
本发明的原理可以使用其它通用或专用计算或通信环境或配置来操作。适用于本发明的众所周知的计算系统、环境和配置的示例包括但不限于,移动电话、袖珍计算机、个人计算机、服务器、多处理器系统、基于微处理器的系统、小型机、大型计算机、以及包括任一上述系统或设备的分布式计算环境。
在其最基本的配置中,计算系统300通常包括至少一个处理单元302和存储器304。存储器304可以是易失性(如RAM)、非易失性(如ROM、闪存等)或两者的某一组合。这一最基本配置在图3中由虚线306示出。在本说明书和权利要求书中,“计算系统”被定义为能够执行软件、固件或微码来实现功能的任何硬件组件或硬件组件的组合。计算系统甚至可以是分布式的以实现分布式功能。
存储介质设备可具有另外的特征和功能。例如,它们可包括另外的存储(可移动和不可移动),包括但不限于,PCMCIA卡、磁盘和光盘、以及磁带。这类另外的存储在图3中由可移动存储308和不可移动存储310示出。计算机存储介质包括以用于储存如计算机可读指令、数据结构、程序模块或其它数据等信息的任一方法和技术实现的易失性和非易失性、可移动和不可移动介质。存储器304、可移动存储308和不可移动存储310都是计算机存储介质的示例。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存、其它存储器技术、CD-ROM、数字多功能盘、或其它光存储、磁盒、磁带、磁盘存储、其它磁存储设备、以及可以用来储存期望的信息并可由计算系统访问的任一其它介质。
如此处所使用的,术语“模块”或“组件”可以指在计算系统上执行的软件对象或例程。此处所描述的不同组件、模块、引擎和服务可被实现为在计算系统上执行(例如,作为单独的线程)的对象或进程。尽管此处所描述的系统和方法较佳地以软件来实现,但是硬件或软件和硬件的组合的实现也是可能并被构想的。在本说明书中,“计算实体”可以是先前在此定义的任何计算系统,或在计算系统上运行的任何模块或模块的组合。
计算系统300还可包含允许主机如通过网络320与其它系统和设备进行通信的通信信道312。通信信道312是通信介质的示例。通信介质通常可以在诸如载波或其它传输机制等已调制数据信号中具体化计算机可读指令、数据结构、程序模块或其它数据,并包括任一信息传送介质。作为示例而非局限,通信介质包括有线介质,如有线网络或直接连线连接,以及无线介质,如声学、RF、红外和其它无线介质。此处使用的术语计算机可读介质包括存储介质和通信介质两者。
计算系统300还可具有输入组件314,如键盘、鼠标、笔、语音输入组件、触摸输入设备等等。输出设备316包括屏幕显示器、扬声器、打印机等等,以及用于驱动它们的呈现模块(通常称为“适配器”)。计算系统300具有电源318。所有这些组件在本领域中是公知的,并且无需在此详细讨论。
图1A示出了根据示例实施例的用于在客户机105和服务器125之间同步属性组104的分布式系统100。分布式系统100可以类似于以上参考图3所描述的计算系统300,然而不必如此。如图1A所示,分布式系统100包括可以是多个计算设备110、115等中的任一个的客户机105。例如,客户机105可以是诸如电话110、PDA 110、膝上型计算机115或任何其它计算设备等无线设备。
注意,本发明在其中数据链路较慢的系统中,例如无线通信中是最有优势的。然而,本发明不限于这种链路,并且可在任何环境中使用。例如,如上所述,本发明可以在要求用户基于从服务器125传输到客户机105的数据量来为服务付费的系统中使用。因此,对服务器125和客户机105之间的特定数据链路的任何具体参考在此处仅是出于说明的目的而使用的,并且不意味着限制或以其它方式缩小本发明的范围,除非是明确声明的。
此外,还要注意,尽管将按照服务器125和客户机105来描述本发明,但是这些设备在此处描述实施例时的角色可以互换。例如,以下描述将按照对出现在服务器125上的项170的改变来描述,其中这种改变通过将改变流传送到客户机105来同步。然而,注意,也可跟踪客户机105上的改变并将其上传到服务器125。由此,以下对在服务器125和客户机105之间发生的事件的描述—以及此处用于客户机105或服务器125任一个的任何特定设备—在此仅是出于说明的目的而使用的,并且不意味着限制或以其它方式缩小本发明的范围,除非明确声明。
如图1A所示,服务器125包括多个文件夹165(例如,文件夹“A”),其中每一文件夹165可表示或包括特定类型的项170。例如,文件夹165可包含或包括电子邮件项消息,而另一文件夹165可包括联系人项信息。当然,如上所述,根据此处提供的示例实施例,可以有可被同步的各种各样的项类型。另外,可在实施本发明时使用除文件夹165之外的其它拓扑结构和数据配置。例如,表或不同地分割或储存不同类型的项170的其它方式也可用于本发明。因此,任何特定的拓扑结构、数据格式、和/或存储分层结构在此仅出于说明的目的而使用,并且不意味着限制或以其它方式缩小本发明的范围。
如上所述,每一文件夹165将包含多个项170(例如,项“A”)。与每一项170相关联的是项改变标识符(ID)175,如以下更详细描述的,该标识符可用于标识自从服务器125与客户机105之间的最后一次同步以来项170及其属性何时已改变。每一项170中还包括属性组180(例如,属性组“A”)。如上所述,属性组180是基于行业常识和对多个属性组180中的每一个内的属性如何相关的语义的理解来预定义的。例如,属性组可基于属性的易失性、典型的存储器大小要求、和/或其它考虑事项来确定。此外,属性组180可以包括诸如消息状态、跟踪标志、优先级标志或频繁修改和/或改变的其它属性等高度易失的属性。
或者,或与其相结合地,属性组180可基于该属性与其它属性相比时的相对大小来定义。例如,附件的大小通常要大于其它属性,因此可驻留在一个属性组中,而诸如消息的收件人和/或正文等较小的数据大小可驻留在另一属性组180中。甚至可以有用于不与其它属性良好相关的那些属性的杂项属性组180。
注意,尽管属性组180是基于现有的行业常识来预定义的,但是这些知识会经历改变。因此,各实施例规定属性组180是可扩展的、可插入的并且可缩放的。即,属性组180是以使得每一属性组180中的属性可被移除、删除、添加和/或以其它方式修改的方式来配置的。类似地,属性组180本身可被重定义、创建和/或删除。另外,属性组180的定义可取决于项170的类型来改变。例如,对电子邮件项170定义的属性组180可以与对联系人项170定义的属性组180不同。由此,如以下将更详细描述的,客户机105将需要知道要用于各个文件夹165内的每一项170的适当映射190。
不管属性组180是如何定义的,每一属性组180通常将被分配一属性组改变ID 185,它可用于标识何时对该特定属性组180发生了改变。例如,项/属性组模块150可监视对项170发生的改变,以及对于该项170内的每一属性组180的改变。当改变发生时,改变ID生成器160可改变项改变ID175和适当的属性组改变ID185。
在某些实施例中,项改变ID 175和属性改变ID 185可以是相同的标识符,指示例如项和属性组被同时更新。然而,注意,在例如使用全局唯一标识符(GUID)的情况下不必如此。还应当注意,改变ID 175、185可以是任何公知的字母数字或其它标识数据对象。例如,改变ID 175、185可以分别是项170和/或属性组185的散列。当然,如上所述,改变标识符175、185可以基于简单的GUID计数来生成。还要注意,用于标识对项170和属性组180的改变的其它机制也可用于本发明。因此,此处描述的用于标识改变的任何特定类型的改变标识符175、185和/或其使用仅是出于说明的目的,并且不意味着限制或以其它方式缩小本发明的范围,除非明确声明。
不论标识175、185的类型如何,也不论如何标识对属性组的改变,当服务器125内的项/属性模块150标识一个或多个项170的改变时,可将这一项改变的通知120发送给客户机105以试图提示客户机105与服务器125同步。当然,用于提示客户机105与服务器125同步的其它机制也可用于本发明。例如,客户机105可周期性地,即在特定的预定间隔查询服务器125以与其同步。因此,客户机105和服务器125之间的同步过程的任何特定启动此处仅是出于说明的目的而使用的,并且不意味着限制或以其它方式缩小本发明的范围。
尽管如此,在启动同步过程之后,服务器125应从客户机105接收同步请求130。示例性实施例规定同步请求130可包括可用于确定自从客户机105与服务器125之间的最后一次同步以来是否已发生了改变的一个或多个项令牌125(例如,项令牌“A”)。在详细讨论项令牌135之前,注意,项令牌135无需被包括在同步请求130内。例如,其它握手机制可另外提示客户机105向服务器125发送项令牌135。或者,项令牌135可能已经被储存在服务器125上。因此,将项令牌135包括在同步请求130内此处仅是出于说明的目的而使用的,并且不意味着限制或以其它方式缩小本发明的范围,除非明确声明。
与每一项令牌135相关联的是项改变ID 140。对于每一项改变ID 140或项令牌135,也有多个属性组改变ID 145(例如,属性组“A”改变ID)。项改变ID 145和属性组改变ID 145表示与针对客户机105和服务器125之间的最后一次改变的项169和对应的属性组180相关联的那些标识符。换言之,项令牌135可能已作为数据团(blob)被传递给客户机105以便在与服务器125的最后一次同步期间储存。该数据团135然后可由改变标识符比较器155用于确定自从最后一次同步以来已改变的项170,尤其是每一项170内的那些属性组180。
例如,每一项令牌135可以与每一项170进行比较。更具体而言,项令牌135与实际项170中的改变ID 175、140和属性组ID 185、145可使用改变标识符比较器155来比较。如果值不同,即对于项令牌135的项改变ID 140和属性组ID 145不匹配项改变ID 175和属性组ID 185,则发生了项170和属性组180的改变。如上所述,尽管将对于项令牌135的改变ID与服务器125上的项170和属性组180进行比较以确定自从最后一次同步以来项170和属性组180何时已改变,但确定对项170和属性组180的改变何时或是否发生的其它方法也可用于本发明。例如,服务器125可储存确定客户机侧105上需要什么改变所需的所有信息,而无需改变ID 140、145、175、185。因此,如此处所描述的对改变ID 140、145、175、185的具体使用仅是出于说明的目的,并且不意味着限制或以其它方式缩小本发明的范围,除非明确声明。
不论如何标识已改变的属性组104,这一已改变的属性组104可被包括在同步项流102内,该流可根据以下描述的示例实施例被发送给客户机105。此外,如上所述,由特定的版本化ID 195标识的映射190也可在同步项流102之前、期间或之后被发送。如将在以下更详细讨论的,同步项流102内的属性组104应标识用于这一属性组104的版本195的特定映射190。
图1B示出了用于特定版本标识符195的映射190的示例框图。如图所示,映射190包括多个项106和对于每一项106的属性组108、114。当然,可以有可在任何特定项106内标识的任何数目的属性组108、114。此外,对于每一特定属性组108、114,还映射属性112、116。例如,属性组“A”108可包括属性112“C”和“E”,而属性组“B”114可包括属性“A”106。
考虑其中映射190标识具有针对相对较小的、易失性数据属性的属性组“A”108的电子邮件项106,而用于属性组“B”114的映射包括较大属性的示例。如此,属性组“A”108内的属性“C”112和属性“E”112可以分别是跟踪标志和优先级标志。另一方面,对属性组“B”114的属性“A”116可以是附件文件。当然,提供映射190的其它公知的方式也可用于本发明。因此,在图1B内提供的映射配置此处仅出于说明的目的而使用,并且不意味着限制或以其它方式缩小本发明的范围,除非明确声明。
注意,当前和先前的属性组映射190可以被持久保存在服务器数据库上,并且可通过版本ID 195来访问。如果遇到具有未知的版本标识符195的项170,或者该项没有组标识符,则应当如同该项没有任何属性分组180并且应当作为整体对待一样来对待该项。因此,如果诸如此类的项170需要被下载到客户机105,则流传送102整个项170。
一个实施例提供了通过以下称为快速传输的流传送机制的同步。这一过程允许服务器125通过分解所改变的属性组104并将其串行化成一原始二进制比特流来对同步请求130作出响应。服务器125将它能够打包的尽可能多的消息102打包到一固定大小的响应缓冲区中,并将数据102返回给客户机105。客户机105然后解析该数据,并通过解串行化字节流102来重构属性组104。字节流102的一个示例格式在以下参考图1C示出,该图示出了同步项流102的一个示例,即同步项流102可能看上去像什么的有线传输(或无线传输)数据表示。
同步项流102的第一部分是被添加到流102的开头的IncrSyncProgressItem(项的增量同步进展)118,用于提供关于响应流102中接下来的所有项的总大小的信息。接着,IncrSyncProgressPerItem(每一项的增量同步进展)122指示同步项流102中的下一项的总大小。同步流102内的下一分组124是如由标记IncrSyncPropGroupMap(增量同步属性组映射)指示的映射,它告诉客户机105流102中接下来的一个或多个项将使用什么属性组映射。因此,可使用IncrSyncPropGroup(增量同步属性组)标记以及每一属性组180内的属性ID的数组或列表来标识各种属性组180。换言之,同步项流102可包括如此处所描述的对于各种版本ID 195的映射190或一组映射190。然而,注意,如上所述,映射190无需被包括在同步项流102内,而是可以跟在同步流102之后或在其之前。
接下来的一组标签126,即IncrSynPropGroup ID(增量同步属性组ID)表示流中接下来的一个或多个项使用什么属性组映射。即,该组126内的版本ID标识了用于接下来的项的版本标识195的映射190。接着,IncrSynChgItem(增量同步已改变项)128是表示改变的项的开头的标记,之后是要在该项内改变的属性组的数组。例如,如IncrSynChgPropGroup(增量同步已改变属性组)132中的标记所示,可标识已改变的各个属性组。例如,如在流134中所示,IncrSnyChgPropGroup通过首先使DelProp(删除属性)元素删除当前的ItemRecipients(项收件人),然后使用StartRecip(开始收件人)和EndRecip(结束收件人)标记来替换收件人属性,来改变收件人属性。作为另一示例,流136中的元素包括用于项附件的IncrSyncChgPropGroup,使得当前的ItemAttachments(项附件)将使用DelProp来删除,并使用NewAttach(新附件)和EndAttach(结束附件)标记来替换。当然,如由之后提供的省略号所指示的,可在流内包括其它属性组。
其它示例性实施例能够将同步项的现有方法与此处提供的当前实施例相结合。例如,在不提供任何映射的传统系统中,可能在同步项流102内下载整个项。例如,如元素138中所示,IncrSyncProgressPerItem指示下一项的总大小,而IncrSyncChgItem标记了改变项的开始。接下来的标记,即用于IncrSyncDel(增量同步删除)、IncrSyncRead(增量同步已读)以及IncrSyncEnd(增量同步结束)的标记142分别表示:(1)要从客户机105删除的项的列表;(2)如下的已读状态转换;以及(3)表示同步会话结束的标记。最后,IncrSyncStateBegin(增量同步状态开始)表示字节流中接下来的最终同步状态,而IncrySyncStateEnd(增量同步状态结束)是表示同步状态完成的标记。
本发明也可按照包括功能步骤和/或非功能动作的方法来描述。以下是可在实施本发明时执行的动作和步骤的描述。通常,功能步骤按照所实现的结果来描述本发明,而非功能动作描述了用于实现特定结果的更具体的行动。尽管可以按特定的顺序描述或要求保护功能步骤或非功能动作,然而本发明不限于任何特定的顺序或动作和/或步骤的组合。此外,对步骤和/或动作的使用是权利要求书的叙述,并且在以下图2A和2B的流程图的描述中用于指示对这些术语的期望的具体使用。
图2A和2B示出了用于本发明的各示例性实施例的流程图。以下图2A和2B的描述将偶尔会涉及图1A-C中的对应元素。尽管可对这些图中的具体元素作出参考,但是这些元素仅出于说明的目的而使用,并且不旨在限制或以其它方式缩小本发明的范围,除非明确声明。
图2A示出了通过仅同步已改变的项的所选部分来提高客户机和服务器之间的同步速率,而不监视项内的每一个别属性的改变的方法200的流程图。方法200包括接收205同步数据项的请求的动作。例如,服务器125可接收同步自从服务器125和客户机105之间的最后一次同步以来已改变的数据项170的请求130,其中数据项170表示具有可被修改或以其它方式改变的各种属性的完整消息。例如,数据项170可以是电子邮件消息、联系人、约会、日历信息、任务、便笺等等。属性可包括收件人、地址、正文、附件、标志、状态标识符、或任何其它多种用于消息的属性。还要注意,服务器125和客户机105之间用于同步数据项170的数据链路可以是无线连接或有线连接,其中客户机105上的顾客基于从服务器125下载的字节数来为同步数据项170付费。
方法200还可包括用于减少225客户机和服务器之间的数据传输时间的步骤。更具体而言,用于225的步骤包括确定210一数据项自从最后一次同步以来已改变的动作。例如,服务器125可确定(使用改变ID比较器155或此处描述的其它方法)数据项170自从客户机105和服务器125之间的最后一次同步以来已改变。如上所述,数据项170包括基于行业常识和对每一属性组内的一个或多个属性如何相关的语义的理解来预定义的属性组170。例如,在电子邮件消息中,各属性组可包括正文属性、收件人属性组、主题属性组、附件属性组、优先级标志属性组、已读状态属性组、杂项属性组、和/或其任何组合。当然,可定义其它属性组,并且其它属性组是可扩展的、可插入的和可缩放的,使得属性组内的属性可被添加、删除或以其它方式在其中重新定义,并使得每一属性组可被添加、删除或基于行业常识的改变而以其它方式重新定义。
用于225的步骤还可包括确定215数据项内的哪一属性组自从最后一次同步以来已改变。例如,项/属性组模块155和改变ID比较器155可用于确定哪些属性组180自从最后一次同步以来已改变。因此,用于225的步骤包括在不流传送整个数据项的情况下同步220已改变的一个或多个组的动作。具体地,同步项流102可与自从最后一次同步以来已改变的各属性组104一起被流传送到客户机105,而无需流传送整个数据项170,以便减少在同步时客户机和服务器之间的数据传输时间。
对数据项170以及属性组180中的改变的确定可以基于用于数据项和属性组的改变标识符140、145、175、185。此外,用于数据项170和属性组180的改变标识符141、145、175、185可以相同。此外,用于数据项170和属性组180的改变标识符140、145、175、185可以是字母数字、全局唯一标识符或散列值。
其它实施例提供了数据项170和其中的属性组180的映射190。映射可在发送已改变的属性组104的同步项流之前、期间或之后发送。在任何情况下,客户机105可使用映射190来了解每一属性组180中包括了什么属性。此外,第二数据项170可被确定为已改变,但是没有属性组180。在这一情况下,可将整个第二数据170流传送到客户机105。
图2B示出了跟踪对项的所选部分的改变以提高客户机和服务器之间的同步速率,而不监视项内的每一个别属性的改变的方法250的流程图。方法250包括为同步的目的监视255多个数据项的动作。例如,项/属性组模块150或其它组件可监视数据项170,其中数据项170表示具有可被修改或以其它方式改变的多个属性的完整消息。这些属性包括但不限于先前在此描述的那些属性,如附件、标志、正文部分等等。
方法250还包括确定260一数据项自从客户机和服务器之间的最后一次同步以来已改变的动作。例如,改变标识符比较器155可用于确定数据项170自从服务器125和客户机105之间的最后一次同步以来已改变。如上所述,数据项包括基于行业常识和对每一属性组内的属性如何相关的语义的了解来预定义的多个属性组180。基于数据项已改变的判定,方法250还包括更新265项改变标识符的动作。例如,改变标识符生成器160可用于更新与数据项170相关联的项改变ID 175,该ID将用于标识项170已改变以便与客户机105同步。
类似地,方法250包括确定270数据项内的哪一属性组已改变的动作。即,项/属性组模块150内的改变标识符比较器155可用于确定哪些属性组180自从客户机105和服务器125之间的最后一次同步以来已改变。基于一属性组已改变的判定,方法250包括更新275属性组改变标识符的动作。例如,改变标识符生成器160可用于更新用于属性组180的改变ID 185,该ID将用于标识属性组180已改变,使得仅属性组180将与客户机105同步,以便减少客户机105和服务器125之间的数据传输时间。还要注意,以上描述的其它替换实施例也可用于方法250。
本发明可以用其它具体形式来实施而不偏离其精神或本质特征。所描述的实施例在所有方面都被认为仅是说明性而非限制性的。因此,本发明的范围由所附权利要求书而非以上描述来指示。落入权利要求书的等效技术方案的意义和范围之内的所有改变都被包含在其范围之内。

Claims (20)

1.一种同步第一设备与第二设备之间的数据项的方法,所述方法包括:
在所述第一设备上缓存电子邮件消息,所述电子邮件消息包括多个属性组,所述属性组的每一个包括所述电子邮件消息的一个或多个属性,所述属性组的至少之一包括多个属性;以及
由所述第一设备执行同步所述电子邮件消息中的已改变组的动作而不流传送整个所述电子邮件消息,所述已改变组在所述电子邮件消息的属性组中,所述已改变组中的一个或多个属性自上次同步时起已经改变。
2.如权利要求1所述的方法,其特征在于,所述多个属性组包括跟踪属性组和已读状态属性组。
3.如权利要求1所述的方法,其特征在于,还包括:
从所述第一设备向所述第二设备发送同步请求;以及
从所述第二设备接收所述已改变组作为对所述同步请求的响应。
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
从所述第二设备接收所述上次同步期间的项令牌;以及
在所述第一设备上储存所述项令牌;以及
其中所述同步请求包括所述项令牌。
5.如权利要求4所述的方法,其特征在于,所述项令牌可用于确定所述电子邮件消息内自所述上次同步时起已经改变的属性组。
6.如权利要求1所述的方法,其特征在于,所述已改变组包括所述电子邮件消息的一个以上属性。
7.如权利要求1所述的方法,其特征在于,还包括:
为同步目的监视多个电子邮件消息,所述多个电子邮件消息包括所述电子邮件消息;
确定所述上次同步后所述电子邮件消息已经改变;以及
在确定所述上次同步后所述电子邮件消息已经改变之后,确定所述电子邮件消息中的哪个属性组已经改变。
8.如权利要求7所述的方法,其特征在于,
确定所述上次同步后所述电子邮件消息已经改变包括使用项改变标识符来确定所述上次同步后所述电子邮件消息已经改变;
确定所述电子邮件消息中的哪个属性组已经改变包括:
使用所述属性组的改变ID来标识所述电子邮件消息中的已改变组;以及
所述方法还包括:
在确定所述上次同步后所述电子邮件消息已经改变之后,更新所述项改变标识符;以及
在使用所述属性组的改变ID来标识所述已改变组之后,更新所述已改变组的改变ID。
9.如权利要求1所述的方法,其特征在于,
执行同步已改变组的动作包括在所述第一设备上接收同步项流,所述同步项流包括指示告诉所述第一设备所述电子邮件消息使用什么属性组映射的标记;以及
所述属性组映射将所述电子邮件消息中的属性映射到所述属性组。
10.如权利要求1所述的方法,其特征在于,还包括在所述第一设备上接收项改变的通知,所述项改变的通知提示所述第一设备与所述第二设备同步。
11.如权利要求1所述的方法,其特征在于,所述属性组基于所述属性的相对大小来确定。
12.一种计算设备,包括:
储存指令和电子邮件消息的一个或多个计算机存储介质,所述电子邮件消息包括多个属性,所述多个属性分成多个属性组,所述属性组的每一个包含一个或多个所述属性,所述属性组的至少之一包含多个属性;以及
读取和执行所述指令的处理单元,所述处理单元对指令的执行使所述计算设备同步所述电子邮件消息中的已改变组而不从另一计算设备流传送整个所述电子邮件消息,所述已改变组在所述电子邮件消息的属性组中,所述已改变组中的一个或多个属性自所述计算设备和所述另一计算设备之间的上次同步时起已经改变。
13.如权利要求12所述的计算设备,其特征在于,所述处理单元对指令的执行使所述计算设备:在所述计算设备从所述另一计算设备接收到项改变的通知之后向所述另一计算设备发送同步请求,所述同步请求是对同步自所述计算设备和所述另一计算设备之间的上次同步时起已经改变的数据项的请求。
14.如权利要求12所述的计算设备,其特征在于,所述属性组基于所述属性的易失性。
15.如权利要求12所述的计算设备,其特征在于,所述属性组以能重新定义所述属性组的方式来配置。
16.如权利要求12所述的计算设备,其特征在于,所述处理单元对所述指令的执行使所述计算设备:
确定特定属性组中的属性已经改变;
在确定所述特定属性组中的所述属性已经改变之后,更新所述特定属性组的属性组改变标识符;以及
使用所述属性组改变标识符来标识何时已经发生了对特定属性组的改变。
17.如权利要求16所述的计算设备,其特征在于,所述处理单元对所述指令的执行使所述计算设备:
基于所述电子邮件消息已经改变的确定更新与所述电子邮件消息相关联的项改变标识符;以及
当所述项改变标识符与从所述另一计算设备接收的项改变标识符不同时,确定所述电子邮件消息已经改变。
18.如权利要求16所述的计算设备,其特征在于,所述计算设备是客户机,而所述另一计算设备是服务器。
19.一种方法,包括:
在所述客户机上本地地缓存电子邮件消息,所述电子邮件消息包括多个属性组,所述属性组的每一个映射到所述电子邮件消息的一个或多个属性,所述属性组的至少之一映射到所述电子邮件消息的多个属性,所述多个属性组至少包括跟踪属性组和已读状态属性组;
向服务器发送同步请求;以及
响应于所述同步请求从所述服务器接收同步项流,所述同步项流包括所述电子邮件消息中的已改变属性组而非整个所述电子邮件消息,映射到所述已改变属性组的一个或多个属性自所述客户机与所述服务器之间的上次同步起已经改变。
20.如权利要求19所述的方法,其特征在于,
所述同步项流指定将所述电子邮件消息的属性映射到所述属性组的映射;且
所述方法还包括使用所述映射来确定所述属性组的每一个中包括所述电子邮件消息的什么属性。
CN201110100085.7A 2005-08-15 2006-07-20 部分项改变跟踪和同步 Active CN102207957B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/204,067 2005-08-15
US11/204,067 US7962585B2 (en) 2005-08-15 2005-08-15 Partial item change tracking and synchronization

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN200680029649XA Division CN101385017B (zh) 2005-08-15 2006-07-20 部分项改变跟踪和同步

Publications (2)

Publication Number Publication Date
CN102207957A CN102207957A (zh) 2011-10-05
CN102207957B true CN102207957B (zh) 2014-06-04

Family

ID=37758031

Family Applications (2)

Application Number Title Priority Date Filing Date
CN200680029649XA Active CN101385017B (zh) 2005-08-15 2006-07-20 部分项改变跟踪和同步
CN201110100085.7A Active CN102207957B (zh) 2005-08-15 2006-07-20 部分项改变跟踪和同步

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN200680029649XA Active CN101385017B (zh) 2005-08-15 2006-07-20 部分项改变跟踪和同步

Country Status (17)

Country Link
US (2) US7962585B2 (zh)
EP (2) EP1915670B1 (zh)
JP (2) JP4959703B2 (zh)
KR (1) KR101312810B1 (zh)
CN (2) CN101385017B (zh)
AU (1) AU2006280352B2 (zh)
BR (1) BRPI0614287A8 (zh)
CA (1) CA2616103C (zh)
EG (1) EG25523A (zh)
HK (1) HK1162711A1 (zh)
IL (1) IL188781A (zh)
MX (1) MX2008002169A (zh)
MY (2) MY188203A (zh)
NZ (1) NZ565592A (zh)
RU (1) RU2421780C2 (zh)
TW (1) TWI454934B (zh)
WO (1) WO2007021454A2 (zh)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7962585B2 (en) 2005-08-15 2011-06-14 Microsoft Corporation Partial item change tracking and synchronization
CN101159757B (zh) * 2007-10-25 2011-11-30 中兴通讯股份有限公司 双归属同步数据传输方法
CN101447886B (zh) * 2007-11-26 2011-07-27 华为技术有限公司 一种比较海量数据的方法及装置
US20090203389A1 (en) * 2008-02-07 2009-08-13 Syncplanet Llc Systems and methods for synchronizing information using short message services and email services
US8280963B2 (en) * 2008-04-10 2012-10-02 Microsoft Corporation Caching and exposing pre-send data relating to the sender or recipient of an electronic mail message
TWI400623B (zh) * 2008-11-06 2013-07-01 Acer Inc 遠端電腦同步傳輸檔案技術
US8463246B2 (en) 2009-05-26 2013-06-11 Sony Corporation Contact management
US20110126095A1 (en) * 2009-11-25 2011-05-26 T-Mobile USA, Inc Router Management via Touch-Sensitive Display
CN101719904B (zh) * 2009-11-26 2012-07-04 华平信息技术股份有限公司 互联网应用中减少服务器和客户端业务通讯量的方法
US8745037B2 (en) * 2009-12-17 2014-06-03 Microsoft Corporation Exploiting partitioning, grouping, and sorting in query optimization
US9141919B2 (en) 2010-02-26 2015-09-22 International Business Machines Corporation System and method for object migration using waves
CN102184375A (zh) * 2010-04-30 2011-09-14 华为终端有限公司 Sim卡中数据的管理方法及终端
US8392369B2 (en) 2010-09-10 2013-03-05 Microsoft Corporation File-backed in-memory structured storage for service synchronization
CN101989989A (zh) * 2010-11-17 2011-03-23 中兴通讯股份有限公司 一种企业通信录和个人通信录的数据同步方法和系统
US8566336B2 (en) * 2011-03-30 2013-10-22 Splunk Inc. File identification management and tracking
GB2497793A (en) * 2011-12-21 2013-06-26 Ninian Solutions Ltd Pre-emptive caching of potentially relevant content from a collaborative workspace at a client device
US9110892B2 (en) * 2012-03-13 2015-08-18 Microsoft Technology Licensing, Llc Synchronizing local and remote data
US10095672B2 (en) 2012-06-18 2018-10-09 Novaworks, LLC Method and apparatus for synchronizing financial reporting data
CN104011752A (zh) 2012-10-12 2014-08-27 统一有限责任两合公司 用于显示电子邮件消息的方法及装置
CN104951238A (zh) * 2014-03-24 2015-09-30 国际商业机器公司 用于在分布式虚拟环境中管理数据存储的方法和装置
US10235331B1 (en) 2015-06-18 2019-03-19 EMC IP Holding Company LLC Event-based synchronization in a file sharing environment
US10242024B1 (en) 2015-06-18 2019-03-26 EMC IP Holding Company LLC Dynamic reprioritization of content download during synchronization
US10992748B1 (en) 2015-06-18 2021-04-27 EMC IP Holding Company LLC Verification of event-based synchronization
US10721298B1 (en) 2015-06-18 2020-07-21 EMC IP Holding Company LLC Learning client preferences to optimize event-based synchronization
US10129357B2 (en) 2015-08-21 2018-11-13 International Business Machines Corporation Managing data storage in distributed virtual environment
US10237218B2 (en) 2016-08-29 2019-03-19 International Business Machines Corporation Message delivery management based on device accessibility
US10091148B2 (en) 2016-08-29 2018-10-02 International Business Machines Corporation Message delivery management based on device accessibility
US11061936B2 (en) 2019-04-24 2021-07-13 Microsoft Technology Licensing, Llc Property grouping for change detection in distributed storage systems
US11055274B2 (en) 2019-04-24 2021-07-06 Microsoft Technology Licensing, Llc Granular change detection in distributed storage systems
US11080265B2 (en) 2019-04-24 2021-08-03 Microsoft Technology Licensing, Llc Dynamic hash function composition for change detection in distributed storage systems

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1426190A (zh) * 2001-12-13 2003-06-25 互慧科技股份有限公司 数据同步系统及方法

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5966714A (en) * 1995-04-28 1999-10-12 Intel Corporation Method and apparatus for scaling large electronic mail databases for devices with limited storage
US5923848A (en) * 1996-05-31 1999-07-13 Microsoft Corporation System and method for resolving names in an electronic messaging environment
US5794254A (en) * 1996-12-03 1998-08-11 Fairbanks Systems Group Incremental computer file backup using a two-step comparison of first two characters in the block and a signature with pre-stored character and signature sets
US6036945A (en) 1997-04-11 2000-03-14 Shamrock Technologies, Inc. Delivery systems for active ingredients including sunscreen actives and methods of making same
US6052735A (en) * 1997-10-24 2000-04-18 Microsoft Corporation Electronic mail object synchronization between a desktop computer and mobile device
US6295541B1 (en) * 1997-12-16 2001-09-25 Starfish Software, Inc. System and methods for synchronizing two or more datasets
US6018762A (en) * 1998-03-31 2000-01-25 Lucent Technologies Inc. Rules-based synchronization of mailboxes in a data network
US6226650B1 (en) * 1998-09-17 2001-05-01 Synchrologic, Inc. Database synchronization and organization system and method
US6862617B1 (en) * 1998-10-12 2005-03-01 Microsoft Corp. System and method for synchronizing objects between two devices
US6463427B1 (en) * 1999-03-16 2002-10-08 Microsoft Corporation Use of object signature property as a search parameter during synchronization of objects on a computer
US6751634B1 (en) 1999-08-26 2004-06-15 Microsoft Corporation Method and system for detecting object inconsistency in a loosely consistent replicated directory service
US6694336B1 (en) * 2000-01-25 2004-02-17 Fusionone, Inc. Data transfer and synchronization system
US6941326B2 (en) * 2001-01-24 2005-09-06 Microsoft Corporation Accounting for update notifications in synchronizing data that may be represented by different data structures
US6993522B2 (en) * 2001-06-27 2006-01-31 Microsoft Corporation System and method for resolving conflicts detected during a synchronization session
TW579463B (en) * 2001-06-30 2004-03-11 Ibm System and method for a caching mechanism for a central synchronization server
US7149813B2 (en) 2001-08-14 2006-12-12 Microsoft Corporation Method and system for synchronizing mobile devices
US20030177171A1 (en) * 2002-01-22 2003-09-18 Brown Bruce Loring Electronic mail retrieval
US7024429B2 (en) * 2002-01-31 2006-04-04 Nextpage,Inc. Data replication based upon a non-destructive data model
US7814055B2 (en) * 2002-08-28 2010-10-12 Apple Inc. Method of managing a calendar and a computer system for implementing that method
US7650364B2 (en) * 2002-10-09 2010-01-19 Hewlett-Packard Development Company, L.P. Portable database system
US7386590B2 (en) * 2003-01-03 2008-06-10 Microsoft Corporation System and method for improved synchronization between a server and a client
US7768234B2 (en) * 2004-02-28 2010-08-03 Janik Craig M System and method for automatically synchronizing and acquiring content for battery powered devices
WO2005015882A1 (en) * 2003-07-25 2005-02-17 International Business Machines Corporation Method and system for sharing device - session data with multiple devices
KR100491541B1 (ko) * 2003-08-01 2005-05-25 니트젠테크놀러지스 주식회사 네트웍 환경에서의 컨텐츠 동기화 시스템 및 동기화 방법
US20050033777A1 (en) * 2003-08-04 2005-02-10 Moraes Mark A. Tracking, recording and organizing changes to data in computer systems
US7512638B2 (en) * 2003-08-21 2009-03-31 Microsoft Corporation Systems and methods for providing conflict handling for peer-to-peer synchronization of units of information manageable by a hardware/software interface system
US20050144044A1 (en) * 2003-09-29 2005-06-30 Samsung Electronics Co., Ltd. System and apparatus for efficiently utilizing network capacity in a healthcare setting
GB2406660A (en) 2003-09-30 2005-04-06 Ibm A system for retrieving data from a partially indexed data store
US7080104B2 (en) * 2003-11-07 2006-07-18 Plaxo, Inc. Synchronization and merge engines
JP4211982B2 (ja) * 2003-12-19 2009-01-21 矢崎総業株式会社 ワイヤハーネス分岐部の製造方法
US7594022B2 (en) * 2004-04-21 2009-09-22 Microsoft Corporation Regulating client requests in an electronic messaging environment
US7383291B2 (en) * 2004-05-24 2008-06-03 Apple Inc. Method for sharing groups of objects
US20060123087A1 (en) * 2004-12-04 2006-06-08 Gibson David W Email storage format including partially ordered logs of updates to email message attributes
US7962585B2 (en) 2005-08-15 2011-06-14 Microsoft Corporation Partial item change tracking and synchronization

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1426190A (zh) * 2001-12-13 2003-06-25 互慧科技股份有限公司 数据同步系统及方法

Also Published As

Publication number Publication date
TWI454934B (zh) 2014-10-01
EP1915670B1 (en) 2018-12-05
MY188203A (en) 2021-11-24
BRPI0614287A2 (pt) 2011-03-22
IL188781A (en) 2014-07-31
JP5356561B2 (ja) 2013-12-04
EP1915670A2 (en) 2008-04-30
US9524329B2 (en) 2016-12-20
EP2400405A1 (en) 2011-12-28
US20070078941A1 (en) 2007-04-05
MX2008002169A (es) 2008-04-22
AU2006280352A1 (en) 2007-02-22
BRPI0614287A8 (pt) 2017-01-10
JP2009507276A (ja) 2009-02-19
JP2012133795A (ja) 2012-07-12
RU2008105763A (ru) 2009-08-20
IL188781A0 (en) 2008-08-07
WO2007021454A3 (en) 2008-10-02
CN101385017B (zh) 2011-06-08
CN101385017A (zh) 2009-03-11
AU2006280352B2 (en) 2011-03-17
MY147049A (en) 2012-10-15
CA2616103A1 (en) 2007-02-22
CA2616103C (en) 2017-06-20
EG25523A (en) 2012-02-01
CN102207957A (zh) 2011-10-05
WO2007021454A2 (en) 2007-02-22
JP4959703B2 (ja) 2012-06-27
TW200712912A (en) 2007-04-01
RU2421780C2 (ru) 2011-06-20
KR20080039387A (ko) 2008-05-07
HK1162711A1 (zh) 2012-08-31
KR101312810B1 (ko) 2013-09-27
US7962585B2 (en) 2011-06-14
US20110218963A1 (en) 2011-09-08
NZ565592A (en) 2010-02-26
EP1915670A4 (en) 2011-10-05

Similar Documents

Publication Publication Date Title
CN102207957B (zh) 部分项改变跟踪和同步
CN101689182B (zh) 用于分布式文件系统的高效更新
US6925476B1 (en) Updating application data including adding first change log to aggreagate change log comprising summary of changes
CN100440206C (zh) 与物理存储表示无关地同步逻辑视图的方法和系统
CN101404789B (zh) 用于数据处理的方法和装置
US20070118577A1 (en) Method of Replicating Data Between Computing Devices
WO2003083684A1 (en) Method and apparatus for synchronizing how data is stored in different data stores
CN101404665A (zh) 用于数据处理的方法和装置
EP2160881A1 (en) Method of synchronizing intermittently connected mobile terminals
CN1985240A (zh) 用于网络边缘计算的应用拆分
CN1818902A (zh) 使用设备数据模式同步服务器和设备数据
CN101436124A (zh) 一种嵌入式设备kjava应用程序管理系统及方法
CA2620453C (en) System and method for managing databases associated with respective personal information manager service accounts
AU2011202919B2 (en) Partial item change tracking and synchronization
GB2387687A (en) Method of replicating data between computing devices which use local clocks
KR20040070569A (ko) 이동 통신 단말기를 위한 서비스 시스템 및 서비스 방법
KR20020032856A (ko) 캐릭터 서비스 제공 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1162711

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150429

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150429

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.