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.
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
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
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
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
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
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