1. A method for effecting migration of an application running on a source device to a target device, comprising the steps of: (a) examining the application running on the source device and hardware configuration of the target device to port the application to the target device; (b) loading the ported application on the target device; (c) transferring to the target device a running state of the application that exists on the source device; and (d) instantiating the ported application on the target device, using the running state transferred from the source device.