Agent Roles for Context-Aware P2P Systems