Distributed computing (Springer, 1986)