IP Library Granted Patent US 7,933,296
Granted Patent B2
US 7,933,296 · App. 11/681,321 · Granted Apr 26, 2011

Services for data sharing and synchronization

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,933,296
App. No.
11/681,321
Granted
Apr 26, 2011
Kind
B2
Abstract

Systems and methods for sharing and synchronizing data using the addition of synchronization data to a feed that contains data items, and at least a node or endpoint that provides synchronization-related services to other endpoints, are disclosed. Such systems and methods, and client and service endpoints, may use the added synchronization data in multiple ways to share data, incorporate changes consistently, and resolve conflicts.

Claims (54)

1. A method, comprising:

receiving a first feed on a first endpoint associated with a first processor from a second endpoint associated with a second processor, wherein the first feed comprises a received item that includes a received item sync data element and a received item data element, the received item data element reflecting a change applied remotely to the received item data element;

merging the change to the received item data element communicated by the first feed with a local item in a data store associated with the first endpoint, wherein the merging comprises:

determining that the received item is associated with the local item, wherein the local item includes a local item sync element and a local item data element, the local item data element reflecting a change applied locally to the local item data element by the first endpoint;

identifying a conflict associated with the change applied remotely to the received item data element and the change applied locally to the local item data element; and

comparing at least one element attribute of the received item sync data element with at least one other element attribute of the local item sync element to determine a winning item and a losing item from the received item and the local item;

generating a first update to the first feed from the items in the data store, wherein the first update to the first feed includes a conflict collection including conflict data describing the conflict;

receiving a second update to the first feed indicating that the conflict is resolved by a user;

generating a third update to the first feed by moving the conflict data from the conflict collection to a resolved conflict collection; and

communicating the third update to the first feed, including the conflict data in the resolved conflict collection, to the second end point or another remote endpoint.

2. The method of claim 1 , further comprising:

creating a new local item by incorporating new item data for a newly received item into the data store when the newly received item is not associated with the local item.

3. The method of claim 1 , further comprising:

generating a second updated feed that is accessible to a third endpoint that is different from the second endpoint, wherein the second updated feed is not accessible to the second endpoint and the second updated feed comprises at least a set of items from the data store that is different from a set of items comprised by the first feed.

4. The method of claim 1 ,

wherein the at least one element attribute comprises a received version attribute of the received item and the at least one other element attribute comprises a local version attribute of the local item, and wherein a larger version value of the received version attribute or the local version attribute is associated with the winning item.

5. The method of claim 1 wherein the first update to the first feed further comprises changes to items in the data store that were previously made by the first endpoint on behalf of a third endpoint that is not the same as the second endpoint.

6. The method of claim 1 wherein the first feed is received using an HTTP POST request that is initiated by the second endpoint.

7. The method of claim 1 , further comprising:

communicating the first update to the first feed to the second endpoint by responding to an HTTP GET request initiated by the second endpoint.

8. The method of claim 1 , further comprising:

performing a feed management operation.

9. The method of claim 8 wherein the feed management operation is one of: creating a second feed, deleting the second feed, and retrieving a list of feeds accessible from the first endpoint.

10. A method, comprising:

generating a feed on a client endpoint associated with a first processor, wherein the feed comprises a sync data element associated with a local item and an item data element associated with the local item;

communicating the feed to a service endpoint associated with a second processor; and

receiving a first updated feed from the service endpoint wherein the first updated feed comprises a conflict collection including a losing change data element, the losing change data element including information about a losing item;

performing, conflict resolution based on a user determination that the losing item correctly lost to a winning item that was in conflict with the losing item; and

generating a second updated feed based on the first updated feed by removing the losing change data element from the first updated feed, and including, in the second updated feed, a resolved conflict collection reflecting the conflict resolution.

11. The method of claim 10 , further comprising:

making a change to data associated with the local item.

12. The method of claim 10 , further comprising:

updating the local item using the first updated feed.

13. The method of claim 10 wherein the communicating operation further comprises an HTTP POST request initiated by the client endpoint that includes the feed.

14. The method of claim 10 wherein the receiving operation further comprises an HTTP GET request initiated by the client endpoint and wherein the service endpoint responds to the HTTP GET request with a response that includes the first updated feed.

15. The method of claim 11 , further comprising:

modifying item data associated with the item data element so that the item data incorporates a change to the item data;

incrementing a version value associated with the sync data element;

creating a new update element associated with the sync data element and further associated with at least one of: a previous most recent modification time and a previous most recent modifying entry; and

updating at least one of: a most recent modification time history attribute associated with the sync data element and a most recent modifying entity history attribute associated with the sync data element.

16. The method of claim 10 , further comprising:

initiating a feed management operation.

17. The method of claim 16 wherein the feed management operation is one of: creating the second updated feed, deleting the second updated feed, and listing a set of feeds accessible using the service endpoint.

18. The method of claim 10 , further comprising:

providing access credentials to the service endpoint, wherein the service endpoint only enables at least one of the following operations when the access credentials are known by the service endpoint and are associated with the enabled operation: the communicating operation and the receiving operation.

19. A first endpoint comprising a processor, the first endpoint being configured to:

generate a feed comprising a sync data element associated with a local item and an item data element associated with the local item;

communicate the feed to a second endpoint associated with a second processor;

receive a first updated feed from the second endpoint, wherein the first updated feed comprises a conflict collection including a losing change data element, the losing change data element including information about a losing item;

perform conflict resolution based on a user determination that the losing item correctly lost to a winning item that was in conflict with the losing item; and

generate a second updated feed based on the first updated feed by removing the losing change data element from the first updated feed, and including, in the second updated feed, a resolved conflict collection reflecting the conflict resolution.

20. The first endpoint according to claim 19 , wherein:

the conflict collection comprises a date and time when the losing change data element was applied to the losing item; and

generating the second updated feed further comprises including, in the resolved conflict collection, the date and time when the losing change data element was applied to the losing item.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034542/0001 →