In this paper we introduce a new view on roles in Object Oriented programming languages. Our notion is based on an ontological analysis of social roles and attributes to roles the fol- lowing properties: first, a role is always associated not only to an object instance playing the role, but also to another object instance which constitutes the context of the role and which we call institution. Second, the definition of a role depends on the definition of the institution which constitutes its context. Third, this second property allows to endow players of roles with powers to modify the state of the institution and of the other roles of the same institution. As an example of this model of roles in Object Oriented programming languages, we introduce a role construct in Java.