Distributed systems : principles and paradigms - Tanenbaum, Andrew S (Pearson Prentice Hall, 2007)