CN102207957A - Partial item change tracking and synchronization - Google Patents
Partial item change tracking and synchronization Download PDFInfo
- Publication number
- CN102207957A CN102207957A CN2011101000857A CN201110100085A CN102207957A CN 102207957 A CN102207957 A CN 102207957A CN 2011101000857 A CN2011101000857 A CN 2011101000857A CN 201110100085 A CN201110100085 A CN 201110100085A CN 102207957 A CN102207957 A CN 102207957A
- Authority
- CN
- China
- Prior art keywords
- item
- changed
- attribute
- attributes
- data item
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/02—Comparing digital values
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/216—Handling conversation history, e.g. grouping of messages in sessions or threads
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/234—Monitoring or handling of messages for tracking messages
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- Signal Processing (AREA)
- Pure & Applied Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
Abstract
本发明涉及部分项改变跟踪和同步。此处的实施例改变了在两个设备之间处理和跟踪项同步的方式。对项的改变根据良好定义的属性组来跟踪,并且每一组独立于其它组来跟踪。本发明通过仅同步已改变的项的所选部分而不监视项内的每一个别属性的改变来提高客户机和服务器之间的同步速率。因此,如果对相对较大的电子邮件消息上的小数据属性(例如,跟踪标志)作出了改变,则这一改变将不会触发向运行在高速缓存模式下的客户机的大量下载,也不会有对用于跟踪每一个别属性的高存储和处理的要求。
The present invention relates to partial item change tracking and synchronization. Embodiments herein change the way item synchronization is handled and tracked between two devices. Changes to items are tracked according to well-defined sets of properties, and each set is tracked independently of the others. The present invention increases the rate of synchronization between a client and server by only synchronizing selected portions of items that have changed without monitoring every individual attribute within the item for changes. Therefore, if a change is made to a small data attribute (for example, a trace flag) on a relatively large e-mail message, this change will not trigger a large download to a client running in cached mode, nor will the There would be high storage and processing requirements for tracking each individual attribute.
Description
本申请为申请日为2008年2月14日申请号为第200680029649.X号发明名称为“部分项改变跟踪和同步”的中国专利申请的分案申请。This application is a divisional application of a Chinese patent application with an application date of February 14, 2008, application number No. 200680029649.X, and the title of the invention is "tracking and synchronization of partial item changes".
背景background
膝上型、手持式和其它便携式计算机或计算设备随着其尺寸变得更小并且变得更便宜而日益普及。另外,便携式计算机的操作速度和处理能力的提高也增加了其普及性。许多便携式计算机能够储存诸如地址簿、游戏、计算器等多个应用程序。这些应用程序可在制造期间被永久安装在便携式计算机中(例如,安装到只读存储器(ROM)上)。或者,一个或多个应用程序可在购买便携式计算机之后由用户安装。Laptop, handheld and other portable computers or computing devices are increasing in popularity as they become smaller in size and less expensive. In addition, improvements in the operating speed and processing power of portable computers have also increased their popularity. Many portable computers are capable of storing multiple applications such as address books, games, calculators, etc. These application programs may be permanently installed in the portable computer (eg, onto read-only memory (ROM)) during manufacture. Alternatively, one or more applications may be installed by the user after purchasing the portable computer.
随着这些设备的普及性和计算能力的增加,人们开始不仅仅使用单个计算设备来储存数据和应用程序。例如,除了常规的台式计算机之外,许多人通常还使用膝上型计算机。诸如蜂窝电话、个人数字助理(PDA)、因特网服务等其它设备也用于储存数据和应用程序。As the popularity and computing power of these devices increased, people began to use more than a single computing device to store data and applications. For example, many people commonly use laptop computers in addition to conventional desktop computers. Other devices such as cellular phones, personal digital assistants (PDAs), Internet services, etc. are also used to store data and applications.
这些计算设备中的每一个可以是分布式计算系统的一部分,其中有关信息可以是相关的并被储存在多个这样的设备上。例如,以高速缓存模式运行的电子邮件客户机被设计成在该客户机上本地保存邮箱的副本。由此,如果用户具有PDA和台式工作计算机,则每一设备将具有本地储存在其上的电子邮件项。理想地,PDA的电子邮件信息应当匹配台式工作计算机处的电子邮件信息。Each of these computing devices may be part of a distributed computing system, where relevant information may be correlated and stored on multiple such devices. For example, an e-mail client running in cached mode is designed to keep a copy of the mailbox locally on the client. Thus, if a user has a PDA and a desktop work computer, each device will have email items stored locally on it. Ideally, the PDA's email information should match the email information at the desktop work computer.
当相同或相关的信息被储存在两个地方时,数据可能在一个位置上改变而在另一位置上没有改变。这一问题可通过同步来克服,同步是试图确保分布式系统内的每一设备具有最新的信息或数据的一种自动化过程。然而,同步具有其自己的一组问题。例如,当两个设备彼此同步时,这些系统通常在每一项的基础上,例如,每一电子邮件消息、每一联系人、每一约会等,来跟踪改变。因此,当两个设备或计算系统试图同步时,会下载整个项,而不管改变的属性(例如,标志、附件、正文、收件人等)的大小如何。尽管对于某些高带宽传输系统而言,这一全项跟踪和同步过程即使有也只有极少的问题,然而采用例如无线连接等较慢的链路,整个项的下载或流传送可能会严重限制数据的传输速率。When the same or related information is stored in two places, data may change in one location but not in another. This problem can be overcome through synchronization, which is an automated process that attempts to ensure that each device within a distributed system has the latest information or data. However, synchronization has its own set of problems. For example, when two devices are synchronized with each other, these systems typically track changes on a per-item basis, eg, per email message, per contact, per appointment, etc. Thus, when two devices or computing systems attempt to synchronize, the entire item is downloaded regardless of the size of the changed attributes (eg, logo, attachments, body, recipients, etc.). While this full item tracking and synchronization process is rarely, if ever, problematic for some high-bandwidth transfer systems, over slower links such as wireless connections, downloading or streaming of entire items can be a serious problem. Limit the transfer rate of data.
例如,考虑包括跟踪标志属性、收件人属性、正文属性和一个或多个附件属性等的电子邮件消息。如果跟踪标志的颜色改变,则必须在与另一设备同步时下载整个项。如果该电子邮件内的附件和其它数据相对较大,则跟踪标志的这一相对较小字节大小的改变导致整个项被下载;由此产生了慢数据链路上的大数据传输时间。For example, consider an email message that includes a traceflag attribute, a recipient attribute, a body attribute, one or more attachment attributes, and so on. If the color of the tracking flag changes, the entire item must be downloaded when syncing with another device. If the attachments and other data within the e-mail are relatively large, this relatively small byte-size change of the trace flag causes the entire item to be downloaded; thereby creating a large data transfer time over a slow data link.
即使使用高带宽数据链路,下载整个项仍可能是不合需要的。例如,当顾客基于下载的字节数来为下载项付费时,如果一个项上仅有少量数据改变,例如上述的跟踪标志,则顾客仍必须为下载整个项付费。这一金钱的浪费可能会导致用户非常受挫。Even with high bandwidth data links, downloading entire items may still be undesirable. For example, when a customer pays for a downloaded item based on the number of bytes downloaded, if only a small amount of data changes on an item, such as the tracking flags described above, the customer must still pay for the entire item to be downloaded. This waste of money can be very frustrating for the user.
某些复制系统可能是对在每一项的基础上跟踪并同步设备的系统的上述缺陷的一种解决方案。尽管某些复制系统能够在属性的基础上跟踪改变,但是这些系统仍具有其自己的内在问题。例如,对于大量的项的每一个别属性的跟踪造成了高存储和高处理要求两者。由此,这些跟踪和同步系统对于大多数用户而言是不实用的。Certain replication systems may be a solution to the above-mentioned deficiencies of systems that track and synchronize devices on a per-item basis. Although some replication systems are able to track changes on an attribute basis, these systems have their own inherent problems. For example, tracking of each individual attribute for a large number of items creates both high storage and high processing requirements. As such, these tracking and synchronization systems are not practical for most users.
概述overview
现有同步系统的上述缺陷和缺点通过本发明的示例性实施例得以克服。请注意,提供以下概述是为了用简化的形式来介绍将在以下详细描述中进一步描述的一些概念。然而,本概述并不旨在标识出所要求保护的主题的关键或必要特征,也不旨在用于确定所要求保护的主题的范围。The above-mentioned deficiencies and shortcomings of existing synchronization systems are overcome by the exemplary embodiments of the present invention. Please note that the following summary is provided to introduce in simplified form a selection of concepts that are further described below in the detailed description. This Summary is not intended, however, to identify key or essential features of the claimed subject matter, nor is it intended for use in determining the scope of the claimed subject matter.
在一个实施例中,提供了用于通过仅同步所改变项的所选部分而不监视该项内的每一个别属性的改变来提高客户机和服务器之间的同步速率的方法、系统和计算机程序产品。在该实施例中,接收同步自从服务器和客户机之间的最后一次同步以来所改变的数据项的请求,其中数据项表示具有可被修改或以其它方式改变的多个属性的完整消息。响应于同步数据的请求,首先确定一数据项自从最后一次同步以来是否改变。这一数据项包括多个属性组,该多个属性组基于行业常识和对多个属性组中的每一个内的属性如何相关的语义的理解来预定义。接着,确定多个属性组中的至少一个属性组自从最后一次同步以来是否改变。因此,该至少一个属性组可在不流传送整个至少一个数据项的情况下同步,以减少在同步时客户机和服务器之间的数据传输的时间。In one embodiment, a method, system, and computer are provided for increasing the rate of synchronization between a client and server by synchronizing only selected portions of changed items without monitoring changes to every individual attribute within the item program product. In this embodiment, a request to synchronize a data item that has changed since the last synchronization between the server and client is received, wherein the data item represents a complete message with a number of attributes that may be modified or otherwise changed. In response to a request to synchronize data, it is first determined whether a data item has changed since the last synchronization. This data item includes a plurality of attribute groups that are predefined based on common industry knowledge and an understanding of the semantics of how attributes within each of the plurality of attribute groups are related. Next, it is determined whether at least one attribute group of the plurality of attribute groups has changed since the last synchronization. Thus, the at least one attribute group can be synchronized without streaming the entire at least one data item, to reduce the time of data transfer between the client and the server when synchronizing.
在另一实施例中,提供了用于跟踪项的所选部分的改变以提高客户机和服务器之间的同步速率,而不监视项内的每一个别属性的改变的方法、系统和计算机程序产品。在该实施例中,出于同步的目的监视多个数据项,其中多个数据项中的每一个表示具有可被修改或以其它方式改变的多个属性的完整消息。在这一监视期间,确定一数据项自从客户机和服务器之间的最后一次同步以来是否改变,其中该数据项包括多个属性组,该多个属性组基于行业常识和对多个属性组中的每一个内的属性如何相关的语义的理解来预定义。In another embodiment, a method, system, and computer program are provided for tracking changes to selected portions of an item to increase the rate of synchronization between a client and a server without monitoring changes to each individual attribute within the item product. In this embodiment, multiple data items are monitored for synchronization purposes, where each of the multiple data items represents a complete message with multiple attributes that may be modified or otherwise changed. During this monitoring period, it is determined whether a data item has changed since the last synchronization between the client and the server, wherein the data item includes a plurality of attribute groups based on industry common sense and knowledge of the plurality of attribute groups The understanding of how the semantics of each of the attributes are related to predefined.
基于数据项已改变的判定,更新与数据项相关联的项改变标识符,该标识符将用于标识该数据项已改变以便与客户机进行同步。因此,还确定多个属性组中的至少一个属性组自从最后一次同步以来是否改变。基于至少一个属性组已改变的判定,更新与该至少一个属性组相关联的属性组改变标识符,该标识符将用于标识该至少一个属性组已改变,使得仅该至少一个属性组将与客户机同步以便减少客户机和服务器之间的数据传输的时间。Based on the determination that the data item has changed, an item change identifier associated with the data item is updated, which will be used to identify that the data item has changed for synchronization with the client. Accordingly, it is also determined whether at least one attribute group of the plurality of attribute groups has changed since the last synchronization. Based on a determination that at least one attribute group has changed, updating an attribute group change identifier associated with the at least one attribute group that will be used to identify that the at least one attribute group has changed such that only the at least one attribute group will be associated with Client synchronization to reduce data transfer time between client and server.
在另一实施例中,本发明还提供了其上储存有项数据结构的一个或多个计算机可读介质。该项数据结构包括以下:能够被修改或以其它方式改变的多个属性;用于指示多个属性中的一个或多个自从与客户机的最后一次同步以来是否被修改或以其它方式改变的项改变标识符;各自包括多个属性中的一个或多个属性的多个属性组,其中多个属性组基于行业常识和对多个属性组中的每一个内的一个或多个属性如何相关的语义的理解来预定;以及多个属性组改变标识符,用于指示多个属性组中的哪一个已改变以便仅同步这些已改变的属性组而不同步整个项。In another embodiment, the present invention also provides one or more computer-readable media having item data structures stored thereon. The item data structure includes the following: a number of attributes that can be modified or otherwise changed; an item change identifier; a plurality of attribute groups each comprising one or more of a plurality of attributes, wherein the plurality of attribute groups are based on industry common knowledge and how the one or more attributes within each of the plurality of attribute groups are related and a plurality of attribute group change identifiers to indicate which of the plurality of attribute groups has changed so that only these changed attribute groups are synchronized and not the entire item.
本发明的其它特征和优点将在以下描述中阐明,并且其一部分将从该描述中显而易见,或者可通过对本发明的实践来获知。本发明的特征和优点可借助所附权利要求书中具体指出的工具和组合来实现和获得。本发明的这些和其它特征将从以下描述和所附权利要求书中变得更完全清楚,或者可通过如下所述对本发明的实践而获知。Additional features and advantages of the invention will be set forth in the description which follows, and in part will be obvious from the description, or may be learned by practice of the invention. Features and advantages of the invention may be realized and obtained by means of the instruments and combinations particularly pointed out in the appended claims. These and other features of the present invention will become more fully apparent from the following description and appended claims, or may be learned by practice of the invention as described below.
附图简述Brief description of the drawings
为了描述可获得本发明的上述和其它优点和特征的方式,将参考附图中所示的其具体实施例来呈现以上简要描述的本发明的更具体描述。要理解这些附图仅描绘了本发明的典型实施例,并且因此并不被认为是限制其范围,本发明将通过使用附图以附加的特征和细节来描述和解释,在附图中:In order to describe the manner in which the above and other advantages and features of the invention may be obtained, a more particular description of the invention briefly described above will be rendered by reference to specific embodiments thereof which are shown in the appended drawings. With the understanding that these drawings depict only typical embodiments of the invention and are therefore not to be considered as limiting its scope, the invention will be described and explained with additional characteristics and details by using the accompanying drawings, in which:
图1A示出了根据示例实施例的用于仅同步属性组的分布式系统;FIG. 1A shows a distributed system for synchronizing only attribute groups according to an example embodiment;
图1B示出了根据示例实施例的对于项的属性组的映射;FIG. 1B illustrates a mapping for attribute groups of items, according to an example embodiment;
图1C示出了根据示例实施例的一个示例同步项流;Figure 1C illustrates an example synchronization item flow according to an example embodiment;
图2A示出了根据示例实施例的提高客户机和服务器之间的同步速率的方法的流程图;FIG. 2A shows a flowchart of a method of increasing a synchronization rate between a client and a server according to an example embodiment;
图2B示出了根据示例实施例的跟踪项的所选部分的改变的方法的流程图;以及2B shows a flow diagram of a method of tracking changes to a selected portion of an item, according to an example embodiment; and
图3示出了提供用于实现本发明的各特征的合适的操作环境的示例计算系统。Figure 3 illustrates an example computing system that provides a suitable operating environment for implementing the features of the invention.
详细描述A detailed description
本发明涉及用于通过仅同步已改变的项的所选部分来提高同步速率的方法、系统和计算机程序产品。本发明的各实施例可包括专用或通用计算机,其包括各种计算机硬件或模块,如以下更详细讨论的。The present invention relates to methods, systems and computer program products for increasing synchronization rates by synchronizing only selected parts of items that have changed. Embodiments of the invention may include special purpose or general purpose computers comprising various computer hardware or modules, as discussed in more detail below.
在详细讨论此处的实施例之前,定义将在整个申请中使用的一些术语将是有用的。首先,此处使用“数据项”或“项”来表示具有可被修改或以其它方式改变的属性的完整消息。例如,数据项可以是完整的电子邮件消息、完整的联系人、完整的约会、完整的任务、完整的便笺或可在两个计算设备之间同步的任何其它类型的消息。项的“属性”表示消息中可独立于其它属性被修改或以其它方式改变的一部分。这些属性的示例包括如跟踪标志、优先级标志、项的正文、各个附件、各个收件人、消息状态、消息优先级、或用于消息的任何其它公知的属性。示例实施例规定属性可被划分成“属性组”,如将在以下更详细描述的,属性组是基于行业常识以及对每一属性组内的属性如何相关的语义的理解来预定的。Before discussing the embodiments herein in detail, it will be useful to define some terms that will be used throughout the application. First, a "data item" or "item" is used herein to mean a complete message with attributes that can be modified or otherwise changed. For example, a data item may be a complete email message, a complete contact, a complete appointment, a complete task, a complete note, or any other type of message that can be synchronized between two computing devices. An "attribute" of an item represents a portion of a message that can be modified or otherwise changed independently of other attributes. Examples of these attributes include things like tracking flags, priority flags, the body of the item, individual attachments, individual recipients, message status, message priority, or any other well-known attribute for a message. Example embodiments provide that attributes may be divided into "attribute groups," which, as will be described in more detail below, are predetermined based on common industry knowledge and an understanding of the semantics of how attributes within each attribute group are related.
此处的实施例改变了在两个设备,例如服务器和客户机之间处理和跟踪项同步的方式。对项的改变被放置到上述定义良好的属性组中,并且每一组独立于其它组来跟踪。例如,一个组可包含项的正文,另一组可包含附件,而再一组可包括如跟踪标志、已读状态、优先级标志等高度易失的属性。注意,由于属性组是基于行业常识良好定义的,因此此处的实施例权衡了典型的复制系统所需的数据处理速率与存储和/或处理要求。换言之,本发明通过仅同步已改变的项的所选部分而不监视项内的每一个别属性的改变来提高客户机和服务器之间的同步速率。因此,如果对相对较大的电子邮件消息上的小数据属性(例如,跟踪标志)作出了改变,则这一改变不会触发向在高速缓存模式下运行的客户机的较大的下载,并且也不会有对于用于跟踪每一个别属性的高存储和处理的要求。Embodiments herein change the way synchronization of items is handled and tracked between two devices, such as a server and a client. Changes to items are placed into the aforementioned well-defined property groups, and each group is tracked independently of the others. For example, one group could contain the item's text, another group could contain the attachments, and yet another group could contain highly volatile attributes such as tracking flags, read status, priority flags, and so on. Note that the embodiments herein trade off the data processing rate versus the storage and/or processing requirements required by typical replication systems since attribute groups are well defined based on industry common sense. In other words, the present invention increases the rate of synchronization between a client and server by synchronizing only selected portions of items that have changed without monitoring each individual attribute within the item for changes. Therefore, if a change is made to a small data attribute (e.g., a trace flag) on a relatively large email message, this change will not trigger a large download to a client running in cached mode, and There are also no high storage and processing requirements for tracking each individual attribute.
在描述本发明的各实施例的进一步细节之前,将参考图3来描述可用于实现本发明的原理的一个合适的计算体系结构。在以下描述中,除非另外指明,否则将参考由一个或多个计算机执行的动作和操作的符号表示来描述本发明的各实施例。由此,可以理解,有时被称为计算机执行的这类动作和操作包括计算机的处理单元对以结构化形式表示数据的电信号的操纵。这一操纵转换了数据或在计算机的存储器系统中的位置上维护它,这以本领域的技术人员都理解的方式重配置或改变了计算机的操作。维护数据的数据结构是具有数据的格式所定义的特定属性的存储器的物理位置。然而,尽管在上述上下文中描述本发明,但它并不意味着是限制性的,如本领域的技术人员所理解的,后文所描述的动作和操作的各方面也可用硬件来实现。Before describing further details of various embodiments of the invention, reference will be made to FIG. 3 to describe one suitable computing architecture that may be used to implement the principles of the invention. In the following description, unless indicated otherwise, embodiments of the invention are described with reference to acts and symbolic representations of operations that are performed by one or more computers. It will thus be appreciated that such acts and operations, which are sometimes referred to as computer-implemented, include the manipulation of electrical signals representing data in a structured form by the processing unit of a computer. This manipulation transforms the data or maintains it at a location in the computer's memory system, which reconfigures or changes the operation of the computer in a manner well understood by those skilled in the art. A data structure that maintains data is a physical location in memory that has specific properties defined by the format of the data. However, although the present invention is described in the above context, it is not meant to be limiting, as those skilled in the art understand, the acts and aspects of operations described hereinafter may also be implemented in hardware.
转向附图,其中相同的参考标号指代相同的元素,本发明的原理被示为在一合适的计算环境中实现。以下描述基于所述的本发明的实施例,并且不应认为是关于此处未明确描述的替换实施例而限制本发明。Turning to the drawings, wherein like reference numerals refer to like elements, the principles of the invention are illustrated as implemented in a suitable computing environment. The following description is based on the described embodiments of the invention and should not be considered as limiting the invention with respect to alternative embodiments not explicitly described herein.
图3示出了可用于这些设备的一个示例计算机体系结构的示意图。出于描述的目的,所绘的体系结构仅为合适环境的一个示例,并非对本发明的使用范围或功能提出任何局限。也不应将该计算系统解释为对图3所示的任一组件或其组合具有任何依赖或需求。Figure 3 shows a schematic diagram of an example computer architecture that may be used with these devices. The architecture depicted is only one example of a suitable environment for descriptive purposes and is not intended to suggest any limitation as to the scope of use or functionality of the invention. Neither should the computing system be interpreted as having any dependency or requirement relating to any one or combination of components shown in FIG. 3 .
本发明的原理可以使用其它通用或专用计算或通信环境或配置来操作。适用于本发明的众所周知的计算系统、环境和配置的示例包括但不限于,移动电话、袖珍计算机、个人计算机、服务器、多处理器系统、基于微处理器的系统、小型机、大型计算机、以及包括任一上述系统或设备的分布式计算环境。The principles of the invention are operational with other general purpose or special purpose computing or communication environments or configurations. Examples of well-known computing systems, environments, and configurations suitable for use with the present invention include, but are not limited to, mobile phones, pocket computers, personal computers, servers, multiprocessor systems, microprocessor-based systems, minicomputers, mainframe computers, and A distributed computing environment comprising any of the above systems or devices.
在其最基本的配置中,计算系统300通常包括至少一个处理单元302和存储器304。存储器304可以是易失性(如RAM)、非易失性(如ROM、闪存等)或两者的某一组合。这一最基本配置在图3中由虚线306示出。在本说明书和权利要求书中,“计算系统”被定义为能够执行软件、固件或微码来实现功能的任何硬件组件或硬件组件的组合。计算系统甚至可以是分布式的以实现分布式功能。In its most basic configuration,
存储介质设备可具有另外的特征和功能。例如,它们可包括另外的存储(可移动和不可移动),包括但不限于,PCMCIA卡、磁盘和光盘、以及磁带。这类另外的存储在图3中由可移动存储308和不可移动存储310示出。计算机存储介质包括以用于储存如计算机可读指令、数据结构、程序模块或其它数据等信息的任一方法和技术实现的易失性和非易失性、可移动和不可移动介质。存储器304、可移动存储308和不可移动存储310都是计算机存储介质的示例。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存、其它存储器技术、CD-ROM、数字多功能盘、或其它光存储、磁盒、磁带、磁盘存储、其它磁存储设备、以及可以用来储存期望的信息并可由计算系统访问的任一其它介质。The storage media device may have additional features and functions. For example, they may include additional storage (removable and non-removable) including, but not limited to, PCMCIA cards, magnetic and optical disks, and magnetic tape. Such additional storage is illustrated in FIG. 3 by
如此处所使用的,术语“模块”或“组件”可以指在计算系统上执行的软件对象或例程。此处所描述的不同组件、模块、引擎和服务可被实现为在计算系统上执行(例如,作为单独的线程)的对象或进程。尽管此处所描述的系统和方法较佳地以软件来实现,但是硬件或软件和硬件的组合的实现也是可能并被构想的。在本说明书中,“计算实体”可以是先前在此定义的任何计算系统,或在计算系统上运行的任何模块或模块的组合。As used herein, the terms "module" or "component" can refer to software objects or routines that execute on a computing system. The various components, modules, engines, and services described herein can be implemented as objects or processes that execute (eg, as separate threads) on a computing system. Although the systems and methods described herein are preferably implemented in software, implementations in hardware or a combination of software and hardware are also possible and contemplated. In this specification, a "computing entity" may be any computing system previously defined herein, or any module or combination of modules running on a computing system.
计算系统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或任何其它计算设备等无线设备。FIG. 1A illustrates a distributed
注意,本发明在其中数据链路较慢的系统中,例如无线通信中是最有优势的。然而,本发明不限于这种链路,并且可在任何环境中使用。例如,如上所述,本发明可以在要求用户基于从服务器125传输到客户机105的数据量来为服务付费的系统中使用。因此,对服务器125和客户机105之间的特定数据链路的任何具体参考在此处仅是出于说明的目的而使用的,并且不意味着限制或以其它方式缩小本发明的范围,除非是明确声明的。Note that the present invention is most advantageous in systems where the data link is slow, such as wireless communications. However, the invention is not limited to such links and can be used in any environment. For example, as described above, the present invention may be used in systems that require users to pay for services based on the amount of data transferred from
此外,还要注意,尽管将按照服务器125和客户机105来描述本发明,但是这些设备在此处描述实施例时的角色可以互换。例如,以下描述将按照对出现在服务器125上的项170的改变来描述,其中这种改变通过将改变流传送到客户机105来同步。然而,注意,也可跟踪客户机105上的改变并将其上传到服务器125。由此,以下对在服务器125和客户机105之间发生的事件的描述—以及此处用于客户机105或服务器125任一个的任何特定设备—在此仅是出于说明的目的而使用的,并且不意味着限制或以其它方式缩小本发明的范围,除非明确声明。Also, note that although the invention will be described in terms of
如图1A所示,服务器125包括多个文件夹165(例如,文件夹“A”),其中每一文件夹165可表示或包括特定类型的项170。例如,文件夹165可包含或包括电子邮件项消息,而另一文件夹165可包括联系人项信息。当然,如上所述,根据此处提供的示例实施例,可以有可被同步的各种各样的项类型。另外,可在实施本发明时使用除文件夹165之外的其它拓扑结构和数据配置。例如,表或不同地分割或储存不同类型的项170的其它方式也可用于本发明。因此,任何特定的拓扑结构、数据格式、和/或存储分层结构在此仅出于说明的目的而使用,并且不意味着限制或以其它方式缩小本发明的范围。As shown in FIG. 1A ,
如上所述,每一文件夹165将包含多个项170(例如,项“A”)。与每一项170相关联的是项改变标识符(ID)175,如以下更详细描述的,该标识符可用于标识自从服务器125与客户机105之间的最后一次同步以来项170及其属性何时已改变。每一项170中还包括属性组180(例如,属性组“A”)。如上所述,属性组180是基于行业常识和对多个属性组180中的每一个内的属性如何相关的语义的理解来预定义的。例如,属性组可基于属性的易失性、典型的存储器大小要求、和/或其它考虑事项来确定。此外,属性组180可以包括诸如消息状态、跟踪标志、优先级标志或频繁修改和/或改变的其它属性等高度易失的属性。As noted above, each
或者,或与其相结合地,属性组180可基于该属性与其它属性相比时的相对大小来定义。例如,附件的大小通常要大于其它属性,因此可驻留在一个属性组中,而诸如消息的收件人和/或正文等较小的数据大小可驻留在另一属性组180中。甚至可以有用于不与其它属性良好相关的那些属性的杂项属性组180。Alternatively, or in combination therewith,
注意,尽管属性组180是基于现有的行业常识来预定义的,但是这些知识会经历改变。因此,各实施例规定属性组180是可扩展的、可插入的并且可缩放的。即,属性组180是以使得每一属性组180中的属性可被移除、删除、添加和/或以其它方式修改的方式来配置的。类似地,属性组180本身可被重定义、创建和/或删除。另外,属性组180的定义可取决于项170的类型来改变。例如,对电子邮件项170定义的属性组180可以与对联系人项170定义的属性组180不同。由此,如以下将更详细描述的,客户机105将需要知道要用于各个文件夹165内的每一项170的适当映射190。Note that although attribute set 180 is predefined based on existing industry knowledge, such knowledge is subject to change. Accordingly, embodiments provide that the attribute set 180 is extensible, pluggable, and scalable. That is,
不管属性组180是如何定义的,每一属性组180通常将被分配一属性组改变ID 185,它可用于标识何时对该特定属性组180发生了改变。例如,项/属性组模块150可监视对项170发生的改变,以及对于该项170内的每一属性组180的改变。当改变发生时,改变ID生成器160可改变项改变ID175和适当的属性组改变ID185。Regardless of how
在某些实施例中,项改变ID 175和属性改变ID 185可以是相同的标识符,指示例如项和属性组被同时更新。然而,注意,在例如使用全局唯一标识符(GUID)的情况下不必如此。还应当注意,改变ID 175、185可以是任何公知的字母数字或其它标识数据对象。例如,改变ID 175、185可以分别是项170和/或属性组185的散列。当然,如上所述,改变标识符175、185可以基于简单的GUID计数来生成。还要注意,用于标识对项170和属性组180的改变的其它机制也可用于本发明。因此,此处描述的用于标识改变的任何特定类型的改变标识符175、185和/或其使用仅是出于说明的目的,并且不意味着限制或以其它方式缩小本发明的范围,除非明确声明。In some embodiments,
不论标识175、185的类型如何,也不论如何标识对属性组的改变,当服务器125内的项/属性模块150标识一个或多个项170的改变时,可将这一项改变的通知120发送给客户机105以试图提示客户机105与服务器125同步。当然,用于提示客户机105与服务器125同步的其它机制也可用于本发明。例如,客户机105可周期性地,即在特定的预定间隔查询服务器125以与其同步。因此,客户机105和服务器125之间的同步过程的任何特定启动此处仅是出于说明的目的而使用的,并且不意味着限制或以其它方式缩小本发明的范围。Regardless of the type of
尽管如此,在启动同步过程之后,服务器125应从客户机105接收同步请求130。示例性实施例规定同步请求130可包括可用于确定自从客户机105与服务器125之间的最后一次同步以来是否已发生了改变的一个或多个项令牌125(例如,项令牌“A”)。在详细讨论项令牌135之前,注意,项令牌135无需被包括在同步请求130内。例如,其它握手机制可另外提示客户机105向服务器125发送项令牌135。或者,项令牌135可能已经被储存在服务器125上。因此,将项令牌135包括在同步请求130内此处仅是出于说明的目的而使用的,并且不意味着限制或以其它方式缩小本发明的范围,除非明确声明。Nevertheless, after initiating the synchronization process, the
与每一项令牌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。Associated with each
例如,每一项令牌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的具体使用仅是出于说明的目的,并且不意味着限制或以其它方式缩小本发明的范围,除非明确声明。For example, each
不论如何标识已改变的属性组104,这一已改变的属性组104可被包括在同步项流102内,该流可根据以下描述的示例实施例被发送给客户机105。此外,如上所述,由特定的版本化ID 195标识的映射190也可在同步项流102之前、期间或之后被发送。如将在以下更详细讨论的,同步项流102内的属性组104应标识用于这一属性组104的版本195的特定映射190。Regardless of how a changed property set 104 is identified, this changed property set 104 may be included in a
图1B示出了用于特定版本标识符195的映射190的示例框图。如图所示,映射190包括多个项106和对于每一项106的属性组108、114。当然,可以有可在任何特定项106内标识的任何数目的属性组108、114。此外,对于每一特定属性组108、114,还映射属性112、116。例如,属性组“A”108可包括属性112“C”和“E”,而属性组“B”114可包括属性“A”106。FIG. 1B shows an example block diagram of a
考虑其中映射190标识具有针对相对较小的、易失性数据属性的属性组“A”108的电子邮件项106,而用于属性组“B”114的映射包括较大属性的示例。如此,属性组“A”108内的属性“C”112和属性“E”112可以分别是跟踪标志和优先级标志。另一方面,对属性组“B”114的属性“A”116可以是附件文件。当然,提供映射190的其它公知的方式也可用于本发明。因此,在图1B内提供的映射配置此处仅出于说明的目的而使用,并且不意味着限制或以其它方式缩小本发明的范围,除非明确声明。Consider an example where
注意,当前和先前的属性组映射190可以被持久保存在服务器数据库上,并且可通过版本ID 195来访问。如果遇到具有未知的版本标识符195的项170,或者该项没有组标识符,则应当如同该项没有任何属性分组180并且应当作为整体对待一样来对待该项。因此,如果诸如此类的项170需要被下载到客户机105,则流传送102整个项170。Note that current and previous attribute group maps 190 can be persisted on the server database and can be accessed via
一个实施例提供了通过以下称为快速传输的流传送机制的同步。这一过程允许服务器125通过分解所改变的属性组104并将其串行化成一原始二进制比特流来对同步请求130作出响应。服务器125将它能够打包的尽可能多的消息102打包到一固定大小的响应缓冲区中,并将数据102返回给客户机105。客户机105然后解析该数据,并通过解串行化字节流102来重构属性组104。字节流102的一个示例格式在以下参考图1C示出,该图示出了同步项流102的一个示例,即同步项流102可能看上去像什么的有线传输(或无线传输)数据表示。One embodiment provides synchronization through a streaming mechanism hereinafter referred to as fast transfer. This process allows the
同步项流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之后或在其之前。The first part of the
接下来的一组标签126,即IncrSynPropGroup ID(增量同步属性组ID)表示流中接下来的一个或多个项使用什么属性组映射。即,该组126内的版本ID标识了用于接下来的项的版本标识195的映射190。接着,IncrSynChgItem(增量同步已改变项)128是表示改变的项的开头的标记,之后是要在该项内改变的属性组的数组。例如,如IncrSynChgPropGroup(增量同步已改变属性组)132中的标记所示,可标识已改变的各个属性组。例如,如在流134中所示,IncrSnyChgPropGroup通过首先使DelProp(删除属性)元素删除当前的ItemRecipients(项收件人),然后使用StartRecip(开始收件人)和EndRecip(结束收件人)标记来替换收件人属性,来改变收件人属性。作为另一示例,流136中的元素包括用于项附件的IncrSyncChgPropGroup,使得当前的ItemAttachments(项附件)将使用DelProp来删除,并使用NewAttach(新附件)和EndAttach(结束附件)标记来替换。当然,如由之后提供的省略号所指示的,可在流内包括其它属性组。The next set of tags 126, the IncrSynPropGroup ID (incremental synchronization property group ID), indicates what property group mapping is used for the next one or more items in the stream. That is, the version ID within the group 126 identifies the
其它示例性实施例能够将同步项的现有方法与此处提供的当前实施例相结合。例如,在不提供任何映射的传统系统中,可能在同步项流102内下载整个项。例如,如元素138中所示,IncrSyncProgressPerItem指示下一项的总大小,而IncrSyncChgItem标记了改变项的开始。接下来的标记,即用于IncrSyncDel(增量同步删除)、IncrSyncRead(增量同步已读)以及IncrSyncEnd(增量同步结束)的标记142分别表示:(1)要从客户机105删除的项的列表;(2)如下的已读状态转换;以及(3)表示同步会话结束的标记。最后,IncrSyncStateBegin(增量同步状态开始)表示字节流中接下来的最终同步状态,而IncrySyncStateEnd(增量同步状态结束)是表示同步状态完成的标记。Other exemplary embodiments can combine existing methods of synchronizing items with the current embodiments provided herein. For example, in conventional systems that do not provide any mapping, entire items may be downloaded within the
本发明也可按照包括功能步骤和/或非功能动作的方法来描述。以下是可在实施本发明时执行的动作和步骤的描述。通常,功能步骤按照所实现的结果来描述本发明,而非功能动作描述了用于实现特定结果的更具体的行动。尽管可以按特定的顺序描述或要求保护功能步骤或非功能动作,然而本发明不限于任何特定的顺序或动作和/或步骤的组合。此外,对步骤和/或动作的使用是权利要求书的叙述,并且在以下图2A和2B的流程图的描述中用于指示对这些术语的期望的具体使用。The invention may also be described in terms of methods including functional steps and/or non-functional acts. The following is a description of acts and steps that may be performed in implementing the invention. Generally, functional steps describe the invention in terms of results being achieved, whereas non-functional acts describe more specific actions for achieving a particular result. Although functional steps or non-functional actions may be described or claimed in a particular order, the invention is not limited to any particular order or combination of actions and/or steps. Furthermore, the use of steps and/or actions is the recitation of the claims and is used in the following description of the flowcharts of FIGS. 2A and 2B to indicate the specific use of these terms intended.
图2A和2B示出了用于本发明的各示例性实施例的流程图。以下图2A和2B的描述将偶尔会涉及图1A-C中的对应元素。尽管可对这些图中的具体元素作出参考,但是这些元素仅出于说明的目的而使用,并且不旨在限制或以其它方式缩小本发明的范围,除非明确声明。2A and 2B show flowcharts for various exemplary embodiments of the present invention. The following description of FIGS. 2A and 2B will occasionally refer to corresponding elements in FIGS. 1A-C . Although reference may be made to specific elements in these figures, these elements are used for purposes of illustration only and are not intended to limit or otherwise narrow the scope of the invention unless expressly stated otherwise.
图2A示出了通过仅同步已改变的项的所选部分来提高客户机和服务器之间的同步速率,而不监视项内的每一个别属性的改变的方法200的流程图。方法200包括接收205同步数据项的请求的动作。例如,服务器125可接收同步自从服务器125和客户机105之间的最后一次同步以来已改变的数据项170的请求130,其中数据项170表示具有可被修改或以其它方式改变的各种属性的完整消息。例如,数据项170可以是电子邮件消息、联系人、约会、日历信息、任务、便笺等等。属性可包括收件人、地址、正文、附件、标志、状态标识符、或任何其它多种用于消息的属性。还要注意,服务器125和客户机105之间用于同步数据项170的数据链路可以是无线连接或有线连接,其中客户机105上的顾客基于从服务器125下载的字节数来为同步数据项170付费。FIG. 2A shows a flowchart of a
方法200还可包括用于减少225客户机和服务器之间的数据传输时间的步骤。更具体而言,用于225的步骤包括确定210一数据项自从最后一次同步以来已改变的动作。例如,服务器125可确定(使用改变ID比较器155或此处描述的其它方法)数据项170自从客户机105和服务器125之间的最后一次同步以来已改变。如上所述,数据项170包括基于行业常识和对每一属性组内的一个或多个属性如何相关的语义的理解来预定义的属性组170。例如,在电子邮件消息中,各属性组可包括正文属性、收件人属性组、主题属性组、附件属性组、优先级标志属性组、已读状态属性组、杂项属性组、和/或其任何组合。当然,可定义其它属性组,并且其它属性组是可扩展的、可插入的和可缩放的,使得属性组内的属性可被添加、删除或以其它方式在其中重新定义,并使得每一属性组可被添加、删除或基于行业常识的改变而以其它方式重新定义。The
用于225的步骤还可包括确定215数据项内的哪一属性组自从最后一次同步以来已改变。例如,项/属性组模块155和改变ID比较器155可用于确定哪些属性组180自从最后一次同步以来已改变。因此,用于225的步骤包括在不流传送整个数据项的情况下同步220已改变的一个或多个组的动作。具体地,同步项流102可与自从最后一次同步以来已改变的各属性组104一起被流传送到客户机105,而无需流传送整个数据项170,以便减少在同步时客户机和服务器之间的数据传输时间。The step for 225 may also include determining 215 which attribute group within the data item has changed since the last synchronization. For example, item/
对数据项170以及属性组180中的改变的确定可以基于用于数据项和属性组的改变标识符140、145、175、185。此外,用于数据项170和属性组180的改变标识符141、145、175、185可以相同。此外,用于数据项170和属性组180的改变标识符140、145、175、185可以是字母数字、全局唯一标识符或散列值。The determination of changes in
其它实施例提供了数据项170和其中的属性组180的映射190。映射可在发送已改变的属性组104的同步项流之前、期间或之后发送。在任何情况下,客户机105可使用映射190来了解每一属性组180中包括了什么属性。此外,第二数据项170可被确定为已改变,但是没有属性组180。在这一情况下,可将整个第二数据170流传送到客户机105。Other embodiments provide a
图2B示出了跟踪对项的所选部分的改变以提高客户机和服务器之间的同步速率,而不监视项内的每一个别属性的改变的方法250的流程图。方法250包括为同步的目的监视255多个数据项的动作。例如,项/属性组模块150或其它组件可监视数据项170,其中数据项170表示具有可被修改或以其它方式改变的多个属性的完整消息。这些属性包括但不限于先前在此描述的那些属性,如附件、标志、正文部分等等。2B shows a flowchart of a
方法250还包括确定260一数据项自从客户机和服务器之间的最后一次同步以来已改变的动作。例如,改变标识符比较器155可用于确定数据项170自从服务器125和客户机105之间的最后一次同步以来已改变。如上所述,数据项包括基于行业常识和对每一属性组内的属性如何相关的语义的了解来预定义的多个属性组180。基于数据项已改变的判定,方法250还包括更新265项改变标识符的动作。例如,改变标识符生成器160可用于更新与数据项170相关联的项改变ID 175,该ID将用于标识项170已改变以便与客户机105同步。The
类似地,方法250包括确定270数据项内的哪一属性组已改变的动作。即,项/属性组模块150内的改变标识符比较器155可用于确定哪些属性组180自从客户机105和服务器125之间的最后一次同步以来已改变。基于一属性组已改变的判定,方法250包括更新275属性组改变标识符的动作。例如,改变标识符生成器160可用于更新用于属性组180的改变ID 185,该ID将用于标识属性组180已改变,使得仅属性组180将与客户机105同步,以便减少客户机105和服务器125之间的数据传输时间。还要注意,以上描述的其它替换实施例也可用于方法250。Similarly,
本发明可以用其它具体形式来实施而不偏离其精神或本质特征。所描述的实施例在所有方面都被认为仅是说明性而非限制性的。因此,本发明的范围由所附权利要求书而非以上描述来指示。落入权利要求书的等效技术方案的意义和范围之内的所有改变都被包含在其范围之内。The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects as illustrative only and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by the foregoing description. All changes falling within the meaning and range of equivalent technical solutions of the claims are embraced within the scope thereof.
Claims (20)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/204,067 US7962585B2 (en) | 2005-08-15 | 2005-08-15 | Partial item change tracking and synchronization |
US11/204,067 | 2005-08-15 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200680029649XA Division CN101385017B (en) | 2005-08-15 | 2006-07-20 | Partial item change tracking and synchronization |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102207957A true CN102207957A (en) | 2011-10-05 |
CN102207957B CN102207957B (en) | 2014-06-04 |
Family
ID=37758031
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110100085.7A Active CN102207957B (en) | 2005-08-15 | 2006-07-20 | Partial item change tracking and synchronization |
CN200680029649XA Active CN101385017B (en) | 2005-08-15 | 2006-07-20 | Partial item change tracking and synchronization |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200680029649XA Active CN101385017B (en) | 2005-08-15 | 2006-07-20 | Partial item change tracking and synchronization |
Country Status (16)
Country | Link |
---|---|
US (2) | US7962585B2 (en) |
EP (2) | EP1915670B1 (en) |
JP (2) | JP4959703B2 (en) |
KR (1) | KR101312810B1 (en) |
CN (2) | CN102207957B (en) |
AU (1) | AU2006280352B2 (en) |
BR (1) | BRPI0614287A8 (en) |
CA (1) | CA2616103C (en) |
EG (1) | EG25523A (en) |
IL (1) | IL188781A (en) |
MX (1) | MX2008002169A (en) |
MY (2) | MY188203A (en) |
NZ (1) | NZ565592A (en) |
RU (1) | RU2421780C2 (en) |
TW (1) | TWI454934B (en) |
WO (1) | WO2007021454A2 (en) |
Families Citing this family (32)
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 (en) * | 2007-10-25 | 2011-11-30 | 中兴通讯股份有限公司 | Dual-home synchronous data transmission method |
CN101447886B (en) * | 2007-11-26 | 2011-07-27 | 华为技术有限公司 | Method for comparing mass data and device thereof |
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 (en) * | 2008-11-06 | 2013-07-01 | Acer Inc | Remote computer synchronous transmission technology |
US8463246B2 (en) * | 2009-05-26 | 2013-06-11 | Sony Corporation | Contact management |
US8346976B2 (en) * | 2009-11-25 | 2013-01-01 | T-Mobile Usa, Inc. | Secured registration of a home network device |
CN101719904B (en) * | 2009-11-26 | 2012-07-04 | 华平信息技术股份有限公司 | Method for reducing business communication volumes of server and client during Internet application |
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 (en) * | 2010-04-30 | 2011-09-14 | 华为终端有限公司 | Management method and terminal of data in subscriber identity module (SIM) card |
US8392369B2 (en) | 2010-09-10 | 2013-03-05 | Microsoft Corporation | File-backed in-memory structured storage for service synchronization |
CN101989989A (en) * | 2010-11-17 | 2011-03-23 | 中兴通讯股份有限公司 | Method and system for synchronizing data of enterprise address book and personal address book |
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 |
US20140331148A1 (en) * | 2012-10-12 | 2014-11-06 | Unify Gmbh & Co. Kg | Method and apparatus for displaying e-mail messages |
KR102058635B1 (en) * | 2012-12-24 | 2019-12-24 | 삼성전자주식회사 | Method for controlling file name and an electronic device thereof |
CN104951238A (en) * | 2014-03-24 | 2015-09-30 | 国际商业机器公司 | Method and device for managing data storage in distributed virtual environment |
US10721298B1 (en) | 2015-06-18 | 2020-07-21 | EMC IP Holding Company LLC | Learning client preferences to optimize event-based synchronization |
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 |
US10235331B1 (en) | 2015-06-18 | 2019-03-19 | EMC IP Holding Company LLC | Event-based synchronization in a file sharing environment |
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 |
US11080265B2 (en) | 2019-04-24 | 2021-08-03 | Microsoft Technology Licensing, Llc | Dynamic hash function composition 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 |
CN114691782B (en) * | 2022-04-12 | 2024-07-05 | 平安国际智慧城市科技股份有限公司 | Database table increment synchronization method, device and storage medium |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1426190A (en) * | 2001-12-13 | 2003-06-25 | 互慧科技股份有限公司 | Data Synchronization System and Method |
Family Cites Families (34)
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 |
US20040109025A1 (en) * | 2002-08-28 | 2004-06-10 | Jean-Marie Hullot | Computer program comprising a plurality of calendars |
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 (en) * | 2003-08-01 | 2005-05-25 | 니트젠테크놀러지스 주식회사 | A contents synchronization system in network environment and a method therefor |
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 (en) * | 2003-12-19 | 2009-01-21 | 矢崎総業株式会社 | Manufacturing method of wire harness branch |
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 |
-
2005
- 2005-08-15 US US11/204,067 patent/US7962585B2/en active Active
-
2006
- 2006-07-19 MY MYPI2012001665A patent/MY188203A/en unknown
- 2006-07-19 MY MYPI20063433A patent/MY147049A/en unknown
- 2006-07-20 CA CA2616103A patent/CA2616103C/en active Active
- 2006-07-20 BR BRPI0614287A patent/BRPI0614287A8/en not_active Application Discontinuation
- 2006-07-20 EP EP06788184.7A patent/EP1915670B1/en active Active
- 2006-07-20 EP EP11004886A patent/EP2400405A1/en not_active Ceased
- 2006-07-20 CN CN201110100085.7A patent/CN102207957B/en active Active
- 2006-07-20 NZ NZ565592A patent/NZ565592A/en unknown
- 2006-07-20 JP JP2008526948A patent/JP4959703B2/en active Active
- 2006-07-20 TW TW095126585A patent/TWI454934B/en not_active IP Right Cessation
- 2006-07-20 RU RU2008105763/08A patent/RU2421780C2/en active
- 2006-07-20 AU AU2006280352A patent/AU2006280352B2/en active Active
- 2006-07-20 WO PCT/US2006/028480 patent/WO2007021454A2/en active Application Filing
- 2006-07-20 KR KR1020087002131A patent/KR101312810B1/en not_active Expired - Fee Related
- 2006-07-20 CN CN200680029649XA patent/CN101385017B/en active Active
- 2006-07-20 MX MX2008002169A patent/MX2008002169A/en active IP Right Grant
-
2008
- 2008-01-15 IL IL188781A patent/IL188781A/en active IP Right Grant
- 2008-02-17 EG EG2008020285A patent/EG25523A/en active
-
2011
- 2011-05-13 US US13/107,383 patent/US9524329B2/en not_active Expired - Lifetime
-
2012
- 2012-02-20 JP JP2012034223A patent/JP5356561B2/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1426190A (en) * | 2001-12-13 | 2003-06-25 | 互慧科技股份有限公司 | Data Synchronization System and Method |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101385017B (en) | Partial item change tracking and synchronization | |
US9298794B2 (en) | System and method for offline synchronization of exception items of shared services for client applications | |
CN101061475B (en) | Maintenance of time-date information for low-fidelity devices used for synchronization | |
EP1497725A2 (en) | Method of updating a display screen on a battery powered mobile computing device | |
US7284021B2 (en) | Determining when a low fidelity property value has changed during a SYNC | |
US20130159389A1 (en) | Utilizing Dynamic Heuristic Transitions between Local and Remote Data for Displaying Electronic Communications | |
US20180074867A1 (en) | Provide copy of notebook document | |
AU2011202919B2 (en) | Partial item change tracking and synchronization | |
HK1162711B (en) | Partial item change tracking and synchronization | |
HK1165590A (en) | Partial item change tracking and synchronization | |
CA2507424C (en) | Maintaining time-date information for syncing low fidelity devices | |
KR101201075B1 (en) | Maintaining time-date information for syncing low fidelity devices | |
WO2017100009A1 (en) | Organize communications on timeline | |
GB2387687A (en) | Method of replicating data between computing devices which use local clocks |
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. |