This paper describes how multiagent systems can be used to achieve robust software, one of the major goals of software engineering. The paper first positions itself within the software engineering domain. It then develops the hypothesis that robust software can be achieved through redundancy, where the redundancy is achieved by agents that have different algorithms but similar responsibilities. The agents are produced by wrapping conventional algorithms with a minimal set of agent capabilities, which we specify. We show that the same wrapper can be used for a variety of algorithms. We describe our initial experiments in verifying our hypothesis and present results that show an improvement in robustness due to redundancy. We also completely characterize the decision-making that must occur to decide among competing redundant algorithms. We conclude by speculating on the implications of multiagent-based redundancy for general software development and future Web services. Categories and S...
Michael N. Huhns, Vance T. Holderfield, Rosa Laura