A platform for P2P agent‐based collaborative applications. (30th October 2018) - Briola, Daniela; Micucci, Daniela; Mariani, Leonardo
Summary: The operational environment can be a valuable source of information about the behavior of software applications and their usage context. Although a single instance of an application has limited evidence of the range of the possible behaviors and situations that might be experienced in the field, the collective knowledge composed by the evidence gathered by the many instances of a same application running in several diverse user environments (eg, a browser) might be an invaluable source of information. This information can be exploited by applications able to autonomously analyze how they behave in the field and adjust their behavior accordingly. Augmenting applications with the capability to collaborate and directly share information about their behavior is challenging because it requires the definition of a fully decentralized and dependable networked infrastructure whose nodes are the user machines. The nodes of the infrastructure must be collaborative, to share information, and autonomous, to exploit the available information to change their behavior, for instance, to better accommodate the needs of the users to prevent known problems. This paper describes the initial results that we obtained with the design and the development of an infrastructure that can enable the execution of collaborative scenarios in a fully decentralized way. Our idea is to combine the agent‐based paradigm, which is well suited to design collaborative and autonomous nodes, and the peer‐to‐peer paradigm, which is well suited to design distributed and dynamic network infrastructures. To demonstrate our idea, we augmented the popular JADE agent‐based platform with a software layer that supports both the creation of a fully decentralized peer‐to‐peer network of JADE platforms and the execution of services within that network, thus enabling JADE multiagent systems (MASs) to behave as peer‐to‐peer networks. The resulting platform can be used to study the design of collaborative applications running in the field.