DSU'17 will be held the 9 of march 2017.
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