Enterprise and Internet Computing (Distributed Computing) Stuart Fitz-Gerald With thanks to Chris Reade Feb 2005.