IP Library Granted Patent US 9,053,079
Granted Patent B2
US 9,053,079 · App. 13/316,763 · Granted Jun 9, 2015

Techniques to manage collaborative documents

Inventors: Jonathan Bailor (Bellevue, WA); Matthew Wood (Seattle, WA); Brian Marshall (Kirkland, WA)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
G06F17/24G06F17/2288
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 9,053,079
App. No.
13/316,763
Granted
Jun 9, 2015
Kind
B2
Abstract

Techniques to manage collaborative documents are described. An application program may comprise a document render component to render a first document instance of a collaborative document, a document share component to receive a document update list comprising a set of change records for a second document instance of the collaborative document, and modify properties of one or more constructs for the first document instance based on the change records to form a merged document instance of the collaborative document, and an undo manager component to manage a local undo stack for the first document instance, the local undo stack comprising a set of undo records, and determine whether to preserve one or more of the undo records of the local undo stack after formation of the merged document instance based on one or more of the change records. Other embodiments are described and claimed.

Claims (37)

1. An apparatus, comprising:

a processor circuit; and

an application program operative on the processor circuit to manage a collaborative document having a presentation surface with multiple constructs, the application program comprising:

a document render component operative to render a first document instance of the collaborative document;

a document share component operative to receive a document update list comprising a set of change records for a second document instance of the collaborative document, each change record comprising information for a modification made to a construct of the second document instance, determine whether a time stamp of a change record for the first document instance of the collaborative document and a time stamp of a change record for the second document instance of the collaborative document are both within a synchronization interval when the change records have matching constructs, annotate the change records as conflict records, and modify properties of one or more constructs for the first document instance based on the change records to form a merged document instance of the collaborative document; and

an undo manager component operative to manage a local undo stack for the first document instance, the local undo stack comprising a set of undo records each storing information to undo a modification made to a construct of the first document instance, compare the set of undo records and the set of change records, and determine whether to preserve one or more of the undo records of the local undo stack after formation of the merged document instance based on one or more of the change records.

2. The apparatus of claim 1 , comprising an undo record storing a time stamp indicating a date and a time when a modification was made to a construct of the first document instance of the document.

3. The apparatus of claim 1 , comprising a change record storing a time stamp indicating a date and a time when a modification was made to a construct of the second document instance of the document.

4. The apparatus of claim 1 , the undo manager component operative to determine whether a construct of an undo record matches a construct of a change record.

5. The apparatus of claim 1 , the undo manager component operative to determine whether a time stamp of an undo record and a time stamp of a change record are both within a synchronization interval when the undo record and the change record have matching constructs, and annotate the undo record as a conflict record.

6. The apparatus of claim 1 , the undo manager component operative to remove an undo record from the local undo stack when the undo record is annotated as a conflict record.

7. The apparatus of claim 1 , the undo manager component operative to delete the local undo stack when an undo record is annotated as a conflict record.

8. The apparatus of claim 1 , the document share component operative to receive a document update list comprising a set of change records for the first document instance of the collaborative document.

9. The apparatus of claim 1 , the document share component operative to determine whether a construct of a change record for the first document instance of the collaborative document matches a construct of a change record for the second document instance of the collaborative document.

10. The apparatus of claim 1 , the document share component operative to resolve conflict records using a set of construct-based conflict rules without modifying permissions for matching constructs in the conflict records.

11. A computer-implemented method, comprising:

retrieving, by a processor circuit, a set of undo records of a local undo stack, each undo record comprising information to undo a modification made to a construct of a first document instance of a collaborative document;

retrieving a set of change records of a document update list, each change record comprising information for a modification made to a construct of a second document instance of the collaborative document;

comparing the set of undo records and the set of change records, including determining whether a time stamp of a undo record and a time stamp of a change record are both within a synchronization interval when the undo record and the change record have matching constructs and annotating the undo record as a conflict record when the time stamps are within the synchronization interval; and

determining whether to preserve one or more of the undo records of the local undo stack based on the comparison results.

12. The computer-implemented method of claim 11 , comprising determining whether a construct of an undo record matches a construct of a change record.

13. The computer-implemented method of claim 11 , comprising determining whether a time stamp of an undo record and a time stamp of a change record are both within a synchronization interval when the undo record and the change record have matching constructs.

14. The computer-implemented method of claim 11 , comprising removing an undo record from the local undo stack when the undo record is annotated as a conflict record.

15. The computer-implemented method of claim 11 , comprising deleting the local undo stack when an undo record is annotated as a conflict record.

16. An article of manufacture comprising a hardware storage device storing instructions that when executed cause a system to:

retrieve a set of undo records of a local undo stack, each undo record storing information to undo a modification made to a construct of a first document instance of a document;

retrieve a set of change records of a document update list, each change record storing information for a modification made to a construct of a second document instance of the document;

modify a property of a construct of the first document instance based on the set of change records of the document update list;

compare the set of undo records and the set of change records;

determine whether a time stamp of a undo record and a time stamp of a change record are both within a synchronization interval when the undo record and the change record have matching constructs;

annotate the undo record as a conflict record when the time stamps are within the synchronization interval;

determine whether to save one or more undo records of the local undo stack based on information stored in the undo records and the change records; and

save the one or more undo records of the local undo stack, such that one or more undo operations to undo a modification made to a different property of the construct of the first document instance is available for use.

17. The article of manufacture of claim 16 , comprising instructions that when executed enable the system to:

determine whether a construct of an undo record matches a construct of a change record.

18. The article of manufacture of claim 16 , comprising instructions that when executed enable the system to remove an undo record from the local undo stack when the undo record is annotated as a conflict record.

19. The article of manufacture of claim 16 , comprising instructions that when executed enable the system to delete the local undo stack when an undo record is annotated as a conflict record.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034544/0541 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2011
From: BAILOR, JONATHAN; WOOD, MATTHEW; MARSHALL, BRIAN
To: MICROSOFT CORPORATION
Reel/Frame 027363/0981 →
Continuity (1)
Related Publication 20130151940A1 · Jun 13, 2013