Roles as a Coordination Construct: Introducing powerJava

  • Authors:
  • Matteo Baldoni;Guido Boella;Leendert van der Torre

  • Affiliations:
  • Dipartimento di Informatica, Università degli Studi di Torino (Italy);Dipartimento di Informatica, Università degli Studi di Torino (Italy);CWI Amsterdam and Delft University of Technology (The Netherlands)

  • Venue:
  • Electronic Notes in Theoretical Computer Science (ENTCS)
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

In this paper we apply the role metaphor to coordination. Roles are used in sociology as a way to structure organizations and to coordinate their behavior. In our model, the features of roles are their dependence on an institution, and the powers they assign to players of roles. The institution represents an environment where the components interact with each other by using the powers attributed to them by the roles they play, even when they do not know each other. The interaction between a component playing a role and the role is performed via interfaces stating the requirements to play a role, and which powers are attributed by roles. Roles encapsulate their players' capabilities to interact with the institution and with the other roles, thus achieving separation of concerns between computation and coordination. The institution acts as a coordinator which manages the interactions among components by acting on the roles they play, thus achieving a form of exogenous coordination. As an example, we introduce the role construct in the Java programming language, providing a precompiler for it. In order to better explain the proposal, we show how to use the role construct as a coordination means by applying it to a dining philosophers problem extended with dynamic reconfiguration.