Implementing fault tolerant agreement in JaCaMo
Abstract:
Implementing algorithms in multi-agent frameworks can be challenging, because the special requirements of distributed systems meet with the incomplete information, openness assumption, and social issues, all of which are present in certain multi-agent systems. The issue is further aggravated by the fact that the software engineering environment did not have as much time to mature as it had in case of other programming paradigms. In this article an implementation of agreement is given which is based on the Byzantine Fault Tolerance algoritm, and its improvement which adapts the original one to asynchronous environments.
The implementation also takes reusability into account by providing a source code library which provides an API for its consumers. After detailing the key aspects of the implementation, software engineering aspects, security and practical considerations are analyzed.