Progettazione e sviluppo di un sistema distribuito di notifiche basato su database realtime

   page       attach   
abstract

L’obiettivo di questo studio prevede la realizzazione di un sistema che permetta di emettere e distribuire notifiche legate ad eventi. Questa funzionalita` sarà fruita da servizi software al fine di fornire informazioni costantemente aggiornate agli utenti delle applicazioni web e per monitorare lo stato di avanzamento di task/procedure. La parte iniziale del lavoro è stata dedicata all’analisi del contesto in cui si colloca questo problema: è stato definito il concetto di Database real-time e di seguito sono stati analizzati i sistemi e le tecnologie disponibili in commercio in grado di offrire il servizio di distribuzione delle notifiche ai servizi client implementando il famoso pattern di messaggistica Publish/Subscribe. Per il design del sistema è stato, quindi, necessario acquisire una solida conoscenza dei sistemi distribuiti, dei problemi di concorrenza sui dati condivisi e dell’interfacciamento con database real-time. Il progetto ha previsto due attività principali: la progettazione e implementazione di una libreria lato client e l’automazione dell’avvio del server tramite Docker. In seguito all’analisi del software scelto per il server di sistema (RethinkDB) si è proceduto con un’attenta fase di progettazione della libreria di sistema UtilityRethink che garantirà ai servizi client l’interfacciamento con il server RethinkDB. Grazie a questa iniziale fase di analisi e progettazione si è potuto sviluppare un primo prototipo della libreria in .Net funzionante ed efficiente che garantisca il principale requisito del sistema. I servizi client attraverso la libreria e interagendo con il server RethinkDB potranno sia inviare nuove notifiche, sia registrarsi per ricevere quelle per cui sono interessati.

outcomes