Synch Utils Module

Sample article showcasing basic Markdown syntax and formatting for HTML elements.

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