The pervasive problem is that devices require restart to get software updated.
Following images illustrate the problem with modern consumer devices:
In addition to consumer devices, even modern and dynamic web technologies suffer from service breaks. Also, uncontrolled restart of an application – like browser with open tabs can make you lose your work session. With responsive web applications, websocket-based implementations could mitigate the need to reload the page but haven’t yet done so. Some of the applications support restartless extensions but application updates still require restarts. Dynamic software updating (DSU) is a set of software techniques to answer these problems.
The concept of dynamic software updating can be illustrated by a metaphor of bicycle fix on the fly¹.
If we consider the bike and the cyclist as software – what happens is that during a cycling competition, the cyclist Dan Bowman gets maintenance fix to his bike by the mechanic Eric Jellum without them need to stop and continue again. Software can do more. You could change both front and back wheel cogs, also the wheels, definitely handlebars and why not resize the frame, even change the cyclist (sorry Dan). Some actions would require the cyclist to pause pedaling for a short while, as he does, but not stop the bike. Source of the video²
Dynamic software updating (DSU) is defined as software updates, code or data, without restarts. It has been studied for long. The concept was presented in the 2nd International Conference on Software Engineering (Fabry 1976). After the first DSU system attributed to DYMOS (Lee 1983) and fast forward to modern times – a recent survey in a software journal found 48 DSU systems (Seifzadeh et al. 2013) and it does not include, for example, Erlang programming language that has the dynamic change support by design (Armstrong 2003). Erlang was developed for products of Ericsson, where some DSU systems are more esoteric. Another example of complete system in use includes the space vehicle operating system by ESA (Osterlog etl al. 2009). However, there are implemented and validated DSU systems also for popular programming languages like C (Hayden et al. 2014), Java (Raudjärv & Gregersen 2014) and Python (Martinez et al. 2013, Buisson et al. 2014) but the technology in general is not as popular as restarting. Also a popular operating system kernel supports DSU (Arnold & Kaashoek 2009). Further, in software folklore some subsets of what DSU systems do are done with techniques like reflection, overloading and late (re)binding. Finally, DSU can be also done with firmware (DFU) – which I leave out of the scope of my research – but listed here for completeness together with mention of hot-swappable hardware.
Goals and expected results
Objective of the research is to improve slow adaptation of dynamic software updating techniques. Hypothesis is that software structures required for dynamic updates are considered difficult, harmful and even unnecessary. Modern integrated development environments are mitigating the problem to developers, but not fixing it for users who receive the updates.
Expected scientific impact of the research is to contribute to the development of rebootless systems and applications with software design and techniques. Expected societal impact is less systems that require restarts for software updates in the future.
Critical point for success is to understand which dynamic software updating mechanisms do not stand the test of developers, develop them further or develop novel techniques. Equally critical point is to understand if dynamic software updating techniques can meet the expectations of future software engineers entering the field.
Publication plan includes literature review and systematic literature mapping followed by case studies on dynamic software updating to fullfil dissertation requirement of novel contributions.
Existing dynamic software updating research has been reviewed using keyword searches and are being complemented with systematic mapping study (Petersen et al. 2015). The result of the systematic method produces validated data for analysis and categorization of gaps in the existing research.
Further research material will include implementations of existing DSU systems where available and data from case studies. Data management plan is to follow and support open science initiatives of Academy of Finland when the results are published. Ideally, open science could be extended also to planning but as of now it is practical to do planning in a way that supports privacy of collaborators before commitments to projects and delivery of the results.
On a positive note, a cell phone without blocked emergency calls during updates can save lives.
Dynamic software updating can have ethical issues with security and privacy. With the technology, the software can be updated ‘invisibly’ and rolled back without user ever noticing it. This can pose issues with data privacy and will set more requirements on the trust chains of software providers. In the light of modern trust issues with software providers and goverments this is nothing new but the technique will enable more and even hiding the tracks.
Ville Ilvonen has worked in the software industry over 10 years. He was accepted as a PhD student in Department of Pervasive Computing at Tampere University of Technology in August 2015. He works for Intel Corporation in the R&D center in Tampere, Finland. During the end of 2015, located in Austin, Texas, with his family he has updated his software knowledge, submitted a literature review related paper to ICSE 2016 review, reviewed existing dynamic software updating related technologies and planned new research projects to continue the work towards the dissertation. He is motivated by curiosity – if you got curious too, please contact.
¹ Metaphor associated by my friend when I was telling him about my topic.
² Derivative work, non-commercial use.