Over the last few years, self-adaptive software became increasingly important to design complex systems which require less human intervention and to manage devices, such as smartphones, which are naturally subject to context changes. Traditional approaches to self-adaptation encompass software architectures, middleware and design patterns. In this dissertation we explore the use of ad-hoc programming language abstractions to support self-adaptive software. We analyze the support that existing languages provide for self-adaptation, with a particular focus on the context-oriented programming paradigm (COP). We design a context-oriented language which specifically addresses some know issues in the COP field, such as asynchronous context provisioning, consistency across behavioral variations, and unforeseen adaptation. We contribute to the adoption of context-oriented languages by developing an efficient contextual extension to Java which improves the compatibility of COP with the existing tool ecosystems. Finally, we propose and validate a conceptual framework to integrate COP and autonomic computing, a recent research field aimed at reducing human intervention in complex systems.

Negli ultimi anni, le applicazioni self-adaptive, ovvero in grado di modificare il proprio comportamento a seconda del contesto di esecuzione, hanno acquisito un’importanza sempre maggiore. Tale requisito di adattabilità è fondamentale per realizzare sistemi complessi che richiedano ridotti interventi di amministrazione e per realizzare dispositivi come smartphone, tablet o notebook, che sono naturalmente soggetti a cambiamenti del contesto esterno, per esempio per via dello spostamento dell’utente o per cambiamenti nella disponibilità di connessione. Tradizionalmente, questo tipo di applicazioni è stato realizzato attraverso tecniche basate su architetture software, middleware o design pattern. In questa tesi viene esplorato l’uso di linguaggi che supportino astrazioni ad hoc per l’implementazione di software self-adaptive. Viene analizzato il supporto che i linguaggi di programmazione esistenti offrono per la realizzazione di software adattativo, in particolare considerando il paradigma di programmazione orientata al contesto (Context-oriented Programming, COP). Viene proposto il design e l’implementazione di un linguaggio orientato al contesto che risolve alcuni problemi aperti nell’ambito dei linguaggi COP, come la trasmissione del contesto in modo asincrono rispetto al flusso di controllo dell’applicazione, la consistenza tra diverse variazioni comportamentali attivate dinamicamente, e l’adattamento a condizioni non previste in fase di progettazione. Viene discussa l’implementazione di un linguaggio COP specificamente progettato per l’integrazione con gli strumenti di supporto allo sviluppo esistenti. Infine, viene presentata e validata una tecnica di integrazione tra programmazione orientata al contesto e autonomic computing, un campo di ricerca sviluppatosi di recente che ha l’obbiettivo di ridurre la necessità di intervento umano nella gestione di sistemi informatici complessi.

A language-level approach to self-adaptive software

SALVANESCHI, GUIDO

Abstract

Over the last few years, self-adaptive software became increasingly important to design complex systems which require less human intervention and to manage devices, such as smartphones, which are naturally subject to context changes. Traditional approaches to self-adaptation encompass software architectures, middleware and design patterns. In this dissertation we explore the use of ad-hoc programming language abstractions to support self-adaptive software. We analyze the support that existing languages provide for self-adaptation, with a particular focus on the context-oriented programming paradigm (COP). We design a context-oriented language which specifically addresses some know issues in the COP field, such as asynchronous context provisioning, consistency across behavioral variations, and unforeseen adaptation. We contribute to the adoption of context-oriented languages by developing an efficient contextual extension to Java which improves the compatibility of COP with the existing tool ecosystems. Finally, we propose and validate a conceptual framework to integrate COP and autonomic computing, a recent research field aimed at reducing human intervention in complex systems.
GHEZZI, CARLO
FIORINI, CARLO ETTORE
SCIUTO, DONATELLA
PRADELLA, MATTEO
8-feb-2012
Negli ultimi anni, le applicazioni self-adaptive, ovvero in grado di modificare il proprio comportamento a seconda del contesto di esecuzione, hanno acquisito un’importanza sempre maggiore. Tale requisito di adattabilità è fondamentale per realizzare sistemi complessi che richiedano ridotti interventi di amministrazione e per realizzare dispositivi come smartphone, tablet o notebook, che sono naturalmente soggetti a cambiamenti del contesto esterno, per esempio per via dello spostamento dell’utente o per cambiamenti nella disponibilità di connessione. Tradizionalmente, questo tipo di applicazioni è stato realizzato attraverso tecniche basate su architetture software, middleware o design pattern. In questa tesi viene esplorato l’uso di linguaggi che supportino astrazioni ad hoc per l’implementazione di software self-adaptive. Viene analizzato il supporto che i linguaggi di programmazione esistenti offrono per la realizzazione di software adattativo, in particolare considerando il paradigma di programmazione orientata al contesto (Context-oriented Programming, COP). Viene proposto il design e l’implementazione di un linguaggio orientato al contesto che risolve alcuni problemi aperti nell’ambito dei linguaggi COP, come la trasmissione del contesto in modo asincrono rispetto al flusso di controllo dell’applicazione, la consistenza tra diverse variazioni comportamentali attivate dinamicamente, e l’adattamento a condizioni non previste in fase di progettazione. Viene discussa l’implementazione di un linguaggio COP specificamente progettato per l’integrazione con gli strumenti di supporto allo sviluppo esistenti. Infine, viene presentata e validata una tecnica di integrazione tra programmazione orientata al contesto e autonomic computing, un campo di ricerca sviluppatosi di recente che ha l’obbiettivo di ridurre la necessità di intervento umano nella gestione di sistemi informatici complessi.
Tesi di dottorato
File allegati
File Dimensione Formato  
salvaneschi.pdf

accessibile in internet solo dagli utenti autorizzati

Descrizione: Thesis
Dimensione 2.71 MB
Formato Adobe PDF
2.71 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/56761