Реализация приложения синхронизации

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

Примечание

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

Реализация приложения синхронизации

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

Примечание по безопасностиПримечание по безопасности

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

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

Управляемый код. Приложение создает и запускает сеанс синхронизации, выполняя следующие действия.

  1. Создание объекта SyncOrchestrator.

  2. Задание свойств LocalProvider и RemoteProvider модуля взаимодействия.

  3. Задание направления синхронизации в свойстве Direction модуля взаимодействия. Для направления Upload объект LocalProvider является источником, а объект RemoteProvider — назначением. Для направления Download объект LocalProvider является назначением, а объект RemoteProvider — источником. Учтите, что использование значения DownloadAndUpload или UploadAndDownload позволяет выполнить двустороннюю синхронизацию.

  4. Вызов метода Synchronize модуля взаимодействия. В результате от имени приложения создается сеанс, который будет обрабатывать все дополнительные задачи синхронизации. Если приложению необходимо отменить синхронизацию, можно вызвать метод Cancel.

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

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

  1. Создание объекта IApplicationSyncServices. Это выполняется вызовом метода CoCreateInstance и передачи его в службы CLSID_SyncServices для идентификатора CLSID и в службы IID_IApplicationSyncServices для идентификатора IID.

  2. Создание объекта ISyncSession. Это выполняется путем вызова метода IApplicationSyncServices::CreateSyncSession. Методу передаются два поставщика: один в качестве поставщика источника, а другой — в качестве поставщика назначения.

  3. Вызов метода ISyncSession::Start. Затем платформа Sync Framework обрабатывает все дополнительные задачи синхронизации. Если приложению нужно отменить синхронизацию, можно вызвать метод ISyncSession::Cancel.

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

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

События синхронизации

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

Управляемый код. Реализуйте методы обработки событий и зарегистрируйте их в объекте SyncOrchestrator или объекте SyncCallbacks.

Неуправляемый код. Используйте метод ISyncSession::RegisterCallback, чтобы зарегистрировать объект, в котором реализован интерфейс ISyncCallback.

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

См. также

Справочник

SyncOrchestrator

SyncCallbacks

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

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

Основные принципы построения пользовательских поставщиков

Реагирование на события синхронизации

Интерфейс IApplicationSyncServices

Интерфейс ISyncSession

Интерфейс ISyncCallback