Abstract

Customizable software systems consist of a large number of different, critical, non-critical and interdependent configurations. Reliability and performance of configurable system depend on successful completion of communication or interactions among its configurations. Most of the time users of configurable systems very often use critical configurations than non-critical configurations. Failure of critical configurations will have severe impact on system reliability and performance. We can overcome this problem by identifying critical configurations that play a vital role, then provide a suitable fault tolerant candidate to each critical configuration. In this article we have proposed an algorithm that identifies optimal fault tolerant candidate for every critical configuration of a software system. We have also proposed two schemes to classify configurations into critical and non-critical configurations based on: 1) Frequency of configuration interactions (IFrFT), 2) Characteristics and frequency of interactions (ChIFrFT). These schemes have played very important role in achieving reliability and fault tolerance of a software system in a cost effective manner. The percentage of successful interactions of IFrFT and ChIFrFT are 25 and 40% higher than that of the NoFT scheme. In NoFT scheme none of the configurations are supported by fault tolerance candidates. Performance of IFrFT, ChIFrFT, and NoFT schemes are tested using a file structure system.

Highlights

  • Customization of a software system varies with user requirements or target platform

  • Interaction frequency based fault tolerance (IFrFT) technique based on frequency of interactions makes use of interaction values of configurations to measure the reliability and performance of a software system

  • Characteristics and interaction frequency based fault tolerance (ChIFrFT) technique is based on frequency of interactions and characteristics makes use of structural information of configurations

Read more

Summary

Introduction

Customization of a software system varies with user requirements or target platform. Programmers employ preprocessor directives, command-line arguments, setup files, configuration files to customize a software system. In this article we address fault tolerance at the application level by exploiting application characteristics such as structure and feature’s behavior In this direction we propose a scheme to identify frequently used configurations which play vital role in a software system, enable them configurations using suitable fault tolerance candidate to improve reliability and fault tolerance of a software system. It consists of two parts: 1) Classification of configurations and 2) Selection of the most suitable, optimal fault tolerant candidate to every critical configuration. Only critical or frequently used configurations, which contribute to 20% of all configurations, are supported by suitable fault tolerant candidates that are functionally equivalent yet independent configurations developed using different programming constructs/logic to mask failures. If jth configuration interact with none of the configurations except kth, the interaction value will be calculated as

N for all k
N-Version programming
Process checkpointing
Process migration
Overflow of hash table
Findings
Conclusion
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call