Francesco Petronella
Implementazione della catena di esecuzione di QRScript su dispositivi mobili = Implementation of the execution chain of QRScript on mobile devices.
Rel. Stefano Scanzio, Matteo Rosani, Gianluca Cena. Politecnico di Torino, Corso di laurea magistrale in Ingegneria Informatica (Computer Engineering), 2024
PDF (Tesi_di_laurea)
- Tesi
Accesso riservato a: Solo utenti staff fino al 13 Dicembre 2027 (data di embargo). Licenza: Creative Commons Attribution Non-commercial Share Alike. Download (3MB) |
Abstract: |
Una delle sfide più importanti riguardo la dematerializzazione delle informazioni è sempre stata il facile trasporto di esse in contesti in cui l'uso di dispositivi di lettura e memorizzazione sarebbe complesso o poco conveniente, cosa che il semplice foglio di carta stampata garantisce per sua natura. È indubbio che, in questo senso, i codici QR siano stati un pilastro estremamente importante per questo percorso. Ad oggi, permettono il trasporto e la facile memorizzazione e lettura, di piccole informazioni e collegamenti di utilità: credenziali Wi-Fi, codici di comunicazione o identificativi utili per una facile comunicazione con sistemi informatici automatizzati, URL a risorse pubblicitarie o di pubblica utilità e tanto altro. Ci si rende conto che le specifiche appena elencate siano ben adattate a situazioni emergenziali o remote, dove l'accesso a dispositivi di memorizzazione capienti o una connessione a internet, potrebbe essere impratico o impossibile. Partendo dalla già preesistente formalizzazione del QRscript e di due suoi dialetti di uso generico, definiamo qua una possibile catena di esecuzione reale, a partire dalla decodifica sino all'esecuzione vera e propria su un dispositivo mobile di ampia diffusione, quale uno smartphone o un tablet. Nella prima sezione, elaboriamo il meccanismo di esecuzione del bytecode, incardinato su una macchina virtuale facilmente eseguibile in un qualsiasi browser web moderno o motore Javascript, così da evitare problematiche relative all'contesto di esecuzione sottostante, oltre a poter sfruttare i preesistenti meccanismi di sandboxing per consentire un'esecuzione sicura del codice. Vengono illustrati gli accorgimenti per consentire l'estensibilità da parte di terzi del codice, per la creazione di nuove VM per dialetti e il riutilizzo di codice già esistente senza duplicazione di comandi macchina per dialetti differenti. Nella seconda sezione, analizziamo invece il meccanismo di decodifica e preparazione del codice per l'esecuzione nella macchina virtuale, compresi gli accorgimenti per l'invio di segnali controllati tra la sandbox della macchina virtuale, e il sistema ospitante; questo viene utile, per esempio, per il caricamento dilazionato di moduli di codice opzionali o semplicemente l'uso di risorse meglio controllabili in un contesto esterno a quello di un browser o un motore di rendering HTML/Javascript. Forniamo infine una breve panoramica su un essenziale framework di utilità di sviluppo a disposizione degli sviluppatori che vorranno implementare una loro nuova macchina virtuale o estendere le già esistenti. Il meccanismo non necessita di grandi risorse computazionali e, in genere, di una connessione a internet (sebbene essa possa essere necessaria per l'ottenimento degli ambienti di esecuzione di nuove macchine virtuali per dialetti arbitrari e personalizzati, cosa che può comunque essere compiuta dall'utente con il necessario anticipo). Il lavoro di tesi si è concentrato principalmente sull'essere uno scheletro fondante che delinei i principi di base su cui le applicazioni disponibili al pubblico su grande scala possano basarsi, così da rendere lineare e senza soluzioni di continuità il lavoro di sviluppo su QRscript. Inoltre, la tesi termina il lavoro già inziato da Matteo Rosani e Mattia Scamuzzi. Abbiamo qua descritto una macchina virtuale di uso generico (GenericVM) capace di eseguire nativamente i dialetti QRtree e QRprog, ma predisposta per integrare i meccanismi di esecuzione di futuri dialetti. |
---|---|
Relatori: | Stefano Scanzio, Matteo Rosani, Gianluca Cena |
Anno accademico: | 2024/25 |
Tipo di pubblicazione: | Elettronica |
Numero di pagine: | 94 |
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: | NON SPECIFICATO |
URI: | http://webthesis.biblio.polito.it/id/eprint/33953 |
Modifica (riservato agli operatori) |