COMP2005 Distributed Computing Coursework