Distributed systems: computing over networks - Crichlow, Joel M. (PHI, 2009)