Безопасность в приложениях синхронизации равноправных узлов

Иллюстрации

Показать все

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

Реферат

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Фиг.7 иллюстрирует снимок экрана, связанный с заявляемым предметом изобретения.

Фиг.8 иллюстрирует два снимка экрана, связанных с заявляемым предметом изобретения.

Фиг.9 иллюстрирует два снимка экрана, связанных с реализацией приложения-мастера.

Фиг.10 иллюстрирует два снимка экрана, связанных с реализацией приложения-мастера.

Фиг.11 иллюстрирует снимок экрана, связанный с реализацией приложения-мастера.

Фиг.12 иллюстрирует снимок экрана, связанный с реализацией приложения-мастера.

Фиг.13 иллюстрирует снимок экрана, связанный с заявляемым предметом изобретения.

Фиг.14 иллюстрирует два снимка экрана, связанных с заявляемым предметом изобретения.

Фиг.15 иллюстрирует снимок экрана, связанный с заявляемым предметом изобретения.

Фиг.16 иллюстрирует снимок экрана, связанный с заявляемым предметом изобретения.

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

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

Фиг.19 иллюстрирует примерное сетевое окружение, в котором могут быть использованы новые аспекты заявляемого предмета изобретения.

Фиг.20 иллюстрирует примерное операционное окружение, которое может быть использовано в соответствии с заявляемым предметом изобретения.

Приложение A - это пример псевдокода, ассоциативно связанного с заявляемым предметом изобретения.

Подробное описание изобретения

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

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

Обращаясь теперь к чертежам, фиг.1 иллюстрирует систему 100, которая упрощает синхронизацию данных, ассоциативно связанных, по меньшей мере, с двумя отличающимися системами хранения данных. Система 102 хранения данных может быть сложной моделью, по меньшей мере, частично основывающейся на структуре базы данных, в которой элемент, подчиненный элемент, свойство и связь задаются для того, чтобы обеспечить возможность представления информации в системе хранения данных как экземпляров сложных типов. Система 102 хранения данных может использовать набор базовых компоновочных блоков для создания и управления гибкими постоянными объектами и связями между объектами. Элемент может быть задан как наименьшая единица непротиворечивости в системе 102 хранения данных, которая может независимо защищаться, упорядочиваться, синхронизироваться, копироваться, резервироваться/восстанавливаться и т.д. Элемент - это экземпляр типа, при этом все элементы в системе 102 хранения данных могут быть сохранены в одном глобальном экстенте элементов. Система 102 хранения данных может быть основана, по меньшей мере, частично на структуре одного элемента и/или контейнера. Кроме того, система хранения данных может быть платформой хранения, раскрывающей обширные метаданные, которые скрываются в файлах как элементы. Следует принимать во внимание, что система 102 хранения данных может представлять основанную на базе данных систему хранения файлов, чтобы поддерживать вышеописанную функциональность, в которой могут быть реализованы любые надлежащие характеристики и/или атрибуты. Более того, система 102 хранения данных может содержать иерархическую структуру контейнеров, в которой контейнер - это элемент, который может содержать, по меньшей мере, один элемент. Понятие включения реализовано посредством свойства идентификатора контейнера внутри ассоциативно связанного класса. Хранилище также может быть контейнером, так что хранилище может быть организационным и управляемым блоком. Помимо этого, хранилище представляет корневой контейнер для дерева контейнеров в иерархической структуре.

Компонент 106 синхронизации может создавать защищенную синхронизацию данных между равноправными узлами, чтобы дать возможность нескольким пользователям осуществлять доступ к этим синхронизированным данным на различных ярусах и/или уровнях. Компонент 106 синхронизации может обеспечивать синхронизацию данных, ассоциативно связанных с системой 102 хранения данных и отличающейся системой 104 хранения данных, причем может быть установлено защищенное сообщество с синхронизацией между равноправными узлами. Компонент 106 синхронизации может защищать метаданные, в том числе список членов (к примеру, список прав и/или привилегий пользовательского доступа) сообщества синхронизации, с тем чтобы пользователь с надлежащим доступом мог модифицировать их (к примеру, добавлять и/или удалять пользователя из сообщества) и передавать изменение и/или обработку другим пользователям. Данные также могут быть защищены так, чтобы пользователь с соответствующим доступом мог модифицировать их и передавать изменения другим пользователям. Механизм защиты может активировать базовый механизм аутентификации и/или авторизации, такой как, но не только, защита на уровне совместно используемых ресурсов, защита на уровне элементов, аутентификации и авторизация операционной системы и т.д. Более того, компонент 106 синхронизации может предоставлять синхронизацию списка членов практически таким же образом, как могут синхронизироваться данные.

Другими словами, компонент синхронизации 106 может реализовать управление сложными связями синхронизации. Например, связи синхронизации могут включать в себя, но не только, управление настройкой, освобождением и защитой. Более того, компонент 106 синхронизации может реализовать управление сложными связями синхронизации полностью на основе технологии синхронизации. Следует принимать во внимание и понимать, что любая надлежащая технология синхронизации может быть реализована, такая как, к примеру, технология синхронизации, связанная с системой 102 хранения данных и/или отличающейся системой 104 хранения данных.

Компонент 106 синхронизации может использовать реплику (к примеру, синхронизированные данные и/или папки, принадлежащие, по меньшей мере, одному пользователю в сообществе), чтобы сообщать, по меньшей мере, одно из следующего: 1) присутствие в сообществе; и 2) намерение покинуть сообщество посредством синхронизации запроса к диспетчеру (к примеру, члену сообщества, который авторизован выполнять изменения в реплике списка членов) сообщества. Другими словами, диспетчер - это член сообщества, который авторизован выполнять изменения в реплике списка членов. Кроме того, диспетчеры могут обрабатывать эти запросы и выполнять изменения в метаданных членов, а затем синхронизировать метаданные с другими пользователями в сообществе. После приема таких изменений членов компонент 106 синхронизации позволяет каждой реплике выполнять требуемые изменения доступа к ее данным и метаданным. Следует принимать во внимание, что создание и управление сообществом с синхронизацией между равноправными узлами, реализованное посредством компонента 106 синхронизации, может предоставлять несколько реплик и пользователей, при этом роли, назначенные каждому пользователю, могут динамически изменяться в любой данный момент времени. Другими словами, нет одного фиксированного ведущего узла в топологии компонента 106 синхронизации и сообщества с синхронизацией между равноправными узлами. Более того, компонент 106 синхронизации позволяет усовершенствовать базовые методики и/или механизмы аутентификации и авторизации системы 102 хранения данных.

Кроме того, система 100 может включать в себя любой подходящий и/или необходимый интерфейсный компонент 108, который предоставляет различные адаптеры, разъемы, каналы, пути связи и т.д., чтобы интегрировать компонент 106 синхронизации практически в любую операционную систему и/или систему базы данных. Помимо этого, интерфейсный компонент 108 позволяет предоставить различные адаптеры, разъемы, каналы, пути связи и т.д., которые обеспечивают взаимодействие с компонентом 108 синхронизации, системой 102 хранения данных и отличающейся системой 104 хранения данных.

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

Например, компоновочные блоки могут включать в себя Item (Элемент), ItemExtension (Расширение элемента), Link (Связь) и ItemFragment (Фрагмент элемента). Item может быть задан как наименьшая единица непротиворечивости в системе 202 хранения данных, которая может независимо защищаться, упорядочиваться, синхронизироваться, копироваться, резервироваться/восстанавливаться и т.д. Элемент - это экземпляр типа, при этом все элементы в системе 202 хранения данных могут быть сохранены в одном глобальном экстенте элементов. Item может быть расширен с помощью объекта расширения, такого как, но не только, ItemExtension. Объектное расширение может быть задано в схеме с соответствующими атрибутами (к примеру, именем, типом расширенного элемента, объявления свойств и т.д.). ItemExtension может быть реализован, чтобы сгруппировать набор свойств, которые могут быть применены к типу элемента, который расширяется. Link - это тип объекта, который задает ассоциативную связь между двумя экземплярами элементов, при этом ссылки являются направленными (к примеру, один элемент является источником связи, а другой - назначением связи). ItemFragment - это тип объекта, который дает возможность объявления больших наборов типов элементов и/или расширений элементов, при этом элементы набора могут быть объектами. Следует принимать во внимание и понимать, что система 202 хранения данных может представлять любую подходящую систему хранения файлов, которая предоставляет представление данных как сложных типов, и вышеуказанная иллюстрация не должна рассматриваться как ограничивающая настоящее изобретение. Система 202 хранения данных может быть практически аналогичной системе 102 хранения данных, проиллюстрированной на фиг.1.

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

Компонент 204 отслеживания может включать в себя компонент асинхронизации (не показан), который может отслеживать изменения данных на уровне объекта в системе 202 хранения данных. Следует принимать во внимание, что изменения данных отслеживаются исключительно на уровне объекта, по меньшей мере, частично на основе неучастия в синхронизации. Отслеживание изменения данных на уровне объекта может упоминаться как "информация изменения". Компонент асинхронизации может захватывать базовую информацию изменений для всех объектов. Например, базовой информацией изменений может быть, но не только, локальное время создания и локальное время модификации.

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

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

Фиг.3 иллюстрирует систему 300, которая упрощает синхронизацию данных в системах хранения данных, чтобы предоставить возможность нескольким пользователям осуществлять доступ. Система 302 хранения данных может быть основывающейся на базе данных системой хранения файлов, в которой данные представляются как экземпляры сложных типов. Система 302 хранения данных может включать в себя несинхронизированные данные 308 (далее упоминаемые как несинхронизированные данные 308), причем эти данные должны быть синхронизированы с отличающейся системой 304 хранения данных, которая включает в себя несинхронизированные данные 310. Компонент 306 синхронизации может синхронизировать эти данные с сообществом 312 с синхронизацией между равноправными узлами. Сообщество 312 с синхронизацией может включать в себя реплики 1 - N, где N - это целое число, больше или равно 1, при этом реплика - это синхронизированная папка и/или данные, ассоциативно связанные, по меньшей мере, с одним пользователем, относящимся к сообществу 312 с синхронизацией. Компонент 306 синхронизации может создавать сообщество 312 с синхронизацией между равноправными узлами, в котором несколько пользователей 314 (т.е. с пользователя 1 по пользователь T, где T - это целое число, больше или равно 1) могут осуществлять доступ к этим репликам на основе уровня и/или слоя, ассоциативно связанного с доступностью. Следует принимать во внимание, что несколько пользователей 314 и уровни и/или слои доступности могут быть основаны, по меньшей мере, частично на списке членов. Более того, следует принимать во внимание, что система 302 хранения данных и компонент 306 синхронизации могут быть практически аналогичны компонентам и системам, описанным на предыдущих чертежах.

Компонент 306 синхронизации дополнительно может предоставлять, по меньшей мере, одно из следующего: 1) проверку квалификации разработки приложения, основанного на платформе, связанной с системой 302 хранения данных; 2) создание обратной связи по процессу и обратное усовершенствование в систему 302 хранения данных и синхронизацию системы 302 хранения данных; 3) создание собственной узловой среды для приложения; 4) реализацию решения по сквозной синхронизации, которое обрабатывает такие вопросы, как, но не только, транспортировка и безопасность (в том числе аутентификация и шифрование), а также синхронизация по Интернету; и 5) изучение точек, связанных с интеграцией между системой 302 хранения данных и функциональностью синхронизации системы 302 хранения данных и остальной частью операционной системы.

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

На основе, по меньшей мере, частично вышеописанных сценариев и/или примеров компонент 306 синхронизации может предоставлять, по меньшей мере, одно из следующего: 1) установление синхронизации; 2) управление данными синхронизации; 3) управление расписаниями синхронизации; 4) контроль и разрешение конфликтов синхронизации; 5) анализ конфликтов синхронизации; и 6) синхронизацию фотографий.

Фиг.4 иллюстрирует систему 400, которая упрощает синхронизацию данных между, по меньшей мере, двумя отличающимися системами хранения данных. Компонент 406 синхронизации позволяет предоставлять защищенное сообщество с синхронизацией между равноправными узлами относительно системы 402 хранения данных и отличающейся системы 404 хранения данных, в котором различные уровни и/или слои доступа могут быть предоставлены. Компонент 406 синхронизации позволяет усовершенствовать существующий компонент отслеживания (не показан) в системах 402 и 404 хранения данных, чтобы обеспечить синхронизацию данных. Следует принимать во внимание, что компонент 406 синхронизации предоставляет синхронизацию данных посредством использования базовых и/или существующих механизмов синхронизации, ассоциативно связанных с различными системами хранения данных и/или машинами, при этом такие системы хранения данных и/или машины включают в себя несинхронизированные данные, которые должны быть синхронизированы. Следует принимать во внимание, что системы 402 и 404 хранения данных и компонент 406 синхронизации могут быть практически аналогичны системам и/или компонентам, описанным ранее.

Компонент 406 синхронизации может включать в себя компонент 408 диспетчера пользовательской синхронизации (упоминаемый в данном документе как диспетчер 408 пользовательской синхронизации). Диспетчер 408 пользовательской синхронизации может упрощать создание синхронизированных связей, создание синхронизированных контейнеров, приглашение пользователей, прием приглашений, присоединение к сообществу, удаление пользователей, поддержание списков членства и /или общее управление сообществом с синхронизацией между равноправными узлами. Диспетчер 408 пользовательской синхронизации может предоставлять возможность пользователю обеспечить синхронизацию в контейнере (не показан) в системе хранения данных для хранилища по умолчанию. Связь синхронизации может быть создана для этого контейнера (к примеру, для контейнера с системой 402 хранения данных). Связь синхронизации может быть создана для конкретного синхронизированного контейнера, совместно используемого конкретным пользователем на конкретном компьютере. Следует принимать во внимание, что пользователь, который создал синхронизированный контейнер, знает о том, что контейнер синхронизирован.

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