Disponibile dalla versione v4.1.
Una delle situazioni più comuni nei sistemi distribuiti quella di avere una risorsa condivisa; un record di database, una fattura, un ordine, un generico aggregate-root, un file, un dispositivo hardware, un file di log etc. Insomma, in tutte le situazioni in cui non deve essere possibile iniziare a modificare una entità se qualcun’altro la sta ià modificando, il modulo SynchUtils è la soluzione! Il modulo Synch Utils (disponibile in DMSContainer 4.1) permette di risolvere tutti i problemi di sincronizzazione tra sistemi distribuiti che condividono l’accesso a una risorsa condivisa.
SynchUtils Module :: Funzionalità principali
SynchUtils gestisce lock di tipo esclusivi. Con questo tipo di lock (concettualmente simili a alle CriticalSection offerte dai sistemi operativi) è facile implementare il design pattern che prende il nome di pessimistic offline lock (blocco pessimistico off-line). Questo tipo di design pattern impedisce gli aggiornamenti simultanei delle risorse in carico al sistema.
- Le risorse potrebbero essere record, file, strutture complesse (grafi) o altro che in maniera concorrente potrebbe essere letto e/o modificato da più di un client
- I lock eclusivi di SyhcUtils sono distribuiti e accessibili tramite una comoda API JSON-RPC
- Quando un utente vuole aggiornare una risorsa condivisa, tenta di acquisire un lock; se lo acquisisce, nessun altro utente potrà modificare la stessa risorsa fino a quando il lock non verrà rilasciato o non scadrà.
- Un vantaggio del modello di blocco pessimistico è rappresentato dal fatto che esso evita il problema della risoluzione dei conflitti impedendo che si verifichino.
- Gli aggiornamenti sono serializzati e ogni aggiornamento successivo inizia con le modifiche apportate dall’utente precedente.
- Offre soluzioni già pronte per i casi più diffusi ed è molto semplice da usare