Distributed System-Principle and Paradigms (2nd Edition)