Расширяемость инфраструктуры синхронизации

Изобретение относится к средствам обеспечения интеграции приложений для инфраструктуры синхронизации. Технический результат заключается в обеспечении возможности обеспечивать возможность приложениям временно блокировать машину синхронизации от файла, то есть исключать файл из наблюдения синхронизации машины синхронизации. Инфраструктура синхронизации может обеспечивать системную синхронизацию файлов между пользовательскими устройствами и службой облачного хранилища. Произвольные приложения на пользовательском вычислительном устройстве могут осуществлять связь с инфраструктурой синхронизации, чтобы временно приостанавливать синхронизацию определенного файла инфраструктурой синхронизации. Приложение может регистрировать функции в инфраструктуре синхронизации, которые инфраструктура синхронизации может вызывать по отношению к приостановке синхронизации, продолжению обеспечения доступа уровня системы к файлу для произвольных приложений, и возобновлению синхронизации. 3 н. и 17 з.п. ф-лы, 6 ил.

 

Уровень техники

[001] В области сетевых или облачных вычислений, разрабатываются службы, чтобы обеспечивать облачное хранилище для использования клиентскими компьютерами, соединяющимися с облаком. Наряду с тем, что облачное хранилище реализуется множеством способов, в последнее время, облачное хранилище стало тесно интегрированным с файловыми системами (и операционными системами) клиентских компьютеров. С точки зрения пользователя, является желательным обеспечить облачный файл, который выглядит как имеющий универсальное или перемещаемое присутствие как в облаке, так и в клиентских вычислительных устройствах пользователя, которые соединяются с облаком. Целью является обеспечить возможность, чтобы файл, который сохранен в облаке, считывался и записывался как устройствами пользователя, соединяющимися с облаком, так и, возможно, программным обеспечением внутри облака. Одиночная файловая сущность (с точки зрения пользователя) может фактически иметь множество копий или версий в облаке и клиентских компьютерах, которые обновляются параллельно. Чтобы поддерживать согласованность для файла, то есть держать содержимое файла согласованным для облака и для пользовательских устройств, которые соединяются с облаком, может использоваться система синхронизации файлов, или машина синхронизации.

[002] Чтобы обеспечивать гладкий пользовательский опыт и прозрачную согласованность, эта синхронизация основанного на облаке файла предпочтительно выполняется на уровне файловой системы и/или операционной системы. Это скрывает служебную работу, которая обычно требуется, чтобы поддерживать синхронизацию между экземплярами того, что предполагается является одним и тем же логическим файлом. Эта управляемая системой синхронизация также облегчает программистам бремя необходимости писать код их собственного программного обеспечения для специализированной синхронизации.

[003] Тем не менее, могут быть случаи, когда приложение или другое программное обеспечение вне машины синхронизации и клиентской операционной системы должно выполнять специализированную синхронизацию или иным образом управлять и координировать основанные на облаке и клиенте экземпляры файла. Например, совместное параллельное редактирование для текстового процессора может быть связано с проблемами синхронизации, которые обеспечиваемая системой машина синхронизации решать не может. В дополнение, машины синхронизации уровня операционной системы или уровня файловой системы не способны разделять относящиеся к синхронизации ответственности с произвольными приложениями. Если приложение имеет необходимость использовать используемый совместно с облаком файл таким образом, что это может конфликтовать с или мешать машине синхронизации, единственным выбором для приложения будет забрать полную ответственность за файл от машины синхронизации.

[004] Описанное ниже относится к техническим приемам для, среди других вещей, обеспечения возможности машине синхронизации временно прекращать синхронизацию файла и использовать относящиеся к синхронизации функциональные возможности, обеспечиваемые приложениями.

Сущность изобретения

[005] Последующий раздел Сущность изобретения включен сюда, только чтобы ввести некоторые концепции, описанные в разделе Подробное описание ниже. Этот раздел Сущность изобретения не является всеобъемлющим и не предназначен, чтобы очерчивать объем заявленного изобретения, который определяется формулой изобретения, представленной в конце.

[006] Варианты осуществления, здесь описанные, могут включать в себя обеспечение возможности приложениям взаимодействовать с инфраструктурой синхронизации уровня системы. Инфраструктура синхронизации может обеспечивать системную синхронизацию файлов между пользовательскими устройствами и службой облачного хранилища. Произвольные приложения на пользовательском вычислительном устройстве могут осуществлять связь с инфраструктурой синхронизации, чтобы временно приостанавливать синхронизацию определенного файла посредством инфраструктуры синхронизации. Приложение может регистрировать функции в инфраструктуре синхронизации, которые инфраструктура синхронизации может вызывать по отношению к приостановке синхронизации, продолжению обеспечения доступа уровня системы к файлу для произвольных приложений, и возобновлению синхронизации.

[007] Многие из сопутствующих признаков будут описываться ниже со ссылкой на последующее подробное описание, рассматриваемое совместно с сопровождающими чертежами.

Краткое описание чертежей

[008] Представленное описание будет более хорошо пониматься из последующего подробного описания, когда читается в свете сопровождающих чертежей, где сходные ссылочные позиции используются, чтобы обозначать сходные части в сопровождающем описании.

[009] Фиг. 1 показывает вычислительные устройства пользователя, совместно использующие файл, который сохранен в облаке.

[010] Фиг. 2 показывает иллюстративный сценарий, где синхронизация файлов может быть проблематичной.

[011] Фиг. 3 показывает машину синхронизации с интерфейсом прикладного программирования (API) расширения для координации действий управления файлами с любым подходящим образом запрограммированным программным обеспечением.

[012] Фиг. 4 показывает обработку.

[013] Фиг. 5 показывает другую обработку.

[014] Фиг. 6 показывает иллюстративное вычислительное устройство, на котором могут осуществляться варианты осуществления.

Подробное описание

[015] Варианты осуществления, описанные ниже, относятся к обеспечению расширяемости для машины синхронизации, чтобы обеспечивать возможность приложениям временно блокировать машину синхронизации от файла, то есть исключать файл из наблюдения синхронизации машины синхронизации. Варианты осуществления также относятся к обеспечению возможности приложениям регистрировать в машине синхронизации функциональные возможности, которые машина синхронизации может вызывать, например, для помощи в разрешении проблем синхронизации или обеспечения данных из файла, для которого не осуществляется синхронизация.

[016] Описание ниже начинается с обзора основанного на облаке файлового хранилища, совместно используемого множеством устройств. Далее будут описываться инфраструктура синхронизации и потенциальные конфликты между машинами синхронизации и приложениями, за этим будет следовать описание возможностей расширяемости, которые могут встраиваться в машины синхронизации, чтобы обеспечивать возможность блокировки синхронизации и использования машинами синхронизации функциональных возможностей приложений, которые могут помогать машине синхронизации выполнять синхронизацию и обеспечивать доступ к файлам, для которых временно не осуществляется синхронизация.

[017] Фиг. 1 показывает вычислительные устройства 100, 102 пользователя, совместно использующие файл 104, который сохранен в, по меньшей мере, облаке 106 и пользовательском вычислительном устройстве 102. Облако 106 может иметь многообразие служб, которые не все показаны на фиг. 1. Облако 106 может иметь службу учетных записей, которая управляет пользовательскими учетными записями или пользовательскими мандатами. Служба учетных записей может обеспечивать мандат для каждого пользователя. Пользователь может использовать его или ее мандат, чтобы осуществлять доступ к облаку 106 и различным службам там, таким как поисковая машина, служба электронной почты, служба хостинга виртуальных машин или приложений, служба 108 хранения или файлов, или другие. К таким облачным службам может осуществляться доступ с использованием веб-браузера или другого клиентского программного обеспечения на вычислительном устройстве пользователя, таком как вычислительное устройство 100. Заданный пользователь может связывать множество их вычислительных устройств в облаке 106 с использованием одной и той же учетной записи или мандата. В примере из фиг. 1, пользователь связал как вычислительное устройство 100 (устройство 1), так и вычислительное устройство 102 (устройство 2) с облачной службой 108 файлов, таким образом, обеспечивая возможность бесшовного совместного использования файла 104.

[018] В некоторых случаях, клиентское программное обеспечение может осуществлять доступ к облачной службе прозрачно, при условии, что от облака 106 для мандата пользователя была получена авторизация. Например, пользовательское вычислительное устройство 100 может иметь программу просмотра файлов, системный браузер, или другой пользовательский интерфейс для просмотра локальной файловой системы 110, которая управляется операционной системой 112. Такое программное обеспечение клиентской стороны также может соединяться со службой 108 файлов и обеспечивать возможность просмотра файлов в службе 108 файлов, как если бы они были частью локальной файловой системы 110. Программное обеспечение клиентской стороны также может быть произвольными приложениями, исполняющимися на пользовательских вычислительных устройствах 100, 102, или где-то в другом месте.

[019] Некоторые облачные службы обеспечивают возможность одновременно сохранять и осуществлять доступ к файлу или файловому хранилищу в множестве пользовательских устройств и облаке 106. Например, как показано на фиг. 1, файл, такой как файл 104 ("файл 1"), может локально храниться в файловой системе 110 пользовательского вычислительного устройства 100. Файл 104 также может храниться в службе 108 файлов облака. Копия файла 104 в службе 108 файлов также может предоставляться службой 108 файлов другим приложениям в других из устройств пользователя, таких как пользовательское вычислительное устройство 102. Так как множество сущностей осуществляют доступ к и потенциально осуществляют запись в файл 104, инфраструктура синхронизации используется, чтобы синхронизировать экземпляры или копии файла 104.

[020] Инфраструктура синхронизации может включать в себя взаимодействие машин синхронизации, таких как машина 114 синхронизации в пользовательском вычислительном устройстве 100 и машина 116 синхронизации в облаке 106 (которая может располагаться за службой 108 файлов). Каждая машина синхронизации выполняет локальные этапы, чтобы держать соответствующую локальную копию файла 104 в синхронизации с другими копиями файла 104 (отметим, что файл 104 представляет любой произвольный файл). В общем, это включает в себя прием или обнаружение машиной синхронизации локальных обновлений для ее локальной версии файла 104 и распространение этих обновлений в другую из машин синхронизации, которая в свою очередь обновляет ее локальную копию файла 104, так что копии файла 104 находятся в синхронизации.

[021] В одном варианте осуществления служба 108 файлов может действовать как центральное хранилище и координатор, так что устройства пользователя могут не синхронизироваться напрямую друг с другом. Например, пользовательское вычислительное устройство 102 может обмениваться обновлениями синхронизации с облаком 106, и пользовательское вычислительное устройство 100 может аналогично обмениваться обновлениями с облаком 106. Однако вычислительное устройство 100 и вычислительное устройство 102 синхронизируются друг с другом непрямо посредством промежуточной машины 116 синхронизации в службе 108 файлов, которая в действительности распространяет обновления одного пользовательского устройства в другое. Конкретные алгоритмы машины синхронизации могут изменяться согласно тому, находится ли она в облаке 106 или в пользовательском устройстве.

[022] В дополнение к базовой логике синхронизации, упомянутой выше, машины 114, 116 синхронизации также могут иметь логику, чтобы иметь дело с периодическими потерями сетевого соединения между облаком 106 и пользовательским устройством 100. Например, когда соединение между пользовательским устройством 100 и облаком 106 не доступно, приложение 1 118 в пользовательском устройстве 100 может записывать правки или обновления в его локальном файле 104. Обновления во время отсутствия соединения должны накапливаться в обоих местоположениях до тех пор, когда соединение будет восстановлено. Когда соединение восстанавливается, машины 114, 116 синхронизации могут взаимодействовать, чтобы пытаться синхронизировать их накопленные обновления (копия файла 104 в облаке 106 также могла получать обновления, возможно от пользовательского устройства 102, которое все еще соединено с облаком 106). Когда экземпляры файла 104 не могут быть синхронизированы, могут создаваться и сохраняться локальные версии 120 и даже подверсии. Расходящиеся версии 120, которые не могут быть синхронизированы посредством инфраструктуры синхронизации, могут в конечном счете требовать вмешательства пользователя.

[023] Фиг. 2 показывает иллюстративный сценарий, где синхронизация файлов может быть проблематичной. В этом примере, предполагается, что приложение 1 118 (представляющее любое произвольное приложение) имеет доступ как к локальному экземпляру файла 104 на пользовательском вычислительном устройстве 100, так и доступ к копии или экземпляру в облаке 106, возможно после получения от операционной системы 112 унифицированного указателя ресурса (URL) или другого сетевого описателя файла для основанного на облаке файла 104. Первоначально, машина 114 синхронизации синхронизирует файл 104 с облаком 106, как описано выше. В течение этого времени, приложение 1 118 начинает осуществление доступа к и записи как локальной копии файла 104, так и копии в облачной службе 108 файлов. Такое параллельное использование файла 104 может в конечном счете вызывать конфликты или помехи, потенциально повреждающие файл 104 или прерывающие работу инфраструктуры синхронизации или приложения 1 118.

[024] Фиг. 3 показывает машину 114 синхронизации с интерфейсом прикладного программирования (API) 130 расширения для координации действий управления файлами с любым подходящим образом запрограммированным программным обеспечением (представленным посредством приложения 1 118), исполняющимся на пользовательском устройстве 100. API является только одним примером того, как машина 114 синхронизации может осуществлять передачу или осуществлять обмен вызовами/ответами 132 или сообщениями с приложениями. Могут использоваться другие программные технические приемы, такие как программные интерфейсы и контракты. В дополнение, в то время как описывается связь с машиной 114 синхронизации, API 130 может осуществляться как часть полной инфраструктуры синхронизации.

[025] API 130 может включать в себя многообразие вызовов, методов и т.д., которые могут вызываться произвольными приложениями, такими как приложение 1 118. Один такой вызов может быть вызовом блокировки синхронизации, который также может определять или быть направлен к файлу, такому как файл 104. Когда вызов вызывается, скажем, для файла 104, приложением 1 118, машина 114 синхронизации переходит к остановке синхронизации файла 104 с облаком 106. Это может включать в себя различные подготовительные меры, такие как применение любых ожидающих применения обновлений к файлу 104, осуществление связи с машиной 116 синхронизации в облаке 106, чтобы показывать, что инфраструктура синхронизации, возможно, временно прекращает нести ответственность за синхронизацию для файла 104. Машина 116 синхронизации может в свою очередь применять обновления или выполнять другие задачи, такие как инструктирование облачной службы 108 файлов сбросить биты на диск. Машина 114 синхронизации может отвечать на вызов блокировки синхронизации согласно ее состоянию. Например, если локальный файл 104 не может синхронизироваться, возможно, вследствие потери сетевого соединения с облаком 106, машина 114 синхронизации может отвечать приложению 1 118 соответствующим образом. Если выполняется ответвление (новая подмодификация) локального файла 104, приложение 1 118 также может информироваться. В одном варианте осуществления приложение 1 118 сначала открывает локальный файл 104 и/или основанный на облаке экземпляр файла 104 в режиме только для чтения, и когда вызов блокировки синхронизации возвращается успешно, приложение 1 118 затем открывает файл 104 в режиме записи. Отметим, что блокировка синхронизации выполняется, по меньшей мере, в локальном пользовательском устройстве, но может необязательно расширяться на другие пользовательские устройства, например, чтобы улучшать управление операциями переименования и перемещения файла.

[026] В одном варианте осуществления приложение 1 118 может быть запрограммировано, чтобы работать как элементарный сервер потоковой передачи файлов, возможно имеющий провайдер 136 данных (как обработчик 134 слияния, так и провайдер 136 данных могут быть зарегистрированы посредством API 130 приложением 1 118). Операционная система 112 может обеспечивать систему заместителей файлов, которая обеспечивает возможность использовать заместитель вместо фактического файла; для приложений, файл-заместитель выглядит как обычный файл со свойствами файла, открываемый/закрываемый, и так далее, но данные (содержимое) для файла приходят из источника, другого, нежели файловая система 110. Другими словами, файл-заместитель является объектом операционной системы, который представляется как файл, но внутренне данные, которые выглядят как находящиеся внутри файла, приходят из источника, другого, нежели единица файлового хранилища, например, от приложения с функцией или клиента, который может осуществлять потоковую передачу данных в операционную систему. В этом примере, провайдер 136 данных приложения 1 118 осуществляет потоковую передачу его содержимого (то есть, что бы ни делалось с файлом 104 после того, как блокировка синхронизации была вызвана) для файла 104 в операционную систему и потоковое содержимое обеспечивается посредством файловой/операционной системы во что-либо, считывающее файл 104 посредством файловой системы. Отметим, что функция заместителя/потоковой передачи не требуется для блокировки синхронизации.

[027] Пока блокировка синхронизации удерживается приложением 1 118, инфраструктура синхронизации не синхронизирует файл 104 в пользовательских устройствах или в облаке 106. Таким образом, приложение 1 118 является свободным осуществлять свою собственную логику синхронизации или иным образом осуществлять запись как в локальный экземпляр, так и/или облачный экземпляр без беспокойства в отношении помех с инфраструктурой синхронизации. Например, приложение 1 118 может запрашивать систему в отношении того, являются ли идентичными облачная копия и локальная копия файла 104, возможно с использованием своего собственного обработчика 134 слияния или логики синхронизации. Как описано дополнительно ниже, обработчик 134 слияния приложения 1 118 может представляться посредством интерфейса или контракта для машины 114 синхронизации и может вызываться машиной 114 синхронизации, чтобы выполнять обеспечиваемое приложением слияние; то есть инфраструктура синхронизации может расширяться с помощью внешних функциональных возможностей синхронизации.

[028] В конечном счете, приложение 1 118 снимает блокировку синхронизации. Это может запускаться явно приложением не основе его внутренней логики (например, пользователь приложения 1 явно закрывает файл 104). Или, снятие блокировки синхронизации может запускаться автоматически в ответ на событие, такое как, когда приложение 1 118 закрывается или приложение 1 118 теряет фокус, переключается пользователем (пользователь переключается на другое приложение), происходит приостановка системы, и т.д.

[029] Когда блокировка синхронизации снимается, машина 114 синхронизации возобновляет управление синхронизацией файла 104. Если режим заместителя находится в использовании, как описано выше, это может включать в себя исполнение логики, чтобы обрабатывать любые ожидающие выполнения заместители. В дополнение, машина 114 синхронизации может пытаться синхронизировать файл 104, что, в свою очередь, может запускать расконсервацию файла 104. Машина 114 синхронизации может контактировать с провайдером 136 данных или обработчиком 134 слияния, и приложение 1 118 активируется, чтобы расконсервировать файл с использованием провайдера 136 данных. Впоследствии, машина 114 синхронизации может проверять, чтобы видеть, имеется ли ожидающая загрузка в облако 106 файла 104. Если нет, то инфраструктура синхронизации находится в устойчивом состоянии по отношению к файлу 104. Даже если не имеется никакого ожидающего локального обновления, инфраструктура синхронизации может иметь причину скачивать некоторые более поздние обновления из облака, если облачная версия изменена. В этом случае (нет никакого ожидающего локального изменения, кроме более поздней облачной версии) облачная версия заменяет локальный файл (нет конфликта). Однако, если имеется ожидающая загрузка, облачная версия может скачиваться (машина синхронизации не должна скачивать облачную версию, чтобы обнаруживать облачные изменения, которые могут отражаться в другой доступной информации). Если облачные изменения не обнаруживаются, то снова машина 114 синхронизации находится в устойчивом состоянии синхронизации. В противном случае, зарегистрированный обработчик 134 слияния приложения 1 118 вызывается машиной 114 синхронизации. Если это терпит неудачу, то запускается некоторая процедура обработки неудачи, такая как создание ветви (версии) файла 104 или отображение пользовательского интерфейса, чтобы обеспечивать возможность пользователю выбирать то, как обрабатывать несовместимость.

[030] Последовательно, ссылаясь на фиг. 4, 5, и временную последовательность, показанную на фиг. 3, сначала, на этапе 160, машина 114 синхронизации управляет синхронизацией для файла 104. Записи в локальные и облачные экземпляры с использованием произвольных приложений посредством файловой системы и облака, соответственно, синхронизируются прозрачно для приложений. На этапе 162, произвольное приложение, такое как приложение 1 118, может требовать исполнения своего собственного управления синхронизацией для файла 104. На этапе 164 (первый момент 138 времени) приложение делает запрос блокировки синхронизации в машину 114 синхронизации и необязательно регистрирует свой обработчик 134 слияния и/или свой провайдер 136 данных (для обменов с машиной 114 синхронизации). На этапе 166 машина синхронизации удовлетворяет запрос блокировки синхронизации посредством прекращения синхронизации файла с облаком.

[031] На этапе 168 приложение 1 118 имеет управление файлом, осуществляет записи в локальные и/или облачные экземпляры файла 104, выполняет обновления, возможно, для специализированной синхронизации, и т.д. Перед вторым моментом 140 времени, второе приложение (приложение 2) может запросить файл 104 посредством файловой системы, в этом случае операционная система предоставляет файл-заместитель с содержимым от провайдера 136 данных. Во второй момент 140 времени, происходит этап 170, приложение 1 118 заканчивает с файлом, и на этапе 172 делает вызов разблокировки синхронизации в машину 114 синхронизации. На этапе 174 машина 114 синхронизации возобновляет синхронизацию файла с облаком, что может включать в себя этап 176 попытки синхронизации файла, и возможно вызова обработчика 134 слияния на этапе 178. Конкретный порядок этапов на фиг. 4 и 5 не требуется и некоторые этапы могут пропускаться.

[032] Чтобы подытожить, произвольное приложение может обеспечивать службы или расширения, относящиеся к синхронизации, для инфраструктуры синхронизации, например, которые могут в противном случае не быть доступными для системы или встроенной инфраструктуры синхронизации. Может обеспечиваться файловая согласованность, пока приложение работает с файлом, конфликты поведения между приложением и инфраструктурой синхронизации могут избегаться, и во время блокировки синхронизации другие приложения могут осуществлять доступ к файлу прозрачно посредством заместителей (инфраструктура синхронизации осуществляет посредничество доступа к содержимому файла). Подход "все или ничего" может избегаться посредством обеспечения возможности приложению получать полное владение файлами и применять логику специализированной синхронизации. Приложение может осуществлять согласование с инфраструктурой синхронизации, чтобы идентифицировать и запрашивать (осуществлять блокировку синхронизации) эти файлы. Контракт, API, реализуемый приложением программный интерфейс, или аналогичный механизм может добавляться к встроенной инфраструктуре синхронизации. Инфраструктура синхронизации может действовать в качестве основного агента синхронизации, а также может временно освобождаться от этой работы приложением, когда приложение манипулирует файлом. Приложение может показывать, что оно является способным выполнять интеллектуальные слияния над заданным файлом. Когда инфраструктура синхронизации обнаруживает конфликт синхронизации, она тогда может знать, что она может делегировать разрешение конфликтов приложению.

[033] Фиг. 6 показывает пример вычислительного устройства 100, в котором могут осуществляться варианты осуществления, описанные выше. Вычислительное устройство 100 может иметь одно или более устройств 266 отображения, также как запоминающее устройство 262 и процессор 264. Эти элементы могут взаимодействовать способами, хорошо понимаемыми в области вычислительной техники. В дополнение, устройства 268 ввода могут быть объединены с или находиться в осуществлении связи с вычислительным устройством 100. Устройство 266 отображения может быть любым многообразием устройств, используемых, чтобы отображать сигнал, выводимый вычислительными устройствами, включая сюда, например, устройства отображения с твердой поверхностью, проекторы, сенсорные поверхности, и другие. Вычислительное устройство 100 может иметь любой формфактор или может быть встроенным в другое устройство. Например, сенсорные панели управления часто используются, чтобы управлять устройствами, роботами, и другими машинами. Вычислительное устройство 100 может быть в форме портативных устройств, таких как смартфон, планшетный компьютер, игровая приставка, автономный сервер, или другие.

[034] Варианты осуществления и признаки, описанные выше, могут реализовываться в форме информации, сохраненной в энергозависимых или энергонезависимых машиночитаемых или считываемых устройствами устройствах. Считается, что они включают в себя, по меньшей мере, устройства, такие как оптическое хранилище (например, постоянное запоминающее устройство на основе компакт-дисков (CD-ROM)), магнитные носители, постоянное запоминающее флэш-устройство (ROM), или любые другие устройства для хранения цифровой информации в физическом веществе. Сохраненная информация может находиться в форме машинно-исполнимых инструкций (например, скомпилированном исполнимом двоичном коде), исходного кода, байткода, или любой другой информации, которая может использоваться, чтобы обеспечивать возможность или конфигурировать вычислительные устройства выполнять различные варианты осуществления, описанные выше. Также считается, что они включают в себя, по меньшей мере, энергозависимую память, такую как оперативное запоминающее устройство (RAM) и/или виртуальную память, хранящую информацию, такую как инструкции центрального обрабатывающего устройства (CPU), во время исполнения программы, выполняющей вариант осуществления, также как энергонезависимые носители, хранящие информацию, которая обеспечивает возможность программе или исполняемому файлу загружаться и выполняться. Варианты осуществления и признаки могут выполняться на любом типе вычислительного устройства, включая сюда портативные устройства, рабочие станции, серверы, мобильные беспроводные устройства, и так далее.

1. Способ обеспечения интеграции приложений для инфраструктуры синхронизации, исполняющейся на вычислительном устройстве, хранящем первый экземпляр файла, при этом вычислительное устройство находится на связи через сеть с облачной службой, причем облачная служба хранит второй экземпляр файла, при этом облачная служба содержит удаленную машину синхронизации, причем способ содержит этапы, на которых:

в течение периода времени разрешают обновления первого экземпляра файла, в то же время разрешая обновления второго экземпляра файла;

для обновлений первого экземпляра и второго экземпляра файла в течение данного периода времени, автоматически поддерживают синхронизацию между первым экземпляром файла и вторым экземпляром файла посредством обмена, через сеть, обновлениями между инфраструктурой синхронизации и удаленной машиной синхронизации, при этом инфраструктура синхронизации содержит интерфейс или API (интерфейс прикладного программирования) для обеспечения возможности произвольным приложениям, исполняющимся на вычислительном устройстве, осуществлять связь с инфраструктурой синхронизации;

принимают запрос блокировки синхронизации через упомянутый интерфейс или API от первого приложения, исполняющегося на вычислительном устройстве, при этом запрос блокировки синхронизации связан с упомянутым файлом; и

в ответ на запрос блокировки синхронизации обеспечивают блокировку синхронизации, содержащую временное прекращение синхронизации между первым и вторым экземплярами файла инфраструктурой синхронизации, причем, в то время как блокировка синхронизации является действующей, обновление первого и второго экземпляров файла продолжает быть разрешенным.

2. Способ по п. 1, дополнительно содержащий синхронизацию первого и второго экземпляров файла первым приложением в то время, как блокировка синхронизации является действующей.

3. Способ по п. 2, дополнительно содержащий выдачу снятия блокировки синхронизации первым приложением.

4. Способ по п. 3, дополнительно содержащий ответ на снятие блокировки синхронизации посредством возобновления поддержания синхронизации между первым и вторым экземплярами файла инфраструктурой синхронизации.

5. Способ по п. 4, в котором возобновление поддержания синхронизации содержит вызов инфраструктурой синхронизации обработчика слияния, зарегистрированного в инфраструктуре синхронизации первым приложением.

6. Способ по п. 5, дополнительно содержащий слияние первого и второго экземпляров файла обработчиком слияния.

7. Способ по п. 5, дополнительно содержащий этап, на котором сохраняют версию файла, когда затем обработчик слияния является неспособным осуществить слияние первого экземпляра и второго экземпляра файла.

8. Вычислительное устройство, содержащее:

запоминающее устройство, приспособленное для хранения файлов и управления облачными версиями файлов;

процессор;

машину синхронизации, выполненную с возможностью:

синхронизировать множество файлов с соответственными облачными версиями файлов, так что изменения в соответственных облачных версиях файлов синхронизируются с файлами и изменения в файлах синхронизируются с соответственными облачными версиями файлов,

обмениваться обновлениями через сеть с удаленной машиной синхронизации в службе хранения, исполняющейся в облаке, каковая служба хранения управляет облачными версиями файлов, и

принимать от приложения, исполняющегося в вычислительном устройстве, запросы блокировки синхронизации первого файла из файлов, причем в то время как блокировка синхронизации первого файла является действующей, обновление первого файла и его облачной версии продолжает быть разрешенным, и отвечать посредством остановки автоматической синхронизации для первого файла для каждого из запросов блокировки синхронизации и возобновления автоматической синхронизации для файла, когда приложение инициирует соответствующие снятия блокировок синхронизации.

9. Вычислительное устройство по п. 8, в котором приложения модифицируют файлы посредством файловой системы.

10. Вычислительное устройство по п. 9, при этом служба хранения привязана к вычислительному устройству с помощью пользовательского мандата, ассоциированного с вычислительным устройством.

11. Вычислительное устройство по п. 9, при этом другое вычислительное устройство, также связанное с пользовательским мандатом, обновляет первый файл, и служба хранения, хранящая облачную версию первого файла, синхронизирует обновления, сделанные этим другим вычислительным устройством в отношении первого файла на вычислительном устройстве, с облачной версией первого файла.

12. Вычислительное устройство по п. 8, при этом, когда приложению выдана блокировка синхронизации, приложение может записывать в первый файл на вычислительном устройстве и может записывать в облачную версию первого файла без помех со стороны машины синхронизации.

13. Вычислительное устройство по п. 8, в котором, когда машина синхронизации возобновляет автоматическую синхронизацию первого файла, машина синхронизации загружает, по меньшей мере, часть облачной версии первого файла и определяет из нее, имеются ли различия между первым файлом и облачной версией первого файла.

14. Вычислительное устройство по п. 13, в котором, когда машиной синхронизации определено, что между первым файлом и облачной версией первого файла есть различия, машина синхронизации вызывает приложение или зарегистрированный им элемент, чтобы привести в соответствие первый файл и облачную версию первого файла.

15. Вычислительное устройство по п. 14, в котором машина синхронизации обновляет облачную версию первого файла согласно упомянутому приведению в соответствие, выполняемому приложением или зарегистрированным им элементом.

16. Машиночитаемое запоминающее устройство, на котором сохранена информация, обеспечивающая вычислительному устройству возможность выполнять процесс, содержащий операции, в соответствии с которыми:

осуществляют доступ к облачной службе хранения, хранящей облачные экземпляры файлов, хранимых операционной системой вычислительного устройства, при этом облачная служба хранения содержит удаленную машину синхронизации;

разрешая обновление каждого из файлов и разрешая обновление каждого из соответственных облачных экземпляров файлов, автоматически синхронизируют облачные экземпляры файлов с локальными экземплярами файлов, соответственно, каковая синхронизация выполняется посредством того, что операционная система вычислительного устройства и удаленная машина синхронизации обмениваются через сеть обновлениями для файлов и облачных экземпляров файлов, при этом автоматическая синхронизация приспособлена согласовывать произвольные приложения на вычислительном устройстве, обновляющие локальные экземпляры файлов, и произвольные приложения на вычислительном устройстве или на других вычислительных устройствах, обновляющие облачные экземпляры файлов; и

обеспечивают таким произвольным приложениям возможность запрашивать и снимать блокировки синхронизации для управления выполняемыми операционной системой приостановкой и возобновлением автоматической синхронизации файлов с облачными экземплярами файлов, при этом если некое произвольное приложение приостанавливает автоматическую синхронизацию конкретного файла в связи с соответствующим запросом блокировки синхронизации, обновление этого конкретного файла и его облачного экземпляра продолжает быть разрешенным.

17. Машиночитаемое запоминающее устройство по п. 16, при этом приложение задает локальный файл, для которого синхронизация должна быть приостановлена.

18. Машиночитаемое запоминающее устройство по п. 17, при этом, когда синхронизация заданного локального файла приостановлена, приложение обеспечивает поточную передачу данных этого локального файла в операционную систему.

19. Машиночитаемое запоминающее устройство по п. 18, при этом, когда второе приложение запрашивает локальный файл, в то время как синхронизация для локального файла приостановлена, операционная система получает данные для локального файла из поточной передачи данных и подает эти данные во второе приложение.

20. Машиночитаемое запоминающее устройство по п. 19, при этом второе приложение запрашивает локальный файл через файловую систему операционной системы, причем файловая система управляет локальными экземплярами файлов.



 

Похожие патенты:

Изобретение относится к способу оптимального планирования использования виртуальных сетевых ресурсов центров обработки данных. Техническим результатом является обеспечение устранения сегментации физических ресурсов за счет миграции виртуальных ресурсов в центрах обработки данных, устранения перегрузки входящих в физическое хранилище данных каналов обмена.

Изобретение относится к области автоматизированного лингвистического преобразования данных с конкретным фокусом на преобразовании между разными орфографиями (например, с письменности русской кириллицы на латинскую письменность) в пределах заданных контекстов (таких как названия коммерческих предприятий).

Изобретение относится к средствам для обработки звукового сигнала. Технический результат заключается в повышении эффективности обработки сигнала.

Изобретение относится к обнаружению дублирования данных. Технический результат – сокращение записанного объема данных.

Группа изобретений относится к распределенным запоминающим системам и может быть использована для сохранения данных в кэш-памяти или памяти другого типа. Техническим результатом является обеспечение улучшенного использования ресурсов кэш-памяти и ресурсов других типов памяти.

Изобретение относится к области вычислительной техники, в частности к высокопроизводительным вычислительным устройствам для решения трудоемких задач с использованием распараллеливания по данным на множество независимых подзадач.

Изобретение относится к области обработки естественных языков. Техническим результатом является повышение точности результатов распознавания информации.

Изобретение относится к области связи. Технический результат заключается в повышении эффективности сбора целевой информации в чате для членов группы.

Настоящее изобретение относится к средствам поиска. Технический результат заключается в расширении арсенала технических средств поиска.

Изобретение относится к средством проецирования разметки документа. Технический результат заключается в повышении эффективности извлечения информации за счет сокращения времени предобработки и в повышении точности извлекаемой информации.

Группа изобретений относится к распределенным запоминающим системам и может быть использована для сохранения данных в кэш-памяти или памяти другого типа. Техническим результатом является обеспечение улучшенного использования ресурсов кэш-памяти и ресурсов других типов памяти.

Группа изобретений относится к распределенным запоминающим системам и может быть использована для сохранения данных в кэш-памяти или памяти другого типа. Техническим результатом является обеспечение улучшенного использования ресурсов кэш-памяти и ресурсов других типов памяти.

Изобретение относится к области вычислительной техники, в частности к высокопроизводительным вычислительным устройствам для решения трудоемких задач с использованием распараллеливания по данным на множество независимых подзадач.

Изобретение относится к способу проверки подлинности товаров или услуг. Технический результат заключается в управлении доступом к базе данных товаров и услуг.

Настоящее изобретение относится к средствам поиска. Технический результат заключается в расширении арсенала технических средств поиска.

Настоящее изобретение относится к средствам поиска. Технический результат заключается в расширении арсенала технических средств поиска.

Изобретение относится к средством проецирования разметки документа. Технический результат заключается в повышении эффективности извлечения информации за счет сокращения времени предобработки и в повышении точности извлекаемой информации.

Изобретение относится к поисковым системам. Техническим результатом является снижение вычислительных ресурсов, необходимых для обработки поисковых запросов.

Изобретение относится к области компьютерных технологий. Техническим результатом является представление приложений, которые в настоящий момент выполняются на терминале.

Изобретение относится к способу получения информации о пользователе. Техническим результатом является повышение точности анализа информации о пользователе.

Способ защиты товаров от подделки и определения их подлинности на основе асимметричного шифрования относится к способам распознавания и может быть использовано для защиты товаров от подделки и определения их подлинности. Технический результат заключается в повышении надежности защиты. Способ основан на использовании асимметричного шифрования за счет того, что на этапе изготовления для каждого товара фирма изготовитель с помощью полученных от удостоверяющего центра (далее - УЦ) данных формирует набор данных, включающих информацию о товаре (наименование, дата выпуска, название фирмы производителя); первую электронную цифровую подпись, выданную УЦ при регистрации организации, сформированную посредством асимметричного шифрования из названий фирмы и ее информации о товаре с помощью закрытого ключа УЦ; вторую электронную цифровую подпись, сформированную посредством асинхронного ключа шифрования, реализованного в программном обеспечении, выданном УЦ, из информации о товаре: наименовании, дате выпуска, названии фирмы производителя, с помощью закрытого ключа, выданного УЦ. Информацию записывают в память RFID-метки защитной этикетки, а также печатают на ее поверхность в виде QR-кода с помощью данных, переданных УЦ при регистрации организации, после чего защитную этикетку крепят на защищаемом товаре, готовом к реализации, что позволяет обеспечивать безопасную, надежную идентификацию при его реализации. 3 ил.
Наверх