Mobile application migration to cloud computing platform
First Claim
1. A method for executing computer applications at a server, comprising:
- identifying, at a computing device, a service component of a computer application executed at the computing device, wherein the service component runs at a background of an operating system of the computing device;
transferring, from the computing device to a server, an instance of the service component if the server does not have the instance of the service component;
receiving, from the server, a result message generated by the instance of the service component executed at the server;
feeding, at the computing device, a content of the result message to another component of the computer application via a procedure call such that the other component retrieves the content of the result message as if it was generated by an instance of the service component executed at the computing device;
wherein the service component and a user interface component of the computer application execute at the computing device as two threads belonging to a process of the computer application; and
determining an optimization factor for the service component of the computer application executing at the server;
wherein when the optimization factor is less than a predetermined value, sending, from the computing device to the server, an instruction to stop executing the instance of the service component at the server;
executing the service component of the computer application at the computing device.
5 Assignments
0 Petitions
Accused Products
Abstract
Technology is disclosed herein for migrating at least portions of computer applications to a server. According to at least one embodiment, a computing device identifies a service component of a computer application executed at the computing device. The service component does not directly interact with a user of the computing device. The computing device transfers an instance of the service component to a server so that the service component can be executed at the server. The computing device then receives from the server a result message generated by the instance of the service component executed at the server. The computing device feeds the result message to a user interface component of the computer application via a procedure call such that the user interface component retrieves the result message as if it were generated by an instance of the service component executed at the computing device.
34 Citations
23 Claims
-
1. A method for executing computer applications at a server, comprising:
- identifying, at a computing device, a service component of a computer application executed at the computing device, wherein the service component runs at a background of an operating system of the computing device;
transferring, from the computing device to a server, an instance of the service component if the server does not have the instance of the service component;
receiving, from the server, a result message generated by the instance of the service component executed at the server;
feeding, at the computing device, a content of the result message to another component of the computer application via a procedure call such that the other component retrieves the content of the result message as if it was generated by an instance of the service component executed at the computing device;
wherein the service component and a user interface component of the computer application execute at the computing device as two threads belonging to a process of the computer application; and
determining an optimization factor for the service component of the computer application executing at the server;
wherein when the optimization factor is less than a predetermined value, sending, from the computing device to the server, an instruction to stop executing the instance of the service component at the server;
executing the service component of the computer application at the computing device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
- identifying, at a computing device, a service component of a computer application executed at the computing device, wherein the service component runs at a background of an operating system of the computing device;
-
13. A computing device comprising:
- a processor;
an operating system including a migration module having instructions which, when executed by the processor, monitor a computer application executed at the computing device, and identify a background thread and a foreground thread of the computer application;
a networking interface configured to transfer to a server data necessary for executing an instance of the background thread at the server, and to receive from the server result data generated by the instance of the background thread executed at the server;
an output device configured to present content of the result data via a user interface generated by the foreground thread;
wherein the foreground thread generates the user interface based on the result data as if the result data was generated by an instance of the background thread executed at the computing device; and
determining an optimization factor for a service component of the computer application executing at the server;
wherein when the optimization factor is less than a predetermined value, sending, from the computing device to the server, an instruction to stop executing the instance of the service component at the server;
executing the service component of the computer application at the computing device. - View Dependent Claims (14, 15, 16, 17, 18)
- a processor;
-
19. A server for executing computer applications designed for computing devices, comprising:
- a processor;
a networking interface configured to communicate with at least one computing device; and
an application monitoring module configured to, when executed by the process, monitor a computer application executing at the computing device, and to identify a service component of the computer application handling a computing task which does not need to, but can if necessary, receive input data from or send output data from any I/O device of the computing device;
wherein the networking interface is further configured to retrieve from the computing device an instance of the service component or data sufficient for the server to carry out the same functionality of the service component;
wherein the processor is further configured to execute the instance of the service component at the server;
wherein the networking interface is further configured to synchronize data generated by the instance of the service component executing at the server with data on which a user interaction component of the computer application executing at the computing device operates;
wherein the service component and a user interaction component of the computer application execute at the computing device as two threads belonging to a process of the computer application; and
determining an optimization factor for the service component of the computer application executing at the server;
wherein when the optimization factor is less than a predetermined value, sending, from the computing device to the server, an instruction to stop executing the instance of the service component at the server;
executing the service component of the computer application at the computing device. - View Dependent Claims (20, 21, 22, 23)
- a processor;
Specification