A presentation by Neil Chue Hong, Director of the Software Sustainability Institute.
Presented at the Preserving Software workshop, Brettenham House, London, 7 July 2010.
1. Different Approaches to Software Preservation Neil Chue Hong Software Preservation Study Workshop
2. Decisions, decisions There are several approaches we have identified that could be classed as software preservation The choice depends on a number of factors, which change through time
3. Five purposes of software preservation Achieve legal compliance Create heritage value Enable continued access to data Encourage software reuse Manage systems and services
4. Approaches Preservation (techno-centric) Emulation (data-centric) Migration (functionality-centric) Transition (process-centric) Hibernation (knowledge-centric) Procrastination (i'll-get-round to it eventually-centric)
5. Preservation Aim to preserve original hardware and software in same state Purpose: Achieve legal compliance Create heritage value Enable continued access to data Advantages: Clearly defined Can often change to Hardware Emulation at later date Disadvantages: Costly, especially when hardware fails Does not guarantee future access if dependent on other hardware/software (e.g. networking) Can be vulnerable to malicious attack
6. Emulation Emulate original hardware / operating environment, keeping software in same state Purpose: Achieve legal compliance Create heritage value Enable continued access to data Manage systems and services Advantages: Easier to manage virtualised hardware If emulation layer continues to be developed, software can continue to be run indefinitely Disadvantages: Need all aspects of hardware to be emulated correctly, including flaws If emulation layer ceases to be developed, back to technical preservaton
7. Migration Aim to update software as required to maintain same functionality, porting/transferring before platform obsolescence Purpose: Achieve legal compliance Enable continued access to data Encourage software reuse Manage systems and services Advantages: Allows further development of software Enables access on other platforms Disadvantages: Requires continued effort for development
8. Transition Aim to keep software “alive” by moving to more open development model bringing on board additional contributors and spreading knowledge of process Purpose: Enable continued access to data Encourage software reuse Manage systems and services Advantages: Increases chances of further development of software Potential for better migration to other platforms Disadvantages: Requires more coordination Possibility for loss of control of direction
9. Hibernation Aim to preserve the knowledge of how to resuscitate/recreate the exact functionality of the software at a later date Purpose: Enable continued access to data Encourage software reuse Advantages: Useful when you have a known break in effort Disadvantages: Can be difficult to check if hibernation processes are rigorous until after it is too late
10. Procrastination Aim to do nothing Purpose: What purpose? Advantages: Comes naturally Very cheap Disadvantages: Not a valid preservation technique! May require software archaeology skills in the future A valid approach if software has been superceded
11. How much effort? What is your likely effort profile? Something now, nothing in future Something now, something in future Nothing now, something in future Nothing now, nothing in future A difficult question to answer
12. How much access? Are you the owner of the code? Are you the developer of the code? Do you have access to the source code? Do you have access to the hardware the software is running on?
13. How exact do you need it? What are you needing to preserve? A few major pieces of functionality Most of the functionality, but tolerant of minor deviations All functionality, but fixing errors when found Must perform exactly as original Is integrity important? What are you preserving and why? Software, functionality, data, knowledge,…
14. Example: DMAREL Software no longer being developed or maintained but still has users Code not open source but source available under license Will be superseded but still need to reproduce results until all useful results sets are recreated using new software Approach: Technical preservation Move to emulation if continued use higher than expected hardware becomes unmaintainable Should the cost of moving to emulation be done at the start or down the line Maintaining hardware versus taking hit of virtualisation and maintaining virtual machines If not superseded, could consider migration if effort can be found
15. Exercise Consider a piece of software you are familiar with What approach would you take if: The effort to maintain it is coming to an end You have been told it is important to allow the integrity of data to be checked at a later date Someone else will take over development of the software but you will continue to use it The operating system you have developed it on is being end of lifed