Distributed systems: concepts and design - Coulouris, George (Pearson Education, 2002)