Patent ID: 8893123

Claim:
A computer system comprising: a server including a first processor, a first memory, a first virtual machine, wherein the first virtual machine includes a virtual drive; a terminal including a second processor, a second memory, a second virtual machine, and a physical device allocated to the second virtual machine, wherein the physical device is remotely accessible by the first virtual machine using the virtual drive over a network; and the server is configured to: execute an application on the first virtual machine based on a request from the second virtual machine in the terminal; receive data from the physical device of the terminal through the virtual drive; process the data using the application and transmit the processed data back to the second virtual machine; periodically monitor the application being executed on the first virtual machine and store application status on the first virtual machine; detect whether the application being executed is a target application that incurs high network traffic based on the application status; upon detecting that the application is the target application, copy content of the first memory used by the first virtual machine to the terminal until remaining content of the first memory becomes lower than a threshold; exit the application being executed on the first virtual machine and pause execution of the first virtual machine in the server; copy the remaining content of the first memory and execution status of the first processor used by the first virtual machine to the terminal; migrate the first virtual machine from the server to the terminal as a moved first virtual machine, wherein the terminal is configured to: deallocate the physical device from the second virtual machine and allocate the physical device to the moved first virtual machine; start the application on the moved first virtual machine in accordance with the application status stored on the moved first virtual machine; and continue execution of the application on the moved first virtual machine by accessing the physical device of the terminal through the moved first virtual machine.