An Architectural Style for Self-Adaptive Multi-Agent Systems
Modern distributed software systems often operate in dynamic environments in which operation conditions change continuously and subsystems may come and go at will, e.g. intelligent traffic management and multi-robot systems. To manage these dynamics, these systems have to self-adapt their structures and behaviors dynamically. While we have witnessed significant progress over the past decade in the manner in which such systems are designed, persistent challenges remain. In particular, dealing with distribution and decentralized control remains one of the major challenges in self-adaptive systems. This report presents an architecture style that supports software architects with designing architectures for a family of decentralized self-adaptive systems. The architecture style structures the software in a number of interacting autonomous entities (agents) that cooperatively realize the system tasks. Multi-agent systems derived from the architectural style realize flexibility (agents adapt their behavior and interactions to variable operating conditions) and openness (agents cope autonomously with other agents that enter and leave the system). The architectural style consists of five related patterns that distill domain-specific architectural knowledge derived from extensive experiences with developing various multi-agent systems. The architectural patterns are specified using pi-ADL, a formal architectural description language supporting specification of dynamic architectures. This specification provides architects with a rigorous description of the architecture elements of the patterns, their interactions and behavior. We illustrate how we have applied the architectural style with excerpts of two cases from our practice: an experimental system for anticipatory traffic routing and an industrial logistic system for automated transportation in warehouse environments.
READ FULL TEXT