Sunday, March 2, 2008

Software Reliability

This week the course material for Stevens SSW565 covered some architectural techniques for software reliability and assurance. The subjects are generally labeled diversity and have really peaked my interest:
  • N-Version - Multiple independent versions executed simultaneously with the results correlated for accuracy.
  • Recovery Block - A highly efficient version for general purpose execution and a highly accurate version for execution when error conditions occur.
This architectural solution to reliability issues has great impact to complex systems and extended enterprises. Key to this notion is autonomy or lack of control and accountability. For a complex service oriented architecture where particular service implementations are outside the consumers domain of control the N-version technique has applicability. One can see this in everyday use. When I am going on a motorcycle ride I go to the internet to check the weather. But I never go to just weather.com, I always check my local cable feed and usually a NOAA radar map. This is the N-version technique in action. Three implementations of a weather information source correlated and fused to provide a common picture of the days weather.

Part of a SOA in an operational enterprise is a service control board that provides governance to the service portfolio available on the network. Looking at the governance issue from the reliability perspective it may be desired to have multiple implementations of the same service, for N-version reliability. I think learning is happening here. Thank you Dr. Vesonder!

No comments: