Architecting modern Java EE applications. (2017)