Distributed Computing - Peleg, David (Springer Berlin Heidelberg, 2011)