Dynamic software evolution has become a crucial aspect in the design, development, and maintenance of complex component-based distributed systems. Evolution, typically obtained by software updates, may derive from changes in the requirements or in the environment, from new released versions and optimization needs. Software update is traditionally an off-line process since the incorporation of released upgrades or patches requires the system to be shut down, updated, and restarted. However, an increasing number of systems operating in different domains, from financial transaction processing and emergency management, to safety critical systems in the domain of air traffic control and autonomous transportation, are required to offer a continuous service and cannot be stopped even when they need to be updated. These systems need to be dynamically updated, at runtime, while they are operating. Dynamic software update is required to be both safe and efficient. Safe updates means that the process must not lead the system to unexpected erroneous behavior. Efficient updates include the capability of updating the system as soon as possible and with minimal overhead. Recent research activity has proposed different approaches for the design of dynamically updating systems in the areas of programming languages, distributed systems, and software architecture. However, the identification of safe criteria for efficient dynamic updates has still been an open challenge that required for further investigation. This thesis is the result of a research effort that aims at filling this gap. It proposes novel model-based approaches for the definition and automatic identification of updatability criteria. The defined criteria are independent from the specific technologies and programming languages adopted in implementing the system, and verified at runtime, allow for safe and efficient dynamic updates. Two main contributions are proposed which differ in the target systems and the required models. 1) Version-consistent dynamic updates of transactional systems. Version consistency is introduced as a criterion for safe dynamic substitution of components executing distributed transactions. A distributed algorithm is proposed for ensuring version consistency by modeling runtime dependencies between components. Two implementations of the algorithm are provided to safely and efficiently update distributed BPEL processes, and SCA (Service Component Architecture) systems. 2) Specification-driven dynamic updates of software-intensive systems. This contribution considers distributed systems in which the different components interact with each other and with the surrounding environment by sending and receiving messages. A specification describes which behavior may or must occur in the system and the assumptions about the environment. For these systems, a formal definition of updatability criteria based on changes in the specification is provided. Moreover, an approach for the automatic generation of dynamically updating controllers that dynamically update to the new specified behavior is introduced. The approach is implemented as part of an eclispe-based tool-suite for engineering dynamically updating systems. The tool supports all the steps of the proposed approach, from the specification modeling to the generation and simulation of dynamically updating controllers.

L’evoluzione dinamica del software ha un ruolo cruciale nella progettazione, lo sviluppo e il mantenimento di sistemi software distribuiti basati su componenti. L’evoluzione, tipicamente realizzata attraverso il rilascio di aggiornamenti software, proviene dai cambiamenti nei requisiti o nell’ambiente, dalla necessità di rilasciare nuove versioni e da esigenze di ottimizzazione. L’aggiornamento del software è un processo tipicamente off-line poiché l’installazione della nuova versione richiede lo spegnimento, l’aggiornamento, ed il riavvio del sistema. Tuttavia, un numero sempre più crescente di sistemi che opera in un ampia varietà di domini applicativi, dai sistemi per il processamento di transazioni finanziarie o per la gestione delle emergenze, ai sistemi critici per il controllo del traffico aereo e dei trasporti autonomi, devono offrire un servizio continuo che non può essere interrotto nemmeno durante l’aggiornamento. Questi sistemi devono essere aggiornati dinamicamente, a runtime, mentre sono in esecuzione. L’aggiornamento dinamico del software deve essere allo stesso tempo affidabile ed efficiente. Un aggiornamento affidabile impone che il processo non porti il sistema in uno stato di errore inatteso. Un aggiornamento efficiente richiede la capacità di completare il processo il prima possibile e con minimo overhead. Recenti attività di ricerca nelle aree dei linguaggi di programmazione, sistemi distribuiti, e architetture del software, hanno proposto diversi approcci per la progettazione di sistemi software aggiornabili dinamicamente. Tuttavia, gli approcci proposti non hanno finora fornito una risposta adeguata all’importante problematica dell’identificazione di criteri generali volti a garantire un aggiornamento dinamico che sia allo stesso tempo affidabile ed efficiente. Questa tesi affronta questo problema proponendo approcci innovativi basati su modelli per la definizione e identificazione automatica di nuovi criteri per l’aggiornamento dinamico del software. Questi criteri non dipendono da particolari tecnologie e linguaggi di programmazione utilizzati per l’implementazione del sistema, e verificati a runtime, permettono un aggiornamento dinamico affidabile ed efficiente. I risultati di questa tesi sono organizzati in due principali contributi che si differenziano nei sistemi oggetto di studio e nei modelli adottati: 1) Aggiornamenti dinamici di sistemi transazionali basati su Version Consistency. Si introduce il criterio di version consistency per la sostituzione dinamica di componenti software che eseguono transazioni distribuite. Si propone un algoritmo distribuito per garantire la version consistency attraverso la modellazione delle dipendenze dinamiche che intercorrono a runtime tra i vari componenti del sistema. Vengono fornite due implementazioni dell’approccio per aggiornare, in maniera efficiente e affidabile, processi BPEL distribuiti, e sistemi basati sul paradigma SCA (Service Component Architecture). 2) Aggiornamenti dinamici di sistemi software-intensive guidati dalla specifica. Si considerano sistemi distribuiti i quali componenti interagiscono attraverso l’invio e la ricezione di messaggi per lo svolgimento di complesse funzionalità. La specifica di questi sistemi descrive in dettaglio il comportamento del sistema e le assunzioni sull’ambiente. Per questi sistemi vengono definiti un insieme di criteri di aggiornamento dinamico che si basano sul cambiamento della specifica. Inoltre, si propone un approccio che genera automaticamente delle implementazionni della specifica modellizzate da automi che sono in grado di aggiornarsi dinamicamente e quindi offrire il nuovo comportamento specificato. È stato implementato un tool basato su Eclipse per l’ingegnerizzazione di sistemi aggiornabili dinamicamente. Il tool supporta tutte le fasi dell’approccio proposto: dalla modellazione della specifica, alla generazione e simulazione dell’automa aggiornabile dinamicamente.

Safe and Efficient Dynamic Updates of Distributed Software Systems

PANZICA LA MANNA, VALERIO

Abstract

Dynamic software evolution has become a crucial aspect in the design, development, and maintenance of complex component-based distributed systems. Evolution, typically obtained by software updates, may derive from changes in the requirements or in the environment, from new released versions and optimization needs. Software update is traditionally an off-line process since the incorporation of released upgrades or patches requires the system to be shut down, updated, and restarted. However, an increasing number of systems operating in different domains, from financial transaction processing and emergency management, to safety critical systems in the domain of air traffic control and autonomous transportation, are required to offer a continuous service and cannot be stopped even when they need to be updated. These systems need to be dynamically updated, at runtime, while they are operating. Dynamic software update is required to be both safe and efficient. Safe updates means that the process must not lead the system to unexpected erroneous behavior. Efficient updates include the capability of updating the system as soon as possible and with minimal overhead. Recent research activity has proposed different approaches for the design of dynamically updating systems in the areas of programming languages, distributed systems, and software architecture. However, the identification of safe criteria for efficient dynamic updates has still been an open challenge that required for further investigation. This thesis is the result of a research effort that aims at filling this gap. It proposes novel model-based approaches for the definition and automatic identification of updatability criteria. The defined criteria are independent from the specific technologies and programming languages adopted in implementing the system, and verified at runtime, allow for safe and efficient dynamic updates. Two main contributions are proposed which differ in the target systems and the required models. 1) Version-consistent dynamic updates of transactional systems. Version consistency is introduced as a criterion for safe dynamic substitution of components executing distributed transactions. A distributed algorithm is proposed for ensuring version consistency by modeling runtime dependencies between components. Two implementations of the algorithm are provided to safely and efficiently update distributed BPEL processes, and SCA (Service Component Architecture) systems. 2) Specification-driven dynamic updates of software-intensive systems. This contribution considers distributed systems in which the different components interact with each other and with the surrounding environment by sending and receiving messages. A specification describes which behavior may or must occur in the system and the assumptions about the environment. For these systems, a formal definition of updatability criteria based on changes in the specification is provided. Moreover, an approach for the automatic generation of dynamically updating controllers that dynamically update to the new specified behavior is introduced. The approach is implemented as part of an eclispe-based tool-suite for engineering dynamically updating systems. The tool supports all the steps of the proposed approach, from the specification modeling to the generation and simulation of dynamically updating controllers.
FIORINI, CARLO ETTORE
CUGOLA, GIANPAOLO
10-feb-2014
L’evoluzione dinamica del software ha un ruolo cruciale nella progettazione, lo sviluppo e il mantenimento di sistemi software distribuiti basati su componenti. L’evoluzione, tipicamente realizzata attraverso il rilascio di aggiornamenti software, proviene dai cambiamenti nei requisiti o nell’ambiente, dalla necessità di rilasciare nuove versioni e da esigenze di ottimizzazione. L’aggiornamento del software è un processo tipicamente off-line poiché l’installazione della nuova versione richiede lo spegnimento, l’aggiornamento, ed il riavvio del sistema. Tuttavia, un numero sempre più crescente di sistemi che opera in un ampia varietà di domini applicativi, dai sistemi per il processamento di transazioni finanziarie o per la gestione delle emergenze, ai sistemi critici per il controllo del traffico aereo e dei trasporti autonomi, devono offrire un servizio continuo che non può essere interrotto nemmeno durante l’aggiornamento. Questi sistemi devono essere aggiornati dinamicamente, a runtime, mentre sono in esecuzione. L’aggiornamento dinamico del software deve essere allo stesso tempo affidabile ed efficiente. Un aggiornamento affidabile impone che il processo non porti il sistema in uno stato di errore inatteso. Un aggiornamento efficiente richiede la capacità di completare il processo il prima possibile e con minimo overhead. Recenti attività di ricerca nelle aree dei linguaggi di programmazione, sistemi distribuiti, e architetture del software, hanno proposto diversi approcci per la progettazione di sistemi software aggiornabili dinamicamente. Tuttavia, gli approcci proposti non hanno finora fornito una risposta adeguata all’importante problematica dell’identificazione di criteri generali volti a garantire un aggiornamento dinamico che sia allo stesso tempo affidabile ed efficiente. Questa tesi affronta questo problema proponendo approcci innovativi basati su modelli per la definizione e identificazione automatica di nuovi criteri per l’aggiornamento dinamico del software. Questi criteri non dipendono da particolari tecnologie e linguaggi di programmazione utilizzati per l’implementazione del sistema, e verificati a runtime, permettono un aggiornamento dinamico affidabile ed efficiente. I risultati di questa tesi sono organizzati in due principali contributi che si differenziano nei sistemi oggetto di studio e nei modelli adottati: 1) Aggiornamenti dinamici di sistemi transazionali basati su Version Consistency. Si introduce il criterio di version consistency per la sostituzione dinamica di componenti software che eseguono transazioni distribuite. Si propone un algoritmo distribuito per garantire la version consistency attraverso la modellazione delle dipendenze dinamiche che intercorrono a runtime tra i vari componenti del sistema. Vengono fornite due implementazioni dell’approccio per aggiornare, in maniera efficiente e affidabile, processi BPEL distribuiti, e sistemi basati sul paradigma SCA (Service Component Architecture). 2) Aggiornamenti dinamici di sistemi software-intensive guidati dalla specifica. Si considerano sistemi distribuiti i quali componenti interagiscono attraverso l’invio e la ricezione di messaggi per lo svolgimento di complesse funzionalità. La specifica di questi sistemi descrive in dettaglio il comportamento del sistema e le assunzioni sull’ambiente. Per questi sistemi vengono definiti un insieme di criteri di aggiornamento dinamico che si basano sul cambiamento della specifica. Inoltre, si propone un approccio che genera automaticamente delle implementazionni della specifica modellizzate da automi che sono in grado di aggiornarsi dinamicamente e quindi offrire il nuovo comportamento specificato. È stato implementato un tool basato su Eclipse per l’ingegnerizzazione di sistemi aggiornabili dinamicamente. Il tool supporta tutte le fasi dell’approccio proposto: dalla modellazione della specifica, alla generazione e simulazione dell’automa aggiornabile dinamicamente.
Tesi di dottorato
File allegati
File Dimensione Formato  
2014_02_PhD_Panzica_La_Manna.pdf

accessibile in internet solo dagli utenti autorizzati

Descrizione: Testo della tesi
Dimensione 4.51 MB
Formato Adobe PDF
4.51 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/88670