Sincronizzazione dei dati a due vie tra l'applicazione Web e il server REST API

1

Ho un'applicazione web e un server API REST (Microsoft Dynamics CRM 2016) che non ho accesso al suo codice, ma ho accesso alle risorse disponibili. Devo creare una sincronizzazione dei dati tra entrambi i server, alcune delle tabelle sono a senso unico e le altre due modalità di sincronizzazione dei dati devono essere eseguite, non ho trovato alcuna soluzione valida per risolvere il problema.

Posso gestire la sincronizzazione dei dati a senso unico creando una tabella di log di ogni istruzione SQL eseguita nella mia applicazione Web e dopo un periodo di tempo posso utilizzare gli endpoint REST API per sincronizzare i dati dalla mia applicazione Web nell'API REST server, ma come fare l'inverso (cioè sincronizzare i dati dall'applicazione API REST nella mia applicazione web)?

La soluzione ingenua è ottenere tutti i record della tabella dal server REST API e quindi avviare la sincronizzazione confrontando i record di entrambe le fonti, dato che attualmente non ho il timestamp sui record e non ho modo di ottenere le risorse che vengono modificati / inseriti dal server REST, per questo motivo dovrei ottenere tutte le risorse dal server REST e non i record modificati che aumenteranno il traffico di rete durante ogni operazione di sincronizzazione.

L'inserimento non è un problema, il problema è con le operazioni di aggiornamento e cancellazione.

    
posta M.Abulsoud 27.08.2016 - 16:03
fonte

1 risposta

0

Dato lo scenario in cui non è possibile controllare / accedere al server REST, è necessario effettuare chiamate per ogni tabella finché il servizio REST non espone alcune API per abilitare questa funzionalità. Ma fuori rotta puoi ottimizzare i dati che fluiscono attraverso la rete:

  1. Crea un elenco di tabelle con aggiornamenti più recenti del tuo servizio (eseguendo una query sul servizio REST).
  2. Ora sincronizza solo le tabelle dall'elenco precedente.

o

Prova a recuperare i dati aggiornati / nuovi in un'unica chiamata (al punto 1).

Secondo me le soluzioni di cui sopra non sono fondamentalmente diverse dalla soluzione attuale, ma cercano di controllare la quantità di traffico nella rete. Devi implementare entrambi ed eseguire il test di carico su di essi per vedere cosa si adatta meglio.

    
risposta data 27.08.2016 - 22:09
fonte

Leggi altre domande sui tag