ОДНОВРЕМЕННЫЙ СОВМЕСТНЫЙ ПРОСМОТР ДОКУМЕНТА
SIMULTANEOUS JOINT VIEW OF DOCUMENT

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Является общепринятым использование процесса совместного просмотра при разработке документов текстовых редакторов. В одном сценарии, пользователь создает документ и затем передает посредством электронной почты копии документов просматривающим. Эти просматривающие затем создают комментарии на независимой копии документа. Как только каждый просматривающий завершает процесс просмотра, они отправляют откомментированную версию документа автору. Автор затем «объединяет» эти комментарии в один документ. Автору может быть необходимо решить конфликтующие комментарии посредством повторной отправки изменений просматривающим.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Данное краткое изложение сущности изобретения представлено для представления подборки концепций терминов в упрощенной форме, которые далее описаны в Подробном описании. Данное краткое изложение сущности не предназначено ни идентифицировать основные признаки или существенные признаки заявленного изобретения, ни использоваться в качестве помощи в определении объема притязаний заявленного изобретения.
Документ одновременно открывается различными клиентами для совместного просмотра документа. Каждый из клиентов может создавать комментарии к документу в одно и то же время. Комментарии, созданные в документе одним клиентом, автоматически синхронизируются с другими клиентами, которые одновременно осуществляют доступ к документу.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг.1 иллюстрирует примерное вычислительное устройство;
фиг.2 показывает систему совместного просмотра;
фиг.3 иллюстрирует примерный документ с ассоциированными комментариями; и
фиг.4 показывает показательный процесс совместного просмотра документа.
ПОДРОБНОЕ ОПИСАНИЕ
Переходя теперь к чертежам, в которых одинаковые числовые позиции представляют одинаковые элементы, различные варианты осуществления будут описаны. В частности, фиг.1 и соответствующее ей описание направлены на предоставление краткого, общего описания подходящей вычислительной среды,, в которой варианты осуществления могут быть осуществлены.
Обычно программные модули включают в себя подпрограммы, программы, компоненты, структуры данных и другие типы структур, которые выполняют определенные задачи или реализуют определенные абстрактные типы данных. Другие конфигурации компьютерной системы могут также использоваться, включая карманные устройства, многопроцессорные системы, основанную на микропроцессорах или программируемую бытовую электронику, миникомпьютеры, мэйнфреймовые компьютеры, и т.п. Распределенные вычислительные среды могут также использоваться, где задачи выполняются удаленными устройствами обработки, которые соединены через сеть связи. В распределенной вычислительной среде программные модули могут быть расположены и в локальных и в удаленных устройствах хранения памяти.
Переходя теперь к фиг.1, будет описана иллюстративная компьютерная архитектура для компьютера 100, используемого в различных вариантах осуществления. Компьютерная архитектура, показанная на фиг.1, может быть сконфигурирована как настольный или мобильный компьютер и включает в себя центральный блок обработки 5 ("CPU"), системную память 7, включающую оперативную память 9 ("RAM") и постоянную память ("ROM") 10, и системную шину 12, которая связывает память с центральным блоком обработки ("CPU") 5.
Базовая система ввода-вывода, содержащая основные подпрограммы, которые помогают передавать информацию между элементами в пределах компьютера, такую как во время запуска, сохраняется в ROM 10. Компьютер 100 далее включает в себя устройство 14 массового хранения для того, чтобы сохранять операционную систему 16, прикладную программу(ы) 24, другие программные модули 25 и диспетчер 26 совместного просмотра, который будет описан более подробно ниже.
Устройство 14 массового хранения соединяется с CPU 5 через контроллер массового хранения (не показанный), соединенный с шиной 12. Устройство 14 массового хранения и его связанные читаемые компьютером носители обеспечивают энергонезависимую память для компьютера 100. Хотя описание читаемых компьютером носителей, содержащихся здесь, относится к устройству массового хранения, такому как жесткий диск или дисковод для компакт-дисков, читаемые компьютером носители могут быть любыми доступными носителями, к которым может получить доступ компьютер 100.
В качестве примера, а не ограничения, читаемые компьютером носители могут включать в себя компьютерные носители и носители связи. Компьютерные носители хранения включают в себя энергозависимые и энергонезависимые, съемные и несъемные носители, реализованные в любом способе или технологии для хранения информации, такие как читаемые компьютером команды, структуры данных, программные модули или другие данные. Компьютерные носители информации включают в себя, но не ограничиваются, RAM, ROM, стираемую программируемую постоянную память (Erasable Programmable Read Only Memory; EPROM), электрически стираемую программируемую постоянную память (Electrically Erasable Programmable Read Only Memory; EEPROM), флэш-память или другую технологию твердотельной памяти, CD-ROM, цифровые универсальные диски ("DVD"), или другое оптическое хранилище, магнитные кассеты, магнитная лента, хранение магнитного диска или другие магнитные устройства хранения, или какой-либо другой носитель, который может использоваться для хранения требуемой информации и к которому может получить доступ компьютер 100.
Согласно различным вариантам осуществления компьютер 100 работает в сетевом окружении, используя логические соединения с удаленными компьютерами через сеть 18, такую как Интернет. Компьютер 100 может соединиться с сетью 18 через блок 20 сетевого интерфейса, соединенный с шиной 12. Сетевое соединение может быть беспроводным и/или проводным. Блок 20 сетевого интерфейса может также быть использован для соединения с другими типами сетей и удаленными компьютерными системами. Компьютер 100 может также включать в себя контроллер 22 ввода/вывода для приема и обработки ввода от многих других устройств, включая клавиатуру, мышь или электронное перо (не показанный в фиг.1). Точно так же контроллер 22 ввода/вывода может обеспечить вывод для экрана дисплея 23, принтер или другой тип устройства вывода.
Как упомянуто кратко выше, много программных модулей и файлов данных могут быть сохранены в устройстве 14 хранения большой емкости и RAM 9 компьютера 100, включая операционную систему 16 подходящую для управления работой сетевого персонального компьютера, такую как операционная система WINDOWS VISTA от MICROSOFT CORPORATION Редмонд, Вашингтон. Устройство 14 хранения большой емкости и RAM 9 могут также сохранять один или несколько программных модулей. В частности, устройство хранения 14 большой емкости и RAM 9 могут сохранять одну или несколько прикладных программ 24, которые сконфигурированы, чтобы взаимодействовать с документом, таким как документ 27, сохраненный в сетевом хранилище 28 данных. Например, прикладная программа 24 может быть приложением полнофункционального клиента, например MICROSOFT WORD от MICROSOFT CORPORATION Редмонд, Вашингтон. Прикладная программа 24 может также быть тонким клиентом, который не включает полный комплект функциональности приложения полнофункционального клиента. Например, тонкий клиент мог быть реализован в пределах программы браузера, которая включает функциональность для отображения содержимого документа и позволяет комментариям быть созданными в документе.
Прикладная программа 24 использует диспетчер 26 совместного просмотра, чтобы позволить одновременный совместный просмотр документа. Обычно диспетчер 26 совместного просмотра помогает в синхронизации комментариев, созданных различными клиентами 17 на документе 27. Комментарии, созданные одним пользователем, интегрируются в документ 27 так, что каждый пользователь, имеющий документ 27, открытый для комментирования/редактирования, может видеть комментарии, которые сделаны другими пользователями. Согласно одному варианту осуществления документ для просмотра хранится в хранилище 28 данных, к которому могут осуществить доступ различные пользователи, которые расположены в различных положениях. Например, документ может храниться в библиотеке документов, которая доступна в сети. Каждый просматривающий может открывать документ от центрального репозитария, чтобы предоставить комментарии к документу. Просматривающие могут осуществлять доступ к документу в то же самое или в различные моменты времени без потребности гарантировать, что только один человек имеет документ, открытый за один раз. Таким образом человек может создавать изменения в документе, в то время как другие комментируют документ. Дополнительные детали относительно диспетчера совместного просмотра будут предоставлены ниже.
Фиг.2 показывает систему 200 совместного просмотра документа. Как показано, система 200 включает в себя клиенты 1-3, диспетчер 26 совместного просмотра, устройство отображения и документ 27. Каждый из клиентов включает в себя приложение, чтобы взаимодействовать с документами, такими как документ 27, и создавать комментарии к документу.
Как показано, клиенты 1 и 3 включают в себя полнофункциональное приложение 62, которое обеспечивает редактирование и возможность комментирования в документе 27. Приложение полнофункционального клиента может быть приложением обработки текста, которое создало документ 27, или некоторым другим приложением, которое обеспечивает богатый набор функциональных возможностей для редактирования и изменения структуры документа 27. Например, полнофункциональное приложение может быть программой из комплекта приложений MICROSOFT OFFICE, таким как MICROSOFT WORD. Клиент 2 иллюстрирован с тонким приложением 64, которое обеспечивает ограниченный набор функциональности (по сравнению с приложением 62 полнофункционального клиента) для того, чтобы сделать комментарии к документу 27. Тонкое приложение 64 могло быть приложением, которое обеспечивает возможность отображения документа 27 и возможность создания комментария к документу. Например, тонкое приложение может быть простым веб-интерфейсом, который позволяет пользователю делать комментарии. Тонкий клиент UI не требует функциональности полнофункционального приложения, так что анализ и комментарий процесса документа не является монопольным только пользователям определенной версии приложения клиентского программного обеспечения.
Как только создается документ, такой как документ 27, просматривающим предлагается сделать комментарии к документу. Просматривающие могут быть приглашены, автоматически используя функциональность, которая связана с приложением, таким как приложение совместности документа, или просматривающие могут быть приглашены некоторым другим способом. Например, просматривающим может быть отправлена по электронной почте ссылка к документу, указывающая, что документ готов к комментированию. Согласно одному варианту осуществления документ помещается в хранилище 28 данных так, что к нему могут получить доступ другие пользователи в сети. Например, документ 27 может быть помещен в общий ресурс в сети.
Совместно действующие пользователи (т.е. клиенты 1-3) могут тогда одновременно открывать документ и делать комментарии. Как показано, некоторые пользователи одновременно осуществляют доступ к документу, используя то же самое или другое полнофункциональное приложение, в то время как другие пользователи осуществляют доступ к документу, используя тонкий клиент. Каждый пользователь может вставить комментарии одновременно в документ. Согласно одному варианту осуществления пользователь создает комментарий к содержимому документа посредством выбора содержимого документа и затем вставки текста комментария в текстовое поле. Другие способы вставки текста комментария могут также использоваться. Например, пользователь мог бы выбрать содержимое, затем щелкнуть правой кнопкой и ввести текст комментария. Комментарий связан с выбранным содержимым. Согласно одному варианту осуществления содержимое документа является выбираемым в секциях. Например, пользователь может выбрать абзац документа, на котором комментировать. В дополнение к созданию комментариев один или несколько клиентов могут определяться как автор или владелец, у которого есть полномочия редактирования документа, которые позволяют создавать структурные изменения в документе. Например, пользователь может добавить содержимое, удалить содержимое, переместить содержимое, и т.п. Согласно одному варианту осуществления один клиент назначается как автор или владелец документа 27. Когда автор имеет документ, открытый для редактирования, другим пользователям препятствуют редактировать содержимое, в настоящее время редактируемое, и ограничивают создание комментариев к содержимому. Таким образом, комментарии от множественных авторов могут синхронизироваться между множественными копиями файла в реальном времени, позволяя каждому автору видеть любые комментарии, вводимые другими авторами, в то время как у них есть копия документа, открытого для редактирования.
Комментарии, созданные каждым клиентом (т.е. клиентами 1-3), синхронизируются среди различных приложений, которые в текущий момент осуществляют доступ к документу. Согласно одному варианту осуществления, комментарии, созданные в клиенте, синхронизируются с версией документа в хранилище 28 данных по событию сохранения. Обычно синхронизация комментариев включает в себя запись комментариев в документ 27. Так как комментарии, сделанные в отношении файла, являются неконфликтующими, комментарии от различных клиентов могут быть записаны в документ одновременно. Другие пути синхронизации комментариев могут также использоваться. Например, комментарии к документу могли бы синхронизироваться после возникновения некоторого другого события (т.е. истечение периода времени, пользователь перемещается на другой абзац и т.п.). После синхронизации, комментарии, созданные другими клиентами, показываются в других приложениях на других клиентских устройствах. Так как комментарии предоставляются на каждый клиент, на котором в настоящий момент есть открытый документ, просматривающие видят комментарии от других просматривающих, в то время как они все еще просматривают документ. Таким образом, пользователи могут реагировать на другие комментарии, созданные в документе. Например, просматривающий может прокомментировать комментарий вместо того, чтобы комментировать сам документ (см. фиг.3 и связанное с ней обсуждение).
Если клиент (т.е. автор документа) редактирует документ и удаляет абзац, для которого создан комментарий, тогда комментарий становится «осиротевшем» комментарием. «Осиротевший комментарий» - это комментарий, который больше не связан с разделом документа. В одном варианте осуществления осиротевшие комментарии отображаются около положения удаленного содержимого документа. Альтернативно, осиротевшие комментарии удаляются из документа, и для пользователя отображается сообщение, указывающее, что абзац удален и комментарий больше недействителен.
Клиент может также решить ввести предложенное редактирование, которое, если принято автором, было бы автоматически включено в документ. Согласно одному варианту осуществления предложенное редактирование обрабатывается как тип комментария (см. фиг.3 и связанное обсуждение). Альтернативно, предложенное редактирование могло быть обработано независимо.
Согласно одному варианту осуществления клиент может также создавать копию документа и синхронизировать комментарии с совместно используемой копией вместо того, чтобы непосредственно осуществлять доступ к совместно используемому документу. Например, просматривающий мог сделать комментарии к копии документа, которая хранится локально, и затем по подтверждению что изменение синхронизируется с совместно используемой копией.
Фиг.3 показывает пример клиентского интерфейса 300, который включает в себя отображение образцового документа, включающего комментарии.
Согласно одному варианту осуществления, когда на содержимое, например абзац 1, сделано наведение, выделяется содержимое, и входное текстовое поле может быть отображено, чтобы принять комментарий к выделенной части. Точно так же ранее сделанный комментарий может быть выбран, чтобы позволить просматривающему комментировать комментарий. Как показано, содержимое документа разделяется на дискретные секции. Например, содержимое документа разделяется на секции на основе на слов, строк, предложений, абзацев, страниц и т.п.Как показано, разделы содержимого документа определяются абзацами документа. Согласно одному варианту осуществления, каждая секция в пределах документа помечается уникальным идентификатором, так что комментарий может легко быть присоединен к соответствующему разделу. Связывание уникального идентификатора с каждой секцией помогает гарантировать, что даже когда секция изменяет положение в пределах документа, ассоциированные комментарии в этой секции присоединены к правильной секции. Для простоты иллюстрации на фиг.3, абзац 1 имеет ID 1; абзац 2 имеет ID 2, и абзац N имеет ID N. Уникальный идентификатор может быть любым идентификатором, который однозначно определяет каждый раздел. Например, уникальный идентификатор мог быть Глобальным уникальным идентификатором (GUID).
Комментарии, созданные в документе клиентами, связываются с секцией, которой принадлежит комментарий. Как показано, комментарий 1 связан с абзацем 1. Как может быть замечено, ID (82) комментария 1 устанавливается в ID абзаца 1. Так же комментарий 2 связан с абзацем 2, и комментарий 4 связан с абзацем N.
Как было обсуждено кратко выше, комментарий может также быть сделан на предыдущем комментарии. В текущем примере комментарий 3(84) является комментарием, который сделан на комментарии 2. Например, комментарий к предыдущему комментарию может быть сделан, когда пользователь выбрал комментарий документа и затем добавляет содержимое. Согласно одному варианту осуществления комментарий связывается с родительским комментарием установкой ID комментария так, чтобы он соответствовал ID того комментария, с которым он связывается. Другие способы могут также использоваться, чтобы связывать комментарий с предыдущим комментарием. Например, каждый комментарий, сделанный на предыдущем комментарии, мог быть вложен соответственно в древовидной структуре.
Комментарий может также быть идентифицирован как предложенное редактирование. В текущем примере комментарий 4(84) идентифицируется как предлагаемое редактирование. Предлагаемое редактирование очень подобно комментарию, но предлагаемое редактирование обеспечивает метод включения комментария в содержимое документа. В текущем примере предлагаемое редактирование идентифицировано установкой True/False (т.е. Предлагаемое Редактирование = "Т" или "F"). Приложение может предоставить возможность, которая позволяет автору документа принимать/отклонять предлагаемые редактирования. Когда автор принимает предлагаемое редактирование, тогда комментарий автоматически включается в содержимое документа. Когда автор отклоняет предлагаемое редактирование, тогда содержимое предлагаемого редактирования не включается в документ.
Согласно одному варианту осуществления каждый комментарий сохраняется как структура данных, которая включает в себя информацию, связывающую комментарий с секцией документа, к которой был сделан комментарий; является ли комментарий предлагаемым редактированием; и текст комментария. В одном варианте осуществления комментарии сохраняются с использованием XML. Например, XML-тег указывает, что содержимое является комментарием, который включает в себя атрибут, который идентифицирует содержимое, с которым он связан. Другие теги могут также быть включены, например, комментарий задачи мог использоваться. Комментарий задачи мог использоваться, чтобы указать, что комментарий является задачей, которая будет связана с созданием документа. Предлагаемое редактирование может также быть идентифицировано флагом в пределах тега комментария. Другие атрибуты могут также быть включены в комментарий, включая время, в которое создан комментарий, имя того, кто сделал комментарий, ID комментария и т.п.
Согласно другому варианту осуществления маркер редактирования может также быть связан с каждым абзацем, так что определение может быть сделано относительно того, применяется ли комментарий, который сделан, к текущему состоянию документа. Например, когда первый клиент осуществляет доступ к документу, у абзаца может быть ID редактирования 2. Первый клиент добавляет комментарий, и когда комментарий перемещен в центральное хранилище данных, определяется, что ID редактирования того же самого абзаца теперь 3, что указывает, что абзац был отредактирован. Когда ID редактирования являются различными, предупреждающее сообщение может быть обеспечено наряду с копией измененного абзаца.
Перейдем теперь к фиг.4, будет описан показательный процесс совместного просмотра документа. При чтении обсуждения подпрограмм, представленных здесь, нужно понимать, что логические операции различных вариантов осуществлений реализованы (1) как последовательность действий, реализованных компьютером, или программные модули, работающие на вычислительной системе, и/или (2) как соединенные машинные логические схемы или модули схемы в пределах вычислительной системы. Вариант осуществления является вопросом выбора, зависящим от требований к производительности вычислительной системы, реализующей изобретение. Соответственно, показательные логические операции и составление вариантов осуществлений, описанных здесь, упомянуты по-разному как операции, структурные устройства, действия или модули. Эти операции, структурные устройства, действия и модули могут быть реализованы в программном обеспечении, во встроенном микропрограммном обеспечении, в цифровой логике специального назначения и любой их комбинации.
После операции начала процесс переходит к операции 410, где клиент осуществляет доступ к документу, к которому одновременно осуществляет доступ по крайней мере один другой клиент. Документ открыт так, что каждый клиент может записать в документ, чтобы включить комментарии, которые сделаны на документе.
Перемещаясь в операцию 420, производится определение относительно того, когда создан комментарий в документе. Согласно одному варианту осуществления комментарий создается в документе после того, как комментарий помещен в документ посредством возникновения предопределенного события. Например, клиент сохраняет документ. Другие события могут также использоваться (т.е. истек период времени, пользователь перемещается в другой абзац, и т.п.).
Далее, в операции 430 совместно используемый документ обновляется, чтобы отразить комментарий. Согласно одному варианту осуществления, комментарий записан в документ, который сохраняется сетевым хранилищем данных, которое совместно используется клиентами, осуществляющими доступ к документу.
Далее, в операции 440 комментарий, сделанный одним клиентом, предоставляется другим клиентам. Это может включать в себя клиент, осуществляющий доступ к обновленному документу и/или отправляющий каждую клиентскую информацию о комментарии, касающуюся комментария. Например, каждый клиент мог включать комментарий и секцию документа, которому принадлежит комментарий.
Переходя к операции 450, каждый клиент отображает документ с объединенным комментарием. Процесс тогда переходит к операции конца и возвращается к другим действиям обработки.
Вышеупомянутое описание, примеры и данные обеспечивают полное описание изготовления и использования состава изобретения. Так как много вариантов осуществления изобретения могут быть сделаны, не отступая от идеи и объема изобретения, изобретение находится в следующей за описанием формуле изобретения.