Distributed systems - COULOURIS, George (Addison-Wesley, 2001)