система и способ для координации одновременных редакций совместно используемых цифровых данных
Классы МПК: | G06F9/52 синхронизация программы; взаимное исключение, например посредством семафоров G06F15/16 сочетание двух или более вычислительных машин, каждая из которых снабжена по меньшей мере арифметическим устройством, программным устройством и регистром, например для одновременной обработки нескольких программ |
Автор(ы): | ЗАРОМ Рони (US) |
Патентообладатель(и): | УОТЧИТУ, ИНК. (US) |
Приоритеты: |
подача заявки:
2011-03-24 публикация патента:
10.10.2014 |
Изобретение относится к области систем совместного использования цифровых данных. Техническим результатом является обеспечение возможности координации одновременных команд от множества пользовательских компьютеров в электронной сети для управления совместно используемыми данными и их редактирования на множестве компьютеров. Координирующее устройство может принимать команды для редактирования совместно используемых цифровых данных от множественных независимо работающих пользовательских компьютеров. Координирующее устройство может определять, что две или более команды от соответствующих пользовательских компьютеров являются взаимоисключающими, избыточными или иначе конфликтующими. Координирующее устройство может внедрять одну из множественных команд в глобальную очередь команд и может отменять другую(ие). Координирующее устройство может передавать глобальные команды на все пользовательские компьютеры для локального выполнения для реализации на них одних и тех же совместно используемых цифровых данных. 2 н. и 12 з.п. ф-лы, 7 ил.
Формула изобретения
1. Способ координации редакций совместно используемых цифровых данных множественными независимо работающими пользовательскими компьютерами, причем способ содержит этапы, на которых:
на координирующем устройстве:
принимают команды для редактирования совместно используемых цифровых данных от множественных независимо работающих пользовательских компьютеров,
определяют, что две или более из команд от соответственных пользовательских компьютеров из множественных независимо работающих пользовательских компьютеров являются взаимоисключающими, когда две или более из команд изменяют содержимое совместно используемых цифровых данных противоречащим образом,
включают одну из двух или более взаимоисключающих команд в глобальную очередь команд и отменяют другую(ие) из двух или более взаимоисключающих команд, и
передают глобальную очередь команд, а не совместно используемые цифровые данные, на все из множественных независимо работающих пользовательских компьютеров, так что две или более из включенных команд должны выполняться локально на версии совместно используемых цифровых данных, хранящихся на каждом из множественных независимо работающих пользовательских компьютеров, причем упомянутая глобальная очередь команд передается каждому из упомянутых множественных независимо работающих пользовательских компьютеров для упомянутых включенных команд, подлежащих локальному выполнению только после упомянутого этапа включения.
2. Способ по п.1, в котором команда, принятая от одного из множественных независимо работающих пользовательских компьютеров, запускает координирующее устройство для ограничения команд от других множественных независимо работающих пользовательских компьютеров.
3. Способ по п.2, содержащий этап, на котором на координирующем устройстве отменяют команды от других множественных независимо работающих пользовательских компьютеров, которые относятся к редактированию той же области совместно используемых цифровых данных, что и запускающая команда.
4. Способ по п.1, содержащий этап, на котором на координирующем устройстве дают одному из множественных независимо работающих пользовательских компьютеров временное исключительное разрешение для редактирования части или полного объема совместно используемых цифровых данных.
5. Способ по п.4, в котором пользовательский компьютер с исключительным разрешением для редактирования части или полного объема совместно используемых цифровых данных является первым из множественных независимо работающих пользовательских компьютеров для передачи команды в пределах заранее определенного периода времени для редактирования части или полного объема документа.
6. Способ по п.1, в котором две или более из команд определяют как взаимоисключающие, когда две или более из команд относятся к редактированию одних и тех же или перекрывающихся частей совместно используемых цифровых данных.
7. Способ по п.1, в котором две или более из команд определяют как взаимоисключающие, когда две или более из команд передаются или принимаются одновременно или в пределах заранее определенного интервала времени.
8. Способ по п.1, в котором каждую версию совместно используемых цифровых данных, локально хранящуюся на каждом из множественных независимо работающих пользовательских компьютеров, можно изменять независимо до реализации глобальных команд в совместно используемых цифровых данных.
9. Способ по п.1, в котором все из множественных независимо работающих пользовательских компьютеров имеют одинаковый приоритет для управления совместно используемыми цифровыми данными.
10. Способ по п.1, в котором множественные независимо работающие пользовательские компьютеры могут иметь разные приоритеты для управления совместно используемыми цифровыми данными.
11. Способ по п.1, в котором редактирование содержит изменение содержимого совместно используемых цифровых данных.
12. Способ по п.1, в котором редактирование содержит изменение отображения совместно используемых цифровых данных.
13. Система для координации редакций совместно используемых цифровых данных множественными независимо работающими пользовательскими компьютерами, причем система содержит координирующее устройство, содержащее память и функционально связанный процессор для:
приема команд для редактирования совместно используемых цифровых данных от множественных независимо работающих пользовательских компьютеров;
определения, что две или более из команд от соответственных пользовательских компьютеров из множественных независимо работающих пользовательских компьютеров являются взаимоисключающими, когда две или более из команд изменяют содержимое совместно используемых цифровых данных противоречащим образом;
включения одной из двух или более взаимоисключающих команд в глобальную очередь команд и отмены другой(их) из двух или более взаимоисключающих команд, и
передачи глобальной очереди команд, а не совместно используемых цифровых данных, на все из множественных независимо работающих пользовательских компьютеров, так что две или более из включенных команд должны выполняться локально на версии совместно используемых цифровых данных, хранящихся на каждом из множественных независимо работающих пользовательских компьютеров, причем упомянутая глобальная очередь команд передается каждому из упомянутых множественных независимо работающих пользовательских компьютеров для упомянутых включенных команд, подлежащих локальному выполнению только после упомянутого этапа включения.
14. Система по п.13, содержащая совместно используемую ячейку памяти, хранящую совместно используемые цифровые данные, доступные для множественных независимо работающих пользовательских компьютеров.
Описание изобретения к патенту
Область техники
Настоящее изобретение относится к системе и способу для совместного использования цифровых данных и, в частности, к таким системе и способу для координации редактирования таких данных на множестве компьютеров по сети.
Уровень техники
Интернет позволяет пользователям компьютеров во всем мире осуществлять электронное взаимодействие и связь. Например, пользователи могут отправлять и получать сообщения электронной почты, просматривать веб-страницы, загружать музыку, программное обеспечение, видеозаписи и осуществлять многие другие действия.
Видеоданные особенно часто передаются через интернет. Популярные веб-сайты совместного использования видео, например 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. В некоторых вариантах осуществления, лишь некоторые пользователи, например, обладающие достаточным приоритетом, защитным паролем или разрешением доступа, или инициаторы группового сеанса могут блокировать другие компьютеры. Альтернативно, любой пользовательский компьютер может блокировать любой(ые) другой(ие) пользовательский(е) компьютер(ы). Пользовательский компьютер 140 может блокировать другой(ие) пользовательский(е) компьютер(ы) 150 автоматически, например, изменяя содержимое совместно используемых цифровых данных или вручную, например, вводя ключ подсоединения для осуществления подсоединения или ключ блокировки для осуществления блокировки других компьютеров. В некоторых вариантах осуществления, пользователь может по своему выбору блокировать пользовательский(е) компьютер(ы) 150. В одном варианте осуществления пользователь может блокировать только других пользователей с эквивалентными и/или более низкими уровнями защиты или приоритета.
В некоторых вариантах осуществления пользователь может выбирать или очерчивать область блокировки. Например, пользователь, работающий на компьютере 140, может указывать область совместно используемого документа цифровых данных, для которой они запрашивают временные исключительные права редактирования. Пользователь может указывать область на дисплее 144 с использованием устройства 142 ввода, например клавиатуры, для ввода координат или мыши для выделения или очерчивания области, например, круга или прямоугольника. Если указанная область перекрывается с другой областью, уже редактируемой другим пользователем, модуль 115 или другой локальный командный модуль может указывать это запрашивающему пользователю. Модуль может отображать доступный участок запрашиваемой области, который пользователь может редактировать, недоступный участок запрашиваемой области и/или весь участок области, уже редактируемой другим(и) пользователем(ями), например, выделенные соответствующими цветами, на версии совместно используемого документа запрашивающего пользователя. В другом варианте осуществления, когда часть или полный объем запрашиваемой области уже редактируется, запрашивающий компьютер 140 может помещаться в очередь и автоматически информироваться, например, посредством сообщения, гласящего Теперь вы можете внести свои редакции , и может получать исключительные права доступа, когда область становится доступной для редактирования.
В одном варианте осуществления совместно используемый документ может итерационно или непрерывно выделяться или иным образом маркироваться на каждом компьютере 140 и 150 в течение сеанса редактирования, например, одним цветом для областей, которые данный компьютер может изменять, и одним или более другими цветами для областей, которые компьютер не может изменять. В одном примере, с каждым подключенным компьютером может быть связан соответствующий цвет или символ, так что, когда коллектив пользователей или сотрудников редактирует совместно используемый документ, редакции каждого пользователя выделяются или иным образом маркируются соответствующим цветом или символом, что позволяет понять, какие редакции выполнены какими пользователями.
В одном варианте осуществления координирующее устройство 110 может попеременно осуществлять подсоединение компьютеров 140 и 150, например, чтобы давать каждому компьютеру равную или взвешенную пропорцию доступа с возможностью редактирования к совместно используемым цифровым данным. Этот вариант осуществления может быть особенно полезен для предоставления каждому компьютеру равных возможностей редактирования совместно используемых данных, например, когда один компьютер имеет лучшее соединение с координирующим устройством 110, чем другой компьютер. Координирующее устройство 110 может переключаться между подсоединением/блокировкой компьютеров 140 и 150, например, с заранее определенным временем задержки блокировки, после того как подсоединенный в данный момент компьютер прекращает редактировать абзац, подобласть или слой, или после того как компьютер выбирает кнопку 'редактирование окончено' или удаляет кнопку 'подсоединение'. Например, после того как подсоединенный компьютер прекращает редактирование заранее определенной области совместно используемых цифровых данных, например, абзаца текстового документа или подобластей или слоев документа изображения, этот компьютер можно блокировать для редактирования области.
В другом варианте осуществления координирующее устройство 110 может переключать подсоединение компьютеров после каждой команды, заранее определенного количества команд, заранее определенного количества вычислительных циклов или заранее определенного периода времени, измеряемого, например, количеством сигналов маяка или циклов тактового сигнала. В еще одном варианте осуществления координирующее устройство 110 может переключать подсоединение компьютеров, когда выполняющий компьютер заканчивает соединенную последовательность команд или изменяет тип команды. Например, компьютер может оставаться подсоединенным, пока компьютер поддерживает постоянную последовательность команд одного типа. Например, компьютер может быстро перематывать вперед фильм, сколько потребуется, но после того как компьютер меняет тип команды, например, на воспроизведение или перемотку назад фильма, компьютер утрачивает исключительные права на изменение цифровых данных и может быть блокирован.
Когда координирующее устройство 110 генерирует глобальную последовательность или упорядоченную очередь команд, координирующее устройство 110 может переносить команды для реализации в локальных версиях совместно используемых документов, хранящихся на компьютерах 140 и 150.
В одном варианте осуществления координирующее устройство 110 может сохранять глобальную последовательность команд в буфере 117 выполнения, например, в очереди в порядке их выполнения. Глобальная последовательность команд может включать в себя команды, принятые от компьютеров 140 и/или 150, которые подсоединены или которым разрешено редактировать содержимое, связанное с командой, и может исключать команды от компьютеров 140 и/или 150, которые блокированы или которым запрещено выполнять такое редактирование. Каждый компьютер 140 и 150 может иметь соответствующие буферы 147 и 157 выполнения, соответственно, для выполнения команд на своей локальной версии совместно используемых цифровых данных. Координирующее устройство 110 может передавать данные из буфера 117 выполнения в буферы 147 и 157 обновления, например, периодически после сохранения в буфере 117 каждого одного или более заранее определенных количеств новых команд или по окончании периода блокировки для редактирования области. Процессоры 146 и 156 могут выполнять команды, хранящиеся в буферах 147 и 157 обновления, например, в порядке их сохранения и/или постановки в очередь, на локальных версиях совместно используемых цифровых данных на каждом компьютере 140 и 150, соответственно. Согласно таким вариантам осуществления изобретения для экономии полосы пропускания с координирующего устройства 110 на компьютер 140 и 150 передается только список или очередь команд для изменения совместно используемого документа цифровых данных, а не сами цифровые данные, для переноса которых обычно требуется гораздо больше памяти и вычислительной мощности, чем для переноса только команд.
Напротив, в альтернативном варианте осуществления координирующее устройство 110 может изменять или обновлять фактические совместно используемые цифровые данные, хранящиеся в центральной версии на координирующем устройстве 110, и затем отправлять копию измененного участка документа цифровых данных или всего документа цифровых данных на каждый из компьютеров 140 и 150 для замены последней сохраненной на них версии.
Хотя глобальное внесение определенных изменений с компьютеров 140 и 150 может быть ограничено, в некоторых вариантах осуществления изобретения пользователь может вносить любые изменения в свою локальную версию совместно используемых цифровых данных на каждом компьютере 140 и 150. Например, пользователь может локально вносить изменение на каждом компьютере 140 и 150 вне зависимости от того, подсоединен ли он или блокирован, или разрешено ему или запрещено вносить это изменение глобально на координирующем устройстве 110. После локального внесения изменения пользователь может нажать кнопку "отправить" или назначенную клавишу для отправки локальных изменений на координирующее устройство 110. Команды могут быть приняты или отклонены или объединены в глобальную последовательность команд описанным здесь образом.
В одном варианте осуществления обновленная глобальная последовательность команд может отправляться на все подключенные компьютеры. Альтернативно, в другом варианте осуществления обновленная команда может отправляться только на компьютер(ы), первоначально не генерировавший(е) команды, поскольку эти команды уже реализованы на компьютерах, которые их генерировали. В последнем варианте осуществления для генерации одной и той же версии совместно используемого документа на каждом компьютере 140 и 150 координирующее устройство 110 может передавать на каждый компьютер 140 и 150 разные последовательности команд, которые могут включать в себя все накопленные изменения, произведенные над совместно используемыми цифровыми данными, но может исключать команды, генерируемые отдельным компьютером.
В одном варианте осуществления, когда пользователь на компьютере 140 вносит одну или более правок в документ, редакции могут изменяться в реальном времени на всех совместно используемых версиях цифровых данных, отображаемых на всех остальных компьютерах 150. Редакции немедленно или спустя некоторое время передаются на координирующее устройство 110, где они могут быть приняты или удалены описанным здесь образом. В другом варианте осуществления правки, произведенные локально на каждом компьютере 140, вносятся на другом(их) компьютере(ах) 150, только после того как координирующее устройство 110 примет изменения и реализует их в глобальной цепочке команд.
В одном варианте осуществления глобальные редакции от каждого компьютера 140 или 150, поступающие от координирующего устройства 110, могут первоначально вноситься на другом(их) компьютере(е) как маркированные или отслеживаемые изменения. Редакции могут маркироваться или выделяться символом или цветом, указывающим, что они сгенерированы другим пользователем, или указывающим отдельного пользователя или группу пользователей, который(ые) их сгенерировал(и). Редакции могут объединяться и, в конце концов, вноситься в совместно используемые цифровые данные, например, в виде простого текста, только когда все участники коллектива совместно используемого редактирования принимают редакции в своих соответствующих версиях документа. Хотя совместно используемые документы на каждом компьютере 140 или 150 могут отличаться маркировкой, выделением или другими метками, обеспечивающими информацию, относящуюся к совместно используемой среде, фактическое содержимое совместно используемых документов, например текст, изображения, аудио- и видеокадры, может быть полностью однородным, и редакции ранее существовавшего и/или нового содержимого могут дублироваться в течение сеансов редактирования на всех версиях совместно используемых документов на компьютере 140 или 150 каждого участника.
В одном варианте осуществления, когда множественные компьютеры 140 и 150 вносят множественные конфликтующие редакции, пользователи могут вручную выбирать, какую редакцию реализовать, а какую отклонить, например, вместо или в дополнение к такому автоматическому определению, производимому вычислительным модулем 115. Например, множественные конфликтующие редакции могут быть представлены, в частности, в нижнем колонтитуле, на полях, во вкладках или всплывающих примечаниях совместно используемого документа, на компьютерах 140 и 150, и каждый соответствующий пользователь может выбирать, например, посредством клика одну или более предпочтительных редакций. Варианты выбора пользователя могут передаваться на координирующий сервер 110, вычислительный модуль 115 которого может реализовать предпочтительную(ые) редакцию(и) в виде последовательности глобальных команд в буфере 117. Вычислительный модуль 115 может реализовать команду(ы), имеющую(ие) наибольшее количество выборов или наибольшее накопленное значение на основании количества выборов, взвешенного приоритетом(ами) компьютера(ов), выбравшего(их) редакцию.
В одном варианте осуществления пользователь может изменять документ в режиме оффлайн и затем вносить изменения в уже идущем или законченном сеансе онлайн. Пользователь может выгружать свой локально измененный документ на координирующее устройство 110. Выгруженный документ может преобразовываться в последовательность команд для изменения совместно используемого документа. Многие команды или изменения из выгруженного документа могут быть уже не актуальны, поскольку совместно используемые цифровые данные непрерывно изменяются в течение сеанса онлайн. Только те команды, которые все еще актуальны для последней версии совместно используемых данных и которые не конфликтуют с другими командами, ожидающими выполнения, могут выполняться. Координирующее устройство 110 может генерировать список или указание команд каждого пользователя, которые приняты и внесены в документ, и/или список или указание команд каждого пользователя, которые были отклонены. В одном варианте осуществления принятые и отклоненные изменения могут указываться на полях версии совместно используемого документа пользователя, запросившего эти изменения. Принятые изменения могут указываться, например, цветом шрифта или подчеркиванием, и отклоненные изменения могут указываться, например, другим цветом шрифта, зачеркиванием или заключением в двойные скобки.
В некоторых вариантах осуществления, координирующее устройство 110 может иметь множественные режимы работы для координации компьютеров 140 и 150. В некоторых вариантах осуществления, пользовательский компьютер, например компьютер-инициатор, может выбирать один или более доступных режимов, в которых может работать координирующее устройство 110.
В одном режиме, координирующее устройство 110 может ставить команды в очередь в порядке их приема. Когда две или более команд принимаются одновременно в течение периода блокировки, координирующее устройство 110 может действовать согласно заранее выбранным критериям для присвоения приоритетов редакциям, подлежащим выбору, для выполнения, например, команды от компьютера с более высоким приоритетом, команды от компьютера, наиболее или наименее недавно запросившего другую команду, команды от компьютера, относительно большее или меньшее количество команд которого было отклонено, команды, которая вызывает более или менее значительное изменение, или произвольно выбранной команды и т.д. Например, в одном варианте осуществления значительность изменения может быть пропорциональна количеству символов или абзацев в текстовом документе или пикселей или слоев в документе изображения, которые подвергаются действию команды. Например, в другом варианте осуществления значительность изменения может быть связана с типом изменения, причем все типы упорядочены в заранее определенной иерархии значительности.
В еще одном режиме, координирующее устройство 110 может попеременно осуществлять подсоединение компьютеров 140 и 150 и ставить в очередь генерируемые ими команды.
В еще одном режиме некоторым пользователям может предоставляться онлайн доступ для изменения документа во взаимодействии с другими пользователями в сеансе редактирования реального времени, тогда как другим пользователям может предоставляться только оффлайн доступ для изменения документа в режиме оффлайн и последующего внесения изменений в сеансе онлайн, который уже идет, или в сеансе, который закончился. Оффлайн пользователи могут выгружать свои измененные документы или файлы, вводя сразу все свои команды. В этом режиме координирующее устройство 110 может генерировать набор или последовательность команд, подлежащих выполнению, из каждого выгруженного документа. В одном варианте осуществления последовательность команд может быть комбинацией всех команд из выгруженного документа, кроме команд, которые конфликтуют с командами в сеансе онлайн. В другом варианте осуществления для каждого набора конфликтующих команд последовательность команд может включать в себя команду, которая конфликтует, по меньшей мере, с текущей версией документа или конфликтует с наименьшим количеством других команд.
В еще одном режиме глобальные редакции первоначально вносятся в совместно используемые цифровые данные на каждом компьютере 140 или 150 как маркированные или отслеживаемые изменения. Редакции могут быть полностью внедрены в совместно используемые цифровые данные, например, в виде простого текста или, по существу, как новое содержимое документа, будучи приняты одним или более пользователями.
В еще одном режиме, координирующее устройство 110 может синхронизировать не только содержимое совместно используемых цифровых данных, но и способ отображения данных. Например, когда один компьютер 140 подает команду увеличения или уменьшения масштаба или прокрутки совместно используемого документа цифровых данных, координирующее устройство 110 может реализовать и передавать команду для выполнения того же изменения отображения в версии совместно используемых цифровых данных на всех остальных компьютерах 150.
Режимы, отличные от нижеследующего, можно программировать на координирующем устройстве 110 и могут использоваться им.
В некоторых вариантах осуществления изобретения координирующее устройство 110 может регистрировать изменения, связанные с каждым компьютером 140 и 150. Например, координирующее устройство 110 может поддерживать журнал изменений, связанных с каждым компьютером, может сохранять копию или таблицу указателей на соответствующие команды для каждого компьютера, может сохранять команды для каждого компьютера в отдельности или может помечать сами команды маркером, указывающим компьютер, сгенерировавший команды. Для просмотра изменений, генерируемых каждым отдельным компьютером, в одном варианте осуществления пользователь может просматривать журнал команд. В другом варианте осуществления каждому пользователю может назначаться цветовой код, и координирующее устройство 110 может отображать совместно используемый документ, в котором изменения, внесенные каждым компьютером, выделены связанным с ним цветом. В еще одном варианте осуществления координирующее устройство 110 может выполнять только команды, генерируемые одним из компьютеров 140 и 150 или поднабором или комбинацией компьютеров 140 и 150. Например, координирующее устройство 110 может генерировать разные версии совместно используемых цифровых данных, реализуя редакции от каждого отдельно взятого редактора или нескольких редакторов в группе редактирования.
В одном варианте осуществления каждый пользовательский компьютер 140 и 150 может работать над отдельной или персональной версией цифровых данных, включающей в себя все изменения (принятые и отклоненные), которые сгенерировал работающий пользователь, а также над глобальной версией совместно используемых цифровых данных. Две версии можно просматривать в соседних окнах на каждом дисплее 144 и 154 пользователя, например, для сравнения.
Используемый здесь термин «редактирование» может включать в себя любое изменение, вносимое в цифровые данные, например, для изменения их содержимого, например удаление, добавление или изменение слов или изображений или изменение способа отображения, форматирования или визуализации данных пользователю без изменения содержания цифровых данных, например, для перехода из полноэкранного режима к стандартному виду, для увеличения или прокрутки, или для быстрой перемотки вперед, перемотки назад, увеличения или уменьшения скорости, или для воспроизведения поднабора, например, каждого n-го кадра в фильме.
Хотя варианты осуществления изобретения описывают удаленный сервер (например, координирующее устройство 110 на фиг. 1), который дистанционно управляет командами от множества компьютеров (например, компьютеров 140 и 150 на фиг. 1), выполняемыми на совместно используемом документе, специалистам в данной области техники очевидно, что такие возможности можно реализовать на одном или более локальных компьютерах. Например, согласно фиг. 1, компьютер(ы) 140 и/или 150 может(ут) включать в себя вычислительный модуль 115 для постановки в очередь набора глобальных команд и может использовать буферы 147 и 157, соответственно, для хранения очереди команд. Например, компьютер-инициатор, который инициирует сеанс редактирования совместно используемого документа, может координировать команды, вводимые с него же и с другого(их) компьютера(ов).
Обратимся к фиг. 2, где показана схематичная иллюстрация отображения совместного использования цифровых данных выполняемого системой, показанной на фиг. 1, согласно варианту осуществления настоящего изобретения.
Пользовательский компьютер 140 может использовать процессор(ы) 146 для загрузки отображения 160 совместного использования цифровых данных. В реализации на основе веб-сайта отображение 160 совместного использования данных может представлять собой веб-страницу, просматриваемую с помощью веб-браузера 170, с сервера 130 цифровых данных, например веб-хоста, например, обеспечиваемую по сети 120. В реализации на основе связи одноранговых устройств отображение 160 совместного использования данных может быть обеспечено приложением совместного использования данных, установленным на одном или всех подключенных компьютерах 140 и 150.
Процессор(ы) 146 и 156 могут работать с соответствующими отображениями 160 совместного использования данных на каждом пользовательском компьютере 140 и 150. Процессор(ы) 146 и 156 могут вызывать код 175 для извлечения содержимого совместно используемых цифровых данных 155 (например, с сервера 130 цифровых данных) и код 180 для реализации отображения 160 и извлечения набора глобальных команд (например, из буфера 117 на координирующем сервере 110) для глобального выполнения на совместно используемых цифровых данных 155.
Код 175 может предоставлять совместно используемые цифровые данные 155 посредством стандартного или специализированного программного обеспечения отображения, например текстового редактора для текстовых документов, редактора фотографий для документов изображений и/или медиаплеера для файлов видео.
Код 180 может выполнять набор глобальных команд на совместно используемых цифровых данных 155 синхронно для синхронизации редакций между подключенными компьютерами 140 и 150. Когда координирующее устройство 110 является удаленным устройством, отдельным от компьютеров 140 и 150, код 180 может быть сравнительно простым и может использоваться, например, только для передачи запросов редактирования на координирующее устройство 110 и для приема глобальных редакций от координирующего устройства 110 и их реализации для изменения совместно используемых цифровых данных 155. Однако, когда компьютер 140 и/или другой(ие) компьютер(ы) 150 координируют редакции в реализации на основе связи одноранговых устройств, сам(и) компьютер(ы) являе(ю)тся координирующим(ими) устройством(ами) 110. В этом варианте осуществления код 180, хранящийся на координирующем(их) компьютере(ах) 140 и/или 150, может включать в себя сложную логику для тактирования, буферизации, определения, какие команды выполнять, а какие отменять, порядка команд, сходства и различия между командами и содержимым данных, например, являются ли соответствующие команды согласованными или взаимоисключающими, и/или другую логику, описанную в отношении вычислительного модуля 115, показанного на фиг. 1. Код 175 и код 180 можно загружать и сохранять на блоке(ах) 148 или 158 памяти компьютеров 140 и 150, соответственно, например, по меньшей мере, временно, пока каждый компьютер 140 и 150 подключен к сеансу редактирования.
Координирующее устройство 110 может принимать от пользовательских компьютеров 140 и 150 запрос на редактирование совместно используемого содержимого, подлежащего отображению с использованием отображения 160 совместного использования данных. Помимо информации редактирования запросы могут включать в себя параметры или информацию, например, номер запрашиваемого типа редактирования, уровень приоритета или код пользователя, IP-адрес пользователя, просматривающего страницу, журнал истории или информацию о предыдущих редакциях пользователя, описательную информацию, которая описывает содержимое совместно используемых цифровых данных 155, к которым относится редакция, или связанные с ними метаданные, идентификационный код пользователя, защитный код, URL или адрес веб-страницы или среды связи между одноранговыми устройствами, и/или фактическое содержимое из совместно используемых цифровых данных 155, к которым относится редакция. Координирующее устройство 110 может использовать такие данные, например, помимо или вместо самих команд, для определения, какие команды подлежат глобальному выполнению, в каком порядке и с каким приоритетом. Другая информация может использоваться для определения, какие редакции подлежат глобальной реализации на компьютерах 140 и 150.
На основании поданных с компьютеров 140 и 150 запросов на редактирование совместно используемых цифровых данных 155 координирующее устройство 110 может генерировать набор глобальных команд для однородной реализации во всех версиях совместно используемых цифровых данных 155 на всех пользовательских компьютерах 140 и 150. Процессоры 146 и 156 могут, например, извлекать одну или более глобальных команд из буфера 117 и могут локально сохранять команды в буферах 147 и 157. Процессоры 146 и 156 могут выполнять команды, хранящиеся в буферах 147 и 157 выполнения, на локальных версиях совместно используемых цифровых данных на каждом компьютере 140 и 150, соответственно.
В одном варианте осуществления извлеченные команды могут включать в себя все накопленные команды, подлежащие выполнению на совместно используемом документе, генерируемые всеми подключенными компьютерами 140 и 150. В другом варианте осуществления, когда команды, генерируемые каждым компьютером 140 или 150, уже введены локально до их глобального утверждения координирующим устройством 110, набор команд, извлеченный каждым компьютером, может исключать команды, сгенерированные самим компьютером. Когда все накопленные команды приняты, код 180 на каждом компьютере может включать в себя дополнительные функциональные возможности для удаления или фильтрации команд, генерируемых отдельным компьютером.
В иллюстративном варианте осуществления, относящемся, в основном, к работе компьютера 140 (эквивалентное описание может использоваться применительно к компьютеру 150), компьютер 140 может локально изменять совместно используемые цифровые данные 155 для генерации отредактированного содержимого 165 и 185, и компьютер 150 может локально изменять совместно используемые цифровые данные 155 для генерации отредактированного содержимого 175. Соответствующие команды могут отправляться на координирующее устройство 110. Например, координирующее устройство 110 может утверждать команды для генерации отредактированного содержимого 165 и 175, но не отредактированного содержимого 185. Координирующее устройство 110 может сохранять набор команд, соответствующий утвержденному отредактированному содержимому 165 и 175, в буфере 117 и может игнорировать команды, соответствующие запрещенному отредактированному содержимому 185. Компьютер 140 может извлекать набор команд из буфера 117. Команды, отправленные из буфера 117 на компьютер 140, могут включать в себя глобально утвержденные команды и могут включать или не включать в себя команды, генерируемые самим компьютером 140. Компьютер 140 может сохранять извлеченные команды локально в буфере 147. Процессор 146 может выполнять новые извлеченные команды или все команды, хранящиеся в буфере 147, для обновления совместно используемых цифровых данных 155. Соответственно, процессор 146 может удалять запрещенное отредактированное содержимое 185, оставлять его без изменений или окончательно внедрять утвержденное отредактированное содержимое 165 и добавлять утвержденное отредактированное содержимое 175, генерируемое другим(ими) компьютером(ами) 150. В некоторых вариантах осуществления, каждый набор редакций можно помечать, кодировать цветом или иначе маркировать для указания, внедрены ли окончательно редакции во все совместно используемые версии совместно используемых цифровых данных 155, ожидают ли редакции утверждения, утверждены ли или отклонены редакции и/или сгенерированы ли редакции данным компьютером 140 или другим компьютером 150.
Обратимся к фиг. 3, где показана схематичная иллюстрация примера системы, показанной на фиг. 1, используемой для совместного использования видеоданных согласно варианту осуществления настоящего изобретения. Как показано, система 300 может включать в себя устройство 302 обслуживания содержимого, например сервер, например сервер 130 цифровых данных, показанный на фиг. 1 и 2. Устройство 302 обслуживания содержимого может предоставлять видео/аудиоданные, подлежащие потоковой передаче через сеть 314. Устройство 302 обслуживания содержимого также может предоставлять текстовые, аудио, содержащие изображения или мультимедийные одно- или многостраничные документы через сеть 314. Устройство 302 обслуживания содержимого может принадлежать поставщику услуг передачи содержимого. Сеть 314 может представлять собой сеть любого описанного здесь типа, например, сеть 120, показанную на фиг. 1 и 2, например, Интернет.
Устройство 302 обслуживания содержимого может включать в себя передатчик 312 для передачи видеоданных, которые (предпочтительно) могут обеспечиваться в закодированном формате. Передатчик 312 может осуществлять любые необходимые процессы для передачи видеоданных по сети 314, например, подготавливая видеоданные для передачи согласно стандарту передачи видео по IP. Передатчик 312 может передавать видеоданные через сетевой интерфейс 310. Передатчик 312 может передавать видеоданные согласно стандарту для передачи видеоданных по сети 314. Неограничительные примеры таких стандартов включают в себя H.323, транспортный протокол реального времени (RTP), протокол потоковой передачи в реальном времени (RTSP) и протокол инициирования сеансов (SIP), которые предпочтительно использовать для видеоконференцсвязи. RTP, в необязательном порядке, можно использовать совместно с H.323 и/или SIP. Аудиоданные могут передаваться согласно надлежащему протоколу. Перенос многостраничных документов может осуществляться согласно стандарту для передачи таких данных, включающему в себя, но без ограничения, стандарт протокола передачи гипертекста (HTTP) или защищенного HTTP (HTTPS).
Управление тактированием такой передачи видео может осуществлять генератор 308 опорных тактовых импульсов, который можно реализовать в виде механизма реального времени любого типа, известного в технике, и можно также реализовать в виде оборудования, программного обеспечения или программно-аппаратного обеспечения, известного в уровне технике.
Сеть 314, как показано, может соединять между собой множество пользовательских компьютеров 304 и 306, помеченных как пользовательский компьютер A и пользовательский компьютер B , соответственно. Конечно, любое количество пользовательских компьютеров, в необязательном порядке, может быть соединено через сеть 314. Компьютеры 304 и 306 могут работать согласно вариантам осуществления изобретения, как описано выше в отношении компьютеров 140 и 150, показанных на фиг. 1 и 2.
Каждый пользовательский компьютер 304 и 306 может включать в себя видеодекодер 316 и 320, соответственно. Видеодекодеры 316 и 320 могут принимать передаваемые видеоданные и подготавливать данные для просмотра на выходных дисплеях 324 и 332, соответственно. Видеодекодеры 316 и 320 можно реализовать в виде медиаприложения любого типа, известного в уровне технике, например, включающего в себя программное обеспечение iTunes® для управления медиафайлами и их воспроизведения от Apple Computer, Inc., и/или в виде Winodws® медиаплеера (Microsoft Inc).
Тактирование работы видеодекодеров 316 и 320 и, следовательно, отображения видеоданных может осуществляться под управлением тактовых генераторов 318 и 328, соответственно, которые, в необязательном порядке, можно реализовать в виде механизма реального времени любого типа, известного в технике, и можно также реализовать в виде оборудования, программного обеспечения или программно-аппаратного обеспечения, известного в уровне технике. Тактовые генераторы 318 и 328 могут синхронизироваться с генератором 308 опорных тактовых импульсов на устройстве 302 обслуживания видео, например, с использованием протокола сетевого времени (NTP).
Согласно иллюстративному варианту осуществления настоящего изобретения пользовательский компьютер 304 в этом примере может быть инициатором сеанса. Пользовательский компьютер 304 может отправлять запрос по сети 314 на устройство 302 обслуживания содержимого для инициирования синхронизированного воспроизведения. Пользовательский компьютер 306 может принимать запрос непосредственно от пользовательского компьютера 304 или, альтернативно, может принимать запрос от устройства 302 обслуживания содержимого. После инициирования сеанса пользовательский компьютер 304 может делегировать способность к управлению сеансом пользовательскому компьютеру 306. Тактовые генераторы 318 и 328 и генератор 308 опорных тактовых импульсов могут синхронизироваться, например, вышеописанным образом.
После того как пользовательский компьютер 304 и 306 получает управление сеансом, оба компьютера могут управлять воспроизведением видеоданных, синхронизированных на выходных дисплеях 324 и 332. В целях этого примера, совместно используемое содержимое является видеосодержимым. Устройство 302 обслуживания содержимого может начинать потоковую передачу видеоданных на оба пользовательских компьютера 304 и 306. В необязательном порядке и предпочтительно, оба видеодекодера 316 и 320 на пользовательских компьютерах 304 и 306, соответственно, буферизуют видеоданные, например, во избежание дрожания сети и также для облегчения синхронизации. Видеоданные могут отображаться на выходных дисплеях 324 и 332 пользовательских компьютеров 304 и 306, соответственно.
Пользовательские компьютеры 304 и 306 могут включать в себя программное обеспечение 325 и 322 совместного использования видео, соответственно. Если программное обеспечение 325 совместного использования видео на пользовательском компьютере 304 принимает команду для изменения потока видеоданных, например, путем активации функций остановка , пауза , перемотка назад и/или перемотка вперед , соответствующая команда может отправляться на программное обеспечение 322 совместного использования видео на пользовательском компьютере 306. Аналогично, если программное обеспечение 322 совместного использования видео на пользовательском компьютере 306 принимает команду для изменения потока видеоданных, например, путем активации функций остановка , пауза , перемотка назад и/или перемотка вперед , соответствующая команда может отправляться на программное обеспечение 325 совместного использования видео на пользовательском компьютере 304. Затем видеодекодеры 316 и 320 на пользовательских компьютерах 304 и 306 могут выполнять соответствующую команду, чтобы отображение видеоданных на пользовательских компьютерах 304 и 306 оставалось синхронизированным. Например, если видеодекодер 316 или 320 на одном пользовательском компьютере выполняет команду для остановки воспроизведения видеоданных, то видеодекодер 320 или 316, соответственно, на другом компьютере аналогично прекращает воспроизведение тех же или дублированных видеоданных. Команда может отправляться непосредственно с видеодекодера 316 или 320 на пользовательском компьютере 304 или 306 на видеодекодер 320 или 316 на пользовательском компьютере 306 или 304, соответственно, например, с использованием протокола связи одноранговых устройств. Альтернативно, команды могут передаваться через устройство 302 обслуживания содержимого. Видеоданные могут в достаточной степени буферизоваться для поддержки таких команд, как перемотка назад и перемотка вперед .
Согласно некоторым вариантам осуществления оба пользовательских компьютера 304 и 306 могут отправлять команды друг другу для управления соответствующими видеодекодерами 316 и 320 друг друга.
Следует понимать, что только два пользовательских компьютера показано на фиг. 3 исключительно в целях иллюстрации, и что описанные здесь систему и способу можно применять к большему количеству пользовательских компьютеров.
Согласно вышеприведенному описанию компьютер, управляющий сеансом, может отправлять команды, по существу, одновременно на все остальные компьютеры. Следует отметить, что описанные здесь видеоданные используются исключительно в порядке примера, и когда используются многостраничные, мультимедийные или текстовые данные, пользовательские компьютеры 304 и 306 могут включать в себя офисные средства 326 и 330, помогающие осуществлять одну или более скоординированных или синхронизированных команд редактирования (например, для перехода к конкретной странице или другому блоку данных, переписывания текста или переформатирования документов). Предпочтительно, каждый сеанс может включать в себя отображение множества блоков цифрового содержимого, например, множество видеоклипов, изображений, текстовых объектов, песен и пр. и/или их комбинации, без необходимости заново начинать сеанс.
Синхронизацию видеоданных в совместно используемых потоках движущихся изображений (например, описанных со ссылкой на фиг. 3) можно реализовать согласно вариантам осуществления, описанным в отношении координации редакций в совместно используемых цифровых данных (например, описанной со ссылкой на фиг. 1 и 2), например, где редактирование включает в себя изменение скорости воспроизведения видеоданных.
Обратимся к фиг. 4, где показана схематичная иллюстрация отображения 400 совместного использования цифровых данных согласно варианту осуществления настоящего изобретения. Отображение 400 может быть отображением любого описанного здесь типа, включая, например, отображение 160, показанное на фиг. 1. Отображение 400 можно реализовать посредством веб-сайта в виде веб-страницы, просматриваемой с помощью веб-браузера, например веб-браузера 170, показанного на фиг. 2. Отображение 400 можно также реализовать в виде окна с использованием одной из существующих операционных систем, например Microsoft® Windows. Отображение 400 может включать в себя отображение 402 содержимого для отображения совместно используемых цифровых данных (например, совместно используемых цифровых данных 155, описанных со ссылкой на фиг. 2, например видео и/или аудиоданных, описанных со ссылкой на фиг. 3). Когда совместно используемые цифровые данные включают в себя аудиоданные, отображение может включать в себя воспроизведение, например, через громкоговорители или другое акустическое оборудование.
Отображение 400 может включать в себя одну или более кнопок 404 управления для подачи команд управления. Когда содержимым является аудио или видео, кнопки управления могут включать в себя, например, «воспроизведение», «перемотку назад», «перемотку вперед» и «остановку». Когда содержимым является многостраничный документ, можно предусмотреть, например, кнопки управления «начало», чтобы начать отображение документа, «вперед» для перехода к следующей странице, «назад» для возвращения к предыдущей странице и «переход» для перехода к конкретной странице. Команды управления могут отправляться согласно протоколу связи одноранговых устройств, хотя они могут, альтернативно, отправляться через центральный сервер. Команды управления также включают в себя команды для приглашения другого участника принять участие в сеансах и для делегирования управления сеансом другим компьютерам-участникам. Кнопки управления для делегирования управления сеансом, предпочтительно, доступны только инициатору сеанса.
Отображение 400 может включать в себя отображение 406 участников, демонстрирующее визуальное отображение одного или более участников в сеансе совместного использования видео и/или соответствующего видеообраза пользователя. В первом случае, визуальное отображение может использоваться для подтверждения, что все участники все еще просматривают данные, например, и/или для обеспечения жестикуляционной обратной связи.
В необязательном порядке, могут быть предусмотрены модуль 408 интерактивной переписки (чата) и модуль 510 речевой связи по IP, позволяющие сеансовым пользователям различных компьютеров, показывающих видеоданные, общаться, например, обмениваться информацией и/или мнениями об отображаемых данных.
Таблица 407 содержимого может использоваться для отображения всего совместно используемого содержимого. Эта таблица может, в необязательном порядке, отображать URL видеозаписей, клипов, документов и пр., совместно используемых между участниками сеанса. URL могут отображаться в виде макетных изображений. Каждый участник, уполномоченный управлять сеансом, может выбирать один из содержимого и из этой таблицы в начале воспроизведения этого содержимого.
Обратимся к фиг. 5, где приведен пример отображения программного приложения совместного использования, показанного на фиг. 4, отображающего совместно используемые видеоданные, согласно варианту осуществления настоящего изобретения. Воспроизведение совместно используемых видеоданных на отображении 500 может синхронизироваться с воспроизведением тех же или дублированных данных на других подключенных компьютерах. Синхронизацию можно реализовать через веб-сайт, в котором компьютеры могут подключаться к сеансу. Альтернативно, синхронизацию можно реализовать с использованием приложения связи между одноранговыми устройствами, установленного на одном или более компьютерах, участвующих в сеансе. Каждый сеанс может иметь дело с цифровым медиасодержимым, например фильмом, совместно используемым и синхронизированным участниками сеанса.
Согласно фиг. 5, отображение 500 включает в себя отображение воспроизведения содержимого, которое может отображать текущее воспроизводимое содержимое 510, кнопки 550 управления для управления воспроизводимым содержимым и таблицу содержимого, включающую в себя список данных 520 содержимого. Отображение 500 также может включать в себя область конференцсвязи, где отображаются видеообразы 540 участников (например, компьютерное представление пользователя), и область 530 интерактивной переписки (чата).
Команды, выполняемые с использованием интерфейса отображения 500, могут отправляться по сети, например сети 120, показанной на фиг. 1 и 2. Сеть может использовать протокол связи одноранговых устройств (хотя также можно использовать протокол, действующий через центральный сервер) и может использоваться для синхронизации воспроизведения цифрового содержимого 510, например, для запуска, остановки или перемотки назад фильма, в данный момент совместно используемого множественными медиаплеерами.
Обратимся к фиг. 6, где показана иллюстративная схема структуры команды согласно варианту осуществления настоящего изобретения.
Структура 600 команды может включать в себя код 601 операции и параметры 602. Код 601 операции может представлять собой код операции команды, подлежащей осуществлению. Код 601 операции может представлять собой код операции команд, например, для редактирования содержимого совместно используемых цифровых данных (например, генерации отредактированного содержимого 165, 175 и/или 185 совместно используемых цифровых данных 155 на фиг. 2), форматирования совместно используемых цифровых данных, для редактирования отображения содержимого данных (например, для прокрутки вверх или вниз, увеличения или уменьшения масштаба, воспроизведения фильма, перемотки фильма назад, перемотки фильма вперед, показа фотографии, следующей фотографии, предыдущей фотографии, показа документа, следующей страницы, предыдущей страницы, перехода к странице с нужным номером и пр.). Параметры 602 могут включать в себя, например, URL совместно используемой ячейки памяти содержимого совместно используемых цифровых данных, номер кадра, на котором фильм нужно остановить или к которому фильм нужно отмотать (когда содержимым является фильм), номер страницы (когда содержимым является документ) и пр. Структура 600 команды может, в необязательном порядке, быть строкой или любой другой структурой сообщения, предпочтительно, согласно протоколу, используемому для передачи команды.
Обратимся к фиг. 7, где показана блок-схема последовательности операций способа управления совместно используемыми цифровыми данными по множеству независимо работающих пользовательских компьютеров согласно варианту осуществления настоящего изобретения.
Согласно одному варианту осуществления изобретения, один пользовательский компьютер может инициировать сеанс, приглашая другие компьютеры присоединиться, например, для редактирования документа или для изменения скорости воспроизведения фильма. В одном варианте осуществления компьютер-инициатор может делегировать управление другим пользовательским компьютерам для редактирования совместно используемых цифровых данных. В других вариантах осуществления, управление для редактирования совместно используемых цифровых данных может автоматически совместно использоваться всеми участниками сеанса.
В операции 700, первый пользовательский компьютер A может инициировать сеанс или присоединиться к нему для совместного использования цифровых данных. Сеанс может поддерживаться веб-сайтом по сети, например интернету, или, альтернативно, одним из компьютеров-участников сеанса с использованием соединения между одноранговыми устройствами.
В операции 710, пользовательский компьютер A может обеспечивать цифровое содержимое или обращаться к нему в совместно используемой ячейке памяти (например, на сервере 130 цифровых данных, показанном на фиг. 1 и 2, или в таблице 407 содержимого, показанной на фиг. 4). Хранение цифровых данных в совместно используемой ячейке памяти может позволять всем участникам сеанса совместно использовать цифровые данные.
В операции 720, множественные независимо работающие пользовательские компьютеры B и/или C могут присоединяться к сеансу. Пользовательские компьютеры B и/или C могут присоединяться к сеансу, принимая приглашение от A. Приглашение может отправляться через протокол связи одноранговых устройств. В ходе сеанса любой из участников может приглашать других участников к участию в нем. В этом сценарии пользовательский компьютер B может пригласить пользовательский компьютер D принять участие в сеансе. Пользовательский компьютер D может принять приглашение присоединиться к сеансу.
Пользовательский компьютер A может позволить одному или более другим компьютерам-участникам управлять сеансом. В одном примере, пользовательский компьютер A может начать воспроизведение фильм и может делегировать управление фильмом пользовательским компьютерам B и D, например, с использованием команд управления (например, с помощью кнопок 404 управления, показанных на фиг. 4). В другом примере, пользовательский компьютер A может начать редактирование документа цифровых данных и может делегировать управление документом пользовательским компьютерам B и D. В результате выполнения команды воспроизведения или редактирования программное обеспечение совместного использования данных на компьютерах всех участников сеанса может начать загрузку из совместно используемой ячейки памяти устройства обслуживания содержимого. В ходе воспроизведения фильма или редактирования документа данных пользовательский компьютер C может пригласить пользовательский компьютер E принять участие в сеансе. Поскольку команды управления программного обеспечения совместного использования данных могут указывать каждому компьютеру текущий совместно используемый кадр, пользовательский компьютер E может начинать просмотр фильма с текущего воспроизводимого кадра или может участвовать в редактировании в текущем состоянии документа данных.
В случае фильма, пользовательский компьютер A может затем остановить фильм, и все пользовательские компьютеры могут обсудить сцену. Обсуждение можно реализовать через интерактивную переписку, видеоконференц-связь, речевую связь по IP или любой другой способ реализации обсуждения по сети (например, с использованием модуля 408 интерактивной переписки, показанного на фиг. 4). По окончании обсуждения пользовательский компьютер D, который также имеет возможность управлять скоростью воспроизведения фильма, может возобновить воспроизведение фильма. По окончании фильма пользовательский компьютер B может поместить документ в совместно используемую область и начать показывать документ другим пользовательским компьютерам. В ходе сеанса некоторые участвующие в нем компьютеры могут покидать сеанс, а другие могут присоединяться.
В операции 730, в ходе сеанса множественные команды передаются двумя или более из множественных пользовательских компьютеров A, B, C, D и/или E и/или принимаются координирующим устройством одновременно или в течение заданного интервала времени. Интервал времени может быть равен, например, оценочному или приблизительному времени, которое требуется координирующему устройству для анализа команд от множественных компьютеров для определения, являются ли команды противоречивыми, избыточными или взаимоисключающими (в операции 740), или, альтернативно, оценочному или приблизительному времени после передачи и/или приема команд (в операции 730), которое требуется всем компьютерам, участвующим в сеансе, для выполнения, по меньшей мере, одной или более команд (в операции 780).
В операции 740, координирующее устройство может определять, запускают ли соответствующие команды, переданные двумя или более пользовательскими компьютерами, редакции или операции, которые изменяют совместно используемые цифровые данные противоречивым, избыточным или взаимоисключающим образом. Если нет, процесс может перейти к операции 755. Если да, процесс может перейти к операции 750.
В операции 750, координирующее устройство может выбирать одну из соответствующих команд для выполнения и может отменять или удалять другую(ие) команду(ы) во избежание выполнения конфликтующих или противоречивых редакций или операций.
В операции 755, координирующее устройство может выбирать все множественные команды, подлежащие выполнению, ввиду отсутствия конфликта или помехи между множественными командами.
В операции 760, координирующее устройство может сохранять или внедрять выбранную(ые) команду(ы) (из операции 750 или операция 755) в глобальную очередь команд.
В операции 770, координирующее устройство может отправлять или переносить глобальную очередь команд на каждый из множественных пользовательских компьютеров, участвующих в сеансе.
В операции 780, каждый из этих множественных пользовательских компьютеров может реализовать глобальную очередь команд на своей локальной версии совместно используемых цифровых данных.
Можно использовать другие операции из последовательностей операций.
Хотя изобретение было описано в отношении ограниченного числа вариантов осуществления, очевидно, что изобретение допускает разнообразные вариации, модификации и другие применения.
Класс G06F9/52 синхронизация программы; взаимное исключение, например посредством семафоров
механизм запроса поздней блокировки для пропуска аппаратной блокировки (hle) - патент 2501071 (10.12.2013) | |
способ и устройство для очистки резервирования семафоров - патент 2380743 (27.01.2010) |
Класс G06F15/16 сочетание двух или более вычислительных машин, каждая из которых снабжена по меньшей мере арифметическим устройством, программным устройством и регистром, например для одновременной обработки нескольких программ