View
477
Download
2
Embed Size (px)
DESCRIPTION
A presentation by Neil Chue Hong, Director of the Software Sustainability Institute. Presented at the Preserving Software workshop, Brettenham House, London, 7 July 2010.
Citation preview
www.software.ac.uk
SoftwareSustainabilityInstitute
Different Approaches to Software Preservation
Neil Chue HongSoftware Preservation Study
Workshop
www.software.ac.uk
SoftwareSustainabilityInstitute
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
www.software.ac.uk
SoftwareSustainabilityInstitute
Five purposes of software preservation
• Achieve legal compliance
• Create heritage value
• Enable continued access to data
• Encourage software reuse
• Manage systems and services
www.software.ac.uk
SoftwareSustainabilityInstitute
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)
www.software.ac.uk
SoftwareSustainabilityInstitute
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
www.software.ac.uk
SoftwareSustainabilityInstitute
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
www.software.ac.uk
SoftwareSustainabilityInstitute
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
www.software.ac.uk
SoftwareSustainabilityInstitute
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
www.software.ac.uk
SoftwareSustainabilityInstitute
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
www.software.ac.uk
SoftwareSustainabilityInstitute
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
www.software.ac.uk
SoftwareSustainabilityInstitute
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
www.software.ac.uk
SoftwareSustainabilityInstitute
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?
www.software.ac.uk
SoftwareSustainabilityInstitute
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,…
www.software.ac.uk
SoftwareSustainabilityInstitute
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
www.software.ac.uk
SoftwareSustainabilityInstitute
Exercise
• Consider a piece of software you are familiar with
• What approach would you take if:1. The effort to maintain it is coming to an end2. You have been told it is important to allow the
integrity of data to be checked at a later date3. Someone else will take over development of the
software but you will continue to use it4. The operating system you have developed it on is
being end of lifed