- Valutazione delle prestazioni
- Sistemi distribuiti
- Simulazione parallela e distribuita
- Tecniche di simulazione
- Sicurezza informatica
- High Level Architecture (HLA)
- Online Gaming
La simulazione è una metodologia ampiamente utilizzata per il supporto alla progettazione di
nuovi sistemi e per la valutazione delle prestazioni di quelli
esistenti. In molti ambiti è impossibile (o non economico) procedere
alla costruzione di sistemi reali prima di averne verificato e
validato il funzionamento attraverso delle tecniche di simulazione.
L'approccio classico alla simulazione è monolitico quindi basato su una singola unità di esecuzione che ha il compito di
procedere alla gestione e all'evoluzione di tutto il modello di
simulazione. Principalmente a causa di limitazioni dovute alle
risorse a disposizione (es. memoria di sistema) e al tempo di
calcolo necessario per ottenere i risultati, l'approccio monolitico
si rivela sempre più inadeguato. Soprattutto in presenza di sistemi
da simulare complessi, spiccatamente dinamici o massivamente
popolati (come quelli attualmente di maggior interesse e
destinati ad una diffusione ancora maggiore nei prossimi
anni).
Una tecnica alternativa per l'implementazione di simulazioni è
basata su un approccio parallelo o distribuito (Parallel And Distributed Simulation, PADS). In questo caso
l'esecuzione della simulazione non avviene più su una singola unità
di esecuzione ma è demandata ad un insieme di unità coordinate tra
di loro. Vari studi hanno dimostrato come la simulazione
parallela e distribuita, quando utilizzata in modo opportuno,
sia in grado di risolvere molte delle limitazioni indicate in
precedenza senza introdurre eccessivi overhead dovuti alla
sincronizzazione e alla distribuzione delle informazioni.
In dettaglio, è stato chiaramente dimostrato come un approccio
basato sulla migrazione delle entità simulate abbia reso possibile
incrementare notevolmente le prestazioni del simulatore così come
la sua scalabilità. Queste tecniche sono applicabili con successo
nella valutazione delle prestazioni di protocolli già esistenti,
così come nel supporto alla progettazione di nuovi protocolli, sia
in ambito wired che wireless. Utilizzi particolarmente interessanti
di questa metodologia possono riguardare la valutazione di
scalabilità dei protocolli di peer-to-peer oppure di gossip, in
scenari particolarmente complessi come le reti scale-free o le blockchain.
La sicurezza informatica rappresenta un interessante filone
di ricerca sia in riferimento agli aspetti di simulazione
distribuita che per aspetti indipendenti. In particolare, gli aspetti di anonimizzazione della comunicazione e della computazione si integrano perfettamente con alcune problematiche rilevanti nell'ambito dei sistemi distribuiti.