Ennio Riccobene
Sviluppo backend di una piattaforma per la trasparenza e la tracciabilità nelle filiere produttive = Backend development of a platform for transparency and traceability in the supply chains.
Rel. Giovanni Malnati, Daniele Apiletti. Politecnico di Torino, Corso di laurea magistrale in Ingegneria Informatica (Computer Engineering), 2020
Abstract: |
Il progetto di tesi descritto in questo elaborato riguarda la progettazione dell'architettura e la realizzazione del backend per una piattaforma che offre servizi di trasparenza, tracciabilità e condivisione dei dati a livello di supply chain, per farlo si è scelto di basarsi sugli standard definiti da GS1, principalmente su quello EPCIS che è in grado di rappresentare gli eventi che si verificano su qualsiasi attività produttiva descrivendolo su quattro dimensioni: What, Why, Where e When. Gli eventi EPCIS possono essere molto complessi e per semplificarne la definizione è stata sviluppata un'interfaccia di cattura semplificata, la quale permette, previa definizione dei template per gli eventi prodotti da un'impresa, di costruire dati conformi allo standard fornendo solo gli identificativi degli oggetti mancanti. In questa fase di sviluppo della piattaforma non è stato possibile reperire dei dati reali degli eventi generati su delle aziende facenti parte della stessa filiera, per questo è stato sviluppato un generatore di eventi EPCIS in grado di simulare le attività di una filiera produttiva. Esso è costituito da un insieme di macchine a stati indipendenti che utilizzano i template definiti in precedenza e i dati prodotti hanno permesso di testare le funzionalità e le performance di XTap. L'architettura di XTap presenta in ingresso delle API REST autenticate con OAuth 2.0 e token JWT, dalle quali prendere i dati forniti da interfaccia web o dispositivi posti nella periferia presso le industrie. Tutti i dati gestiti dalla piattaforma transitano su Kafka, un sistema di gestione delle code di messaggi distribuito che garantisce alte prestazioni, scalabilità e resistenza ai guasti. I dati in ingresso arrivano sul topic kafka dell'utente che li ha generati e qui vengono analizzati da uno stream processor, il quale li confronta con delle regole stabilite dall'utente e in caso l'evento in ingresso ne soddisfi i vincoli, questo viene inoltrato ai partner autorizzati a riceverlo. In questo modo XTap si comporta come un router attivo di eventi in grado di processare velocemente i dati e di distribuirli alle varie aziende, ognuna delle quali avrà una propria istanza del database MongoDB contenente solo i dati che è autorizzata a ricevere, garantendo così che ogni impresa mantenga la proprietà dei dati che produce, facendo uscire verso l'esterno solo i dati desiderati e mandandoli solo ai soggetti con cui si sono stabiliti accordi commerciali che hanno autorizzato tale trasmissione. Inoltre mettendo insieme le regole che rappresentano le relazioni tra le aziende è possibile ricostruire la mappa della supply chain e presentarla graficamente. I dati presenti nella piattaforma possono essere interrogati attraverso diverse API REST e le risposte permettono di visualizzare i dati sugli eventi aggregati sotto diverse dimensioni e di visualizzare lo stato attuale e la storia di ogni prodotto registrato nella filiera. Tutto può essere integrato tramite diversi strumenti di analisi sui dati raccolti, costruiti in base alle necessità di ogni cliente e integrati nella piattaforma tramite un sistema di plugin privati degli utenti, i quali utilizzano uno stream processor statefull sui dati che transitano su kafka. |
---|---|
Relatori: | Giovanni Malnati, Daniele Apiletti |
Anno accademico: | 2020/21 |
Tipo di pubblicazione: | Elettronica |
Numero di pagine: | 84 |
Informazioni aggiuntive: | Tesi secretata. Fulltext non presente |
Soggetti: | |
Corso di laurea: | Corso di laurea magistrale in Ingegneria Informatica (Computer Engineering) |
Classe di laurea: | Nuovo ordinamento > Laurea magistrale > LM-32 - INGEGNERIA INFORMATICA |
Aziende collaboratrici: | TonicMInds Srl |
URI: | http://webthesis.biblio.polito.it/id/eprint/15898 |
Modifica (riservato agli operatori) |