Role-based approaches for engineering interactions in large-scalemulti-agent systems