Distributed systems principles and paradigms - Tanenbaum (Prentice Hall, 2002)