Выбор соответствующих компонентов Sync Framework

В данном разделе объясняется, какие компоненты лучше всего подходят для наиболее распространенных сценариев синхронизации, и описывается высокоуровневая архитектура платформы Sync Framework.

Компоненты Sync Framework

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

На следующей иллюстрации показаны связи между всеми компонентами платформ Sync Framework.

Компоненты Sync Framework

На иллюстрации изображены следующие компоненты.

  • Службы синхронизации баз данных (в прежних версиях назывались Sync Services for ADO.NET). Эти поставщики содержатся в библиотеках Microsoft.Synchronization.dll, Microsoft.Synchronization.Data.dll, Microsoft.Synchronization.Data.Server.dll, Microsoft.Synchronization.Data.SqlServer.dll и Microsoft.Synchronization.Data.SqlServerCe.dll. Службы могут использоваться для синхронизации баз данных в следующих сценариях.

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

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

    Дополнительные сведения см. в разделе Синхронизация баз данных. Поставщики для работы вне сети первоначально были частью служб Synchronization Services for ADO.NET 1.0, выпущенных до платформ Sync Framework 1.0. Поставщики для совместной работы строятся на основе базового API-интерфейса и служб времени выполнения, в отличие от поставщиков для работы вне сети. Поставщики для работы вне сети могут участвовать в топологиях с другими поставщиками Sync Framework.

  • Служба синхронизации файлов(в прежних версиях называлась Sync Services for File Systems). Этот поставщик содержится в библиотеках FileSyncProvider2.dll и Microsoft.Synchronization.Files.dll. Он может использоваться для синхронизации файлов и папок в файловых системах NTFS, FAT и SMB. Каталоги, подлежащие синхронизации, могут быть локальными или удаленными и не обязаны находиться в одной и той же файловой системе. Исключение или включение файлов с помощью их явного перечисления или с использованием символов-шаблонов, таких как *.txt, может осуществляться приложением с помощью статических фильтров. Приложение может также задавать фильтры, которые исключают вложенные папки целиком. Приложение может зарегистрироваться для получения уведомлений о ходе выполнения синхронизации файлов. Дополнительные сведения см. в разделе Синхронизация файлов.

  • Компоненты синхронизации веб-каналов (в прежних версиях назывались Sync Services for Feedsync). Эти компоненты содержатся в библиотеках FeedSync2.dll и Microsoft.Synchronization.dll. Их можно использовать двумя способами.

    • Службы синхронизации с веб-каналом можно использовать для создания поставщика, представляющего файл FeedSync XML как свою реплику. Дополнительные сведения о FeedSync см. на веб-сайте FeedSync.

    • Компоненты для создания и потребления веб-каналов могут использоваться для синхронизации данных реплики другого типа (например, файловой системы) с каналом типа RSS или Atom.

    Дополнительные сведения см. в разделе Синхронизация веб-каналов.

  • Пользовательские поставщики. Эти поставщики содержатся в библиотеках Synchronization2.dll и Microsoft.Synchronization.dll; а также SimpleProviders2.dll и Microsoft.Synchronization.SimpleProviders.dll. Их можно использовать для создания служб синхронизации для любого типа хранилищ данных. Например, если приложение включает в себя пользовательскую систему хранения для отслеживания контактов с заказчиками, можно использовать простой поставщик или полнофункциональный пользовательский поставщик для интеграции этих данных в приложения. Дополнительные сведения см. в разделе Синхронизация хранилищ данных с помощью пользовательских поставщиков.

  • Служба хранилища метаданных. Этот компонент содержится в библиотеках MetaStore2.dll и Microsoft.Synchronization.MetadataStorage.dll. Пользовательские поставщики могут применять его, так как это удобный способ хранения и обработки метаданных синхронизации, особенно для реплик, которые не могут хранить метаданные другими способами. В службе хранилища метаданных используется надежная, упрощенная база данных, которая занимает небольшой объем оперативной памяти и пространства на диске и может распространяться вместе с поставщиком. В API-интерфейсах хранилище метаданных четко отделено от интерфейсов и методов, используемых для доступа, что позволяет реализовать и использовать альтернативные хранилища с минимальными изменениями в поставщике. Дополнительные сведения см. в разделе Служба хранилища метаданных платформы Sync Framework.

  • Базовый API-интерфейс и службы времени выполнения. Эти компоненты содержатся в библиотеках Synchronization2.dll и Microsoft.Synchronization.dll. Базовый API-интерфейс и службы времени выполнения используются всеми остальными компонентами, кроме поставщиков баз данных вне сети. Дополнительные сведения об этих компонентах см. в разделе Синхронизация хранилищ данных с помощью пользовательских поставщиков.

Дополнительные сведения об установке компонентов см. в разделе Установка, распространение и совместимость версий.

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

Архитектура Sync Framework

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

На следующем рисунке показана высокоуровневая архитектура платформ Sync Framework. Синхронизация всегда происходит между двумя репликами (или узлами), как показано на рисунке, но сообщества синхронизации (или топологии) могут иметь любую конфигурацию: «звезда», одноранговая сеть и т. п. За некоторыми исключениями каждая пара участников может синхронизироваться по двухуровневой или n-уровневой архитектуре в соответствии с потребностями приложения. Документация компонентов платформ Sync Framework содержит более подробные сведения о соответствующих архитектурах и проблемах безопасности.

Общие сведения о платформе Sync Framework

Элементы на иллюстрации имеют один из трех типов.

  • Элементы, создаваемые разработчиком.

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

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

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

  • Элементы, предоставляемые платформами Sync Framework.

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

    • Служба синхронизации времени выполнения управляет процессом синхронизации и сообщает клиентскому приложению о состоянии процесса, конфликтах и ошибках.

  • Элементы, создаваемые разработчиком или предоставляемые платформами Sync Framework, в зависимости от конкретного сценария.

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

    • Хранилище метаданных содержит метаданные, которые платформа Sync Framework использует для определения того, какие изменения должен выбрать каждый из поставщиков для применения к обслуживаемому им хранилищу данных. Конкретные способы хранения и обработки метаданных зависят от используемого поставщика. Например, поставщики для баз данных обычно хранят метаданные в таблицах отслеживания в тех же базах данных, где располагаются хранилища данных. Разработчик пользовательского приложения может создать хранилище метаданных или использовать службу, предоставляемую платформами Sync Framework. Документация компонентов служб Sync Framework содержит более подробные сведения о метаданных.

См. также

Основные положения

Платформа Microsoft Sync Framework
Преимущества использования Sync Framework