Distributed computing - Mahajan, Sunita (Oxford, 2013)