-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathConclusionielavorifuturi.tex
19 lines (11 loc) · 5.11 KB
/
Conclusionielavorifuturi.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
\fancypagestyle{plain}{\fancyhead{}\renewcommand{\headrulewidth}{0pt}}
\chapter{Conclusioni e Lavori Futuri}
L’approccio Edge Computing si sta prepotentemente facendo strada tra le altre soluzioni del genere proposte sul mercato, quali Cloud e Fog Computing. Le potenzialità offerte da questa architettura risultano al passo coi tempi in un mondo in cui sempre più dispositivi diversi tra loro richiedono la connessione alla rete con vincoli di bassa latenza e alto livello di sicurezza.
Edge Engine nasce proprio allo scopo di soddisfare tali requisiti, permettendo l’esecuzione del proprio codice su piattaforme eterogenee, lasciando inoltre allo sviluppatore piena libertà di scelta riguardo il settore d’interesse. Tale sistema può infatti essere adottato a partire da una semplice applicazione di domotica sino ad arrivare a un caso delicato come potrebbe essere il rilevamento dei parametri vitali di un paziente.
Da quanto appreso dai vari test e dall'esperienza di utilizzo dei due tesisti triennali, Edge Engine è riuscito nell’intento di semplificare lo sviluppo di nuove applicazioni IoT, offrendo un motore di esecuzione con il quale è possibile concentrarsi soltanto sulla raccolta dei dati che si intende elaborare, senza preoccuparsi della comunicazione Edge - Cloud. Inoltre, le potenzialità di cui già era dotato sono state ulteriormente aggiornate grazie al porting su dispositivi di tipo PC e alla creazione del plugin per Unity, ampliando così il range di piattaforme impiegabili e aggiungendo, peraltro, il supporto alla realtà virtuale.
Edge Engine presenta tuttavia alcune criticità. In primo luogo, nel caso di utilizzo della versione PC, qualora non fosse presente la connessione Internet, il programma dovrebbe attendere l’intervento dell'utente, diversamente da quanto accade invece nel caso Arduino. Ciò potrebbe dar luogo a complicanze laddove non sia richiesta o possibile la presenza umana. Inoltre, il parser attuale risulta abbastanza restrittivo nella traduzione degli script in codice eseguibile. Pertanto, al fine di aumentare la semplicità di utilizzo e composizione degli stessi, sarebbe opportuno permettere all'utente una sintassi più libera, che si avvicini maggiormente al linguaggio scritto, implementando quindi un parser più sofisticato. Un ulteriore aspetto critico legato agli script riguarda l’esiguo numero delle operazioni disponibili. Attualmente, al fine di creare funzionalità avanzate, è richiesta la concatenazione delle operazioni elementari presenti. L’aggiunta di altre più complesse, come ad esempio l’elevamento a potenza o il logaritmo, potrebbe semplificare la creazione di nuovi script, andando inoltre ad aumentare le possibilità di elaborazione dei dati.
In aggiunta ai sopracitati potenziali sviluppi del codice, derivanti da criticità minori riscontrate durante l’implementazione di applicazioni basate su Edge Engine, di seguito vengono forniti ulteriori spunti che possano essere di aiuto per un’estensione delle funzionalità del sistema.
Attualmente, la funzione che viene reiterata durante lo svolgimento del programma non prevede un tempo di esecuzione pre-impostabile, ma è gestita da un counter nella versione PC e dal metodo \texttt{Update} in Unity. Esistono svariate situazioni in cui l’utente potrebbe necessitare di un tempo totale di esecuzione configurabile, in quanto non è nota a priori la durata di un singolo ciclo. Si guardi ad esempio un’applicazione IoT di videosorveglianza, per la quale si desideri impostare uno specifico arco temporale di funzionamento di Edge Engine. In questo caso, al momento, l’utente sarebbe costretto ad avviare e interrompere manualmente il dispositivo senza poter fare altrimenti.
Un ulteriore aspetto che sarebbe importante approfondire riguarda la fusione di contesti di sviluppo differenti, al fine di ottenere applicazioni innovative sempre più complete. In questo elaborato sono stati trattati due approcci, reale e virtuale, in modo separato. Tuttavia, si pensi ad esempio al caso di un utente che desideri monitorare i propri parametri vitali (pressione, frequenza cardiaca, ecc.) e, al contempo, raccogliere ed elaborare dati provenienti dal mondo di gioco, con l’intento di correlare queste informazioni tra loro. Una funzionalità di questo genere potrebbe inoltre attirare l’attenzione degli stessi produttori di videogiochi, dal momento che permetterebbe di estrapolare dati relativi all'esperienza d’utilizzo dell'utente, utili per carpire le sensazioni che il gioco è in grado di trasmettere.
Per quanto riguarda l’idea sopracitata, ma non solo, sarebbe opportuno sviluppare algoritmi di Machine Learning in grado di essere eseguiti anche sui dispositivi perimetrali, siano essi PC o microcontrollori. Ciò potrebbe risultare d’interesse in quanto le operazioni al momento presenti non permettono una tale profondità di elaborazione dei dati.
Sono dunque numerose le possibilità di aggiornamento di Edge Engine, ciononostante il sistema oggetto della presente tesi risulta comunque completo e pronto per essere utilizzato su diverse piattaforme, imponendosi pertanto come una soluzione innovativa nell'ambito dell'Edge Computing.