Software for Large Scale Distributed Systems