Patent ID: 8745261
Filing Date: 2014-06-03
Classification: G06F,H04L

Abstract:
1. A method for streaming videos to a computing device, the method comprising: monitoring, by a cloud server, a video streaming application executing at the computing device to identify a service component and a user interface component of the video streaming application, the video streaming application executing as a multi-threaded application, the service component executing as a background thread to obtain video streaming data from a video server, the user interface component executing as a foreground thread to present a user interface for displaying the video streaming data obtained by the service component on the computing device; determining, by the cloud server, an optimization factor for the service component of video streaming application, the optimization factor determined as a function of consumption of computing resources of the computing device by the video streaming application; responsive to a determination that the optimization factor is below a predetermined value, requesting the computing device to transmit an instance of the service component to the cloud server; receiving the instance of the service component at the cloud server; executing the instance of the service component at the cloud server to obtain the video streaming data from the video server at the cloud server; monitoring the computing device to determine if the user interface component of the video streaming application is executing in a foreground or a background of the operating system of the computing device; responsive to a determination that the user interface component is executing in the foreground, transmitting the video streaming data obtained by the cloud server to the user interface component of the video streaming application at the computing device; determining, by the cloud server, whether a workload of the computing device is reduced by migrating the instance of the service component to the cloud server; and responsive to a determination that the workload of the computing device is not reduced, stopping the execution of the instance of the service component at the server, and instructing the computing device to execute the service component at the computing device.