¿Qué es un arquitecto de Java?