Tecniche di sincronizzazione dei dati in tempo reale tra due sistemi

4

Devo elaborare un progetto per l'aggiornamento dei dati in tempo reale da un prodotto COTS (un sistema Point of Sales) a un'applicazione .NET personalizzata (un sistema di gestione dell'inventario).

In particolare, qualsiasi transazione di vendita che si verifica nel sistema POS deve aggiornare immediatamente il database di inventario (presente nel sistema di gestione delle scorte) (in tempo reale). L'unico modo in cui qualsiasi altro sistema può comunicare al sistema POS è rappresentato dalla sua API esposta come servizi web.

Ho pensato di introdurre un bus di servizio (o qualsiasi strumento EAI) tra i due sistemi e di sfruttare il modello di abbonamento-pubblicazione in modo che qualsiasi esaurimento delle vendite che si verifica nel sistema POS attiverà l'aggiornamento dei dati al sistema di messaggistica istantanea tramite il bus di servizio. Le mie domande sono:

  1. È una soluzione buona / fattibile?
  2. Hai altri suggerimenti per la sincronizzazione dei dati in tempo reale tra diversi sistemi?
posta fuzzygeek 12.08.2014 - 23:03
fonte

2 risposte

5

Innanzitutto, come i commenti sottolineano, non stai parlando realmente di tempo reale qui - che ha una definizione piuttosto rigida e implica molte cose che non sono realmente sul tavolo. Stai parlando di collegare due sistemi in un modo quasi in tempo reale.

In ogni caso, sì, la soluzione migliore sarebbe una sorta di soluzione di accodamento dei messaggi qui. Il sistema POS spingeva gli aggiornamenti in coda e il sistema di inventario leggeva la coda. Pub / sub potrebbe entrare in gioco anche qui, a seconda di come vuoi fare le cose sul retro.

Il motivo per cui si desidera mettere in coda i messaggi e non una sorta di dipendenza in tempo reale, è perché probabilmente non si vuole interrompere l'assunzione delle transazioni se / quando la gestione dell'inventario viene interrotta per qualsiasi motivo. Piuttosto puoi registrare cose (coda dei messaggi) e poi riprodurle quando ritorna.

La vera domanda è che il sistema POS abbia la capacità di spingere i dati in qualche modo o che tu sia ridotto a una sorta di soluzione di polling del middleware che cattura le transazioni e le inserisce nella coda dei messaggi.

    
risposta data 13.08.2014 - 23:22
fonte
-1

Penso che ci siano diversi modi per rendere la sincronizzazione tra due sistemi e suppongo che sia simile a quello di come condividere la memoria in clustering.

È possibile sincronizzare i dati nel sistema come di seguito

  1. condividi la memoria usando memcached
  2. condividi memoria usando DB
  3. aggiorna subito i dati nel GI.
  4. Salva i dati solo in un sistema e entrambi i sistemi utilizzano i dati semplicemente chiamando l'API potresti avere problemi di temporizzazione se usi 3 o 4

Se vuoi ridurre il problema di temporizzazione, ti consiglio di utilizzare il modo 1 o 2

    
risposta data 13.08.2014 - 15:24
fonte

Leggi altre domande sui tag