The organization metaphor is often used in the design and imple- mentation of multiagent systems. However, few agent programming languages provide facilities to define them. Several frameworks are proposed to coordinate MAS with organizations, but they are not programmable with general purpose languages. In this paper we extend the JADE framework with primitives to pro- gram in Java organizations structured in roles and to enable agents to play roles in organizations. Roles facilitate the coordination of agents inside an organiza- tion and give new abilities in the context of organizations, called powers, to the agents which satisfy the requirements necessary to play the roles. As primitives to program organizations and roles we provide classes and protocols which enable an agent to enact a new role in an organization and to interact with the role by invoking the execution of powers, and to receive new goals to be fulfilled. Roles have state and behaviour, thus, they are instances of classes and are strictly con- nected with the organization offering them. Since roles and organizations can be on a different platform with respect to the role player, the communication with them happens via protocols. Moreover, since, besides using protocols, roles and organizations can have complex behaviours, they are implemented by extending the JADE agent class.
['Roberto Grenna', 'Matteo Baldoni', 'Guido Boella', 'Leendert W. N. van der Torre', 'Mauro Dorni', 'Andrea Mugnaini', 'Valerio Genovese']
Adding Organizations and Roles as Primitives to the JADE Framework