Distributed computing - Sunita Mahajan (Oxford university press, 2013)