Pattern-oriented software architecture : a pattern language for distributed computing - Buschmann, Frank (Wiley, 1996)