Distributed computing : principles, algorithms and systems - Kshemkalyani, Ajay (Cambridge University Press, 2008)