Distributed Computing : Principles, Algorithms, and Systems - Kshemkalyani, Ajay D. (Cambridge University Press, 2008)