СОГЛАСОВАННОСТЬ КОЛЛЕКТИВНОЙ РАБОТЫ ПО ПЕРЕКРЕСТНЫМ КАНАЛАМ

1. Способ (300) обработки согласованности метаданных на клиентском компьютере (102), причем способ состоит в том, что:
на клиентском компьютере (102) получают документ от серверного компьютера (106);
открывают документ на клиентском компьютере (102);
после открытия документа принимают первое сообщение от серверного компьютера (106), причем первое сообщение включает в себя первые метаданные для документа, при этом первые метаданные включают в себя одну или более блокировок для одной или более областей документа, при этом первые метаданные принимаются от серверного компьютера (106) по каналу (111) метаданных, причем канал (111) метаданных является первым каналом связи между клиентским компьютером (102) и серверным компьютером (106), по которому передаются метаданные блокировки, связанные с документом;
после открытия документа редактируют первую область документа, которая не заблокирована;
принимают второе сообщение от серверного компьютера (106), причем второе сообщение включает в себя вторые метаданные для документа, при этом вторые метаданные принимаются по каналу (111) метаданных;
после приема вторых метаданных определяют, включают ли в себя вторые метаданные одно или более стираний блокировок;
когда определено, что вторые метаданные включают в себя одно или более стираний блокировок, определяют, включают ли в себя одно или более стираний блокировок идентификатор, который совпадает с идентификатором для блокировки для одной или более областей документа, которые заблокированы;
когда определено, что одно или более стираний блокировок включают в себя идентификатор, который совпадает с идентификатором для блокировки для одной или более областей документа, которые заблокированы, стирают блокировку, соответствующую стиранию блокировки;
после приема вторых метаданных определяют, включают ли в себя вторые метаданные одно или более созданий блокировок, причем каждое из одного или более созданий блокировок включают в себя идентификатор, соответствующий каждой создаваемой блокировке;
когда определено, что вторые метаданные включают в себя одно или более созданий блокировок, определяют, включают ли в себя вторые метаданные одно или более удалений блокировок, имеющих тот же идентификатор блокировки, что и одно или более созданий блокировок;
когда определено, что вторые метаданные не включают в себя какие-либо удаления блокировок, или когда определено, что вторые метаданные не включают в себя одно или более удалений блокировок, и что ни одно из одного или более удалений блокировок не имеют идентификатор блокировки, который совпадает с созданием блокировки, для каждого создания блокировки в одном или более созданиях блокировок, для которых ни одно из одного или более удалений блокировок не имеет идентификатора блокировки, который совпадает с созданием блокировки, применяют создание блокировки к области документа, указанной в создании блокировки;
принимают третье сообщение от серверного компьютера (106), причем третье сообщение включает в себя информацию о содержимом и третьи метаданные, причем информация о содержимом и третьи метаданные принимаемые по каналу (113) данных, который является отдельным от канала (111) метаданных, при этом канал (113) данных является вторым каналом связи между клиентским компьютером (102) и серверным компьютером (106), по которому передаются содержимое и метаданные блокировки, связанные с документом;
после приема информации о содержимом и третьих метаданных определяют, включают в себя третьи метаданные одно или более удалений блокировок;
когда определено, что третьи метаданные включают в себя одно или более удалений блокировок, определяют, включают ли в себя одно или более удалений блокировок идентификатор, который совпадает с идентификатором для блокировки для одной или более областей документа, которые заблокированы;
когда определено, что одно или более удалений блокировок включают в себя идентификатор, который совпадает с идентификатором для блокировки для одной или более областей документа, которые заблокированы, удаляют блокировку, соответствующую удалению блокировки.
2. Способ по п.1, дополнительно состоящий в том, что:
после определения того, включают ли в себя третьи метаданные одно или более удалений блокировок, определяют, включают ли в себя третьи метаданные одно или более созданий блокировок;
когда определено, что третьи метаданные включают в себя одно или более созданий блокировок, определяют, включают ли в себя третьи метаданные одно или более удалений блокировок, имеющих идентификатор блокировки, который совпадает с идентификатором для одного или более созданий блокировок; и
когда определено, что третьи метаданные не включают в себя какие-либо удаления блокировок, или когда определено, что третьи метаданные не включают в себя одно или более удалений блокировок, и что ни одно из одного или более удалений блокировок не имеют идентификатор блокировки, который совпадает с созданием блокировки, для каждого создания блокировки в одном или более созданиях блокировок, для которых ни одно из одного или более удалений блокировок не имеет идентификатора блокировки, который совпадает с созданием блокировки, применяют блокировку к области документа, указанной в создании блокировки.
3. Способ по п.1, дополнительно состоящий в том, что клиентский компьютер (102) отправляет первое сообщение с запросом на серверный компьютер (106) с заранее заданным интервалом времени после приема клиентским компьютером первых метаданных, причем первое сообщение с запросом запрашивает метаданные от серверного компьютера (106).
4. Способ по п.3, дополнительно состоящий в том, что редактируют вторую область документа, которая не заблокирована, причем вторая область документа отличается от первой области документа.
5. Способ по п.4, дополнительно состоящий в том, что отправляют второе сообщение с запросом на серверный компьютер (106), причем второе сообщение с запросом включает в себя создание блокировки для второй области документа, которая не заблокирована, при этом второе сообщение с запросом отправляется в один или более заранее заданные интервалы времени с момента времени, когда первое сообщение с запросом отправлено на серверный компьютер (106).
6. Способ по п.1, дополнительно содержащий идентификаторы для каждого создания блокировки, причем каждое удаление блокировки и каждое стирание блокировки включают в себя идентификатор для коллективного пользователя, который инициировал создание блокировки, удаление блокировки или стирание блокировки.
7. Вычислительное устройство (102), содержащее:
блок (402) обработки;
системную память (404), присоединенную к блоку (402) обработки, причем системная память (404) содержит инструкции, которые при исполнении блоком (402) обработки побуждают блок (402) обработки создать:
модуль (202) обработки документа, который обрабатывает создание и редактирование содержимого документа; и
модуль (204) обработки метаданных, который генерирует, контролирует и хранит метаданные для документа на вычислительном устройстве (102), причем модуль (204) обработки метаданных генерирует метаданные о создании блокировки, которые включают в себя информацию о новой блокировке, которая создана, когда пользователь начал редактировать часть документа, метаданные об удалении блокировки, которые включают в себя информацию об удалении блокировки, и метаданные о стирании блокировки, которые включают в себя информацию о стирании блокировки, при этом модуль (204) обработки метаданных выполнен с возможностью записывать метаданные о создании блокировки как в канал (113) данных, так и в отдельный канал (111) метаданных, причем канал (113) данных является первым каналом связи между вычислительным устройством (102) и серверным компьютером (106), по которому передаются содержимое и метаданные блокировки, связанные с документом, и канал (111) метаданных является вторым каналом связи между вычислительным устройством (102) и серверным компьютером (106), по которому передаются метаданные блокировки, связанные с документом, при этом модуль (204) обработки метаданных выполнен с возможностью записывать метаданные об удалении блокировки в канал (113) данных и записывать метаданные о стирании блокировки в канал (111) метаданных.
8. Вычислительное устройство по п.7, в котором модуль (204) обработки метаданных выполнен с возможностью записывать метаданные об удалении блокировки в канал (113) данных после операции сохранения, причем метаданные об удалении блокировки соответствуют модифицированному содержимому, которое сохраняется во время операции сохранения.
9. Вычислительное устройство по п.7, в котором модуль (204) обработки метаданных выполнен с возможностью записывать метаданные о создании блокировки в канал (111) метаданных и в канал (113) данных, когда модифицированы одна или более областей документа.
10. Вычислительное устройство по п.7, в котором модуль (204) обработки метаданных выполнен с возможностью записывать метаданные о стирании блокировки в канал (111) метаданных после истечения лимита времени ожидания на вычислительном устройстве (102), или когда функция стирании активирована вручную на вычислительном устройстве (102).
11. Вычислительное устройство по п.7, в котором модуль (202) обработки документа выполнен с возможностью получать информацию об обновленном содержимом для документа от серверного компьютера (106), когда на вычислительном устройстве (102) выполнена операция сохранения.
12. Вычислительное устройство по п.11, в котором модуль (204) обработки метаданных выполнен с возможностью получать метаданные о создании блокировки и метаданные об удалении блокировки от серверного компьютера (106), когда на вычислительном устройстве (102) выполнена операция сохранения.
13. Вычислительное устройство по п.7, в котором модуль (204) обработки метаданных выполнен с возможностью назначать идентификатор метаданным о создании блокировки и метаданным об удалении блокировки, причем модуль обработки метаданных выполнен с возможностью попарно назначать идентификаторы метаданным о создании блокировки и метаданным об удалении блокировки, при этом идентификатор для, по меньшей мере, одного удаления блокировки является таким же, как идентификатор для, по меньшей мере, одного создания блокировки, при этом не более чем одно создание блокировки и одно удаление блокировки имеют один и тот же идентификатор.
14. Вычислительное устройство по п.7, в котором модуль (204) обработки метаданных выполнен с возможностью попарно назначать идентификаторы метаданным о создании блокировки и метаданным о стирании блокировки, причем идентификатор для, по меньшей мере, одного стирания блокировки является таким же, как идентификатор для, по меньшей мере, одного создания блокировки, при этом не более чем одно создание блокировки и одно стирание блокировки имеют один и тот же идентификатор.
15. Машиночитаемый носитель данных, содержащий инструкции, которые при исполнении блоком (402) обработки побуждают блок (402) обработки:
получать документ от серверного компьютера (106), причем документ запрашивается пользователем на электронном вычислительном устройстве (102);
открыть документ;
после открытия документа принять первое сообщение от серверного компьютера (106), причем первое сообщение включает в себя первые метаданные для документа, при этом первые метаданные включают в себя одну или более блокировок для одной или более областей документа, при этом первые метаданные принимаются от серверного компьютера (106) по каналу (111) метаданных, причем канал (111) метаданных является первым каналом связи между электронным вычислительным устройством (102) и серверным компьютером (106), по которому передаются метаданные блокировки, связанные с документом:
после открытия документа редактировать первую область документа, которая не заблокирована;
принимать второе сообщение от серверного компьютера (106), причем второе сообщение включает в себя вторые метаданные для документа, при этом вторые метаданные принимаются по каналу (111) метаданных;
после приема вторых метаданных определять, включают ли в себя вторые метаданные одно или более стираний блокировок;
когда определено, что вторые метаданные включают в себя одно или более стираний блокировок, определять, включают ли в себя одно или более стираний блокировок идентификатор, который совпадает с идентификатором для блокировки для одной или более областей документа, которые заблокированы;
когда определено, что одно или более стираний блокировок включают в себя идентификатор, который совпадает с идентификатором для блокировки для одной или более областей документа, которые заблокированы, стирать блокировку, соответствующую стиранию блокировки;
после приема вторых метаданных определять, включают в себя ли вторые метаданные одно или более созданий блокировок, причем каждое из одного или более созданий блокировок включает в себя идентификатор, соответствующий каждой создаваемой блокировке;
когда определено, что вторые метаданные включают в себя одно или более созданий блокировок, определять, включают в себя ли вторые метаданные одно или более удалений блокировок, имеющих тот же идентификатор блокировки, что и одно или более созданий блокировок;
когда определено, что вторые метаданные не включают в себя какие-либо удаления блокировок, или когда определено, что вторые метаданные не включают в себя одно или более удалений блокировок, и что ни одно из одного или более удалений блокировок не имеют идентификатор блокировки, который совпадает с созданием блокировки, для каждого создания блокировки в одном или более созданиях блокировок, для которых ни одно из одного или более удалений блокировок не имеет идентификатора блокировки, который совпадает с созданием блокировки, применять создание блокировки к области документа, указанной в создании блокировки;
принимать третье сообщение от серверного компьютера (106), причем третье сообщение включает в себя информацию о содержимом и третьи метаданные, причем информация о содержимом и третьи метаданные принимаются по каналу (113) данных, который является отдельным от канала (111) метаданных, при этом канал (113) данных является вторым каналом связи между электронным вычислительным устройством (102) и серверным компьютером (106), по которому передаются содержимое и метаданные блокировки, связанные с документом;
после приема информации о содержимом и третьих метаданных определять, включают ли в себя третьи метаданные одно или более удалений блокировок;
когда определено, что третьи метаданные включают в себя одно или более удалений блокировок, определять, включают ли в себя одно или более удалений блокировок идентификатор, который совпадает с идентификатором для блокировки для одной или более областей документа, которые заблокированы;
когда определено, что одно или более удалений блокировок включают в себя идентификатор, который совпадает с идентификатором для блокировки для одной или более областей документа, которые заблокированы, удалять блокировку, соответствующую удалению блокировки;
после определения того, включают ли в себя третьи метаданные одно или более удалений блокировок, определять, включают ли в себя вторые метаданные одно или более созданий блокировок, которые имеют идентификаторы блокировки, которые совпадают с идентификатором для одного или более удалений блокировок;
когда определено, что вторые метаданные включают в себя одно или более созданий блокировок, которые имеют идентификаторы, которые совпадают с идентификатором для одного или более удалений блокировок, определять, применены ли к документу одна или более блокировок, имеющих идентификаторы, которые совпадают с одним или более созданиями блокировок;
когда определено, что одно или более созданий блокировок, которые имеют идентификаторы, которые совпадают с идентификатором для одного или более удалений блокировок, и когда определено, что одна или более блокировок, имеющих идентификаторы, которые совпадают с одним или более созданиями блокировок, применены к документу, удалять каждую блокировку из документа, имеющую идентификатор, который совпадает с созданием блокировки, которое имеет идентификатор, который совпадает с одним или более удалениями блокировок;
после определения того, включают ли в себя третьи метаданные одно или более удалений блокировок, определять, включают ли в себя третьи метаданные одно или более созданий блокировок;
когда определено, что третьи метаданные включают в себя одно или более созданий блокировок, определять, включают ли в себя третьи метаданные одно или более удалений блокировок, имеющих идентификатор блокировки, который совпадает с идентификатором для одного или более созданий блокировок; и
когда определено, что третьи метаданные не включают в себя какие-либо удаления блокировок, или когда определено, что третьи метаданные не включают в себя одно или более удалений блокировок, и что ни одно из одного или более удалений блокировок не имеют идентификатор блокировки, который совпадает с созданием блокировки, для каждого создания блокировки в одном или более созданиях блокировок, для которых ни одно из одного или более удалений блокировок не имеет идентификатора блокировки, который совпадает с созданием блокировки, применять блокировку к области документа, указанной в создании блокировки.