Distributed systems : principles and paradigms second edition - Tanenbaum, Andrew S (Pearson education, 2007)