Cross-Channel Coauthoring Consistency
First Claim
1. A method for metadata consistency processing on a client computer, the method comprising:
- on a client computer, obtaining a document from a server computer;
opening the document on the client computer;
after opening the document, receiving a first message from the server computer, the first message including first metadata for the document, the first metadata including one or more locks for one or more areas of the document, the first metadata being received from the server computer on a metadata channel, the metadata channel being a first communication path between the client computer and the server computer along which lock metadata associated with the document is communicated;
after opening the document, editing a first area of the document that is not locked;
receiving a second message from the server computer, the second message including second metadata for the document, the second metadata being received on the metadata channel;
after receiving the second metadata, determining whether the second metadata includes one or more lock deletions;
when it is determined that the second metadata includes one or more lock deletions, determining whether the one or more lock deletions include an identifier that matches an identifier for a lock for one or more areas of the document that are locked;
when it is determined that one or more lock deletions include an identifier that matches an identifier for a lock for one or more areas of the document that are locked, deleting the lock corresponding to the lock deletion;
after receiving the second metadata, determining whether the second metadata includes one or more lock creations, each of the one or more lock creations including an identifier corresponding to each lock to be created;
when it is determined that the second metadata includes one or more lock creations, determining whether the second metadata includes one or more lock removals having the same lock identifier as one or more of the lock creations;
when it is determined that the second metadata does not include any lock removals or when it is determined that the second metadata does include one or more lock removals and that none of the one or more lock removals have a lock identifier that matches a lock creation, for each lock creation in the one or more lock creations for which none of the one or more lock removals have a lock identifier that matches the lock creation, applying the lock creation to the area of the document specified in the lock creation;
receiving a third message from the server computer, the third message including content information and third metadata, the content information and the third metadata being received on a data channel that is separate from the metadata channel, the data channel being a second communication path between the client computer and the server computer along which content and the lock metadata associated with the document is communicated;
after receiving the content information and the third metadata, determining whether the third metadata includes one or more lock removals;
when it is determined that the third metadata includes one or more lock removals, determining whether the one or more lock removals include an identifier that matches an identifier for a lock for one or more areas of the document that are locked;
when it is determined that one or more lock removals include an identifier that matches an identifier for a lock for one or more areas of the document that are locked, removing the lock corresponding to the lock removal.
2 Assignments
0 Petitions
Accused Products
Abstract
A computing device includes a processing unit, and a memory with instructions that, when executed by the processing unit, cause the processing unit to create: a document processing module that processes the creation and editing of document content; and a metadata processing module that generates, monitors and stores metadata for a document on the computing device, the metadata processing module generating lock creation metadata that include information about a new lock that is created when a user begins to edit a portion of a document, lock removal metadata that includes information about removing a lock, and lock deletion metadata that includes information about deleting a lock, the metadata processing module writing lock creation metadata to both a data channel and to a separate metadata channel, the metadata processing module writing lock removal metadata to the data channel and the metadata processing module writing lock deletion metadata to the metadata channel.
-
Citations
20 Claims
-
1. A method for metadata consistency processing on a client computer, the method comprising:
-
on a client computer, obtaining a document from a server computer; opening the document on the client computer; after opening the document, receiving a first message from the server computer, the first message including first metadata for the document, the first metadata including one or more locks for one or more areas of the document, the first metadata being received from the server computer on a metadata channel, the metadata channel being a first communication path between the client computer and the server computer along which lock metadata associated with the document is communicated; after opening the document, editing a first area of the document that is not locked; receiving a second message from the server computer, the second message including second metadata for the document, the second metadata being received on the metadata channel; after receiving the second metadata, determining whether the second metadata includes one or more lock deletions; when it is determined that the second metadata includes one or more lock deletions, determining whether the one or more lock deletions include an identifier that matches an identifier for a lock for one or more areas of the document that are locked; when it is determined that one or more lock deletions include an identifier that matches an identifier for a lock for one or more areas of the document that are locked, deleting the lock corresponding to the lock deletion; after receiving the second metadata, determining whether the second metadata includes one or more lock creations, each of the one or more lock creations including an identifier corresponding to each lock to be created; when it is determined that the second metadata includes one or more lock creations, determining whether the second metadata includes one or more lock removals having the same lock identifier as one or more of the lock creations; when it is determined that the second metadata does not include any lock removals or when it is determined that the second metadata does include one or more lock removals and that none of the one or more lock removals have a lock identifier that matches a lock creation, for each lock creation in the one or more lock creations for which none of the one or more lock removals have a lock identifier that matches the lock creation, applying the lock creation to the area of the document specified in the lock creation; receiving a third message from the server computer, the third message including content information and third metadata, the content information and the third metadata being received on a data channel that is separate from the metadata channel, the data channel being a second communication path between the client computer and the server computer along which content and the lock metadata associated with the document is communicated; after receiving the content information and the third metadata, determining whether the third metadata includes one or more lock removals; when it is determined that the third metadata includes one or more lock removals, determining whether the one or more lock removals include an identifier that matches an identifier for a lock for one or more areas of the document that are locked; when it is determined that one or more lock removals include an identifier that matches an identifier for a lock for one or more areas of the document that are locked, removing the lock corresponding to the lock removal. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computing device, comprising:
-
a processing unit; a system memory connected to the processing unit, the system memory comprising instructions that, when executed by the processing unit, cause the processing unit to create; a document processing module that processes the creation and editing of document content; and a metadata processing module that generates, monitors and stores metadata for a document on the computing device, the metadata processing module generating lock creation metadata that include information about a new lock that is created when a user begins to edit a portion of a document, lock removal metadata that includes information about removing a lock, and lock deletion metadata that includes information about deleting a lock, the metadata processing module writing lock creation metadata to both a data channel and to a separate metadata channel, the data channel being a first communication path between the computing device and a server computer along which content and lock metadata associated with the document is communicated, and the metadata channel being a second communication path between the computing device and the server computer along which the lock metadata associated with the document is communicated, the metadata processing module writing lock removal metadata to the data channel and the metadata processing module writing lock deletion metadata to the metadata channel. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A computer-readable data storage medium comprising instructions that, when executed by a processing unit of an electronic computing device, cause the processing unit to:
-
obtain a document from a server computer, the document being requested by a user at the electronic computer device; open the document; after opening the document, receive a first message from the server computer, the first message including first metadata for the document, the first metadata including one or more locks for one or more areas of the document, the first metadata being received from the server computer on a metadata channel, the metadata channel being a first communication path between the electronic computing device and the server computer along which lock metadata associated with the document is communicated; after opening the document, edit a first area of the document that is not locked; receive a second message from the server computer, the second message including second metadata for the document, the second metadata being received on the metadata channel; after receiving the second metadata, determining whether the second metadata includes one or more lock deletions; when it is determined that the second metadata includes one or more lock deletions, determining whether the one or more lock deletions include an identifier that matches an identifier for a lock for one or more areas of the document that are locked; when it is determined that one or more lock deletions include an identifier that matches an identifier for a lock for one or more areas of the document that are locked, deleting the lock corresponding to the lock deletion; after receiving the second metadata, determine whether the second metadata includes one or more lock creations, each of the one or more lock creations including an identifier corresponding to each lock to be created; when it is determined that the second metadata includes one or more lock creations, determine whether the second metadata includes one or more lock removals having the same lock identifier as one or more of the lock creations; when it is determined that the second metadata does not include any lock removals or when it is determined that the second metadata does include one or more lock removals and that none of the one or more lock removals have a lock identifier that matches a lock creation, for each lock creation in the one or more lock creations for which none of the one or more lock removals have a lock identifier that matches the lock creation, apply the lock creation to the area of the document specified in the lock creation; receive a third message from the server computer, the third message including content information and third metadata, the content information and the third metadata being received on a data channel that is separate from the metadata channel, the data channel being a second communication path between the electronic computing device and the server computer along which content and the lock metadata associated with the document is communicated; after receiving the content information and the third metadata, determine whether the third metadata includes one or more lock removals; when it is determined that the third metadata includes one or more lock removals, determine whether the one or more lock removals include an identifier that matches an identifier for a lock for one or more areas of the document that are locked; when it is determined that one or more lock removals include an identifier that matches an identifier for a lock for one or more areas of the document that are locked, remove the lock corresponding to the lock removal; after determining whether the third metadata includes one or more lock removals, determine whether the second metadata includes one or more lock creations that have identifiers that match an identifier for the one or more lock removals; when it is determined that the second metadata includes one or more lock creations that have identifiers that match an identifier for the one or more lock removals, determine whether one or more locks having identifiers that match the one or more lock creations are applied to the document; when it is determined that one or more lock creations that have identifiers that match an identifier for the one or more lock removals and when it is determined that one or more locks having identifiers that match the one or more lock creations are applied to the document, removing each lock from the document having an identifier that matches a lock creation that has an identifier than matches the one or more lock removals; after determining whether the third metadata includes one or more lock removals, determine whether the third metadata includes one or more lock creations; when it is determined that the third metadata includes one or more lock creations, determine whether the third metadata includes one or more lock removals having a lock identifier that matches an identifier for one or more of the lock creations; and when it is determined that the third metadata does not include any lock removals or when it is determined that the third metadata does include one or more lock removals and that none of the one or more lock removals have a lock identifier that matches a lock creation, for each lock creation in the one or more lock creations for which none of the one or more lock removals have a lock identifier that matches the lock creation, applying a lock to the area of the document specified in the lock creation.
-
Specification