Synchronization associated duplicate data resolution
AssigneeMicrosoft Corporation
InventorsRaymond E. Ozzie, Jack E. Ozzie, Paresh S. Suthar, Raman Narayanan
Life of this patent
Estimating the term…
Abstract
Systems, methods, and data structures associated with the detection and resolution of duplicate data that might result when using multiple synchronization protocols are described. These techniques may use different types of identification data associated with data that is synchronized, as well as a defined set of operations that may be performed by one or more endpoints to identify and remove duplicated data.
Claims20
A method performed by a local endpoint having a local instance of a Personal Information Management (PIM) application, the method comprising:
- receiving, from a first remote endpoint, a first new item instruction for a first item during a feed synchronization session using a feed synchronization protocol comprising rules for communicating data, wherein:
- the first new item instruction comprises first item information and a feed ID that is assigned to the first item information by the feed synchronization protocol, and
- the first new item instruction is received from the first remote endpoint by subscribing to a feed that uses the feed synchronization protocol;
- responsive to receiving the first new item instruction, creating a local instance of the first item on the local endpoint, wherein the local instance of the first item is created on the local endpoint and assigned a first application ID by the local instance of the PIM application, wherein the first application ID is different than the feed ID and the local instance of the first item includes the first item information;
- synchronizing with a second remote endpoint by receiving a second new item instruction from a second instance of the PIM application on the second remote endpoint, the second new item instruction identifying a second item and being received during a PIM application synchronization session using a PIM application synchronization protocol, wherein:
- the second item identified by the second new item instruction received from the second remote endpoint is also assigned the feed ID assigned by the feed synchronization protocol,
- the second item is received with a second application ID assigned by the second instance of the PIM application on the second remote endpoint, the second application ID being different than the first application ID and the feed ID, and
- the PIM application synchronization protocol is particular to the PIM application, comprises different rules than the feed synchronization protocol, and is not used for the feed to which the local endpoint is subscribed;
- determining that the local instance of the first item having the first application ID and the second item received with the second application ID are duplicates based on both the first item and the second item being assigned the feed ID;
- determining that the second application ID is greater than the first application ID;
- and
- responsive to determining that the second application ID is greater than the first application ID, storing the second item on the local endpoint and deleting the local instance of the first item from the local endpoint,
- wherein the local endpoint is a computing device other than the first remote endpoint and the second remote endpoint.
One or more hardware computer-readable memory devices or hardware storage devices containing computer-executable instructions that, when executed, implement the following operations on a local endpoint having a local instance of a Personal Information Management (PIM) application:
- subscribing to a feed provided by a first remote endpoint to at least the local endpoint and a second remote endpoint, the feed using a feed synchronization protocol to communicate between the first remote endpoint and the local endpoint and between the first remote endpoint and the second remote endpoint;
- receiving, a first new item instruction for a first item during a feed synchronization session with the first remote endpoint, the feed synchronization session using the feed synchronization protocol wherein the first new item instruction comprises first item information and a feed ID that is assigned by the first remote endpoint to the first item to implement the feed synchronization protocol;
- responsive to receiving the first new item instruction, causing the local instance of the PIM application to create a local instance of the first item, wherein the local instance of the first item is assigned a first application ID and includes the first item information;
- synchronizing with the second remote endpoint by receiving, from a second instance of the PIM application on the second remote endpoint, a second new item instruction identifying a second item during a PIM application synchronization session using a PIM application synchronization protocol that is associated with the PIM application and uses different rules for communicating data than the feed synchronization protocol, wherein the second item is received with a second application ID assigned by the second instance of the PIM application and the second item is also assigned the feed ID;
- determining that the local instance of the first item and the second item are duplicates based on both the first item and the second item being assigned the feed ID;
- determining that the second application ID is greater than the first application ID;
- and
- responsive to determining that the second application ID is greater than the first application ID, storing the second item on the local endpoint and deleting the local instance of the first item from the local endpoint.
A local endpoint having a local instance of a Personal Information Management (PIM) application, the local endpoint comprising:
- a memory storing instructions configured to:
- subscribe to a feed provided by a first remote endpoint to at least the local endpoint and a second remote endpoint having a second instance of the PIM application, the feed using a feed synchronization protocol and the PIM application using a separate PIM application synchronization protocol;
- receive, from the first remote endpoint, a first new item instruction for a first item during a feed synchronization session of the feed, wherein the first new item instruction comprises first item information and a feed ID that is assigned by the first remote endpoint to the first item information to implement the feed synchronization protocol;
- responsive to the first new item instruction, cause the local instance of the PIM application to create a local instance of the first item and assign a first application ID to the local instance of the first item, wherein the local instance of the first item is associated with the feed ID and includes the first item information;
- synchronize the local instance of the PIM application with the second instance of the PIM application using the PIM application synchronization protocol by receiving,
- from the second instance of the PIM application, a second new item instruction identifying a second item, wherein the second item is received with both a second application ID assigned by the second instance of the PIM application and the feed ID assigned by the first remote endpoint;
- determine that the local instance of the first item and the second item are duplicates based on both the first item and the second item being assigned the feed ID;
- make a determination that the second application ID is greater than the first application ID;
- and
- responsive to the determination that the second application ID is greater than the first application ID, store the second item on the local endpoint and delete the local instance of the first item from the local endpoint;
- and
- a hardware processor configured to execute the instructions.
A system comprising:
- a local endpoint having a local instance of a Personal Information Management (PIM) application;
- a first remote endpoint;
- and
- a second remote endpoint;
- wherein the local endpoint comprises:
- a memory storing instructions configured to:
- subscribe to a feed provided by the first remote endpoint to at least the local endpoint and the second remote endpoint, the feed using a feed synchronization protocol and the PIM application using a separate PIM application synchronization protocol, wherein the second remote endpoint has a second instance of the PIM application that also uses the PIM application protocol;
- receive, from the first remote endpoint, a first new item instruction for a first item during a feed synchronization session of the feed, wherein the first new item instruction comprises first item information and a feed ID that is assigned by the first remote endpoint to the first item information to implement the feed synchronization protocol;
- responsive to the first new item instruction, cause the local instance of the PIM application to create a local instance of the first item and assign a first application ID to the local instance of the first item, wherein the local instance of the first item is associated with the feed ID and includes the first item information;
- synchronize the local instance of the PIM application with the second instance of the PIM application using the PIM application synchronization protocol by receiving, from the second instance of the PIM application, a second new item instruction identifying a second item, wherein the second item is received with both a second application ID assigned by the second instance of the PIM application and the feed ID assigned by the first remote endpoint;
- determine that the local instance of the first item and the second item are duplicates based on both the first item and the second item being assigned the feed ID;
- make a determination that the second application ID is greater than the first application ID;
- and
- responsive to the determination that the second application ID is greater than the first application ID, store the second item on the local endpoint and delete the local instance of the first item from the local endpoint;
- and
- a hardware processor configured to execute the instructions.
Dependencies are inferred from the claim text.