Службы синхронизации

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

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

Реализация службы синхронизации

Службу синхронизации можно реализовать с помощью управляемого кода или неуправляемого кода.

Security noteБезопасность Примечание.

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

Реализация службы синхронизации в управляемом коде

Главной задачей в ходе разработки службы является реализация абстрактного класса KnowledgeSyncProvider (который наследует абстрактный класс SyncProvider), а также интерфейсов IChangeDataRetriever и INotifyingChangeApplierTarget.

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

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

  • Вызывается метод BeginSession в обоих поставщиках. Он уведомляет поставщика о присоединении к сеансу синхронизации.

  • Вызывается метод GetSyncBatchParameters в поставщике назначения. Поставщик назначения возвращает свой набор знаний и запрашиваемый размер пакета.

  • Вызывается метод GetChangeBatch в поставщике источника; метод передает набор знаний поставщика назначения. Поставщик источника с помощью набора знаний поставщика назначения определяет изменения и возвращает пакет изменений. Дополнительные сведения см. в разделе Перечисление изменений.

  • Вызывается метод ProcessChangeBatch в поставщике назначения; метод передает список изменений от поставщика источника. Поставщик назначения использует компонент платформы Sync Framework для внесения изменений, чтобы выявить конфликты и применить изменения. Дополнительные сведения см. в разделах Обработка конфликтов и Применение изменений.

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

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

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

  • Вызывается метод EndSession в обоих поставщиках. Он уведомляет поставщика о завершении сеанса синхронизации, к которому тот присоединился ранее.

Реализация службы синхронизации в неуправляемом коде

Главной задачей в ходе разработки службы является реализация интерфейсов IKnowledgeSyncProvider, ISyncProvider, ISynchronousDataRetriever и ISynchronousNotifyingChangeApplierTarget. Для некоторых из этих интерфейсов также существуют асинхронные версии. См. разделы Интерфейс IAsynchronousDataRetriever и Интерфейс IAsynchronousNotifyingChangeApplierTarget.

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

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

  • Вызывается метод BeginSession в обоих поставщиках. Он уведомляет поставщика о присоединении к сеансу синхронизации.

  • Вызывается метод GetSyncBatchParameters в поставщике назначения. Поставщик назначения возвращает свой набор знаний и запрашиваемый размер пакета.

  • Вызывается метод GetChangeBatch в поставщике источника и передает набор знаний поставщика назначения. Поставщик источника с помощью набора знаний поставщика назначения определяет изменения и возвращает пакет изменений. Дополнительные сведения см. в разделе Перечисление изменений.

  • Вызывается метод ProcessChangeBatch в поставщике назначения и передает список изменений от поставщика источника. Поставщик назначения использует компонент платформы Sync Framework для внесения изменений, чтобы выявить конфликты и применить изменения. Дополнительные сведения см. в разделах Обработка конфликтов и Применение изменений.

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

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

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

  • Вызывается метод EndSession в обоих поставщиках. Он уведомляет поставщика о завершении сеанса синхронизации, к которому тот присоединился ранее.

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

См. также

Справочник

Интерфейс IKnowledgeSyncProvider
Интерфейс ISynchronousDataRetriever
Интерфейс ISyncProvider
Интерфейс ISynchronousNotifyingChangeApplierTarget
KnowledgeSyncProvider
SyncProvider
IChangeDataRetriever
INotifyingChangeApplierTarget

Основные понятия

Практическое руководство. Создание неуправляемой службы синхронизации
Перечисление изменений
Обработка конфликтов
Применение изменений
Синхронизация базовых единиц
Отчет о ходе синхронизации
Фильтрация данных синхронизации
Поддержка параллельных задач синхронизации
Взаимодействие с каналами FeedSync
Восстановление устаревшей реплики

Другие ресурсы

Платформа Microsoft Sync Framework