Requisiti dei metadati
Sync Framework richiede un insieme particolare di metadati per ogni replica e per ogni elemento che deve essere sincronizzato.
Metadati richiesti per ogni replica
In ogni replica è necessario archiviare l'insieme di metadati illustrato nella tabella seguente.
Elemento dei metadati | Descrizione |
---|---|
ID replica |
Rappresenta l'identificatore univoco di una replica in una community di sincronizzazione. Anche se l'ID replica è un ID flessibile e, di conseguenza, può essere definito dallo schema per la community, si consiglia un GUID a 16 byte. Il formato di un ID replica passato a un metodo Sync Framework deve corrispondere al formato specificato dal provider. Codice gestito Il formato viene specificato dalla proprietà ReplicaIdFormat della classe SyncIdFormatGroup. L'ID è rappresentato dalla classe SyncId. Codice non gestito Il formato viene specificato dal campo replicaId della struttura Struttura ID_PARAMETERS. L'ID è rappresentato dalla struttura SYNC_ID. |
Conteggio corrente |
Rappresenta il conteggio corrente per la replica. È importante considerare che si tratta di un numero concettuale che può essere dedotto dalla versione locale più recente nella conoscenza per elemento o da un altro valore a incremento progressivo costante disponibile per la replica. Ad esempio, una replica può utilizzare il tempo di clock corrente a condizione che possa impedire la reimpostazione di tale valore. Codice gestito Rappresentato da un oggetto UInt64. Codice non gestito Rappresentato da un oggetto ULONGLONG. |
Mappa di chiavi di replica |
Rappresenta un mapping tra ID replica e chiavi a 4 byte. A causa delle ripetute occorrenze degli ID replica nei metadati (si consigliano GUID a 16 byte), risulta più efficiente rappresentare gli ID tramite una tabella per eseguire il mapping degli ID replica alle chiavi a 4 byte. Queste chiavi vengono quindi utilizzate in altri punti in cui sono necessari riferimenti a determinate repliche. Codice gestito Rappresentato tramite ReplicaKeyMap. Codice non gestito Rappresentato tramite IReplicaKeyMap. |
Conoscenza corrente |
Rappresenta il riepilogo delle informazioni sulla versione conosciute dalla replica per l'ambito specificato. La conoscenza della replica viene modificata tramite i servizi metadati e non deve essere modificata direttamente. Codice gestito Rappresentato tramite SyncKnowledge. Codice non gestito Rappresentato tramite ISyncKnowledge. |
Conoscenza dimenticata |
Consente a una replica di rilevare che una replica partner non è a conoscenza degli elementi eliminati. Questa situazione può verificarsi quando gli oggetti contrassegnati per la rimozione definitiva per tali elementi sono stati eliminati. La conoscenza dimenticata viene modificata tramite i servizi metadati. Codice gestito Rappresentato tramite ForgottenKnowledge. Codice non gestito Rappresentato tramite IForgottenKnowledge. |
Log dei conflitti |
Rappresenta un log dei conflitti ottenuto nel caso in cui dopo l'enumerazione delle modifiche siano stati rilevati conflitti che non sono stati risolti. Le repliche sono necessarie per mantenere un log dei conflitti. La rappresentazione di un log dei conflitti è determinata dalla replica e non è necessario fornire a Sync Framework l'accesso a tale log. |
Log di rimozione definitiva |
Archivia informazioni sull'eliminazione di elementi da una replica in modo che le modifiche relative all'eliminazione vengano propagate correttamente nelle community di sincronizzazione e gli elementi eliminati non vengano reintrodotti in modo accidentale. Le repliche sono necessarie per mantenere un log di rimozione definitiva. La rappresentazione di un log di rimozione definitiva è determinata dalla replica e non è necessario fornire l'accesso a tale registro a Sync Framework. |
Metadati richiesti per ogni elemento
Ogni elemento da sincronizzare deve disporre dell'insieme di metadati illustrato nella tabella seguente.
Elemento dei metadati | Descrizione |
---|---|
ID globale |
È un identificatore per un elemento archiviato in una replica. Poiché la replica è responsabile della generazione degli ID globali, può allocare ID globali che rendono più efficiente l'enumerazione. Ad esempio, una community può definire il formato dell'ID globale come GUID preceduto da un prefisso a 8 byte. Il prefisso può essere quindi utilizzato per controllare l'ordinamento degli ID globali. Ciò consente ai provider di utilizzare in modo più semplice gli intervalli per enumerare le modifiche e, dato che un intervallo può contenere un elevato numero di elementi, la struttura di conoscenza può risultare più compatta quando gli elementi vengono rappresentati come gruppi ordinati. Per ulteriori informazioni sui formati degli ID globali, vedere ID flessibili. Codice gestito Il formato viene specificato dalla proprietà ItemIdFormat della classe SyncIdFormatGroup. L'ID è rappresentato dalla classe SyncId. Codice non gestito Il formato viene specificato dal campo itemId della struttura Struttura ID_PARAMETERS. L'ID è rappresentato dalla struttura SYNC_ID. |
Versione corrente |
È l'ultima versione aggiornata di un determinato elemento. La versione corrente contiene la chiave della replica che ha eseguito l'aggiornamento più recente dell'elemento e il conteggio della replica nel momento in cui è stata apportata la modifica. Questa versione viene archiviata per unità di modifica quando un elemento utilizza unità di modifica. Ad esempio, un contatto potrebbe disporre di numeri di versione dell'unità di modifica distinti per i campi indirizzo e numero di telefono. Codice gestito Rappresentato da SyncVersion. Codice non gestito Rappresentato da SYNC_VERSION. |
Versione di creazione |
Rappresenta la versione al momento della creazione dell'elemento. La versione di creazione contiene la chiave della replica che ha creato l'elemento e il conteggio di tale replica al momento della creazione dell'elemento. Codice gestito Rappresentato da SyncVersion. Codice non gestito Rappresentato da SYNC_VERSION. |
Requisiti di archiviazione
Poiché la replica determina il formato dell'ID globale, la quantità di spazio richiesta per archiviare i metadati per ogni elemento varia. Tuttavia, quando viene utilizzato il formato consigliato di un GUID più un prefisso a 8 byte, la quantità totale di archiviazione richiesta è 48 byte, come illustrato nella tabella seguente.
Elemento | Byte |
---|---|
ID globale |
24 (GUID + prefisso a 8 byte) |
Versione corrente |
12 (chiave di replica a 4 byte + conteggio a 8 byte) |
Versione di creazione |
12 (chiave di replica a 4 byte + conteggio a 8 byte) |
48 byte totali |
Vedere anche
Riferimento
Interfaccia IReplicaKeyMap
Struttura SYNC_ID
Struttura SYNC_GID
Struttura SYNC_VERSION
ReplicaKeyMap
SyncId
SyncGlobalId
SyncIdFormat
SyncIdFormatGroup
SyncVersion
Concetti
Gestione dei metadati
Informazioni sulla conoscenza di sincronizzazione
ID flessibili
Versioni di sincronizzazione
Gestione dei contrassegni per la rimozione definitiva