Preserving software workshop - Sustainability approaches

665 views

Published on

A presentation by Neil Chue Hong, Director of the Software Sustainability Institute.

Presented at the Preserving Software workshop, Brettenham House, London, 7 July 2010.

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
665
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Liberating data
  • Preserving software workshop - Sustainability approaches

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

    ×