Concurrency model of BDI programming frameworks: why should we control it?

Proceedings of the 23rd International Conference on Autonomous Agents and Multi-Agent Systems

This paper focuses on the concurrency model(s) of BDI agents in Multi-Agent Systems (MAS) programming frameworks—i.e., roughly speaking, on how the execution of BDI agents is mapped onto the underlying concurrency primitives (e.g., threads, processes, event loops). As the choice of concurrency model can impact efficiency, determinism, and reproducibility of MASs, we argue that MAS developers should be able to choose or configure the concurrency model of their systems while leaving the MAS specification unaffected, in order to tune the execution of the system to the specific needs of their application and execution environment. Along this line, stemming from an analysis of the modern practice of concur-
rent software development, we identify key patterns that could support the realisation of BDI agents architectures, and we discuss their benefits and limitations w.r.t. efficiency, determinism, and reproducibility of the MAS built on top of them. We then evaluate the main BDI technologies from the AOP community from a concurrency-related perspective, eliciting the concurrency models supported by each of them and analysing the degree of configurability they offer to developers on this regard. We find that, in most cases, the current BDI technologies offer a variety of concurrency models (although their configuration is often limited), but they tend to hide such model from the developers’ control. Finally, we
elaborate on the importance of configurability for MAS execution, discussing the importance of separating the behaviour specification of the MAS from its actual runtime execution model.

keywordsAgent-Oriented Programming, Concurrency, BDI Agents, Comparison