15
www.software.ac.uk Software Sustainab ility Institute Different Approaches to Software Preservation Neil Chue Hong Software Preservation Study Workshop

Preserving software workshop - Sustainability approaches

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

Page 1: Preserving software workshop - Sustainability approaches

www.software.ac.uk

SoftwareSustainabilityInstitute

Different Approaches to Software Preservation

Neil Chue HongSoftware Preservation Study

Workshop

Page 2: Preserving software workshop - Sustainability approaches

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

Page 3: Preserving software workshop - Sustainability approaches

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

Page 4: Preserving software workshop - Sustainability approaches

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)

Page 5: Preserving software workshop - Sustainability approaches

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

Page 6: Preserving software workshop - Sustainability approaches

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

Page 7: Preserving software workshop - Sustainability approaches

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

Page 8: Preserving software workshop - Sustainability approaches

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

Page 9: Preserving software workshop - Sustainability approaches

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

Page 10: Preserving software workshop - Sustainability approaches

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

Page 11: Preserving software workshop - Sustainability approaches

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

Page 12: Preserving software workshop - Sustainability approaches

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?

Page 13: Preserving software workshop - Sustainability approaches

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,…

Page 14: Preserving software workshop - Sustainability approaches

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

Page 15: Preserving software workshop - Sustainability approaches

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