Pattern-oriented software architecture : a pattern language for distributed computing. - Buschmann, Frank; Henney, Kevlin; Schmidt, Douglas C. (Software design patterns, 2007)