Distributed Systems: Principles and Paradigms - Tanenbaum, Andrew S (Pearson Education, 2007)