Distributed Systems & Co-Operative Computing