Синхронизация документа по протоколу, не использующему информацию о состоянии



Синхронизация документа по протоколу, не использующему информацию о состоянии
Синхронизация документа по протоколу, не использующему информацию о состоянии
Синхронизация документа по протоколу, не использующему информацию о состоянии
Синхронизация документа по протоколу, не использующему информацию о состоянии
Синхронизация документа по протоколу, не использующему информацию о состоянии
Синхронизация документа по протоколу, не использующему информацию о состоянии

 


Владельцы патента RU 2500023:

МАЙКРОСОФТ КОРПОРЕЙШН (US)

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

 

УРОВЕНЬ ТЕХНИКИ

В типичных документальных информационных системах к документам есть доступ на всем уровне документа, вследствие чего весь документ поступает на клиентский компьютер с сервера для редактирования. Это требует наличия низкоуровневых данных, ассоциированных с базовым форматом документа, передаваемым с сервера на клиентский компьютер. Кроме того, инкрементные форматы документа приходится подвергать операции очистки памяти и дефрагментации через сетевое соединение. Более того, блокировками необходимо управлять через сеть. Управление блокировками может представлять собой сложную и недолговечную задачу, которая требует значительного объема изменяемого информационного наполнения. Передача низкоуровневых данных, включая информацию по очистке памяти и дефрагментации, а также по механизму блокировки, чрезмерно привязывает приложение к его низкоуровневому формату файла и может быть негибкой и приводить к неэффективности.

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

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

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

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

Согласно еще одному аспекту, способу синхронизации документа на первом вычислительном устройстве, документ разбивается на ячейки, каждая ячейка задается, по меньшей мере, одним манифестом версии, причем способ включает в себя: получение первой версии и, по меньшей мере, одной ячейки, ассоциированной с документом; получение обновления первым вычислительным устройством, где обновление указывает на идентификатор обновленной версии, ассоциированный с каждой ячейкой, ассоциированной с документом; сохранение первой версии каждой ячейки, когда идентификатор первой версии ячейки соответствует идентификатору обновленной версии ячейки; генерирование новой версии каждой ячейки, причем генерирование новой версии включает в себя назначение новой версии нового идентификатора версии, когда идентификатор первой версии ячейки не соответствует идентификатору обновленной версии ячейки; стирание любой ячейки, на которую не ссылаются корневые объекты; и синхронизацию документа путем замены ячеек на новую версию каждой ячейки. Идентификатор ячейки включает в себя пару глобально уникального идентификатора (globally unique identifier, GUID) и целого числа (integer, INT), причем GUID представляет собой глобально уникальную область действия, определяющую совокупность ячеек и версий, включает в себя корневые объекты, причем к ячейкам в пределах области имеется доступ через корневые объекты. Идентификатор ячейки ассоциирован с первой версией, обладающей, по меньшей мере, с одним идентификатором первой версии. Каждый, по меньшей мере, из одного идентификатора версии представляет состояние ячеек в каждый момент времени. Ячейка включает в себя область действия, определяющая совокупность ячеек и версий, и область действия включает в себя, по меньшей мере, один корневой объект. Ячейки в пределах области определения доступны через корневой объект.

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

ОПИСАНИЕ ЧЕРТЕЖЕЙ

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

Фиг.1 представляет собой схематическую блок-схему, иллюстрирующую примерную авторскую систему.

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

Фиг.3 представляет собой схематическую блок-схему блока совместимых данных.

Фиг. 4 представляет собой схематическую блок-схему области определения.

Фиг.5 представляет собой схематическую блок-схему примерной клиентской вычислительной системы, сконфигурированной для внедрения среды авторских разработок; и

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

ПОДРОБНОЕ ОПИСАНИЕ

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

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

В примерных вариантах воплощения, описанных в настоящем раскрытии, документ разбивают на последовательность частей, называемых блоками совместимых данных. По умолчанию, документ можно преобразовать в один-единственный блок совместимых данных, который охватывает весь документ. Когда конкретные сведения о структуре документа известны, документ можно разбивать на более чем один блок совместимых данных. Например, презентационную программу, например, программу, созданную с использованием презентационной графической программы POWERPOINT®, состоящей более чем из одного слайда, можно разделить на несколько блоков совместимых данных, где каждый блок совместимых данных включает в себя один слайд. Например, презентацию, состоящую из десяти слайдов, можно разбивать на десять блоков совместимых данных.

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

Существуют два основных подхода к внедрению допустимых ошибок. Первый состоит в том, что допустимые ошибки могут быть точно вычислены с помощью алгоритма «diff». Например, используемый алгоритм может представлять собой библиотеку «Удаленная дифференциальная компрессия» (Remote Differential Compression, RDC), библиотека обнаружена в платформе WINDOWS. Алгоритмический подход обладает преимуществом, состоящим в том, что данные можно считать неявными, и тогда никакой структуры или структурных сведений может не потребоваться. Это является идеальным для сценариев, когда формат документа фиксирован, неизвестен или не может быть изменен. Не ограничивающие примеры форматов файла, которые является фиксированными, неизвестными или которые нельзя изменить, включают в себя текстовые форматы, растровые изображения и аудиофайлы.

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

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

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

Обратимся теперь к фигурам: фиг.1 иллюстрирует примерную авторскую систему 100, обладающую признаками, которые иллюстрируют примерные особенности раскрытия. Авторская система 100 включает в себя устройство хранения данных 120, на котором хранится главная копия документа 150. В одном варианте воплощения устройство хранения 120 может включать в себя (но не ограничено) сервер, клиентский компьютер или другое вычислительное устройство. В другом варианте воплощения устройство хранения 120 может включать в себя одно или несколько устройств хранения (например, сеть вычислительных устройств).

Авторская система 100 также включает в себя одно или несколько клиентских вычислительных устройств 110A, 110B, 110C, 110D, связанные с возможностью обмена данными с устройством хранения данных 120. Каждое из клиентских вычислительных устройств может редактировать документ 150 путем получения обновления на один или несколько блоков совместимых данных 155 и редактирования объектов данных в блоке совместимых данных 155. Блоки совместимых данных 155 синхронизируют, когда клиентские вычислительные устройства периодически посылают на устройство хранения данных 120 обновления, которые оно разделяет с другими клиентскими вычислительными устройствами.

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

В показанном примере четыре клиентских вычислительных устройства 110A, 110B, 110C и 110D соединены, с возможностью обмена данными, с устройством хранения данных 120. Однако в других вариантах воплощения с устройством хранения данных 120 может быть соединено любое количество вычислительных устройств. В показанном примере каждое клиентское вычислительное устройство 110A, 110B, 110C, 110D может посылать на устройство хранения данных 120 обновления, созданные клиентом клиентского вычислительного устройства, и может запрашивать с устройства хранения данных 120 другие блоки совместимых данных для редактирования/авторинга. В одном варианте воплощения устройство хранения данных 120 может представлять собой серверное вычислительное устройство, а клиентские вычислительные устройства могут представлять собой клиентские вычислительные устройства 110A, 110B, 110C, 110D. Возможны и другие конфигурации системы. Например, в альтернативном варианте воплощения можно использовать несколько серверных вычислительных устройств.

Как показано на фиг.2, документ 150, хранимый на устройстве хранения данных 120, может включать в себя контент 152A и 152B, разбитый на блоки совместимых данных 155A, 155B. Авторские приложения 130 на клиентских вычислительных устройствах 110 обрабатывают и управляют контентом блоков совместимых данных 155A, 155B документа 150. Вообще говоря, клиентское вычислительное устройство 11 OA может синхронизировать обновления для контента 152A отдельно от обновлений, обеспечиваемых клиентским вычислительным устройством 110B. Поскольку обновления делаются для различных блоков совместимых данных, между блоками совместимых данных конфликт слияния не возникнет.

Обратимся к фиг.3. Показан блок совместимых данных 155A (то есть структура данных), включающий в себя множество версий программы для блока совместимых данных 155A 305, 310 и 315. Ячейки представляют собой группы объектов данных со сходными свойствами. Например, ячейка может содержать группу текстов, группу рисунков и т.д. Каждая из ячеек 305, 310 и 315 включает в себя идентификатор ячейки 320 (показанный лишь для ячейки 305), который однозначно идентифицирует конкретную ячейку в документе 150. Каждая из ячеек 305, 310 и 315 может сообщаться, по меньшей мере, с одной другой ячейкой внутри документа 150, с использованием идентификаторов ячеек. Также каждая из ячеек 305, 310 и 315 ассоциирована, по меньшей мере, с одной версией программы 325 (показанной лишь для ячейки 305). Следует отметить, что состояние ячейки описывается версией, которая содержит состояние группы объектов данных.

Каждая ячейка может включать в себя идентификатор ячейки, включающий в себя пару глобально уникального идентификатора (globally unique identifier, GUID) и целого числа (integer, INT). Каждая ячейка также может быть включена в файл, задающий совокупность ячеек и версий. Область действия также может включать в себя, по меньшей мере, один корневой объект. Ячейки в области определения могут быть доступны через корневые объекты. Идентификатор ячейки может быть ассоциирован с первой версией, включающей в себя, по меньшей мере, один первый идентификатор версии. Каждый, по меньшей мере, из одного идентификатора версии может представлять состояние ячеек в момент времени. Под термином «файл» понимается не то, что он используется для представления поименованного сохраняемого «логического объекта», и он не должен представлять собой физический файл, такой как текстовой файл или изображение jpeg.

Блок совместимых данных 155A включает в себя множество объектов данных 330, 335, 340 и 345, задающих содержание документа 150. Как правило, объекты данных могут представлять собой произвольные двоичные данные. Неисключительные примеры объектов данных включают в себя текст, рисунок, таблицу, гиперссылку, файл кинофрагмента, аудиофайл и т.д. Каждый объект данных 330, 335, 340 и 345 ассоциирован с одной из ячеек 305, 310 и 315 и имеет идентификатор объекта, который однозначно идентифицирует объект данных в ассоциированной ячейке. Например, идентификатор объекта 350 однозначно идентифицирует объект данных 330 в ячейке 305. Идентификаторы ячеек, идентификаторы объектов и идентификаторы версий могут включать в себя пару GUID и INT. Кроме того, GUID может быть глобально уникальной внутри ячейки.

Каждый объект данных 330, 335, 340 и 345 сконфигурирован таким образом, чтобы он сообщался с другими ячейками и с объектами внутри ассоциированной ячейки. Например, объект данных 330 может сообщаться с опорными ячейками 310 и 315, причем в опорных ячейках 310 и 315 не содержатся объекты. Это помогает обеспечивать согласованность, даже если одна ячейка изменяется независимо от другой. Обычно объект может адресоваться к любому другому объекту в пределах той же ячейки и к другим ячейкам, но не к объектам в других ячейках. В дополнение, каждая из ячеек 305, 310 и 315 задана таким образом, чтобы каждая другая ячейка оставалась неподверженной изменениям объектов данных ячейки. Также, каждая ячейка 305, 310 и 315 может быть способна адресоваться, по меньшей мере, к одной ячейке в пределах области действия. Область действия может задавать совокупность ячеек и версий. См. фиг.4, где схематически изображена область действия.

В ходе разбиения каждый из объектов данных 330, 335, 340 и 345 можно сгруппировать, по меньшей мере, в одну группу объектов. Использование групп объектов минимизирует служебные сигналы сопровождаемых объектов каждого по отдельности. В сценарии, когда все объекты относительно крупные, наличие групп объектов может быть необязательным, поскольку служебные сигналы малы. Однако в сценарии, когда объекты могут быть произвольно малы, группы объектов используют для контроля служебных сигналов. Группы объектов также учитывают отбор объектов (то есть блоков изменений) и их группирование в более крупные блоки. В ходе разделения на части возникает необходимость в тестировании и поддержании характеристик «блока изменений» как раз созданных групп.

Устройство хранения данных 120 может сортировать объекты данных 330, 335, 340 и 345 по группам объектов, исходя из различных факторов, таких как вероятность (то есть эвристика, основанная на применении), с которой каждый объект данных будет обновлен клиентским компьютером 110. Например, объекты могут быть сгруппированы по нескольким категориям. Не ограничивающие примеры этих категорий включают в себя: 1) типы объектов, про которые известно, что они часто изменяются (например, свойства метаданных документа, такие как подсчет слов и последний момент изменений); ii) типы объектов, про которые известно, что они изменяются очень часто (например, рисунки); iii) объекты, частота изменений который неизвестна; и iv) объекты, которые часто изменялись (например, списковая структура для списка, который пользователь непрерывно изменял).

В дополнение, устройство хранения данных 120 может сортировать объекты данных 330, 335, 340 и 345 по группам объектов, исходя из размера каждого объекта данных. Например, в алгоритм сортировки можно вводить размер. Если объект считается крупным, то служебный сигнал отслеживания объекта как одиночный объект становится незначительным. Это особенно верно, когда выгода просчитывалась (то есть это способствует предотвращению выборки или синхронизации объекта, которая не обязательна). Если объект очень мал по отношению к служебному сигналу группы объектов, то объект может быть включен в группу независимо от того, как часто объект изменяется.

Как указывалось выше, каждая ячейка 305, 310 и 315 может быть пригодной для адресации, по меньшей мере, к одной ячейке в области действия, и область действия может определять совокупность ячеек и версий. Фиг.4 показывает схематическую блок-схему области действия 400. Область действия 400 включает в себя корневую ячейку 405, ячейку 410 и ячейку «мусорных» данных 415. Например, корневая ячейка 405 включает в себя версии 420, 425 и 430. Пример версии может включать в себя последний автосохраненный экземпляр блока сохраненных данных 155A, то есть состояние файла перед последним изменением. Например, версия может включать в себя состояние текстового поля перед тем, как текст был добавлен (версия один). Если текст добавляют к текстовому полю, может быть создана новая версия (версия два). Поэтому, операция «отмена выполненного действия» может приводить к возвращению от версии два к версии один. Также, каждая ячейка может включать в себя различное количество версий. Например, ячейка 405 включает в себя две версии (версии 435 и 440), а ячейка ненужной информации включает в себя одну версию (версию 445).

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

Для поддержания совместимости в пределах блока совместимых данных необходимо гарантировать, чтобы все обновления были совместимыми. Это влечет за собой то, что потенциально несовместимые обновления должны быть укомплектованы друг с другом, с образованием совместимого обновления и транзакции. Прикладной программный интерфейс (access application programming interface, API) субфайла может производить обновления через транзакции, без неконтролируемого уровня диапазона побайтового доступа.

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

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

Каждая версия может включать в себя любое количество объектов данных. Например, версия 425 имеет три объекта данных (объекты данных 450, 455 и 460). Для каждой версии ячейки можно создать манифест версии 470. Манифест версии 470 может указывать на корневую совокупность объектов, содержащихся в версии, любую зависимость/ссылки для манифестов других версий и группы объектов (то есть каким образом объекты расположены в группе объектов). Каждый манифест версии 470 может указывать на другие группы объектов, заданные в манифесте предыдущей версии.

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

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

Обратимся теперь к фиг.5, где клиентское устройство 110A показано более подробно. Клиентское устройство 110A может представлять собой персональный компьютер, серверный компьютер, компьютер-ноутбук, персональный цифровой секретарь, смартфон или любое другое подобное вычислительное устройство.

На фиг.5 примерное клиентское вычислительное устройство 11 OA обычно включает в себя, по меньшей мере, один блок обработки данных 515 для исполнения программных приложений и программ, хранящихся в системной памяти 520. В зависимости от конкретной конфигурации и типа вычислительного устройства 110A системная память 520 может включать в себя (но не ограничена) RAM (random access memory, оперативное запоминающее устройство, ОЗУ), ROM (read-only memory, постоянное запоминающее устройство, ПЗУ), EEPROM (Electrically Erasable Programmable Read-Only Memory, электрически стираемое программируемое постоянное запоминающее устройство, ЭСППЗУ), флэш-память, CD-ROM, digital versatile disks (цифровой универсальный диск, DVD) или другие оптические устройства хранения данных, магнитные кассеты, магнитные ленты, запоминающее устройство на магнитных дисках или другие магнитные запоминающие устройства, или другие запоминающие технологии.

В памяти системы 520 обычно хранится операционная система 522, такая как операционная система WINDOWS® от Корпорации Майкрософт, Редмонд, Вашингтон, пригодная для регулирования работы вычислительного устройства 110A. Память системы 520 также может включать в себя кэш документа 526, в котором может храниться блок совместимых данных 527 документа. В кэше клиента 526 также могут храниться метаданные 529 документа.

В памяти системы 520 также может храниться одно или несколько прикладных программ, таких как приложения для создания авторских разработок 130, которые используют для создания и редактирования документов. Один не ограничивающий пример авторских приложений 130, пригодных для создания документов в соответствии с принципами настоящего раскрытия, - это программное средство обработки текстов WORD® от корпорации Майкрософт. Другие неограничивающие примеры приложений для создания авторских разработок включают в себя презентационное программное обеспечение POWERPOINT®, программное обеспечение VISIO® для черчения и составления графиков и Интернет-браузер INTERNET EXPLORER®, - все от корпорации Майкрософт. Также можно использовать и другие прикладные программы.

Вычислительное устройство 110A также может иметь устройство (устройства) ввода 530, такие как клавиатура, мышь, «перо», устройство для речевого ввода, сенсорное устройство ввода и т.д., для ввода и управления данными. Также может быть включено устройство (устройства) вывода 535, такое как экран дисплея, динамик ПК, принтер и т.д. Эти устройства вывода 535 хорошо известны в данной области техники и не нуждаются здесь в подробном обсуждении.

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

Фиг.6 представляет собой блок-схему, излагающую основные стадии, включенные в способ 600, соответствующий варианту воплощения раскрытия для синхронизации документа после изменений, сделанных для создания блока совместимых данных. Способ 600 может быть внедрен с использованием вычислительного устройства 110A, как было описано выше применительно к фиг.5. Пути внедрения стадий способа 600 будут подробнее описаны ниже.

Способ 600 начинается с запуска блока 605 и перехода к стадии 610, где вычислительное устройство 110A может принимать версию и любые ячейки, к которым эта версия приложена. Например, совокупность версий может быть получена вместе с соответствующими командами относительно того, какие ячейки должны обладать состоянием, настроенным на определенную версию. Иными словами, при синхронизации происходит прием следующего: i) {версии} - совокупности версий; ii) {(ячейки, версии)} - совокупности идентификаторов ячеек, кортежи идентификаторов версии, которые описывают ячейки, которые «модифицируются», и каково их новое состояние с точки зрения полученных версий. Термин «модифицируется» означает, что некоторая часть информации в версии изменяется. Например, клиент, используя вычислительное устройство 110A (например, клиентский компьютер) может принимать слайд из презентации или информацию из заголовка/сноски документа обработки текста. Как только изменения были применены, средство хранения документов может обходиться без каких-либо ячеек и/или версий, которые не могут быть «раскрыты» путем запуска в корневых ячейках и прослеживания ссылок на объект/ячейку. Термин «раскрытие» относится к оптимизации, которую средства хранения могут осуществлять, чтобы избавиться от посторонней информации, которая больше не используется клиентами, поскольку у клиентов нет никакой возможности получить доступ к этим данным. Например, как только изменения были применены, средство хранения данных может освободиться от любых ячеек и/или версий, к которым они больше не адресуются прямо или косвенно в корневых ячейках.

После стадии 610, где вычислительное устройство 110A принимает версию и соответствующие ячейки, к которым эти версии прилагаются, способ 600 может перейти к стадии 620, на которой вычислительное устройство 110A может принимать обновления к блоку совместимых данных 527. Обновления могут указывать на идентификатор обновленной версии, ассоциированный с каждой ячейкой, ассоциированной с блоком совместимых данных 527 или документом 150. Например, на вычислительном устройстве 110A можно запускать презентационную графическую программу POWERPOINT®, а блок совместимых данных 527 может представлять собой слайд. Обновления к слайду могут быть получены, когда пользователь редактирует слайд.

Как только вычислительное устройство 11 OA принимает обновления на блок совместимости 527 на стадии 620, способ 600 может перейти к стадии 680, где вычислительное устройство 110A определяет, надо ли сохранять первую версию, или следует генерировать новую версию. Когда вычислительное устройство 110A определяет, что первую версию следует сохранить, способ 600 переходит к стадии 630, где вычислительное устройство 110A может сохранять первую версию. Первую версию можно сохранять, когда идентификатор первой версии ячейки соответствует идентификатору обновленной версии ячейки. Пример, когда идентификатор первой версии может соответствовать идентификатору обновленной версии, - это когда версия создается, а затем версия отменяется. Например, пользователь может печатать слово на слайде, а затем стирать вновь напечатанное слово. Поскольку слайд не изменялся, нет необходимости в генерировании новой версии.

Когда вычислительное устройство 110A определяет, что новая версия создана, способ 600 переходит от стадии 680 к стадии 640, где вычислительное устройство 110A генерирует новую версию. Генерирование новой версии может включать в себя назначение новой версии нового идентификатора версии, когда идентификатор первой версии ячейки не соответствует идентификатору обновленной версии ячейки. Генерирование новой версии также может включать в себя определение для каждой ячейки, соответствует ли идентификатор каждого объекта в ячейке идентификатору обновленной версии. Идентификатор обновленного объекта может определять манифест версии. Манифест версии может определять версию блока совместимых данных 527 или документа и может включать в себя, по меньшей мере, первую группу объектов, которая содержит, по меньшей мере, первый объект данных. Манифест версии также может указывать на манифест предыдущей версии. Например, в ходе редактирования пользователем приложение отслеживает совокупность объектов, которые модифицируются в виде части пользовательской редакторской правки. Затем создают идентификатор новой версии с использованием стандартного алгоритма генерирования GUID. Совокупность объектов затем упаковывают в группы объектов (как обсуждалось выше), а затем группы объектов и манифест предыдущей версии извлекают из манифеста новой версии, который представляет новую версию.

Сразу после генерирования новой версии на стадии 640 вычислительным устройством 110A способ 600 может переходить к стадии 650, где вычислительное устройство 110A может очищать память любой ячейки, на которую не ссылаются корневые объекты. Очистка памяти включает в себя определение объектов, которые невозможно «раскрыть» путем отслеживания ссылок на объект/ячейку, возникающих в корневых ячейках. Поскольку ячейки с очищенной памятью не могут быть доступны, в них никогда не возникнет необходимость, и дисковое пространство/ресурс можно очищать, стирая их.

Как только вычислительное устройство 110A стирает любую ячейку, на которую корневые объекты не ссылаются на стадии 650, способ 600 может переходить к стадии 660, где вычислительное устройство 110A может синхронизировать документ 150 или блок совместимых данных 527. Например, вычислительное устройство 110A может синхронизировать документ путем замены существующих ячеек на новую версию каждой ячейки. Как только вычислительное устройство 110A синхронизировало документ 150 или блок совместимых данных 527 на стадии 660, способ 600 может затем завершиться на стадии 670.

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

Варианты воплощения раскрытия могут быть внедрены в виде компьютерного процесса (способа), вычислительной системы или в виде готового изделия, такого как компьютерный программный продукт или машиночитаемый носитель. Процессы (программы) можно внедрять любым числом способов, включая структуры, описанные в данном документе. Один такой способ состоит в машинных операциях, и устройства этого типа описаны в данном документе. Другой способ (не обязательный) предназначен для одной или нескольких отдельных операций согласно способам, выполняемым на вычислительном устройстве совместно с одним или несколькими операторами-людьми, выполняющими некоторые из этих операций. Эти люди-операторы не нуждаются в том, чтобы находиться рядом друг с другом, и каждый из них может находиться лишь рядом с машиной, которая выполняет свою часть программы.

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

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

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

2. Способ по п.1, в котором генерирование новой версии включает в себя определение для каждой ячейки, соответствует ли идентификатор объекта каждого объекта в ячейке идентификатору обновленного объекта.

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

4. Способ по п.3, в котором манифест версии указывает на группу объектов, заданную в предыдущем манифесте версии.

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

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

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

8. Машиночитаемый запоминающий носитель по п.5, в котором манифест версии указывает на группу объектов, заданную в предыдущем манифесте версии.

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

10. Компьютерная система по п.9, в которой генерирование новой версии включает в себя определение для каждой ячейки, соответствует ли идентификатор объекта каждого объекта в ячейке идентификатору обновленного объекта.

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

12. Компьютерная система по п.9, в которой манифест версии указывает на группу объектов, заданную в предыдущем манифесте версии.



 

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

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

Изобретение относится к области дистанционного управления бортовой регистрирующей аппаратурой (БРА) космических аппаратов (КА). Техническим результатом является повышение удобства и надежности одновременного подключения к устройству различной бортовой регистрирующей аппаратуры.

Группа изобретений относится к способам выполнения нефтепромысловых операций. Этапы способа содержат получение массивов данных о нефтяном месторождении, связанных с нефтепромысловыми объектами.

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

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

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

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

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

Изобретение относится к автоматике и вычислительной технике. .

Изобретение относится к области вычисления и графического отображения статистических данных в управляющей системе. .
Изобретение относится к автоматизированному определению языка и (или) кодировки текстового документа. Техническим результатом является расширение арсенала технических средств, позволяющее автоматически определять язык и (или) кодировку текста по заранее набранной статистике в любых текстовых документах. В способе автоматизированного определения языка и (или) кодировки текстового документа выделяют байтовые последовательности и подсчитывают статистику встречаемости выделенных байтовых последовательностей. Затем строят на основе статистики профили каждого языка и (или) каждой кодировки, строят поисковый автомат для извлечения искомых байтовых последовательностей из байтового потока проверяемого документа и сохраняют в памяти построенный поисковый автомат и профили языков и (или) кодировок. Находят байтовые последовательности в электронной версии каждого проверяемого документа с помощью поискового автомата и подсчитывают в качестве профиля проверяемого документа статистику встречаемости найденных байтовых последовательностей. Сопоставляют подсчитанный профиль проверяемого документа с профилями языков и (или) кодировок для определения релевантности языка и (или) кодировки данному проверяемому документу. 2 з.п. ф-лы.

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

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

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

Изобретение относится к измерительной технике. Технический результат заключается в повышении достоверности контроля качества линии связи канала передачи данных и оконечного передающего оборудования. Устройство содержит модем, состоящий из демодулятора и модулятора, измеритель коэффициента взаимного различия, состоящий из двух перемножителей, фазовращателя, двух интеграторов, двух квадраторов, сумматора, стробирующего блока и нормирующего блока, группу элементов И, элемент ИЛИ, элемент ИЛИ-НЕ, триггер, регистр, блок измерения отношения энергии сигнала к спектральной плотности шума, измеритель порогового значения коэффициента взаимного различия, состоящий из элемента И, удвоителя, квадратора, логарифмирующего устройства, делителя; компаратор, блок вывода результатов контроля, группу линий задержки, аналого-цифровой преобразователь, управляемую линию задержки, ключ, дополнительно введены элемент ИЛИ, два элемента И, RS-триггер, компаратор, два устройства для вычисления математического ожидания, состоящие из двух элементов ИЛИ, двух инверторов, регистра, двух регистров сдвига, группы элементов И, группы сумматоров, счетчика, делителя. 2 ил.

Изобретение относится к области представления контента устройству воспроизведения контента. В одном из вариантов выполнения реализуемый посредством компьютера способ принимает данные контента и метаданные. Метаданные связаны с множеством временных положений в данных контента. Вычисляют параметры просмотра, соответствующие множеству временных положений, на основе принятых метаданных. Данные контента доставляются избирательно на основе указанного связывания. 19 з.п. ф-лы, 13 ил.

Изобретение относится к компьютерному способу, использующему биохимические базы данных при разработке новых белковых соединений. Проектирование осуществляется оператором с помощью специально написанной программы PROTCOM на основе использования базы данных пентафрагментов белков. Процесс проектирования состоит в задании и введении в программу PROTCOM начальной последовательности из пяти аминокислот (заданного начального пентафрагмента) и десятизначного числа, записанного в двоичной системе, являющегося описанием вторичной структуры заданного начального пентафрагмента. Проводится поиск этой последовательности в папке базы данных, с номером, соответствующим заданному десятизначному числу. Поиск производят до тех пор, пока заданный начальный пентафрагмент не будет найден в базе данных. После его нахождения считают этот пентафрагмент первым из возможного числа N пентафрагментов проектируемой первичной структуры белка и производят его запись вместе с десятизначным номером папки, описывающим его вторичную структуру, в рабочий файл программы. Далее задают вторичные структуры каждого последующего из (N-1) пентафрагментов путем введения того же или измененного десятизначного числа, описывающего вторичную структуру предыдущего пентафрагмента в программу и проводят поиск в базе данных пентафрагментов, содержащих четыре аминокислоты каждого из (N-1) пентафрагментов, записанных в рабочем файле и одну новую. При нахождении таких пентафрагментов производят выбор одной из новых аминокислот и присоединение ее к четырем последним аминокислотам предыдущего пентафрагмента, запись новой аминокислоты и десятичного номера папки, описывающего вторичную структуру каждого найденного пентафрагмента в рабочий файл. Спроектированной первичной структурой белка считают полученную в рабочем файле последовательность аминокислот, с соответствующим описанием ее вторичной структуры. Предложенный способ проектирования первичной структуры белка существенно упрощает и ускоряет задачу проектирования белков с заданной вторичной структурой. 5 ил., 21 табл., 2 пр.

Изобретение относится к вычислительной технике и может быть использовано для моделирования задач о назначениях при распределении n исполнителей для выполнения n работ. Техническим результатом изобретения является повышение надежности устройства, уменьшение аппаратных затрат и увеличение быстродействия устройства. Устройство для решения задач о назначениях содержит генератор тактовых импульсов (ГТИ) 1, триггер разрешения 2, триггер готовности результата 3, группу из n счетчиков 41, 42, …, 4n, группу из n дешифраторов 51, 52, …, 5n, группу из n*n первых регистров 611, …, 6nn, группу из n*n блоков элементов И 711, …, 7nn, группу из n блоков первых элементов ИЛИ 81, 82, …, 8n, группу из n блоков вторых элементов ИЛИ 91, 92, …, 9n, элемент И 10, сумматор 11, схему сравнения 12, группу из n вторых регистров 131, 132, …, 13n, третий регистр 14, вход пуска устройства 15, вход сброса устройства 16, первый выход устройства 17, второй выход устройства 18, группу из n третьих выходов устройства 191, 192, …, 19n. 1 ил., 2 табл.

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

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