Dynamic Software Update aims to update applications at runtime, and introduce modifications that couldn't be anticipated during its development. Applications using DSU techniques can be updated with changes or patches that range from feature additions to critical security patches and bug-fixes. These dynamic updates have the goal to avoid application reboot, and thus minimize application down-time and warm-up time.

DSU'17 is an international discussion forum and gathering of researchers interested in dynamic software updates. DSU'17's program will be split in two: an `open presentation` section and a discussion section.


DSU'17 is organized by:

  • Chair: Stéphane Ducasse <stephane [dot] ducasse [at] inria [dot] fr>
  • Chair: Luc Fabresse <luc [dot] fabresse [at] mines-douai [dot] fr>
  • Co-chair: Guillermo Polito <guillermo [dot] polito [at] univ-lille1 [dot] fr>


Access to DSU'17 is free as in free beer. There is no charge associated. However, we gently ask you to formally register using this website's facilities. This will help us in the organization of the workshop.


DSU'17 will be held the 9 of march 2017.


  • 9h30 - Welcome

Day organisation and challenges

  • 10h00 - Atomic Dynamic Software Update for Live Environments

Pablo Tesone

Performing Dynamic Software Update in live environments, such as Pharo, presents a number of special considerations. These considerations can be addressed by the use of an atomic DSU tool. This talk presents a number of solutions to these considerations and how they can be implemented in an atomic DSU tool.

  • 10h30 - Starmoult : an architecture for configurable platforms

Sébastien Martinez

DSU Platforms combine mechanisms with specific needs, best suited to the
kind of application they target and/or to the kind of updates they
anticipate. As a result, application developpers have to select
carefully the platform to be used and adapt future updates to the
capacities of the platform (when it is possible).

This talk will present Starmoult : an architecture for configurable
platforms we designed with Fabien Dagnat (Télécom Bretagne, PASS) and
Jérémy Buisson (IRISA, Archware), enabling developpers to select the
mechanisms for each updates, allowing them to design update strategies
best suited to their needs.

  • 11h00 - Break
  • 11h15 - Unanticipated Debugging with Dynamic Layers

Steven Costiou

Abstract: Dynamic Layers dynamically gather adaptations at runtime, and provide means to scope theses adaptations (to time, to control-flow, to events...) and to express fine selections of objects to be adapted. They are meant to be dynamically defined in a running software to visualize its states (probing) and to debug it (unanticipated adaptation) without altering the original source code.

  • 11h45 - Online Debugging of Big Data Application in Pharo

Matteo Marra

In the last years many applications were developed to store, process and analyze a big amount of data.
This process is normally executed in big clusters using systems like Fork/Join, Spark or MapReduce, in a functional style parallel computation.
Debugging those applications is notoriously difficult, and usually it is done analyzing big amount of logs just to find a small point of failure, that leads to a big loss of time and might also lead to data loss.
In the Object Oriented world there are not many implementations of “big data” applications, because introducing a shared state between some of the tasks adds more complexity in the evolution, execution and debugging of the application.
This work focuses on building a debugger for those applications that might involve a shared state.
My solution consists in a debugger running on Pharo Smalltalk that allows debugging an exception or a breakpoint happened on a worker remotely, while the worker continues to the next jobs.
It allows trying the execution of the new code on the same state that caused the exception, and finally committing the changes provided for the fix to the different workers, that only than will re-execute the aborted tasks.

  • 12h15 - Lunch Break
  • 14h00 - Virtualization Support for Dynamic Core Library Update

Guillermo Polito

Dynamically updating language runtime and core libraries such as collections and threading is challenging since the update mechanism uses such libraries at the same time that it modifies them. To tackle this challenge, we present Dynamic Core Library Update (DCU) as an extension of Dynamic Software Update (DSU) and our approach based on a virtualization architecture. Our solution supports the update of core libraries as any other normal library, avoiding the circular dependencies between the updater and the core libraries. Our benchmarks show that there is no evident performance overhead in comparison with a default execution.
Finally, we show that our approach can be applied to real life scenario by introducing a critical update inside a web application with 20 simulated concurrent users.

  • 14h30 - Discussion Space
  • 16h00 - Break
  • 16h30 - Discussion and Peer Programming Space
  • 18h30 - Short Lille City Guide


DSU'17 will be held in Inria Lille-Nord Europe.

Parc scientifique de la Haute Borne
40, avenue Halley - Bât A - Park Plaza
59650 Villeneuve d'Ascq - France

Online user: 1