Agent-Oriented Software Engineering:Reflections on Architectures, Methodologies, Languages, and Frameworks