Distributed systems:principles and paradigms - Tanenbaum, Andrew S (Pearson Education, 2002)