Desktop Hosting: A Developer's Guide to Unattended Communications