Requisitos de metadados para provedores padrão
O Sync Framework exige um conjunto de metadados específicos para cada réplica e para cada item a ser sincronizado.
Metadados necessários para cada réplica
Cada réplica é necessária para armazenar o conjunto de metadados mostrado na seguinte tabela.
Elemento de metadados |
Descrição |
---|---|
ID da réplica |
É o identificador exclusivo de uma réplica em uma comunidade de sincronização. Embora a ID da réplica seja uma ID flexível podendo, portanto, ser definida pelo esquema para a comunidade, é recomendado um GUID de 16 bytes. O formato de uma ID da réplica passada para um método do Sync Framework deve corresponder ao formato especificado pelo provedor. Código gerenciado O formato é especificado pela propriedade ReplicaIdFormat da classe SyncIdFormatGroup. A ID é representada pela classe SyncId. Código não gerenciado O formato é especificado pelo campo replicaId da estrutura Estrutura ID_PARAMETERS. A ID é representada pela estrutura SYNC_ID. |
Contagem em escala atual |
É a contagem em escala atual da réplica. Lembre-se que este é um número conceitual e pode ser inferido da última versão local no conhecimento por item ou de algum outro valor que aumenta de forma monotônica disponível para a réplica. Por exemplo, uma réplica pode usar o tempo de relógio atual contanto que possa impedir este valor de ser redefinido. Código gerenciado Representado por um UInt64. Código não gerenciado Representado por um ULONGLONG. |
Mapa da chave da réplica |
É um mapeamento entre IDs da réplica e chaves de 4 bytes. Devido as ocorrências repetidas de IDs da réplica nos metadados (recomenda-se que sejam GUIDs de 16 bytes), é mais eficiente representar as IDs usando uma tabela para mapear IDs da réplica até chaves de 4 bytes. Estas chaves são usadas em outros lugares nos quais são necessárias referências a réplicas específicas. Código gerenciado Representado usando ReplicaKeyMap. Código não gerenciado Representado usando IReplicaKeyMap. |
Conhecimento atual |
É o resumo das informações da versão que a réplica conhece para o escopo especificado. O conhecimento da réplica é manipulado através dos serviços dos metadados e não deve ser manipulado diretamente. Código gerenciado Representado usando SyncKnowledge. Código não gerenciado Representado usando ISyncKnowledge. |
Conhecimento esquecido |
Permite uma réplica detectar que uma réplica de parceiro não sabe sobre itens que foram excluídos. Isso pode ocorrer quando as marcas de exclusão para estes itens forem limpas. O conhecimento esquecido é manipulado através de serviços de metadados. Código gerenciado Representado usando ForgottenKnowledge. Código não gerenciado Representado usando IForgottenKnowledge. |
Log de conflitos |
É um log dos conflitos ocorridos quando estes foram detectados após a enumeração de alterações e não foram resolvidos. As réplicas devem manter um log de conflitos somente se os conflitos forem salvos durante a sincronização. A representação de um log de conflitos é determinada pela réplica e não é necessário fornecer acesso a este log para o Sync Framework. No entanto, quando um aplicador de alterações é usado, o Sync Framework pode ajudar a manter o log de conflitos. Para obter mais informações, consulte Registrando em log e gerenciando conflitos. |
Log da marca de exclusão |
Armazena informações sobre a exclusão de itens de uma réplica de forma que alterações de exclusão são propagadas corretamente nas comunidades de exclusão e itens excluídos não são reintroduzidos acidentalmente. As réplicas devem manter um log de marca de exclusão. A representação de um log de marca de exclusão é determinada pela réplica e o acesso a este log não deve ser fornecido ao Sync Framework. Para obter mais informações, consulte Gerenciando marcas de exclusão. |
Metadados necessários para cada item
Cada item a ser sincronizado deve ter o conjunto de metadados mostrado na seguinte tabela.
Elemento de metadados |
Descrição |
---|---|
ID global |
É um identificador para um item armazenado em uma réplica. Como a réplica é responsável por gerar as IDs globais, a réplica pode alocar IDs globais que permitem uma enumeração mais eficiente. Por exemplo, a comunidade pode definir seu formato de ID global para ser um GUID precedido por um prefixo de 8 bytes. O prefixo pode ser usado para controlar a ordem de classificação das IDs globais. Isso permite que os provedores usem os intervalos mais facilmente para enumerar alterações e porque um intervalo pode conter um grande número de itens, a estrutura de conhecimento pode ser mais compacta quando os itens são representados como grupos ordenados. Para obter mais informações sobre formatos de ID global, consulte IDs flexíveis. Código gerenciado O formato é especificado pela propriedade ItemIdFormat da classe SyncIdFormatGroup. A ID é representada pela classe SyncId. Código não gerenciado O formato é especificado pelo campo itemId da estrutura Estrutura ID_PARAMETERS. A ID é representada pela estrutura SYNC_ID. |
Versão atual |
É a última versão atualizada de um item específico. A versão atual contém a chave da réplica que atualizou o item mais recentemente e a contagem em escala da réplica quando a alteração foi feita. Esta versão é armazenada por unidade de alteração quando um item usa unidades de alteração. Por exemplo, um contato pode ter números distintos da versão da unidade de alteração para os campos de endereço e número de telefone. Código gerenciado Representado pelo SyncVersion. Código não gerenciado Representado pelo SYNC_VERSION. |
Versão de criação |
É a versão quando o item foi criado. A versão de criação contém a chave da réplica que criou o item e a contagem em escala da réplica quando o item foi criado. Código gerenciado Representado pelo SyncVersion. Código não gerenciado Representado pelo SYNC_VERSION. |
Requisitos de armazenamento
Como a réplica determina o formato da ID global, o espaço necessário para armazenar os metadados para cada item varia. No entanto, quando é usado o formato recomendado de um GUID mais um prefixo de 8 bytes, o valor total de armazenamento necessário é de 48 bytes, como mostrado na tabela a seguir.
Item |
Bytes |
---|---|
ID global |
24 (GUID + prefixo de 8 bytes) |
Versão atual |
12 (chave da réplica de 4 bytes + contagem em escala de 8 bytes) |
Versão de criação |
12 (chave da réplica de 4 bytes + contagem em escala de 8 bytes) |
total de 48 bytes |
Metadados para conflitos de restrição
Quando conflitos de restrição são resolvidos mesclando os itens em conflito, metadados adicionais são necessários para os itens mesclados. Para obter mais informações, consulte Detectando e solucionando conflitos de restrição.
Metadados para filtros personalizados
Quando filtros personalizados são usados, metadados adicionais são necessários para cada réplica e cada item. Para obter mais informações, consulte Filtrando dados de sincronização.
Consulte também
Referência
Outros recursos
Gerenciando metadados para provedores padrão
Noções básicas sobre conhecimento de sincronização