Provedores de sincronização

No Microsoft Estrutura de sincronização, um provedor de sincronização é um componente de software que permite a uma réplica sincronizar seus dados com outras réplicas. Usando uma sessão de sincronização, um aplicativo de sincronização conecta um provedor de destino com um provedor de origem para sincronizar itens que foram alterados na réplica de origem para a réplica de destino. Um exemplo simples de provedor de sincronização é um que gerencia uma pasta em um sistema de arquivos. Este provedor pode ser conectado a outro provedor que também gerencia uma pasta para sincronizar os arquivos em sua pasta com os arquivos na pasta do outro provedor.

Durante a sincronização, o provedor de destino fornece seu conhecimento atual, aceita uma lisa de alterações da origem, detecta quaisquer conflitos entre aquela lista e seus próprios itens, aplicando as alterações ao seu armazenamento de dados. O provedor de origem usa o conhecimento atual da réplica de destino para determinar quais alterações estão na réplica de origem sobre a qual a réplica de destino não tem conhecimento e envia a lista de alterações ao provedor de destino. O Estrutura de sincronização fornece componentes para tratar de muitas destas tarefas em nome destes provedores.

Implementando um provedor de sincronização

Um provedor de sincronização pode ser implementado usando o código gerenciado ou não gerenciado.

Security noteSegurança Observação:

O Estrutura de sincronização trata provedores de sincronização como código de confiança. Portanto, um aplicativo que invoca um provedor de sincronização deve estabelecer que o provedor é de confiança ou tendo conhecimento explícito do provedor ou usando outro mecanismo como uma assinatura digital.

Implementando um provedor de sincronização usando código gerenciado

A tarefa principal ao desenvolver um provedor é implementar a classe abstrata KnowledgeSyncProvider (que herda da classe abstrata SyncProvider) e as interfaces IChangeDataRetriever e INotifyingChangeApplierTarget.

Antes da sincronização iniciar, o provedor deve disponibilizar sua implementação de SyncProvider para o aplicativo de sincronização usando qualquer mecanismo requerido pelo aplicativo.

Durante uma sincronização típica, o Estrutura de sincronização faz as seguintes chamadas básicas:

  • BeginSession é chamado em ambos provedores. Isso informa um provedor que está se unindo a uma sessão de sincronização.

  • GetSyncBatchParameters é chamado no provedor de destino. O provedor de destino retorna seu conhecimento e o tamanho de lote necessário.

  • GetChangeBatch é chamado no provedor de origem e passa o conhecimento do provedor de destino. O provedor de origem usar o conhecimento do provedor de destino para detectar alterações e retorna um lote destas. Para obter mais informações, consulte Enumerando alterações.

  • ProcessChangeBatch é chamado no provedor de destino e passa a lista de alterações do provedor de origem. O provedor de destino usa o componente aplicador de alterações do Estrutura de sincronização para detectar conflitos e para aplicar as alterações. Para obter mais informações, consulte Tratando conflitos e Aplicando alterações.

  • LoadChangeData é chamado no provedor de origem para cada alteração no lote. O provedor de origem retorna uma interface para o seu mecanismo de transferência de dados.

  • SaveItemChange é chamado no provedor de destino para cada alteração no lote. O provedor de destino usa o mecanismo de transferência da origem para transferir os dados associados à alteração.

  • StoreKnowledgeForScope é chamado no provedor de destino. O provedor de destino salva o conhecimento passado como o conhecimento atual.

  • EndSession é chamado em ambos provedores. Isso informa um provedor que está saindo de uma sessão de sincronização a qual havia se unido previamente.

Implementando o provedor de sincronização usando código não gerenciado

A tarefa principal quando você está desenvolvendo um provedor é implementar as interfaces IKnowledgeSyncProvider, ISyncProvider, ISynchronousDataRetriever e ISynchronousNotifyingChangeApplierTarget. Versões assíncronas de algumas dessas interfaces também existem; consulte Interface IAsynchronousDataRetriever e Interface IAsynchronousNotifyingChangeApplierTarget.

Antes da sincronização iniciar, o provedor deve disponibilizar sua implementação de ISyncProvider para o aplicativo de sincronização usando qualquer mecanismo requerido pelo aplicativo.

Durante uma sincronização típica, o Estrutura de sincronização faz as seguintes chamadas básicas:

  • BeginSession é chamado em ambos provedores. Isso informa um provedor que está se unindo a uma sessão de sincronização.

  • GetSyncBatchParameters é chamado no provedor de destino. O provedor de destino retorna seu conhecimento e o tamanho de lote necessário.

  • GetChangeBatch é chamado no provedor de origem e passa o conhecimento do provedor de destino. O provedor de origem usar o conhecimento do provedor de destino para detectar alterações e retorna um lote destas. Para obter mais informações, consulte Enumerando alterações.

  • ProcessChangeBatch é chamado no provedor de destino e passa a lista de alterações do provedor de origem. O provedor de destino usa o componente aplicador de alterações do Estrutura de sincronização para detectar conflitos e para aplicar as alterações. Para obter mais informações, consulte Tratando conflitos e Aplicando alterações.

  • LoadChangeData é chamado no provedor de origem para cada alteração no lote. O provedor de origem retorna uma interface para o seu mecanismo de transferência de dados.

  • SaveChange é chamado no provedor de destino para cada alteração no lote. O provedor de destino usa o mecanismo de transferência da origem para transferir os dados associados à alteração.

  • SaveKnowledge é chamado no provedor de destino. O provedor de destino salva o conhecimento passado como o conhecimento atual.

  • EndSession é chamado em ambos provedores. Isso informa um provedor que está saindo de uma sessão de sincronização a qual havia se unido previamente.

Para obter mais informações sobre como criar um provedor de sincronização, consulte Como criar um provedor de sincronização não gerenciado.

Consulte também

Referência

IKnowledgeSyncProvider Interface
Interface ISynchronousDataRetriever
Interface ISyncProvider
Interface ISynchronousNotifyingChangeApplierTarget
KnowledgeSyncProvider
SyncProvider
IChangeDataRetriever
INotifyingChangeApplierTarget

Conceitos

Como criar um provedor de sincronização não gerenciado
Enumerando alterações
Tratando conflitos
Aplicando alterações
Sincronizando unidades de alteração
Relatando o progresso da sincronização
Filtrando dados de sincronização
Suportando tarefas de sincronização simultâneas
Interoperando com feeds do FeedSync
Recuperando uma réplica desatualizada

Outros recursos

Microsoft Sync Framework