СИНХРОНИЗАЦИЯ ДОКУМЕНТА ПО ПРОТОКОЛУ, НЕ ИСПОЛЬЗУЮЩЕМУ ИНФОРМАЦИЮ О СОСТОЯНИИ

1. Структура данных (155A, 155B, 155C, 155D), закодированная на машиночитаемом носителе первого вычислительного устройства (110A, 110B, 110C, 110D), содержащая:
множество ячеек (305, 310, 315), причем каждая из ячеек (305, 310, 315) имеет идентификатор ячейки (320), который однозначно идентифицирует конкретную ячейку (305, 310, 315) в документе (150) и ассоциирован, по меньшей мере, с одной версией (445);
множество объектов данных (330, 335, 340, 450, 455), задающих содержимое документа (150), причем каждый объект данных (330, 335, 340, 450, 455) ассоциирован только с одной из ячеек (305, 310, 315) и имеет идентификатор объекта (350), который однозначно идентифицирует объект данных (330, 335, 340, 450, 455) в ассоциированной ячейке (305, 310, 315) и сконфигурирован с возможностью обмена данными с другими ячейками (305, 310, 315) и с объектами в ассоциированной ячейке (305, 310, 315); и
в которой каждая из ячеек (305, 310, 315) задана таким образом, чтобы каждая другая ячейка (305, 310, 315) оставалась неподверженной изменениям, относящимся к объектам данных (330, 335, 340, 450, 455) ячейки (305, 310, 315).
2. Структура данных по п.1, в которой каждая ячейка ссылается, по меньшей мере, на одну ячейку в пределах области действия, причем область действия задает совокупность ячеек и версий.
3. Структура данных по п.2, в которой каждая из совокупностей ячеек и версий сгруппирована, по меньшей мере, в одну группу объектов.
4. Структура данных по п.3, в которой первое вычислительное устройство сортирует множество объектов данных, по меньшей мере, в одну группу объектов на основе вероятности того, что каждый объект данных будет обновлен.
5. Структура данных по п.3, в которой первое вычислительное устройство сортирует множество объектов данных, по меньшей мере, в одну группу объектов на основе размера каждого объекта данных.
6. Структура данных по п.1, в которой идентификатор ячейки содержит пару глобально уникального идентификатора и целого числа.
7. Структура данных по п.6, в которой глобально уникальный идентификатор является глобально уникальным в пределах ячейки.
8. Структура данных по п.1, в которой структура данных представляет блок совместимых данных, который при модифицикации не будет модифицировать другой блок совместимых данных.
9. Манифест (470) версии для версии (425), сохраненной на машиночитаемом носителе первого вычислительного устройства (11OA 110B, 110C 110D), причем манифест (470) версии определяет версию (425), представляющую состояние ячейки (305, 310, 315) в момент времени, причем манифест (470) версии содержит:
множество групп объектов, причем каждая группа объектов содержит, по меньшей мере, один объект данных (450, 455, 460); и
блок совместимых данных (155, 155A, 155B, 155C, 155D) содержащий, по меньшей мере, один объект данных (330, 335, 340, 450, 455), причем каждый блок совместимых данных (470) задается таким образом, чтобы редактирование одного из блоков совместимых данных (155, 155A, 155B, 155C, 155D) не воздействовало ни на какой другой блок совместимых данных (155, 155A, 155B, 155C, 155D).
10. Манифест версии по п.9, в котором второе вычислительное устройство, по меньшей мере, частично определяет, какой объект данных в какую группу объектов помещен.
11. Манифест версии по п.9, в котором первое вычислительное устройство влияет на то, какой объект данных в какую группу объектов помещен.
12. Манифест версии по п.9, в котором второе вычислительное устройство задает каждую группу объектов на основе того, как часто обновляется каждый объект данных.
13. Манифест версии по п.9, в котором второе вычислительное устройство задает каждую группу объектов на основе размера объекта данных.
14. Манифест версии по п.9, в котором, по меньшей мере, один объект данных в каждой, по меньшей мере, из одной группы данных сохраняется, по меньшей мере, в одной группе объектов на основе вероятности того, что каждый объект данных будет обновлен.
15. Манифест версии по п.9, в котором, по меньшей мере, один объект данных в каждой, по меньшей мере, из одной группы данных сохраняется, по меньшей мере, в одной группе объектов на основе размера каждого объекта данных.
16. Манифест версии по п.9, причем манифест версии указывает, по меньшей мере, на одну группу объектов, заданную в манифесте предыдущей версии.
17. Способ синхронизации документа (150) на первом вычислительном устройстве (110A 110B, 110C 110D), причем документ (150) разбивают на ячейки (305, 310, 315), а каждая ячейка (305, 310, 315) задается, по меньшей мере, одним манифестом (470) версии, причем способ включает в себя:
прием первой версии (420, 425, 435, 440) и, по меньшей мере, одной ячейки (305, 310, 315), ассоциированной с документом (150), причем, по меньшей мере, одна ячейка (305, 310, 315) содержит идентификатор (320) ячейки, содержащий пару глобально уникального идентификатора и целого числа, причем глобально уникальный идентификатор является глобально уникальным, а идентификатор ячейки ассоциирован с первой версией (420, 425, 435, 440), содержащей, по меньшей мере, один идентификатор (325) первой версии, причем каждый из, по меньшей мере, одного идентификатора (325) первой версии представляет состояние ячеек (305, 310, 315) в момент времени, а область действия задает совокупность ячеек (305, 310, 315) и версий (420, 425, 435, 440), и причем область действий включает в себя, по меньшей мере, один корневой объект (405), причем ячейки (305, 310, 315) в пределах области действия доступны, по меньшей мере, через один корневой объект (405);
прием обновления для первого вычислительного устройства (110A 110B, 110C 110D), причем обновление указывает на идентификатор (325) обновленной версии, ассоциированный с каждой ячейкой (305, 310, 315), ассоциированной с документом (150);
сохранение первой версии (420, 425, 435, 440) каждой ячейки (305, 310, 315), когда идентификатор (325) первой ячейки соответствует идентификатору (325) обновленной версии ячейки (305, 310, 315);
генерирование новой версии каждой ячейки (305, 310, 315), причем генерирование новой версии включает в себя назначение новой версии идентификатора новой версии, когда идентификатор первой версии ячейки (305, 310, 315) не соответствует идентификатору обновленной версии ячейки (305, 310, 315);
стирание любой ячейки (305, 310, 315), на которую не было ссылки в корневых объектах (405); и
синхронизацию документа (150) путем замены ячеек (305, 310, 315) на новую версию каждой ячейки (305, 310, 315).
18. Способ по п.17, в котором генерирование новой версии включает в себя определение для каждой ячейки, соответствует ли идентификатор объекта каждого объекта в ячейке идентификатору обновленного объекта.
19. Способ по п.18, в котором идентификатор обновленного объекта задает манифест версии, задающий версию документа, и включает в себя, по меньшей мере, первую группу объектов, которая содержит, по меньшей мере, первый объект данных.
20. Способ по п.19, в котором манифест версии указывает на группу объектов, заданную в предыдущем манифесте версии.