surapazzo ha scritto:
Grazie, il mio problema è questo io ho un sistema Erp che deve passare da una architettura SqlServer connessa ad una architettura di tipo disconnessa.
In questo momento vi è una webapp che gestisce le entrate e i lock da usare, in pratica fa da filtro in un imbuto di richieste controllando da se la concorrenza.
...
Semplicemente non funziona.
Per quanto riguarda la webapp, ti segnalo che è la scoperta dell'acqua fredda, nel senso che l'utilizzo di un generatore di token (chiami timestamp, non cambia nulla) univoci rende disponibile un ordinamento totale (neppure parziale) degli eventi.
MA questo presume che il servizio sia raggiungibile, cioè che la connessione internet CI SIA. Ma se c'è...
Riguardo ai vincoli puoi fare come vuoi. Ad esempio che i client quando sono disconnessi possono solo leggere i dati.
E che quando invece vogliono scrivere, cioè creare dei documenti, essi NON vanno a finire nel database, ma in una qualche sorta di archivio locale (testo, XML, json, bson o sticazzi) i quali, quando la connessione è disponibile, vengono caricati nel server, dove esiste un programma vero e proprio che piglia in carico i documenti e LUI (il programma) decide se e come inserire i dati.
Essendo un singolo agente non c'è problema di concorrenza (fa da solo); inoltre può gestire collisioni logiche (es. denormalizzazioni non volute etc).
Si tratta del concetto di "spazzino" normalmente usato in questi casi.