UPnP Design by Example: A Software Developer's Guide to Universal Plug and Play