L'affermazione di applicazioni sempre più legate ad aggiornamenti in tempo reale e a feedback istantanei agli input provenienti dall'utente, e la diffusione di sistemi anche per uso quotidiano che necessitano di comunicare con l'ambiente e svolgere operazioni con reattività, hanno introdotto per i programmatori, delle necessità che in passato non sono mai state di significativo interesse. Infatti la capacità di reagire immediatamente al verificarsi di un evento non sempre è dal punto di vista della programmazione, di facile implementazione, o almeno utilizzando le tecniche di stesura del codice più comuni. Per questo è necessaria la nascita di nuovi schemi che meglio si adattano a queste situazioni. E' qui che interviene il paradigma di programmazione Reactive Programming. Questo paradigma, si adatta alla perfezione a quei sistemi o applicazioni con caratteristiche ben precise, che sono Event-driven e Reattivi. Di sistemi con le caratteristiche sopra citate ve ne sono di ogni tipologia, ma alcuni in particolare possono distinguersi per la loro peculiarità di avere forti limitazioni hardware, non sempre supportati adeguatamente a fronte di una loro imponente diffusione. Si tratta di alcune famiglie di sistemi embedded con risorse limitate. Infatti la reattività è una caratteristica ricercata in sistemi mainstream, come ad esempio le GUI che devono rispondere alle interazioni con gli utenti, ma è anche una caratteristica che può essere richiesta nel mondo dei sistemi embedded. Tra questi troviamo ad esempio attuatori o sensori, che devono reagire agli input provenienti dall'ambiente. Nel caso di un sensore di temperatura ad esempio, a seguito di una variazione di temperatura dell'ambiente, questo deve aggiornare immediatamente il valore di temperatura letto precedentemente e generare una variazione di segnale visibile da altri componenti. Sistemi di questo tipo si prestano all'utilizzo di reactive programming per implementare il software che li supporta. Il presente lavoro di tesi si propone di creare una libreria reactive programming che, offra un supporto ai programmatori di sistemi embedded a risorse limitate. Visto che il target scelto per la libreria ha forti limitazioni hardware, tra cui la più importante riguarda la esigua quantità di memoria disponibile, le caratteristiche della libreria sono improntate alla risoluzione del problema di salvaguardare il più possibile il consumo di memoria. Dopo aver analizzato lo stato dell'arte, la tesi si articola nell'analisi degli elementi necessari per supportare reactive programming e delle caratteristiche di un sistema embedded a risorse limitate, per poter quindi procedere alla definizione dei criteri di progetto. Una volta effettuata l'analisi, si passa alla progettazione, sviluppo e testing della nuova libreria reactive programming. Dopo aver fatto le valutazioni sulla nuova libreria e sui miglioramenti nel consumo delle risorse rispetto alle librerie già esistenti, vi è infine l'applicazione della stessa ad un caso reale.

Reactive programming per sistemi a risorse limitate

CASAMASSIMA, NICOLA
2014/2015

Abstract

L'affermazione di applicazioni sempre più legate ad aggiornamenti in tempo reale e a feedback istantanei agli input provenienti dall'utente, e la diffusione di sistemi anche per uso quotidiano che necessitano di comunicare con l'ambiente e svolgere operazioni con reattività, hanno introdotto per i programmatori, delle necessità che in passato non sono mai state di significativo interesse. Infatti la capacità di reagire immediatamente al verificarsi di un evento non sempre è dal punto di vista della programmazione, di facile implementazione, o almeno utilizzando le tecniche di stesura del codice più comuni. Per questo è necessaria la nascita di nuovi schemi che meglio si adattano a queste situazioni. E' qui che interviene il paradigma di programmazione Reactive Programming. Questo paradigma, si adatta alla perfezione a quei sistemi o applicazioni con caratteristiche ben precise, che sono Event-driven e Reattivi. Di sistemi con le caratteristiche sopra citate ve ne sono di ogni tipologia, ma alcuni in particolare possono distinguersi per la loro peculiarità di avere forti limitazioni hardware, non sempre supportati adeguatamente a fronte di una loro imponente diffusione. Si tratta di alcune famiglie di sistemi embedded con risorse limitate. Infatti la reattività è una caratteristica ricercata in sistemi mainstream, come ad esempio le GUI che devono rispondere alle interazioni con gli utenti, ma è anche una caratteristica che può essere richiesta nel mondo dei sistemi embedded. Tra questi troviamo ad esempio attuatori o sensori, che devono reagire agli input provenienti dall'ambiente. Nel caso di un sensore di temperatura ad esempio, a seguito di una variazione di temperatura dell'ambiente, questo deve aggiornare immediatamente il valore di temperatura letto precedentemente e generare una variazione di segnale visibile da altri componenti. Sistemi di questo tipo si prestano all'utilizzo di reactive programming per implementare il software che li supporta. Il presente lavoro di tesi si propone di creare una libreria reactive programming che, offra un supporto ai programmatori di sistemi embedded a risorse limitate. Visto che il target scelto per la libreria ha forti limitazioni hardware, tra cui la più importante riguarda la esigua quantità di memoria disponibile, le caratteristiche della libreria sono improntate alla risoluzione del problema di salvaguardare il più possibile il consumo di memoria. Dopo aver analizzato lo stato dell'arte, la tesi si articola nell'analisi degli elementi necessari per supportare reactive programming e delle caratteristiche di un sistema embedded a risorse limitate, per poter quindi procedere alla definizione dei criteri di progetto. Una volta effettuata l'analisi, si passa alla progettazione, sviluppo e testing della nuova libreria reactive programming. Dopo aver fatto le valutazioni sulla nuova libreria e sui miglioramenti nel consumo delle risorse rispetto alle librerie già esistenti, vi è infine l'applicazione della stessa ad un caso reale.
ING - Scuola di Ingegneria Industriale e dell'Informazione
27-apr-2016
2014/2015
Tesi di laurea Magistrale
File allegati
File Dimensione Formato  
Tesi.pdf

accessibile in internet per tutti

Descrizione: Testo della tesi
Dimensione 2.63 MB
Formato Adobe PDF
2.63 MB Adobe PDF Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/120991