Distributed Systems : Home Exercise 3
Please note
- Deadline Saturday 4.12. at 18:00. Return by email to pervila at [the department's mail system].
- Groupwork of up to three persons in each group is allowed.
Background
Read the article "Fault Tolerance by Design Diversity: Concepts and Experiments" by A. Avizienis & J. P. J. Kelly.
Task description
Write an example program that consists of at least two objects. The first object A calls one or more methods of the second object B. B must
contain at least three faults: they will be intentionally introduced into the program code. A will be partially fault-tolerant.
One of the faults in B shall remain invisible to A. The second shall manifest as an error, but will be detected by A and handled (tolerated) by the method invocation. The third fault should be left unhandled by A and propagate as a failure to the user of A.
Requirements
In the program, each fault must be carefully documented, as well as the execution sequence that causes the faults to propagate as errors or failures.
The purpose of the exercise is to show that you have understood the threefold model of malfunctions presented in the article.
The program code must run on the Department's workstations. Please do NOT use the shell servers melkki, melkinkari, melkinpaasi, or alkokrunni for programming this task.
Suggestions
A scripting program language like Perl, Python, or Ruby is warmly recommended. The exception-handling routines of the chosen language may be employed.