Documenti full-text disponibili:
Abstract
Con la crescita in complessità delle infrastrutture IT e la pervasività
degli scenari di Internet of Things (IoT) emerge il bisogno
di nuovi modelli computazionali basati su entità autonome capaci di portare a termine obiettivi
di alto livello interagendo tra loro grazie al supporto di infrastrutture come il Fog Computing,
per la vicinanza alle sorgenti dei dati, e del Cloud Computing per offrire servizi
analitici complessi di back-end in grado di fornire risultati per milioni di utenti.
Questi nuovi scenarii portano a ripensare il modo in cui il software viene progettato
e sviluppato in una prospettiva agile. Le attività dei team di sviluppatori (Dev)
dovrebbero essere strettamente legate alle attività dei team che supportano
il Cloud (Ops) secondo nuove metodologie oggi note come DevOps.
Tuttavia, data la mancanza di astrazioni adeguata a livello di linguaggio di programmazione,
gli sviluppatori IoT sono spesso indotti a seguire approcci di sviluppo bottom-up che spesso
risulta non adeguato ad affrontare la compessità delle applicazione del settore e
l'eterogeneità dei compomenti software che le formano.
Poichè le applicazioni monolitiche del passato appaiono difficilmente scalabili
e gestibili in un ambiente Cloud con molteplici utenti,
molti ritengono necessaria l'adozione di un nuovo stile architetturale,
in cui un'applicazione dovrebbe essere vista come una composizione di micro-servizi,
ciascuno dedicato a uno specifica funzionalità applicativa e ciascuno sotto la
responsabilità di un piccolo team di sviluppatori, dall'analisi del problema
al deployment e al management.
Poichè al momento non si è ancora giunti a una definizione univoca
e condivisa dei microservices e di altri concetti che emergono da IoT e dal Cloud,
nè tantomento alla definzione di linguaggi sepcializzati per questo settore,
la definzione di metamodelli
custom associati alla produzione automatica del software di raccordo con
le infrastrutture potrebbe aiutare un team di sviluppo ad elevare il livello di
astrazione, incapsulando in una software factory aziendale i dettagli implementativi.
Grazie a sistemi di produzione del sofware basati sul Model Driven Software Development (MDSD),
l'approccio top-down attualmente carente può essere recuperato, permettendo
di focalizzare l'attenzione sulla business logic delle applicazioni.
Nella tesi viene
mostrato un esempio di questo possibile approccio, partendo dall'idea che
un'applicazione IoT sia in primo luogo un sistema software distribuito in cui
l'interazione tra componenti attivi (modellati come attori)
gioca un ruolo fondamentale.
Abstract
Con la crescita in complessità delle infrastrutture IT e la pervasività
degli scenari di Internet of Things (IoT) emerge il bisogno
di nuovi modelli computazionali basati su entità autonome capaci di portare a termine obiettivi
di alto livello interagendo tra loro grazie al supporto di infrastrutture come il Fog Computing,
per la vicinanza alle sorgenti dei dati, e del Cloud Computing per offrire servizi
analitici complessi di back-end in grado di fornire risultati per milioni di utenti.
Questi nuovi scenarii portano a ripensare il modo in cui il software viene progettato
e sviluppato in una prospettiva agile. Le attività dei team di sviluppatori (Dev)
dovrebbero essere strettamente legate alle attività dei team che supportano
il Cloud (Ops) secondo nuove metodologie oggi note come DevOps.
Tuttavia, data la mancanza di astrazioni adeguata a livello di linguaggio di programmazione,
gli sviluppatori IoT sono spesso indotti a seguire approcci di sviluppo bottom-up che spesso
risulta non adeguato ad affrontare la compessità delle applicazione del settore e
l'eterogeneità dei compomenti software che le formano.
Poichè le applicazioni monolitiche del passato appaiono difficilmente scalabili
e gestibili in un ambiente Cloud con molteplici utenti,
molti ritengono necessaria l'adozione di un nuovo stile architetturale,
in cui un'applicazione dovrebbe essere vista come una composizione di micro-servizi,
ciascuno dedicato a uno specifica funzionalità applicativa e ciascuno sotto la
responsabilità di un piccolo team di sviluppatori, dall'analisi del problema
al deployment e al management.
Poichè al momento non si è ancora giunti a una definizione univoca
e condivisa dei microservices e di altri concetti che emergono da IoT e dal Cloud,
nè tantomento alla definzione di linguaggi sepcializzati per questo settore,
la definzione di metamodelli
custom associati alla produzione automatica del software di raccordo con
le infrastrutture potrebbe aiutare un team di sviluppo ad elevare il livello di
astrazione, incapsulando in una software factory aziendale i dettagli implementativi.
Grazie a sistemi di produzione del sofware basati sul Model Driven Software Development (MDSD),
l'approccio top-down attualmente carente può essere recuperato, permettendo
di focalizzare l'attenzione sulla business logic delle applicazioni.
Nella tesi viene
mostrato un esempio di questo possibile approccio, partendo dall'idea che
un'applicazione IoT sia in primo luogo un sistema software distribuito in cui
l'interazione tra componenti attivi (modellati come attori)
gioca un ruolo fondamentale.
Tipologia del documento
Tesi di laurea
(Laurea magistrale)
Autore della tesi
Norcini, Simone
Relatore della tesi
Scuola
Corso di studio
Ordinamento Cds
DM270
Parole chiave
IoT, Internet of Things, DevOps, PaaS, Fog, Cloud, microservices, Microservice Architecture, QActors, XText, MDSD, Model Driven, industrial warehouse, microservizi
Data di discussione della Tesi
14 Luglio 2016
URI
Altri metadati
Tipologia del documento
Tesi di laurea
(NON SPECIFICATO)
Autore della tesi
Norcini, Simone
Relatore della tesi
Scuola
Corso di studio
Ordinamento Cds
DM270
Parole chiave
IoT, Internet of Things, DevOps, PaaS, Fog, Cloud, microservices, Microservice Architecture, QActors, XText, MDSD, Model Driven, industrial warehouse, microservizi
Data di discussione della Tesi
14 Luglio 2016
URI
Statistica sui download
Gestione del documento: