IP Library Granted Patent US 8,370,423
Granted Patent B2
US 8,370,423 · App. 11/532,390 · Granted Feb 5, 2013

Data synchronization and sharing relationships

Inventors: Raymond E. Ozzie (Seattle, WA); Jack E. Ozzie (North Bend, WA); George P. Moromisato (Seattle, WA); Paresh S. Suthar (Redmond, WA); Raman Narayanan (Kirkland, WA); Matthew S. Augustine (Seattle, WA)
Assignee: Microsoft Corporation
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 8,370,423
App. No.
11/532,390
Granted
Feb 5, 2013
Kind
B2
Abstract

Systems and methods for synchronizing and sharing data associated with sharing relationships are disclosed. Such systems and methods may be implemented by interfacing with an application that manages or accesses the data to be shared, and by making shared data available using a feed along with some mechanism for tracking changes or enabling synchronization between different endpoints.

Claims (57)

1. A method for establishing a two-way sharing relationship using feeds, comprising:

providing, from a publishing endpoint, relationship metadata to a subscribing endpoint, the relationship metadata comprising:

an identifier of a publisher local item stored on the publishing endpoint that is available for a two-way sharing relationship; and

a two-way relationship identifier indicating that synchronization is to be performed between the publisher local item on the publishing endpoint and a subscriber local item on the subscribing endpoint, the subscriber local item to be created by the subscribing endpoint based upon an establishment of the two-way sharing relationship;

establishing the two-way sharing relationship comprising a first feed published by the publishing endpoint and subscribed to by the subscribing endpoint and a second feed published by the subscribing endpoint and subscribed to by the publishing endpoint, comprising:

creating the first feed based upon receiving a subscription request from the subscribing endpoint, the creating comprising sending publisher data associated with the publisher local item and an instruction for the subscribing endpoint to create the subscriber local item on the subscribing endpoint; and

subscribing, by the publishing endpoint, to the second feed published by the subscribing endpoint; and

synchronizing the publisher local item on the publishing endpoint with the subscriber local item on the subscribing endpoint via at least one of the first feed or the second feed, the synchronizing comprising updating the publisher local item using a first synchronization update received via the second feed.

2. The method of claim 1 , the synchronizing comprising:

detecting a change to the publisher local item at the publishing endpoint; and

sending a second synchronization update to the subscribing endpoint via the first feed.

3. The method of claim 1 , the synchronizing comprising:

receiving the first synchronization update, at the publishing endpoint, via the second feed, the first synchronization update corresponding to a detected change to the subscriber local item by the subscribing endpoint.

4. The method of claim 3 , the synchronizing comprising:

updating the publisher local item to reflect the changed subscriber local item.

5. The method of claim 1 , the first feed configured to provide publisher data from the publishing endpoint to the subscribing endpoint, and the second feed configured to provide subscriber data from the subscribing endpoint to the publishing endpoint.

6. The method of claim 1 , the establishing the two-way sharing relationship comprising:

accepting, at the publishing endpoint, the subscription request from the subscribing endpoint to create the first feed, the subscription request received in response to the subscribing endpoint accessing the relationship metadata.

7. A system for establishing a two-way sharing relationship using feeds, comprising:

a sharing module configured to:

provide, from a publishing endpoint, relationship metadata to a subscribing endpoint, the relationship metadata comprising:

an identifier of a publisher local item stored on the publishing endpoint that is available for a two-way sharing relationship; and

a two-way relationship identifier indicating that synchronization is to be performed between the publisher local item on the publishing endpoint and a subscriber local item on the subscribing endpoint, the subscriber local item to be created by the subscribing endpoint based upon an establishment of the two-way sharing relationship;

establish the two-way sharing relationship comprising a first feed published by the publishing endpoint and subscribed to by the subscribing endpoint and a second feed published by the subscribing endpoint and subscribed to by the publishing endpoint, comprising:

creating the first feed based upon receiving a subscription request from the subscribing endpoint, the creating comprising sending publisher data associated with the publisher local item and an instruction for the subscribing endpoint to create the subscriber local item on the subscribing endpoint; and

subscribing, by the publishing endpoint, to the second feed published by the subscribing endpoint; and

synchronize the publisher local item on the publishing endpoint with the subscriber local item on the subscribing endpoint via at least one of the first feed or the second feed, the synchronizing comprising updating the publisher local item using a first synchronization update received via the second feed.

8. The system of claim 7 , the sharing module configured to:

detect a change to the publisher local item at the publishing endpoint; and

send a second synchronization update to the subscribing endpoint via the first feed.

9. The system of claim 7 , the sharing module configured to:

receive the first synchronization update, at the publishing endpoint, via the second feed, the first synchronization update corresponding to a detected change to the subscriber local item by the subscribing endpoint.

10. The system of claim 9 , the sharing module configured to:

update the publisher local item to reflect the changed subscriber local item.

11. The system of claim 7 , the first feed configured to provide publisher data from the publishing endpoint to the subscribing endpoint, and the second feed configured to provide subscriber data from the subscribing endpoint to the publishing endpoint.

12. The system of claim 7 , the sharing module configured to:

accept, at the publishing endpoint, the subscription request from the subscribing endpoint to create the first feed, the subscription request received in response to the subscribing endpoint accessing the relationship metadata.

13. The system of claim 7 , the relationship metadata comprising a category identifying a data type associated with the publisher local item.

14. The system of claim 7 , at least one of the first feed or the second feed comprising Simple Sharing Extensions.

15. A computer readable storage device comprising computer executable instructions that when executed via a processing unit perform a method for establishing a two-way sharing relationship using feeds, comprising:

providing, from a publishing endpoint, relationship metadata to a subscribing endpoint, the relationship metadata comprising:

an identifier of a publisher local item stored on the publishing endpoint that is available for a two-way sharing relationship; and

a two-way relationship identifier indicating that synchronization is to be performed between the publisher local item on the publishing endpoint and a subscriber local item on the subscribing endpoint, the subscriber local item to be created by the subscribing endpoint based upon an establishment of the two-way sharing relationship;

establishing the two-way sharing relationship comprising a first feed published by the publishing endpoint and subscribed to by the subscribing endpoint and a second feed published by the subscribing endpoint and subscribed to by the publishing endpoint, comprising:

creating the first feed based upon receiving a subscription request from the subscribing endpoint, the creating comprising sending publisher data associated with the publisher local item and an instruction for the subscribing endpoint to create the subscriber local item on the subscribing endpoint; and

subscribing, by the publishing endpoint, to the second feed published by the subscribing endpoint; and

synchronizing the publisher local item on the publishing endpoint with the subscriber local item on the subscribing endpoint via at least one of the first feed or the second feed, the synchronizing comprising updating the publisher local item using a first synchronization update received via the second feed.

16. The method of claim 15 , the synchronizing comprising:

detecting a change to the publisher local item at the publishing endpoint; and

sending a second synchronization update to the subscribing endpoint via the first feed.

17. The method of claim 15 , the synchronizing comprising:

receiving the first synchronization update, at the publishing endpoint, via the second feed, the first synchronization update corresponding to a detected change to the subscriber local item by the subscribing endpoint.

18. The method of claim 17 , the synchronizing comprising:

updating the publisher local item to reflect the changed subscriber local item.

19. The method of claim 15 , the first feed configured to provide publisher data from the publishing endpoint to the subscribing endpoint, and the second feed configured to provide subscriber data from the subscribing endpoint to the publishing endpoint.

20. The method of claim 15 , the establishing the two-way sharing relationship comprising:

accepting, at the publishing endpoint, the subscription request from the subscribing endpoint to create the first feed, the subscription request received in response to the subscribing endpoint accessing the relationship metadata.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034542/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 16, 2006
From: OZZIE, RAYMOND E.; OZZIE, JACK E.; MOROMISATO, GEORGE P.; SUTHAR, PARESH S.; NARAYANAN, RAMAN; AUGUSTINE, MATTHEW S.
To: MICROSOFT CORPORATION
Reel/Frame 018396/0217 →
Continuity (2)
Provisional Application 60805056 · Jun 16, 2006
Related Publication 20070294366A1 · Dec 20, 2007