Система и способ для координации одновременных редакций совместно используемых цифровых данных
Иллюстрации
Показать всеИзобретение относится к области систем совместного использования цифровых данных. Техническим результатом является обеспечение возможности координации одновременных команд от множества пользовательских компьютеров в электронной сети для управления совместно используемыми данными и их редактирования на множестве компьютеров. Координирующее устройство может принимать команды для редактирования совместно используемых цифровых данных от множественных независимо работающих пользовательских компьютеров. Координирующее устройство может определять, что две или более команды от соответствующих пользовательских компьютеров являются взаимоисключающими, избыточными или иначе конфликтующими. Координирующее устройство может внедрять одну из множественных команд в глобальную очередь команд и может отменять другую(ие). Координирующее устройство может передавать глобальные команды на все пользовательские компьютеры для локального выполнения для реализации на них одних и тех же совместно используемых цифровых данных. 2 н. и 12 з.п. ф-лы, 7 ил.
Реферат
Область техники
Настоящее изобретение относится к системе и способу для совместного использования цифровых данных и, в частности, к таким системе и способу для координации редактирования таких данных на множестве компьютеров по сети.
Уровень техники
Интернет позволяет пользователям компьютеров во всем мире осуществлять электронное взаимодействие и связь. Например, пользователи могут отправлять и получать сообщения электронной почты, просматривать веб-страницы, загружать музыку, программное обеспечение, видеозаписи и осуществлять многие другие действия.
Видеоданные особенно часто передаются через интернет. Популярные веб-сайты совместного использования видео, например YouTube, MetaCafe и пр., позволяют пользователям выгружать созданное пользователем и другое видеосодержимое для совместного использования зрителями через интернет.
Веб-сайты совместного использования видеосодержимого принимают все большие объемы такого видеосодержимого для отображения. Однако в настоящее время пользователю, желающему просматривать видеосодержимое с другим пользователем в удаленном местоположении, нелегко полностью совместно совершать просмотр. Например, если один пользователь желает остановить воспроизведение видео для изучения кадра, “отмотать назад” (переместиться назад в потоке) или “промотать вперед” (переместиться вперед в потоке), видеосодержимое для этого пользователя уже не будет синхронизировано с видеосодержимым другого пользователя.
Другие возможные реализации совместного использования данных по сети для различных типов групповых действий, например для деловых, образовательных или иных целей, могут включать в себя две или более стороны, редактирующих данные, например фильм, текст или мультимедийный документ, одно или более изображений, презентацию или любые другие цифровые данные.
Синхронизация видеоданных не представляет трудности для двух устройств, физически находящихся в близких местоположениях, как описано, например, в публикации патентной заявки США № 2007/0136769. В этой заявке одно видеоустройство передает видеоданные на другое видеоустройство для управления синхронизацией. Хотя этот тип совместного использования был предложен для интернета, он совершенно неэффективен, поскольку видеоданные эффективно передаются с сервера на первый компьютер и затем с первого компьютера на второй компьютер.
В международной публикации патентной заявки № WO 2007/079334 описан другой тип синхронизированной системы, в которой хост-компьютер подключен к множеству клиентских устройств. Однако клиентские устройства описаны как специализированные видеопроигрыватели, тогда как хост-компьютер описан как выполняющий мультимедийное программное обеспечение, например программное обеспечение iTunes® от Apple Computer Inc. Такая система была бы пригодна в домашних условиях, например, позволяя пользователю вещать воспроизводимые материалы по частной сети. Она не позволяет удаленным пользователям совместно использовать и синхронизировать редактирование цифрового содержимого, например видео, через сеть, например, интернет.
Доступные в настоящее время решения позволяют пользователю вещать совместно используемые данные с единственного компьютера для управления отображением совместно используемых данных на множестве подключенных компьютеров. Однако доступные в настоящее время решения не позволяют координировать одновременные команды от множественных пользователей для управления совместно используемыми данными и их редактирования на множестве компьютеров, и только настоящее изобретение дает такую возможность.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Существует неудовлетворенная потребность в системе и способе для координации команд от множества пользовательских компьютеров в электронной сети для их редактирования и изменения или дублирования совместно используемых цифровых данных, которые было бы весьма полезно иметь.
Также существует неудовлетворенная потребность в системе и способе, позволяющих совместно использовать и редактировать такие цифровые данные, одновременно регулируя и синхронизируя отображение отредактированных данных на множестве компьютеров через сеть, которые было бы весьма полезно иметь.
Также существует неудовлетворенная потребность в системе и способе, которые позволяют всем участникам сеанса управлять редактированием цифровых данных по электронной сети, которые было бы весьма полезно иметь.
Настоящее изобретение преодолевает недостатки уровня техники за счет обеспечения системы и способа для координации одновременных или противоречивых команд от множественных пользователей для управления совместно используемыми цифровыми данными через сеть. Неограничительные примеры таких цифровых данных могут включать в себя видео, аудио, текст или мультимедийные документы, игры, одно или более изображений или презентации.
Согласно некоторым вариантам осуществления изобретение можно реализовать посредством веб-сайта, который позволяет людям совместно использовать содержимое данных.
Согласно другим вариантам осуществления изобретение можно реализовать посредством приложения, которое осуществляет связь по сети согласно протоколу связи одноранговых устройств.
Приложение, будучи реализовано как веб-сайт или как приложение связи одноранговых устройств, может использоваться сеансами. Участники сеанса могут представлять собой множество подключенных компьютеров (например, подключенных к веб-сайту в реализации на основе веб-сайта или подключенных к другим компьютерам в реализации на основе связи одноранговых устройств). Каждый сеанс может инициироваться любым участником. В целях иллюстрации, инициатор сеанса может именоваться “инициатором”. Инициатор может начинать сеанс, приглашая других участников присоединиться к сеансу. В ходе сеанса участники могут присоединяться к сеансу или покидать его. Сеанс, предпочтительно, заканчивается, когда инициатор прекращает или покидает сеанс.
Согласно другим вариантам осуществления настоящего изобретения каждый участник сеанса может совместно использовать свое цифровое содержимое, например, размещая содержимое в совместно используемом месте, например в ячейке памяти, в котором могут обращаться все участники сеанса, например, с использованием унифицированного указателя ресурса (URL) или другой информации адреса, или указывая содержимое, расположенное на собственном компьютере пользователя. В последнем случае содержимое можно выгружать на сервер. Выгрузка, предпочтительно, является прозрачной для пользователя.
Согласно некоторым вариантам осуществления настоящего изобретения инициатор сеанса может управлять сеансом или, альтернативно, каждый пользователь может иметь равные возможности управления. В еще одном варианте осуществления каждый компьютер может иметь заранее определенный уровень управления, связанный с уровнем приоритета компьютера. Инициатор сеанса может делегировать управление сеансом одному или более участникам сеанса. Управление сеансом может включать в себя выгрузку совместно используемых цифровых данных, редактирование совместно используемого цифрового содержимого, воспроизведение, остановку, постановку на паузу, перемотку назад или вперед совместно используемого видеосодержимого; когда содержимое включает в себя документ, или презентацию, или фотоальбом, или любой другой многостраничный или многослойный документ, управление сеансом может включать в себя редактирование содержимого документа или переключение слоев, например переход вперед, назад или к конкретной странице или конкретному слою.
Согласно некоторым вариантам осуществления настоящего изобретения всякий раз, когда один из контроллеров осуществляет одну из этих команд, команда может переноситься на всех остальных участников сеанса с использованием, например, протокола HTTP (для реализации на основе веб-сайта) или протокола связи одноранговых устройств (для реализации на основе связи одноранговых устройств). Команда может предписывать одновременное или однородное изменение видео/аудио/текстового содержимого на всех компьютерах участников сеанса. Следует понимать, что эти команды приведены исключительно в порядке примера, и что система и способ настоящего изобретения могут предусматривать и другие команды.
Согласно другим вариантам осуществления настоящего изобретения содержимое данных может храниться на одном или более устройствах обслуживания содержимого. Воспроизводимое в данный момент содержимое может передаваться с устройства обслуживания содержимого на все компьютеры, участвующие в сеансе. Содержимое может воспроизводиться на каждом компьютере посредством приложения, например, текстового редактора или видео- или медиаплеера. Команда(ы) управления может/могут передаваться от приложения одного из компьютеров, участвующих в сеансе, на координирующее устройство, например сервер. Координирующее устройство может сначала определять, существует ли хотя бы одна конфликтующая команда, ожидающая выполнения, от других управляющих компьютеров, и, если нет, сервер может передавать проверенную(ые) команду(ы) соответствующему приложению на других компьютерах.
Согласно другим вариантам осуществления настоящего изобретения, когда множественные компьютеры подают соответствующие команды для редактирования содержимого совместно используемых цифровых данных, координирующее устройство, например приложение, компьютер или сервер, может координировать эти команды. Когда соответствующие команды запускают редакции или операции, которые являются противоречивыми, избыточными или взаимоисключающими, для изменения одного и того же или перекрывающегося содержимого совместно используемых цифровых данных, координирующее устройство может выбирать одну из команд для выполнения и может отменять или удалять другую(ие) команду(ы) во избежание выполнения конфликтующих или противоречивых редакций или операций.
Согласно другим вариантам осуществления настоящего изобретения участники сеанса могут осуществлять связь в ходе сеанса через интерактивную переписку (чат), видео/аудиоконференц-связь, речевую связь через интернет протокол (IP) или любой другой вид связи по сети. Сеть связи может быть идентичной или отличной от сети, по которой осуществляется совместное использование цифровых данных. В одном примере, сетью связи может быть телефонная сеть, тогда как сетью для совместного использования цифровых данных может быть компьютерная сеть, например, интернет. В другом примере, обеими сетями может быть интернет.
Если не указано иное, все используемые здесь технические и научные термины имеют тот же смысл, который обычно вкладывает в них специалист в области техники, к которой относится изобретение. Приведенные здесь материалы, способы и примеры являются исключительно иллюстративными и не призваны налагать дополнительных ограничений.
Реализация способа и системы настоящего изобретения может включать в себя осуществление или выполнение определенных выбранных задач или стадий вручную, автоматически или комбинированным образом. Кроме того, согласно фактическому инструментарию и оборудованию предпочтительных вариантов осуществления способа и системы настоящего изобретения, некоторые выбранные стадии можно реализовать аппаратными средствами или программными средствами на любой операционной системе любого программно-аппаратного обеспечения или их комбинацией. Например, выбранные стадии изобретения можно реализовать аппаратными средствами в виде микросхемы или схемы. Программными средствами выбранные стадии изобретения можно реализовать в виде множества программных инструкций, выполняемых компьютером с использованием любой пригодной операционной системы. В любом случае, выбранные стадии способа и системы изобретения можно описать как осуществляемые процессором данных, например, вычислительной платформой для выполнения множества инструкций.
Хотя настоящее изобретение описано в отношении "компьютера" в "компьютерной сети", следует отметить, что, в необязательном порядке, любое устройство, играющее роль процессора данных и/или способное выполнять одну или более инструкций, можно описать как компьютер, включающий в себя, но без ограничения, персональный компьютер (PC), сервер, миникомпьютер, сотовый телефон, смартфон, мобильный телефон с интеллектуальными возможностями, карманный персональный компьютер (КПК), пейджер, телевизионный (TV) декодер, игровую консоль, цифровой музыкальный проигрыватель, банкомат (ATM) или другую машину для выдачи наличных, терминал обслуживания кредитных карт или электронный кассовый аппарат торговой точки (POS). Любые два или более из этих устройств, осуществляющих связь друг с другом, и/или любой компьютер, осуществляющий связь с любым другим компьютером, могут, в необязательном порядке, содержать "компьютерную сеть".
При описании настоящего изобретения в отношении цифровых данных следует отметить, что цифровые данные могут включать в себя, но без ограничения, музыку, слайд-шоу, документы, изображения, видеоданные, текстовые данные и документы, игры или любые мультимедийные данные.
В дальнейшем “онлайн” означает связь, осуществляемую через электронную среду связи, включающую в себя, но без ограничения, передачу данных посредством телефонной сети общего пользования (PSTN), сотовой телефонной сети или их комбинации; обмен информацией через веб-страницы согласно протоколу передачи гипертекста (HTTP) или любому другому протоколу для связи с и через документы, составленные на языке разметки; обмен сообщениями по электронной почте, службы обмена сообщениями, например, ICQ™ и любой другой тип службы обмена сообщениями; передачу видеоданных по сети любого типа; любой тип связи с использованием ранее определенного вычислительного устройства; а также любой другой тип связи, где используется электронная среда для передачи.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Изобретение описано здесь исключительно в порядке примера со ссылкой на прилагаемые чертежи. В частности, в связи с чертежами следует указать, что показанные детали приведены в порядке примера и исключительно в целях иллюстративного рассмотрения предпочтительных вариантов осуществления настоящего изобретения и представлены для обеспечения того, что считается наиболее полезным и легко понимаемым описанием принципов и концептуальных аспектов изобретения. В связи с этим не предпринимается попыток показать структурные детали изобретения более подробно, чем это необходимо для фундаментального понимания изобретения, описание, сопровождающее чертежи, позволяет специалистам в данной области техники понять, как можно реализовать на практике некоторые формы изобретения.
НА ЧЕРТЕЖАХ:
фиг. 1 - схематичная иллюстрация системы для управления совместно используемыми цифровыми данными по множеству независимо работающих компьютеров согласно варианту осуществления настоящего изобретения;
фиг. 2 - схематичная иллюстрация приложения совместного использования цифровых данных, выполняемого системой, показанной на фиг. 1, согласно варианту осуществления настоящего изобретения;
фиг. 3 - схематичная иллюстрация примера системы, показанной на фиг. 1, используемой для совместного использования видеоданных согласно варианту осуществления настоящего изобретения;
фиг. 4 - схематичная иллюстрация отображения программного приложения совместного использования цифровых данных согласно варианту осуществления настоящего изобретения;
фиг. 5 - пример совместно используемого видео, отображаемого в отображении программного приложения совместного использования, показанном на фиг. 4, согласно варианту осуществления настоящего изобретения;
фиг. 6 - иллюстративная схема структуры команды согласно варианту осуществления настоящего изобретения; и
фиг. 7 - блок-схема последовательности операций способа управления совместно используемыми цифровыми данными по множеству независимо работающих компьютеров согласно варианту осуществления настоящего изобретения.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
Варианты осуществления настоящего изобретения предусматривают систему и способ координации редакций совместно используемого документа цифровых данных на множественных независимо работающих пользовательских компьютерах. Координация может выполняться на координирующем устройстве, к которому оперативно подключены множественные компьютеры, например удаленном сервере или одном из множественных пользовательских компьютеров, например, компьютере с наивысшим приоритетом или компьютере-инициаторе. Координирующее устройство может подключаться к множественным компьютерам, например, через сеть и может действовать как конвейер или направляющее устройство для слияния, постановки в очередь, упорядочения и присвоения приоритетов входящему потоку команд для создания единой согласованной цепочки команд, совместно используемой всеми компьютерами для изменения совместно используемых цифровых данных синхронно.
В некоторых вариантах осуществления каждый локальный документ на каждом подключенном компьютере можно изменять локально до передачи изменений на центральное координирующее устройство для реализации в глобальной версии совместно используемого документа. Например, пользователь может вносить изменения локально на компьютере и может подавать изменения по отдельности или группой из двух или более изменений на координирующее устройство. Для каждого пользователя генерируемые таким образом изменения, которые глобально реализуются на координирующем устройстве, могут оставаться, и изменения, которые отвергаются, могут удаляться, например, автоматически в локальной версии совместно используемых цифровых данных на компьютере пользователя. В некоторых вариантах осуществления список или указание принимаемых и/или отвергаемых команд может отправляться на каждый пользовательский компьютер.
Координирующее устройство может передавать единую согласованную глобальную цепочку команд на все компьютеры, совместно использующие цифровые данные. Затем каждый из множественных компьютеров может локально реализовать глобальную цепочку команд в версии документа, хранящейся на нем или передаваемой на него в потоке. Соответственно, каждый документ на каждом подключенном компьютере может изменяться, по существу, одинаково и синхронно, например, посредством одной и той же глобальной цепочки команд.
В некоторых вариантах осуществления всем компьютерам может быть присвоен равный приоритет для управления совместно используемыми цифровыми данными. В других вариантах осуществления может существовать иерархия приоритетов, в которой некоторые компьютеры имеют большие возможности управления, чем другие. Например, если координирующее устройство принимает две противоречивые команды от отдельных компьютеров одновременно или в течение заранее определенного интервала времени, центральное координирующее устройство может выполнять команду, принятую от компьютера с относительно более высоким приоритетом, и может игнорировать команду, принятую от компьютера с относительно более низким приоритетом.
Совместно используемые цифровые данные могут отображаться на каждом пользовательском компьютере с использованием стандартного или специализированного программного обеспечения отображения, например текстового редактора для текстовых документов, редактора фотографий для документов изображений и/или медиаплеера для файлов видео. Совместно используемые цифровые данные могут предоставляться поставщиком цифровых данных, например интернетом, сервером мультимедиа или данных.
Другие типы данных, поступающих от воспринимающих устройств, или цифровых данных, которые, в необязательном порядке, можно синхронно редактировать и отображать согласно другим вариантам осуществления настоящего изобретения, могут включать в себя, но без ограничения, данные изображения, музыку или другие аудиоданные, текстовые файлы и пр. Данные изображения, в необязательном порядке, могут включать в себя, например, фотографии, например, онлайн фотоальбом.
Принципы и порядок работы настоящего изобретения можно лучше понять со ссылкой на чертежи и сопровождающее описание. Следует отметить, что в нижеописанных фигурах представлен вариант осуществления настоящего изобретения в отношении координации команд управления совместно используемыми цифровыми данными от множественных пользовательских компьютеров исключительно в целях описания и без какого-либо намерения налагать какие-либо ограничения.
На фиг. 1 показана схематичная иллюстрация системы для управления совместно используемыми цифровыми данными по множеству независимо работающих компьютеров, согласно варианту осуществления настоящего изобретения.
Система 100 может включать в себя координирующее устройство 110, множество компьютеров 140 и 150 и сервер 130 цифровых данных, соединенные между собой через сеть 120, например, интернет. Следует понимать, что на фиг. 1 только два компьютера 140 и 150 показаны исключительно в целях иллюстрации, и что описанные здесь систему и способ можно применять к большему количеству компьютеров.
Пользовательские компьютеры 140 и 150 могут быть персональными компьютерами, настольными компьютерами, мобильными компьютерами, портативными компьютерами и компьютерами типа ноутбук или любым другим подходящим устройством, например сотовым телефоном, карманным персональным компьютером (КПК), видеоигровой консолью и т.д., и могут включать в себя проводные или беспроводные соединения или модемы. Пользовательские компьютеры 140 и 150 могут включать в себя одно или более устройств 142 и 152 ввода, соответственно, для приема ввода или команд от пользователя (например, через указательное устройство, нажимное колесико или мышь, клавиатуру, сенсорный экран, устройство записи/микрофон или другие компоненты ввода). Пользовательские компьютеры 140 и 150 могут включать в себя одно или более устройств 144 и 154 вывода, соответственно (например, монитор, дисплей или экран), для отображения совместно используемого документа соответствующим пользователям.
Сервер 130 цифровых данных может включать в себя компьютер или компьютерную систему, способную поддерживать совместно используемые цифровые данные. Совместно используемые цифровые данные могут храниться на сервере 130 цифровых данных, например, в форме веб-страниц, текстовых документов или файлов, мультимедийных документов или файлов, изображений, файлов видео или фильмом и/или игр. Совместно используемые цифровые данные могут передаваться на каждый пользовательский компьютер 140 и 150, например, каждый раз в начале сеанса редактирования, один раз для каждого сеанса редактирования или итерационно в течение сеанса редактирования всякий раз, когда в нем реализуются одна или более глобальных команд.
Сеть 120, которая соединяет координирующее устройство 110, сервер 130 цифровых данных и пользовательские компьютеры 140 и 150, может представлять собой любую сеть частного или общественного доступа, например интернет. Доступ в сеть 120 может осуществляться через проводную линию, наземную беспроводную, спутниковую или иные системы, хорошо известные в технике.
Координирующее устройство 110, сервер 130 цифровых данных и пользовательские компьютеры 140 и 150 могут включать в себя один или более контроллеров или процессоров 116, 136, 146 и 156, соответственно, для выполнения операций и могут включать в себя один или более блоков 118, 138, 148 и 158 памяти, соответственно, для хранения данных и/или инструкций (например, программного обеспечения), выполняемых процессором. Процессор(ы) 116, 136, 146 и/или 156 могут включать в себя, например, центральный процессор (ЦП), цифровой сигнальный процессор (ЦСП), микропроцессор, контроллер, микросхему, микрочип, интегральную схему (ИС) или любой другой подходящий процессор или контроллер общего или специального назначения. Блоки 118, 138, 148 и/или 158 памяти могут включать в себя, например, оперативную память (ОЗУ), динамическое ОЗУ (DRAM), флэш-память, энергозависимую память, энергонезависимую память, кэш-память, буфер, блок кратковременной памяти, блок долговременной памяти или другие подходящие блоки памяти или запоминающие устройства.
Совместно используемые цифровые данные могут храниться локально на компьютерах 140 и 150, например, в их соответствующих блоках 148 и 158 памяти и, в необязательном порядке, также могут храниться дистанционно на координирующем устройстве 110 или на сервере 130 цифровых данных, в их соответствующих блоках 118 и 138 памяти. Совместно используемые цифровые данные могут включать в себя, например, веб-страницы, текстовые документы, мультимедийные документы, изображения, фильмы и/или игры. Каждый набор совместно используемых цифровых данных может представлять собой документ или файл, состоящий из одной или более страниц, что хорошо известно в технике. Совместно используемые цифровые данные могут передаваться на компьютеры 140 и 150 координирующим устройством 130 или сервером 130 цифровых данных, которое(ый) может включать в себя, например, хост всемирной сети (“веб”), документальный или мультимедийный сервер, игровую сеть или игровой сервер и т.д., через сеть 120. Альтернативно, цифровые данные могут предоставляться одним из компьютеров 140 и 150 и передаваться на другой(ие) компьютер(ы), соединенные согласно протоколу связи одноранговых устройств, по сети 120.
Множество компьютеров 140 и 150 может быть образовано независимо работающими компьютерами, например, каждый из которых действует под управлением соответствующего пользователя. Компьютеры 140 и 150 могут независимо изменять совместно используемые цифровые данные. Координирующее устройство 110 может принимать команды от множества компьютеров 140 и 150 и может сохранять все команды, принятые на блоке 118 памяти.
Координирующее устройство 110 может координировать команды, принятые от множества пользовательских компьютеров 140 и 150, для обеспечения совместно используемого редактирования одних и тех же или перекрывающихся цифровых данных. Координирующее устройство 110 может включать в себя вычислительный модуль 115, например, имеющий логическое программное обеспечение, для определения, какую из принятых команд выполнить, какую удалить, и порядка выполнения, согласно раскрытым здесь вариантам осуществления. Координирующее устройство 110 может сохранять набор глобальных команд, подлежащих выполнению, например, в буфере 117 выполнения. Набор глобальных команд может передаваться на все подключенные компьютеры 140 и 150 и может локально выполняться во всех версиях совместно используемого документа, хранящихся на них. Вычислительный модуль 115 может входить или не входить в состав процессора 116 на координирующем устройстве 110, процессора 136 на сервере 130 совместно используемых цифровых данных и/или процессора(ов) 146 и/или 156 на пользовательских компьютерах 140 и 150, соответственно. Буфер 117 выполнения может входить или не входить в состав блока 118 памяти.
В некоторых вариантах осуществления два или более пользователя на отдельных компьютерах 140 и 150 могут вводить соответствующие команды для редактирования содержимого одних и тех же или дублированных цифровых данных таким образом, что они являются противоречивыми, избыточными или взаимоисключающими. В одном примере, когда один и тот же или дублированный документ текста, изображений или мультимедиа отображается на компьютерах 140 и 150, пользователь на компьютере 140 может выбрать команду для удаления абзаца, тогда как пользователь на компьютере 150 может выбрать команду для изменения предложения в том же абзаце. В другом примере при воспроизведении синхронизированного видео на множественных компьютерах 140 и 150 пользователь на компьютере 140 может выбрать команду быстрой перемотки вперед, тогда как пользователь на компьютере 150 может выбирать команду перемотки назад. Соответствующие команды для изменения совместно используемых цифровых данных от компьютеров 140 и 150 могут быть взаимоисключающими, и координирующее устройство 110 может координировать, например, какие из соответствующих команд выполнять или отменять, и порядок, в котором должны выполняться команды.
Вычислительный модуль 115 может принимать команды от компьютеров 140 и 150, например, хранящиеся на блоке 118 памяти, и может определять, когда соответствующие команды от них являются взаимоисключающими. В одном примере, команды от компьютеров 140 и 150 могут быть взаимоисключающими, когда они изменяют одно и то же или перекрывающееся содержимое документа, например, в текстовом документе, одну и ту же букву, слово, предложение, абзац, страницу или весь документ, или, в документе изображения, одни и те же один или более пикселей, одну из множества заранее определенных подобластей изображения, квадрант, слой в многослойном документе, объект изображения, тег или маркер, окно, кадр в многокадровом потоке изображений или фильме и т.д. В другом примере команды от компьютеров 140 и 150 могут быть взаимоисключающими, когда команды изменяют совместно используемые цифровые данные противоречивым образом, например, для быстрой перемотки вперед и назад одних и тех же видеоданных, или для внесения разных или конфликтующих изменений в одно и то же содержимое в текстовом документе или документе изображения. В другом примере команды от компьютеров 140 и 150 могут быть взаимоисключающими, когда команды передаются компьютерами 140 и 150 или принимаются на координирующем устройстве 110 одновременно, в перекрывающиеся интервалы времени или в течение заранее заданного периода времени “блокировки”, отставания или задержки.
В одном примере соответствующие команды от компьютеров 140 и 150, являющиеся согласованными или не взаимоисключающими, могут объединяться и ставиться в очередь координирующим устройством 110 и выполняться глобально, по очереди, в совместно используемых цифровых данных. Соответствующие команды могут быть согласованными, когда они редактируют разное или неперекрывающееся содержимое, когда они редактируют одно и то же или перекрывающееся содержимое, но относятся к разным типам редакций, например изменению текста и смене формата, или когда они передаются компьютерами 140 и 150 или принимаются на координирующем устройстве 110 в, по существу, разные или неперекрывающиеся промежутки времени, например, по истечении заранее заданного периода времени “блокировки”, отставания или задержки. Модуль 115 также может использовать другие критерии или комбинации этих критериев для определения, являются ли соответствующие команды от компьютеров 140 и 150 взаимоисключающими или же, напротив, согласованными.
В некоторых вариантах осуществления модуль 115 может анализировать метаданные, связанные с соответствующими командами от компьютеров 140 и 150, для определения, являются ли команды взаимоисключающими или согласованными. Альтернативно, координирующий процессор 116 может обрабатывать каждую команду, пока содержимое команды не будет в достаточной степени декодировано, чтобы модуль 115 мог сравнить команду с другими командами для определения наличия или отсутствия конфликта.
В общем случае, координирующий сервер 110 может обрабатывать каждую команду, по очереди, в порядке поступления от компьютеров 140 и 150. Каждое редактирование может запускать отсчет периода “отключения” или “блокировки”, в течение которого никакие другие команды, относящиеся к одной и той же области документа или типу редактирования, не могут приниматься или выполняться на совместно используемом документе. Период блокировки может быть равен, например, приблизительному времени, которое необходимо модулю 115 для анализа соответствующих команд от компьютеров 140 и 150 для определения, является данная команда взаимоисключающей или согласованной с предыдущей или последующей командой. Альтернативно, период блокировки может быть равен приблизительному времени, которое необходимо всем компьютерам 140 и 150 для выполнения глобальной команды, которая запустила отсчет периода блокировки в их соответствующих версиях совместно используемых цифровых данных. В течение периода блокировки команды, принятые от компьютеров 140 и 150, относящиеся к одной и той же подобласти документа или к одному и тому же типу редактирования, могут блокироваться, отменяться или игнорироваться. В одном варианте осуществления пользовательский компьютер, отправивший команду, которая запустила отсчет периода отключения, может иметь исключительные права на редактирование совместно используемого документа в течение этого периода, поскольку изменения, генерируемые пользователем, уже реализованы в этой локальной версии документа пользовательского компьютера.
Когда вычислительный модуль 115 определяет, что команды от компьютеров 140 и 150 являются взаимоисключающими, модуль 115 может определять, какую из взаимоисключающих команд выполнять, и порядок выполнения, определяющий выполнение этих команд.
В одном варианте осуществления, когда соответствующие команды от компьютеров 140 и 150 являются взаимоисключающими, координирующее устройство 110 может “подсоединяться” к одному компьютеру 140, например, давая этому компьютеру исключительное разрешение изменять часть или полный объем совместно используемых данных и/или “блокируя” другой(ие) подключенный(е) компьютер(ы) 150, например, ограничивая компьютер(ы) в изменении той же части или полного объема совместно используемых данных. Координирующее устройство 110 может автоматически блокировать компьютерам изменения области или целого документа или его слоя или страницы после приема команды, связанной с этой областью.
Вычислительный модуль 115 может давать одному из компьютеров 140 и 150 разрешения на редактирование, например, на основании первого компьютера, от которого принимается или передается команда редактирования, первый компьютер запрашивает подсоединение, чтобы получить исключительные права на редактирование части или всего документа, уровень приоритета, связанный с каждым компьютером (например, компьютер преподавателя может преодолевать или вмешиваться в редакции в закрытой области компьютера студента), разрешение доступа или защищенное паролем разрешение или другие критерии.
В одном варианте осуществления компьютер, который блокирован для редактирования области совместно используемого документа цифровых данных, не может вносить изменений в свою локальную версию документа. Например, пользователь на блокированном компьютере не может выбирать местоположение курсора или выделять объекты текста или изображения в блокированной области. Операция защиты документа цифровых данных может выполняться на закрытой области или на всем документе цифровых данных. Альтернативно, пользователь может вносить изменения в свою локальную версию цифровых данных, но не может вносить изменения в совместно используемую глобальную версию цифровых данных. Пользователь может локально вносить изменения и затем нажимать кнопку "отправить" или назначенную клавишу для отправки локальных изменений на координирующее устройство 110, и, если редакции относятся к области, для которой компьютер блокирован, координирующее устройство 110 может отклонять или отменять команду и, необязательно, отправлять сообщение на блокированный компьютер, например, гласящее “блокировка: ваша редакция не принята”. Если пользователь блокированного компьютера выбирает кнопку “OK”, пользователь указывает, что сообщение принято, или, по истечении заранее определенного времени, локальные редакции, не внесенные глобально, могут автоматически удаляться из локальной версии документа пользователя. В другом варианте осуществления пользователь может вручную удалять отклоненные редакции.
В одном варианте осуществления один пользовательский компьютер 140 может блокировать другой(ие) пользовательский(е) компьютер(ы) 150. В некоторых вариантах осуществления, лишь некоторые пользователи, например, обладающие достаточным приоритетом, защитным паролем или разрешением дост