Способ (варианты) и система (варианты) обработки документа в распределенной архитектуре
Иллюстрации
Показать всеИзобретение относится к обработке документа в распределенной архитектуре. Технический результат заключается в уменьшении объема данных, которые будут передаваться между сервером, на котором расположен находящийся в совместном доступе документ, и множеством электронных устройств, за счет создания на втором сервере синхронизационного документа, включающего в себя часть набора записей о правках в документе. Способ, в котором получают доступ от первого сервера к документу, включающему часть содержимого и набор записей о правках, для множества электронных устройств; поддерживают на втором сервере синхронизационный документ, включающий в себя по меньшей мере часть набора записей о правках в документе; получают запрос на синхронизацию от первого электронного устройства, и после этого получают доступ к синхронизационному документу, включающему в себя по меньшей мере часть набора записей о правках в документе; передают синхронизационный документ первому электронному устройству. 6 н. и 26 з.п. ф-лы, 6 ил.
Реферат
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
[01] Настоящее решение относится к системам и способам обработки документа в распределенной архитектуре. Конкретно, системы и способы направлены на синхронизацию изменений, сделанных в документе в контексте совместной работы.
УРОВЕНЬ ТЕХНИКИ
[02] Область совместного редактирования, конкретнее совместного редактирования различных типов документов, динамично развивается в последние годы. Системы и способы, такие как те, которые реализуют Google Docs, Google Sheets и Google Slides от компании Google Inc., расположенной в Соединенных Штатах Америки, Калифорния CA 94043, Маунтин-Вью, Амфитеатр-Паркуэй, 1600, позволяют пользователям создавать и редактировать документы в режиме онлайн и совместно работать с другими пользователями в режиме реального времени. Созданные документы обычно сохраняются автоматически на серверах, и история изменений также может автоматически сохраняться таким образом, чтобы все произведенные изменения можно было просматривать и/или заново вносить в документы.
[03] После создания документов, ими можно делиться, открывать к ним доступ и предоставлять возможность редактирования нескольким пользователям одновременно, а пользователи могут следить за изменениям каждого знака в тот момент, когда другой пользователь делает свои правки. Документы могут включать в себя форматы и/или типы файлов, такие как программы обработки текста (например, ".doc" или ".docx", совместимые с программой Microsoft Word), программы обработки таблиц (например, ".xls" или ".xlsx", совместимые с программой Microsoft Excel) и/или программы обработки презентации (например, ".ppt" или ".pptx", совместимые с программой Microsoft PowerPoint).
[04] Были разработаны многочисленные подходы, включая те, что подробно описаны в патенте US 8656290 (далее будет упоминаться как патент 8656290, опубликовано 18 февраля 2014 г.), к синхронизации документов, которые находятся в совместном владении, в совместном доступе и которые могут редактироваться одновременно несколькими пользователями. В приведенном примере с патентом 8656290 сервер может быть выполнен с возможностью получать правки от клиента для создания новой версии документа, которая будет отражать полученную правку. Сервер также может быть выполнен с возможностью определять обновления для других клиентов, в совместном доступе с которыми находится этот документ, и предоставлять обновления другим клиентам.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
[05] Варианты осуществления настоящего решения были разработаны с учетом изобретательского понимания по меньшей мере одной проблемы, связанной с известным уровнем техники.
[06] Несмотря на то что способ и системы синхронизации документа между множеством пользователей были разработаны, тем не менее, желательны улучшения, нацеленные на уменьшение объема данных, которые будут передаваться между сервером, на котором расположен находящийся в совместном доступе документ, и множеством электронных устройств, связанных с множеством пользователей. Подобные улучшения могут быть еще более желательны в том случае, если документ достигает определенного размера.
[07] Настоящее решение было создано разработчиком(ами) на основе наблюдений о том, что сервер может сохранять документ, включающий в себя часть содержимого и набор записей о правках, в первой базе данных, и синхронизационный документ, включающий в себя по меньшей мере часть набора записей о правках, во второй базе данных. После получения запроса на синхронизацию от электронного устройства, связанного с пользователем, сервер может, вместо передачи документа, передавать только синхронизационный документ. С учетом того, что электронное устройство уже обладает предыдущей версией документа, хранящейся в памяти, электронное устройство может далее восстанавливать последнюю версию документа без передачи документа (т.е. документа целиком) между сервером и электронном устройством. Настоящее решение, следовательно, позволяет уменьшить объем данных, которые будут передаваться между сервером и электронным устройством; и улучшить пользовательский опыт путем уменьшения количества времени, которое необходимо электронному устройству для представления документа пользователю.
[08] Таким образом, одним объектом настоящего решения является исполняемый на компьютере способ обработки документа в распределенной архитектуре, реализуемый процессором, способ включает в себя:
получение доступа от первого постоянного машиночитаемого носителя первого сервера к документу, который включает в себя часть содержимого и набор записей о правках, причем документ доступен множеству электронных устройств, которое включает в себя первое электронное устройство и второе электронное устройство;
поддержку на втором постоянном машиночитаемом носителе второго сервера, синхронизационного документа, который включает в себя по меньшей мере часть набора записей о правках в документе;
после получения запроса на синхронизацию от первого электронного устройства:
получение доступа к синхронизационному документу со второго постоянного машиночитаемого носителя;
передачу синхронизационного документа первому электронному устройству;
после получения указания на то, что синхронизация на первом электронном устройстве на основе синхронизационного документа была неудачной:
получение доступа к документу с первого постоянного машиночитаемого носителя; и
передачу документа первому электронному устройству;
[09] В некоторых вариантах осуществления, способ дополнительно включает в себя, после получения первой новой записи о правке от первого электронного устройства:
добавление первой новой записи о правке в документ, хранящийся на первом постоянном машиночитаемом носителе; и
добавление первой новой записи о правке в синхронизационный документ, хранящийся на втором постоянном машиночитаемом носителе.
[10] В некоторых вариантах осуществления, способ дополнительно включает после получения первой новой записи о правке от первого электронного устройства:
добавление первой новой записи о правке в документ, хранящийся на первом постоянном машиночитаемом носителе; и
добавление первой новой записи о правке в синхронизационный документ, хранящийся на втором постоянном машиночитаемом носителе.
[11] В некоторых вариантах осуществления, после получения первой новой записи о правке, связанной с первой версией документа от первого электронного устройства, и второй новой записи о правке, связанной с первой версией документа от второго электронного устройства:
получение доступа по меньшей мере к одному из: документу из первого постоянного машиночитаемого носителя или синхронизационному документу из второго постоянного машиночитаемого носителя; и
создание новой объединенной записи о правке на основе по меньшей мере одного из: первой новой записи о правке, второй новой записи о правке, документа или синхронизационного документа.
[12] В некоторых вариантах осуществления способ дополнительно включает в себя:
добавление новой объединенной записи о правке в документ, хранящийся на первом постоянном машиночитаемом носителе; и
добавление новой объединенной записи о правке в синхронизационный документ, хранящийся на втором постоянном машиночитаемом носителе.
[13] В некоторых вариантах, часть содержимого является первым набором записей о правке, а набор записей о правке - вторым набором записей о правке.
[14] В некоторых вариантах осуществления, первый набор записей о правке и второй набор записей о правке указывают по меньшей мере на одно из: знаки, которые необходимо добавить, или знаки, которые необходимо удалить в результате взаимодействия пользователя с одним из первого электронного устройства или второго электронного устройства.
[15] В некоторых вариантах осуществления, по меньшей мере одно из: часть содержимого или набор записей о правках обладает журнальной структурой.
[16] В некоторых вариантах осуществления, поддержка во втором постоянном машиночитаемом носителе второго сервера, синхронизационного документа, которая включает в себя, после определения того, что документ превышает пороговое значение, создание во втором постоянном машиночитаемом носителе второго сервера, синхронизационного документа на основе по меньшей мере одного из: части содержимого и набора записей о правке документа.
[17] В некоторых вариантах осуществления, определение того, что документ превышает пороговое значение, включает по меньшей мере одно из: определение того, что документ превышает заранее определенное число записей в журнале, или того, что документ превышает заранее определенный размер, выраженный в единицах памяти.
[18] В некоторых вариантах осуществления, указание на то, что синхронизация была неудачной, далее включает в себя определение первым электронным устройством того, что синхронизационный документ не обеспечивает правильную синхронизацию между локальным содержимым, хранящимся в постоянном машиночитаемом носителе первого электронного устройства, и синхронизационным документом.
[19] В некоторых вариантах осуществления, определение первым электронным устройством, что синхронизационный документ не обеспечивает правильную синхронизацию, включает определение того, что синхронизационный документ не содержит по меньшей мере некоторые данные, которые необходимы для создания локальной версии документа, хранящейся в постоянном машиночитаемом носителе первого электронного устройства, локальная версия документа является зеркальным отражением документа, хранящимся в первом постоянном машиночитаемом носителе первого сервера.
[20] В некоторых вариантах осуществления первый постоянный машиночитаемый носитель первого сервера является долговременным постоянным машиночитаемым носителем для долговременного хранения.
[21] В некоторых вариантах, второй постоянный машиночитаемый носитель второго сервера является кратковременным постоянным машиночитаемым носителем для кратковременного хранения, который обладает более высокой скоростью доступа к памяти первого постоянного машиночитаемого носителя первого сервера.
[22] В некоторых вариантах осуществления, синхронизационный документ включает скользящее подмножество предыдущих правок, которые были сделаны в документе.
[23] Таким образом, другим объектом настоящего решения является исполняемый на компьютере способ обработки документа в распределенной архитектуре, реализуемый процессором, способ включает в себя:
получение доступа от первого постоянного машиночитаемого носителя первого сервера к документу, который включает в себя часть содержимого и набор записей о правках, причем документ доступен множеству электронных устройств, которое включает в себя первое электронное устройство и второе электронное устройство;
поддержку на втором постоянном машиночитаемом носителе второго сервера, синхронизационного документа, который включает в себя по меньшей мере часть набора записей о правках в документе;
после получения запроса на синхронизацию от первого электронного устройства:
получение доступа к синхронизационному документу со второго постоянного машиночитаемого носителя;
после определения того, что синхронизационный документ обеспечивает правильную синхронизацию для первого электронного устройства, передачу синхронизационного документа первому электронному устройству;
после определения того, что синхронизационный документ не обеспечивает правильную синхронизацию для первого электронного устройства:
получение доступа к документу с первого постоянного машиночитаемого носителя; и
передачу документа первому электронному устройству.
[24] Таким образом, другим объектом настоящего решения является исполняемый на компьютере способ обработки документа в распределенной архитектуре, реализуемый процессором, способ включает в себя:
получение доступа от первого постоянного машиночитаемого носителя первого сервера к документу, который включает в себя часть содержимого и набор записей о правках, причем документ доступен множеству электронных устройств, которое включает в себя первое электронное устройство и второе электронное устройство;
после определения того, что размер документа превышает порог:
создание на втором постоянном машиночитаемом носителе второго сервера, синхронизационного документа, который включает в себя по меньшей мере часть набора записей о правках в документе;
после получения запроса на синхронизацию от первого электронного устройства:
получение доступа к синхронизационному документу со второго постоянного машиночитаемого носителя;
передачу синхронизационного документа первому электронному устройству;
после получения указания на то, что синхронизация на первом электронном устройстве на основе синхронизационного документа была неудачной:
получение доступа к документу с первого постоянного машиночитаемого носителя; и
передачу документа первому электронному устройству.
[25] Другим объектом настоящего решения является постоянный машиночитаемый носитель, хранящий программные инструкции (машиночитаемые коды) для обработки документа в распределенной архитектуре, при этом программные инструкции выполняются процессором компьютерной системы для осуществления одного или нескольких упомянутых выше способов.
[26] Другим объектом настоящего решения является компьютерная система, например, без введения ограничений, электронное устройство, включающее в себя по меньшей мере один процессор и память, хранящую программные инструкции для обработки документа в распределенной архитектуре, при этом программные инструкции выполняются одним или несколькими процессорами компьютерной системы для осуществления одного или нескольких упомянутых выше способов.
[27] В контексте настоящего описания, если четко не указано иное, "электронное устройство", "сервер", "удаленный сервер" и "компьютерная система" подразумевают аппаратное и/или системное обеспечение, подходящее к решению соответствующей задачи. Таким образом, некоторые неограничивающие примеры аппаратного и/или программного обеспечения включают в себя компьютеры (серверы, настольные компьютеры, ноутбуки, нетбуки и так далее), смартфоны, планшеты, сетевое оборудование (маршрутизаторы, коммутаторы, шлюзы и т.д.) и/или их комбинацию.
[28] В контексте настоящего описания, если четко не указано иное, "машиночитаемый носитель" и "память" подразумевает под собой носитель абсолютно любого типа и характера, не ограничивающие примеры включают в себя ОЗУ, ПЗУ, диски (компакт диски, DVD-диски, дискеты, жесткие диски и т.д.), USB-ключи, флеш-карты, твердотельные накопители и накопители на магнитной ленте.
[29] В контексте настоящего описания, если четко не указано иное, "признак" информационного элемента может представлять собой сам информационный элемент или указатель, отсылку, ссылку или другой косвенный способ, позволяющий получателю указания найти сеть, память, базу данных или другой машиночитаемый носитель, из которого может быть извлечен информационный элемент. Например, признак файла может включать в себя сам файл (т.е. его содержимое), или же он может являться уникальным дескриптором файла, идентифицирующим файл по отношению к конкретной файловой системе, или каким-то другими средствами передавать получателю указание на сетевую папку, адрес памяти, таблицу в базе данных или другое место, в котором можно получить доступ к файлу. Как будет понятно специалистам, степень точности, необходимая для такого указания, зависит от степени первичного понимания того, как должна быть интерпретирована информация, которой обмениваются получатель и отправитель указателя. Например, если до установления связи между отправителем и получателем понятно, что признак информационного элемента принимает вид ключа базы данных для записи в конкретной таблице заранее установленной базы данных, содержащей информационный элемент, то передача ключа базы данных - это все, что необходимо для эффективной передачи информационного элемента получателю, несмотря на то, что информационный элемент не передавался между отправителем и получателем указания.
[30] В контексте настоящего описания, если конкретно не указано иное, слова «первый», «второй», «третий» и т.д. используются в виде прилагательных исключительно для того, чтобы отличать существительные, к которым они относятся, друг от друга, а не для целей описания какой-либо конкретной связи между этими существительными. Так, например, следует иметь в виду, что использование терминов "первый сервер" и "третий сервер" не подразумевает какого-либо порядка, отнесения к определенному типу, хронологии, иерархии или ранжирования (например) серверов/между серверами, равно как и их использование (само по себе) не предполагает, что некий "второй сервер" обязательно должен существовать в той или иной ситуации. В дальнейшем, как указано здесь в других контекстах, упоминание "первого" элемента и "второго" элемента не исключает возможности того, что это один и тот же фактический реальный элемент. Так, например, в некоторых случаях, "первый" сервер и "второй" сервер могут являться одним и тем же программным и/или аппаратным обеспечением, а в других случаях они могут являться разным программным и/или аппаратным обеспечением.
[31] Каждый вариант осуществления настоящего решения включает по меньшей мере одну из вышеупомянутых целей. Следует иметь в виду, что некоторые объекты данного решения, полученные в результате попыток достичь вышеупомянутой цели, могут удовлетворять другим целям, отдельно не указанным здесь.
[32] Дополнительные и/или альтернативные характеристики, аспекты и преимущества вариантов осуществления настоящего решения станут очевидными из последующего описания, прилагаемых чертежей и прилагаемой формулы изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[33] Для лучшего понимания настоящего решения, а также других его аспектов и характерных черт сделана ссылка на следующее описание, которое должно использоваться в сочетании с прилагаемыми чертежами, где:
[34] На Фиг. 1 представлена схема компьютерной системы, которая подходит для реализации настоящего решения, и/или которая используется в сочетании с вариантами осуществления настоящего решения;
[35] На Фиг. 2 представлена схема сетевой вычислительной среды, выполненной в соответствии с вариантом осуществления настоящего решения;
[36] На Фиг. 3 показана схема, представляющая документ и синхронизационный документ в соответствии с вариантом осуществления настоящего решения;
[37] На Фиг. 4 представлена блок-схема, отображающая первый исполняемый на компьютере способ, являющийся вариантом осуществления настоящего решения;
[38] На Фиг. 5 представлена блок-схема, отображающая второй исполняемый на компьютере способ, являющийся вариантом осуществления настоящего решения; и
[39] На Фиг. 6 представлена блок-схема, отображающая третий исполняемый на компьютере способ, являющийся вариантом осуществления настоящего решения.
[40] Также следует отметить, что чертежи выполнены не в масштабе, если не специально указано иное.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
[41] Все примеры и используемые здесь условные конструкции предназначены, главным образом, для того, чтобы помочь читателю понять принципы настоящего решения, а не для установления границ его объема. Следует также отметить, что специалисты в данной области техники могут разработать различные схемы, отдельно не описанные и не показанные здесь, но которые, тем не менее, воплощают собой принципы настоящего решения и находятся в границах его объема.
[42] Кроме того, для ясности в понимании, следующее описание касается достаточно упрощенных вариантов осуществления. Как будет понятно специалисту в данной области, многие варианты осуществления будут обладать большей сложностью.
[43] Некоторые полезные примеры модификаций настоящего решения также могут быть охвачены нижеследующим описанием. Целью этого является исключительно помощь в понимании, а не определение объема и границ настоящего решения. Эти модификации не представляют собой исчерпывающего списка, и специалисты в данной области техники могут создавать другие модификации, остающиеся в границах объема настоящего решения. Кроме того, те случаи, где не были представлены примеры модификаций, не должны интерпретироваться как то, что никакие модификации невозможны, и/или что то, что было описано, является единственным вариантом осуществления этого элемента.
[44] Более того, все заявленные здесь принципы, аспекты и варианты осуществления, равно как и конкретные их примеры, предназначены для обозначения их структурных и функциональных основ. Таким образом, например, специалистами в данной области техники будет очевидно, что представленные здесь блок-схемы представляют собой концептуальные иллюстративные схемы, отражающие принципы настоящего решения. Аналогично, любые блок-схемы, диаграммы переходного состояния, псевдокоды и т.п. представляют собой различные процессы, которые могут быть представлены на машиночитаемом носителе и, таким образом, использоваться компьютером или процессором, вне зависимости от того, показан явно подобный компьютер или процессор или нет.
[45] Функции различных элементов, показанных на фигурах, включая функциональный блок, обозначенный как "процессор" или "графический процессор", могут быть обеспечены с помощью специализированного аппаратного обеспечения или же аппаратного обеспечения, способного использовать подходящее программное обеспечение. Когда речь идет о процессоре, функции могут обеспечиваться одним специализированным процессором, одним общим процессором или множеством индивидуальных процессоров, причем некоторые из них могут являться общими. В некоторых вариантах осуществления процессор может являться универсальным процессором, например, центральным процессором (CPU) или специализированным для конкретной цели процессором, например, графическим процессором (GPU). Более того, использование термина "процессор" или "контроллер" не должно подразумевать исключительно аппаратное обеспечение, способное поддерживать работу программного обеспечения, и может включать в себя, без установления ограничений, цифровой сигнальный процессор (DSP), сетевой процессор, интегральную схему специального назначения (ASIC), программируемую пользователем вентильную матрицу (FPGA), постоянное запоминающее устройство (ПЗУ) для хранения программного обеспечения, оперативное запоминающее устройство (ОЗУ) и энергонезависимое запоминающее устройство. Также может быть включено другое аппаратное обеспечение, обычное и/или специальное.
[46] Программные модули или простые модули, представляющие собой программное обеспечение, которое может быть использовано здесь в комбинации с элементами блок-схемы или другими элементами, которые указывают на выполнение этапов процесса и/или текстовое описание. Подобные модели могут быть выполнены на аппаратном обеспечении, показанном напрямую или косвенно.
[47] С учетом этих примечаний, далее будут рассмотрены некоторые не ограничивающие варианты осуществления настоящего решения.
[48] На Фиг. 1 представлена схема компьютерной системы 100, которая подходит для некоторых вариантов осуществления, компьютерная система 100 включает в себя различные аппаратные компоненты, включая один или несколько одно- или многоядерных процессоров, которые представлены процессором 110, графический процессор (GPU) 111, твердотельный накопитель 120, ОЗУ 130, интерфейс 140 монитора, и интерфейс 150 ввода/вывода.
[49] Связь между различными компонентами компьютерной системы 100 может осуществляться с помощью одной или несколько внутренних и/или внешних шин 160 (например, шины PCI, универсальной последовательной шины, высокоскоростной шины IEEE 1394, шины SCSI, шины Serial ATA и так далее), с которыми электронно соединены различные аппаратные компоненты. Интерфейс 140 монитора может быть соединен с монитором 142 (например, через HDMI-кабель 144), видимый пользователю 170, интерфейс 150 ввода/вывода может быть соединен с сенсорным экраном (не показан), клавиатурой 151 (например, через USB-кабель 153) и мышью 152 (например, через USB-кабель 154), как клавиатура 151, так и мышь 152 используются пользователем 170.
[50] В соответствии с вариантами осуществления настоящего решения твердотельный накопитель 120 хранит программные команды, подходящие для загрузки в ОЗУ 130, и использующиеся процессором 110 и/или графическим процессором GPU 111 для создания тепловой карты. Например, программные инструкции могут представлять собой часть библиотеки или приложения.
[51] На Фиг. 2 показана сетевая вычислительная среда 200, подходящая для использования в сочетании с некоторыми вариантами осуществления настоящего решения, сетевая вычислительная среда 200 включает в себя документный сервер 210 (также упоминаемый как "удаленный сервер" или как "сервер"), документную базу 212 данных, синхронизационную документную базу 214 данных, электронные устройства 232, 234, 236 (также упоминаемые как "клиентские устройства", "электронные устройства" или "электронные устройства, связанные с пользователями"), соединенные с документным сервером 210 через сеть 220 (например, Интернет), что позволяет системам связываться друг с другом.
[52] Варианты осуществления электронных устройств 232, 234, 236 никак конкретно не ограничены, но, в качестве примера, электронные устройства 232, 234, 236 могут взаимодействовать с сервером 212 документов, получая ввод от пользователей и получая и передавая данные через сеть 220. В некоторых вариантах осуществления, каждое из этих электронных устройств 232, 234 и 236 связано с конкретным пользователем. В некоторых других вариантах осуществления, каждое из этих электронных устройств 232, 234 и 236 связано со множеством пользователей. В некоторых других вариантах осуществления, каждое из этих электронных устройств 232, 234 и 236 связано с одним и тем же пользователем. Электронные устройства 232, 234, 236 могут, в качестве неограничивающего примера, представлять собой настольный компьютер, ноутбук, смартфон (например, Apple iPhone или Samsung Galaxy S5), персональный цифровой помощник (PDA) или другое устройство, включающее в себя функциональность вычисления и возможности коммуникации. В некоторых вариантах осуществления, электронное устройство 232 может представлять собой первое мобильное устройство, электронное устройство 234 может представлять собой второе мобильное устройство и электронное устройство 236 может представлять собой настольный компьютер. Каждое из электронных устройств 232, 234, 236 связано с одним и тем же пользователем, который может полагаться на настоящее решение в том, что один или несколько документов, находящихся в совместном использовании электронных устройств 232, 234, 236, будут синхронизированы. Электронные устройства 232, 234, 236 могут включать в себя внутренние аппаратные компоненты, такие как один или несколько многоядерных процессоров, которые представлены на чертеже в виде процессора 110, графического процессора GPU 111, твердотельный накопитель 120 и ОЗУ 130, каждый компонент является аналогом к соответственно пронумерованным компонентам компьютерной системы 100, показанным на Фиг. 1, а также сетевого интерфейса (не показан) для связи с документным сервером 210.
[53] В одном варианте осуществления, электронные устройства 232, 234, 236 обладают браузерным приложением, которое обладает доступом к клиентскому коду локально и/или от документного сервера 210. Клиентский код во время работы на электронном устройстве 232, 234, 236 позволяет получить доступ к документному серверу 210 для получения документа и/или синхронизационного документа, восстановить и/или открыть документ локально и отобразить документ в окне веб-браузера. В некоторых вариантах осуществления, одно из электронных устройств 232, 234, 236 обладает предыдущей версией документа, которая уже хранится в памяти (например, на твердотельном накопителе 120 и/или в ОЗУ 120), в этом случае клиентский код, исполняемый на одном из электронных устройств 232, 234, 236 может запрашивать синхронизационный документ (а не документ полностью) для восстановления последней версии документа. В альтернативном варианте осуществления, если клиентский код определяет, что предыдущая версия документа отсутствует в памяти, клиентский код может запрашивать документ (а не синхронизационный документ). В некоторых вариантах осуществления, клиентский код может также быть выполнен с возможностью получать ввод пользователя, указывающий на изменения в документе, который поступает с одного или нескольких электронных устройств 232, 234, 236. Клиентский код также может быть выполнен с возможностью передавать правки документному серверу 210, на котором исполняется код документного сервера, и модифицировать документ и/или синхронизационный документ в соответствии с внесенными правками.
[54] В одном варианте осуществления, между электронными устройствами 232, 234, 236 и документным сервером 210 может быть установлен канал передачи данных, чтобы обеспечить возможность обмена данными. Подобный обмен данными может происходить на постоянной основе или, альтернативно, при наступлении конкретных событий. Например, обмен данными может происходить в результате того, что пользователь одного из электронных устройств 232, 234, 236 запрашивает открытие документа и получает, в ответ, данные, связанные с документом и/или синхронизационным документом. В качестве другого примера, обмен данными может возникнуть в том случае, когда пользователь одного из электронных устройств 232, 234, 236 редактирует документ, и данные, отражающие изменения, передаются документному серверу 210, который может, в ответ, предавать данные, отражающие изменения, другим из электронных устройств 232, 234, 236. Другие варианты обмена данными между электронными устройствами 232, 234, 236 также возможны и будут понятны специалистам в данной области техники.
[55] После получение одним из электронных устройств 232, 234, 236 данных, которые относятся к документу и/или синхронизационному документу, могут быть сохранены в памяти одного из электронных устройств 232, 234, 236 для мгновенной или последующей обработки, например, процессором 110 одного из электронных устройств 232, 234, 236. Инструкции о проведении обработки данных могут быть выполнены с помощью клиентского кода, который содержит модуль программного обеспечения, управляемого интерфейсом визуализации. Или же программный модуль может управляться независимо от интерфейса визуализации (например, он может управляться операционной системой одного из электронных устройств 232, 234, 236). В других вариантах осуществления команда произвести обработку может быть осуществлена с помощью специализированного модуля (программного и/или аппаратного обеспечения) или неспециализированным модулем (программного и/или аппаратного обеспечения) в пределах объема настоящего решения.
[56] Как будет описано подробней в следующих параграфах, обработка данных, связанных с документом и/или синхронизационным документом, направлена на представление последней версии документа пользователю, связанному с устройствами 232, 234, 236. Дополнительные подробности того, как именно данные обрабатываются, будут описаны в отношении Фиг. 3 - Фиг. 6.
[57] Реализация модуля программного обеспечения и интерфейса визуализации никак конкретно не ограничена. Одним из примеров модуля программного обеспечения и интерфейса визуализации может быть получение доступа пользователем к веб-сайту, связанному с документным сервером 210 с помощью клиента веб-браузера, запущенного на электронных устройствах 232, 234, 236. Например, интерфейс визуализации может быть доступен путем ввода URL, связанного с веб-сервисом Яндекс.Диск, доступном по адресу https://disk.yandex.com. В другом примере интерфейс визуализации может быть осуществлен как программное приложение (также указывается как "приложение") для установки на электронные устройства 232, 234,236. Например, приложение, осуществляющее интерфейс визуализации может быть загружено путем ввода URL, связанного магазином приложений, откуда приложения могут быть загружены. Например, приложение Яндекс.Диск доступно для загрузки в Яндекс.Store, компания Яндекс, Россия, 119021, Москва, ул. Льва Толстого, 16 или в магазине приложений Apple, компания Apple Inc., 1 Infinite Loop, Cupertino, CA 95014, США. Важно иметь в виду, что интерфейс визуализации может быть доступен с использованием других коммерчески доступных или собственных веб-сервисов.
[58] Электронные устройства 232, 234, 236 соединены с сетью 220 через линию передачи данных (не пронумерована). В некоторых вариантах осуществления, не ограничивающих объем решения, сеть может представлять собой Интернет. В других вариантах осуществления сеть 220 может быть реализована иначе - в виде глобальной сети передачи данных, локальной, частной сети передачи данных и т.п.
[59] Реализация линии передачи данных не ограничена, и будет зависеть от того, как реализованы электронные устройства 232, 234, 236. В качестве примера (но не ограничения) в тех вариантах осуществления, когда электронные устройства 232, 234, 236 представляют собой беспроводное устройство связи (например, смартфон), линия передачи данных представляет собой беспроводную сеть передачи данных (например, среди прочего, линия передачи данных 3G, линия передачи данных 4G, беспроводной интернет Wireless Fidelity или WiFi, Bluetooth и т.п.). В тех примерах, где электронные устройства 232, 234, 236 представляют собой портативный компьютер, линия передачи данных может быть как беспроводной (беспроводной интернет Wireless Fidelity или WiFi, Bluetooth и т.п.) так и проводной (соединение на основе сети Ethernet).
[60] Важно иметь в виду, что варианты реализации электронных устройств 232, 234, 236, линия передачи данных и сеть 220 даны исключительно для наглядности. Таким образом, специалисты в данной области техники смогут понять подробности других конкретных вариантов осуществления электронных устройств 232, 234, 236, линии передачи данных и сети 220. То есть, представленные здесь примеры не ограничивают объем настоящего решения.
[61] Также соединен с сетью 220 документный сервер 210, на котором может находиться веб-сервис для обработки и хранения документа и синхронизационного документа. Документный сервер 210 может представлять собой обычный компьютерный сервер. В примере варианта осуществления, документный сервер 210 может представлять собой сервер Dell PowerEdge, на котором используется операционная система Microsoft Windows Server. Излишне говорить, что документный сервер 210 может представлять собой любое другое подходящее аппаратное и/или прикладное программное, и/или системное программное обеспечение или их комбинацию. В представленном варианте осуществления, не ограничивающем объем решения, документный сервер 210 является одиночным сервером. В других вариантах осуществления, не ограничивающих объем решения, функциональность сервера 210 может быть разделена, и может выполняться с помощью нескольких серверов.
[62] Варианты осуществления документного сервера 210 широко известны среди специалистов в данной области техники. Тем не менее, вкратце, документный сервер 210 содержит интерфейс связи (не показан), который настроен и выполнен с возможностью устанавливать соединение с различными элементами (например, электронными устройствами 232, 234, 236 и другими устройствами, потенциально соединенные с сетью 220) через сеть 220. Документный сервер 210 веб-почты дополнительно включает в себя одно или несколько из следующего: компьютерный процессор (не показан), функционально соединенный с интерфейсом связи и настроенный и выполненный с возможностью выполнять различные процессы, описанные здесь.
[63] Основной целью документного сервера 210 является обработка документа в распределенной архитектуре, например, в представленной на Фиг. 2. Далее следует описание варианта осуществления документного сервера 210, не ограничивающего объем решения. Тем не менее, следует иметь в виду, что существуют другие варианты осуществления документного сервера 210, не ограничивающие объем решения. Важно иметь в виду, что для упрощения нижеследующего описания конфигурация документного сервера 210 была сильно упрощена. Считается, что специалисты в данной области техники