Distributed systems: concepts and design - Colouris, George (Person Education, 2006)