Efficient application hosting in a distributed application execution system
First Claim
1. An application server, for use in a system having an application master and a plurality of application servers, the application server comprising:
- one or more processors;
memory storing one or more programs to be executed by the one or more processors, the memory including volatile storage and non-volatile storage, the one of more programs including instructions for;
storing in the non-volatile storage a plurality of applications distributed to the application server by the application master;
loading into volatile storage and executing a respective application in response to a received request, and returning a result to the request; and
conditionally retaining the respective application in volatile storage, for responding to a future request, when criteria, including at least predefined usage level criteria, are met by the respective application, and otherwise removing the respective application from volatile storage upon returning the result to the request.
2 Assignments
0 Petitions
Accused Products
Abstract
In a distributed application execution system having an application master and a plurality of application servers, each application server includes one or more processors and memory storing one or more programs. The one of more programs include instructions for storing in non-volatile storage a plurality of applications distributed to the application server by the application master, for loading into volatile storage and executing a respective application in response to a received request, and for returning a result to the request. In addition, the one of more programs include instructions for conditionally retaining the respective application in volatile storage, for responding to a future request, when criteria, including at least predefined usage level criteria, are met by the respective application, and otherwise removing the respective application from volatile storage upon returning the result to the request.
44 Citations
40 Claims
-
1. An application server, for use in a system having an application master and a plurality of application servers, the application server comprising:
-
one or more processors; memory storing one or more programs to be executed by the one or more processors, the memory including volatile storage and non-volatile storage, the one of more programs including instructions for; storing in the non-volatile storage a plurality of applications distributed to the application server by the application master; loading into volatile storage and executing a respective application in response to a received request, and returning a result to the request; and conditionally retaining the respective application in volatile storage, for responding to a future request, when criteria, including at least predefined usage level criteria, are met by the respective application, and otherwise removing the respective application from volatile storage upon returning the result to the request. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method of operating an application server in a system having a plurality of application servers, the method comprising:
-
storing in non-volatile storage of the application server a plurality of applications distributed to the application server by an application master; receiving a request from a source external to the application server; loading into volatile storage and executing a respective application in response to the received request, and returning a result to the request; and conditionally retaining the respective application in the volatile storage, for responding to a future request, when criteria, including at least predefined usage level criteria, are met by the respective application, and otherwise removing the respective application from volatile storage upon returning the result to the request. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. An application execution system, comprising:
-
a plurality of application servers, each of the application servers including non-volatile storage for storing a plurality of applications; and
volatile storage and computational resources for executing applications in response to requests received by the application execution system;an application master that stores a plurality of applications in a library for distribution among the application servers, the application master including instructions for; distributing applications from the library to the application servers for storage in the non-volatile storage of the application servers; monitoring the application servers to generate usage information for each of the applications in the library for a predefined period of time ending at a current time; and removing previously distributed applications from the non-volatile storage of respective application servers in accordance with the usage information; wherein the distributing includes distributing each application to a respective number of the application servers determined by the application master in accordance with the usage information; each application server of the plurality of application servers including instructions for; storing in non-volatile storage the applications distributed to the application server; loading a respective application into volatile storage, executing the respective application in response to a received request, and returning a result to the request; and conditionally retaining the respective application in volatile storage, for responding to a future request, when criteria, including at least predefined usage level criteria, are met by the respective application, and otherwise removing the respective application from volatile storage upon returning the result to the request. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32)
-
-
33. A method of operating a plurality of application servers and an application master in an application execution system, the method comprising:
-
at the application master; storing a plurality of applications in a library for distribution among the application servers; distributing applications from the library to the application servers for storage in the non-volatile storage of the application servers; monitoring the application servers to generate usage information for each of the applications in the library for a predefined period of time ending at a current time; and removing previously distributed applications from the non-volatile storage of respective application servers in accordance with the usage information; wherein the distributing includes distributing each application to a respective number of the application servers determined by the application master in accordance with the usage information; and at each application server of the plurality of application servers; storing in non-volatile storage the applications distributed to the application server; loading a respective application into volatile storage, executing the respective application in response to a received request, and returning a result to the request; and conditionally retaining the respective application in volatile storage, for responding to a future request, when criteria, including at least predefined usage level criteria, are met by the respective application, and otherwise removing the respective application from volatile storage upon returning the result to the request. - View Dependent Claims (34, 35, 36, 37, 38, 39, 40)
-
Specification