Distributed systems - concepts and designs (3. ed.)