Update della Lista dei Master

 

Se per la gestione degli Slave da contattare nella sezione riguardante il Master si operava mediante un apposito meccanismo di comunicazione, la gestione dei Master da contattare da parte degli Slave è in questo caso differente. In questo caso infatti i Master sono entità esterne alla rete locale, non ha quindi senso effettuare dei protocolli di comunicazione atti a garantirne la funzionalità. La lista dei Master è stata quindi mantenuta in locale, mediante un semplice file di testo contenente l'indirizzo IP dei Master da contattare. 

Poiché però tale lista di Master non può comunque essere totalmente statica si è ritenuto conveniente aggiornarla mediante un Thread dedicato a ciò (UpdateListaMaster). Tale Thread periodicamente (mediante un valore impostato nella variabile ConstantsS.refreshListaMaster) interroga il Name Server via UDP per "farsi dare" la lista dei master afferenti alo stesso ambito, ancora "presenti". Tale lista "nuova" la si confronta con quella "vecchia" contenuta nel file locale; si mantengono i Master presenti in entrambe e si sostituiscono quelli non più presenti nella "nuova". Ovviamente i criteri con cui si possono scegliere i Master in sostituzione di quelli eliminati  sono ovviamente molteplici, dipendenti da vari fattori quali l'economicità della comunicazione, la "vicinanza" o altri ancora. Poiché in tale progetto, provato in rete locale, tali fattori non sono quantificabili, è stato scelto di scegliere i nuovi elementi "Random" nella lista "nuova". E' chiaro che in situazioni reali tale procedura andrà verificata e, sicuramente, variata in base a specifiche esigenze.