СИСТЕМА И СПОСОБ УПРАВЛЕНИЯ СОВМЕСТНЫМ РЕДАКТИРОВАНИЕМ ЦИФРОВЫХ ОБЪЕКТОВ
SYSTEM AND METHOD FOR MANAGING COLLABORATIVE EDITING OF DIGITAL OBJECTS

Область техники
[1] Настоящее изобретение относится к системам и способам управления совместным редактированием цифровых объектов, позволяющим эффективно редактировать цифровые объекты одновременно нескольким пользователям и при этом обеспечивать безопасность цифровых объектов.
Уровень техники
[2] Программные системы состоят из множества взаимосвязанных цифровых объектов. Для корректной работы систем в целом требуется согласованное изменение нескольких объектов или частей одного объекта, в то время как разработка больших автоматизированных систем требует совместной работы нескольких разработчиков. Одновременное редактирование одного цифрового объекта несколькими разработчиками может привести к конфликтам или внесению несовместимых изменений.
[3] Стандартный способ решения этой проблемы состоит в возможности получения эксклюзивного доступа к объекту. Изначально все объекты являются свободными, и перед началом редактирования один из разработчиков должен получить доступ к редактированию цифрового объекта, получив эксклюзивную блокировку. Через какое-то время разработчик, получивший эксклюзивную блокировку цифрового объекта, может освободить его. При этом, пока цифровой объект находится в его эксклюзивной блокировке, он может как вносить изменения, так и оставить объект неизмененным. В период времени, когда объект находится под эксклюзивной блокировкой, другие разработчики не могут вносить изменения в цифровой объект.
[4] Недостаток такого подхода состоит в том, что разработчик может удерживать объект дольше необходимого, затрудняя или делая невозможной работу других разработчиков. Эта проблема зачастую решается путем введения в систему привилегированных пользователей, которые способны снять блокировку обычного пользователя. Однако это усложняет процесс, требуя наличия постоянной вовлеченности такого привилегированного пользователя.
[5] Известно изобретение по патенту US10817572B2 (опубл. 27.10.2020; МПК: G06F 13/00; G06F 16/93; G06Q 10/10), в котором описываются системы и способы, обеспечивающие архитектуру клиент-сервер, способную поддерживать множество асинхронных и синхронных действий совместной работы в так называемом месте совместной работы. Под действиями подразумеваются: общение в чате, просмотр и/или редактирование одного или нескольких файлов данных, а также совместное использование одного или нескольких приложений, файлов данных и/или дисплеев. Описанная архитектура клиент-сервер поддерживает плавную навигацию между поддерживаемыми асинхронными и синхронными действиями в месте совместной работы. Кроме того, архитектура клиент-сервер поддерживает сохранение данных, так что файлы данных, связанные с местом совместной работы, могут быть сохранены для последующего доступа. Главным недостатком такого решения является то, что в нем не предусмотрена возможность отправки запроса на передачу прав/доступа на редактирование цифрового объекта. Еще одним отличием является то, что для создания среды/места совместной работы необходимо отправить запрос на сервер.
[6] Также известно решение, описываемое в заявке US20140280347A1 (опубл. 18.09.2014; МПК: G06F 17/30). В заявке описан способ управления доступом и использованием цифровых файлов, хранящихся в файловом хранилище, объединенном в сеть с несколькими серверами. Способ включает следующие шаги: запрос сервера для получения доступа и использования файла, хранящегося в файловом хранилище, отправку другому серверу запроса, содержащего идентификатор (ID) файла; каждый из других серверов, принимающих запрос, проверяет внутренний список блокировок, чтобы установить, указан ли в нем идентификатор файла. Если он указан, сервер возвращает сообщение об ошибке запросившему серверу, но если не указан, то возвращает сообщение об успешном завершении; и запрашивающий сервер определяет из всех возвращаемых сообщений, существует ли сообщение об ошибке. Если существует, то не обращается к файлу и не использует его, и отправляет повторные запросы через заранее определенный интервал времени. Но если не существует, то обращается к файлу и использует его, и отправляет сообщение уведомление всем остальным серверам по окончании использования файла. Первым недостатком этого решения является то, что в нем предусмотрена отправка запроса на сервер, содержащего запрос на доступ к редактированию цифрового объекта, однако не предусмотрена возможность перехвата доступа на редактирование. Вторым недостатком является то, что решение о передаче доступа на редактирования цифрового объекта принимается исключительно сервером. Третьим недостатком данного решения является то, что система включает множество серверов. Для осуществления системы, описанной в настоящей заявке, необходим лишь один сервер, что значительно уменьшает требуемые вычислительные мощности и себестоимость системы. Также в аналоге упоминается возможность сохранения файлов сервером, однако не описывается частота сохранения или возможность промежуточного сохранения.
[7] Еще одним сходным решением является изобретение по патенту AU2011320745B2 (опубл. 27.11.2014; МПК: G06F 9/44; G06F 15/16; G06F 17/21), в котором описывается сервис онлайн-документов, предоставляющийся серверами приложений для редактирования пользователями. Документы хранятся в структурах на основе компонентов в локальной памяти сервера приложений для обеспечения детализации при совместном редактировании и разрешении конфликтов. Блокировка на уровне компонентов используется для минимизации конфликтов, связанных с одновременным редактированием пользователей, а также для отображения присутствия других пользователей. Изменения структуры на основе компонентов сохраняются, чтобы фиксировать изменения компонентов и синхронизировать действия по сохранению документа. Когда изменения сохраняются одним или несколькими клиентами на сервере, они могут быть сохранены в текущей версии серверного документа, даже если этот документ отличается от версии, используемой для создания текущего представления на клиентском устройстве. Первым недостатком этого решения является то, что в нем предусмотрена отправка запроса на сервер, содержащего запрос на доступ к редактированию цифрового объекта, однако не предусмотрена возможность перехвата доступа на редактирование. Вторым недостатком является то, что решение о передаче доступа на редактирования цифрового объекта принимается исключительно сервером. Также в аналоге упоминается возможность сохранения файлов сервером, однако не описывается частота сохранения или возможность промежуточного сохранения.
[8] Также среди сходных решений есть изобретение по патенту US7249314B2 (опубл. 24.07.2007; МПК: G06F 15/00). В данном источнике раскрыты система и способы одновременного редактирования документа двумя или более пользователями. Документ разделен на несколько разделов. Каждый раздел хранится в отдельном контейнере данных, который является частью дерева документа. Главная копия дерева документов доступна серверу, который передает все или часть дерева документов двум или более клиентам, каждый из которых управляется пользователем. Клиенты могут независимо блокировать разные разделы, позволяя пользователям одновременно редактировать разные разделы. Когда пользователь завершает редактирование раздела, измененный раздел сохраняется на главном сервере и транслируется другим пользователям. Дерево документа возглавляется независимо блокируемым и редактируемым родительским контейнером, который используется для хранения сводной информации и другой информации, такой как форматирование по умолчанию и другая информация, охватывающая весь документ. Первым недостатком этого решения является то, что в нем предусмотрена отправка запроса на сервер, содержащего запрос на доступ к редактированию цифрового объекта, однако не предусмотрена возможность перехвата доступа на редактирование. Вторым недостатком является то, что решение о передаче доступа на редактирование цифрового объекта принимается исключительно сервером. Также в аналоге отсутствует периодическое сохранение документов/файлов и возможность промежуточного сохранения.
[9] Другим сходным решением является изобретение по патенту US8429753B2 (опубл. 23.04.2013; МПК: G06F 21/00). В нем описываются варианты реализации, относящиеся к системам и методам управления доступом к файлам документов на сервере документов. Один пример системы включает файлы документов, хранящиеся на сервере документов, по меньшей мере, один из файлов документов, ссылающихся на блокировку файла, и модуль обработки доступа к документу. Примерный модуль обработки доступа к документу включает в себя модуль обработки совместного использования файлов, который определяет статус совместного редактирования программного приложения клиентского компьютера, запрашивающего доступ к файлу документа, и модуль обработки блокировки файлов, который хранит одну или несколько блокировок файлов и управляет настройкой, и сброс файловых блокировок. Пример модуля обработки доступа к документу использует статус совместного редактирования программного приложения и статус блокировки файла/документа, чтобы определить, разрешено ли приложению программного обеспечения иметь доступ для записи в файл/документ. Первым недостатком этого решения является то, что в нем предусмотрена отправка запроса на сервер, содержащего запрос на доступ к редактированию цифрового объекта, однако не предусмотрена возможность перехвата доступа на редактирование. Вторым недостатком является то, что решение о передаче доступа на редактирование цифрового объекта принимается исключительно сервером. Также, в аналоге отсутствует периодическое сохранение документов/файлов и возможность промежуточного сохранения.
Сущность изобретения
[10] Задачей заявляемого изобретения является создание и разработка системы и способа эффективного и безопасного управления совместным редактированием цифровых объектов с минимизацией человеческого участия, для оптимизации процесса создания цифровых объектов.
[11] Указанная задача решается благодаря такому техническому результату, как обеспечение эффективности управления совместным редактированием цифровых объектов, а также обеспечение безопасности цифровых объектов в режиме совместного редактирования, минимизирующее степень вмешательства человека. Указанная задача достигается в том числе, но не ограничиваясь, благодаря:
• ограничению времени ответа на запрос второго пользователя о передаче прав на редактирование цифрового объекта;
• периодическому формированию резервных копий цифрового объекта в процессе его редактирования;
• передаче прав на редактирование цифрового объекта второму пользователю, запросившему это право, в случае истечения времени ответа на запрос;
• передаче прав на редактирование при помощи сервера.
[12] Более полно технический результат достигается описанным способом управления совместным редактированием цифровых объектов, включающим этапы: отправки первым пользователем запроса на сервер для получения прав на редактирование цифрового объекта, содержащегося в среде совместного редактирования; предоставления сервером первому пользователю прав на редактирование цифрового объекта; отправки вторым пользователем запроса на передачу прав на редактирование цифрового объекта; ожидания сервером ответа первого пользователя на запрос второго пользователя в течение определенного времени. При этом, первый пользователь в течение определенного времени имеет возможность ответить одним из следующих вариантов: передать права на редактирование цифрового объекта второму пользователю; отклонить запрос на передачу прав на редактирование цифрового объекта второму пользователю; не отвечать на запрос передачу прав на редактирование цифрового объекта второму пользователю. Причем, если первый пользователь передал права на редактирование цифрового объекта второму пользователю или не ответил на запрос, при помощи сервера: отзывают права на редактирование цифрового объекта у первого пользователя и предоставляют права на редактирование цифрового объекта второму пользователю.
[13] При этом этап, на котором производят отправку первым пользователем запроса на сервер для получения прав на редактирование цифрового объекта, содержащегося в среде совместного редактирования, и этап предоставления сервером первому пользователю прав на редактирование цифрового объекта необходимы для включения первого пользователя в среду совместного редактирования, а также для того, чтобы первый пользователь имел непосредственную возможность редактирования этого цифрового объекта. Этап отправки вторым пользователем запроса на передачу прав на редактирование цифрового объекта необходим для того, чтобы в среде редактирования второй пользователь имел возможность перехватывать права на редактирование цифрового объекта у первого пользователя, в случае если первый пользователь на данный момент не осуществляет редактирование цифрового объекта. Этап ожидания сервером ответа первого пользователя на запрос второго пользователя в течение определенного времени, в свою очередь, необходим для того, чтобы дать возможность первому пользователю отреагировать на запрос второго пользователя. То, что первый пользователь имеет возможность передачи прав на редактирование цифрового объекта в течение определенного времени, необходимо для того, чтобы первый пользователь мог добровольно передать свои права на редактирование цифрового объекта второму пользователю. То, что первый пользователь имеет возможность отклонить запрос на передачу прав на редактирование цифрового объекта второму пользователю в течение определенного времени, необходимо для того, чтобы первый пользователь мог отклонить передачу прав, в случае если на данный момент первый пользователь осуществляет редактирование этого цифрового объекта. То, что первый пользователь имеет возможность не отвечать на запрос на передачу прав на редактирование цифрового объекта второму пользователю, необходимо, чтобы определить, редактирует ли первый пользователь цифровой объект на данный момент или нет. То, что, в случае если первый пользователь передал права на редактирование цифрового объекта второму или не ответил на запрос, при помощи сервера могут отозвать права у первого пользователя и предоставлять права второму пользователю, необходимо для непосредственного осуществления передачи прав на редактирование цифрового объекта от первого пользователя второму пользователю. В целом, блокирование за пользователем эксклюзивных прав на редактирование цифрового объекта необходимо для предотвращения внесения в цифровой объект несовместимых изменений, то есть, обеспечения безопасности цифрового объекта.
[14] На этапе отправки вторым пользователем запроса на передачу прав на редактирование цифрового объекта запрос могут отправлять напрямую первому пользователю. Это может быть необходимо для того, чтобы первый пользователь мог самостоятельно принять решение о передаче прав на редактирование. В другом варианте могут отправлять запрос серверу. Это может быть нужно, в случае если сервер полностью принимает решение о передаче прав на редактирование. Также возможен вариант отправки запроса и первому пользователю, и серверу.
[15] Перед этапом предоставления права на редактирование цифрового объекта второму пользователю, могут сохранять отредактированный цифровой объект при помощи модуля обновления. В другом варианте могут производить периодическое сохранение цифровых объектов при помощи модуля обновления. Это может увеличить безопасность данных, содержащихся в цифровых объектах.
[16] Этап ожидания ответа первого пользователя на запрос второго пользователя может производиться в течение 1-15 минут. Это время является оптимальным для многих задач. Периодическое сохранение при этом могут производить с периодом меньшим времени ожидания. Это позволит избежать потери данных цифровых объектов.
[17] На этапе отзыва прав на редактирование цифрового объекта у первого пользователя могут отправлять уведомление первому пользователю о том, что права на редактирование цифрового объекта были отозваны, при помощи сервера. Это может позволить проинформировать пользователя о том, что у него больше нет прав на редактирование этого цифрового объекта.
[18] После этапа отзыва прав на редактирование цифрового объекта у первого пользователя при помощи сервера могут сначала исключать первого пользователя из среды совместного редактирования цифрового объекта и добавлять его в среду просмотра. Это может быть нужно для того, чтобы первый пользователь даже после потери прав на редактирование цифрового объекта мог наблюдать за процессом его редактирования.
[19] После сохранения по крайней одного цифрового объекта могут отображать по крайней мере один цифровой объект при помощи среды просмотра без предоставления возможности его редактирования. Это может быть нужно для того, чтобы первый пользователь даже после потери прав на редактирование цифрового объекта мог видеть существенные изменения, вносимые в цифровой объект в ходе его редактирования.
[20] Также в процессе редактирования цифрового объекта могут создавать копию визуального отображения по крайней мере одного цифрового объекта при помощи сервера, передать созданную копию среде совместного редактирования и отображать полученную копию при помощи среды совместного редактирования. Такой вариант может позволить первому пользователю наблюдать за всем процессом редактирования цифрового объекта.
[21] Также технический результат достигается системой управления совместным редактированием цифровых объектов, сконфигурированной для одновременной работы по крайней мере двух пользователей.  Система включает сервер, включающий память и процессор. Память при этом включает по крайней мере одну среду совместного редактирования, которая включает по крайней мере один цифровой объект. Процессор, в свою очередь, сконфигурирован для предоставления прав на редактирование цифрового объекта, содержащегося в среде совместного редактирования; ожидания ответа первого пользователя на запрос второго пользователя на передачу прав на редактирование цифрового объекта в течение определенного времени; и отзыва прав на редактирование цифрового объекта, содержащегося в среде совместного редактирования. Среда совместного редактирования сконфигурирована таким образом, чтобы каждый пользователь имел возможность: отправки запроса серверу прав на редактирование цифрового объекта, содержащегося в среде совместного редактирования; отклонения запроса на передачу прав другому пользователю на редактирование цифрового объекта, содержащегося в среде совместного редактирования, в течение определенного времени; передачи прав другому пользователю на редактирование цифрового объекта, содержащегося в среде совместного редактирования, в течение определенного времени; и редактирования по крайней мере одного цифрового объекта при условии, что пользователю при помощи сервера были предоставлены права на редактирование этого цифрового объекта.
[22] При этом, сервер необходим для хранения среды совместного редактирования и ее цифровых объектов при помощи памяти, а также для организации процесса передачи прав при помощи процессора. Предоставление сервером первому пользователю прав на редактирование цифрового объекта необходим для включения первого пользователя в среду совместного редактирования, а также для того, чтобы первый пользователь имел непосредственную возможность редактирования этого цифрового объекта. Ожидание сервером ответа первого пользователя на запрос второго пользователя в течение определенного времени, в свою очередь, необходимо для того, чтобы дать возможность первому пользователю отреагировать на запрос второго пользователя. А сочетание возможности предоставления и отзыва прав сервером необходимо для непосредственного осуществления передачи прав на редактирование цифрового объекта от первого пользователя второму пользователю. Возможность пользователя отправки запроса на передачу прав на редактирование цифрового объекта серверу необходим для того, чтобы в среде редактирования пользователь имел возможность перехватывать права на редактирование цифрового объекта у другого пользователя, в случае если другой пользователь на данный момент не осуществляет редактирование цифрового объекта. То, что пользователь имеет возможность отклонить запрос на передачу прав на редактирование цифрового объекта другому пользователю в течение определенного времени, необходимо для того, чтобы пользователь мог отклонить передачу прав, в случае если на данный момент пользователь осуществляет редактирование этого цифрового объекта. То, что пользователь имеет возможность передачи прав на редактирование цифрового объекта в течение определенного времени, необходимо для того, чтобы пользователь мог добровольно передать свои права на редактирование цифрового объекта другому пользователю. Возможность пользователями редактирования цифрового объекта необходима для осуществления непосредственного редактирования цифрового объекта, права на редактирование которого закреплены за этим пользователем.
[23] То, что сервер включает модуль обновления, подключенный к памяти, может быть необходимо для промежуточных сохранений изменений в ходе редактирования цифрового объекта. При этом модуль обновления может быть сконфигурирован с возможностью сохранения отредактированных цифровых объектов. Причем, сохранение может быть периодическим сохранением. Периодическое сохранение может осуществляться с периодом меньшим, чем время ожидания ответа первого пользователя на запрос второго пользователя.
[24] То, что сервер сконфигурирован таким образом, что время ожидания ответа первого пользователя на запрос второго пользователя может составлять 1-15 минут, может быть нужно для конкретных задач системы.
[25] Также сервер может быть сконфигурирован с возможностью отправки уведомлений пользователям о том, что права на редактирование цифрового объекта были отозваны. Это может позволить проинформировать пользователя о том, что у него больше нет прав на редактирование этого цифрового объекта.
[26] Сервер может включать среду просмотра, связанную со средой совместного редактирования, причем сервер может быть сконфигурирован с возможностью исключения пользователей из среды совместного редактирования цифрового объекта и добавления пользователей в среду просмотра. Это может быть нужно для того, чтобы первый пользователь даже после потери прав на редактирование цифрового объекта мог наблюдать за процессом его редактирования.
[27] Среда просмотра может быть сконфигурирована с возможностью отображения по крайней мере одного цифрового объекта из среды совместного редактирования без предоставления возможности его редактирования, причем отображают цифровые объекты только с сохраненными изменениями. Это также может быть нужно для того, чтобы первый пользователь даже после потери прав на редактирование цифрового объекта мог наблюдать за процессом его редактирования. При этом такой вариант выполнения отображения редактируемых цифровых объектов может позволить отображать только существенные изменения, внесенные в цифровой объект.
[28] Среда просмотра может быть сконфигурирована с возможностью отображения цифровые объектов со всеми внесенными в цифровые объекты изменениями. Такой вариант может позволить первому пользователю наблюдать за всем процессом редактирования цифрового объекта.
Описание чертежей
[29] На Фиг. 1 представлена блок-схема, иллюстрирующая способ управления совместным редактированием цифровых объектов, согласно настоящему изобретению.
[30] На Фиг. 2 представлена блок-схема, иллюстрирующая способ управления совместным редактированием цифровых объектов с дополнительными этапами, согласно настоящему изобретению.
[31] На Фиг. 3 представлен схематичный вид системы управления совместным редактированием цифровых объектов согласно настоящему изобретению.
[32] На Фиг. 4 представлен схематичный вид системы управления совместным редактированием цифровых объектов согласно настоящему изобретению с дополнительными элементами.
Подробное описание
[33] В приведенном ниже подробном описании реализации изобретения приведены многочисленные детали реализации, призванные обеспечить отчетливое понимание настоящего изобретения. Однако, квалифицированному в предметной области специалисту очевидно, каким образом можно использовать настоящее изобретение, как с данными деталями реализации, так и без них. В других случаях, хорошо известные методы, процедуры и компоненты не описаны подробно, чтобы не затруднять излишнее понимание особенностей настоящего изобретения.
[34] Кроме того, из приведенного изложения ясно, что изобретение не ограничивается приведенной реализацией. Многочисленные возможные модификации, изменения, вариации и замены, сохраняющие суть и форму настоящего изобретения, очевидны для квалифицированных в предметной области специалистов.
[35] Настоящие система и способ управления совместным редактированием цифровых объектов могут применяться для различных сред совместного редактирования, в которых предусмотрена возможность эксклюзивной блокировки цифрового объекта за пользователем. Эксклюзивные блокировки защищают цифровые объекты от несовместимых обновлений/изменений. Они могут принадлежать только одному пользователю одновременно. Любой пользователь, запрашивающий эксклюзивную блокировку, должен ожидать освобождения цифрового объекта и передачи прав на его редактирование, если другой пользователь в настоящее время владеет эксклюзивной блокировкой запрошенного цифрового объекта.
[36] На Фиг. 1 представлена блок-схема, иллюстрирующая способ управления совместным редактированием цифровых объектов, согласно настоящему изобретению. Сначала осуществляют отправку первым пользователем запроса на сервер для получения прав на редактирование цифрового объекта. Если цифровой объект свободен, то при помощи сервера предоставляют первому пользователю права на редактирование цифрового объекта. Сразу или через какое-то время осуществляют отправку вторым пользователем запроса на передачу прав на редактирование цифрового объекта, права на редактирование которого на данный момент принадлежат первому пользователю. С момента отправки запроса производят ожидание сервером ответа первого пользователя на запрос второго пользователя в течение определенного времени. При этом, в случае если первый пользователь успел ответить на запрос в течение определенного времени и отказал в передаче прав на редактирование цифрового объекта второму пользователю, то права на редактирование цифрового объекта второму пользователю не предоставляют. В противном случае, а именно в случае, если первый пользователь не успел ответить на запрос второго пользователя или успел и передал права на редактирование второму пользователю, то при помощи сервера сначала отзывают права на редактирование цифрового объекта у первого пользователя, а затем предоставляют права на редактирование цифрового объекта второму пользователю.
[37] Под первым и вторым пользователями понимаются люди, осуществляющие взаимодействие с цифровыми объектами среды совместного редактирования посредством клиента пользователя. Клиент — это аппаратный или программный компонент вычислительной системы, посылающий запросы серверу. Программа, являющаяся клиентом, взаимодействует с сервером, используя определённый протокол. Она может запрашивать с сервера какие-либо данные, манипулировать данными непосредственно на сервере, запускать на сервере новые процессы и т.п. Полученные от сервера данные клиентская программа может предоставлять пользователю или использовать как-либо иначе, в зависимости от назначения программы. Цифровой объект — объект, состоящий из структурированной последовательности байтов, имеющий название, уникальный идентификатор и атрибуты, описывающие его свойства. В рамках настоящего изобретения под цифровым объектом понимается любой документ, файл, таблица или какие-либо их компоненты, размещенные в цифровой среде.
[38] Определенное время, в течение которого ожидают ответа от первого пользователя на запрос второго пользователя, может быть разным, в зависимости от конкретного применения способа. Однако, при осуществлении способа оно должно быть заранее определено и задано. Оно задается специально с целью ограничить время ответа первого пользователя. В случае, если пользователь никак не отвечает на запрос в течение этого определенного времени, сервер интерпретирует это как факт того, что первый пользователь на данный момент не осуществляет редактирование цифрового объекта, права на редактирование которого ему принадлежат. В связи с этим, права на редактирование этого цифрового объекта могут быть переданы второму пользователю, запросившему передачу прав.
[39] На Фиг. 2 изображена блок-схема, иллюстрирующая способ управления совместным редактированием цифровых объектов с дополнительными этапами, согласно настоящему изобретению. Изображенные на ней и нижеописанные этапы могут использоваться в способе управления совместным редактированием цифровых объектов, в дополнение к вышеописанным этапам, по отдельности, в совокупности и в любой комбинации.
[40] В частности, после того как первому пользователю были предоставлены права на редактирование цифрового объекта первый пользователь может осуществлять редактирование этого цифрового объекта. При этом в процессе работы могут осуществлять сохранение цифрового объекта.
[41] Сохранение может осуществляться несколькими способами. Во-первых, пользователь может сохранять изменения, внесенные в процессе редактирования цифрового объекта, самостоятельно и на любом этапе редактирования. Во-вторых, возможно предусмотреть периодическое сохранение изменений, внесенных в цифровой объект. При этом, в случае если предусмотрено периодическое сохранение цифрового объекта, то предпочтительно, чтобы период сохранения изменений был меньше, чем время ожидания сервером ответа первого пользователя на запрос второго пользователя. В случае, если период больше или равен времени ожидания, то существует риск потери данных об изменениях, которые были внесены первым пользователем в цифровой объект в случае его передачи второму пользователю. Например, если время ожидания составляет 3 минуты, а период сохранения – 5 минут, то возможна ситуация, когда первый пользователь вносил изменения в цифровой объект 1 минуту назад. Спустя эту одну минуту, второй пользователь отправил запрос на передачу прав на редактирование цифрового объекта, а первый пользователь не ответил на этот запрос в течение 3-х минут. Тогда второму пользователю будут переданы права на редактирование цифрового объекта, причем в переданном цифровом объекте будут отсутствовать изменения, внесенные в него 4 минуты назад, т.к. период сохранения равен 5 минутам. Для предотвращения такой потери данных может применяться третий способ сохранения цифрового объекта – а именно сохранение изменений, внесенных первым пользователем, перед непосредственной передачей прав на редактирование этого цифрового объекта второму пользователю. То есть, даже если внесенные изменения не были сохранены посредством периодического сохранения, они в любом случае будут сохранены перед передачей прав. Все эти три способа сохранения могут применяться как по отдельности, так и в совокупности или любой комбинации.
[42] Второй пользователь может отправлять запрос на передачу прав на редактирование первому пользователю, имеющему эти права, серверу или первому пользователю и серверу одновременно. В случае отправки только первому пользователю, передача прав на редактирование может не осуществиться вовсе, по причине того, что первый пользователь может быть не подключен к серверу на момент отправки запроса вторым пользователем, а т.к. серверу запрос не отправлялся, то сервер не может предоставить права на редактирование цифрового объекта второму пользователю. В остальных случаях, даже если первый пользователь не подключен к серверу и не может ответить на запрос, сервер может отозвать права на редактирования у первого пользователя и предоставить права на редактирование второму пользователю.
[43] Время ожидания сервером ответа первого пользователя на запрос второго пользователя может быть установлено в диапазоне 1-15 минут, в зависимости от конкретных задач способа. В случае, если задавать время меньше минуты, у пользователя может не хватить времени среагировать на поступивший ему запрос, т.к. ему нужно будет, например, переключиться с редактирования на прочтение текста запроса, прочитать его, понять, какой цифровой объект запрашивают, и ответить на запрос. В случае, если время ожидания составляет более 15 минут, то это будет значительно затягивать процесс работы пользователями, т.к. при отправке запроса на редактирование второй пользователь может рассчитывать получить права на редактирование цифрового объекта как можно раньше для того, чтобы скорее приступить к его редактированию. В связи с этим, время ожидания 1-15 минут является оптимальным временем ожидания. При этом, в случае добавления функции периодического сохранения цифрового объекта, следует установить период сохранения меньше 1-15 минут или предусмотреть возможность сохранения изменений, внесенных первым пользователем, перед непосредственной передачей прав на редактирование этого цифрового объекта второму пользователю.
[44] В случае отзыва прав на редактирование цифрового объекта у первого пользователя, непосредственно после отзыва прав могут дополнительно отправлять уведомление первому пользователю о том, что права на редактирование конкретного цифрового объекта были отозваны.
[45] Если первому пользователю были предоставлены права на редактирование только одного цифрового объекта, то после их отзыва могут также исключать первого пользователя из среды совместного редактирования цифровых объектов. При этом, если предусмотрена среда просмотра, то первого пользователя могут добавлять в среду просмотра для предоставления ему возможности наблюдения за редактированием цифрового объекта.
[46] После сохранения по крайней одного цифрового объекта могут отображать по крайней мере один цифровой объект при помощи среды просмотра без предоставления возможности его редактирования. То есть, после каждого сохранения изменений, внесенных в цифровой объект, создают его визуальную копию при помощи сервера и передают созданную копию в среду просмотра. При помощи среды просмотра, в свою очередь, отображают полученную копию. Таким образом, сохранение цифрового объекта является событием-триггером для отображения цифрового объекта в среде просмотра. При этом первый пользователь имеет возможность наблюдать за внесением существенных сохраненных изменений в цифровой объект, находясь в среде просмотра.
[47] В другом варианте, в процессе редактирования цифрового объекта могут создавать копию визуального отображения по крайней мере одного цифрового объекта при помощи сервера, передать созданную копию среде совместного редактирования и отображать полученную копию при помощи среды совместного редактирования. Такой вариант может позволить первому пользователю наблюдать за всем процессом редактирования цифрового объекта. От ранее описанного способа он отличается тем, что не имеет событие-триггер. Все изменения визуализируют в среде просмотра непрерывно и/или с определенной периодичностью. Определенная периодичность при этом предпочтительно установить до 1 минуты. Таким образом, первый пользователь имеет возможность наблюдать за текущим состоянием цифрового объекта в режиме реального времени, находясь в среде просмотра.
[48] Способ управления совместным редактированием цифровых объектов при включении всех дополнительных этапов, показанных на Фиг. 2, осуществляется следующим образом. Сначала осуществляют отправку первым пользователем запроса на сервер для получения прав на редактирование цифрового объекта. Если цифровой объект свободен, то при помощи сервера предоставляют первому пользователю права на редактирование цифрового объекта. После предоставления прав на редактирование цифрового объекта первому пользователю первый пользователь может осуществлять редактирование цифрового объекта. При этом в процессе редактирования первый пользователь может самостоятельно сохранять изменения, внесенные в цифровой объект, на любой стадии редактирования. Параллельно этому производят периодическое сохранение изменений, внесенных в цифровой объект. Сразу или через какое-то время осуществляют отправку вторым пользователем первому пользователю и/или серверу запроса на передачу прав на редактирование цифрового объекта, права на редактирование которого на данный момент принадлежат первому пользователю. С момента отправки запроса производят ожидание сервером ответа первого пользователя на запрос второго пользователя в течение определенного времени. При этом, в случае если первый пользователь успел ответить на запрос в течение определенного времени и отказал в передаче прав на редактирование цифрового объекта второму пользователю, то права на редактирование цифрового объекта второму пользователю не предоставляют. В противном случае, а именно в случае, если первый пользователь не успел ответить на запрос второго пользователя или успел и передал права на редактирование второму пользователю, то при помощи сервера сначала сохраняют изменения, внесенные в цифровой объект первым пользователем, а затем отзывают права на редактирование цифрового объекта у первого пользователя. После этого отправляют уведомление первому пользователю о том, что права на редактирование цифрового объекта были отозваны, и исключают первого пользователя из среды совместного редактирования. После исключения первого пользователя могут добавлять в среду просмотра. Далее, предоставляют права на редактирование цифрового объекта второму пользователю. Ожидание ответа сервером при этом осуществляют на протяжении 1-15 минут, а периодическое сохранение изменений цифрового объекта производят с периодом меньшим 1-15 минут. При этом в ходе редактирования цифрового объекта после сохранения, непрерывно и/или с определенной периодичностью создают копию визуального отображения по крайней мере одного цифрового объекта и передают созданную копию в среду просмотра при помощи сервера. После этого отображают полученную копию при помощи среды просмотра.
[49] Также возможна ситуация, когда после отправки запроса вторым пользователем на передачу прав на редактирование цифрового объекта сервер проверяет, установлено ли соединение первого пользователя с сервером. Т.е. подключен ли первый пользователь, имеющий права на редактирования этого цифрового объекта, к среде совместного редактирования. В случае же, если это соединение не установлено, то сервер, не ожидания ответа первого пользователя, отзывает прав на редактирование цифрового объекта у первого пользователя и предоставляет права на редактирование цифрового объекта второму пользователю.
1
2
3
3
6
7
6
3
5
4
7
4
5
1
2
4
4
5
5
1
2
3
4
1
2
4
1
2
4
4
1
2
3
4
[50] На Фиг. 3 изображен схематичный вид системы управления совместным редактированием цифровых объектов согласно настоящему изобретению. Система управления совместным редактированием цифровых объектов сконфигурирована для одновременной работы по крайней мере двух пользователей , и включает сервер . Сервер , в свою очередь, включает память  и процессор . Память  сервера  включает по крайней мере одну среду совместного редактирования , включающую по крайней мере один цифровой объект . Процессор  сконфигурирован для: предоставления прав на редактирование цифрового объекта , содержащегося в среде совместного редактирования ; ожидания ответа первого пользователя  на запрос второго пользователя  на передачу прав на редактирование цифрового объекта  в течение определенного времени, а также для отзыва прав на редактирование цифрового объекта , содержащегося в среде совместного редактирования . Среда совместного редактирования  сконфигурирована таким образом, чтобы каждый пользователь ,  имел возможность: отправки запроса серверу  на передачу прав на редактирование цифрового объекта ; отклонение запроса на передачу прав другому пользователю ,  на редактирование цифрового объекта  в течение определенного времени; передачи прав другому пользователю ,  на редактирование цифрового объекта  в течение определенного времени; а также редактирования по крайней мере одного цифрового объекта  при условии, что пользователю ,  при помощи сервера  были предоставлены права на редактирование этого цифрового объекта .
5
4
[51] Среда совместного редактирования , в частном случае, может представлять собой интегрированную среду разработки (далее – ИСP) (англ. Integrated development environment — IDE), также называемую единой средой разработки (ЕСР). ИСР – это комплекс программных средств, используемый программистами для разработки программного обеспечения (ПО). ИСР может включать текстовый редактор, транслятор (компилятор и/или интерпретатор), средства автоматизации сборки, отладчик и др. В некоторых случаях ИСР также может содержать средства для интеграции с системами управления версиями и разнообразные инструменты для упрощения конструирования графического интерфейса пользователя. Многие современные среды разработки также включают браузер классов, инспектор объектов и диаграмму иерархии классов — для использования при объектно-ориентированной разработке ПО. ИСР обычно предназначены для нескольких языков программирования — такие как IntelliJ IDEA, NetBeans, Eclipse, Qt Creator, Geany, Embarcadero RAD Studio, Code::Blocks, Xcode или Microsoft Visual Studio, но есть и IDE для одного определённого языка программирования — как, например, Visual Basic, Delphi, Dev-C++. В этом случае, в качестве цифрового объекта  может подразумеваться, например, часть кода (некоторые строки кода) или один из файлов, включающийся в совокупный код.
4
[52] Частный случай ИСР — среда визуальной разработки, которая включает возможность наглядного редактирования интерфейса программы. В этом случае в качестве цифрового объекта может подразумеваться виджет, форма, элемент управления и др.
1
2
4
4
[53] Также могут быть предусмотрены варианты, в которых среда совместного редактирования является комплексом программных средств, используемым пользователями для редактирования файлов, таблиц и/или документов. В случае таблиц за пользователем ,  могут закрепляться права на редактирование конкретной колонки, строки, ячейки, листа, всей таблицы и др. В этом случае колонка, строка, ячейка, лист и вся таблица являются цифровыми объектами . Для документа цифровым объектом  может являться срока, абзац, страница или весь документ целиком.
4
[54] Таким образом, для различных типов цифровых файлов цифровым объектом  является какая-то его строго определенная часть или цифровой файл целиком.
1
2
4
5
3
3
3
3
3
1
2
[55] Под первым  и вторым  пользователями понимаются люди, осуществляющие взаимодействие с цифровыми объектами  среды совместного редактирования  посредством клиента пользователя. Клиент — это аппаратный или программный компонент вычислительной системы, посылающий запросы серверу. Программа, являющаяся клиентом, взаимодействует с сервером , используя определённый протокол. Она может запрашивать с сервера  какие-либо данные, манипулировать данными непосредственно на сервере , запускать на сервере  новые процессы и т. п. Полученные от сервера  данные клиентская программа может предоставлять пользователю ,  или использовать как-либо иначе, в зависимости от назначения программы.
1
3
4
4
3
1
4
2
4
1,
3
1
2
1
4
2
3
4
2
1
2
2
3
4
1
4
2
4
5
6
3
3
7
3
[56] Система управления совместным редактированием, показанная на Фиг. 3, работает следующим образом. При отправке первым пользователем  запроса на сервер  для получения прав на редактирование цифрового объекта , если цифровой объект  свободен, то при помощи сервера  предоставляют первому пользователю  права на редактирование этого цифрового объекта . При отправке вторым пользователем  запроса на передачу прав на редактирование цифрового объекта , права на редактирование которого на данный момент принадлежат первому пользователю  производят ожидание сервером  ответа первого пользователя  на запрос второго пользователя  в течение определенного времени. При этом, в случае если первый пользователь  успел ответить на запрос в течение определенного времени и отказал в передаче прав на редактирование цифрового объекта  второму пользователю , то сервер  права на редактирование цифрового объекта  второму пользователю  не предоставляет. В противном случае, а именно в случае, если первый пользователь  не успел ответить на запрос второго пользователя  или успел и передал права на редактирование второму пользователю , то при помощи сервера  сначала отзывают права на редактирование цифрового объекта  у первого пользователя , а затем предоставляют права на редактирование цифрового объекта  второму пользователю . При этом цифровой объект  хранится в среде совместного редактирования , включающейся в память  сервера , а все действия, осуществляемые сервером , осуществляются при помощи процессора  сервера .
[57] На Фиг. 4 изображен схематичный вид системы управления совместным редактированием цифровых объектов с дополнительными элементами согласно настоящему изобретению. Изображенные на ней и нижеописанные элементы могут использоваться в системе управления совместным редактированием цифровых объектов, в дополнение к вышеописанным элементам, по отдельности, в совокупности и в любой комбинации.
3
8
6
8
5
6
8
4
1
2
[58] В частности, сервер  может включать модуль обновления , подключенный к памяти . Модуль обновления  предназначен для обновления данных среды совместного редактирования , хранящейся в памяти . В частности, модуль обновления  может быть сконфигурирован с возможностью сохранения изменений в цифровых объектах , вносимых пользователями , .
8
1
2
8
4
4
8
4
3
1
2
1
4
2
4
1
8
4
2
8
[59] Модуль обновления  может быть сконфигурирован с возможностью сохранения изменений несколькими способами. Во-первых, пользователь ,  может сохранять изменения посредством модуля обновления , внесенные в процессе редактирования цифрового объекта , самостоятельно и на любом этапе редактирования. Во-вторых, возможно предусмотреть периодическое сохранение изменений, внесенных в цифровой объект , модулем обновления . При этом, в случае если предусмотрено периодическое сохранение цифрового объекта , то предпочтительно, чтобы период сохранения изменений был меньше, чем время ожидания сервером  ответа первого пользователя  на запрос второго пользователя . В случае, если период больше или равен времени ожидания, то существует риск потери данных об изменениях, которые были внесены первым пользователем  в цифровой объект  в случае его передачи второму пользователю , как это было описано ранее. Для предотвращения такой потери данных может применяться третий способ сохранения цифрового объекта , а именно сохранение изменений, внесенных первым пользователем , модулем обновления  перед непосредственной передачей прав на редактирование этого цифрового объекта  второму пользователю . Все эти три способа сохранения могут применяться модулем обновления  как по отдельности, так и в совокупности или любой комбинации.
7
3
1
2
1
4
1
2
2
4
4
8
1
4
2
[60] Процессор  может быть сконфигурирован таким образом, что время ожидания сервером  ответа первого пользователя  на запрос второго пользователя  может быть установлен в диапазоне 1-15 минут, в зависимости от конкретных задач системы. В случае, если задавать время меньше минуты, у пользователя  может не хватить времени среагировать на поступивший ему запрос, т.к. ему нужно будет, например, переключиться с редактирования на прочтение текста запроса, прочитать его, понять, какой цифровой объект  запрашивают и ответить на запрос. В случае, если время ожидания составляет более 15 минут, то это будет значительно затягивать процесс работы пользователями , , т.к. при отправке запроса на редактирование второй пользователь  может рассчитывать получить права на редактирование цифрового объекта  как можно раньше для того, чтобы скорее приступить к его редактированию. В связи с этим, время ожидания 1-15 минут является оптимальным временем ожидания. При этом, в случае добавления функции периодического сохранения цифрового объекта модулем обновления , следует установить период сохранения меньше 1-15 минут или предусмотреть возможность сохранения изменений, внесенных первым пользователем , перед непосредственной передачей прав на редактирование этого цифрового объекта  второму пользователю .
7
3
1
2
4
1
2
4
7
5
4
1
2
4
4
[61] Процессор  сервера  может дополнительно быть сконфигурирован с возможностью отправки уведомлений пользователям ,  о том, что права на редактирование цифрового объекта  были отозваны. Это может позволить проинформировать пользователя ,  о потере прав на редактирование конкретного цифрового объекта . Процессор  может отправлять уведомление посредством интерфейса среды совместного редактирования , в браузере во время активного использования или в виде уведомления на электронную почту. При этом уведомление может включать как минимум название и/или некоторый идентификатор цифрового объекта , права на редактирование которого были отозваны. Также уведомление может включать идентификатор пользователя , , которому были переданы права на редактирование цифрового объекта  и/или текущий статус цифрового объекта .
3
9
5
9
4
4
4
5
9
9
4
4
6
8
4
4
9
8
9
5
4
4
4
5
9
5
5
4
[62] Также сервер  может дополнительно включать среду просмотра , связанную со средой совместного редактирования . Среда просмотра  предназначена для отображения изменений цифрового объекта , части цифровых объектов  или всех цифровых объектов , включающихся в среду совместного редактирования . Среда просмотра может быть реализована несколькими способами. Во-первых, среда просмотра  может отображать цифровые объекты  только в том виде, в котором они  сохранены на данный момент в памяти . То есть, если модуль обновления  совершает периодическое сохранение цифровых объектов  раз в минуту, то отображение цифровых объектов в среде просмотра  будет меняться каждую минуту в момент сохранения изменений модулем обновления . Во-вторых, среда просмотра , за счет своего подключения к среде совместного редактирования , может отображать текущее состояние цифрового объекта . В этом случае, изменение отображения цифрового объекта будет осуществляться с каждым внесенным изменением в цифровой объект в среде совместного редактирования . Среда просмотра при этом будет являться «зеркалом» среды совместного редактирования , не предоставляющий функционал среды совместного редактирования , а лишь отображающим цифровые объекты  в их текущем состоянии.
9
7
3
1
2
5
4
1
2
9
1
2
4
1
2
1
2
4
4
[63] При включении среды просмотра в систему управления совместным редактированием цифровых объектов процессор  сервера  может дополнительно быть сконфигурирован с возможностью исключения пользователей , из среды совместного редактирования  цифрового объекта , а также добавления пользователей , в среду просмотра . Это может быть нужно для того, чтобы предоставить пользователю ,  возможность наблюдения за ходом редактирования цифрового объекта , а также для того, чтобы пользователь ,  имел возможность узнать, когда другой пользователь ,  прекратил редактирование цифрового объекта . Также это может обеспечить возможность идентификации не редактируемых на данный момент цифровых объектов .
1
3
4
4
3
1
4
3
1
4
4
8
8
4
6
2
4
1,
3
1
2
1
4
2
3
4
2
1
2
2
3
4
1
4
2
3
1
4
1
5
1
9
4
6
8
3
4
2
3
4
4
4
9
3
9
4
5
6
3
3
7
3
[64] Система управления совместным редактированием цифровых объектов при включении всех дополнительных элементов, показанных на Фиг. 4, работает следующим образом. При отправке первым пользователем  запроса на сервер  для получения прав на редактирование цифрового объекта , если цифровой объект  свободен, то при помощи сервера  предоставляют первому пользователю  права на редактирование этого цифрового объекта . После предоставления сервером  прав первому пользователю  на редактирование цифрового объекта  первый пользователь может осуществлять редактирование цифрового объекта  и сохранять изменения в ходе редактирования при помощи модуля обновления . Параллельно при помощи модуля обновления  также осуществляют периодическое сохранение цифрового объекта  в памяти . При отправке вторым пользователем  запроса на передачу прав на редактирование цифрового объекта , права на редактирование которого на данный момент принадлежат первому пользователю  производят ожидание сервером  ответа первого пользователя  на запрос второго пользователя  в течение определенного времени (1-15 минут). При этом, в случае если первый пользователь  успел ответить на запрос в течение определенного времени и отказал в передаче прав на редактирование цифрового объекта  второму пользователю , то сервер  права на редактирование цифрового объекта  второму пользователю  не предоставляет. В противном случае, а именно в случае, если первый пользователь  не успел ответить на запрос второго пользователя  или успел и передал права на редактирование второму пользователю , то при помощи сервера  сначала отзывают права на редактирование цифрового объекта  у первого пользователя , а затем предоставляют права на редактирование цифрового объекта  второму пользователю . После этого при помощи сервера  отправляют уведомление первому пользователю  о том, что права на редактирование цифрового объекта  были отозваны, и исключают первого пользователя  из среды совместного редактирования . После исключения первого пользователя  могут добавить в среду просмотра . После этого сохраняют текущее состояние цифрового объекта  в память  при помощи модуля обновления . Далее, при помощи сервера  предоставляют права на редактирование цифрового объекта  второму пользователю . Ожидание ответа сервером  при этом осуществляют на протяжении 1-15 минут, а периодическое сохранение изменений цифрового объекта  производят с периодом меньшим 1-15 минут. Параллельно в ходе редактирования цифрового объекта  после сохранения, непрерывно и/или с определенной периодичностью создают копию визуального отображения по крайней мере одного цифрового объекта  и передают созданную копию в среду просмотра  при помощи сервера . После этого отображают полученную копию при помощи среды просмотра . При этом цифровой объект  храниться в среде совместного редактирования , включающейся в память  сервера , а все действия, осуществляемые сервером , осуществляются при помощи процессора  сервера .
[65] В настоящих материалах заявки представлено предпочтительное раскрытие осуществления заявленного технического решения, которое не должно использоваться как ограничивающее иные, частные воплощения его реализации, которые не выходят за рамки запрашиваемого объема правовой охраны и являются очевидными для специалистов в соответствующей области техники.